:root{--p:#8B2942;--pd:#6B1E33;--bg:#F7F1EA;--card:#fff;--t:#2A1F1A;--m:#7A6A60;--r:#c62828;--a:#c27803;--ok:#2e7d32;--info:#1565c0}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,Roboto,sans-serif;background:var(--bg);color:var(--t);font-size:15px}
header{position:sticky;top:0;z-index:5;background:var(--p);color:#fff;display:flex;gap:6px;align-items:center;padding:8px 10px}header>div{flex:1}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;flex-wrap:wrap;background:#fff;border-top:1px solid #e5d9d0;z-index:5;max-height:45vh;overflow-y:auto}
nav button{flex:1 0 14%;min-width:64px;background:none;color:var(--m);border:0;border-radius:0;padding:8px 2px;font-size:11px;cursor:pointer}
nav button.on{color:var(--p);font-weight:700;border-top:3px solid var(--p)}
main{padding:10px 10px 90px}.card{background:var(--card);border-radius:12px;padding:12px;margin-bottom:10px;box-shadow:0 1px 3px #0001}
input,select,textarea{font:inherit;padding:9px;border:1px solid #dccfc6;border-radius:8px;width:100%;margin:3px 0;background:#fff}
button{font:inherit;padding:9px 14px;border:0;border-radius:8px;background:var(--p);color:#fff;margin:3px 2px;cursor:pointer}
button.ghost{background:#efe6df;color:var(--t)}button.red{background:var(--r)}button.sm{padding:5px 9px;font-size:13px}button.ok{background:var(--ok)}
.row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.row>*{flex:1}.row.end{justify-content:flex-end}.row.end>*{flex:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.tile{background:#fff;border-radius:10px;padding:10px;border:1px solid #e8ddd4;min-height:72px}.tile b{display:block;font-size:14px}.tile .pr{color:var(--p);font-weight:700}
.tile.vacant_clean{border-left:4px solid var(--ok)}.tile.vacant_dirty{border-left:4px solid var(--a)}.tile.occupied{border-left:4px solid var(--info)}.tile.out_of_order{border-left:4px solid var(--r);opacity:.7}
table{width:100%;border-collapse:collapse}td,th{padding:6px 4px;border-bottom:1px solid #eee;text-align:left;font-size:13px}th{color:var(--m);font-weight:600}.num{text-align:right}
.chips{display:flex;gap:6px;overflow-x:auto;margin:6px 0}.chip{background:#efe6df;color:var(--t);white-space:nowrap;padding:6px 12px;border-radius:20px;border:0;cursor:pointer}.chip.on{background:var(--p);color:#fff}
.big{font-size:22px;font-weight:800}.muted{color:var(--m);font-size:13px}.err{color:var(--r)}.kpi{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kpi div{background:#fff;border-radius:10px;padding:10px}.kpi b{display:block;font-size:18px}
pre{background:#faf7f4;border:1px dashed #cbb;padding:8px;font-size:11.5px;overflow:auto;white-space:pre-wrap}
#modal{position:fixed;inset:0;background:#0006;z-index:20;display:flex;align-items:flex-end}.sheet{background:#fff;width:100%;max-height:90vh;overflow:auto;border-radius:16px 16px 0 0;padding:14px}
#toast{pointer-events:none;position:fixed;bottom:70px;left:50%;transform:translateX(-50%);background:#222;color:#fff;padding:10px 16px;border-radius:20px;z-index:30;max-width:90%}
.login{max-width:360px;margin:10vh auto;text-align:center}.logo{width:64px;height:64px;border-radius:50%;background:var(--p);color:#F5E6D3;font-size:36px;font-weight:800;line-height:64px;margin:auto}
.screen[hidden],[hidden]{display:none!important}
.footer-credit{text-align:center;color:var(--m);font-size:11px;padding:16px 8px 8px}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;background:#efe6df}.badge.ok{background:#e8f5e9;color:var(--ok)}.badge.warn{background:#fff8e1;color:#8a5300}.badge.bad{background:#ffebee;color:var(--r)}
.kds .ticket{border:1px solid #e8ddd4;border-radius:10px;padding:10px;margin:6px 0}.kds .ticket.new{border-left:4px solid var(--r)}.kds .ticket.preparing{border-left:4px solid var(--a)}.kds .ticket.ready{border-left:4px solid var(--ok)}
.askbox{display:flex;gap:6px;margin-top:8px}.askbox input{flex:1}.ask-hit{padding:10px;border-bottom:1px solid #eee;cursor:pointer}.ask-hit:hover{background:#faf7f4}
@media print{header,nav,#toast,#modal,.noprint{display:none!important}main{padding:0}body{background:#fff}}
