:root{--bg: #f4f5f7;--surface: #fff;--surface-2: #f8f9fb;--line: #e3e6eb;--line-strong: #cfd4dc;--text: #1c2330;--muted: #677285;--accent: #17695f;--accent-hover: #11564e;--accent-soft: #e3f1ee;--danger: #b4372f;--danger-soft: #fbeceb;--ok-soft: #e6f4ea;--ok: #1e7a3c;--booked: #dce8fd;--booked-ink: #234a91;--inhouse: #d7f0df;--inhouse-ink: #1e6b37;--out: #eceef1;--out-ink: #5d6675;--block: #fde6c8;--block-ink: #8a4f0c;--ota: #ecdffb;--ota-ink: #5f3596;--today: #fffbea;--radius: 10px;--shadow: 0 1px 2px rgba(20, 30, 50, .06), 0 2px 8px rgba(20, 30, 50, .05);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #12161d;--surface: #1a1f28;--surface-2: #20262f;--line: #2c333e;--line-strong: #3a4250;--text: #e6e9ee;--muted: #9aa3b2;--accent: #3fb3a3;--accent-hover: #5cc6b7;--accent-soft: #183632;--danger: #ef7d74;--danger-soft: #3a1f1d;--ok-soft: #173322;--ok: #6fd08f;--booked: #1f3354;--booked-ink: #a9c6fb;--inhouse: #1b3a26;--inhouse-ink: #93dcaa;--out: #2a2f37;--out-ink: #a6aebb;--block: #47331a;--block-ink: #f3c27f;--ota: #35264d;--ota-ink: #cfb2f5;--today: #24291f;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:18px}h2{font-size:17px;margin-bottom:12px}h3{font-size:15px;margin-bottom:8px}section{display:grid;gap:12px;align-content:start}section>h3{margin-top:12px;margin-bottom:0}a{color:var(--accent)}small,.muted{color:var(--muted)}button{font:inherit;font-weight:500;padding:7px 12px;border-radius:8px;cursor:pointer;border:1px solid var(--line-strong);background:var(--surface);color:var(--text)}button:hover{background:var(--surface-2)}button:disabled{opacity:.5;cursor:default}button[type=submit],button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button[type=submit]:hover,button.primary:hover{background:var(--accent-hover)}button.ghost{border-color:transparent;background:transparent}button.danger{color:var(--danger)}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);padding:7px 9px;min-width:0;border:1px solid var(--line-strong);border-radius:8px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}label{font-size:12px;color:var(--muted);font-weight:500}label>input,label>select,label>textarea{font-size:14px}label:has(>input[type=checkbox]){display:inline-flex;gap:6px;align-items:center;color:var(--text);font-size:14px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}th,td{padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}tbody tr:last-child td{border-bottom:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}[role=alert]{margin:0;padding:8px 12px;border-radius:8px;background:var(--danger-soft);color:var(--danger)}[role=status]{margin:0;padding:8px 12px;border-radius:8px;background:var(--ok-soft);color:var(--ok)}.topbar{position:sticky;top:0;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;max-width:1280px;margin:0 auto}.tabs{display:flex;gap:2px;padding:0 12px;max-width:1280px;margin:0 auto;overflow-x:auto}.tabs button{border:0;border-radius:0;background:none;padding:10px 12px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.tabs button[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.page{max-width:1280px;margin:0 auto;padding:20px;display:grid;gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:grid;gap:10px;min-width:0}.card>h3{margin:0}.grid-2{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.spread{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.field{display:grid;gap:3px}.scroll{overflow-x:auto}.empty{color:var(--muted);padding:12px 0}.count{display:inline-block;min-width:22px;padding:1px 7px;margin-left:6px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:12px;text-align:center}.login{max-width:360px;margin:14vh auto}.badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600;background:var(--out);color:var(--out-ink)}.badge.confirmed{background:var(--booked);color:var(--booked-ink)}.badge.checked_in{background:var(--inhouse);color:var(--inhouse-ink)}.badge.cancelled,.badge.no_show,.badge.expired_paid{background:var(--danger-soft);color:var(--danger)}.cal{border-collapse:separate;border-spacing:0;width:100%;min-width:752px;table-layout:fixed}.cal th,.cal td{padding:0;border-bottom:1px solid var(--line);height:34px}.cal thead th{text-transform:none;letter-spacing:0;text-align:center;font-weight:500;padding:4px 0;min-width:46px;line-height:1.2}.cal thead th.is-today b{color:var(--accent)}.cal thead th b{display:block;font-size:14px;color:var(--text)}.cal .room{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;padding:0 12px 0 0;width:108px;min-width:108px;border-right:1px solid var(--line)}.cal .room b{color:var(--text);font-size:14px}.cal .room small{margin-left:4px;text-transform:none;letter-spacing:0;font-weight:500}.cal td.night{border-left:1px solid var(--line)}.cal .wknd{background:var(--surface-2)}.cal .is-today{background:var(--today)}.cal td.span{padding:3px 2px;border-left:1px solid var(--line)}.bar{display:block;height:26px;line-height:26px;padding:0 8px;border-radius:6px;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;width:100%;text-align:left}button.bar{cursor:pointer}button.bar:hover{filter:brightness(.96)}.k-booking{background:var(--booked);color:var(--booked-ink)}.k-checked_in{background:var(--inhouse);color:var(--inhouse-ink)}.k-checked_out{background:var(--out);color:var(--out-ink)}.k-block{background:var(--block);color:var(--block-ink)}.k-ota{background:var(--ota);color:var(--ota-ink)}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;background:var(--c)}.backdrop{position:fixed;inset:0;background:#0f141e59;z-index:10}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);z-index:11;background:var(--surface);border-left:1px solid var(--line);overflow-y:auto;padding:20px;display:grid;gap:16px;align-content:start}.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0}.facts dt{color:var(--muted)}.facts dd{margin:0}.money{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.money div{background:var(--surface-2);border-radius:8px;padding:8px 10px}.money small{display:block}.money b{font-size:16px}.money .due b{color:var(--danger)}.money .settled b{color:var(--ok)}.tiles{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.tile{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;cursor:pointer;color:var(--text);font-size:14px;font-weight:400}.tile:has(input:checked){border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.tile input{position:absolute;opacity:0}.tile b{font-size:16px}@media(max-width:600px){.topbar-row,.page{padding-left:16px;padding-right:16px}.money b{font-size:14px}}
