:root{--bg:#f6f7f9;--surface:#fff;--border:#dfe3e8;--text:#16191d;--muted:#6b7280;--accent:#1e3a8a;--accent-fg:#fff;--accent-soft:#e0e7ff;--clean:#1f9254;--clean-bg:#e7f6ed;--dirty:#b4341f;--dirty-bg:#fdeceb;--muted-bg:#eceef1;--warn:#a15c00;--warn-bg:#fdf1dc;--dirty-fg:#fff;--radius:8px;--ready-bg:#dcfce7;--ready-bd:#22c55e;--ready-fg:#14532d;--in-bg:#fee2e2;--in-bd:#ef4444;--in-fg:#7f1d1d;--arr-bg:#fae8ff;--arr-bd:#d946ef;--arr-fg:#701a75;--dep-bg:#e0f2fe;--dep-bd:#38bdf8;--dep-fg:#075985;--occdirty-bg:#ecfccb;--occdirty-bd:#84cc16;--occdirty-fg:#3f6212;--vacdirty-bg:#e4dcfb;--vacdirty-bd:#5b21b6;--vacdirty-fg:#3b0764;--ooo-bg:#3f3f46;--ooo-bd:#18181b;--ooo-fg:#fafafa;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14171b;--surface:#1c2025;--border:#2e343c;--text:#e9ecef;--muted:#9aa3ad;--accent:#7ba1ff;--accent-fg:#0b1220;--accent-soft:#1a2338;--clean:#5cc48b;--clean-bg:#17301f;--dirty:#f08b7a;--dirty-bg:#3a1f1b;--warn:#e0a95c;--warn-bg:#33260f;--muted-bg:#262b31;--dirty-fg:#1c0d0a;--ready-bg:#123321;--ready-bd:#22c55e;--ready-fg:#bbf7d0;--in-bg:#3d1717;--in-bd:#ef4444;--in-fg:#fecaca;--arr-bg:#3a1740;--arr-bd:#d946ef;--arr-fg:#f5d0fe;--dep-bg:#0f2f44;--dep-bd:#38bdf8;--dep-fg:#bae6fd;--occdirty-bg:#263510;--occdirty-bd:#84cc16;--occdirty-fg:#d9f99d;--vacdirty-bg:#2b1c50;--vacdirty-bd:#8b5cf6;--vacdirty-fg:#ddd6fe;--ooo-bg:#3f3f46;--ooo-bd:#a1a1aa;--ooo-fg:#fafafa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent)}h2{margin:28px 0 12px;font-size:15px}p.hint{color:var(--muted);margin:4px 0 16px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}dialog.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:560px;max-width:92vw;max-height:86vh;padding:18px 20px}dialog.panel::backdrop{background:#0006}dialog.panel .row a{margin:0 6px}dialog.panel textarea{width:100%;font:inherit}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.legend i{border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}form.row,.card>.row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}label{color:var(--muted);gap:4px;font-size:12px;display:grid}input,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;min-width:0;padding:7px 9px}button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:7px 12px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}button:disabled{opacity:.5;cursor:default}button[aria-busy=true]{pointer-events:none}button[aria-busy=true]:disabled{opacity:.75}button[aria-busy=true]:after{content:"";vertical-align:-.1em;border:2px solid;border-right-color:#0000;border-radius:50%;width:.8em;height:.8em;margin-left:.45em;animation:.7s linear infinite busy-spin;display:inline-block}@keyframes busy-spin{to{transform:rotate(360deg)}}.nav-progress{z-index:1000;pointer-events:none;height:3px;position:fixed;inset:0 0 auto;overflow:hidden}.nav-progress:before{content:"";background:var(--accent);width:40%;animation:1.1s ease-in-out infinite nav-progress;position:absolute;inset:0 auto 0 0}.nav-progress.ez:before{background:#2f74b5}@keyframes nav-progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){button[aria-busy=true]:after{animation-duration:2s}.nav-progress:before{opacity:.7;width:100%;animation:none}}.error{color:var(--dirty);font-size:13px}.notice{color:var(--muted);font-size:13px}.pill{background:var(--muted-bg);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:7px 10px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}td.mono,th.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.scroll{overflow-x:auto}.stack{gap:10px;display:grid}.between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}table.grid{table-layout:fixed;min-width:720px}table.grid th,table.grid td{border:1px solid var(--border);text-align:center;vertical-align:middle;padding:4px 6px}table.grid thead th{text-transform:none;letter-spacing:0;white-space:nowrap;font-size:11px}table.grid thead th span{color:var(--muted);display:block}table.grid thead th strong{color:var(--text);font-weight:600;display:block}table.grid thead th.now,table.grid tbody tr.now{background:var(--clean-bg)}table.grid tbody th{text-align:left;white-space:nowrap;text-overflow:ellipsis;text-transform:none;letter-spacing:0;color:var(--text);font-size:13px;overflow:hidden}table.grid tbody th .pill{margin-left:6px}table.grid thead th:first-child{width:150px}@media (width<=760px){table.grid thead th:first-child{width:64px}table.grid tbody th .type,table.grid tbody th .pill{display:none}}.cell{height:34px;font-size:12px}.cell a{text-overflow:ellipsis;white-space:nowrap;color:inherit;text-decoration:none;display:block;overflow:hidden}.cell.free{background:var(--surface)}.cell.booked,.cell.checkedIn,.cell.checkedOut{text-align:left;padding:3px}.cell a.bar{background:var(--st-bg);color:var(--st-fg);border:1px solid color-mix(in srgb, var(--st-bd) 50%, transparent);border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:600;display:block}table.grid tbody th .type{color:var(--muted);margin-left:8px;font-size:11px}.legend i.swatch{background:var(--st-bg);border:1px solid var(--st-bd)}a.button.on{border-color:var(--accent);color:var(--accent)}table.grid td.cell.free a{text-align:center;color:var(--muted);opacity:0;display:block}table.grid td.cell.free:hover a,table.grid td.cell.free a:focus{opacity:1}.cell.ooo{background:var(--muted-bg);background-image:repeating-linear-gradient(45deg, transparent 0 4px, var(--border) 4px 5px)}.legend i.cell{height:10px}.nights{background:var(--muted-bg);border-radius:6px;align-self:center;margin:0;padding:7px 10px;font-size:13px}.warning{border:1px solid var(--dirty);background:var(--dirty-bg);color:var(--dirty);border-radius:var(--radius);padding:10px 12px;font-size:13px}td.oversold{color:var(--dirty);background:var(--dirty-bg);font-weight:600}tbody tr.group th{text-align:left;background:var(--bg);color:var(--muted)}table.grid tbody tr.group td{background:var(--bg);color:var(--muted);text-align:center;font-size:12px}tr.retired td,tr.retired th{opacity:.55}tr.retired .pill{margin-left:6px}td.right,th.right{text-align:right}tr.voided td{opacity:.55;text-decoration:line-through}tr.voided td .hint{text-decoration:none}td .also{color:var(--muted);font-size:12px}tr.payment td{color:var(--clean)}.owes{color:var(--dirty)}.settled{color:var(--clean)}table.grid tr.tally th,table.grid tr.tally td{background:var(--bg);font-size:12px}table.grid tr.tally th{text-align:left;white-space:nowrap;text-transform:none;letter-spacing:0;color:var(--text)}table.grid tfoot tr.tally td{font-weight:600}.row a.on{color:var(--text);font-weight:600;text-decoration:none}.strip{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.strip>div{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex:120px;padding:8px 10px}.strip dt{color:var(--muted);font-size:12px}.strip dd{margin:2px 0 0;font-size:18px}.facts{margin:0 0 12px}.facts>div{gap:8px;padding:2px 0;display:flex}.facts dt{min-width:130px;color:var(--muted);font-size:12px}.facts dd{margin:0}.sheet{color:#000;border:1px solid var(--border);background:#fff;max-width:190mm;margin:16px auto;padding:16mm 14mm;font-size:13px}.sheet-head{grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;margin-bottom:18px;display:grid}.sheet-head h2{text-align:center;letter-spacing:.06em;margin:0;font-size:18px}.sheet-head .right{text-align:right}.sheet .facts{margin:0 0 14px}.sheet .facts>div{gap:8px;display:flex}.sheet .facts dt{min-width:150px;font-weight:600}.sheet .facts dd{margin:0}.sheet table{border-collapse:collapse;width:100%}.sheet table :is(th,td){color:#000;border:1px solid #000;padding:5px 7px}.sheet table:not(.totals) :is(th,td):nth-child(2){width:55%}.sheet table.totals{width:auto;margin-top:-1px;margin-left:auto}.sheet table.totals tr.due th,.sheet table.totals tr.due td{font-weight:700}.signatures{text-align:center;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;padding-bottom:60px;display:grid}@media print{.topbar,.no-print{display:none}body,.page{background:#fff;margin:0;padding:0}.sheet{border:0;max-width:none;margin:0;padding:0}@page{size:A4;margin:14mm}}dialog.ask{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);min-width:320px;max-width:90vw;padding:18px 20px}dialog.ask::backdrop{background:#0006}dialog.ask h3{margin:0 0 6px}dialog.ask label{margin:12px 0}dialog.ask input,dialog.ask select{width:100%}dialog.ask .row{gap:8px;margin-top:12px;display:flex}dialog.settle{min-width:320px}dialog.settle p{margin:4px 0 12px}dialog.settle label{margin:12px 0}.badge{background:var(--dirty);min-width:18px;color:var(--dirty-fg);text-align:center;border-radius:9px;margin-left:6px;padding:1px 5px;font-size:11px;font-weight:600;display:inline-block}ul.attention{margin:0;padding-left:18px}ul.attention li{margin:4px 0}.page{padding:20px 24px 64px}form.row,form.card,.card>form.row{max-width:1100px}.topbar{background:var(--surface);border-bottom:1px solid var(--border)}.topbar a{color:inherit;text-decoration:none}.topbar .bar{white-space:nowrap;align-items:center;gap:8px;min-height:52px;padding:0 20px;display:flex}.topbar .logo{letter-spacing:-.02em;margin-right:4px;font-size:17px;font-weight:800}.topbar .hotel{color:var(--muted);border-left:1px solid var(--border);text-overflow:ellipsis;max-width:220px;margin-right:12px;padding-left:10px;font-size:12.5px;overflow:hidden}.topbar .sections{gap:4px;display:flex}.topbar .sec{color:var(--muted);border-radius:7px;padding:6px 14px;font-weight:600}.topbar .sec:hover{color:var(--text)}.topbar .sec.on{background:var(--accent);color:var(--accent-fg)}.topbar .spacer{flex:1}.topbar .search input{width:260px;font-size:13px}a.button{border:1px solid var(--border);background:var(--surface);color:var(--text);white-space:nowrap;border-radius:7px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none;display:inline-block}a.button .label{margin-left:4px}a.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.topbar .bypass{border:1px dashed var(--warn);color:var(--warn);background:var(--warn-bg)}.person{position:relative}.person summary{cursor:pointer;list-style:none}.person summary::-webkit-details-marker{display:none}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.person .menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);white-space:normal;gap:10px;min-width:220px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0000001f}.person .menu .who{margin:0;font-size:13px;font-weight:600}.person .menu a{color:var(--accent)}.topbar .pages{border-top:1px solid var(--border);white-space:nowrap;scrollbar-width:none;align-items:stretch;min-height:42px;padding:0 20px;font-size:13.5px;display:flex;overflow-x:auto}.topbar .pages a{color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:0 12px;font-weight:500;display:flex}.topbar .pages a:hover{color:var(--text)}.topbar .pages a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:650}.topbar .pages a.quick{font-size:13px;font-weight:400}.topbar .pages a.quick b{color:var(--text);margin-left:5px}.topbar .pages .divider{background:var(--border);flex:none;width:1px;margin:11px 8px}@media (width<=1200px){.topbar .hotel,.topbar .bar>.bypass{display:none}.topbar .search input{width:180px}}@media (width<=760px){.page{padding:14px 14px 48px}.topbar .bar{flex-wrap:wrap;row-gap:0;padding:0 14px}.topbar .sections{scrollbar-width:none;border-top:1px solid var(--border);flex-basis:100%;order:10;margin:0 -14px;padding:6px 8px;overflow-x:auto}.topbar .search input{width:120px}.topbar .new-booking .label{display:none}.topbar .pages{padding:0 6px}}.ph{flex-wrap:wrap;align-items:baseline;gap:12px;margin:0 0 14px;display:flex}.ph h1{letter-spacing:-.01em;margin:0;font-size:20px}.ph .hint{color:var(--muted);font-size:13px}.ph .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.st-ready{--st-bg:var(--ready-bg);--st-bd:var(--ready-bd);--st-fg:var(--ready-fg)}.st-in{--st-bg:var(--in-bg);--st-bd:var(--in-bd);--st-fg:var(--in-fg)}.st-arr{--st-bg:var(--arr-bg);--st-bd:var(--arr-bd);--st-fg:var(--arr-fg)}.st-dep{--st-bg:var(--dep-bg);--st-bd:var(--dep-bd);--st-fg:var(--dep-fg)}.st-occdirty{--st-bg:var(--occdirty-bg);--st-bd:var(--occdirty-bd);--st-fg:var(--occdirty-fg)}.st-vacdirty{--st-bg:var(--vacdirty-bg);--st-bd:var(--vacdirty-bd);--st-fg:var(--vacdirty-fg)}.st-ooo{--st-bg:var(--ooo-bg);--st-bd:var(--ooo-bd);--st-fg:var(--ooo-fg)}.pill[class*=st-]{background:var(--st-bg);color:var(--st-fg);border:1px solid color-mix(in srgb, var(--st-bd) 45%, transparent);font-weight:650}.board{gap:12px;display:grid}.floor{grid-template-columns:64px 1fr;align-items:start;gap:12px;display:grid}.floor h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0;padding-top:10px;font-size:12px;font-weight:700}.rooms{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}@media (width<=760px){.floor{grid-template-columns:1fr;gap:6px}.floor h3{padding-top:0}}.room{text-align:left;width:100%;min-height:78px;font:inherit;cursor:pointer;border:1px solid color-mix(in srgb, var(--st-bd,var(--border)) 45%, transparent);background:var(--st-bg,var(--surface));color:var(--st-fg,var(--text));border-radius:9px;padding:7px 9px 8px;text-decoration:none;display:block;position:relative}.room:hover{border-color:var(--st-bd,var(--border))}.room .head{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.room .no{letter-spacing:-.01em;font-size:19px;font-weight:750}.room .type{white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:650;overflow:hidden}.room .guest,.room .meta{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.room .guest{margin-top:4px;font-size:12px;font-weight:550}.room .meta{font-size:11px}.room .meta.flagged{padding-right:48px}.room .owes-flag{color:#b91c1c;background:#fff;border-radius:4px;padding:0 4px;font-size:10.5px;font-weight:700;position:absolute;bottom:6px;right:7px}.statuses{flex-wrap:wrap;gap:6px;margin:0 0 16px;display:flex}button.status{font:inherit;cursor:pointer;border:1.5px solid var(--st-bd,var(--border));background:var(--st-bg,var(--surface));color:var(--st-fg,var(--text));border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600}button.status b{margin-left:6px}button.status.on{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.stats{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media (width<=1100px){.stats{grid-template-columns:repeat(3,1fr)}}.stat p.hint{margin:0}.stat strong{letter-spacing:-.02em;font-size:24px;font-weight:750;display:block}.columns{grid-template-columns:1.3fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.columns{grid-template-columns:1fr}}.card.flush{padding:0}.card.flush .empty{margin:0;padding:12px 16px}ul.attention.approvals li,ul.attention li[data-kind]{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}ul.attention li[data-kind]{flex-wrap:nowrap}.card.flush ul.attention{padding:0;list-style:none}.card.flush ul.attention li{border-bottom:1px solid var(--border);margin:0;padding:11px 14px}.card.flush ul.attention li:last-child{border-bottom:0}ul.attention li .what{flex:260px}ul.attention li .what:first-letter{text-transform:uppercase}ul.attention li .what .hint{color:var(--muted);font-size:12.5px;display:block}ul.attention li[data-kind]:before{content:"";background:#d97706;border-radius:50%;flex:none;width:8px;height:8px}ul.attention li[data-kind=receivable\.aged]:before,ul.attention li[data-kind=stay\.overstay_balance]:before{background:#dc2626}ul.attention li[data-kind]>a{color:var(--muted);margin-left:auto;font-size:13px;text-decoration:none}table.forward td{white-space:nowrap;border:0;padding:4px 6px}table.forward td.bar{background:linear-gradient(var(--bg), var(--bg)) center / 100% 12px no-repeat;width:100%}table.forward td.bar span{background:var(--accent);opacity:.8;border-radius:4px;min-width:2px;height:12px;display:block}@media (width<=760px){.stats{grid-template-columns:1fr 1fr;gap:8px}.stat strong{font-size:20px}ul.attention.approvals li .what{flex-basis:100%}ul.attention.approvals li button{flex:1}}a.report-link{color:inherit;gap:4px;text-decoration:none;display:grid}a.report-link:hover{border-color:var(--accent)}a.report-link .hint{color:var(--muted);font-size:13px}.map-otherdate{background:var(--muted-bg);border:1px solid var(--border);border-radius:8px;margin:0 0 12px;padding:8px 12px;font-size:13px}.rate-price{background:var(--accent-soft);border-radius:6px;flex-direction:column;flex:100%;gap:6px;padding:8px 10px;display:flex}.rate-price .rate-table{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.rate-price .table-price{color:var(--accent)}.rate-price .table-price.struck{color:var(--muted);text-decoration:line-through}.rate-price .table-night{white-space:nowrap;margin-right:10px}.rate-price label.check{flex-direction:row;align-items:center;gap:6px;display:flex}.pill.manual{background:var(--warn-bg);color:var(--warn);font-weight:600}
