*{box-sizing:border-box}:root{color-scheme:light;--ink:#183f3a;--muted:#71837f;--line:#dce9e5;--gold:#c5a76b;--gold-dark:#9b7b43;--navy:#195e58;--navy-soft:#2d8179;--ivory:#f8fbf9;--surface:#ffffff;--background:#f3f8f6}body,html{width:100%;min-height:100%;margin:0;background:var(--background);color:var(--ink)}body{font-family:Microsoft YaHei,PingFang SC,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.center-screen,.login-page{min-height:100vh;min-height:100dvh}.center-screen{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#ffffff,#eff7f4)}.loading-card{position:relative;display:flex;align-items:center;gap:13px;min-width:280px;padding:18px 22px;border:1px solid #d9e8e4;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 20px 60px rgba(58,104,97,.1);color:var(--navy);font-weight:700}.loading-emblem,.mini-logo,.portal-monogram{background:#f8f3e9 url(/assets/other-merchants-avatar.jpg?v=20260815-mobile) 50% 29%/215% auto no-repeat}.loading-emblem{display:block;width:32px;height:32px;border:1px solid var(--gold);border-radius:50%}.spinner{width:18px;height:18px;border:2px solid #ded4c2;border-top:2px solid var(--gold-dark);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.login-page{position:relative;display:grid;overflow:hidden;background:linear-gradient(90deg,rgba(247,251,249,.98),rgba(247,251,249,.91) 48%,rgba(247,251,249,.54)),url(/assets/resort-hero-mobile.jpg) 50% /cover no-repeat}.login-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(237,248,244,.28))}.login-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(380px,.75fr);align-items:center;gap:clamp(48px,8vw,130px);width:min(1440px,100%);min-height:100vh;min-height:100dvh;margin:0 auto;padding:clamp(34px,6vw,88px)}.login-brand{max-width:720px;color:var(--ink);text-shadow:none}.brand-logo{width:230px;aspect-ratio:1;margin-bottom:30px;border:1px solid rgba(198,172,116,.42);border-radius:14px;background:#fbf8f1 url(/assets/yiwan-logo-avatar.jpg) 50%/cover no-repeat;box-shadow:0 18px 48px rgba(59,94,87,.14)}.eyebrow{margin:0 0 9px;color:var(--gold-dark);font-size:11px;font-weight:800;letter-spacing:.22em}.login-brand .eyebrow{color:#54847e}.login-brand h1{margin:0;max-width:670px;font-family:inherit;font-size:clamp(42px,5.5vw,68px);font-weight:700;line-height:1.18;letter-spacing:.02em}.brand-description{max-width:600px;margin:24px 0 0;color:#627b76;font-size:clamp(15px,1.5vw,18px);line-height:1.9}.brand-divider{display:flex;align-items:center;width:230px;margin-top:32px}.brand-divider:before{content:"";width:5px;height:5px;border:1px solid #7eb2aa;transform:rotate(45deg)}.brand-divider span{width:100%;height:1px;margin-left:10px;background:linear-gradient(90deg,rgba(91,151,142,.62),transparent)}.brand-points{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px}.brand-points span{position:relative;padding-left:16px;color:#57736e;font-size:13px;letter-spacing:.06em}.brand-points span:before{content:"";position:absolute;left:0;top:50%;width:5px;height:5px;border-radius:50%;background:#65a49b;transform:translateY(-50%)}.login-card{position:relative;width:min(100%,470px);justify-self:end;padding:clamp(32px,4.5vw,52px);overflow:hidden;border:1px solid rgba(205,225,220,.95);border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 28px 80px rgba(45,91,84,.16);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card:before{content:"";position:absolute;inset:9px;pointer-events:none;border:1px solid rgba(213,230,226,.72);border-radius:12px}.login-card-ornament{position:absolute;top:25px;right:-31px;width:140px;padding:7px 0;background:#dff2ed;color:#407a72;font-size:8px;font-weight:800;letter-spacing:.2em;text-align:center;transform:rotate(45deg)}.login-heading{position:relative;display:flex;align-items:center;gap:16px}.mini-logo{display:block;flex:0 0 auto;width:54px;height:54px;border:1px solid var(--gold);border-radius:50%;box-shadow:0 8px 20px rgba(73,54,25,.12)}.login-card h2{margin:0;color:var(--ink);font-family:inherit;font-size:33px;font-weight:700;letter-spacing:.02em}.login-system-title{display:grid;gap:3px;line-height:1.2}.login-system-title small{color:#315f59;font-size:17px;font-weight:700;letter-spacing:.04em}.login-card .muted{position:relative;margin:20px 0 0}.muted{color:var(--muted);line-height:1.7}.stack-form{position:relative;display:grid;gap:19px;margin-top:30px}label{display:grid;gap:8px;color:#385057;font-size:13px;font-weight:700}label>span:first-child{letter-spacing:.04em}input,select,textarea{width:100%;min-height:46px;border:1px solid #d9d2c6;border-radius:6px;padding:11px 13px;background:rgba(255,255,255,.88);color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s,background .2s}input::placeholder,textarea::placeholder{color:#a6aaa6}input:focus,select:focus,textarea:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px rgba(185,152,95,.13)}textarea{min-height:86px;resize:vertical}.danger-button,.ghost-button,.primary-button,.secondary-button{border:0;border-radius:6px;font-weight:800;transition:transform .18s,box-shadow .18s,background .18s}.primary-button{min-height:50px;padding:0 20px;background:linear-gradient(135deg,#42a399,#27867d);color:#fff;box-shadow:0 12px 28px rgba(39,134,125,.2)}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 15px 32px rgba(39,134,125,.26)}.primary-button.compact{min-height:42px}.danger-button:disabled,.primary-button:disabled,.secondary-button:disabled{opacity:.5;cursor:not-allowed}.login-submit{justify-content:space-between;margin-top:3px;padding:0 22px;letter-spacing:.08em}.login-submit,.remember-login{display:flex;align-items:center}.remember-login{grid-template-columns:auto 1fr;gap:9px;margin-top:-2px;color:#6d817c;font-size:12px;font-weight:600}.remember-login input{width:17px;min-height:17px;margin:0;padding:0;accent-color:#258d82}.remember-login span{line-height:1.4}.login-footnote{position:relative;margin:23px 0 0;color:#909795;font-size:11px;letter-spacing:.08em;text-align:center}.form-error{margin:-3px 0 0;color:#a4362d;font-size:13px}.portal-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto auto 1fr;background:var(--background)}.portal-header{position:relative;z-index:3;display:flex;justify-content:space-between;align-items:center;min-height:76px;padding:12px clamp(16px,3vw,38px);border-bottom:1px solid #dbeae6;background:rgba(255,255,255,.96);color:var(--ink);box-shadow:0 7px 22px rgba(57,101,94,.07)}.portal-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(108,172,162,.5),transparent)}.portal-brand{display:flex;align-items:center;gap:14px}.portal-monogram{display:block;width:42px;height:42px;border:1px solid rgba(223,194,137,.78);border-radius:50%;box-shadow:0 7px 18px rgba(0,0,0,.12)}.portal-header .eyebrow{margin-bottom:3px;color:#6c9b94;font-size:9px}.portal-header h1{margin:0;font-family:inherit;font-size:21px;font-weight:700;letter-spacing:.02em}.account-summary{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700}.account-avatar{display:grid;place-items:center;width:34px;height:34px;overflow:hidden;border:1px solid #cce1dc;border-radius:50%;background:#edf7f4;color:#34766f}.account-avatar img{display:block;width:100%;height:100%;object-fit:cover}.account-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghost-button{min-height:34px;padding:0 13px;border:1px solid #cfe2de;color:#39766f}.ghost-button:hover{background:#e6f3f0}.portal-nav{position:relative;z-index:2;overflow-x:auto;border-bottom:1px solid #dce9e5;background:rgba(249,252,251,.97);scrollbar-width:none}.portal-nav::-webkit-scrollbar{display:none}.portal-nav-inner{display:flex;gap:4px;width:min(1500px,100%);margin:0 auto;padding:9px clamp(12px,3vw,38px)}.nav-button{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 19px;border:1px solid transparent;border-radius:5px;background:transparent;color:#697574;font-weight:800}.nav-dot{width:5px;height:5px;border-radius:50%;background:#b8b9b4}.nav-button.active{border-color:#c8e1dc;background:#e8f5f2;color:#176a62}.nav-button.active .nav-dot{box-shadow:0 0 0 4px rgba(61,154,145,.13)}.portal-content{position:relative;z-index:1;min-height:0}.helper-frame{display:block;width:100%;height:calc(100vh - 134px);height:calc(100dvh - 134px);border:0;background:#f3f8f6}.dashboard-page{width:min(1240px,100%);margin:0 auto;padding:clamp(22px,4vw,46px)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.section-heading h2{margin:0;color:var(--ink);font-family:inherit;font-size:clamp(30px,4vw,42px);font-weight:700;letter-spacing:.02em}.section-heading .muted{margin:9px 0 0}.section-badge{padding:8px 13px;border:1px solid #d8c9ab;border-radius:999px;background:#f7f0e3;color:#7e6337;font-size:12px;font-weight:800}.panel{margin-bottom:20px;padding:clamp(20px,3vw,30px);border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 16px 48px rgba(22,50,57,.06)}.create-user-panel{position:relative;overflow:hidden}.create-user-panel:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:linear-gradient(180deg,#d4b574,#806239)}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px}.panel-title h3{margin:3px 0 0;color:var(--ink);font-family:inherit;font-size:22px;font-weight:700;letter-spacing:.02em}.panel-kicker{color:var(--gold-dark);font-size:9px;font-weight:800;letter-spacing:.2em}.user-count{color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.permission-field{display:flex;flex-wrap:wrap;align-items:center;gap:9px 18px;min-width:0;margin:0;padding:10px 13px;border:1px solid #d9d2c6;border-radius:6px}.permission-field legend{padding:0 4px;color:#536260;font-size:11px;font-weight:800}.permission-field small{flex:0 0 100%;color:#81908d;font-size:10px;line-height:1.45}.check-label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:7px;white-space:nowrap}.check-label input{width:17px;min-height:17px;accent-color:var(--gold-dark)}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:19px}.form-message{color:#32705a;font-size:13px;font-weight:700}.secondary-button{min-height:38px;padding:0 14px;border:1px solid #d8d2c7;background:#f5f1e9;color:var(--navy)}.secondary-button:hover:not(:disabled){border-color:#c7b48c;background:#efe6d6}.danger-button{min-height:38px;padding:0 15px;border:1px solid #efb8b3;background:#fff0ef;color:#b42318}.danger-button:hover:not(:disabled){border-color:#dc8279;background:#ffe3e0}.user-list{display:grid;gap:12px}.user-card{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.5fr);align-items:center;gap:22px;padding:18px;border:1px solid #ebe5db;border-radius:8px;background:linear-gradient(135deg,#fffefa,#faf7f0)}.user-identity{display:flex;align-items:center;gap:13px;min-width:0}.user-avatar{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border:1px solid #cce1dc;border-radius:50%;background:#edf7f4;color:#34766f;font-family:inherit;font-size:17px}.user-identity>div{display:grid;gap:3px;min-width:0}.user-identity strong{overflow:hidden;color:var(--navy);font-size:17px;text-overflow:ellipsis;white-space:nowrap}.user-identity span:not(.user-avatar){overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.user-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.admin-account-controls{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(160px,1fr) minmax(160px,1fr) auto;align-items:end;gap:10px;width:100%}.admin-account-controls label{display:grid;gap:6px;min-width:0;color:#536260;font-size:11px;font-weight:800}.admin-account-controls input{min-width:0;min-height:40px}.permission-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.password-reset{display:flex;gap:8px;min-width:min(100%,310px)}.password-reset input{min-height:38px}.system-dashboard{max-width:1320px}.system-alert{margin-bottom:20px;padding:14px 17px;border:1px solid;border-radius:8px;font-size:14px;font-weight:700}.system-alert.success{border-color:#b9ddd2;background:#edf8f4;color:#276b59}.system-alert.error{border-color:#efbbb5;background:#fff2f0;color:#a43a31}.quote-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.quote-source-card{display:flex;flex-direction:column;min-width:0}.source-card-heading{display:flex;align-items:center;gap:14px;margin-bottom:22px}.backup-copy h3,.source-card-heading h3{margin:3px 0 0;color:var(--ink);font-size:23px}.source-icon{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border:1px solid;border-radius:50%;font-size:16px;font-weight:800}.source-icon.hailing{border-color:#bcded6;background:#edf8f5;color:#2e786e}.source-icon.dinglong{border-color:#decda9;background:#faf5e9;color:#8d6c32}.source-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-bottom:20px;overflow:hidden;border:1px solid #e3ebe8;border-radius:8px;background:#e3ebe8}.source-status>div{display:grid;gap:5px;min-width:0;padding:13px 14px;background:#fbfdfc}.source-status span{color:#81908d;font-size:10px;font-weight:700;letter-spacing:.04em}.source-status strong{overflow:hidden;color:#365a55;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.source-loading{grid-column:1/-1;padding:18px;background:#fbfdfc}.file-picker{position:relative;display:grid;gap:6px;margin-top:auto;padding:15px;border:1px dashed #cbb98f;border-radius:8px;background:#fcfaf5;cursor:pointer}.file-picker input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none}.file-picker span{color:#6d725f;font-size:11px}.file-picker b{overflow:hidden;color:#80663a;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.source-update-button{width:100%;min-height:46px;margin-top:12px}.source-help{min-height:36px;margin:11px 2px 0;color:#81908d;font-size:11px;line-height:1.55}.quote-preview{display:grid;gap:10px;margin-top:12px;padding:13px;border:1px solid #c9e1db;border-radius:8px;background:#f4faf8}.quote-preview.no-change{border-color:#e1d7be;background:#fbf8f1}.loading-preview{min-height:74px;place-items:center;color:#55726d;font-size:12px}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-heading strong{color:#285f58;font-size:14px}.preview-heading span{color:#7c8e89;font-size:11px}.preview-stats{display:flex;flex-wrap:wrap;gap:6px}.preview-stats span{padding:5px 8px;border-radius:999px;background:#e5f2ee;color:#52716b;font-size:10px}.preview-stats b{color:#23695f;font-size:11px}.preview-coverage{display:grid;gap:5px;padding:9px 10px;border:1px solid #dceae6;border-radius:7px;background:#fff;color:#60716e;font-size:10px}.preview-coverage>strong{color:#285f58;font-size:11px}.preview-coverage>div{display:flex;justify-content:space-between;gap:10px}.preview-coverage>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-coverage>div b{color:#23695f;font-weight:800;white-space:nowrap}.preview-changes{display:grid;overflow:hidden;border:1px solid #dceae6;border-radius:7px;background:#fff}.preview-changes>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:8px 9px;border-bottom:1px solid #edf2f0;font-size:10px}.preview-changes>div:last-of-type{border-bottom:0}.preview-changes span{overflow:hidden;color:#60716e;text-overflow:ellipsis;white-space:nowrap}.preview-changes b{color:#8b6634;font-weight:800;white-space:nowrap}.preview-changes small{padding:8px 9px;color:#81908d;font-size:9px}.version-panel{margin-top:20px}.version-title{align-items:flex-end}.version-title h3{margin:4px 0 0;color:var(--ink);font-size:23px}.version-count{color:#82918e;font-size:11px}.version-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.version-group{overflow:hidden;border:1px solid #e0e9e6;border-radius:8px;background:#fbfdfc}.version-group h4{margin:0;padding:11px 13px;border-bottom:1px solid #e6eeeb;color:#39635e;font-size:14px}.version-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-bottom:1px solid #edf2f0}.version-row:last-child{border-bottom:0}.version-row>div{display:grid;gap:3px;min-width:0}.version-row strong{overflow:hidden;color:#365753;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.version-row span{color:#879491;font-size:9px}.version-restore-button{flex:0 0 auto;min-height:34px;padding:0 11px;font-size:10px}.version-empty{margin:0;padding:18px 13px;color:#899592;font-size:11px;line-height:1.6}.system-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:20px}.backup-panel{justify-content:space-between;gap:28px;margin-top:0;background:linear-gradient(135deg,#fff,#f7fbf9)}.backup-copy,.backup-panel{display:flex;align-items:center}.backup-copy{gap:16px}.backup-copy p{margin:7px 0 0;color:var(--muted);font-size:13px;line-height:1.65}.backup-icon{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border:1px solid #b9ddd2;border-radius:50%;background:#edf8f4;color:#2d7866;font-size:18px;font-weight:900}.backup-button{flex:0 0 auto;min-height:44px;padding:0 22px}.backup-warning{margin:-7px 2px 0;color:#8a7771;font-size:11px;line-height:1.6}.mobile-install-panel{display:flex;align-items:center;background:linear-gradient(135deg,#fffefa,#faf6ed)}.phone-icon{border-color:#dfcfad;background:#fbf5e8;color:#8c6c36}@media (max-width:980px){.login-layout{grid-template-columns:1fr;align-content:center;gap:38px}.login-brand h1{font-size:52px}.login-card{justify-self:stretch;width:min(100%,560px)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-card{grid-template-columns:1fr}.user-controls{justify-content:flex-start}.quote-source-grid,.system-tool-grid,.version-groups{grid-template-columns:1fr}}@media (max-width:640px){.login-page{background-position:56%}.login-overlay{background:linear-gradient(180deg,rgba(247,251,249,.86),rgba(239,248,245,.94))}.login-layout{display:flex;flex-direction:column;justify-content:center;gap:22px;padding:max(24px,env(safe-area-inset-top)) 15px max(24px,env(safe-area-inset-bottom))}.login-brand{width:100%;text-align:center}.brand-description,.brand-divider,.brand-points{display:none}.brand-logo{width:112px;margin:0 auto 12px;border-radius:5px}.login-brand .eyebrow{margin-bottom:8px;font-size:9px}.login-brand h1{font-size:30px;line-height:1.2}.login-brand h1 br{display:none}.login-card{width:100%;padding:31px 24px 27px;border-radius:6px}.login-card-ornament{top:21px;right:-37px}.mini-logo{width:48px;height:48px}.login-card h2{font-size:29px}.login-system-title small{font-size:16px;line-height:1.45}.login-card .muted{margin-top:16px;font-size:13px}.stack-form{margin-top:23px;gap:16px}input,select{min-height:48px;font-size:16px}.portal-header{min-height:66px;padding:9px 12px}.portal-monogram{width:36px;height:36px}.portal-header .eyebrow{display:none}.portal-header h1{font-size:17px}.account-avatar,.account-name{display:none}.portal-nav-inner{width:100%;gap:0;padding:7px 5px}.nav-button{min-width:0;min-height:37px;flex:1 1;justify-content:center;gap:5px;padding:0 4px;font-size:13px;white-space:nowrap}.helper-frame{height:calc(100vh - 118px);height:calc(100dvh - 118px)}.dashboard-page{padding:20px 12px 34px}.section-heading{align-items:flex-start;flex-direction:column;margin-bottom:18px}.section-heading h2{font-size:31px}.section-badge{display:none}.panel{padding:18px 14px}.form-grid{grid-template-columns:1fr}.form-actions{align-items:stretch;flex-direction:column}.primary-button.compact{width:100%}.user-card{padding:14px}.admin-account-controls{grid-template-columns:1fr}.permission-controls,.user-controls{align-items:stretch;flex-direction:column}.check-label{min-height:30px}.password-reset{min-width:0;flex-direction:column}.danger-button{width:100%}.preview-changes>div,.source-status{grid-template-columns:1fr}.preview-changes>div{gap:4px}.version-row{align-items:stretch;flex-direction:column}.version-restore-button{width:100%}.backup-copy,.backup-panel{align-items:flex-start;flex-direction:column}.backup-button{width:100%}}.room-catalog-panel{margin-bottom:22px}.room-catalog-panel .panel-title{align-items:flex-start}.room-catalog-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.room-catalog-toolbar select{min-height:38px;padding:0 10px;border:1px solid #cfe3dd;border-radius:9px;background:#fff;color:#356d66}.room-catalog-layout{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.7fr);gap:16px}.room-catalog-list{display:grid;align-content:start;gap:7px;max-height:520px;overflow:auto;padding:4px}.room-catalog-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:11px 12px;border:1px solid #dcebe6;border-radius:11px;background:#fbfefd;color:#225f57;text-align:left}.room-catalog-row.active,.room-catalog-row:hover{border-color:#86c5b8;background:#eaf7f2}.room-catalog-row>span:first-child{display:grid;gap:3px;min-width:0}.room-catalog-row strong{font-size:15px}.room-catalog-row small{overflow:hidden;color:#718781;text-overflow:ellipsis;white-space:nowrap}.room-catalog-row-meta{display:grid;justify-items:end;gap:4px;color:#68847d;font-size:11px;white-space:nowrap}.room-catalog-row-meta i{padding:3px 7px;border-radius:999px;background:#e3f5ec;color:#277460;font-style:normal;font-weight:800}.room-catalog-row-meta i.inactive{background:#f5e8e5;color:#9a625b}.room-catalog-editor{padding:15px;border:1px solid #deece8;border-radius:14px;background:linear-gradient(135deg,#fff,#f8fcfa)}.room-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.room-editor-grid label>span,.tag-fieldset legend{color:#55756e;font-size:12px;font-weight:800}.room-editor-grid input{min-height:40px;padding:0 11px;border-color:#cfe3dd;border-radius:9px}.tag-fieldset{margin:14px 0;padding:11px 13px 12px;border:1px solid #dbeae5;border-radius:11px}.tag-checkbox-grid{display:flex;flex-wrap:wrap;gap:8px 15px;margin-top:7px}.room-active-toggle{margin:10px 0;color:#3f6962}.room-editor-actions{justify-content:flex-start;gap:8px;flex-wrap:wrap}.room-history,.room-preview,.room-test-result{display:grid;gap:6px;margin-top:12px;padding:11px 13px;border-radius:10px;font-size:12px}.room-preview{border:1px solid #d8e9df;background:#f0faf5;color:#376f60}.room-test-result{border:1px solid #d7e7ed;background:#f2f9fb;color:#356878}.room-history{border:1px solid #e5e8df;background:#fffdf5;color:#766a4b}.room-history>div{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eee9d9;padding-top:6px}.text-button{border:0;background:transparent;color:#348477;font-weight:800;cursor:pointer}.room-diagnostics-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid #e2eee9}.room-diagnostics-heading>div{display:grid;gap:4px}.room-diagnostics-heading span{color:#78908a;font-size:12px}.room-diagnostics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.diagnostic-card{display:grid;gap:4px;padding:10px;border:1px solid #dfebe7;border-radius:10px;background:#fcfefd}.diagnostic-card>span{overflow:hidden;color:#78908a;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.diagnostic-card i{width:fit-content;padding:3px 7px;border-radius:999px;background:#edf3f0;color:#6c817c;font-size:11px;font-style:normal}.diagnostic-card i.available{background:#e3f5ec;color:#28755f}.diagnostic-card i.sold{background:#f8e8e3;color:#9b5e53}@media (max-width:850px){.room-catalog-layout{grid-template-columns:1fr}.room-catalog-list{max-height:230px;grid-template-columns:repeat(2,minmax(0,1fr))}.room-diagnostics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:560px){.room-catalog-panel .panel-title{display:grid}.room-catalog-list,.room-editor-grid{grid-template-columns:1fr}.room-catalog-toolbar{justify-content:stretch}.room-catalog-toolbar button,.room-catalog-toolbar select{flex:1 1}.room-diagnostics-heading{align-items:flex-start;flex-direction:column}.room-diagnostics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}:root{--ink:#123f3b;--muted:#718581;--line:#d9e8e3;--navy:#176d65;--navy-soft:#2e9489;--gold:#c6a267;--gold-dark:#96713a;--background:#eef6f3}body{background:radial-gradient(circle at 10% -12%,rgba(255,255,255,.98),transparent 36%),radial-gradient(circle at 96% 10%,rgba(209,236,228,.46),transparent 28%),#eef6f3}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(53,154,143,.22);outline-offset:2px}.portal-shell{background:linear-gradient(180deg,rgba(255,255,255,.52),transparent 23%),#eef6f3}.portal-header{min-height:82px;padding:14px clamp(18px,4vw,56px);border-bottom-color:rgba(198,222,216,.9);background:rgba(255,255,255,.88);box-shadow:0 10px 28px rgba(42,87,80,.08);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.portal-header:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,#d6b778,#5db4a8 42%,#176d65)}.portal-brand{gap:16px}.portal-monogram{width:48px;height:48px;border-color:rgba(197,165,102,.86);box-shadow:0 8px 22px rgba(61,94,84,.15)}.portal-header .eyebrow{color:#61948b;letter-spacing:.24em}.portal-header h1{color:#123f3b;font-size:23px;letter-spacing:.04em}.account-summary{gap:9px;padding:5px 6px 5px 8px;border:1px solid #d8e9e4;border-radius:999px;background:rgba(247,252,250,.88);color:#41625d}.account-avatar{width:35px;height:35px;background:#eaf6f2}.ghost-button{border-radius:999px;background:#f1f8f6}.portal-nav{border-bottom-color:rgba(208,228,222,.92);background:rgba(247,252,250,.84);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.portal-nav-inner{width:min(1320px,100%);gap:8px;padding:10px clamp(14px,4vw,56px)}.nav-button{min-height:42px;padding:0 18px;border-radius:999px;color:#6b7e79;transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.nav-button:hover{background:rgba(224,242,237,.8);color:#246e66;transform:translateY(-1px)}.nav-button.active{border-color:#bfe0d8;background:linear-gradient(135deg,#e7f6f1,#d9eee8);color:#176d65;box-shadow:0 7px 16px rgba(49,132,120,.12)}.nav-button.active .nav-dot{background:#3d9a91}.helper-frame{height:calc(100vh - 144px);height:calc(100dvh - 144px);background:#eef6f3}.dashboard-page{padding-top:clamp(30px,5vw,56px)}.section-heading{margin-bottom:30px}.section-heading h2{font-size:clamp(34px,4.2vw,48px);letter-spacing:.04em}.panel{border-radius:18px;border-color:#d9e9e4;box-shadow:0 12px 34px rgba(38,85,78,.055),0 2px 5px rgba(38,85,78,.035)}.danger-button,.primary-button,.secondary-button{border-radius:999px}.quote-source-card{padding:clamp(24px,3vw,34px)}@media (max-width:640px){.portal-header{min-height:66px}.portal-header h1{font-size:18px}.account-summary{padding:4px;border:0;background:transparent}.ghost-button{min-height:34px}.helper-frame{height:calc(100vh - 118px);height:calc(100dvh - 118px)}}.login-page{background:linear-gradient(90deg,rgba(243,251,248,.96),rgba(243,251,248,.86) 38%,rgba(243,251,248,.46) 68%,rgba(243,251,248,.22)),url(/assets/login-beach-hero-mobile.jpg) 58% /cover no-repeat}.login-page:before{content:"";position:absolute;left:-10vw;bottom:-22vw;width:56vw;height:38vw;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.52),rgba(255,255,255,0) 70%);pointer-events:none}.login-overlay{background:linear-gradient(90deg,rgba(239,249,245,.74),rgba(240,249,246,.45) 52%,rgba(10,57,51,.06)),linear-gradient(180deg,rgba(255,255,255,.16),rgba(232,246,241,.18))}.login-layout{width:min(1500px,100%);grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);gap:clamp(52px,8vw,132px);padding:clamp(32px,5vw,80px)}.login-brand{max-width:760px}.brand-logo{width:208px;margin-bottom:27px;border-radius:24px;border-color:rgba(198,172,116,.52);box-shadow:0 20px 54px rgba(48,94,84,.18),inset 0 2px 0 rgba(255,255,255,.8)}.login-brand h1{color:#123f3b;font-size:clamp(44px,5.3vw,72px);letter-spacing:.035em;text-shadow:0 2px 18px rgba(255,255,255,.5)}.brand-description{max-width:620px;color:#52736d}.brand-points span{color:#3f7169}.login-card{width:min(100%,480px);padding:clamp(34px,4vw,50px);border-radius:26px;border-color:rgba(218,235,229,.94);background:rgba(255,255,255,.86);box-shadow:0 30px 90px rgba(27,74,66,.2),inset 0 2px 0 rgba(255,255,255,.8);-webkit-backdrop-filter:blur(22px) saturate(1.08);backdrop-filter:blur(22px) saturate(1.08)}.login-card:before{inset:10px;border-radius:18px;border-color:rgba(217,235,229,.68)}.login-card-ornament{background:#dff3ed;color:#4b8279}.login-heading{gap:18px}.mini-logo{width:58px;height:58px}.login-card h2{color:#123f3b}.login-card .muted{color:#6c817c}.stack-form{gap:18px}.stack-form input{min-height:50px;border-radius:13px;border-color:#d2e5df;background:rgba(251,254,253,.88)}.stack-form input:hover{border-color:#a8d0c6}.stack-form input:-webkit-autofill,.stack-form input:-webkit-autofill:focus,.stack-form input:-webkit-autofill:hover{-webkit-text-fill-color:#173f3a;-webkit-box-shadow:inset 0 0 0 1000px #f1f8f5;-webkit-transition:background-color 9999s ease-out;transition:background-color 9999s ease-out}.login-submit{min-height:54px;border-radius:999px;background:linear-gradient(135deg,#3ca99c,#19776e);box-shadow:0 16px 32px rgba(28,122,111,.22)}.login-footnote{color:#849590}@media (max-width:980px){.login-page{background-position:62%}.login-layout{gap:34px}}@media (max-width:640px){.login-page{background:linear-gradient(180deg,rgba(241,250,246,.68),rgba(241,250,246,.92)),url(/assets/login-beach-hero-mobile.jpg) 67% /cover no-repeat}.login-layout{gap:22px;padding:max(24px,env(safe-area-inset-top)) 15px max(24px,env(safe-area-inset-bottom))}.brand-logo{width:118px;margin-bottom:13px;border-radius:16px}.login-brand h1{font-size:31px}.login-card{border-radius:22px}}.account-directory-toolbar{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);align-items:end;gap:14px;margin:-2px 0 16px;padding:13px;border:1px solid #e1ece8;border-radius:14px;background:linear-gradient(135deg,#f8fcfa,#f1f8f5)}.account-search{gap:6px}.account-search>span{color:#5d7771;font-size:11px;font-weight:800}.account-search input{min-height:42px;border-color:#cfe4de;border-radius:10px;background:rgba(255,255,255,.92)}.account-filter-group{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.account-filter-button{min-height:35px;padding:0 12px;border:1px solid #d5e5e0;border-radius:999px;background:#fff;color:#5a746f;font-size:12px;font-weight:800}.account-filter-button:hover{border-color:#a9d2c7;background:#edf8f4;color:#247a70}.account-filter-button.active{border-color:#9bcfc2;background:#dff2ec;color:#176d65;box-shadow:0 5px 12px rgba(39,134,125,.1)}.records-panel .user-list{gap:8px}.records-panel .user-card{display:block;overflow:hidden;padding:0;border-color:#dceae5;border-radius:14px;background:linear-gradient(135deg,#fff,#f9fcfb)}.records-panel .user-card.expanded{border-color:#a9d3c9;box-shadow:0 10px 24px rgba(39,134,125,.08)}.user-row{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(220px,1fr) auto 28px;align-items:center;width:100%;min-height:70px;padding:11px 15px;border:0;background:transparent;color:inherit;text-align:left}.user-row:hover{background:#f1f9f6}.user-row .user-identity{min-width:0}.user-identity-copy{display:grid;gap:3px;min-width:0}.user-row .user-identity-copy>span{overflow:hidden;color:#718581;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.user-access-summary{display:grid;gap:3px;min-width:0;color:#6c817c;font-size:12px}.user-access-summary>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:#538079;font-size:11px;font-weight:800}.user-role.admin{color:#97733c}.user-status{justify-self:end;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.user-status.active{background:#e1f4ec;color:#23735f}.user-status.inactive{background:#f3eeee;color:#94736f}.user-row-chevron{justify-self:end;color:#4a9b8e;font-size:20px;line-height:1}.user-card-details{padding:15px;border-top:1px solid #e1eee9;background:#fbfefd}.user-card-details .user-controls{justify-content:flex-start}.user-empty{margin:8px 0 0;padding:24px;border:1px dashed #cbded8;border-radius:12px;color:#718581;text-align:center}@media (max-width:980px){.account-directory-toolbar{grid-template-columns:1fr}.account-filter-group{justify-content:flex-start}.user-row{grid-template-columns:minmax(190px,1fr) minmax(170px,1fr) auto 28px}}@media (max-width:640px){.account-directory-toolbar{padding:11px}.account-filter-group{gap:6px}.account-filter-button{flex:1 1 auto;min-height:34px;padding:0 9px}.user-row{grid-template-columns:minmax(0,1fr) auto 25px;gap:8px;padding:10px 12px}.user-access-summary{grid-column:1/2;grid-row:2}.user-status{grid-column:2;grid-row:1}.user-row-chevron{grid-column:3;grid-row:1}.user-card-details{padding:12px}}@media (max-width:640px){html,body{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}.portal-nav-inner{justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.portal-nav-inner::-webkit-scrollbar{display:none}.nav-button{flex:0 0 auto;padding:0 12px}}