:root{--bg:#f3f6f5;--surface:#fff;--surface-2:#ebf1ef;--line:#dae4e1;--line-strong:#c3d2ce;--ink:#13211e;--muted:#5a6b66;--faint:#8a9a95;--brand:#0f6b5c;--brand-ink:#0b5246;--brand-soft:#ddeee9;--on-brand:#fff;--accent:#e8962e;--accent-soft:#fbebd5;--accent-ink:#8a520f;--rail:#0e2a25;--rail-2:#163a33;--rail-ink:#cfe2dd;--rail-muted:#7fa39a;--rail-on:#3db89f;--info:#2f6fa8;--info-soft:#e0ecf7;--warn:#b7791f;--warn-soft:#fbf0dc;--bad:#b4413c;--bad-soft:#f7e2e0;--gone:#94a39f;--gone-soft:#e7ecea;--shadow:0 1px 2px #0f28230f,0 8px 24px #0f282312;--f-display:"Outfit","Anuphan",system-ui,sans-serif;--f-body:"Anuphan","Outfit",system-ui,sans-serif;--r:10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1614;--surface:#14201d;--surface-2:#1a2925;--line:#24352f;--line-strong:#33483f;--ink:#e4eeeb;--muted:#9aada7;--faint:#6e827c;--brand:#3db89f;--brand-ink:#7fd6c3;--brand-soft:#173830;--on-brand:#06201a;--accent:#f0a64a;--accent-soft:#3a2913;--accent-ink:#f6c27f;--rail:#091512;--rail-2:#12241f;--rail-ink:#cfe2dd;--rail-muted:#6f9289;--info:#7fb2e0;--info-soft:#16283a;--warn:#e3ae57;--warn-soft:#33270f;--bad:#e58a84;--bad-soft:#3a1a18;--gone:#73857f;--gone-soft:#1f2c29;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1614;--surface:#14201d;--surface-2:#1a2925;--line:#24352f;--line-strong:#33483f;--ink:#e4eeeb;--muted:#9aada7;--faint:#6e827c;--brand:#3db89f;--brand-ink:#7fd6c3;--brand-soft:#173830;--on-brand:#06201a;--accent:#f0a64a;--accent-soft:#3a2913;--accent-ink:#f6c27f;--rail:#091512;--rail-2:#12241f;--rail-ink:#cfe2dd;--rail-muted:#6f9289;--info:#7fb2e0;--info-soft:#16283a;--warn:#e3ae57;--warn-soft:#33270f;--bad:#e58a84;--bad-soft:#3a1a18;--gone:#73857f;--gone-soft:#1f2c29;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-family:var(--f-display);font-variant-numeric:tabular-nums}.app{grid-template-columns:236px minmax(0,1fr);min-height:100%;display:grid}.chrome{top:env(safe-area-inset-top,0px);z-index:15;background:var(--rail);color:var(--rail-ink);grid-column:1/-1;position:sticky}.hdr{padding-block:10px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));border-bottom:1px solid var(--rail-2);align-items:center;gap:14px;display:flex}.hdr .logo{flex:none;display:block}.hdr .logo svg{width:auto;height:26px;display:block}.prop{background:var(--rail-2);text-align:left;color:inherit;border:0;border-radius:9px;flex:none;align-items:center;gap:9px;padding:5px 10px 5px 5px;display:flex}.prop .av{background:var(--accent);color:#2a1700;width:28px;height:28px;font-weight:700;font-family:var(--f-display);border-radius:7px;flex:none;place-items:center;display:grid}.prop b{color:#fff;font-size:13px;font-weight:600;line-height:1.2;display:block}.prop small{color:var(--rail-muted);font-size:11px}.prop .chev{width:14px;height:14px;color:var(--rail-muted)}.search{background:var(--rail-2);width:300px;min-width:0;color:var(--rail-ink);border:1px solid #0000;border-radius:9px;align-items:center;gap:8px;margin-left:auto;padding:7px 10px;display:flex}.search:focus-within{border-color:var(--rail-on)}.search input{color:#fff;background:0 0;border:0;outline:none;width:100%;min-width:0}.search input::placeholder{color:var(--rail-muted)}.search svg{width:16px;height:16px;color:var(--rail-muted);flex:none}.hdr .btn.primary{background:var(--rail-on);border-color:var(--rail-on);color:#06201a}.hdr .face{background:var(--accent);color:#2a1700;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:grid}.modbar{padding-block:8px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));align-items:center;gap:16px;display:flex}.crumb{font-family:var(--f-display);color:var(--rail-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:500;overflow:hidden}.crumb b{color:#fff;font-weight:600}.mods{scrollbar-width:none;flex:none;gap:4px;max-width:100%;margin-left:auto;display:flex;overflow-x:auto}.mods::-webkit-scrollbar{display:none}.mods a{color:var(--rail-ink);white-space:nowrap;border-radius:9px;align-items:center;gap:7px;padding:7px 13px;font-size:14px;text-decoration:none;display:flex}.mods a svg{opacity:.8;width:17px;height:17px}.mods a:hover{background:var(--rail-2)}.mods a.on{background:var(--rail-on);color:#06201a;font-weight:600}.mods a.on svg{opacity:1}.rail{background:var(--rail);color:var(--rail-ink);top:calc(var(--chrome-h,108px) + env(safe-area-inset-top,0px));height:calc(100vh - var(--chrome-h,108px));border-top:1px solid var(--rail-2);flex-direction:column;gap:2px;padding:14px 12px;display:flex;position:sticky;overflow-y:auto}.nav-label{color:var(--rail-muted);align-items:center;gap:8px;padding:12px 10px 4px;font-size:11.5px;font-weight:600;display:flex}.nav-label:first-child{padding-top:2px}.nav a{color:var(--rail-ink);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}.nav a.sub{padding-left:22px;font-size:13.5px}.nav a svg{opacity:.75;flex:none;width:18px;height:18px}.nav a:hover{background:var(--rail-2)}.nav a.on{background:var(--rail-on);color:#06201a;font-weight:600}.nav a.on svg{opacity:1}.nav a .count{background:var(--accent);color:#2a1700;font-size:11px;font-weight:700;font-family:var(--f-display);border-radius:99px;margin-left:auto;padding:0 7px}.nav a.on .count{color:#fff;background:#06201a}.nav a .soon{color:var(--rail-muted);margin-left:auto;font-size:10.5px}.rail .me{border-top:1px solid var(--rail-2);align-items:center;gap:10px;margin-top:auto;padding:12px 10px 0;display:flex}.me .face{color:#06201a;background:#3db89f;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:grid}.me b{color:#fff;font-size:13px;font-weight:500;display:block}.me small{color:var(--rail-muted);font-size:11.5px}.main{flex-direction:column;min-width:0;display:flex}.page-h{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.page-h h1{font-family:var(--f-display);letter-spacing:-.015em;margin:0;font-size:26px;font-weight:600;line-height:1.15}.page-h p{color:var(--muted);margin:2px 0 0;font-size:13px}.page-h .r{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.vc{flex-direction:column;gap:18px;min-width:0;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fld{border:1px solid var(--line-strong);background:var(--surface);border-radius:9px;align-items:center;gap:7px;min-width:0;padding:6px 10px;display:flex}.fld svg{width:15px;height:15px;color:var(--faint);flex:none}.fld input,.fld select{min-width:0;color:var(--ink);background:0 0;border:0;outline:none;font-size:13.5px}.fld input{width:130px}.fld:focus-within{border-color:var(--brand)}.btn{border:1px solid var(--line-strong);background:var(--surface);white-space:nowrap;color:var(--ink);border-radius:9px;align-items:center;gap:6px;padding:7px 12px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--brand)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.primary:hover{background:var(--brand-ink);border-color:var(--brand-ink)}.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#2a1700}.btn.sm{border-radius:7px;padding:4px 9px;font-size:12.5px}.btn svg{width:16px;height:16px}.btn[disabled]{opacity:.45;cursor:not-allowed}.icon-btn{border:1px solid var(--line);background:var(--surface);border-radius:9px;flex:none;place-items:center;width:36px;height:36px;display:grid}.icon-btn svg{width:18px;height:18px}.menu-btn{background:var(--rail-2);color:#fff;border-color:#0000;display:none}.view{padding-block:22px 48px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px));flex-direction:column;gap:18px;min-width:0;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}.panel-h{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.panel-h h2{font-family:var(--f-display);margin:0;font-size:15px;font-weight:600}.panel-h .sub{color:var(--muted);font-size:12.5px}.panel-h .r{align-items:center;gap:6px;margin-left:auto;display:flex}.panel-b{padding:14px 16px}.kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.kpi .lbl{color:var(--muted);font-size:12.5px}.kpi .val{font-family:var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.1}.kpi .val small{color:var(--muted);margin-left:2px;font-size:14px;font-weight:500}.kpi .foot{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.up{color:var(--brand)}.down{color:var(--bad)}.kpi.hero{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.kpi.hero .lbl,.kpi.hero .foot,.kpi.hero .val small{color:color-mix(in srgb,var(--on-brand) 78%,transparent)}.meter{background:color-mix(in srgb,var(--on-brand) 22%,transparent);border-radius:9px;height:6px;margin-top:4px;overflow:hidden}.meter i{background:var(--accent);border-radius:9px;height:100%;display:block}.grid-2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.tabs{background:var(--surface-2);scrollbar-width:none;border-radius:9px;gap:4px;max-width:100%;padding:3px;display:flex;overflow-x:auto}.tabs button{white-space:nowrap;color:var(--muted);background:0 0;border:0;border-radius:7px;flex:none;padding:5px 11px;font-size:13px}.tabs button.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #00000014}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:99px;padding:4px 11px;font-size:13px}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.chip .n{font-family:var(--f-display);opacity:.7;margin-left:4px}.pill{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;font-weight:500;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.st-in{background:var(--brand-soft);color:var(--brand-ink)}.st-conf{background:var(--info-soft);color:var(--info)}.st-pend{background:var(--accent-soft);color:var(--accent-ink)}.st-out{background:var(--gone-soft);color:var(--muted)}.st-cxl{background:var(--bad-soft);color:var(--bad)}.ch{font-size:11px;font-weight:600;font-family:var(--f-display);border:1px solid var(--line-strong);color:var(--muted);letter-spacing:.02em;border-radius:5px;padding:1px 6px;display:inline-block}.rows{flex-direction:column;display:flex}.row{border-top:1px solid var(--line);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 16px;display:grid}.row:first-child{border-top:0}.row .rm{font-family:var(--f-display);background:var(--surface-2);text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;padding:6px 0;font-size:15px;font-weight:600}.row .rm.tbd{color:var(--accent-ink);background:var(--accent-soft);font-size:12px}.row .who{min-width:0}.row .who b{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.row .who span{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.row .act{align-items:center;gap:6px;display:flex}.done-tag{color:var(--brand);align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.done-tag svg{width:15px;height:15px}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:5px;display:inline-block}.board{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.tile{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:9px;flex-direction:column;gap:2px;min-height:64px;padding:8px 9px;display:flex}.tile b{font-family:var(--f-display);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.tile small{color:var(--muted);font-size:11px;line-height:1.3}.t-occ{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.t-occ small{color:color-mix(in srgb,var(--on-brand) 78%,transparent)}.t-clean{background:var(--surface);border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.t-dirty{background:var(--accent-soft);border-color:var(--accent)}.t-dirty small{color:var(--accent-ink)}.t-ooo{background:repeating-linear-gradient(135deg,var(--gone-soft) 0 6px,var(--surface) 6px 12px);border-color:var(--line-strong)}.t-arr{position:relative}.t-arr:after{content:"";background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:7px}.bars{grid-template-columns:28px repeat(14,minmax(0,1fr));align-items:end;gap:6px;height:180px;padding-top:6px;display:grid;position:relative}.bars .axis{height:150px;color:var(--faint);font-size:10.5px;font-family:var(--f-display);text-align:right;flex-direction:column;justify-content:space-between;align-self:start;display:flex}.bar{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;display:flex}.bar .col{background:var(--brand-soft);border-radius:5px 5px 2px 2px;flex-direction:column;justify-content:flex-end;width:100%;max-width:26px;display:flex;position:relative;overflow:hidden}.bar .col i{background:var(--brand);width:100%;display:block}.bar.today .col i{background:var(--accent)}.bar small{color:var(--faint);font-size:10.5px;font-family:var(--f-display);white-space:nowrap}.bar.today small{color:var(--ink);font-weight:600}.gridline{border-top:1px dashed var(--line);pointer-events:none;position:absolute;left:34px;right:0}.mix{flex-direction:column;gap:10px;display:flex}.mix .stack{border-radius:99px;gap:2px;height:12px;display:flex;overflow:hidden}.mix .stack i{height:100%;display:block}.mix ul{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.mix li{grid-template-columns:12px minmax(0,1fr) auto auto;align-items:center;gap:8px;font-size:13px;display:grid}.mix li i{border-radius:3px;width:10px;height:10px}.mix li .num{color:var(--muted);text-align:right;min-width:64px;font-size:12.5px}.tape-wrap{border-top:1px solid var(--line);max-height:max(440px,calc(100vh - var(--chrome-h,108px) - 230px));overflow:auto}.tape{min-width:max-content;display:grid;position:relative}.tape .hcell,.tape .rcell,.tape .cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.tape .hcell{background:var(--surface);z-index:3;text-align:center;color:var(--muted);padding:6px 0;font-size:11.5px;line-height:1.25;position:sticky;top:0}.tape .hcell b{font-family:var(--f-display);color:var(--ink);font-size:15px;font-weight:600;display:block}.tape .hcell.we{background:var(--surface-2)}.tape .hcell.today{background:var(--accent);color:#2a1700}.tape .hcell.today b{color:#2a1700}.tape .hcell.corner{z-index:4;text-align:left;align-items:flex-end;padding:6px 12px;display:flex;left:0}.tape .rcell{background:var(--surface);z-index:2;flex-direction:column;justify-content:center;padding:0 12px;line-height:1.2;display:flex;position:sticky;left:0}.tape .rcell b{font-family:var(--f-display);font-size:14px;font-weight:600}.tape .rcell small{color:var(--muted);white-space:nowrap;font-size:11px}.tape .rcell .hkdot{vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.tape .tgroup{z-index:2;white-space:nowrap;background:var(--surface-2);color:var(--muted);border-bottom:1px solid var(--line);letter-spacing:.02em;padding:4px 12px;font-size:11.5px;font-weight:600;position:sticky;left:0;overflow:visible}.tape .tgroup-fill{background:var(--surface-2);border-bottom:1px solid var(--line)}.tape .cell.we{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}.tape .cell.today{background:color-mix(in srgb,var(--accent) 9%,transparent)}.tape .cell:hover{background:var(--brand-soft)}.bk{z-index:1;white-space:nowrap;text-align:left;cursor:pointer;border:0;border-radius:7px;flex-direction:column;justify-content:center;min-width:0;margin:5px 2px;padding:3px 8px;font-size:12px;line-height:1.25;display:flex;overflow:hidden}.bk b{text-overflow:ellipsis;font-weight:600;overflow:hidden}.bk small{opacity:.8;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.bk.in{background:var(--brand);color:var(--on-brand)}.bk.conf{background:var(--info-soft);color:var(--info);box-shadow:inset 3px 0 0 var(--info)}.bk.pend{background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 0 0 1px var(--accent);border-style:dashed}.bk.out{background:var(--gone-soft);color:var(--muted)}.bk.block{background:repeating-linear-gradient(135deg,var(--gone-soft) 0 6px,transparent 6px 12px);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-strong)}.bk:hover{filter:brightness(.97);outline:2px solid var(--accent);outline-offset:-1px}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:860px}th{color:var(--muted);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2);padding:10px 14px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:11px 14px}tbody tr{cursor:pointer}tbody tr:hover td{background:var(--surface-2)}td.r,th.r{text-align:right}td .g b{font-weight:600;display:block}td .g small{color:var(--muted);font-size:12px}.code{font-family:var(--f-display);color:var(--muted);font-variant-numeric:tabular-nums;font-size:12.5px}.bal-due{color:var(--bad);font-weight:600}.bal-ok{color:var(--brand)}.hk-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.hk{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.hk-top{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.hk-top b{font-family:var(--f-display);font-size:22px;font-weight:600}.hk-top small{color:var(--muted);font-size:12px}.hk-top .pill{margin-left:auto}.hk .meta{color:var(--muted);flex-direction:column;gap:2px;font-size:12.5px;display:flex}.hk .who-sel{align-items:center;gap:6px;display:flex}.hk select{border:1px solid var(--line);background:var(--surface-2);border-radius:7px;flex:1;min-width:0;padding:4px 6px;font-size:12.5px}.h-clean{background:var(--brand-soft);color:var(--brand-ink)}.h-dirty{background:var(--accent-soft);color:var(--accent-ink)}.h-insp{background:var(--info-soft);color:var(--info)}.h-ooo{background:var(--gone-soft);color:var(--muted)}.rate-wrap{overflow-x:auto}.rate{border-collapse:separate;border-spacing:0;min-width:900px}.rate th,.rate td{text-align:center;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:8px 6px}.rate th:first-child,.rate td:first-child{text-align:left;background:var(--surface);z-index:1;min-width:170px;padding-left:16px;position:sticky;left:0}.rate th:first-child{background:var(--surface-2)}.rate td input{text-align:center;width:64px;font-family:var(--f-display);font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px}.rate td input:hover{border-color:var(--line-strong)}.rate td input:focus{border-color:var(--brand);background:var(--surface);outline:none}.rate tr.avail td{color:var(--muted);font-size:12px}.rate .lo{color:var(--bad);font-weight:600}.rate th.today{background:var(--accent);color:#2a1700}.rate th.we{color:var(--ink)}.rate tbody tr:hover td{background:0 0}.rate tbody tr{cursor:default}.placeholder{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:48px 24px;display:flex}.placeholder h3{font-family:var(--f-display);color:var(--ink);margin:0;font-size:18px}.placeholder ul{text-align:left;max-width:420px;margin:8px 0 0;padding-left:18px}.scrim{z-index:20;opacity:0;pointer-events:none;background:#08141161;transition:opacity .2s;position:fixed;inset:0}.scrim.on{opacity:1;pointer-events:auto}.drawer{background:var(--surface);z-index:21;width:min(440px,100%);box-shadow:var(--shadow);padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(102%)}.drawer.on{transform:none}.dr-h{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.dr-h h3{font-family:var(--f-display);margin:0;font-size:19px;font-weight:600}.dr-h .code{display:block}.dr-h .icon-btn{margin-left:auto}.dr-b{flex-direction:column;flex:1;gap:16px;padding:16px 20px;display:flex;overflow-y:auto}.dr-f{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:12px 20px;display:flex}.dr-f .btn{flex:1;justify-content:center}.stay{background:var(--surface-2);border-radius:10px;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:12px 14px;display:grid}.stay div small{color:var(--muted);font-size:11.5px;display:block}.stay div b{font-family:var(--f-display);font-size:16px;font-weight:600}.stay .n{color:var(--muted);text-align:center;font-size:12px;font-family:var(--f-display)}.stay div:last-child{text-align:right}dl.kv{grid-template-columns:110px minmax(0,1fr);gap:8px 12px;margin:0;font-size:13.5px;display:grid}dl.kv dt{color:var(--muted)}dl.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.folio{border:1px solid var(--line);border-radius:10px;overflow:hidden}.folio .li{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 12px;font-size:13px;display:flex}.folio .li:first-child{border-top:0}.folio .li.tot{background:var(--surface-2);font-weight:600}.folio .li.due{color:var(--bad);font-weight:600}.sec-t{font-family:var(--f-display);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 -6px;font-size:13px;font-weight:600}.note{background:var(--accent-soft);color:var(--accent-ink);border-radius:9px;padding:9px 12px;font-size:13px}.form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:12.5px;display:flex}.form label.full{grid-column:1/-1}.form input,.form select,.form textarea{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:8px;min-width:0;padding:8px 10px;font-size:14px}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.quote{background:var(--brand-soft);color:var(--brand-ink);border-radius:10px;justify-content:space-between;align-items:baseline;padding:12px 14px;display:flex}.quote b{font-family:var(--f-display);font-size:22px}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:40;opacity:0;pointer-events:none;border-radius:10px;max-width:calc(100% - 32px);padding:10px 16px;font-size:13.5px;transition:all .2s;position:fixed;transform:translate(-50%,20px)}.toast.on{opacity:1;transform:translate(-50%)}.demo-tag{color:var(--faint);text-align:center;padding:4px 0 0;font-size:11px}.tape .sum-l{z-index:2;background:var(--surface-2);color:var(--ink);border-right:1px solid var(--line);border-bottom:1px solid var(--line);align-items:center;height:30px;padding:0 12px;font-size:12.5px;display:flex;position:sticky;left:0}.tape .sum-l.first{font-weight:600}.tape .sum{font-family:var(--f-display);font-variant-numeric:tabular-nums;background:var(--surface-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);justify-content:center;align-items:center;font-size:12.5px;display:flex}.tape .sum.today{background:color-mix(in srgb,var(--accent) 16%,var(--surface-2))}.tape .sum.pct{color:var(--brand-ink);font-weight:600}.tape .sum.hi{color:var(--accent-ink);font-weight:600}.tape .sum.full{color:var(--bad);font-weight:700}.tape .sum.ooo{color:var(--bad)}.tape .sum.av{color:var(--brand);font-weight:600}.tape .sum-end{background:var(--line);grid-column:1/-1;height:6px}.bk.cxl{background:var(--bad-soft);color:var(--bad);text-decoration:line-through;text-decoration-thickness:1px}.bk.cxl small{text-decoration:none}.bk.ns{background:repeating-linear-gradient(135deg,var(--bad-soft) 0 6px,var(--surface) 6px 12px);color:var(--bad);box-shadow:inset 0 0 0 1px var(--bad)}.st-ns{background:var(--bad-soft);color:var(--bad)}.kpis.k4{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi.edge{border-top:3px solid var(--edge,var(--brand))}.kpi .kh{justify-content:space-between;align-items:center;display:flex}.kpi .kh svg{width:18px;height:18px;color:var(--edge,var(--brand))}.sum-pill{background:var(--accent-soft);color:var(--accent-ink);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:8px;align-items:baseline;gap:8px;padding:5px 11px;font-size:13px;display:inline-flex}.sum-pill b{font-family:var(--f-display);font-variant-numeric:tabular-nums}.ar-st{letter-spacing:.04em;font-size:11px;font-weight:700;font-family:var(--f-display);border-radius:5px;padding:2px 7px}.ar-unpaid{background:var(--accent-soft);color:var(--accent-ink)}.ar-part{background:var(--info-soft);color:var(--info)}.ar-paid{background:var(--brand-soft);color:var(--brand-ink)}td input[type=checkbox],th input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}.mkt{font-size:11.5px;font-weight:600;font-family:var(--f-display);letter-spacing:.03em;color:var(--muted)}table.compact th,table.compact td{padding-left:10px;padding-right:10px}table.compact td.trunc{max-width:190px}td.trunc{text-overflow:ellipsis;max-width:220px;overflow:hidden}.tbl-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:12.5px;display:flex}@media (max-width:1180px){.kpis.k4{grid-template-columns:1fr 1fr}}.cm-head{flex-wrap:wrap;align-items:center;gap:14px;padding:16px;display:flex}.cm-logo{background:var(--info-soft);width:46px;height:46px;color:var(--info);font-family:var(--f-display);border-radius:10px;flex:none;place-items:center;font-weight:700;display:grid}.ota-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.ota{border:1px solid var(--line);border-radius:9px;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;display:flex}.sw-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:9px 0;display:flex}.sw-row:last-child{border-bottom:0}.sw-row b{font-size:13.5px;font-weight:600;display:block}.sw-row small{color:var(--muted);font-size:12.5px}.sw{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:99px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.sw:after{content:"";background:var(--surface);border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.sw:checked{background:var(--brand)}.sw:checked:after{transform:translate(16px)}.rate td.has-sug{padding-bottom:20px;position:relative}.sug-dot{font-size:10.5px;font-family:var(--f-display);white-space:nowrap;cursor:pointer;border:0;border-radius:5px;padding:0 5px;font-weight:600;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.sug-dot.up{background:var(--brand-soft);color:var(--brand-ink)}.sug-dot.dn{background:var(--bad-soft);color:var(--bad)}.rate tr.comp td{color:var(--info);font-size:11.5px}.rate th.ev{box-shadow:inset 0 -3px 0 var(--accent)}.ev-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;margin:2px auto 0;display:block}.rate td input{width:58px}.ap .ap-row{align-items:center;gap:14px;padding:16px 18px;display:flex}.ap-ic{background:var(--surface-2,#f1f3f1);width:42px;height:42px;color:var(--muted);border-radius:12px;flex:none;place-items:center;display:grid}.ap.on .ap-ic{background:var(--brand-soft);color:var(--brand-ink)}.ap-ic svg{width:22px;height:22px}.ap-txt{flex:1;min-width:0}.ap-txt h2{font-family:var(--f-display);margin:0;font-size:17px;font-weight:600}.ap-txt p{color:var(--muted);margin:3px 0 0;font-size:13px}.ap-stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.ap-stats div{border-right:1px solid var(--line);flex-direction:column;gap:2px;padding:12px 18px;display:flex}.ap-stats div:last-child{border-right:0}.ap-stats b{font-family:var(--f-display);font-size:22px;font-weight:600;line-height:1.1}.ap-stats span{color:var(--muted);font-size:12px}.ap-guard{border-top:1px solid var(--line);color:var(--muted);padding:10px 18px;font-size:12.5px}.sug-dot.lock{background:var(--ink,#1d2b24);color:#fff}span.sug-dot{cursor:default}@media (max-width:640px){.ap-stats{grid-template-columns:1fr 1fr}.ap-stats div:nth-child(2){border-right:0}.ap-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}}.sw.lg{width:52px;height:30px}.sw.lg:after{width:24px;height:24px}.sw.lg:checked:after{transform:translate(22px)}.sw:focus-visible{outline:2px solid var(--brand);outline-offset:2px}@media (max-width:1180px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-3{grid-template-columns:1fr 1fr}}@media (max-width:980px){.grid-2{grid-template-columns:minmax(0,1fr)}.search{width:200px}}@media (max-width:820px){.app{grid-template-columns:minmax(0,1fr)}.rail{z-index:30;width:270px;height:auto;padding-top:calc(16px + env(safe-area-inset-top,0px));padding-left:calc(12px + env(safe-area-inset-left,0px));transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%)}.rail.on{box-shadow:var(--shadow);transform:none}.menu-btn{display:grid}.search,.hdr .face,.crumb{display:none}.hdr .btn.primary{margin-left:auto}.mods{flex:1;margin-left:0}.hdr,.modbar,.view{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.kpis{grid-template-columns:1fr 1fr}.kpi.hero{grid-column:1/-1}.grid-3{grid-template-columns:minmax(0,1fr)}.hdr .btn .lbl-long{display:none}.page-h h1{font-size:22px}}@media (max-width:560px){.prop{display:none}.kpis.k4{grid-template-columns:1fr 1fr}}@media (max-width:480px){.form{grid-template-columns:1fr}.row{grid-template-columns:44px minmax(0,1fr)}.row .act{grid-column:2}}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:16;background:var(--rail);position:fixed;inset:0 0 auto}@media (prefers-reduced-motion:reduce){*{transition:none!important}}body{margin:0}a{color:inherit}.app{--chrome-h:57px}.hdr .logo img{width:auto;height:24px;display:block}.hdr .face{margin-left:0}.hdr .btn.primary{margin-left:auto}.rail-scrim{display:none}.trunc-1{white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}@media (max-width:820px){.menu-toggle:checked~.rail{box-shadow:var(--shadow);transform:none}.menu-toggle:checked~.rail-scrim{z-index:25;background:#08141161;display:block;position:fixed;inset:0}}.err{color:var(--bad);background:var(--bad-soft);border-radius:8px;margin:0;padding:8px 12px;font-size:13px}.ok{color:var(--brand-ink);background:var(--brand-soft);border-radius:8px;margin:0;padding:8px 12px;font-size:13px}.hint{color:var(--muted);margin:0;font-size:12.5px}.note{margin:0}.login{background:var(--rail);place-items:center;min-height:100%;padding:24px 16px;display:grid}.login-card{width:min(400px,100%);box-shadow:var(--shadow);flex-direction:column;gap:20px;padding:28px 24px;display:flex}.login-logo{background:var(--rail);box-sizing:content-box;border-radius:10px;align-self:center;width:auto;height:30px;padding:10px 16px}.login-form{grid-template-columns:1fr;gap:12px;display:grid}.form .full{grid-column:1/-1}.tabs.full button{flex:1}.btn.full{justify-content:center;padding:10px}.page-h .sub{color:var(--muted);font-size:13px}.bk{text-decoration:none}.tape .cell{display:block}.empty{text-align:center;color:var(--muted);padding:32px}.actions{flex-wrap:wrap;gap:8px;display:flex}.readonly-tag{color:var(--info);background:var(--info-soft);border-radius:6px;padding:2px 8px;font-size:12px}.tabs a.tab{white-space:nowrap;color:var(--muted);border-radius:7px;flex:none;padding:5px 11px;font-size:13px;text-decoration:none}.tabs a.tab.on{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #00000014}a.chip{text-decoration:none}a.row-link{text-decoration:none;display:block}a.row-link:after{content:"";position:absolute;inset:0}tbody tr{position:relative}.pay-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pay-form select,.pay-form input:not([type=checkbox]){border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;min-width:0;padding:5px 8px;font-size:13px}.pay-form input[name=amount]{width:110px}.pay-form input[name=reference]{flex:1;min-width:120px}.chk{color:var(--muted);align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.prop-select{color:#fff;background:0 0;border:0;max-width:220px;padding:0;font-size:13px;font-weight:600}.prop-select option{color:#000}.edit-tbl{min-width:640px}.edit-tbl td{padding:6px 14px}.edit-tbl tbody tr{cursor:default}.edit-tbl tbody tr:hover td{background:0 0}.row-form{grid-template-columns:2fr 1.4fr 1fr 1fr .7fr 40px 80px;align-items:center;gap:8px;display:grid}.row-form.rooms{grid-template-columns:1fr 1.6fr .7fr 40px 80px}.row-form input:not([type=checkbox]),.row-form select{border:1px solid var(--line);background:var(--surface);border-radius:7px;width:100%;min-width:0;padding:5px 8px;font-size:13px}.row-form input.r{text-align:right}.row-form input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}
