:root{color-scheme:light;--ios-blue: #007AFF;--ios-green: #34C759;--ios-orange: #FF9500;--ios-red: #FF3B30;--ios-purple: #AF52DE;--ios-teal: #5AC8FA;--ios-yellow: #FFCC00;--ios-pink: #FF2D55;--ios-indigo: #5856D6;--bg-base: #F2F2F7;--bg-elevated: #FFFFFF;--bg-hover: rgba(0,0,0,.04);--bg-grouped: #F2F2F7;--glass-bg: rgba(255,255,255,.66);--glass-bg-2: rgba(255,255,255,.55);--glass-border: rgba(255,255,255,.5);--glass-blur: blur(40px) saturate(180%);--glass-shadow: 0 8px 32px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--smoke-base: #0B3B75;--smoke-deep: #051F42;--smoke-hi: #1963B8;--wave-hi: rgba(110,185,255,.45);--wave-lo: rgba(3,16,40,.55);--wave-speck: rgba(190,225,255,.85);--text-primary: #1C1C1E;--text-secondary: rgba(60,60,67,.6);--text-tertiary: rgba(60,60,67,.3);--border: rgba(60,60,67,.12);--border-light: rgba(60,60,67,.06);--accent: var(--ios-blue);--accent-hover: #0062CC;--accent-text: #FFFFFF;--accent-glass: rgba(0,122,255,.12);--success: var(--ios-green);--warning: var(--ios-orange);--danger: var(--ios-red);--status-pending: var(--ios-orange);--status-confirmed: var(--ios-blue);--status-checked-in: #8E8E93;--status-checked-out:#8E8E93;--status-cancelled: var(--ios-red);--status-no-show: #8E8E93;--status-clean: var(--ios-green);--status-dirty: var(--ios-orange);--status-inspected: var(--ios-blue);--status-maintenance: var(--ios-red);--shadow-xs: 0 1px 3px rgba(0,0,0,.06);--shadow-sm: 0 2px 8px rgba(0,0,0,.08);--shadow-md: 0 4px 16px rgba(0,0,0,.1);--shadow-lg: 0 12px 40px rgba(0,0,0,.14);--shadow-xl: 0 24px 64px rgba(0,0,0,.18);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-2xl: 32px;--page-pad: 24px;--block-gap: 16px;--block-pad: 20px;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 28px;--radius-pill: 100px;--nav-width: 240px;--topbar-height: 56px;--tabbar-height: 62px;--cell-width: 72px;--cell-height: 64px;--label-width: 220px;--header-height: 48px;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", SFMono-Regular, ui-monospace, monospace;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-ios: cubic-bezier(.25, .46, .45, .94);--duration-fast: .12s;--duration-normal: .24s;--duration-slow: .36s;--bs-primary: var(--ios-blue);--bs-success: var(--ios-green);--bs-warning: var(--ios-orange);--bs-danger: var(--ios-red);--bs-body-color: var(--text-primary);--bs-body-bg: var(--bg-base);--bs-border-color: var(--border);--bs-border-radius: var(--radius-sm);--bs-border-radius-lg: var(--radius-md);--bs-border-radius-sm: var(--radius-xs)}@media(max-width:768px){:root{--page-pad: 14px;--topbar-height: 52px;--cell-width: 54px;--cell-height: 56px;--label-width: 104px;--header-height: 42px}}[data-theme=dark]{color-scheme:dark;--bg-base: #000000;--bg-elevated: #1C1C1E;--bg-hover: rgba(255,255,255,.07);--bg-grouped: #000000;--glass-bg: rgba(28,28,30,.72);--glass-bg-2: rgba(28,28,30,.65);--glass-border: rgba(255,255,255,.12);--glass-shadow: 0 8px 32px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.3);--smoke-base: #062A55;--smoke-deep: #02101F;--smoke-hi: #0E4A8F;--wave-hi: rgba(80,160,255,.35);--wave-lo: rgba(0,6,18,.6);--wave-speck: rgba(170,210,255,.75);--text-primary: #FFFFFF;--text-secondary: rgba(235,235,245,.6);--text-tertiary: rgba(235,235,245,.3);--border: rgba(255,255,255,.12);--border-light: rgba(255,255,255,.06);--accent: #0A84FF;--accent-hover: #409CFF;--accent-glass: rgba(10,132,255,.18);--success: #30D158;--warning: #FF9F0A;--danger: #FF453A;--status-pending: #FF9F0A;--status-confirmed: #0A84FF;--status-checked-in: #636366;--status-checked-out:#636366;--status-cancelled: #FF453A;--status-no-show: #636366;--status-clean: #30D158;--status-dirty: #FF9F0A;--status-inspected: #0A84FF;--status-maintenance: #FF453A;--shadow-xs: 0 1px 3px rgba(0,0,0,.3);--shadow-sm: 0 2px 8px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 12px 40px rgba(0,0,0,.6);--shadow-xl: 0 24px 64px rgba(0,0,0,.7);--bs-body-color: var(--text-primary);--bs-body-bg: var(--bg-base);--bs-border-color: var(--border)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text-primary);background:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background:var(--bg-base)}#app{height:100%}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}input,select,textarea,button{font-family:inherit;font-size:inherit}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.shell{display:flex;height:100%;overflow:hidden}.shell-col{flex-direction:column}.bg-waves{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;pointer-events:none;background:radial-gradient(120% 90% at 18% 0%,var(--smoke-hi) 0%,transparent 55%),radial-gradient(110% 110% at 85% 100%,var(--smoke-hi) 0%,transparent 50%),linear-gradient(160deg,var(--smoke-base),var(--smoke-deep))}.bg-waves:before{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1400' height='1400'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.0042' numOctaves='4' seed='11'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.9 0'/></filter><rect width='1400' height='1400' filter='url(%23n)'/></svg>");background-size:100% 100%;background-repeat:no-repeat;mix-blend-mode:soft-light;opacity:.95;animation:smoke-noise-drift 38s ease-in-out infinite alternate;will-change:transform}.bg-waves:after{content:"";position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='1400' height='1400'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.0072' numOctaves='3' seed='47'/><feColorMatrix type='matrix' values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.8 0'/></filter><rect width='1400' height='1400' filter='url(%23n)'/></svg>"),radial-gradient(circle,var(--wave-speck) 1px,transparent 1.8px),radial-gradient(circle,var(--wave-speck) 1px,transparent 1.6px);background-size:100% 100%,340px 340px,560px 560px;background-position:0 0,40px 60px,190px 320px;background-repeat:no-repeat,repeat,repeat;mix-blend-mode:soft-light;opacity:.55;animation:smoke-noise-drift-2 29s ease-in-out infinite alternate;will-change:transform}.bg-waves i{position:absolute;will-change:transform,border-radius;transform:translateZ(0)}.bg-waves i:nth-child(1){width:52vmax;height:46vmax;left:-12vmax;top:-14vmax;background:radial-gradient(circle at 38% 38%,var(--wave-hi),transparent 70%);filter:blur(52px);animation:wave-drift-a 16s ease-in-out infinite alternate,wave-morph-1 11s ease-in-out infinite alternate,wave-pulse 9s ease-in-out infinite alternate}.bg-waves i:nth-child(3){width:58vmax;height:50vmax;left:6vmax;bottom:-24vmax;background:radial-gradient(circle at 50% 50%,var(--wave-hi),transparent 72%);filter:blur(80px);animation:wave-drift-c 19s ease-in-out infinite alternate,wave-morph-2 10s ease-in-out infinite alternate-reverse,wave-pulse 13s ease-in-out infinite alternate-reverse}.bg-waves i:nth-child(5){width:32vmax;height:27vmax;left:36vw;top:20vh;background:radial-gradient(circle at 45% 45%,var(--wave-hi),transparent 68%);filter:blur(46px);animation:wave-drift-b 14s ease-in-out infinite alternate-reverse,wave-morph-1 8s ease-in-out infinite alternate,wave-pulse 7s ease-in-out infinite alternate}.bg-waves i:nth-child(2){width:60vmax;height:52vmax;right:-18vmax;top:-12vmax;background:radial-gradient(circle at 60% 40%,var(--wave-lo),transparent 72%);filter:blur(64px);animation:wave-drift-b 21s ease-in-out infinite alternate,wave-morph-2 13s ease-in-out infinite alternate}.bg-waves i:nth-child(4){width:54vmax;height:47vmax;right:-10vmax;bottom:-18vmax;background:radial-gradient(circle at 45% 55%,var(--wave-lo),transparent 74%);filter:blur(90px);animation:wave-drift-d 24s ease-in-out infinite alternate,wave-morph-1 15s ease-in-out infinite alternate-reverse}.bg-waves i:nth-child(6){width:36vmax;height:30vmax;left:50vw;top:48vh;background:radial-gradient(circle at 55% 50%,var(--wave-lo),transparent 70%);filter:blur(58px);animation:wave-drift-c 18s ease-in-out infinite alternate-reverse,wave-morph-2 12s ease-in-out infinite alternate,wave-pulse 11s ease-in-out infinite alternate-reverse}@keyframes smoke-noise-drift{0%{transform:translate3d(-4vw,-3vh,0) scale(1) rotate(0)}to{transform:translate3d(5vw,4vh,0) scale(1.14) rotate(2.5deg)}}@keyframes smoke-noise-drift-2{0%{transform:translate3d(4vw,3vh,0) scale(1.1) rotate(1.5deg)}to{transform:translate3d(-5vw,-4vh,0) scale(1) rotate(-1.5deg)}}@keyframes wave-pulse{0%{opacity:.55}to{opacity:1}}@keyframes wave-drift-a{0%{transform:translateZ(0) scale(1) rotate(0)}to{transform:translate3d(24vw,16vh,0) scale(1.28) rotate(26deg)}}@keyframes wave-drift-b{0%{transform:translateZ(0) scale(1.1)}to{transform:translate3d(-22vw,22vh,0) scale(.84) rotate(-32deg)}}@keyframes wave-drift-c{0%{transform:translateZ(0) scale(.92) rotate(0)}to{transform:translate3d(20vw,-18vh,0) scale(1.24) rotate(20deg)}}@keyframes wave-drift-d{0%{transform:translateZ(0) scale(1.05)}to{transform:translate3d(-18vw,-20vh,0) scale(1.34) rotate(-22deg)}}@keyframes wave-morph-1{0%{border-radius:44% 56% 58% 42%/56% 44% 60% 40%}50%{border-radius:60% 40% 38% 62%/40% 60% 44% 56%}to{border-radius:46% 54% 62% 38%/62% 38% 52% 48%}}@keyframes wave-morph-2{0%{border-radius:58% 42% 44% 56%/42% 58% 56% 44%}50%{border-radius:40% 60% 58% 42%/58% 42% 40% 60%}to{border-radius:54% 46% 40% 60%/46% 54% 62% 38%}}@media(prefers-reduced-motion:reduce){.bg-waves:before,.bg-waves i{animation:none}}.app-header{flex-shrink:0;height:var(--topbar-height);display:flex;align-items:center;gap:14px;margin:14px 14px 0;padding:0 var(--page-pad);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);position:relative;z-index:120}.app-logo{display:inline-flex;align-items:center;gap:8px;font-size:17px;font-weight:700;letter-spacing:-.3px;color:var(--text-primary);white-space:nowrap}.app-logo .logo-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--accent-glass);color:var(--accent)}.app-header .branch-switcher{margin:0;padding:4px 14px}.app-body{flex:1;display:flex;min-height:0;position:relative}.side-nav-wrap{width:calc(var(--nav-width) + 14px);flex-shrink:0;position:relative;z-index:90;transition:width var(--duration-fast) var(--ease-ios)}.side-nav-wrap.is-collapsed{width:80px}.side-nav{position:absolute;top:14px;bottom:14px;left:14px;width:var(--nav-width);display:flex;flex-direction:column;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);transition:width var(--duration-fast) var(--ease-ios),box-shadow var(--duration-fast) var(--ease-ios)}.side-nav-wrap.is-collapsed .side-nav{width:66px}.side-nav-wrap.is-collapsed .side-nav:hover{width:var(--nav-width);box-shadow:var(--shadow-lg)}.nav-sep{height:1px;background:var(--border-light);margin:8px 16px;flex-shrink:0}.nav-pin{position:absolute;top:50%;right:-13px;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-xs);z-index:5;transition:color var(--duration-fast) var(--ease-ios),border-color var(--duration-fast) var(--ease-ios)}.nav-pin:hover{color:var(--accent);border-color:var(--accent)}.nav-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding-top:8px;border-radius:inherit;scrollbar-width:none}.nav-scroll::-webkit-scrollbar{display:none}.nav-label{white-space:nowrap;opacity:1;transition:opacity var(--duration-fast) var(--ease-ios)}.side-nav-wrap.is-collapsed .side-nav:not(:hover) .nav-label{opacity:0}button.nav-link{background:none;border:0;cursor:pointer;font:inherit;width:100%;text-align:left}.side-nav-logo{padding:20px 16px 16px;font-size:17px;font-weight:700;letter-spacing:-.3px;color:var(--text-primary);border-bottom:1px solid var(--border);flex-shrink:0}.side-nav-logo span{display:inline-flex;align-items:center;gap:8px}.side-nav-logo .logo-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--accent-glass);color:var(--accent)}.branch-switcher{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg-hover);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--duration-fast) var(--ease-ios);white-space:nowrap}.branch-switcher:hover{background:color-mix(in srgb,var(--accent) 10%,var(--bg-hover))}.branch-switcher .branch-ico{display:inline-flex;align-items:center;color:var(--accent)}.branch-switcher .name{font-size:13px;font-weight:600;color:var(--text-primary)}.nav-section-label{padding:12px 16px 4px;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.nav-list{list-style:none;padding:4px 8px}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text-primary);text-decoration:none;font-size:14px;font-weight:500;transition:background var(--duration-fast) var(--ease-ios),color var(--duration-fast) var(--ease-ios);margin-bottom:2px}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:var(--accent-glass);color:var(--accent)}.nav-link .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;flex-shrink:0;color:var(--text-secondary);transition:color var(--duration-fast) var(--ease-ios)}.nav-link .nav-icon .svg-icon{width:19px;height:19px}.nav-link:hover .nav-icon{color:var(--text-primary)}.nav-link.active .nav-icon{color:var(--accent)}.nav-bottom{padding:12px 8px;border-top:1px solid var(--border);flex-shrink:0;display:flex;gap:6px}.main-area{flex:1;overflow:auto;display:flex;flex-direction:column;min-width:0;background:transparent}#app{display:flex;flex-direction:column}#app>.shell{flex:1 1 auto;min-height:0;height:auto}.topbar{position:sticky;top:0;z-index:30;flex-shrink:0;height:var(--topbar-height);display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:0 var(--page-pad);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border)}.topbar-spacer{flex:1}.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;border-radius:var(--radius-pill);border:1px solid transparent;background:transparent;color:var(--text-primary);transition:background var(--duration-fast) var(--ease-ios)}.user-chip:hover{background:var(--bg-hover)}.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:13px;flex-shrink:0}.user-chip-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.user-chip-name{font-weight:600;font-size:13px}.user-chip-role{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--text-secondary)}.user-chip-caret{color:var(--text-secondary);display:inline-flex}.user-dropdown{position:absolute;right:0;top:calc(100% + 8px);min-width:250px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;z-index:50}.user-dropdown[hidden]{display:none}.user-dropdown-head{padding:10px 12px 12px}.user-dropdown-name{font-weight:600}.user-dropdown-email{font-size:12px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-sep{height:1px;background:var(--border);margin:6px 4px}.user-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;background:transparent;text-align:left}.user-dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.user-dropdown-danger{color:var(--danger)}.user-dropdown-danger:hover{background:#ff3b301a;color:var(--danger)}.impersonation-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;flex-shrink:0;margin:14px 14px 0;padding:7px 18px;font-size:13px;font-weight:600;background:var(--warning);color:#1c1c00;border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.impersonation-bar .btn{border-radius:var(--radius-pill)}.impersonation-bar span{display:inline-flex;align-items:center;gap:6px}.impersonation-bar .btn{background:#000000d9;color:#fff;border:none}.impersonation-bar .btn:hover{background:#000;color:#fff}@media(max-width:640px){.user-chip-info{display:none}}#page-outlet{flex:1;min-height:0;display:flex;flex-direction:column}.page-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px}.page-header h1{font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--text-primary)}.page-header-actions{display:flex;gap:8px;align-items:center}.page-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-toolbar .toolbar-spacer{flex:1}.page-toolbar .search-field{width:auto;flex:1;min-width:200px;max-width:360px}.page-toolbar .form-input{height:38px;background:var(--bg-elevated);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}button{cursor:pointer;border:none;background:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:var(--radius-pill);font-weight:600;font-size:14px;transition:all var(--duration-fast) var(--ease-ios);border:none;cursor:pointer;white-space:nowrap;letter-spacing:-.1px}.btn:disabled{opacity:.5;pointer-events:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #007aff4d}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 4px 14px #007aff66;color:#fff}.btn-secondary{background:var(--glass-bg);color:var(--accent);border:1px solid var(--border);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.btn-secondary:hover{background:var(--accent-glass);border-color:var(--accent);color:var(--accent)}.btn-ghost{background:transparent;color:var(--accent)}.btn-ghost:hover{background:var(--accent-glass)}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 2px 8px #ff3b304d}.btn-danger:hover{background:#e0352b;color:#fff;box-shadow:0 4px 14px #ff3b3066}.btn-sm{padding:5px 12px;font-size:12px}.btn-lg{padding:13px 24px;font-size:16px}.btn-icon{padding:8px;border-radius:var(--radius-sm)}.segmented-control{display:inline-flex;background:var(--bg-hover);border-radius:var(--radius-sm);padding:2px;gap:2px}.segmented-btn{padding:6px 14px;border-radius:calc(var(--radius-sm) - 2px);font-size:13px;font-weight:600;color:var(--text-secondary);transition:all var(--duration-fast) var(--ease-ios);cursor:pointer;border:none;background:transparent}.segmented-btn.active{background:var(--bg-elevated);color:var(--text-primary);box-shadow:var(--shadow-xs)}.card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);overflow:hidden}.card-body{padding:20px}.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-header h2,.card-header h3{font-size:16px;font-weight:700;letter-spacing:-.2px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;padding:0 24px 24px}.settings-inset{margin-left:24px;margin-right:24px;margin-bottom:28px}.settings-cards .card{padding:20px}@media(max-width:640px){.settings-inset{margin-left:16px;margin-right:16px}}.form-group{margin-bottom:16px}.form-label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.form-input{width:100%;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease-ios),box-shadow var(--duration-fast) var(--ease-ios);font-size:14px}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #007aff26}.form-input::placeholder{color:var(--text-tertiary)}select.form-input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238E8E93' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}textarea.form-input{resize:vertical}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:40px;height:24px;flex-shrink:0;margin:0;padding:0;border:none;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text-secondary) 30%,transparent);position:relative;cursor:pointer;vertical-align:middle;transition:background var(--duration-fast) var(--ease-ios)}input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform var(--duration-fast) var(--ease-ios)}input[type=checkbox]:checked{background:var(--accent)}input[type=checkbox]:checked:before{transform:translate(16px)}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.form-error{color:var(--danger);font-size:12px;margin-top:6px;display:flex;align-items:center;gap:4px}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1;min-width:0}.check-row{display:flex;align-items:center;gap:10px;padding:8px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.check-row input[type=checkbox]{flex-shrink:0}.check-row span{display:inline-flex;align-items:center;gap:6px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.badge-pending{background:#ff950026;color:var(--status-pending)}.badge-confirmed{background:#007aff1f;color:var(--status-confirmed)}.badge-checked_in{background:#d1d1d1;color:#3a3a3c}.badge-checked_out{background:#fff;color:var(--text-secondary);border:1px solid var(--border)}.badge-cancelled{background:#ff3b301f;color:var(--status-cancelled)}.badge-no-show{background:#8e8e9326;color:var(--status-no-show)}.badge-success{background:#34c75926;color:var(--success)}.badge-warning{background:#ff950026;color:var(--warning)}.badge-danger{background:#ff3b301f;color:var(--danger)}.badge-info{background:#007aff1f;color:var(--accent)}.badge-muted{background:#8e8e9326;color:var(--text-secondary)}.data-table{width:100%;border-collapse:separate;border-spacing:0}.data-table thead th{padding:12px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--bg-elevated);text-align:left;white-space:nowrap}.data-table tbody td{padding:13px 16px;border-bottom:1px solid var(--border-light);vertical-align:middle;color:var(--text-primary);font-size:14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background var(--duration-fast) var(--ease-ios)}.data-table tbody tr:hover{background:var(--bg-hover)}dialog.modal{display:none;background:transparent;border:none;padding:0;max-height:unset;overflow:visible;border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;animation:none}dialog.modal[open]{display:flex;align-items:center;justify-content:center}dialog.modal::backdrop{background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}@keyframes modalIn{0%{opacity:0;transform:scale(.94) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content{display:flex;flex-direction:column;width:fit-content;max-height:92vh;min-width:min(420px,calc(100vw - 32px));max-width:calc(100vw - 32px);border-radius:var(--radius-xl);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-xl);overflow:hidden;animation:modalIn var(--duration-normal) var(--ease-spring) both}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px 16px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:17px;font-weight:700;letter-spacing:-.3px}.btn-close{width:28px;height:28px;border-radius:var(--radius-pill);background:var(--bg-hover);color:var(--text-secondary);font-size:14px;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) var(--ease-ios);border:none;cursor:pointer;font-weight:700}.btn-close:hover{background:var(--danger);color:#fff}.modal-body{padding:20px 24px;overflow-y:auto;flex:1}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border)}.room-type-card{display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-fast) var(--ease-ios)}.room-type-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.room-type-photo{height:180px;overflow:hidden;background:var(--bg-hover);position:relative}.room-type-photo img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-ios)}.room-type-card:hover .room-type-photo img{transform:scale(1.04)}.photo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:48px;background:linear-gradient(135deg,var(--bg-elevated),var(--bg-hover))}.room-type-info{padding:16px 20px;flex:1}.room-type-info h3{font-size:16px;font-weight:700;letter-spacing:-.2px;margin-bottom:8px}.room-type-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.room-type-meta span{font-size:13px;color:var(--text-secondary)}.room-type-actions{padding:12px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.room-type-amenities{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.amenity-tag{font-size:12px;color:var(--text-secondary);background:var(--bg-hover, #f1f3f5);border-radius:6px;padding:2px 8px}.amenity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 12px}.amenity-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.amenity-check input{cursor:pointer}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.empty-state{padding:60px 32px;text-align:center;color:var(--text-secondary);font-size:15px}.empty-state-icon{font-size:48px;margin-bottom:12px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:24px}.auth-card{width:100%;max-width:400px;padding:40px 36px;border-radius:var(--radius-xl);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-xl);animation:modalIn var(--duration-slow) var(--ease-spring) both}.auth-title{font-size:28px;font-weight:800;letter-spacing:-.5px;margin-bottom:6px}.auth-subtitle{font-size:15px;color:var(--text-secondary);margin-bottom:28px}.toast-stack{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.app-toast{pointer-events:auto;padding:12px 16px;border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);font-size:14px;font-weight:500;color:var(--text-primary);max-width:320px;animation:toastIn var(--duration-normal) var(--ease-spring) both;display:flex;align-items:center;gap:10px}.app-toast.success{border-left:3px solid var(--success)}.app-toast.error{border-left:3px solid var(--danger)}.app-toast.info{border-left:3px solid var(--accent)}@keyframes toastIn{0%{opacity:0;transform:translate(20px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.page-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:60px;color:var(--text-secondary)}.calendar-page{display:flex;flex-direction:column;margin:14px;flex:1;min-height:0;overflow:hidden;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);flex-shrink:0}.date-range-display{font-size:13px;color:var(--text-secondary);font-weight:500}.cb-wrapper{flex:1;overflow:hidden;position:relative;display:flex;flex-direction:column}.cb-wrapper>.cb-inner{flex:1;overflow:auto}.cb-inner{min-width:max-content;position:relative}.cb-header{display:flex;position:sticky;top:0;z-index:20;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border)}.cb-corner{width:var(--label-width);height:var(--header-height);flex-shrink:0;position:sticky;left:0;z-index:21;background:inherit;border-right:1px solid var(--border);display:flex;align-items:center;padding:0 12px;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.cb-date-cell{width:var(--cell-width);flex-shrink:0;height:var(--header-height);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary);border-right:1px solid var(--border-light);transition:background var(--duration-fast)}.cb-date-cell.today{color:var(--accent);font-weight:800;background:var(--accent-glass)}.cb-date-cell .day-num{font-size:15px;font-weight:700}.cb-date-cell .day-name{font-size:10px;text-transform:uppercase;letter-spacing:.04em}.cb-row{display:flex;border-bottom:1px solid var(--border-light);transition:background var(--duration-fast)}.cb-row:hover{background:var(--bg-hover)}.cb-room-label{width:var(--label-width);flex-shrink:0;height:var(--cell-height);position:sticky;left:0;z-index:10;background:var(--glass-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:8px}.cb-room-label .room-code{font-size:13px;font-weight:700;letter-spacing:-.2px}.cb-room-label .room-type-name{font-size:11px;color:var(--text-secondary);line-height:1.25;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.cb-row-hourly .cb-room-label .room-type-name{-webkit-line-clamp:4}.cb-room-label>div{min-width:0}.cb-cells{display:flex;position:relative;flex:1}.cb-cell{width:var(--cell-width);height:var(--cell-height);flex-shrink:0;border-right:1px solid var(--border-light);position:relative;transition:background var(--duration-fast)}.cb-cell.today{background:var(--accent-glass)}.cb-cell.weekend{background:var(--bg-hover)}.cb-cell:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);cursor:cell}.cb-cell.today:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}.cb-cell.weekend:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.cb-cell:hover:after{content:"+";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:300;color:var(--accent);opacity:.7;pointer-events:none}.cb-strip{position:absolute;height:34px;top:50%;transform:translateY(-50%);border-radius:var(--radius-sm);display:flex;align-items:center;padding:0 10px;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:filter var(--duration-fast),transform var(--duration-fast) var(--ease-spring);z-index:5;pointer-events:auto;box-shadow:0 1px 6px #0000001f;-webkit-user-select:none;user-select:none}.cb-strip:hover{filter:brightness(1.08);transform:translateY(-50%) scaleY(1.06);z-index:6}.cb-strip.dragging{opacity:.85;transform:translateY(-50%) scale(1.02);z-index:100;cursor:grabbing;box-shadow:var(--shadow-lg)}.cb-strip.status-pending{background:linear-gradient(90deg,var(--status-pending),#FFAD00);color:#fff;border:1.5px solid #D97E00}.cb-strip.status-confirmed{background:linear-gradient(90deg,var(--status-confirmed),#5AA0FF);color:#fff;border:1.5px solid #0059B8}.cb-strip.status-checked_in{background:#d1d1d1;color:#3a3a3c;border:1.5px solid #9e9ea3}.cb-strip.status-checked_out{background:#fff;color:var(--text-secondary);border:1.5px solid #c7c7cc}.cb-strip.status-cancelled{background:#ff3b3026;color:var(--danger);text-decoration:line-through;border:1.5px solid rgba(255,59,48,.45)}.cb-resize-handle{position:absolute;right:0;top:0;bottom:0;width:10px;cursor:ew-resize;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:#ffffff40;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--duration-fast)}.cb-resize-handle:after{content:"⋮";font-size:10px;color:#fffc;line-height:1}.cb-strip:hover .cb-resize-handle{opacity:1}.cb-strip-phantom{background:color-mix(in srgb,var(--accent) 20%,transparent)!important;border:2px dashed var(--accent);box-shadow:none!important;pointer-events:none;z-index:3}.cb-selection-ghost{position:absolute;top:4px;bottom:4px;background:var(--accent-glass);border:2px dashed var(--accent);border-radius:var(--radius-sm);pointer-events:none;z-index:3;animation:none}.cb-toolbar-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cb-filter-field{position:relative;display:flex;align-items:center}.cb-filter-icon{position:absolute;left:12px;pointer-events:none;line-height:1;display:inline-flex;align-items:center;color:var(--text-tertiary)}.cb-filter-input{height:38px;padding:0 12px 0 36px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-xs);color:var(--text-primary);font-size:13px;width:200px;outline:none;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.cb-filter-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glass)}.cb-filter-input::placeholder{color:var(--text-secondary)}.cb-filter-count{font-size:12px;color:var(--text-secondary);margin-left:4px}.cb-hint{padding:6px 16px;font-size:11px;color:var(--text-secondary);background:var(--bg-hover);border-bottom:1px solid var(--border-light);text-align:center;letter-spacing:.02em;flex-shrink:0}.cb-block-strip{position:absolute;height:20px;top:50%;transform:translateY(-50%);border-radius:var(--radius-xs);background:repeating-linear-gradient(45deg,var(--border),var(--border) 4px,transparent 4px,transparent 12px);border:1px solid var(--border);opacity:.7;cursor:pointer;z-index:4;transition:opacity var(--duration-fast) var(--ease-ios)}.cb-block-strip:hover{opacity:1}.cb-hourly-seg{position:absolute;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;padding:0 3px;font-size:9px;font-weight:700;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;z-index:5;box-shadow:0 1px 3px #0000001f;transition:filter var(--duration-fast)}.cb-hourly-seg:hover{filter:brightness(1.08)}.cb-hourly-seg.status-pending{background:linear-gradient(90deg,var(--status-pending),#FFAD00);color:#fff;border:1.5px solid #D97E00}.cb-hourly-seg.status-confirmed{background:linear-gradient(90deg,var(--status-confirmed),#5AA0FF);color:#fff;border:1.5px solid #0059B8}.cb-hourly-seg.status-checked_in{background:#d1d1d1;color:#3a3a3c;border:1.5px solid #9e9ea3}.cb-hourly-seg.status-checked_out{background:#fff;color:var(--text-secondary);border:1.5px solid #c7c7cc}.cb-cell-hourly{background-repeat:repeat;background-position:top left;cursor:row-resize}.cb-cell-hourly:hover:after{content:none}.cb-hourly-ghost{position:absolute;z-index:6;background:var(--accent-glass);border:1.5px solid var(--accent);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--accent);pointer-events:none;overflow:hidden}.pm-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pm-summary-item{background:var(--bg-hover);border-radius:var(--radius-md);padding:10px 14px;display:flex;flex-direction:column;gap:2px}.pm-summary-item span{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.pm-summary-item b{font-size:16px;letter-spacing:-.2px}.cb-client-sug{position:absolute;left:0;right:0;top:100%;z-index:30;background:var(--bg-elevated);border:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-md);max-height:240px;overflow-y:auto}.cb-client-sug .sug-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border-light)}.cb-client-sug .sug-item:last-child{border-bottom:none}.cb-client-sug .sug-item:hover,.cb-client-sug .sug-item.active{background:var(--accent-glass)}.cb-client-sug .sug-name{font-size:13px;font-weight:600}.cb-client-sug .sug-extra{font-size:11px;color:var(--text-secondary);margin-top:1px}.cb-client-chip{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;padding:6px 8px 6px 12px;background:var(--accent-glass);color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-pill);font-size:13px;font-weight:600}.cb-client-chip button{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;line-height:1;cursor:pointer;border:none}.cb-hourly-hover{position:absolute;z-index:4;background:var(--accent-glass);border:1.5px dashed var(--accent);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--accent);pointer-events:none;overflow:hidden}.gantt-wrapper{flex:1;overflow:auto}.gantt-table{width:100%;border-collapse:separate;border-spacing:0;min-width:800px}.gantt-table thead th{padding:10px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);border-bottom:1px solid var(--border);background:var(--glass-bg-2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:sticky;top:0;z-index:5;white-space:nowrap}.gantt-table tbody td{padding:10px 14px;border-bottom:1px solid var(--border-light);vertical-align:middle;font-size:13px}.gantt-table tbody tr:hover{background:var(--bg-hover)}.gantt-table tbody tr:last-child td{border-bottom:none}.gantt-bar-cell{width:200px}.gantt-bar-track{height:28px;background:var(--bg-hover);border-radius:var(--radius-pill);overflow:hidden;position:relative}.gantt-bar{height:100%;border-radius:var(--radius-pill);display:flex;align-items:center;padding:0 8px;font-size:10px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;min-width:4px}.booking-drawer{position:fixed;right:0;top:0;height:100%;width:min(400px,100vw);z-index:500;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-left:1px solid var(--glass-border);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:drawerIn var(--duration-normal) var(--ease-ios) both}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}.booking-drawer-header{padding:20px 20px 16px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-shrink:0}.booking-drawer-body{flex:1;overflow-y:auto;padding:20px}.booking-drawer-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;gap:8px;flex-shrink:0}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:499;background:#0003;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fadeIn var(--duration-fast) ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:14px}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-secondary);font-size:13px}.detail-value{font-weight:600;text-align:right}.confirmation-code{font-family:var(--font-mono);font-size:13px;font-weight:700;background:var(--accent-glass);color:var(--accent);padding:3px 8px;border-radius:var(--radius-xs);letter-spacing:.05em}.booking-form-section{background:var(--bg-hover);border-radius:var(--radius-md);padding:14px;margin-bottom:14px}.booking-form-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:12px}.dashboard-page{display:flex;flex-direction:column;gap:var(--space-xl);padding:var(--page-pad)}#dash-body{display:flex;flex-direction:column;gap:24px}.dash-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:960px){.dash-kpi-grid{grid-template-columns:repeat(2,1fr)}}.dash-kpi-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-xl);padding:24px 26px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;transition:transform var(--duration-fast) var(--ease-ios),box-shadow var(--duration-fast) var(--ease-ios)}.dash-kpi-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.18) 0%,transparent 60%);pointer-events:none;border-radius:inherit}.dash-kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dash-kpi-icon-wrap{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--accent);margin-bottom:8px;background:#ffffff40;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.35);box-shadow:0 2px 8px #00000014}.dash-kpi-value{font-size:28px;font-weight:750;letter-spacing:-.8px;color:var(--text-primary);line-height:1}.dash-kpi-label{font-size:13px;font-weight:500;color:var(--text-secondary);margin-top:2px}.dash-kpi-sub{font-size:12px;color:var(--text-secondary);margin-top:4px}.dash-card{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:var(--radius-xl);padding:24px 28px;position:relative;overflow:hidden}.dash-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6) 30%,rgba(255,255,255,.6) 70%,transparent);pointer-events:none}.dash-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:20px}.dash-charts-row{display:flex;gap:16px;align-items:stretch}.dash-chart-wide{flex:2;min-width:0}.dash-chart-narrow{flex:1;min-width:200px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.photo-item{position:relative;aspect-ratio:4 / 3;border-radius:8px;overflow:hidden;background:var(--bg-secondary, #f1f1f1);border:1px solid var(--border, #e2e2e2)}.photo-item img{width:100%;height:100%;object-fit:cover;display:block}.photo-item-actions{position:absolute;inset:auto 0 0 0;display:flex;gap:2px;padding:4px;justify-content:flex-end;background:linear-gradient(to top,rgba(0,0,0,.55),transparent)}.photo-btn{width:24px;height:24px;border:none;border-radius:6px;background:#ffffffe6;color:#222;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.photo-btn:hover{background:#fff}.photo-btn:disabled{opacity:.4;cursor:default}.photo-btn-danger{background:#dc3545e6;color:#fff}.photo-btn-danger:hover{background:#dc3545}.photo-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;aspect-ratio:4 / 3;border:2px dashed var(--border, #cfcfcf);border-radius:8px;cursor:pointer;color:var(--text-secondary);text-align:center;padding:4px}.photo-add:hover{border-color:var(--primary, #4a6cf7);color:var(--primary, #4a6cf7)}.photo-add-plus{font-size:22px;line-height:1}.photo-empty{margin-top:8px;font-size:.85rem}.photo-manager-hint{padding:16px;border:1px dashed var(--border, #cfcfcf);border-radius:8px;color:var(--text-secondary);font-size:.85rem;text-align:center}.branch-card-cover{height:120px;background:var(--bg-secondary, #f1f1f1);border-radius:8px 8px 0 0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--text-secondary)}.branch-card-cover img{width:100%;height:100%;object-fit:cover}.branch-members-list{display:flex;flex-direction:column;gap:6px}.branch-member-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border:1px solid var(--border, #e2e2e2);border-radius:6px}.status-select{padding:4px 8px;border-radius:6px;border:1px solid var(--border, #d0d0d0);font-size:12px;font-weight:600;cursor:pointer;background:var(--bg-elevated, #fff);color:inherit;max-width:160px}.status-select:disabled{opacity:.6;cursor:progress}.svg-icon{display:inline-block;vertical-align:middle;flex-shrink:0;stroke:currentColor}.icon-accent{color:var(--accent)}.page{padding:var(--page-pad);display:flex;flex-direction:column;gap:var(--space-xl)}.page>.page-header{padding:0}.page .card-grid{padding:0}.page .settings-inset{margin:0}.page-title{font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--text-primary)}.panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);overflow:hidden}.panel+.panel{margin-top:var(--block-gap)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-lg) var(--block-pad);border-bottom:1px solid var(--border-light)}.panel-header h2,.panel-header h3{font-size:16px;font-weight:700;letter-spacing:-.2px;margin:0}.panel-body{padding:var(--block-pad)}.panel-body>*+*{margin-top:var(--space-md)}.panel-title{display:inline-flex;align-items:center;gap:var(--space-sm)}.panel-title .svg-icon{color:var(--accent)}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--text-secondary);text-decoration:none}.back-link:hover{color:var(--accent)}.sync-status{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;white-space:nowrap}.sync-status-ok{color:var(--success)}.sync-status-error{color:var(--danger)}.integration-card{display:flex;flex-direction:column;gap:var(--space-sm);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-xl);text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s}a.integration-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.integration-card-head{display:flex;align-items:center;gap:var(--space-sm)}.integration-card-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);flex-shrink:0}.integration-card-icon-brand{background:var(--bg-base);border:1px solid var(--border-light)}.integration-card-title{font-size:15px;font-weight:700}.integration-card-kind{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px}.integration-card-desc{font-size:13px;color:var(--text-secondary);line-height:1.5;flex:1}.integration-card-status{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs)}.integration-card.is-disabled{opacity:.55}.payments-layout{display:grid;grid-template-columns:5fr 4fr;gap:var(--block-gap);align-items:start}@media(max-width:960px){.payments-layout{grid-template-columns:1fr}}.payments-layout>.panel{margin-top:0}.connect-pill{display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:var(--radius-pill);background:var(--accent-glass);color:var(--accent);font-size:12px;font-weight:600;white-space:nowrap;transition:background var(--duration-fast) var(--ease-ios),color var(--duration-fast) var(--ease-ios)}.provider-row:hover .connect-pill,.section-card:hover .connect-pill{background:var(--accent);color:var(--accent-text)}.provider-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 4px;border:0;border-bottom:1px solid var(--border-light);background:none;text-align:left;cursor:pointer;color:inherit;font:inherit}.provider-row:last-child{border-bottom:0}.provider-row:hover{background:var(--bg-hover);border-radius:var(--radius-md)}.provider-row-info{flex:1;min-width:0}.provider-row-title{font-size:14px;font-weight:700}.provider-row-kind{font-size:11.5px;color:var(--text-secondary)}.provider-row-status{display:flex;align-items:center;gap:8px;flex-shrink:0}.section-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--block-gap)}.section-card{display:block;text-decoration:none;color:inherit;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--glass-shadow);transition:transform var(--duration-fast) var(--ease-ios),box-shadow var(--duration-fast) var(--ease-ios),border-color var(--duration-fast) var(--ease-ios)}.section-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:inherit}.section-card-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--accent-glass);color:var(--accent);margin-bottom:var(--space-md)}.section-card-title{font-weight:700;font-size:15px;letter-spacing:-.2px;margin-bottom:var(--space-xs);color:var(--text-primary)}.section-card-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.45}.table-panel{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);overflow:hidden;overflow-x:auto}.table-panel .data-table{min-width:max-content;width:100%}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-ios),color var(--duration-fast) var(--ease-ios),transform var(--duration-fast) var(--ease-ios)}.icon-btn .svg-icon{width:18px;height:18px}.icon-btn:hover{background:var(--accent-glass);color:var(--accent)}.icon-btn:active{transform:scale(.9)}.icon-btn:disabled{opacity:.4;pointer-events:none}.icon-btn-danger:hover{background:#ff3b301f;color:var(--danger)}.icon-btn-sm{width:28px;height:28px}.icon-btn-sm .svg-icon,.btn .svg-icon{width:16px;height:16px}.tbl-actions{display:flex;gap:2px;justify-content:flex-end;align-items:center;white-space:nowrap}.search-field{position:relative;display:inline-flex;align-items:center;max-width:400px;width:100%}.search-field .svg-icon{position:absolute;left:12px;color:var(--text-secondary);pointer-events:none}.search-field .form-input{padding-left:38px}.cb-quote{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--accent-glass);font-size:13px;color:var(--text-secondary)}.cb-quote b{font-size:16px;letter-spacing:-.2px;color:var(--accent)}.gantt-table tbody tr.gantt-row{cursor:pointer}.ts-wrapper.form-input{padding:0;border:none;background:none;backdrop-filter:none;-webkit-backdrop-filter:none}.ts-control{padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--glass-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--text-primary);font-size:14px;min-height:0;box-shadow:none;transition:border-color var(--duration-fast) var(--ease-ios),box-shadow var(--duration-fast) var(--ease-ios)}.ts-wrapper.single .ts-control{background-color:var(--glass-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238E8E93' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}.ts-wrapper.single .ts-control:after{display:none}.ts-wrapper.focus .ts-control{border-color:var(--accent);box-shadow:0 0 0 3px #007aff26}.ts-control input{color:var(--text-primary);font-size:14px}.ts-control input::placeholder{color:var(--text-tertiary)}.ts-dropdown{margin:4px 0 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);box-shadow:var(--shadow-md);font-size:14px;color:var(--text-primary);z-index:200}.ts-dropdown .option{padding:9px 14px;cursor:pointer}.ts-dropdown .active{background:var(--accent-glass);color:var(--text-primary)}.ts-dropdown .selected{background:var(--accent);color:var(--accent-text)}.ts-dropdown .no-results{padding:10px 14px;color:var(--text-secondary)}.ts-dropdown .ts-dropdown-content{max-height:260px}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.auth-brand{position:relative;overflow:hidden;background:linear-gradient(150deg,#0a50c2,#007aff 55%,#37a5ff);color:#fff;display:flex;align-items:center;padding:48px}.auth-brand:before{content:"";position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 65%);top:-240px;right:-160px}.auth-brand:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,.14),transparent 65%);bottom:-200px;left:-140px}.auth-brand-in{position:relative;z-index:1;max-width:420px;margin:0 auto}.auth-brand-logo{display:flex;align-items:center;gap:10px;font-size:19px;font-weight:700;letter-spacing:-.3px;margin-bottom:36px}.auth-logo-mark{width:36px;height:36px;border-radius:10px;background:#ffffff2e;display:inline-flex;align-items:center;justify-content:center;font-size:18px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.auth-brand-title{font-size:clamp(26px,3vw,36px);font-weight:800;line-height:1.15;letter-spacing:-.02em;margin-bottom:28px}.auth-brand-feats{list-style:none}.auth-brand-feats li{display:flex;align-items:center;gap:12px;padding:9px 0;font-size:15px;color:#ffffffe0}.auth-brand-feats li svg{flex-shrink:0;opacity:.85}.auth-side{position:relative;display:flex;align-items:center;justify-content:center;background:var(--bg-base);padding:72px 24px 48px}.auth-back{position:absolute;top:20px;left:24px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.auth-back:hover{color:var(--text-primary)}.auth-card{width:min(420px,100%);background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:36px 32px 28px;animation:modalIn var(--duration-slow) var(--ease-ios) both}.auth-card-logo{width:52px;height:52px;border-radius:15px;background:var(--accent-glass);display:none;align-items:center;justify-content:center;font-size:26px;margin-bottom:18px}.auth-title{font-size:24px;font-weight:800;letter-spacing:-.4px;color:var(--text-primary)}.auth-sub{margin:6px 0 24px;font-size:14px;color:var(--text-secondary)}.auth-foot{margin-top:18px;text-align:center;font-size:13.5px;color:var(--text-secondary)}.auth-submit{width:100%;padding:12px 16px;font-size:15px;margin-top:4px}.auth-submit .spinner-sm{border-color:#ffffff59;border-top-color:#fff}.spinner-sm{width:15px;height:15px;border-width:2px;display:inline-block;vertical-align:-2px}.auth-pass-wrap{position:relative}.auth-pass-wrap .form-input{padding-right:44px}.auth-pass-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:none;background:none;cursor:pointer;border-radius:var(--radius-xs);color:var(--text-tertiary);display:inline-flex;align-items:center;justify-content:center;transition:color var(--duration-fast) var(--ease-ios),background var(--duration-fast) var(--ease-ios)}.auth-pass-toggle:hover{color:var(--text-primary);background:var(--bg-hover)}@media(max-width:900px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-card-logo{display:inline-flex}}.mobile-tabbar{display:none}.nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:160;background:#00000059;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}@media(max-width:768px){.app-header{margin:10px 10px 0;padding:0 10px;gap:8px}.app-logo>span:last-child{display:none}.app-header .branch-switcher{padding:4px 10px}.app-header .branch-switcher .name{max-width:34vw;overflow:hidden;text-overflow:ellipsis}.side-nav-wrap{width:0!important}.nav-pin{display:none}.side-nav,.side-nav-wrap.is-collapsed .side-nav{position:fixed;top:10px;bottom:calc(var(--tabbar-height) + 20px + env(safe-area-inset-bottom));left:10px;width:min(var(--nav-width),82vw);z-index:170;transform:translate(calc(-100% - 24px));transition:transform var(--duration-normal) var(--ease-ios)}.side-nav-wrap.nav-open .side-nav{transform:translate(0);box-shadow:var(--shadow-xl)}.side-nav .nav-label{opacity:1!important}.mobile-tabbar{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:var(--tabbar-height);z-index:150;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);overflow:hidden}.tab-link{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;font:inherit;font-size:10px;font-weight:600;color:var(--text-secondary);text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.tab-link .tab-icon{display:inline-flex}.tab-link .tab-label{max-width:100%;padding:0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-link.active{color:var(--accent)}.app-body{padding-bottom:calc(var(--tabbar-height) + 20px + env(safe-area-inset-bottom))}.calendar-page{margin:10px}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 12px}.cb-hint{display:none}.cb-toolbar-filters{flex:1 1 100%}.cb-filter-field{flex:1;min-width:120px}.cb-filter-input{width:100%}.cb-corner{padding:0 8px}.cb-date-cell .day-num{font-size:13px}.cb-room-label{padding:0 8px}.cb-room-label .room-code{font-size:12px}.cb-room-label .room-type-name{font-size:10px}.cb-strip{height:30px;padding:0 6px;font-size:10px}.page-header{padding:16px var(--page-pad);flex-wrap:wrap;gap:10px}.dash-kpi-grid{gap:10px}.dash-kpi-card{padding:16px;border-radius:var(--radius-lg)}.impersonation-bar{flex-wrap:wrap}}
