@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--color-canvas:#f6f7f9;--color-surface:#fff;--color-well:#f0f1f4;--color-sidebar:#fff;--color-text:#16181d;--color-text-soft:#4b4f58;--color-text-muted:#71767f;--color-text-faint:#a0a4ac;--color-border:#e6e8ec;--color-border-soft:#f0f1f4;--color-border-strong:#c9cdd5;--color-primary:#d62828;--color-primary-hover:#b91f1f;--color-primary-soft:#fdecec;--color-accent:#e23744;--color-accent-soft:#fdecec;--color-success:#15a34a;--color-success-soft:#e7f6ed;--color-info:#2563eb;--color-info-soft:#eaf1fe;--color-warning:#e8890c;--color-warning-soft:#fdf3e4;--color-danger:#dc2626;--color-danger-soft:#fdecec;--color-danger-border:#f3d4d4;--color-bg:#f6f7f9;--color-status-available:#fff;--color-status-occupied:#d62828;--color-status-billing:#fdecec;--color-status-cleaning:#f2f2f2;--color-chart-fill:#afc5ee;--color-chart-hot:#2563eb;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-card:0 1px 2px #16181d0a;--shadow-raised:0 1px 2px #16181d14;--shadow-modal:0 20px 50px #16181d33;--shadow-drawer:-8px 0 30px #16181d1f;--transition-smooth:all .18s cubic-bezier(.4, 0, .2, 1);--shadow-soft:var(--shadow-card)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-canvas);color:var(--color-text);-webkit-font-smoothing:antialiased}button{cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit}.app-container{background:var(--color-canvas);height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.scrollable-area{background:var(--color-canvas);flex:1;overflow-y:auto}.page{box-sizing:border-box;flex-direction:column;gap:18px;width:100%;max-width:1280px;margin:0 auto;padding:28px 32px 40px;display:flex}.page--wide{max-width:none}.tnum{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.btn{border-radius:var(--radius-sm);white-space:nowrap;height:40px;transition:var(--transition-smooth);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.btn--ghost:hover:not(:disabled){background:var(--color-canvas)}.btn--primary{background:var(--color-primary);color:#fff;padding:0 18px;font-weight:700}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--danger{border-color:var(--color-danger-border);background:var(--color-surface);color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-soft)}.btn--sm{height:36px;font-size:12.5px}.icon-button{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-text);flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.icon-button:hover{background:var(--color-canvas)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px 24px}.card__title{color:var(--color-text);font-size:15px;font-weight:700}.card__subtitle{color:var(--color-text-muted);font-size:13px}.card__head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.metric-grid{gap:16px;display:grid}.metric-grid--3{grid-template-columns:repeat(3,1fr)}.metric-grid--4{grid-template-columns:repeat(4,1fr)}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:10px;padding:22px 24px;display:flex}.metric-card__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.metric-card__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--color-text);font-size:32px;font-weight:800;line-height:1}.metric-card__value--sm{font-size:17px;line-height:1.2}.metric-card__foot{align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.metric-card__foot span{color:var(--color-text-muted);font-weight:500}.segmented{background:var(--color-well);border-radius:var(--radius-sm);gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--color-text-muted);background:0 0;border:none;border-radius:8px;padding:7px 14px;font-size:12.5px;font-weight:600}.segmented button.on{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-raised)}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-soft);border:1px solid var(--color-border);padding:7px 14px;font-size:12.5px;font-weight:600}.chip:hover{background:var(--color-canvas)}.chip.on{background:var(--color-text);border-color:var(--color-text);color:#fff}.pill{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill--sm{padding:3px 9px;font-size:11px}.tone-green{background:var(--color-success-soft);color:var(--color-success)}.tone-blue{background:var(--color-info-soft);color:var(--color-info)}.tone-amber{background:var(--color-warning-soft);color:var(--color-warning)}.tone-red{background:var(--color-danger-soft);color:var(--color-danger)}.tone-neutral{background:var(--color-well);color:var(--color-text-soft)}.tone-ink{background:var(--color-text);color:#fff}.table-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:0 24px 8px}.table-card--padded{padding:8px 24px 16px}.table-toolbar{align-items:center;gap:12px;padding:14px 0 6px;display:flex}.table-head{height:44px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);align-items:center;gap:16px;font-size:11.5px;font-weight:600;display:flex}.table-row{border-bottom:1px solid var(--color-border-soft);height:48px;color:var(--color-text);align-items:center;gap:16px;font-size:13.5px;display:flex}.table-row--clickable{cursor:pointer}.table-row--clickable:hover{background:#fafbfc}.table-row .muted{color:var(--color-text-muted)}.table-row .strong{font-weight:600}.table-row .amount{font-variant-numeric:tabular-nums;font-weight:700}.table-pager{color:var(--color-text-muted);justify-content:flex-end;align-items:center;gap:6px;padding-top:14px;font-size:12.5px;font-weight:600;display:flex}.table-pager button{border:1px solid var(--color-border);background:var(--color-surface);width:30px;height:30px;color:var(--color-text);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.table-pager button:disabled{opacity:.4;cursor:not-allowed}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:56px 20px;display:flex}.empty-state__mark{border-radius:var(--radius-md);background:var(--color-well);width:44px;height:44px;color:var(--color-text-muted);justify-content:center;align-items:center;margin-bottom:6px;display:flex}.empty-state__title{color:var(--color-text);font-size:15px;font-weight:700}.empty-state__sub{color:var(--color-text-muted);max-width:420px;font-size:13px}.search-input{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);height:40px;color:var(--color-text-faint);box-sizing:border-box;align-items:center;gap:8px;padding:0 14px;display:flex}.search-input input{width:100%;color:var(--color-text);background:0 0;border:none;outline:none;font-size:13px}.search-input input::placeholder{color:var(--color-text-faint)}.meter{background:var(--color-well);border-radius:4px;height:8px;overflow:hidden}.meter--sm{border-radius:2px;height:4px}.meter__fill{border-radius:inherit;background:var(--color-chart-fill);height:100%}.field label{color:var(--color-text);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.field input,.field select,.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;min-height:40px;color:var(--color-text);background:var(--color-surface);box-sizing:border-box;outline:none;padding:9px 14px;font-size:13.5px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-border-strong)}.field input::placeholder,.field textarea::placeholder{color:var(--color-text-faint)}.field-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field-grid .span-2{grid-column:1/-1}.toggle{border-radius:var(--radius-pill);width:40px;height:22px;transition:var(--transition-smooth);background:#d5d9e0;border:none;flex-shrink:0;display:inline-block;position:relative}.toggle.on{background:var(--color-success)}.toggle:after{content:"";width:18px;height:18px;transition:var(--transition-smooth);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #16181d33}.toggle.on:after{left:20px}.toggle--sm{width:36px;height:20px}.toggle--sm:after{width:16px;height:16px}.toggle--sm.on:after{left:18px}.overlay{z-index:60;background:#16181d59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-sizing:border-box;width:440px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);box-shadow:var(--shadow-modal);padding:28px;overflow-y:auto}.modal__head{align-items:center;margin-bottom:20px;display:flex}.modal__title{flex:1;font-size:18px;font-weight:800}.modal__close{color:var(--color-text-muted);background:0 0;border:none;display:flex}.modal__body{flex-direction:column;gap:14px;display:flex}.modal__actions{justify-content:flex-end;gap:10px;padding-top:8px;display:flex}.drawer-scrim{z-index:60;background:#16181d4d;position:fixed;inset:0}.drawer{background:var(--color-surface);z-index:61;width:380px;max-width:100vw;box-shadow:var(--shadow-drawer);box-sizing:border-box;padding:28px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.drawer__section{border-bottom:1px solid var(--color-border);padding:18px 0}.drawer__section:last-child{border-bottom:none}.drawer__label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:12px;font-weight:600}.bars{flex:1;align-items:flex-end;gap:8px;min-height:190px;padding-top:18px;display:flex}.bars__col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;height:100%;display:flex}.bars__bar{background:var(--color-chart-fill);width:100%;max-width:42px;min-height:3px;transition:var(--transition-smooth);border-radius:6px 6px 3px 3px}.bars__bar.hot,.bars__col:hover .bars__bar{background:var(--color-chart-hot)}.bars__label{color:var(--color-text-muted);white-space:nowrap;font-size:11px;font-weight:500}.bars__col.hot .bars__label{color:var(--color-text)}.link-action{color:var(--color-info);white-space:nowrap;background:0 0;border:none;font-size:13px;font-weight:600}.link-action:hover{text-decoration:underline}.ss-root{width:100%;min-width:0;position:relative}.ss-control{box-sizing:border-box;width:100%;height:38px;font:inherit;text-align:left;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);justify-content:space-between;align-items:center;gap:8px;padding:0 10px;font-size:13px;display:flex}.ss-control:hover:not(:disabled){border-color:var(--color-border-strong,#c7cbd1)}.ss-control.on,.ss-control:focus-visible{border-color:var(--color-border-strong,#c7cbd1);outline:none}.ss-control:disabled{opacity:.6;cursor:not-allowed}.ss-value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ss-value--empty{color:var(--color-text-muted)}.ss-caret{color:var(--color-text-faint);flex-shrink:0}.ss-menu{z-index:400;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;max-height:280px;display:flex;position:fixed;box-shadow:0 12px 28px #10182829}.ss-search{border-bottom:1px solid var(--color-border-soft);color:var(--color-text-faint);align-items:center;gap:7px;padding:8px 10px;display:flex}.ss-search input{min-width:0;font:inherit;color:var(--color-text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.ss-list{padding:4px;overflow-y:auto}.ss-none{text-align:center;color:var(--color-text-muted);padding:14px 10px;font-size:12.5px}.ss-opt{cursor:pointer;width:100%;font:inherit;text-align:left;color:var(--color-text);background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.ss-opt.active{background:var(--color-well,#f6f7f9)}.ss-opt.sel{font-weight:600}.ss-opt.sel svg{color:var(--color-info,#2563eb);flex-shrink:0}.ss-opt--empty{color:var(--color-text-muted)}.ss-opt__text{flex-direction:column;gap:1px;min-width:0;display:flex}.ss-opt__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ss-opt__sub{color:var(--color-text-muted);font-size:11px}.ss-root--cell .ss-control{height:36px}.ss-root--dirty .ss-control{border-color:var(--color-warning);background:#fffdf7}.spacer{flex:1}.spin{animation:1s linear infinite spice-spin}@keyframes spice-spin{to{transform:rotate(360deg)}}
