:root{--green-900: #12331f;--green-800: #184529;--green-700: #1f5c3a;--green-600: #2f7d50;--green-500: #3a9461;--green-400: #5bb37e;--green-300: #8fcca2;--green-200: #c2e4cd;--green-100: #dcefe2;--green-50: #eef6f0;--ink: #182520;--ink-soft: #56655b;--ink-muted: #889589;--surface: #ffffff;--surface-2: #fbfdfb;--bg: #f1f5f0;--line: #e4ebe4;--line-soft: #eef2ed;--line-strong:#d4ded4;--primary: #f3d36b;--primary-hover: #e7c350;--primary-soft: #fff8db;--primary-ink: #4a3a00;--primary-border: #e8d38b;--on-primary: #3b2f0b;--success-soft: var(--green-50);--success-ink: var(--green-800);--danger: #c0392b;--danger-soft: #fdecea;--warn: #b7791f;--warn-soft: #fdf3df;--today-border: #c88719;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 22px;--r-pill: 999px;--shadow-xs: 0 1px 2px rgba(18, 51, 31, .05);--shadow-sm: 0 2px 6px rgba(18, 51, 31, .06);--shadow-md: 0 8px 22px rgba(18, 51, 31, .08);--shadow-lg: 0 22px 50px rgba(18, 51, 31, .14);--ring: 0 0 0 3px rgba(243, 211, 107, .42);color:var(--ink);background:var(--bg);font-family:Be Vietnam Pro,Inter,Noto Sans,Segoe UI,DejaVu Sans,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(1200px 600px at 100% -10%,#e6f1e8,#e6f1e800 55%),radial-gradient(900px 500px at -10% 0%,#eaf4ec,#eaf4ec00 50%),var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-sm);background:var(--primary);color:var(--on-primary);font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .14s ease,box-shadow .14s ease,transform 80ms ease,border-color .14s ease,color .14s ease;box-shadow:var(--shadow-xs)}button:hover{background:var(--primary-hover);box-shadow:var(--shadow-sm)}button:active{transform:translateY(1px)}button:focus-visible{outline:none;box-shadow:var(--ring)}input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}input::placeholder,textarea::placeholder{color:var(--ink-muted)}input:hover,select:hover,textarea:hover{border-color:var(--green-300)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}input:disabled{background:var(--line-soft);color:var(--ink-muted);cursor:not-allowed}label{display:grid;gap:6px;font-weight:600;color:var(--ink)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(900px 520px at 15% 10%,#dcefe1,#dcefe100 55%),radial-gradient(900px 520px at 90% 100%,#d2ecd9,#d2ecd900 55%),linear-gradient(135deg,#eef6f0,#f8faf5 55%,#e1eee4)}.login-panel{width:min(100%,430px);display:grid;gap:16px;padding:30px 28px;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-lg)}.login-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:2px}.login-head select,.session-box select{width:auto;min-height:36px;padding:4px 10px}.login-panel button[type=submit]{margin-top:4px;height:48px;font-size:1rem;font-weight:700}.login-panel .remember-login{display:flex;align-items:center;gap:9px;width:fit-content;cursor:pointer;font-weight:500}.login-panel .remember-login input{width:18px;height:18px;margin:0;accent-color:var(--primary)}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}.grid-panel,.panel,.master-stack,.detail-layout,.detail-main,.detail-side,.client-booking-grid{min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:#ffffffd1;-webkit-backdrop-filter:saturate(140%) blur(6px);backdrop-filter:saturate(140%) blur(6px);box-shadow:var(--shadow-sm)}.hamburger-button{width:44px;min-width:44px;min-height:44px;padding:0;display:inline-grid;place-content:center;gap:4px;border:1px solid var(--primary-border);background:var(--primary-soft);color:var(--primary-ink)}.hamburger-button:hover{background:var(--green-100)}.hamburger-button span{width:18px;height:2px;display:block;border-radius:var(--r-pill);background:var(--primary-ink)}.topbar-brand-group{min-width:0;display:flex;align-items:center;gap:10px}.topbar-brand{min-height:44px;width:auto;min-width:0;padding:0 4px;border:0;background:transparent;color:var(--ink);font-size:1.08rem;font-weight:800;text-align:left;white-space:nowrap;box-shadow:none}.topbar-brand:hover{background:transparent;color:var(--green-700)}.topbar h1,.login-panel h1{margin:0;font-size:1.45rem;font-weight:700;letter-spacing:-.01em}.kicker{margin:0 0 4px;color:var(--green-600);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.session-box{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:6px 10px;font-size:.9rem;color:var(--ink-soft)}.session-box strong{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-pill);background:var(--primary-soft);border:1px solid var(--primary-border);color:var(--primary-ink);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.session-box button{min-height:34px;padding:4px 12px;background:var(--primary-soft);border:1px solid var(--primary-border);color:var(--primary-ink)}.session-box button:hover{background:var(--green-100)}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tabs button{background:var(--primary-soft);color:var(--primary-ink);border:1px solid var(--primary-border)}.tabs button.active{background:var(--primary);color:var(--on-primary);border-color:transparent}.toast{position:fixed;top:20px;right:20px;z-index:60;max-width:min(420px,calc(100vw - 36px));padding:12px 16px;border:1px solid var(--green-200);border-radius:var(--r);background:#fff;color:var(--green-800);font-weight:600;box-shadow:var(--shadow-lg);animation:toast-in .2s cubic-bezier(.2,.8,.2,1)}.toast:before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;border-radius:999px;background:var(--green-500);vertical-align:middle;box-shadow:0 0 0 4px #3a94612e}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.panel,.grid-panel{padding:18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.panel h2,.grid-title h2{margin:0;font-size:1.18rem;font-weight:700;letter-spacing:-.01em}.grid-title{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:16px}.grid-heading{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.range-label{margin:0;color:var(--ink-soft);font-weight:600;font-size:.95rem;text-transform:capitalize}.grid-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.grid-mobile-zoom,.matrix-mobile-zoom{display:none;gap:6px}.grid-mobile-zoom button,.matrix-mobile-zoom button{width:30px;min-width:30px;min-height:30px;padding:0;border-radius:var(--r-sm);font-size:.95rem;font-weight:800}.segmented{display:inline-flex;padding:3px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface-2);gap:2px}.segmented button{min-height:34px;padding:4px 16px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-soft);font-weight:600;font-size:.88rem;box-shadow:none}.segmented button:hover{background:var(--green-50);color:var(--primary-ink)}.segmented button.active{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-xs)}.nav-controls{display:inline-flex;align-items:center;gap:6px}.nav-controls input{min-height:38px;width:auto;min-width:150px;text-align:center;font-weight:600}.nav-arrow{width:38px;min-width:38px;min-height:38px;padding:0;font-size:1.3rem;line-height:1;background:var(--primary-soft);border:1px solid var(--primary-border);color:var(--primary-ink)}.nav-arrow:hover{background:var(--green-100)}.popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.customize-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:41;width:min(92vw,320px);display:grid;gap:18px;padding:18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-lg);animation:toast-in .16s ease-out}.popover-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.popover-head h3{margin:0;font-size:1rem;font-weight:700}.popover-section{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--line-soft)}.popover-section:first-of-type{padding-top:0;border-top:0}.popover-label{margin:0;color:var(--ink-muted);font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.popover-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.popover-quick{display:inline-flex;gap:4px}.popover-quick button{min-height:28px;padding:2px 10px;font-size:.78rem;background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink-soft)}.popover-quick button:hover{background:var(--green-50);border-color:var(--green-300);color:var(--primary-ink)}.segmented{width:100%}.segmented button{flex:1}.toggle-row{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}.toggle-row input{width:18px;height:18px;min-height:auto;accent-color:var(--primary)}.room-toggle-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px 14px;max-height:200px;overflow:auto}.grid-legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:14px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.legend-item{display:inline-flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:.82rem;font-weight:600}.legend-swatch{width:16px;height:16px;border-radius:5px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-strong)}.legend-swatch.deposited{background:#d7f0de;box-shadow:inset 3px 0 0 var(--green-500),inset 0 0 0 1px #b7e2c2}.legend-swatch.checked_in{background:#fbeec0;box-shadow:inset 3px 0 #e0b53c,inset 0 0 0 1px #ecd081}.legend-swatch.full_paid{background:#dcecff;box-shadow:inset 3px 0 #3b82f6,inset 0 0 0 1px #b7d5fb}.legend-swatch.cancel{background:#ebeae3;box-shadow:inset 3px 0 #aab1a3,inset 0 0 0 1px #d8d6cc}.legend-swatch.overbooked{background:#fde4df;box-shadow:inset 0 0 0 2px var(--danger)}.legend-swatch.empty{background:var(--surface)}.legend-swatch.client-occupied{background:repeating-linear-gradient(45deg,#fff,#fff 6px,#e8eee8 6px,#e8eee8 12px);box-shadow:inset 0 0 0 1px var(--line-strong)}.legend-swatch.surcharge-only{background:repeating-linear-gradient(45deg,#fff,#fff 6px,#f3f6f1 6px,#f3f6f1 12px);box-shadow:inset 0 0 0 1px var(--line)}.legend-swatch.blocked-past{background:#dde3dd;box-shadow:inset 0 0 0 1px #c6d0c6}.booking-grid{display:grid;grid-template-columns:76px repeat(var(--rooms),minmax(84px,1fr));overflow:auto;border:1px solid var(--line);border-radius:var(--r);max-height:calc(100vh - 220px);background:var(--surface)}.booking-grid-frame{position:relative;min-width:0}.booking-grid-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:var(--r);background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--ink);font-size:.86rem;font-weight:700;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.booking-grid-loading-spinner,.matrix-tooltip-loading-spinner{width:16px;height:16px;flex:0 0 auto;border:2px solid var(--line);border-top-color:var(--green-600);border-radius:50%;animation:booking-grid-spin .7s linear infinite}@keyframes booking-grid-spin{to{transform:rotate(360deg)}}.grid-head,.date-cell,.booking-cell{min-height:52px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.grid-head,.date-cell{position:sticky;z-index:2;display:grid;place-items:center;background:var(--green-50);color:var(--green-800);font-weight:700;font-size:.9rem}.grid-head{top:0;background:linear-gradient(180deg,#eef6f0,#e7f1ea);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;box-shadow:inset 0 -1px 0 var(--line-strong)}.date-cell{left:0;z-index:3;min-width:76px;color:var(--ink);box-shadow:inset -1px 0 0 var(--line-strong)}.date-head{left:0;z-index:4}.date-cell.weekend{background:#fbf4d8;color:#6f5b14}.date-cell.holiday{background:#fde4df;color:#8a2f24}.date-cell.date-range-first,.booking-cell.date-range-first{border-top:2px solid var(--today-border)}.date-cell.date-range-last,.booking-cell.date-range-last{border-bottom:2px solid var(--today-border)}.date-cell.date-range-start-edge{border-left:2px solid var(--today-border)}.booking-cell.date-range-end-edge{border-right:2px solid var(--today-border)}.date-cell.date-range{cursor:ns-resize;-webkit-user-select:none;user-select:none}.booking-cell{position:relative;padding:5px;background:var(--surface);color:var(--ink);text-align:left;border-radius:0;font-weight:600;transition:background .12s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none}.birth-date-mask{font-variant-numeric:tabular-nums}.booking-cell:not(.empty):hover{box-shadow:inset 0 0 0 2px var(--green-400);z-index:5}.booking-cell.empty{cursor:default}.booking-cell.empty:hover{background:var(--surface-2)}.booking-cell span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700}.booking-cell .booking-cell-note-marker,.booking-cell .booking-cell-vehicle-marker{position:absolute;z-index:1;display:inline-grid;place-items:center;overflow:visible;text-overflow:clip;white-space:normal;pointer-events:none}.booking-cell .booking-cell-note-marker{top:5px;right:6px;width:8px;height:8px;border-radius:999px;background:var(--green-500);box-shadow:0 0 0 2px #ffffffc7}.booking-cell .booking-cell-vehicle-marker{top:2px;left:5px;width:18px;height:18px;color:var(--green-800);font-size:.86rem;line-height:1;filter:drop-shadow(0 1px 0 rgba(255,255,255,.7))}.booking-cell .booking-cell-vehicle-marker:before{content:"🚲"}.booking-cell .booking-cell-vehicle-marker+.booking-cell-label{padding-left:18px}.booking-cell .booking-cell-note-marker+.booking-cell-label{padding-right:14px}.booking-cell em{display:block;margin-top:2px;color:var(--ink-soft);font-size:.7rem;font-style:normal;font-weight:700}.booking-cell.deposited{--booking-hue: 136;--booking-saturation: 38%;--booking-accent: var(--green-500)}.booking-cell.checked_in{--booking-hue: 44;--booking-saturation: 78%;--booking-accent: #e0b53c}.booking-cell.full_paid{--booking-hue: 211;--booking-saturation: 72%;--booking-accent: #3b82f6}.booking-cell.cancel,.booking-cell.refund{--booking-hue: 90;--booking-saturation: 7%;--booking-accent: #aab1a3;color:var(--ink-soft)}.booking-cell.deposited,.booking-cell.checked_in,.booking-cell.full_paid,.booking-cell.cancel,.booking-cell.refund{background:hsl(var(--booking-hue) var(--booking-saturation) var(--booking-lightness, 90%));box-shadow:inset 3px 0 0 var(--booking-accent)}.booking-cell.shade-1{--booking-lightness: 95%}.booking-cell.shade-2{--booking-lightness: 93%}.booking-cell.shade-3{--booking-lightness: 91%}.booking-cell.shade-4{--booking-lightness: 89%}.booking-cell.shade-5{--booking-lightness: 87%}.booking-cell.shade-6{--booking-lightness: 85%}.booking-cell.shade-7{--booking-lightness: 83%}.booking-cell.surcharge-only{background:repeating-linear-gradient(45deg,#fff,#fff 6px,#f3f6f1 6px,#f3f6f1 12px);color:var(--ink-soft);box-shadow:inset 0 0 0 1px var(--line)}.booking-cell.client-occupied{background:repeating-linear-gradient(45deg,#fff,#fff 6px,#e8eee8 6px,#e8eee8 12px);color:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}.booking-cell.client-surcharge{color:var(--ink-soft);box-shadow:inset 0 0 0 1px var(--line-strong)}.booking-cell.blocked-past{background:#dde3dd;color:transparent;cursor:default;box-shadow:inset 0 0 0 1px #c6d0c6}.booking-cell.blocked-past:hover,.booking-cell.client-occupied:hover,.booking-cell.client-surcharge:hover{box-shadow:inset 0 0 0 1px var(--line-strong)}.booking-cell.overbooked{box-shadow:inset 0 0 0 2px var(--danger),inset 3px 0 0 var(--booking-accent)}.booking-cell.drag-selected{outline:3px solid #2f80ed;outline-offset:-3px;background:#dcecff;z-index:6}.booking-cell.drag-skipped{outline:3px dashed var(--danger);outline-offset:-3px;filter:saturate(.55);z-index:6}.booking-cell.drag-checkout{box-shadow:inset 0 -4px #2f80ed;z-index:6}.booking-cell-multi-marker{position:absolute;left:5px;top:4px;display:grid;width:18px;height:18px;place-items:center;border-radius:var(--r-pill);background:#ffffffeb;box-shadow:inset 0 0 0 1px currentColor;color:var(--danger);font-size:.95rem;font-weight:700;font-style:normal;line-height:1;z-index:2}.booking-tooltip{position:absolute;left:8px;top:calc(100% + 6px);z-index:20;display:none;min-width:200px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg)}.booking-tooltip strong{display:block;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.booking-tooltip small{display:flex;justify-content:space-between;gap:16px;padding:2px 0;color:var(--ink-soft);white-space:nowrap}.booking-cell:hover .booking-tooltip{display:block}.booking-form{display:grid;gap:18px;margin-top:18px}.date-row{display:grid;grid-template-columns:1fr;gap:14px}fieldset{margin:0;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}legend{padding:0 8px;color:var(--ink-soft);font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em}.room-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.check-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;padding:12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.check-card:hover{border-color:var(--green-300);box-shadow:var(--shadow-xs)}.check-card:has(input:checked){border-color:var(--primary);background:var(--primary-soft);box-shadow:var(--ring)}.check-card input{width:18px;height:18px;min-height:auto;accent-color:var(--primary)}.check-card span{font-weight:700}.check-card small{grid-column:2;color:var(--ink-soft)}.booking-form>button[type=submit]{height:50px;font-size:1rem;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.booking-note-field textarea{min-height:84px;resize:vertical}.nightly-fieldset{display:grid;gap:12px}.nightly-hint{margin:0;color:var(--ink-soft);font-size:.86rem;font-weight:500;line-height:1.5}.nightly-matrix-wrap{overflow:auto;max-height:460px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.nightly-matrix{display:grid;grid-template-columns:var(--matrix-label-col, 118px) repeat(var(--cols),minmax(var(--matrix-room-col, 66px),1fr));min-width:100%}.nightly-matrix-desktop{display:grid}.nightly-matrix-mobile{display:none;grid-template-columns:var(--matrix-label-col, 64px) repeat(var(--cols),minmax(var(--matrix-room-col, 44px),1fr))}.nightly-matrix>*{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.matrix-corner,.matrix-col-head{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#eef6f0,#e7f1ea);box-shadow:inset 0 -1px 0 var(--line-strong)}.matrix-corner{z-index:4;left:0;display:grid;place-items:center;color:var(--green-800);font-weight:700;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em}.matrix-col-head{display:grid;gap:1px;padding:8px 6px;border-radius:0;background-clip:padding-box;color:var(--green-800)}.matrix-col-head span{font-weight:700;font-size:.86rem;line-height:1.05;white-space:normal;overflow-wrap:anywhere}.matrix-col-head small{color:var(--ink-soft);font-size:.68rem;font-weight:600}.matrix-col-head:hover{background:var(--green-100)}.matrix-col-head.all,.matrix-row-head.all{background:var(--primary);color:var(--on-primary)}.matrix-col-head.all small,.matrix-row-head.all small{color:#ffffffd9}.matrix-row-head{position:sticky;left:0;z-index:1;display:grid;gap:1px;justify-items:start;padding:6px 10px;border-radius:0;background:var(--surface-2);color:var(--ink)}.matrix-row-head span{font-weight:700;font-size:.84rem;white-space:nowrap}.matrix-row-head small{color:var(--ink-soft);font-size:.68rem;font-weight:600;text-transform:capitalize}.matrix-row-head:hover{background:var(--green-50)}.matrix-cell{min-height:var(--matrix-cell-min, 42px);display:grid;place-items:center;padding:0;border-radius:0;background:var(--surface);color:var(--green-700);font-size:calc(1rem * var(--matrix-font-scale, 1));font-weight:800;text-decoration:none;box-shadow:none}.matrix-cell:hover{background:var(--green-50)}.matrix-cell.on{background:#d7f0de;box-shadow:inset 0 0 0 2px var(--green-400);color:var(--green-700)}.matrix-cell.on:hover{background:#c8eacf}.matrix-cell.booked{background:repeating-linear-gradient(45deg,#f0f1ee,#f0f1ee 5px,#e7e9e4 5px,#e7e9e4 10px);color:var(--ink-muted);cursor:pointer;font-size:.9rem}.matrix-cell.booked:hover,.matrix-cell.booked:focus-visible{outline:none;color:var(--danger);box-shadow:inset 0 0 0 2px var(--danger)}.matrix-tooltip{position:fixed;z-index:70;width:248px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in .12s ease-out}.matrix-tooltip.above{transform:translateY(-100%)}.matrix-tooltip-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}.matrix-tooltip-head strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matrix-tooltip dl{display:grid;gap:6px;margin:0}.matrix-tooltip dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.matrix-tooltip dt{color:var(--ink-muted);font-size:.78rem;font-weight:600}.matrix-tooltip dd{margin:0;font-size:.82rem;font-weight:600;text-align:right}.matrix-tooltip dl>.matrix-tooltip-note{display:grid;gap:3px;padding-top:6px;border-top:1px solid var(--line-soft)}.matrix-tooltip-loading{display:flex;align-items:center;gap:8px;min-height:64px;color:var(--ink-muted);font-size:.8rem;font-weight:650}.matrix-tooltip-error{min-height:48px;margin:0;color:var(--danger);font-size:.8rem;line-height:1.4}@media (prefers-reduced-motion: reduce){.booking-grid-loading-spinner,.matrix-tooltip-loading-spinner{animation:none}}.matrix-tooltip-note dd{max-height:112px;overflow-y:auto;overflow-wrap:anywhere;white-space:pre-wrap;text-align:left;line-height:1.4}.tooltip-room-stay{display:block}.matrix-tooltip-booking-list{display:grid;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft)}.matrix-tooltip-booking-list button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:36px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-soft);color:var(--ink);text-align:left}.matrix-tooltip-booking-list span{display:grid;min-width:0}.matrix-tooltip-booking-list strong,.matrix-tooltip-booking-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matrix-tooltip-booking-list small{color:var(--ink-muted);font-size:.72rem}.matrix-tooltip-foot{display:block;margin-top:10px;padding-top:8px;border-top:1px solid var(--line-soft);color:var(--green-600);font-size:.78rem;font-weight:700}.matrix-col-head:disabled{cursor:not-allowed;opacity:.5}.matrix-col-head:disabled:hover{background:linear-gradient(180deg,#eef6f0,#e7f1ea)}.nightly-summary{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);color:var(--ink-soft);font-size:.9rem}.nightly-summary strong{color:var(--green-700);font-size:1.05rem}.booking-detail-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;overflow:auto;padding:18px;background:radial-gradient(900px 500px at 100% -5%,#e7f1ea,#e7f1ea00 55%),var(--bg)}.detail-toolbar{max-width:1240px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:0 auto 18px}.detail-toolbar-title{display:flex;align-items:flex-start;gap:12px;min-width:0}.detail-menu-button{margin-top:2px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-xs)}.detail-toolbar h2{margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;letter-spacing:-.02em}.breadcrumb{margin:0 0 6px;color:var(--ink-muted);font-weight:600;font-size:.85rem}.detail-toolbar button{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink)}.detail-toolbar button:hover{background:var(--surface-2);border-color:var(--green-300)}.detail-layout{max-width:1240px;display:grid;gap:16px;margin:0 auto}.detail-main,.detail-side,.overbooking-stack{display:grid;gap:16px}.detail-card{min-width:0;max-width:100%;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.detail-card:has(.time-input-24),.detail-card:has(.date-time-local-24){overflow:visible}.detail-card:has(.time-input-24:focus-within),.detail-card:has(.date-time-local-24:focus-within){position:relative;z-index:35}.detail-card-title{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface) 0%,var(--surface-2) 100%)}.detail-card h3{margin:0;font-size:1rem;font-weight:700;letter-spacing:-.005em}.booking-info-grid,.payment-grid,.side-info-grid{display:grid;grid-template-columns:1fr;gap:18px;padding:20px}.quick-message-bar{display:grid;gap:10px;padding:16px 20px 20px;border-top:1px solid var(--line)}.quick-message-bar label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase}.quick-message-bar select{width:100%;min-width:0}.quick-message-actions{display:flex;flex-wrap:wrap;gap:8px}.quick-message-preview-card .detail-card-title{background:var(--surface)}.quick-message-preview-text{width:calc(100% - 40px);min-height:260px;margin:20px;resize:vertical;white-space:pre-wrap}.side-edit-form,.guest-form{display:grid;gap:14px;padding:18px 20px 20px;position:relative}.guest-form-fields{display:grid;gap:14px;min-width:0;margin:0;padding:0;border:0}.guest-form-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--surface) 88%,transparent);font-weight:700}.loading-spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:cccd-spin .8s linear infinite}@keyframes cccd-spin{to{transform:rotate(360deg)}}.guest-form-note{text-align:left}.catalog-load-error{display:flex;align-items:center;gap:8px;margin-top:6px}.catalog-load-error .error-text{flex:1;margin:0}.catalog-load-error .secondary-button{flex:0 0 auto;min-height:44px}.cccd-image-box{display:grid;gap:14px;padding:12px;border:1px dashed var(--line-strong);border-radius:8px;background:var(--surface-2);cursor:text}.cccd-image-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.visually-hidden-file{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.cccd-paste-target{margin:0;color:var(--muted);text-align:center}.cccd-image-box:focus-visible{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.cccd-image-box:focus-visible .cccd-paste-target{color:var(--ink)}.cccd-image-box[aria-disabled=true]{cursor:default;opacity:.65}.camera-capture-dialog{width:min(520px,calc(100vw - 28px))}.cccd-camera-preview{width:100%;max-height:70vh;border-radius:8px;background:#111;object-fit:contain}.autocomplete-field{position:relative}.autocomplete-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;right:0;display:grid;gap:4px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}.nationality-menu{max-height:292px}.autocomplete-option{display:grid;gap:2px;width:100%;padding:10px 12px;border:0;border-radius:10px;color:var(--ink);text-align:left;background:transparent;cursor:pointer}.autocomplete-option:hover,.autocomplete-option:focus-visible{background:var(--primary-soft)}.autocomplete-option span,.autocomplete-empty{color:var(--muted);font-size:.9rem}.autocomplete-empty{margin:0;padding:8px 10px}.guest-card-list{display:grid;gap:12px;padding:16px 20px 20px}.guest-card{display:grid;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.guest-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.guest-card-head strong{min-width:0;overflow-wrap:anywhere;font-size:.98rem}.guest-card-grid{display:grid;grid-template-columns:1fr;gap:12px}.guest-stay-screen{display:grid;gap:16px}.guest-stay-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.guest-stay-room-list{display:grid;gap:16px}.guest-stay-collapse{display:grid;gap:12px}.guest-stay-collapse-toggle{width:100%;min-height:44px;display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs);text-align:left}.guest-stay-collapse-toggle:hover{border-color:var(--green-300);background:var(--green-50)}.guest-stay-collapse-toggle strong{min-width:0;overflow-wrap:anywhere}.guest-stay-collapse-toggle>span:last-child{min-width:30px;min-height:28px;display:inline-grid;place-items:center;border-radius:var(--r-pill);background:var(--primary);color:var(--on-primary);font-size:.84rem;font-weight:800}.guest-stay-collapse-icon{width:28px;height:28px;display:inline-grid;place-items:center;border:1px solid var(--primary-border);border-radius:var(--r-sm);background:var(--primary-soft);color:var(--primary-ink);font-size:.9rem;font-weight:900;line-height:1}.guest-stay-room{overflow:hidden;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.guest-stay-room-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--primary-soft)}.guest-stay-room-head h3{margin:0;color:var(--primary-ink);font-size:1.08rem;font-weight:800}.guest-stay-room-head span{min-width:34px;min-height:30px;display:inline-grid;place-items:center;border-radius:var(--r-pill);background:var(--primary);color:var(--on-primary);font-weight:800}.guest-stay-room-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.guest-stay-table{display:grid;overflow:auto;padding:8px 18px 16px}.guest-stay-table-head,.guest-stay-table-row{display:grid;grid-template-columns:minmax(120px,1fr) 150px 130px 90px;min-width:560px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-soft)}.guest-stay-table.three-col .guest-stay-table-head,.guest-stay-table.three-col .guest-stay-table-row{grid-template-columns:minmax(140px,1fr) 150px 130px;min-width:440px}.guest-stay-table.five-col .guest-stay-table-head,.guest-stay-table.five-col .guest-stay-table-row{grid-template-columns:minmax(140px,1fr) 110px 90px 150px 130px;min-width:680px}.guest-stay-table-row span{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.linklike{border:0;background:none;padding:0;font:inherit;font-weight:inherit;color:var(--primary-ink);text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}.linklike:hover{color:var(--primary-hover)}.guest-stay-table-row:last-child{border-bottom:0}.guest-stay-table-head{color:var(--ink-muted);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.section-title{margin:4px 0 -4px;font-size:.95rem;font-weight:800;color:var(--ink)}.room-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:12px}.room-status-card{min-width:0;display:grid;gap:8px;align-content:start;padding:14px;border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-xs)}.room-status-card.available{border-left-color:var(--green-600)}.room-status-card.occupied{border-left-color:var(--warn)}.room-status-card.needs_cleaning{border-left-color:var(--danger)}.room-status-card.cleaning{border-left-color:#2f80ed}.room-status-card.done{border-left-color:var(--green-600)}.room-status-card-head{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px}.room-status-card-head strong{min-width:0;font-size:1.02rem;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-status-chip{flex:0 1 auto;min-width:0;padding:3px 10px;border-radius:var(--r-pill);font-size:.72rem;font-weight:800;white-space:nowrap}.room-status-chip.available{background:var(--success-soft);color:var(--success-ink)}.room-status-chip.occupied{background:var(--warn-soft);color:var(--warn)}.room-status-chip.needs_cleaning{background:var(--danger-soft);color:var(--danger)}.room-status-chip.cleaning{background:#e7f0fd;color:#2f80ed}.room-status-chip.done{background:var(--success-soft);color:var(--success-ink)}.room-status-card-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.room-status-chip.door-open-waiting{background:#e7f0fd;color:#1f63a8;border:1px solid #bdd7f4}.room-status-sub{margin:0;font-size:.82rem;color:var(--ink-soft)}.room-status-meta{margin:0;font-size:.74rem;color:var(--ink-muted);overflow-wrap:anywhere}.vehicle-events-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.vehicle-event-card{gap:10px}.vehicle-event-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,.75fr);gap:8px 10px;align-items:end}.vehicle-event-grid div,.vehicle-event-grid label{min-width:0;display:grid;gap:3px}.vehicle-event-grid span,.vehicle-event-note span{color:var(--ink-muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.vehicle-event-grid strong{min-width:0;color:var(--ink);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-event-grid select{min-height:34px;padding:5px 8px;font-size:.78rem}.vehicle-event-note{line-height:1.4}.room-inline-action{display:inline-flex;width:fit-content;margin-top:4px;font-size:.76rem;line-height:1.2}.client-room-actions,.client-room-card-actions{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.client-room-card-actions{justify-content:space-between}.room-card-action{justify-self:start;margin-top:4px;padding:7px 12px;min-height:auto;font-size:.8rem}.room-service-dialog{display:grid;gap:14px}.room-status-action{justify-self:start;margin-top:2px;padding:7px 14px;border:0;border-radius:var(--r-sm);background:var(--primary);color:var(--on-primary);font-weight:700;font-size:.82rem;cursor:pointer}.room-status-action:hover{background:var(--primary-hover)}.room-status-action.finish{background:#2f80ed}.room-status-action.finish:hover{background:#1f6fd8}.room-status-action:disabled{opacity:.6;cursor:progress}.today-door-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.today-door-actions .secondary-button{flex:1 1 120px}.room-tuya-controls{margin-top:0}.room-status-cell .room-tuya-controls,.client-room-card-actions .room-tuya-controls{flex:1 1 100%}.room-status-cell .room-tuya-controls .secondary-button,.client-room-card-actions .room-tuya-controls .secondary-button{flex:0 1 auto;min-height:32px;padding:6px 10px;font-size:.76rem}.door-open-long-text{color:var(--green-600);font-weight:700}.room-expected-time{font-size:1rem;font-weight:700}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:12px;background:#1825206b}.confirm-dialog{width:min(100%,420px);display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-lg)}.confirm-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.confirm-dialog-head h3{margin:2px 0 0;font-size:1.05rem}.confirm-dialog-head .icon-button{min-width:36px;width:36px;min-height:36px}.confirm-dialog-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.kbtt-login-dialog label{display:grid;gap:6px;font-weight:700;color:var(--muted)}.kbtt-login-dialog input{width:100%}.room-table.with-status .room-table-head,.room-table.with-status .room-table-row{grid-template-columns:minmax(0,.65fr) minmax(0,.55fr) minmax(0,1.5fr) minmax(0,.75fr) minmax(0,.75fr) minmax(0,1fr) minmax(0,.85fr);min-width:0}.booking-detail-page .admin-room-desktop-table{overflow-x:hidden}.booking-detail-page .admin-room-desktop-table .room-table-row>span,.booking-detail-page .admin-room-desktop-table .room-table-head>span{min-width:0;overflow-wrap:anywhere}.room-status-cell{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.room-status-cell select{width:100%}.room-operation-state-control{display:grid;gap:6px;width:100%;min-width:0;color:var(--ink-muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.room-operation-state-control select{width:100%}.base-dialog textarea{resize:vertical;min-height:84px}.room-status-na{color:var(--ink-muted)}.room-remove{border:0;background:var(--danger-soft);color:var(--danger);border-radius:var(--r-pill);width:22px;height:22px;line-height:1;font-size:1rem;font-weight:800;cursor:pointer}.room-edit-actions{margin-top:12px;display:flex;justify-content:flex-start}.custom-pricing-toggle{width:fit-content;display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;color:var(--ink);font-size:.86rem;font-weight:800}.custom-pricing-toggle input{width:18px;min-height:auto;height:18px;accent-color:var(--primary)}.room-edit-toggles{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.room-edit-toggles .custom-pricing-toggle{margin:0}.admin-room-mobile-list{display:none}.admin-room-mobile-list.desktop-edit-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;padding:12px}.admin-room-desktop-table.editing-hidden{display:none}.client-room-card-head>div,.admin-room-card .client-room-card-head>div{min-width:0;display:grid;gap:2px}.client-room-card-head span,.admin-room-card .client-room-card-head span{color:var(--ink-soft);font-size:.78rem;font-weight:700}.room-card-date-fields{display:grid;gap:8px}.room-card-date-fields label,.date-time-step-field{display:grid;gap:4px;color:var(--ink-muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.date-time-step-field input{min-height:36px;padding:6px 8px;font-size:.86rem}.time-input-24{position:relative;display:block;min-width:0}.time-input-24:focus-within{z-index:120}.time-input-24 input{width:100%;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.time-input-menu{position:absolute;z-index:140;top:calc(100% + 4px);left:0;width:min(140px,100%);max-height:210px;overflow-y:auto;display:grid;padding:6px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow)}.time-input-menu button{min-height:30px;justify-content:flex-start;padding:4px 8px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--ink);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.time-input-menu button:hover,.time-input-menu button.active{background:var(--primary-soft);color:var(--primary-ink)}.date-time-local-24{display:grid;grid-template-columns:minmax(130px,1fr) minmax(88px,.6fr);gap:8px;min-width:0}.date-time-local-24>input{min-width:0}.money-inline-input{min-width:0;max-width:128px;min-height:36px;padding:6px 8px}.room-picker{position:fixed;z-index:60;top:50%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px));max-height:70vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:16px}.room-picker-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.room-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin-top:4px}.room-picker-card{display:grid;gap:4px;min-height:72px;padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;text-align:left}.room-picker-card-main{min-width:0;display:grid;gap:2px}.room-picker-card:hover{border-color:var(--primary);background:var(--primary-soft)}.room-picker-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:1.08rem;line-height:1.2}.room-picker-card small{color:var(--ink-muted);font-size:.74rem}.room-date-cell{display:grid;gap:6px;min-width:0}.room-date-cell .date-picker-field span{font-size:.72rem}.room-name-cell{display:grid;gap:4px;align-content:start;min-width:0}.room-type-cell{display:grid;align-content:start;justify-items:start;gap:6px}.room-type-cell .soft-chip{min-height:30px;padding:4px 12px;font-size:.9rem;white-space:nowrap}.info-edit-field{display:grid;gap:5px;font-size:.78rem;font-weight:600;color:var(--ink-muted)}.info-item{display:grid;gap:5px;min-width:0}.info-item strong{color:var(--ink-muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.info-item span{min-width:0;color:var(--ink);font-size:.98rem;font-weight:600;overflow-wrap:anywhere}.soft-chip{display:inline-block;width:fit-content;padding:3px 10px;border:1px solid var(--primary-border);border-radius:var(--r-pill);background:var(--primary-soft);color:var(--primary-ink);font-weight:700;font-size:.84rem}.room-table{display:grid;overflow:auto;padding:8px 20px 18px}.room-table-head,.room-table-row{display:grid;grid-template-columns:120px 80px 190px 120px 100px;min-width:650px;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.room-table-row:last-child{border-bottom:0}.room-table-head.no-service,.room-table-row.no-service{grid-template-columns:120px 90px minmax(210px,1fr) 130px;min-width:560px}.room-table-head.no-service.with-actions,.room-table-row.no-service.with-actions{grid-template-columns:110px 90px minmax(210px,1fr) 120px minmax(150px,.8fr);min-width:720px}.booking-detail-page .drawer-actions{padding:0 20px 20px}.detail-note,.empty-state{margin:0;padding:18px 20px;color:var(--ink-soft);font-weight:500}.empty-state{display:grid;place-items:center;min-height:80px;text-align:center;color:var(--ink-muted)}.padded-text{padding:18px 20px}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid transparent;border-radius:var(--r-pill);background:#edece5;color:var(--ink-soft);font-weight:700;font-size:.84rem;line-height:1}.status-chip:before{content:"";width:7px;height:7px;border-radius:999px;background:currentColor;opacity:.85}.status-chip.pending{background:var(--warn-soft);border-color:#f0d39a;color:#97601a}.status-chip.deposited{background:#dcf0e2;border-color:var(--green-200);color:var(--green-700)}.status-chip.checked_in{background:#fbeec0;border-color:#ecd081;color:#7a5a08}.status-chip.full_paid{background:#dcecff;border-color:#b7d5fb;color:#1f62b8}.status-chip.cancel,.status-chip.refund{background:#eceae3;border-color:#d8d6cc;color:var(--ink-soft)}.status-chip.stay-not_arrived{background:#eef1ec;border-color:var(--line);color:var(--ink-soft)}.status-chip.stay-partial_checked_in,.status-chip.stay-partial_checked_out{background:#e7f0fd;border-color:#b9d6fb;color:#1f6fd8}.status-chip.stay-checked_in{background:#fbeec0;border-color:#ecd081;color:#7a5a08}.status-chip.stay-checked_out{background:#d2f0e8;border-color:#a3ddd0;color:#0f6b5c}.icon-button{width:38px;min-width:38px;min-height:38px;padding:0;display:inline-grid;place-items:center;border-radius:var(--r-sm);font-size:1.05rem;font-weight:800;line-height:1;background:var(--primary-soft);border:1px solid var(--primary-border);color:var(--primary-ink);box-shadow:none}.icon-button:hover{background:var(--green-100)}.icon-button span{transform:translateY(-1px)}.icon-button:disabled{cursor:not-allowed;opacity:.5}.danger-button{min-height:34px;border-color:#e7c4bf;background:var(--danger-soft);color:var(--danger)}.danger-button:hover{background:#fbe0dc}.secondary-button,.secondary-link{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink)}.secondary-button:hover,.secondary-link:hover{background:var(--surface-2);border-color:var(--green-300)}.secondary-link{min-height:42px;display:inline-grid;place-items:center;padding:0 14px;border-radius:var(--r-sm);font-weight:700;text-decoration:none}.card-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.card-actions button{min-height:36px;font-size:.86rem;font-weight:700}.card-actions button:not(.icon-button),.table-actions button:not(.icon-button){padding:6px 14px}.compact-field{display:grid;gap:4px;min-width:0;color:var(--ink-muted);font-size:.72rem;font-weight:700;text-transform:uppercase}.compact-field select{width:100%;min-width:0;min-height:36px;padding:6px 34px 6px 10px;font-size:.86rem;font-weight:700;text-transform:none}.master-stack{display:grid;gap:10px}.client-rate-limit-config .table-head{align-items:flex-start;gap:16px}.client-rate-limit-config .table-head p,.client-rate-limit-config .field-hint{color:var(--ink-soft);margin:4px 0 0}.client-rate-limit-config>label{display:block;font-weight:700;margin-top:16px}.client-rate-limit-control{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.client-rate-limit-control input{max-width:240px;min-height:44px}.finance-screen,.job-admin-screen,.user-management-screen{margin:-6px}.data-table{overflow:auto;margin-top:14px;border:1px solid var(--line);border-radius:var(--r)}.table-wrap{max-width:100%;overflow-x:auto;margin-top:14px;border:1px solid var(--line);border-radius:var(--r)}.table-wrap .data-table{margin-top:0;border:0;border-radius:0}.table-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.table-actions{display:flex;gap:8px}.table-actions button{min-height:36px;padding:4px 12px}.tuya-room-config .table-head p{margin:4px 0 0;color:var(--ink-soft)}.tuya-config-message{padding:10px 12px;border-radius:8px;background:var(--surface-2)}.tuya-settings-row{display:flex;align-items:end;gap:10px;margin:16px 0}.tuya-settings-row label{display:grid;gap:6px;max-width:320px}.client-door-password-list{display:grid;gap:10px;padding:12px 16px 4px}.client-door-password{display:grid;gap:4px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft, #f7f7f5)}.client-door-password-value{font-size:1.65rem;letter-spacing:.18em;font-variant-numeric:tabular-nums}.tuya-room-config-list{display:grid;gap:12px}.tuya-room-config-card{padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface)}.tuya-room-config-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.tuya-room-config-head h3{margin:0}.tuya-config-validation{padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700}.tuya-config-validation.complete{background:var(--success-soft);color:var(--success-ink)}.tuya-config-validation.incomplete{background:var(--danger-soft);color:var(--danger)}.tuya-mapping-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:12px}.tuya-mapping-grid label{display:grid;gap:5px;color:var(--ink-soft);font-size:.86rem;font-weight:700}@media (max-width: 640px){.tuya-settings-row{align-items:stretch;flex-direction:column}.tuya-settings-row label{max-width:none}}.dklt-payload-actions{display:flex;gap:6px;flex-wrap:wrap}.dklt-payload-actions button{min-height:34px;padding:6px 10px;white-space:nowrap}.dklt-payload-dialog{width:min(960px,100%);max-height:calc(100vh - 24px);overflow:auto}.dklt-response-json{max-height:70vh;margin:0;padding:14px;overflow:auto;border-radius:var(--r-md);background:#14201b;color:#e9fff4;font-size:.78rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.job-table-head{align-items:center;flex-wrap:wrap}.job-table-head h2{font-size:clamp(1.2rem,2vw,1.85rem)}.job-table-controls{display:flex;flex:1 1 520px;justify-content:flex-end;align-items:center;gap:12px;min-width:min(100%,320px)}.job-date-range{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;font-weight:800;color:var(--ink);cursor:pointer}.job-date-range-wrap{position:relative}.job-filter-search{min-width:72px}.job-date-icon{position:relative;width:20px;height:20px;border:2px solid var(--muted);border-radius:4px;flex:0 0 auto}.job-date-icon:before{content:"";position:absolute;left:-2px;right:-2px;top:4px;border-top:2px solid var(--muted)}.job-date-icon:after{content:"";position:absolute;left:4px;right:4px;top:-5px;height:6px;border-left:2px solid var(--muted);border-right:2px solid var(--muted)}.job-date-range input{width:132px;min-height:40px;padding:0;border:0;background:transparent;font:inherit;color:var(--ink)}.job-date-range input:focus{outline:none}.job-date-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;gap:14px;min-width:360px;padding:16px 22px 22px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.job-calendar-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;text-align:center;font-size:1.05rem}.job-calendar-nav{width:32px;height:32px;border:0;background:transparent;color:var(--muted);font-size:1.35rem;font-weight:900}.job-calendar-nav:not(:disabled):hover{background:var(--soft);color:var(--ink)}.job-calendar-weekdays,.job-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(32px,1fr));gap:0;text-align:center}.job-calendar-weekdays{color:var(--muted);font-size:.84rem}.job-calendar-day{min-width:0;height:46px;border:0;border-radius:0;background:transparent;color:var(--ink);font-weight:700}.job-calendar-day.muted{color:#cbd5e1}.job-calendar-day.in-range{background:#dbeafe}.job-calendar-day.range-start,.job-calendar-day.range-end{border-radius:999px;background:#1d6fd1;color:#fff}.job-calendar-day:not(.range-start):not(.range-end):hover{border-radius:999px;background:var(--soft)}.job-pagination-wrap{display:flex;align-items:center;gap:10px;width:fit-content;max-width:100%;margin:12px 0 0 auto;padding:8px 18px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 2px 10px #0f172a1f}.job-page-button,.job-page-number{min-width:28px;min-height:28px;border:0;border-radius:6px;padding:0 7px;background:transparent;color:var(--muted);font-weight:900}.job-page-button:not(:disabled):hover,.job-page-number:not(.active):hover{background:var(--soft);color:var(--ink)}.job-page-number.active{background:#3b9bff;color:#fff}.job-page-ellipsis,.job-page-range{color:var(--muted);font-weight:900}.job-page-range{color:var(--ink)}.job-table-pager{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.job-page-arrow{width:28px;height:44px;border:0;padding:0;background:transparent;color:var(--muted);font-size:2.2rem;line-height:1}.job-page-arrow:not(:disabled):hover{color:var(--ink);background:transparent}.job-table-page{min-height:44px;display:grid;align-content:center;color:var(--ink);font-size:1.05rem;line-height:1.15}.job-table-page strong,.job-table-page small{display:block;font-weight:900}.job-table-page small{font-size:.95rem}@media (max-width: 760px){.job-table-controls,.job-table-head{align-items:stretch}.job-table-controls{justify-content:flex-start}.job-date-range{flex:1 1 100%}}.user-table table{min-width:980px}.user-table input,.user-table select{min-width:150px}.user-table input[type=password]{min-width:210px}.public-content-toolbar .table-head,.public-content-toolbar .table-actions{min-width:0;max-width:100%;flex-wrap:wrap}.public-content-toolbar .table-actions{flex:1 1 24rem;justify-content:flex-end}.public-content-toolbar .table-actions select{flex:1 1 12rem;min-width:min(100%,12rem);max-width:100%}.public-content-screen,.public-content-screen>.panel{min-width:0;max-width:100%}.public-content-grid .form-grid,.public-content-room .form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.public-content-card-grid,.public-content-link-grid,.public-content-room-list{display:grid;gap:1rem}.public-content-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr))}.public-content-link-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.public-content-card,.public-content-room{min-width:0;max-width:100%;border:1px solid var(--line);border-radius:var(--r);padding:1rem;background:var(--surface)}.public-content-card .table-head.compact,.public-content-room .table-head.compact{align-items:flex-start;flex-wrap:wrap;margin-bottom:.75rem}.public-content-card .table-head.compact>h3,.public-content-room .table-head.compact>h3{flex:1 1 14rem;min-width:0;overflow-wrap:anywhere}.public-content-card .table-head.compact>.table-actions,.public-content-room .table-head.compact>.table-actions{flex:0 1 auto;flex-wrap:wrap;justify-content:flex-end;max-width:100%}.public-content-card .table-head.compact .table-actions button,.public-content-room .table-head.compact .table-actions button{max-width:100%;white-space:normal}.public-content-card h3,.public-content-room h3{margin:0}.public-content-card label,.public-content-room label{display:grid;gap:.35rem;margin-bottom:.75rem}.public-content-card input,.public-content-card textarea,.public-content-room input,.public-content-room textarea,.public-content-grid input,.public-content-grid textarea{width:100%}.table-checkbox{display:inline-flex;align-items:center;grid-template-columns:none;gap:8px;white-space:nowrap}.table-checkbox input{width:18px;min-width:18px;min-height:18px;margin:0}.role-chip,.user-status{display:inline-flex;align-items:center;min-height:28px;padding:3px 9px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-soft);font-size:.78rem;font-weight:700;white-space:nowrap}.user-status.active{border-color:var(--primary-border);background:var(--primary-soft);color:var(--primary-ink)}.user-status.inactive{border-color:#e7c4bf;background:var(--danger-soft);color:var(--danger)}table{width:100%;border-collapse:collapse;min-width:620px}th,td{padding:11px 14px;border-bottom:1px solid var(--line-soft);text-align:left;font-size:.88rem}th{position:sticky;top:0;background:var(--green-50);color:var(--green-800);font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}tbody tr:nth-child(2n) td{background:var(--surface-2)}tbody tr:hover td{background:var(--green-50)}td input{min-height:36px}.compact-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.86rem;font-weight:700;white-space:nowrap}.compact-toggle input{width:18px;height:18px;min-height:auto;accent-color:var(--primary)}.time-pair{display:grid;grid-template-columns:minmax(88px,1fr) auto minmax(88px,1fr);align-items:center;gap:6px}.data-table td input[type=time],.data-table td input[type=number],.data-table td select,.data-table td textarea{min-width:88px}.data-table td textarea{min-width:320px;max-width:520px;resize:vertical}.job-settings-section{overflow:visible}.job-settings-table{min-width:1080px}.job-settings-table td:first-child strong{display:block;line-height:1.25}.job-settings-table td:first-child small{display:block;margin-top:4px;color:var(--ink-muted);word-break:break-word}.job-settings-table input[type=checkbox]{width:18px;height:18px;min-height:auto;accent-color:var(--primary)}.job-setting-status{width:fit-content;padding:3px 8px;border-radius:var(--r-pill);font-size:.78rem}.job-setting-status.enabled{border:1px solid var(--primary-border);background:var(--primary-soft);color:var(--primary-ink)}.job-setting-status.disabled{border:1px solid var(--line-strong);background:var(--line-soft);color:var(--ink-soft)}.job-setting-description{min-width:260px;white-space:normal}.finance-form{grid-template-columns:1fr}.finance-filter-section,.finance-expense-section,.finance-table-section,.finance-form,.summary-grid{min-width:0;width:100%}.finance-expense-form button[type=submit]{min-height:42px;font-weight:700}.finance-expense-paid-toggle{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-weight:700;cursor:pointer}.finance-expense-paid-toggle input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:var(--primary)}.finance-expense-paid-toggle:has(input:focus-visible){outline:3px solid var(--primary-border);outline-offset:2px}.finance-expense-paid-toggle:has(input:disabled){cursor:progress;opacity:.65}.finance-expense-paid-cell{text-align:center}.finance-expense-row-toggle{justify-content:center;width:44px;padding:8px}.finance-tabs-section{padding:10px}.finance-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}.finance-tabs button{min-height:42px;padding:8px 10px;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--ink-soft);font-weight:800}.finance-tabs button.active{border-color:var(--primary-border);background:var(--primary-soft);color:var(--primary-ink)}.finance-metric{display:grid;gap:6px;padding:16px}.finance-metric span{color:var(--ink-muted);font-size:.78rem;font-weight:700}.finance-metric strong{color:var(--green-700);font-size:1.2rem;line-height:1.25;overflow-wrap:anywhere}.finance-metric.expense strong{color:var(--danger)}.finance-metric.net strong{color:var(--ink)}.finance-expense-edit-list{display:grid;gap:10px;padding:0 16px 16px}.finance-expense-edit-row{display:grid;grid-template-columns:64px minmax(120px,160px) minmax(150px,180px) minmax(220px,1fr) minmax(150px,180px) minmax(180px,220px) max-content;gap:10px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);overflow-x:auto}.finance-expense-edit-row>strong{align-self:center}.finance-expense-edit-row label{display:grid;gap:6px;min-width:0;color:var(--ink-muted);font-size:.76rem;font-weight:700;text-transform:uppercase}.finance-expense-edit-row input,.finance-expense-edit-row select{width:100%;min-width:0}.finance-header-filter{width:180px}.finance-table-section .table-head{align-items:flex-end}.finance-table-section .card-actions{min-width:0;flex:1}.finance-filter-group{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;width:100%;min-width:0;flex-wrap:nowrap;overflow-x:auto}.finance-filter-keyword{width:240px}@media (min-width: 760px){.finance-form{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-expense-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.finance-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-screen,.job-admin-screen{margin:-8px}}@media (max-width: 759px){.finance-table-section .table-head,.finance-table-section .card-actions,.finance-filter-group{display:grid;grid-template-columns:1fr;align-items:stretch;width:100%}.finance-filter-group{overflow-x:visible}.finance-header-filter,.finance-filter-keyword{width:100%}.finance-tabs,.finance-expense-edit-row{grid-template-columns:1fr}}.error-text{margin:0;color:var(--danger);font-weight:600}.warning-text{margin:0;color:#8a5a00;background:#fff7d6;border:1px solid #efd27a;border-radius:var(--r-sm);font-weight:700}.hint{margin:0;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);border:1px dashed var(--line-strong);color:var(--ink-soft);font-size:.86rem;text-align:center}.date-picker-field{position:relative}.date-picker-shell{position:relative;min-height:44px;display:grid;align-items:center;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-weight:600;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease}.date-picker-shell:hover{border-color:var(--green-300)}.date-picker-shell:focus-within{border-color:var(--primary);box-shadow:var(--ring)}.date-picker-shell input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:0;padding:0;border:0;opacity:0;cursor:pointer}.detail-toolbar-actions{display:flex;align-items:center;gap:8px}.transaction-table{display:grid;width:100%;max-width:100%;min-width:0;overflow:auto;padding:8px 20px 18px}.transaction-table-head,.transaction-table-row{display:grid;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft)}.transaction-table-row:last-child{border-bottom:0}.transaction-table:not(.editing) .transaction-table-head,.transaction-table:not(.editing) .transaction-table-row{grid-template-columns:60px 130px minmax(220px,1fr) 140px 140px 180px;min-width:880px}.transaction-table.editing .transaction-table-head,.transaction-table.editing .transaction-table-row{grid-template-columns:60px 120px 220px 150px 150px 150px 190px 90px;min-width:1140px}.transaction-table.simplified .transaction-table-head,.transaction-table.simplified .transaction-table-row{grid-template-columns:130px minmax(220px,1fr) 140px 180px;min-width:620px}.room-table-head,.payment-history-head,.transaction-table-head{color:var(--ink-muted);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.transaction-table-row>span,.transaction-table-row>strong,.payment-history-row>span,.payment-history-row>strong{min-width:0;overflow-wrap:anywhere;font-weight:600}.transaction-table-row input,.transaction-table-row select,.manual-transaction-form input,.manual-transaction-form select{width:100%;min-width:0;min-height:38px}.transaction-edit-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;padding:12px 20px 20px}.transaction-edit-card{display:grid;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.transaction-edit-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.transaction-edit-card-head>div{display:grid;gap:2px}.transaction-edit-card-head span{color:var(--ink-soft);font-size:.82rem;font-weight:700}.transaction-edit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.transaction-edit-fields>label:not(.compact-toggle){display:grid;align-content:start;gap:6px;color:var(--ink-muted);font-size:.76rem;font-weight:700;text-transform:uppercase}.transaction-edit-fields input,.transaction-edit-fields select{width:100%;min-width:0}.transaction-revenue-toggle{align-self:end;min-height:42px}.transaction-edit-meta-row,.manual-transaction-meta-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,360px) max-content;align-items:end;gap:12px}.transaction-edit-meta-row>label{display:grid;gap:6px;color:var(--ink-muted);font-size:.76rem;font-weight:700;text-transform:uppercase}.transaction-edit-meta-row .date-time-local-24,.manual-transaction-meta-row .date-time-local-24{width:100%}.transaction-edit-fields .compact-toggle,.manual-transaction-form .compact-toggle{justify-self:start;justify-content:flex-start;width:fit-content}.transaction-edit-fields .compact-toggle input,.manual-transaction-form .compact-toggle input{width:18px;min-width:18px;flex:0 0 18px}.revenue-toggle{position:relative;cursor:pointer}.transaction-edit-fields .revenue-toggle input,.manual-transaction-form .revenue-toggle input{position:absolute;width:1px;min-width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.revenue-toggle-box{width:20px;height:20px;flex:0 0 20px;display:inline-grid;place-items:center;border:2px solid var(--line-strong);border-radius:4px;background:var(--surface);color:#fff;font-size:.86rem;line-height:1}.revenue-toggle-box.checked{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.revenue-toggle:focus-within .revenue-toggle-box{box-shadow:var(--ring)}.manual-transaction-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:16px 20px 20px;margin:0 20px 20px;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--line)}.manual-transaction-form h4{grid-column:1 / -1;margin:0;font-size:.92rem;font-weight:700}.manual-transaction-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:4px}.manual-transaction-actions button{min-width:150px}.payment-history-list{display:grid;padding:8px 20px 18px}.payment-history-head,.payment-history-row{display:grid;grid-template-columns:130px minmax(160px,1fr) 130px 160px;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft);align-items:center}.payment-history-row:last-child{border-bottom:0}.payment-history-row small{color:var(--ink-soft);font-weight:500}.review-notice{margin:18px 20px 0;padding:12px 14px;border:1px solid #f0d39a;border-radius:var(--r-sm);background:var(--warn-soft);color:#7a4b00;font-weight:600}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;display:none;background:#0f1e1466;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer-backdrop.show{display:block;animation:fade-in .16s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.side-menu{position:fixed;inset:0 auto 0 0;z-index:30;width:min(86vw,320px);display:grid;grid-template-rows:auto 1fr auto;gap:18px;padding:22px;background:var(--surface);box-shadow:var(--shadow-lg);transform:translate(-100%);transition:transform .22s cubic-bezier(.2,.8,.2,1)}.side-menu.open{transform:translate(0)}.side-menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.side-menu-head h2{margin:0;font-size:1.2rem}.side-menu-head button{min-height:34px;padding:4px 12px;background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink-soft)}.side-menu nav{display:grid;align-content:start;gap:6px}.side-menu nav p{margin:16px 0 4px;color:var(--ink-muted);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.side-menu nav button{justify-content:flex-start;background:transparent;border:1px solid transparent;color:var(--ink);font-weight:600;box-shadow:none}.side-menu nav button:hover{background:var(--primary-soft)}.side-menu nav button.active{background:var(--primary-soft);border-color:var(--primary-border);color:var(--primary-ink);font-weight:700}.logout-button{justify-content:flex-start;background:var(--surface);border:1px solid var(--line-strong);color:var(--danger)}.logout-button:hover{background:var(--danger-soft);border-color:#e7c4bf}.client-booking-shell{min-height:100vh;padding:18px;background:radial-gradient(900px 500px at 100% -5%,#e7f1ea,#e7f1ea00 55%),var(--bg)}@media (max-width: 759px){.public-content-toolbar .table-head{align-items:stretch}.public-content-toolbar .table-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.public-content-toolbar .table-actions select,.public-content-toolbar .table-actions button{width:100%;min-width:0}}.client-booking-shell--active-hold{padding-top:calc(82px + env(safe-area-inset-top,0px))}.client-hold-countdown-floating{position:fixed;z-index:30;top:calc(12px + env(safe-area-inset-top,0px));left:50%;width:max-content;max-width:calc(100vw - 32px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));margin:0;padding:12px 18px;transform:translate(-50%);border:1px solid #d8b873;border-radius:999px;background:#fff7df;box-shadow:var(--shadow-md);color:#704900;font-weight:750;line-height:1.25;text-align:center;pointer-events:none}.client-booking-head,.client-booking-grid{max-width:1240px;margin:0 auto 16px}.client-booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:#ffffffdb;box-shadow:var(--shadow-sm)}.client-booking-head h1{margin:0;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;letter-spacing:-.01em}.client-booking-head select{width:auto;min-height:36px}.client-booking-grid{display:grid;gap:16px}.qr-panel{display:grid;gap:16px;padding:12px}.qr-refresh-hint{margin:0;color:var(--muted);font-size:.95rem;line-height:1.45;text-align:center}.qr-image-block{display:grid;justify-items:center;gap:8px}.qr-panel img{width:min(100%,300px);display:block;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.payment-verification-action{display:grid;justify-items:center;gap:8px;text-align:center}.payment-verification-action p{margin:0}.client-room-card-list{display:grid;gap:10px;padding:12px}.client-room-card{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.client-room-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.client-room-card-head strong{font-size:1.02rem;color:var(--ink)}.client-room-card dl{display:grid;gap:8px;margin:0}.client-room-card dl>div{display:grid;gap:2px}.client-room-card dt{color:var(--ink-muted);font-size:.75rem;font-weight:700;text-transform:uppercase}.client-room-card dd{margin:0;color:var(--ink);font-size:.9rem;font-weight:650}.client-desktop-rooms,.client-desktop-qr{display:none}.client-mobile-rooms,.client-mobile-qr{display:block}.checkout-payment-notice{margin:14px;padding:12px 14px;border:1px solid #f0d39a;border-radius:var(--r-sm);background:var(--warn-soft);color:#7a4b00;font-weight:650}.client-booking-checkout-action{display:flex;justify-content:flex-end;padding:14px 14px 0}@media (hover: none){.booking-cell:hover .booking-tooltip{display:none}}@media (min-width: 720px){.app-shell{padding:24px}.grid-title{grid-template-columns:minmax(0,1fr) auto;align-items:center}.date-row{grid-template-columns:1fr 130px 1fr 130px}.booking-info-grid,.payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1040px){.detail-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.booking-info-grid,.payment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.client-booking-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.client-desktop-rooms,.client-desktop-qr{display:block}.client-mobile-rooms,.client-mobile-qr{display:none}}@media (max-width: 620px){.date-time-local-24{grid-template-columns:1fr}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.session-box{max-width:200px}.session-box span{display:none}.month-controls{grid-template-columns:1fr}.month-controls input{width:100%}.grid-controls{flex-direction:column;align-items:stretch}.grid-mobile-zoom{display:flex;justify-content:flex-end;margin:-6px 0 6px}.matrix-mobile-zoom{display:flex;justify-content:flex-end;margin:-8px 0 2px}.nav-controls{width:100%}.nav-controls input{flex:1;min-width:0}.booking-grid{grid-template-columns:76px repeat(var(--rooms),minmax(78px,1fr));max-height:calc(100vh - 240px);zoom:var(--grid-zoom, 1)}.nightly-matrix-mobile{--matrix-label-col: 64px;--matrix-room-col: 44px;display:none}.matrix-corner,.matrix-row-head{padding-inline:3px}.matrix-col-head{padding:4px 0}.matrix-col-head span{font-size:calc(.72rem * var(--matrix-font-scale, 1));line-height:1.05;overflow-wrap:anywhere}.matrix-col-head small{font-size:calc(.56rem * var(--matrix-font-scale, 1))}.matrix-row-head span{font-size:calc(.72rem * var(--matrix-font-scale, 1));line-height:1.05;overflow-wrap:anywhere}.matrix-row-head small{font-size:calc(.56rem * var(--matrix-font-scale, 1))}.matrix-cell{min-height:var(--matrix-cell-min, 32px);font-size:calc(.78rem * var(--matrix-font-scale, 1))}.date-cell{min-width:76px}.booking-detail-page{padding:12px}.admin-room-mobile-list{display:grid;gap:10px;padding:12px}.admin-room-mobile-list.desktop-edit-list{grid-template-columns:1fr}.admin-room-desktop-table{display:none}.room-picker-dates,.room-picker-grid{grid-template-columns:1fr}.detail-toolbar-actions,.detail-card-title{align-items:stretch;flex-direction:column}.detail-card-title .card-actions{justify-content:stretch}.detail-card-title .card-actions button{flex:1}.transaction-edit-card-list{grid-template-columns:1fr;padding:12px}.transaction-edit-fields,.transaction-edit-meta-row,.manual-transaction-meta-row{grid-template-columns:1fr}.manual-transaction-actions button:not(.icon-button){width:100%}.payment-history-head{display:none}.payment-history-row{grid-template-columns:1fr;gap:6px}}.json-cell{display:block;max-width:360px;max-height:88px;overflow:auto;white-space:pre-wrap;word-break:break-word}.summary-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary-grid strong{display:block;font-size:1.25rem}.public-inquiry-list{display:grid;gap:12px}.public-inquiry-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.public-inquiry-toolbar button{min-height:34px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font-weight:800}.public-inquiry-toolbar button.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-ink)}.public-inquiry-card{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--card)}.public-inquiry-card header,.public-inquiry-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.public-inquiry-card header strong,.public-inquiry-card header span{display:block}.public-inquiry-card header span{margin-top:4px;color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.public-inquiry-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.public-inquiry-grid>div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}.public-inquiry-grid span,.public-inquiry-actions label span{display:block;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.public-inquiry-grid strong,.public-inquiry-grid p{overflow-wrap:anywhere}.public-inquiry-grid strong{display:block;margin-top:6px}.public-inquiry-grid p{margin:4px 0 0}.public-inquiry-risk,.public-inquiry-signal{display:inline-flex;align-items:center;width:fit-content;min-height:24px;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:900;text-transform:uppercase}.public-inquiry-risk.low,.public-inquiry-signal.low{background:var(--primary-soft);color:var(--primary-ink)}.public-inquiry-risk.medium,.public-inquiry-signal.medium{background:var(--warn-soft);color:var(--warn)}.public-inquiry-risk.high,.public-inquiry-signal.high{background:var(--danger-soft);color:var(--danger)}.public-inquiry-signals{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.public-inquiry-actions label{display:grid;gap:4px;min-width:160px}.public-inquiry-actions input{height:36px}
