:root{--color-primary: #2563EB;--color-primary-light: #EFF6FF;--color-primary-dark: #1D4ED8;--color-primary-50: #EFF6FF;--color-primary-100: #DBEAFE;--color-primary-200: #BFDBFE;--color-primary-300: #93C5FD;--color-primary-400: #60A5FA;--color-primary-500: #3B82F6;--color-primary-600: #2563EB;--color-primary-700: #1D4ED8;--color-primary-800: #1E40AF;--color-primary-900: #1E3A8A;--color-success: #22C55E;--color-success-light: #DCFCE7;--color-success-dark: #15803D;--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-warning-dark: #B45309;--color-error: #EF4444;--color-error-light: #FEE2E2;--color-error-dark: #B91C1C;--color-info: var(--color-primary);--st-oc: #0F52BA;--st-od: #6082B6;--st-vc: #16A34A;--st-vd: #B4C424;--st-locked: #C04000;--st-block: #C04000;--st-reserved: #0D9488;--pay-f: #008000;--pay-p: #E49B0F;--pay-u: #880808;--ho-room-oc: #0F52BA;--ho-room-od: #5B84C4;--ho-room-vc: #16A34A;--ho-room-vd: #B4C424;--ho-room-repair: #C04000;--ho-room-locked: #7A3E9D;--ho-room-out: #64748B;--ho-pay-paid: #16A34A;--ho-pay-partial: #D97706;--ho-pay-unpaid: #B91C1C;--ho-pay-refund: #7C3AED;--ho-pay-vcc: #4338CA;--ho-clean-clean: #16A34A;--ho-clean-dirty: #D97706;--ho-clean-inspecting: #2563EB;--ho-clean-ooo: #C04000;--color-slate-50: #F8FAFC;--color-slate-100: #F1F5F9;--color-slate-200: #E2E8F0;--color-slate-300: #CBD5E1;--color-slate-400: #94A3B8;--color-slate-500: #64748B;--color-slate-600: #475569;--color-slate-700: #334155;--color-slate-800: #1E293B;--color-slate-900: #0F172A;--color-bg: #F8FAFC;--color-surface: #FFFFFF;--color-surface-elevated: #FFFFFF;--color-surface-muted: #F1F5F9;--color-border: #E2E8F0;--color-border-strong: #CBD5E1;--color-divider: #F1F5F9;--color-topnav-bg: #0F1B2D;--color-topnav-text: #FFFFFF;--color-topnav-muted: #94A3B8;--color-text-primary: #0F172A;--color-text-secondary: #1E293B;--color-text-tertiary: #64748B;--color-text-disabled: #CBD5E1;--color-text-on-primary: #FFFFFF;--color-text-link: #2563EB;--color-text-link-hover: #1D4ED8;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--text-4xl: 28px;--text-5xl: 32px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 10px;--radius-2xl: 10px;--radius-full: 9999px;--ho-ctrl-sm: 28px;--ho-ctrl-md: 32px;--ho-ctrl-lg: 40px;--shadow-xs: 0 1px 2px 0 rgba(15, 23, 42, .05);--shadow-sm: 0 1px 3px 0 rgba(15, 23, 42, .08), 0 1px 2px -1px rgba(15, 23, 42, .05);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .05);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .05);--ho-shadow-card: 0 1px 2px rgba(15, 23, 42, .04);--ho-shadow-pop: 0 4px 16px rgba(15, 23, 42, .1), 0 1px 4px rgba(15, 23, 42, .06);--ho-shadow-drawer: -8px 0 24px rgba(15, 23, 42, .12);--ho-focus-ring: 0 0 0 3px rgba(37, 99, 235, .18);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--easing-default: cubic-bezier(.4, 0, .2, 1);--easing-out: cubic-bezier(0, 0, .2, 1);--easing-in: cubic-bezier(.4, 0, 1, 1);--header-height: 52px;--sider-width: 220px;--sider-collapsed-width: 64px;--container-max: 1440px;--ho-p: #2563EB;--ho-p-dark: #1D4ED8;--ho-p-50: #EFF6FF;--ho-p-100: #DBEAFE;--ho-p-200: #BFDBFE;--ho-p-700: #1E40AF;--ho-ink: #1E3A8A;--ho-ink-2: #1E40AF;--ho-ink-3: #2B4FC2;--ho-canvas: #EEF2F7;--ho-surface: #FFFFFF;--ho-muted: #F4F6FA;--ho-muted-2: #E9EDF4;--ho-line: #DCE3EE;--ho-line-strong: #C4CEDD;--ho-t1: #0F172A;--ho-t2: #1E293B;--ho-t3: #64748B;--ho-t4: #94A3B8;--ho-ok: #16A34A;--ho-ok-bg: #E7F8EC;--ho-ok-dark: #15803D;--ho-warn: #F59E0B;--ho-warn-bg: #FEF3C7;--ho-warn-dark: #B45309;--ho-bad: #DC2626;--ho-bad-bg: #FEE9E9;--ho-bad-dark: #B91C1C;--ho-due: #DC2626;--ho-paid: #15803D;--ho-room-noshow: #BE185D;--ho-room-reserved: #0D9488;--ho-font-body: "Source Sans 3", -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ho-font-num: var(--ho-font-body);--ho-r-sm: 6px;--ho-r-md: 10px;--ho-r-lg: 14px;--ho-sh-card: 0 1px 2px rgba(15,23,42,.05), 0 1px 0 rgba(15,23,42,.03);--ho-sh-lift: 0 6px 18px -6px rgba(15,23,42,.18), 0 2px 4px rgba(15,23,42,.06);--ho-sh-pop: 0 18px 40px -12px rgba(11,18,32,.35);--ho-topnav-h: 52px;--ho-subnav-h: 44px;--ho-page-py: 18px;--ho-page-px: 22px}*{box-sizing:border-box;margin:0;padding:0}html,body{font-family:var(--ho-font-body);font-size:14px;line-height:1.45;color:var(--ho-t1);background:var(--ho-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-text-link);text-decoration:none}a:hover{color:var(--color-text-link-hover)}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}ul,ol{list-style:none}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.num{font-family:var(--ho-font-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.spread{display:flex;align-items:center;justify-content:space-between}.center{display:flex;align-items:center;justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-success{color:var(--color-success-dark)}.text-warning{color:var(--color-warning-dark)}.text-error{color:var(--color-error-dark)}.text-primary-c{color:var(--color-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:32px;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--font-medium);transition:all var(--duration-fast) var(--easing-default);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:#fff;color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-ghost{color:var(--color-text-secondary);padding:0 var(--space-2)}.btn-ghost:hover:not(:disabled){background:var(--color-slate-100);color:var(--color-text-primary)}.btn-danger{background:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-error-dark)}.btn-warning{background:var(--color-warning);color:#fff}.btn-warning:hover:not(:disabled){background:var(--color-warning-dark)}.btn-large{height:40px;padding:0 var(--space-5)}.btn-small{height:24px;padding:0 var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-md)}.tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);line-height:1.4}.tag-primary{background:var(--color-primary-light);color:var(--color-primary-dark)}.tag-success{background:var(--color-success-light);color:var(--color-success-dark)}.tag-warning{background:var(--color-warning-light);color:var(--color-warning-dark)}.tag-error{background:var(--color-error-light);color:var(--color-error-dark)}.tag-neutral{background:var(--color-slate-100);color:var(--color-slate-600)}.tag-pro{background:linear-gradient(135deg,#f59e0b,#b45309);color:#fff}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--ho-shadow-card)}.card-padded{padding:var(--space-5)}.card-hover{transition:all var(--duration-fast)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.card-section{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-divider)}.card-section:last-child{border-bottom:none}.card-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary)}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-5);position:relative}.kpi-label{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2)}.kpi-value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--color-text-primary);letter-spacing:-.02em;line-height:1.2}.kpi-delta{font-size:var(--text-sm);margin-top:var(--space-2);display:flex;align-items:center;gap:var(--space-1)}.kpi-delta-up{color:var(--color-success-dark)}.kpi-delta-down{color:var(--color-error-dark)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-online{background:var(--color-success);box-shadow:0 0 0 3px var(--color-success-light)}.status-offline{background:var(--color-error)}.status-warning{background:var(--color-warning)}.status-neutral{background:var(--color-slate-300)}.quota-chip{display:inline-flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-md);color:#fff;font-size:var(--text-sm);font-weight:var(--font-medium);transition:background var(--duration-fast);cursor:pointer}.quota-chip:hover{background:#ffffff26}.quota-chip-warn{border-color:var(--color-warning);color:var(--color-warning);background:#f59e0b1a}.quota-chip-danger{border-color:var(--color-error);color:var(--color-error);background:#ef44441a}.quota-bar{width:60px;height:4px;background:#fff3;border-radius:var(--radius-full);overflow:hidden}.quota-bar-fill{height:100%;background:#fff;border-radius:var(--radius-full);transition:width var(--duration-slow) var(--easing-default)}.quota-chip-warn .quota-bar-fill{background:var(--color-warning)}.quota-chip-danger .quota-bar-fill{background:var(--color-error)}.locked-tab{position:relative;opacity:.5;cursor:not-allowed}.locked-tab:after{content:"🔒";margin-left:var(--space-1);font-size:var(--text-xs)}.upgrade-banner{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid var(--color-warning-light);border-radius:var(--radius-xl);color:var(--color-warning-dark)}.upgrade-banner-icon{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--text-2xl)}.upgrade-banner-content{flex:1}.upgrade-banner-title{font-weight:var(--font-semibold);margin-bottom:2px}.upgrade-banner-desc{font-size:var(--text-sm);opacity:.9}.form-input{height:36px;width:100%;padding:0 var(--space-3);background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-md);color:var(--color-text-primary);transition:border-color var(--duration-fast)}.form-input:hover{border-color:var(--color-border-strong)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-label{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-2);font-weight:var(--font-medium)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary-dark);display:flex;align-items:center;justify-content:center;font-weight:var(--font-semibold);font-size:var(--text-sm)}.battery{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-secondary)}.battery-bar{width:18px;height:8px;border:1.5px solid currentColor;border-radius:2px;position:relative;padding:1px}.battery-bar:after{content:"";position:absolute;right:-3px;top:2px;width:2px;height:4px;background:currentColor;border-radius:0 1px 1px 0}.battery-fill{height:100%;background:currentColor;border-radius:1px}.battery-good{color:var(--color-success-dark)}.battery-low{color:var(--color-warning-dark)}.battery-crit{color:var(--color-error-dark)}.icon{width:16px;height:16px;flex-shrink:0}.icon-lg{width:20px;height:20px}.icon-xl{width:24px;height:24px}body{margin:0}#root{min-height:100vh}.ho-boot{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--ho-canvas)}.ho-boot-card{width:min(420px,92vw);background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-lg);box-shadow:var(--ho-sh-card);padding:32px 28px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-family:var(--ho-font-body)}.ho-boot-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:-.015em;color:var(--ho-t1)}.ho-boot-brand .mark{width:32px;height:32px;border-radius:8px;background:var(--ho-p);color:#fff;display:grid;place-items:center;font:700 16px var(--ho-font-num)}.ho-boot-spin{width:22px;height:22px;border:3px solid var(--ho-muted-2);border-top-color:var(--ho-p);border-radius:50%;animation:ho-boot-spin .8s linear infinite}@keyframes ho-boot-spin{to{transform:rotate(360deg)}}.ho-boot-card h2{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}.ho-boot-card p{margin:0;font-size:13px;color:var(--ho-t3);max-width:340px}.ho-boot-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--ho-muted-2);color:var(--ho-t3)}.ho-boot-ic.bad{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ho-boot-card .ho-btn{margin-top:6px}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-400-normal-7kQcAFpS.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2) format("woff2"),url(/assets/source-sans-3-greek-ext-400-normal-BI1kUwmR.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-400-normal-DZReXJla.woff2) format("woff2"),url(/assets/source-sans-3-greek-400-normal-DJm9Ud5h.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2) format("woff2"),url(/assets/source-sans-3-vietnamese-400-normal-dYp9C364.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2) format("woff2"),url(/assets/source-sans-3-latin-ext-400-normal-BGPHfnm_.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2) format("woff2"),url(/assets/source-sans-3-latin-400-normal-AFMiCETP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-cyrillic-ext-500-normal-D8Dd5jAI.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-ext-500-normal-CaAUUz-j.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-cyrillic-500-normal-BmnPaoCF.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-500-normal-B7bCyCk_.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-greek-ext-500-normal-9wgnofA_.woff2) format("woff2"),url(/assets/source-sans-3-greek-ext-500-normal-FO4an0ZF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-greek-500-normal-eLQqTu5G.woff2) format("woff2"),url(/assets/source-sans-3-greek-500-normal-BOY5JFvG.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-vietnamese-500-normal-BSXhk166.woff2) format("woff2"),url(/assets/source-sans-3-vietnamese-500-normal-7g9Z1MMl.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-latin-ext-500-normal-tzH6xoxH.woff2) format("woff2"),url(/assets/source-sans-3-latin-ext-500-normal-DYiJOyLu.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:500;src:url(/assets/source-sans-3-latin-500-normal-DiWS0tcR.woff2) format("woff2"),url(/assets/source-sans-3-latin-500-normal-BtDzq-z9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-ext-600-normal-6AhwUnSr.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-ext-600-normal-uAL1a5gb.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-600-normal-BnFu5nHC.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-600-normal-y-RO8wOd.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-ext-600-normal-DynePNDL.woff2) format("woff2"),url(/assets/source-sans-3-greek-ext-600-normal-D7vJ4nVX.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-600-normal-BSO157bq.woff2) format("woff2"),url(/assets/source-sans-3-greek-600-normal-BNF9LBpG.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-vietnamese-600-normal-B2sTNYey.woff2) format("woff2"),url(/assets/source-sans-3-vietnamese-600-normal-DpSexF-T.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-ext-600-normal-AEyhgUpm.woff2) format("woff2"),url(/assets/source-sans-3-latin-ext-600-normal-Wy7HIzqC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2) format("woff2"),url(/assets/source-sans-3-latin-600-normal-BvDVuF-j.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2) format("woff2"),url(/assets/source-sans-3-cyrillic-700-normal-DYE6gq6k.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2) format("woff2"),url(/assets/source-sans-3-greek-ext-700-normal-C6ITAlBU.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2) format("woff2"),url(/assets/source-sans-3-greek-700-normal-BWdBblwd.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2) format("woff2"),url(/assets/source-sans-3-vietnamese-700-normal-BHxM10oo.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2) format("woff2"),url(/assets/source-sans-3-latin-ext-700-normal-ChH_v7nA.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2) format("woff2"),url(/assets/source-sans-3-latin-700-normal-BBbVrHF_.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:24px;background:linear-gradient(160deg,var(--ho-ink) 0%,var(--ho-p) 45%,var(--ho-canvas) 45.1%)}.login-card{width:min(420px,92vw);padding:26px 28px 22px;background:var(--ho-surface);border-radius:var(--ho-r-lg);box-shadow:var(--ho-sh-pop);margin-top:-6%;display:flex;flex-direction:column;gap:12px}.login-brand{display:flex;align-items:center;gap:10px}.login-brand .mark{width:34px;height:34px;border-radius:9px;background:var(--ho-p);color:#fff;display:grid;place-items:center;font:700 17px var(--ho-font-num)}.login-brand b{display:block;font-size:20px;font-weight:700;letter-spacing:-.015em;line-height:1.1;color:var(--ho-t1)}.login-brand small{display:block;font-size:11px;color:var(--ho-t3)}.login-brand .login-lang{margin-left:auto}.login-title{margin:4px 0 0!important;font-size:17px!important;font-weight:600!important;letter-spacing:-.01em}.login-title small{display:block;font-size:12px;font-weight:400;color:var(--ho-t3);margin-top:2px}.login-form{display:flex;flex-direction:column}.login-error{color:var(--ho-bad-dark)!important;font-size:12px;font-weight:600}.login-code .ant-input{text-align:center;letter-spacing:.3em;font:700 20px var(--ho-font-num)}.login-foot{display:flex;justify-content:center;gap:14px;font-size:11px;padding-top:4px}.login-foot a{color:var(--ho-t4)}.login-foot a:hover{color:var(--ho-p)}@media(max-width:470px),(max-height:600px){.login-container{align-items:flex-start;padding:24px 0}.login-card{margin-top:0}}.ho-bell{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:8px;background:transparent;color:#b9c4d8;cursor:pointer;line-height:1}.ho-bell:hover{background:#ffffff1a;color:#fff}.ho-bell.on{color:#fff}.ho-bell-ico{font-size:16px}.ho-bell .ant-badge{line-height:1;color:inherit}.ho-bell .ant-badge-count{box-shadow:none}.ho-note-menu{width:340px;max-height:440px;overflow-y:auto}.ho-note-menu.ant-dropdown-menu .ant-dropdown-menu-item{height:auto;line-height:1.35;padding:8px 10px}.ho-note-menu.ant-dropdown-menu .ant-dropdown-menu-title-content{white-space:normal}.ho-note-hdr{display:flex;align-items:center;gap:8px;padding:2px 0}.ho-note-hdr-t{font-weight:700;color:#0f172a;font-size:13px}.ho-note-live{font-size:11px;color:#94a3b8}.ho-note-live:before{content:"";display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:#cbd5e1;vertical-align:middle}.ho-note-live.on{color:#16a34a}.ho-note-live.on:before{background:#22c55e}.ho-note-live.warn{color:#b45309}.ho-note-live.warn:before{background:#f59e0b}.ho-note-readall{margin-left:auto;border:0;background:transparent;padding:0;color:#2563eb;font-size:12px;font-family:inherit;cursor:pointer}.ho-note-readall:hover{text-decoration:underline}.ho-note-empty{padding:18px 0;text-align:center;color:#94a3b8;font-size:12.5px}.ho-note-item{display:flex;align-items:flex-start;gap:8px}.ho-note-ico{flex:none;width:24px;height:24px;border-radius:6px;background:var(--ho-muted-2);color:var(--ho-t2);display:grid;place-items:center;font-size:13px}.ho-note-item.unread .ho-note-ico{background:var(--ho-p-50);color:var(--ho-p-dark)}.ho-note-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ho-note-title{font-size:12.5px;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ho-note-item.unread .ho-note-title{font-weight:700;color:#0f172a}.ho-note-body{font-size:11.5px;color:#64748b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ho-note-time{flex:none;font-size:11px;color:#94a3b8;padding-top:1px}.ho-note-item.unread{position:relative}.ho-note-item.unread:before{content:"";position:absolute;left:-6px;top:6px;width:5px;height:5px;border-radius:50%;background:#2563eb}.ho-note-push{font-size:12.5px;color:#2563eb}.ho-tag{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-sm);border:1px solid transparent;white-space:nowrap}.ho-tag .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.ho-tag.t-room-oc{color:var(--ho-room-oc);background:color-mix(in srgb,var(--ho-room-oc) 8%,#fff);border-color:color-mix(in srgb,var(--ho-room-oc) 24%,#fff)}.ho-tag.t-room-od{color:color-mix(in srgb,var(--ho-room-od) 70%,#000);background:color-mix(in srgb,var(--ho-room-od) 8%,#fff);border-color:color-mix(in srgb,var(--ho-room-od) 24%,#fff)}.ho-tag.t-room-vc{color:var(--ho-room-vc);background:#f0faf0;border-color:#c6e8c6}.ho-tag.t-room-vd{color:color-mix(in srgb,var(--ho-room-vd) 60%,#000);background:color-mix(in srgb,var(--ho-room-vd) 8%,#fff);border-color:color-mix(in srgb,var(--ho-room-vd) 24%,#fff)}.ho-tag.t-room-locked{color:var(--ho-room-repair);background:color-mix(in srgb,var(--ho-room-repair) 8%,#fff);border-color:color-mix(in srgb,var(--ho-room-repair) 24%,#fff)}.ho-tag.t-pay-paid{color:var(--ho-pay-paid);background:#f0fdf4;border-color:#bbf7d0}.ho-tag.t-pay-partial{color:var(--ho-pay-partial);background:#fffbeb;border-color:#fde68a}.ho-tag.t-pay-unpaid{color:var(--ho-pay-unpaid);background:#fef2f2;border-color:#fecaca}.ho-tag.t-pay-refund{color:var(--ho-pay-refund);background:#f5f3ff;border-color:#ddd6fe}.ho-tag.t-pay-vcc{color:var(--ho-pay-vcc);background:#eef2ff;border-color:#c7d2fe}.ho-tag.t-clean-clean{color:var(--ho-clean-clean);background:#f0fdf4;border-color:#bbf7d0}.ho-tag.t-clean-dirty{color:var(--ho-clean-dirty);background:#fffbeb;border-color:#fde68a}.ho-tag.t-clean-inspecting{color:var(--ho-clean-inspecting);background:var(--color-primary-50);border-color:var(--color-primary-100)}.ho-tag.t-clean-ooo{color:var(--ho-clean-ooo);background:#fbf1ec;border-color:#f0cdbc}.ho-tag.t-msg-pending{color:var(--color-slate-500);background:var(--color-slate-100);border-color:var(--color-slate-200)}.ho-tag.t-msg-dispatched{color:var(--color-primary-600);background:var(--color-primary-50);border-color:var(--color-primary-100)}.ho-tag.t-msg-sent{color:var(--ho-pay-paid);background:#f0fdf4;border-color:#bbf7d0}.ho-tag.t-msg-failed{color:var(--ho-pay-unpaid);background:#fef2f2;border-color:#fecaca}.ho-tag.t-neutral{color:var(--color-slate-500);background:var(--color-slate-100);border-color:var(--color-slate-200)}.ho-tag.t-pay-refund-due{color:#fff;background:var(--color-error);border-color:var(--color-error)}.ho-tag.t-pay-refund-due .dot{background:#fff}.ho-tag.t-clean-rework{color:var(--ho-pay-unpaid);background:var(--color-error-light);border-color:#fecaca}.ho-drawer-title-row{display:flex;align-items:center;gap:10px;width:100%}.ho-drawer-title-row .t{font-size:15px;font-weight:var(--font-semibold);color:var(--color-slate-900)}.ho-drawer-title-row .s{font-size:var(--text-sm);font-weight:var(--font-normal);color:var(--color-slate-400);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ho-drawer-title-row .x{margin-left:auto;flex:none;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-slate-400);font-size:16px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.ho-drawer-title-row .x:hover{background:var(--color-slate-100);color:var(--color-slate-700)}.ho-drawer-title-row .x:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.ho-drawer-foot-row{display:flex;align-items:center;gap:8px;justify-content:flex-end}.ho-drawer-foot-row .left{margin-right:auto}.ant-input.num,.num.ant-input,.ant-input-number.num .ant-input-number-input{text-align:right;font-variant-numeric:tabular-nums}.ant-input-number.num .ant-input-number-input{padding-right:24px}.ho-topnav{height:var(--ho-topnav-h);background:var(--ho-ink);color:#fff;display:flex;align-items:center;gap:6px;padding:0 18px;position:sticky;top:0;z-index:100}.ho-topnav .brand{display:flex;align-items:center;gap:10px;margin-right:18px}.ho-topnav .mark{width:30px;height:30px;border-radius:8px;background:var(--ho-p);display:grid;place-items:center;font:700 15px var(--ho-font-num);color:#fff}.ho-topnav .hotel{font:600 17px var(--ho-font-num);letter-spacing:-.01em;color:#fff;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ho-topnav .nav{display:flex;gap:2px;flex:1}.ho-topnav .nav a{color:#b9c4d8;font-weight:500;font-size:15px;letter-spacing:.01em;padding:0 13px;height:36px;border-radius:8px;display:flex;align-items:center;gap:7px;text-decoration:none}.ho-topnav .nav a:hover{color:#fff;background:#ffffff12}.ho-topnav .nav a.on{color:#fff;font-weight:600;background:#60a5fa47;box-shadow:inset 0 0 0 1px #93c5fd80}.ho-topnav .nav .cnt{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--ho-bad);color:#fff;font:700 11px var(--ho-font-num);display:grid;place-items:center}.ho-topnav .right{display:flex;align-items:center;gap:10px}.ho-topnav .search{display:flex;align-items:center;gap:8px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:6px 10px;color:#8fa0be;font-size:12.5px;width:230px}.ho-topnav .search kbd{margin-left:auto;font:600 10px var(--ho-font-num);background:#ffffff1a;padding:1px 5px;border-radius:4px}.ho-topnav .clock{font:700 13px var(--ho-font-num);color:#dce3ee;text-align:right;line-height:1.1}.ho-topnav .clock small{display:block;font:500 10px var(--ho-font-body);color:#8fa0be}.ho-topnav .lang{display:flex;background:#ffffff14;border-radius:7px;padding:2px}.ho-topnav .lang button{font-size:11px;font-weight:600;padding:3px 7px;border-radius:5px;color:#aab6cc;cursor:pointer;border:0;background:transparent;font-family:inherit;line-height:inherit}.ho-topnav .lang button.on{background:var(--ho-p);color:#fff}.ho-topnav .user{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 4px;border-radius:20px;background:#ffffff0f;cursor:pointer}.ho-topnav .user:hover{background:#ffffff1a}.ho-topnav .ava{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#60a5fa,#1d4ed8);display:grid;place-items:center;font:700 12px var(--ho-font-num);color:#fff}.ho-topnav .user .name{font-size:12.5px;color:#dce3ee}.ho-topnav .pro{font:700 10px var(--ho-font-num);letter-spacing:.06em;background:linear-gradient(135deg,#f59e0b,#d97706);padding:2px 6px;border-radius:5px;color:#fff}.ho-topnav .ibtn{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:#b9c4d8;position:relative;border:0;background:transparent;padding:0;cursor:pointer;line-height:1}.ho-topnav .ibtn:hover,.ho-topnav .ibtn.on{background:#ffffff1a;color:#fff}.ho-topnav .help{height:32px;padding:0 10px;border-radius:8px;color:#b9c4d8;font-weight:500;font-size:13px;display:flex;align-items:center;gap:5px;border:0;background:transparent;cursor:pointer;font-family:inherit}.ho-topnav .help:hover,.ho-topnav .help.on{background:#ffffff1a;color:#fff}.ho-subnav{height:var(--ho-subnav-h);background:var(--ho-surface);border-bottom:1px solid var(--ho-line);display:flex;align-items:center;padding:0 18px;gap:2px;position:sticky;top:var(--ho-topnav-h);z-index:90}.ho-subnav a{color:var(--ho-t2);font-weight:500;padding:0 12px;height:100%;display:flex;align-items:center;gap:6px;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}.ho-subnav a:hover{color:var(--ho-t1)}.ho-subnav a.on{color:var(--ho-p-dark);font-weight:600;border-color:var(--ho-p)}.ho-subnav .cnt{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--ho-bad);color:#fff;font:700 11px var(--ho-font-num);display:grid;place-items:center}.ho-subnav .cnt.warn{background:var(--ho-warn)}.ho-subnav .cnt.ok{background:var(--ho-ok)}.ho-subnav .sp{flex:1}.ho-subnav .meta{color:var(--ho-t3);font-size:12px}.ho-page{padding:18px 22px 40px}.ho-page.tight{padding:14px 18px 30px}.ho-with-rail{display:grid;grid-template-columns:212px 1fr;min-height:calc(100vh - var(--ho-topnav-h))}.ho-rail{background:var(--ho-surface);border-right:1px solid var(--ho-line);padding:14px 10px}.ho-rail .grp{font:700 11px var(--ho-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);padding:14px 10px 6px}.ho-rail a{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--ho-t1);font-weight:500;text-decoration:none}.ho-rail a:hover{background:var(--ho-muted)}.ho-rail a.on{background:var(--ho-p-50);color:var(--ho-p-dark);font-weight:600;box-shadow:inset 3px 0 0 var(--ho-p)}.ho-rail a.disabled{opacity:.55;cursor:not-allowed}.ho-rail a.disabled:hover{background:transparent}.ho-rail a .ho-tag{margin-left:auto}.ho-rail .ico{width:18px;text-align:center;opacity:.85}.ho-ph{display:flex;align-items:flex-end;gap:16px;margin-bottom:14px}.ho-ph h1{font:700 22px/1.15 var(--ho-font-num);letter-spacing:-.015em;color:var(--ho-t1)}.ho-ph h1 small{display:block;font:400 13px var(--ho-font-body);color:var(--ho-t3);letter-spacing:0;margin-top:3px}.ho-ph .sp{flex:1}.ho-ph .actions{display:flex;gap:8px;align-items:center}.ho-att{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:16px}.ho-att .t{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);padding:12px 14px 11px;display:flex;flex-direction:column;gap:4px;position:relative;box-shadow:var(--ho-sh-card);cursor:pointer;transition:.15s;text-align:left;color:var(--ho-t1)}.ho-att .t:hover{transform:translateY(-1px);box-shadow:var(--ho-sh-lift)}.ho-att .t.static{cursor:default}.ho-att .t.static:hover{transform:none;box-shadow:var(--ho-sh-card)}.ho-att .t .l{font-size:12px;color:var(--ho-t2);font-weight:600;display:flex;align-items:center;gap:6px}.ho-att .t .v{font:700 28px/1 var(--ho-font-num);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.ho-att .t .s{font-size:11.5px;color:var(--ho-t3)}.ho-att .t .s b{color:var(--ho-t2)}.ho-att .t.hot{background:linear-gradient(180deg,#fff5f5,#fff);border-color:#f5c2c2}.ho-att .t.hot .v{color:var(--ho-bad)}.ho-att .t.hot .l{color:var(--ho-bad-dark)}.ho-att .t.warm{background:linear-gradient(180deg,#fffbeb,#fff);border-color:#f3d48a}.ho-att .t.warm .v{color:var(--ho-warn-dark)}.ho-att .t.cool{background:linear-gradient(180deg,#eff6ff,#fff);border-color:#bfd7fb}.ho-att .t.cool .v{color:var(--ho-p-dark)}.ho-att .t.good .v{color:var(--ho-ok-dark)}.ho-att .t .ho-go{position:absolute;right:12px;top:12px;font-size:12px;color:var(--ho-t3)}.ho-att .t.ink{background:var(--ho-ink);border-color:var(--ho-ink);color:#fff}.ho-att .t.ink .l{color:#aab6cc}.ho-att .t.ink .v{color:#fff}.ho-att .t.ink .s{color:#8fa0be}.ho-card{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);box-shadow:var(--ho-sh-card)}.ho-card>.hd,.ho-card .hd{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--ho-line)}.ho-card .hd h3{font:600 15px var(--ho-font-num);letter-spacing:-.01em;display:flex;align-items:center;gap:8px;margin:0;color:inherit}.ho-card .hd .sp{flex:1}.ho-card .hd .cnt{font:600 11px var(--ho-font-num);background:var(--ho-muted-2);color:var(--ho-t2);padding:2px 7px;border-radius:9px}.ho-card .bd{padding:14px 16px}.ho-card .ft{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--ho-line);background:var(--ho-muted);border-radius:0 0 var(--ho-r-md) var(--ho-r-md)}.ho-card.ink{background:var(--ho-ink);border-color:var(--ho-ink);color:#fff}.ho-card.ink .hd{border-color:#ffffff14}.ho-sec-hd{font:700 11px var(--ho-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);margin:0 0 8px;display:flex;align-items:center;gap:8px}.ho-sec-hd:after{content:"";flex:1;height:1px;background:var(--ho-line)}.ho-sec-hd.plain:after{display:none}.ho-kpi{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);padding:14px 16px;box-shadow:var(--ho-sh-card);border-top:3px solid var(--ho-p)}.ho-kpi .l{font-size:12px;color:var(--ho-t2);font-weight:600}.ho-kpi .v{font:700 30px/1.1 var(--ho-font-num);letter-spacing:-.03em;margin:4px 0 2px;font-variant-numeric:tabular-nums;color:var(--ho-t1)}.ho-kpi .d{font-size:12px;color:var(--ho-t3)}.ho-kpi .d .up{color:var(--ho-ok-dark);font-weight:700}.ho-kpi .d .dn{color:var(--ho-bad-dark);font-weight:700}.ho-kpi.g{border-top-color:var(--ho-ok)}.ho-kpi.o{border-top-color:var(--ho-warn)}.ho-kpi.v{border-top-color:#7c3aed}.ho-kpi.r{border-top-color:var(--ho-bad)}.ho-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:11px;font-size:11.5px;font-weight:700;white-space:nowrap;line-height:1}.ho-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.ho-pill.nodot:before{display:none}.ho-pill.oc{background:color-mix(in srgb,var(--ho-room-oc) 12%,#fff);color:var(--ho-room-oc)}.ho-pill.od{background:color-mix(in srgb,var(--ho-room-od) 12%,#fff);color:color-mix(in srgb,var(--ho-room-od) 75%,#000)}.ho-pill.vc{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ho-pill.vd{background:color-mix(in srgb,var(--ho-room-vd) 12%,#fff);color:color-mix(in srgb,var(--ho-room-vd) 60%,#000)}.ho-pill.rsv{background:color-mix(in srgb,var(--ho-room-reserved) 12%,#fff);color:color-mix(in srgb,var(--ho-room-reserved) 78%,#000)}.ho-pill.locked{background:color-mix(in srgb,var(--ho-room-locked) 12%,#fff);color:var(--ho-room-locked)}.ho-pill.repair{background:color-mix(in srgb,var(--ho-room-repair) 12%,#fff);color:var(--ho-room-repair)}.ho-pill.out{background:color-mix(in srgb,var(--ho-room-out) 12%,#fff);color:color-mix(in srgb,var(--ho-room-out) 55%,#000)}.ho-pill.paid{background:var(--ho-ok-bg);color:var(--ho-paid)}.ho-pill.unpaid{background:var(--ho-bad-bg);color:var(--ho-pay-unpaid)}.ho-pill.partial{background:var(--ho-warn-bg);color:var(--ho-pay-partial)}.ho-pill.refund{background:#f1e9fe;color:var(--ho-pay-refund)}.ho-pill.vcc{background:#eef2ff;color:var(--ho-pay-vcc)}.ho-pill.neutral{background:var(--ho-muted-2);color:var(--ho-t2)}.ho-pill.solid{color:#fff}.ho-pill.solid:before{background:currentColor;opacity:.85}.ho-pill.solid.oc{background:var(--ho-room-oc);color:var(--ho-room-oc-ink,#fff)}.ho-pill.solid.vc{background:var(--ho-room-vc)}.ho-pill.solid.rsv{background:var(--ho-room-reserved);color:var(--ho-room-reserved-ink,#fff)}.ho-pill.solid.unpaid{background:var(--ho-bad)}.ho-pill.solid.paid{background:var(--ho-ok)}.ho-pill.solid.od{background:var(--ho-room-od);color:var(--ho-room-od-ink,#fff)}.ho-pill.solid.vd{background:var(--ho-room-vd);color:var(--ho-room-vd-ink,#1F2937)}.ho-pill.solid.locked{background:var(--ho-room-locked);color:var(--ho-room-locked-ink,#fff)}.ho-pill.solid.repair{background:var(--ho-room-repair);color:var(--ho-room-repair-ink,#fff)}.ho-pill.solid.out{background:var(--ho-room-out);color:var(--ho-room-out-ink,#fff)}.ho-pill.solid.partial{background:var(--ho-pay-partial)}.ho-pill.solid.refund{background:var(--ho-pay-refund)}.ho-pill.solid.vcc{background:var(--ho-pay-vcc)}.ho-tag2{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;font-size:11px;font-weight:700;background:var(--ho-muted-2);color:var(--ho-t2);white-space:nowrap}.ho-tag2.b{background:var(--ho-p-50);color:var(--ho-p-dark)}.ho-tag2.g{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ho-tag2.o{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ho-tag2.r{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ho-tag2.v{background:#eef2ff;color:#4338ca}.ho-tag2.t{background:#ddf5f2;color:var(--ho-pay-vcc)}.ho-tag2.gold{background:linear-gradient(135deg,#fde68a,#f59e0b);color:#78350f}.ho-rail a .ho-tag2{margin-left:auto}.ho-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ho-t3)}.ho-dot.ok{background:var(--ho-ok)}.ho-dot.warn{background:var(--ho-warn)}.ho-dot.bad{background:var(--ho-bad)}.ho-money{font-family:var(--ho-font-num);font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.02em}.ho-money.due{color:var(--ho-due)}.ho-money.paid{color:var(--ho-paid)}.ho-money.mute{color:var(--ho-t3);font-weight:600}.ho-money.sm{font-size:12px}.ho-money.md{font-size:14px}.ho-money.lg{font-size:20px}.ho-money.xl{font-size:28px}.ho-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 13px;border-radius:8px;font-weight:600;font-size:13px;border:1px solid var(--ho-line-strong);background:var(--ho-surface);color:var(--ho-t1);white-space:nowrap;transition:.12s;cursor:pointer;font-family:inherit;text-decoration:none}.ho-btn:hover{background:var(--ho-muted);border-color:var(--ho-t3)}.ho-btn.p{background:var(--ho-p);border-color:var(--ho-p);color:#fff;box-shadow:0 2px 6px #2563eb59}.ho-btn.p:hover{background:var(--ho-p-dark)}.ho-btn.ok{background:var(--ho-ok);border-color:var(--ho-ok);color:#fff;box-shadow:0 2px 6px #16a34a4d}.ho-btn.ok:hover{background:var(--ho-ok-dark)}.ho-btn.danger{color:var(--ho-bad-dark);border-color:#f1b8b8;background:#fff}.ho-btn.danger:hover{background:var(--ho-bad-bg)}.ho-btn.ghost{border-color:transparent;background:transparent;color:var(--ho-t2)}.ho-btn.ghost:hover{background:var(--ho-muted);color:var(--ho-t1)}.ho-btn.sm{height:26px;padding:0 9px;font-size:12px;border-radius:6px}.ho-btn.lg{height:40px;padding:0 20px;font-size:14px;border-radius:10px}.ho-btn.ink{background:var(--ho-ink);border-color:var(--ho-ink);color:#fff}.ho-btn.ink:hover{background:var(--ho-ink-2)}.ho-btn.soft{background:var(--ho-p-50);border-color:var(--ho-p-100);color:var(--ho-p-dark);box-shadow:none}.ho-btn.soft:hover{background:var(--ho-p-100)}.ho-btn.icon{width:32px;padding:0}.ho-btn.icon.sm{width:26px}.ho-btn.danger.solid{background:var(--ho-bad);border-color:var(--ho-bad);color:#fff;box-shadow:0 1px 2px #dc26264d}.ho-btn.danger.solid:hover{background:var(--ho-bad-dark)}.ho-btn.link{border:0;background:none;color:var(--ho-p);padding:0 4px;height:auto}.ho-btn.link:hover{text-decoration:underline;background:none}.ho-btn .cnt{font:700 10px var(--ho-font-num);background:var(--ho-bad);color:#fff;padding:1px 5px;border-radius:8px}.ho-btn[disabled],.ho-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.ho-btn .k{font:600 10px var(--ho-font-num);background:#00000014;padding:1px 4px;border-radius:3px;margin-left:2px}.ho-btn.p .k{background:#ffffff38}.ho-btn:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.ho-seg{display:inline-flex;background:var(--ho-muted-2);border-radius:8px;padding:2px}.ho-seg>*{font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;color:var(--ho-t2);cursor:pointer;white-space:nowrap;line-height:1.45;border:0;background:transparent;font-family:inherit}.ho-seg>*.on{background:#fff;color:var(--ho-t1);box-shadow:var(--ho-sh-card)}.ho-seg>*[aria-disabled=true]{opacity:.45;cursor:not-allowed}.ho-seg>*:focus-visible{outline:2px solid var(--ho-p);outline-offset:-2px}.ho-in{height:32px;border:1px solid var(--ho-line-strong);border-radius:8px;padding:0 10px;font:inherit;font-size:13px;background:#fff;color:var(--ho-t1);display:inline-flex;align-items:center;gap:6px}.ho-in:focus{outline:none;border-color:var(--ho-p);box-shadow:var(--ho-focus-ring)}.ho-in.ph{color:var(--ho-t4)}.ho-in.sel:after{content:"⌄";margin-left:auto;color:var(--ho-t3);font-size:14px}.ho-field{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ho-t2)}.ho-field label{min-width:44px;font-weight:600}.ho-field .ho-in{flex:1}.ho-req:after{content:" *";color:var(--ho-bad)}.ho-tbl{width:100%;border-collapse:collapse;font-size:13px}.ho-tbl th{font:700 11px var(--ho-font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--ho-t2);text-align:left;padding:9px 12px;border-bottom:1px solid var(--ho-line);background:var(--ho-muted);white-space:nowrap}.ho-tbl td{padding:10px 12px;border-bottom:1px solid var(--ho-line);vertical-align:middle}.ho-tbl tr:last-child td{border-bottom:none}.ho-tbl tbody tr:hover td{background:#f8fafe}.ho-tbl .r{text-align:right}.ho-tbl .sub{display:block;font-size:11.5px;color:var(--ho-t3);margin-top:1px}.ho-tbl tr.urgent td{background:#fff7f7}.ho-tbl tr.urgent td:first-child{box-shadow:inset 3px 0 0 var(--ho-bad)}.ho-tbl tr.dim td{opacity:.5}.ho-tbl .who{display:flex;align-items:center;gap:9px}.ho-ava{width:28px;height:28px;border-radius:50%;background:var(--ho-p-50);color:var(--ho-p-dark);display:grid;place-items:center;font:700 11px var(--ho-font-num);flex:none}.ho-ava.g{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ho-ava.o{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ho-ava.v{background:#eef2ff;color:#4338ca}.ant-table-wrapper .ant-table-thead>tr>th,.ant-table-wrapper .ant-table-thead>tr>td{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ho-t2)}.ant-table-wrapper .ant-table-tbody>tr.ho-urgent>td{background:#fff7f7}.ant-table-wrapper .ant-table-tbody>tr.ho-urgent>td:first-child{box-shadow:inset 3px 0 0 var(--ho-bad)}.ant-table-wrapper .ant-table-tbody>tr.ho-dim>td{opacity:.5}.ho-tb{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ho-tb .sep{width:1px;height:20px;background:var(--ho-line)}.ho-tb .sp{flex:1}.ho-hint{font-size:12px;color:var(--ho-t3)}.ho-filterbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);margin-bottom:12px;box-shadow:var(--ho-sh-card)}.ho-filterbar .sp{flex:1}.ho-filterbar .sep{width:1px;height:20px;background:var(--ho-line)}.ho-fchip{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-radius:14px;border:1px dashed var(--ho-line-strong);font-size:12px;font-weight:600;color:var(--ho-t2);cursor:pointer;background:#fff;font-family:inherit;line-height:1}.ho-fchip:hover{border-color:var(--ho-t3)}.ho-fchip.on{border-style:solid;border-color:var(--ho-p-200);background:var(--ho-p-50);color:var(--ho-p-dark)}.ho-fchip .x{opacity:.6}.ho-fchip:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.ho-fld{display:flex;flex-direction:column;gap:5px;min-width:0}.ho-fld>label{font-size:12px;font-weight:600;color:var(--ho-t2);display:flex;gap:6px;align-items:center}.ho-fld>label .opt{font-weight:400;color:var(--ho-t4)}.ho-fld .help{font-size:11px;color:var(--ho-t3)}.ho-fld .err-msg{font-size:11px;color:var(--ho-bad-dark);font-weight:600;display:flex;align-items:center;gap:4px}.ho-frow{display:grid;gap:12px}.ho-frow.c2{grid-template-columns:1fr 1fr}.ho-frow.c3{grid-template-columns:1fr 1fr 1fr}.ho-frow.c4{grid-template-columns:repeat(4,1fr)}.ho-frow .w2{grid-column:span 2}.ho-frow .w3{grid-column:span 3}.ho-fsec{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md)}.ho-fsec>.ho-sec-hd{margin-bottom:0}@media(max-width:900px){.ho-frow.c3,.ho-frow.c4{grid-template-columns:1fr 1fr}.ho-frow .w3{grid-column:span 2}}@media(max-width:600px){.ho-frow.c2,.ho-frow.c3,.ho-frow.c4{grid-template-columns:1fr}.ho-frow .w2,.ho-frow .w3{grid-column:auto}}.ho-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px;margin:0}.ho-kv dt{color:var(--ho-t3);font-weight:500;white-space:nowrap}.ho-kv dd{font-weight:600;color:var(--ho-t1);margin:0;min-width:0;overflow-wrap:anywhere}.ho-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:40px 20px;text-align:center;color:var(--ho-t3)}.ho-empty .ic{width:48px;height:48px;border-radius:14px;background:var(--ho-muted-2);display:grid;place-items:center;color:var(--ho-t4);margin-bottom:6px;font-size:22px}.ho-empty b{font-size:15px;color:var(--ho-t1);font-weight:600}.ho-empty p{font-size:13px;max-width:340px;margin:0}.ho-empty .ho-btn,.ho-empty .ant-btn{margin-top:8px}.ho-empty.sm{padding:20px}.ho-empty.sm .ic{width:36px;height:36px;font-size:16px}.ho-skel{background:linear-gradient(90deg,var(--ho-muted-2) 25%,#F4F6FA 50%,var(--ho-muted-2) 75%);background-size:200% 100%;animation:ho-shim 1.4s infinite;border-radius:6px;height:12px}@keyframes ho-shim{to{background-position:-200% 0}}.ho-skel.t{height:16px;width:40%}.ho-skel.l{height:12px;width:80%}.ho-skel.c{height:80px;border-radius:10px}.ho-skel.av{width:28px;height:28px;border-radius:50%}.ho-grid{display:grid;gap:14px}.ho-grid.g2{grid-template-columns:1fr 1fr}.ho-grid.g3{grid-template-columns:repeat(3,1fr)}.ho-grid.g4{grid-template-columns:repeat(4,1fr)}.ho-stack{display:flex;flex-direction:column;gap:14px}.ho-row{display:flex;align-items:center;gap:8px}.ho-sp{flex:1}.ho-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11.5px;color:var(--ho-t2);align-items:center}.ho-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-2px}.ho-note{font-size:12px;color:var(--ho-t2);background:var(--ho-muted);border-radius:8px;padding:8px 12px;border-left:3px solid var(--ho-line-strong)}.ho-note.warn{background:var(--ho-warn-bg);border-color:var(--ho-warn);color:var(--ho-warn-dark)}.ho-note.bad{background:var(--ho-bad-bg);border-color:var(--ho-bad);color:var(--ho-bad-dark)}.ho-note.ok{background:var(--ho-ok-bg);border-color:var(--ho-ok);color:var(--ho-ok-dark)}.ho-banner{display:flex;align-items:center;gap:12px;padding:8px 18px;font-size:13px;font-family:var(--ho-font-body);color:var(--ho-t1);background:var(--ho-surface);border-bottom:1px solid var(--ho-line);border-left:4px solid var(--ho-p)}.ho-banner.warn{background:var(--ho-warn-bg);border-left-color:var(--ho-warn)}.ho-banner.bad{background:var(--ho-bad-bg);border-left-color:var(--ho-bad)}.ho-banner .txt{flex:1;min-width:0}.ho-banner .x{border:0;background:transparent;color:var(--ho-t3);font-size:18px;line-height:1;padding:2px 4px;cursor:pointer}.ho-banner .x:hover{color:var(--ho-t1)}.ho-bar{height:6px;background:var(--ho-muted-2);border-radius:3px;overflow:hidden}.ho-bar i{display:block;height:100%;background:var(--ho-p);border-radius:3px}.ho-bar i.g{background:var(--ho-ok)}.ho-bar i.o{background:var(--ho-warn)}.ho-bar i.r{background:var(--ho-bad)}.ho-dock,.ho-actbar{position:sticky;bottom:0;z-index:60;display:flex;align-items:center;gap:8px;padding:10px 16px;background:#ffffffeb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--ho-line);border-radius:10px;box-shadow:0 -6px 18px -8px #0f172a26;margin-top:14px}.ho-dock.ink{background:var(--ho-ink);border-color:var(--ho-ink);color:#fff;gap:14px;box-shadow:var(--ho-sh-pop)}.ho-dock.flush,.ho-actbar.flush{border-radius:0;border-width:1px 0 0;padding:10px 22px;margin:0;box-shadow:0 -6px 18px -8px #0f172a26}.ho-dock .sp,.ho-actbar .sp{flex:1}.ho-actbar .ho-hint,.ho-actbar .hint{margin-right:auto;font-size:12px;color:var(--ho-t3)}.ho-dlg .band,.ho-drw .band{display:block;height:4px;background:var(--ho-ink);flex:none}.ho-dlg .band.danger,.ho-drw .band.danger{background:var(--ho-bad)}.ho-dlg .band.warn,.ho-drw .band.warn{background:var(--ho-warn)}.ho-dlg .band.ok,.ho-drw .band.ok{background:var(--ho-ok)}.ho-dlg .band.money,.ho-drw .band.money{background:linear-gradient(90deg,var(--ho-bad),#F87171)}.ho-dlg .band.info,.ho-drw .band.info{background:var(--ho-p)}.ho-dlg .ant-modal-content{padding:0;border-radius:var(--ho-r-lg);box-shadow:var(--ho-sh-pop);border:1px solid var(--ho-line-strong);overflow:hidden;font-size:13.5px;text-align:left}.ho-dlg .ant-modal-header{padding:0;margin:0;border:0;background:transparent}.ho-dlg .ant-modal-body{padding:0}.ho-dlg .ant-modal-footer{margin:0;padding:0;border:0;background:transparent}.ho-dlg .ant-modal-confirm-body-wrapper,.ho-dlg .ant-modal-confirm-body{padding:0;display:block}.ho-dlg .ant-modal-confirm-paragraph{max-width:100%;row-gap:0}.ho-dlg .ant-modal-confirm-title{display:block;font:inherit;color:inherit;line-height:inherit}.ho-dlg .ant-modal-confirm-content{margin:0;max-width:100%;font-size:inherit}.ho-dlg .ant-modal-confirm-btns{margin:0;display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--ho-line)}.ho-dlg .ant-modal-confirm-btns .ant-btn+.ant-btn{margin-inline-start:0}.ho-dlg .ant-modal-confirm-btns .ant-btn{min-width:120px}.ho-dlg .ant-modal-confirm-btns .ant-btn-default:not(:disabled),.ho-dlg .ft .ant-btn-default:not(:disabled),.ho-drw .ant-drawer-footer .ant-btn-default:not(:disabled){background:#64748b;border-color:#64748b;color:#fff}.ho-dlg .ant-modal-confirm-btns .ant-btn-default:not(:disabled):hover,.ho-dlg .ft .ant-btn-default:not(:disabled):hover,.ho-drw .ant-drawer-footer .ant-btn-default:not(:disabled):hover{background:#475569;border-color:#475569;color:#fff}.ho-dlg .ant-modal-confirm-btns .sp{flex:1}.ho-dlg-ok .ant-btn-primary:not(:disabled){background:var(--ho-ok);box-shadow:0 2px 6px #16a34a4d}.ho-dlg-ok .ant-btn-primary:not(:disabled):hover{background:var(--ho-ok-dark)}.ho-dlg .hd{display:flex;align-items:flex-start;gap:12px;padding:16px 18px 12px}.ho-dlg .hd .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:17px;flex:none;background:var(--ho-muted-2);color:var(--ho-t2)}.ho-dlg-danger .hd .ic{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ho-dlg-warn .hd .ic{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ho-dlg-ok .hd .ic{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ho-dlg-money .hd .ic{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ho-dlg-info .hd .ic{background:var(--ho-p-50);color:var(--ho-p-dark)}.ho-dlg .hd .tt{flex:1;min-width:0}.ho-dlg .hd h2{margin:0;font:700 17px/1.2 var(--ho-font-num);letter-spacing:-.015em;color:var(--ho-t1);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ho-dlg .hd h2 .obj{font:700 15px var(--ho-font-num);color:var(--ho-ink);background:var(--ho-p-50);padding:2px 8px;border-radius:6px}.ho-dlg .hd .sub{font-size:12.5px;color:var(--ho-t2);margin-top:3px;font-weight:400}.ho-dlg .hd .x{width:28px;height:28px;border-radius:7px;color:var(--ho-t3);display:grid;place-items:center;font-size:14px;flex:none;border:0;background:transparent;cursor:pointer;line-height:1;padding:0}.ho-dlg .hd .x:hover{background:var(--ho-muted);color:var(--ho-t1)}.ho-dlg .hd .x:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.ho-dlg .subj{margin:0 18px 12px;border:1px solid var(--ho-line);border-radius:10px;background:var(--ho-muted);display:flex;align-items:center;gap:12px;padding:10px 12px}.ho-dlg .subj .room{font:700 20px var(--ho-font-num);letter-spacing:-.02em;color:var(--ho-ink);background:#fff;border:1px solid var(--ho-line-strong);border-radius:8px;padding:4px 10px;min-width:56px;text-align:center}.ho-dlg .subj .who{flex:1;min-width:0}.ho-dlg .subj .who b{font:700 14.5px var(--ho-font-body);display:block}.ho-dlg .subj .who span{font-size:12px;color:var(--ho-t2)}.ho-dlg .subj .who span i{font-style:normal;color:var(--ho-t3);margin:0 5px}.ho-dlg .subj .amt{text-align:right}.ho-dlg .subj .amt small{display:block;font-size:11px;color:var(--ho-t3);font-weight:600}.ho-dlg .subj .amt b{font:700 22px/1 var(--ho-font-num);letter-spacing:-.02em}.ho-dlg .subj .amt b.due{color:var(--ho-due)}.ho-dlg .subj .amt b.paid{color:var(--ho-paid)}.ho-dlg .subj.ink{background:var(--ho-ink);border-color:var(--ho-ink);color:#fff}.ho-dlg .subj.ink .room{background:#ffffff1f;border-color:transparent;color:#fff}.ho-dlg .subj.ink .who span{color:#aab6cc}.ho-dlg .subj.ink .who span i{color:#5f6f92}.ho-dlg .subj.ink .amt small{color:#aab6cc}.ho-dlg .subj.ink .amt b.due{color:#fca5a5}.ho-dlg .subj.ink .amt b.paid{color:#86efac}.ho-dlg .subj .arr,.ho-drw .strip .arr{flex:none;font:700 16px/1 var(--ho-font-num);color:var(--ho-t3);margin:0 -4px}.ho-dlg .subj .room.to{border-color:var(--ho-ink)}.ho-dlg .subj.ink .arr{color:#5f6f92}.ho-dlg .cons{margin:0 18px 12px;display:flex;flex-direction:column;gap:6px}.ho-dlg .cons div{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--ho-t1);line-height:1.4}.ho-dlg .cons div i{font-style:normal;flex:none;width:18px;height:18px;border-radius:5px;display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:1px;background:var(--ho-muted-2);color:var(--ho-t2)}.ho-dlg .cons div.ok i{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ho-dlg .cons div.bad i{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ho-dlg .cons div.warn i{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ho-dlg .cons div.bad{font-weight:600}.ho-dlg .cons div b{font-weight:700}.ho-dlg .bd{padding:0 18px 14px;display:flex;flex-direction:column;gap:12px}.ho-dlg .bd:empty{display:none}.ho-dlg .f{display:flex;flex-direction:column;gap:5px}.ho-dlg .f label{font-size:12px;font-weight:700;color:var(--ho-t2)}.ho-dlg .f label.req:after{content:" *";color:var(--ho-bad)}.ho-dlg .f .in{width:100%}.ho-dlg .f .in.ta{height:auto;min-height:64px;padding:8px 10px;align-items:flex-start;line-height:1.4}.ho-dlg .f .help{font-size:11.5px;color:var(--ho-t3)}.ho-dlg .frow{display:grid;gap:12px}.ho-dlg .frow.c2{grid-template-columns:1fr 1fr}.ho-dlg .frow.c3{grid-template-columns:1fr 1fr 1fr}.ho-dlg .kind{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ho-dlg .kind label{border:1.5px solid var(--ho-line-strong);border-radius:10px;padding:10px 12px;cursor:pointer;display:flex;gap:10px;align-items:center}.ho-dlg .kind label .d{width:12px;height:12px;border-radius:3px;flex:none}.ho-dlg .kind label b{display:block;font-size:13px}.ho-dlg .kind label small{color:var(--ho-t3);font-size:11.5px}.ho-dlg .kind label.on{border-color:var(--ho-p);background:var(--ho-p-50);box-shadow:0 0 0 3px #2563eb1f}.ho-dlg .kind label.on.locked{border-color:var(--ho-room-locked);background:color-mix(in srgb,var(--ho-room-locked) 12%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--ho-room-locked) 12%,transparent)}.ho-dlg .kind label.on.repair{border-color:var(--ho-room-repair);background:color-mix(in srgb,var(--ho-room-repair) 12%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--ho-room-repair) 12%,transparent)}.ho-dlg .kind.reasons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.ho-dlg .kind.reasons label{padding:5px 10px;border-radius:999px;gap:6px}.ho-dlg .kind.reasons label b{font-size:12.5px;font-weight:500}.ho-dlg .summ{font-size:12.5px;color:var(--ho-t2);background:var(--ho-muted);border-radius:8px;padding:8px 12px;display:flex;align-items:center;gap:8px}.ho-dlg .summ b{font:700 14px var(--ho-font-num);color:var(--ho-t1)}.ho-dlg .chk{display:flex;align-items:center;gap:8px;font-size:12.5px}.ho-dlg .chk i{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--ho-line-strong);display:inline-grid;place-items:center;font-size:10px;font-style:normal;color:#fff;flex:none}.ho-dlg .chk i.on{background:var(--ho-p);border-color:var(--ho-p)}.ho-dlg .chk.big{border:1.5px solid var(--ho-line-strong);border-radius:10px;padding:10px 12px;font-weight:600}.ho-dlg .chk.big.on{border-color:var(--ho-bad);background:var(--ho-bad-bg)}.ho-dlg .chk.big.on i{background:var(--ho-bad);border-color:var(--ho-bad)}.ho-dlg .opts{display:flex;flex-direction:column;gap:6px}.ho-dlg .opts label{display:flex;align-items:center;gap:10px;border:1.5px solid var(--ho-line);border-radius:9px;padding:8px 12px;cursor:pointer}.ho-dlg .opts label.on{border-color:var(--ho-p);background:var(--ho-p-50)}.ho-dlg .opts label i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--ho-line-strong);flex:none;font-style:normal}.ho-dlg .opts label.on i{border:4px solid var(--ho-p)}.ho-dlg .opts label b{font-size:13px}.ho-dlg .opts label small{color:var(--ho-t3);margin-left:auto;font-size:11.5px}.ho-dlg .ft{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--ho-line)}.ho-dlg .ft .sp{flex:1}.ho-dlg .ft .ant-btn,.ho-dlg .ft .ho-btn.p,.ho-dlg .ft .ho-btn.ok{min-width:120px}.ho-dlg .ft .ho-btn.danger.solid{background:var(--ho-bad);border-color:var(--ho-bad);color:#fff;box-shadow:0 2px 6px #dc26264d}.ho-dlg .ft .ho-btn.danger.solid:hover{background:var(--ho-bad-dark)}.ho-dlg .ft .link{font-size:12.5px;color:var(--ho-t2);font-weight:600;cursor:pointer}.ho-dlg .ft .link.bad{color:var(--ho-bad-dark)}.ho-dlg .ft .hint,.ho-dlg .ant-modal-confirm-btns .hint{font-size:11.5px;color:var(--ho-t3)}.ho-drw .ant-drawer-content{border-radius:var(--ho-r-lg) 0 0 var(--ho-r-lg);overflow:hidden}.ho-drw .ant-drawer-header-title,.ho-drw .ant-drawer-title{display:block;width:100%;font:inherit;line-height:inherit}.ho-drw .hd{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--ho-line)}.ho-drw .hd .ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:17px;flex:none;background:var(--ho-muted-2)}.ho-drw-ok .hd .ic{background:var(--ho-ok-bg)}.ho-drw-money .hd .ic,.ho-drw-danger .hd .ic{background:var(--ho-bad-bg)}.ho-drw-warn .hd .ic{background:var(--ho-warn-bg)}.ho-drw-info .hd .ic{background:var(--ho-p-50)}.ho-drw .hd .tt{flex:1;min-width:0}.ho-drw .hd h2{margin:0;font:700 17px/1.2 var(--ho-font-num);letter-spacing:-.015em;color:var(--ho-t1);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ho-drw .hd h2 .obj{font:700 15px var(--ho-font-num);color:var(--ho-ink);background:var(--ho-p-50);padding:2px 8px;border-radius:6px}.ho-drw .hd .sub{font-size:12.5px;color:var(--ho-t2);margin-top:2px;font-weight:400}.ho-drw .hd .x{margin-left:auto;width:28px;height:28px;border-radius:7px;color:var(--ho-t3);display:grid;place-items:center;font-size:14px;flex:none;border:0;background:transparent;cursor:pointer;line-height:1;padding:0}.ho-drw .hd .x:hover{background:var(--ho-muted);color:var(--ho-t1)}.ho-drw .hd .x:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.ho-drw .strip{display:flex;align-items:center;gap:14px;padding:10px 18px;background:var(--ho-muted);border-bottom:1px solid var(--ho-line)}.ho-drw .strip .room{font:700 20px var(--ho-font-num);color:var(--ho-ink)}.ho-drw .strip .who{min-width:0}.ho-drw .strip .who b{display:block;font-size:14px}.ho-drw .strip .who span{font-size:12px;color:var(--ho-t2)}.ho-drw .strip .who span i{font-style:normal;color:var(--ho-t3);margin:0 5px}.ho-drw .strip .k{margin-left:auto;text-align:right;font-size:11px;color:var(--ho-t2);font-weight:700}.ho-drw .strip .k b{display:block;font:700 22px/1 var(--ho-font-num);letter-spacing:-.02em}.ho-drw .strip .k b.due{color:var(--ho-due)}.ho-drw .strip .k b.paid{color:var(--ho-paid)}.ho-drw .f{display:flex;flex-direction:column;gap:5px}.ho-drw .f label{font-size:12px;font-weight:700;color:var(--ho-t2)}.ho-drw .f .in{width:100%}.ho-drw .ft{display:flex;align-items:center;gap:8px}.ho-drw .ft .sp{flex:1}@media(max-width:1280px){.ho-topnav .clock{display:none}.ho-topnav .nav{min-width:0;overflow-x:auto;scrollbar-width:thin}.ho-topnav .nav a{padding:7px 8px;white-space:nowrap}.ho-topnav .brand{margin-right:10px}.ho-topnav .hotel{max-width:200px;font-size:16px}}@media(max-width:1200px){.ho-grid.g4{grid-template-columns:1fr 1fr}}@media(max-width:1100px){.ho-with-rail{grid-template-columns:minmax(0,1fr);min-height:auto}.ho-rail{border-right:0;border-bottom:1px solid var(--ho-line);display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:8px 10px}.ho-rail .grp{padding:4px 8px 4px 10px;flex:none}.ho-rail a{padding:6px 10px;white-space:nowrap}.ho-rail a.on{box-shadow:inset 0 -3px 0 var(--ho-p)}}@media(max-width:800px){.ho-subnav{min-width:0;overflow-x:auto;scrollbar-width:thin}.ho-subnav a{white-space:nowrap;flex:none}}@media(max-width:768px){.ho-grid.g4{grid-template-columns:1fr}}.hp-layout{display:flex;min-height:calc(100vh - var(--ho-topnav-h))}.hp-main{flex:1;min-width:0;padding:18px 26px 40px;display:grid;gap:14px;align-content:start}.hp-rail-search{padding:0 6px 8px}.hp-search{display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--ho-line-strong);border-radius:7px;background:var(--ho-surface);color:var(--ho-t3);font-size:12.5px}.hp-search input{border:0;outline:0;flex:1;min-width:0;font:inherit;color:var(--ho-t1);background:transparent}.hp-search button{border:0;background:transparent;color:var(--ho-t3);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.hp-crumb{font:600 11px var(--ho-font-num);letter-spacing:.06em;text-transform:uppercase;color:var(--ho-t3);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.hp-crumb a{color:inherit;text-decoration:none}.hp-crumb a:hover{color:var(--ho-p)}.hp-main .ho-ph{margin-bottom:0}.hp-sec-h{font:700 10.5px/1 var(--ho-font-num);letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);display:flex;align-items:center;gap:8px;margin-top:4px}.hp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.hp-card{border:1px solid var(--ho-line);border-radius:var(--ho-r-md);padding:12px 14px;cursor:pointer;display:grid;gap:4px;text-align:left;background:var(--ho-surface);font:inherit;color:inherit;box-shadow:var(--ho-sh-card);transition:.15s}.hp-card:hover{transform:translateY(-1px);box-shadow:var(--ho-sh-lift)}.hp-card .t{font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center}.hp-card .t .i{color:var(--ho-p);font-size:15px;display:inline-flex}.hp-card .t .n{font:700 13px var(--ho-font-num);color:var(--ho-t3)}.hp-card p{margin:0;color:var(--ho-t3);font-size:12px}.hp-card small{color:var(--ho-t3);font-size:11px}.hp-empty{color:var(--ho-t3);font-size:13px;margin:0}.hp-doc{max-width:72ch;display:grid;gap:12px;font-size:13px;line-height:1.6}.hp-doc h2{margin:6px 0 0;font-size:16px}.hp-doc h3{margin:8px 0 0;font-size:14px}.hp-doc h4{margin:6px 0 0;font-size:13px}.hp-doc p{margin:0}.hp-doc ol,.hp-doc ul{margin:0;padding-left:20px;display:grid;gap:6px}.hp-doc hr{border:0;border-top:1px solid var(--ho-line);margin:4px 0}.hp-doc a{color:var(--ho-p);font-weight:600;text-decoration:none}.hp-doc a:hover{text-decoration:underline}.hp-ui{display:inline-block;border:1px solid var(--ho-line-strong);border-radius:4px;padding:0 5px;font:600 11.5px var(--ho-font-body);background:var(--ho-muted);white-space:nowrap;color:var(--ho-t1)}.hp-callout{padding:8px 12px;border-radius:8px;font-size:12.5px;border-left:3px solid var(--ho-p);background:var(--ho-p-50);color:var(--ho-t2)}.hp-callout.note{border-left-color:var(--ho-line-strong);background:var(--ho-muted)}.hp-callout.warn{border-left-color:var(--ho-warn);background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.hp-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ho-t3);padding-top:12px;border-top:1px solid var(--ho-line);max-width:72ch;flex-wrap:wrap}.hp-meta .sp{flex:1}.hp-related{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;max-width:72ch}.hp-faq-list{display:grid;gap:6px;max-width:80ch}.hp-faq{border:1px solid var(--ho-line);border-radius:8px;background:var(--ho-surface)}.hp-faq summary{cursor:pointer;padding:10px 12px;font-weight:600;font-size:13px;list-style:none;display:flex;gap:10px;align-items:center}.hp-faq summary::-webkit-details-marker{display:none}.hp-faq summary:before{content:"›";color:var(--ho-t3);font-size:16px;transition:transform .15s;width:10px}.hp-faq[open] summary:before{transform:rotate(90deg)}.hp-faq .a{padding:0 12px 12px 32px;color:var(--ho-t2);font-size:12.5px;display:grid;gap:6px}.hp-faq .a p{margin:0}.hp-faq .a .g{color:var(--ho-p);font-weight:600;cursor:pointer;background:none;border:0;padding:0;font:inherit;text-align:left}.hp-wn{display:grid;gap:0;max-width:72ch}.hp-wn .it{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--ho-line)}.hp-wn .d{font:600 12px var(--ho-font-num);color:var(--ho-t3)}.hp-wn b{display:block;font-size:13px}.hp-wn .b{font-size:12.5px;color:var(--ho-t2)}.hp-drawer{display:grid;gap:12px}.hp-drawer .hp-art{border:1px solid var(--ho-line);border-radius:8px;padding:10px 12px;cursor:pointer;background:var(--ho-surface);text-align:left;font:inherit;color:inherit;width:100%}.hp-drawer .hp-art:hover{border-color:var(--ho-line-strong);background:var(--ho-muted)}.hp-drawer .hp-art b{display:block;font-size:12.5px;margin-bottom:2px}.hp-drawer .hp-art p{margin:0;color:var(--ho-t3);font-size:12px}.hp-drawer .hp-art small{display:block;margin-top:5px;color:var(--ho-t3);font-size:11px}.hp-drawer .hp-q{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--ho-line);cursor:pointer;background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left;font-family:inherit;color:inherit}.hp-drawer .hp-q:last-child{border-bottom:0}.hp-drawer .hp-q .k{color:var(--ho-t3);font:700 11px var(--ho-font-num);margin-top:2px;flex:none}.hp-drawer-foot{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ho-t3);width:100%}.hp-drawer-root .ho-drawer-title-row .s,.hp-drawer-root .ho-drw .hd .sub{flex:1;display:flex;align-items:center;gap:10px;overflow:visible;min-width:0}.hp-drawer-root .hp-drawer-mod{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hp-drawer-root .hp-open-center{margin-left:auto;flex:none}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--ho-canvas)}.topnav .topnav-tab{position:relative}.page-body{flex:1;display:flex;min-height:0;background:var(--ho-canvas)}.sidebar{width:var(--sider-width);background:var(--ho-surface);border-right:1px solid var(--ho-line);padding:14px 10px;overflow-y:auto;flex-shrink:0}.sidebar-label{font:700 10.5px var(--ho-font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ho-t2);padding:12px 10px 6px}.sidebar-item{display:flex;align-items:center;gap:9px;padding:8px 10px;font-size:var(--text-base);font-weight:500;color:var(--ho-t1);border-radius:8px;cursor:pointer;text-decoration:none;transition:all var(--duration-fast)}.sidebar-item:hover{background:var(--ho-muted)}.sidebar-item.active{background:var(--ho-p-50);color:var(--ho-p-dark);font-weight:700;box-shadow:inset 3px 0 0 var(--ho-p)}.sidebar-item .ico{font-size:var(--text-md);width:18px;text-align:center;opacity:.85}.sidebar-item .item-meta{margin-left:auto;font-size:9px;padding:1px 6px;background:var(--color-success);color:#fff;border-radius:3px;font-weight:var(--font-bold);letter-spacing:.04em}.sidebar-item .item-meta.soon{background:var(--color-slate-300);color:var(--color-slate-600)}.sidebar-item.disabled{opacity:.6;cursor:not-allowed}.sidebar-item.disabled:hover{background:transparent;color:var(--ho-t1)}.sidebar-divider{height:1px;background:var(--ho-line);margin:var(--space-3) var(--space-2)}.main-content{flex:1;min-width:0;padding:var(--ho-page-py) var(--ho-page-px)}.ho-update-card{position:fixed;right:18px;bottom:18px;z-index:1100;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 36px));padding:12px 14px 12px 16px;background:var(--ho-surface);border:1px solid var(--ho-line);border-left:4px solid var(--ho-p);border-radius:var(--ho-r-sm);box-shadow:var(--ho-shadow-pop);font-family:var(--ho-font-body)}.ho-update-text{flex:1;min-width:0}.ho-update-title{font-weight:600;font-size:14px;color:var(--ho-t1)}.ho-update-sub{font-size:12px;color:var(--ho-t3);margin-top:2px}.ho-update-close{border:0;background:transparent;color:var(--ho-t3);font-size:18px;line-height:1;padding:2px 4px;cursor:pointer}.ho-update-close:hover{color:var(--ho-t1)}@scope(.unlock-page-root){:root{--blue-50: #EFF6FF;--blue-100: #DBEAFE;--blue-200: #BFDBFE;--blue-300: #93C5FD;--blue-400: #60A5FA;--blue-500: #3B82F6;--blue-600: #2563EB;--blue-700: #1D4ED8;--blue-800: #1E40AF;--blue-900: #1E3A8A;--green-50: #F0FDF4;--green-500: #22C55E;--green-600: #16A34A;--amber-50: #FFFBEB;--amber-600: #D97706;--red-50: #FEF2F2;--red-600: #DC2626;--slate-50: #F8FAFC;--slate-100: #F1F5F9;--slate-200: #E2E8F0;--slate-300: #CBD5E1;--slate-400: #94A3B8;--slate-500: #64748B;--slate-600: #475569;--slate-700: #334155;--slate-800: #1E293B;--slate-900: #0F172A;--primary: var(--blue-600);--success: var(--green-500);--warning: #F59E0B;--error: #EF4444;--text: var(--slate-900);--text-secondary: var(--slate-500);--text-tertiary: var(--slate-400);--surface: #FFFFFF;--border: var(--slate-200);--bg: var(--slate-50);--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.1);--font: "Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh;display:flex;flex-direction:column}.dm-header{height:56px;background:var(--surface);color:var(--text);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:fixed;top:0;left:220px;right:0;z-index:100;border-bottom:1px solid var(--border)}.dm-header-left{display:flex;align-items:center;gap:16px;flex:1}.dm-header-right{display:flex;align-items:center;gap:12px}.dm-logo{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700}.dm-logo-icon{width:32px;height:32px;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px}.dm-conn-tag{font-size:11px;padding:2px 10px;border-radius:10px;font-weight:500}.dm-conn-tag.ok{background:#52c41a2e;color:#52c41a}.dm-conn-tag.err{background:#ff4d4f26;color:#ff4d4f}.dm-search-box{flex:1;max-width:360px;height:36px;background:var(--slate-50);border:1px solid var(--border);border-radius:var(--r-md);padding:0 12px;font-size:13px;color:var(--text);font-family:var(--font);outline:none;transition:border-color .2s}.dm-search-box:focus{border-color:var(--primary)}.dm-search-box::placeholder{color:var(--slate-400)}.dm-hotel-selector{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;font-weight:500;cursor:pointer;background:var(--surface);color:var(--text)}.dm-hotel-selector:hover{border-color:var(--primary)}.dm-notif-btn{width:36px;height:36px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;position:relative;transition:all .15s;color:var(--slate-600)}.dm-notif-btn:hover{background:var(--slate-50)}.dm-sidebar{width:220px;background:var(--blue-900);position:fixed;left:0;top:0;bottom:0;padding:0;overflow-y:auto;z-index:110;display:flex;flex-direction:column}.dm-sidebar-logo{padding:20px;display:flex;align-items:center;gap:10px;font-size:17px;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.dm-sidebar-logo .logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--blue-500),var(--blue-400));border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#fff}.dm-sidebar-scroll{flex:1;overflow-y:auto;padding:8px 0}.dm-nav-item{padding:10px 16px;margin:2px 8px;color:#ffffffa6;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;transition:all .15s;border-radius:var(--r-md);position:relative}.dm-nav-item:hover{color:#fff;background:#ffffff14}.dm-nav-item.active{color:#fff;background:#ffffff1f;font-weight:600}.dm-nav-item.active svg{opacity:1}.dm-nav-item svg{width:18px;height:18px;opacity:.7;flex-shrink:0}.dm-nav-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;background:var(--error);color:#fff;border-radius:10px;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.dm-nav-group{padding:16px 12px 4px 20px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#ffffff59;-webkit-user-select:none;user-select:none}.dm-nav-divider{height:1px;background:#ffffff14;margin:4px 16px}.dm-main{margin-left:220px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);background:var(--bg)}.device-strip{display:flex;align-items:center;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:10px;height:36px}.ds-item{display:flex;align-items:center;gap:6px;padding:0 16px;height:100%;font-size:12px;font-weight:600;border-right:1px solid #F1F5F9;white-space:nowrap}.ds-item:last-child{border-right:none}.ds-item .ds-val{font-size:15px;font-weight:700}.ds-item .ds-label{font-size:11px;color:var(--ho-t2);font-weight:500}.ds-item.clickable{cursor:pointer;transition:background .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.ds-item.clickable:hover{background:#f8fafc}.ds-item.clickable.active-warn{background:#fffbeb;box-shadow:inset 0 -2px #d97706}.ds-item.clickable.active-danger{background:#fef2f2;box-shadow:inset 0 -2px #dc2626}.ds-item.clickable.disabled{opacity:.4;cursor:default}.ds-item.clickable.disabled:hover{background:transparent}.ds-item .ds-action{font-size:10px;font-weight:600;padding:3px 8px;border-radius:999px;border:none;cursor:pointer;font-family:var(--font);transition:all .15s;flex-shrink:0;white-space:nowrap}.ds-item .ds-action:hover{filter:brightness(.9)}.ds-reset{display:none;align-items:center;gap:5px;padding:0 12px;height:100%;font-size:11px;font-weight:600;color:var(--primary);cursor:pointer;transition:background .15s;white-space:nowrap;border-left:1px solid #F1F5F9}.ds-reset:hover{background:#eff6ff}.ds-reset.visible{display:flex}.ds-reset .reset-x{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#dbeafe;font-size:10px;font-weight:800;color:var(--primary)}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.pulse-dot.green{background:var(--green-500);animation:pdot 1.5s ease infinite}.pulse-dot.red{background:var(--error);animation:pdot-r 1s ease infinite}@keyframes pdot{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 5px #22c55e00}}@keyframes pdot-r{0%,to{box-shadow:0 0 #ef444480}50%{box-shadow:0 0 0 5px #ef444400}}.top-bar{height:64px;background:#fff;border-bottom:1px solid #E2E8F0;display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:100;box-shadow:0 1px 3px #0000000a;gap:16px;display:none}.top-bar .logo{font-size:18px;font-weight:700;color:#2563eb;display:flex;align-items:center;gap:8px}.top-bar .logo-icon{width:36px;height:36px;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:800}.top-bar .subtitle{font-size:12px;color:var(--ho-t3);font-weight:400;margin-left:-8px}.top-bar .spacer{flex:1}.top-bar .top-actions{display:flex;align-items:center;gap:10px}.dm-section{background:#fff;border-radius:12px;border:1px solid #E2E8F0;margin-bottom:20px;box-shadow:0 1px 3px #0000000a}.dm-section-head{padding:14px 20px;border-bottom:1px solid #E2E8F0;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:15px;color:#0f172a}.dm-section-body{padding:20px}.dm-health-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px}.dm-health-bar{flex:1;height:8px;background:#f1f5f9;border-radius:4px;margin:0 12px;overflow:hidden}.dm-health-fill{height:100%;border-radius:4px;transition:width .5s}.low-batt-table{width:100%;border-collapse:collapse;font-size:13px}.low-batt-table th{text-align:left;padding:10px 16px;background:#fef2f2;border-bottom:1px solid #FECACA;font-weight:600;font-size:12px;color:#dc2626}.low-batt-table td{padding:10px 16px;border-bottom:1px solid #FEF2F2;color:#334155}.low-batt-table tr:hover td{background:#fff5f5}.locks-table{width:100%;border-collapse:collapse;font-size:13px}.locks-table th{text-align:left;padding:10px 16px;background:var(--slate-50);border-bottom:2px solid var(--border);font-weight:600;font-size:12px;color:var(--ho-t2);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.locks-table td{padding:12px 16px;border-bottom:1px solid var(--slate-100);color:var(--text);vertical-align:middle}.locks-table tr{transition:background .15s}.locks-table tr:hover td{background:var(--blue-50)}.locks-table .lock-name-cell{display:flex;align-items:center;gap:10px}.locks-table .lock-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.locks-table .lock-primary{font-weight:600;color:var(--text);font-size:13px}.locks-table .lock-secondary{font-size:11px;color:var(--text-tertiary);margin-top:1px}.locks-table .status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.locks-table .status-online{background:var(--green-500)}.locks-table .status-offline{background:var(--slate-300)}.locks-table .status-fault{background:var(--error)}.locks-table .action-group{display:flex;gap:6px}.locks-table .tbl-btn{padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font);color:var(--text-secondary);transition:all .15s;white-space:nowrap}.locks-table .tbl-btn:hover,.locks-table .tbl-btn.primary{border-color:var(--primary);color:var(--primary);background:var(--blue-50)}.locks-table .tbl-btn.primary:hover{background:var(--primary);color:#fff}.locks-table .cred-expand-row td{background:var(--slate-50);border-top:1px dashed var(--border);padding:16px 20px}.cred-accordion{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;margin-bottom:8px}.cred-accordion-head{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--slate-50);cursor:pointer;font-size:13px;font-weight:600;color:var(--text);-webkit-user-select:none;user-select:none}.cred-accordion-head:hover{background:var(--slate-100)}.cred-accordion-body{padding:8px 14px}.cred-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--slate-100);font-size:12px}.cred-row:last-child{border-bottom:none}.battery-alert{position:fixed;top:56px;left:220px;right:0;z-index:90;background:#fef3c7;border-bottom:1px solid #FDE68A;padding:10px 24px;display:flex;align-items:center;gap:10px;font-size:13px;color:#92400e;font-weight:500;animation:slideIn .3s ease}.battery-alert .close-btn{margin-left:auto;background:none;border:none;cursor:pointer;color:#92400e;padding:4px;border-radius:4px}.battery-alert .close-btn:hover{background:#0000000f}.stats-row{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;padding:0;margin-bottom:16px}.stat-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000a;border:1px solid #E2E8F0;transition:all .2s}.stat-card:hover{box-shadow:0 4px 12px #0000000f;transform:translateY(-1px)}.stat-card .sc-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:12px}.stat-card .sc-value{font-size:28px;font-weight:700;color:#0f172a;line-height:1}.stat-card .sc-label{font-size:12px;color:var(--ho-t2);margin-top:4px;font-weight:500}.filter-bar{display:flex;align-items:center;gap:12px;padding:0;margin-bottom:16px;flex-wrap:wrap}.filter-bar input,.filter-bar select{padding:8px 14px;border:1px solid #E2E8F0;border-radius:8px;font-size:13px;font-family:inherit;outline:none;background:#fff;transition:border-color .2s;color:#334155}.filter-bar input:focus,.filter-bar select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.filter-bar input::placeholder{color:#94a3b8}.filter-bar .search-wrap{position:relative;flex:1;min-width:200px;max-width:360px}.filter-bar .search-wrap input{width:100%;padding-left:36px}.filter-bar .search-wrap .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.filter-btn{padding:8px 16px;border:1px solid #E2E8F0;border-radius:8px;background:#fff;font-size:13px;font-family:inherit;cursor:pointer;color:#334155;transition:all .2s;display:flex;align-items:center;gap:6px;font-weight:500}.filter-btn:hover{border-color:#2563eb;color:#2563eb}.filter-btn.active{background:#eff6ff;border-color:#2563eb;color:#2563eb}.filter-btn.primary{background:#2563eb;color:#fff;border-color:#2563eb}.filter-btn.primary:hover{background:#1d4ed8}.filter-btn.danger{color:#dc2626;border-color:#dc2626}.filter-btn.danger:hover{background:#fef2f2}.filter-btn.success{color:#059669;border-color:#059669}.filter-btn.success:hover{background:#ecfdf5}.filter-btn:disabled{opacity:.5;cursor:not-allowed}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:0}.room-card{background:#fff;border-radius:16px;padding:20px;border:1px solid #E2E8F0;transition:all .25s ease;cursor:pointer;position:relative;overflow:hidden}.room-card:hover{box-shadow:0 8px 24px #00000014;transform:translateY(-2px);border-color:#cbd5e1}.room-card.edit-mode{border:2px dashed #2563EB;background:#f8faff}.room-card .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.room-card .room-number{font-size:20px;font-weight:700;color:#0f172a}.room-card .room-type-badge{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}.room-card .card-body{display:flex;flex-direction:column;gap:8px}.room-card .card-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:#64748b}.room-card .card-meta svg{flex-shrink:0}.room-card .card-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.room-card .status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}.room-card .drag-handle{cursor:grab;color:#cbd5e1;padding:2px}.room-card .drag-handle:active{cursor:grabbing}.action-btn{padding:5px 12px;border:1px solid #E2E8F0;border-radius:6px;background:#fff;font-size:11px;font-family:inherit;cursor:pointer;color:#475569;transition:all .15s;display:inline-flex;align-items:center;gap:4px;font-weight:500}.action-btn:hover{border-color:#2563eb;color:#2563eb;background:#eff6ff}.action-btn.primary{background:#2563eb;color:#fff;border-color:#2563eb}.action-btn.primary:hover{background:#1d4ed8}.action-btn.danger{color:#dc2626;border-color:#fecaca}.action-btn.danger:hover{background:#fef2f2;border-color:#dc2626}.action-btn.success{color:#059669;border-color:#a7f3d0}.action-btn.success:hover{background:#ecfdf5;border-color:#059669}.action-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0f172a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease}.modal-box{background:#fff;border-radius:16px;width:90%;max-width:560px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 60px #00000026,0 0 0 1px #0000000d;animation:slideUp .25s ease}.modal-box .modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid #F1F5F9}.modal-box .modal-header h2{margin:0;font-size:18px;font-weight:700;color:#0f172a}.modal-box .modal-body{padding:20px 24px 24px;overflow-y:auto;flex:1}.modal-box .modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid #F1F5F9}.lmp-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0f172a80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease}.lmp-modal{background:#fff;border-radius:16px;width:94%;max-width:900px;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 25px 60px #0000002e,0 0 0 1px #0000000d;animation:slideUp .25s ease;overflow:hidden}.lmp-topbar{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#001529;color:#fff;border-radius:16px 16px 0 0;flex-shrink:0}.lmp-topbar h2{margin:0;font-size:17px;font-weight:700;flex:1}.lmp-topbar .lmp-tag{font-size:11px;padding:2px 10px;border-radius:10px;font-weight:600}.lmp-topbar .lmp-tag.online{background:#52c41a2e;color:#52c41a}.lmp-topbar .lmp-tag.offline{background:#ff4d4f26;color:#ff4d4f}.lmp-tabs{display:flex;gap:0;border-bottom:1.5px solid #E2E8F0;padding:0 24px;background:#fafbfc;flex-shrink:0}.lmp-tab{padding:12px 20px;font-size:14px;font-weight:600;color:#94a3b8;cursor:pointer;border-bottom:2.5px solid transparent;transition:all .2s;-webkit-user-select:none;user-select:none}.lmp-tab:hover{color:#334155}.lmp-tab.active{color:#2563eb;border-bottom-color:#2563eb}.lmp-content{flex:1;overflow-y:auto;padding:20px 24px 24px}.lmp-section{margin-bottom:20px}.lmp-section-title{font-size:14px;font-weight:700;color:#1e293b;margin-bottom:12px;display:flex;align-items:center;gap:8px}.lmp-card{background:#f8fafc;border-radius:12px;padding:16px;border:1px solid #E8ECF1}.lmp-kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.lmp-kv{display:flex;flex-direction:column;gap:2px}.lmp-kv-label{font-size:11px;font-weight:600;color:var(--ho-t2);text-transform:uppercase;letter-spacing:.5px}.lmp-kv-value{font-size:14px;font-weight:600;color:#1e293b}.lmp-action-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.lmp-action-btn{padding:10px 12px;border-radius:10px;border:1.5px solid #E2E8F0;background:#fff;font-size:13px;font-weight:600;color:#334155;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px;font-family:Noto Sans SC,sans-serif}.lmp-action-btn:hover{border-color:#3b82f6;color:#2563eb;background:#eff6ff}.lmp-action-btn.primary{background:#2563eb;color:#fff;border-color:#2563eb}.lmp-action-btn.primary:hover{background:#1d4ed8}.lmp-action-btn.success{background:#059669;color:#fff;border-color:#059669}.lmp-action-btn.success:hover{background:#047857}.lmp-action-btn.danger{border-color:#fee2e2;background:#fef2f2;color:#dc2626}.lmp-action-btn.danger:hover{background:#fee2e2}.lmp-action-btn:disabled{opacity:.5;cursor:not-allowed}.lmp-pwd-item,.lmp-card-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid #E8ECF1;border-radius:10px;margin-bottom:8px;transition:all .15s}.lmp-pwd-item:hover,.lmp-card-item:hover{border-color:#cbd5e1;box-shadow:0 2px 6px #0000000a}.lmp-rec-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f8fafc;border-radius:10px;margin-bottom:6px}.lmp-close-btn{background:#ffffff26;border:none;border-radius:8px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fffc;transition:all .15s}.lmp-close-btn:hover{background:#ffffff40;color:#fff}.lmp-inline-form{padding:16px;background:#f8fafc;border-radius:12px;border:1.5px dashed #CBD5E1;margin-bottom:12px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 14px;border:1px solid #E2E8F0;border-radius:8px;font-size:13px;font-family:inherit;outline:none;transition:border-color .2s;color:#0f172a;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group .hint{font-size:11px;color:var(--ho-t3);margin-top:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600}.badge-green{background:#ecfdf5;color:#059669}.badge-blue{background:#eff6ff;color:#2563eb}.badge-orange{background:#fff7ed;color:#d97706}.badge-red{background:#fef2f2;color:#dc2626}.badge-purple{background:#f5f3ff;color:#8b5cf6}.badge-gray{background:#f1f5f9;color:#64748b}.toast{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:500;z-index:9999;animation:slideIn .3s ease;max-width:420px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px #0000001a}.toast-success{background:#ecfdf5;border:1px solid #A7F3D0;color:#065f46}.toast-error{background:#fef2f2;border:1px solid #FECACA;color:#991b1b}.toast-info{background:#eff6ff;border:1px solid #BFDBFE;color:#1e40af}.panel{background:#fff;border-radius:12px;padding:20px;border:1px solid #E2E8F0;box-shadow:0 1px 3px #0000000a}.panel-title{font-size:15px;font-weight:700;color:#0f172a;margin-bottom:14px;display:flex;align-items:center;gap:8px}.panel-title .pt-badge{background:#eff6ff;color:#2563eb;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{background:#f8fafc;padding:10px 12px;text-align:left;font-weight:600;color:var(--ho-t2);font-size:12px;border-bottom:1px solid #E2E8F0}.tbl td{padding:10px 12px;border-bottom:1px solid #F1F5F9;color:#334155}.tbl tr:hover td{background:#f8fafc}.record-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #F1F5F9}.record-row .rr-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.record-row .rr-info{flex:1}.record-row .rr-type{font-size:13px;font-weight:500;color:#334155}.record-row .rr-detail{font-size:11px;color:var(--ho-t3)}.record-row .rr-time{font-size:11px;color:#64748b;text-align:right;white-space:nowrap}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #F1F5F9}.settings-row .sr-label{font-size:13px;font-weight:600;color:#334155}.settings-row .sr-desc{font-size:11px;color:var(--ho-t3);margin-top:2px}.settings-row .sr-value{font-size:13px;color:#475569;max-width:400px;word-break:break-all}.empty-state{text-align:center;padding:60px 20px;color:var(--ho-t3)}.empty-state .es-icon{font-size:48px;margin-bottom:12px;opacity:.6}.empty-state .es-text{font-size:14px;margin-bottom:16px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid #E2E8F0;border-top-color:#2563eb;border-radius:50%;animation:spin .6s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@media(max-width:1200px){.stats-row{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.dm-sidebar{width:60px}.dm-sidebar-logo span.logo-text,.dm-nav-item span.nav-label,.dm-nav-group{display:none}.dm-main{margin-left:60px}.dm-header{left:60px}.dm-nav-badge{font-size:9px;min-width:16px;height:16px;padding:0 4px}.stats-row{grid-template-columns:repeat(2,1fr)}.room-grid{grid-template-columns:1fr}.filter-bar{flex-direction:column;align-items:stretch}.filter-bar .search-wrap{max-width:none}.form-row{grid-template-columns:1fr}.modal-box{width:96%}.device-strip{flex-wrap:wrap;height:auto;min-height:36px}.ds-item{padding:6px 12px}}@media(max-width:480px){.stats-row{grid-template-columns:1fr}.dm-main{padding:16px}.device-strip{flex-direction:column;height:auto}.ds-item{width:100%;border-right:none;border-bottom:1px solid #F1F5F9}}.sl-overlay{position:fixed;inset:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center;animation:slFade .2s}@keyframes slFade{0%{opacity:0}to{opacity:1}}.sl-modal{width:min(96vw,1180px);height:min(92vh,800px);background:#fff;border-radius:12px;display:flex;flex-direction:column;box-shadow:0 12px 40px #00000040;overflow:hidden;animation:slSlide .25s}@keyframes slSlide{0%{transform:translateY(20px) scale(.97);opacity:0}to{transform:none;opacity:1}}.sl-topbar{height:48px;background:#1a1a2e;color:#fff;display:flex;align-items:center;padding:0 18px;gap:12px;font-size:14px;font-weight:600;flex-shrink:0}.sl-topbar-close{margin-left:auto;cursor:pointer;font-size:20px;opacity:.7;transition:opacity .2s}.sl-topbar-close:hover{opacity:1}.sl-body{display:flex;flex:1;min-height:0}.sl-side{width:180px;background:#f7f8fa;border-right:1px solid #eee;padding:10px 0;overflow-y:auto;flex-shrink:0}.sl-side-item{padding:9px 16px;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:8px;color:#595959;transition:all .15s;border-left:3px solid transparent;position:relative}.sl-side-item:hover{background:#eee;color:#262626}.sl-side-item.active{background:#dbeafe;color:#2563eb;border-left-color:#2563eb;font-weight:600}.sl-side-badge{position:absolute;right:10px;background:#2563eb;color:#fff;font-size:10px;padding:0 5px;border-radius:8px;line-height:16px}.sl-content{flex:1;padding:20px 24px;overflow-y:auto}.sl-page-title{font-size:18px;font-weight:700;margin-bottom:4px;color:#0f172a}.sl-page-desc{font-size:12px;color:var(--ho-t3);margin-bottom:18px;line-height:1.5}.sl-sect{border:1px solid #E2E8F0;border-radius:10px;margin-bottom:16px}.sl-sect-head{padding:10px 16px;background:#f8fafc;border-bottom:1px solid #E2E8F0;font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px;border-radius:10px 10px 0 0}.sl-sect-body{padding:16px}.sl-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.sl-form label{font-size:13px;color:var(--ho-t2);display:flex;flex-direction:column;gap:4px}.sl-form input,.sl-form select{padding:6px 10px;border:1px solid #E2E8F0;border-radius:6px;font-size:13px;outline:none;font-family:Noto Sans SC,sans-serif}.sl-form input:focus,.sl-form select:focus{border-color:#2563eb}.sl-kv{display:grid;grid-template-columns:120px 1fr;gap:0;margin:0;padding:0}.sl-kv dt{padding:8px 0;font-size:13px;color:var(--ho-t2);font-weight:500}.sl-kv dd{padding:8px 0;font-size:13px;color:#334155;font-weight:500;margin:0;border-bottom:1px solid #F8FAFC}.sl-table{width:100%;border-collapse:collapse;font-size:13px}.sl-table th{padding:10px 12px;text-align:left;font-size:12px;font-weight:700;color:var(--ho-t2);border-bottom:2px solid #E2E8F0;white-space:nowrap}.sl-table td{padding:10px 12px;border-bottom:1px solid #F1F5F9}.sl-table tr:hover td{background:#f8fafc}.sl-tag{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.sl-tag-green{background:#ecfdf5;color:#059669}.sl-tag-blue{background:#eff6ff;color:#2563eb}.sl-tag-purple{background:#ede9fe;color:#7c3aed}.sl-tag-orange{background:#fff7ed;color:#ea580c}.sl-tag-red{background:#fef2f2;color:#dc2626}.sl-tag-gray{background:#f1f5f9;color:#94a3b8}.sl-btn{display:inline-block;padding:5px 14px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;border:none;font-family:Noto Sans SC,sans-serif}.sl-btn-primary{background:#2563eb;color:#fff}.sl-btn-primary:hover{background:#1d4ed8}.sl-btn-default{background:#fff;border:1px solid #E2E8F0;color:#64748b}.sl-btn-default:hover{background:#f8fafc;border-color:#cbd5e1}.sl-btn-success{background:#059669;color:#fff}.sl-btn-danger{background:#dc2626;color:#fff}.sl-btn-danger:hover{background:#b91c1c}.sl-radio-group{display:inline-flex;border:1px solid #E2E8F0;border-radius:6px;overflow:hidden}.sl-radio-group span{padding:4px 12px;font-size:12px;cursor:pointer;color:#64748b;transition:all .15s}.sl-radio-group span:hover{background:#f8fafc}.sl-radio-group span.active{background:#2563eb;color:#fff}@media(max-width:768px){.sl-modal{width:100vw;height:100vh;border-radius:0}.sl-side{width:50px}.sl-side-item span:nth-child(2){display:none}}.ulvtabs{display:grid;grid-template-columns:200px 1fr;gap:0;background:#fff;border:1px solid #E2E8F0;border-radius:12px;overflow:hidden}.ulvtabs-nav{background:#f8fafc;border-right:1px solid #E2E8F0;padding:6px 0}.ulvtab-group-label{padding:6px 14px 3px;font-size:10px;font-weight:700;color:var(--ho-t2);text-transform:uppercase;letter-spacing:.6px}.ulvtab{display:flex;align-items:center;gap:10px;padding:8px 14px;font-size:13px;color:#334155;cursor:pointer;border-left:3px solid transparent;font-weight:500}.ulvtab:hover{background:#fff;color:#0f172a}.ulvtab.active{background:#fff;border-left-color:#2563eb;color:#1d4ed8;font-weight:600}.ulvtab.admin.active{border-left-color:#dc2626;color:#b91c1c}.ulvtab .ico{font-size:15px;width:18px;text-align:center}.ulvtab .lbl{flex:1}.ulvtab .meta{font-size:10px;color:var(--ho-t3);font-weight:500}.ulvtab.active .meta{color:#2563eb}.ulvtab.admin.active .meta{color:#dc2626}.ulvcontent{padding:14px 16px}.ulvcontent-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}.ulvcontent-h .ico{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.ulvcontent-h .ico.guest{background:#eff6ff;color:#1d4ed8}.ulvcontent-h .ico.suite{background:#faf5ff;color:#7e22ce}.ulvcontent-h .ico.multi{background:#f0fdf4;color:#15803d}.ulvcontent-h .ico.master{background:#fef2f2;color:#dc2626}.ulvcontent-h .ico.bldg{background:#fffbeb;color:#b45309}.ulvcontent-h .ico.floor{background:#eef2ff;color:#4338ca}.ulvcontent-h .name{font-size:14px;font-weight:700}.ulvcontent-h .desc{font-size:12px;color:#64748b}.ulsec{padding:10px 0;border-top:1px dashed #E2E8F0}.ulsec:first-of-type{border-top:none;padding-top:4px}.ulsec-h{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--ho-t2);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.ulsec-h .pill{font-size:10px;font-weight:600;background:#f1f5f9;color:#475569;padding:2px 7px;border-radius:9px;text-transform:none;letter-spacing:0}.pd-list{display:flex;flex-direction:column;gap:6px}.pd-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #E2E8F0;border-radius:8px;background:#fff;transition:all .12s}.pd-item:hover{border-color:#cbd5e1}.pd-item.checked{border-color:#3b82f6;background:#eff6ff}.pd-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0}.pd-item .name{font-size:13px;font-weight:600;color:#1e293b;min-width:140px}.pd-item .reason{font-size:11px;color:#64748b;font-style:italic;margin-left:8px}.pd-item .scope-tag{margin-left:auto;font-size:11px;font-weight:600;padding:3px 9px;border-radius:10px;display:inline-flex;align-items:center;gap:4px}.pd-scope-all{background:#dcfce7;color:#15803d}.pd-scope-bldg{background:#fef3c7;color:#b45309}.pd-scope-floor{background:#dbeafe;color:#1d4ed8}.pd-scope-custom{background:#f3e8ff;color:#7e22ce}.pd-summary{font-size:11px;color:#64748b;margin-top:8px;padding:7px 10px;background:#f8fafc;border-radius:6px;border:1px dashed #E2E8F0}.suite-rooms-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.suite-room-pill{background:#fff;border:1.5px solid #E2E8F0;border-radius:8px;padding:14px 22px;cursor:pointer;transition:all .12s;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:88px}.suite-room-pill:hover{border-color:#a855f7;background:#faf5ff}.suite-room-pill.selected{border-color:#9333ea;background:#faf5ff;box-shadow:0 0 0 2px #a855f72e}.suite-room-pill .no{font-size:22px;font-weight:700;color:#0f172a;line-height:1}.suite-room-pill .role{font-size:10px;font-weight:700;color:var(--ho-t2);text-transform:uppercase;letter-spacing:.6px;margin-top:2px}.suite-room-pill.selected .role{color:#9333ea}.suite-layer2{display:flex;flex-direction:column;gap:5px;background:#f8fafc;padding:10px 12px;border-radius:8px;border:1px dashed #E2E8F0}.suite-layer2 label{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;cursor:pointer;font-size:13px}.suite-layer2 label:hover{background:#fff}.suite-layer2 input{width:16px;height:16px}.suite-layer2-hint{font-size:11px;color:#64748b;margin-bottom:6px}.mr-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px;border:1px solid #E2E8F0;border-radius:8px;background:#f8fafc;min-height:48px;align-items:flex-start}.mr-chip{padding:5px 11px;background:#fff;border:1px solid #3B82F6;color:#1d4ed8;border-radius:6px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px}.mr-chip .x{cursor:pointer;color:#94a3b8;font-size:14px;line-height:1}.mr-chip .x:hover{color:#dc2626}.mr-chip .sub{color:#64748b;font-weight:500;font-size:11px;font-family:Courier New,monospace}.mr-chip-actions{margin-left:auto;display:flex;gap:6px}.mr-chip-actions button{padding:3px 9px;font-size:11px;border:1px solid #E2E8F0;background:#fff;border-radius:4px;cursor:pointer;color:#475569;font-weight:500}.mr-chip-actions button:hover{background:#f1f5f9}.admin-summary{display:flex;gap:0;margin-bottom:14px;padding:14px 16px;background:linear-gradient(135deg,#fef2f2,#fffbeb 50%,#eef2ff);border:1px solid #E2E8F0;border-radius:8px;align-items:stretch}.as-item{flex:1;display:flex;align-items:center;gap:10px;padding:2px 8px}.as-item .ic{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.as-item .ic.m{background:#fee2e2;color:#b91c1c}.as-item .ic.b{background:#fef3c7;color:#b45309}.as-item .ic.f{background:#eef2ff;color:#4338ca}.as-item .ic.t{background:#f1f5f9;color:#475569}.as-item .txt{display:flex;flex-direction:column;gap:1px}.as-item .num{font-size:22px;font-weight:700;color:#0f172a;line-height:1}.as-item .lbl{font-size:10px;color:var(--ho-t2);font-weight:700;text-transform:uppercase;letter-spacing:.5px}.as-item .hint{font-size:10px;color:var(--ho-t3);font-weight:500;margin-top:1px}.as-divider{width:1px;background:#e2e8f0;margin:6px 0}.adc-group-h{font-size:11px;font-weight:700;color:var(--ho-t2);padding:6px 0 4px;display:flex;align-items:center;gap:6px}.adc-group-h.bldg{color:#b45309}.adc-group-h.floor{color:#4338ca}.adc-group-h .count{margin-left:auto;color:var(--ho-t3);font-weight:500;font-size:10px}.cr-list{display:flex;flex-direction:column;gap:6px}.cr-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:6px;border-left:3px solid #CBD5E1;background:#f8fafc}.cr-row.success{background:#f0fdf4;border-left-color:#22c55e}.cr-row.failed{background:#fef2f2;border-left-color:#ef4444}.cr-status{font-size:16px;font-weight:700;width:18px;text-align:center;flex-shrink:0}.cr-row.success .cr-status{color:#16a34a}.cr-row.failed .cr-status{color:#dc2626}.uv2-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.uv2-lock{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.uv2-tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:6px;font-size:11.5px;font-weight:600;line-height:1;white-space:nowrap;background:#f1f5f9;color:#475569}.uv2-tag.b{background:#eff6ff;color:#1d4ed8}.uv2-tag.g{background:#ecfdf5;color:#047857}.uv2-tag.o{background:#fffbeb;color:#b45309}.uv2-tag.r{background:#fef2f2;color:#b91c1c}.uv2-tag.t{background:#ddf5f2;color:#0f766e}.uv2-work{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}.uv2-side{display:flex;flex-direction:column;gap:6px;padding:12px 14px 14px;background:#fff;border:1px solid #E2E8F0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;position:sticky;top:0}.uv2-side .uv2-sec-hd{margin:8px 0 2px;font-size:12px;color:#0f172a}.uv2-side .uv2-sec-hd:first-child{margin-top:0}.uv2-side-fld>.uv2-hint{font-weight:600;color:#0f172a}.uv2-side-rooms,.uv2-side-acts{display:flex;flex-direction:column;gap:6px}.uv2-side-acts .ul-roompick{width:100%}.uv2-side-fld{display:flex;flex-direction:column;gap:3px}.uv2-hint{font-size:12px;color:#64748b;white-space:nowrap}.uv2-hint.wrap{white-space:normal;line-height:1.5;padding:6px 0}.uv2-chip{display:flex;flex-direction:column;gap:2px;padding:6px 8px 6px 10px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:13px;font-weight:600}.uv2-chip .row{display:flex;align-items:center;gap:6px;min-width:0}.uv2-chip .ck{width:16px;height:16px;border-radius:4px;border:1.5px solid #CBD5E1;background:#fff;display:inline-grid;place-items:center;font-size:10px;font-style:normal;color:#fff;flex:none;cursor:pointer}.uv2-chip .ck.on{background:#2563eb;border-color:#2563eb}.uv2-chip .ck.on:hover{background:#1d4ed8}.uv2-chip .no{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uv2-chip small{font-size:10px;font-weight:600;color:#60a5fa}.uv2-chip small.cat{padding:1px 6px;border-radius:8px;font-size:9px;font-weight:700}.uv2-chip small.cat.m{background:#f3e8ff;color:#7c3aed}.uv2-chip small.cat.c{background:#dbeafe;color:#2563eb}.uv2-chip .x{cursor:pointer;padding:0 2px;color:#93c5fd;font-size:13px;line-height:1}.uv2-chip .x:hover{color:#1d4ed8}.uv2-chip .lk{display:flex;align-items:center;gap:5px;padding-left:22px;font-size:10.5px;font-weight:500;font-family:var(--ho-font-num, inherit);color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uv2-chip .lk:before{content:"";width:6px;height:6px;border-radius:50%;background:#94a3b8;flex:none}.uv2-chip .lk.ok{color:#047857}.uv2-chip .lk.ok:before{background:#16a34a}.uv2-chip .lk.off{color:#b45309}.uv2-chip .lk.off:before{background:#f59e0b}.uv2-chip .lk.warn{color:#b45309;font-style:italic}.uv2-chip .lk.warn:before{background:#f59e0b}.uv2-chip .lk.bad{color:#b91c1c;font-style:italic}.uv2-chip .lk.bad:before{background:#dc2626}.uv2-side-acts .ul-roompick>button:hover{background:#dbeafe!important}.uv2-ghost{display:inline-flex;align-items:center;justify-content:center;gap:4px;height:28px;padding:0 9px;border-radius:6px;border:1px solid transparent;background:transparent;color:#475569;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap}.uv2-ghost:hover{background:#f1f5f9;color:#0f172a}.uv2-ghost.suite{color:#7e22ce;border-color:#e9d5ff;width:100%}.uv2-ghost.suite:hover{background:#faf5ff}.uv2-in{height:32px;width:100%;min-width:0;padding:0 10px;border:1px solid #CBD5E1;border-radius:8px;background:#fff;color:#0f172a;font-family:var(--ho-font-num, inherit);font-size:12.5px;font-weight:600;outline:none;box-sizing:border-box}.uv2-in:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.uv2-in.name{font-family:inherit;font-weight:500}.uv2-seg{display:flex;flex-wrap:wrap;padding:2px;border-radius:8px;background:#e2e8f0}.uv2-seg button{flex:1 1 auto;border:0;background:transparent;padding:4px 6px;border-radius:6px;color:#475569;font-size:12px;font-weight:600;font-family:inherit;line-height:1.4;cursor:pointer}.uv2-seg button:hover{background:#fff;color:#0f172a;box-shadow:0 1px 2px #0f172a0f}.uv2-tabcard{min-width:0;background:#fff;border:1px solid #E2E8F0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;overflow:hidden}.uv2-body .ulvtabs{grid-template-columns:1fr}.uv2-body .ulvtabs-nav{display:none}.uv2-tabs{display:flex;gap:2px;padding:0 8px;background:#f8fafc;border-bottom:1px solid #E2E8F0;overflow-x:auto}.uv2-tab{display:flex;align-items:center;gap:6px;padding:11px 12px 9px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:#475569;font-size:13.5px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:color .12s}.uv2-tab:hover{color:#0f172a}.uv2-tab.on{color:#1d4ed8;border-bottom-color:#2563eb;font-weight:600}.uv2-tab .anticon{font-size:14px}.uv2-body{padding:14px 16px}.uv2-sec-hd{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.uv2-sec-hd:after{content:"";flex:1;height:1px;background:#e2e8f0}}@media(max-width:1024px){.unlock-page-root .ulvtabs{grid-template-columns:1fr}.unlock-page-root .ulvtabs-nav{display:flex;flex-wrap:wrap;border-right:none;border-bottom:1px solid #E2E8F0}.unlock-page-root .uv2-work{grid-template-columns:1fr}.unlock-page-root .uv2-side{position:static}.unlock-page-root .uv2-body .ulvtabs-nav{display:none}}.ho-drw .strip .who .cred-pill{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;border-radius:10px;font-size:11px;font-weight:700;line-height:1;vertical-align:middle}.ho-drw .strip .who .cred-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.ho-drw .strip .who .cred-pill.vc{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ho-drw .strip .who .cred-pill.oc{background:color-mix(in srgb,var(--ho-room-oc) 12%,#fff);color:var(--ho-room-oc)}.ho-drw .strip .who .cred-meta-err{color:var(--ho-bad-dark)}.ho-drw .strip .cred-acts{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;flex:none;margin-left:12px;max-width:440px}.ho-drw .strip .cred-acts .err{flex-basis:100%;text-align:right;font-size:12px;color:var(--ho-bad-dark)}.cred-strip-page{margin-bottom:8px}.ho-drw .unlock-page-root .uv2{padding:12px 18px 18px}.payment-page{padding:20px 24px 40px;max-width:1100px;margin:0 auto;color:var(--ho-t1)}.pay-loading,.pay-error{padding:40px;text-align:center;color:var(--ho-t3)}.pay-error p{margin-bottom:16px;color:var(--ho-bad)}.pay-empty{padding:20px;text-align:center;color:var(--ho-t3);font-size:13px}.pay-head.ho-ph{align-items:center}.pay-head.ho-ph h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pay-orderno{font:600 14px var(--ho-font-num);color:var(--ho-p-dark)}.pay-back{width:32px;height:32px;border:1px solid var(--ho-line-strong);background:var(--ho-surface);border-radius:8px;font-size:16px;cursor:pointer;color:var(--ho-t2)}.pay-back:hover{background:var(--ho-muted)}.pay-banner{background:var(--ho-p-50);border:1px solid var(--ho-p-200);color:var(--ho-ink);border-radius:10px;padding:10px 14px;font-size:12.5px;line-height:1.6;margin-bottom:18px}.pay-banner code{background:var(--ho-p-100);padding:1px 5px;border-radius:4px;font-size:12px}.pay-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:860px){.pay-grid{grid-template-columns:1fr}}.pay-in-drawer.payment-page{max-width:none;margin:0;padding:12px 16px 24px}.pay-in-drawer .pay-grid{grid-template-columns:1fr 1fr;gap:12px}.pay-in-drawer .pay-col{gap:12px}.pay-in-drawer .pay-card{padding:12px 14px}.pay-in-drawer .pay-card h3{margin:0 0 8px;padding-bottom:6px}.pay-in-drawer .pay-head.ho-ph{margin-bottom:10px}.pay-in-drawer .pay-dl dt{width:140px}.pay-in-drawer .pay-dl dd{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1100px){.pay-in-drawer .pay-grid{grid-template-columns:1fr}}.pay-col{display:flex;flex-direction:column;gap:18px}.pay-card{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);padding:14px 16px;box-shadow:var(--ho-sh-card)}.pay-card h3{font:600 15px var(--ho-font-num);letter-spacing:-.01em;margin:0 0 12px;color:var(--ho-t1);border-bottom:1px solid var(--ho-line);padding-bottom:10px}.pay-dl{display:flex;flex-direction:column;gap:8px;margin:0}.pay-dl>div{display:flex;gap:12px;font-size:13px}.pay-dl dt{width:92px;flex-shrink:0;color:var(--ho-t3);font-weight:500}.pay-dl dd{margin:0;color:var(--ho-t1);font-weight:600}.pay-amounts{width:100%;border-collapse:collapse;font-size:13px}.pay-amounts td{padding:6px 0}.pay-amounts td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.pay-amounts tr.sub td{border-top:1px dashed var(--ho-line);color:var(--ho-t2)}.pay-amounts tr.gross td{border-top:1px solid var(--ho-line-strong);font-size:14px}.pay-amounts tr.balance td{border-top:2px solid var(--ho-due);color:var(--ho-due);font-size:16px;font-weight:700;padding-top:8px}.pay-note{font-size:11.5px;color:var(--ho-t3);margin:10px 0 0;line-height:1.5}.pay-note.warn{color:var(--ho-warn-dark);background:var(--ho-warn-bg);border:1px solid #F3D48A;padding:8px 10px;border-radius:8px;margin:0 0 10px}.pay-form{display:flex;flex-direction:column;gap:12px}.pay-field{display:flex;flex-direction:column;gap:5px;font-size:13px}.pay-field>span{color:var(--ho-t2);font-weight:600;font-size:12px}.pay-field select,.pay-field input{height:32px;padding:0 10px;border:1px solid var(--ho-line-strong);border-radius:8px;font:inherit;font-size:13px;color:var(--ho-t1);background:var(--ho-surface)}.pay-field select:focus,.pay-field input:focus{outline:none;border-color:var(--ho-p);box-shadow:var(--ho-focus-ring)}.pay-field.inline{flex-direction:row;align-items:center;gap:8px}.pay-field.inline>span{flex:none;white-space:nowrap}.pay-field.inline>select,.pay-field.inline>input{flex:1;min-width:0}.pay-chan-hint{font-size:11.5px;color:var(--ho-t3);margin-top:-6px}.pay-chan-tabs{display:flex;gap:0;padding:4px;background:#eef2f7;border-radius:10px;flex-wrap:wrap}.pay-chan-tab{height:30px;padding:0 9px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ho-t2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.pay-chan-tab:hover{color:var(--ho-t1)}.pay-chan-tab.on{background:#fff;border-color:#cbd5e1;color:var(--ho-p-dark, #172d6e);box-shadow:0 1px 2px #0f172a14}.pay-chan-tab:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.pay-chan-panel{display:grid;gap:10px;padding:10px 12px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}.pay-chan-desc{font-size:12.5px;color:var(--ho-t2);line-height:1.5}.pay-chan-panel .pay-chan-hint{margin-top:0}.pay-amount-wrap{display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--ho-line-strong);border-radius:8px;background:var(--ho-surface)}.pay-amount-wrap:focus-within{border-color:var(--ho-p);box-shadow:var(--ho-focus-ring)}.pay-amount-cur{color:var(--ho-t3);font-weight:600}.pay-field .pay-amount-wrap input{flex:1;min-width:0;height:38px;padding:0;border:none;border-radius:0;background:transparent;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.pay-field .pay-amount-wrap input:focus{box-shadow:none}.pay-amount-full{border:none;background:transparent;color:var(--ho-p);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:4px 0 4px 6px;white-space:nowrap}.pay-amount-full:hover{text-decoration:underline}.pay-field-help{font-size:11.5px;color:var(--ho-t3)}.pay-opt{font-style:normal;font-weight:400;color:var(--ho-t3);margin-left:4px}.pay-actions{display:flex;gap:10px;margin-top:4px}.pay-btn{height:32px;padding:0 13px;border-radius:8px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:.12s}.pay-btn.primary{background:var(--ho-p);border-color:var(--ho-p);color:#fff;flex:1;box-shadow:0 1px 2px #2563eb59}.pay-btn.primary:hover{background:var(--ho-p-dark)}.pay-btn.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.pay-btn.ghost{background:var(--ho-surface);border-color:var(--ho-line-strong);color:var(--ho-t1)}.pay-btn.ghost:hover{background:var(--ho-muted);border-color:var(--ho-t4)}.pay-btn:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.pay-msg{font-size:12.5px;padding:8px 10px;border-radius:8px}.pay-msg.ok{background:var(--ho-ok-bg);color:var(--ho-ok-dark);border:1px solid #B8E3C4}.pay-msg.error{background:var(--ho-bad-bg);color:var(--ho-bad-dark);border:1px solid #F5C2C2}.pay-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.pay-history li{display:flex;flex-direction:column;gap:8px;font-size:13px;padding:8px 10px;background:var(--ho-muted);border-radius:8px}.ph-row{display:flex;align-items:center;gap:10px}.ph-chan{font-weight:600;color:var(--ho-t2)}.ph-amt{color:var(--ho-paid);font-weight:700;font-variant-numeric:tabular-nums;font-family:var(--ho-font-num)}.ph-card,.ph-ref{color:var(--ho-t3);font-size:12px}.ph-ref{margin-left:auto}.ph-badge{margin-left:auto;font-size:11px;font-weight:600;background:#fef3c7;color:#b45309;padding:2px 8px;border-radius:999px}.ph-ref+.ph-badge{margin-left:8px}.ph-badge.refunded{background:#fee2e2;color:#b91c1c}.ph-badge.partial{background:#e0e7ff;color:#4338ca}.ph-refund{margin-left:8px;padding:2px 10px;font-size:12px}.ph-refund-form{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.ph-refund-form input{flex:1 1 120px;min-width:0;padding:5px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:12px}.ph-refund-form .pay-btn{padding:4px 10px;font-size:12px;white-space:nowrap}.pay-pending .pay-summary{margin:-6px 0 12px}.pay-pending .pay-sec .hd h3 .ico{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;font-size:12px}.pay-pending .pay-sec.hot .hd{background:linear-gradient(90deg,#fff1f1,#fff);border-bottom-color:#f5c2c2}.pay-pending .pay-sec.good .hd{background:linear-gradient(90deg,#eaf9ee,#fff)}.pay-pending .pay-sec .hd .ho-hint{white-space:nowrap}.pay-pending .pay-sec .ant-table-wrapper .ant-table{border-radius:0 0 var(--ho-r-md) var(--ho-r-md);background:transparent}.pay-pending .pay-sec .ant-table-wrapper .ant-table-container,.pay-pending .pay-sec .ant-table-wrapper .ant-table-thead>tr>th:first-child,.pay-pending .pay-sec .ant-table-wrapper .ant-table-thead>tr>th:last-child{border-radius:0!important}.pay-pending .pay-sec .ant-table-wrapper .ant-table-thead>tr>th{background:var(--ho-muted);padding:9px 12px}.pay-pending .pay-sec .ant-table-wrapper .ant-table-tbody>tr>td{padding:10px 12px}.pay-pending .pay-sec .ant-table-wrapper .ant-table-tbody>tr:last-child>td{border-bottom:none}.pay-pending .pay-sec .ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f8fafe}.pay-pending .pay-sec .ant-table-wrapper .ant-table-tbody>tr.ho-urgent:hover>td{background:#fff7f7}.pay-pending .pay-sec .ant-table-wrapper .ant-table-tbody>tr.ho-urgent>td:first-child{padding-left:15px}.pay-pending .pay-sec .ant-table-cell.mono{font-family:var(--ho-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12.5px}.pay-pending .pay-who{display:flex;align-items:center;gap:9px}.pay-pending .pay-sub{display:block;font-size:11.5px;color:var(--ho-t3);margin-top:1px;font-weight:400}.pay-pending .pay-sub.mono{font-family:var(--ho-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.pay-pending .pay-ota{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.pay-pending .pay-sub .pay-ota{margin-left:10px}.pay-pending .pay-ota-no{font-family:var(--ho-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:12.5px;color:var(--ho-t1);-webkit-user-select:all;user-select:all}.pay-pending .pay-sub .pay-ota-no{font-size:inherit;color:inherit}.pay-pending .pay-bad{color:var(--ho-bad)}.pay-pending .pay-money-16{font-size:16px}.pay-pending .pay-card-row{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.pay-pending .pay-card-row .brand{font:700 10px var(--ho-font-num);background:var(--ho-ink);color:#fff;padding:2px 5px;border-radius:4px;letter-spacing:.04em;text-transform:uppercase}.pay-pending .pay-tabs .ant-tabs-nav{margin-bottom:14px}.pay-pending .pay-tabs .ant-tabs-tab{font-weight:600}.pay-pending .pay-tabs .ant-tabs-tab-active{font-weight:700}.pay-pending .pay-tab-cnt{height:16px;margin-left:4px}.pay-pending .ho-att .t .s b{color:var(--ho-t2)}@media(max-width:1100px){.pay-pending .pay-g2{grid-template-columns:1fr}}.pay-pending.ota-pending .pay-sec .hd .ho-hint{white-space:normal}.pay-amounts tr.pay-folio-h td{padding-bottom:2px}.pay-amounts tr.pay-folio-ln td{padding:2px 0 2px 14px;font-size:12.5px;font-weight:400}.pay-amounts tr.pay-folio-ln td:last-child{white-space:nowrap}.pay-folio-n{display:block;color:var(--ho-t2)}.pay-folio-m{display:block;color:var(--ho-t3);font-size:11px}.pay-amounts tr.pay-folio-ln.rv td{color:var(--ho-t3)}.pay-amounts tr.pay-folio-ln.rv .pay-folio-n{text-decoration:line-through}.pay-folio-rev{margin-left:6px;border:1px solid #cbd5e1;background:#fff;color:#64748b;border-radius:5px;padding:1px 6px;font-size:12px;cursor:pointer}.pay-folio-rev:disabled{opacity:.5;cursor:not-allowed}.pay-amounts tr.pay-folio-add td{padding:8px 0 10px 12px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.dep-form{display:grid;gap:8px;margin-bottom:8px}.dep-methods{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.dep-grp{display:inline-flex;gap:4px;padding:3px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;align-items:center}.dep-lbl{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ho-t3);padding:0 6px}.dep-chip{height:28px;padding:0 11px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--ho-t2);font:inherit;font-size:13px;font-weight:600;cursor:pointer}.dep-chip:hover{background:#fff}.dep-chip.on{background:#fff;border-color:var(--ho-p, #1e3a8a);color:var(--ho-p-dark, #172d6e);box-shadow:0 1px 2px #0f172a14}.dep-sub{border:1px dashed #cbd5e1;border-radius:10px;padding:10px 12px;background:#f8fafc}.ph-badge.held{background:#ecfdf5;color:#047857}.ph-badge.preauth{background:#e8edf8;color:#172d6e}.pay-head.ho-ph,.pay-actions,.ph-row{flex-wrap:wrap}.ph-ref{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dep-grp{flex-wrap:wrap}.pay-pending .pay-sec .hd .ho-hint{white-space:normal}.order-page{display:flex;flex-direction:column;font-family:var(--ho-font-body);font-size:13.5px;color:var(--ho-t1);background:var(--ho-canvas);margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));overflow:hidden}.order-subheader{background:var(--ho-surface);border-bottom:1px solid var(--ho-line);padding:12px 22px;flex-shrink:0}.order-subheader .ho-ph{margin-bottom:0;align-items:center}.order-subheader .ho-ph h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.order-subheader .ho-ph h1 small{flex-basis:100%}.order-subheader .meta{display:flex;gap:14px;font-size:12px;color:var(--ho-t3);flex-wrap:wrap}.order-subheader .meta b{color:var(--ho-t1);font-weight:600}.order-main{display:grid;grid-template-columns:minmax(400px,8fr) minmax(380px,9fr) minmax(310px,6fr);gap:14px;padding:14px 22px;flex:1;min-height:0;overflow:hidden;align-items:stretch}.order-col{display:flex;flex-direction:column;gap:14px;min-width:0;overflow-y:auto;background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}.order-card{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);box-shadow:var(--ho-sh-card);overflow:hidden;flex-shrink:0}.order-card.is-focused{box-shadow:var(--ho-sh-card),inset 3px 0 0 var(--ho-p)}.order-card .card-head{display:flex;align-items:center;gap:9px;padding:10px 14px;background:transparent;color:var(--ho-t1);font:600 15px var(--ho-font-num);letter-spacing:-.01em;border-bottom:1px solid var(--ho-line)}.order-card .card-head .num{width:22px;height:22px;border-radius:6px;background:var(--ho-ink);color:#fff;display:grid;place-items:center;font:700 11px var(--ho-font-num);flex-shrink:0}.order-card .card-head .title{color:var(--ho-t1)}.order-card .card-head .extras{margin-left:auto;display:flex;gap:8px;align-items:center;font:500 11.5px var(--ho-font-body);color:var(--ho-t3)}.order-card .card-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px}.order-field-label{display:block;font-size:12px;font-weight:600;color:var(--ho-t2);margin-bottom:5px}.order-field-label.req:after{content:" *";color:var(--ho-bad)}.order-field-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.order-field-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.order-field-grid-4{display:grid;grid-template-columns:.7fr .9fr .9fr 1.4fr;gap:12px}.order-field-grid-2x3{display:grid;grid-template-columns:2fr 3fr;gap:12px}.order-inline-field{display:flex;align-items:center;gap:8px;min-width:0}.order-inline-field>.order-field-label{margin-bottom:0;flex:none;white-space:nowrap;min-width:44px}.order-inline-field>.fctl{flex:1 1 0;min-width:0}.order-inline-field.align-top{align-items:flex-start}.order-inline-field.align-top>.order-field-label{padding-top:5px}.num-mono{font-family:var(--font-mono)}.order-dates-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.order-dates-row .dates-arrow{color:var(--ho-t3);font-size:14px;line-height:1.1}.order-dates-row .dates-arrow-wrap{display:flex;flex-direction:column;align-items:center;align-self:center;gap:2px}.order-dates-row .dates-nights{font:700 12px var(--ho-font-num);color:var(--ho-p-dark);background:var(--ho-p-50);border-radius:12px;padding:3px 9px;white-space:nowrap}.order-compact-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px}.order-compact-row .cfield{display:inline-flex;align-items:center;gap:8px}.order-compact-row .clabel{font-size:12.5px;font-weight:600;color:var(--ho-t2);white-space:nowrap}.order-rate-plan-block{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:12.5px}.order-rate-plan-inclusions{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ho-t3)}.order-collapsible-head{font-size:12px;color:var(--ho-t2);font-weight:600;display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}.order-collapsible-head:before{content:"▸";font-size:9px;transition:transform var(--duration-fast) var(--easing-default)}.order-collapsible-head.open:before{transform:rotate(90deg)}.order-collapsible-body{display:none;padding-top:8px;flex-direction:column;gap:8px}.order-collapsible-head.open+.order-collapsible-body{display:flex}.order-folds{display:flex;gap:16px;flex-wrap:wrap}.order-fold-body{display:flex;flex-direction:column;gap:8px}.order-collapsible-head .sum{font-weight:500;color:var(--ho-t3)}.order-collapsible-head .sum:before{content:"·";margin:0 5px 0 2px}.fold-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ho-t3)}.fold-note .ota{font:600 11px var(--ho-font-body);color:var(--ho-ink-3);background:var(--ho-p-50);border-radius:4px;padding:1px 6px;white-space:nowrap}.booker-chip{display:inline-flex;align-items:center;gap:8px;padding:3px 10px 3px 8px;border-radius:6px;background:var(--ho-p-50);border:1px solid var(--ho-line);min-width:0}.booker-chip .lbl{font:700 10px var(--ho-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);white-space:nowrap}.booker-chip .nm{font:700 12.5px var(--ho-font-num);color:var(--ho-t1);white-space:nowrap}.booker-chip .ct{font:500 11.5px var(--ho-font-num);color:var(--ho-t2);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booker-chip .sep{width:1px;height:12px;background:var(--ho-line);flex:none}.order-subsection-head{display:flex;align-items:center;gap:9px;margin:0 -14px;padding:9px 14px;background:var(--ho-muted);color:var(--ho-ink-3);font:700 12.5px var(--ho-font-num);border-top:1px solid var(--ho-line);border-bottom:1px solid var(--ho-line)}.order-subsection-head:first-child{margin-top:-12px;border-top:none}.order-subsection-head .ico{font-size:12px}.order-hint{font-size:12px;color:var(--ho-t3)}.order-empty{color:var(--ho-t3);font-size:12px;text-align:center;padding:14px 0}.order-vault-compact .pay-card{border:none;border-radius:0;padding:0;margin-top:6px;background:transparent}.order-vault-compact .pay-card h3{font-size:12px;font-weight:600;line-height:1.4;color:var(--ho-t3);margin:0 0 2px;padding:0;border-bottom:none}.order-vault-compact .pay-empty{padding:0;text-align:left;font-size:12px;color:var(--ho-t3)}.order-assigned-note{padding:8px 14px;font-size:12px;color:var(--ho-t2);background:var(--ho-p-50);border-bottom:1px solid var(--ho-muted-2)}.order-room-table{width:100%;border-collapse:collapse;font-size:12.5px}.order-room-table thead th{font:700 10.5px var(--ho-font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--ho-t2);text-align:left;padding:8px 14px;background:var(--ho-muted);border-bottom:1px solid var(--ho-line);white-space:nowrap}.order-room-table thead th.r{text-align:right}.order-room-table tbody td{padding:8px 14px;border-bottom:1px solid var(--ho-muted-2);vertical-align:middle}.order-room-table tbody td.r{text-align:right}.order-room-table tr.rt-row.has-qty td{background:var(--ho-p-50)}.order-room-table tr.rt-row.has-qty td:first-child{box-shadow:inset 3px 0 0 var(--ho-p)}.order-room-table .rt-code{display:inline-block;font:700 13px var(--ho-font-num);color:var(--ho-t1)}.order-room-table tr.rt-row.has-qty .rt-code{color:var(--ho-p-dark)}.order-room-table .rt-name{display:block;font:500 11px var(--ho-font-body);color:var(--ho-t2)}.order-room-table .rt-qty{font-weight:700}.order-room-table .rt-pick{display:flex;align-items:center;gap:6px}.order-room-table .ant-select-multiple .ant-select-selection-item{background:var(--ho-p);color:#fff;font:700 11px var(--ho-font-num);border-radius:5px;border:none}.order-room-table .ant-select-multiple .ant-select-selection-item-remove{color:#fffc}.order-room-table .ant-select-multiple .ant-select-selection-item-remove:hover{color:#fff}.order-nightly-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}.order-nightly-table th{padding:6px 8px;font:700 10.5px var(--ho-font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--ho-t2);background:var(--ho-muted);border-bottom:1px solid var(--ho-line);text-align:right}.order-nightly-table th.lt{text-align:left}.order-nightly-table td{padding:6px 8px;border-top:1px solid var(--ho-muted-2)}.order-nightly-table tr.alt td{background:var(--ho-muted)}.order-nightly-table .roomno{font-weight:700;font-size:12px}.order-nightly-table .date strong{color:var(--ho-t1);font-size:12px}.order-nightly-table .date span{color:var(--ho-t3);font-size:10.5px}.order-nightly-table .total-cell{text-align:right;white-space:nowrap}.order-nightly-table .total-cell.overridden{font-weight:700;color:var(--ho-warn-dark)}.svc-editor{position:fixed;min-width:280px;max-width:320px;background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);box-shadow:var(--ho-sh-pop);z-index:50}.svc-editor-head{padding:8px 12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--ho-line)}.svc-editor-head .title{font-weight:700;font-size:12.5px;flex:1}.svc-editor-loc{padding:4px 12px 8px;font-size:12px;color:var(--ho-t3);font-variant-numeric:tabular-nums}.svc-editor-body{padding:12px;display:flex;flex-direction:column;gap:8px;font-size:12.5px}.svc-editor-locked-msg{padding:8px 12px;background:var(--ho-ok-bg);color:var(--ho-ok-dark);border-radius:8px;font-size:12px;line-height:1.5}.svc-editor-locked-msg .hint{color:var(--ho-t2);display:block;margin-top:4px}.sv-row{display:flex;align-items:center;gap:8px}.sv-row .label{color:var(--ho-t2);min-width:64px;font-size:12px}.sv-row .val{font-weight:700}.sv-row .val.accent{color:var(--ho-p)}.qty-unit{color:var(--ho-t3);font-size:10.5px;margin-left:auto}.svc-editor-foot{padding:8px 12px;border-top:1px solid var(--ho-line);background:var(--ho-muted);display:flex;justify-content:flex-end;gap:8px}.order-summary-guest-row{display:flex;align-items:center;gap:12px}.order-summary-guest-row .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#60a5fa,#1d4ed8);color:#fff;display:grid;place-items:center;font:700 14px var(--ho-font-num);flex-shrink:0}.order-summary-guest-row .nm{font:700 14px var(--ho-font-num);color:var(--ho-t1)}.order-summary-guest-row .ct{font-size:12px;color:var(--ho-t3);font-variant-numeric:tabular-nums}.order-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0}.order-summary-grid .it{display:flex;flex-direction:column;gap:1px}.order-summary-grid .it .lbl{font-size:10.5px;color:var(--ho-t2);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.order-summary-grid .it .val{font:700 14px var(--ho-font-num);color:var(--ho-t1)}.order-summary-grid .it .val.accent{color:var(--ho-p-dark)}.order-summary-room-box{background:var(--ho-p-50);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ho-t2)}.order-summary-room-box .lbl{font-size:12px;color:var(--ho-t2)}.order-summary-room-box .val{display:block;font:700 13.5px var(--ho-font-num);color:var(--ho-p-dark)}.order-summary-charges{display:flex;flex-direction:column;gap:5px;font-size:12.5px}.order-summary-charges .line{display:flex;justify-content:space-between}.order-summary-charges .line .lbl{color:var(--ho-t1)}.order-summary-charges .line .val{font:700 13px var(--ho-font-num);letter-spacing:-.02em}.order-summary-charges .line.adj .lbl,.order-summary-charges .line.adj .val{color:var(--ho-warn-dark)}.order-summary-charges .line.gst .lbl{color:var(--ho-t3)}.order-summary-charges .line.gst .val,.order-summary-charges .line .val.mute{color:var(--ho-t3);font-weight:600}.order-avg-highlight{background:var(--ho-muted);margin:0 -14px;padding:6px 14px;display:flex;justify-content:space-between;font-size:12.5px}.order-avg-highlight .lbl{color:var(--ho-t1)}.order-avg-highlight .val{font:700 13px var(--ho-font-num);letter-spacing:-.02em}.order-negotiate-row{display:flex;align-items:center;gap:8px;font-size:12.5px;flex-wrap:wrap}.order-negotiate-row .lbl{color:var(--ho-t2);font-weight:600}.order-negotiate-row .sys{color:var(--ho-t3);font-size:12px}.order-negotiate-row .sys.struck{text-decoration:line-through}.order-negotiate-row .ant-input-number-input{font-weight:700}.order-negotiate-tip{font-size:11.5px;color:var(--ho-t3)}.order-summary-total{margin:2px -14px -12px;padding:14px;background:var(--ho-ink);color:#fff}.order-summary-total .l{font:700 11px var(--ho-font-body);letter-spacing:.1em;text-transform:uppercase;color:#aab6cc}.order-summary-total .big{display:flex;align-items:baseline;gap:8px;margin:2px 0 6px}.order-summary-total .big b{font:700 36px/1 var(--ho-font-num);letter-spacing:-.03em}.order-summary-total .big s{color:#7c8db5;font:600 14px var(--ho-font-num)}.order-summary-total .big .ed{margin-left:auto;font-size:11px;color:#aab6cc;border:1px dashed #445;padding:2px 7px;border-radius:5px;background:transparent;cursor:pointer;font-family:inherit}.order-summary-total .big .ed:hover{color:#fff;border-color:#aab6cc}.order-summary-total .r{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:#aab6cc;padding:3px 0}.order-summary-total .r b{font:700 14px var(--ho-font-num);color:#fff}.order-summary-total .r.due b{color:#fca5a5;font-size:18px}.order-summary-total .neg{font-size:11.5px;color:#fcd34d;margin-top:4px}.order-foot{gap:14px;flex-shrink:0}.order-foot .tot{display:flex;align-items:baseline;gap:8px}.order-foot .tot .ho-money{font-size:22px}.order-foot .duechip{background:var(--ho-bad-bg);color:var(--ho-bad-dark);font:700 13px var(--ho-font-num);padding:4px 10px;border-radius:8px}.order-foot .sp{flex:1}.order-page--embedded{min-width:0;margin:0;height:auto;min-height:0;container-type:inline-size;container-name:ordwin}.ord-ro{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:7px 8px;align-items:baseline}.ord-kv{display:contents}.ord-kv>.k{color:var(--ho-t2);font-size:12px;font-weight:500;text-align:right;white-space:nowrap}.ord-kv>.v{color:var(--ho-t1);min-width:0;overflow-wrap:anywhere;font-size:13.5px;font-weight:700;font-family:var(--ho-font-num)}.ord-kv>.v.dim{color:var(--ho-t3)}.ord-kv>.v strong{font-weight:700}.ord-ro>.ord-kv4,.ord-ro>.ord-note,.ord-ro>.ord-ro-div,.ord-ro>.ord-ro-folds{grid-column:1 / -1}.ord-kv4{display:grid;grid-template-columns:minmax(0,max-content) minmax(0,1fr) minmax(0,max-content) minmax(0,1fr);gap:6px 8px;align-items:baseline;font-size:12.5px}.ord-kv4>.k{color:var(--ho-t2);font-size:12px;font-weight:500;text-align:right;white-space:nowrap}.ord-kv4>.v{color:var(--ho-t1);min-width:0;overflow-wrap:anywhere;font-size:13.5px;font-weight:700;font-family:var(--ho-font-num)}.ord-kv4>.v.dim{color:var(--ho-t3)}@container ordwin (max-width: 1059px){.ord-kv4{grid-template-columns:minmax(0,max-content) minmax(0,1fr)}}.ord-chip{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;background:var(--ho-muted-2);font-size:11px;font-weight:700;color:var(--ho-t2)}.ord-chip.acc{background:var(--ho-p-50);color:var(--ho-p-dark)}.ord-note{font-size:12px;color:var(--ho-t3);line-height:1.6;overflow-wrap:anywhere}.ord-ro-div{height:1px;background:var(--ho-line)}.ord-ro-folds{display:flex;gap:12px;flex-wrap:wrap}.ord-fold-btn{border:1px solid var(--ho-line);background:var(--ho-p-50);color:var(--ho-t1);font-family:inherit;font-size:11.5px;font-weight:600;height:24px;padding:0 10px;border-radius:6px;cursor:pointer}.ord-fold-btn:hover{background:var(--ho-muted)}.ord-fold-btn:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}@media(max-width:1399px){.order-page:not(.order-page--embedded){height:auto;min-height:calc(100vh - var(--ho-topnav-h));overflow:visible}.order-page:not(.order-page--embedded) .order-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:visible;flex:1 0 auto}.order-page:not(.order-page--embedded) .order-main>.order-col{overflow:visible}.order-page:not(.order-page--embedded) .order-main>.order-col:nth-child(3){grid-column:1 / -1}}@media(max-width:1079px){.order-page:not(.order-page--embedded) .order-main{grid-template-columns:minmax(0,1fr)}.order-page:not(.order-page--embedded) .order-main>.order-col:nth-child(3){grid-column:auto}}@media(max-width:767px){.order-page:not(.order-page--embedded) .order-room-table,.order-page:not(.order-page--embedded) .order-nightly-table{display:block;overflow-x:auto}}@media(max-width:600px){.order-page:not(.order-page--embedded) .order-field-grid-3,.order-page:not(.order-page--embedded) .order-field-grid-4{grid-template-columns:1fr 1fr}.order-page:not(.order-page--embedded) .order-foot{flex-wrap:wrap}}@media(max-width:767px){.order-page:not(.order-page--embedded) .order-dates-row{grid-template-columns:1fr}.order-page:not(.order-page--embedded) .order-subheader{flex-wrap:wrap}}.order-dates-fit{container-type:inline-size}@container (max-width: 659px){.order-dates-row{grid-template-columns:1fr}.order-dates-row .dates-arrow-wrap{flex-direction:row;justify-content:flex-start;gap:6px;padding-left:52px}}.order-note-row>.order-field-label{width:96px;min-width:96px;white-space:normal}.order-internal-note .order-field-label{color:var(--ho-ok, #2f7a3a)}.order-internal-note .fctl{background:var(--ho-ok-bg, #eef6ea);border-color:var(--ho-ok-line, #cfe3c5)}.order-internal-note .vis{display:block;font-size:11px;line-height:1.3;color:var(--ho-t3);font-weight:400;margin-top:2px}.ord-kv.ord-internal-note .k{color:var(--ho-ok, #2f7a3a)}.ord-kv.ord-internal-note .v{white-space:pre-line}.hl-body{display:flex;flex-direction:column;gap:12px}.hl-swatches{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.hl-sw{flex:none;width:26px;height:26px;padding:0;border:1px solid rgba(15,23,42,.18);border-radius:50%;background:var(--sw);color:#fff;font-size:13px;line-height:1;cursor:pointer;text-shadow:0 0 2px rgba(0,0,0,.75)}.hl-sw:hover{transform:scale(1.12)}.hl-sw.on{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-primary)}.hl-sw:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.hl-sw-custom{background:var(--sw, var(--color-surface));color:var(--color-text-secondary);border-style:dashed;text-shadow:none}.hl-sw-custom.on{color:#fff;border-style:solid;text-shadow:0 0 2px rgba(0,0,0,.75)}.hl-sw-none{width:auto;border-radius:999px;padding:0 10px;background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-semibold);text-shadow:none}.hl-sw-none:hover{transform:none;border-color:var(--color-primary);color:var(--color-primary-dark)}.hl-body.is-ro .hl-sw{cursor:default}.hl-body.is-ro .hl-sw:hover{transform:none}.hl-preview{padding:10px 12px;background:var(--color-bg-subtle, #F1F5F9);border-radius:8px}.hl-prev-bar{position:relative;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px 0 8px;border-radius:6px;font-size:11.5px;font-weight:700;color:#fff;box-shadow:0 1px 2px #0000002e;max-width:100%;overflow:hidden}.hl-prev-bar.st-vc{background:var(--ho-room-reserved)}.hl-prev-bar.st-oc{background:var(--ho-room-oc)}.hl-prev-bar.st-od{background:var(--ho-room-od)}.hl-prev-bar.st-noshow{background:var(--ho-room-noshow)}.hl-prev-bar.st-completed,.hl-prev-bar.st-cancelled{background:#94a3b8}.hl-prev-rail{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:6px 0 0 6px}.hl-prev-rail.st-vc{background:var(--ho-room-reserved)}.hl-prev-rail.st-oc{background:var(--ho-room-oc)}.hl-prev-rail.st-od{background:var(--ho-room-od)}.hl-prev-rail.st-noshow{background:var(--ho-room-noshow)}.hl-prev-rail.st-completed,.hl-prev-rail.st-cancelled{background:#64748b}.hl-prev-flag{font-size:10px;line-height:1;flex:none}.hl-prev-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hl-prev-room{font:700 10px var(--ho-font-num);background:#ffffff38;padding:1px 5px;border-radius:3px;flex:none}.ow-layer{position:fixed;inset:0;pointer-events:none;z-index:45}.ow-win{position:absolute;width:min(1240px,96vw);height:min(860px,88vh);resize:both;min-width:560px;min-height:380px;max-width:98vw;max-height:94vh;pointer-events:auto;background:var(--ho-surface);border:1px solid var(--ho-line-strong);border-radius:12px;box-shadow:var(--ho-sh-pop);display:flex;flex-direction:column;overflow:hidden}.ow-win.is-active{border-color:var(--ho-p-200);box-shadow:var(--ho-sh-pop),0 0 0 1px var(--ho-p-200)}.ow-win.is-flash{animation:ow-flash .5s ease-out}@keyframes ow-flash{0%{box-shadow:0 0 0 4px var(--ho-p-200),var(--ho-sh-pop)}to{box-shadow:var(--ho-sh-pop),0 0 0 1px var(--ho-p-200)}}.ow-bar{display:flex;align-items:center;gap:10px;height:48px;flex-shrink:0;padding:0 10px 0 14px;background:var(--ho-ink);color:#fff;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.ow-bar:active{cursor:grabbing}.ow-win.is-active .ow-bar{background:var(--ho-ink-2)}.ow-stdot{width:9px;height:9px;border-radius:var(--radius-full);flex-shrink:0}.ow-title{font:700 15px var(--ho-font-num);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.ow-bar .ow-num{font:700 13px var(--ho-font-num);background:#ffffff24;padding:2px 8px;border-radius:6px;flex-shrink:0}.ow-sub{font-size:11.5px;font-weight:500;color:#8fa0be;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ow-stpill{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 9px;border-radius:10px;font-size:11.5px;font-weight:700;white-space:nowrap;background:#ffffff24;color:#fff;flex-shrink:0}.ow-stpill:before{content:"";width:7px;height:7px;border-radius:50%;background:#ffffffd9;flex:none}.ow-tag{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 9px;border-radius:10px;font-size:11.5px;font-weight:600;background:#ffffff1f;color:#fff;min-width:0;flex:0 1 auto;cursor:help}.ow-tag-dot{width:8px;height:8px;border-radius:50%;flex:none;box-shadow:0 0 0 1px #ffffff59}.ow-tag-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.ow-grow{flex:1;min-width:6px}.ow-btn{appearance:none;border:0;background:transparent;cursor:pointer;width:28px;height:28px;border-radius:6px;flex-shrink:0;font:inherit;font-size:13px;line-height:1;color:#aab6cc;display:inline-flex;align-items:center;justify-content:center}.ow-btn:hover{background:#ffffff1a;color:#fff}.ow-btn.ow-x:hover{background:#dc262659;color:#fff}.ow-win.is-collapsed{width:320px!important;height:auto!important;min-width:0;min-height:0;resize:none}.ow-body{flex:1;min-height:0;display:flex;flex-direction:column}.ow-pane .order-page{min-width:0;min-height:0;background:transparent}.ow-pane .order-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,330px);gap:12px;overflow:visible;padding:0}.ow-pane .order-col{overflow:visible}.ow-pane .order-subheader{background:transparent;border:0;padding:0 0 10px}.ow-pane .order-col{background:transparent;border:0;box-shadow:none;border-radius:0;gap:12px}.ow-pane .order-col>.order-card{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:10px;box-shadow:var(--ho-sh-card)}.ow-pane .order-card .card-head,.ow-pane .order-card.is-focused .card-head{padding:9px 14px;background:transparent;border-bottom:1px solid var(--ho-line);gap:8px}.ow-pane .order-col>.order-card:first-child .card-head{border-radius:10px 10px 0 0}.ow-pane .order-card.is-focused{box-shadow:var(--ho-sh-card),inset 3px 0 0 var(--ho-p)}.ow-pane .order-card .card-head .ico{width:auto;height:auto;background:transparent;border:0;font-size:13px}.ow-pane .order-card .card-head .title{font:600 14px var(--ho-font-num);color:var(--ho-t1);letter-spacing:0}.ow-pane .order-card .card-head .extras{color:var(--ho-t3)}.ow-pane .ord-fold-btn{color:var(--ho-t1);background:var(--ho-p-50);border:1px solid var(--ho-line)}.ow-pane .ord-fold-btn:hover{background:var(--ho-muted)}.ow-pane .booker-chip{background:var(--ho-p-50);border:1px solid var(--ho-line)}.ow-pane .booker-chip .lbl{color:var(--ho-t3)}.ow-pane .booker-chip .nm{color:var(--ho-t1)}.ow-pane .booker-chip .ct{color:var(--ho-t2)}.ow-pane .booker-chip .sep{background:var(--ho-line)}.ow-pane .order-card .card-body{padding:10px 14px 12px}.ow-pane .ord-ro{font-size:12.5px}.ow-pane .ord-kv .k{color:var(--ho-t2);font-weight:500}.ow-pane .ord-kv .v{font-weight:700;font-family:var(--ho-font-num);font-size:13.5px}.ow-pane .order-summary-grid{grid-template-columns:repeat(4,1fr);gap:8px}.ow-pane .order-summary-grid .it .lbl{font-size:10.5px;color:var(--ho-t2);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.ow-pane .order-summary-grid .it .val{font:700 14px var(--ho-font-num);color:var(--ho-t1);margin-top:2px}.ow-pane .order-summary-grid .it .val.accent{color:var(--ho-p-dark)}.ow-pane .order-avg-highlight{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px;background:var(--ho-muted)}.ow-pane .order-summary-total{background:var(--ho-ink);color:#fff;border:0;border-radius:10px;padding:14px 16px;margin:4px 0 0;display:flex;flex-direction:column;gap:6px}.ow-pane .order-summary-total .row{border-bottom:0;padding-bottom:0;margin-bottom:0;gap:0}.ow-pane .order-summary-total .lbl-big{color:#aab6cc;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none}.ow-pane .order-summary-total .val-big{font:700 34px/1 var(--ho-font-num);letter-spacing:-.03em;color:#fff;margin:2px 0 4px}.ow-pane .order-summary-total .sub{margin-top:0;font-size:12.5px;align-items:baseline}.ow-pane .order-summary-total .sub .lbl{color:#aab6cc}.ow-pane .order-summary-total .sub .val{font:700 13px var(--ho-font-num);color:#dce3ee}.ow-pane .order-summary-total .sub .val.recv{color:#86efac;font-size:15px}.ow-pane .order-summary-total .sub.balance .lbl{color:#fca5a5}.ow-pane .order-summary-total .sub.balance .val{color:#fca5a5;font-size:20px}.ow-pane .order-pay-status-row{border-top-color:var(--ho-line)}@container ordwin (max-width: 1059px){.ow-pane .order-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ow-pane .order-main>.order-col:nth-child(3){grid-column:1 / -1}}@container ordwin (max-width: 759px){.ow-pane .order-main{grid-template-columns:minmax(0,1fr)}.ow-pane .order-main>.order-col:nth-child(3){grid-column:auto}}.ow-win.is-collapsed .ow-sub{display:none}.ow-tabs{display:flex;gap:2px;padding:0 10px;background:var(--ho-surface);border-bottom:1px solid var(--ho-line);overflow-x:auto;scrollbar-width:none;flex-shrink:0}.ow-tabs::-webkit-scrollbar{display:none}.ow-tabs button{appearance:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;cursor:pointer;font:inherit;font-size:13px;font-weight:500;color:var(--ho-t2);padding:10px 12px;white-space:nowrap;position:relative}.ow-tabs button:hover{color:var(--ho-t1)}.ow-tabs button.is-on{color:var(--ho-p-dark);border-color:var(--ho-p);font-weight:600}.ow-tabs button .c{font:700 10px var(--ho-font-num);background:var(--ho-bad);color:#fff;padding:1px 5px;border-radius:8px;margin-left:4px;vertical-align:1px}.ow-strip{display:flex;align-items:center;padding:10px 14px;background:var(--ho-muted);border-bottom:1px solid var(--ho-line);flex-shrink:0}.ow-striprow{display:flex;align-items:center;gap:12px;flex:1;min-width:0;flex-wrap:wrap}.ow-lc{display:flex;align-items:center;flex-shrink:0}.ow-spill{appearance:none;flex:0 0 auto;height:26px;padding:0 12px;display:flex;align-items:center;gap:6px;border:1px solid var(--ho-line-strong);border-radius:0;margin-left:-1px;background:#fff;color:var(--ho-t2);font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.ow-lc .ow-spill:first-child{border-radius:13px 0 0 13px;margin-left:0}.ow-lc .ow-spill:last-child{border-radius:0 13px 13px 0}.ow-spill.is-done{background:var(--ho-ok-bg);color:var(--ho-ok-dark);border-color:#b8e3c4}.ow-spill.is-done:before{content:"✓"}.ow-spill.is-current{background:var(--ho-room-oc);border-color:var(--ho-room-oc);color:#fff;cursor:default;position:relative;z-index:1}.ow-spill.is-next{color:var(--ho-p-dark);border-color:var(--ho-p-200)}.ow-spill.is-next:after{content:"→"}.ow-spill.is-next:hover{background:var(--ho-p-50)}.ow-spill.is-off{opacity:.45;cursor:not-allowed}.ow-spill:focus-visible{outline:2px solid var(--ho-p-dark);outline-offset:1px;z-index:2}.ow-spill-warn{margin-left:2px}.ow-strip-grow{flex:1}.ow-spill-copy,.ow-lc .ow-spill.ow-spill-copy{height:26px;padding:0 9px;border:1px dashed var(--ho-line-strong);border-radius:6px;margin-left:0;background:transparent;color:var(--ho-t2);font-weight:600}.ow-spill-copy:hover:not(.is-off){background:var(--ho-surface);color:var(--ho-t1)}.ow-sflag{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;line-height:1.5}.ow-sflag.is-warn{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ow-sflag.is-pay{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ow-sflag.is-lock{background:var(--ho-muted-2);color:var(--ho-t2)}.ow-money-hd{display:flex;align-items:center;gap:14px;flex-shrink:0}.ow-money-hd .k{font-size:11px;color:var(--ho-t2);font-weight:600;text-align:right;line-height:1.1}.ow-money-hd .k b{display:block;font:700 18px var(--ho-font-num);letter-spacing:-.02em;color:var(--ho-t1)}.ow-money-hd .k b.is-paid{color:var(--ho-paid)}.ow-money-hd .k b.is-due{color:var(--ho-due)}.ow-money-hd .k b.is-settled{color:var(--ho-paid)}.ow-sec-danger{color:var(--ho-bad-dark)}.ow-sec-danger:after{background:var(--ho-bad-bg)}.ow-pane{padding:12px;flex:1;min-height:0;overflow-y:auto;background:var(--ho-canvas)}.ow-card{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:10px;box-shadow:var(--ho-sh-card);padding:12px 14px 14px}.ow-msg{padding:24px 8px;text-align:center;font-size:12px;color:var(--color-text-secondary)}.ow-msg.is-error{color:var(--color-error-dark)}.ow-away{margin:-2px 0 10px;padding:7px 10px;border-radius:var(--radius-md);background:var(--color-warning-light);border:1px solid var(--color-warning);color:var(--color-warning-dark);font-size:11px;line-height:1.5}.ow-win.is-away .ow-stdot{opacity:.45}.ow-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}.ow-badge{font-size:11px;font-weight:700;color:var(--color-text-on-primary);padding:2px 9px;border-radius:var(--radius-full);white-space:nowrap}.ow-badge.is-ghost{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);font-weight:600}.ow-kv{display:grid;grid-template-columns:62px 1fr;gap:6px 8px;align-items:center}.ow-kv .ow-k{font-size:12px;color:var(--ho-t2);font-weight:500}.ow-kv .ow-v{font-size:13.5px;font-weight:700;font-family:var(--ho-font-num);color:var(--color-text-primary);display:flex;align-items:center;gap:6px;min-height:22px}.ow-kv .ow-v .ow-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ow-kv .ow-v .ow-mono{font-family:var(--font-mono);letter-spacing:.2px}.ow-kv2{display:grid;grid-template-columns:62px 1fr 62px 1fr;gap:6px 8px;align-items:center}.ow-kv2 .ow-k{font-size:12px;color:var(--ho-t2);font-weight:500}.ow-kv2 .ow-v{font-size:13.5px;font-weight:700;font-family:var(--ho-font-num);color:var(--color-text-primary);display:flex;align-items:center;gap:6px;min-height:22px;min-width:0}.ow-kv2 .ow-v .ow-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ow-kv2 .ow-v.ow-span3{grid-column:2 / span 3}.ow-money-detail{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px;color:var(--color-text-secondary);margin:0 0 8px}.ow-money-detail b{font-weight:600;color:var(--color-text-primary)}.ow-input.ow-textarea{height:auto;min-height:44px;resize:vertical;line-height:1.5}.ow-save-row{display:flex;justify-content:flex-end;gap:8px;margin:8px 0 2px}.order-activity-log{display:flex;flex-direction:column;gap:8px}.order-activity-log .activity-item{display:flex;gap:8px;font-size:12px;padding-bottom:8px;border-bottom:1px solid var(--ho-line)}.order-activity-log .activity-item:last-child{border-bottom:none;padding-bottom:0}.order-activity-log .activity-item .dot{width:6px;height:6px;border-radius:50%;background:var(--ho-p);margin-top:5px;flex-shrink:0}.order-activity-log .activity-item .dot.success{background:var(--ho-ok)}.order-activity-log .activity-item .dot.warn{background:var(--ho-warn)}.order-activity-log .activity-item .body{flex:1}.order-activity-log .activity-item .action{font-weight:600;color:var(--ho-t1)}.order-activity-log .activity-item .meta{color:var(--ho-t3);font-size:10px;margin-top:1px}.order-activity-log .activity-item .detail{color:var(--ho-t2);font-size:10px;margin-top:2px}.ow-input{flex:1;min-width:0;appearance:none;font:inherit;font-size:12px;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:3px 7px;height:24px}.ow-input.ow-mono{font-family:var(--font-mono);letter-spacing:.2px}.ow-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.ow-cp{appearance:none;border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;width:20px;height:20px;border-radius:var(--radius-sm);flex-shrink:0;font-size:11px;line-height:1;color:var(--color-slate-500);display:inline-flex;align-items:center;justify-content:center;position:relative}.ow-cp:hover{border-color:var(--color-primary);color:var(--color-primary-dark);background:var(--color-primary-light)}.ow-copied{position:absolute;right:100%;margin-right:6px;top:50%;transform:translateY(-50%);background:var(--color-slate-800);color:var(--color-text-on-primary);font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;z-index:1}.ow-copied.is-fail{background:var(--color-error)}.ow-notes{font-size:12px;line-height:1.6;color:var(--color-text-primary);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:7px 9px;white-space:pre-wrap;word-break:break-word}.ow-sec{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);margin:14px 0 7px;display:flex;align-items:center;gap:var(--space-2)}.ow-sec:after{content:"";flex:1;height:1px;background:var(--ho-line)}.ow-sec:first-child{margin-top:0}.ow-sec .ow-reload{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;font-size:12px;line-height:1;color:var(--color-text-tertiary);padding:2px 4px;border-radius:var(--radius-sm);order:9}.ow-sec .ow-reload:hover{color:var(--color-primary-dark);background:var(--color-primary-light)}.ow-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.ow-stat{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:7px 9px}.ow-stat .ow-lb{font-size:11px;color:var(--ho-t2)}.ow-stat .ow-vl{font-size:15px;font-weight:700;font-family:var(--font-mono);letter-spacing:-.2px;color:var(--color-text-primary)}.ow-stat.is-due .ow-vl{color:var(--color-error-dark)}.ow-stat.is-settled .ow-vl{color:var(--color-success-dark)}.ow-actbar{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;margin:12px -14px -14px;border-top:1px solid var(--color-border);background:var(--color-surface-muted)}.ow-act{appearance:none;border:1px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;font:inherit;font-size:12px;font-weight:600;color:var(--color-text-primary);padding:6px 11px;border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:5px}.ow-act:hover{border-color:var(--color-primary);color:var(--color-primary-dark)}.ow-act.is-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.ow-act.is-primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:var(--color-text-on-primary)}.ow-act.is-off{opacity:.45;cursor:not-allowed}.ow-act.is-off:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.ow-act.is-danger{border-color:var(--color-error-light);background:var(--color-error-light);color:var(--color-error-dark)}.ow-act.is-danger.is-off:hover{border-color:var(--color-error-light);color:var(--color-error-dark)}.ow-btnrow{display:flex;flex-wrap:wrap;gap:6px}.ow-cflag{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-radius:var(--radius-md);font-size:12px;margin-bottom:6px;border:1px solid var(--color-border)}.ow-cflag .k{font-weight:700;white-space:nowrap}.ow-cflag.is-warn{background:var(--ho-warn-bg);border-color:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ow-cflag.is-err{background:var(--ho-bad-bg);border-color:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ow-cflag.is-info{background:var(--color-primary-light);border-color:var(--color-primary-light);color:var(--color-primary-dark)}.ow-sflag.is-cred{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ow-cred{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:6px;overflow:hidden}.ow-cred.is-other{opacity:.8;border-style:dashed}.ow-cred .hd{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px}.ow-cred .ty{font-weight:700;font-size:12px}.ow-cred .ty small{display:block;font-weight:400;color:var(--color-text-tertiary);font-size:11px}.ow-cred .info{font-size:12px;color:var(--color-text-secondary);min-width:0}.ow-cred .info .id{color:var(--color-text-primary);font-family:var(--font-mono)}.ow-cred .info .val{display:block;font-size:11px;color:var(--color-text-tertiary);margin-top:1px;font-variant-numeric:tabular-nums}.ow-cred .acts{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.ow-cred .acts .ow-act{padding:3px 9px;font-weight:600}.ow-cst{display:inline-block;font-size:10.5px;padding:0 6px;border-radius:999px;border:1px solid var(--color-border-strong);color:var(--color-text-secondary);margin-left:6px;vertical-align:1px}.ow-cst.is-live{border-color:var(--color-success-light);color:var(--color-success-dark)}.ow-cst.is-soon{border-color:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ow-cst.is-expired,.ow-cst.is-pending{color:var(--color-text-tertiary)}.ow-cred .sub{display:flex;gap:8px;padding:6px 10px 8px;border-top:1px dashed var(--color-border);background:var(--color-surface-muted);font-size:12px;align-items:center;flex-wrap:wrap}.ow-cred .sub .lbl{color:var(--ho-t2);font-size:11px}.ow-cred .sub input[type=datetime-local]{font:inherit;font-size:12px;padding:2px 6px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary)}.ow-recs{font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 10px;margin-bottom:8px;display:grid;grid-template-columns:auto auto 1fr;gap:2px 14px;font-variant-numeric:tabular-nums}.ow-recs .ok{color:var(--color-success-dark)}.ow-recs .er{color:var(--color-error-dark)}.ow-recs .note{color:var(--color-text-tertiary);font-family:inherit}.ow-roomrow{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.ow-roomrow .lk{font-size:11px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.ow-tbl{width:100%;border-collapse:collapse;font-size:12px}.ow-tbl th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.05em;color:var(--ho-t2);padding:0 6px 5px;border-bottom:1px solid var(--color-border);white-space:nowrap}.ow-tbl td{padding:5px 6px;border-bottom:1px solid var(--color-divider);vertical-align:middle;color:var(--color-text-primary)}.ow-tbl td.ow-num{text-align:right;font-family:var(--font-mono);white-space:nowrap}.ow-tbl td.ow-sub2{color:var(--color-text-secondary);font-size:11px}.ow-tbl tr.is-muted td{color:var(--color-text-tertiary)}.ow-tbl tr.is-sum td{border-bottom:0;font-weight:700;padding-top:7px}.ow-tbl tr.is-void td{text-decoration:line-through;color:var(--color-text-tertiary)}.ow-empty{text-align:center;padding:20px 10px;color:var(--ho-t3);font-size:13px;line-height:1.6;background:transparent;border:0;border-radius:var(--ho-r-md)}.ow-note{font-size:11px;color:var(--color-text-tertiary);line-height:1.6;margin-top:9px}.ow-note.is-warn{color:var(--color-warning-dark)}.ow-thread{display:flex;flex-direction:column;gap:7px}.ow-bub{max-width:84%;font-size:12px;line-height:1.5;padding:6px 10px;border-radius:var(--radius-lg);word-break:break-word}.ow-bub .ow-bt{font-size:10px;font-family:var(--font-mono);opacity:.7;margin-top:3px}.ow-bub.is-out{align-self:flex-end;background:var(--color-primary);color:var(--color-text-on-primary);border-bottom-right-radius:3px}.ow-bub.is-in{align-self:flex-start;background:var(--color-surface-muted);color:var(--color-text-primary);border-bottom-left-radius:3px}.ow-hk{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border)}.ow-hk .ow-sw{width:14px;height:14px;border-radius:var(--radius-sm);flex-shrink:0}.ow-hk .ow-hkt{font-size:12px;font-weight:700;color:var(--color-text-primary)}.ow-hk .ow-hks{font-size:11px;color:var(--color-text-tertiary);line-height:1.5}.cal-ctx-menu.ho-ctx{border:1px solid var(--ho-line-strong);border-radius:12px;box-shadow:var(--ho-sh-pop);padding:0;font-size:12.5px}.cal-ctx-menu.ho-ctx .cal-ctx-head{padding:12px 14px 8px;border-bottom:0;margin-bottom:0}.cal-ctx-menu.ho-ctx .cal-ctx-head-title{font:700 15px var(--ho-font-num);color:var(--ho-t1)}.cal-ctx-menu.ho-ctx .cal-ctx-head-sub{margin-top:2px;font-size:12px;color:var(--ho-t2)}.cal-ctx-menu.ho-ctx .cal-ctx-section{padding:6px 12px 5px;font:700 10px var(--ho-font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ho-t2);border-top:1px solid var(--ho-muted-2)}.cal-ctx-menu.ho-ctx .cal-ctx-primary{grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 10px}.cal-ctx-menu.ho-ctx .cal-ctx-pbtn{height:34px;line-height:34px;border-radius:8px;background:var(--ho-p);color:#fff;font-weight:700;font-size:12.5px}.cal-ctx-menu.ho-ctx .cal-ctx-pbtn.k-pay{background:var(--ho-ok)}.cal-ctx-menu.ho-ctx .cal-ctx-pbtn:hover:not(.disabled){background:var(--ho-p-dark)}.cal-ctx-menu.ho-ctx .cal-ctx-pbtn.k-pay:hover:not(.disabled){background:var(--ho-ok-dark)}.cal-ctx-menu.ho-ctx .cal-ctx-pbtn.disabled{opacity:.4;background:var(--ho-p);color:#fff}.cal-ctx-menu.ho-ctx .cal-ctx-pbtn.k-pay.disabled{background:var(--ho-ok)}.cal-ctx-menu.ho-ctx .cal-ctx-grid{grid-template-columns:repeat(3,1fr);gap:4px;padding:0 12px 8px}.cal-ctx-menu.ho-ctx .cal-ctx-gbtn{height:28px;line-height:26px;border-radius:6px;background:var(--ho-muted);border:1px solid var(--ho-line);font-size:11.5px;font-weight:600;color:var(--ho-t1);padding:0 6px}.cal-ctx-menu.ho-ctx .cal-ctx-gbtn:hover:not(.disabled){border-color:var(--ho-p);color:var(--ho-p-dark);background:var(--ho-p-50)}.cal-ctx-menu.ho-ctx .cal-ctx-gbtn.disabled{opacity:.4;background:var(--ho-muted);color:var(--ho-t1);border-color:var(--ho-line)}.cal-ctx-menu.ho-ctx .cal-ctx-divider{height:1px;background:var(--ho-muted-2);margin:0 0 8px}.cal-ctx-menu.ho-ctx .cal-ctx-divider+.cal-ctx-grid{grid-template-columns:1fr;padding:0 12px 12px}.cal-ctx-menu.ho-ctx .cal-ctx-gbtn.danger{height:30px;line-height:28px;border:1px solid #F1B8B8;color:var(--ho-bad-dark);font-weight:700;background:#fff}.cal-ctx-menu.ho-ctx .cal-ctx-gbtn.danger:hover:not(.disabled){background:var(--ho-bad-bg);border-color:var(--ho-bad)}.cal-ctx-menu.ho-ctx .cal-ctx-strip{gap:0;padding:4px 12px 2px}.cal-ctx-menu.ho-ctx .cal-ctx-strip-side{padding-top:4px}.cal-ctx-menu.ho-ctx .cal-ctx-spill{height:26px;line-height:24px;border-radius:0;margin-left:-1px;border-color:var(--ho-line-strong);color:var(--ho-t2);font-size:12px;font-weight:700}.cal-ctx-menu.ho-ctx .cal-ctx-strip .cal-ctx-spill:first-child{border-radius:13px 0 0 13px;margin-left:0}.cal-ctx-menu.ho-ctx .cal-ctx-strip .cal-ctx-spill:last-child{border-radius:0 13px 13px 0}.cal-ctx-menu.ho-ctx .cal-ctx-strip-side .cal-ctx-spill{border-radius:13px;margin-left:4px}.cal-ctx-menu.ho-ctx .cal-ctx-spill.current{background:var(--ho-room-oc);border-color:var(--ho-room-oc);color:#fff;position:relative;z-index:1}.cal-ctx-menu.ho-ctx .cal-ctx-spill:not(.current):not(.disabled){color:var(--ho-p-dark);border-color:var(--ho-p-200)}.cal-ctx-menu.ho-ctx .cal-ctx-spill.disabled{opacity:.45;background:#fff;color:var(--ho-t2)}.cal-ctx-menu.ho-ctx .cal-ctx-sarrow{display:none}.cal-ctx-menu.ho-ctx .cal-ctx-flag{margin:6px 12px 0;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.cal-ctx-menu.ho-ctx .cal-ctx-flag.warn{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.cal-ctx-menu.ho-ctx .cal-ctx-flag.pay{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.ow-inv-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:32px}.ow-inv-bar.is-stale{background:var(--ho-warn-bg);border-radius:8px;padding:6px 10px;color:var(--ho-warn-dark)}.ow-inv-pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.ow-inv-pill.is-draft{background:var(--color-primary-50, #E4EAF7);color:var(--color-primary-dark)}.ow-inv-pill.is-ok{background:var(--ho-ok-bg);color:var(--ho-ok-dark)}.ow-inv-pill.is-warn{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.ow-inv-pill.is-void{background:var(--color-fill-secondary, #eef0f4);color:var(--color-text-tertiary)}.ow-act.is-link{border-color:transparent;background:transparent;color:var(--color-primary-dark);padding-left:4px;padding-right:4px}.ow-act.is-link:hover{border-color:transparent;text-decoration:underline}.ow-tabs{scrollbar-width:thin}.ow-tabs::-webkit-scrollbar{display:block;height:5px}.ow-tabs::-webkit-scrollbar-thumb{background:var(--ho-line-strong);border-radius:3px}.ow-tabs::-webkit-scrollbar-track{background:transparent}.ow-win{height:min(860px,calc(100vh - 108px))}.subtabs.ho-subnav{margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px)) 0;z-index:40}.subtab .ico{display:inline-flex;align-items:center;font-size:16px;line-height:1}.cal-root{--cell-w: 130px;--room-col-w: 118px;--past-days: 0;--future-days: 42;--days-visible: 42;--row-h: 40px;--bar-h: 26px;--waiting-row-h: 26px;--waiting-bar-h: 14px;--grid-line: var(--ho-line);margin:0}.cal-toolbar{padding:8px 12px}.cal-toolbar>*{flex-shrink:0}.toolbar-section{display:flex;align-items:center;gap:8px;flex-shrink:0}.date-display{flex-shrink:0;white-space:nowrap}.toolbar-divider{width:1px;height:20px;background:var(--ho-line)}.cal-toolbar .ho-tag2{height:16px;padding:0 5px;font-size:10.5px;margin-left:2px}.cal-toolbar .ho-btn .anticon{font-size:13px;line-height:1}.date-display{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid var(--ho-line-strong);border-radius:8px;background:var(--ho-surface);font:700 13px var(--ho-font-num);font-variant-numeric:tabular-nums;color:var(--ho-t1);cursor:pointer}.date-display small{font:500 11px var(--ho-font-body);color:var(--ho-t3)}.date-display:hover{border-color:var(--ho-p)}.date-display{position:relative}.date-display-input{position:absolute;inset:0;opacity:0;cursor:pointer;border:none;padding:0;font:inherit;background:transparent}.cal-status-pop{display:flex;flex-direction:column;gap:var(--space-2);min-width:200px}.status-count{color:var(--color-text-tertiary);font-size:var(--text-xs)}.calendar-wrap{background:var(--ho-surface);margin:0;border-radius:var(--ho-r-md);border:1px solid var(--ho-line);overflow:hidden;box-shadow:var(--ho-sh-card)}.calendar-scroll{overflow-x:auto;overflow-y:auto}.calendar-scroll::-webkit-scrollbar{width:8px}.calendar-scroll::-webkit-scrollbar:horizontal{height:0;display:none}.calendar-scroll::-webkit-scrollbar-thumb{background:var(--ho-line-strong);border-radius:4px}.calendar-scroll::-webkit-scrollbar-track{background:transparent}.cal-row{display:flex;align-items:stretch;min-width:calc(var(--room-col-w) + var(--cell-w) * var(--days-visible))}.cal-header{background:var(--ho-muted);border-bottom:2px solid var(--grid-line);position:sticky;top:0;z-index:20}.cal-header-room{width:var(--room-col-w);flex-shrink:0;padding:6px 10px 5px;border-right:1px solid var(--grid-line);display:flex;flex-direction:column;justify-content:center;gap:3px;background:var(--ho-muted);position:sticky;left:0;z-index:6}.cal-header-room .d{font:700 11px var(--ho-font-body);color:var(--ho-t2);letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-header-dates{display:flex;flex:1}.cal-header-date{width:var(--cell-w);flex-shrink:0;padding:6px 0 5px;text-align:center;border-right:1px solid var(--grid-line);background:var(--ho-muted);position:relative}.cal-header-date:last-child{border-right:none}.cal-header-date.past{opacity:.5}.cal-header-date.today{background:var(--ho-p-50)}.cal-header-date.today:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--ho-p)}.date-line1{display:flex;align-items:baseline;justify-content:center;gap:3px;line-height:1.2}.date-num{font:700 15px var(--ho-font-num);font-variant-numeric:tabular-nums;color:var(--ho-t1)}.date-weekday{font:600 10.5px var(--ho-font-body);color:var(--ho-t2)}.cal-header-date.today .date-num{color:var(--ho-p-dark)}.cal-header-date.weekend .date-weekday{color:var(--ho-bad)}.date-line2,.cal-header-room .av{display:inline-flex;align-items:center;justify-content:center;gap:3px;margin-top:3px}.date-avail,.date-occ,.cal-header-room .av b{font:700 10.5px var(--ho-font-num);font-variant-numeric:tabular-nums;padding:1px 6px;border-radius:9px;line-height:1.45;background:var(--ho-muted-2);color:var(--ho-t2)}.date-avail strong{font-weight:inherit;color:inherit}.date-avail.vac-low{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.date-avail.vac-zero{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.date-occ{background:var(--ho-p-100);color:var(--ho-p-dark)}.date-cell.sel-invalid,.date-cell.selecting.sel-invalid{background:#dc26262e;box-shadow:inset 0 0 0 2px #dc262680}.cal-row.type-group-row{display:flex;align-items:stretch;border-top:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);height:var(--waiting-row-h);min-width:calc(var(--room-col-w) + var(--cell-w) * var(--days-visible));background:var(--ho-muted-2);font:700 11px var(--ho-font-body);letter-spacing:.06em;color:var(--ho-t2)}.type-info{width:var(--room-col-w);flex-shrink:0;padding:0 8px 0 10px;border-right:1px solid var(--grid-line);display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;background:var(--ho-muted-2);position:sticky;left:0;z-index:3;overflow:hidden}.type-info .sw{width:10px;height:10px;border-radius:3px;flex:none;background:var(--type-stripe, var(--ho-p))}.type-info .type-name{font:inherit;letter-spacing:inherit;color:var(--ho-t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;cursor:default}.type-info .type-cnt{font-weight:500;letter-spacing:0;color:var(--ho-t3);white-space:nowrap;flex:none}.type-info .type-sub{font-size:10px;font-weight:500;letter-spacing:0;color:var(--ho-t3);line-height:1.15;white-space:nowrap;-webkit-user-select:none;user-select:none}.cal-row.type-group-row .date-track{background:var(--ho-muted-2)}.type-fr{position:sticky;right:0;flex:none;width:0;align-self:stretch;z-index:3;pointer-events:none}.type-fr>span{position:absolute;right:10px;top:0;bottom:0;display:flex;align-items:center;font-weight:600;letter-spacing:0;color:var(--ho-t3);white-space:nowrap;font-variant-numeric:tabular-nums}.cal-row.type-group-row .date-cell.weekend,.cal-row.type-group-row .date-cell.past,.cal-row.type-group-row .date-cell.past.weekend{background:transparent}.cal-row.type-group-row .booking-bar{height:var(--waiting-bar-h);font-size:10px;padding:0 26px 0 4px;border-radius:3px;gap:2px}.cal-row.type-group-row .booking-bar .bar-payment,.cal-row.type-group-row .booking-bar .bar-key{width:11px;height:11px;font-size:7px}.cal-row.type-group-row .booking-bar .bar-payment{right:14px}.cal-row.type-group-row .booking-bar .bar-key,.cal-row.type-group-row .booking-bar.no-pay .bar-key{right:2px}.cal-row.type-group-row .booking-bar.unassigned{border-width:1px}.cal-row.type-group-row .booking-bar .bar-unassigned{width:10px;height:10px;font-size:7px}.body-row{border-bottom:1px solid var(--grid-line);height:var(--row-h)}.body-row:hover .room-info{background:var(--ho-muted)}.body-row .room-info{width:var(--room-col-w);flex-shrink:0;padding:0 10px;border-right:1px solid var(--grid-line);display:flex;align-items:center;justify-content:flex-start;gap:8px;background:var(--ho-surface);position:sticky;left:0;z-index:3}.room-num{font:700 15px var(--ho-font-num);font-variant-numeric:tabular-nums;color:var(--ho-t1);flex-shrink:0;-webkit-user-select:none;user-select:none;cursor:default}.room-info .room-typ{margin-left:auto;font:700 10px var(--ho-font-num);color:var(--ho-t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;cursor:default}.room-info .status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-dot.status-online{background:var(--ho-ok)}.status-dot.status-warning{background:var(--ho-warn)}.status-dot.status-offline{background:var(--ho-bad)}.cal-root.cal-mode-room{--room-col-w: 120px}.cal-root.cal-mode-room .body-row .room-info{justify-content:flex-start;padding-left:10px;overflow:hidden}.cal-root.cal-mode-room .body-row:not(.drop-target) .room-info{box-shadow:inset 3px 0 0 var(--type-stripe, transparent)}.cal-root.cal-mode-room .room-info .room-num{flex-shrink:0;white-space:nowrap;text-align:left}.cal-root.cal-mode-room .room-info .type-chip{flex:0 0 44px;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-info .type-chip{font-size:10px;font-weight:var(--font-bold);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;cursor:default}.cal-root.cal-mode-room .cal-row.type-group-row.holding-row{border-top:2px solid var(--color-slate-400)}.cal-row.type-group-row.holding-row .type-info{flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;overflow:hidden}.cal-row.type-group-row.holding-row .type-info .type-name{flex-shrink:0}.cal-row.type-group-row.holding-row .type-info .type-sub{min-width:0;overflow:hidden;text-overflow:ellipsis}.booking-bar .bar-typechip{flex-shrink:0;font-size:9px;font-weight:var(--font-bold);letter-spacing:.03em;line-height:12px;padding:0 5px;border-radius:999px;background:#ffffffe6}.date-track{flex:1;display:flex;position:relative;background:var(--ho-surface)}.date-cell{width:var(--cell-w);flex-shrink:0;border-right:1px solid var(--grid-line);position:relative;background:var(--ho-surface)}.date-cell:last-child{border-right:none}.date-cell.weekend{background:#fafbfd}.date-cell.past{background:var(--ho-muted)}.date-cell.today{background:#2563eb17}.date-cell.vd-cell{background:#f7f9de}.date-cell.clickable{cursor:pointer}.date-cell.clickable:hover{background:var(--ho-p-50);box-shadow:inset 0 0 0 1px var(--ho-p-200)}.booking-bar{position:absolute;top:calc(50% + (var(--lane, 0) + .5 - var(--lane-count, 1) / 2) * 24px);transform:translateY(-50%);height:var(--bar-h);left:calc(var(--start-h, 0) * var(--cell-w) / 24 + var(--past-days) * var(--cell-w));width:calc(var(--duration-h, 0) * var(--cell-w) / 24);border-radius:6px;padding:0 38px 0 8px;display:flex;align-items:center;gap:5px;color:#fff;font-size:11.5px;font-weight:700;cursor:move;transition:box-shadow var(--duration-fast);overflow:hidden;white-space:nowrap;box-shadow:0 1px 2px #0000002e;z-index:2;container-type:inline-size}.booking-bar:hover{box-shadow:0 3px 10px #00000040;z-index:10}.booking-bar:focus-visible{outline:2px solid #FFFFFF;outline-offset:-2px;box-shadow:0 0 0 2px var(--color-slate-800),0 3px 10px #0000004d;z-index:12}.booking-bar.vd:focus-visible,.booking-bar.cancelled:focus-visible{outline-color:var(--color-slate-800)}.booking-bar.oc{background:var(--ho-room-oc);color:var(--ho-room-oc-ink, #fff)}.booking-bar.od{background:var(--ho-room-od);color:var(--ho-room-od-ink, #fff)}.booking-bar.vc{background:var(--ho-room-reserved);color:var(--ho-room-reserved-ink, #fff)}.booking-bar.vd{background:var(--ho-room-vd);color:var(--ho-room-vd-ink, #000)}.booking-bar.locked{background:var(--ho-room-locked);color:var(--ho-room-locked-ink, #fff);cursor:not-allowed}.booking-bar.locked:before{content:"🔒";margin-right:4px;font-size:12px}.booking-bar.repair{background:var(--ho-room-repair);color:var(--ho-room-repair-ink, #fff);cursor:not-allowed}.booking-bar.repair:before{content:"🔧";margin-right:4px;font-size:12px}.booking-bar.locked.movable,.booking-bar.repair.movable{cursor:grab}.booking-bar.locked.movable.dragging,.booking-bar.repair.movable.dragging{cursor:grabbing}.booking-bar.noshow{background:var(--ho-room-noshow);color:var(--ho-room-noshow-ink, #fff)}.booking-bar.cancelled{background:var(--ho-muted);color:var(--ho-t3);border:1px dashed var(--ho-line-strong);text-decoration:line-through;box-shadow:none}.booking-bar.completed{background:var(--ho-room-out)!important;color:var(--ho-room-out-ink, #fff)!important;filter:none;cursor:default;box-shadow:none}.booking-bar.completed:hover{z-index:11;box-shadow:0 2px 6px #0000001f}.booking-bar.completed .bar-payment,.booking-bar.completed .bar-key{opacity:.7}.booking-bar .bar-move{font-size:10.5px;font-weight:600;opacity:.9;margin-left:4px;white-space:nowrap}.ho-changeroom{display:flex;flex-direction:column;gap:12px}.ho-changeroom .subj,.ho-changeroom .cons{margin:0}.ho-changeroom .cr-reason{width:100%;height:32px;border:1px solid var(--ho-line-strong);border-radius:7px;padding:0 10px;font:500 13px var(--ho-font-body);background:#fff;color:var(--ho-t1)}.ho-changeroom .cr-reason:focus{outline:none;border-color:var(--ho-p)}.ho-changeroom .cr-opts{display:flex;flex-direction:column;gap:6px}.ho-changeroom .cr-opts button{display:flex;align-items:center;gap:10px;border:1.5px solid var(--ho-line);border-radius:9px;padding:8px 12px;text-align:left;background:#fff;width:100%;cursor:pointer;font:inherit;color:inherit}.ho-changeroom .cr-opts button.on{border-color:var(--ho-p);background:var(--ho-p-50)}.ho-changeroom .cr-opts i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--ho-line-strong);flex:none}.ho-changeroom .cr-opts button.on i{border:4px solid var(--ho-p)}.ho-changeroom .cr-opts b{font-size:13px}.ho-changeroom .cr-opts small{color:var(--ho-t3);font-size:11.5px}.ho-changeroom .cr-opts .v{margin-left:auto;font:700 13.5px var(--ho-font-num);font-variant-numeric:tabular-nums}.ho-changeroom .cr-opts .v.due{color:var(--ho-due)}.ho-changeroom .cr-opts .v.paid{color:var(--ho-paid)}.ho-changeroom .cr-opts .v.mute{color:var(--ho-t3)}.ho-changeroom .cr-chk{display:flex;align-items:flex-start;gap:9px;border:1.5px solid var(--ho-line-strong);background:#fff;border-radius:10px;padding:10px 12px;font:600 12.5px var(--ho-font-body);text-align:left;cursor:pointer;color:inherit}.ho-changeroom .cr-chk.on{border-color:var(--ho-p);background:var(--ho-p-50)}.ho-changeroom .cr-chk i{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--ho-line-strong);background:#fff;display:inline-grid;place-items:center;font-size:10px;font-style:normal;color:#fff;flex:none;margin-top:1px}.ho-changeroom .cr-chk.on i{background:var(--ho-p);border-color:var(--ho-p)}.ho-changeroom .cr-chk small{display:block;font-weight:500;color:var(--ho-t3)}.booking-bar.crop-left{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:12px}.booking-bar.crop-right{border-top-right-radius:0;border-bottom-right-radius:0}.booking-bar.crop-left:before{content:"◀";position:absolute;left:2px;top:50%;transform:translateY(-50%);font-size:8px;opacity:.7;margin:0}.booking-bar.crop-right:after{content:"▶";position:absolute;right:38px;top:50%;transform:translateY(-50%);font-size:8px;opacity:.7}.booking-bar.tinted{background:var(--bar-tint);color:var(--bar-ink, #fff);padding-left:12px}.bar-tint-rail{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:6px 0 0 6px;pointer-events:none;z-index:3;background:#0f172a59}.booking-bar.tinted.vc .bar-tint-rail{background:var(--ho-room-reserved)}.booking-bar.tinted.oc .bar-tint-rail{background:var(--ho-room-oc)}.booking-bar.tinted.od .bar-tint-rail{background:var(--ho-room-od)}.booking-bar.tinted.noshow .bar-tint-rail{background:var(--ho-room-noshow)}.booking-bar.crop-left .bar-tint-rail{display:none}.booking-bar.crop-left.tinted{padding-left:12px}.bar-note-flag{flex:none;font-size:10px;line-height:1;cursor:help}.bar-note-pop .np-row{display:grid;grid-template-columns:max-content 1fr;gap:2px 8px;align-items:baseline}.bar-note-pop .np-row .k{opacity:.65;font-weight:400}.bar-note-pop .np-row .v{font-weight:500;white-space:pre-line}.bar-note-pop .np-sec{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(255,255,255,.28)}.bar-note-pop .np-int{color:#b7e4a0;white-space:pre-line}.bar-note-pop .np-hl{white-space:pre-line}.bar-note-pop{position:fixed;z-index:3000;background:var(--ho-ink, #0F172A);color:#fff;font-size:12px;font-weight:500;line-height:1.5;padding:8px 10px;border-radius:6px;box-shadow:0 6px 20px #00000047;white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none}.bar-vip{font-size:12px;line-height:1;flex-shrink:0;color:gold;text-shadow:0 0 3px rgba(0,0,0,.4)}.bar-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.bar-src{flex:none;font:700 9px var(--ho-font-num);letter-spacing:.04em;text-transform:uppercase;background:#ffffff38;padding:1px 4px;border-radius:3px;max-width:44px;overflow:hidden;text-overflow:ellipsis}@container (max-width: 110px){.bar-src{display:none}}.booking-bar.completed .bar-src,.booking-bar.cancelled .bar-src{background:#00000014}.booking-bar .bar-name{margin-left:max(0px,calc(var(--cal-scroll-x, 0px) - (var(--start-h, 0) * var(--cell-w) / 24 + var(--past-days, 0) * var(--cell-w))))}.bar-warning{position:absolute;top:1px;left:2px;font-size:11px;line-height:1;cursor:help;z-index:3}.booking-bar.locked-rail:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:#0f172ab8;pointer-events:none;z-index:3}.booking-bar.locked-rail{cursor:not-allowed}.bar-payment{position:absolute;right:22px;top:50%;transform:translateY(-50%);background:#fff;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font:700 9.5px var(--ho-font-num);z-index:3}.bar-payment.f{color:var(--ho-pay-paid)}.bar-payment.p{color:var(--ho-pay-partial)}.bar-payment.u{color:var(--ho-pay-unpaid)}.bar-payment.v{color:var(--ho-pay-vcc)}.bar-payment.o{color:#fff;background:var(--ho-pay-refund)}.bar-payment.clickable{cursor:pointer;transition:transform var(--duration-fast),box-shadow var(--duration-fast)}.bar-payment.clickable:hover{box-shadow:0 0 0 2px #2563eb99;transform:translateY(-50%) scale(1.3)}.booking-bar.no-pay .bar-key{right:4px}.bar-key{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:#fff;color:var(--ho-ok-dark);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;z-index:3}.bar-keybtn{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:#ffffff38;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;z-index:4;transition:transform var(--duration-fast),box-shadow var(--duration-fast)}.bar-keybtn:hover{box-shadow:0 0 0 2px #fff9;transform:translateY(-50%) scale(1.3)}.bar-keybtn-ico{filter:brightness(.7) saturate(1.4)}.bar-keybtn-issued{background:#fff;color:var(--ho-ok-dark)}.bar-keybtn-issued:hover{box-shadow:0 0 0 2px #16a34acc;transform:translateY(-50%) scale(1.3)}.booking-bar.cancelled .bar-key,.booking-bar.noshow .bar-key{display:none}.booking-bar.unassigned{border:1.5px dashed rgba(255,255,255,.85);box-shadow:0 1px 3px #f59e0b80}.bar-unassigned{background:#fff;color:var(--color-warning-dark);font-weight:900;font-size:10px;border-radius:50%;width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;box-shadow:0 0 0 1px var(--color-warning)}.bar-unassigned.bar-pending-assign{background:none;box-shadow:none;width:auto;height:auto;font-size:9px}.cal-status-h{font:700 10.5px/1 var(--ho-font-num);letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);margin:2px 0 6px}.cal-status-row{display:flex;align-items:center;gap:7px;min-height:26px}.cal-status-row .ant-checkbox-wrapper{margin:0}.cal-status-gap{width:16px;flex:none}.cal-status-lbl{flex:1;font-size:12.5px;white-space:nowrap}.cal-status-fixed{font-size:11px;color:var(--ho-t3)}.cal-sw{width:14px;height:14px;border-radius:4px;border:1px solid rgba(15,23,42,.12);padding:0;flex:none;position:relative;background:var(--ho-muted)}button.cal-sw{cursor:pointer}button.cal-sw:hover,button.cal-sw.on{outline:2px solid var(--ho-line-strong);outline-offset:1px}.cal-sw.custom:after{content:"";position:absolute;right:-3px;bottom:-3px;width:6px;height:6px;border-radius:50%;background:var(--ho-p);border:1.5px solid #fff}.cal-sw.cancelled{border:1px dashed var(--ho-line-strong)}.cal-sw-reset{border:0;background:transparent;color:var(--ho-p);font-size:11.5px;font-weight:600;cursor:pointer;padding:0 2px}.cal-sw-palette{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:2px 0 6px 23px;max-width:240px}.cal-sw-preset{width:20px;height:20px;border-radius:5px;border:1px solid rgba(15,23,42,.12);padding:0;cursor:pointer;position:relative}.cal-sw-preset:hover{transform:scale(1.12)}.cal-sw-preset.on:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:700;font-size:11px;text-shadow:0 0 2px rgba(0,0,0,.6)}.cal-sw-custom{width:20px;height:20px;border-radius:5px;border:1px dashed var(--ho-line-strong);display:inline-grid;place-items:center;font-size:13px;line-height:1;color:var(--ho-t3);cursor:pointer;position:relative;overflow:hidden}.cal-sw-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.cal-status-hint{font-size:11px;color:var(--ho-t3);margin-top:4px}.cal-status-sec{margin-top:8px;padding-top:8px;border-top:1px solid var(--ho-line)}.cal-pay-row{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px}.cal-pay-row span{display:inline-flex;gap:5px;align-items:center;white-space:nowrap}.cal-pay-l{font:700 11.5px var(--ho-font-num)}.cal-pay-l.f{color:var(--ho-pay-paid)}.cal-pay-l.p{color:var(--ho-pay-partial)}.cal-pay-l.u{color:var(--ho-pay-unpaid)}.cal-pay-l.v{color:var(--ho-pay-vcc)}.cal-pay-l.o{color:var(--ho-pay-refund)}.cal-status-foot{display:flex;align-items:center;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--ho-line)}.cal-status-foot .note{flex:1;font-size:11px;color:var(--ho-t3)}.cal-root.cal-dragging{-webkit-user-select:none;user-select:none}.cal-root.cal-dragging .date-cell{cursor:crosshair}.date-cell.selecting{background:var(--color-primary-200, var(--color-primary-light));box-shadow:inset 0 0 0 2px var(--color-primary)}.date-cell.selecting.today{background:var(--color-primary-300, var(--color-primary-200, var(--color-primary-light)))}.booking-bar.movable{cursor:grab}.booking-bar.movable:active{cursor:grabbing}.booking-bar.dragging{opacity:.45;outline:2px dashed white;outline-offset:-2px}.booking-bar .bar-resize{position:absolute;top:0;bottom:0;width:7px;z-index:4;cursor:ew-resize}.booking-bar .bar-resize.l{left:0}.booking-bar .bar-resize.r{right:0}.booking-bar.resizable:hover .bar-resize{background:#ffffff80}.booking-bar.vd.resizable:hover .bar-resize{background:#0000002e}.body-row.drop-target .date-track{background:var(--color-primary-50, rgba(37,99,235,.06))}.body-row.drop-target .room-info{background:var(--color-primary-light);box-shadow:inset 4px 0 0 var(--color-primary)}.date-cell.cal-rate-cell{display:flex;align-items:center;justify-content:center}.cal-cell-rate{position:absolute;right:4px;bottom:2px;font:700 10.5px var(--ho-font-num);font-variant-numeric:tabular-nums;color:var(--ho-t3);padding:0 2px;border-radius:3px;cursor:pointer;line-height:1.4;z-index:3;background:color-mix(in srgb,white 86%,transparent)}.cal-cell-rate:hover{background:var(--ho-p);color:#fff}.cal-cell-rate-input{width:84px;padding:0 16px 0 2px;font-size:10px;font-family:var(--font-mono);text-align:right;border:1px solid var(--color-primary);border-radius:3px;position:relative;z-index:2;background:#fff}.date-cell.cal-rate-cell.cal-rate-manual .cal-cell-rate:before,.date-cell.cal-rate-cell.cal-rate-smart .cal-cell-rate:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:3px;vertical-align:1px}.date-cell.cal-rate-cell.cal-rate-manual .cal-cell-rate:before{background:var(--ho-warn)}.date-cell.cal-rate-cell.cal-rate-smart .cal-cell-rate:before{background:#7c3aed}.cal-rate-edit-wrap{position:absolute;right:2px;bottom:1px;display:flex;flex-direction:column;align-items:flex-end;gap:1px;width:auto;z-index:15}.cal-rate-restore{display:inline-flex;align-items:center;gap:2px;font-size:9px;line-height:1.1;color:var(--color-primary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.cal-rate-restore:hover{text-decoration:underline;color:var(--color-primary-dark)}.cal-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:70;max-width:320px;text-align:center;padding:14px 20px;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium);color:#fff;box-shadow:0 12px 40px #00000052}.cal-toast.ok{background:var(--color-success)}.cal-toast.err{background:var(--color-error)}.cal-toast.info{background:var(--color-warning-dark)}.cal-busy{position:fixed;right:var(--space-6);bottom:calc(var(--space-6) + 52px);z-index:50;padding:6px 12px;border-radius:var(--radius-lg);font-size:var(--text-xs);background:var(--color-text-primary);color:#fff;opacity:.85}.cal-drag-hint{position:fixed;left:50%;bottom:calc(var(--space-6, 24px) + 56px);transform:translate(-50%);z-index:65;padding:8px 18px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:var(--text-sm, 13px);font-weight:var(--font-semibold, 600);letter-spacing:.2px;box-shadow:0 6px 20px #2563eb59,0 0 0 4px #2563eb1f;pointer-events:none;animation:cal-drag-hint-pop .14s ease-out}@keyframes cal-drag-hint-pop{0%{opacity:0;transform:translate(-50%) translateY(6px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.cal-ctx-menu{position:fixed;z-index:1000;width:324px;max-height:84vh;overflow-y:auto;background:var(--ho-surface);border:1px solid var(--ho-line-strong);border-radius:12px;box-shadow:var(--ho-sh-pop);padding:0 0 6px;font-size:13px;-webkit-user-select:none;user-select:none}.cal-ctx-head{padding:12px 14px 8px}.cal-ctx-head-title{font:700 15px var(--ho-font-num);color:var(--ho-t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ctx-head-sub{margin-top:2px;font-size:12px;color:var(--ho-t2)}.cal-ctx-body{display:flex;flex-direction:column}.cal-ctx-section{padding:6px 12px 2px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ho-t4)}.cal-ctx-divider{height:1px;background:var(--ho-muted-2);margin:4px 0 2px}.cal-ctx-primary,.cal-ctx-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:4px}.cal-ctx-primary{padding:4px 12px 10px;gap:6px}.cal-ctx-grid{padding:3px 12px 6px}.cal-ctx-pbtn,.cal-ctx-gbtn{height:28px;padding:0 6px;border-radius:6px;font-size:11.5px;font-weight:600;text-align:center;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit}.cal-ctx-gbtn{line-height:26px;border:1px solid var(--ho-line);background:var(--ho-muted);color:var(--ho-t1)}.cal-ctx-gbtn:hover:not(.disabled){border-color:var(--ho-p);background:var(--ho-p-50);color:var(--ho-p-dark)}.cal-ctx-gbtn.danger{border-color:#f1b8b8;background:var(--ho-surface);color:var(--ho-bad-dark)}.cal-ctx-gbtn.danger:hover:not(.disabled){border-color:var(--ho-bad);background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.cal-ctx-gbtn.disabled,.cal-ctx-gbtn:disabled{border-color:var(--ho-line);background:var(--ho-muted);color:var(--ho-t4);opacity:.6;cursor:not-allowed}.cal-ctx-pbtn{height:34px;line-height:34px;border-radius:8px;border:none;background:var(--ho-p);color:#fff;font-size:12.5px;font-weight:700;box-shadow:0 1px 2px #2563eb59}.cal-ctx-pbtn:hover:not(.disabled){background:var(--ho-p-dark)}.cal-ctx-pbtn.disabled,.cal-ctx-pbtn:disabled{background:var(--ho-line);color:var(--ho-t3);box-shadow:none;cursor:not-allowed}.cal-ctx-menu:focus{outline:none}.cal-ctx-pbtn:focus-visible,.cal-ctx-gbtn:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:1px}.cal-ctx-strip{display:flex;align-items:center;gap:3px;padding:6px 12px 2px}.cal-ctx-strip-side{padding-top:3px}.cal-ctx-spill{flex:1 1 0;height:24px;line-height:22px;padding:0 6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--font-semibold);text-align:center;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-ctx-spill:hover:not(.disabled):not(.current){border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary-dark)}.cal-ctx-spill.current{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary);cursor:default}.cal-ctx-spill.disabled{background:var(--color-surface-muted);color:var(--color-text-disabled);cursor:not-allowed}.cal-ctx-strip-side .cal-ctx-spill{flex:0 0 auto}.cal-ctx-sarrow{flex:none;color:var(--color-text-disabled);font-size:10px}.cal-ctx-spill .warn{margin-left:2px}.cal-ctx-spill:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:1px}.cal-ctx-flag{margin:3px 12px 0;padding:3px 8px;border-radius:var(--radius-md);font-size:var(--text-xs);line-height:1.5}.cal-ctx-flag.warn{background:#fffbeb;color:#92400e}.cal-ctx-flag.pay{background:var(--color-error-light);color:var(--color-error-dark)}.ota-msg-head{display:inline-flex;align-items:center;gap:8px;min-width:0}.ota-msg-head .ota-msg-bk{font-size:var(--text-xs);color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis}.ota-thread-list{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--ho-line)}.ota-thread-item{text-align:left;border:0;border-bottom:1px solid var(--ho-line);border-radius:0;background:var(--ho-surface);padding:10px 12px;cursor:pointer;font:inherit}.ota-thread-item:hover{background:var(--ho-muted)}.ota-thread-item.has-unread{box-shadow:inset 3px 0 0 var(--ho-p)}.ota-thread-item .row1{display:flex;align-items:center;gap:6px}.ota-thread-item .sender{font-weight:600;font-size:14px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ota-thread-item .ts{font-size:11px;color:var(--ho-t3);flex-shrink:0}.ota-thread-item .row2{display:flex;align-items:center;gap:6px;margin-top:2px}.ota-thread-item .preview{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--color-text-secondary)}.ota-thread-item.has-unread .preview{color:var(--color-text-primary);font-weight:var(--font-medium)}.ota-thread-item .unread-dot{flex-shrink:0;min-width:18px;height:18px;border-radius:9px;padding:0 5px;background:var(--color-error);color:#fff;font-size:11px;line-height:18px;text-align:center}.ota-thread-item .row3{margin-top:2px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.ota-thread-info{margin-top:1px;font-size:var(--text-xs);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ota-inline-btn{flex-shrink:0}.ota-inline-reply{display:flex;gap:6px;align-items:flex-end;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px dashed var(--color-divider)}.ota-inline-reply .ant-input{flex:1;min-width:0}.ota-inline-sent{margin-top:4px;font-size:var(--text-xs);color:var(--color-success, #16A34A)}.ota-msg-pane{display:flex;flex-direction:column;height:100%}.ota-msg-scroll{flex:1;overflow-y:auto;padding:2px 2px 8px}.ota-msg-bubble-row{display:flex;margin-bottom:8px}.ota-msg-bubble-row.in{justify-content:flex-start}.ota-msg-bubble-row.out{justify-content:flex-end}.ota-msg-bubble{max-width:82%;border-radius:10px;padding:6px 10px;font-size:var(--text-sm)}.ota-msg-bubble-row.in .ota-msg-bubble{background:var(--color-slate-100);color:var(--color-text-primary);border-bottom-left-radius:3px}.ota-msg-bubble-row.out .ota-msg-bubble{background:var(--color-primary);color:var(--color-text-on-primary);border-bottom-right-radius:3px}.ota-msg-bubble .content{white-space:pre-wrap;word-break:break-word}.ota-msg-bubble .meta{margin-top:2px;font-size:10px;opacity:.75;display:flex;gap:6px;align-items:center}.ota-msg-relay.ok{color:inherit}.ota-msg-relay.fail{font-weight:var(--font-semibold)}.ota-msg-replybar{display:flex;gap:6px;align-items:flex-end;padding-top:8px;border-top:1px solid var(--color-divider)}.ota-msg-replybar .ant-input{flex:1}.cal-waiting-count{margin-left:8px;padding:1px 8px;border-radius:999px;vertical-align:middle;background:var(--color-slate-100);color:var(--color-slate-600);font-size:var(--text-xs);font-weight:var(--font-medium)}.cal-waiting-empty{padding:32px 8px;text-align:center;color:var(--color-text-tertiary);font-size:var(--text-base)}.cal-waiting-list{display:flex;flex-direction:column}.cal-waiting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 6px;border-bottom:1px solid var(--color-divider)}.cal-waiting-row:last-child{border-bottom:0}.cal-waiting-info{display:flex;flex-direction:column;gap:2px;min-width:0}.cal-waiting-name{display:flex;align-items:center;gap:6px;min-width:0;font-weight:var(--font-semibold);color:var(--color-slate-800)}.cal-waiting-nametxt{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-waiting-name .cal-waiting-pay{flex:none}.cal-waiting-meta{font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-waiting-acts{display:flex;gap:6px;flex:0 0 auto}.cal-waiting-group+.cal-waiting-group{margin-top:10px}.cal-waiting-grouphd{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;background:var(--color-slate-50);border-radius:4px}.cal-waiting-groupn{min-width:18px;padding:0 5px;border-radius:9px;background:var(--color-slate-200);color:var(--color-slate-700);font-size:10px;text-align:center}.cal-waiting-pay{padding:0 5px;border-radius:999px;background:var(--color-slate-200);color:var(--color-slate-700);font-size:10px;font-weight:var(--font-bold)}.cal-waiting-pay.u{background:#fee2e2;color:#b91c1c}.cal-waiting-pay.p{background:#fef3c7;color:#92400e}.cal-waiting-pay.f{background:#dcfce7;color:#166534}.cal-waiting-pay.v{background:#e0e7ff;color:#3730a3}.cal-waiting-pay.o{background:#fae8ff;color:#86198f}.cal-assign-err{color:var(--color-error, #b91c1c);font-size:var(--text-xs)}@media(max-width:789px){.cal-toolbar>.toolbar-section{flex-shrink:1;min-width:0}.toolbar-section{flex-wrap:wrap}}.cal-search{position:relative;display:flex;align-items:center;gap:6px}.cal-search-box{display:inline-flex;align-items:center;gap:6px;height:32px;width:220px;padding:0 10px;border:1px solid var(--ho-line-strong);border-radius:8px;background:var(--ho-surface)}.cal-search-box:focus-within{border-color:var(--ho-p);box-shadow:0 0 0 3px #2563eb24}.cal-search-box .ico{font-size:12px;line-height:1;flex:none}.cal-search-input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:500 12.5px var(--ho-font-body);color:var(--ho-t1)}.cal-search-input::placeholder{color:var(--ho-t3)}.cal-search-input::-webkit-search-cancel-button{display:none}.cal-search-clear{flex:none;border:0;background:transparent;padding:0 2px;font-size:11px;line-height:1;color:var(--ho-t3);cursor:pointer}.cal-search-clear:hover{color:var(--ho-t1)}.cal-search-pop{position:absolute;top:36px;left:0;z-index:60;width:440px;max-width:calc(100vw - 32px);padding:4px;background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);box-shadow:0 10px 28px #0f172a29}.cal-search-hint{padding:8px 10px;font-size:12px;color:var(--ho-t3)}.cal-search-hint.err{color:var(--ho-danger, #dc2626)}.cal-search-row{display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:2px;width:100%;padding:6px 10px;text-align:left;border:0;border-radius:6px;background:transparent;font:inherit;color:var(--ho-t1);cursor:pointer}.cal-search-row:hover,.cal-search-row.active{background:var(--ho-muted)}.cal-search-row.locked{box-shadow:inset 3px 0 0 var(--ho-warn)}.cal-search-name{font-weight:700;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-search-pin{margin-left:4px;font-size:11px}.cal-search-status{align-self:center;font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:999px;background:var(--ho-muted);color:var(--ho-t2)}.cal-search-status.st-oc,.cal-search-status.st-od{background:var(--ho-room-oc);color:#fff}.cal-search-status.st-vc{background:var(--ho-room-reserved);color:#fff}.cal-search-status.st-cancelled{text-decoration:line-through}.cal-search-meta{grid-column:1 / -1;font-size:11.5px;color:var(--ho-t2)}.cal-search-src{grid-column:1 / -1;font-size:11px;color:var(--ho-t3)}.cal-search.locked .cal-search-box{width:170px}.cal-search-lock{display:inline-flex;align-items:center;height:32px;border:1px solid var(--ho-warn);border-radius:8px;background:var(--ho-warn-bg);overflow:hidden;max-width:200px}.cal-search-lockbtn,.cal-search-unlock{border:0;background:transparent;cursor:pointer;height:100%;font:600 12px var(--ho-font-body);color:var(--ho-warn-dark)}.cal-search-lockbtn{display:inline-flex;align-items:center;gap:4px;padding:0 8px;min-width:0}.cal-search-locktxt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-search-lockbtn:hover{background:#f59e0b2e}.cal-search-unlock{padding:0 8px;border-left:1px solid rgba(180,83,9,.25);font-size:11px}.cal-search-unlock:hover{background:#f59e0b2e}.cal-clip{display:inline-flex;align-items:center;height:32px;margin-left:6px;border:1px solid #3b82f6;border-radius:8px;background:#eff6ff;overflow:hidden;max-width:220px}.cal-clip-txt{display:inline-flex;align-items:center;gap:4px;padding:0 8px;min-width:0;font:600 12px var(--ho-font-body);color:#1d4ed8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-clip-x{border:0;background:transparent;cursor:pointer;height:100%;padding:0 8px;border-left:1px solid rgba(29,78,216,.25);font:600 11px var(--ho-font-body);color:#1d4ed8}.cal-clip-x:hover{background:#3b82f626}.calendar-scroll.has-focus .booking-bar:not(.focused){opacity:.45}.booking-bar.focused{outline:3px solid var(--ho-warn);outline-offset:1px;z-index:12;box-shadow:0 0 0 5px #f59e0b4d;animation:cal-focus-pulse 1.1s ease-in-out 3}@keyframes cal-focus-pulse{0%,to{box-shadow:0 0 0 5px #f59e0b4d}50%{box-shadow:0 0 0 10px #f59e0b14}}@media(max-width:789px){.cal-search-box{width:200px}.cal-search-pop{width:340px}}.today-root{font-size:13px;color:var(--ho-t1)}.today-root .canvas{display:block;min-width:0}.today-root .today-att{margin-bottom:12px}.today-root .today-att-den{font:600 14px var(--ho-font-body);color:var(--ho-t3)}.today-root .today-att-bad{color:var(--ho-bad);font-weight:700}.today-root .qa-bar{padding:8px 12px}.today-root .qa-bar .lbl{font:700 12px var(--ho-font-body);color:var(--ho-t2);margin-right:4px}.today-root .qa-bar .qa-room{width:110px}.today-root .qa-health{margin-left:auto;display:inline-flex;gap:6px}.today-root .qa-health button{border:0;cursor:pointer;font-family:inherit}.today-root .qa-health button:hover{filter:brightness(.96)}.today-root .qa-health button.on{outline:2px solid currentColor;outline-offset:1px}.today-root .qa-health-chip{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-6px 0 12px;padding:6px 12px;background:var(--ho-warn-bg);color:var(--ho-warn-dark);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);font:600 12px var(--ho-font-body)}.today-root .qa-health-chip .qa-health-chip-sub{color:var(--ho-t2);font-weight:500}.today-root .qa-health-chip .ho-btn{margin-left:auto}.today-root .qa-health-chip .ho-btn+.ho-btn{margin-left:0}.today-root .qa-card-strip{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);padding:8px 12px 10px;margin:-4px 0 12px;box-shadow:var(--ho-sh-card)}.today-root .qa-card-strip-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.today-root .qa-card-strip-title{font:700 12px var(--ho-font-body);color:var(--ho-t2)}.today-root .qa-credco-list,.qa-credco-list{display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}.qa-credco-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--ho-line);border-radius:var(--ho-r-sm, 6px);cursor:pointer;font-size:13px}.qa-credco-kind{font-size:11px;font-weight:700;color:var(--ho-t3);min-width:56px}.qa-credco-label{font-weight:600}.qa-credco-to{margin-left:auto;font-size:12px;color:var(--ho-t3)}.qa-credco-note{margin-top:8px;font-size:12px;color:var(--ho-t3)}.today-root .canvas-header{margin-bottom:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin}.today-root .canvas-header .sep{width:1px;height:20px;background:var(--ho-line)}.today-root .canvas-header .ho-seg>*{padding:4px 8px}.today-root .canvas-header .ho-hint{white-space:nowrap}.today-root .today-seg-bad{color:var(--ho-bad)}.today-root .today-tagbtn{border:0;cursor:pointer;font-family:inherit}.today-root .today-tagbtn:hover{filter:brightness(.96)}.today-root .home-star{font-size:15px;padding:0 6px}.today-root .home-star.on,.today-root .home-star:hover{color:#f59e0b}.today-root .canvas-body{min-width:0}.today-root .floor-block{margin-bottom:4px}.today-root .floor-header-inline{display:flex;align-items:center;gap:10px;margin:14px 0 8px}.today-root .floor-header-inline .label{font:700 13px var(--ho-font-num);background:var(--ho-ink);color:#fff;padding:3px 10px;border-radius:8px}.today-root .floor-header-inline .count{font-size:12px;color:var(--ho-t2)}.today-root .room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(212px,100%),1fr));gap:10px}.today-root .room-grid.rich{grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:12px}.today-root .room-grid.dense{grid-template-columns:repeat(auto-fill,minmax(min(124px,100%),1fr));gap:6px}.today-root .room-card{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:12px;overflow:hidden;box-shadow:var(--ho-sh-card);transition:transform .15s,box-shadow .15s;cursor:context-menu;display:flex;flex-direction:column;position:relative;-webkit-user-select:none;user-select:none}.today-root .room-card:hover{transform:translateY(-2px);box-shadow:var(--ho-sh-lift);z-index:1}.today-root .room-card.clickable{cursor:pointer}.today-root .room-card.locate-flash{animation:today-locate-pulse .9s ease-in-out 2}@keyframes today-locate-pulse{0%,to{box-shadow:0 0 #2563eb00}50%{box-shadow:0 0 0 4px #2563eb73}}.today-root .rc-band{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 12px;color:#fff;min-width:0}.today-root .room-card.available .rc-band{background:var(--ho-room-vc)}.today-root .room-card.available.dirty .rc-band{background:var(--ho-room-vd);color:var(--ho-room-vd-ink, #1a1f00)}.today-root .room-card.reserved .rc-band{background:var(--ho-room-reserved);color:var(--ho-room-reserved-ink, #fff)}.today-root .room-card.occupied .rc-band{background:var(--ho-room-oc);color:var(--ho-room-oc-ink, #fff)}.today-root .room-card.occupied.dirty .rc-band{background:var(--ho-room-od);color:var(--ho-room-od-ink, #fff)}.today-root .room-card.repair .rc-band{background:var(--ho-room-repair);color:var(--ho-room-repair-ink, #fff)}.today-root .room-card.locked .rc-band{background:var(--ho-room-locked);color:var(--ho-room-locked-ink, #fff)}.today-root .rc-room-no{font:700 20px/1 var(--ho-font-num);letter-spacing:-.02em}.today-root .rc-status{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:700;line-height:1;opacity:.92;margin-left:2px;padding:3px 4px;border-radius:5px;border:0;background:transparent;color:inherit;cursor:pointer;white-space:nowrap;font-family:inherit}.today-root .rc-status:hover{background:#ffffff2e;opacity:1}.today-root .room-card.available.dirty .rc-status:hover{background:#0000001a}.today-root .rc-status .rc-st-caret{font-size:9px;opacity:.75}.today-root .rc-payment{width:18px;height:18px;border-radius:50%;background:#fff;display:inline-grid;place-items:center;font:700 10px var(--ho-font-num);flex-shrink:0}.today-root .rc-payment.rc-payment-click{cursor:pointer}.today-root .rc-payment.rc-payment-click:hover{box-shadow:0 0 0 2px #ffffff8c}.today-root .payment-F{color:var(--ho-pay-paid)}.today-root .payment-P{color:var(--ho-pay-partial)}.today-root .payment-U{color:var(--ho-pay-unpaid)}.today-root .payment-O{color:var(--ho-pay-refund)}.today-root .payment-V{color:var(--ho-pay-vcc)}.today-root .rc-type-pill{margin-left:auto;font:700 10px var(--ho-font-num);background:#ffffff38;padding:2px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px}.today-root .room-card.available.dirty .rc-type-pill{background:#0000001f}.rc-stm-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;display:inline-block}.rc-stm-item{display:inline-flex;align-items:center;gap:8px;font-size:13px}.rc-stm-vc{color:var(--ho-room-vc)}.rc-stm-vd{color:var(--ho-room-vd)}.rc-stm-oc{color:var(--ho-room-oc)}.rc-stm-od{color:var(--ho-room-od)}.rc-stm-repair{color:var(--ho-room-repair)}.rc-stm-locked{color:var(--ho-room-locked)}.rc-stm-checkout{color:var(--ho-room-out)}.today-root .rc-body{padding:9px 12px 10px;display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.today-root .rc-g{font-weight:700;font-size:13px;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:18px}.today-root .rc-guest{overflow:hidden;text-overflow:ellipsis;min-width:0}.today-root .rc-lock{margin-left:auto;flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--ho-t3);box-shadow:0 0 0 2px var(--ho-surface)}.today-root .rc-lock.on{background:var(--ho-ok, #16A34A)}.today-root .rc-lock.off{background:var(--ho-bad, #DC2626)}.today-root .rc-lock.low{background:var(--ho-warn, #F59E0B)}.today-root .room-grid.dense .rc-lock{width:7px;height:7px}.today-root .rc-guest-next{color:var(--ho-t2);font-weight:600}.today-root .rc-price{font:700 14px var(--ho-font-num);color:var(--ho-ok-dark)}.today-root .rc-price small{font:600 11px var(--ho-font-body);color:var(--ho-t3)}.today-root .rc-tm{font-size:11.5px;color:var(--ho-t2);font-weight:600;min-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.today-root .rc-chips{display:flex;gap:5px;flex-wrap:wrap;min-height:20px}.today-root .rc-src{display:none}.today-root .rc-lock{background:#0f172a1a;color:var(--ho-t1, #0f172a);letter-spacing:.02em}.today-root .room-grid.rich .rc-src{display:inline-flex}.today-root .rc-cred{cursor:pointer}.today-root .rc-cred:hover{box-shadow:0 0 0 2px #16a34a2e}.today-root .rc-cred.rc-cred-linger:hover{box-shadow:0 0 0 2px #dc26262e}.today-root .rc-actions{display:flex;gap:5px;margin-top:auto}.today-root .rc-action-btn{flex:1;height:26px;border-radius:6px;border:1px solid var(--ho-line);font-size:11.5px;font-weight:700;background:#fff;color:var(--ho-t2);cursor:pointer;padding:0;white-space:nowrap;min-width:0;font-family:inherit;transition:background .12s,box-shadow .12s}.today-root .rc-action-btn:not(:disabled):hover{background:var(--ho-muted);border-color:var(--ho-line-strong)}.today-root .rc-action-btn:disabled{background:var(--ho-muted);color:var(--ho-t3);opacity:.7;cursor:not-allowed}.today-root .rc-action-btn.rc-hi-in{background:var(--ho-ok);border-color:var(--ho-ok);color:#fff}.today-root .rc-action-btn.rc-hi-in:not(:disabled):hover{background:var(--ho-ok-dark);border-color:var(--ho-ok-dark)}.today-root .rc-action-btn.rc-hi-out{background:var(--ho-bad);border-color:var(--ho-bad);color:#fff}.today-root .rc-action-btn.rc-hi-out:not(:disabled):hover{background:var(--ho-bad-dark);border-color:var(--ho-bad-dark)}.today-root .rc-action-btn.rc-more-btn{flex:0 0 28px;font-weight:700}.today-root .room-grid.rich .rc-band{padding:9px 12px 9px 14px}.today-root .room-grid.rich .rc-room-no{font-size:22px}.today-root .room-grid.rich .rc-body{padding:11px 14px 12px;gap:7px}.today-root .room-grid.rich .rc-g{font-size:14px}.today-root .room-grid.rich .rc-tm{font-size:12px}.today-root .room-grid.rich .rc-action-btn{height:28px;font-size:12px}.today-root .room-grid.dense .room-card{border-radius:8px}.today-root .room-grid.dense .rc-band{padding:5px 7px 5px 8px;gap:5px}.today-root .room-grid.dense .rc-room-no{font-size:15px}.today-root .room-grid.dense .rc-status{font-size:10px}.today-root .room-grid.dense .rc-payment{width:15px;height:15px;font-size:9px}.today-root .room-grid.dense .rc-type-pill{display:none}.today-root .room-grid.dense .rc-body{padding:5px 8px 6px;gap:2px}.today-root .room-grid.dense .rc-g{font-size:11px;min-height:14px}.today-root .room-grid.dense .rc-price{font-size:12px}.today-root .room-grid.dense .rc-tm{font-size:10px;min-height:13px}.today-root .room-grid.dense .rc-chips,.today-root .room-grid.dense .rc-actions{display:none}.today-root .legend-bar{margin-top:14px}.today-root .legend-item{display:inline-flex;align-items:center;gap:4px}.today-root .legend-circle{width:14px;height:14px;border-radius:50%;background:#fff;border:1px solid var(--ho-line);display:inline-grid;place-items:center;font:700 9px var(--ho-font-num)}.action-panel{position:fixed;background:var(--ho-surface);border:1px solid var(--ho-line-strong);border-radius:12px;box-shadow:var(--ho-sh-pop);width:460px;max-width:calc(100vw - 20px);max-height:92vh;overflow-y:auto;z-index:3000;font-size:12px;color:var(--ho-t1)}.action-panel .ap-header{background:var(--ho-surface);color:var(--ho-t1);padding:12px 14px 8px;border-radius:12px 12px 0 0}.action-panel .ap-header h3{margin:0 0 2px;font:700 15px var(--ho-font-num)}.action-panel .ap-header .ap-sub{font-size:12px;color:var(--ho-t2)}.action-panel .ap-section{padding:6px 12px 8px;border-top:1px solid var(--ho-muted-2)}.action-panel .ap-section-title{font:700 10px var(--ho-font-body);color:var(--ho-t4);letter-spacing:.1em;text-transform:uppercase;margin:0 0 5px;display:flex;align-items:center;gap:5px}.action-panel .ap-section-title:after{display:none}.action-panel .ap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.action-panel .ap-banner{background:var(--ho-ok-bg);border:1px solid #86efac;border-radius:6px;padding:6px 10px;font-size:11px;font-weight:600;color:var(--ho-ok-dark);text-align:center;display:flex;align-items:center;justify-content:center;gap:6px}.action-panel .ap-banner.unpaid{background:var(--ho-bad-bg);border-color:#fca5a5;color:var(--ho-bad-dark)}.action-panel .ap-banner.partial{background:var(--ho-warn-bg);border-color:#fcd34d;color:var(--ho-warn-dark)}.today-root .td-doors{display:flex;flex-direction:column;gap:12px;margin-top:8px}.today-root .td-doors-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.today-root .td-doors-bar .ho-note{flex:1}.today-root .td-doors-stub{text-align:center;color:var(--ho-t3);font-size:13px;padding:32px 0}.today-root .td-doors-group{overflow:hidden}.today-root .td-doors-sec.pub{background:#fff7ed;color:#ea580c;border-bottom:2px solid #EA580C}.today-root .td-doors-sec.oth{background:var(--ho-muted);color:var(--ho-t2);border-bottom:2px solid var(--ho-line-strong)}.today-root .td-doors-alias{color:var(--ho-t2);font-size:12px}.today-root .td-doors-empty{color:var(--ho-t3);font-style:italic;font-size:12px}.today-root .td-doors-group .ant-table-content{overflow-x:auto}@media(max-width:1550px){.today-root .canvas-header{flex-wrap:wrap}}.th-layout{margin:0 calc(-1 * var(--ho-page-px)) calc(-1 * var(--ho-page-py));height:calc(100vh - var(--ho-topnav-h) - var(--ho-subnav-h));display:flex;overflow:hidden}.th-rail{width:212px;min-width:212px;flex-shrink:0;background:var(--ho-surface);border-right:1px solid var(--ho-line);padding:14px 10px 20px;color:var(--ho-t1);overflow-y:auto}.th-grp{font:700 11px var(--ho-font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--ho-t3);padding:14px 10px 6px}.th-grp:first-child{padding-top:0}.th-it{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;font-size:14px;font-weight:500;color:var(--ho-t1);text-decoration:none}.th-it:hover:not(.active){background:var(--ho-muted)}.th-it.active{background:var(--ho-p-50);color:var(--ho-p-dark);font-weight:600;box-shadow:inset 3px 0 0 var(--ho-p)}.th-it.soon{opacity:.5}.th-it .ico{width:18px;display:inline-flex;justify-content:center;flex-shrink:0;color:var(--ho-t3);font-size:16px}.th-it.active .ico{color:var(--ho-p)}.th-main{flex:1;min-width:0;overflow:auto;padding:14px 18px 30px;display:flex;flex-direction:column;gap:12px;background:var(--ho-canvas)}.th-main>*{flex-shrink:0}.th-main.flush{display:block}.th-assist{text-align:center;padding:50px 20px;background:var(--ho-surface);border-radius:var(--ho-r-md);border:1px solid var(--ho-line);box-shadow:var(--ho-sh-card)}.th-assist .big{font-size:44px;margin-bottom:10px}.th-assist h3{margin:0 0 6px;font:700 16px var(--ho-font-num)}.th-assist p{margin:0 auto;max-width:560px;color:var(--ho-t2);font-size:12.5px}@media(max-width:1100px){.th-layout{display:block;height:auto;overflow:visible}.th-rail{width:auto;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;padding:8px 10px;overflow-y:visible;border-right:0;border-bottom:1px solid var(--ho-line)}.th-it.active{box-shadow:inset 0 -3px 0 var(--ho-p)}.th-grp,.th-grp:first-child{padding:4px 8px}.th-main{overflow:visible}}.order-list-page{color:var(--ho-t1)}.olp-card{overflow:hidden}.olp-hd{gap:12px}.olp-search-ico{color:var(--ho-t4, var(--ho-t3))}.olp-chips{display:flex;gap:6px;flex-wrap:wrap}.olp-oid{font:600 12.5px var(--ho-font-num);color:var(--ho-t2);letter-spacing:-.01em;white-space:nowrap}.olp-ref{font:500 12.5px var(--ho-font-num);color:var(--ho-t2);font-variant-numeric:tabular-nums}.olp-who{display:flex;align-items:center;gap:9px}.olp-who b{font-weight:700}.olp-sub{display:block;font-size:11.5px;color:var(--ho-t3);margin-top:1px;white-space:nowrap}.olp-room{font-weight:700;font-size:14px}.olp-rtype{overflow:hidden;text-overflow:ellipsis;max-width:126px}.olp-hint{font-size:12px;color:var(--ho-t3)}.olp-stay{font:600 12.5px var(--ho-font-num);font-variant-numeric:tabular-nums;white-space:nowrap}.olp-stay small{color:var(--ho-t3);font-weight:500;margin:0 4px}.olp-src{display:inline-block;font:700 10px var(--ho-font-num);letter-spacing:.04em;background:var(--ho-muted-2);color:var(--ho-t2);padding:3px 5px;border-radius:4px;line-height:1;white-space:nowrap}.olp-src.bk{background:#e3ecfa;color:var(--ho-p-dark)}.olp-src.exp{background:var(--ho-warn-bg);color:var(--ho-warn-dark)}.olp-src.agd{background:#fce7f3;color:#be185d}.olp-src.abb{background:var(--ho-bad-bg);color:var(--ho-bad-dark)}.olp-due{color:var(--ho-due);font-family:var(--ho-font-num);font-variant-numeric:tabular-nums;font-weight:600}.olp-acts{display:inline-flex;gap:2px;justify-content:flex-end;white-space:nowrap;align-items:center;opacity:.6}.olp-card .ant-table-tbody>tr:hover .olp-acts{opacity:1}.olp-acts .olp-act-p{color:var(--ho-p-dark);font-weight:600}.olp-card .ant-table-wrapper .ant-table-thead>tr>th{background:var(--ho-muted);padding:9px 12px}.olp-card .ant-table-wrapper .ant-table-tbody>tr>td{padding:10px 12px}.olp-card .ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f8fafe}.olp-card .ant-table-wrapper .ant-pagination{margin:0;padding:10px 12px;border-top:1px solid var(--ho-line);font-size:12px;color:var(--ho-t3)}.olp-card .ant-table-wrapper .ant-pagination .ant-pagination-total-text{margin-right:auto;height:auto;line-height:normal}.olp-pager-l{display:inline-flex;align-items:center;gap:6px}.olp-pager-sep{color:var(--ho-t4, var(--ho-t3))}.olp-card .ant-table-content{overflow-x:auto}.rates-layout.ho-with-rail{margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));min-height:0;overflow:hidden}.rates-layout>.rates-sidebar{overflow-y:auto}.rates-main{min-width:0;overflow:auto;padding:var(--ho-page-py) var(--ho-page-px) 40px;display:flex;flex-direction:column;gap:var(--space-3)}.rates-main>.ho-card{flex-shrink:0;overflow:hidden}.rates-main .ho-card>.hd{cursor:pointer;-webkit-user-select:none;user-select:none;flex-wrap:wrap}.rates-main .ho-card>.hd .head-desc{font-size:var(--text-xs);color:var(--color-text-tertiary)}.rates-main .ho-card>.hd .head-extras{margin-left:auto;display:flex;gap:var(--space-2);align-items:center}.rates-main .ho-card>.hd .arrow{font-size:10px;color:var(--color-text-tertiary);transition:transform .15s}.rates-main .ho-card>.hd .arrow.open{transform:rotate(90deg)}.rates-main .ho-card.collapsed>.bd{display:none}.rates-stub{padding:var(--space-12);text-align:center;color:var(--color-text-tertiary);font-style:italic}.grid-nav{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.grid-nav .date-range{font-size:13px;font-weight:var(--font-semibold);min-width:180px;text-align:center}.field-toggles{display:flex;gap:4px;align-items:center;margin-left:var(--space-3);padding-left:var(--space-3);border-left:1px solid var(--color-divider);flex-wrap:wrap}.field-toggles .lbl{font-size:10px;color:var(--ho-t2);margin-right:4px;text-transform:uppercase;letter-spacing:.04em}.grid-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ari-table{border-collapse:collapse;table-layout:fixed;font-size:12px;min-width:1100px}.ari-table th,.ari-table td{border:1px solid var(--color-divider);text-align:center;vertical-align:middle}.ari-table thead th{background:var(--color-surface-muted);padding:6px 2px;font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);white-space:nowrap;height:40px}.ari-table thead th .hday{display:block;font-size:11px;font-weight:var(--font-bold);line-height:1.2}.ari-table thead th .hdate{display:block;font-size:10px;font-weight:var(--font-normal);color:var(--color-text-tertiary);line-height:1.2}.ari-table thead th.wkend{background:var(--color-warning-light)}.ari-table thead th.wkend .hday{color:var(--color-warning-dark)}.ari-table thead th.today-col{background:var(--color-primary-50);border-bottom:2px solid var(--color-primary)}.ari-table thead th.today-col .hday{color:var(--color-primary)}.ari-table thead th.room-col{text-align:left;padding-left:12px;position:sticky;left:0;z-index:15;background:var(--color-surface-muted)}.ari-table .rt-hdr td{background:var(--color-primary-50);font-weight:var(--font-bold);color:var(--color-primary-dark);text-align:left;padding:6px 12px;font-size:var(--text-md);border-top:2px solid var(--color-primary-200);border-bottom:1px solid var(--color-primary-200)}.ari-table .rt-hdr td .rt-sub{font-size:10px;font-weight:var(--font-normal);color:var(--color-text-tertiary);margin-left:8px}.ari-table .rt-plan-picker td{background:var(--color-primary-50);padding:6px 12px 8px 28px;text-align:left;border-top:none;border-bottom:1px solid var(--color-primary-200)}.rp-picker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px}.rp-picker .rp-label{color:var(--color-primary-dark);font-weight:var(--font-semibold);font-size:10px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}.rp-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-semibold);cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.rp-chip:hover{background:var(--color-surface-muted)}.rp-chip.on{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.rp-chip.on.default-plan{background:var(--color-primary-dark)}.rp-chip .tag{font-size:9px;font-weight:var(--font-bold);padding:0 4px;background:#ffffff40;border-radius:2px}.rp-chip .adj{font-family:var(--font-mono);font-size:10px;opacity:.85}.ari-table .fld-row td:first-child{text-align:left;padding:3px 10px 3px 22px;font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);position:sticky;left:0;z-index:5;background:var(--color-surface);white-space:nowrap}.ari-table .fld-row td.dc{padding:1px 2px}.ari-table .fld-row td.dc input{width:100%;border:none;background:transparent;text-align:center;font-size:12px;padding:4px 0;outline:none;font-family:var(--font-mono)}.ari-table .fld-row td.dc input:focus{background:var(--color-primary-50)}.ari-table .fld-row td.dc input[type=number]{-moz-appearance:textfield;appearance:textfield}.ari-table .fld-row td.dc input[type=number]::-webkit-inner-spin-button,.ari-table .fld-row td.dc input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ari-table .fld-row td.dc input.changed{color:var(--color-warning-dark);background:var(--color-warning-light);font-weight:var(--font-bold)}.ari-table .fld-row td.dc.wkend{background:#fef3c74d}.ari-table .fld-row td.dc.today-col{background:#eff6ff80}.ari-table .fld-row.rate-row td.dc input{font-weight:var(--font-bold);font-size:13px;color:var(--color-text-primary)}.ari-table .fld-row.avail-row td.dc{cursor:pointer;position:relative}.ari-table .fld-row.avail-row td.dc:hover{outline:2px solid var(--color-primary);outline-offset:-2px;z-index:2}.ari-table .fld-row.avail-row td.dc input{pointer-events:none}.ari-table .fld-row.avail-row td.dc input.zero{color:var(--color-error-dark);background:#fee2e266}.ari-table .fld-row.avail-row td.dc input.low{color:var(--color-warning-dark)}.ari-table .fld-row.avail-row td.dc input.ok{color:var(--color-success-dark)}.ari-table .fld-row.avail-row td.dc.has-override:after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;background:var(--color-warning);border-radius:50%}.ari-table .fld-row.availmax-row td.dc.ro{cursor:default}.ari-table .fld-row.availmax-row td.dc.ro:hover{outline:none}.ari-table .fld-row.availmax-row td.dc input.max{color:var(--color-text-tertiary);background:var(--color-surface-muted, var(--color-surface-subtle))}.ari-table .fld-row.avail-row td.dc input.editable{pointer-events:auto;cursor:text}.ari-table .fld-row.avail-row td.dc input.editable:focus{outline:2px solid var(--color-primary);outline-offset:-2px;background:var(--color-surface)}.ari-table .fld-row.avail-row td.dc.has-cap:after{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;background:var(--color-primary);border-radius:50%}.ari-table .fld-row.rate-row.derived td:first-child{color:var(--color-text-tertiary);font-weight:var(--font-medium)}.ari-table .fld-row.rate-row.derived td:first-child .lock-ico{color:var(--color-text-tertiary);font-size:10px}.ari-table .fld-row.rate-row.derived td:first-child .adj-tag{font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary);padding:0 4px;background:var(--color-surface-muted);border-radius:2px;margin-left:2px}.ari-table .fld-row.rate-row.derived td.dc{background:var(--color-surface-muted);cursor:not-allowed}.ari-table .fld-row.rate-row.derived td.dc input{color:var(--color-text-tertiary);font-weight:var(--font-medium);pointer-events:none;cursor:not-allowed}.ari-table .fld-row.rate-row.default-plan td:first-child .plan-tag{display:inline-block;padding:1px 5px;background:var(--color-primary);color:var(--color-text-on-primary);font-size:9px;font-weight:var(--font-bold);border-radius:3px;margin-left:4px}.ari-table .fld-row.rate-row td.dc{position:relative}.ari-table .fld-row.rate-row td.dc.src-manual:after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;background:var(--color-warning);border-radius:50%;pointer-events:none}.ari-table .fld-row.rate-row td.dc.src-smart:after{content:"";position:absolute;top:2px;right:2px;width:5px;height:5px;background:var(--color-primary);border-radius:50%;pointer-events:none}.ari-table .fld-row.rate-row td.dc .rate-restore{position:absolute;left:1px;bottom:0;right:1px;display:flex;align-items:center;justify-content:center;gap:2px;opacity:0;transition:opacity .12s;font-size:9px;line-height:1.2;color:var(--color-primary);background:var(--color-surface);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:3}.ari-table .fld-row.rate-row td.dc:hover .rate-restore,.ari-table .fld-row.rate-row td.dc:focus-within .rate-restore{opacity:.95}.ari-table .fld-row.rate-row td.dc .rate-restore:hover{text-decoration:underline;color:var(--color-primary-dark)}.ari-table .fld-row.rate-row td.dc .rate-restore .rr-ico{font-size:10px}.rp-chip .chip-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;flex-shrink:0}.rp-chip.locked{cursor:default;opacity:.95}.rp-chip.locked input{cursor:default}.ari-table .plan-sub td{background:var(--color-surface-muted);text-align:left;padding:4px 12px 4px 22px;font-size:11px;font-weight:var(--font-bold);border-top:1px dashed var(--color-border-strong);color:var(--color-text-primary);position:sticky;left:0;z-index:5}.ari-table .plan-sub .ps-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}.ari-table .plan-sub .ps-rate{font-weight:var(--font-normal);color:var(--color-text-tertiary);margin-left:6px;font-family:var(--font-mono)}.ari-table .plan-sub .def-badge{display:inline-block;padding:1px 5px;background:var(--color-primary);color:var(--color-text-on-primary);font-size:9px;font-weight:var(--font-bold);border-radius:3px;margin-left:6px}.ari-table .plan-sub .derived-badge{display:inline-block;padding:1px 5px;background:var(--color-warning);color:var(--color-text-on-primary);font-size:9px;font-weight:var(--font-bold);border-radius:3px;margin-left:6px}.ari-table .plan-sub .lock-ico{font-size:10px;color:var(--color-text-tertiary);margin-right:4px}.ari-table .fld-row.minstay-row td.dc input{color:var(--color-primary);font-weight:var(--font-semibold)}.ari-table .fld-row.maxstay-row td.dc input{color:var(--color-text-secondary);font-weight:var(--font-semibold)}.ari-table .fld-row.bool-row td.dc{padding:0}.ari-table .fld-row.bool-row td.dc .bool-cell{display:flex;align-items:center;justify-content:center;cursor:pointer;height:28px;font-size:14px;-webkit-user-select:none;user-select:none}.ari-table .fld-row.bool-row td.dc .bool-cell.on{color:var(--color-error);font-weight:var(--font-bold)}.ari-table .fld-row.bool-row td.dc .bool-cell.off{color:var(--color-success);opacity:.45}.ari-table .fld-row.bool-row td.dc.changed{background:var(--color-warning-light)}.ari-table .fld-row.stopsell-row td.dc.stopped{background:var(--color-error-light)}.ari-table .fld-row.stopsell-row td.dc.stopped .bool-cell{color:var(--color-error)}.bulk-controls{display:flex;gap:var(--space-4);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--space-3)}.bf-field{display:flex;flex-direction:column;gap:3px}.bf-field>label{font-size:10px;font-weight:var(--font-semibold);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.04em}.bf-field>input[type=date]{padding:6px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:12px;outline:none;background:var(--color-surface);font-family:inherit}.day-checks{display:flex;gap:2px}.presets{display:flex;gap:4px;flex-wrap:wrap}.bulk-table{border-collapse:collapse;width:100%;font-size:12px}.bulk-table th,.bulk-table td{border:1px solid var(--color-divider);padding:5px 6px;text-align:center}.bulk-table thead th{background:var(--color-surface-muted);font-weight:var(--font-semibold);color:var(--color-text-secondary);font-size:11px;white-space:nowrap}.bulk-table .rt-name-col{text-align:left;font-weight:var(--font-semibold);color:var(--color-primary-dark);min-width:160px;padding:5px 10px}.bulk-table .fill-row td{background:var(--color-primary-50)}.bulk-table .fill-row.off td{background:var(--color-surface);color:var(--color-text-tertiary)}.bulk-table .fill-row.off td:not(.rt-name-col){opacity:.55}.fill-btn{padding:3px 10px;background:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-bold);color:var(--color-text-on-primary);cursor:pointer;font-family:inherit}.bulk-actions{display:flex;gap:var(--space-2);align-items:center;margin-top:var(--space-3)}.rates-main :is(.ho-actbar,.head-extras) .status-dot{width:8px;height:8px;border-radius:50%}.rates-main :is(.ho-actbar,.head-extras) .status-dot.idle{background:var(--color-success)}.rates-main :is(.ho-actbar,.head-extras) .status-dot.pending{background:var(--color-warning);animation:rsPulse 1.6s ease-in-out infinite}@keyframes rsPulse{0%,to{box-shadow:0 0 0 4px #f59e0b26}50%{box-shadow:0 0 0 8px #f59e0b0d}}.rates-main :is(.ho-actbar,.head-extras) .status-text{font-size:13px;font-weight:var(--font-semibold)}.rates-main :is(.ho-actbar,.head-extras) .change-count{padding:2px 8px;background:var(--color-warning-light);color:var(--color-warning-dark);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-bold)}.rates-main :is(.ho-actbar,.head-extras) .api-note{margin-left:auto;font-size:11px;color:var(--color-text-tertiary);display:inline-flex;align-items:center;gap:4px}.rm-breakdown{display:flex;flex-direction:column;border:1px solid var(--color-divider);border-radius:var(--radius-sm);overflow:hidden}.rm-line{display:flex;justify-content:space-between;padding:8px 12px;font-size:12px;border-bottom:1px solid var(--color-divider);color:var(--color-text-secondary)}.rm-line:last-child{border-bottom:none;background:var(--color-primary-50);font-weight:var(--font-bold);color:var(--color-primary-dark)}.rm-line.adj{color:var(--color-warning-dark)}.rm-line .v{font-family:var(--font-mono);font-weight:var(--font-bold);color:var(--color-text-primary)}.rm-line:last-child .v{color:var(--color-primary-dark)}.rm-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary);cursor:pointer}.ov-controls{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.ov-controls button{background:var(--color-surface);border:1px solid var(--color-border-strong);padding:5px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:var(--font-semibold);cursor:pointer;font-family:inherit}.ov-controls button.today{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.ov-controls .date-range{font-size:13px;font-weight:var(--font-semibold);min-width:160px;text-align:center}.ov-legend{display:flex;gap:10px;align-items:center;margin-left:auto;font-size:11px;color:var(--color-text-secondary);flex-wrap:wrap}.ov-legend .lg-item{display:inline-flex;align-items:center;gap:4px}.ov-legend .lg-cell{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-bold)}.ov-grid-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ov-table{border-collapse:collapse;table-layout:fixed;font-size:12px;min-width:1100px;width:100%}.ov-table th,.ov-table td{border:1px solid var(--color-divider);text-align:center;vertical-align:middle}.ov-table thead th{background:var(--color-surface-muted);padding:6px 2px;font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);height:40px;white-space:nowrap}.ov-table thead th .hday{display:block;font-size:11px;font-weight:var(--font-bold)}.ov-table thead th .hdate{display:block;font-size:10px;color:var(--color-text-tertiary)}.ov-table thead th.wkend{background:var(--color-warning-light)}.ov-table thead th.today-col{background:var(--color-primary-50);border-bottom:2px solid var(--color-primary)}.ov-table thead th.plan-col{text-align:left;padding-left:12px;position:sticky;left:0;z-index:15;background:var(--color-surface-muted)}.ov-table .rt-hdr td{background:var(--color-primary-50);font-weight:var(--font-bold);color:var(--color-primary-dark);text-align:left;padding:6px 12px;border-top:2px solid var(--color-primary-200)}.ov-table .rt-hdr td .rt-sub{font-size:10px;font-weight:400;color:var(--color-text-tertiary);margin-left:8px}.ov-table .plan-row td:first-child{text-align:left;padding:4px 10px 4px 18px;position:sticky;left:0;z-index:5;background:var(--color-surface)}.ov-table .plan-name{font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);display:flex;align-items:center;gap:6px;white-space:nowrap}.ov-table .plan-tag{font-size:8px;font-weight:var(--font-bold);padding:1px 4px;background:var(--color-primary);color:var(--color-text-on-primary);border-radius:2px}.ov-table .plan-tag.derived{background:var(--color-slate-300);color:var(--color-slate-700)}.ov-table td.cell{padding:2px;cursor:pointer}.ov-table td.cell:hover{outline:2px solid var(--color-primary);outline-offset:-2px}.ov-cell-content{display:flex;align-items:center;justify-content:center;gap:3px;min-height:24px}.ov-table td.cell.none .ov-cell-content{color:var(--color-text-tertiary)}.ov-table td.cell.wkend{background:#fef3c74d}.ov-table td.cell.today-col{background:#eff6ff80}.ov-table td.cell.stopsell{background:var(--color-error-light)}.ms-pill{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--color-primary-50);color:var(--color-primary-dark);border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-bold)}.ov-flags{display:inline-flex;gap:2px}.badge-cta,.badge-ctd{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:3px;font-size:9px;font-weight:var(--font-bold);color:var(--color-text-on-primary)}.badge-cta{background:var(--color-warning)}.badge-ctd{background:var(--color-error)}.stop-ico{font-size:11px}.mode-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-3)}.mode-card{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;display:flex;flex-direction:column;gap:6px}.mode-card:hover{border-color:var(--color-primary-300)}.mode-card.selected{border-color:var(--color-primary);background:var(--color-primary-50)}.mc-radio{width:16px;height:16px;border:2px solid var(--color-border-strong);border-radius:50%;position:absolute;top:12px;right:12px}.mode-card.selected .mc-radio{border-color:var(--color-primary);background:radial-gradient(circle,var(--color-primary) 40%,transparent 45%)}.mc-title{font-weight:var(--font-bold);font-size:var(--text-md);display:flex;align-items:center;gap:6px}.mc-title .rec{font-size:9px;padding:1px 5px;background:var(--color-success);color:var(--color-text-on-primary);border-radius:3px}.mc-title .danger-tag{font-size:9px;padding:1px 5px;background:var(--color-error);color:var(--color-text-on-primary);border-radius:3px}.mc-desc{font-size:11px;color:var(--color-text-secondary);line-height:1.5}.mc-flow{display:flex;flex-direction:column;gap:2px;font-size:10px;color:var(--color-text-tertiary);border-top:1px dashed var(--color-divider);padding-top:6px;margin-top:4px}.rt-col{display:flex;align-items:center;gap:6px}.rt-col .rt-code{font-family:var(--font-mono);font-weight:var(--font-bold);color:var(--color-primary)}.rt-col .rt-name{color:var(--color-text-secondary)}.rt-col .rt-count{font-size:10px;color:var(--color-text-tertiary);margin-left:4px}.rt-code-lg{font-family:var(--font-mono);font-weight:var(--font-bold);color:var(--color-primary);font-size:var(--text-lg);margin-right:8px}.rt-zh{color:var(--color-text-secondary);font-weight:var(--font-normal);font-size:var(--text-md)}.head-meta{font-size:11px;color:var(--color-text-tertiary);margin-left:var(--space-2)}.plan-row{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:8px}.plan-row.is-default{border-color:var(--color-primary);background:var(--color-primary-50)}.plan-name{min-width:200px}.plan-name .title{display:block;font-weight:var(--font-semibold);font-size:var(--text-md)}.plan-name .code{font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary)}.plan-badges{display:flex;gap:4px;flex-wrap:wrap;flex:1}.plan-rate{text-align:right;min-width:120px}.plan-rate .amount{display:block;font-family:var(--font-mono);font-weight:var(--font-bold);font-size:var(--text-md)}.plan-rate .relation{font-size:10px;color:var(--color-text-tertiary)}.plan-rate .relation.derived{color:var(--color-warning-dark)}.plan-actions{display:flex;gap:6px}.rates-placeholder{padding:60px 20px;text-align:center;background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary)}.rates-placeholder .ph-ico{font-size:48px;margin-bottom:var(--space-2);opacity:.5}.rates-placeholder .ph-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:6px}.rates-placeholder .ph-desc{font-size:var(--text-sm);max-width:480px;margin:0 auto}.rates-stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.rates-stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--ho-shadow-card);padding:12px 14px;display:flex;flex-direction:column;gap:4px}.rates-stat-card.highlight{background:var(--color-primary-50);border-color:var(--color-primary-200)}.rates-stat-card.green{background:var(--color-success-light);border-color:#bbf7d0}.rates-stat-card.orange{background:var(--color-warning-light);border-color:#fcd34d}.rates-stat-card .stat-label{font-size:10px;font-weight:var(--font-semibold);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.04em}.rates-stat-card .stat-value{font-size:22px;font-weight:var(--font-bold);color:var(--color-text-primary);font-family:var(--font-mono);letter-spacing:-.02em;line-height:1.1}.rates-stat-card.highlight .stat-value{color:var(--color-primary-dark)}.rates-stat-card.green .stat-value{color:var(--color-success-dark)}.rates-stat-card.orange .stat-value{color:var(--color-warning-dark)}.rates-stat-card .stat-sub{font-size:11px;color:var(--color-text-tertiary)}.rates-comp-toolbar .group{display:flex;align-items:center;gap:var(--space-2)}.rates-comp-toolbar .group>label{font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary)}.rates-tb-divider{width:1px;height:22px;background:var(--color-divider)}.rates-chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rates-chip-row .rates-chip-label{font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);margin-right:4px}.rates-comp-action-bar .label{font-size:12px;color:var(--color-primary-dark)}.rates-comp-action-bar .label strong{font-weight:var(--font-bold)}.rates-comp-grid-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.rates-comp-table{border-collapse:collapse;width:100%;font-size:12px;min-width:900px}.rates-comp-table thead th{background:var(--color-surface-muted);padding:8px 6px;font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);text-align:center;white-space:nowrap}.rates-comp-table thead th.hotel-col{text-align:left;padding-left:12px;min-width:180px;position:sticky;left:0;z-index:5;background:var(--color-surface-muted)}.rates-comp-table thead th.wkend{background:var(--color-warning-light)}.rates-comp-table thead th.wkend .dow{color:var(--color-warning-dark)}.rates-comp-table thead th.today-col{background:var(--color-primary-50);border-bottom:2px solid var(--color-primary)}.rates-comp-table thead th .dow{display:block;font-weight:var(--font-bold);font-size:11px}.rates-comp-table thead th .dmy{display:block;font-size:10px;color:var(--color-text-tertiary);font-weight:var(--font-normal)}.rates-comp-table tbody td{padding:6px 8px;border-bottom:1px solid var(--color-divider);text-align:center;vertical-align:middle;font-family:var(--font-mono)}.rates-comp-table tbody td.hotel-cell{text-align:left;padding-left:12px;font-family:var(--font-sans);font-size:12px;font-weight:var(--font-semibold);position:sticky;left:0;z-index:5;background:var(--color-surface)}.rates-comp-table tbody td.wkend{background:#fef3c740}.rates-comp-table tbody td.today-col{background:#eff6ff66}.rates-comp-table tbody tr.my-row td.hotel-cell{background:var(--color-primary-50);color:var(--color-primary-dark)}.rates-comp-table tbody tr.my-row td{background:#eff6ff4d}.rates-comp-table tbody tr.my-row td.wkend{background:#eff6ff80}.rates-comp-table tbody tr.my-row td.today-col{background:#dbeafe8c}.rates-comp-table tbody tr.my-row .my-tag{display:inline-flex;padding:1px 5px;background:var(--color-primary);color:var(--color-text-on-primary);font-size:9px;font-weight:var(--font-bold);border-radius:3px;margin-left:6px;letter-spacing:.04em}.rates-comp-table tbody tr.avg-row{font-style:italic;color:var(--color-text-secondary)}.rates-comp-table tbody tr.avg-row td{border-top:1px dashed var(--color-border-strong);border-bottom:1px dashed var(--color-border);background:var(--color-surface-muted)}.rates-comp-table tbody tr.avg-row td.hotel-cell{font-style:normal;font-weight:var(--font-semibold);color:var(--color-text-secondary)}.rates-comp-rate-input{width:60px;padding:4px 6px;text-align:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;font-weight:var(--font-bold);background:var(--color-surface);outline:none;color:var(--color-text-primary)}.rates-comp-rate-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1f}.rates-comp-rate-input.changed{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.comp-price{display:inline-block;padding:2px 6px;border-radius:var(--radius-sm);font-weight:var(--font-semibold)}.comp-price.lowest{color:var(--color-success-dark);background:#bbf7d059}.comp-price.highest{color:var(--color-error-dark);background:#fecaca59}.comp-diff{display:block;font-size:9px;font-weight:var(--font-normal);color:var(--color-text-tertiary);margin-top:1px}.comp-diff.pos{color:var(--color-error-dark)}.comp-diff.neg{color:var(--color-success-dark)}.apply-suggestion{display:inline-block;padding:1px 5px;margin-top:2px;background:var(--color-primary-50);color:var(--color-primary);font-size:9px;font-weight:var(--font-bold);border-radius:3px;cursor:pointer;border:1px solid var(--color-primary-200)}.apply-suggestion:hover{background:var(--color-primary);color:var(--color-text-on-primary)}.rates-comp-legend,.rates-hist-legend{font-size:11px;color:var(--color-text-tertiary);margin:0;padding:0 8px}.rates-copy-bar{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;background:var(--color-warning-light);border:1px solid #FCD34D;border-radius:var(--radius-sm)}.rates-copy-bar .label{font-size:12px;color:var(--color-warning-dark);flex:1}.rates-copy-bar .label strong{font-weight:var(--font-bold)}.rates-hist-grid-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.rates-hist-table{border-collapse:collapse;width:100%;font-size:12px;min-width:1000px}.rates-hist-table thead .zone-label{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:11px;font-weight:var(--font-bold)}.rates-hist-table thead .zone-label.hist{background:var(--color-warning-light);color:var(--color-warning-dark)}.rates-hist-table thead .zone-label.curr{background:var(--color-primary-50);color:var(--color-primary-dark)}.rates-hist-table thead th{background:var(--color-surface-muted);padding:0;border-bottom:1px solid var(--color-border);text-align:center;white-space:nowrap}.rates-hist-table thead th.zone-header{padding:0}.rates-hist-table thead th.date-header{padding:6px 4px;font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary)}.rates-hist-table thead th.date-header.hist-zone{background:#fef3c766}.rates-hist-table thead th.date-header.curr-zone{background:#eff6ff66}.rates-hist-table thead th.date-header.wkend.hist-zone{background:#fed7aa80}.rates-hist-table thead th.date-header.wkend.curr-zone{background:#bfdbfe66}.rates-hist-table thead th.sticky-room{text-align:left;padding-left:12px;min-width:130px;position:sticky;left:0;z-index:5;background:var(--color-surface-muted)}.rates-hist-table thead th .dow{display:block;font-weight:var(--font-bold);font-size:11px}.rates-hist-table thead th .dmy{display:block;font-size:10px;color:var(--color-text-tertiary);font-weight:var(--font-normal)}.rates-hist-table tbody td{padding:6px 8px;border-bottom:1px solid var(--color-divider);text-align:center;vertical-align:middle;font-family:var(--font-mono)}.rates-hist-table tbody td.sticky-room{text-align:left;padding-left:12px;font-family:var(--font-sans);font-weight:var(--font-semibold);position:sticky;left:0;z-index:5;background:var(--color-surface)}.rates-hist-table tbody td.sticky-room .rt-code{color:var(--color-primary);font-family:var(--font-mono);font-weight:var(--font-bold)}.rates-hist-table tbody td.sticky-room .rt-name{font-size:11px;color:var(--color-text-secondary);font-weight:var(--font-normal)}.rates-hist-table tbody td.hist-zone{background:#fef3c72e;color:var(--color-text-secondary)}.rates-hist-table tbody td.hist-zone.wkend{background:#fed7aa40}.rates-hist-table tbody td.curr-zone{background:#eff6ff33}.rates-hist-table tbody td.curr-zone.wkend{background:#bfdbfe40}.rates-hist-table tbody td.curr-zone.today-col{background:#dbeafe73}.rates-hist-table tbody td.zone-sep{width:4px;background:var(--color-border-strong);padding:0!important}.rates-hist-table .hist-price{display:inline-block;padding:1px 4px;color:var(--color-text-secondary);font-size:12px}.rates-hist-rate-input{width:60px;padding:4px 6px;text-align:center;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:12px;font-weight:var(--font-bold);background:var(--color-surface);outline:none;color:var(--color-text-primary)}.rates-hist-rate-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1f}.rates-hist-rate-input.changed{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.rates-comp-tab,.rates-hist-tab{display:flex;flex-direction:column;gap:var(--space-3)}.rates-mgr-list{list-style:none;padding:0;margin:0}.rates-mgr-list li{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:6px;background:var(--color-surface)}.rates-mgr-list li:hover{background:var(--color-surface-muted)}.rates-mgr-list .name{flex:1;font-weight:var(--font-medium)}.rates-mgr-list .tag{font-size:10px;padding:2px 6px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary-dark)}.rates-mgr-list .addr{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.rates-mgr-list .info{flex:1}.rates-mgr-results li{background:var(--color-primary-50)}.rates-comp-source-note{margin:4px 12px 8px;padding:4px 10px;font-size:11px;color:var(--color-text-tertiary);line-height:1.5;font-style:italic}.rates-comp-segment-info{margin:6px 12px;padding:6px 10px;background:var(--color-surface-muted);border-left:3px solid var(--color-primary);border-radius:3px;font-size:12px;color:var(--color-text-secondary)}.rates-comp-table tbody tr.rates-room-row td{background:var(--color-surface-muted);border-bottom:1px dashed var(--color-divider)}.rates-comp-table tbody tr.rates-room-row td.hotel-cell.room-sub{font-weight:var(--font-normal);color:var(--color-text-secondary);padding-left:32px;font-size:11px;background:var(--color-surface-muted)}.rates-comp-table tbody tr.rates-room-row td.room-rate-cell{text-align:center;font-size:11px;font-family:var(--font-mono);padding:4px 6px}.rates-comp-table tbody tr.rates-room-row td.room-rate-cell.wkend{background:#fef3c766}.rates-comp-table tbody tr.rates-room-row td.room-rate-cell.today-col{background:#eff6ff66}.ota-page{--ota-wait: #7C3AED;--ota-wait-weak: #F5F3FF;--ota-wait-ink: #6B21A8;--ota-map: #0D9488;--ota-map-weak: #F0FDFA}.ota-page .pill{display:inline-flex;align-items:center;gap:5px;border-radius:var(--radius-full);padding:0 9px;font-size:11.5px;font-weight:var(--font-medium);line-height:20px;white-space:nowrap}.ota-page .pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.ota-page .p-none{background:var(--color-surface-muted);color:var(--color-text-secondary)}.ota-page .p-wait{background:var(--ota-wait-weak);color:var(--ota-wait)}.ota-page .p-linked{background:var(--color-primary-50);color:var(--color-primary)}.ota-page .p-mapped{background:var(--ota-map-weak);color:var(--ota-map)}.ota-page .p-sync{background:var(--color-success-light);color:var(--color-success-dark)}.ota-page .p-err{background:var(--color-error-light);color:var(--color-error-dark)}.ota-legend{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px;color:var(--color-text-secondary);margin:var(--space-2) 0 var(--space-3)}.ota-legend .arrow{color:var(--color-border-strong)}.ota-row{display:flex;align-items:center;gap:var(--space-3);padding:8px var(--space-4);border-bottom:1px solid var(--color-divider);cursor:pointer;width:100%;text-align:left;background:none;border-left:0;border-right:0;border-top:0;font:inherit;color:inherit}.ota-row:last-of-type{border-bottom:none}.ota-row:hover{background:var(--color-slate-50)}.ota-row:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.ota-logo{width:26px;height:26px;border-radius:var(--radius-sm);flex:none;display:flex;align-items:center;justify-content:center;font-weight:var(--font-bold);font-size:11px;color:#fff}.ota-row .nm{width:190px;flex:none;min-width:0}.ota-row .nm b{font-weight:var(--font-semibold);font-size:13.5px}.ota-row .nm .kind{font-size:11px;color:var(--color-text-secondary)}.ota-row .st{width:132px;flex:none}.ota-row .pm{flex:none}.ota-page .ota-pm{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:0 6px;line-height:18px;font-size:11px;font-family:var(--font-mono);color:var(--color-text-secondary)}.ota-row .mid{flex:1;min-width:0;font-size:12.5px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ota-row .mid .bad{color:var(--color-error-dark)}.ota-row .mid .okc{color:var(--color-success-dark)}.ota-row .act{flex:none;display:flex;gap:6px;align-items:center}.ota-row .chev{color:var(--color-border-strong);flex:none;font-size:11px;transition:transform .15s}.ota-row.open .chev{transform:rotate(90deg)}.ota-fav{color:var(--color-warning-dark);font-size:11px;margin-left:4px}.ota-phase2{background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:10.5px;border-radius:var(--radius-sm);padding:0 5px}.ota-det{background:var(--color-slate-50);border-bottom:1px solid var(--color-divider);padding:var(--space-3) var(--space-4) 14px 54px}.ota-det .cols{display:flex;gap:28px;flex-wrap:wrap;align-items:flex-start}.ota-det .fld label{display:block;font-size:11.5px;color:var(--color-text-secondary);margin-bottom:2px}.ota-det .fld .fldhint{margin-top:3px;font-size:11px;color:var(--color-text-tertiary);max-width:220px}.ota-det .fld .fldhint .pv{color:var(--color-text-secondary);font-family:var(--font-mono)}.ota-syncrows{display:flex;flex-direction:column;gap:4px;font-size:12.5px;min-width:280px}.ota-syncrows .srow{display:flex;gap:8px}.ota-syncrows .srow .k{width:118px;color:var(--color-text-secondary);flex:none}.ota-syncrows .srow .ok{color:var(--color-success-dark)}.ota-syncrows .srow .bad{color:var(--color-error-dark)}.ota-syncrows .srow .mut{color:var(--color-text-tertiary)}.ota-det .actline{display:flex;gap:8px;align-items:center;margin-top:var(--space-3);flex-wrap:wrap}.ota-det .hint2{font-size:11.5px;color:var(--color-text-secondary)}.ota-src{font-size:11px;opacity:.85;margin-top:2px}.ota-search{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.ota-empty{padding:18px var(--space-4);color:var(--color-text-secondary);font-size:12.5px}.ota-steps{margin:0 0 14px;padding:0;list-style:none;counter-reset:s}.ota-steps li{counter-increment:s;display:flex;gap:10px;padding:6px 0;border-bottom:1px dashed var(--color-border);font-size:13px}.ota-steps li:before{content:counter(s);flex:none;width:20px;height:20px;border-radius:50%;background:var(--color-primary-50);color:var(--color-primary);font-size:12px;font-weight:var(--font-semibold);display:flex;align-items:center;justify-content:center;margin-top:1px}.ota-honest{background:#f5f3ff;border-radius:var(--radius-sm);padding:8px 12px;font-size:12.5px;color:#6b21a8;margin-bottom:var(--space-3)}@media(max-width:900px){.ota-row .mid{display:none}.ota-row .nm{width:150px}}.rpm-wrap{flex-shrink:0}.rpm-head{display:flex;align-items:baseline;gap:var(--space-3);padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle, var(--color-surface))}.rpm-head-title{font-size:var(--text-md);font-weight:var(--font-semibold);color:var(--color-text-primary)}.rpm-head-hint{font-size:11px;color:var(--color-text-tertiary)}.rpm-scroll{overflow-x:auto}.rpm-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.rpm-table th{text-align:left;padding:8px 12px;font-size:10px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--ho-t2);border-bottom:1px solid var(--color-border);white-space:nowrap}.rpm-table .rpm-th-num{text-align:right}.rpm-table .rpm-th-plans{width:110px}.rpm-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle;white-space:nowrap}.rpm-row:hover td{background:var(--color-primary-50)}.rpm-row-open td{border-bottom-color:transparent}.rpm-row-nodefault td,.rpm-row-nodefault:hover td{background:var(--color-warning-light)}.rpm-td-rt{min-width:220px}.rpm-td-rt .rt-code-lg{margin-right:6px}.rpm-rooms{display:block;font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.rpm-td-def{min-width:180px}.rpm-def-btn{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font:inherit;color:var(--color-text-primary)}.rpm-def-btn:hover{border-color:var(--color-border);background:var(--color-surface)}.rpm-def-title{font-weight:var(--font-semibold)}.rpm-def-caret{font-size:10px;color:var(--color-text-tertiary)}.rpm-def-select{min-width:180px}.rpm-nodef{display:inline-flex;align-items:center;gap:8px}.rpm-nodef-text{color:var(--color-warning-dark);font-weight:var(--font-semibold)}.rpm-td-meal{color:var(--color-text-secondary)}.rpm-td-num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.rpm-dash{color:var(--color-text-tertiary)}.rpm-td-primary{font-weight:var(--font-bold)}.rpm-primary{cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);border:1px dashed transparent}.rpm-primary:hover{border-color:var(--color-primary);background:var(--color-surface)}.rpm-star{color:var(--color-primary);margin-right:3px;font-size:11px}.rpm-td-plans{text-align:right}.rpm-def-cell{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.rpm-th-plan{text-align:right;white-space:nowrap}.rpm-col-name{text-transform:none;letter-spacing:0;font-size:var(--text-sm)}.rpm-col-rule{margin-left:6px;font-size:10.5px;font-weight:var(--font-semibold);color:var(--color-primary-dark);background:var(--color-primary-50);border-radius:var(--radius-sm);padding:0 5px;text-transform:none;letter-spacing:0}.rpm-col-edit{margin-left:4px;border:0;background:none;cursor:pointer;color:var(--color-text-tertiary);font:inherit;padding:0 2px;vertical-align:middle}.rpm-col-edit:hover{color:var(--color-primary)}.rpm-td-auto{color:var(--color-text-tertiary);background:var(--color-surface-muted, var(--color-surface-subtle));font-weight:var(--font-medium)}.rpm-expand-caret{margin-left:4px;font-size:10px;color:var(--color-text-tertiary)}.rpm-expand-row>td{padding:0 12px 12px 28px;background:var(--color-surface)}.rpm-expand-body{padding:10px 12px 4px;border:1px dashed var(--color-border);border-radius:var(--radius-md)}.rates-stats-bar{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.mode-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.rates-comp-action-bar{flex-wrap:wrap}@media(max-width:1100px){.rates-layout.ho-with-rail{height:auto;min-height:calc(100vh - var(--ho-topnav-h));overflow:visible}.rates-main{overflow:visible}}.rpe{display:flex;flex-direction:column;gap:var(--space-3);padding-bottom:72px}.rpe .ho-ph{flex-wrap:wrap}.rpe-view{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.rpe-sheet{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.rpe-sheet.two{grid-template-columns:1fr 1fr}@media(max-width:1439px){.rpe-sheet.two{grid-template-columns:1fr}}.rpe-tbl{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--ho-shadow-card);overflow-x:auto;min-width:0}.rpe-tbl table{width:100%;border-collapse:collapse;table-layout:fixed;min-width:640px}.rpe-tbl col.rpe-c1{width:168px}.rpe-tbl col.rpe-c3{width:300px}.rpe-sheet.two .rpe-tbl col.rpe-c1{width:150px}.rpe-sheet.two .rpe-tbl col.rpe-c3{width:190px}.rpe-tbl td{padding:5px 12px;border-top:1px solid var(--color-divider);vertical-align:middle;min-height:38px}.rpe-tbl tbody tr:first-child td{border-top:0}.rpe-k{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text-primary);white-space:nowrap;background:var(--color-surface-muted);border-right:1px solid var(--color-divider)}.rpe-k small{display:block;font-weight:var(--font-regular, 400);font-size:11px;color:var(--color-text-tertiary);line-height:1.1}.rpe-req{color:var(--color-danger);margin-left:3px}.rpe-v{min-width:0}.rpe-h{font-size:12px;line-height:1.35;color:var(--color-text-secondary);border-left:1px solid var(--color-divider);white-space:normal}.rpe-warn{color:var(--color-warning-dark, #B45309)}.rpe-star{color:var(--color-primary-dark);font-weight:var(--font-bold)}.rpe-g td{background:var(--color-primary-50);padding-top:4px;padding-bottom:4px}.rpe-g .rpe-k{background:var(--color-primary-50);white-space:normal;line-height:1.2;font-size:11.5px;font-weight:var(--font-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary-dark)}.rpe-g .rpe-h{font-size:11px;color:var(--color-text-tertiary)}.rpe-w0{width:72px}.rpe-w1{width:110px}.rpe-w2{width:100%;max-width:200px}.rpe-w3{width:100%;max-width:280px}.rpe-policy{width:320px}.rpe-inline{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.rpe-sep{color:var(--color-border-strong)}.rpe-money{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);color:var(--color-text-secondary)}.rpe-base.ant-input-number{border-color:var(--color-primary)}.rpe-tag{font-size:11px;color:var(--color-primary-dark);background:var(--color-primary-50);padding:1px 8px;border-radius:999px;white-space:nowrap}.rpe-link{font:inherit;font-size:12px;color:var(--color-primary);background:none;border:0;cursor:pointer;padding:2px 4px}.rpe-link:hover{text-decoration:underline}.rpe-link:focus-visible,.rpe-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.rpe-chips{display:flex;flex-wrap:wrap;gap:6px}.rpe-chip{font:inherit;font-size:var(--text-sm);padding:3px 11px;border-radius:999px;cursor:pointer;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary)}.rpe-chip.on{border-color:var(--color-primary);background:var(--color-primary-50);color:var(--color-primary-dark);font-weight:var(--font-semibold)}.rpe-wk{display:inline-grid;grid-template-columns:repeat(7,34px);gap:4px;align-items:center}.rpe-wk .ant-input-number{width:34px}.rpe-wk .ant-input-number .ant-input-number-input{text-align:center;padding:0 2px!important}.rpe-wk-lbl span{font-size:11px;font-weight:var(--font-semibold);color:var(--color-text-secondary);text-align:center;letter-spacing:0;text-transform:none}.rpe-wk-lbl span.we{color:var(--color-primary-dark)}.rpe-cb{display:grid;place-items:center;height:26px}.rpe-ogw{overflow-x:auto;padding:2px 0}.rpe-og{display:grid;gap:4px 6px;align-items:center;font-size:12px}.rpe-og-rl{color:var(--color-text-secondary);text-align:right;padding-right:4px;white-space:nowrap}.rpe-og-ch{font-size:12px;font-weight:var(--font-semibold);color:var(--color-text-secondary);text-align:center;padding:2px 0;border-bottom:1px solid var(--color-divider);white-space:nowrap}.rpe-og-ch.p{color:var(--color-primary-dark)}.rpe-og-c{min-height:26px;display:flex;align-items:center;justify-content:center}.rpe-og-c.p{background:var(--color-primary-50);border-radius:4px}.rpe-og-c .ant-input-number,.rpe-og-c .ant-select{width:100%}.rpe-og-c .ant-input-number-input{text-align:right}.rpe-og-price{font-weight:var(--font-bold)}.rpe .rpe-tabs .ant-tabs-nav{margin-bottom:0}.rpe-gprev{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:var(--text-sm);color:var(--color-text-secondary)}.rpe-gprev b{color:var(--color-text-primary)}.rpe .ho-actbar.rpe-bar{margin:0 calc(-1 * var(--ho-page-px)) -40px}.rpe-bar-sum{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:720px){.rpe-tbl col.rpe-c1{width:120px}.rpe-tbl col.rpe-c3{width:180px}}.cp-page .cp-sec{margin-top:var(--space-3)}.cp-scroll{overflow-x:auto}.cp-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.cp-table th{text-align:left;padding:8px 12px;font-size:10px;font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.cp-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);vertical-align:top}.cp-table .r{text-align:right}.cp-table td.num,.cp-table .num{font-family:var(--font-mono)}.cp-table td.rt{min-width:180px;white-space:nowrap}.cp-table td.rt b{font-weight:var(--font-semibold)}.cp-table .cp-sub{font-size:11px;color:var(--color-text-secondary)}.cp-table tr.cp-row.dirty td{background:var(--color-primary-50)}.cp-table tr.cp-base-row td{background:var(--color-slate-50)}.cp-table tr.cp-subrow td{background:var(--color-slate-50);font-size:12.5px}.cp-table tr.cp-subrow td:first-child{border-left:3px solid var(--color-border-strong)}.cp-muted{color:var(--color-text-tertiary)}.cp-page .bad{color:var(--color-error-dark)}.cp-page .okc{color:var(--color-success-dark)}.cp-basepill{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:0 9px;font-size:11.5px;font-weight:var(--font-medium);line-height:20px;white-space:nowrap;background:var(--color-surface-muted);color:var(--color-text-secondary)}.cp-chip{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);padding:0 9px;line-height:20px;font-size:11.5px;color:var(--color-text-secondary)}.cp-chip.ok{border-color:var(--color-success-dark);color:var(--color-success-dark);background:var(--color-success-light)}.cp-chip.warn{border-color:var(--color-warning-dark);color:var(--color-warning-dark);background:var(--color-warning-light)}.cp-chip.sm{border-radius:var(--radius-sm);padding:0 6px;line-height:18px;font-size:11px;margin:1px 4px 1px 0}.cp-chip.sm em{font-style:normal;color:var(--color-warning-dark)}.cp-chips{max-width:320px}.cp-rule{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.cp-rule .cp-mag{width:84px}.cp-rule .cp-mag .ant-input-number-input{padding-right:8px}.cp-status{margin-top:3px;font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.cp-adj{font-family:var(--font-mono);font-size:12px;color:var(--color-text-secondary)}.cp-adj.ov{color:var(--color-primary)}.ho-actbar.cp-bar{flex-wrap:wrap;gap:10px}.cp-bar.inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0}.cp-bar .cp-dirty{font-size:12px;color:var(--color-primary)}.cp-bar .cp-note{font-size:11.5px;color:var(--color-text-tertiary)}.mb-layout{display:flex;margin:calc(-1 * var(--space-6));height:calc(100vh - var(--header-height));overflow:hidden}.mb-sidebar{width:220px;min-width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-3) 0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1)}.mb-main{flex:1;min-width:0;overflow:auto;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.mb-s-label{font-size:10px;font-weight:var(--font-bold);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-4);margin-top:var(--space-2)}.mb-s-label:first-child{margin-top:0}.mb-s-item{display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;text-decoration:none;border-left:2px solid transparent}.mb-s-item:hover{background:var(--color-surface-muted);color:var(--color-text-primary)}.mb-s-item.active{background:var(--color-primary-50);color:var(--color-primary-dark);font-weight:var(--font-semibold);border-left-color:var(--color-primary)}.mb-s-item .ico{font-size:var(--text-md);width:18px;text-align:center;flex-shrink:0}.mb-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.mb-stat{padding:var(--space-3);background:var(--color-surface-muted);border-radius:var(--radius-md)}.mb-stat .lbl{font-size:10px;color:var(--ho-t2);text-transform:uppercase;letter-spacing:.04em}.mb-stat .val{font-size:var(--text-xl);font-weight:var(--font-bold);margin-top:2px}.mb-field{display:flex;justify-content:space-between;font-size:var(--text-sm);padding:6px 0;border-bottom:1px solid var(--color-divider)}.mb-field .k{color:var(--color-text-secondary)}.mb-field .v{font-weight:var(--font-semibold)}.mb-bars{display:flex;flex-direction:column;gap:8px}.mb-bar-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.mb-bar-row .br-lbl{width:70px;flex-shrink:0}.mb-bar-row .br-val{width:60px;text-align:right;font-weight:var(--font-semibold)}.mb-spark{display:flex;align-items:flex-end;gap:6px;height:120px;padding:var(--space-2) 0}.mb-spark .sp-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.mb-spark .sp-bar{width:60%;background:var(--color-primary);border-radius:3px 3px 0 0;min-height:4px}.mb-spark .sp-lbl{font-size:10px;color:var(--ho-t2)}.mb-layout>.ho-rail{width:212px;min-width:212px;flex-shrink:0;overflow-y:auto}@media(max-width:1100px){.mb-layout{flex-direction:column;height:auto;overflow:visible}.mb-layout>.ho-rail{width:auto;min-width:0;overflow-y:visible;border-right:0;border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:8px 12px}.mb-layout>.ho-rail>div{display:contents}.mb-main{overflow:visible}}.st-layout{display:grid;grid-template-columns:212px 1fr;margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));overflow:hidden}.st-layout>.ho-rail{overflow-y:auto}.st-main{min-width:0;overflow:auto;padding:var(--ho-page-py) var(--ho-page-px);display:flex;flex-direction:column;gap:14px}.st-main>*{flex-shrink:0}.st-main>.ho-card{overflow:hidden}.ho-fld>.ho-lbl{font-size:12px;font-weight:600;color:var(--ho-t2);display:flex;gap:6px;align-items:center}.ho-frow .sw{display:inline-flex;align-items:center;gap:8px;font-size:13px;min-height:32px}.ho-frow .ho-in.ro{background:var(--ho-muted);color:var(--ho-t2);border-color:var(--ho-line)}.ho-frow .ho-in{width:100%}.st-v2-body{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:start}.st-toc{position:sticky;top:0;font-size:12.5px;display:flex;flex-direction:column;gap:2px}.st-toc a{padding:6px 10px;border-radius:6px;color:var(--ho-t2);cursor:pointer;text-decoration:none}.st-toc a:hover{background:var(--ho-muted)}.st-toc a.on{background:var(--ho-p-50);color:var(--ho-p-dark);font-weight:700}.st-chan-note{margin:12px 16px}.st-chan-note b{display:block;margin-bottom:2px}.st-chan-err{margin:12px 16px}.st-dock-items{font-size:12px;color:var(--ho-t3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-code{font-family:var(--font-mono);font-weight:var(--font-semibold);color:var(--color-primary)}.st-perm-box{max-height:200px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3)}.st-perm-group{margin-bottom:var(--space-2)}.st-perm-group-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-secondary);margin:var(--space-1) 0}.st-perm-row{padding:2px 0;font-size:var(--text-base)}.st-acct-map{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}.st-acct-map-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap}.st-acct-map-row .lbl{width:180px;font-size:var(--text-base)}.st-acct-map-row .req{color:var(--color-error)}.st-toast{position:fixed;left:50%;bottom:var(--space-6);transform:translate(-50%);background:var(--color-text-primary);color:var(--color-text-on-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);z-index:9999;box-shadow:var(--shadow-md)}.pt-gallery{display:flex;flex-wrap:wrap;gap:10px}.pt-img{position:relative;width:132px;height:96px;border-radius:var(--radius-md, 8px);overflow:hidden;border:1px solid var(--color-border, #e5e7eb);background:var(--color-bg-secondary, #f3f4f6)}.pt-img img{width:100%;height:100%;object-fit:cover;display:block}.pt-img-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-tertiary, #9ca3af)}.pt-img-ops{position:absolute;top:4px;right:4px;display:flex;gap:4px;opacity:0;transition:opacity .15s}.pt-img:hover .pt-img-ops,.pt-img:focus-within .pt-img-ops{opacity:1}.pt-img-ops button{border:none;border-radius:4px;background:#111827a6;color:#fff;width:22px;height:22px;cursor:pointer;font-size:12px;line-height:1}.pt-img-ops button:disabled{opacity:.4;cursor:default}.pt-img-ops button.del{background:#dc2626cc}.pt-img-cover{position:absolute;left:4px;bottom:4px;background:#2563ebe6;color:#fff;font-size:11px;border-radius:4px;padding:1px 6px}.pt-img-add{width:132px;height:96px;border-radius:var(--radius-md, 8px);border:1px dashed var(--color-border, #cbd5e1);background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--color-text-tertiary, #64748b)}.pt-img-add:hover{border-color:var(--color-primary, #2563eb);color:var(--color-primary, #2563eb)}.pt-img-add:disabled{opacity:.5;cursor:default}.pt-img-add .plus{font-size:20px}.pt-img-add .cnt{font-size:11px}.pt-roomtype{padding:12px 0;border-top:1px solid var(--color-border, #eef0f3)}.pt-roomtype:first-of-type{border-top:none;padding-top:0}.pt-rt-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.st-ch-unset{margin-left:6px;padding:0 5px;border-radius:var(--radius-full, 999px);background:var(--color-warning-light);color:var(--color-warning-dark);font-size:11px;font-weight:var(--font-semibold)}.st-ch-local{margin-left:6px;padding:0 5px;border-radius:var(--radius-full, 999px);background:var(--color-slate-100);color:var(--color-slate-600);font-size:11px;font-weight:var(--font-semibold)}.st-ch-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:2px;line-height:1.5;max-width:420px;white-space:normal}@media(max-width:1100px){.st-layout{grid-template-columns:1fr;height:auto;overflow:visible}.st-layout>.ho-rail{overflow-y:visible}.st-main{overflow:visible}}@media(max-width:1180px){.st-v2-body{grid-template-columns:1fr}.st-toc{position:static;flex-direction:row;flex-wrap:wrap}}@media(max-width:1200px){.st-invtpl{flex-direction:column!important;height:auto!important}.st-invtpl-edit{width:auto!important;overflow-y:visible!important}.st-invtpl-preview{height:70vh}}.rp-layout{margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));overflow:hidden}.rp-layout>.ho-rail{overflow-y:auto}.rp-main{overflow-y:auto;padding:var(--ho-page-py) var(--ho-page-px) 40px;display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.rp-v2{display:flex;flex-direction:column;gap:14px}.rp-v2 .ho-att,.rp-v2 .ho-grid{margin-bottom:0}.rp-v2-chart{position:relative}.rp-v2-chart .rp-chart-svg{width:100%;height:auto}.rp-snap{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.rp-snap>div{background:var(--ho-muted);border-radius:8px;padding:10px 8px}.rp-snap .l{font-size:11.5px;color:var(--ho-t2);font-weight:600;white-space:nowrap}.rp-snap .v{font:700 22px var(--ho-font-num);letter-spacing:-.02em;margin-top:2px}.rp-snap .v .ho-tag2{height:16px;vertical-align:middle;font-size:10px}.rp-snap .s{font-size:11px;color:var(--ho-t3);margin-top:2px}.rp-mini{margin-top:12px;gap:8px;font-size:12px}.rp-mini .ho-money{display:block;font-size:14px}.rp-occbar{display:flex;align-items:center;gap:8px}.rp-occbar .ho-bar{width:90px}.rp-v2 .ho-tbl tr.total td{background:var(--ho-muted);font-weight:700}.rp-v2 .ho-tbl td .ho-hint{margin-left:4px}.rp-alert-row2{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--ho-muted-2);font-size:12.5px}.rp-alert-row2:last-child{border:none}.rp-alert-row2 .ic{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;flex:none}.rp-alert-row2 .ic.warn{background:var(--ho-warn-bg)}.rp-alert-row2 .ic.err{background:var(--ho-bad-bg)}.rp-alert-row2 .ic.info{background:var(--ho-p-50)}.rp-alert-row2 .ttl{font-weight:700}.rp-alert-row2 .ttl small{display:block;font-weight:500;color:var(--ho-t2)}.rp-alert-row2 .ho-money{margin-left:auto}.rp-alert-row2 .ho-money.warn{color:var(--ho-warn-dark)}@media(max-width:1100px){.rp-v2 .ho-grid.rp-v2-row{grid-template-columns:1fr!important}}.rp-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.rp-kpi-strip .ho-kpi .unit{font-size:14px;font-weight:var(--font-medium);color:var(--color-text-secondary);margin-left:2px}.rp-kpi-strip .ho-kpi .kpi-sub{color:var(--color-text-tertiary);margin-left:6px}.rp-main .ho-card>.hd .head-desc{font-size:11px;color:var(--color-text-tertiary);font-weight:var(--font-normal);margin-left:var(--space-2)}.rp-main .ho-card>.hd .head-extras{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.rp-main .ho-card>.bd.tight{padding:0}.rp-main .ho-card{overflow:hidden}.rp-main>*{flex-shrink:0}.rp-chart-wrap{width:100%;position:relative}.rp-chart-svg{width:100%;height:auto;max-height:280px;display:block}.rp-chart-svg.sm{max-height:200px}.rp-chart-legend{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:11px;color:var(--color-text-secondary);margin-top:var(--space-2)}.rp-chart-legend .lg-item{display:inline-flex;align-items:center;gap:5px}.rp-chart-legend .lg-swatch{width:12px;height:12px;border-radius:2px}.rp-chart-legend .lg-line{width:16px;height:2px;border-radius:1px}.rp-chart-legend .lg-line.dashed{background:repeating-linear-gradient(90deg,var(--color-text-tertiary) 0 4px,transparent 4px 7px);height:2px}.rp-axis-label{font-size:9px;fill:var(--color-text-tertiary);font-family:var(--font-mono)}.rp-axis-line{stroke:var(--color-divider);stroke-width:1}.rp-gridline{stroke:var(--color-divider);stroke-width:1;stroke-dasharray:2 3;opacity:.6}.rp-row2{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-3)}@media(max-width:1100px){.rp-row2{grid-template-columns:1fr}}.rp-donut-wrap{display:flex;align-items:center;gap:var(--space-3)}.rp-donut-list{flex:1;display:flex;flex-direction:column;gap:8px}.rp-donut-item{display:flex;align-items:center;gap:8px;font-size:12px}.rp-donut-item .ch-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rp-donut-item .ch-name{flex:1;color:var(--color-text-primary);font-weight:var(--font-semibold)}.rp-donut-item .ch-amt{font-family:var(--font-mono);color:var(--color-text-secondary);font-size:11px}.rp-donut-item .ch-pct{font-family:var(--font-mono);font-weight:var(--font-bold);color:var(--color-text-primary);min-width:36px;text-align:right}.rp-snap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.rp-snap-cell{background:var(--color-surface-muted);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:4px}.rp-snap-cell .snap-label{font-size:10px;font-weight:var(--font-semibold);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.04em}.rp-snap-cell .snap-value{font-family:var(--font-mono);font-size:22px;font-weight:var(--font-bold);color:var(--color-text-primary);line-height:1}.rp-snap-cell .snap-sub{font-size:11px;color:var(--color-text-secondary)}.rp-snap-cell.arriving{background:#eff6ff8c;border-left:3px solid var(--color-primary)}.rp-snap-cell.departing{background:#fef3c773;border-left:3px solid var(--color-warning)}.rp-snap-cell.staying{background:#dcfce773;border-left:3px solid var(--color-success)}.rp-snap-cell.overdue{background:#fee2e28c;border-left:3px solid var(--color-error)}.rp-mini-income{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-divider);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3)}.rp-mini-income .mi-lbl{font-size:10px;font-weight:var(--font-semibold);color:var(--ho-t2);text-transform:uppercase}.rp-mini-income .mi-val{font-family:var(--font-mono);font-size:20px;font-weight:var(--font-bold)}.rp-mini-income .mi-sub{font-size:11px;color:var(--color-text-tertiary)}.rp-alert-list{display:flex;flex-direction:column}.rp-alert-row{display:flex;gap:10px;padding:10px var(--space-4);border-bottom:1px solid var(--color-divider);align-items:center;cursor:pointer}.rp-alert-row:hover{background:var(--color-surface-muted)}.rp-alert-row:last-child{border-bottom:none}.rp-alert-row .a-ico{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px}.rp-alert-row .a-ico.warn{background:var(--color-warning-light);color:var(--color-warning-dark)}.rp-alert-row .a-ico.err{background:var(--color-error-light);color:var(--color-error-dark)}.rp-alert-row .a-ico.info{background:var(--color-primary-50);color:var(--color-primary-dark)}.rp-alert-row .a-body{flex:1;min-width:0}.rp-alert-row .a-title{font-size:12px;font-weight:var(--font-semibold)}.rp-alert-row .a-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.rp-alert-row .a-amt{font-family:var(--font-mono);font-size:12px;font-weight:var(--font-bold);color:var(--color-text-primary)}.rp-alert-row .a-amt.err{color:var(--color-error-dark)}.rp-alert-row .a-amt.warn{color:var(--color-warning-dark)}.rp-bd-code{font-family:var(--font-mono);font-weight:var(--font-bold);color:var(--color-primary)}.rp-bd-code+span{color:var(--color-text-secondary);margin-left:4px}.rp-occ-bar{display:flex;align-items:center;gap:6px}.rp-occ-bar .bar-track{flex:1;height:8px;background:var(--color-surface-muted);border-radius:4px;overflow:hidden}.rp-occ-bar .bar-fill{height:100%;border-radius:4px}.rp-occ-bar .bar-pct{font-family:var(--font-mono);font-weight:var(--font-bold);min-width:36px;text-align:right}.rp-sum-cell{background:var(--color-primary-50);color:var(--color-primary-dark);font-weight:var(--font-bold)}.rp-row-inactive{opacity:.5}.rp-aging-list{display:flex;flex-direction:column;gap:10px}.rp-aging-row{display:flex;align-items:center;gap:var(--space-3);font-size:12px}.rp-aging-row .ag-bucket{width:90px;flex-shrink:0}.rp-aging-row .ag-track{flex:1;height:18px;background:var(--color-surface-muted);border-radius:var(--radius-full);overflow:hidden}.rp-aging-row .ag-fill{display:block;height:100%;border-radius:var(--radius-full)}.rp-aging-row .ag-amt{width:80px;text-align:right;font-family:var(--font-mono);font-weight:var(--font-semibold)}.rp-kpi-strip.rp-kpi-5{grid-template-columns:repeat(5,1fr)}@media(max-width:1280px){.rp-kpi-strip.rp-kpi-5{grid-template-columns:repeat(3,1fr)}}.rp-ch-delta{font-size:11px;font-family:var(--font-mono);margin-top:2px;white-space:nowrap}.rp-ch-delta .rp-ch-delta-pct{color:var(--color-text-tertiary)}.rp-ch-sub{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.rp-ch-sid{font-size:11px;color:var(--color-text-tertiary);margin-left:6px}.rp-ch-unset,.rp-ch-unset-inline{color:var(--color-warning-dark);font-size:11px;font-weight:var(--font-semibold)}.rp-ch-unset{margin-left:6px;padding:0 5px;border-radius:var(--radius-full);background:var(--color-warning-light)}.rp-tax-note{font-size:11px;color:var(--color-text-secondary);line-height:1.6;margin:0 0 var(--space-3)}.rp-tax-note:last-child{margin:var(--space-3) 0 0}.rp-tax-subhead{font-size:11px;font-weight:var(--font-bold);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.rp-tax-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start}@media(max-width:1100px){.rp-tax-split{grid-template-columns:1fr}}@media(max-width:1366px){.rp-kpi-strip{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.rp-kpi-strip{grid-template-columns:1fr}}@media(max-width:1500px){.rp-kpi-strip.rp-kpi-5{grid-template-columns:repeat(3,1fr)}}@media(max-width:1100px){.rp-kpi-strip.rp-kpi-5{grid-template-columns:repeat(2,1fr)}}.rp-donut-wrap{flex-wrap:wrap}.rp-donut-list{flex:1 1 190px}@media(max-width:1500px){.rp-v2 .ho-grid.rp-v2-row{grid-template-columns:1fr!important}}@media(max-width:1450px){.rp-snap{grid-template-columns:repeat(2,1fr)}}@media(max-width:1400px){.ho-grid.g4.rp-mini{grid-template-columns:repeat(2,1fr)}}@media(max-width:1450px){.rp-tax-split{grid-template-columns:1fr}}@media(max-width:1100px){.rp-layout{height:auto;overflow:visible}.rp-main{overflow-y:visible}}.dv-layout.ho-with-rail{margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));min-height:0;overflow:hidden}.dv-layout>.ho-rail{overflow-y:auto}.dv-main{min-width:0;overflow:auto;padding:var(--ho-page-py) var(--ho-page-px) 40px;display:flex;flex-direction:column;gap:14px}.dv-main>*{flex-shrink:0}.dv-main>.ho-ph{margin-bottom:0}.dv-main>.ho-att{margin-bottom:0}.dv-main>.ho-filterbar{margin-bottom:0}.ho-kpi.dv-kpi-sm .v{font-size:14px;line-height:1.4}.dv-fval{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:32px}.dv-tags{display:flex;flex-wrap:wrap;gap:6px}.dv-note{padding:var(--space-3);font-size:var(--text-base);color:var(--color-text-tertiary)}.dv-hint{font-size:var(--text-sm);color:var(--color-text-tertiary)}.dv-err{font-size:var(--text-base);color:var(--color-error-dark)}.dv-flash{font-size:var(--text-sm)}.dv-flash.ok{color:var(--color-success-dark)}.dv-flash.err{color:var(--color-error-dark)}.dv-mono{font-family:var(--font-mono);font-size:var(--text-sm)}.dv-id{font-family:var(--font-mono);font-weight:var(--font-semibold);color:var(--color-primary)}.dv-grid-2{display:grid;grid-template-columns:3fr 2fr;gap:var(--space-3)}@media(max-width:1100px){.dv-grid-2{grid-template-columns:1fr}}.dv-activity{display:flex;flex-direction:column;gap:10px}.dv-act{display:flex;gap:10px;font-size:var(--text-sm);padding-bottom:10px;border-bottom:1px solid var(--color-divider)}.dv-act:last-child{border-bottom:none;padding-bottom:0}.dv-act .dot{width:7px;height:7px;border-radius:50%;background:var(--color-primary);margin-top:5px;flex-shrink:0}.dv-act .dot.success{background:var(--color-success)}.dv-act .dot.warn{background:var(--color-warning)}.dv-act .a-t{font-family:var(--font-mono);color:var(--color-text-tertiary);flex-shrink:0}.dv-act .a-title{font-weight:var(--font-semibold)}.dv-act .a-detail{color:var(--color-text-secondary);font-size:var(--text-xs);margin-top:1px}.dv-al-bd{padding-top:4px}.dv-al{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--ho-muted-2);font-size:12.5px}.dv-al:last-child{border:none}.dv-al .sev{width:4px;height:30px;border-radius:2px;flex-shrink:0}.dv-al.high .sev{background:var(--ho-bad)}.dv-al.mid .sev{background:var(--ho-warn)}.dv-al b{display:block}.dv-al small{color:var(--ho-t2)}.dv-dist{display:flex;gap:18px;align-items:center}.dv-donut{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;flex:none}.dv-donut i{width:78px;height:78px;border-radius:50%;background:#fff;display:grid;place-items:center;font:700 20px var(--ho-font-num);font-style:normal}.dv-donut i small{display:block;font:600 10px var(--ho-font-body);color:var(--ho-t3);text-align:center}.dv-dist-legend{flex:1;font-size:12.5px;display:flex;flex-direction:column;gap:6px}.dv-dist-legend .sw{width:10px;height:10px;border-radius:3px;flex-shrink:0}.dv-dist-legend b.num{font-weight:700}.dv-health{margin-top:6px;display:flex;flex-direction:column;gap:4px}.dv-health .ho-row{font-size:12px;color:var(--ho-t2)}.dv-health b.ok{color:var(--ho-ok-dark)}.dv-health b.mid{color:var(--ho-warn-dark)}.dv-health b.bad{color:var(--ho-bad-dark)}.dv-kv-list{font-size:var(--text-base);display:flex;flex-direction:column;gap:6px}.dv-frow{display:flex;align-items:center;gap:var(--space-3);padding:8px 0;border-bottom:1px solid var(--color-divider);font-size:var(--text-base);flex-wrap:wrap}.dv-frow.last{border-bottom:none}.dv-flabel{width:180px;color:var(--color-text-secondary);flex-shrink:0}.dv-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--ho-shadow-card);overflow:hidden}.dv-section-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider);display:flex;align-items:center;gap:var(--space-2)}.dv-section-head h3{margin:0;font-size:var(--text-md);font-weight:var(--font-bold)}.dv-section-body{padding:var(--space-4)}.dv-bind{display:grid;grid-template-columns:130px 1fr;gap:14px}.dv-floors{display:flex;flex-direction:column;gap:4px;align-self:start}.dv-floors a{display:flex;align-items:center;padding:7px 10px;border-radius:7px;font-weight:600;color:var(--ho-t2);cursor:pointer;text-decoration:none}.dv-floors a:hover{background:var(--ho-muted)}.dv-floors a.on{background:var(--ho-ink);color:#fff}.dv-floors a.unbound{color:var(--ho-warn-dark)}.dv-floors a .n{margin-left:auto;font:700 11px var(--ho-font-num);background:#00000014;padding:1px 6px;border-radius:8px}.dv-floors a.on .n{background:#fff3}.dv-rb-legend{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ho-t3);white-space:nowrap;min-width:0}.dv-rb-legend .dv-tg{pointer-events:none}.dv-tg{position:relative;height:20px;padding:0 8px 0 6px;border-radius:999px;border:1px solid var(--ho-line);background:#fff;color:var(--ho-t3);font:600 10.5px/1 var(--ho-font-body);letter-spacing:.03em;display:inline-flex;align-items:center;gap:5px;cursor:pointer;flex-shrink:0}.dv-tg:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ho-t3)}.dv-tg.on{border-color:transparent;background:color-mix(in srgb,var(--ho-ok) 14%,#fff);color:var(--ho-ok-dark, var(--ho-ok))}.dv-tg.on:before{background:var(--ho-ok)}.dv-tg:disabled{cursor:default;opacity:.75}.dv-tg:not(:disabled):hover{border-color:var(--ho-t3)}.dv-lowbat{display:inline-flex;align-items:center;gap:4px;color:var(--ho-bad);font:700 11px var(--ho-font-num);flex-shrink:0}.dv-lowbat i{width:18px;height:9px;border:1.5px solid currentColor;border-radius:2px;position:relative;display:inline-block}.dv-lowbat i:after{content:"";position:absolute;right:-4px;top:1.5px;width:2px;height:4px;background:currentColor;border-radius:1px}.dv-lowbat i b{position:absolute;left:1px;top:1px;bottom:1px;width:25%;background:currentColor;border-radius:1px}.dv-rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(244px,1fr));gap:10px;align-items:start}.dv-rm{background:var(--ho-surface, #fff);border:1px solid var(--ho-line);border-radius:12px;overflow:hidden;box-shadow:var(--ho-sh-card);position:relative;transition:transform .15s,box-shadow .15s}.dv-rm:hover{transform:translateY(-2px);box-shadow:var(--ho-sh-lift);z-index:1}.dv-rm .h{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 12px;color:#fff;min-width:0;position:relative}.dv-rm.ok .h{background:var(--ho-room-vc);color:var(--ho-room-vc-ink, #fff)}.dv-rm.warn .h{background:var(--ho-room-vd);color:var(--ho-room-vd-ink, #1a1f00)}.dv-rm.none .h{background:var(--ho-room-out);color:var(--ho-room-out-ink, #fff)}.dv-rm .h .no{font:700 18px/1 var(--ho-font-num);letter-spacing:-.02em;flex-shrink:0}.dv-rm .h .stw{font-size:11px;font-weight:700;line-height:1;opacity:.92;white-space:nowrap;flex-shrink:0}.dv-rm .h .dv-lowbat{color:inherit;opacity:.95}.dv-rm.ok .h .dv-lowbat,.dv-rm.none .h .dv-lowbat{color:#fff}.dv-rm .h .pill{margin-left:auto;font:700 10px var(--ho-font-num);background:#ffffff38;padding:2px 6px;border-radius:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.dv-rm.warn .h .pill{background:#0000001f}.dv-rm .acts{position:absolute;right:8px;top:6px;display:flex;gap:4px}.dv-rm .acts .ho-btn.sm{height:22px;padding:0 8px;gap:3px;font-size:11.5px;white-space:nowrap;background:#fffffff0;border-color:transparent;color:var(--ho-ink)}.dv-rm .acts .ho-btn.sm:hover{background:#fff}.dv-rm .b{display:flex;flex-direction:column;gap:3px;padding:7px 10px 9px}.dv-sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px;vertical-align:-1px;background:var(--ho-room-out)}.dv-sw.ok{background:var(--ho-room-vc)}.dv-sw.warn{background:var(--ho-room-vd)}.dv-rm .slot{display:flex;flex-wrap:wrap;align-items:center;gap:3px 7px;min-height:24px;font-size:12.5px;white-space:nowrap}.dv-rm .slot .ic{width:14px;text-align:center;font-size:12px;flex-shrink:0}.dv-rm .slot .role{font-weight:600;color:var(--ho-t2);max-width:110px;overflow:hidden;text-overflow:ellipsis}.dv-rm .slot .st{font-size:12px;color:var(--ho-t2)}.dv-rm .slot .st.off{color:var(--ho-t3)}.dv-rm .slot .none{color:var(--ho-t3);font-style:italic}.dv-rm .slot .sp{flex:1}.dv-rm .slot .ho-btn.sm{height:20px;padding:0 6px;font-size:11px}.dv-rm .slot.none{color:var(--ho-t3);font-style:italic;font-size:12px}.dv-rm .empty{display:flex;align-items:center;gap:8px;height:24px;font-size:12px;color:var(--ho-t3)}.dv-rm .empty .dash{flex:1;border-top:1px dashed var(--ho-line)}.dv-rb-bind{color:var(--ho-ink);font-weight:600;cursor:pointer;font-size:12px}.dv-rb-bind:hover{text-decoration:underline}.dv-rm .slot-err,.dv-rb-list .slot-err{font-size:12.5px;line-height:1.45;color:var(--ho-bad);background:color-mix(in srgb,var(--ho-bad) 8%,transparent);border-left:3px solid var(--ho-bad);padding:4px 8px;border-radius:4px;white-space:normal}.dv-rb-list{overflow-x:auto}.dv-rb-list table{width:100%;border-collapse:collapse}.dv-rb-list th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ho-t3);font-weight:600;text-align:left;padding:6px 10px;border-bottom:1px solid var(--ho-line)}.dv-rb-list td{padding:0 10px;height:34px;border-bottom:1px solid var(--ho-muted-2);vertical-align:middle;white-space:nowrap}.dv-rb-list tr:hover td{background:var(--ho-muted)}.dv-rb-list tr.fl td{height:28px;background:var(--ho-muted);font-weight:600;color:var(--ho-t2);font-size:12px}.dv-rb-list tr.fl td .n{font:400 11px var(--ho-font-num);color:var(--ho-t3);margin-left:8px}.dv-rb-list td.no{font:700 13.5px var(--ho-font-num)}.dv-rb-list td.no .dv-lowbat{margin-left:8px;vertical-align:middle}.dv-rb-list td.ty{color:var(--ho-t3);font-size:12px}.dv-rb-list .doors{display:flex;gap:6px;flex-wrap:wrap;padding:4px 0;align-items:center}.dv-dchip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 8px 0 7px;border-radius:6px;border:1px solid var(--ho-line);background:#fff;font-size:12px}.dv-dchip.none{border-style:dashed;color:var(--ho-t3);font-style:italic}.dv-dchip .nm{font-weight:600;color:var(--ho-t2);font-style:normal}.dv-dchip .st{color:var(--ho-t2)}.dv-dchip .st.off{color:var(--ho-t3)}.dv-dchip .ho-btn.sm{height:18px;padding:0 5px;font-size:10.5px}.dv-rb-list td.ops{text-align:right}.dv-rb-list .acts{display:inline-flex;gap:4px}.dv-rb-list .acts .ho-btn.sm{height:22px;padding:0 8px;font-size:11.5px;white-space:nowrap}@media(hover:hover){.dv-rm .acts,.dv-rm .dv-hov,.dv-rb-list .acts,.dv-dchip .dv-hov{visibility:hidden}.dv-rm:hover .acts,.dv-rm:focus-within .acts,.dv-rm:hover .dv-hov,.dv-rm:focus-within .dv-hov,.dv-rb-list tr:hover .acts,.dv-rb-list tr:focus-within .acts,.dv-dchip:hover .dv-hov,.dv-dchip:focus-within .dv-hov{visibility:visible}.dv-rm:hover .h .pill,.dv-rm:focus-within .h .pill{visibility:hidden}}@media(hover:none){.dv-rm .h .pill{display:none}.dv-rm .h{padding-right:150px}}.dv-pend-help{padding:4px 0 10px;font-size:var(--text-base);color:var(--color-text-secondary)}.dv-pend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.dv-pend-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--ho-shadow-card);padding:10px 12px}.dv-pend-top{display:flex;align-items:center;gap:8px;font-size:var(--text-base)}.dv-pend-name{font-size:var(--text-sm);color:var(--ho-t2);margin-top:2px}.dv-pend-meta{margin-top:8px;font-size:var(--text-sm);display:flex;flex-wrap:wrap;gap:6px;align-items:center}.dv-pend-prev{padding:2px 8px;border-radius:var(--radius-full);background:var(--color-surface-muted)}.dv-rb-doorx{border:none;background:none;padding:0 0 0 2px;cursor:pointer;font-size:var(--text-sm);line-height:1;color:var(--color-text-tertiary)}.dv-rb-doorx:hover{color:var(--color-error-dark)}.dv-rb-doorx:disabled{cursor:not-allowed;opacity:.5}.dv-rm .slot .role.editable,.dv-dchip .nm.editable{cursor:pointer;border-bottom:1px dashed transparent}.dv-rm .slot .role.editable:hover,.dv-dchip .nm.editable:hover{border-bottom-color:var(--ho-t3);color:var(--ho-t1)}.dv-rb-gahint{font-size:12px;line-height:1.5;color:var(--ho-t3);margin-top:6px}.dv-rb-doorhint{margin-top:10px;font-size:var(--text-sm);color:var(--color-text-tertiary)}.dv-pick-roles{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:var(--text-sm);color:var(--color-text-tertiary)}.dv-pick-warn{font-size:var(--text-sm);color:var(--color-error-dark);margin-top:6px}.dv-pick-list{margin-top:10px;max-height:46vh;overflow-y:auto}.dv-pick-hint{padding:4px 0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.dv-pick-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 4px;background:transparent;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;font-size:var(--text-base)}.dv-pick-item:hover:not(:disabled){background:var(--color-surface-muted)}.dv-pick-item:disabled{cursor:default}.dv-pick-prev{font-family:var(--font-sans);color:var(--color-text-tertiary)}.dv-kiosk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3)}.dv-kiosk-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--ho-shadow-card);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.dv-kiosk-card.offline{border-style:dashed;opacity:.72}.dv-kiosk-head{display:flex;align-items:center;gap:10px}.dv-kiosk-head .k-name{font-weight:var(--font-bold);font-size:var(--text-md)}.dv-kiosk-head .k-id{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:1px}.dv-kiosk-head .k-badge{margin-left:auto;flex-shrink:0}.dv-kiosk-comps{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dv-comp{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--color-text-secondary)}.dv-comp-empty{font-size:var(--text-sm);color:var(--color-text-tertiary);font-style:italic}.dv-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--color-text-tertiary)}.dv-dot.ok{background:var(--color-success)}.dv-dot.off{background:var(--color-error)}.dv-kiosk-foot{font-size:var(--text-xs);color:var(--color-text-tertiary);border-top:1px solid var(--color-divider);padding-top:8px}.dv-grid-2.even{grid-template-columns:1fr 1fr}@media(max-width:1100px){.dv-layout.ho-with-rail{height:auto;min-height:calc(100vh - var(--ho-topnav-h));overflow:visible}.dv-grid-2.even{grid-template-columns:1fr}}.cm-layout.ho-with-rail{margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));min-height:0;overflow:hidden}.cm-layout>.ho-rail{overflow-y:auto}.cm-main{min-width:0;overflow:auto;padding:14px 18px 30px;display:flex;flex-direction:column;gap:var(--space-3)}.cm-main>.cm-ph{margin-bottom:0}.cm-actionrow{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.cm-im{display:grid;grid-template-columns:340px 1fr;flex:1;min-height:560px;overflow:hidden}.cm-list{border-right:1px solid var(--ho-line);display:flex;flex-direction:column;min-height:0}.cm-list .top{padding:10px 12px;border-bottom:1px solid var(--ho-line);display:flex;gap:8px;align-items:center}.cm-threadlist{overflow-y:auto;flex:1}.cm-cv{display:flex;gap:10px;padding:11px 12px;border-bottom:1px solid var(--ho-muted-2);cursor:pointer;align-items:flex-start}.cm-cv:hover{background:var(--ho-muted)}.cm-cv.on{background:var(--ho-p-50);box-shadow:inset 3px 0 0 var(--ho-p)}.cm-cv.blocked{opacity:.55}.cm-cv .ho-ava{width:36px;height:36px;font-size:12px}.cm-cv .c{flex:1;min-width:0}.cm-cv .n{display:flex;align-items:center;gap:6px;font-weight:700}.cm-cv .n .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cm-cv .n .rm{font:700 11px var(--ho-font-num);background:var(--ho-muted-2);padding:1px 6px;border-radius:4px;color:var(--ho-t2)}.cm-cv .n .ho-tag2{height:16px}.cm-cv .n .t{margin-left:auto;font:500 11px var(--ho-font-num);color:var(--ho-t3);white-space:nowrap}.cm-cv .p{font-size:12px;color:var(--ho-t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.cm-cv .p.un{color:var(--ho-t1);font-weight:600}.cm-cv .un-n{min-width:18px;height:18px;border-radius:9px;background:var(--ho-p);color:#fff;font:700 11px var(--ho-font-num);display:grid;place-items:center;padding:0 5px}.cm-cv .arc{padding:0 6px;height:22px;opacity:0}.cm-cv:hover .arc,.cm-cv.on .arc{opacity:1}.cm-chat{display:flex;flex-direction:column;background:var(--ho-muted);min-width:0;min-height:0}.cm-chat .h{background:#fff;border-bottom:1px solid var(--ho-line);padding:10px 16px;display:flex;align-items:center;gap:12px}.cm-chat .h .ho-ava.lg{width:36px;height:36px;font-size:13px}.cm-chat .h .n{font:700 15px var(--ho-font-num)}.cm-chat .h .m{font-size:12px;color:var(--ho-t2)}.cm-chat .msgs{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.cm-msg-wrap{display:flex;flex-direction:column;gap:10px}.cm-chat .msgs .m{max-width:62%;padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.5;position:relative;white-space:pre-wrap;word-break:break-word}.cm-chat .msgs .m.in{background:#fff;border:1px solid var(--ho-line);align-self:flex-start;border-bottom-left-radius:4px}.cm-chat .msgs .m.out{background:var(--ho-p);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.cm-chat .msgs .m.out.sys{background:var(--ho-ink-3)}.cm-chat .msgs .m.fail{background:var(--ho-bad-bg);border:1px solid #F1B8B8;align-self:flex-end;color:var(--ho-bad-dark)}.cm-chat .msgs .m .meta{display:block;font-size:10.5px;opacity:.7;margin-top:4px}.cm-chat .msgs .m .meta.fail-reason{opacity:1;font-weight:600}.cm-chat .day{align-self:center;font:600 11px var(--ho-font-body);color:var(--ho-t3);background:var(--ho-muted-2);padding:2px 10px;border-radius:9px}.cm-reason{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.cm-chat .ho-empty,.cm-threadlist .ho-empty{flex:1;padding:24px 20px}.cm-chat .reply{background:#fff;border-top:1px solid var(--ho-line);padding:10px 16px;display:flex;flex-direction:column;gap:8px}.cm-chat .reply .q{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.cm-chat .reply .q button{font:600 11.5px var(--ho-font-body);border:1px dashed var(--ho-line-strong);background:transparent;padding:3px 9px;border-radius:12px;color:var(--ho-t2);cursor:pointer}.cm-chat .reply .q button:hover{border-color:var(--ho-p);color:var(--ho-p-dark)}.cm-chat .reply textarea.ta{border-radius:10px;padding:10px 12px;min-height:60px;font-size:13px}.cm-sumline{display:flex;align-items:center;gap:16px;padding:8px 14px;background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);font-size:12.5px;color:var(--ho-t2);flex-wrap:wrap}.cm-sumline .kv{display:flex;align-items:center;gap:6px}.cm-sumline .kv b{font:700 15px var(--ho-font-num);color:var(--ho-t1);font-variant-numeric:tabular-nums}.cm-sumline .kv.ok b{color:var(--ho-ok-dark)}.cm-sumline .kv.bad b{color:var(--ho-bad-dark)}.cm-sumline .sep{width:1px;height:18px;background:var(--ho-line)}.cm-sumline .ho-btn{margin-left:auto}.cm-cv .p .st{width:8px;height:8px;border-radius:50%;background:var(--ho-t3);flex:none;display:inline-block;margin-right:6px;vertical-align:middle}.cm-cv .p .st.ok{background:var(--ho-ok)}.cm-cv .p .st.bad{background:var(--ho-bad)}.cm-cv .p .st.warn{background:var(--ho-warn)}.cm-cv.nothread{opacity:.62}.cm-cv.nothread:hover,.cm-cv.nothread.on{opacity:1}.cm-chat .msgs .m.fail .act{display:flex;gap:6px;margin-top:7px}.cm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:start}.cm-hint{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;font-size:var(--text-sm);color:var(--color-text-secondary)}.cm-hint .lbl{font-size:var(--text-xs);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.04em}.cm-hint .val{margin-top:4px;color:var(--color-text-primary)}.cm-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--ho-shadow-card)}textarea.cm-area{font-family:var(--font-mono)}.cm-preview{background:var(--color-surface-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--text-md);white-space:pre-wrap;line-height:var(--leading-relaxed)}.cm-varbar{display:flex;flex-wrap:wrap;gap:6px}.ant-btn.cm-var{font-family:var(--font-mono);color:var(--color-primary)}.cm-devst.on{color:var(--color-success-dark)}.cm-devst.off{color:var(--color-error-dark)}.cm-paircode{font-size:var(--text-2xl);letter-spacing:3px;padding:2px 10px;background:var(--color-surface-muted);border-radius:var(--radius-md);font-family:var(--font-mono)}.cm-chat .h{flex-wrap:wrap}.cm-table-wrap{overflow-x:auto;overflow-y:hidden}@media(max-width:1399px){.cm-im{grid-template-columns:minmax(240px,300px) 1fr}}@media(max-width:1199px){.cm-grid2{grid-template-columns:1fr}}@media(max-width:1100px){.cm-layout.ho-with-rail{height:auto;overflow:visible}.cm-main{overflow:visible}.cm-im{grid-template-columns:1fr}.cm-list{border-right:0;border-bottom:1px solid var(--ho-line);max-height:40vh}}.wk-layout{display:flex;margin:calc(-1 * var(--space-6));height:calc(100vh - var(--header-height));overflow:hidden}.wk-layout>.ho-rail{width:212px;min-width:212px;flex-shrink:0;overflow-y:auto}.wk-sidebar{width:220px;min-width:220px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);padding:var(--space-3) 0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1)}.wk-main{flex:1;min-width:0;overflow:auto;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.wk-s-label{font-size:10px;font-weight:var(--font-bold);color:var(--ho-t2);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-2) var(--space-4);margin-top:var(--space-2)}.wk-s-label:first-child{margin-top:0}.wk-s-item{display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;text-decoration:none;border-left:2px solid transparent}.wk-s-item:hover{background:var(--color-surface-muted);color:var(--color-text-primary)}.wk-s-item.active{background:var(--color-primary-50);color:var(--color-primary-dark);font-weight:var(--font-semibold);border-left-color:var(--color-primary)}.wk-s-item .ico{font-size:var(--text-md);width:18px;text-align:center;flex-shrink:0}.wk-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start}.wk-col{background:var(--ho-muted);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);display:flex;flex-direction:column;min-height:200px}.wk-col-head{padding:10px 12px;font-weight:600;font-size:13px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--ho-line)}.wk-col-head .cnt{margin-left:auto;font:600 11px var(--ho-font-num);background:#fff;border:1px solid var(--ho-line);padding:1px 7px;border-radius:9px;color:var(--ho-t2)}.wk-col-body{padding:8px;display:flex;flex-direction:column;gap:8px}.wk-tcard{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:8px;box-shadow:var(--ho-sh-card);padding:10px 12px;cursor:pointer}.wk-tcard:hover{box-shadow:var(--ho-sh-lift)}.wk-tcard .tt{font-weight:600;font-size:13px}.wk-tcard .mt{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11px;color:var(--ho-t3);flex-wrap:wrap}.wk-tcard .acts{margin-top:8px;display:flex;gap:6px}.wk-cat{display:inline-flex;align-items:center;gap:5px;font-size:12px}.wk-dw-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.wk-dw-tl-head{margin:var(--space-4) 0 var(--space-2);font-weight:var(--font-bold);font-size:var(--text-sm);border-top:1px solid var(--color-divider);padding-top:var(--space-3)}.wk-tl{display:flex;flex-direction:column;gap:var(--space-2)}.wk-tl-item{display:flex;gap:8px;font-size:var(--text-sm)}.wk-tl-item .dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:var(--color-primary);margin-top:6px}.wk-tl-item.ev{color:var(--color-text-tertiary)}.wk-tl-item.ev .dot{background:var(--color-border)}.wk-tl-item .bd{min-width:0}.wk-tl-item .cm-body{white-space:pre-wrap;word-break:break-word;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:6px 10px}.wk-tl-item .meta{font-size:11px;color:var(--color-text-tertiary);margin-top:2px}.wk-dw-cmt{display:flex;align-items:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.wk-dw-cmt .ant-input{flex:1}.wk-title-link{cursor:pointer}.wk-title-link:hover strong{color:var(--color-primary)}.wk-tpl-grp{margin-bottom:var(--space-4)}.wk-tpl-grp h4{margin:0 0 var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.wk-tpl-item{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:6px}.wk-tpl-item .tt{flex:1;font-size:var(--text-md)}@media(max-width:1440px){.wk-board{grid-template-columns:repeat(2,1fr)}}@media(max-width:1100px){.wk-layout{flex-direction:column;height:auto;overflow:visible}.wk-layout>.ho-rail{width:auto;min-width:0;overflow-y:visible;border-right:none;border-bottom:1px solid var(--color-border);padding:8px 10px;display:flex;flex-wrap:wrap;align-items:center;gap:2px}.wk-layout>.ho-rail>div{display:contents}.wk-layout>.ho-rail .grp{padding:0 6px}.wk-layout>.ho-rail a.on{box-shadow:none}.wk-main{overflow:visible}}@media(max-width:900px){.wk-board{grid-template-columns:1fr}}.hk-layout{margin:calc(-1 * var(--ho-page-py)) calc(-1 * var(--ho-page-px));height:calc(100vh - var(--ho-topnav-h));overflow:hidden}.hk-layout>.ho-rail{overflow-y:auto}.hk-main{min-width:0;overflow:auto;padding:var(--ho-page-py) var(--ho-page-px) 40px;display:flex;flex-direction:column;gap:var(--space-3)}.hk-room{background:var(--ho-surface);border:1px solid var(--ho-line);border-left:4px solid var(--ho-line);border-radius:8px;padding:9px 10px;cursor:pointer;box-shadow:var(--ho-sh-card)}.hk-room:hover{box-shadow:var(--ho-sh-lift)}.hk-room .no{font:700 15px var(--ho-font-num)}.hk-room .ty{font-size:11px;color:var(--color-text-secondary)}.hk-room .mt{display:flex;align-items:center;gap:5px;margin-top:6px;flex-wrap:wrap}.hk-room .ant-tag{margin-inline-end:0}.hk-staff-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.hk-staff-row .ho-sec-hd{margin:0}.hk-staff{display:flex;gap:8px;flex-wrap:wrap}.hk-staff .s{display:flex;align-items:center;gap:8px;background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:20px;padding:4px 12px 4px 4px;font-size:12px;font-weight:600}.hk-staff .s .ho-ava{width:22px;height:22px;font-size:10px}.hk-staff .s .ho-bar{width:60px}.hk-staff .s .n{font:700 12px var(--ho-font-num)}.hk-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start}.hk-col{background:var(--ho-muted);border:1px solid var(--ho-line);border-radius:var(--ho-r-md);display:flex;flex-direction:column}.hk-colh{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--ho-line);font:600 13px var(--ho-font-body);color:var(--ho-t1)}.hk-colh .ho-dot{width:9px;height:9px}.hk-colh .n{margin-left:auto;font:600 11px var(--ho-font-num);background:#fff;border:1px solid var(--ho-line);padding:1px 7px;border-radius:9px;color:var(--ho-t2)}.hk-colb{padding:8px;display:flex;flex-direction:column;gap:8px;min-height:420px}.hk-k{background:var(--ho-surface);border:1px solid var(--ho-line);border-radius:8px;padding:9px 11px;box-shadow:var(--ho-sh-card);display:flex;flex-direction:column;gap:5px;cursor:pointer}.hk-k:hover{box-shadow:var(--ho-sh-lift)}.hk-k.due{box-shadow:inset 3px 0 0 var(--ho-bad),var(--ho-sh-card)}.hk-k.done{opacity:.85}.hk-k .top{display:flex;align-items:center;gap:8px}.hk-k .no{font:700 20px/1 var(--ho-font-num)}.hk-k .ty{font-size:12px;color:var(--ho-t2);font-weight:600;min-width:0}.hk-k .ty small{display:block;font-size:11px;color:var(--ho-t3);font-weight:500}.hk-k .meta{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.hk-k .who{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ho-t2);white-space:nowrap}.hk-k .who .ho-ava{width:22px;height:22px;font-size:10px}.hk-k .urg{font:700 11px var(--ho-font-body);color:var(--ho-bad-dark);background:var(--ho-bad-bg);padding:2px 7px;border-radius:5px}.hk-k .timer{font:700 11px var(--ho-font-num);color:var(--ho-t3)}.hk-k .act{display:flex;gap:5px;margin-top:2px}.hk-k .act button{flex:1;height:26px;border-radius:6px;font-size:11.5px;font-weight:700;border:1px solid var(--ho-line);background:var(--ho-surface);color:var(--ho-t1);cursor:pointer;font-family:inherit}.hk-k .act button.p{background:var(--ho-p);border-color:var(--ho-p);color:#fff}.hk-k .act button.g{background:var(--ho-ok);border-color:var(--ho-ok);color:#fff}.hk-k .act button[disabled]{opacity:.45;cursor:not-allowed}.hk-colb .foot{text-align:center;padding:6px}.hk-m-room .ant-tag{margin-inline-end:0}.hk-assign{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}.hk-acol{background:var(--ho-muted);border:1px solid var(--ho-line);border-radius:var(--ho-r-md)}.hk-acol-head{padding:10px 12px;border-bottom:1px solid var(--ho-line);display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.hk-acol-body{padding:8px;display:flex;flex-direction:column;gap:8px;min-height:80px}.hk-pool{background:var(--ho-surface);border:1px dashed var(--ho-line-strong);border-radius:var(--ho-r-md);padding:12px}.hk-qr-img{width:220px;height:220px;background:#fff;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-md)}.hk-m{min-height:100vh;background:var(--color-bg);display:flex;flex-direction:column;max-width:480px;margin:0 auto}.hk-m-top{background:var(--color-primary);color:var(--color-text-on-primary);padding:16px 18px;position:sticky;top:0;z-index:10}.hk-m-top h1{margin:0;font-size:18px;font-weight:var(--font-bold)}.hk-m-top .sub{font-size:12px;opacity:.9;margin-top:2px}.hk-m-refresh{flex:none;min-height:40px;padding:0 12px;border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-full);background:transparent;color:inherit;font-size:13px;font-weight:600}.hk-m-refresh:disabled{opacity:.5}.hk-m-stat{display:flex;gap:10px;padding:12px 16px}.hk-m-stat .b{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px;text-align:center}.hk-m-stat .b .v{font-size:22px;font-weight:var(--font-bold);font-family:var(--font-mono)}.hk-m-stat .b .l{font-size:11px;color:var(--color-text-secondary)}.hk-m-list{flex:1;padding:4px 16px 24px;display:flex;flex-direction:column;gap:10px}.hk-m-room{background:var(--color-surface);border:1px solid var(--color-border);border-left:5px solid var(--color-border);border-radius:var(--radius-lg);padding:14px}.hk-m-room .r1{display:flex;align-items:center;gap:8px}.hk-m-room .no{font-size:22px;font-weight:var(--font-bold);font-family:var(--font-mono);flex:1}.hk-m-room .ty{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.hk-m-room .tags{display:flex;gap:6px;margin-top:8px}.hk-m-act{margin-top:12px;display:flex;gap:8px}.hk-m-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--color-slate-900);color:var(--color-text-on-primary);padding:12px 20px;border-radius:var(--radius-full);font-size:13px;z-index:50;box-shadow:var(--shadow-lg);max-width:90vw;text-align:center}.hk-m-gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;max-width:480px;margin:0 auto}.hk-m-gate h1{font-size:22px;margin:0}.hk-m-gate p{color:var(--color-text-secondary);text-align:center;margin:0}@media(max-width:1280px){.hk-board{grid-template-columns:repeat(2,1fr)}}@media(max-width:1100px){.hk-layout{height:auto;overflow:visible}.hk-main{overflow:visible}.hk-assign{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.hk-board{grid-template-columns:1fr}}@media(max-width:760px){.hk-assign{grid-template-columns:1fr}}.pf-page{display:flex;flex-direction:column;gap:14px}.pf-page>.ho-ph{margin-bottom:0}.pf-pad{padding:12px 14px}.pf-lab{font-size:12px;font-weight:600;color:var(--ho-t2);display:block;margin-bottom:4px}.pf-card-t{font-weight:600;font-size:14px;margin-bottom:2px}.pf-card-d{font-size:12px;color:var(--ho-t3);margin-bottom:8px}.pf-modal-body{display:flex;flex-direction:column;gap:12px}.pf-scroll{max-height:50vh;overflow:auto}.pf-narrow{max-width:860px}.pf-tbl{overflow-x:auto}.pf-tbl .ho-tbl code{font-family:var(--font-mono);font-size:12px}.ho-tbl tr.pf-exp>td{background:var(--ho-muted)}.pf-exp-body{display:flex;flex-direction:column;gap:10px;padding:4px 2px}.pf-form{display:flex;flex-direction:column;gap:10px}.pf-form-row{display:flex;flex-wrap:wrap;gap:8px}.pf-form-row .ho-fld{flex:1 1 190px}.pf-form-row .ho-fld.w-sm{flex-basis:110px}.pf-form-row .ho-fld.w-lg{flex-basis:320px}.ho-fld>.ho-in,.pf-in{width:100%}select.ho-in{appearance:auto}.pf-checks{display:flex;flex-wrap:wrap;gap:10px;padding:4px 0}.pf-checks label{display:flex;align-items:center;gap:5px;font-size:12px}.pf-checks label.dim{opacity:.55}.pf-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--ho-t1);color:#fff;padding:8px 16px;border-radius:10px;z-index:9999;font-size:13px;box-shadow:var(--ho-sh-pop)}.ho-tbl tr.pf-grp>td{background:var(--ho-muted);font-weight:600}.pf-mono{font-family:var(--font-mono);font-size:11px;color:var(--ho-t3)}.pf-sub{font-size:11px;color:var(--ho-t3)}.pf-err{font-size:12px;color:var(--ho-bad-dark)}.pf-ok{font-size:12px;color:var(--ho-ok-dark)}.pf-dim{opacity:.55}.pf-msg-ok{color:var(--ho-ok-dark);font-size:12px}.gu-wrap{font-family:Segoe UI,Noto Sans SC,system-ui,sans-serif;background:linear-gradient(135deg,#eef2ff,#f1f5f9,#ecfdf5);min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.gu-card{background:#fff;border-radius:24px;box-shadow:0 12px 40px #00000014;padding:32px 24px;max-width:400px;width:100%;text-align:center}.gu-emoji{font-size:44px;margin-bottom:8px}.gu-hotel{font-size:22px;font-weight:700;color:#1e293b;margin-bottom:2px}.gu-sub{font-size:13px;color:#64748b;margin-bottom:4px}.gu-state-icon{font-size:48px;margin-bottom:16px}.gu-state-title{font-size:22px;font-weight:700;margin:0 0 8px}.gu-state-title.gu-danger{color:#dc2626}.gu-state-title.gu-warn{color:#f59e0b}.gu-state-title.gu-info{color:#3b82f6}.gu-state-desc{color:#64748b;font-size:14px;line-height:1.6}.gu-state-from{color:#475569;margin-top:12px;font-size:15px;font-weight:600}.gu-info-grid{display:grid;gap:8px;margin:16px 0;text-align:left}.gu-info-row{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border-radius:10px;font-size:13px;color:#475569}.gu-info-row .gu-icon{width:20px;text-align:center;flex-shrink:0}.gu-info-row .gu-label{color:#94a3b8;font-size:11px;min-width:60px}.gu-info-row .gu-value{font-weight:600;color:#334155;flex:1}.gu-info-row .gu-value.gu-small{font-size:12px}.gu-divider{height:1px;background:#e2e8f0;margin:16px 0}.gu-section-label{display:block;text-align:left;font-size:12px;font-weight:600;color:#475569;margin-bottom:8px}.gu-reqs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.gu-req{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:8px;font-size:12px;font-weight:600}.gu-req.gu-req-code{background:#eef2ff;border:1px solid #C7D2FE;color:#4338ca}.gu-req.gu-req-geo{background:#eff6ff;border:1px solid #BFDBFE;color:#1d4ed8}.gu-code-input{width:100%;padding:14px;border-radius:12px;border:1.5px solid #E2E8F0;font-size:22px;text-align:center;letter-spacing:10px;font-weight:700;outline:none;transition:border-color .2s}.gu-code-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.gu-code-input:disabled{background:#f8fafc;color:#94a3b8}.gu-verify-btn{width:100%;padding:12px;border-radius:12px;border:none;background:#6366f1;color:#fff;font-size:14px;font-weight:700;cursor:pointer;margin-top:10px;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.gu-verify-btn:hover{background:#4f46e5}.gu-verify-btn:disabled{background:#c7d2fe;cursor:not-allowed}.gu-verified{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;background:#ecfdf5;border-radius:10px;border:1px solid #A7F3D0;color:#059669;font-size:13px;font-weight:600;margin-top:8px}.gu-unlock-btn{width:100%;padding:16px;border-radius:14px;border:none;font-size:17px;font-weight:700;cursor:pointer;margin-top:14px;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.gu-unlock-btn.gu-active{background:#2563eb;color:#fff;box-shadow:0 6px 20px #2563eb4d}.gu-unlock-btn.gu-active:hover{background:#1d4ed8;transform:translateY(-1px)}.gu-unlock-btn.gu-off{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.gu-unlock-btn.gu-working{background:#93c5fd;color:#fff;cursor:wait}.gu-msg{margin-top:10px;padding:10px 14px;border-radius:10px;font-size:13px;text-align:left}.gu-msg.gu-success{background:#ecfdf5;color:#059669;border:1px solid #A7F3D0}.gu-msg.gu-error{background:#fef2f2;color:#dc2626;border:1px solid #FECACA}.gu-geo-status{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;font-size:12px;margin-top:8px}.gu-geo-status.gu-checking{background:#eff6ff;color:#3b82f6;border:1px solid #BFDBFE}.gu-geo-status.gu-ok{background:#ecfdf5;color:#059669;border:1px solid #A7F3D0}.gu-geo-status.gu-fail{background:#fef2f2;color:#dc2626;border:1px solid #FECACA}.gu-geo-prompt{padding:16px;background:#eff6ff;border:1px solid #BFDBFE;border-radius:12px;text-align:center;margin-top:8px}.gu-geo-prompt-title{font-size:14px;font-weight:700;color:#1e293b;margin-bottom:6px}.gu-geo-prompt-desc{font-size:12px;color:#64748b;margin-bottom:12px;line-height:1.5}.gu-geo-prompt-btn{padding:10px 20px;border-radius:10px;border:none;background:#2563eb;color:#fff;font-size:13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.gu-geo-prompt-btn:hover{background:#1d4ed8}.gu-geo-denied{padding:14px;background:#fef2f2;border:1px solid #FECACA;border-radius:12px;font-size:12px;color:#dc2626;line-height:1.6;margin-top:8px;text-align:left}.gu-geo-denied b{display:block;margin-bottom:6px;font-size:13px}.gu-geo-denied ul{margin:8px 0;padding-left:0;list-style:none}.gu-geo-denied li{margin-bottom:4px}@keyframes gu-spin{to{transform:rotate(360deg)}}.gu-spinner{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;animation:gu-spin .6s linear infinite;display:inline-block}.gu-spinner.gu-spinner-blue{border-color:#3b82f64d;border-top-color:#3b82f6}.go{min-height:100vh;background:var(--color-bg);display:flex;flex-direction:column;max-width:480px;margin:0 auto}.go-top{background:var(--color-primary);color:var(--color-text-on-primary);padding:16px 18px;position:sticky;top:0;z-index:10}.go-top h1{margin:0;font-size:18px;font-weight:var(--font-bold)}.go-top .sub{font-size:12px;opacity:.9;margin-top:2px}.go-gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;max-width:480px;margin:0 auto}.go-gate h1{font-size:22px;margin:0}.go-gate p{color:var(--color-text-secondary);text-align:center;margin:0}.go-list{flex:1;padding:8px 16px 96px;display:flex;flex-direction:column;gap:8px}.go-cat{font-size:13px;font-weight:var(--font-bold);color:var(--color-text-secondary);margin:12px 2px 2px}.go-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:12px 14px;display:flex;align-items:center;gap:10px}.go-item .info{flex:1;min-width:0}.go-item .nm{font-size:15px;font-weight:var(--font-semibold);word-break:break-word}.go-item .pr{font-size:13px;color:var(--color-text-secondary);margin-top:2px}.go-step{display:flex;align-items:center;gap:8px}.go-step .q{min-width:22px;text-align:center;font-size:15px;font-weight:var(--font-bold);font-family:var(--font-mono)}.go-bar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:100%;max-width:480px;background:var(--color-surface);border-top:1px solid var(--color-border);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;z-index:20;box-shadow:var(--shadow-lg)}.go-bar .sum{display:flex;align-items:baseline;justify-content:space-between;font-size:13px;color:var(--color-text-secondary)}.go-bar .sum .amt{font-size:20px;font-weight:var(--font-bold);font-family:var(--font-mono);color:var(--color-text-primary)}.go-bar .btns{display:flex;gap:8px}.go-bar .btns>*{flex:1}.go-done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px 24px;text-align:center}.go-done .tick{font-size:44px;line-height:1}.go-done .oid{font-family:var(--font-mono);font-size:13px;color:var(--color-text-secondary);word-break:break-all}.go-done .amt{font-size:28px;font-weight:var(--font-bold);font-family:var(--font-mono)}.go-toast{position:fixed;left:50%;bottom:96px;transform:translate(-50%);background:var(--color-slate-900);color:var(--color-text-on-primary);padding:12px 20px;border-radius:var(--radius-full);font-size:13px;z-index:50;box-shadow:var(--shadow-lg);max-width:90vw;text-align:center}.property-select-container{min-height:100vh;padding:40px 24px;background:var(--ho-canvas);display:flex;justify-content:center;align-items:flex-start}.property-select-inner{width:100%;max-width:1080px}.property-select-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.property-select-header-right{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--ho-t3)}.property-select-header-right b{color:var(--ho-t2);font-weight:600}.property-select-card{height:100%;cursor:pointer;transition:.15s;display:flex;flex-direction:column}.property-select-card:hover{transform:translateY(-1px);box-shadow:var(--ho-sh-lift)}.property-select-card:focus-visible{outline:none;box-shadow:var(--ho-focus-ring)}.property-select-card .bd{flex:1}.property-select-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.property-select-card-name{font-size:15px;font-weight:600;color:var(--ho-t1);word-break:break-word}.property-select-card-brand{display:block;font-size:12px;color:var(--ho-t3);margin-top:2px}.property-select-card-meta{list-style:none;margin:10px 0 0;padding:0;color:var(--ho-t3);font-size:12.5px}.property-select-card-meta li{display:flex;align-items:flex-start;gap:6px;margin-bottom:4px}.property-select-card-meta .anticon{color:var(--ho-p);margin-top:3px}.property-select-card-foot{font-size:12px;color:var(--ho-t3);display:flex;align-items:center;gap:8px}.property-select-card-foot .anticon{margin-left:auto;color:var(--ho-t4)}
