*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--panel: #1e293b;--panel-2: #334155;--text: #f1f5f9;--muted: #94a3b8;--green: #22c55e;--red: #ef4444;--yellow: #eab308;--blue: #3b82f6;--radius: 14px}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius)}input,select,textarea{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid #475569;border-radius:8px;padding:10px 12px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue)}.error-text{color:var(--red);font-weight:600;margin-top:8px}.muted{color:var(--muted)}.kiosk{min-height:100%;display:flex;flex-direction:column;padding:16px;gap:16px}.kiosk-header{display:flex;justify-content:space-between;align-items:center}.kiosk-header h1{font-size:22px}.bay-grid{flex:1;display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:16px}@media (max-width: 600px){.bay-grid{grid-template-columns:1fr;grid-template-rows:none}}.bay-card{border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;justify-content:space-between;min-height:180px;text-align:left;color:#fff;transition:transform .1s}.bay-card:active{transform:scale(.98)}.bay-card.free{background:linear-gradient(135deg,#15803d,#22c55e)}.bay-card.occupied{background:linear-gradient(135deg,#b91c1c,#ef4444)}.bay-card.reserved{background:linear-gradient(135deg,#a16207,#eab308)}.bay-number{font-size:42px;font-weight:800}.bay-status-label{font-size:20px;font-weight:600;opacity:.95}.bay-details{font-size:16px;opacity:.9;line-height:1.5}.bay-timer{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums}.kiosk-tabs{display:flex;gap:6px;background:var(--panel);border-radius:var(--radius);padding:5px}.tab-btn{padding:10px 22px;font-size:16px;font-weight:700;background:transparent;color:var(--muted);border-radius:10px}.tab-btn.active{background:var(--blue);color:#fff}.res-panel{flex:1;max-width:640px;width:100%;margin:0 auto}.res-list{display:flex;flex-direction:column;gap:10px}.res-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:var(--panel);border-radius:var(--radius);padding:16px 20px}.res-time{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--panel);border-radius:var(--radius);padding:24px;width:100%;max-width:440px;max-height:92vh;overflow-y:auto}.modal h2{margin-bottom:16px;font-size:20px}.modal .row{margin-bottom:12px}.modal label{display:block;margin-bottom:4px;color:var(--muted);font-size:14px}.btn{padding:14px 20px;border-radius:var(--radius);font-weight:700;font-size:17px;background:var(--panel-2);color:var(--text)}.btn.primary{background:var(--blue);color:#fff}.btn.success{background:var(--green);color:#052e16}.btn.danger{background:var(--red);color:#fff}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:10px;margin-top:16px}.btn-row .btn{flex:1}.staff-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.staff-btn{padding:18px 12px;font-size:18px;font-weight:700;background:var(--panel-2);color:var(--text)}.staff-btn.selected{background:var(--blue)}.wash-type-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wash-type-btn{padding:16px 12px;font-size:17px;font-weight:700;background:var(--panel-2);color:var(--text);border:2px solid transparent}.wash-type-btn.selected{background:var(--blue);border-color:#93c5fd}.pin-display{display:flex;justify-content:center;gap:14px;margin:18px 0}.pin-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--muted)}.pin-dot.filled{background:var(--text);border-color:var(--text)}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pin-key{padding:18px 0;font-size:24px;font-weight:700;background:var(--panel-2);color:var(--text)}.pin-key:active{background:var(--blue)}.mgr-layout{display:flex;min-height:100vh}.mgr-nav{width:220px;background:var(--panel);padding:20px 12px;display:flex;flex-direction:column;gap:4px;flex-shrink:0}.mgr-nav a{color:var(--muted);text-decoration:none;padding:10px 14px;border-radius:8px;font-weight:600}.mgr-nav a.active,.mgr-nav a:hover{background:var(--panel-2);color:var(--text)}.mgr-nav .spacer{flex:1}.nav-head{display:block}.nav-toggle{display:none}.nav-links{display:flex;flex-direction:column;gap:4px;flex:1}.tenant-name{font-weight:800;font-size:15px;padding:4px 14px 14px;color:var(--text);border-bottom:1px solid var(--panel-2);margin-bottom:8px}.mgr-main{flex:1;padding:28px;min-width:0}.mgr-main h1{margin-bottom:20px;font-size:24px}.cards{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px}.stat-card{background:var(--panel);border-radius:var(--radius);padding:20px 24px;min-width:180px}.stat-card .label{color:var(--muted);font-size:14px;margin-bottom:6px}.stat-card .value{font-size:28px;font-weight:800}.table-wrap{overflow-x:auto;background:var(--panel);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 14px;text-align:left;white-space:nowrap}th{color:var(--muted);font-weight:600;border-bottom:1px solid var(--panel-2)}tr:not(:last-child) td{border-bottom:1px solid #27324a}.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;align-items:flex-end}.filters>div{min-width:140px}.filters label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.badge{padding:3px 10px;border-radius:99px;font-size:12px;font-weight:700}.badge.green{background:#14532d;color:#86efac}.badge.red{background:#7f1d1d;color:#fca5a5}.badge.yellow{background:#713f12;color:#fde047}.badge.gray{background:var(--panel-2);color:var(--muted)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-box{background:var(--panel);border-radius:var(--radius);padding:32px;width:100%;max-width:380px}.login-box h1{margin-bottom:20px;font-size:22px}.temp-pin-banner{background:#14532d;border:1px solid var(--green);color:#bbf7d0;padding:14px;border-radius:var(--radius);margin:12px 0;font-size:15px}.temp-pin-banner strong{font-size:24px;letter-spacing:4px}.pair-code-input{text-align:center;font-size:28px;font-weight:800;letter-spacing:6px;padding:16px 10px;text-transform:uppercase}.pair-code-display{background:var(--panel-2);border-radius:var(--radius);padding:22px;text-align:center;margin:14px 0}.pair-code-display .code{font-size:40px;font-weight:900;letter-spacing:8px;font-variant-numeric:tabular-nums;word-break:break-all}.who{font-size:14px;margin-top:2px}.link-btn{display:block;margin:14px auto 0;padding:12px 16px;min-height:44px;background:transparent;color:var(--muted);text-decoration:underline;font-size:15px}@media (max-width: 700px){.btn,.tab-btn,input,select,textarea{min-height:44px}input[type=checkbox]{min-height:0;width:22px;height:22px}.kiosk{padding:10px;gap:10px}.kiosk-header{flex-wrap:wrap;gap:10px}.kiosk-header h1{font-size:18px}.kiosk-tabs{order:3;width:100%}.tab-btn{flex:1;padding:10px 8px}.bay-card{min-height:130px;padding:16px}.bay-number{font-size:32px}.bay-timer{font-size:22px}.res-card{grid-template-columns:1fr auto}.res-time{grid-column:1 / -1}.mgr-layout{flex-direction:column}.mgr-nav{width:auto;padding:8px 12px;gap:0;position:sticky;top:0;z-index:10}.nav-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.nav-head .tenant-name{border:none;margin:0;padding:0}.nav-toggle{display:block;min-height:44px;padding:0 16px;background:var(--panel-2);color:var(--text);font-weight:700;font-size:15px}.nav-links{display:none;flex:none;padding-top:8px}.nav-links.open{display:flex;max-height:calc(100vh - 72px);overflow-y:auto}.mgr-nav a{min-height:44px;display:flex;align-items:center;padding:8px 12px;font-size:16px}.mgr-nav .spacer{display:none}.mgr-nav.simple{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 12px}.mgr-nav.simple .tenant-name{border:none;margin:0;padding:0 8px 0 0}.mgr-main{padding:14px}.cards{gap:10px}.stat-card{min-width:130px;padding:14px 16px;flex:1}.stat-card .value{font-size:22px}.filters>div{flex:1;min-width:120px}.modal{padding:18px}}
