:root{--bg:#f3f2ef;--surface:#fff;--sunk:#eceae5;--ink:#1e1e1f;--muted:#66625a;--line:#dedad2;--accent:#8e6e3d;--accent-soft:#f1e8da;--on-accent:#fff;--ok:#2c7a57;--ok-soft:#e1f0e8;--warn:#9a6512;--warn-soft:#f7ecd8;--crit:#b23e34;--crit-soft:#f7e2df;--info:#376590;--info-soft:#e1eaf3;--display:"Sora",ui-sans-serif,system-ui,sans-serif;--body:"Figtree",ui-sans-serif,system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131314;--surface:#1c1c1e;--sunk:#232325;--ink:#eeeae2;--muted:#a49f95;--line:#313033;--accent:#c9a66b;--accent-soft:#33291b;--on-accent:#1a1a1a;--ok:#5dbb8e;--ok-soft:#1b3127;--warn:#e0a84a;--warn-soft:#3a2d16;--crit:#ee7f74;--crit-soft:#3d1f1c;--info:#7fb0de;--info-soft:#1b2a39;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#131314;--surface:#1c1c1e;--sunk:#232325;--ink:#eeeae2;--muted:#a49f95;--line:#313033;--accent:#c9a66b;--accent-soft:#33291b;--on-accent:#1a1a1a;--ok:#5dbb8e;--ok-soft:#1b3127;--warn:#e0a84a;--warn-soft:#3a2d16;--crit:#ee7f74;--crit-soft:#3d1f1c;--info:#7fb0de;--info-soft:#1b2a39;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--body);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 40px;font-size:15px;line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{flex-direction:column;gap:20px;max-width:1280px;margin:0 auto;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand svg{flex:none;width:40px;height:40px}.brand-name{font-family:var(--display);letter-spacing:-.5px;font-size:22px;line-height:1}.brand-name b{font-weight:700}.brand-name span{color:var(--accent);font-weight:400}.sub{color:var(--muted);margin-top:4px;font-size:13px}.login{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:16px;max-width:380px;margin:12vh auto 0;padding:28px;display:flex}.login h1{font-family:var(--display);margin:8px 0 0;font-size:20px;font-weight:600}label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}input{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:15px}.err{background:var(--crit-soft);color:var(--crit);border-radius:8px;padding:10px 12px;font-size:14px}.note{color:var(--muted);font-size:12px}.btn{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:500}.btn:hover:not(:disabled){border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn.danger{color:var(--crit);border-color:var(--crit-soft)}.btn.small{padding:5px 10px;font-size:13px}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.who{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.role{letter-spacing:.06em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent);border-radius:99px;padding:3px 9px;font-size:11px;font-weight:600}.time{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:24px}.summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.stat .n{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.1}.stat .l{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:12px}.stat.alert .n{color:var(--crit)}@media (max-width:640px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.main{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.main.solo{grid-template-columns:minmax(0,1fr)}@media (max-width:980px){.main{grid-template-columns:minmax(0,1fr)}}.rooms{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}@media (max-width:400px){.rooms{grid-template-columns:minmax(0,1fr)}}.room{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.room-head{justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px 10px;display:flex}.room-name{font-family:var(--display);font-size:16px;font-weight:600}.room-code{font-family:var(--mono);color:var(--muted);font-size:12px}.guest{margin-top:2px;font-size:14px}.badge{letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:600}.b-occupied{background:var(--info-soft);color:var(--info)}.b-arriving{background:var(--ok-soft);color:var(--ok)}.b-departing{background:var(--warn-soft);color:var(--warn)}.b-cleaning{background:var(--accent-soft);color:var(--accent)}.b-vacant{background:var(--sunk);color:var(--muted)}.alerts{flex-direction:column;gap:6px;padding:0 16px 10px;display:flex}.alert{border-radius:8px;padding:7px 10px;font-size:13px}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.crit{background:var(--crit-soft);color:var(--crit)}.tiles{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 16px;display:grid}.tile{background:var(--bg);border:1px solid var(--line);text-align:left;min-height:96px;color:var(--muted);border-radius:10px;flex-direction:column;align-items:flex-start;gap:3px;padding:10px;transition:background .15s,border-color .15s,color .15s;display:flex}.tile svg{color:var(--muted);margin-bottom:4px}.tile .nm{color:var(--ink);font-size:13px;font-weight:600;line-height:1.2}.tile .st{color:var(--muted);font-size:12px}.tile.tap:hover:not(:disabled){border-color:var(--accent)}.tile.on{background:var(--ok-soft);border-color:var(--ok)}.tile.on svg,.tile.on .st{color:var(--ok)}.tile.warn{background:var(--warn-soft);border-color:var(--warn)}.tile.warn svg,.tile.warn .st{color:var(--warn)}.tile .pair{gap:4px;margin-top:auto;padding-top:4px;display:flex}.mini{border:1px solid var(--line);background:var(--surface);border-radius:6px;margin-top:auto;padding:3px 8px;font-size:12px;font-weight:500}.pair .mini{margin-top:0}.mini:hover:not(:disabled){border-color:var(--accent)}.mini.danger{color:var(--crit);border-color:var(--crit-soft)}.dev{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:46px;padding:9px 16px;display:flex}.dev:last-child{border-bottom:0}.dev-name{font-size:14px}.dev-val{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.dot{background:var(--line);border-radius:50%;width:8px;height:8px;display:inline-block}.dot.on{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.crit{background:var(--crit)}.switch{border:1px solid var(--line);background:var(--sunk);border-radius:99px;width:42px;height:24px;padding:0;position:relative}.switch:after{content:"";background:var(--surface);border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch[aria-checked=true]{background:var(--ok);border-color:var(--ok)}.switch[aria-checked=true]:after{left:20px}.code{background:var(--accent-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.code .pin{font-family:var(--mono);letter-spacing:.08em;font-size:20px}.code .hint{color:var(--muted);font-size:12px}.actions{border-top:1px solid var(--line);background:var(--sunk);flex-wrap:wrap;gap:8px;padding:12px 16px;display:flex}.updated{color:var(--muted);padding:0 16px 10px;font-size:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel h2{font-family:var(--display);border-bottom:1px solid var(--line);margin:0;padding:14px 16px;font-size:15px;font-weight:600}.log{max-height:640px;margin:0;padding:0;list-style:none;overflow:auto}.log li{border-bottom:1px solid var(--line);grid-template-columns:52px minmax(0,1fr);gap:8px;padding:9px 16px;font-size:13px;display:grid}.log .t{font-family:var(--mono);color:var(--muted);font-size:12px}.log .by{color:var(--muted);font-size:12px}.toasts{z-index:10;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:var(--bg);border-radius:10px;padding:10px 14px;font-size:14px;box-shadow:0 4px 16px #0003}.toast.crit{background:var(--crit);color:#fff}.empty{text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:12px;padding:28px}.staff{flex-direction:column;display:flex}.staff-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-right:16px;display:flex}.staff-head h2{border-bottom:0}.people{margin:0;padding:0;list-style:none}.people li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.who-email{word-break:break-all;font-size:14px;font-weight:500}.person-actions{align-items:center;gap:8px;display:flex}select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font-size:14px}.add{grid-template-columns:minmax(0,1fr) 160px auto;align-items:end;gap:10px;padding:14px 16px 6px;display:grid}@media (max-width:560px){.add{grid-template-columns:minmax(0,1fr)}}.role-help{padding:0 16px 14px}.staff .err{margin:0 16px 14px}.by{color:var(--muted);font-size:12px}.pwform{flex-direction:column;gap:12px;display:flex}.pwpanel .pwform{max-width:420px;padding:14px 16px}.pw-actions{gap:8px;display:flex}.link{color:var(--accent);background:0 0;border:0;align-self:flex-start;padding:0;font-size:13px;text-decoration:underline}.ok-note{background:var(--ok-soft);color:var(--ok);border-radius:8px;padding:10px 12px;font-size:14px}
