:root{font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;color:#1a1a1a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}a{color:#0b5fff}button,input,select{font:inherit}button{cursor:pointer}.layout{max-width:1200px;margin:0 auto;padding:1rem 1.25rem 2rem}.appbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.menu{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;animation:fade-slide .24s ease}.card{background:#fff;border-radius:10px;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #00000014;animation:fade-up .22s ease}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.btn{border:none;border-radius:8px;padding:.55rem 1rem;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-weight:600;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;box-shadow:0 8px 20px #2563eb33}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:#e8eef8;color:#0f172a;box-shadow:0 6px 16px #0f172a14}.btn.unrecognized-alert{background:#dc2626;color:#fff;box-shadow:0 8px 20px #dc262659;animation:pulse-alert 1s infinite}.tab-active{border:2px solid #4f7cff}.unknown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.unknown-card{width:100%;text-align:left;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.btn:hover{transform:translateY(-1px);filter:brightness(1.02)}.btn:active{transform:translateY(0)}.nav-pill{text-decoration:none;padding:.65rem .9rem;border-radius:12px;font-weight:700;color:#0f172a;background:#f0f4ff;border:1px solid #d6e2ff;transition:all .18s ease}.nav-pill.active,.nav-pill:hover{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;border-color:transparent;box-shadow:0 8px 18px #2563eb40}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,120px));gap:.6rem}.category-square{width:120px;height:120px;border-radius:12px;border:1px solid #d6e4ff;background:linear-gradient(180deg,#f8fbff,#eef5ff);color:#0f172a;font-weight:700;display:grid;place-items:center;text-align:center;padding:.5rem}.greeting-wrap{display:grid;place-items:center;padding:.25rem 0 .6rem}.greeting-title{margin:0;font-size:clamp(1.4rem,2.8vw,2rem);font-weight:800;color:#0f172a;text-align:center;position:relative;animation:greet-in .75s ease both}.greeting-title:after{content:"";display:block;width:70%;height:3px;margin:.35rem auto 0;border-radius:999px;background:linear-gradient(135deg,#2563eb,#0ea5e9);transform-origin:center;animation:greet-line .85s ease both}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-size:.9rem;font-weight:600}.field input,.field select{padding:.5rem .65rem;border-radius:8px;border:1px solid #cfd6e4;min-width:200px}.tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.tab{border:1px solid #cfd6e4;background:#fff;border-radius:999px;padding:.45rem .85rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:600}.tab.active{border-color:#0b5fff;background:#e8f0ff}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.free{background:#22c55e}.dot.repair{background:#eab308}.dot.occupied{background:#ef4444}table.sales{width:100%;border-collapse:collapse;font-size:.92rem}table.sales th,table.sales td{border:1px solid #e2e8f0;padding:.45rem .5rem;text-align:left}table.sales th{background:#f1f5f9}tr.sale-in_progress{background:#fef9c3}tr.sale-completed{background:#dcfce7}.muted{color:#64748b;font-size:.9rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.stats{display:flex;gap:1.5rem;margin-bottom:1rem;font-size:1.05rem}.error{color:#b91c1c;font-weight:600}.washer-page-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}.washer-page-actions{align-self:center}.washer-section-title{margin:0;font-size:1.25rem}.washer-home-list{margin:0;padding-left:1.2rem;line-height:1.8}.washer-home-link{font-weight:600;font-size:1.05rem}.btn-lg{padding:.75rem 1.35rem;font-size:1.05rem}.washer-box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.washer-box-card{border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.15rem;background:#fff;box-shadow:0 1px 3px #0000000f}.washer-box-card h3{margin:0 0 .5rem;font-size:1.1rem}.washer-box-card.free{border-color:#86efac;background:#f0fdf4}.washer-box-card.busy{border-color:#fcd34d;background:#fffbeb}.washer-box-card.repair{border-color:#fde047;background:#fefce8}.washer-dl{margin:.5rem 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;font-size:.92rem}.washer-dl dt{margin:0;color:#64748b;font-weight:600}.washer-dl dd{margin:0}.modal{max-width:520px;margin:2rem auto}@keyframes greet-in{0%{opacity:0;transform:translateY(10px) scale(.98)}70%{opacity:1;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes greet-line{0%{transform:scaleX(.1);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-slide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-alert{0%{opacity:1}50%{opacity:.55}to{opacity:1}}@media (min-width: 980px){.unknown-grid{display:flex;flex-direction:column}.unknown-card{flex-direction:row;align-items:center;gap:1rem}.unknown-card strong{min-width:220px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a73;overflow-y:auto;padding:1rem}.modal{max-width:620px;margin:2rem auto}
