:root{color-scheme:light;--primary: #6C5CE7;--primary-pressed: #5B4BD8;--bg: #F9FAFB;--surface: #FFFFFF;--text: #111111;--secondary: #737987;--tertiary: #A0A5AF;--border: rgba(17, 17, 17, .06);--divider: rgba(17, 17, 17, .05);--success: #45C983;--warning: #F3A552;--danger: #EF5B64;--purple-subtle: #F1EFFF;--success-subtle: #EBF9F1;--warning-subtle: #FFF5E8;--danger-subtle: #FFF0F1;--shadow-soft: 0 2px 12px rgba(0, 0, 0, .035);--safe-bottom: env(safe-area-inset-bottom, 0px);--visual-viewport-height: 100dvh;--keyboard-height: 0px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Inter,sans-serif;background:var(--bg)}*{box-sizing:border-box}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(94px + var(--safe-bottom));background:var(--bg)}.app-shell.no-tabbar{padding-bottom:max(16px,var(--safe-bottom))}.app-shell.no-tabbar .topbar{padding-bottom:18px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 4px 28px}.brandmark{display:grid;gap:2px;min-width:0}.brandmark strong{font-size:25px;line-height:1;letter-spacing:0}.brandmark strong span{color:var(--primary)}.hotel-switch{color:var(--secondary);font-size:15px;line-height:1.25;display:flex;align-items:center;gap:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.top-actions{display:flex;gap:10px;align-items:center}.icon-button,.profile-button{width:44px;height:44px;display:grid;place-items:center;border-radius:999px;background:#11111109;color:var(--text);position:relative}.icon-button.has-dot:after{content:"";position:absolute;width:8px;height:8px;border-radius:999px;right:9px;top:8px;background:var(--primary);border:2px solid var(--bg)}.icon-button.quick-add{background:var(--primary);color:#fff}.profile-button{color:var(--secondary);font-weight:650;font-size:14px}.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:30px}.checkin-page{gap:12px}.checkin-page .page-heading{gap:6px}.checkin-page .page-heading h1{font-size:40px}.page-heading{display:grid;gap:8px;padding:0 4px}.page-heading h1{margin:0;font-size:42px;line-height:1.05;font-weight:700;letter-spacing:0}.page-heading p{margin:0;color:var(--secondary);font-size:19px;line-height:1.25}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px;margin-bottom:14px}.section-header h2{margin:0;font-size:22px;line-height:1.1;font-weight:700;letter-spacing:0}.section-header a{display:flex;align-items:center;gap:2px;font-size:15px;font-weight:650}.stats-grid,.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stat-tile,.mini-metric{min-height:78px;border:1px solid var(--border);background:var(--surface);border-radius:18px;padding:13px 12px;display:grid;align-content:space-between;box-shadow:var(--shadow-soft)}.stat-tile span,.mini-metric span{color:var(--secondary);font-size:13px;line-height:1.1}.stat-tile div{display:flex;align-items:center;justify-content:space-between;gap:5px}.stat-tile strong,.mini-metric strong{font-size:24px;line-height:1;font-weight:650;color:#050509}.mini-metric{position:relative}.mini-metric i{position:absolute;right:14px;bottom:17px;width:8px;height:8px;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:42px;height:42px;border-radius:16px;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:22px;box-shadow:var(--shadow-soft);padding:16px}.panel h2,.auth-panel h1,.auth-panel h2{margin:0 0 14px;font-size:22px;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 8px;color:var(--tertiary);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:0}.action-list,.task-list{display:grid;gap:8px}.action-row{min-height:80px;width:100%;display:flex;align-items:center;gap:14px;text-align:left;border-radius:18px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:14px 14px 14px 16px;box-shadow:var(--shadow-soft)}.row-copy{display:grid;gap:4px;flex:1;min-width:0}.row-copy strong{font-size:17px;line-height:1.18;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-copy small{color:var(--secondary);font-size:15px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-chevron{color:var(--secondary)}.task-row{min-height:96px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid var(--border);border-radius:20px;background:var(--surface);padding:16px 14px;box-shadow:var(--shadow-soft)}.task-row .secondary-button{min-width:76px;padding:0 14px}.room-badge{width:54px;height:54px;display:grid;place-items:center;border-radius:15px;background:var(--purple-subtle);color:#17142b;font-size:25px;font-weight:650}.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:28px;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:0 12px;font-size:13px;font-weight:550}.status-pill:before{content:"";width:8px;height:8px;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:#278d59;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:56px;border-radius:17px;background:var(--primary);color:#fff;font-weight:650;font-size:17px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .18s ease,background .18s ease}.primary-button:active,.primary:active{background:var(--primary-pressed);transform:scale(.985)}.secondary-button,.small{min-height:48px;border-radius:15px;background:var(--purple-subtle);color:var(--primary);font-weight:650;font-size:16px;padding:0 18px}.link-button{display:inline-flex}.segmented-control,.segmented{min-height:58px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px;border:1px solid var(--border);border-radius:24px;background:var(--surface);padding:4px}.segmented-control button,.segmented button{border-radius:20px;background:transparent;color:var(--secondary);font-size:16px;font-weight:550}.segmented-control button.active,.segmented button.active{background:var(--purple-subtle);color:var(--primary)}.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:104px;border:1px solid var(--border);border-radius:18px;background:var(--surface);padding:14px;display:grid;justify-items:start;align-content:center;gap:7px;text-align:left;color:var(--text)}.selection-card.selected{border-color:#6c5ce759;background:var(--purple-subtle);color:var(--primary)}.selection-card strong{font-size:16px;font-weight:650}.selection-card span{color:var(--secondary);font-size:14px;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:-.01em}.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 transparent;background:#11111109;border-radius:14px;padding:0 16px;font-size:16px;color:var(--text);transition:border-color .15s ease,background .15s ease}.os-input:focus{outline:none;border-color:var(--primary);background:var(--surface)}.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:52px;border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:0 15px;color:var(--text);font-size:16px}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:-.01em}.auth-brand strong span{color:var(--primary)}.auth-panel h1{font-size:34px;line-height:1.1;font-weight:700;letter-spacing:-.02em;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:52px;border:1px solid transparent;background:#11111109;border-radius:14px;padding:0 16px;font-size:16px;color:var(--text);transition:border-color .15s ease,background .15s ease}.auth-field input:focus{outline:none;border-color:var(--primary);background:var(--surface)}.auth-error{font-size:14px;color:var(--danger);margin:0;white-space:pre-line;line-height:1.5;padding:12px 14px;border-radius:12px;background:var(--danger-subtle)}.auth-submit{min-height:54px;border-radius:16px;background:var(--primary);color:#fff;font-size:17px;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:10px;justify-items:center;margin-top:24px;padding:32px 16px}.empty-check{width:54px;height:54px;display:grid;place-items:center;border-radius:999px;background:var(--success-subtle);color:var(--success);font-size:30px}.empty-state h2{margin:0;font-size:23px}.empty-state p{margin:0;color:var(--secondary)}.tabbar{position:fixed;left:50%;bottom:max(10px,var(--safe-bottom));transform:translate(-50%);width:min(398px,calc(100vw - 20px));min-height:74px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#fffffff0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:24px;box-shadow:0 10px 30px #1111110f;padding:8px 8px calc(8px + var(--safe-bottom))}.tabbar a{display:grid;place-items:center;gap:3px;color:var(--secondary);font-size:11px;font-weight:500;border-radius:18px}.tabbar a svg{stroke-width:1.9}.tabbar a.active{color:var(--primary)}.tabbar a.active svg{fill:var(--primary);stroke:var(--primary)}.install-chip{position:fixed;right:14px;bottom:calc(92px + 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:#0000002e}.bottom-sheet{background:var(--surface);border-radius:26px 26px 0 0;padding:10px 18px max(22px,calc(18px + var(--safe-bottom)));box-shadow:0 -12px 40px #0000001f;animation:sheet-in .2s ease}.sheet-handle{width:42px;height:5px;border-radius:999px;background:#11111121;margin:0 auto 18px}.bottom-sheet h2{margin:0 0 16px;font-size:24px}@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}.page-heading h1{font-size:40px}.stats-grid,.metric-grid{gap:6px}.stat-tile,.mini-metric{padding:12px 10px}.staff-card{min-width:74px}}@media (min-width: 760px){body{background:radial-gradient(circle at 50% 0%,#fff 0%,var(--bg) 54%)}.app-shell{min-height:844px;margin-top:24px;margin-bottom:24px;border:1px solid var(--border);border-radius:34px;box-shadow:0 20px 60px #11111114}}.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:-.01em}.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 transparent;background:#11111109;border-radius:14px;padding:0 16px;font-size:16px;color:var(--text);transition:border-color .15s ease,background .15s ease}.nb-input:focus{outline:none;border-color:var(--primary);background:var(--surface)}.nb-input.has-icon{padding-left:42px}.nb-input.has-prefix{padding-left:32px}.nb-textarea{width:100%;min-height:72px;border:1px solid transparent;background:#11111109;border-radius:14px;padding:14px 16px;font-size:16px;color:var(--text);resize:none;transition:border-color .15s ease,background .15s ease}.nb-textarea:focus{outline:none;border-color:var(--primary);background:var(--surface)}.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-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 transparent;background:#11111109;border-radius:14px;padding:0 12px;font-size:15px;color:var(--text)}.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-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.active{border-color:var(--primary);color:var(--primary)}.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-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:8px}.booking-card{display:flex;align-items:center;gap:14px;min-height:80px;padding:14px 16px;border-radius:18px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);color:var(--text);text-align:left}.booking-avatar{width:42px;height:42px;flex:0 0 auto;display:grid;place-items:center;border-radius:14px;background:var(--purple-subtle);color:var(--primary);font-size:18px;font-weight:700}.booking-info{flex:1;min-width:0;display:grid;gap:3px}.booking-info strong{font-size:16px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-info small{font-size:13px;color:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.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:12px 6px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.room-stat strong{font-size:24px;font-weight:700;color:var(--text)}.room-stat span{font-size:12px;font-weight:600;color:var(--secondary);text-transform:uppercase;letter-spacing:.02em}.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:4px;min-height:80px;padding:12px 8px;border-radius:16px;background:var(--room-bg, rgba(17,17,17,.04));border:2px solid transparent;color:var(--text);transition:transform .15s ease,box-shadow .15s ease}.room-card strong{font-size:22px;font-weight:700}.room-card-status{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.02em}.room-card-action{font-size:11px;font-weight:700;color:var(--primary);background:#6c5ce714;border-radius:8px;padding:2px 8px;margin-top:2px}.room-card.occupied{border-color:#6c5ce733}.room-card.actionable:active{transform:scale(.96)}.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-detail-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.cal-detail-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft)}.cal-detail-stat strong{font-size:22px;font-weight:700}.cal-detail-stat span{font-size:11px;font-weight:650;color:var(--secondary);text-transform:uppercase}.cal-detail-stat.arr strong{color:var(--success)}.cal-detail-stat.dep strong{color:var(--danger)}.cal-detail-stat.stay strong{color:var(--primary)}.cal-room-list{display:grid;gap:6px;margin-top:16px}.cal-room-row{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);color:var(--text)}.cal-room-badge{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;font-size:18px;font-weight:700}.cal-room-badge.available{background:var(--success-subtle);color:var(--success)}.cal-room-badge.booked{background:var(--purple-subtle);color:var(--primary)}.cal-room-badge.blocked{background:var(--danger-subtle);color:var(--danger)}.cal-room-info{flex:1;min-width:0;display:grid;gap:2px}.cal-room-info strong{font-size:15px;font-weight:650}.cal-room-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)}
