:root{--brand:#f7b645;--brand-hover:#eea52a;--brand-soft:#fef3c7;--on-brand:#010001;--ink:#010001;--text:#1b1b1b;--muted:#5c5c5c;--faint:#8a8a8a;--bg:#f5f5f5;--surface:#fff;--surface-2:#fafafa;--line:#e6e6e6;--line-strong:#d4d4d4;--nav-bg:#1b1b1b;--nav-text:#cfcfcf;--nav-muted:#8a8a8a;--nav-line:#333;--ok-bg:#dcfce7;--ok:#166534;--warn-bg:#ffedd5;--warn:#9a3412;--bad-bg:#fee2e2;--bad:#991b1b;--info-bg:#e0e7ff;--info:#3730a3;--focus:0 0 0 3px #f7b64573;--series-1:#4a68b0;--series-2:#e39d1c;--radius:8px;--font-title:"Poppins", system-ui, sans-serif;--font-body:"Montserrat", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--brand-soft:#3d2f12;--text:#ededed;--ink:#f5f5f5;--muted:#a3a3a3;--faint:#7a7a7a;--bg:#111;--surface:#1b1b1b;--surface-2:#222;--line:#2e2e2e;--line-strong:#3d3d3d;--nav-bg:#0b0b0b;--nav-line:#262626;--ok-bg:#14321f;--ok:#86efac;--warn-bg:#3b2410;--warn:#fdba74;--bad-bg:#3b1616;--bad:#fca5a5;--info-bg:#1e2547;--info:#a5b4fc;--series-1:#7392dc;--series-2:#c08618;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{font:14px/1.5 var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--font-title);color:var(--ink);margin:0;font-weight:500}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}a{color:inherit}code,.mono{background:var(--surface-2);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.stack{flex-direction:column;gap:12px;display:flex}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}button,.btn{font:500 13px var(--font-body);border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);height:34px;color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:0 14px;display:inline-flex}button:hover{background:var(--surface-2)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--focus);border-color:var(--brand);outline:none}button.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}button.primary:hover{background:var(--brand-hover)}button.danger{color:var(--bad);border-color:var(--bad-bg)}button.danger.solid{background:var(--bad);border-color:var(--bad);color:#fff}button.ghost{background:0 0;border-color:#0000}button.ghost:hover{background:var(--surface-2)}button.icon{justify-content:center;width:34px;padding:0}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:13px var(--font-body);border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);height:34px;color:var(--text);width:100%;padding:0 10px}textarea{height:auto;min-height:70px;padding:8px 10px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}label.check{color:var(--text);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.help{color:var(--faint);font-size:12px}.error-text{color:var(--bad);font-size:12px}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100%;display:grid}.nav{background:var(--nav-bg);color:var(--nav-text);flex-direction:column;gap:2px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.logo{font:600 20px var(--font-title);color:#f5f5f5;letter-spacing:-.3px;padding:0 10px}.logo span{color:var(--brand)}.product{color:var(--nav-muted);letter-spacing:.3px;padding:0 10px 16px;font-size:11px}.switcher{border:1px solid var(--nav-line);border-radius:var(--radius);margin:0 2px 14px;padding:6px 10px}.switcher .label{color:var(--nav-muted);font-size:11px}.switcher select{color:#f5f5f5;background:0 0;border:none;height:24px;padding:0;font-weight:500}.switcher select option{color:#111}.nav-group{color:var(--nav-muted);padding:14px 10px 4px;font-size:11px}.nav a{border-radius:var(--radius);color:var(--nav-text);align-items:center;gap:10px;padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.nav a:hover{color:#fff;background:#262626}.nav a.active{background:var(--brand);color:var(--on-brand)}.nav a .count{background:var(--brand);color:var(--on-brand);border-radius:10px;margin-left:auto;padding:0 7px;font-size:11px}.nav a.active .count{background:var(--on-brand);color:var(--brand)}.nav .user{border-top:1px solid var(--nav-line);align-items:center;gap:10px;margin-top:auto;padding:12px 8px 0;display:flex}.avatar{background:var(--brand);width:30px;height:30px;color:var(--on-brand);font:600 12px var(--font-title);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.nav .user .name{color:#f5f5f5;font-size:13px;font-weight:500}.nav .user .role{color:var(--nav-muted);font-size:11px}.main{min-width:0;padding:22px 28px 48px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.page-head .sub{color:var(--muted);margin-top:2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.card h2{margin-bottom:10px}.metrics{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.metric{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.metric .k{color:var(--muted);font-size:12px}.metric .v{font:500 26px var(--font-title);color:var(--ink);margin-top:2px}.metric.warn .v{color:var(--warn)}.metric .delta{color:var(--muted);margin-top:2px;font-size:12px}.metric .delta b{font-weight:600}.metric .delta .up{color:var(--ok)}.metric .delta .down{color:var(--bad)}.chart{position:relative}.chart-plot{width:100%;position:relative}.chart-plot svg{display:block;overflow:visible}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-bottom:6px;font-size:12px;display:flex}.chart-legend span{align-items:center;gap:6px;display:inline-flex}.chart-legend i,.chart-tip i{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.chart-axis{fill:var(--faint);font-size:11px;font-family:var(--font-body)}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-base{stroke:var(--line-strong);stroke-width:1px}.chart-cross{stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:3 3}.chart-dot{stroke:var(--surface);stroke-width:2px}.chart-tip{pointer-events:none;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);z-index:2;min-width:160px;padding:8px 10px;font-size:12px;position:absolute;top:0;transform:translate(-50%);box-shadow:0 4px 16px #0000001f}.chart-tip-title{color:var(--ink);margin-bottom:4px;font-weight:600}.chart-tip-row{color:var(--muted);align-items:center;gap:6px;display:flex}.chart-tip-row span{flex:1}.chart-tip-row b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.chart-table{margin-top:8px;font-size:12px}.chart-table summary{cursor:pointer;color:var(--muted);width:max-content}.chart-table table{margin-top:6px}.list-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.list-row:first-of-type{border-top:none}.grid-2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;display:grid}.grid-2.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.badge{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;border-radius:5px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:#0000}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:#0000}.badge.bad{background:var(--bad-bg);color:var(--bad);border-color:#0000}.badge.info{background:var(--info-bg);color:var(--info);border-color:#0000}.badge.brand{background:var(--brand-soft);color:var(--ink);border-color:#0000}.banner{border-radius:var(--radius);white-space:pre-wrap;margin-bottom:12px;padding:10px 12px;font-size:13px}.banner.ok{background:var(--ok-bg);color:var(--ok)}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.bad{background:var(--bad-bg);color:var(--bad)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);border-radius:15px;height:30px;padding:0 12px;font-size:12px;font-weight:500}.chip.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.subnav{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;display:flex}.subnav button{height:38px;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:0 12px}.subnav button.on{color:var(--ink);border-bottom-color:var(--brand)}table.table{border-collapse:collapse;width:100%;font-size:13px}table.table th{text-align:left;color:var(--faint);border-bottom:1px solid var(--line);padding:8px 10px;font-size:12px;font-weight:500}table.table td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px}table.table tr.click{cursor:pointer}table.table tr.click:hover td{background:var(--surface-2)}table.table tr.selected td{background:var(--brand-soft)}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:28px}.with-panel{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:12px;max-height:calc(100vh - 32px);padding:16px;display:flex;position:sticky;top:16px;overflow-y:auto}.panel-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.panel .actions{flex-wrap:wrap;gap:8px;padding-top:4px;display:flex}.kv{grid-template-columns:120px 1fr;gap:6px 12px;font-size:13px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.tile{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px}.tile .k{color:var(--faint);font-size:11px}.cal-wrap{border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow-x:auto}.cal{border-collapse:separate;border-spacing:0;-webkit-user-select:none;user-select:none;width:100%;font-size:12px}.cal th,.cal td{border-bottom:1px solid var(--line);text-align:center;min-width:70px;height:44px;padding:0}.cal thead th{height:46px;color:var(--muted);background:var(--surface);z-index:1;font-weight:500;line-height:1.25;position:sticky;top:0}.cal thead th .d{color:var(--ink);font:500 14px var(--font-title);display:block}.cal thead th.today .d{color:var(--on-brand);background:var(--brand);border-radius:6px;width:fit-content;margin:0 auto;padding:0 6px}.cal.month th:not(.rowhead),.cal.month td{min-width:56px}.cal.month .price{font-size:11px}.cal.month .avail{margin:0 3px}.cal .rowhead{background:var(--surface);text-align:left;z-index:1;border-right:1px solid var(--line);min-width:210px;max-width:240px;padding:0 12px;position:sticky;left:0}.cal tr.room .rowhead{color:var(--ink);font-weight:600}.cal tr.room td.cell,.cal tr.room th.rowhead{border-top:1px solid var(--line-strong)}.cal .weekend{background:var(--surface-2)}.cal td.cell{cursor:cell;position:relative}.cal td.cell.locked{cursor:default;color:var(--faint)}.cal td.cell.sel{background:var(--brand-soft);box-shadow:inset 0 0 0 1.5px var(--brand)}.avail{border-radius:6px;margin:0 5px;padding:4px 0;font-weight:600}.avail.ok{background:var(--ok-bg);color:var(--ok)}.avail.low{background:var(--warn-bg);color:var(--warn)}.avail.out{background:var(--bad-bg);color:var(--bad)}.avail.none{color:var(--faint);font-weight:400}.price{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:500}.price.missing{color:var(--faint);font-weight:400}.marks{flex-wrap:wrap;justify-content:center;gap:2px;margin-top:2px;display:flex}.mark{border-radius:4px;padding:0 4px;font-size:10px;font-weight:600;line-height:15px}.mark.min{background:var(--info-bg);color:var(--info)}.mark.cta{background:var(--warn-bg);color:var(--warn)}.mark.stop{background:var(--bad-bg);color:var(--bad)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:12px;display:flex}.login{grid-template-columns:minmax(0,1fr) minmax(360px,440px);min-height:100%;display:grid}.login .hero{background:var(--brand);color:var(--on-brand);flex-direction:column;justify-content:space-between;padding:48px;display:flex}.login .hero h1{color:var(--on-brand);max-width:420px;font-size:34px;line-height:1.15}.login .hero .logo{color:var(--on-brand);padding:0;font-size:24px}.login .hero .logo span{color:#fff}.login .form{background:var(--surface);flex-direction:column;justify-content:center;gap:14px;padding:48px 40px;display:flex}@media (width<=1100px){.with-panel{grid-template-columns:minmax(0,1fr)}.panel{max-height:none;position:static}}@media (width<=820px){.shell{grid-template-columns:minmax(0,1fr)}.nav{flex-flow:wrap;align-items:center;height:auto;padding:10px;position:static}.nav .product,.nav-group{display:none}.nav .user{border:none;margin-top:0;margin-left:auto;padding:0}.switcher{margin:0}.main{padding:16px}.grid-2,.grid-2.even,.login{grid-template-columns:minmax(0,1fr)}.login .hero{padding:28px}}.cal thead th.rowhead{z-index:3;left:0}@media (width<=420px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric .v{font-size:22px}}
