:root{color-scheme:light;--primary: #0D9488;--primary-pressed: #0F766E;--bg: #F9FAFB;--surface: #FFFFFF;--text: #111827;--secondary: #6B7280;--tertiary: #9CA3AF;--border: rgba(0, 0, 0, .06);--input-border: rgba(0, 0, 0, .1);--input-shadow: 0 1px 2px rgba(0, 0, 0, .04);--divider: rgba(0, 0, 0, .05);--success: #059669;--warning: #D97706;--danger: #DC2626;--purple-subtle: #F0FDFA;--success-subtle: #ECFDF5;--warning-subtle: #FFFBEB;--danger-subtle: #FEF2F2;--ink-soft: #1E293B;--linen: #FAFAF9;--gold: #B45309;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .03);--shadow-md: 0 2px 4px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--radius: 8px;--radius-lg: 10px;--sidebar-bg: #0F172A;--sidebar-text: rgba(255, 255, 255, .5);--sidebar-active: rgba(13, 148, 136, .12);--sidebar-active-text: #2DD4BF;--safe-bottom: env(safe-area-inset-bottom, 0px);--visual-viewport-height: 100dvh;--keyboard-height: 0px;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,system-ui,sans-serif;background:var(--bg)}*{box-sizing:border-box;letter-spacing:0}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);letter-spacing:0}button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--primary);text-decoration:none}.app-shell{min-height:100dvh;min-height:var(--visual-viewport-height);width:min(100%,430px);margin:0 auto;display:flex;flex-direction:column;padding:max(20px,env(safe-area-inset-top)) 16px calc(60px + var(--safe-bottom));background:var(--bg)}.app-shell.no-tabbar{padding-bottom:max(16px,var(--safe-bottom))}.app-shell.no-tabbar .topbar{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 4px 14px}.brandmark{display:grid;gap:2px;min-width:0}.brandmark strong{font-size:20px;line-height:1;letter-spacing:0;font-weight:650}.brandmark strong span{color:var(--primary)}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.topbar-back{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius);background:transparent;color:var(--secondary);flex-shrink:0;transition:background .12s}.topbar-back:hover{background:#0000000a}.topbar-back:active{background:#0000000f}.topbar-title-group{display:grid;gap:1px;min-width:0}.topbar-title{font-size:17px;font-weight:600;line-height:1.15;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-subtitle{font-size:12px;color:var(--secondary);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-actions{display:flex;gap:10px;align-items:center}.icon-button,.profile-button{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius);background:transparent;color:var(--secondary);position:relative;transition:background .12s}.icon-button:hover{background:#0000000a}.icon-button.has-dot:after{content:"";position:absolute;width:6px;height:6px;border-radius:999px;right:7px;top:6px;background:var(--primary);border:2px solid var(--bg)}.icon-button.quick-add{background:var(--primary);color:#fff;border-radius:var(--radius)}.icon-button.quick-add:hover{background:var(--primary-pressed)}.profile-button{color:var(--secondary);font-weight:550;font-size:13px}.offline{border:1px solid var(--border);color:var(--secondary);background:var(--surface);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:650}.screen{flex:1;overflow:auto;padding-bottom:var(--keyboard-height);scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.page{display:grid;gap:16px}.checkin-page{gap:12px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;margin-bottom:10px}.section-header h2{margin:0;font-size:14px;line-height:1.1;font-weight:600;letter-spacing:0;color:var(--text)}.section-header a{display:flex;align-items:center;gap:2px;font-size:13px;font-weight:500;color:var(--secondary)}.stats-grid,.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stat-tile,.mini-metric{min-height:72px;border:none;background:var(--surface);border-radius:var(--radius);padding:12px;display:grid;align-content:space-between}.stat-tile span,.mini-metric span{color:var(--secondary);font-size:12px;line-height:1.1;font-weight:500}.stat-tile div{display:flex;align-items:center;justify-content:space-between;gap:5px}.stat-tile strong,.mini-metric strong{font-size:22px;line-height:1;font-weight:600;color:var(--text)}.mini-metric{position:relative}.mini-metric i{position:absolute;right:12px;bottom:14px;width:7px;height:7px;border-radius:999px;background:var(--tertiary)}.mini-metric i.success{background:var(--success)}.mini-metric i.warning{background:var(--warning)}.mini-metric i.purple{background:var(--primary)}.soft-icon,.row-icon{width:36px;height:36px;border-radius:var(--radius);display:grid;place-items:center;flex:0 0 auto}.soft-icon.purple,.row-icon.purple{background:var(--purple-subtle);color:var(--primary)}.soft-icon.success,.row-icon.success{background:var(--success-subtle);color:var(--success)}.soft-icon.warning,.row-icon.warning{background:var(--warning-subtle);color:var(--warning)}.soft-icon.danger,.row-icon.danger{background:var(--danger-subtle);color:var(--danger)}.soft-icon.neutral,.row-icon.neutral{background:#1111110a;color:var(--secondary)}.surface-card,.panel,.auth-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.panel h2,.auth-panel h1,.auth-panel h2{margin:0 0 14px;font-size:20px;line-height:1.1}.stack{display:grid;gap:30px}.muted{color:var(--secondary)}.notice{color:var(--success);font-weight:650}.error{color:var(--danger);font-weight:650}.eyebrow{margin:0 0 6px;color:var(--tertiary);font-size:11px;font-weight:550;text-transform:uppercase;letter-spacing:.04em}.action-list,.task-list{display:grid;gap:4px}.action-row{min-height:56px;width:100%;display:flex;align-items:center;gap:12px;text-align:left;border-radius:var(--radius);border:none;background:var(--surface);color:var(--text);padding:10px 12px;transition:background .12s ease}.action-row:hover{background:#00000005}.row-copy{display:grid;gap:2px;flex:1;min-width:0}.row-copy strong{font-size:14px;line-height:1.25;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-copy small{color:var(--secondary);font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-chevron{color:var(--tertiary)}.task-row{min-height:64px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:12px}.task-row .secondary-button{min-width:76px;padding:0 14px}.room-badge{width:38px;height:38px;display:grid;place-items:center;border-radius:var(--radius);background:var(--purple-subtle);color:var(--primary);font-size:17px;font-weight:600}.task-copy{min-width:0;display:grid;gap:6px}.task-copy strong{font-size:18px;line-height:1.15;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-copy small{color:var(--secondary);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill{width:fit-content;min-height:24px;display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:0 8px;font-size:12px;font-weight:550}.status-pill:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.status-pill.purple{color:var(--primary);background:var(--purple-subtle)}.status-pill.warning{color:#b76814;background:var(--warning-subtle)}.status-pill.success{color:var(--success);background:var(--success-subtle)}.status-pill.danger{color:var(--danger);background:var(--danger-subtle)}.status-pill.neutral{color:var(--secondary);background:#1111110a}.primary-button,.primary{min-height:40px;border-radius:var(--radius);background:var(--primary);color:#fff;font-weight:550;font-size:14px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:opacity .12s ease}.primary-button:active,.primary:active{opacity:.85}.secondary-button,.small{min-height:36px;border-radius:var(--radius);background:var(--purple-subtle);color:var(--primary);font-weight:550;font-size:14px;padding:0 14px}.link-button{display:inline-flex}.segmented-control,.segmented{min-height:40px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;border:none;border-radius:var(--radius);background:#0000000a;padding:3px}.segmented-control button,.segmented button{border-radius:6px;background:transparent;color:var(--secondary);font-size:13px;font-weight:550}.segmented-control button.active,.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-card)}.selection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.selection-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.selection-card{min-height:88px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:12px;display:grid;justify-items:start;align-content:center;gap:5px;text-align:left;color:var(--text)}.selection-card.selected{border-color:#0d94884d;background:var(--purple-subtle);color:var(--primary)}.selection-card strong{font-size:14px;font-weight:600}.selection-card span{color:var(--secondary);font-size:13px;line-height:1.25}.room-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.room-strip::-webkit-scrollbar{display:none}.room-chip{min-width:96px;min-height:68px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);padding:10px 12px;text-align:left;display:grid;align-content:center;gap:4px;position:relative}.room-chip strong{font-size:19px;font-weight:650}.room-chip span{color:var(--secondary);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-chip.selected{border-color:var(--primary);color:var(--primary);background:#6c5ce708}.room-chip.selected:after{content:"✓";position:absolute;right:10px;top:10px;width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:var(--primary);color:#fff;font-size:15px}.step-line{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:start}.step-number{width:34px;height:34px;display:grid;place-items:center;border-radius:999px;background:var(--purple-subtle);color:var(--primary);font-weight:700}.step-content{min-width:0;display:grid;gap:12px}.step-title{font-size:19px;line-height:1.15;font-weight:700;margin:4px 0 0}.stepper-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stepper-card{min-height:68px;display:grid;grid-template-columns:24px minmax(42px,1fr) 34px 34px;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:17px;padding:9px 10px}.stepper-card svg{color:var(--secondary)}.stepper-card div{display:grid;gap:2px}.stepper-card span{color:var(--secondary);font-size:13px}.stepper-card strong{font-size:22px;font-weight:650}.stepper-card button{width:32px;height:32px;border-radius:999px;background:var(--purple-subtle);color:var(--primary);font-size:22px;line-height:1;display:grid;place-items:center}.checkin-page .stepper-card{grid-template-columns:minmax(46px,1fr) 32px 32px}.checkin-page .stepper-card svg{display:none}.checkin-page .step-content{gap:8px}.checkin-page .step-title{margin-top:1px}.checkin-page .selection-card{min-height:84px;padding:10px 12px}.checkin-page .soft-icon{width:36px;height:36px;border-radius:14px}.checkin-page .action-row{min-height:70px}.checkin-page .room-chip{min-height:60px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:42px;border-radius:14px;padding:0 14px;background:var(--surface);color:var(--secondary);border:1px solid var(--border);font-weight:600;display:inline-grid;place-items:center}.chip.selected{background:var(--purple-subtle);color:var(--primary);border-color:#6c5ce740}.sticky-action-bar{position:sticky;bottom:0;z-index:2;display:grid;padding:12px 4px max(12px,var(--safe-bottom));margin:0 -4px calc(-1 * var(--safe-bottom));background:linear-gradient(180deg,rgba(249,250,251,0),var(--bg) 24%)}.sticky-action-bar .primary-button{width:100%}.no-tabbar .sticky-action-bar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(398px,calc(100vw - 20px));padding:12px 4px max(12px,var(--safe-bottom));margin:0}.no-tabbar .screen{padding-bottom:calc(84px + var(--safe-bottom) + var(--keyboard-height))}.progress-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:0 8px}.progress-dots{display:flex;align-items:center;gap:0}.progress-dots i{width:12px;height:12px;border-radius:999px;background:#d7dbe3;position:relative}.progress-dots i.done{background:var(--primary)}.progress-dots i+i{margin-left:36px}.progress-dots i+i:before{content:"";position:absolute;right:12px;top:5px;width:36px;height:2px;background:inherit;opacity:.7}.progress-row span{color:var(--secondary);font-size:14px;font-weight:650}.os{display:flex;flex-direction:column;min-height:calc(100dvh - 120px)}.os-header{display:flex;align-items:center;justify-content:space-between;padding:4px 0 20px;position:sticky;top:0;z-index:3;background:var(--bg)}.os-back{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;background:#1111110a;color:var(--text)}.os-dots{display:flex;align-items:center;gap:8px}.os-dot{width:8px;height:8px;border-radius:999px;background:#1111111f;transition:all .25s ease}.os-dot.active{width:24px;background:var(--primary)}.os-dot.done{background:var(--primary)}.os-count{font-size:13px;color:var(--tertiary);font-weight:600;min-width:28px;text-align:right}.os-body{flex:1;display:flex;flex-direction:column;gap:0}.os-title{font-size:32px;font-weight:700;line-height:1.1;margin:0;letter-spacing:0}.os-sub{font-size:16px;color:var(--secondary);margin:6px 0 0;line-height:1.3}.os-fields{display:flex;flex-direction:column;gap:12px;margin-top:24px}.os-label{display:block;font-size:13px;font-weight:600;color:var(--tertiary);text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px}.os-label-sm{font-size:12px;font-weight:600;color:var(--tertiary);text-transform:uppercase;letter-spacing:.02em}.os-opt{text-transform:none;font-weight:450;color:var(--tertiary)}.os-input{width:100%;min-height:50px;border:1px solid var(--input-border);background:var(--surface);border-radius:14px;padding:0 16px;font-size:16px;color:var(--text);box-shadow:var(--input-shadow);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.os-input:focus{outline:none;border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px #6c5ce71f,var(--input-shadow)}.os-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:14px;cursor:pointer}.os-row{display:flex;gap:10px}.os-row-3{gap:8px}.os-col{flex:1;display:flex;flex-direction:column;gap:4px}.os-grow{flex:1.5}.os-divider{height:1px;background:var(--divider);margin:12px 0}.os-timing{display:flex;flex-direction:column;gap:6px}.os-pills{display:flex;gap:6px;flex-wrap:wrap}.os-wrap{flex-wrap:wrap}.os-pill{min-height:38px;border-radius:999px;padding:0 16px;background:#1111110a;color:var(--text);font-size:14px;font-weight:600;display:flex;align-items:center;gap:4px;transition:all .15s ease}.os-pill.active{background:var(--primary);color:#fff}.os-list{display:flex;flex-direction:column;gap:8px}.os-type-card{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.os-type-info{display:flex;flex-direction:column;gap:2px}.os-type-info strong{font-size:16px;font-weight:600}.os-type-info span{font-size:13px;color:var(--secondary)}.os-check{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:var(--success-subtle);color:var(--success)}.os-presets{display:flex;flex-direction:column;gap:8px}.os-preset-row{display:flex;gap:8px;flex-wrap:wrap}.os-preset{min-height:36px;border-radius:12px;padding:0 14px;background:var(--purple-subtle);color:var(--primary);font-size:14px;font-weight:600;display:flex;align-items:center;gap:4px}.os-add-btn{min-height:46px;border-radius:14px;padding:0 16px;background:#1111110a;color:var(--secondary);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px;border:1px dashed rgba(17,17,17,.12)}.os-card-form{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.os-form-btns{display:flex;gap:10px;justify-content:flex-end}.os-btn-cancel{min-height:42px;border-radius:12px;padding:0 20px;background:#1111110a;color:var(--secondary);font-size:15px;font-weight:600}.os-btn-save{min-height:42px;border-radius:12px;padding:0 20px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:6px}.os-room-groups{display:flex;flex-direction:column;gap:14px}.os-room-group{display:flex;flex-direction:column;gap:6px}.os-room-chips{display:flex;gap:6px;flex-wrap:wrap}.os-room-chip{min-width:46px;min-height:34px;border-radius:10px;padding:0 12px;background:var(--purple-subtle);color:var(--primary);font-size:14px;font-weight:650;display:grid;place-items:center}.os-error{font-size:14px;color:var(--danger);margin:8px 0 0;text-align:center}.os-success{font-size:14px;color:var(--success);margin:4px 0 0;text-align:center;font-weight:600}.os-footer{position:sticky;bottom:0;padding:16px 0 max(16px,var(--safe-bottom));background:linear-gradient(180deg,transparent,var(--bg) 24%)}.os-footer-row{display:flex;gap:10px}.os-continue{flex:1;min-height:54px;border-radius:16px;background:var(--primary);color:#fff;font-size:17px;font-weight:650;width:100%;display:flex;align-items:center;justify-content:center}.os-continue:disabled{background:var(--primary)}.os-skip{min-height:54px;border-radius:16px;padding:0 24px;background:#1111110a;color:var(--secondary);font-size:17px;font-weight:600}.os-continue-success{background:var(--success)!important}.os-gmaps-block{background:var(--purple-subtle);border-radius:16px;padding:16px}.os-gmaps-block .os-input{background:var(--surface);border:1px solid rgba(108,92,231,.15)}.os-gmaps-block .os-label{color:var(--primary)}.os-hint{font-size:13px;color:var(--secondary);line-height:1.4;margin:6px 0 0}.os-importing{color:var(--primary);display:flex;align-items:center;gap:6px}.os-import-success{color:var(--success);font-weight:600}.os-gmaps-done{background:#2ecc7114;border:1px solid rgba(46,204,113,.2)}.os-gmaps-done .os-label{color:var(--success)!important}.os-gmaps-done .os-input{border-color:#2ecc7133!important}@keyframes os-spin{to{transform:rotate(360deg)}}.os-spin{animation:os-spin 1s linear infinite}.os-type-card-v2{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);gap:10px}.os-type-card-v2 .os-type-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.os-type-card-v2 .os-type-info strong{font-size:16px;font-weight:600}.os-type-card-v2 .os-type-info span{font-size:13px;color:var(--secondary)}.os-room-count-tag{display:inline-block;font-size:12px;color:var(--primary);font-weight:600;background:var(--purple-subtle);border-radius:8px;padding:3px 8px;margin-top:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.os-room-summary{font-size:14px;color:var(--secondary);font-weight:600;text-align:center;padding:4px 0}.os-type-card-v2.os-needs-rooms{border:1px dashed var(--primary);background:var(--purple-subtle)}.os-add-rooms-hint{font-size:12px!important;color:var(--primary)!important;font-weight:600}.os-check-pending{color:var(--primary)!important;background:none!important}.os-inline-bulk{padding:12px 16px 16px;border:1px solid var(--border);border-top:none;border-radius:0 0 14px 14px;background:var(--surface);margin-top:-14px;display:flex;flex-direction:column;gap:10px}.os-room-preview{display:flex;flex-direction:column;gap:6px}.os-room-more{background:#1111110f!important;color:var(--secondary)!important;font-weight:600!important}.os-type-photos{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px 12px;border-top:1px dashed var(--border);align-items:center}.os-photo-thumb{position:relative;width:48px;height:48px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.os-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.os-photo-remove{position:absolute;top:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background:#000000a6;color:#fff;border:none;display:grid;place-items:center;cursor:pointer;padding:0}.os-photo-add{display:flex;align-items:center;gap:4px;padding:8px 14px;border:1px dashed var(--primary);border-radius:8px;background:none;color:var(--primary);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.os-photo-add:active{background:#6c5ce70f}.os-photo-uploading{width:48px;height:48px;display:grid;place-items:center;border-radius:8px;border:1px dashed var(--primary);color:var(--primary)}.os-live{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:32px;text-align:center}.os-live-icon{width:80px;height:80px;border-radius:24px;background:var(--success-subtle);color:var(--success);display:grid;place-items:center}.os-live-stats{display:flex;gap:24px;justify-content:center;margin:8px 0}.os-live-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.os-live-stat strong{font-size:32px;font-weight:700;color:var(--primary)}.os-live-stat span{font-size:13px;color:var(--secondary);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.os-live-tips{width:100%;text-align:left;margin-top:8px;background:var(--surface);border-radius:16px;padding:16px;border:1px solid var(--border)}.os-live-tip-title{font-size:15px;font-weight:700;margin:0 0 10px;color:var(--text)}.os-live-tip{font-size:14px;color:var(--secondary);line-height:1.5;padding:6px 0;border-top:1px solid var(--divider)}.os-live-tip:first-of-type{border-top:none}.form{display:grid;gap:12px;margin:16px 0}input,textarea,select{width:100%;min-height:48px;border:1px solid var(--input-border);background:var(--surface);border-radius:10px;padding:0 14px;color:var(--text);font-size:15px;box-shadow:var(--input-shadow);transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c5ce71f,var(--input-shadow)}textarea{min-height:160px;padding:14px 15px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.money-line{display:flex;align-items:center;justify-content:space-between;min-height:42px;border-bottom:1px solid var(--divider);color:var(--secondary)}.money-line strong{color:var(--text)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{overflow-wrap:anywhere}.diagnostic-grid{display:grid;grid-template-columns:minmax(120px,.5fr) 1fr;gap:10px 14px;align-items:baseline}.diagnostic-grid span{color:var(--secondary)}.diagnostic-grid strong{overflow-wrap:anywhere}.auth-page{min-height:100dvh;display:grid;place-items:center;padding:24px 18px}.auth-panel{width:min(430px,100%)}.auth-brand{margin-bottom:28px}.auth-brand strong{font-size:22px;letter-spacing:0}.auth-brand strong span{color:var(--primary)}.auth-panel h1{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:0;margin:0 0 8px}.auth-sub{color:var(--secondary);font-size:16px;line-height:1.4;margin:0 0 28px}.auth-form{display:grid;gap:16px}.auth-field{display:grid;gap:6px}.auth-field label{font-size:13px;font-weight:600;color:var(--tertiary);text-transform:uppercase;letter-spacing:.02em;padding-left:2px}.auth-field input{width:100%;min-height:48px;border:1px solid var(--input-border);background:var(--surface);border-radius:10px;padding:0 16px;font-size:15px;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.auth-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c5ce71a}.auth-error{font-size:14px;color:var(--danger);margin:0;white-space:pre-line;line-height:1.5;padding:12px 14px;border-radius:10px;background:var(--danger-subtle)}.auth-submit{min-height:48px;border-radius:10px;background:var(--primary);color:#fff;font-size:16px;font-weight:650;transition:transform .18s ease,background .18s ease}.auth-submit:active{background:var(--primary-pressed);transform:scale(.985)}.auth-switch{color:var(--secondary);font-size:15px;margin-top:20px;text-align:center}.empty-state{text-align:center;display:grid;gap:8px;justify-items:center;margin-top:20px;padding:28px 16px}.empty-check{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;background:var(--success-subtle);color:var(--success);font-size:24px}.empty-state h2{margin:0;font-size:16px;font-weight:600}.empty-state p{margin:0;color:var(--secondary);font-size:14px}.tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,.05);padding:4px 8px calc(4px + var(--safe-bottom))}.tabbar a{display:grid;place-items:center;gap:2px;color:var(--tertiary);font-size:10px;font-weight:500;padding:4px 0}.tabbar a svg{stroke-width:1.7;width:20px;height:20px}.tabbar a.active{color:var(--text)}.tabbar a.active svg{stroke:var(--text)}.install-chip{position:fixed;right:14px;bottom:calc(64px + var(--safe-bottom));display:none;gap:6px;align-items:center;max-width:min(390px,calc(100vw - 28px));border:1px solid var(--border);background:var(--surface);color:var(--secondary);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:650;box-shadow:var(--shadow-soft)}.install-chip.visible{display:flex}.install-chip button{background:transparent;color:var(--primary);font-weight:650}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;align-items:end;background:#0003}.bottom-sheet{background:var(--surface);border-radius:14px 14px 0 0;padding:10px 18px max(22px,calc(18px + var(--safe-bottom)));box-shadow:0 -4px 20px #00000014;animation:sheet-in .2s ease}.sheet-handle{width:32px;height:4px;border-radius:999px;background:#0000001a;margin:0 auto 14px}.bottom-sheet h2{margin:0 0 14px;font-size:18px;font-weight:600}@keyframes sheet-in{0%{transform:translateY(24px);opacity:.7}to{transform:translateY(0);opacity:1}}@media (max-width: 374px){.app-shell{padding-left:14px;padding-right:14px}.stats-grid,.metric-grid{gap:6px}.stat-tile,.mini-metric{padding:12px 10px}.staff-card{min-width:74px}}.sidebar{display:none}@media (min-width: 768px){body{background:var(--bg)}.app-shell{width:100%;max-width:none;margin:0;padding:0;display:grid;grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto 1fr;border:none;border-radius:0;box-shadow:none}.app-shell.no-tabbar{padding:0}.sidebar{display:flex;flex-direction:column;grid-row:1 / -1;grid-column:1;background:var(--sidebar-bg);padding:16px 10px;position:sticky;top:0;height:100dvh;overflow-y:auto;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}.sidebar-brand{padding:6px 10px 24px}.sidebar-brand strong{font-size:15px;font-weight:600;letter-spacing:0;color:#ffffffe6}.sidebar-brand strong span{color:var(--sidebar-active-text)}.sidebar-nav{display:flex;flex-direction:column;gap:1px}.sidebar-link{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:6px;color:var(--sidebar-text);font-size:13px;font-weight:450;text-decoration:none;background:none;cursor:pointer;transition:background .1s ease,color .1s ease}.sidebar-link svg{width:17px;height:17px;opacity:.55}.sidebar-link:hover{background:#ffffff0f;color:#ffffffd9}.sidebar-link:hover svg{opacity:.85}.sidebar-link.active{background:var(--sidebar-active);color:var(--sidebar-active-text);font-weight:550}.sidebar-link.active svg{opacity:1}.sidebar-divider{height:1px;background:#ffffff0f;margin:8px 10px}.sidebar-label{color:#ffffff4d}.sidebar-spacer{flex:1;min-height:16px}.sidebar-logout{color:#ef444499;font:inherit;border:none}.sidebar-logout:hover{background:#ef444414;color:#ef4444}.topbar{grid-column:2;grid-row:1;padding:12px 28px;border-bottom:1px solid var(--border);background:var(--surface)}.topbar .brandmark{display:none}.topbar-title{font-size:15px;font-weight:600}.topbar-subtitle{font-size:12px}.app-shell.no-tabbar .topbar{display:none}.screen{grid-column:2;grid-row:2;padding:24px 28px 32px}.app-shell.no-tabbar .screen{grid-row:1 / -1;padding-bottom:96px}.page{max-width:960px;gap:20px}.stats-grid,.metric-grid{gap:8px}.stat-tile,.mini-metric{min-height:68px;padding:12px;border-radius:var(--radius)}.stat-tile span,.mini-metric span{font-size:12px;font-weight:500}.stat-tile strong,.mini-metric strong{font-size:22px}.section-header{margin-bottom:10px}.section-header h2{font-size:14px;font-weight:600}.section-header a{font-size:12px;font-weight:500}.action-row{min-height:48px;padding:8px 12px;border-radius:var(--radius);gap:10px}.row-copy strong{font-size:13px}.row-copy small{font-size:12px}.soft-icon,.row-icon{width:32px;height:32px;border-radius:6px}.booking-card{min-height:48px;padding:8px 12px;border-radius:var(--radius);gap:10px}.booking-avatar{width:32px;height:32px;border-radius:999px;font-size:13px}.booking-info strong{font-size:13px}.booking-info small{font-size:12px}.task-row{min-height:56px;padding:10px 12px;border-radius:var(--radius);gap:10px;border-color:transparent}.room-badge{width:36px;height:36px;border-radius:var(--radius);font-size:16px}.task-copy strong{font-size:13px}.task-copy small{font-size:12px}.status-pill{min-height:22px;font-size:11px}.surface-card,.panel{border-radius:var(--radius-lg);padding:16px}.tabbar,.install-chip{display:none!important}.booking-list,.action-list,.task-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:4px}.room-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.room-tile{padding:10px 8px;border-radius:var(--radius);border-color:transparent}.room-tile strong{font-size:20px}.room-tile small{font-size:11px}.sheet-backdrop{align-items:center;justify-content:center}.bottom-sheet{border-radius:14px;max-width:480px;width:calc(100vw - 280px);max-height:80vh;overflow-y:auto;animation:modal-in .2s ease;box-shadow:var(--shadow-md),0 20px 60px #0000001f}.sheet-handle{display:none}.task-fab{right:28px;bottom:28px;width:48px;height:48px}.sticky-action-bar{max-width:540px;margin-left:auto;margin-right:auto}.no-tabbar .sticky-action-bar{position:sticky;left:auto;transform:none;width:100%;max-width:540px;margin:0 auto;padding-bottom:24px}.nb{max-width:560px;margin:0 auto}.bd-hero,.bd-finance{max-width:560px}.more-links{max-width:560px;border-radius:10px}.more-row{min-height:52px;padding:10px 14px 10px 16px;gap:12px}.more-row .row-icon{width:34px;height:34px;border-radius:8px}.more-row .row-copy strong{font-size:14px}.more-row .row-copy small{font-size:12.5px}.search-bar{border-radius:10px;padding:10px 14px;font-size:14px}.exp-toolbar{gap:10px;margin-bottom:14px}.exp-filter{height:40px;font-size:13.5px;border-radius:8px}.exp-add-btn{height:40px;font-size:13.5px;border-radius:8px;padding:0 16px}.exp-cat-chip{padding:5px 10px;font-size:12px;border-radius:6px}.exp-row{padding:12px;border-radius:10px;gap:10px;border-color:transparent;box-shadow:var(--shadow-card)}.exp-row-icon{width:34px;height:34px;border-radius:8px}.exp-row-info strong{font-size:13.5px}.exp-row-info small{font-size:12px}.exp-row-amount{font-size:14px}.exp-row-actions button{width:28px;height:28px;border-radius:6px}.rev-period-bar{margin-bottom:14px;border-radius:8px}.rev-period-btn{padding:8px;font-size:13px;border-radius:6px}.rev-summary-cards{gap:10px;margin-bottom:16px}.rev-card{padding:16px 14px;border-radius:10px;border-color:transparent;box-shadow:var(--shadow-card)}.rev-card-icon{width:34px;height:34px;border-radius:8px}.rev-card-info span{font-size:11.5px}.rev-card-info strong{font-size:18px}.rev-chart-section{border-radius:10px;padding:18px;margin-bottom:16px;border-color:transparent;box-shadow:var(--shadow-card)}.rev-chart-title{font-size:14px;margin-bottom:12px}.rev-breakdown{border-radius:10px;padding:18px;border-color:transparent;box-shadow:var(--shadow-card)}}@media (min-width: 1024px){.app-shell{grid-template-columns:240px minmax(0,1fr) 360px}.app-shell:not(.with-panel){grid-template-columns:240px minmax(0,1fr)}.right-panel{grid-column:3;grid-row:1 / -1;border-left:1px solid var(--border);background:var(--bg);position:sticky;top:0;height:100dvh;overflow-y:auto;scrollbar-width:none;padding:20px 16px}.right-panel::-webkit-scrollbar{display:none}.page{max-width:none}.rp-detail-header{display:flex;align-items:center;gap:10px;padding:0 0 16px;position:sticky;top:0;z-index:2;background:var(--surface)}.rp-detail-header strong{font-size:16px;font-weight:700}.rp-back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--bg);border:none;cursor:pointer;color:var(--text);transition:background .15s}.rp-back-btn:hover{background:#0000000f}.right-panel .bd-content{display:flex;flex-direction:column}.right-panel .bd-content .nb-body{padding:0}.right-panel .bd-hero,.right-panel .bd-finance,.right-panel .nb-summary{max-width:none}.right-panel .bd-content .nb-create{margin-bottom:16px}.health-panel{display:flex;flex-direction:column;gap:4px}.health-header{display:flex;align-items:center;gap:6px;padding:0 0 14px;color:var(--text)}.health-header svg{width:16px;height:16px;color:var(--secondary)}.health-header strong{font-size:13px;font-weight:600;flex:1;letter-spacing:0}.health-live{width:7px;height:7px;border-radius:50%;background:var(--success);animation:health-pulse 2s ease-in-out infinite}@keyframes health-pulse{0%,to{opacity:1}50%{opacity:.4}}.health-section{padding:14px 0;border-top:1px solid var(--divider)}.health-section:first-of-type{border-top:none;padding-top:0}.health-section-title{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:650;color:var(--tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px}.health-section-title svg{width:12px;height:12px}.health-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.health-stat{display:flex;flex-direction:column;align-items:center;padding:12px 8px;border-radius:10px;background:var(--bg)}.health-stat-value{font-size:24px;font-weight:700;color:var(--text);line-height:1.1}.health-stat-label{font-size:11px;color:var(--secondary);margin-top:3px;font-weight:550}.health-stat-attention{color:var(--danger)}.health-room-row{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.health-room-pill{display:flex;flex-direction:column;align-items:center;padding:10px 4px;border-radius:8px;background:var(--bg)}.health-room-pill strong{font-size:17px;font-weight:700;line-height:1.1}.health-room-pill span{font-size:10.5px;color:var(--secondary);font-weight:550}.health-room-pill.success strong{color:var(--success)}.health-room-pill.warning strong{color:var(--warning)}.health-room-pill.purple strong{color:var(--primary)}.health-room-pill.neutral strong{color:var(--secondary)}.health-list{display:flex;flex-direction:column;gap:1px}.health-list-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:none;border:none;cursor:pointer;text-align:left;width:100%;transition:background .12s}.health-list-item:hover{background:var(--bg)}.health-list-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--primary)}.health-list-dot.urgent,.health-list-item.urgent .health-list-dot{background:var(--danger)}.health-list-content{display:flex;flex-direction:column;min-width:0}.health-list-content strong{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.health-list-content small{font-size:12px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.health-guest-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:var(--purple-subtle);color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.health-empty{display:flex;align-items:center;gap:6px;padding:8px;color:var(--tertiary);font-size:12px}.health-booking-summary{display:flex;flex-direction:column;gap:1px;background:var(--bg);border-radius:8px;padding:2px 0}.health-booking-row{display:flex;justify-content:space-between;align-items:center;padding:6px 10px}.health-booking-row span{font-size:13px;color:var(--secondary)}.health-booking-row strong{font-size:14px;font-weight:650;color:var(--text)}}@keyframes modal-in{0%{transform:scale(.96);opacity:.8}to{transform:scale(1);opacity:1}}.nb{display:flex;flex-direction:column;min-height:calc(100dvh - 120px)}.nb-header{display:flex;align-items:center;justify-content:space-between;padding:4px 0 20px;position:sticky;top:0;z-index:3;background:var(--bg)}.nb-back{width:36px;height:36px;display:grid;place-items:center;border-radius:999px;background:#1111110a;color:var(--text)}.nb-steps{display:flex;align-items:center;gap:8px}.nb-dot{width:8px;height:8px;border-radius:999px;background:#1111111f;transition:all .25s ease}.nb-dot.active{width:24px;background:var(--primary)}.nb-dot.done{background:var(--primary)}.nb-body{flex:1;display:flex;flex-direction:column;gap:0}.nb-title{font-size:32px;font-weight:700;line-height:1.1;margin:0;letter-spacing:0}.nb-subtitle{font-size:16px;color:var(--secondary);margin:6px 0 0;line-height:1.3}.nb-section{margin-top:24px}.nb-label{display:block;font-size:13px;font-weight:600;color:var(--tertiary);text-transform:uppercase;letter-spacing:.02em;margin-bottom:8px}.nb-optional{text-transform:none;font-weight:450;color:var(--tertiary)}.nb-input-wrap{position:relative}.nb-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--tertiary);pointer-events:none}.nb-input-prefix{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--secondary);font-size:18px;font-weight:600;pointer-events:none}.nb-input{width:100%;min-height:50px;border:1px solid var(--input-border);background:var(--surface);border-radius:14px;padding:0 16px;font-size:16px;color:var(--text);box-shadow:var(--input-shadow);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.nb-input:focus{outline:none;border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px #6c5ce71f,var(--input-shadow)}.nb-input.has-icon{padding-left:42px}.nb-input.has-prefix{padding-left:32px}.nb-textarea{width:100%;min-height:72px;border:1px solid var(--input-border);background:var(--surface);border-radius:14px;padding:14px 16px;font-size:16px;color:var(--text);resize:none;box-shadow:var(--input-shadow);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.nb-textarea:focus{outline:none;border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px #6c5ce71f,var(--input-shadow)}.nb-divider{height:1px;background:var(--divider);margin:24px 0 0}.nb-hint{font-size:14px;color:var(--secondary);margin:6px 0 0}.nb-error{font-size:14px;color:var(--danger);margin:8px 0 0;text-align:center}.nb-field-error{font-size:13px;color:var(--danger);margin:4px 0 0;padding-left:2px}.nb-input-error{border-color:var(--danger)!important}.nb-header-title{flex:1;text-align:center;min-width:0}.nb-header-title strong{font-size:17px;font-weight:700;display:block}.nb-header-title small{font-size:13px;color:var(--secondary);display:block;margin-top:1px}.nb-inline-field{display:flex;align-items:center;justify-content:space-between;padding:6px 0}.nb-inline-select{min-height:40px;padding:0 32px 0 12px;border-radius:12px;border:1px solid var(--input-border);background:var(--surface);font-size:15px;font-weight:600;color:var(--text);box-shadow:var(--input-shadow);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23737987' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.nb-id-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:14px;background:#11111109;color:var(--secondary);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease}.nb-id-btn:active{background:#11111112}.nb-id-attached{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:14px;background:var(--success-subtle);color:var(--success);font-size:14px;font-weight:600}.nb-id-attached button{margin-left:auto;width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:#0000000f;color:var(--secondary)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.nb-guest-card{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--purple-subtle);color:var(--text);margin-top:8px;margin-bottom:8px;text-align:left}.nb-guest-avatar{width:40px;height:40px;display:grid;place-items:center;border-radius:999px;background:#6c5ce71f;color:var(--primary)}.nb-guest-info{flex:1;display:grid;gap:2px}.nb-guest-info strong{font-size:16px;font-weight:600}.nb-guest-info small{font-size:13px;color:var(--primary)}.nb-guest-check{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:var(--primary);color:#fff}.nb-guest-use{font-size:14px;font-weight:650;color:var(--primary)}.nb-date-pills{display:flex;gap:8px;margin-bottom:12px}.nb-pill{min-height:40px;padding:0 18px;border-radius:999px;background:#1111110a;color:var(--secondary);font-size:15px;font-weight:600;transition:all .15s ease}.nb-pill.active{background:var(--primary);color:#fff}.nb-date-row{display:grid;grid-template-columns:1fr 20px 1fr;align-items:center;gap:0}.nb-date-field{display:grid;gap:4px}.nb-date-field small{font-size:12px;color:var(--tertiary);font-weight:500;padding-left:2px}.nb-date{width:100%;min-height:48px;border:1px solid var(--input-border);background:var(--surface);border-radius:14px;padding:0 12px;font-size:15px;color:var(--text);box-shadow:var(--input-shadow)}.nb-date:focus{outline:none;border-color:var(--primary);background:var(--surface)}.nb-date-arrow{text-align:center;color:var(--tertiary);font-size:16px;padding-top:18px}.nb-counter-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.nb-counter{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 6px 0 16px;border-radius:16px;background:#11111109}.nb-counter>span{font-size:15px;color:var(--secondary);font-weight:500}.nb-counter-controls{display:flex;align-items:center;gap:2px}.nb-counter-controls button{width:36px;height:36px;border-radius:999px;background:var(--surface);color:var(--primary);font-size:20px;font-weight:500;display:grid;place-items:center;box-shadow:0 1px 3px #0000000f}.nb-counter-controls strong{min-width:28px;text-align:center;font-size:18px;font-weight:650}.nb-type-list{display:grid;gap:8px}.nb-type-card{display:flex;align-items:center;gap:12px;min-height:72px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1.5px solid var(--border);color:var(--text);text-align:left;position:relative;transition:border-color .15s ease,background .15s ease;box-shadow:var(--shadow-soft)}.nb-type-card.active{border-color:var(--primary);background:#6c5ce705}.nb-type-info{flex:1;display:grid;gap:3px}.nb-type-info strong{font-size:17px;font-weight:650}.nb-type-info small{font-size:14px;color:var(--secondary)}.nb-type-price{text-align:right}.nb-type-price strong{font-size:18px;font-weight:700;color:var(--text)}.nb-type-price small{display:block;font-size:12px;color:var(--tertiary)}.nb-type-check{position:absolute;top:10px;right:10px;width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:var(--primary);color:#fff}.nb-type-edit{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#6c5ce71a;color:var(--primary);flex-shrink:0}.nb-room-edit{position:absolute;top:6px;right:6px;width:22px;height:22px;display:grid;place-items:center;border-radius:999px;background:#6c5ce71a;color:var(--primary)}.nb-room.active{border-color:var(--primary);color:var(--primary);position:relative}.nb-room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.nb-room{min-height:64px;padding:10px 8px;border-radius:14px;background:var(--surface);border:1.5px solid var(--border);color:var(--text);text-align:center;display:grid;align-content:center;gap:2px;transition:border-color .15s ease;box-shadow:var(--shadow-soft)}.nb-room strong{font-size:18px;font-weight:650}.nb-room small{font-size:11px;color:var(--secondary);text-transform:capitalize}.nb-room.not-ready{opacity:.6}.nb-room.disabled{opacity:.4}.nb-summary{margin-top:20px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:4px 0;box-shadow:var(--shadow-soft)}.nb-summary-row{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 16px;border-bottom:1px solid var(--divider)}.nb-summary-row:last-child{border-bottom:none}.nb-summary-row span{font-size:14px;color:var(--secondary)}.nb-summary-row strong{font-size:15px;font-weight:600;text-align:right;max-width:60%}.nb-source-row{display:flex;flex-wrap:wrap;gap:8px}.nb-source{min-height:38px;padding:0 14px;border-radius:999px;background:#1111110a;color:var(--secondary);font-size:14px;font-weight:600;transition:all .15s ease}.nb-source.active{background:var(--primary);color:#fff}.nb-pay-toggle{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px;background:#1111110a;border-radius:14px;padding:4px}.nb-pay-toggle button{min-height:42px;border-radius:11px;background:transparent;color:var(--secondary);font-size:15px;font-weight:600;transition:all .15s ease}.nb-pay-toggle button.active{background:var(--surface);color:var(--primary);box-shadow:0 1px 4px #0000000f}.nb-spacer{flex:1;min-height:24px}.nb-continue{width:100%;min-height:54px;border-radius:16px;background:var(--primary);color:#fff;font-size:17px;font-weight:650;display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:max(16px,var(--safe-bottom));transition:transform .18s ease,opacity .15s ease}.nb-continue:active{transform:scale(.985)}.nb-continue:disabled{opacity:.45}.nb-checkin-toggle{width:100%;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1.5px solid var(--border);color:var(--text);text-align:left;box-shadow:var(--shadow-soft);transition:border-color .15s ease}.nb-checkin-toggle:has([data-on=true]){border-color:var(--success);background:var(--success-subtle)}.nb-toggle-track{width:44px;height:26px;flex-shrink:0;border-radius:999px;background:#11111126;position:relative;transition:background .2s ease}.nb-toggle-track[data-on=true]{background:var(--success)}.nb-toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 3px #0000001f;transition:left .2s ease}.nb-toggle-track[data-on=true] .nb-toggle-thumb{left:21px}.nb-toggle-label{display:grid;gap:2px}.nb-toggle-label strong{font-size:15px;font-weight:650}.nb-toggle-label small{font-size:13px;color:var(--secondary)}.nb-create{width:100%;min-height:56px;border-radius:16px;background:var(--primary);color:#fff;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:max(16px,var(--safe-bottom));transition:transform .18s ease}.nb-create:active{transform:scale(.985)}.nb-create:disabled{opacity:.55}.nb-price-bar{margin-top:20px;border-radius:16px;background:var(--purple-subtle);padding:14px 16px}.nb-price-calc{display:flex;align-items:center;justify-content:space-between}.nb-price-calc span{font-size:14px;color:var(--primary);font-weight:500}.nb-price-calc strong{font-size:20px;font-weight:700;color:var(--primary)}.nb-price-card{margin-top:16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);padding:16px;box-shadow:var(--shadow-soft)}.nb-price-line{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--secondary);padding-bottom:12px;border-bottom:1px solid var(--divider)}.nb-price-total{display:flex;justify-content:space-between;align-items:center;padding-top:12px}.nb-price-total span{font-size:15px;font-weight:600}.nb-price-total strong{font-size:20px;font-weight:700;color:var(--primary)}.nb-method-row{display:flex;gap:8px;margin-top:10px}.nb-method{flex:1;min-height:38px;display:grid;place-items:center;border-radius:12px;background:#11111108;border:1px solid var(--border);font-size:14px;font-weight:600;color:var(--secondary)}.nb-method.active{background:var(--purple-subtle);color:var(--primary);border-color:#6c5ce740}.nb-success-icon{width:64px;height:64px;display:grid;place-items:center;border-radius:999px;background:var(--success-subtle);color:var(--success)}.bd-hero{display:flex;align-items:flex-start;gap:14px;margin-top:8px}.bd-hero-avatar{width:48px;height:48px;flex:0 0 auto;display:grid;place-items:center;border-radius:16px;background:var(--purple-subtle);color:var(--primary);font-size:20px;font-weight:700}.bd-hero-info{flex:1;min-width:0;display:grid;gap:3px}.bd-hero-info strong{font-size:18px;font-weight:700}.bd-hero-info small{font-size:13px;color:var(--secondary)}.bd-booking-no{font-size:11px;font-weight:650;font-family:monospace;color:var(--secondary);background:#1111110a;padding:4px 8px;border-radius:8px;white-space:nowrap;margin-top:4px}.bd-finance{margin-top:16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);padding:4px 0;box-shadow:var(--shadow-soft)}.bd-fin-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;font-size:14px}.bd-fin-row span{color:var(--secondary)}.bd-fin-row strong{font-size:15px;font-weight:600}.bd-fin-paid{color:var(--success)}.bd-fin-balance{border-top:1px solid var(--divider)}.booking-list{display:grid;gap:4px}.booking-card{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 12px;border-radius:var(--radius);background:var(--surface);border:none;color:var(--text);text-align:left;cursor:pointer;text-decoration:none;transition:background .12s}.booking-card:hover{background:#00000005}.booking-avatar{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:999px;background:var(--purple-subtle);color:var(--primary);font-size:14px;font-weight:600}.booking-info{flex:1;min-width:0;display:grid;gap:2px}.booking-info strong{font-size:14px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-info small{font-size:12px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-page,.booking-workspace{gap:20px}.ops-eyebrow{color:var(--secondary);font-size:11px;font-weight:550;text-transform:uppercase;letter-spacing:.05em}.ops-hero,.booking-hero{display:grid;gap:12px;padding:0;border:none;border-radius:0;background:none;box-shadow:none}.ops-hero-copy,.booking-hero>div{display:grid;gap:4px;min-width:0}.ops-hero h1,.booking-hero h1{margin:0;color:var(--text);font-size:24px;line-height:1.15;font-weight:650}.ops-hero p,.booking-hero p{margin:0;color:var(--secondary);font-size:14px;line-height:1.5}.ops-hero-actions{display:flex;gap:8px;margin-top:2px}.ops-secondary-action{min-height:36px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;transition:background .12s}.ops-secondary-action:hover{background:var(--bg)}.ops-kpi-grid,.booking-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ops-kpi-grid .stat-tile,.booking-summary-card{border-radius:var(--radius)}.ops-layout,.ops-two-column,.booking-workbench{display:grid;gap:16px}.ops-command-panel,.ops-room-card,.ops-arrivals-card,.reservation-board,.booking-side-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.ops-command-panel,.ops-room-card,.ops-arrivals-card,.booking-side-card{padding:16px}.reservation-board{padding:0}.ops-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.ops-panel-head.compact{align-items:center}.ops-panel-head h2{margin:2px 0 0;font-size:15px;font-weight:600;line-height:1.2}.ops-live-pill{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:0 8px;border-radius:6px;background:var(--success-subtle);color:var(--success);font-size:11px;font-weight:600}.ops-live-pill span{width:6px;height:6px;border-radius:999px;background:currentColor;animation:health-pulse 2s ease-in-out infinite}.ops-timeline{display:grid;gap:0}.ops-timeline-item{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;padding:10px 0;border-top:1px solid var(--divider)}.ops-timeline-item:first-child{border-top:none;padding-top:0}.ops-time{color:var(--tertiary);font-size:11px;font-weight:600;padding-top:1px}.ops-timeline-item strong{display:block;font-size:13px;font-weight:550;line-height:1.3}.ops-timeline-item small{display:block;margin-top:2px;color:var(--secondary);font-size:12px;line-height:1.35}.ops-timeline-item.active .ops-time{color:var(--primary)}.ops-occupancy-meter{height:6px;border-radius:999px;background:#0000000f;overflow:hidden;margin-bottom:12px}.ops-occupancy-meter span{display:block;height:100%;border-radius:inherit;background:var(--primary);transition:width .3s ease}.ops-room-metrics .mini-metric{min-height:56px;border-radius:var(--radius);background:var(--bg);border-color:transparent;box-shadow:none;padding:10px}.ops-action-list{grid-template-columns:1fr}.ops-guest-list{display:grid;gap:2px}.ops-guest-row{min-height:52px;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:10px;color:var(--text);border-radius:var(--radius);padding:8px;transition:background .12s}.ops-guest-row:hover{background:var(--bg)}.ops-guest-row span:nth-child(2){display:grid;min-width:0;gap:2px}.ops-guest-row strong,.reservation-guest strong,.reservation-stay strong,.reservation-money strong{font-size:13px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-guest-row small,.reservation-guest small,.reservation-stay small,.reservation-money small{font-size:12px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ops-empty-inline{min-height:48px;display:flex;align-items:center;gap:8px;color:var(--tertiary);border-radius:var(--radius);padding:0 8px;font-size:13px;font-weight:500}.ops-signal-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ops-signal-strip div{min-height:60px;display:grid;align-content:center;gap:3px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text);padding:10px 12px}.ops-signal-strip svg{color:var(--secondary);width:16px;height:16px}.ops-signal-strip span{color:var(--secondary);font-size:11px;font-weight:500}.ops-signal-strip strong{font-size:16px;font-weight:600;line-height:1.1}.booking-hero{grid-template-columns:1fr}.booking-summary-card{min-height:80px;display:grid;align-content:space-between;gap:6px;padding:12px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius)}.booking-summary-card svg{color:var(--tertiary);width:18px;height:18px}.booking-summary-card span{color:var(--secondary);font-size:11px;font-weight:550}.booking-summary-card strong{color:var(--text);font-size:20px;font-weight:600;line-height:1}.booking-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 36px 36px;gap:6px;align-items:center}.booking-search .nb-input{border-radius:var(--radius);min-height:36px;font-size:13px}.booking-tool-button{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--secondary);transition:background .12s}.booking-tool-button:hover{background:var(--bg)}.reservation-board{overflow:hidden}.reservation-board-head{display:none;grid-template-columns:minmax(180px,1.2fr) minmax(140px,1fr) minmax(130px,.85fr) minmax(100px,auto);gap:12px;padding:8px 16px;color:var(--tertiary);background:var(--bg);border-bottom:1px solid var(--divider);font-size:11px;font-weight:550;text-transform:uppercase;letter-spacing:.04em}.reservation-rows{display:grid}.reservation-row{display:grid;gap:10px;padding:12px 16px;border-top:1px solid var(--divider);cursor:pointer;transition:background 80ms}.reservation-row:first-child{border-top:none}.reservation-row:hover{background:#00000004}.reservation-guest{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px}.reservation-guest span,.reservation-stay,.reservation-money{display:grid;min-width:0;gap:2px}.reservation-stay strong,.reservation-money strong,.reservation-guest strong{font-size:13px;font-weight:550;line-height:1.25}.reservation-stay small,.reservation-money small,.reservation-guest small{font-size:12px}.booking-side-panel{display:grid;gap:12px;align-content:start}.source-bars,.booking-audit-list{display:grid;gap:10px;margin-top:10px}.source-bar{display:grid;gap:6px}.source-bar div,.booking-audit-list div{display:flex;justify-content:space-between;gap:12px;color:var(--secondary);font-size:12px;font-weight:550}.source-bar strong,.booking-audit-list strong{color:var(--text);font-weight:600}.source-bar i{height:4px;border-radius:999px;background:#0000000f;overflow:hidden}.source-bar i span{display:block;height:100%;border-radius:inherit;background:var(--primary)}@media (min-width: 768px){.ops-page,.booking-workspace{gap:24px}.ops-hero,.booking-hero{grid-template-columns:minmax(0,1fr) auto;align-items:center}.ops-hero h1,.booking-hero h1{font-size:22px}.ops-hero-actions{flex-direction:row;justify-content:flex-end}.ops-secondary-action,.ops-hero-actions .primary-button,.booking-hero .primary-button{min-height:34px;border-radius:var(--radius);padding-inline:14px;font-size:13px}.ops-kpi-grid,.booking-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.ops-layout{grid-template-columns:minmax(0,1.35fr) minmax(260px,.85fr);gap:16px}.ops-two-column{grid-template-columns:minmax(0,1fr) minmax(280px,.78fr);gap:16px}.ops-command-panel,.ops-room-card,.ops-arrivals-card,.booking-side-card{padding:16px}.ops-signal-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.booking-toolbar{grid-template-columns:minmax(320px,1fr) 36px 36px;max-width:none}.booking-workbench{grid-template-columns:1fr;align-items:start;gap:16px}.booking-side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.reservation-board-head{display:grid}.reservation-row{grid-template-columns:minmax(180px,1.2fr) minmax(140px,1fr) minmax(130px,.85fr) minmax(100px,auto);align-items:center;gap:12px;min-height:56px;padding:10px 16px}.reservation-row .status-pill{justify-self:start;white-space:nowrap}}@media (min-width: 1280px){.booking-workbench{grid-template-columns:minmax(0,1fr) 300px}.booking-side-panel{grid-template-columns:1fr}.ops-layout{grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr)}}@media (max-width: 430px){.ops-hero h1,.booking-hero h1{font-size:22px}.ops-kpi-grid .stat-tile{min-height:72px}.booking-summary-card{min-height:72px;padding:10px}.booking-summary-card strong{font-size:18px}.reservation-row .status-pill{justify-self:start}}.more-links{display:grid;gap:2px;overflow:hidden;border-radius:18px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft)}.more-row{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 14px 12px 16px;background:var(--surface);color:var(--text);text-align:left;width:100%;border-bottom:1px solid var(--divider)}.more-row:last-child{border-bottom:none}.more-row .row-icon{width:36px;height:36px;border-radius:12px}.more-row .row-copy strong{font-size:15px}.more-row .row-copy small{font-size:13px}.room-stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}.room-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.room-stat strong{font-size:22px;font-weight:600;color:var(--text)}.room-stat span{font-size:11px;font-weight:500;color:var(--secondary);text-transform:uppercase;letter-spacing:.03em}.room-stat-ready strong{color:var(--success)}.room-stat-occupied strong{color:var(--primary)}.room-stat-dirty strong{color:var(--warning)}.room-type-group{margin-top:20px}.room-type-header{display:flex;align-items:baseline;justify-content:space-between;padding:0 4px;margin-bottom:10px}.room-type-header strong{font-size:17px;font-weight:700}.room-type-header span{font-size:14px;color:var(--secondary);font-weight:600}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.room-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:72px;padding:10px 8px;border-radius:var(--radius);background:var(--room-bg, rgba(0,0,0,.03));border:1.5px solid transparent;color:var(--text);transition:transform .1s ease}.room-card strong{font-size:20px;font-weight:600}.room-card-status{font-size:10px;font-weight:550;text-transform:uppercase;letter-spacing:.03em}.room-card-action{font-size:10px;font-weight:600;color:var(--primary);background:var(--purple-subtle);border-radius:4px;padding:2px 6px;margin-top:1px}.room-card.occupied{border-color:#0d948833}.room-card.actionable:active{transform:scale(.97)}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-nav-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:999px;background:#1111110a;color:var(--text)}.cal-nav strong{font-size:18px;font-weight:700}.cal-today-btn{min-height:34px;padding:0 14px;border-radius:999px;background:var(--purple-subtle);color:var(--primary);font-size:13px;font-weight:650}.cal-week-header{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin-bottom:4px}.cal-week-header span{text-align:center;font-size:12px;font-weight:600;color:var(--tertiary);text-transform:uppercase;letter-spacing:.02em;padding:6px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px;background:transparent;color:var(--text);font-size:15px;font-weight:500;position:relative;padding:2px}.cal-day.other-month{color:var(--tertiary);opacity:.4}.cal-day.today{background:var(--purple-subtle);color:var(--primary);font-weight:700}.cal-day.selected{background:var(--primary);color:#fff;font-weight:700}.cal-day-dots{display:flex;gap:2px}.cal-day-dots i{width:5px;height:5px;border-radius:999px}.cal-day-dots i.arr{background:var(--success)}.cal-day-dots i.dep{background:var(--danger)}.cal-day-dots i.stay{background:var(--primary)}.cal-summary{margin-top:16px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.cal-summary-date{font-size:16px;font-weight:700}.cal-summary-stats{display:flex;gap:14px;margin-top:8px;flex-wrap:wrap}.cal-stat{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--secondary)}.cal-stat.arr{color:var(--success)}.cal-stat.dep{color:var(--danger)}.cal-stat.stay{color:var(--primary)}.cal-section{margin-top:16px}.cal-guest-list{display:grid;gap:6px}.cal-guest-row{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);color:var(--text);text-align:left;width:100%;transition:border-color .15s}.cal-guest-row:active{transform:scale(.98)}.cal-guest-avatar{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;font-size:16px;font-weight:700}.cal-guest-avatar.arr{background:var(--success-subtle);color:var(--success)}.cal-guest-avatar.dep{background:var(--danger-subtle);color:var(--danger)}.cal-guest-info{flex:1;min-width:0;display:grid;gap:2px}.cal-guest-info strong{font-size:15px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-guest-info small{font-size:13px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-quick-strip{display:flex;gap:8px;overflow-x:auto;padding:4px 0 8px;scrollbar-width:none}.task-quick-strip::-webkit-scrollbar{display:none}.task-quick-chip{display:flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;background:var(--purple-subtle);color:var(--primary);font-size:13px;font-weight:650;white-space:nowrap;flex-shrink:0}.task-quick-chip:active{background:#6c5ce726}.task-card{display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 14px;border-radius:16px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);color:var(--text);text-align:left;width:100%}.task-card-icon{flex-shrink:0}.task-card-body{flex:1;min-width:0;display:grid;gap:3px}.task-card-body strong{font-size:15px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-card-body small{font-size:13px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.task-card-action{min-height:30px;padding:0 14px;border-radius:10px;background:var(--purple-subtle);color:var(--primary);font-size:13px;font-weight:650;display:grid;place-items:center}.task-card-action:active{background:#6c5ce726}.task-fab{position:fixed;right:max(16px,calc((100vw - 430px)/2 + 16px));bottom:calc(100px + var(--safe-bottom));width:56px;height:56px;border-radius:18px;background:var(--primary);color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px #6c5ce74d;z-index:10;transition:transform .15s ease}.task-fab:active{transform:scale(.92)}.bill-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;background:#f3f4f6;padding:24px 16px}.bill-card{width:min(100%,460px);background:#fff;border-radius:16px;padding:28px 24px;box-shadow:0 2px 12px #0000000f}.bill-hotel{text-align:center}.bill-hotel h1{margin:0;font-size:22px;font-weight:700}.bill-hotel p{margin:4px 0 0;font-size:13px;color:#737987}.bill-divider{height:1px;background:#e5e7eb;margin:16px 0}.bill-heading{font-size:16px;font-weight:700;text-align:center;margin:0 0 4px}.bill-number{font-size:13px;font-family:monospace;color:#737987;text-align:center;margin:0 0 8px;letter-spacing:.5px}.bill-subheading{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#737987;margin:0 0 8px}.bill-section{display:grid;gap:0}.bill-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.bill-row span{font-size:14px;color:#737987}.bill-row strong{font-size:14px;font-weight:600}.bill-totals{background:#f9fafb;border-radius:12px;padding:10px 14px}.bill-balance{border-top:1px solid #e5e7eb;padding-top:10px;margin-top:4px}.bill-balance strong{color:#ef5b64}.bill-footer{text-align:center;font-size:14px;color:#737987;margin:0}.bill-loading,.bill-error{text-align:center;color:#737987;font-size:16px;margin-top:60px}.bill-branding{margin-top:20px;display:flex;align-items:center;gap:6px;font-size:13px;color:#a0a5af}.bill-branding strong{font-size:15px;color:#111;font-weight:700}.bill-branding strong span{color:#6c5ce7}.gs-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gs-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 10px 14px;border-radius:16px;background:var(--surface);border:1.5px solid var(--border);box-shadow:var(--shadow-soft);text-align:center;transition:border-color .15s,transform .15s}.gs-card:active{transform:scale(.97)}.gs-card strong{font-size:14px;font-weight:650;color:var(--text)}.gs-card small{font-size:12px;color:var(--secondary);line-height:1.3}.gs-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px}.gs-icon.purple{background:var(--purple-subtle);color:var(--primary)}.gs-icon.warning{background:var(--warning-subtle, rgba(255,165,0,.1));color:var(--warning)}.gs-icon.danger{background:var(--danger-subtle);color:var(--danger)}.gs-icon.neutral{background:#1111110d;color:var(--secondary)}.gs-type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}.gs-type-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px 12px;border-radius:14px;background:#11111108;border:1.5px solid var(--border);font-size:12px;font-weight:600;color:var(--text);transition:all .15s ease}.gs-type-btn.selected{background:var(--purple-subtle);border-color:var(--primary);color:var(--primary)}.gs-type-btn:active{transform:scale(.95)}.gs-type-icon{display:flex;align-items:center;justify-content:center;color:var(--primary)}.spinner{width:28px;height:28px;border:3px solid var(--divider);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sidebar-label{font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--tertiary);padding:4px 14px 2px;display:block}.exp-toolbar{display:flex;gap:8px;align-items:stretch;margin-bottom:12px}.exp-filter{flex:1;min-width:0;padding:0 12px;height:44px;border:1px solid var(--input-border);border-radius:10px;background:var(--surface);font-size:14px;color:var(--text);box-shadow:var(--input-shadow)}.exp-add-btn{flex:1;min-width:0;height:36px;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:13px;font-weight:550;white-space:nowrap}.exp-cat-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.exp-cat-chip{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:12px;color:var(--secondary);box-shadow:var(--shadow-soft)}.exp-cat-chip strong{color:var(--text);margin-left:2px}.exp-list{display:flex;flex-direction:column;gap:6px}.exp-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.exp-row-icon{width:36px;height:36px;border-radius:10px;background:var(--purple-subtle);display:flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.exp-row-info{flex:1;min-width:0}.exp-row-info strong{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exp-row-info small{color:var(--secondary);font-size:12px}.exp-row-amount{font-size:14px;font-weight:700;white-space:nowrap}.exp-row-actions{display:flex;gap:4px}.exp-row-actions button{width:30px;height:30px;border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:center;color:var(--secondary)}.exp-row-actions button:hover{background:var(--divider)}.exp-form{display:flex;flex-direction:column;gap:12px;padding-top:8px}.exp-form-row{display:flex;gap:10px}.exp-form-row .exp-form-field{flex:1}.exp-form-field label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--secondary);margin-bottom:4px}.exp-form-field input,.exp-form-field select{width:100%;padding:10px 12px;border:1px solid var(--input-border);border-radius:10px;background:var(--surface);font-size:14px;color:var(--text);box-shadow:var(--input-shadow);transition:border-color .15s ease,box-shadow .15s ease}.exp-form-field input:focus,.exp-form-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c5ce71f,var(--input-shadow)}.exp-submit{width:100%;padding:12px;border-radius:12px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;margin-top:4px;box-shadow:0 2px 8px #6c5ce740}.rev-period-bar{display:flex;gap:4px;margin-bottom:16px;background:var(--divider);border-radius:10px;padding:3px;border:1px solid var(--border)}.rev-period-btn{flex:1;padding:8px;border-radius:8px;font-size:13px;font-weight:600;background:transparent;color:var(--secondary);text-align:center;transition:all .15s ease}.rev-period-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 4px #00000014}.rev-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.rev-card{padding:12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.rev-card-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}.rev-card.income .rev-card-icon{background:var(--success-subtle);color:var(--success)}.rev-card.expense .rev-card-icon{background:var(--danger-subtle);color:var(--danger)}.rev-card.profit .rev-card-icon{background:var(--success-subtle);color:var(--success)}.rev-card.loss .rev-card-icon{background:var(--danger-subtle);color:var(--danger)}.rev-card-info span{font-size:11px;color:var(--secondary);text-transform:uppercase;font-weight:600}.rev-card-info strong{display:block;font-size:16px;margin-top:2px}.rev-chart-section{background:var(--surface);border-radius:14px;padding:16px;margin-bottom:16px;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.rev-chart-title{font-size:14px;font-weight:600;margin:0 0 12px}.rev-chart{display:flex;gap:2px;align-items:flex-end;height:140px}.rev-chart-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%}.rev-chart-bars{flex:1;display:flex;gap:2px;align-items:flex-end;width:100%}.rev-bar{flex:1;border-radius:4px 4px 0 0;min-height:2px;transition:height .3s ease}.rev-bar.income{background:var(--success)}.rev-bar.expense{background:var(--danger);opacity:.7}.rev-chart-label{font-size:10px;color:var(--secondary);white-space:nowrap}.rev-chart-legend{display:flex;gap:16px;justify-content:center;margin-top:10px}.rev-legend{font-size:12px;color:var(--secondary);display:flex;align-items:center;gap:5px}.rev-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.rev-legend.income i{background:var(--success)}.rev-legend.expense i{background:var(--danger);opacity:.7}.rev-breakdown{background:var(--surface);border-radius:14px;padding:16px;border:1px solid var(--border);box-shadow:var(--shadow-soft)}.rev-breakdown-list{display:flex;flex-direction:column;gap:8px}.rev-breakdown-row{display:flex;align-items:center;gap:8px}.rev-breakdown-label{font-size:12px;color:var(--secondary);width:80px;text-transform:capitalize}.rev-breakdown-bar-wrap{flex:1;height:6px;background:var(--divider);border-radius:3px;overflow:hidden}.rev-breakdown-bar{height:100%;background:var(--primary);border-radius:3px;transition:width .3s ease}.rev-breakdown-val{font-size:12px;font-weight:600;width:60px;text-align:right}.rev-breakdown-pct{font-size:11px;color:var(--secondary);width:30px;text-align:right}.health-revenue-row{display:flex;gap:4px;margin-bottom:4px}.health-rev-item{flex:1;display:flex;align-items:center;gap:3px;padding:6px 7px;border-radius:6px;font-size:11px}.health-rev-item.income{background:var(--success-subtle);color:var(--success)}.health-rev-item.expense{background:var(--danger-subtle);color:var(--danger)}.health-rev-item span{flex:1}.health-rev-item strong{font-size:12px;color:var(--text)}.health-rev-item svg{width:12px;height:12px}.health-profit{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:6px;font-size:11px;font-weight:500}.health-profit.positive{background:var(--success-subtle);color:var(--success)}.health-profit.negative{background:var(--danger-subtle);color:var(--danger)}.health-profit strong{font-size:12px;color:var(--text)}
