:root{font-family:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:#0f172a;color:#e2e8f0}.wrap{max-width:900px;margin:0 auto;padding:16px}header{display:flex;align-items:center;justify-content:space-between;gap:12px}h1{font-size:1.4rem;margin:8px 0}select,input,button{font-size:1rem;padding:10px 12px;border-radius:10px;border:1px solid #334155}select,input{background:#1e293b;color:#e2e8f0}button{background:#334155;color:#fff;cursor:pointer}button:hover{background:#475569}.panes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:16px 0}.toilet{border-radius:16px;padding:18px;text-align:center;color:#04121a}.toilet.free{background:#22c55e}.toilet.full{background:#ef4444;color:#fff}.toilet .g{font-weight:700;font-size:1.1rem}.toilet .count{font-size:3rem;font-weight:800;line-height:1.1}.toilet .state{font-weight:800;letter-spacing:1px}.toilet .cap{margin-top:10px;display:flex;gap:8px;justify-content:center;align-items:center}.toilet .cap button{padding:4px 12px}.scanner{background:#1e293b;border-radius:16px;padding:16px}.row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.row input{flex:1;min-width:160px}#qr-reader{width:100%;max-width:340px;margin:0 auto;border-radius:12px;overflow:hidden}.banner{margin-top:12px;padding:14px;border-radius:12px;font-weight:800;text-align:center;font-size:1.2rem}.banner.ok{background:#16a34a;color:#fff}.banner.bad{background:#dc2626;color:#fff}.banner.warn{background:#d97706;color:#fff}.walkin{margin-top:14px;padding:14px;border:2px dashed #f59e0b;border-radius:12px}.walkin .allow,.alert .allow{background:#16a34a}.walkin .reject{background:#dc2626}.nav{display:flex;gap:8px;padding:10px 16px;background:#0b1220;position:sticky;top:0}.nav button{background:#1e293b}.nav button.on{background:#2563eb}.alert{max-width:900px;margin:0 auto;padding:12px 16px}.alert{background:#78350f;border:1px solid #f59e0b;border-radius:12px;margin-top:12px}label{display:inline-flex;align-items:center;gap:6px}table.queue{width:100%;border-collapse:collapse;margin-top:12px;font-size:.95rem}table.queue th,table.queue td{text-align:left;padding:8px 10px;border-bottom:1px solid #1f2a3d}table.queue tr.top td:first-child{font-weight:800;color:#fbbf24}table.queue tr.mine{background:#10233f}table.queue tr.top{box-shadow:inset 3px 0 #fbbf24}.acts{display:flex;gap:6px}.acts button{padding:4px 10px;font-size:.85rem}.admin-card{background:#0f172a;border:1px solid #1f2a3d;border-radius:12px;padding:12px;margin-top:12px}.admin-head{display:flex;align-items:center;gap:10px}.admin-head .del{margin-left:auto}.wrap h3{margin:18px 0 4px}button.del{background:#7f1d1d}button.del:hover{background:#991b1b}.nav .who{margin-left:auto;align-self:center;opacity:.8;font-size:.9rem}.nav .logout{background:#7f1d1d}header .who{padding:10px 12px;background:#1e293b;border-radius:10px}.login{min-height:100vh;display:grid;place-items:center}.login form{background:#1e293b;padding:28px;border-radius:16px;display:flex;flex-direction:column;gap:12px;width:min(360px,92vw)}.login h1{margin:0 0 6px}.login .hint{font-size:.8rem;opacity:.7;margin-top:6px;line-height:1.6}.login code{background:#0f172a;padding:2px 6px;border-radius:6px}
