
/* styles.css */
@import url('./workspace.css');

/* Layout foundation. The shared black-and-gold brand is defined in theme.css. */
.operations-release{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:27px 32px;margin-top:34px;border:1px solid #dce4ce;border-radius:14px;background:#edf2e1}
.operations-release .label-accent{font-size:10px}.operations-release h2{font-size:24px;line-height:1.25;margin:8px 0}.operations-release p{font-size:13px;color:#5c6d51;max-width:650px}.operations-release .btn{flex-shrink:0}
.renewal-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.renewal-guide{display:flex;gap:14px;align-items:center;padding:18px 20px;border:1px solid #dae3ca;border-radius:12px;background:#ecf1e2;margin:19px 0;color:#355234}.renewal-guide>span{display:grid;place-items:center;width:42px;height:42px;flex:none;background:#dce8c9;border-radius:11px}.renewal-guide strong{font-size:13px}.renewal-guide p{font-size:12px;line-height:1.7;color:#60704f;margin-top:4px}
.followup-select{display:flex;gap:9px;align-items:center;color:#617056;font-size:12px}.followup-select select{max-width:200px;padding:9px 12px;border:1px solid #d4dfc8;border-radius:8px;background:#fff;color:#243b32;font-size:12px}.renewal-filters{margin:0 20px 18px;display:flex;flex-wrap:wrap;width:fit-content;max-width:calc(100% - 40px)}.renewal-filters button{display:flex;gap:7px;align-items:center;white-space:nowrap}.renewal-filters button>span{font-size:10px;border-radius:5px;padding:1px 5px;background:#e3eacb;color:#3b5430}.cell-detail{display:block;color:#65765b;font-size:11px;line-height:1.6;margin-top:5px;max-width:300px}.renewal-table td>strong{font-size:12px;color:#2c4532}.renewal-actions{display:flex;justify-content:flex-end;gap:7px}.renewal-actions .btn{min-height:37px;padding:8px 12px;font-size:11px;white-space:nowrap}
.modal.modal-wide{width:min(100%,850px)}.modal-form output{display:flex;align-items:center;min-height:43px;padding:10px 12px;border:1px solid #d7e0cc;border-radius:8px;background:#f3f6ee;font-weight:700;color:#355235;font-size:13px}.form-hint{font-size:12px;line-height:1.7;color:#607252;margin:9px 0}.modal-form .checkbox-label{display:flex;align-items:flex-start;gap:11px;border:1px solid #d8e2cd;background:#f2f6e9;border-radius:10px;padding:14px}.modal-form .checkbox-label input{width:17px;height:17px;min-height:0;margin:3px 0 0;flex:none;accent-color:#256348;padding:0}.checkbox-label strong{display:block;font-size:12px;color:#29462e}.checkbox-label small{display:block;font-size:11px;color:#627650;margin-top:4px;line-height:1.6}.payment-fields{border:1px solid #d9e3ce;border-radius:10px;padding:16px;display:grid;gap:13px;min-width:0}.payment-fields legend{padding:0 6px;font-size:11px;color:#46643c;font-weight:700}.payment-fields[hidden],.form-error[hidden]{display:none!important}.form-error{border:1px solid #ebc5b4;border-radius:9px;background:#fff3ed;color:#953c20;padding:13px;font-size:12px;line-height:1.6}.modal-form textarea[readonly]{background:#f7f9f2;color:#365132}.import-pick{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:20px 0 10px}.import-file-label{display:grid;gap:8px;font-size:12px;font-weight:700;color:#29462e;min-width:0}.import-file-label input{font-size:12px;width:100%;max-width:360px}.import-file-label input::file-selector-button{border:1px solid #c9d8bb;border-radius:7px;background:#ecf2e2;color:#2e4d35;font-family:inherit;font-weight:700;padding:10px 14px;margin-right:10px;cursor:pointer}.import-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 18px}.import-summary>span{display:grid;gap:5px;border:1px solid #dbe3cd;border-radius:10px;background:#f2f6e8;padding:15px;font-size:11px;color:#627354}.import-summary strong{font-family:var(--heading);font-size:26px;line-height:1.2;color:#2a4c32}.import-preview-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:12px;color:#627554}.import-preview-title strong{color:#2e4e33;overflow-wrap:anywhere}.import-preview{max-height:320px;border:1px solid #dce4ce;border-radius:10px;overflow:auto}.import-preview thead{position:sticky;top:0;z-index:1}.import-preview table{margin:0}.import-preview .data-table th{background:#f0f5e7}.import-preview td{white-space:normal;max-width:270px}.import-loading{padding:18px;text-align:center;background:#eef3e3;border-radius:10px;color:#48613b;font-size:13px}
@media(max-width:800px){.operations-release{margin-top:22px;flex-direction:column;align-items:flex-start;padding:22px}.operations-release h2{font-size:22px}.renewal-guide{align-items:flex-start}.renewal-stats{gap:9px}.followup-select{flex-wrap:wrap}.renewal-actions{gap:5px}.renewal-filters{margin-left:16px;margin-right:16px;max-width:calc(100% - 32px)}}
@media(max-width:545px){.renewal-stats{grid-template-columns:1fr 1fr}.renewal-stats>.stat-card:last-child{grid-column:1/-1}.import-pick{align-items:stretch;flex-direction:column}.import-pick .btn{width:100%}.import-summary{gap:6px}.import-summary>span{padding:10px 8px;font-size:10px}.import-summary strong{font-size:23px}.import-preview-title{flex-wrap:wrap}.renewal-filters button{font-size:11px;padding:8px 9px}.renewal-guide{padding:15px}.renewal-table{min-width:850px}.operations-release .btn{width:100%}}

@font-face{font-family:'Gym Sans';src:url('./assets/fonts/gym-sans-regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Gym Sans';src:url('./assets/fonts/gym-sans-bold.woff') format('woff');font-weight:600 900;font-style:normal;font-display:swap}
@font-face{font-family:'Gym Display';src:url('./assets/fonts/gym-display-bold.woff') format('woff');font-weight:600 900;font-style:normal;font-display:swap}
:root{font-family:'Gym Sans',Arial,sans-serif;color:#243b32;background:#f4f5ef;--ink:#20392f;--muted:#637369;--line:#e1e7dc;--green:#256348;--deep:#143d32;--navy:#143d32;--surface:#fff;--bg:#f4f5ef;--lime:#d6ee81;--heading:'Gym Display',Arial,sans-serif;font-synthesis:none;line-height:1.5}
body{font-size:15px}h1,h2,h3,h4{font-family:var(--heading);font-weight:700;letter-spacing:-.045em}button,input,textarea,select{font-family:'Gym Sans',Arial,sans-serif}button{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #527332;outline-offset:4px}input:focus,textarea:focus,select:focus{border-color:#35694e!important;box-shadow:0 0 0 3px #d6ee8170}html{scroll-padding-top:100px}.skip-link{position:fixed;top:8px;left:12px;transform:translateY(-180%);background:#143d32;color:white;padding:12px 18px;border-radius:8px;z-index:99}.skip-link:focus{transform:translateY(0)}.brand-link{display:inline-flex}.brand{font-family:var(--heading);font-size:25px;letter-spacing:-1.5px;color:#143d32;gap:9px}.brand-icon{background:#143d32;color:#d6ee81;border-radius:10px;box-shadow:none;transform:none;width:36px;height:36px}.brand-icon svg{transform:none}.brand-dot{color:#587626}.brand.inverse{color:#f9fbee}.brand.inverse .brand-icon{background:#d6ee81;color:#143d32}.brand.inverse .brand-dot{color:#d6ee81}.btn{min-height:46px;padding:12px 20px;border-radius:9px;font-family:'Gym Sans',Arial,sans-serif;font-size:14px;font-weight:700;gap:10px;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.btn-primary{background:#256348;color:white;box-shadow:0 3px 0 #143d3212}.btn-primary:hover:not(:disabled){background:#143d32;box-shadow:0 6px 16px #143d321c}.btn-secondary{background:transparent;border-color:#cbd5c4;color:#243b32}.btn-secondary:hover:not(:disabled){background:#edf1e6;border-color:#8caa78}.btn-dark{background:#143d32;color:#fff}.btn-dark:hover{background:#256348}.btn-lime{background:#d6ee81;color:#143d32;border-color:#d6ee81}.btn-lime:hover{background:#e4f7ad}.text-button,.inline-link{color:#256348}.page-width{max-width:1340px;margin:auto;padding-left:44px;padding-right:44px}

/* Public experience */
.marketing{background:#f8f8f1;overflow:clip}.marketing-header{height:94px;display:flex;align-items:center;justify-content:space-between;gap:25px;border-bottom:1px solid #dce3d5}.marketing-header nav{display:flex;gap:30px;align-items:center}.marketing-header nav button{border:none;background:none;padding:10px 0;color:#617263;font-size:14px;font-weight:400}.marketing-header nav button:hover{color:#143d32}.marketing-nav-actions{display:flex;gap:22px;align-items:center}.header-beta{display:flex;align-items:center;gap:7px;color:#626f5a;font-size:12px;white-space:nowrap}.header-beta i,.demo-live-dot{height:6px;width:6px;border-radius:50%;background:#528337;flex:none}.hero{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);align-items:center;gap:56px;padding-top:96px;padding-bottom:98px}.hero-left,.hero-visual{min-width:0}.hero-eyebrow{display:inline-flex;gap:9px;align-items:center;font-size:11px;letter-spacing:.13em;font-weight:700;color:#526a44}.hero-eyebrow i{display:block;height:7px;width:7px;background:#729e48;border-radius:50%}.hero h1{font-size:clamp(48px,5.05vw,72px);line-height:1.08;letter-spacing:-.065em;color:#1c382d;margin:23px 0 24px}.hero h1 span{color:#50783f}.hero-desc{font-size:18px;line-height:1.7;max-width:440px;color:#617060}.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin:30px 0 22px}.hero-actions .btn{min-height:50px;padding:14px 20px}.hero-assurances{display:flex;flex-wrap:wrap;gap:18px;color:#516649;font-size:12px}.hero-assurances span{display:flex;align-items:center;gap:6px}.hero-assurances svg{color:#51793b}.hero-demo-note{font-size:12px;color:#61705d;margin-top:15px}.hero-visual{position:relative;padding:0;isolation:isolate}.hero-visual:before{content:'';position:absolute;inset:24px -20px -18px 28px;background:#e5ecd5;border-radius:26px;z-index:-1;transform:rotate(3deg)}.hero-visual-label{display:flex;justify-content:space-between;gap:14px;font-size:9px;font-weight:700;letter-spacing:.13em;color:#617351;margin-bottom:13px;padding:0 3px}.hero-visual-footer{display:flex;gap:9px;align-items:center;margin-top:18px;font-size:11px;color:#617058;padding:0 3px}.hero-visual-footer strong{color:#4d6447;font-weight:400}.hero-visual-footer>svg{margin-left:auto;transform:rotate(-35deg)}.product-demo{border:1px solid #d0daca;border-radius:16px;box-shadow:0 28px 55px -24px #16372630;overflow:hidden;background:#fff}.tour-chrome{height:44px;background:#fff;display:flex;align-items:center;gap:13px;padding:0 16px;border-bottom:1px solid #e8ede4;font-size:10px;color:#5b6f5d}.tour-dots{display:flex;gap:4px}.tour-dots i{width:5px;height:5px;background:#d2d9ca;border-radius:50%}.tour-dots i:first-child{background:#84a162}.tour-sample{margin-left:auto;font-size:9px;color:#537540;background:#eef3e3;padding:3px 7px;border-radius:5px;white-space:nowrap}.tour-frame{display:grid;grid-template-columns:56px minmax(0,1fr)}.tour-rail{background:#143d32;color:#f9fbee;padding:17px 8px;display:flex;flex-direction:column;align-items:center;gap:9px}.tour-logo{display:grid;place-items:center;color:#d6ee81;margin-bottom:24px}.tour-rail button{display:grid;place-items:center;height:34px;width:34px;border:none;border-radius:8px;color:#a6bbae;background:transparent}.tour-rail button.active{background:#d6ee81;color:#143d32}.tour-rail button:hover{background:#436348;color:#fff}.tour-rail-avatar{margin-top:auto;border-radius:50%;background:#355b4b;display:grid;place-items:center;width:25px;height:25px;font-size:9px;color:#d8e8c7}.tour-body{background:#f6f7f1;min-width:0}.tour-tabs{display:flex;gap:22px;padding:14px 20px 0;border-bottom:1px solid #e1e7da;background:#fafbf7}.tour-tabs button{background:none;border:none;border-bottom:2px solid transparent;padding:0 0 10px;color:#636f5b;font-size:11px}.tour-tabs button.active{border-color:#396438;color:#1b4a35;font-weight:700}.tour-content{padding:20px;min-height:316px}.tour-page-title{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px}.tour-page-title small{display:block;font-size:8px;font-weight:700;letter-spacing:.08em;color:#5e7452;margin-bottom:7px}.tour-page-title h3{font-size:17px;letter-spacing:-.04em;color:#243f31}.tour-page-title>svg{color:#587446}.tour-date{font-size:8px;color:#64735b;white-space:nowrap}.tour-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tour-stats>div{border:1px solid #e2e8d9;background:#fff;border-radius:8px;padding:12px}.tour-stats small{font-size:9px;display:block;color:#617056}.tour-stats strong{font-family:var(--heading);display:block;font-size:23px;letter-spacing:-.065em;margin:5px 0;line-height:1.2}.tour-stats strong>span{font-size:11px;color:#69725b;margin-left:3px;letter-spacing:0}.tour-stats>div>span{display:flex;align-items:center;gap:4px;font-size:8px;color:#5e754f}.tour-chart-title{display:flex;justify-content:space-between;gap:10px;font-size:9px;margin-top:18px;color:#617056}.tour-chart-title strong{color:#435a36}.tour-bars{display:flex;gap:16px;height:86px;margin-top:12px}.tour-bars>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;position:relative;padding-bottom:14px;border-bottom:1px solid #dce4d1}.tour-bars i{display:block;width:100%;background:#a7c88a;border-radius:3px 3px 0 0;max-height:68px}.tour-bars>div:last-child i{background:#256348}.tour-bars span{font-size:7px;color:#69715f;position:absolute;bottom:-3px;width:100%;text-align:center}.tour-note{display:flex;align-items:center;gap:6px;padding:10px;border-radius:7px;background:#edf3e4;color:#557047;font-size:9px;line-height:1.4;margin-top:15px}.tour-note strong{font-size:9px}.tour-search{display:flex;align-items:center;gap:7px;border:1px solid #dce4d4;border-radius:7px;background:white;color:#64715b;font-size:10px;padding:10px;margin-bottom:12px}.tour-search span:last-child{margin-left:auto;font-size:8px}.tour-member-list{background:white;border:1px solid #e2e8d9;border-radius:8px}.tour-member-list>div{display:flex;gap:8px;align-items:center;padding:11px;border-bottom:1px solid #edf0e7}.tour-member-list>div:last-child{border:none}.tour-avatar{display:grid;place-items:center;height:29px;width:29px;flex:none;border-radius:7px;background:#e9efda;color:#547440;font-size:9px}.tour-member-list>div>div{display:grid;gap:2px;flex:1;min-width:0}.tour-member-list strong{font-size:10px}.tour-member-list small{font-size:8px;color:#646f59}.tour-member-list .pill{font-size:8px;padding:3px 6px}.tour-transactions{display:grid;margin-top:17px;border-top:1px solid #e0e7d6}.tour-transactions>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #e0e7d6;font-size:9px}.tour-transactions span{display:flex;align-items:center;gap:7px;color:#5e7252}.tour-transactions strong{color:#2a583c;white-space:nowrap}
.benefit-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #dce3d5;border-bottom:1px solid #dce3d5;padding-top:26px;padding-bottom:26px;gap:38px}.benefit-strip>div{display:grid;grid-template-columns:30px 1fr;column-gap:11px;row-gap:3px;align-items:center}.benefit-strip>div>span{grid-row:1/3;color:#637355;font-size:11px}.benefit-strip strong{font-size:15px;color:#35503c;font-weight:700}.benefit-strip small{font-size:12px;color:#626f5a}.marketing-section{padding-top:108px;padding-bottom:106px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;margin:0 0 42px;max-width:none;text-align:left}.label-accent{font-size:10px;letter-spacing:.15em;font-weight:700;color:#5d7342}.section-heading h2,.faq-section h2{font-size:clamp(32px,3.25vw,44px);line-height:1.15;color:#24432f;margin-top:18px}.section-heading>p{font-size:15px;line-height:1.75;color:#617159;max-width:340px;margin-bottom:4px}.feature-bento{display:grid;grid-template-columns:1.08fr 1fr;grid-template-rows:1fr auto;gap:18px}.feature-card{border:1px solid #dce5d3;border-radius:15px;padding:30px;background:#fff;min-width:0;position:relative;display:flex;flex-direction:column;transition:border-color .18s,box-shadow .18s}.feature-card:hover{border-color:#9ab885;box-shadow:0 10px 25px -20px #35643840}.feature-members{grid-row:span 2;background:#eef2e3}.feature-money{background:#143d32;color:#fff;border-color:#143d32}.feature-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.feature-icon{height:44px;width:44px;display:grid;place-items:center;border-radius:10px}.feature-icon.mint{background:#e7eed6;color:#487636}.feature-icon.lavender{background:#eeedf6;color:#645879}.feature-icon.peach{background:#fff0df;color:#8c642b}.feature-icon.blue{background:#eaf0f7;color:#507286}.feature-members .feature-icon{background:#dfe9c9}.feature-money .feature-icon{background:#355747;color:#d6ee81}.feature-number{font-size:9px;letter-spacing:.1em;color:#637054}.feature-money .feature-number{color:#a5bba3}.feature-card h3{font-size:29px;letter-spacing:-.055em;line-height:1.2;color:#25432f;margin:0 0 13px}.feature-money h3{color:#fff}.feature-attendance h3{font-size:24px}.feature-card>p{font-size:14px;line-height:1.75;color:#617257;max-width:410px}.feature-money>p{color:#b7c9b0}.feature-member-preview{margin:32px 0 25px;background:#fff;border:1px solid #dbe5cb;border-radius:10px;padding:2px 16px;box-shadow:0 15px 25px -20px #3a6b2630}.feature-member-preview>div{display:flex;align-items:center;gap:12px;padding:19px 0;border-bottom:1px solid #e9eedf}.feature-member-preview>div:last-child{border:none}.feature-member-preview>div>div{display:grid;flex:1;gap:3px}.feature-member-preview strong{font-size:13px}.feature-member-preview small{font-size:11px;color:#667158}.feature-money-preview{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin:23px 0 25px}.feature-money-preview>div{display:grid;gap:5px}.feature-money-preview>div>span{font-size:11px;color:#b5ca9e}.feature-money-preview strong{font-family:var(--heading);font-size:32px;letter-spacing:-.06em;color:#d6ee81}.money-mini-bars{display:flex;gap:7px;height:47px;align-items:end}.money-mini-bars i{width:16px;height:35%;background:#607b46;border-radius:3px 3px 0 0}.money-mini-bars i:nth-child(2){height:60%}.money-mini-bars i:nth-child(3){height:48%}.money-mini-bars i:nth-child(4){height:80%}.money-mini-bars i:nth-child(5){height:67%}.money-mini-bars i:nth-child(6){height:100%;background:#d6ee81}.feature-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-top:auto;padding:17px 0 0;border:none;border-top:1px solid #d6e1c8;background:none;color:#365c33;font-size:13px;font-weight:700;text-align:left}.feature-link:hover{color:#517a26}.feature-money .feature-link{color:#d6ee81;border-color:#446449}.feature-attendance .feature-link{margin-top:27px}.feature-footnote{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#627057;line-height:1.65;margin-top:24px}.feature-footnote svg{margin-top:2px}
.steps-zone{background:#edf0e2;padding:90px 0}.steps-zone .section-heading{margin-bottom:45px}.steps-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px}.step-card{background:transparent;border:none;border-radius:0;padding:0;min-width:0}.step-card>div{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #cdd9ba;padding-top:20px;margin-bottom:25px;color:#597540}.step-card>div>span{font-family:var(--heading);font-size:32px;letter-spacing:-.05em}.step-card h3{font-size:21px;margin-bottom:12px;color:#2c4e34}.step-card>p{color:#617453;font-size:14px;line-height:1.8}.step-note{margin-top:35px;color:#657156;font-size:12px}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;max-width:none}.price-card{background:#fff;border:1px solid #dce3d0;border-radius:14px;padding:30px;display:flex;flex-direction:column;position:relative;min-width:0}.price-card.highlight{background:#143d32;border-color:#143d32;color:#fff;transform:none;box-shadow:none}.price-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.price-card h3{font-size:21px;letter-spacing:-.04em;margin:0}.plan-tag{font-size:8px;letter-spacing:.07em;font-weight:700;color:#647056;background:#f0f4e8;padding:5px 7px;border-radius:4px;white-space:nowrap}.highlight .plan-tag{color:#d6ee81;background:#335743}.price-card>p{font-size:13px;color:#647255;margin-top:13px}.highlight>p{color:#b3c6a8}.price{font-family:var(--heading);font-size:40px;letter-spacing:-.06em;line-height:1.25;margin:31px 0 28px;color:#294b31}.highlight .price{color:#d6ee81}.price>span{font-family:'Gym Sans',Arial,sans-serif;letter-spacing:0;font-size:12px;font-weight:400;color:#647257;margin-left:6px}.highlight .price>span{color:#b8caa9}.price-card ul{list-style:none;padding:25px 0 0;margin:0 0 30px;border-top:1px solid #e2e9d7;display:grid;gap:15px;font-size:12px;color:#5b734b;flex:1;align-content:start}.price-card li{display:flex;gap:9px;align-items:center}.price-card li svg{color:#59753c}.highlight ul{color:#cbdbbd;border-color:#416347}.highlight li svg{color:#d6ee81}.price-card .btn{width:100%;margin-top:auto}.pricing-note{font-size:12px;line-height:1.6;color:#67725b;text-align:center;margin-top:24px}.faq-section{display:grid;grid-template-columns:.85fr 1.4fr;gap:70px;padding-bottom:105px}.faq-section>div>p{font-size:14px;color:#64735b;margin-top:20px}.faq-list details{border-bottom:1px solid #dce4d2}.faq-list details:first-child{border-top:1px solid #dce4d2}.faq-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:15px;font-weight:700;color:#3a5838;padding:21px 0;cursor:pointer}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{display:grid;place-items:center;flex:none;color:#617147}.faq-list details[open] summary svg{transform:rotate(45deg)}.faq-list details>p{font-size:14px;line-height:1.8;color:#617456;max-width:600px;padding:0 25px 23px 0}.final-cta{margin-left:auto;margin-right:auto;background:#143d32;border-radius:18px;padding-top:65px;padding-bottom:65px;display:flex;align-items:center;justify-content:space-between;gap:35px;position:relative;overflow:hidden;max-width:1252px}.cta-kicker{color:#a9c580;font-size:10px;letter-spacing:.14em;font-weight:700}.final-cta h2{font-size:clamp(38px,4vw,56px);line-height:1.1;letter-spacing:-.06em;color:#f9fbee;margin:20px 0}.final-cta p{font-size:15px;color:#a9c49e;line-height:1.7;margin-bottom:27px}.final-cta>div:first-child{position:relative;z-index:1}.cta-art{width:320px;height:230px;position:relative;display:grid;place-items:center;margin-right:20px;flex:none}.cta-art>span{position:absolute;width:235px;height:235px;border:1px solid #567845;border-radius:50%;transform:rotate(-15deg)}.cta-art>span:nth-child(2){width:170px;height:170px;background:#d6ee8110;border-color:#84a45f}.cta-art>span:nth-child(3){width:300px;height:180px;transform:rotate(-40deg);border-color:#315c41}.cta-art>svg{position:absolute;color:#d6ee81;transform:rotate(-28deg);top:45px}.cta-art>small{position:absolute;bottom:10px;right:3px;font-size:11px;color:#a2bd7d;line-height:1.4;letter-spacing:.1em}.marketing-footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:45px;padding-bottom:45px}.marketing-footer p{color:#657158;font-size:12px;margin-top:11px}.marketing-footer>div:nth-child(2){display:flex;gap:24px}.marketing-footer button{border:none;background:none;padding:8px 0;font-size:12px;color:#5f744e}.marketing-footer button:hover{color:#1c4c2c}.marketing-footer>span{font-size:11px;color:#637157;line-height:1.8;text-align:right}

/* Workspace layout, hierarchy, and readable data */
.app-shell{background:#f4f5ef}.sidebar{background:#143d32;color:#d2dec5;border-color:#143d32;width:250px;padding:25px 16px 18px;overflow-y:auto}.sidebar-logo{padding:0 9px 28px}.sidebar-logo .brand{color:#fff;font-size:23px}.sidebar-logo .brand-icon{background:#d6ee81;color:#143d32}.sidebar-logo .brand-dot{color:#d6ee81}.sidebar-logo .brand-link{border-radius:8px}.workspace-switch{background:#20483a;border-color:#39604a;gap:11px;padding:12px;margin-bottom:26px;border-radius:10px}.workspace-logo{background:#3a5d44;color:#d6ee81}.workspace-name strong{font-size:12px;color:#f1f6e9}.workspace-name small{font-size:10px;color:#a4b899}.workspace-switch>svg{color:#9eb18d}.nav-caption{font-size:9px;color:#7fa183;letter-spacing:.16em;margin-bottom:13px}.sidebar-nav{gap:5px}.nav-item{font-size:13px;min-height:46px;color:#b4c8ad;font-weight:400;border-radius:8px;gap:12px;padding:10px 13px}.nav-item:hover{background:#2c5340;color:#fff}.nav-item.active{background:#d6ee81;color:#173f2c;font-weight:700;box-shadow:0 3px 14px #071d1310}.nav-item svg{width:18px;height:18px}.new-dot{background:#a4cd68}.sidebar-bottom{padding-top:30px;gap:14px}.sidebar-trial{background:#254c3b;border-color:#436440;border-radius:10px;padding:15px}.trial-top{font-size:12px;color:#e3efc7}.trial-top svg{color:#d6ee81}.sidebar-trial p{font-size:11px;color:#b0c6a1;margin-top:7px}.progress-track{background:#426740;height:4px}.progress-track span{background:#d6ee81}.sidebar-trial button{font-size:11px;color:#cde596;margin-top:14px}.profile-chip{border-top-color:#3c5d42;padding-top:16px}.profile-avatar{background:#476446;color:#e1f0bb}.profile-chip strong{font-size:12px;color:#ecf4df}.profile-chip small{font-size:10px;color:#a1b994}.profile-chip>svg{color:#a1b994}.main-column{margin-left:250px}.topbar{height:76px;background:#fbfcf8;border-bottom-color:#e0e6d8;padding:0 34px;position:sticky;top:0;z-index:9}.topbar-left{font-size:13px;color:#637058}.topbar-left strong{font-size:13px;color:#335036}.topbar-right{gap:17px}.topbar-date{font-size:12px;color:#617157}.round-avatar{background:#e5edda;color:#42673a;min-width:34px;min-height:34px;font-size:11px}.dashboard-content{padding:34px;max-width:1570px}.small-overline{font-size:10px;color:#5e7545;letter-spacing:.13em}.page-heading{margin-bottom:28px}.page-heading h1{font-size:30px;color:#2b4933;letter-spacing:-.055em;line-height:1.25;margin:9px 0}.page-heading p{font-size:14px;line-height:1.65;color:#617156}.date-chip{font-size:12px;color:#5d744e;border-color:#dbe4cf;background:#fff;border-radius:8px}.surface-card{border-color:#e1e7d9;border-radius:13px;background:#fff;box-shadow:0 3px 6px #243c2110}.welcome-trial{background:#eaf0da;color:#335833;border-color:#d6e1c2;padding:17px 20px;gap:13px}.trial-bubble{background:#d7e5bd;color:#577733}.welcome-trial strong{font-size:13px}.welcome-trial p{color:#5e7547;font-size:12px}.welcome-trial button{background:#fff9;color:#4b6c3a;border-color:#bcccaa;font-size:11px}.stats-grid{gap:16px}.stat-card{padding:22px;gap:16px;box-shadow:none}.stat-top>span:first-child{color:#617155;font-size:12px;font-weight:400}.stat-icon{background:#f0f3e7;color:#577636;border-radius:10px;width:35px;height:35px}.stat-card>strong{font-family:var(--heading);font-size:clamp(25px,2.4vw,34px);line-height:1.15;color:#2c4b33;letter-spacing:-.055em;font-variant-numeric:tabular-nums}.stat-change{font-size:11px;color:#617156}.stat-change.positive svg{color:#4d7633}.stat-change.negative svg{color:#a2573c}.overview-layout,.overview-layout.lower{grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:18px;margin-top:20px}.chart-card,.attention-card,.recent-card,.quick-card{padding:24px}.card-head h2{font-size:16px;color:#345135;letter-spacing:-.035em}.card-head p{color:#65715a;font-size:12px;margin-top:6px;line-height:1.5}.pill{font-size:10px;padding:5px 9px;line-height:1.2;font-weight:400;background:#f0f3ea;color:#617359}.pill-success{background:#edf4e4;color:#4b722d}.pill-warning{background:#fbf2dc;color:#866723}.pill-danger{background:#f9ebe4;color:#a45a3b}.pill-blue{background:#edf1f7;color:#576e87}.chart-key{font-size:11px;color:#637358;gap:18px;margin-top:18px}.dot-green{background:#3b744e}.dot-blue{background:#acb889}.pure-chart{height:260px;margin-top:12px}.attention-ring{background:#f0f3e8;color:#5b733e}.attention-list button{border-color:#eef1e8;padding:15px 0;gap:12px}.attention-list button:hover{background:#fafbf5}.attention-list strong{font-size:12px;color:#4b683f;font-weight:400}.attention-list small{font-size:11px;color:#67725b}.attention-icon.warning{background:#f6edda;color:#836c35}.attention-icon.blue{background:#eef0f6;color:#656e88}.attention-icon.mint{background:#edf3e3;color:#597437}.attention-tip{background:#f2f5e9;color:#59773e}.attention-tip strong{font-size:12px}.attention-tip p{font-size:11px;color:#617152}.inline-link{font-size:12px;font-weight:400}.recent-item{border-color:#edf1e5;padding:15px 0;gap:12px}.activity-bubble{background:#edf2e3;color:#587636;border-radius:10px}.recent-item strong{color:#4e6840;font-size:13px;font-weight:400}.recent-item small{font-size:11px;color:#66715b}.recent-amount{font-size:12px;color:#507040;font-variant-numeric:tabular-nums}.quick-actions{gap:11px;margin-top:20px}.quick-actions button{border-color:#e7eddd;padding:12px;font-size:12px;color:#5a7347;font-weight:400}.quick-actions button:hover{background:#f4f7eb}.quick-actions span{background:#edf3e0;color:#5c7536}.quick-actions button>svg:last-child{color:#656f56}.disclaimer-inline{font-size:11px;color:#65705c;line-height:1.6;margin-top:24px}.mini-stats{gap:13px;margin-bottom:22px}.mini-stats>div{min-width:170px;border-radius:11px;padding:17px 20px;background:#fbfcf7;gap:6px}.mini-stats span{font-size:11px;color:#667356}.mini-stats strong{font-family:var(--heading);font-size:27px;color:#3b5a3b}.table-toolbar{padding:18px 21px;border-color:#edf1e6}.search-field{background:#fbfcf8;border-color:#dce6cf;color:#657357;height:42px;max-width:350px}.search-field input{background:transparent;font-size:13px;color:#536e44}.search-field input::placeholder{color:#68715b}.search-field:focus-within{border-color:#7b9b55;box-shadow:0 0 0 3px #d6ee8130}.segmented{background:#f0f3e7;gap:4px;padding:4px}.segmented button{color:#617350;font-size:12px;padding:9px 15px;font-weight:400}.segmented button.selected{background:#fff;color:#416b32;box-shadow:0 2px 4px #36562a10;font-weight:700}.data-table{font-size:13px}.data-table th{padding:16px 21px;background:#fbfcf7;color:#657356;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-color:#edf0e6}.data-table td{padding:15px 21px;color:#607152;border-color:#eff2e8}.data-table tbody tr:hover{background:#fcfdf8}.data-table td strong{font-size:13px;color:#4c693d;font-weight:400}.member-avatar{background:#eaf0dd;color:#5a7538;border-radius:9px;font-size:11px;width:36px;height:36px}.member-cell{gap:12px}.member-cell small{font-size:11px;color:#636f55}.table-actions button{border-color:#dce5ce;color:#5e7344;height:36px;width:36px;background:#fff}.table-actions button:hover{background:#edf4df;color:#507935}.table-bottom{padding:16px 21px;color:#667259;font-size:11px;border-color:#eff2e7}.strong-money{color:#50743c!important;font-variant-numeric:tabular-nums}.muted-small{font-size:12px;color:#657357}.empty-state{padding:56px 25px;gap:13px}.empty-state .empty-icon{background:#edf4df;color:#5a763a}.empty-state strong{font-size:15px;color:#517044}.empty-state p{font-size:13px;color:#667258}.plan-card{padding:27px}.plan-icon{background:#edf4df;color:#567534}.plan-card h2{font-size:20px;color:#4a6c37}.plan-cost{font-family:var(--heading);font-size:32px;color:#3e6830;font-variant-numeric:tabular-nums}.plan-card>p{font-size:13px;color:#617053}.plan-separator{background:#e9eedf}.plan-card>div:nth-last-of-type(1){color:#617053;font-size:12px}.info-strip{background:#edf4e0;border-color:#dfe9cf;color:#5e7540;font-size:13px}.checkin-card{padding:26px}.checkin-header h2{font-size:17px;color:#506f3d}.checkin-header p{font-size:12px;color:#677258}.checkin-header>span{background:#edf4df;color:#587634}.checkin-help{font-size:12px;color:#657056}.today-count{background:#234d38;border-radius:13px}.today-count>span{color:#cadcad;font-size:10px}.today-count>strong{font-family:var(--heading);color:#d6ee81}.today-count>div{color:#bace9f;font-size:12px}.online-dot{background:#d6ee81}.attendance-hint h3{color:#567439;font-size:15px}.attendance-hint h3 svg{color:#5d763b}.attendance-hint p{font-size:13px;color:#657155}.finance-alert{background:#eff2e8;border-color:#e1e7d5;color:#617358;padding:17px}.finance-alert strong{font-size:13px;color:#597548}.finance-alert p{font-size:12px}.feedback-poster{background:#234d38;padding:28px}.feedback-poster>svg{color:#d6ee81}.feedback-poster h2{font-size:27px;color:#f4f8e8;line-height:1.25}.feedback-poster p{font-size:13px;color:#b7cfa0}.feedback-poster>span{color:#d6ee81}.tips-card h3{font-size:15px;color:#59753e}.tips-card div{font-size:13px;color:#647451}.tips-card svg{color:#5d7734}.feedback-list p{font-size:13px;color:#5b7446}.feedback-list small{font-size:11px;color:#617054}.settings-card{padding:25px}.settings-rows>div{font-size:13px;padding:14px 0;border-color:#eef2e5}.settings-rows span{color:#647355}.settings-rows strong{font-size:12px;color:#5b7542}.settings-trial strong{font-family:var(--heading);color:#54783a;font-size:26px}.trial-big-track{background:#e7efda}.trial-big-track i{background:#94b55c}.settings-action{border-color:#edf2e1;padding:20px 0}.settings-action strong{font-size:13px;color:#5a7542}.settings-action p{font-size:12px;color:#627153}.settings-action-icon{background:#eef4e0;color:#5e7638}.code-display{font-size:12px;border-color:#b7cf93;background:white;color:#58773f;border-radius:8px;padding:12px;overflow-wrap:anywhere;max-width:100%;user-select:all}

/* Forms and feedback */
.auth-shell{background:#f8f8f1}.auth-aside{background:#143d32}.auth-quote h2{font-size:clamp(32px,3.5vw,49px);line-height:1.15}.auth-quote h2 span{color:#d6ee81}.auth-quote>p{color:#b5caaa;font-size:15px;line-height:1.8}.auth-spark{background:#416540;color:#d6ee81}.auth-benefit{color:#d0dfbf;font-size:14px}.auth-benefit svg{color:#d6ee81}.auth-quote-rule{background:#4b6a46}.auth-side-foot{color:#94af82;font-size:12px}.auth-panel{background:#f8f8f1;padding-top:40px;padding-bottom:40px}.auth-form-area h1{color:#385734;font-size:33px;line-height:1.2;letter-spacing:-.06em}.auth-kicker{color:#5e7441;font-size:10px}.auth-lead{color:#667255;font-size:14px;line-height:1.7;margin-top:17px}.auth-form input,.modal-form input,.modal-form select,.modal-form textarea,.checkin-card select,.checkin-card input{border-color:#d7e3c7;border-radius:8px;min-height:47px;padding:12px 14px;color:#587742;font-size:14px;background:#fff}.auth-form label,.modal-form label{font-size:13px;color:#5e7542;font-weight:400;gap:8px}.auth-form input::placeholder,.modal-form input::placeholder,.modal-form textarea::placeholder{color:#637155}.auth-switch{font-size:13px;color:#657155}.auth-switch button{color:#517935;font-weight:700}.go-back{color:#5e7249;font-size:13px}.auth-demo-only{background:#eaf0dc;border-radius:12px}.auth-demo-only p{font-size:14px;color:#5c7444}.notice{border-radius:9px;font-size:12px;padding:14px;line-height:1.7}.notice-amber{background:#f7f1e1;border-color:#e9dcba;color:#7e6c40}.notice-blue{background:#eef3e4;border-color:#dfe8cd;color:#5e7346}.modal-backdrop{background:#0d271cc2;backdrop-filter:blur(4px)}.modal{border-radius:15px;padding:28px;box-shadow:0 25px 100px #091d1735;max-height:90dvh}.modal-head h2{font-size:23px;color:#52753d;line-height:1.2}.modal-head p{font-size:13px;color:#627153;margin-top:10px}.modal-head .icon-btn{color:#637156}.modal-actions{gap:11px;margin-top:8px}.qr-card{background:#f3f7e9;border-color:#e0ebcd}.qr-card>span{color:#5e7449}.qr-card>small{font-size:11px;letter-spacing:0;color:#5f734f}.icon-btn{min-width:36px;min-height:36px;color:#61744f}.toast{background:#234d38;color:#f0f5e5;border:1px solid #507448;border-radius:10px;font-size:13px;font-weight:400;box-shadow:0 16px 45px #12251c20}.toast>svg{color:#d6ee81}.toast button{min-width:28px;min-height:28px}.modal-open{overflow:hidden}.preview-alert{background:#eef3e2;color:#60754b;border-color:#e2eacb;font-size:12px}

@media(min-width:1450px){.hero{gap:74px}.hero h1{font-size:78px}}
@media(max-width:1190px){.page-width{padding-left:32px;padding-right:32px}.header-beta{display:none}.hero{gap:32px;padding-top:76px;padding-bottom:76px}.hero h1{font-size:clamp(44px,5.15vw,66px)}.hero-actions .btn{font-size:13px;padding:13px 17px}.tour-content{padding:17px}.dashboard-content{padding:27px}.topbar{padding:0 27px}.stats-grid{gap:13px}.stat-card{padding:18px}.final-cta{margin-left:32px;margin-right:32px}.price-card{padding:25px}.price-card-top{gap:8px}.plan-tag{font-size:7px}}
@media(max-width:1000px){.marketing-header nav{gap:22px}.hero{gap:27px}.hero h1{font-size:clamp(40px,5.4vw,55px)}.hero-desc{font-size:16px}.hero-actions{gap:10px}.hero-actions .btn{font-size:12px;padding:12px 16px}.hero-assurances{gap:9px;font-size:11px}.tour-chrome{gap:7px;padding:0 12px}.tour-chrome>span:nth-child(2){font-size:9px}.tour-sample{font-size:7px}.tour-frame{grid-template-columns:47px minmax(0,1fr)}.tour-content{padding:16px;min-height:310px}.tour-tabs{gap:18px;padding-left:16px;padding-right:16px}.tour-page-title h3{font-size:15px}.tour-stats strong{font-size:22px}.tour-page-title{gap:6px}.tour-date{display:none}.section-heading{gap:28px}.section-heading>p{max-width:300px;font-size:14px}.feature-card{padding:25px}.feature-card h3{font-size:26px}.feature-card>p{font-size:13px}.feature-member-preview{padding-left:13px;padding-right:13px}.steps-grid{gap:25px}.price-card{padding:24px}.price{font-size:34px}.price-card ul{font-size:11px}.price-card-top{align-items:flex-start;flex-direction:column}.price-card .btn{font-size:12px;padding:12px 14px}.faq-section{gap:35px}.sidebar{width:225px}.main-column{margin-left:225px}.dashboard-content{padding:24px}.topbar{padding:0 24px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.overview-layout,.overview-layout.lower{grid-template-columns:1fr}.stat-card{padding:21px}.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading h1{font-size:28px}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading p{font-size:13px}.topbar-right{gap:12px}.topbar-right .pill{font-size:9px}.topbar-date{font-size:11px}.finance-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.finance-stats .stat-card{padding:17px}.finance-stats .stat-card>strong{font-size:25px}.finance-stats .stat-top>span:first-child{font-size:11px}.finance-stats .stat-icon{display:none}.marketing-footer>div:nth-child(2){gap:18px}}
@media(max-width:780px){html{scroll-padding-top:24px}.page-width{padding-left:24px;padding-right:24px}.marketing-header{height:80px;gap:16px}.marketing-header nav{display:none}.marketing-nav-actions .btn{min-height:42px;font-size:12px;padding:10px 14px}.marketing-header .brand{font-size:23px}.hero{grid-template-columns:1fr;padding-top:60px;padding-bottom:56px;gap:50px}.hero-left{max-width:580px;text-align:left}.hero h1{font-size:clamp(49px,8.8vw,66px);line-height:1.07}.hero-desc{font-size:17px;max-width:490px}.hero-actions{margin-top:27px;margin-bottom:19px}.hero-actions .btn{font-size:14px;min-height:49px;padding:13px 19px}.hero-assurances{font-size:12px;gap:17px}.hero-visual{max-width:580px;width:100%;margin:auto;transform:none;min-height:0;height:auto}.hero-visual:before{inset:22px -8px -9px 20px}.tour-frame{grid-template-columns:56px minmax(0,1fr)}.tour-content{padding:22px;min-height:328px}.tour-chrome{padding:0 17px;gap:13px}.tour-chrome>span:nth-child(2){font-size:10px}.tour-sample{font-size:9px}.tour-tabs{padding-left:22px;padding-right:22px;gap:25px}.tour-page-title h3{font-size:18px}.tour-stats strong{font-size:26px}.tour-stats small{font-size:10px}.tour-stats>div>span{font-size:9px}.tour-bars{height:100px;gap:18px}.tour-bars i{max-height:82px}.tour-note{font-size:10px;padding:12px}.tour-date{display:block;font-size:9px}.tour-page-title small{font-size:9px}.tour-member-list>div{padding:13px}.tour-member-list strong{font-size:12px}.tour-member-list small{font-size:9px}.tour-avatar{width:33px;height:33px;font-size:11px}.tour-member-list .pill{font-size:9px}.tour-search{font-size:11px}.tour-transactions>div{font-size:11px;padding:16px 0}.benefit-strip{gap:16px;padding-top:24px;padding-bottom:24px}.benefit-strip>div{grid-template-columns:1fr;gap:5px}.benefit-strip>div>span{grid-row:auto;font-size:10px}.benefit-strip strong{font-size:13px}.benefit-strip small{font-size:11px;line-height:1.6}.marketing-section{padding-top:72px;padding-bottom:72px}.section-heading{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:32px}.section-heading h2,.faq-section h2{font-size:37px}.section-heading>p{font-size:14px;max-width:490px}.feature-bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}.feature-members{grid-column:1/-1;grid-row:auto;display:block;padding:28px}.feature-members>p{max-width:500px}.feature-card-top{margin-bottom:24px}.feature-members .feature-member-preview{margin:26px 0;max-width:520px}.feature-card h3{font-size:25px}.feature-members h3{font-size:30px}.feature-members h3 br{display:none}.feature-members .feature-link{margin-top:20px}.feature-attendance .feature-link{margin-top:auto}.feature-money-preview strong{font-size:28px}.money-mini-bars{gap:4px;height:40px}.money-mini-bars i{width:9px}.feature-card:not(.feature-members){padding:24px}.feature-attendance .feature-link{padding-top:18px}.feature-footnote{font-size:11px}.steps-zone{padding:68px 0}.steps-grid{grid-template-columns:1fr;gap:28px}.step-card>div{margin-bottom:14px}.step-card>p{max-width:520px}.step-card h3{font-size:23px}.steps-zone .section-heading{margin-bottom:33px}.steps-zone .section-heading>.btn{margin-top:4px}.pricing-grid{grid-template-columns:1fr;max-width:580px;margin:auto;gap:16px}.price-card{padding:28px}.price-card-top{align-items:center;flex-direction:row}.plan-tag{font-size:9px}.price{font-size:38px;margin:24px 0}.price-card ul{font-size:13px;gap:12px;padding-top:20px;margin-bottom:25px}.price-card .btn{font-size:14px}.price-card>p{font-size:14px}.faq-section{grid-template-columns:1fr;gap:28px;padding-bottom:72px}.faq-section h2 br{display:none}.faq-section>div>p{margin-top:16px}.faq-list summary{font-size:14px;padding:20px 0}.faq-list details>p{font-size:13px;padding-right:12px}.final-cta{border-radius:15px;margin-left:24px;margin-right:24px;padding-top:46px;padding-bottom:46px;max-width:none}.final-cta h2{font-size:43px}.final-cta p{font-size:14px;max-width:380px}.cta-art{width:170px;height:230px;margin-right:-70px;opacity:.55}.cta-art>span{width:200px;height:200px}.cta-art>span:nth-child(3){width:260px;height:150px}.cta-art>small{display:none}.marketing-footer{align-items:flex-start;flex-wrap:wrap;padding-top:36px;padding-bottom:36px}.marketing-footer>div:first-child{width:100%}.marketing-footer>span{text-align:right;margin-left:auto}.marketing-footer>div:nth-child(2){gap:18px}.sidebar{width:270px;transform:translateX(-100%);transition:transform .2s;box-shadow:4px 0 30px #0f2a201a}.sidebar.mobile-open{transform:translateX(0)}.sidebar-logo{display:flex;align-items:center;justify-content:space-between;gap:13px}.sidebar .mobile-close{color:#bdcfa6}.main-column{margin-left:0}.mobile-menu,.mobile-close{display:grid!important}.sidebar-scrim:not(.visible){display:none!important}.sidebar-scrim.visible{display:block!important;background:#0b241bae;z-index:10}.topbar{height:66px;padding:0 22px}.topbar-date{display:none}.topbar-left{gap:8px}.topbar-left>span{display:none}.topbar-left>svg{display:none}.topbar-right{gap:12px}.topbar-right .pill{font-size:9px}.dashboard-content{padding:24px}.page-heading h1{font-size:29px}.auth-aside{display:none}.auth-shell{grid-template-columns:1fr}.auth-panel{min-height:100dvh;padding:28px}.auth-form-area{margin:35px auto}.auth-mobile-logo{display:block;margin-bottom:28px}.auth-form-area h1{font-size:32px}.attendance-layout,.feedback-layout{grid-template-columns:1fr}.attendance-side{grid-template-columns:1fr 1fr}.today-count{min-height:180px}.attendance-hint{padding:22px}.settings-grid{gap:16px}.settings-card{padding:22px}.settings-rows>div{font-size:12px}.modal{padding:25px}.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar .round-avatar{width:32px;height:32px}.card-head{gap:13px}}
@media(max-width:545px){.page-width{padding-left:21px;padding-right:21px}.marketing-header{height:76px}.marketing-header .brand{font-size:22px}.marketing-header .brand-icon{width:32px;height:32px}.marketing-header .btn{font-size:11px;padding:10px 12px;min-height:40px;gap:7px}.hero{padding-top:44px;padding-bottom:47px;gap:35px}.hero-eyebrow{font-size:9px;letter-spacing:.1em}.hero h1{font-size:clamp(38px,10.5vw,55px);margin:21px 0;letter-spacing:-.065em}.hero-desc{font-size:16px;line-height:1.65}.hero-actions{flex-direction:column;align-items:stretch;width:100%;max-width:none;margin:25px 0 19px}.hero-actions .btn{font-size:14px;min-height:48px;justify-content:center}.hero-assurances{gap:8px 15px;font-size:11px}.hero-demo-note{font-size:11px;margin-top:12px}.hero-visual{margin:0;transform:none;min-height:0;height:auto}.hero-visual-label{font-size:8px;letter-spacing:.09em}.hero-visual-footer{font-size:10px;margin-top:13px}.tour-chrome{padding:0 11px;gap:8px;height:39px}.tour-chrome>span:nth-child(2){font-size:9px}.tour-dots{gap:3px}.tour-dots i{width:4px;height:4px}.tour-sample{font-size:7px;padding:3px 5px}.tour-frame{grid-template-columns:40px minmax(0,1fr)}.tour-rail{padding:15px 3px;gap:9px}.tour-rail button{width:29px;height:29px}.tour-rail button svg{width:16px;height:16px}.tour-logo{margin-bottom:18px}.tour-logo svg{width:18px;height:18px}.tour-rail-avatar{width:22px;height:22px;font-size:8px}.tour-tabs{padding:12px 14px 0;gap:18px}.tour-tabs button{font-size:10px;padding-bottom:9px}.tour-content{padding:15px 13px;min-height:295px}.tour-page-title h3{font-size:14px;line-height:1.3}.tour-page-title small{font-size:7px;letter-spacing:.06em;margin-bottom:6px}.tour-page-title{margin-bottom:15px;gap:5px}.tour-page-title>svg{width:16px;height:16px}.tour-date{display:none}.tour-stats>div{padding:10px 8px}.tour-stats strong{font-size:20px;margin:6px 0}.tour-stats small{font-size:8px}.tour-stats>div>span{font-size:7px;gap:3px}.tour-stats>div>span svg{width:9px;height:9px}.tour-chart-title{font-size:8px;margin-top:18px}.tour-bars{height:80px;gap:11px}.tour-bars i{max-height:65px}.tour-note{font-size:8px;padding:9px;gap:5px;margin-top:15px}.tour-note strong{font-size:8px}.tour-note svg{width:13px;height:13px}.tour-member-list>div{padding:10px 8px;gap:7px}.tour-member-list strong{font-size:10px}.tour-member-list small{font-size:8px}.tour-member-list .pill{font-size:7px;padding:3px 5px}.tour-avatar{width:25px;height:25px;font-size:8px}.tour-search{font-size:9px;padding:9px 7px}.tour-search span:last-child{font-size:7px}.tour-transactions>div{font-size:9px;padding:14px 0;gap:8px}.tour-transactions span{gap:5px}.tour-transactions svg{width:13px;height:13px}.benefit-strip{gap:14px;padding-top:22px;padding-bottom:22px}.benefit-strip strong{font-size:12px;line-height:1.4}.benefit-strip small{font-size:10px;line-height:1.5}.benefit-strip>div>span{font-size:9px}.marketing-section{padding-top:57px;padding-bottom:57px}.section-heading h2,.faq-section h2{font-size:32px}.section-heading{gap:19px;margin-bottom:29px}.section-heading>p{font-size:14px}.label-accent{font-size:9px;letter-spacing:.13em}.feature-bento{grid-template-columns:1fr;gap:15px}.feature-members{grid-column:auto}.feature-card,.feature-card:not(.feature-members){padding:25px}.feature-card h3,.feature-members h3{font-size:27px}.feature-card>p{font-size:14px}.feature-number{font-size:8px}.feature-card-top{margin-bottom:23px}.feature-members .feature-member-preview{padding:0 12px;margin:25px 0}.feature-member-preview>div{gap:10px;padding:16px 0}.feature-member-preview strong{font-size:12px}.feature-member-preview small{font-size:10px}.feature-member-preview .pill{font-size:9px}.feature-attendance .feature-link{margin-top:23px}.feature-money-preview{margin-top:21px;margin-bottom:23px}.feature-money-preview strong{font-size:33px}.money-mini-bars{height:45px;gap:7px}.money-mini-bars i{width:14px}.feature-footnote{font-size:11px;gap:7px;margin-top:20px}.steps-zone{padding:55px 0}.steps-grid{gap:25px}.step-card>div>span{font-size:27px}.step-card h3{font-size:22px}.step-card>p{font-size:14px}.step-note{font-size:11px;line-height:1.7}.price-card{padding:25px}.price-card h3{font-size:23px}.pricing-note{font-size:11px;margin-top:19px}.faq-section{gap:26px;padding-bottom:57px}.faq-list summary{font-size:14px;gap:17px}.faq-list details>p{font-size:13px}.final-cta{margin-left:21px;margin-right:21px;padding:36px 25px;border-radius:14px}.final-cta h2{font-size:36px}.final-cta p{font-size:14px}.cta-kicker{font-size:8px;letter-spacing:.11em}.cta-art{position:absolute;right:-93px;bottom:28px;opacity:.25;pointer-events:none}.final-cta .btn{font-size:13px;min-height:47px}.marketing-footer{padding-top:32px;padding-bottom:30px;gap:25px}.marketing-footer>div:nth-child(2){width:100%;gap:24px}.marketing-footer>span{text-align:left;margin-left:0;font-size:10px}.dashboard-content{padding:18px}.topbar{padding:0 18px}.topbar-left strong{font-size:13px}.topbar-right .pill{font-size:8px;padding:5px 7px}.topbar-right{gap:8px}.page-heading{flex-direction:column;align-items:flex-start;gap:17px;margin-bottom:22px}.page-heading h1{font-size:26px;margin:8px 0}.page-heading p{font-size:13px;max-width:390px;line-height:1.6}.page-heading-action{gap:8px;width:100%}.page-heading-action .btn{font-size:12px;padding:11px 13px;min-height:43px;flex:1}.date-chip{font-size:11px;padding:9px 12px}.welcome-trial{padding:15px;gap:11px;align-items:flex-start;margin-bottom:17px}.trial-bubble{width:32px;height:32px;border-radius:8px}.trial-bubble svg{width:17px;height:17px}.welcome-trial strong{font-size:12px;line-height:1.5;display:block}.welcome-trial p{font-size:11px;line-height:1.6}.welcome-trial button{display:none}.stats-grid,.finance-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card,.finance-stats .stat-card{padding:16px 13px;gap:12px}.stat-top>span:first-child{font-size:11px;line-height:1.55}.stat-icon{width:27px;height:27px;border-radius:8px}.stat-icon svg{width:15px;height:15px}.stat-card>strong,.finance-stats .stat-card>strong{font-size:clamp(21px,6vw,28px)}.stat-change{font-size:10px;line-height:1.6;gap:4px}.stat-change svg{width:11px;height:11px}.finance-stats>.stat-card:last-child{grid-column:1/-1}.overview-layout,.overview-layout.lower{margin-top:15px;gap:15px;grid-template-columns:1fr}.chart-card,.attention-card,.recent-card,.quick-card,.checkin-card{padding:20px}.card-head{align-items:flex-start;gap:11px}.card-head h2{font-size:16px}.card-head p{font-size:11px;line-height:1.5}.card-head>.pill{font-size:8px}.pure-chart{height:225px;margin-top:12px}.chart-key{font-size:10px;gap:14px}.attention-list strong{font-size:12px}.attention-list small{font-size:11px}.quick-actions button{font-size:12px;padding:11px}.recent-item strong{font-size:12px}.recent-item small{font-size:10px}.recent-amount{font-size:11px;white-space:nowrap}.disclaimer-inline{font-size:10px;align-items:flex-start}.disclaimer-inline svg{margin-top:2px}.mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;overflow:visible;margin-bottom:17px}.mini-stats>div{min-width:0;padding:13px 9px;gap:9px}.mini-stats span{font-size:9px;line-height:1.5}.mini-stats strong{font-size:24px}.table-toolbar{flex-direction:column;align-items:stretch;gap:13px;padding:16px}.search-field{max-width:none;flex:auto;height:43px}.segmented{align-self:flex-start}.segmented button{font-size:11px;padding:8px 12px}.data-table th,.data-table td{padding:15px 16px}.data-table th{font-size:9px}.data-table td{font-size:12px}.data-table td strong{font-size:12px}.table-bottom{padding:15px 16px;font-size:10px}.plan-grid{grid-template-columns:1fr;gap:14px}.plan-card{padding:25px}.attendance-side{grid-template-columns:1fr}.today-count{min-height:160px}.attendance-hint{padding:20px}.checkin-header p{font-size:12px;line-height:1.6}.checkin-header h2{font-size:16px}.finance-alert p{font-size:11px;line-height:1.7}.feedback-form-card{padding:21px}.feedback-poster{padding:25px}.settings-grid{grid-template-columns:1fr}.settings-card.full-span{grid-column:auto}.settings-card{padding:21px}.settings-rows>div{font-size:12px;gap:13px}.settings-rows strong{font-size:12px}.settings-action{flex-wrap:wrap;gap:12px}.settings-action .btn{width:100%}.settings-action>div{min-width:160px}.modal-backdrop{padding:14px}.modal{padding:22px;max-height:90dvh}.modal-head h2{font-size:22px}.modal-head p{font-size:12px}.form-row{grid-template-columns:1fr}.auth-panel{padding:25px}.auth-form-area h1{font-size:29px}.auth-lead{font-size:14px}.auth-form-area{margin:30px auto}.toast{bottom:18px;right:18px;max-width:calc(100vw - 36px);font-size:12px;padding:13px}.notice{font-size:12px}.icon-btn{min-width:36px;min-height:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.btn:hover:not(:disabled){transform:none}}
@media print{.sidebar,.topbar,.page-heading-action,.marketing-header,.marketing-footer,.toast,.skip-link{display:none!important}.main-column{margin-left:0}.dashboard-content{padding:0}.app-shell{display:block;background:white}.surface-card{box-shadow:none;break-inside:avoid}.pure-chart{height:240px}.page-heading h1{color:#143d32}.modal-backdrop{position:static;background:white;backdrop-filter:none}.modal{box-shadow:none;max-height:none}.stats-grid{grid-template-columns:repeat(4,1fr)}}

.report-period{display:flex;align-items:center;gap:8px;font-size:11px;color:#5b7347}.report-period input{font-size:12px;padding:9px 10px;color:#4d6e3b;border:1px solid #d5e1c5;border-radius:8px;background:white;min-height:42px;max-width:160px}.settings-action input[hidden]{display:none}.faq-list summary,.feature-link,.inline-link{min-height:40px}.segmented{flex-wrap:wrap}.marketing-header nav button,.marketing-footer button,.table-actions button{min-height:40px}

.followup-history{border:1px solid #dbe3cf;border-radius:10px;padding:12px 15px;margin-bottom:15px;background:#f7f9f2}.followup-history summary{cursor:pointer;font-size:12px;font-weight:700;color:#355334}.followup-history>div{padding:12px 0;border-top:1px solid #e3e9d9;margin-top:10px}.followup-history strong{font-size:11px}.followup-history p{font-size:12px;color:#617451;margin-top:5px;line-height:1.7;overflow-wrap:anywhere}.cell-detail{white-space:normal;overflow-wrap:anywhere}

/* theme.css */
/* Fitness Vault: Carbon Obsidian & Kinetic Volt-Emerald shared design tokens. */
:root {
  color-scheme: dark;
  --bg: #080A0E;
  --bg-elevated: #0C1017;
  --surface: #10151D;
  --surface-raised: #161D28;
  --surface-glass: rgba(16, 21, 29, 0.78);
  --ink: #F4F3EE;
  --muted: #9EA9B8;
  --line: #212B3A;
  --control-line: #38465B;
  --accent: #C8FF2E;
  --accent-hover: #DCFF6B;
  --accent-surface: #152110;
  --accent-line: #496A1C;
  --accent-glow: rgba(200, 255, 46, 0.18);
  --emerald: #34D399;
  --emerald-surface: #0F2920;
  /* Legacy token aliases mapped to Kinetic Volt-Emerald for seamless global compatibility */
  --gold: var(--accent);
  --gold-hover: var(--accent-hover);
  --gold-surface: var(--accent-surface);
  --gold-line: var(--accent-line);
  --success: #6EE7B7;
  --success-surface: #0F2920;
  --warning: #FCD34D;
  --warning-surface: #2B2110;
  --danger: #FCA5A5;
  --danger-surface: #311518;
  --radius: 14px;
  --radius-control: 9px;
  --space-card: 24px;
  --green: var(--accent);
  --deep: var(--bg);
  --navy: var(--bg);
  --lime: var(--accent);
  --font-sans: 'Plus Jakarta Sans', 'Inter', system-ui, -apple-system, sans-serif;
  --font-display: 'Space Grotesk', 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --body: var(--font-sans);
  --heading: var(--font-display);
  color: var(--ink);
  background: var(--bg);
}
body { background: var(--bg); color: var(--ink); }
h1,h2,h3,h4 { color: var(--ink); letter-spacing: -.025em; }
button,input,select,textarea { color: inherit; }
::selection { background: var(--gold); color: var(--bg); }
button:focus-visible,a:focus-visible,summary:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
input:focus,textarea:focus,select:focus { border-color: var(--gold-hover)!important; box-shadow: 0 0 0 3px #C8FF2E30; }
.skip-link { background: var(--gold); color: var(--bg); }
.brand,.brand.inverse,.sidebar-logo .brand { color: var(--ink); font-size: 24px; letter-spacing: .015em; gap: 10px; }
.brand-icon,.brand.inverse .brand-icon,.sidebar-logo .brand-icon { width: 38px; height: 38px; background: transparent; border-radius: 0; box-shadow: none; }
.brand-icon img { width: 100%; height: 100%; display: block; }
.brand-strong { color: var(--gold); }
.brand-wordmark { display: block; width: 210px; height: auto; }
.sidebar-logo .brand { font-size: 21px; gap: 8px; }
.sidebar-logo .brand-icon { width: 34px; height: 34px; }
.sidebar-logo .brand-wordmark { width: 183px; }
.btn { border-radius: var(--radius-control); box-shadow: none; min-height: 44px; transition: background .16s ease,border-color .16s ease; }
.btn:hover:not(:disabled) { transform: none; }
.btn-primary,.btn-lime { background: var(--gold); color: var(--bg); border-color: var(--gold); box-shadow: none; }
.btn-primary:hover:not(:disabled),.btn-lime:hover:not(:disabled) { background: var(--gold-hover); border-color: var(--gold-hover); box-shadow: none; }
.btn-secondary,.btn-dark { background: var(--surface); color: var(--ink); border-color: var(--control-line); }
.btn-secondary:hover:not(:disabled),.btn-dark:hover:not(:disabled) { background: var(--surface-raised); color: var(--gold-hover); border-color: var(--gold); }
.btn-ghost,.text-button,.inline-link,.auth-switch button { color: var(--gold); }
.text-button:hover,.inline-link:hover,.auth-switch button:hover { color: var(--gold-hover); }
.icon-btn { color: var(--muted); background: transparent; border-color: var(--control-line); border-radius: 6px; }
.icon-btn:hover { background: var(--surface-raised); color: var(--ink); }

/* Public site. */
.marketing { background: var(--bg); }
.marketing-header { border-color: var(--line); }
.marketing-header nav button,.header-beta { color: var(--muted); }
.marketing-header nav button:hover { color: var(--gold); }
.header-beta i,.demo-live-dot,.hero-eyebrow i { background: var(--gold); }
.hero { padding-top: 82px; padding-bottom: 84px; gap: 42px; }
.hero-eyebrow,.label-accent,.small-overline,.auth-kicker { color: var(--gold); letter-spacing: .13em; }
.hero h1 { color: var(--ink); font-size: clamp(44px,4.65vw,68px); line-height: 1.05; letter-spacing: -.035em; }
.hero h1 span { color: var(--gold); }
.hero-desc { color: var(--muted); font-size: 17px; max-width: 465px; }
.hero-assurances,.hero-demo-note,.hero-visual-label,.hero-visual-footer,.hero-visual-footer strong { color: var(--muted); }
.hero-assurances svg { color: var(--gold); }
.hero-visual:before { background: var(--gold-surface); border: 1px solid #354923; border-radius: 8px; transform: rotate(2deg); }
.product-demo { background: var(--surface); border-color: #65604F; border-radius: 8px; box-shadow: 0 24px 50px #00000050; }
.tour-chrome,.tour-tabs { background: var(--surface); color: var(--muted); border-color: var(--line); }
.tour-dots i { background: #656B75; }.tour-dots i:first-child { background: var(--gold); }
.tour-sample { background: var(--gold-surface); color: var(--gold-hover); border-radius: 3px; }
.tour-rail { background: #101215; color: var(--ink); border-right: 1px solid var(--line); }
.tour-logo { color: var(--gold); }.tour-logo img { width: 30px; height: 30px; display: block; }
.tour-rail button { color: var(--muted); border-radius: 5px; }
.tour-rail button.active { background: var(--gold); color: var(--bg); }
.tour-rail button:hover { background: var(--surface-raised); color: var(--gold); }
.tour-rail-avatar { background: var(--surface-raised); color: var(--gold); }
.tour-body { background: var(--bg); }
.tour-tabs button { color: var(--muted); }
.tour-tabs button.active { color: var(--gold-hover); border-color: var(--gold); }
.tour-page-title h3,.tour-stats strong,.tour-chart-title strong { color: var(--ink); }
.tour-page-title small,.tour-page-title>svg { color: var(--gold); }
.tour-date,.tour-stats small,.tour-stats strong>span,.tour-stats>div>span,.tour-chart-title,.tour-bars span { color: var(--muted); }
.tour-stats>div,.tour-search,.tour-member-list { background: var(--surface); border-color: var(--line); border-radius: 5px; }
.tour-bars>div { border-color: var(--line); }.tour-bars i { background: #7C6944; border-radius: 2px 2px 0 0; }.tour-bars>div:last-child i { background: var(--gold); }
.tour-note { background: var(--gold-surface); color: var(--gold-hover); border-radius: 5px; }
.tour-search,.tour-member-list small,.tour-transactions span { color: var(--muted); }
.tour-member-list>div,.tour-transactions,.tour-transactions>div { border-color: var(--line); }
.tour-avatar { background: var(--surface-raised); color: var(--gold); border-radius: 5px; }
.tour-transactions strong { color: var(--gold); }
.benefit-strip { border-color: var(--line); }
.benefit-strip strong { color: var(--ink); }.benefit-strip small,.benefit-strip>div>span { color: var(--muted); }
.marketing-section { padding-top: 88px; padding-bottom: 88px; }
.section-heading h2,.faq-section h2 { color: var(--ink); line-height: 1.1; }
.section-heading>p,.faq-section>div>p { color: var(--muted); }
.feature-card,.price-card { background: var(--surface); border-color: var(--line); border-radius: 8px; box-shadow: none; }
.feature-card:hover { border-color: #496A1C; box-shadow: none; }
.feature-members { background: var(--surface); }
.feature-money { background: var(--gold-surface); border-color: #354923; }
.feature-card h3,.feature-money h3,.price-card h3 { color: var(--ink); font-size: 27px; letter-spacing: -.025em; }
.feature-card>p,.feature-money>p,.feature-number,.feature-money .feature-number,.feature-footnote { color: var(--muted); }
.feature-icon.mint,.feature-icon.lavender,.feature-icon.peach,.feature-icon.blue,.feature-members .feature-icon,.feature-money .feature-icon { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }
.feature-money .feature-icon { background: #3C3120; }
.feature-member-preview { background: var(--bg); border-color: var(--line); border-radius: 6px; box-shadow: none; }
.feature-member-preview>div { border-color: var(--line); }.feature-member-preview small { color: var(--muted); }
.feature-money-preview>div>span { color: var(--muted); }.feature-money-preview strong { color: var(--gold-hover); }
.money-mini-bars i { background: #7C6944; }.money-mini-bars i:nth-child(6) { background: var(--gold); }
.feature-link,.feature-money .feature-link { color: var(--gold); border-color: var(--line); }
.feature-link:hover { color: var(--gold-hover); }
.operations-release { background: var(--gold-surface); border-color: #354923; border-radius: 8px; }
.operations-release h2 { color: var(--ink); }.operations-release p { color: var(--muted); }
.steps-zone { background: #101215; border-block: 1px solid var(--line); padding: 76px 0; }
.step-card>div { border-color: #496A1C; color: var(--gold); }
.step-card h3 { color: var(--ink); }.step-card>p,.step-note { color: var(--muted); }
.price-card.highlight { background: var(--gold-surface); border-color: var(--gold); color: var(--ink); box-shadow: none; }
.plan-tag,.highlight .plan-tag { background: var(--surface-raised); color: var(--gold-hover); border-radius: 4px; }
.price-card>p,.highlight>p,.price>span,.highlight .price>span,.price-card ul,.highlight ul,.pricing-note { color: var(--muted); }
.price,.highlight .price { color: var(--ink); }.price-card li svg,.highlight li svg { color: var(--gold); }
.faq-list details { border-color: var(--line); }.faq-list summary { color: var(--ink); }.faq-list details>p { color: var(--muted); }
.faq-list summary>span { color: var(--gold); }
.final-cta { background: var(--gold-surface); color: var(--ink); border-block: 1px solid #354923; border-radius: 0; }
.final-cta h2 { color: var(--ink); }.final-cta p,.cta-art>small { color: var(--muted); }.cta-kicker,.cta-art>svg { color: var(--gold); }
.cta-art>span { border-color: #7C6944; border-radius: 6px; }.cta-art>span:nth-child(2),.cta-art>span:nth-child(3) { border-color: #354923; }
.marketing-footer { border-color: var(--line); color: var(--muted); }
.marketing-footer p,.marketing-footer>span,.marketing-footer button { color: var(--muted); }.marketing-footer button:hover { color: var(--gold); }

/* Workspace structure and shared records. */
.app-shell,.main-column { background: var(--bg); }
.sidebar { background: #11151A; color: var(--ink); border-right: 1px solid var(--line); overflow-y: auto; scrollbar-gutter: stable; }
.sidebar-logo { border-color: var(--line); }
.workspace-switch { background: var(--surface); border-color: var(--line); border-radius: 6px; }
.workspace-logo { background: var(--gold-surface); color: var(--gold); border-radius: 4px; }
.workspace-name strong { color: var(--ink); }.workspace-name small,.workspace-switch>svg { color: var(--muted); }
.sidebar-nav { gap: 10px; padding-top: 0; }.nav-group { display: grid; gap: 4px; }
.nav-caption { color: var(--muted); font-size: 11px; letter-spacing: .1em; padding: 0 12px; margin: 9px 0 7px; }
.nav-item { color: var(--muted); border: 1px solid transparent; border-radius: var(--radius-control); min-height: 44px; padding: 10px 12px; }
.nav-item:hover { background: var(--surface-raised); color: var(--ink); }
.nav-item.active { background: var(--gold-surface); border-color: var(--gold-line); color: var(--ink); font-weight: 700; box-shadow: inset 3px 0 0 var(--gold); }
.nav-item.active svg { color: var(--gold); }.new-dot { background: var(--gold); }
.sidebar-bottom { margin-top: auto; padding-top: 18px; }
.sidebar-trial { background: var(--gold-surface); border-color: #354923; border-radius: 6px; }
.trial-top,.trial-top svg,.sidebar-trial button { color: var(--gold-hover); }.sidebar-trial p { color: var(--muted); }
.progress-track,.trial-big-track { background: #454039; }.progress-track span,.trial-big-track i { background: var(--gold); }
.profile-chip { background: transparent; border-color: var(--line); }
.profile-avatar,.round-avatar { background: var(--surface-raised); color: var(--gold); border: 1px solid var(--control-line); }
.profile-chip strong { color: var(--ink); }.profile-chip small,.profile-chip>svg { color: var(--muted); }
.topbar { background: #11151A; border-color: var(--line); gap: 15px; }
.topbar-left { color: var(--muted); min-width: 0; }.topbar-left>span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 210px; }
.topbar-left strong { color: var(--ink); white-space: nowrap; }
.topbar-right { flex-shrink: 0; gap: 12px; }.topbar-quick { min-height: 34px; padding: 7px 12px; font-size: 11px; }
.page-heading h1 { color: var(--ink); letter-spacing: -.03em; }.page-heading p { color: var(--muted); }
.page-heading-action { flex-wrap: wrap; }.date-chip { background: var(--surface); color: var(--muted); border-color: var(--line); border-radius: 5px; }
.surface-card { background: var(--surface); border-color: var(--line); border-radius: var(--radius); box-shadow: none; min-width: 0; }
.welcome-trial { background: var(--gold-surface); border: 1px solid #354923; border-radius: 6px; }
.trial-bubble { background: #3C3120; color: var(--gold); border-radius: 6px; }
.welcome-trial strong { color: var(--ink); }.welcome-trial p { color: var(--muted); }.welcome-trial button { color: var(--gold-hover); }
.stat-card { border-top: 1px solid var(--line); border-radius: var(--radius); }
.stat-top>span:first-child { color: var(--muted); }.stat-icon { background: var(--gold-surface); color: var(--gold); border-radius: 5px; }
.stat-card>strong { color: var(--ink); letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.stat-change,.stat-change.positive,.stat-change.negative { color: var(--muted); font-size: 11px; line-height: 1.7; }
.card-head h2 { color: var(--ink); font-size: 17px; letter-spacing: -.015em; }.card-head p { color: var(--muted); }
.pill { background: var(--surface-raised); color: var(--muted); border: 1px solid #454A53; border-radius: 4px; }
.pill-success { background: var(--success-surface); color: var(--success); border-color: #395B47; }
.pill-warning { background: var(--warning-surface); color: var(--warning); border-color: #6B542B; }
.pill-danger { background: var(--danger-surface); color: var(--danger); border-color: #784B43; }
.pill-blue { background: #192630; color: #BCD4E4; border-color: #425A6B; }
.chart-key { color: var(--muted); }.dot-green { background: var(--gold); }.dot-blue { background: var(--muted); }
.pure-chart { height: auto; min-height: 0; }.pure-chart svg { width: 100%; height: auto; display: block; }
.chart-caption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; color: var(--muted); line-height: 1.8; margin-top: 9px; }
.attention-ring { background: var(--gold-surface); color: var(--gold); }
.attention-list button { color: var(--ink); border-color: var(--line); }
.attention-list button:hover { background: var(--surface-raised); }
.attention-list strong { color: var(--ink); }.attention-list small { color: var(--muted); }
.attention-list button>svg { color: var(--muted); }
.attention-icon.warning,.attention-icon.blue,.attention-icon.mint { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }
.attention-tip { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }.attention-tip strong { color: var(--ink); }.attention-tip p { color: var(--muted); }
.recent-item { border-color: var(--line); }.activity-bubble { background: var(--surface-raised); color: var(--gold); border-radius: 5px; }
.recent-item strong { color: var(--ink); }.recent-item small { color: var(--muted); }.recent-amount { color: var(--gold); }
.quick-actions button { background: transparent; border-color: var(--line); color: var(--ink); border-radius: 5px; }
.quick-actions button:hover { background: var(--surface-raised); border-color: #496A1C; }.quick-actions span { color: var(--gold); background: var(--gold-surface); border-radius: 4px; }.quick-actions button>svg:last-child { color: var(--muted); }
.disclaimer-inline,.muted-small { color: var(--muted); }
.mini-stats>div { background: var(--surface); border-color: var(--line); border-radius: 6px; }.mini-stats span { color: var(--muted); }.mini-stats strong { color: var(--ink); }
.table-toolbar { border-color: var(--line); }
.search-field { background: var(--bg); border-color: var(--control-line); color: var(--muted); border-radius: 5px; }.search-field input { color: var(--ink); }.search-field input::placeholder { color: var(--muted); }.search-field:focus-within { border-color: var(--gold); box-shadow: 0 0 0 2px #C8FF2E30; }
.segmented { background: var(--bg); border: 1px solid var(--control-line); border-radius: var(--radius-control); max-width: 100%; flex-wrap: wrap; }.segmented button { color: var(--muted); border-radius: 4px; min-height: 44px; }.segmented button.selected { color: var(--ink); background: var(--surface-raised); box-shadow: inset 0 -2px 0 var(--gold); }
.segmented.large button span,.renewal-filters button>span { background: var(--surface-raised); color: var(--muted); border-radius: 3px; }.segmented button.selected>span { background: #0B0D0F; color: var(--gold); }
.data-table { color: var(--ink); }.data-table th { background: #11151A; color: var(--muted); border-color: var(--line); }.data-table td { border-color: var(--line); color: var(--muted); }.data-table tbody tr:hover,.data-table tbody tr:focus-within { background: var(--surface-raised); }.data-table td strong { color: var(--ink); }
.member-avatar { background: var(--gold-surface); color: var(--gold); border: 1px solid #354923; border-radius: 5px; }.member-cell small { color: var(--muted); }
.table-actions button { background: var(--bg); color: var(--muted); border-color: var(--control-line); border-radius: 4px; min-width: 34px; min-height: 34px; }.table-actions button:hover { color: var(--gold); background: var(--gold-surface); border-color: var(--gold); }
.table-bottom { border-color: var(--line); color: var(--muted); gap: 15px; flex-wrap: wrap; }.table-bottom .btn { min-height: 44px; padding: 9px 12px; font-size: 13px; }.strong-money { color: var(--gold)!important; }
.empty-state .empty-icon { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }.empty-state strong { color: var(--ink); }.empty-state p { color: var(--muted); }
.renewal-guide { background: var(--gold-surface); border-color: #354923; color: var(--gold); border-radius: 6px; }.renewal-guide>span { background: #3C3120; border-radius: 5px; }.renewal-guide strong { color: var(--ink); }.renewal-guide p,.followup-select,.cell-detail { color: var(--muted); }
.followup-select select { background: var(--bg); border-color: var(--control-line); color: var(--ink); border-radius: 5px; }
.renewal-table td>strong { color: var(--ink); }
.followup-history { border-color: var(--line); background: var(--surface-raised); border-radius: 5px; }.followup-history summary { color: var(--gold); }.followup-history>div { border-color: var(--line); }.followup-history strong { color: var(--ink); }.followup-history p { color: var(--muted); }
.plan-icon { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }.plan-card h2,.plan-cost { color: var(--ink); }.plan-card>p,.plan-card>div:nth-last-of-type(1) { color: var(--muted); }.plan-separator { background: var(--line); }.info-strip { background: var(--gold-surface); color: var(--gold-hover); border-color: #354923; border-radius: 6px; }
.plan-card { display: flex; flex-direction: column; align-items: flex-start; }
.plan-card-head { display: flex; justify-content: space-between; align-items: center; width: 100%; gap: 12px; margin-bottom: 20px; }
.plan-card-head .plan-icon { margin-bottom: 0; }
.plan-card h2 { overflow-wrap: anywhere; }
.plan-card .plan-separator { width: 100%; }
.plan-member-count { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-bottom: 20px; }
.plan-card .plan-edit-button { width: 100%; margin-top: auto; }
.plan-edit-note { display: flex; align-items: flex-start; gap: 10px; border: 1px solid #496A1C; background: var(--gold-surface); border-radius: 5px; padding: 13px; color: var(--gold); }
.plan-edit-note p { font-size: 12px; line-height: 1.8; color: var(--muted); }
.plan-edit-note svg { margin-top: 3px; }
.checkin-header h2 { color: var(--ink); }.checkin-header p,.checkin-help { color: var(--muted); }.checkin-header>span { color: var(--gold); background: var(--gold-surface); border-radius: 6px; }
.today-count { background: var(--gold-surface); color: var(--ink); border: 1px solid #354923; border-radius: 8px; }.today-count>span,.today-count>div { color: var(--muted); }.today-count>strong { color: var(--gold-hover); }.online-dot { background: var(--gold); }
.attendance-hint h3 { color: var(--ink); }.attendance-hint h3 svg { color: var(--gold); }.attendance-hint p { color: var(--muted); }
.finance-alert { background: var(--surface); border-color: var(--line); color: var(--gold); border-radius: 6px; }.finance-alert strong { color: var(--ink); }.finance-alert p { color: var(--muted); }
.feedback-poster { background: var(--gold-surface); border: 1px solid #354923; border-radius: 8px; }.feedback-poster>svg,.feedback-poster>span { color: var(--gold); }.feedback-poster h2 { color: var(--ink); }.feedback-poster p { color: var(--muted); }
.tips-card h3,.feedback-list p { color: var(--ink); }.tips-card div,.feedback-list small { color: var(--muted); }.tips-card svg { color: var(--gold); }.feedback-list>div { border-color: var(--line); }
.settings-rows>div,.settings-action { border-color: var(--line); }.settings-rows span,.settings-action p { color: var(--muted); }.settings-rows strong,.settings-trial strong,.settings-action strong { color: var(--ink); }.settings-action-icon { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }
.report-period { color: var(--muted); }.report-period input { background: var(--surface); color: var(--ink); border-color: var(--control-line); border-radius: 5px; }

/* Insights use the same report window, sums, and denominators as their CSV export. */
.insights-period { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; color: var(--ink); font-size: 12px; padding: 0 0 22px; }
.insights-period small { color: var(--muted); margin-left: auto; }
.period-tag { background: var(--gold-surface); color: var(--gold-hover); border: 1px solid #496A1C; padding: 5px 8px; border-radius: 4px; font-size: 9px; font-weight: 700; letter-spacing: .06em; }
.insights-main { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); gap: 20px; margin-top: 22px; align-items: start; }
.insights-secondary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 20px; align-items: start; }
.insights-chart-card,.insights-breakdown-card,.quiet-members-card { padding: 24px; }
.insights-chart-card .card-head { align-items: flex-start; flex-wrap: wrap; }
.insights-chart-card .inline-link { font-size: 11px; }
.daily-chart { margin-top: 22px; }.daily-chart svg { width: 100%; height: auto; display: block; }
.insights-values { max-height: 290px; margin-top: 18px; border: 1px solid var(--line); border-radius: 5px; }.insights-values th { position: sticky; top: 0; }
.breakdown-list { display: grid; gap: 20px; padding-top: 8px; }
.breakdown-row>div:first-child { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 12px; }.breakdown-row strong { color: var(--ink); }.breakdown-row>div>span { color: var(--gold); font-weight: 700; font-variant-numeric: tabular-nums; }
.breakdown-track { height: 6px; background: #353A42; border-radius: 2px; overflow: hidden; margin: 9px 0 5px; }.breakdown-track i { display: block; height: 100%; background: var(--gold); }
.breakdown-row small,.card-note { color: var(--muted); font-size: 11px; line-height: 1.8; }.card-note { border-top: 1px solid var(--line); padding-top: 15px; margin-top: 24px; }
.quiet-list { display: grid; }.quiet-list button { display: flex; align-items: center; gap: 12px; padding: 13px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; width: 100%; }
.quiet-list button:hover { background: var(--surface-raised); }.quiet-list button>span:nth-child(2) { display: grid; gap: 3px; min-width: 0; flex: 1; }.quiet-list strong { font-size: 12px; color: var(--ink); }.quiet-list small { color: var(--muted); font-size: 11px; }.quiet-list button>svg { color: var(--gold); }
.metric-definitions { border: 1px solid var(--line); background: var(--surface); border-radius: 6px; margin-top: 20px; }
.metric-definitions summary { display: flex; align-items: center; gap: 10px; padding: 16px 20px; color: var(--gold); font-size: 12px; font-weight: 700; cursor: pointer; list-style: none; }.metric-definitions summary::-webkit-details-marker { display: none; }.metric-definitions summary>svg:last-child { margin-left: auto; }.metric-definitions[open] summary>svg:last-child { transform: rotate(45deg); }
.metric-definitions>div { display: grid; gap: 12px; padding: 0 20px 20px; font-size: 12px; line-height: 1.8; color: var(--muted); }.metric-definitions strong { color: var(--ink); }
.record-health { border: 1px solid var(--line); background: var(--surface); border-radius: 6px; padding: 22px; margin-top: 20px; display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }.record-health>div { flex: 1; min-width: 230px; }.record-health h2 { font-size: 17px; margin: 7px 0; }.record-health p { color: var(--muted); font-size: 12px; line-height: 1.8; }.record-health .health-note { width: 100%; border-top: 1px solid var(--line); padding-top: 15px; }

/* Setup, dialogs, import, and notifications. */
.auth-shell,.auth-panel { background: var(--bg); }
.auth-aside { background: #101215; border-right: 1px solid var(--line); }.auth-aside:after { border-color: #354923; }
.auth-quote h2 { color: var(--ink); text-transform: uppercase; }.auth-quote h2 span { color: var(--gold); }.auth-quote>p,.auth-benefit,.auth-side-foot { color: var(--muted); }.auth-benefit svg { color: var(--gold); }
.auth-spark { background: var(--gold-surface); color: var(--gold); border-radius: 6px; }.auth-quote-rule { background: var(--line); }
.auth-form-area h1 { color: var(--ink); }.auth-lead,.auth-switch,.go-back,.auth-demo-only p { color: var(--muted); }.go-back:hover { color: var(--gold); }.auth-demo-only { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; }
.auth-form label,.modal-form label,.import-file-label { color: var(--ink); }
.auth-form input,.modal-form input,.modal-form select,.modal-form textarea,.checkin-card select,.checkin-card input { background: var(--bg); color: var(--ink); border-color: var(--control-line); border-radius: 5px; }
.auth-form input::placeholder,.modal-form input::placeholder,.modal-form textarea::placeholder { color: var(--muted); }
.modal-form output,.modal-form textarea[readonly] { background: var(--surface-raised); color: var(--ink); border-color: var(--control-line); border-radius: 5px; }
.form-hint,.checkbox-label small,.payment-fields legend { color: var(--muted); }
.modal-form .checkbox-label { background: var(--gold-surface); border-color: #496A1C; border-radius: 5px; }.checkbox-label strong { color: var(--ink); }.modal-form .checkbox-label input { accent-color: var(--gold); }
.payment-fields { border-color: var(--line); border-radius: 6px; }
.form-divider { border-color: var(--line); }.form-divider span { background: var(--surface); color: var(--muted); }
.form-divider:before,.form-divider:after { background: var(--line); }
.form-error { background: #311518; color: #FCA5A5; border-color: #784B43; border-radius: 5px; }
.notice,.notice-amber { background: #2B2110; color: #FCD34D; border-color: #6B542B; border-radius: 6px; }.notice-blue { background: #192630; color: #BCD4E4; border-color: #425A6B; }
.modal-backdrop { background: #000000BB; backdrop-filter: blur(3px); }
.modal { background: var(--surface); border: 1px solid var(--control-line); border-radius: var(--radius); box-shadow: 0 24px 80px #00000070; overscroll-behavior: contain; }
.modal-head h2 { color: var(--ink); }.modal-head p { color: var(--muted); }.modal-head .icon-btn { color: var(--muted); }.modal-actions { border-color: var(--line); }
.qr-card { background: var(--bg); border-color: var(--line); border-radius: 6px; }.qr-card>span,.qr-card>small { color: var(--muted); }.code-display { background: var(--surface-raised); color: var(--gold); border-color: var(--gold); border-radius: 5px; }
.import-file-label input::file-selector-button { background: var(--gold-surface); border-color: #496A1C; color: var(--gold-hover); border-radius: 5px; }
.import-summary>span { background: var(--bg); color: var(--muted); border-color: var(--line); border-radius: 5px; }.import-summary strong { color: var(--ink); }.import-preview-title { color: var(--muted); }.import-preview-title strong { color: var(--ink); }.import-preview { border-color: var(--line); border-radius: 5px; }.import-preview .data-table th { background: #101215; }.import-loading { background: var(--gold-surface); color: var(--gold-hover); border-radius: 5px; }
.toast { background: var(--surface-raised); color: var(--ink); border-color: var(--control-line); border-radius: 6px; box-shadow: 0 12px 30px #00000060; }.toast>svg { color: var(--gold); }.toast button { color: var(--muted); }.toast-error { background: #311518; color: #FCA5A5; }
.preview-alert { background: #2B2110; border-color: #6B542B; color: #FCD34D; }
.boot-loader { background: var(--bg); color: var(--gold); }.boot-loader p { color: var(--muted); }.loader-ring { border-color: var(--line); border-top-color: var(--gold); }
.sidebar .mobile-close,.muted,.topbar-date { color: var(--muted); }
.data-table { font-variant-numeric: tabular-nums; }
/* Both headline lines scale to their text column, including at narrow grid widths. */
.marketing .hero .hero-title { font-size: clamp(27px,3.8vw,61px); line-height: 1.08; letter-spacing: -.035em; overflow-wrap: normal; }
.marketing .hero .hero-title-line { display: block; max-width: 100%; color: var(--ink); }
.marketing .hero .hero-title-accent { color: var(--gold); }
@supports (font-size: 1cqi) {
  .hero-left { container-type: inline-size; }
  .marketing .hero .hero-title { font-size: clamp(27px,9.6cqi,61px); }
}
@media(max-width:1000px) { .sidebar-logo .brand-wordmark { width: 160px; } }
@media(max-width:780px) { .sidebar-logo .brand-wordmark { width: 183px; } }
@media(max-width:545px) { .marketing-header .brand-wordmark { width: 157px; } }

@media (min-width:1450px) { .hero h1 { font-size: 70px; } }
@media (max-width:1190px) { .hero h1 { font-size: 49px; }.hero { gap: 28px; }.insights-main { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); }.topbar-left>span { max-width: 130px; } }
@media (max-width:1000px) { .hero h1 { font-size: 42px; }.insights-main,.insights-secondary { grid-template-columns: 1fr; }.topbar-right { gap: 8px; }.topbar-left>span { display: none; }.sidebar-logo .brand { font-size: 18px; }.sidebar-logo .brand-icon { width: 30px; height: 30px; }.sidebar-nav { gap: 10px; } }
@media (max-width:780px) { .hero { padding-top: 52px; padding-bottom: 42px; }.hero h1 { font-size: clamp(39px,7.6vw,61px); }.hero-visual:before { inset: 12px -8px -12px 8px; }.marketing-section { padding-top: 62px; padding-bottom: 62px; }.marketing-header .brand { font-size: 22px; }.sidebar-logo .brand { font-size: 21px; }.sidebar-logo .brand-icon { width: 34px; height: 34px; }.sidebar { box-shadow: 10px 0 40px #00000080; }.sidebar-scrim.visible { background: #00000099; }.topbar-quick { min-height: 34px; padding: 7px 10px; }.topbar-right .pill { font-size: 9px; }.insights-period small { width: 100%; margin-left: 0; }.insights-chart-card,.insights-breakdown-card,.quiet-members-card { padding: 20px; } }
@media (max-width:545px) { .marketing-header .brand { font-size: 18px; gap: 7px; }.marketing-header .brand-icon { width: 31px; height: 31px; }.hero h1 { font-size: clamp(35px,9vw,48px); }.hero-desc { font-size: 15px; }.tour-logo img { width: 23px; height: 23px; }.feature-card h3,.feature-members h3 { font-size: 24px; }.topbar-right .pill { display: none; }.topbar-quick { font-size: 10px; gap: 4px; }.stat-change { font-size: 10px; }.stat-card>strong,.finance-stats .stat-card>strong { font-size: 24px; }.chart-caption { font-size: 10px; }.page-heading-action .report-period { flex: 1 1 100%; justify-content: space-between; }.segmented { align-self: stretch; }.segmented button { flex: 1; white-space: nowrap; padding: 8px 9px; font-size: 11px; }.table-actions { gap: 5px; }.record-health { padding: 18px; }.record-health .btn { width: 100%; }.insights-main,.insights-secondary { gap: 14px; }.insights-chart-card,.insights-breakdown-card,.quiet-members-card { padding: 16px; }.metric-definitions summary { padding: 15px; font-size: 11px; }.metric-definitions>div { padding: 0 15px 15px; }.insights-period { gap: 8px; font-size: 11px; } }
@media print { :root { color-scheme: light; --ink: #0B0D0F; --muted: #454A53; --surface: #FFFFFF; --surface-raised: #FFFFFF; --bg: #FFFFFF; --line: #AEB3BA; --gold: #72541D; --gold-surface: #FFFFFF; } body { background: white; color: #0B0D0F; }.metric-definitions,.record-health { break-inside: avoid; }.topbar-quick,.chart-caption .inline-link,.metric-definitions summary>svg { display: none!important; }.surface-card,.metric-definitions,.record-health { box-shadow: none; }.brand { color: #0B0D0F; } }

/* features.css */
/* Membership pause and acquisition workflows share the established black-and-gold tokens. */
.feature-guide { display: flex; align-items: flex-start; gap: 12px; background: var(--gold-surface); border: 1px solid var(--line); padding: 17px 20px; border-radius: 6px; margin: 20px 0; color: var(--muted); font-size: 12px; line-height: 1.75; }
.feature-guide > svg { flex: 0 0 auto; color: var(--gold); margin-top: 2px; }
.feature-guide p { margin: 0; }
.feature-guide strong { color: var(--ink); }
.freeze-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.growth-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 20px 0; }
.growth-card { min-width: 0; padding: 22px; margin-bottom: 20px; }
.growth-grid .growth-card { margin-bottom: 0; }
.growth-card .card-head { flex-wrap: wrap; }
.growth-actions { display: flex; gap: 8px; justify-content: flex-end; }
.growth-actions .btn { min-height: 36px; padding: 8px 12px; font-size: 11px; }
.history-note { min-width: 190px; max-width: 320px; white-space: normal; overflow-wrap: anywhere; }
.history-note .cell-detail { line-height: 1.65; margin-top: 7px; }
.acquisition-fields { display: grid; gap: 16px; border: 1px solid var(--line); border-radius: 6px; padding: 18px; margin: 5px 0 0; min-width: 0; }
.acquisition-fields legend { padding: 0 6px; color: var(--gold); font-size: 12px; font-weight: 700; }
.acquisition-fields label[hidden] { display: none; }
.freeze-preview { background: var(--surface-raised); border: 1px solid var(--line); border-radius: 6px; padding: 16px; display: grid; gap: 14px; }
.freeze-preview > div { display: flex; gap: 14px; flex-wrap: wrap; justify-content: space-between; font-size: 12px; }
.freeze-preview span,.freeze-preview p { color: var(--muted); }
.freeze-preview output { color: var(--gold-hover); font-weight: 700; }
.freeze-preview p { margin: 0; font-size: 11px; line-height: 1.6; }
.sidebar-nav { overflow-y: auto; min-height: 0; flex: 1 1 auto; }
.mini-stats { flex-wrap: wrap; }
@media (max-width:1000px) { .growth-grid { grid-template-columns: 1fr; } }
@media (max-width:780px) { .freeze-stats { grid-template-columns: 1fr; gap: 12px; }.growth-card { padding: 18px; }.feature-guide { padding: 16px; }.growth-grid { gap: 16px; }.table-toolbar { flex-wrap: wrap; }.table-toolbar .segmented { width: 100%; }.acquisition-fields { padding: 14px; } }
@media print { .growth-actions,.freeze-stats + .feature-guide > svg { display: none; }.feature-guide,.freeze-preview { background: white; } }

/* ai.css */
/* Read-only AI assistance, using the existing black-and-gold brand. */
.ai-insights-card { margin: 22px 0; padding: 22px; border-color: var(--control-line); }
.ai-insights-card .card-head { flex-wrap: wrap; gap: 16px; }
.ai-insights-card h2 { margin-top: 7px; }
.ai-connection { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; color: var(--muted); font-size: 11px; margin: 12px 0; }
.ai-connection strong { color: var(--ink); }
.ai-status-dot { width: 7px; height: 7px; background: var(--gold); border-radius: 50%; flex-shrink: 0; }
.ai-setup { background: var(--surface-raised); border: 1px solid var(--line); padding: 15px; border-radius: 6px; margin: 12px 0; font-size: 12px; }
.ai-setup > strong { color: var(--gold-hover); }
.ai-setup p { color: var(--muted); line-height: 1.65; margin: 9px 0; }
.ai-setup details { margin: 12px 0; }.ai-setup summary { color: var(--ink); cursor: pointer; }.ai-setup code { color: var(--gold); font-size: 11px; overflow-wrap: anywhere; }
.ai-setup .btn { min-height: 36px; padding: 8px 12px; font-size: 11px; }
.ai-verified { display: flex; flex-wrap: wrap; gap: 18px; padding: 14px 0; border-top: 1px solid var(--line); font-size: 11px; color: var(--muted); }
.ai-verified span { display: flex; gap: 8px; }.ai-verified strong { color: var(--ink); }
.ai-answer { border-left: 2px solid var(--gold); padding: 15px 18px; background: var(--surface-raised); }
.ai-answer.stale { border-color: var(--control-line); }.ai-answer-meta { color: var(--gold-hover); font-size: 10px; line-height: 1.65; }.ai-answer.stale .ai-answer-meta { color: var(--muted); }
.ai-answer p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.85; font-size: 13px; margin: 12px 0 0; }
.ai-note,.ai-loading { color: var(--muted); font-size: 11px; line-height: 1.65; margin-top: 16px; }
.ai-launcher { position: fixed; right: 22px; bottom: 22px; z-index: 20; border: 1px solid var(--gold); background: var(--gold); color: var(--bg); box-shadow: 0 6px 24px #0007; border-radius: 6px; min-height: 46px; padding: 12px 18px; font: inherit; font-size: 12px; font-weight: 800; }
.ai-launcher:hover { background: var(--gold-hover); }
.ai-chat-panel { position: fixed; right: 22px; bottom: 22px; width: min(420px,calc(100vw - 44px)); height: min(720px,calc(100dvh - 44px)); display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--control-line); border-radius: 9px; z-index: 22; box-shadow: 0 12px 60px #000a; overflow: hidden; }
.ai-chat-head { display: flex; justify-content: space-between; gap: 14px; padding: 18px; background: var(--surface-raised); border-bottom: 1px solid var(--line); flex: 0 0 auto; }.ai-chat-head h2 { margin: 5px 0; font-size: 21px; }.ai-chat-head small { color: var(--muted); font-size: 10px; }.ai-chat-head .icon-btn { min-width: 36px; height: 36px; font-size: 23px; }
.ai-chat-context { padding: 0 16px 10px; border-bottom: 1px solid var(--line); flex: 0 0 auto; font-size: 10px; }.ai-chat-context > p { color: var(--muted); line-height: 1.65; margin: 8px 0 0; }.ai-chat-context .ai-setup { padding: 10px; margin-bottom: 0; font-size: 11px; }.ai-chat-context .ai-connection { margin: 10px 0 0; }
.ai-chat-messages { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px; overscroll-behavior: contain; }.ai-message { padding: 12px 14px; margin-bottom: 12px; background: var(--surface-raised); border: 1px solid var(--line); border-radius: 6px; }.ai-message.user { margin-left: 28px; background: var(--gold-surface); border-color: var(--gold); }.ai-message.assistant { margin-right: 12px; }.ai-message strong { color: var(--gold-hover); font-size: 10px; }.ai-message p { font-size: 12px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; margin: 8px 0 0; }.ai-message small { color: var(--muted); display: block; font-size: 9px; margin-top: 9px; }
.ai-welcome { display: grid; gap: 10px; font-size: 12px; }.ai-welcome p { color: var(--muted); line-height: 1.65; }.ai-welcome button { text-align: left; color: var(--gold-hover); background: var(--surface-raised); border: 1px solid var(--control-line); border-radius: 5px; min-height: 42px; padding: 10px 12px; font: inherit; font-size: 11px; }
.ai-chat-error { background: var(--surface-raised); padding: 12px; border: 1px solid #e9978d; border-radius: 5px; color: #e9978d; font-size: 12px; line-height: 1.6; }.ai-chat-error p { margin: 0 0 8px; }
.ai-chat-form { padding: 12px 16px; border-top: 1px solid var(--line); flex: 0 0 auto; }.ai-chat-form textarea { width: 100%; resize: vertical; max-height: 120px; min-height: 54px; padding: 10px 12px; background: var(--bg); color: var(--ink); border: 1px solid var(--control-line); border-radius: 5px; font: inherit; font-size: 12px; }.ai-chat-form > div { display: flex; justify-content: space-between; align-items: center; margin-top: 9px; }.ai-chat-form .btn { min-height: 36px; padding: 8px 15px; font-size: 11px; }
.ai-chat-foot { padding: 0 16px 12px; color: var(--muted); font-size: 10px; flex: 0 0 auto; }.ai-chat-foot .inline-link { font-size: 10px; }
.modal-open .ai-launcher,.modal-open .ai-chat-panel { visibility: hidden; }
@media (max-width:545px) { .ai-insights-card { padding: 16px; }.ai-verified { gap: 10px; }.ai-launcher { right: 14px; bottom: 14px; }.ai-chat-panel { right: 10px; bottom: 10px; width: calc(100vw - 20px); height: min(700px,calc(100dvh - 20px)); }.ai-chat-head { padding: 14px; }.ai-chat-context > p { font-size: 9px; }.ai-answer { padding: 12px; } }
@media print { .ai-launcher,.ai-chat-panel { display: none; }.ai-insights-card .btn,.ai-setup { display: none; }.ai-answer { break-inside: avoid; } }

.ai-chat-form .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* expansion.css */
.cloud-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border:1px solid var(--border,#34383b);background:#141719;color:#c7c9c8;border-radius:10px;margin-bottom:20px;font-size:12px}.cloud-bar strong{color:#e8c678}.cloud-bar .cloud-save-state{margin-left:auto}.cloud-bar select{max-width:230px;min-height:36px;background:#202426;border:1px solid #54595a;color:#eee;border-radius:6px;padding:6px 10px}.cloud-bar .inline-link{font-size:12px}.cloud-connecting{padding:12px 0;color:#aaa;font-size:12px}
.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.setup-step{padding:25px;position:relative}.setup-step .step-index{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid #685b3b;border-radius:50%;color:#e8c678;margin-bottom:18px}.setup-step.done .step-index{background:#283b30;color:#bce3c6;border-color:#476750}.setup-step h2{font-size:19px;margin-bottom:10px}.setup-step p{font-size:13px;color:#afb4b1;line-height:1.7;margin-bottom:18px}.setup-step .btn{margin:5px 7px 0 0}.setup-progress{padding:22px;margin-bottom:20px}.setup-progress>div{display:flex;justify-content:space-between;gap:15px;margin-bottom:12px}.setup-progress .progress-track{background:#34383b}.setup-progress .progress-track span{background:#e3bf70;display:block;height:6px;transition:width .2s}
.access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.access-card{padding:26px;display:flex;flex-direction:column;min-width:0}.access-card.selected{border-color:#cdaa60}.access-card h2{font-size:22px;margin:15px 0}.access-card .access-price{font-family:var(--heading);font-size:34px;color:#e3bf70;margin-bottom:19px}.access-card .access-price small{font-family:var(--body);font-size:12px;color:#a2aaa6;margin-left:5px}.access-card ul{list-style:none;display:grid;gap:12px;margin:0 0 25px;padding:0;flex:1;font-size:13px;color:#c5cac7}.access-card .btn{width:100%}.access-note{color:#a6aeaa;font-size:12px;line-height:1.8;margin:17px 0 25px}.access-summary{padding:24px;margin-bottom:20px}.access-summary h2{font-size:20px;margin-bottom:10px}.access-summary p{color:#b6bfba;font-size:13px;line-height:1.8}.admin-plan-row{display:grid;grid-template-columns:1fr 140px 95px auto;gap:12px;align-items:end;margin-top:17px}.admin-plan-row label{font-size:12px}.admin-plan-row input,.admin-plan-row select{width:100%;padding:10px;margin-top:7px;background:#202426;border:1px solid #585f5b;border-radius:7px;color:#eee}.admin-plan-row strong{display:block}.admin-plan-row small{color:#adb5b1}
.retail-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:20px;align-items:start}.retail-layout .surface-card,.retail-editor,.recovery-panel,.team-panel{padding:24px}.retail-editor{margin-bottom:20px}.retail-cart{display:grid;gap:10px;margin:19px 0}.retail-cart-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #343a36;font-size:13px}.retail-cart-row strong{display:block}.retail-cart-row small{color:#a5afaa}.retail-cart-total{display:flex;justify-content:space-between;margin:18px 0;font-size:20px}.retail-cart-total strong{color:#e3bf70}.retail-stock.low{color:#e1ad69}.retail-archive{opacity:.65}.retail-header-actions{display:flex;gap:8px;flex-wrap:wrap}.retail-subheading{margin:30px 0 15px;font-size:21px}.retail-receipt{max-width:540px;margin:24px auto;padding:30px;background:#181c1a;border:1px solid #575f59;border-radius:12px}.retail-receipt h2{margin:10px 0}.retail-receipt dl{display:grid;grid-template-columns:1fr auto;gap:10px;font-size:13px;margin-top:20px}.retail-receipt dt{color:#b7bfbb}.retail-receipt dd{margin:0;text-align:right}.retail-receipt .receipt-total{font-size:21px;color:#e3bf70}.retail-receipt table{width:100%;margin-top:18px;font-size:12px}.retail-receipt th,.retail-receipt td{text-align:left;padding:11px 6px;border-bottom:1px solid #454b46}.retail-receipt th:last-child,.retail-receipt td:last-child{text-align:right}.retail-receipt p{font-size:12px;color:#adb8b0;line-height:1.7}.retail-receipt .receipt-actions{display:flex;gap:12px;margin-top:20px}
.history-list{display:grid;gap:0}.history-row{padding:20px 0;border-bottom:1px solid #373d38;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.history-row strong{display:block;font-size:14px}.history-row small{display:block;color:#aeb9b2;font-size:12px;margin-top:7px;line-height:1.7}.history-row .btn{flex:none}.recovery-preview{padding:22px;border:1px solid #8a723d;background:#231f16;border-radius:9px;margin:20px 0}.recovery-preview h3{font-size:18px;margin-bottom:10px}.recovery-preview p{font-size:13px;color:#d0c6af;line-height:1.8}.recovery-preview ul{font-size:13px;line-height:1.9;margin:15px 0}.recovery-preview .btn{margin-right:10px}.history-empty{color:#b7c0ba;line-height:1.8;padding:20px 0}.invite-code{padding:18px;background:#24271d;border:1px solid #727c47;border-radius:8px;margin:18px 0;overflow-wrap:anywhere}.invite-code code{display:block;font-size:15px;margin:13px 0;color:#e8d18b}.invite-code p{font-size:12px;line-height:1.8;color:#c2c9aa}.team-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid #333a35}.team-row strong{font-size:14px;display:block}.team-row small{font-size:12px;color:#abb7af;display:block;margin-top:6px}.team-row .team-actions{display:flex;gap:8px;flex-wrap:wrap}.team-row select{background:#202923;color:#ddd;border:1px solid #596b5c;border-radius:6px;padding:8px}.access-lock{padding:30px;border:1px solid #71613d;border-radius:12px;background:#1c1b17}.access-lock h2{font-size:23px;margin-bottom:14px}.access-lock p{font-size:14px;color:#b8b5a8;line-height:1.8;margin-bottom:20px}.setup-mini{padding:18px 20px;margin-bottom:20px;border:1px solid #7c6538;background:#201d16;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:20px}.setup-mini strong{font-size:14px;display:block}.setup-mini small{font-size:12px;color:#c1b598;display:block;margin-top:7px}
@media(max-width:1000px){.access-grid{grid-template-columns:1fr}.retail-layout{grid-template-columns:1fr}.admin-plan-row{grid-template-columns:1fr 1fr}.admin-plan-row>div:first-child{grid-column:1/-1}.admin-plan-row button{grid-column:1/-1}.access-card ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.setup-grid{grid-template-columns:1fr}.setup-step,.retail-layout .surface-card,.retail-editor,.recovery-panel,.team-panel{padding:20px}.cloud-bar{gap:10px;padding:12px}.cloud-bar .cloud-save-state{margin-left:0}.cloud-bar select{width:100%;max-width:none}.history-row,.team-row,.setup-mini{flex-direction:column;align-items:stretch}.history-row .btn{align-self:flex-start}.retail-receipt{padding:22px}.retail-header-actions .btn{flex:1}.access-card ul{grid-template-columns:1fr}.history-row small{font-size:11px}.team-row .team-actions{width:100%}}
@media print{body.printing-receipt #app>:not(.app-shell){display:none!important}body.printing-receipt .app-shell,body.printing-receipt .main-column,body.printing-receipt .dashboard-content{display:block!important;background:white!important;padding:0!important;margin:0!important}body.printing-receipt .sidebar,body.printing-receipt .topbar,body.printing-receipt .dashboard-content>*:not(.retail-receipt){display:none!important}body.printing-receipt .retail-receipt{display:block!important;color:black;background:white;border:0;max-width:none;margin:0}body.printing-receipt .retail-receipt *{color:black!important}body.printing-receipt .receipt-actions{display:none!important}}

/* Compact role explanations and clear keyboard focus on operational controls. */
.staff-role-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border,#343a36)}
.staff-role-guide strong{display:block;font-size:13px;color:var(--text,#e9eeeb)}
.staff-role-guide p{font-size:12px;line-height:1.7;color:var(--muted,#aeb9b2);margin:7px 0 0}
.setup-step,.retail-layout>.surface-card,.team-row>div,.history-row>div{min-width:0}
.setup-step .btn{white-space:normal;text-align:center}
.retail-cart-row>div{min-width:0}.retail-cart-row strong{overflow-wrap:anywhere}.retail-cart-row>div:last-child{text-align:right;flex-shrink:0}
.retail-layout .form-hint[role="status"]{min-height:20px}
@media(max-width:650px){.staff-role-guide{grid-template-columns:1fr;gap:12px}.retail-cart-row{flex-wrap:wrap}.retail-cart-row>div:last-child{margin-left:auto}.recovery-preview .btn{margin-bottom:8px}}

/* usability.css */
/* Shared workspace usability: clear type, comfortable controls and task hierarchy. */
html { scroll-padding-top: 24px; }
input, select, textarea { font-size: 16px; max-width: 100%; }
.modal-form input, .modal-form select, .modal-form textarea, .auth-form input { font-size: 16px; }
input, select { min-height: 44px; }
.modal-form label, .auth-form label { font-size: 14px; line-height: 1.5; }
.page-heading p, .card-head p, .form-hint, .checkin-help, .access-note,
.settings-action p, .cloud-bar, .setup-mini small, .help-task p { font-size: 14px; line-height: 1.6; }
.page-heading p { max-width: 64ch; }
.page-heading h1 { font-size: clamp(26px,2.4vw,32px); line-height: 1.2; margin: 9px 0 12px; }
.small-overline { font-size: 11px; letter-spacing: .1em; }
.data-table td { font-size: 14px; padding: 16px 20px; vertical-align: middle; }
.data-table td strong { font-size: 14px; }
.data-table th, .data-table small, .cell-detail, .table-bottom { font-size: 12px; line-height: 1.5; }
.data-table th { padding: 15px 20px; letter-spacing: .02em; }
.table-actions button { width: 44px; height: 44px; flex-shrink: 0; }
.table-actions .member-assign-button { width: auto; padding: 0 10px; gap: 5px; display: inline-flex; border: 1px solid var(--control-line); color: var(--gold); }
.member-assign-button span { font-size: 13px; }
.btn { white-space: normal; text-align: center; }
.icon-btn, .round-avatar { min-width: 44px; min-height: 44px; }
.text-button, .inline-link { min-height: 44px; }
.search-field { height: 48px; min-height: 48px; max-width: 420px; }
.search-field input { min-height: 44px; height: 44px; font-size: 16px; background: transparent; }
.modal-head p, .auth-lead, .auth-switch, .checkin-header p,
.empty-state p, .plan-card > p, .settings-rows > div,
.settings-rows strong, .settings-action strong { font-size: 14px; line-height: 1.6; }
.empty-state { padding: 48px 24px; gap: 14px; }
.empty-state strong { font-size: 18px; }
.empty-state p { max-width: 44ch; }
.modal-actions { flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--line); padding-top: 20px; margin-top: 8px; }
.form-row > label, .modal-form label, .settings-action > div { min-width: 0; }
.dashboard-content { max-width: 1440px; padding: 32px; }
.overview-layout, .overview-layout.lower { gap: 24px; margin-top: 24px; align-items: start; }
.overview-priority { grid-template-columns: minmax(290px,1fr) minmax(0,1.65fr); }
.chart-card, .attention-card, .recent-card, .quick-card { padding: var(--space-card); }
.attention-clear { display: flex; align-items: flex-start; gap: 12px; margin-top: 22px; padding: 18px; background: var(--surface-raised); border: 1px solid var(--line); border-radius: var(--radius-control); }
.attention-clear > svg { color: var(--success); margin-top: 2px; }
.attention-clear strong { display: block; font-size: 15px; }
.attention-clear p { font-size: 14px; line-height: 1.6; margin-top: 5px; color: var(--muted); }
.dashboard-setup { margin-bottom: 24px; }
.overview-primary { gap: 12px; }
.overview-primary { display: flex; flex-wrap: wrap; align-items: center; margin: 24px 0; }
.overview-layout > .surface-card, .overview-layout > div { min-width: 0; }
.topbar-help { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.stat-card { padding: 20px; gap: 12px; }
.stat-top > span:first-child, .mini-stats span { font-size: 13px; line-height: 1.5; }
.stat-change { font-size: 12px; line-height: 1.5; }
.settings-rows > div { padding: 16px 0; }
.workspace-name strong, .profile-chip strong { font-size: 13px; }
.workspace-name small, .profile-chip small { font-size: 12px; }
.workspace-switch { margin-bottom: 24px; }
.sidebar-logo { padding-bottom: 22px; }
.trial-top, .sidebar-trial p { font-size: 12px; line-height: 1.5; }
.sidebar-trial button { min-height: 44px; margin-top: 6px; font-size: 12px; }
.sidebar-access { background: var(--surface); border-color: var(--line); }
.workspace-mode-label { display: grid; gap: 4px; margin-top: 5px; font-size: 12px; color: var(--muted); line-height: 1.4; }
.workspace-mode-label strong { font-weight: 400; color: var(--muted); }
.topbar-help { min-height: 44px; color: var(--muted); }
.topbar-help:hover { color: var(--gold-hover); }
.table-toolbar { padding: 18px 20px; gap: 16px; flex-wrap: wrap; }
.member-filter-control { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); }
.member-filter-control select { min-height: 44px; background: var(--bg); color: var(--ink); border: 1px solid var(--control-line); border-radius: var(--radius-control); padding: 9px 34px 9px 12px; font-size: 14px; }
.member-tools { min-width: 44px; color: var(--muted); }
.member-tools summary { display: flex; justify-content: center; align-items: center; gap: 6px; padding: 10px 12px; min-height: 44px; border: 1px solid var(--control-line); border-radius: var(--radius-control); background: var(--bg); cursor: pointer; list-style: none; font-size: 13px; font-weight: 600; }
.member-tools summary::-webkit-details-marker { display: none; }
.member-tools summary:hover, .member-tools[open] summary { color: var(--gold-hover); border-color: var(--gold-line); background: var(--gold-surface); }
.member-tools > div { display: grid; gap: 4px; margin-top: 6px; padding: 5px; border: 1px solid var(--line); border-radius: var(--radius-control); background: var(--bg); }
.table-actions .member-tools button { width: 100%; min-width: 132px; padding: 10px; display: flex; justify-content: flex-start; align-items: center; gap: 8px; border: 0; background: transparent; font-size: 13px; }
.table-actions:has(.member-tools[open]) { align-items: flex-start; }
.navigation-open { overflow: hidden; }
.nav-item { min-height: 44px; font-size: 14px; }
.topbar-quick { min-height: 44px; font-size: 13px; }
.nav-daily { margin-bottom: 8px; }
.nav-more { border-top: 1px solid var(--line); padding: 8px 0 2px; }
.nav-more summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; min-height: 44px; padding: 8px 14px; color: var(--muted); font-size: 13px; font-weight: 600; }
.nav-more summary::-webkit-details-marker { display: none; }
.nav-more summary:hover { color: var(--gold-hover); background: var(--surface); border-radius: var(--radius-control); }
.nav-more > div { display: grid; gap: 4px; padding-top: 4px; }
.nav-more summary span { font-size: 20px; color: var(--gold); }
.nav-more[open] summary span { transform: rotate(45deg); }
.nav-support { border-top: 1px solid var(--line); padding-top: 10px; margin-top: 8px; }
.nav-plan-label { margin-left: auto; border: 1px solid var(--gold-line); border-radius: 4px; padding: 2px 5px; color: var(--gold); font-size: 10px; line-height: 1.4; }
.cloud-save-state.cloud-error { color: #ffb4ae; font-size: 13px; flex-basis: 100%; }
.cloud-bar:has(.cloud-error) { border-color: #ad6661; }
.gym-image { position: relative; overflow: hidden; margin: 0 0 -18px; aspect-ratio: 2.55; border: 1px solid var(--line); border-radius: 8px 8px 0 0; background: var(--surface); }
.gym-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; display: block; }
.gym-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 15%,#0b0d0fea 100%); }
.gym-image figcaption { position: absolute; z-index: 1; inset: auto 18px 31px; font-size: 14px; font-weight: 600; color: var(--ink); }
.gym-image figcaption span { display: block; margin-top: 3px; font-size: 10px; font-weight: 400; color: var(--muted); }
#product-tour { position: relative; }
.hero-visual::before { inset: 12px -10px -14px 10px; }
.header-signin { color: var(--gold); font-size: 14px; min-height: 44px; padding: 6px 12px; white-space: nowrap; }
.header-signin:hover { color: var(--gold-hover); }
.auth-connection, .auth-existing, .auth-import { margin: 20px 0; padding: 20px; border: 1px solid var(--line); background: var(--surface); border-radius: 8px; }
.auth-existing h2 { margin: 15px 0 8px; overflow-wrap: anywhere; }
.auth-existing p, .auth-connection p, .auth-import p, .auth-join p { margin: 8px 0 16px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.auth-join { margin-top: 30px; border-top: 1px solid var(--line); padding-top: 24px; }
.auth-join h2 { font-size: 22px; }
.auth-join .auth-form { margin-top: 16px; }
.auth-retry { margin: 0 0 20px; }
.auth-form-area { padding-top: 40px; padding-bottom: 40px; }
.auth-aside { position: relative; background: linear-gradient(155deg,#14171bf2,#0b0d0f); }
.member-optional { margin: 2px 0; border: 1px solid var(--line); border-radius: 6px; padding: 0 14px; }
.member-optional summary, .checkin-id-option summary { cursor: pointer; padding: 13px 0; font-size: 14px; color: var(--gold); }
.member-optional .acquisition-fields { padding: 12px 0; border: 0; background: transparent; margin-bottom: 0; }
.member-optional fieldset:disabled { opacity: .65; }
.member-next { padding: 12px; border: 1px solid #354923; border-radius: 6px; background: var(--gold-surface); }
.member-next input { width: 18px; height: 18px; min-height: 18px; flex-shrink: 0; }
.checkin-id-option { padding: 0 12px; border: 1px solid var(--line); border-radius: 6px; }
.checkin-id-option label { padding-bottom: 14px; }
.checkin-access { padding: 15px; border: 1px solid var(--line); border-left: 3px solid var(--gold); border-radius: 6px; background: var(--bg); }
.checkin-access.ready { background: var(--gold-surface); border-color: #496A1C; }
.checkin-access p { font-size: 14px; color: var(--muted); line-height: 1.6; margin: 5px 0 0; }
.checkin-access strong { font-size: 15px; }
.checkin-access .inline-link { margin-top: 12px; min-height: 32px; }
.help-start { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; border-color: #496A1C; background: var(--gold-surface); }
.help-start h2 { font-size: 23px; margin: 9px 0; }
.help-start p { font-size: 14px; line-height: 1.6; color: var(--muted); }
.help-start .btn { flex-shrink: 0; }
.help-task-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
.help-task { padding: 22px; }
.help-step { color: var(--gold); display: flex; align-items: center; justify-content: space-between; font-size: 12px; }
.help-task h2 { margin: 20px 0 8px; font-size: 18px; }
.help-task p { min-height: 64px; color: var(--muted); }
.help-task .inline-link { margin-top: 16px; min-height: 36px; }
.help-layout { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(240px,1fr); gap: 24px; margin-bottom: 24px; }
.help-library { padding: 26px; }
.help-search-label { display: grid; gap: 8px; margin-bottom: 20px; font-size: 13px; color: var(--muted); }
.help-search-label input { padding: 11px 13px; width: 100%; border: 1px solid var(--control-line); border-radius: 6px; background: var(--bg); color: var(--ink); }
.help-question { border-top: 1px solid var(--line); }
.help-question summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 18px 0; font-size: 14px; font-weight: 600; line-height: 1.6; }
.help-question summary::-webkit-details-marker { display: none; }
.help-question summary svg { flex-shrink: 0; margin-top: 4px; color: var(--gold); }
.help-question[open] summary svg { transform: rotate(45deg); }
.help-question p, .help-no-results { margin: 0 0 20px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.help-side { display: grid; gap: 16px; align-content: start; }
.help-panel { padding: 24px; }
.help-panel h2 { font-size: 18px; }
.help-panel p { margin: 10px 0 18px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.learning-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: 32px; align-items: center; padding: 28px; margin-bottom: 24px; }
.learning-panel h2 { font-size: 24px; margin: 12px 0; }
.learning-panel p { color: var(--muted); font-size: 14px; line-height: 1.7; margin-bottom: 20px; }
.learning-video iframe, .video-placeholder { aspect-ratio: 16/9; width: 100%; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); }
.video-placeholder { display: flex; flex-direction: column; gap: 10px; justify-content: center; align-items: center; padding: 24px; text-align: center; }
.video-placeholder svg { color: var(--gold); }
.video-placeholder strong { font-size: 18px; }
.video-placeholder span, .video-placeholder small { color: var(--muted); font-size: 12px; }
.video-placeholder small { line-height: 1.5; }
.video-fallback { display: inline-flex; min-height: 44px; font-size: 13px; }
.connection-summary { padding: 26px; }
.connection-summary h2 { font-size: 20px; margin-bottom: 14px; }
.connection-summary p { margin: 8px 0; color: var(--muted); font-size: 14px; line-height: 1.7; }
.connection-summary strong { color: var(--ink); }
.settings-action { gap: 20px; }
.settings-rows strong { overflow-wrap: anywhere; text-align: right; }
.cloud-bar select { max-width: min(340px,75vw); }
.cloud-bar .inline-link, .settings-action .btn { min-height: 44px; }
@media (max-width: 1100px) {
 .help-task-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .help-task p { min-height: 44px; }
 .help-start h2 { font-size: 20px; }
}
@media (max-width: 760px) {
 .help-start, .settings-action { flex-direction: column; align-items: stretch; }
 .help-start .btn { align-self: flex-start; }
 .help-layout, .learning-panel { grid-template-columns: minmax(0,1fr); gap: 20px; }
 .help-task-grid { gap: 12px; }
 .help-task { padding: 18px; }
 .help-task p { min-height: 0; }
 .hero-visual { max-width: 620px; width: 100%; }
 .gym-image { aspect-ratio: 2.75; }
 .learning-panel, .help-library, .help-panel, .connection-summary { padding: 22px; }
 .auth-form-area { padding-top: 24px; padding-bottom: 24px; }
 .settings-action .btn { align-self: flex-start; }
}
@media (max-width: 420px) {
 .help-task-grid { grid-template-columns: minmax(0,1fr); }
 .help-task h2 { margin-top: 12px; }
 .help-start h2 { font-size: 18px; }
 .gym-image figcaption { font-size: 12px; inset-inline: 12px; }
 .video-placeholder { padding: 18px; aspect-ratio: auto; min-height: 240px; }
}
@media (max-width: 545px) {
 .dashboard-content { padding: 20px 18px; }
 .overview-primary { flex-direction: column; align-items: stretch; }
 .overview-primary .btn { width: 100%; }
 .topbar-help > span { display: none; }
 .topbar-help { min-width: 44px; }
 .table-toolbar .search-field { width: 100%; max-width: none; }
 .member-filter-control { width: 100%; justify-content: space-between; }
 .member-filter-control select { flex: 1; min-width: 0; }
 .marketing-nav-actions .header-workspace { display: none; }
 .marketing-header { gap: 12px; }
 .marketing-nav-actions { gap: 0; }
}
@media (min-width: 546px) and (max-width: 1000px) {
 .dashboard-content { padding: 24px; }
}
@media (max-width: 1000px) {
 .overview-layout.overview-priority { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 .nav-more summary span, .help-question summary svg { transition: none; }
}

/* member-hub.css */
/* Member service stays readable without opening several workspace sections. */
.member-hub { min-width: 0; }
.member-hub-back { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 20px; min-height: 44px; }
.member-hub-back svg { transform: rotate(180deg); }
.member-hub-heading h1, .member-hub-facts dd, .member-hub-note { overflow-wrap: anywhere; }
.member-hub-access { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 12px 14px; padding: 18px 20px; margin-bottom: 22px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-raised); }
.member-hub-access > svg { flex: none; color: var(--gold); margin-top: 2px; }
.member-hub-access-copy { min-width: 0; overflow-wrap: anywhere; }
.member-hub-access strong { color: var(--ink); font-size: 15px; }
.member-hub-access p { color: var(--muted); line-height: 1.6; font-size: 14px; margin: 5px 0 0; }
.member-hub-access-valid { border-color: #647b54; }
.member-hub-service-actions { grid-column: 2; display: flex; flex-wrap: wrap; gap: 10px; padding-top: 4px; }
.member-hub-service-actions .btn { min-height: 44px; white-space: normal; overflow-wrap: anywhere; }
.member-hub-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(230px, .85fr); gap: 20px; margin-bottom: 20px; align-items: start; }
.member-hub-history-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.member-hub-card { min-width: 0; padding: 24px; }
.member-hub-card .card-head { align-items: flex-start; flex-wrap: wrap; gap: 14px; margin-bottom: 20px; }
.member-hub-card .card-head h2 { font-size: 18px; color: var(--ink); }
.member-hub-card .card-head p { font-size: 14px; color: var(--muted); line-height: 1.6; }
.member-hub-card .card-head > svg { flex: none; color: var(--gold); }
.member-hub-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; margin: 0; }
.member-hub-facts div { min-width: 0; }
.member-hub-facts dt { color: var(--muted); font-size: 12px; line-height: 1.5; margin-bottom: 5px; }
.member-hub-facts dd { color: var(--ink); font-size: 14px; line-height: 1.6; margin: 0; }
.member-hub-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.member-hub-actions .btn, .member-hub-pagination .btn { min-height: 44px; }
.member-hub-note, .member-hub-empty { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 16px 0 0; }
.member-hub-note strong { color: var(--ink); font-weight: 600; }
.member-hub-readonly { margin: -8px 0 20px; }
.member-hub-warning { color: var(--gold-hover); background: var(--gold-surface); border-left: 2px solid var(--gold); padding: 12px 14px; border-radius: 3px; font-size: 13px; line-height: 1.7; margin-top: 17px; }
.member-hub-history { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 8px; }
.member-hub-history summary { cursor: pointer; min-height: 44px; padding: 12px 0; color: var(--gold); font-size: 14px; font-weight: 600; }
.member-hub-help { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 4px; }
.member-hub-help summary { cursor: pointer; min-height: 44px; padding: 12px 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.member-hub-help[open] > summary { color: var(--gold); }
.member-hub-help .member-hub-note { margin-top: 4px; }
.member-hub-total { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px; background: var(--surface-raised); border: 1px solid var(--line); border-radius: 6px; padding: 15px; margin-bottom: 10px; }
.member-hub-total span { font-size: 13px; color: var(--muted); }
.member-hub-total strong { font-size: 23px; color: var(--ink); font-variant-numeric: tabular-nums; }
.member-hub-card .data-table th, .member-hub-card .data-table td { padding: 13px 12px; }
.member-hub-card .data-table td { font-size: 14px; }
.member-hub-card .data-table td:nth-child(2) { white-space: normal; min-width: 120px; overflow-wrap: anywhere; }
.member-hub-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 15px; color: var(--muted); font-size: 12px; }
.member-hub-pagination > div { display: flex; flex-wrap: wrap; gap: 8px; }
.member-hub-pagination .btn { padding: 10px 14px; font-size: 13px; }
.member-hub-pagination:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; border-radius: 4px; }
@media (max-width: 1100px) { .member-hub-history-grid { grid-template-columns: 1fr; } }
@media (max-width: 780px) { .member-hub-grid { grid-template-columns: 1fr; } .member-hub-card { padding: 20px; } .member-hub-access { padding: 16px; } }
@media (max-width: 560px) { .member-hub-service-actions { grid-column: 1 / -1; } .member-hub-service-actions .btn { flex: 1 1 140px; } }
@media (max-width: 420px) { .member-hub-facts { grid-template-columns: 1fr; gap: 15px; } .member-hub-actions .btn { flex: 1 1 140px; } }
@media print { .member-hub-back, .member-hub-actions, .member-hub-service-actions, .member-hub-pagination button, .member-hub-card .card-head .btn { display: none; } .member-hub-grid, .member-hub-history-grid { grid-template-columns: 1fr; } }

/* daily-closing.css */
.closing-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.closing-header-actions .report-period input{min-height:44px}.closing-source{color:#b6bbb7;font-size:13px;line-height:1.7;margin:0 0 20px}.closing-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.closing-stat{padding:22px;min-width:0}.closing-stat h2{font-size:27px;margin:12px 0;overflow-wrap:anywhere}.closing-stat small{display:block;color:#aeb6b0;font-size:12px;line-height:1.7}.closing-table-card,.closing-cash-card,.closing-review-card{padding:24px}.closing-table-card{margin-bottom:20px}.closing-table{min-width:640px}.closing-table th:not(:first-child),.closing-table td{text-align:right}.closing-table tbody th{font-weight:500;color:#d1d6d2}.closing-table tfoot th,.closing-table tfoot td{border-top:1px solid #7b6740;color:#e6c47c;font-weight:600;padding-top:18px}.closing-amount{font-variant-numeric:tabular-nums;white-space:nowrap}.closing-note{color:#afb8b1;font-size:13px;line-height:1.8;margin:18px 0 0}.closing-bottom{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:20px;align-items:start}.closing-bottom h2{font-size:21px;margin-bottom:18px}.closing-bottom h3{font-size:17px;margin-bottom:10px}.closing-cash-summary,.closing-cash-result dl{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:14px;margin:0 0 20px}.closing-cash-summary dt,.closing-cash-result dt{color:#b6bfb8}.closing-cash-summary dd,.closing-cash-result dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.closing-cash-form .btn{width:max-content}.closing-cash-result{padding:18px;margin-top:20px;border:1px solid #776640;border-radius:8px;background:#201d16}.closing-cash-result dl{margin-bottom:0}.closing-review{border:1px solid #7b6540;border-radius:8px;padding:18px;background:#211d17}.closing-review p,.closing-voids p{font-size:13px;line-height:1.8;color:#c7bfae}.closing-review ul,.closing-checklist{font-size:14px;line-height:1.8;margin:12px 0 0;padding-left:20px;display:grid;gap:10px}.closing-voids ul{list-style:none;margin:18px 0;padding:0;display:grid;gap:16px}.closing-voids li{padding-bottom:14px;border-bottom:1px solid #383e39;font-size:14px;overflow-wrap:anywhere}.closing-voids li span,.closing-voids li small{display:block;color:#b5beb7;font-size:12px;margin-top:6px;line-height:1.8}.closing-checklist{color:#c9d0cb}
@media(max-width:1100px){.closing-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.closing-bottom{grid-template-columns:1fr}}
@media(max-width:650px){.closing-header-actions{width:100%}.closing-header-actions .report-period{flex:1}.closing-header-actions .btn{width:100%}.closing-stats{gap:12px}.closing-stat{padding:16px}.closing-stat h2{font-size:23px}.closing-table-card,.closing-cash-card,.closing-review-card{padding:20px}.closing-cash-summary{font-size:13px;gap:12px}.closing-cash-form .btn{width:100%}.closing-source{font-size:12px}}
.closing-table caption.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Daily essentials stay visible; the full method breakdown can be opened as needed. */
.closing-stat { background: var(--surface); }
.closing-total { border-color: var(--gold-line); }
.closing-stat h2 { color: var(--ink); font-size: clamp(23px, 2.2vw, 30px); font-variant-numeric: tabular-nums; }
.closing-stat-breakdown { display: grid; gap: 8px; font-size: 13px; line-height: 1.5; color: var(--muted); }
.closing-stat-breakdown > span { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.closing-stat-breakdown b { color: var(--ink); font-weight: 500; font-variant-numeric: tabular-nums; text-align: right; min-width: 0; overflow-wrap: anywhere; }
.closing-method-note { border-left: 3px solid var(--gold); padding: 10px 14px; margin: -2px 0 20px; font-size: 14px; line-height: 1.6; color: var(--muted); background: var(--gold-surface); }
.closing-bottom { margin-bottom: 20px; }
.closing-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 20px; }
.closing-section-head h2 { margin: 0 0 8px; font-size: 20px; line-height: 1.3; }
.closing-section-head p { color: var(--muted); font-size: 14px; line-height: 1.6; margin: 0; }
.closing-cash-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 22px; }
.closing-cash-metrics > div { border: 1px solid var(--line); background: var(--bg); border-radius: var(--radius-control); padding: 14px 12px; min-width: 0; }
.closing-cash-metrics span, .closing-cash-metrics small { display: block; color: var(--muted); font-size: 12px; line-height: 1.6; }
.closing-cash-metrics strong { display: block; color: var(--ink); font-size: 22px; line-height: 1.3; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; margin: 10px 0; }
.closing-cash-metrics .closing-difference { border-color: var(--gold-line); background: var(--warning-surface); }
.closing-cash-metrics .closing-difference strong { color: var(--warning); }
.closing-cash-metrics .closing-matched { background: var(--success-surface); }
.closing-cash-metrics .closing-matched strong { color: var(--success); }
.closing-cash-summary, .closing-review-summary, .closing-expense-methods { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 18px; font-size: 14px; line-height: 1.6; margin: 0 0 20px; }
.closing-cash-summary dt, .closing-review-summary dt, .closing-expense-methods dt { color: var(--muted); }
.closing-cash-summary dd, .closing-review-summary dd, .closing-expense-methods dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.closing-cash-form .form-row { min-width: 0; }
.closing-cash-form label, .closing-cash-form input { min-width: 0; }
.closing-cash-form input { width: 100%; }
.closing-cash-form .closing-note { margin: -3px 0 2px; }
.closing-cash-announcement { color: var(--gold-hover); font-size: 14px; line-height: 1.7; margin-top: 18px; border-left: 3px solid var(--gold); padding: 10px 14px; background: var(--gold-surface); }
.closing-cash-announcement:focus { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
.closing-day-status { display: inline-block; color: var(--muted); background: var(--bg); border: 1px solid var(--line); border-radius: 5px; padding: 5px 9px; font-size: 12px; line-height: 1.5; }
.closing-day-status.needs-review { color: var(--warning); border-color: var(--gold-line); background: var(--warning-surface); }
.closing-section-head > .closing-day-status { flex-shrink: 0; }
.closing-record-links { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 4px 0 14px; }
.closing-record-links .inline-link { font-size: 14px; }
.closing-clear, .closing-empty { color: var(--muted); font-size: 14px; line-height: 1.7; }
.closing-clear { padding-top: 12px; border-top: 1px solid var(--line); margin-top: 6px; }
.closing-review { border-color: var(--gold-line); background: var(--warning-surface); }
.closing-review p, .closing-voids p { color: var(--muted); font-size: 14px; }
.closing-note { color: var(--muted); font-size: 13px; }
.closing-voids, .closing-expenses { border-top: 1px solid var(--line); margin-top: 12px; padding-top: 4px; }
.closing-voids summary, .closing-expenses summary, .closing-breakdown summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; cursor: pointer; list-style: none; color: var(--ink); font-size: 14px; line-height: 1.6; }
.closing-voids summary::-webkit-details-marker, .closing-expenses summary::-webkit-details-marker, .closing-breakdown summary::-webkit-details-marker { display: none; }
.closing-disclosure-hint { color: var(--gold); font-size: 12px; flex-shrink: 0; }
.closing-breakdown > summary { min-height: 58px; }
.closing-breakdown > summary strong { display: block; font-size: 18px; }
.closing-breakdown > summary small { display: block; color: var(--muted); font-size: 13px; }
.closing-when-open { display: none; }
.closing-voids[open] > summary .closing-when-closed, .closing-expenses[open] > summary .closing-when-closed, .closing-breakdown[open] > summary .closing-when-closed { display: none; }
.closing-voids[open] > summary .closing-when-open, .closing-expenses[open] > summary .closing-when-open, .closing-breakdown[open] > summary .closing-when-open { display: inline; }
.closing-expense-methods { margin: 8px 0 16px; }
.closing-breakdown-content { padding-top: 16px; border-top: 1px solid var(--line); margin-top: 14px; }
.closing-history-card { padding: 24px; }
.closing-history-table { min-width: 730px; }
.closing-history-table tbody th { font-weight: 500; color: var(--ink); white-space: nowrap; }
.closing-history-table td { vertical-align: middle; }
.closing-table-card [role="region"]:focus-visible, .closing-history-card [role="region"]:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
.closing-history-table .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.closing-source { color: var(--muted); }

@media (max-width: 650px) {
  .closing-stats { gap: 12px; }
  .closing-stat-breakdown { font-size: 12px; }
  .closing-stat-breakdown > span { flex-wrap: wrap; gap: 2px 6px; }
  .closing-cash-form .form-row { grid-template-columns: 1fr; }
  .closing-history-card { padding: 20px; }
  .closing-section-head { flex-wrap: wrap; }
  .closing-breakdown > summary, .closing-voids > summary, .closing-expenses > summary { align-items: flex-start; gap: 12px; }
  .closing-disclosure-hint { max-width: 80px; text-align: right; }
}
@media (max-width: 560px) {
  .closing-cash-metrics { grid-template-columns: 1fr; }
  .closing-cash-metrics > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 5px 12px; }
  .closing-cash-metrics strong { margin: 0; text-align: right; font-size: 21px; }
  .closing-cash-metrics small { grid-column: 1 / -1; }
  .closing-cash-summary, .closing-review-summary, .closing-expense-methods { grid-template-columns: minmax(0,1fr) minmax(70px,auto); gap: 12px; }
}

/* workflow.css */
/* Useful workflow guidance and explicit preview/cloud access. */
.hero-workflow { margin-top: 26px; border-top: 1px solid var(--line); padding-top: 22px; }
.hero-workflow > strong { color: var(--gold-hover); font-size: 14px; }
.hero-workflow ol { padding: 0; margin: 15px 0 0; list-style: none; display: grid; gap: 16px; }
.hero-workflow li { display: flex; gap: 12px; align-items: flex-start; }
.workflow-number { width: 30px; height: 30px; border: 1px solid var(--gold); color: var(--gold); display: grid; place-items: center; flex-shrink: 0; border-radius: 5px; font-size: 14px; font-weight: 700; }
.hero-workflow li > div { flex: 1; }
.hero-workflow h2 { font-family: inherit; font-size: 15px; margin: 0 0 4px; font-weight: 700; }
.hero-workflow p { color: var(--muted); font-size: 14px; line-height: 1.5; margin: 0; }
.hero-workflow li > svg { color: var(--gold); margin-top: 5px; }
.hero-visual { align-self: center; }
.hero-walkthrough-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 0; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.hero-walkthrough-link svg { flex-shrink: 0; }
.hero-visual-footer { flex-wrap: wrap; }
.hero-visual-footer > p { flex: 1 1 180px; }
.hero-visual-footer .hero-walkthrough-link { flex-shrink: 0; margin-left: auto; }
.workspace-status { border: 1px solid var(--control-line); border-left: 3px solid var(--gold); background: var(--surface-raised); padding: 18px 20px; margin-bottom: 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-radius: 6px; }
.workspace-status strong { color: var(--ink); font-size: 15px; }
.workspace-status p { color: var(--muted); margin: 6px 0 0; font-size: 14px; line-height: 1.6; }
.workspace-status > span, .workspace-status-access > span:not(.pill) { color: var(--muted); font-size: 12px; line-height: 1.6; }
.workspace-status-access { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; max-width: 340px; }
.workspace-status .btn { flex-shrink: 0; }
.ai-connection, .ai-setup, .ai-note, .ai-chat-context, .ai-verified, .ai-welcome { font-size: 13px; }
.ai-chat-context > p, .ai-setup .btn, .ai-chat-form .btn, .ai-message p, .ai-welcome button { font-size: 13px; }
.ai-connection small { width: 100%; line-height: 1.6; }
.ai-setup-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ai-setup .btn { min-height: 44px; }
.ai-chat-form textarea { font-size: 16px; }
.learning-video video { display: block; width: 100%; background: var(--bg); border-radius: 6px; aspect-ratio: 16 / 9; }
#quickstart-video { scroll-margin-top: 24px; }
#quickstart-video:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
.learning-note { font-size: 13px; color: var(--muted); }
.tutorial-chapters { margin: 16px 0; font-size: 14px; line-height: 1.7; }
.tutorial-chapters summary { cursor: pointer; color: var(--gold); }
.tutorial-chapters ol { padding-left: 22px; color: var(--muted); }
.landing-tutorial { margin-top: 52px; }
.member-profile-link { font: inherit; color: var(--ink); text-align: left; padding: 0; min-height: 44px; display: inline-flex; align-items: center; background: transparent; border: 0; cursor: pointer; text-decoration: underline; text-decoration-color: var(--control-line); text-underline-offset: 4px; }
.member-profile-link:hover { color: var(--gold); }
@media (min-width: 1001px) {
 .hero { padding-top: 32px; padding-bottom: 52px; }
 .hero h1 { margin-top: 18px; margin-bottom: 20px; }
 .hero-actions { margin-top: 22px; margin-bottom: 18px; }
 .hero-workflow { margin-top: 18px; padding-top: 14px; }
 .hero-workflow ol { gap: 12px; }
}
@media (max-width: 760px) { .workspace-status { align-items: flex-start; flex-direction: column; padding: 16px; }.workspace-status-access { justify-content: flex-start; max-width: none; }.hero-workflow { margin-top: 22px; }.landing-tutorial { margin-top: 30px; } }

/* standalone-auth.css */
/* Account screens share the Fitness Vault PH black and gold theme. */
.fv-auth { min-width: 0; width: 100%; color: var(--ink); }
.fv-auth [hidden] { display: none !important; }
.fv-auth-heading { margin-bottom: 24px; }
.fv-auth-heading h1 { font-size: clamp(29px, 4.5vw, 42px); line-height: 1.12; margin: 10px 0 12px; overflow-wrap: anywhere; }
.fv-auth-heading .auth-lead { line-height: 1.7; margin: 0; }
.fv-auth-form { display: grid; gap: 10px; }
.fv-auth-form > label { font-size: 14px; font-weight: 600; margin-top: 8px; line-height: 1.5; }
.fv-auth-form input { min-width: 0; width: 100%; min-height: 48px; padding: 12px 14px; background: var(--bg); color: var(--ink); border: 1px solid var(--control-line); border-radius: var(--radius-control); }
.fv-auth-form input[aria-invalid="true"] { border-color: var(--danger); }
.fv-auth-form input:autofill { -webkit-text-fill-color: var(--ink); box-shadow: 0 0 0 1000px var(--surface-raised) inset; caret-color: var(--ink); }
.fv-auth-password { display: flex; min-width: 0; border: 1px solid var(--control-line); border-radius: var(--radius-control); background: var(--bg); }
.fv-auth-password:focus-within { border-color: var(--gold-hover); box-shadow: 0 0 0 3px #C8FF2E30; }
.fv-auth-password input { flex: 1; border: 0; border-radius: var(--radius-control) 0 0 var(--radius-control); }
.fv-auth-password input:focus { box-shadow: none !important; }
.fv-auth-reveal { flex: none; min-width: 60px; min-height: 48px; padding: 8px 12px; border: 0; border-left: 1px solid var(--line); background: transparent; color: var(--gold); font-size: 13px; font-weight: 600; border-radius: 0 var(--radius-control) var(--radius-control) 0; }
.fv-auth-reveal:hover:not(:disabled) { background: var(--surface-raised); color: var(--gold-hover); }
.fv-auth-form > .btn { margin-top: 12px; min-height: 48px; }
.fv-auth-hint { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 7px 0 0; overflow-wrap: anywhere; }
.fv-auth-form > .fv-auth-hint { margin-top: 0; }
.fv-auth-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin-top: 16px; }
.fv-auth-link { min-height: 44px; padding: 6px 0; text-align: left; font-size: 14px; border: 0; background: transparent; }
.fv-auth-status { padding: 13px 15px; margin: 0 0 18px; border: 1px solid var(--gold-line); border-radius: var(--radius-control); background: var(--gold-surface); color: var(--gold-hover); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.fv-auth .form-error { margin: 0 0 18px; line-height: 1.7; overflow-wrap: anywhere; }
.fv-auth-email-note { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0 0 14px; overflow-wrap: anywhere; }
.fv-auth-email-note strong { color: var(--ink); }
.fv-auth-heading h1:focus-visible, .fv-auth .form-error:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
.fv-onboarding-steps { display: flex; justify-content: space-between; gap: 10px; list-style: none; padding: 0; margin: 0 0 24px; }
.fv-onboarding-steps li { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.fv-onboarding-steps li > span { flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--control-line); }
.fv-onboarding-steps .current, .fv-onboarding-steps .complete { color: var(--gold-hover); }
.fv-onboarding-steps .current > span, .fv-onboarding-steps .complete > span { border-color: var(--gold); background: var(--gold-surface); }
.fv-onboarding-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 20px; }
.fv-onboarding-options .btn { min-height: 48px; white-space: normal; }
.fv-onboarding-option h2 { font-size: 20px; margin: 0 0 8px; }
.fv-onboarding-option .auth-join { margin-top: 0; padding-top: 0; border-top: 0; }
.fv-onboarding-option > .auth-form { margin-top: 16px; }
@media (max-width: 420px) { .fv-onboarding-steps { gap: 6px; } .fv-onboarding-steps li { flex-direction: column; gap: 5px; text-align: center; } .fv-onboarding-options { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .fv-auth-heading { margin-bottom: 20px; } .fv-auth-links { display: grid; gap: 2px; } }

/* operator-console.css */
/* Owner portal and payroll use the shared black-and-gold theme. */
.operator-shell{min-height:100vh;background:var(--bg);color:var(--ink)}
.operator-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 4vw;background:var(--bg);border-bottom:1px solid var(--line)}
.operator-header>div{display:flex;flex-wrap:wrap;gap:10px}
.operator-main{max-width:1580px;margin:auto;padding:36px 4vw 64px}.operator-main .page-heading{margin-bottom:24px}
.operator-access{max-width:520px;margin:32px auto;padding:28px}.operator-access h1{font-size:28px;margin:12px 0}.operator-access p{color:var(--muted);font-size:14px;line-height:1.7}.operator-access>.btn{margin-top:16px}
.operator-search input::placeholder{color:var(--muted)}.operator-placeholder p{color:var(--muted);font-size:13px;line-height:1.7}
.operator-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:12px;margin:22px 0}
.operator-stats .surface-card{padding:18px}.operator-stats span{display:block;font-size:12px;color:var(--muted)}.operator-stats strong{display:block;font-size:30px;margin-top:8px}
.operator-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:24px;align-items:start}
.operator-directory,.operator-detail,.operator-placeholder{padding:24px;min-width:0}.operator-directory h2{margin:0 0 16px}
.operator-search{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.operator-search label{display:grid;gap:7px;font-size:12px;font-weight:600}.operator-search label:first-child{flex:1;min-width:180px}
.operator-search input,.operator-search select{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--control-line);border-radius:var(--radius-control);background:var(--bg);color:var(--ink);font:inherit}
.operator-client-list{margin-top:18px}.operator-client{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:17px 12px;background:none;border:0;border-bottom:1px solid var(--line);text-align:left;color:var(--ink);cursor:pointer;font:inherit;border-radius:7px}
.operator-client:hover{background:var(--surface-raised)}.operator-client.selected{background:var(--gold-surface)}.operator-client.selected{box-shadow:inset 3px 0 var(--gold)}.operator-client:focus-visible{outline:3px solid var(--gold-hover);outline-offset:2px}
.operator-client strong,.operator-client small{display:block}.operator-client strong{font-size:14px}.operator-client small{font-size:11px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.operator-client-state{text-align:right;flex-shrink:0;max-width:40%}
.operator-pagination{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px}.operator-pagination span{margin-right:auto;font-size:11px;color:var(--muted)}.operator-pagination .btn{font-size:11px;padding:9px 12px}
.operator-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:16px 0 24px}.operator-facts div{min-width:0}.operator-facts dt{font-size:11px;color:var(--muted)}.operator-facts dd{margin:5px 0 0;font-size:14px;font-weight:600;text-transform:capitalize}
.operator-detail h3{font-size:15px;margin:0 0 3px}.operator-plan-form{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.operator-detail textarea{resize:vertical}
.operator-status-action{display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.operator-status-action p{font-size:12px;line-height:1.6;color:var(--muted)}
.operator-error{padding:15px 18px;border:1px solid var(--danger);border-radius:10px;background:var(--danger-surface);color:var(--danger);font-size:13px}.operator-loading,.operator-empty{font-size:13px;line-height:1.6;color:var(--muted);padding:14px 0}
.operator-request{padding:14px;margin-bottom:20px;border-radius:9px;border:1px solid var(--gold-line);background:var(--gold-surface);font-size:12px}.operator-request p{overflow-wrap:anywhere}.operator-branches{margin-top:24px;font-size:13px}.operator-branches summary{cursor:pointer;font-weight:600}.operator-branches p{padding:8px 0}.operator-branches small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
.operator-activity-heading{margin-top:24px!important}.operator-events article{padding:12px 0;border-bottom:1px solid var(--line)}.operator-events strong{display:block;font-size:12px;line-height:1.6}.operator-events small,.operator-events p{font-size:11px;color:var(--muted)}
.payroll-period{font-size:11px;color:var(--muted);margin-top:5px;display:block}.payroll-month-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0;padding:18px 22px}.payroll-month-summary strong{font-size:22px}.payroll-month-summary small{display:block;margin-top:5px;color:var(--muted);font-size:11px}
@media(max-width:1100px){.operator-layout{grid-template-columns:1fr}.operator-detail{scroll-margin-top:20px}}
@media(max-width:620px){.operator-main{padding:24px 16px 48px}.operator-header{padding:14px 16px;flex-wrap:wrap}.operator-header .brand-wordmark{width:155px}.operator-directory,.operator-detail,.operator-placeholder{padding:18px}.operator-client{align-items:start;gap:10px}.operator-client-state{max-width:35%}.operator-client small{font-size:10px}.operator-facts{gap:16px 10px}.operator-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-search label:first-child{flex-basis:100%}.payroll-month-summary{align-items:start}.payroll-month-summary strong{white-space:nowrap}}

/* partner-admin.css */
.operator-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 25px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.operator-tabs .btn[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--bg)}
.partner-heading-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.partner-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.partner-console .partner-layout{grid-template-columns:minmax(280px,.72fr) minmax(0,1.55fr)}
.partner-directory,.partner-detail{min-width:0;padding:24px}
.partner-list{display:grid;gap:10px;margin-top:22px}
.partner-list-item .operator-client-state{max-width:45%;overflow-wrap:anywhere}
.partner-list-item .operator-client-state strong{font-size:14px}
.partner-share-code{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:21px 0;padding:16px 18px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--gold) 7%,var(--surface))}
.partner-share-code strong{color:var(--gold);font-size:22px;letter-spacing:.1em;overflow-wrap:anywhere}
.partner-share-code span{font-size:13px;color:var(--muted);white-space:nowrap}
.partner-share-link{display:grid;gap:7px;margin-bottom:24px;font-size:12px;color:var(--muted)}
.partner-share-link input{width:100%;min-width:0;padding:11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:12px}
.partner-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 22px}
.partner-detail-stats div{display:grid;gap:6px;padding:13px;border:1px solid var(--line);border-radius:10px}
.partner-detail-stats span{font-size:11px;color:var(--muted)}
.partner-detail-stats strong{font-size:17px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.partner-agreement,.partner-remittances{padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:16px 0}
.partner-agreement summary,.partner-remittances summary{font-weight:600;cursor:pointer;min-height:28px}
.partner-edit-form{margin:16px 0}.partner-edit-form .card-head h3{margin:0}
.partner-attribution{margin:24px 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.partner-client-search{display:flex;align-items:end;gap:10px;margin:14px 0}
.partner-client-search label{flex:1;display:grid;gap:7px;font-size:12px}
.partner-client-search input{width:100%;min-width:0;min-height:40px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}
.partner-customer-list{display:grid;gap:10px;margin:15px 0 24px}
.partner-customer-list p,.partner-remittances p{display:grid;gap:5px;margin:0;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}
.partner-customer-list span,.partner-remittances span,.partner-remittances small{color:var(--muted);font-size:11px}
.partner-ledger-title{margin-top:30px;flex-wrap:wrap;gap:12px}
.partner-ledger-title h3{margin:0}
.partner-ledger-scroll{overflow-x:auto;margin:18px 0;border:1px solid var(--line);border-radius:10px}
.partner-ledger{width:100%;min-width:510px;border-collapse:collapse;font-size:12px}
.partner-ledger th{text-align:left;background:var(--surface-raised);font-size:10px;text-transform:uppercase;letter-spacing:.03em;font-weight:600;padding:13px 10px}
.partner-ledger td{vertical-align:top;padding:15px 10px;border-top:1px solid var(--line);max-width:190px;overflow-wrap:anywhere}
.partner-ledger td strong,.partner-ledger td small{display:block}
.partner-ledger td small{font-size:10px;line-height:1.6;color:var(--muted);margin-top:4px}
.partner-ledger-actions{display:grid;gap:8px}.partner-ledger-actions .btn{font-size:10px;padding:7px 10px;min-height:32px;white-space:normal}
.partner-record-panel{padding:24px;margin:22px 0;border-color:color-mix(in srgb,var(--gold) 45%,var(--line))}
.partner-record-panel .modal-form{max-width:800px;margin:20px 0 0}.partner-record-panel .card-head{flex-wrap:wrap;gap:14px}
.partner-record-panel h2{font-size:23px;margin:7px 0}.partner-record-panel>p{color:var(--muted);font-size:13px;line-height:1.6;max-width:800px}
.partner-receipt-reference{padding:12px;background:var(--surface-raised);border-radius:8px}
.partner-refund-warning{padding:13px 17px;border:1px solid color-mix(in srgb,var(--warning,#f59e0b) 55%,var(--line));border-radius:10px;color:var(--ink);background:color-mix(in srgb,var(--warning,#f59e0b) 8%,var(--surface));font-size:12px;line-height:1.7}
.partner-private-note{margin:25px 0 5px;font-size:11px;color:var(--muted);line-height:1.7}
.partner-all-receipts{margin:24px 0;padding:22px}.partner-all-receipts>summary{font-size:15px;font-weight:600;cursor:pointer;min-height:28px}.partner-all-receipts>p{margin-top:15px}
@media(max-width:1200px){.partner-console .partner-layout{grid-template-columns:minmax(260px,.75fr) minmax(0,1.35fr)}.partner-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.partner-detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-share-code{flex-wrap:wrap}.partner-heading-actions{justify-content:flex-start}}
@media(max-width:960px){.partner-console .partner-layout{grid-template-columns:1fr}.partner-console .page-heading{align-items:flex-start;gap:18px;flex-direction:column}.partner-directory,.partner-detail{padding:22px}.partner-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.operator-tabs .btn{flex:1;white-space:normal;font-size:12px}.partner-heading-actions{width:100%}.partner-heading-actions .btn{flex:1;white-space:normal;font-size:11px;min-height:42px}.partner-client-search{flex-wrap:wrap}.partner-client-search label{flex-basis:100%}.partner-summary>div{padding:16px}.partner-summary strong{font-size:20px}.partner-directory,.partner-detail,.partner-record-panel{padding:18px}.partner-share-code strong{font-size:19px}.partner-share-code span{white-space:normal}.partner-ledger-actions .btn{min-height:44px}.partner-customer-list p{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.partner-console *{scroll-behavior:auto}}

/* landing.css */
/* Public landing only: black, warm gold and practical product exploration. */
.marketing-refresh{--landing-soft:#d8d0c2;background:radial-gradient(ellipse at 85% 5%,#26201455,transparent 35%),var(--bg)}
.marketing-refresh .marketing-header{border-bottom:1px solid #ffffff0d;height:92px}
.marketing-refresh .hero{padding-top:64px;padding-bottom:54px;gap:52px;align-items:center}
.marketing-refresh .hero-left{text-align:left}
.marketing-refresh .hero .hero-title{font-size:clamp(48px,5.5vw,82px);line-height:1.01;letter-spacing:-.035em;margin:24px 0}
.marketing-refresh .hero-desc{font-size:18px;line-height:1.75;max-width:480px;color:var(--landing-soft)}
.marketing-refresh .hero-actions{flex-wrap:wrap;gap:12px;margin:28px 0 20px}
.marketing-refresh .hero-assurances{flex-wrap:wrap;gap:18px}
.marketing-refresh .hero-demo-note{max-width:430px;font-size:12px;line-height:1.8;margin-top:18px;color:var(--muted)}
.marketing-refresh .hero-visual{transform:none;margin:0;min-width:0;position:relative}
.marketing-refresh .hero-visual:before{display:none}
.landing-gym-photo{margin:0 0 -28px;position:relative;height:240px;overflow:hidden;border-radius:18px 18px 0 0;border:1px solid var(--gold-line)}
.landing-gym-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}
.landing-gym-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0d1014 0%,transparent 65%)}
.landing-gym-photo figcaption{position:absolute;inset:26px 26px auto;z-index:1;text-shadow:0 1px 12px #000;display:grid;gap:5px}
.landing-gym-photo figcaption span{font-size:12px;letter-spacing:.13em;font-weight:700;color:#fff2d5}
.landing-gym-photo figcaption small{font-size:13px;color:#fff5e6}
.marketing-refresh .hero-visual-label{position:relative;padding:13px 20px;background:#151a20;border:1px solid var(--line);border-radius:12px 12px 0 0;font-size:10px;margin:0 14px;border-bottom:0;gap:12px}
.marketing-refresh #product-tour{position:relative;margin:0 14px}
.marketing-refresh .product-demo{border-radius:0 0 12px 12px;box-shadow:0 24px 70px #0006}
.marketing-refresh .hero-visual-footer{padding:18px 14px;gap:9px;align-items:center}
.marketing-refresh .hero-visual-footer p{font-size:11px}
.marketing-refresh .hero-visual-footer .hero-walkthrough-link{font-size:12px;margin-left:0}
.landing-workflow-link{color:var(--gold-hover);display:inline-flex;align-items:center;gap:10px;padding:14px 0;min-height:44px;border:0;background:none;text-align:left;font-size:13px;cursor:pointer}
.marketing-refresh .benefit-strip{padding-top:26px;padding-bottom:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:none}
.marketing-refresh .benefit-strip>div{border-color:var(--line)}
.marketing-refresh .landing-tutorial{margin-top:0;padding-top:42px;padding-bottom:46px}
.landing-day{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding-top:90px;padding-bottom:50px}
.landing-day h2{font-family:inherit;font-size:clamp(32px,3.4vw,48px);line-height:1.14;letter-spacing:-.04em;margin:20px 0}
.landing-day-intro>p{color:var(--muted);max-width:430px;line-height:1.8;font-size:15px}
.landing-day-steps{display:grid;gap:8px;margin-top:25px}
.landing-day-steps button{display:flex;gap:16px;align-items:center;padding:17px 18px;text-align:left;min-height:74px;width:100%;border:1px solid transparent;background:none;border-radius:10px;color:var(--muted);cursor:pointer;transition:background .2s,border-color .2s}
.landing-day-steps button:hover{background:#ffffff06;border-color:var(--line)}
.landing-day-steps button.active{background:var(--gold-surface);border-color:var(--gold-line);color:var(--gold-hover)}
.landing-day-steps button>span:first-child{font-size:13px;letter-spacing:.08em}
.landing-day-steps button>span:last-child{margin-left:auto}
.landing-day-steps strong{font-size:15px;color:var(--ink);display:block;margin-bottom:5px}
.landing-day-steps small{font-size:12px;color:var(--muted)}
.landing-day-intro .landing-demo-caption{font-size:11px;margin:16px 18px;color:var(--muted)}
.landing-simulator{border:1px solid var(--gold-line);border-radius:16px;overflow:hidden;background:linear-gradient(135deg,#1c232c,#12171d);box-shadow:0 24px 80px #0004;min-width:0}
.landing-sim-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}
.landing-sim-head small{margin-left:auto;color:var(--gold-hover);border:1px solid var(--gold-line);border-radius:20px;padding:4px 9px;font-size:10px}
.landing-sim-dots{font-size:9px;letter-spacing:3px;color:#69727d}
.landing-sim-body{padding:32px}
.landing-sim-title{display:flex;gap:15px;align-items:center;margin-bottom:28px}
.landing-sim-avatar{width:48px;height:48px;border-radius:14px;background:var(--gold-surface);border:1px solid var(--gold-line);color:var(--gold-hover);display:grid;place-items:center;flex-shrink:0;font-size:15px}
.landing-sim-title small{color:var(--gold);font-size:10px;letter-spacing:.12em}
.landing-sim-title h3{font-family:inherit;font-size:20px;margin:7px 0 0;line-height:1.4}
.landing-sim-record{padding:24px;border:1px solid var(--line);border-radius:10px;background:#0d1014aa;display:grid;gap:11px}
.landing-sim-record>span{color:var(--muted);font-size:11px}
.landing-sim-record strong{font-size:24px;letter-spacing:-.02em}
.landing-sim-record small{font-size:12px;color:var(--muted);line-height:1.6}
.landing-sim-body>p{color:var(--muted);font-size:13px;line-height:1.8;margin:23px 0}
.landing-sim-action{width:100%;min-height:48px;justify-content:center}
.landing-sim-action:disabled{opacity:1;background:var(--success-surface);border-color:#436552;color:var(--success)}
.landing-sim-body>.landing-sim-status{min-height:42px;font-size:12px;margin:16px 0;color:var(--gold-hover)}
.landing-sim-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:20px;font-size:12px}
.landing-feature-photo{display:block;width:calc(100% + 64px);max-width:none;height:145px;object-fit:cover;margin:-32px -32px 24px;opacity:.85}
.marketing-refresh .feature-card{overflow:hidden;transition:transform .2s,border-color .2s}
.marketing-refresh .feature-card:hover{transform:translateY(-4px);border-color:var(--gold-line)}
.marketing-refresh .section-heading h2{font-family:inherit;font-size:clamp(32px,3.4vw,48px);line-height:1.13;letter-spacing:-.04em}
.marketing-refresh .operations-release{border-radius:14px;background:linear-gradient(120deg,#272116,#151a20);border-color:var(--gold-line)}
.marketing-refresh .steps-zone{background:#11161c;border-block:1px solid var(--line)}
.marketing-refresh .final-cta{background:linear-gradient(120deg,#2b251a,#14191f);border:1px solid var(--gold-line);color:var(--ink)}
.marketing-refresh .final-cta h2{font-family:inherit;letter-spacing:-.04em;color:var(--ink);font-size:clamp(32px,4.5vw,56px)}
.marketing-refresh .final-cta p,.marketing-refresh .cta-kicker{color:var(--landing-soft)}
.landing-mobile-menu{display:none}
.marketing-refresh button:focus-visible,.marketing-refresh a:focus-visible,.marketing-refresh summary:focus-visible{outline:2px solid var(--gold-hover);outline-offset:4px}
@media(max-width:1100px){.marketing-refresh .hero{gap:28px}.marketing-refresh .hero .hero-title{font-size:clamp(45px,6vw,66px)}.landing-day{gap:40px}.landing-sim-body{padding:24px}.marketing-refresh .hero-visual-footer{flex-wrap:wrap}}
@media(max-width:780px){.marketing-refresh .hero{grid-template-columns:1fr;gap:30px;padding-top:42px;padding-bottom:36px}.marketing-refresh .hero-left{max-width:620px}.marketing-refresh .hero .hero-title{font-size:clamp(46px,9vw,74px)}.marketing-refresh .hero-desc{font-size:16px}.marketing-refresh .hero-visual{width:100%;max-width:620px;margin:auto}.landing-gym-photo{height:230px}.landing-day{grid-template-columns:1fr;gap:24px;padding-top:56px;padding-bottom:24px}.landing-day h2 br{display:none}.landing-day-steps{gap:4px}.landing-day-intro>p{max-width:none}.landing-day-steps button{padding:13px 16px;min-height:66px}.landing-mobile-menu{display:block;position:relative;margin-left:auto}.landing-mobile-menu summary{list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:6px;padding:10px 12px;font-size:12px}.landing-mobile-menu>div{position:absolute;right:0;top:48px;width:220px;background:var(--surface);border:1px solid var(--gold-line);padding:8px;border-radius:10px;z-index:30;box-shadow:0 20px 40px #0008}.landing-mobile-menu button{display:block;width:100%;padding:13px;text-align:left;color:var(--ink);background:none;border:0;cursor:pointer;font-size:13px}.landing-mobile-menu button:hover{background:var(--gold-surface)}.marketing-refresh .marketing-header{gap:14px;height:78px}.marketing-refresh .marketing-nav-actions{margin-left:0}.marketing-refresh .marketing-header .header-workspace{display:none}.marketing-refresh .hero-actions{justify-content:flex-start}.landing-feature-photo{margin-top:-25px}.marketing-refresh .hero-assurances{justify-content:flex-start}}
@media(max-width:545px){.marketing-refresh .hero .hero-title{font-size:clamp(44px,12vw,62px)}.marketing-refresh .hero-visual-label,.marketing-refresh #product-tour{margin-inline:0}.landing-gym-photo{height:195px}.landing-gym-photo figcaption{inset:22px 20px auto}.marketing-refresh .hero-actions .btn{flex:1 1 190px;justify-content:center;font-size:13px}.landing-sim-body{padding:22px 18px}.landing-sim-head{padding:14px;font-size:10px;gap:8px}.landing-sim-dots{display:none}.landing-sim-title h3{font-size:18px}.landing-sim-record{padding:20px 16px}.landing-sim-record strong{font-size:22px}.landing-sim-record small{overflow-wrap:anywhere}.marketing-refresh .benefit-strip{gap:20px}.marketing-refresh .hero-demo-note{font-size:11px}.landing-day h2{font-size:32px}.marketing-refresh .hero-visual-footer{padding-inline:0}.marketing-refresh .landing-tutorial{padding-top:30px}}
@media(prefers-reduced-motion:reduce){.marketing-refresh *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.marketing-refresh .feature-card:hover{transform:none}}
.landing-toolkit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--line);padding-top:28px;margin-top:32px}
.landing-toolkit button{display:grid;gap:12px;text-decoration:none;padding:10px 0;min-height:110px;color:var(--ink)}
.landing-toolkit button>span{font-size:10px;letter-spacing:.12em;color:var(--gold)}
.landing-toolkit strong{font-size:17px;line-height:1.5;font-weight:600}
.landing-toolkit small{font-size:12px;color:var(--muted);line-height:1.6}
.landing-toolkit button:hover strong{color:var(--gold-hover)}
@media(max-width:780px){.landing-toolkit{grid-template-columns:1fr;gap:4px;margin-top:25px}.landing-toolkit button{min-height:100px;border-bottom:1px solid var(--line);padding:20px 0}}

.landing-toolkit button{background:none;border:0;text-align:left;font-family:inherit;cursor:pointer}
/* Editorial refinement: a stable sticky header, deliberate movement and generous content. */
.marketing-refresh .page-width{max-width:1280px;margin-inline:auto;padding-inline:clamp(20px,3.7vw,56px)}
.marketing-refresh{overflow:clip;background:radial-gradient(ellipse at 82% 8%,#44321b30,transparent 31%),var(--bg)}
.marketing-refresh .marketing-header{position:sticky;top:12px;z-index:60;max-width:calc(1280px - 40px);width:calc(100% - 40px);height:76px;margin:12px auto 0;padding-inline:24px;border:1px solid #ffffff12;border-radius:12px;background:#0d1014f2;backdrop-filter:blur(18px);transition:background-color .25s,border-color .25s,box-shadow .25s;isolation:isolate}
.marketing-refresh .marketing-header.is-scrolled{background:#13181ff2;border-color:var(--gold-line);box-shadow:0 12px 38px #0007}
.marketing-refresh .marketing-header:after{content:'';position:absolute;inset:auto 16px -1px;height:2px;background:var(--gold);transform:scaleX(var(--fv-progress,0));transform-origin:left;border-radius:3px;pointer-events:none}
.marketing-refresh .marketing-header .brand-wordmark{width:182px;height:auto}
.marketing-refresh .marketing-header nav{gap:28px}
.marketing-refresh .marketing-header nav a{color:var(--muted);font-size:13px;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;position:relative;transition:color .18s}
.marketing-refresh .marketing-header nav a:after{content:'';height:1px;position:absolute;inset:auto 0 8px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.marketing-refresh .marketing-header nav a:hover,.marketing-refresh .marketing-header nav a:focus-visible{color:var(--gold-hover)}
.marketing-refresh .marketing-header nav a:hover:after,.marketing-refresh .marketing-header nav a:focus-visible:after{transform:scaleX(1)}
.marketing-refresh .marketing-nav-actions{gap:16px;display:flex;align-items:center}
.marketing-refresh .header-signin{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;background:none;border:0;color:var(--ink);font-size:13px;text-decoration:none}
.marketing-refresh .header-signin:hover{color:var(--gold-hover)}
.marketing-refresh .marketing-header .header-workspace{background:var(--gold);border-color:var(--gold);color:#15120d;min-height:44px;font-size:12px;border-radius:7px;text-decoration:none}
.marketing-refresh .hero{align-items:start;padding-top:70px;padding-bottom:52px;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:54px}
.marketing-refresh .hero-left{padding-top:30px}
.marketing-refresh .hero .hero-title{font-family:var(--heading);font-size:clamp(44px,5.6vw,78px);margin:25px 0;line-height:1.04;text-wrap:balance}
.marketing-refresh .hero-desc{font-size:17px;line-height:1.85;max-width:450px}
.marketing-refresh .hero-visual{padding-top:0}
.marketing-refresh .landing-gym-photo{height:218px;border-color:#ffffff20;border-radius:14px 14px 0 0}
.marketing-refresh .product-demo{border-color:var(--gold-line)}
.marketing-refresh .hero-demo-note{max-width:440px;color:#aeb5bf;font-size:12px}
.marketing-refresh .hero-actions .btn{text-decoration:none;min-height:48px}
.marketing-refresh a{touch-action:manipulation;-webkit-tap-highlight-color:#C8FF2E30}
.marketing-refresh .feature-link,.marketing-refresh .landing-workflow-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;min-height:44px;color:var(--gold-hover)}
.marketing-refresh .feature-link svg,.marketing-refresh .landing-workflow-link svg,.marketing-refresh .hero-actions .btn svg{transition:transform .2s}
.marketing-refresh .feature-link:hover svg,.marketing-refresh .landing-workflow-link:hover svg,.marketing-refresh .hero-actions .btn:hover svg{transform:translateX(4px)}
.marketing-refresh .feature-card{background:linear-gradient(145deg,#1b222b,#12171d);border-color:#39414d;border-radius:14px;box-shadow:none}
.marketing-refresh .feature-card h3{font-size:clamp(24px,2.2vw,32px);line-height:1.18;text-wrap:balance}
.marketing-refresh .feature-card p{font-size:14px;line-height:1.85}
.marketing-refresh .landing-toolkit a{display:grid;gap:12px;min-height:120px;border:0;background:none;padding:10px 0;text-align:left;text-decoration:none;color:var(--ink)}
.marketing-refresh .landing-toolkit a>span{color:var(--gold);font-size:10px;letter-spacing:.12em}
.marketing-refresh .landing-toolkit a strong{font-weight:600;font-size:17px;line-height:1.5}
.marketing-refresh .landing-toolkit a small{color:var(--muted);font-size:12px;line-height:1.8}
.marketing-refresh .landing-toolkit a:hover strong{color:var(--gold-hover)}
.marketing-refresh h2{text-wrap:balance}
.marketing-refresh .marketing-section{padding-block:76px}
.marketing-refresh .section-heading{align-items:end;margin-bottom:36px}
.marketing-refresh .section-heading h2{font-family:var(--heading);font-size:clamp(35px,4vw,54px);line-height:1.1}
.marketing-refresh .section-heading>p{max-width:360px;font-size:15px;line-height:1.85}
.marketing-refresh .landing-day{padding-top:72px;gap:64px}
.landing-sim-progress{display:flex;gap:10px;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);background:#11161c;color:var(--muted);font-size:10px}
.landing-sim-progress>span{display:flex;gap:7px;align-items:center;line-height:1.5}
.landing-sim-progress b{display:grid;place-items:center;flex-shrink:0;width:24px;height:24px;border:1px solid var(--line);border-radius:50%;font-size:10px;font-weight:600}
.landing-sim-progress .current{color:var(--gold-hover)}.landing-sim-progress .current b{border-color:var(--gold);background:var(--gold-surface)}
.landing-sim-progress .complete{color:var(--success)}.landing-sim-progress .complete b{background:var(--success-surface);border-color:#436552}
.marketing-refresh .landing-sim-title>div{min-width:0}
.marketing-refresh .landing-sim-title h3{text-wrap:balance}
.marketing-refresh .landing-tutorial .learning-panel{border-radius:14px;background:linear-gradient(115deg,#1b212a,#11161c);gap:48px;padding:34px;border-color:#3b4451;align-items:center}
.marketing-refresh .learning-panel h2{font-family:var(--heading);font-size:32px;line-height:1.15}
.marketing-refresh .learning-panel p{line-height:1.85;font-size:14px}
.marketing-refresh .learning-video video{border-radius:10px;aspect-ratio:16/9;object-fit:contain;background:#090c10}
.marketing-refresh .operations-release{padding:28px 32px;gap:32px;margin-top:0}
.marketing-refresh .operations-release h2{font-size:24px}.marketing-refresh .operations-release p{font-size:14px;line-height:1.85}
.marketing-refresh .price-card{border-radius:14px;background:#151b22;transition:transform .22s,border-color .22s}
.marketing-refresh .price-card.highlight{background:linear-gradient(150deg,#29241b,#171c23);border-color:var(--gold)}
.marketing-refresh .price-card:hover{transform:translateY(-4px);border-color:var(--gold)}
.marketing-refresh .price-card .btn{text-decoration:none;min-height:48px}
.marketing-refresh .faq-list details{border-bottom:1px solid var(--line)}
.marketing-refresh .faq-list summary{min-height:64px;padding:20px 0;line-height:1.6}
.marketing-refresh .faq-list details>p{line-height:1.9;font-size:14px}
.marketing-refresh .marketing-footer a[data-scroll]{display:inline-flex;align-items:center;color:var(--muted);text-decoration:none;min-height:44px;font-size:13px}
.marketing-refresh .marketing-footer a[data-scroll]:hover{color:var(--gold-hover)}
.marketing-refresh .final-cta{border-radius:14px;max-width:1168px;width:calc(100% - 48px);padding:52px 48px;margin-inline:auto}
.marketing-refresh .final-cta .btn{text-decoration:none;min-height:48px}
.marketing-refresh .final-cta .cta-art{color:var(--gold);opacity:.6}
.marketing-refresh .marketing-footer{padding-block:44px}
.marketing-refresh [id]{scroll-margin-top:116px}
.landing-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:68px;align-items:center;padding-top:70px;padding-bottom:32px}
.landing-story figure{position:relative;margin:0;overflow:hidden;border-radius:14px;border:1px solid #ffffff20;aspect-ratio:5/4;background:var(--surface)}
.landing-story img{display:block;width:100%;height:100%;object-fit:cover;object-position:66% center;transition:transform .55s}
.landing-story figure:hover img{transform:scale(1.035)}
.landing-story figcaption{position:absolute;inset:auto 0 0;padding:54px 25px 22px;background:linear-gradient(transparent,#0d1014e6);color:#f5e6c9;font-size:11px;letter-spacing:.1em;line-height:1.7}
.landing-story figcaption small{font-size:10px;letter-spacing:0;display:block;color:#c6c4bd;margin-top:4px}
.landing-story h2{font-family:var(--heading);font-size:clamp(35px,4vw,52px);line-height:1.08;margin:22px 0;letter-spacing:-.04em}
.landing-story-copy>p{font-size:15px;line-height:1.9;color:var(--muted)}
.landing-story-links{display:grid;margin-top:25px}
.landing-story-links a{display:flex;align-items:center;gap:15px;padding:18px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--ink);min-height:80px}
.landing-story-links a>span{color:var(--gold);font-size:12px;letter-spacing:.1em}.landing-story-links a>div{min-width:0;flex:1}.landing-story-links strong{display:block;font-size:14px;font-weight:600}.landing-story-links small{display:block;font-size:12px;line-height:1.8;color:var(--muted);margin-top:6px}.landing-story-links b{font-size:19px;color:var(--gold);font-weight:400;transition:transform .2s}
.landing-story-links a:hover b{transform:translate(3px,-3px)}
@keyframes fv-arrive{from{opacity:.4;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.fv-motion-allowed .fv-enter{animation:fv-arrive .6s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--fv-enter-delay,0ms)}
@media(max-width:1080px){.marketing-refresh .marketing-header nav{gap:17px}.marketing-refresh .marketing-header nav a{font-size:12px}.marketing-refresh .hero{gap:35px}.marketing-refresh .hero .hero-title{font-size:clamp(45px,5.8vw,65px)}.marketing-refresh .hero-left{padding-top:12px}.marketing-refresh .hero-desc{font-size:16px}.landing-story{gap:38px}.marketing-refresh .landing-day{gap:36px}}
@media(max-width:850px){.marketing-refresh .marketing-header nav{display:none}.marketing-refresh .landing-mobile-menu{display:block;position:relative;margin-left:auto}.marketing-refresh .landing-mobile-menu summary{min-height:44px;display:flex;align-items:center;padding:0 13px;border:1px solid var(--line);border-radius:7px;font-size:13px;cursor:pointer;list-style:none}.marketing-refresh .landing-mobile-menu summary::-webkit-details-marker{display:none}.marketing-refresh .landing-mobile-menu>div{position:absolute;right:0;top:52px;width:225px;max-width:calc(100vw - 40px);padding:8px;background:var(--surface);border:1px solid var(--gold-line);border-radius:10px;box-shadow:0 15px 40px #0009;z-index:65}.marketing-refresh .landing-mobile-menu a{display:flex;align-items:center;padding:13px;width:100%;min-height:46px;color:var(--ink);text-decoration:none;font-size:13px;border-radius:5px}.marketing-refresh .landing-mobile-menu a:hover{background:var(--gold-surface)}.marketing-refresh .hero{grid-template-columns:1fr;padding-top:40px;gap:30px}.marketing-refresh .hero-left{padding-top:0;max-width:620px}.marketing-refresh .hero .hero-title{font-size:clamp(44px,8.8vw,74px)}.marketing-refresh .hero-visual{max-width:650px;width:100%;margin-inline:auto}.marketing-refresh .landing-gym-photo{height:230px}.marketing-refresh .landing-day{grid-template-columns:1fr;gap:24px;padding-top:54px}.landing-story{grid-template-columns:1fr;gap:30px;padding-top:54px}.landing-story figure{aspect-ratio:16/9;max-height:380px}.marketing-refresh .landing-tutorial .learning-panel{padding:26px;gap:24px;grid-template-columns:1fr}.marketing-refresh .section-heading{align-items:start}.marketing-refresh .hero-actions .btn{font-size:13px;justify-content:center}.marketing-refresh .marketing-section{padding-block:54px}}
@media(max-width:545px){.marketing-refresh .marketing-header{top:8px;width:calc(100% - 24px);height:66px;margin-top:8px;padding-inline:13px;gap:10px}.marketing-refresh .marketing-header .brand-wordmark{width:154px}.marketing-refresh .marketing-nav-actions{display:none}.marketing-refresh .hero{padding-top:38px;padding-bottom:35px}.marketing-refresh .hero .hero-title{font-size:clamp(40px,11.4vw,60px);letter-spacing:-.04em}.marketing-refresh .hero-desc{font-size:15px;line-height:1.85}.marketing-refresh .hero-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:24px}.marketing-refresh .hero-actions .btn{width:100%;min-height:48px}.marketing-refresh .hero-assurances{font-size:11px;gap:12px}.marketing-refresh .hero-demo-note{font-size:11px}.marketing-refresh .landing-gym-photo{height:190px}.marketing-refresh .hero-visual-label{font-size:9px;padding:12px}.marketing-refresh .tour-chrome{gap:5px}.marketing-refresh .tour-chrome>span:nth-child(2){font-size:10px}.marketing-refresh .tour-sample{font-size:8px}.marketing-refresh .tour-page-title h3{font-size:17px}.marketing-refresh .tour-stats strong{font-size:24px}.marketing-refresh .benefit-strip{grid-template-columns:1fr;padding-block:18px;gap:18px}.marketing-refresh .benefit-strip>div{padding:0;min-width:0;border:0}.marketing-refresh .section-heading{display:block}.marketing-refresh .section-heading>p{margin-top:20px}.marketing-refresh .section-heading h2,.landing-story h2{font-size:36px}.marketing-refresh .landing-tutorial .learning-panel{padding:22px 18px}.marketing-refresh .learning-panel h2{font-size:28px}.landing-sim-progress{padding:14px 12px;gap:7px;font-size:9px}.landing-sim-progress>span{gap:4px}.landing-sim-progress b{width:21px;height:21px;font-size:9px}.marketing-refresh .operations-release{padding:24px 20px}.marketing-refresh .operations-release h2{font-size:22px}.marketing-refresh .final-cta{padding:34px 24px}.marketing-refresh .final-cta h2{font-size:36px}.marketing-refresh .final-cta .cta-art{opacity:.15}.marketing-refresh .landing-toolkit a{min-height:100px;border-bottom:1px solid var(--line);padding:18px 0}.marketing-refresh [id]{scroll-margin-top:96px}.landing-story figcaption{padding-inline:18px;font-size:10px}.landing-story-links strong{font-size:13px}.landing-story-links small{font-size:12px}}
@supports(padding:max(0px)){.marketing-refresh .page-width{padding-left:max(clamp(20px,3.7vw,56px),env(safe-area-inset-left));padding-right:max(clamp(20px,3.7vw,56px),env(safe-area-inset-right))}}
@media(prefers-reduced-motion:reduce){.marketing-refresh .fv-enter{animation:none!important;transform:none!important;opacity:1!important}.marketing-refresh .landing-story img,.marketing-refresh .price-card:hover{transform:none!important}.marketing-refresh .marketing-header:after{display:none}}

/* workspace-polish.css */
/* Operational screens only. Public, authentication and private owner pages keep
   their own layouts. Dialogs are siblings of the verified .app-shell wrapper. */
.app-shell {
  --workspace-sidebar: 252px;
  --workspace-gutter: clamp(20px, 2.7vw, 40px);
  --workspace-card-space: clamp(20px, 2vw, 28px);
  min-height: 100dvh;
  font-size: 14px;
  line-height: 1.5;
}
.app-shell .sidebar {
  width: var(--workspace-sidebar);
  padding: 24px 16px 18px;
  background: #11151a;
  overscroll-behavior: contain;
  scrollbar-color: var(--control-line) transparent;
  scrollbar-width: thin;
}
.app-shell .main-column { margin-left: var(--workspace-sidebar); }
.app-shell .sidebar-logo { padding: 0 12px 24px; }
.app-shell .workspace-switch { padding: 12px; margin: 0 0 22px; border-radius: 10px; }
.app-shell .workspace-logo { width: 38px; height: 38px; flex-shrink: 0; border-radius: 8px; }
.app-shell .workspace-name { gap: 4px; }
.app-shell .workspace-name small { font-size: 12px; }
.app-shell .sidebar-nav { gap: 8px; padding: 0 2px 8px; }
.app-shell .nav-caption { font-size: 10px; letter-spacing: .13em; margin-top: 12px; }
.app-shell .nav-item { min-height: 46px; padding: 11px 13px; gap: 12px; border-radius: 8px; font-size: 14px; }
.app-shell .nav-item svg { width: 19px; height: 19px; }
.app-shell .nav-item.active { background: #152110; }
.app-shell .nav-more summary { min-height: 46px; border-radius: 8px; }
.app-shell .sidebar-bottom { padding-top: 16px; gap: 14px; }
.app-shell .sidebar-trial { padding: 15px; border-radius: 9px; }
.app-shell .sidebar-trial p { overflow-wrap: anywhere; }
.app-shell .profile-chip { min-width: 0; padding-top: 16px; }
.app-shell .profile-chip > span:nth-child(2) { min-width: 0; }
.app-shell .profile-chip strong { overflow-wrap: anywhere; }
.app-shell .topbar {
  position: sticky;
  top: 0;
  z-index: 9;
  min-height: 78px;
  height: auto;
  padding: 14px var(--workspace-gutter);
  background: #11151af5;
  backdrop-filter: blur(14px);
  gap: 18px;
}
.app-shell .topbar-left { font-size: 13px; gap: 12px; }
.app-shell .topbar-left strong { font-size: 14px; }
.app-shell .topbar-right { gap: 10px; }
.app-shell .topbar-quick { min-height: 44px; padding: 10px 16px; font-size: 13px; }
.app-shell .topbar-help { font-size: 13px; }
.app-shell .round-avatar { width: 44px; height: 44px; flex-shrink: 0; }
.app-shell .dashboard-content {
  max-width: 1480px;
  padding: 30px var(--workspace-gutter) 48px;
  min-width: 0;
}
.app-shell .dashboard-content :where(a, button, input, select, textarea, summary, [tabindex]) {
  scroll-margin-block: 108px 28px;
}
.app-shell .page-heading { gap: 20px; margin-bottom: 28px; align-items: flex-end; }
.app-shell .page-heading > div { min-width: 0; }
.app-shell .page-heading h1 {
  font-size: clamp(28px, 2.65vw, 36px);
  line-height: 1.15;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}
.app-shell .page-heading p { font-size: 14px; line-height: 1.7; max-width: 65ch; }
.app-shell .page-heading-action { gap: 10px; }
.app-shell .small-overline { font-size: 10px; letter-spacing: .14em; }
.app-shell .surface-card { border-radius: 12px; box-shadow: 0 4px 20px #00000012; }
.app-shell .btn { min-height: 44px; font-size: 14px; border-radius: 8px; line-height: 1.4; }
.app-shell .icon-btn { min-width: 44px; min-height: 44px; border-radius: 8px; }
.app-shell :where(button, a, summary):focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
.app-shell .workspace-status { padding: 16px 20px; border-radius: 10px; background: var(--surface); }
.app-shell .workspace-status > div { min-width: 0; }
.app-shell .workspace-status p { max-width: 67ch; }
.app-shell .cloud-bar { border-color: var(--line); background: var(--surface); border-radius: 10px; gap: 10px 16px; }
.app-shell .cloud-bar select { min-height: 44px; min-width: 0; border-color: var(--control-line); background: var(--bg); }
.app-shell .cloud-save-state { font-size: 12px; }
.app-shell .setup-mini { padding: 18px 20px; border-radius: 10px; }
.app-shell .stats-grid, .app-shell .finance-stats, .app-shell .closing-stats { gap: 16px; }
.app-shell .stat-card, .app-shell .closing-stat { padding: 22px; gap: 13px; }
.app-shell .stat-card > strong, .app-shell .closing-stat h2 {
  font-size: clamp(26px, 2.6vw, 34px);
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.app-shell .stat-top > span:first-child { font-size: 13px; line-height: 1.6; }
.app-shell .stat-change { font-size: 12px; line-height: 1.6; align-items: flex-start; }
.app-shell .stat-change svg { margin-top: 2px; }
.app-shell .stat-icon { width: 36px; height: 36px; border-radius: 9px; }
.app-shell :is(.chart-card, .attention-card, .recent-card, .quick-card, .checkin-card,
  .settings-card, .help-panel, .member-hub-card, .closing-table-card, .closing-cash-card,
  .closing-review-card, .closing-history-card) { padding: var(--workspace-card-space); }
.app-shell .card-head { flex-wrap: wrap; gap: 12px; }
.app-shell .card-head h2 { font-size: 18px; line-height: 1.4; }
.app-shell .card-head p { font-size: 14px; line-height: 1.6; max-width: 60ch; }
.app-shell .overview-layout, .app-shell .overview-layout.lower { gap: 22px; margin-top: 22px; }
.app-shell .overview-primary { gap: 12px; }
.app-shell .quick-actions { gap: 10px; }
.app-shell .quick-actions button { min-height: 54px; font-size: 14px; padding: 12px; border-radius: 8px; }
.app-shell .quick-actions span { width: 34px; height: 34px; border-radius: 7px; }
.app-shell .attention-list button { min-height: 68px; padding: 16px 4px; border-radius: 5px; }
.app-shell .attention-list strong, .app-shell .recent-item strong { font-size: 14px; line-height: 1.5; }
.app-shell .attention-list small, .app-shell .recent-item small { font-size: 12px; line-height: 1.5; }
.app-shell .recent-item { gap: 12px; padding: 16px 0; }
.app-shell .recent-amount { font-size: 13px; font-variant-numeric: tabular-nums; }
.app-shell .mini-stats { gap: 12px; }
.app-shell .mini-stats > div { min-width: 140px; border-radius: 10px; padding: 16px 18px; }
.app-shell .mini-stats strong { font-size: 26px; font-variant-numeric: tabular-nums; }
.app-shell .table-toolbar { padding: 20px; gap: 14px; }
.app-shell .search-field { height: 48px; min-width: 180px; border-radius: 8px; }
.app-shell .segmented { border-radius: 8px; gap: 4px; }
.app-shell .segmented button { min-height: 44px; border-radius: 5px; font-size: 13px; }
.app-shell .member-filter-control { font-size: 14px; }
.app-shell .member-filter-control select { border-radius: 8px; min-height: 46px; }
/* Local/scroll backgrounds shade only the edges with content still offscreen. */
.app-shell .table-scroll {
  min-width: 0;
  max-width: 100%;
  overscroll-behavior-x: contain;
  scrollbar-color: var(--gold) var(--bg);
  background:
    linear-gradient(to right, var(--surface) 30%, transparent) left center / 42px 100% local no-repeat,
    linear-gradient(to left, var(--surface) 30%, transparent) right center / 42px 100% local no-repeat,
    linear-gradient(to right, #00000060, transparent) left center / 14px 100% scroll no-repeat,
    linear-gradient(to left, #00000060, transparent) right center / 14px 100% scroll no-repeat;
}
.app-shell .table-scroll::-webkit-scrollbar { height: 10px; }
.app-shell .table-scroll::-webkit-scrollbar-track { background: var(--bg); }
.app-shell .table-scroll::-webkit-scrollbar-thumb { background: var(--gold-line); border: 2px solid var(--bg); border-radius: 10px; }
.app-shell .table-scroll:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: -3px; }
.app-shell .data-table th { font-size: 11px; letter-spacing: .04em; padding: 16px 20px; }
.app-shell .data-table td { font-size: 14px; line-height: 1.6; padding: 16px 20px; }
.app-shell .data-table td strong { font-size: 14px; line-height: 1.5; }
.app-shell .member-cell { min-width: 200px; gap: 12px; }
.app-shell .member-cell > div { min-width: 0; }
.app-shell .member-cell strong { white-space: normal; max-width: 32ch; overflow-wrap: anywhere; }
.app-shell .member-avatar { width: 38px; height: 38px; border-radius: 8px; flex-shrink: 0; }
.app-shell .table-actions { gap: 8px; align-items: center; }
.app-shell .table-actions > button { min-width: 44px; min-height: 44px; border-radius: 7px; }
.app-shell .member-tools summary { border-radius: 7px; }
.app-shell .table-bottom { padding: 16px 20px; font-size: 12px; align-items: center; }
.app-shell .table-bottom > span { line-height: 1.7; }
.app-shell .member-hub-grid, .app-shell .member-hub-history-grid { gap: 22px; }
.app-shell .member-hub-access { border-radius: 10px; }
.app-shell .member-hub-total { padding: 16px; border-radius: 8px; }
.app-shell .member-hub-facts { gap: 22px 24px; }
.app-shell .member-hub-facts dt { font-size: 12px; }
.app-shell .member-hub-facts dd { font-size: 15px; }
.app-shell .member-hub-service-actions { gap: 10px; }
.app-shell .closing-section-head h2 { font-size: 21px; }
.app-shell .closing-stat-breakdown { gap: 10px; }
.app-shell .closing-stat small { font-size: 12px; line-height: 1.7; }
.app-shell .closing-bottom { gap: 22px; }
.app-shell .closing-cash-metrics > div { border-radius: 8px; }
.app-shell .closing-breakdown summary, .app-shell .closing-expenses summary,
.app-shell .closing-voids summary { min-height: 52px; }
.app-shell .closing-note { font-size: 14px; line-height: 1.7; }
.app-shell .report-period { font-size: 13px; gap: 10px; }
.app-shell .report-period input { min-height: 44px; min-width: 0; font-size: 14px; border-radius: 8px; }
.app-shell .modal-form { gap: 20px; }
.app-shell .modal-form label { font-size: 14px; line-height: 1.5; }
.app-shell .modal-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 16px;
}
.app-shell .modal-form textarea { min-height: 110px; }
.app-shell .settings-rows > div { align-items: flex-start; gap: 20px; }
.app-shell .settings-rows strong { max-width: 65%; }
.app-shell .team-row > div, .app-shell .history-row > div { min-width: 0; }
.app-shell .team-row strong, .app-shell .team-row small, .app-shell .history-row small { overflow-wrap: anywhere; }
.app-shell .team-row select { min-height: 44px; font-size: 14px; max-width: 100%; }
.app-shell ~ .modal-backdrop { padding: 24px; }
.app-shell ~ .modal-backdrop .modal {
  max-height: calc(100dvh - 48px);
  padding: 28px;
  border-radius: 16px;
  scroll-padding-block: 20px;
}
.app-shell ~ .modal-backdrop .modal:not(.modal-wide) { width: min(100%, 550px); }
.app-shell ~ .modal-backdrop .modal-head { gap: 16px; margin-bottom: 24px; }
.app-shell ~ .modal-backdrop .modal-head > div { min-width: 0; }
.app-shell ~ .modal-backdrop .modal-head h2 { font-size: 24px; line-height: 1.25; overflow-wrap: anywhere; }
.app-shell ~ .modal-backdrop .icon-btn { min-width: 44px; min-height: 44px; flex-shrink: 0; }
.app-shell ~ .modal-backdrop .modal-form { gap: 20px; }
.app-shell ~ .modal-backdrop .modal-form label { font-size: 14px; line-height: 1.5; }
.app-shell ~ .modal-backdrop .modal-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 48px;
  font-size: 16px;
  padding: 12px 14px;
  border-radius: 8px;
}
.app-shell ~ .modal-backdrop .modal-actions { gap: 12px; padding-top: 22px; }
.app-shell ~ .modal-backdrop .modal-actions .btn { min-height: 46px; border-radius: 8px; font-size: 14px; }

@media (hover: hover) and (pointer: fine) {
  .app-shell .quick-actions button { transition: border-color .18s ease, background-color .18s ease, transform .18s ease; }
  .app-shell .quick-actions button:hover { transform: translateX(2px); }
  .app-shell .nav-item, .app-shell .attention-list button { transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
}
@media (max-width: 1180px) {
  .app-shell { --workspace-sidebar: 236px; --workspace-gutter: 24px; }
  .app-shell .sidebar-logo { padding-inline: 8px; }
  .app-shell .sidebar-logo .brand-wordmark { width: 176px; }
  .app-shell .topbar-left > span, .app-shell .topbar-left > svg { display: none; }
  .app-shell .member-hub-grid, .app-shell .member-hub-history-grid { grid-template-columns: minmax(0, 1fr); }
  .app-shell .overview-layout, .app-shell .overview-layout.lower { grid-template-columns: minmax(0, 1fr); }
  .app-shell .closing-stats, .app-shell .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .app-shell .attendance-layout, .app-shell .feedback-layout { grid-template-columns: minmax(0, 1fr); }
  .app-shell .page-heading { flex-wrap: wrap; align-items: flex-start; }
  .app-shell .finance-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Match the existing 780px menu logic so hidden navigation stays inert. */
@media (max-width: 780px) {
  .app-shell { --workspace-gutter: 22px; --workspace-sidebar: min(290px, calc(100vw - 24px)); }
  .app-shell .sidebar { padding-top: 22px; }
  .app-shell .sidebar-logo { padding-inline: 8px; }
  .app-shell .sidebar-logo .brand-wordmark { width: 183px; max-width: 100%; }
  .app-shell .main-column { margin-left: 0; }
  .app-shell .topbar { min-height: 72px; padding-block: 12px; gap: 12px; }
  .app-shell .topbar-left { gap: 8px; }
  .app-shell .topbar-left strong { white-space: normal; line-height: 1.3; }
  .app-shell .dashboard-content { padding-top: 24px; }
  .app-shell .workspace-status { align-items: stretch; }
  .app-shell .workspace-status-access { justify-content: flex-start; }
  .app-shell .table-toolbar { flex-direction: column; align-items: stretch; }
  .app-shell .table-toolbar .search-field { width: 100%; min-width: 0; max-width: none; flex: auto; }
  .app-shell .member-filter-control { width: 100%; justify-content: space-between; }
  .app-shell .member-filter-control select { flex: 1; min-width: 0; }
  .app-shell .segmented { width: 100%; }
  .app-shell .segmented button { flex: 1; white-space: normal; }
  .app-shell .cloud-bar select { max-width: 100%; }
  .app-shell .mini-stats > div { min-width: 0; }
  .app-shell .settings-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 545px) {
  .app-shell { --workspace-gutter: 16px; --workspace-card-space: 20px; }
  .app-shell .page-heading { gap: 18px; margin-bottom: 24px; }
  .app-shell .page-heading h1 { font-size: 29px; }
  .app-shell .page-heading-action { width: 100%; gap: 10px; }
  .app-shell .page-heading-action .btn { flex: 1 1 140px; padding: 11px 14px; }
  .app-shell .stat-card, .app-shell .closing-stat { padding: 17px 15px; }
  .app-shell .stats-grid, .app-shell .finance-stats, .app-shell .closing-stats { gap: 12px; }
  .app-shell .stat-card > strong, .app-shell .closing-stat h2 { font-size: clamp(22px, 6.4vw, 30px); }
  .app-shell .stat-top > span:first-child { font-size: 12px; }
  .app-shell .stat-change { font-size: 12px; }
  .app-shell .stat-icon { width: 30px; height: 30px; }
  .app-shell .table-toolbar { padding: 17px; gap: 12px; }
  .app-shell .data-table th, .app-shell .data-table td { padding: 16px; }
  .app-shell .table-bottom { padding: 16px; gap: 12px; }
  .app-shell .mini-stats { gap: 8px; }
  .app-shell .mini-stats > div { padding: 14px 10px; }
  .app-shell .mini-stats span { font-size: 12px; }
  .app-shell .workspace-status, .app-shell .setup-mini { padding: 16px; }
  .app-shell .member-hub-service-actions { grid-column: 1 / -1; }
  .app-shell .member-hub-service-actions .btn, .app-shell .member-hub-actions .btn { flex: 1 1 140px; }
  .app-shell .member-hub-pagination { align-items: stretch; }
  .app-shell .member-hub-pagination > div { justify-content: space-between; }
  .app-shell .member-hub-facts { gap: 18px; }
  .app-shell .closing-header-actions .report-period { min-width: 0; justify-content: space-between; }
  .app-shell .closing-header-actions .report-period input { flex: 1; max-width: 190px; }
  .app-shell .closing-cash-summary, .app-shell .closing-review-summary,
  .app-shell .closing-expense-methods { grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); }
  .app-shell .closing-cash-metrics { grid-template-columns: minmax(0, 1fr); }
  .app-shell .team-row .team-actions { flex-wrap: wrap; }
  .app-shell .team-row .team-actions select { flex: 1 1 150px; }
  .app-shell .team-row .team-actions .btn { flex: 1 1 120px; }
  .app-shell .settings-rows > div { gap: 12px; }
  .app-shell .settings-rows strong { max-width: 60%; }
  .app-shell ~ .modal-backdrop { padding: 12px; align-items: center; }
  .app-shell ~ .modal-backdrop .modal { max-height: calc(100dvh - 24px); padding: 22px 20px; border-radius: 13px; }
  .app-shell ~ .modal-backdrop .modal-head h2 { font-size: 23px; }
  .app-shell ~ .modal-backdrop .modal-actions .btn { flex: 1 1 120px; }
  .app-shell ~ .modal-backdrop .form-row { grid-template-columns: minmax(0, 1fr); }
  .app-shell ~ .modal-backdrop .import-pick { flex-direction: column; align-items: stretch; }
}
@media (max-width: 460px) {
  .app-shell .topbar { flex-wrap: wrap; gap: 8px; }
  .app-shell .topbar-left { flex: 1 1 100%; }
  .app-shell .topbar-right { flex: 1 1 100%; justify-content: flex-end; gap: 10px; }
  .app-shell .topbar-quick { flex: 1; font-size: 14px; }
  .app-shell .topbar-help { min-width: 44px; }
  .app-shell .dashboard-content :where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-top: 150px; }
  .app-shell .member-hub-facts { grid-template-columns: minmax(0, 1fr); }
  .app-shell .stat-icon { display: none; }
  .app-shell .recent-item { flex-wrap: wrap; }
  .app-shell .recent-amount { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell .sidebar, .app-shell .quick-actions button, .app-shell .nav-item,
  .app-shell .attention-list button { transition: none; }
  .app-shell .quick-actions button:hover { transform: none; }
}
@media print {
  .app-shell .sidebar, .app-shell .topbar { display: none !important; }
  .app-shell .main-column { margin-left: 0; }
  .app-shell .dashboard-content { padding: 0; max-width: none; }
  .app-shell .surface-card { box-shadow: none; }
  .app-shell .table-scroll { overflow: visible; background: none; }
  .app-shell .data-table { white-space: normal; }
  .app-shell .stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .app-shell ~ .modal-backdrop { position: static; padding: 0; background: white; }
  .app-shell ~ .modal-backdrop .modal { max-height: none; box-shadow: none; }
}

/* Daily dashboard hierarchy and role-focused service actions. */
.app-shell .overview-primary { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0 0 24px; }
.app-shell .overview-primary > .btn { min-height: 52px; padding-inline: 22px; font-size: 15px; }
.app-shell .overview-secondary { display: flex; flex-wrap: wrap; gap: 9px; }
.app-shell .overview-secondary .btn { min-height: 44px; }
.app-shell .overview-count { display: inline-grid; min-width: 22px; height: 22px; place-items: center; border-radius: 999px; background: #ffffff16; font-size: 12px; }
.app-shell .fv-dashboard-readonly { margin: -10px 0 22px; color: var(--muted); }
.app-shell .fv-overview-attention { margin-bottom: 22px; }
.app-shell .fv-overview-queue { margin-top: 20px; border-top: 1px solid var(--control-line); padding-top: 18px; }
.app-shell .fv-overview-queue-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 10px; }
.app-shell .fv-overview-queue-list { display: grid; }
.app-shell .fv-queue-row { display: grid; grid-template-columns: minmax(180px, 1.5fr) minmax(90px, .6fr) minmax(210px, 1fr); align-items: center; gap: 16px; padding: 13px 0; border-top: 1px solid var(--control-line); }
.app-shell .fv-queue-member { display: flex; align-items: center; gap: 11px; min-width: 0; }
.app-shell .fv-queue-member > div { display: grid; min-width: 0; }
.app-shell .fv-queue-member small { color: var(--muted); overflow-wrap: anywhere; }
.app-shell .fv-queue-actions { display: flex; justify-content: flex-end; gap: 8px; }
.app-shell .fv-queue-actions .btn { min-height: 42px; padding: 9px 12px; }
.app-shell .fv-overview-lower { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 18px; margin-top: 20px; }
.app-shell .frontdesk-primary { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: clamp(22px, 4vw, 36px); margin-bottom: 20px; border: 1px solid var(--control-line); border-radius: 12px; background: linear-gradient(120deg, #152110, #1b1e22 78%); }
.app-shell .frontdesk-primary h2 { margin: 8px 0 4px; font-size: clamp(22px, 3vw, 30px); }
.app-shell .frontdesk-primary p, .app-shell .frontdesk-tasks .card-head p { margin: 0; color: var(--muted); }
.app-shell .frontdesk-primary > .btn { min-height: 50px; padding-inline: 22px; }
.app-shell .frontdesk-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.app-shell .frontdesk-tasks { margin-bottom: 20px; }
.app-shell .frontdesk-task-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.app-shell .frontdesk-task { display: flex; min-width: 0; min-height: 58px; justify-content: space-between; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--control-line); border-radius: 9px; background: #ffffff05; color: var(--ink); text-align: left; cursor: pointer; }
.app-shell .frontdesk-task > span { display: flex; min-width: 0; align-items: center; gap: 10px; }
.app-shell .frontdesk-task strong { overflow-wrap: anywhere; }
.app-shell .frontdesk-task:hover { border-color: #C8FF2E; background: #C8FF2E10; }
.app-shell .frontdesk-task:focus-visible, .app-shell .overview-primary :focus-visible, .app-shell .fv-overview-queue :focus-visible { outline: 3px solid #DCFF6B; outline-offset: 3px; }
.app-shell .frontdesk-note { margin: 16px 0 0; color: var(--muted); }
.app-shell .fv-overview-queue .member-profile-link { padding: 0; }
.app-shell .fv-overview-queue .member-profile-link strong { font-size: 14px; }
@media (max-width: 900px) {
  .app-shell .fv-overview-lower { grid-template-columns: minmax(0, 1fr); }
  .app-shell .fv-queue-row { grid-template-columns: minmax(0, 1fr) auto; }
  .app-shell .fv-queue-status { justify-self: end; }
  .app-shell .fv-queue-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 600px) {
  .app-shell .overview-primary { align-items: stretch; }
  .app-shell .overview-primary > .btn { width: 100%; justify-content: center; }
  .app-shell .overview-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell .overview-secondary .btn { min-width: 0; justify-content: center; white-space: normal; }
  .app-shell .fv-overview-queue-head { align-items: flex-start; flex-direction: column; }
  .app-shell .fv-queue-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .app-shell .fv-queue-status { justify-self: start; }
  .app-shell .fv-queue-actions { grid-column: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell .fv-queue-actions .btn { justify-content: center; }
  .app-shell .frontdesk-primary { align-items: stretch; flex-direction: column; }
  .app-shell .frontdesk-primary > .btn { width: 100%; justify-content: center; }
  .app-shell .frontdesk-task-list { grid-template-columns: minmax(0, 1fr); }
  .app-shell .frontdesk-task { min-height: 54px; }
}

/* Keep manager-only member editing controls out of front-desk task routes. */
.app-shell.role-front-desk [data-act="edit-member"], .app-shell.role-front-desk [data-act="freeze-member"], .app-shell.role-front-desk [data-act="edit-plan"] { display: none !important; }

@media (max-width: 545px) {
  body:has(.overview-primary) #ai-widget-root .ai-launcher { position: static; display: block; width: max-content; max-width: calc(100vw - 32px); margin: 12px 16px 20px auto; }
}

.app-shell .frontdesk-renewal-summary { margin: 0 0 14px; color: var(--gold-hover); font-size: 13px; font-weight: 600; }

/* workspace-layout.css */
/* A compact rail on larger windows; the existing mobile drawer stays intact. */
.app-shell .fv-sidebar-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; color: var(--muted); border: 1px solid var(--control-line); background: var(--surface); }
.app-shell .fv-sidebar-toggle:hover { color: var(--gold-hover); border-color: var(--gold); background: var(--surface-raised); }
.app-shell .sidebar, .app-shell .main-column { transition: width .2s ease, margin-left .2s ease; }
.app-shell .sidebar { overflow-x: hidden; }
.app-shell .overview-layout.overview-priority { grid-template-columns: minmax(0, 1fr); }
.app-shell .overview-priority > .chart-card { order: -1; }
.app-shell .overview-priority > .attention-card { min-width: 0; }
.app-shell .overview-priority .pure-chart { min-height: 340px; height: clamp(340px, 32vw, 420px); margin-top: 20px; }
.app-shell .overview-priority .pure-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.app-shell .overview-priority .chart-key { gap: 24px; font-size: 13px; margin-top: 20px; }
.app-shell .overview-priority .chart-caption { line-height: 1.65; margin-top: 14px; }
.app-shell .overview-priority .attention-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 24px; }
.app-shell .overview-priority .attention-list button { min-width: 0; }
@media (min-width: 781px) {
  .app-shell.sidebar-retracted { --workspace-sidebar: 80px; }
  .app-shell.sidebar-retracted .sidebar { width: 80px; padding: 22px 10px 18px; }
  .app-shell.sidebar-retracted .main-column { margin-left: 80px; }
  .app-shell.sidebar-retracted .sidebar-logo { padding: 0 0 22px; display: flex; justify-content: center; }
  .app-shell.sidebar-retracted .sidebar-logo .brand { display: block; width: 38px; height: 38px; background: url('./assets/brand/fitness-vault-ph-logo-icon.svg') center/contain no-repeat; }
  .app-shell.sidebar-retracted .brand-wordmark { display: none; }
  .app-shell.sidebar-retracted .workspace-switch { justify-content: center; padding: 8px 0; margin-bottom: 16px; border-color: transparent; background: transparent; }
  .app-shell.sidebar-retracted .workspace-name, .app-shell.sidebar-retracted .workspace-switch > svg { display: none; }
  .app-shell.sidebar-retracted .sidebar-nav { padding-inline: 0; gap: 10px; }
  .app-shell.sidebar-retracted .nav-group { display: grid; gap: 6px; }
  .app-shell.sidebar-retracted .nav-caption, .app-shell.sidebar-retracted .nav-more > summary { display: none; }
  .app-shell.sidebar-retracted .nav-more { padding-block: 10px 0; }
  .app-shell.sidebar-retracted .nav-more > div { gap: 6px; padding-top: 0; }
  .app-shell.sidebar-retracted .nav-item { justify-content: center; min-width: 44px; min-height: 46px; padding: 12px; gap: 0; }
  .app-shell.sidebar-retracted .nav-item > span, .app-shell.sidebar-retracted .nav-item > small, .app-shell.sidebar-retracted .nav-item .new-dot { display: none; }
  .app-shell.sidebar-retracted .nav-item > svg { width: 21px; height: 21px; flex: 0 0 21px; }
  .app-shell.sidebar-retracted .sidebar-trial { display: none; }
  .app-shell.sidebar-retracted .sidebar-bottom { padding-top: 14px; }
  .app-shell.sidebar-retracted .profile-chip { justify-content: center; gap: 0; padding-top: 14px; }
  .app-shell.sidebar-retracted .profile-chip > span:nth-child(2), .app-shell.sidebar-retracted .profile-chip > svg { display: none; }
}
@media (max-width: 900px) {
  .app-shell .overview-priority .attention-list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 780px) {
  .app-shell .fv-sidebar-toggle { display: none; }
  .app-shell .overview-priority .pure-chart { min-height: 260px; height: 260px; }
  .app-shell .overview-priority .chart-key { gap: 16px; flex-wrap: wrap; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell .sidebar, .app-shell .main-column { transition: none; }
}
@media print {
  .app-shell .fv-sidebar-toggle { display: none !important; }
  .app-shell.sidebar-retracted .main-column { margin-left: 0 !important; }
}

/* member-qr.css */
.fv-member-qr { display: grid; gap: 18px; min-width: 0; padding-block: 8px 18px; }
.fv-member-qr-card { display: flex; flex-direction: column; align-items: center; gap: 12px; width: min(100%, 350px); padding: 28px; margin-inline: auto; color: #12151a; background: #ffffff; border: 1px solid #e6e3db; border-radius: 12px; text-align: center; }
.fv-member-qr-brand { font-family: var(--heading); font-size: 17px; font-weight: 700; letter-spacing: .08em; line-height: 1.4; }
.fv-member-qr-brand span { color: #725627; }
.fv-member-qr-gym { margin: 0; font-size: 13px; line-height: 1.5; color: #4b5056; overflow-wrap: anywhere; }
.fv-member-qr-image { width: min(100%, 264px); aspect-ratio: 1; flex: 0 0 auto; }
.fv-member-qr-image svg { display: block; width: 100%; height: 100%; }
.fv-member-qr-name { margin-top: 6px; font-size: 20px; line-height: 1.4; overflow-wrap: anywhere; }
.fv-member-qr-id { max-width: 100%; color: #4b5056; font-size: 10px; line-height: 1.65; overflow-wrap: anywhere; }
.fv-member-qr-note { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.fv-member-qr-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.fv-member-qr-actions .btn { min-height: 44px; }
.fv-member-qr-feedback { min-height: 1.5em; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.fv-member-qr-print { display: none; }
@media (max-width: 480px) {
  .fv-member-qr-card { padding: 20px; }
  .fv-member-qr-actions .btn { width: 100%; }
}
@media print {
  body.fv-print-member-qr > * { display: none !important; }
  body.fv-print-member-qr > .fv-member-qr-print { display: block !important; position: static !important; width: 100% !important; margin: 0 !important; padding: 20mm 0 !important; color: #000000 !important; background: #ffffff !important; }
  body.fv-print-member-qr { padding: 0 !important; background: #ffffff !important; }
  .fv-member-qr-print .fv-member-qr-card { width: 85mm; margin: 0 auto; padding: 7mm; break-inside: avoid; box-shadow: none; }
  .fv-member-qr-print .fv-member-qr-image { width: 55mm; }
}

/* member-import-assistant.css */
.member-ai-assistant{margin-bottom:22px;border:1px solid #524527;border-radius:16px;background:linear-gradient(135deg,#242117,#171a18 65%);overflow:hidden;color:var(--text,#f2f3ee)}
.member-ai-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:20px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.member-ai-toggle>span:nth-child(2){display:grid;gap:6px;flex:1;min-width:0}.member-ai-toggle strong{font-size:16px;line-height:1.4}.member-ai-overline{display:block;font-size:10px;letter-spacing:.13em;font-weight:800;color:var(--gold,#e8c36b);line-height:1.5}.member-ai-subtitle{font-size:12px;line-height:1.6;color:#b6b9ad}.member-ai-mark{display:grid;place-items:center;width:42px;height:42px;flex:none;border:1px solid #635333;border-radius:12px;background:#302a1d;color:var(--gold,#e8c36b);font-size:22px}.member-ai-chevron{color:var(--gold,#e8c36b);font-size:24px;font-weight:400}.member-ai-toggle:hover{background:#ffffff04}.member-ai-toggle:focus-visible,.member-ai-assistant button:focus-visible,.member-ai-assistant input:focus-visible,.member-ai-assistant textarea:focus-visible{outline:2px solid var(--gold,#e8c36b);outline-offset:3px}
.member-ai-panel{padding:0 20px 20px}.member-ai-tabs{display:flex;gap:4px;padding:4px;border:1px solid #353a31;background:#111511;border-radius:10px;margin:0 0 20px}.member-ai-tabs button{flex:1;min-height:42px;padding:9px 12px;border:0;border-radius:7px;background:transparent;color:#c5c8ba;font-size:12px;font-weight:700;cursor:pointer}.member-ai-tabs button[aria-selected=true]{background:#3a321f;color:#f1d493;box-shadow:inset 0 0 0 1px #615033}.member-ai-tabs button:disabled{cursor:wait;opacity:.6}.member-ai-source{display:grid;gap:14px}.member-ai-source p,.member-ai-unavailable p{font-size:12px;line-height:1.7;margin:0;color:#bfc2b6}.member-ai-file{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:15px;border:1px dashed #65604d;border-radius:10px;background:#171b16;font-size:12px;font-weight:700;color:#e8e7dc;cursor:pointer}.member-ai-file input{max-width:100%;min-width:0;flex:1;font-size:11px;color:#bfc2b6}.member-ai-file input::file-selector-button{padding:7px 10px;margin-right:10px;border:1px solid #534a31;border-radius:6px;background:#332b1c;color:#f0d38f;font:inherit;cursor:pointer}.member-ai-paste-label{display:grid;gap:8px;font-size:12px;color:#c7c9bd}.member-ai-paste-label textarea{resize:vertical;min-height:90px;max-height:230px;box-sizing:border-box;width:100%;border:1px solid #363d30;background:#101510;border-radius:8px;padding:12px;color:#ecefe3;font-size:12px;font-family:inherit}.member-ai-source .member-ai-privacy{padding:12px 14px;background:#ffffff04;border:1px solid #343b2f;border-radius:8px;font-size:11px;line-height:1.7}.member-ai-source .member-ai-privacy strong{color:#f1d493}.member-ai-source .member-ai-status{font-size:11px;color:#d4cba8}.member-ai-analyze-actions,.member-ai-review-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.member-ai-analyze-actions>.btn,.member-ai-review-actions>.btn{min-height:42px}.member-ai-inline{border:0;background:transparent;color:#d1bb84;cursor:pointer;font-size:11px;text-decoration:underline;text-underline-offset:3px;min-height:40px;padding:5px}.member-ai-assistant button:disabled{opacity:.45;cursor:not-allowed}.member-ai-unavailable{padding:14px;background:#ffffff04;border:1px solid #3e4133;border-radius:10px}.member-ai-unavailable strong{display:block;font-size:13px;color:#e7d099;margin-bottom:6px}.member-ai-photo{display:flex;align-items:center;gap:14px;padding:12px;background:#111611;border:1px solid #343c2e;border-radius:10px}.member-ai-photo img{width:86px;height:100px;object-fit:contain;border-radius:5px;background:#20251d}.member-ai-photo span,.member-ai-file-name{overflow-wrap:anywhere}.member-ai-source .member-ai-fineprint,.member-ai-fineprint{font-size:11px;line-height:1.7;color:#a8ae9e}.member-ai-error{margin-top:16px;overflow-wrap:anywhere}
.member-ai-review{margin-top:24px;padding-top:22px;border-top:1px solid #4b4833}.member-ai-review-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.member-ai-review-head h3{font-size:16px;margin:6px 0;color:#f0f0e6;line-height:1.4}.member-ai-review-head p{font-size:11px;line-height:1.5;color:#b4bcab;margin:0}.member-ai-review-head button{flex:none;min-height:40px}.member-ai-notes{padding:12px 12px 12px 30px;border:1px solid #4e4730;border-radius:8px;background:#302a1a;color:#d6c598;font-size:11px;line-height:1.7}.member-ai-rows{display:grid;gap:12px;max-height:430px;overflow:auto;overscroll-behavior:contain;padding:2px 4px 4px 2px;scrollbar-color:#6b6040 #171b15}.member-ai-row{padding:14px;border:1px solid #373e30;border-radius:10px;background:#111710}.member-ai-row.selected{border-color:#665b38;background:#1b1f13}.member-ai-row-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}.member-ai-row-title>label{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#d5d9c7;cursor:pointer}.member-ai-row input[type=checkbox],.member-ai-consent input{accent-color:var(--gold,#e8c36b);width:16px;height:16px;flex:none;cursor:pointer}.member-ai-row-state{padding:4px 7px;border-radius:5px;background:#263524;color:#becfb4;font-size:10px;font-weight:600}.member-ai-row-state.needs-review{background:#3d331d;color:#ebd19a}.member-ai-row-state.needs-edit{background:#3c2720;color:#edc1a6}.member-ai-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.member-ai-fields label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#bbc2af}.member-ai-fields label small{font-size:9px;color:#98a08a;display:inline}.member-ai-fields input{width:100%;min-width:0;box-sizing:border-box;border:1px solid #3b4432;border-radius:6px;background:#0b100a;padding:9px 10px;color:#eff2e7;font-size:12px;font-family:inherit;min-height:39px}.member-ai-fields input:focus{border-color:#be9e55}.member-ai-row-warnings{margin:12px 0 0;padding-left:17px;font-size:10px;line-height:1.7;color:#cbbb8e}.member-ai-date-note{margin:14px 0;padding:12px;background:#3c321b66;border:1px solid #51452b;border-radius:8px;font-size:11px;line-height:1.7;color:#d8c9a0}.member-ai-date-note strong{color:#f3deae}.member-ai-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.7;color:#d4dbc7;margin:16px 0;cursor:pointer}.member-ai-consent input{margin-top:3px}.member-ai-review-actions{margin-top:14px}.member-ai-review-actions+.member-ai-fineprint{margin:12px 0 0}
@media(min-width:760px){.member-ai-fields{grid-template-columns:1.2fr 1.2fr 1fr 1fr}.member-ai-fields label small{min-height:0}.member-ai-rows{max-height:460px}}
@media(max-width:480px){.member-ai-toggle{padding:16px;gap:10px}.member-ai-toggle strong{font-size:14px}.member-ai-mark{width:32px;height:36px;border-radius:9px;font-size:18px}.member-ai-subtitle{font-size:11px}.member-ai-panel{padding:0 14px 16px}.member-ai-tabs button{font-size:11px;padding:8px}.member-ai-file{padding:12px;gap:10px;align-items:flex-start;flex-direction:column}.member-ai-file input{width:100%}.member-ai-fields{grid-template-columns:1fr;gap:10px}.member-ai-review-head{align-items:flex-start;flex-direction:column}.member-ai-review-head h3{font-size:15px}.member-ai-review-head button{width:100%}.member-ai-review-actions>.btn,.member-ai-analyze-actions>.btn{width:100%;justify-content:center}.member-ai-row{padding:12px}.member-ai-rows{max-height:480px}.member-ai-row-state{font-size:9px}.member-ai-privacy{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.member-ai-assistant *{scroll-behavior:auto!important}}

/* inquiry-chat.css */
.fv-inquiry{--fv-guide-gold:#efd16b;--fv-guide-paper:#fffdf5;--fv-guide-dark:#171a16;position:fixed;z-index:115;right:24px;bottom:22px;max-width:calc(100vw - 32px);font-family:inherit;color:var(--fv-guide-paper)}
.fv-inquiry button,.fv-inquiry input{font:inherit}.fv-inquiry-launcher{display:flex;align-items:center;gap:11px;border:1px solid #857741;border-radius:999px;background:var(--fv-guide-dark);color:var(--fv-guide-paper);min-height:52px;padding:12px 20px;box-shadow:0 8px 28px #0003;cursor:pointer;font-weight:700;font-size:13px;transition:transform .2s,box-shadow .2s}.fv-inquiry-launcher svg{color:var(--fv-guide-gold)}.fv-inquiry-launcher:hover{transform:translateY(-3px);box-shadow:0 12px 32px #0004}.fv-inquiry-launcher.is-open{background:var(--fv-guide-gold);color:var(--fv-guide-dark)}.fv-inquiry-launcher.is-open svg{color:inherit}.fv-inquiry-panel{position:absolute;bottom:66px;right:0;width:390px;max-width:calc(100vw - 32px);height:600px;max-height:calc(100dvh - 112px);display:flex;flex-direction:column;overflow:hidden;background:var(--fv-guide-paper);color:var(--fv-guide-dark);border:1px solid #d4c797;border-radius:22px;box-shadow:0 24px 80px #0004;animation:fv-guide-open .2s ease-out}.fv-inquiry-panel[hidden]{display:none}.fv-inquiry-header{padding:21px 18px;display:flex;align-items:center;gap:12px;background:var(--fv-guide-dark);color:var(--fv-guide-paper);flex-shrink:0}.fv-inquiry-mark{display:grid;place-items:center;width:39px;height:39px;border:1px solid #6d633c;border-radius:12px;color:var(--fv-guide-gold);flex-shrink:0}.fv-inquiry-header p{margin:0 0 4px;font-size:9px;letter-spacing:.14em;color:var(--fv-guide-gold);font-weight:700}.fv-inquiry-header h2{margin:0;font-size:16px;font-weight:700;line-height:1.25}.fv-inquiry-header span{display:block;margin-top:5px;color:#cbcfc3;font-size:11px}.fv-inquiry-close{margin-left:auto;align-self:flex-start;background:none;border:0;color:#fffdf5;width:32px;height:32px;font-size:24px!important;cursor:pointer;flex-shrink:0;border-radius:7px}.fv-inquiry-close:hover{background:#ffffff1a}.fv-inquiry-log{overflow-y:auto;overscroll-behavior:contain;padding:18px;display:flex;flex-direction:column;gap:16px;flex:1;min-height:100px;scrollbar-width:thin;scrollbar-color:#c5bc9d transparent}.fv-inquiry-message{max-width:100%;border-radius:14px;padding:12px 14px;background:#f0ede1;font-size:13px;line-height:1.65;overflow-wrap:anywhere}.fv-inquiry-message p{margin:0;white-space:pre-line}.fv-inquiry-message-name{display:block;margin-bottom:4px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#615d4b}.fv-inquiry-user{background:#252a22;color:#fffdf5;align-self:flex-end;max-width:92%}.fv-inquiry-user .fv-inquiry-message-name{color:#e9d789}.fv-inquiry-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.fv-inquiry-link{color:#22271c;border:1px solid #ad9850;border-radius:7px;text-decoration:none;padding:6px 9px;background:#f6e5a4;font-size:11px;font-weight:700}.fv-inquiry-link:hover{background:#ecd27d}.fv-inquiry-topics{display:flex;overflow-x:auto;gap:7px;flex-shrink:0;padding:10px 16px 5px;scrollbar-width:thin}.fv-inquiry-topics button{white-space:nowrap;border:1px solid #d9d2bd;border-radius:999px;background:white;color:#545849;padding:8px 11px;font-size:11px;cursor:pointer;min-height:34px}.fv-inquiry-topics button:hover{background:#f1e7c7;border-color:#bca456}.fv-inquiry-form{display:flex;gap:7px;flex-shrink:0;margin:12px 16px 9px;padding:6px;border:1px solid #cbc3a9;border-radius:12px;background:white}.fv-inquiry-form input{width:0;flex:1;border:0;min-height:36px;background:none;padding:7px 8px;font-size:12px;color:#20231c;outline:none}.fv-inquiry-form:focus-within{border-color:#8d762e;box-shadow:0 0 0 2px #dec77766}.fv-inquiry-form button{background:var(--fv-guide-dark);color:var(--fv-guide-gold);border:0;border-radius:8px;width:38px;min-height:38px;font-size:24px;cursor:pointer}.fv-inquiry-note{margin:0;padding:0 18px 14px;font-size:10px;line-height:1.5;color:#6d6d5b;flex-shrink:0}.fv-inquiry button:focus-visible,.fv-inquiry a:focus-visible{outline:3px solid #b28a17;outline-offset:3px}.fv-inquiry-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fv-guide-open{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.fv-inquiry{right:16px;bottom:16px}.fv-inquiry-launcher{min-height:48px;padding:10px 16px}.fv-inquiry-panel{bottom:61px;height:570px;max-height:calc(100dvh - 96px);border-radius:18px}.fv-inquiry-header{padding:17px 16px}.fv-inquiry-log{padding:15px}}
@media(prefers-reduced-motion:reduce){.fv-inquiry-panel{animation:none}.fv-inquiry-launcher{transition:none}.fv-inquiry-launcher:hover{transform:none}}
@media print{.fv-inquiry{display:none}}

/* desktop-downloads.css */
.fv-desktop-download{--fv-desktop-dark:#191d17;--fv-desktop-gold:#dac36c;scroll-margin-top:110px}.fv-desktop-intro{display:grid;grid-template-columns:1fr 1.08fr;gap:65px;align-items:center}.fv-desktop-intro h2{font-family:var(--font-display,inherit);font-size:clamp(38px,4.5vw,66px);line-height:1.02;letter-spacing:-.04em;margin:17px 0 23px;color:#20241c}.fv-desktop-intro h2 em{font-style:normal;color:#81713b}.fv-desktop-intro>div>p{color:#636958;line-height:1.75;max-width:470px;font-size:15px}.fv-desktop-pills{display:flex;flex-wrap:wrap;gap:7px;margin:21px 0 27px}.fv-desktop-pills span{border:1px solid #dddccb;border-radius:999px;padding:7px 10px;color:#585e4e;font-size:10px;font-weight:600;background:#f5f5ed}.fv-desktop-benefits{list-style:none;padding:0;margin:0;display:grid;gap:20px}.fv-desktop-benefits li{display:flex;gap:16px;align-items:flex-start}.fv-desktop-benefits li>span{font-size:11px;font-weight:700;letter-spacing:.04em;color:#897639;line-height:1.8;border-top:1px solid #ae9c58;padding-top:3px}.fv-desktop-benefits strong{font-size:14px;color:#2d3326}.fv-desktop-benefits p{font-size:12px;line-height:1.7;color:#68705d;margin:5px 0 0;max-width:410px}.fv-desktop-preview{background:#fafbf5;border:1px solid #c7cbb9;border-radius:17px;box-shadow:0 30px 60px #28301818;overflow:hidden;transform:rotate(-1deg);transition:transform .25s,box-shadow .25s}.fv-desktop-preview:hover{transform:rotate(0);box-shadow:0 35px 70px #28301824}.fv-desktop-preview-title{display:flex;align-items:center;gap:9px;min-height:48px;background:var(--fv-desktop-dark);color:#ece8d8;padding:10px 17px}.fv-desktop-preview-title strong{font-size:9px;letter-spacing:.13em}.fv-desktop-preview-mark{display:grid;place-items:center;min-width:25px;height:25px;border:1px solid #88783f;border-radius:6px;font-weight:800;font-size:11px;color:var(--fv-desktop-gold)}.fv-desktop-preview-window{margin-left:auto;color:#969c8c;font-size:12px;letter-spacing:2px}.fv-desktop-preview-body{display:grid;grid-template-columns:114px 1fr;min-height:345px}.fv-desktop-preview-nav{background:#eff1e7;border-right:1px solid #e0e4d5;padding:23px 8px;display:flex;flex-direction:column;gap:8px;font-size:9px;color:#637059}.fv-desktop-preview-nav span{padding:9px 11px;border-radius:5px}.fv-desktop-preview-nav .active{background:#242b1e;color:#f3e3a1;font-weight:700}.fv-desktop-preview-content{min-width:0;padding:28px 22px 20px}.fv-desktop-preview-label{font-size:8px;letter-spacing:.1em;color:#777b62;font-weight:700}.fv-desktop-preview-content h3{font-size:25px;letter-spacing:-.04em;color:#272e1e;margin:8px 0 4px}.fv-desktop-preview-content>p{font-size:10px;color:#858a77;margin:0 0 20px}.fv-desktop-preview-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fv-desktop-preview-tiles>span{padding:14px;border:1px solid #e0e3d4;border-radius:8px;background:white}.fv-desktop-preview-tiles small{display:block;font-size:8px;font-weight:700;letter-spacing:.06em;color:#868c76}.fv-desktop-preview-tiles strong{display:block;font-size:17px;margin-top:7px;color:#303627}.fv-desktop-preview-chart{margin-top:15px;background:white;border:1px solid #e2e5d8;border-radius:8px;padding:15px 13px 4px}.fv-desktop-preview-chart>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.fv-desktop-preview-chart strong{font-size:10px;color:#3a402e}.fv-desktop-preview-chart small{font-size:8px;color:#919682}.fv-desktop-preview-chart svg{width:100%;height:100px;display:block;margin-top:10px}.fv-desktop-preview-actions{display:flex;gap:7px;margin-top:13px}.fv-desktop-preview-actions span{background:#e9d78d;border:1px solid #d3bd68;color:#3c422c;font-size:8px;font-weight:700;padding:8px;border-radius:5px}.fv-desktop-preview-actions span+span{background:white;border-color:#dce0d0}.fv-desktop-preview-footer{border-top:1px solid #e2e5d8;display:flex;align-items:center;gap:7px;font-size:8px;padding:9px 17px;color:#888e79}.fv-desktop-preview-footer i{width:5px;height:5px;border-radius:50%;background:#91a25f}.fv-desktop-download-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin:65px 0 24px}.fv-desktop-download-heading h3{margin:0 0 7px;font-size:25px;letter-spacing:-.04em;color:#262d20}.fv-desktop-download-heading p{margin:0;font-size:13px;color:#6b725d}.fv-desktop-release-version{font-size:11px;line-height:1.5;color:#70775f;flex-shrink:0}.fv-desktop-download-options{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.fv-desktop-download-card{display:flex;flex-direction:column;min-width:0;padding:25px 22px;background:#f4f6ed;border:1px solid #d7ddc9;border-radius:13px}.fv-desktop-download-card.is-recommended{background:#22291c;color:#f3f1e5;border-color:#3f4b2f}.fv-desktop-download-card-top{display:flex;gap:10px;align-items:center;justify-content:space-between}.fv-desktop-download-card-top>span{font-size:10px;font-weight:600;color:#777c65}.fv-desktop-download-card-top b{font-size:8px;letter-spacing:.07em;background:#e3cd77;color:#38391c;border-radius:4px;padding:4px 5px}.is-recommended .fv-desktop-download-card-top>span{color:#c0c8ae}.fv-desktop-download-card h4{font-size:17px;letter-spacing:-.03em;margin:20px 0 11px;color:#283021}.fv-desktop-download-card.is-recommended h4{color:#fbf8e8}.fv-desktop-download-card>p{font-size:12px;line-height:1.75;min-height:63px;color:#6f775f;margin:0 0 21px}.fv-desktop-download-card.is-recommended>p{color:#b8c3a7}.fv-desktop-file-detail{font-size:10px;line-height:1.7;color:#7e846e;margin-top:auto;overflow-wrap:anywhere}.is-recommended .fv-desktop-file-detail{color:#b4bda3}.fv-desktop-download-control{margin-top:13px}.fv-desktop-download-control a,.fv-desktop-download-control button{font:inherit;display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;width:100%;background:#e1cb72;color:#33381f;border:1px solid #d1b853;padding:10px 9px;border-radius:7px;text-decoration:none;font-size:11px;font-weight:700;cursor:pointer;transition:background .15s,transform .15s}.fv-desktop-download-control a:hover{background:#f0db88;transform:translateY(-2px)}.fv-desktop-download-control button:disabled{background:#e8ebdf;color:#757d67;border-color:#d7dfc8;cursor:default}.is-recommended .fv-desktop-download-control button:disabled{background:#373f2c;border-color:#525d40;color:#a8b296}.fv-desktop-checksum{margin-top:13px;font-size:10px;line-height:1.7;color:#6e765e}.is-recommended .fv-desktop-checksum{color:#b4bda3}.fv-desktop-checksum summary{cursor:pointer;width:fit-content}.fv-desktop-checksum code{display:block;margin-top:8px;font-size:9px;line-height:1.8;overflow-wrap:anywhere;user-select:all}.fv-desktop-download-status{margin-top:20px;color:#686f5a;font-size:12px;line-height:1.8;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fv-desktop-download-status button{font:inherit;font-size:11px;color:#414b31;background:#f4f6ec;border:1px solid #bac6a3;border-radius:6px;padding:6px 10px;cursor:pointer}.fv-desktop-download-note{font-size:11px;line-height:1.8;max-width:840px;color:#868b77;margin-top:11px}.fv-desktop-download a:focus-visible,.fv-desktop-download button:focus-visible,.fv-desktop-download summary:focus-visible{outline:3px solid #937622;outline-offset:4px}
@media(max-width:1000px){.fv-desktop-intro{gap:35px;grid-template-columns:1fr 1fr}.fv-desktop-preview-body{grid-template-columns:95px 1fr}.fv-desktop-preview-nav{font-size:8px;padding-left:6px;padding-right:6px}.fv-desktop-preview-content{padding:24px 15px 17px}.fv-desktop-preview-content h3{font-size:23px}.fv-desktop-preview-tiles>span{padding:11px}.fv-desktop-preview-tiles strong{font-size:15px}.fv-desktop-preview-chart small{display:none}.fv-desktop-download-card{padding:22px 17px}.fv-desktop-download-card-top{align-items:flex-start;flex-direction:column;gap:7px}}
@media(max-width:760px){.fv-desktop-intro{grid-template-columns:1fr;gap:35px}.fv-desktop-intro h2{font-size:clamp(36px,8vw,52px)}.fv-desktop-preview{transform:none;max-width:600px;width:100%}.fv-desktop-preview-body{grid-template-columns:105px 1fr}.fv-desktop-preview-nav{font-size:9px}.fv-desktop-preview-content{padding:25px 22px 19px}.fv-desktop-download-heading{margin-top:40px;align-items:flex-start;flex-direction:column;gap:12px}.fv-desktop-download-options{grid-template-columns:1fr;gap:12px}.fv-desktop-download-card{padding:23px}.fv-desktop-download-card-top{flex-direction:row;align-items:center}.fv-desktop-download-card h4{margin-top:15px}.fv-desktop-download-card>p{min-height:0;margin-bottom:17px}.fv-desktop-preview-chart small{display:inline}.fv-desktop-download-note{font-size:11px}}
@media(max-width:380px){.fv-desktop-preview-body{grid-template-columns:80px 1fr}.fv-desktop-preview-nav{padding-left:3px;padding-right:3px;font-size:8px}.fv-desktop-preview-nav span{padding:8px 7px}.fv-desktop-preview-content{padding:22px 11px 17px}.fv-desktop-preview-tiles strong{font-size:13px}.fv-desktop-preview-chart small{display:none}.fv-desktop-download-card-top b{font-size:7px}.fv-desktop-intro h2{font-size:36px}}
@media(prefers-reduced-motion:reduce){.fv-desktop-preview,.fv-desktop-download-control a{transition:none;transform:none}.fv-desktop-preview:hover,.fv-desktop-download-control a:hover{transform:none}}

/* regions.css */
/* Public region picker: scoped to the control, usable on marketing and setup screens. */
.fv-region-selector{display:flex;align-items:center;gap:10px;min-width:0;color:var(--text-muted,#bbb9af);font-size:12px;font-weight:600}.fv-region-selector>span{white-space:nowrap}.fv-region-selector select{font:inherit;color:var(--text,#f4f3ee);background:var(--panel,#151613);border:1px solid var(--border,#34352d);border-radius:8px;min-height:44px;min-width:0;width:min(280px,100%);padding:10px 32px 10px 12px;cursor:pointer}.fv-region-selector select:focus-visible{outline:2px solid var(--gold,#e7c564);outline-offset:3px}.fv-region-selector.compact>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.fv-region-selector.compact select{width:210px}.fv-region-status{font-size:12px;color:var(--text-muted,#bbb9af);line-height:1.5;margin:8px 0 0}@media(max-width:600px){.fv-region-selector{align-items:stretch;flex-direction:column;gap:6px;width:100%}.fv-region-selector select,.fv-region-selector.compact select{width:100%;max-width:100%;font-size:16px}.fv-region-selector.compact{width:auto;max-width:100%}}
.fv-pricing-region{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:0 0 30px}.fv-pricing-region>p{max-width:420px;font-size:12px;color:var(--muted,#9d9b94);margin:0}.marketing-refresh .price [data-fv-price]{font:inherit;color:inherit;display:inline}.marketing-refresh [data-fv-example-php]{font:inherit;color:inherit}.marketing-refresh .price [data-fv-price-interval][hidden]{display:none!important}@media(max-width:600px){.fv-pricing-region{align-items:stretch;gap:12px}.fv-pricing-region .fv-region-selector{width:100%}}

/* gym-setup.css */
/* First-time setup uses the existing Fitness Vault palette and local gym photo. */
.fv-setup-shell { --setup-gold: var(--gold, #C8FF2E); --setup-muted: var(--muted, #b6bdc7); --setup-ink: var(--ink, #f4f3ee); display: grid; grid-template-columns: minmax(260px, .82fr) minmax(0, 1.18fr); min-height: 100dvh; background: var(--bg, #0d1014); color: var(--setup-ink); isolation: isolate; }
.fv-setup-shell *, .fv-setup-checklist * { box-sizing: border-box; }
.fv-setup-visual { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(28px, 4vw, 64px); min-width: 0; background: linear-gradient(180deg, #0b0e12b0 0%, #0b0e12a0 37%, #0b0e12f2 100%), url('/assets/images/fitness-vault-gym-editorial.webp') center 40% / cover no-repeat; border-right: 1px solid var(--line, #303640); }
.fv-setup-brand { display: inline-flex; align-items: center; gap: 12px; align-self: flex-start; color: var(--setup-ink); text-decoration: none; font-size: 12px; letter-spacing: .18em; line-height: 1.65; }
.fv-setup-brand img { flex: none; width: 42px; height: 42px; }
.fv-setup-brand strong { color: var(--setup-gold); font-weight: 700; }
.fv-setup-overline { display: block; color: var(--gold, #C8FF2E); font-size: 10px; font-weight: 700; letter-spacing: .16em; line-height: 1.6; }
.fv-setup-visual-copy { margin: 58px 0; max-width: 390px; }
.fv-setup-visual-copy h2 { margin: 17px 0 21px; font-family: var(--font-display, 'Gym Display', sans-serif); font-size: clamp(38px, 4.1vw, 62px); line-height: 1.08; font-weight: 700; letter-spacing: -.04em; }
.fv-setup-visual-copy p { color: #ccd0d7; font-size: 15px; line-height: 1.85; max-width: 300px; margin: 0; }
.fv-setup-visual-foot { display: grid; gap: 9px; color: #c8c8c4; font-size: 11px; line-height: 1.6; }
.fv-setup-visual-foot span:first-child { letter-spacing: .14em; color: var(--setup-gold); font-size: 9px; }
.fv-setup-card { min-width: 0; max-width: 760px; width: 100%; margin: auto; padding: clamp(25px, 5vw, 70px); }
.fv-setup-topline { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; color: var(--setup-muted); font-size: 9px; letter-spacing: .13em; line-height: 1.8; margin-bottom: 26px; }
.fv-setup-topline span:last-child { color: var(--setup-gold); }
.fv-setup-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; padding: 0; margin: 0 0 40px; gap: 10px; }
.fv-setup-progress li { display: flex; align-items: center; gap: 9px; padding-bottom: 15px; border-bottom: 2px solid var(--line, #303640); min-width: 0; }
.fv-setup-progress li > span { width: 25px; height: 25px; display: grid; place-items: center; flex: none; color: var(--setup-muted); border: 1px solid var(--line, #303640); border-radius: 50%; font-size: 11px; }
.fv-setup-progress strong { color: var(--setup-muted); font-size: 11px; font-weight: 500; line-height: 1.55; }
.fv-setup-progress .current { border-color: var(--setup-gold); }
.fv-setup-progress .current > span { background: var(--setup-gold); border-color: var(--setup-gold); color: #0d1014; }
.fv-setup-progress .current strong, .fv-setup-progress .done strong { color: var(--setup-ink); }
.fv-setup-progress .done > span { border-color: var(--gold-line, #496A1C); color: var(--setup-gold); background: var(--gold-surface, #152110); }
.fv-setup-progress svg { width: 13px; height: 13px; }
.fv-setup-form { display: block; min-width: 0; }
.fv-setup-step-copy { margin-bottom: 30px; }
.fv-setup-step-copy h1, .fv-setup-complete h1 { margin: 12px 0 13px; font-family: var(--font-display, 'Gym Display', sans-serif); color: var(--setup-ink); font-size: clamp(28px, 2.8vw, 39px); line-height: 1.16; letter-spacing: -.035em; }
.fv-setup-step-copy h1:focus, .fv-setup-complete h1:focus { outline: none; }
.fv-setup-step-copy p, .fv-setup-complete p { font-size: 14px; line-height: 1.8; color: var(--setup-muted); margin: 0; }
.fv-setup-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
.fv-setup-field { display: flex; flex-direction: column; gap: 9px; min-width: 0; color: var(--setup-ink); font-size: 12px; font-weight: 600; line-height: 1.6; }
.fv-setup-field-wide { grid-column: 1 / -1; }
.fv-setup-field input, .fv-setup-field select { display: block; width: 100%; min-width: 0; height: 48px; padding: 10px 13px; border: 1px solid var(--line, #303640); border-radius: 5px; background: var(--surface, #161b21); color: var(--setup-ink); font-size: 14px; font-weight: 400; line-height: 1.5; font-family: inherit; }
.fv-setup-field input::placeholder { color: #8c96a4; }
.fv-setup-field select { padding-right: 32px; }
.fv-setup-field input:focus-visible, .fv-setup-field select:focus-visible { outline: 2px solid var(--setup-gold); outline-offset: 3px; }
.fv-setup-field input:disabled, .fv-setup-field select:disabled { opacity: .65; cursor: not-allowed; }
.fv-setup-hint { color: var(--setup-muted); font-size: 11px; line-height: 1.8; margin: 9px 0 0; }
.fv-setup-note { display: flex; align-items: flex-start; gap: 10px; padding: 15px 16px; border: 1px solid var(--gold-line, #496A1C); border-radius: 5px; background: var(--gold-surface, #152110); margin-top: 29px; }
.fv-setup-note svg { color: var(--setup-gold); flex: none; margin-top: 2px; }
.fv-setup-note p { color: var(--setup-muted); font-size: 12px; line-height: 1.8; margin: 0; }
.fv-setup-review { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 20px; margin: 0; background: var(--surface, #161b21); border: 1px solid var(--line, #303640); border-radius: 6px; }
.fv-setup-review div { min-width: 0; }
.fv-setup-review dt { color: var(--setup-muted); font-size: 11px; line-height: 1.6; }
.fv-setup-review dd { color: var(--setup-ink); font-size: 14px; font-weight: 600; line-height: 1.7; margin: 5px 0 0; overflow-wrap: anywhere; }
.fv-setup-later { margin: 22px 0; }
.fv-setup-later h2 { color: var(--setup-ink); font-size: 12px; line-height: 1.7; margin: 0 0 6px; }
.fv-setup-later ul { margin: 0; padding-left: 18px; color: var(--setup-muted); font-size: 12px; line-height: 2; }
.fv-setup-confirm { display: flex; align-items: flex-start; gap: 11px; color: var(--setup-ink); font-size: 12px; line-height: 1.8; cursor: pointer; }
.fv-setup-confirm input { margin: 4px 0 0; width: 16px; height: 16px; flex: none; accent-color: var(--setup-gold); }
.fv-setup-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 32px; }
.fv-setup-actions .btn, .fv-setup-complete .btn { display: inline-flex; align-items: center; justify-content: center; gap: 11px; min-height: 46px; padding: 12px 17px; font-size: 12px; line-height: 1.6; white-space: normal; }
.fv-setup-actions .btn svg, .fv-setup-complete .btn svg { flex: none; }
.fv-setup-save { border-top: 1px solid var(--line, #303640); margin-top: 26px; padding-top: 16px; min-height: 45px; }
.fv-setup-save p { color: var(--setup-muted); font-size: 10px; line-height: 1.8; margin: 0; }
.fv-setup-save-error, .fv-setup-field-error { color: var(--danger, #ff9d9d) !important; font-size: 12px; line-height: 1.8; margin-top: 12px !important; }
.fv-setup-retry { background: transparent; border: 0; border-bottom: 1px solid var(--setup-gold); color: var(--setup-gold); padding: 12px 0 3px; font: inherit; font-size: 12px; cursor: pointer; min-height: 44px; }
.fv-setup-shell [hidden] { display: none !important; }
.fv-setup-complete { padding: 12px 0 18px; }
.fv-setup-complete-icon { display: grid; place-items: center; width: 49px; height: 49px; border: 1px solid var(--gold-line, #496A1C); border-radius: 50%; color: var(--setup-gold); background: var(--gold-surface, #152110); margin-bottom: 22px; }
.fv-setup-complete .btn { margin-top: 27px; }
.fv-setup-checklist { min-width: 0; padding: 24px; border: 1px solid var(--line, #303640); border-radius: 8px; background: var(--surface, #161b21); margin: 24px 0; }
.fv-setup-checklist > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: wrap; margin-bottom: 23px; }
.fv-setup-checklist h2 { color: var(--ink, #f4f3ee); font-size: 19px; line-height: 1.5; margin: 7px 0; }
.fv-setup-checklist header p { color: var(--muted, #b6bdc7); font-size: 12px; line-height: 1.8; margin: 0; }
.fv-setup-checklist-count { flex: none; font-size: 11px; font-variant-numeric: tabular-nums; line-height: 1.8; color: var(--gold, #C8FF2E); background: var(--gold-surface, #152110); padding: 6px 10px; border-radius: 4px; }
.fv-setup-checklist-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 24px; }
.fv-setup-checklist-item { display: flex; align-items: flex-start; gap: 11px; min-width: 0; }
.fv-setup-checklist-item > div { min-width: 0; }
.fv-setup-checklist-index { display: grid; place-items: center; flex: none; width: 26px; height: 26px; border: 1px solid var(--line, #303640); border-radius: 50%; color: var(--muted, #b6bdc7); font-size: 11px; margin-top: 1px; }
.fv-setup-checklist-index svg { width: 14px; height: 14px; }
.fv-setup-checklist-item.done .fv-setup-checklist-index { color: var(--gold, #C8FF2E); border-color: var(--gold-line, #496A1C); background: var(--gold-surface, #152110); }
.fv-setup-checklist-item h3 { color: var(--ink, #f4f3ee); font-size: 12px; line-height: 1.7; font-weight: 600; margin: 0 0 5px; overflow-wrap: anywhere; }
.fv-setup-checklist-item p { font-size: 11px; color: var(--muted, #b6bdc7); line-height: 1.8; margin: 0; }
.fv-setup-checklist-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; background: transparent; border: 0; padding: 10px 0; color: var(--gold, #C8FF2E); font: inherit; font-size: 11px; line-height: 1.8; cursor: pointer; text-align: left; }
.fv-setup-checklist-link svg { width: 14px; height: 14px; flex: none; }
.fv-setup-checklist-link:disabled { color: var(--muted, #b6bdc7); cursor: not-allowed; }
@media (max-width: 1080px) { .fv-setup-card { padding: 34px; } .fv-setup-progress { gap: 7px; } .fv-setup-progress li { gap: 7px; } .fv-setup-progress strong { font-size: 10px; } .fv-setup-checklist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .fv-setup-shell { grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); } .fv-setup-card { padding: 28px; } .fv-setup-visual { padding: 28px; } .fv-setup-visual-copy h2 { font-size: 37px; } .fv-setup-progress { margin-bottom: 28px; } .fv-setup-progress li { flex-direction: column; align-items: flex-start; gap: 6px; } .fv-setup-topline { font-size: 8px; } }
@media (max-width: 680px) { .fv-setup-shell { display: block; } .fv-setup-visual { min-height: 145px; padding: 22px 24px; border-right: 0; border-bottom: 1px solid var(--line, #303640); background-position: center 42%; } .fv-setup-brand img { width: 35px; height: 35px; } .fv-setup-brand { font-size: 10px; } .fv-setup-visual-copy { margin: 22px 0 0; } .fv-setup-visual-copy .fv-setup-overline, .fv-setup-visual-copy p, .fv-setup-visual-foot { display: none; } .fv-setup-visual-copy h2 { font-size: 25px; line-height: 1.25; margin: 0; } .fv-setup-visual-copy h2 br { display: none; } .fv-setup-card { padding: 26px 24px; } .fv-setup-progress li { flex-direction: row; align-items: center; } .fv-setup-fields { gap: 17px; } .fv-setup-step-copy { margin-bottom: 25px; } .fv-setup-checklist { padding: 20px; } }
@media (max-width: 420px) { .fv-setup-card { padding: 24px 18px; } .fv-setup-progress li { flex-direction: column; align-items: flex-start; } .fv-setup-fields, .fv-setup-review { grid-template-columns: 1fr; } .fv-setup-review { gap: 14px; padding: 17px; } .fv-setup-field-wide { grid-column: auto; } .fv-setup-actions .btn-primary { flex: 1; } .fv-setup-actions .btn { padding: 11px 13px; } .fv-setup-actions > span { display: none; } .fv-setup-checklist-grid { grid-template-columns: 1fr; gap: 18px; } }
@media (prefers-reduced-motion: reduce) { .fv-setup-shell *, .fv-setup-checklist * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* gym-checkin.css */
.fv-phone-page { --phone-ink:#101114; --phone-gold:#d5b878; --phone-muted:#858586; min-height:100svh; color:#f6f3eb; background:#0d0e10; font-family:var(--font, var(--body, sans-serif)); padding:48px 24px 24px; box-sizing:border-box; }
.fv-phone-page *, .fv-gym-qr-staff *, .fv-phone-member * { box-sizing:border-box; }
.fv-phone-layout { width:min(100%,480px); margin:0 auto; }
.fv-phone-intro { padding-bottom:24px; }
.fv-phone-brand { display:block; color:var(--phone-gold); font-family:var(--heading, sans-serif); font-size:15px; letter-spacing:.16em; font-weight:700; }
.fv-phone-kicker { display:flex; gap:8px; align-items:center; margin-top:42px; color:#b8b5ac; letter-spacing:.12em; font-size:10px; font-weight:700; }
.fv-phone-kicker span { width:6px; height:6px; border-radius:50%; background:var(--phone-gold); }
.fv-phone-intro h1 { margin:12px 0 7px; color:#fffaf0; font-family:var(--heading,sans-serif); font-size:clamp(32px,8vw,44px); line-height:1.08; letter-spacing:-.035em; overflow-wrap:anywhere; }
.fv-phone-intro p { margin:0; color:#aaa79f; font-size:14px; line-height:1.7; }
.fv-phone-card { min-width:0; padding:32px; border:1px solid #35332e; border-radius:16px; background:#f7f5ee; color:var(--phone-ink); box-shadow:0 16px 50px #0002; }
.fv-phone-card h2 { margin:12px 0; font-family:var(--heading,sans-serif); font-size:30px; line-height:1.15; letter-spacing:-.03em; overflow-wrap:anywhere; }
.fv-phone-card p { color:#60605b; font-size:14px; line-height:1.75; margin:0 0 20px; }
.fv-phone-step { color:#746038; font-size:10px; font-weight:700; line-height:1.6; letter-spacing:.11em; }
.fv-phone-activation form { display:grid; gap:10px; margin-top:28px; }
.fv-phone-activation label { font-size:13px; font-weight:700; }
.fv-phone-activation input { min-width:0; min-height:52px; border:1px solid #c9c5b9; border-radius:8px; padding:12px; color:#141414; background:#fff; font-family:inherit; font-size:16px; letter-spacing:.025em; }
.fv-phone-activation small { color:#65655f; font-size:12px; line-height:1.6; }
.fv-phone-page .btn { display:flex; justify-content:center; align-items:center; gap:12px; min-height:52px; width:100%; margin-top:12px; padding:13px 18px; border:1px solid #c6a960; border-radius:8px; color:#141414; background:#d5b878; font-family:inherit; font-size:14px; font-weight:700; cursor:pointer; transition:background .16s ease,transform .16s ease; }
.fv-phone-page .btn:hover:not(:disabled) { background:#e0c789; transform:translateY(-1px); }
.fv-phone-page .btn:disabled { opacity:.6; cursor:wait; }
.fv-phone-page .btn-secondary { color:#232321; background:transparent; border-color:#bdb8a9; }
.fv-phone-page :is(button,input):focus-visible { outline:3px solid #a48137; outline-offset:3px; }
.fv-phone-assurance { display:flex; gap:8px; align-items:flex-start; padding-top:24px; color:#63635d; font-size:12px; line-height:1.65; }
.fv-phone-assurance svg { width:18px; height:18px; flex:0 0 auto; color:#79703c; }
.fv-phone-member-note { padding:16px; color:#63635d; border-top:1px solid #dedace; border-bottom:1px solid #dedace; font-size:12px; line-height:1.65; }
.fv-phone-membership { display:grid; grid-template-columns:1fr auto; gap:8px; margin:24px 0; padding:18px 0; border-block:1px solid #dfdacf; font-size:13px; }
.fv-phone-membership >span { color:#62625c; }
.fv-phone-membership strong { color:#855d3c; }
.fv-phone-membership strong.is-active { color:#3b6b49; }
.fv-phone-membership small { grid-column:1/-1; color:#67675f; font-size:12px; }
.fv-phone-page .fv-phone-check-button { justify-content:space-between; font-size:16px; }
.fv-phone-check-button span { font-size:24px; }
.fv-phone-page .fv-phone-text-button { display:block; width:100%; border:0; border-radius:6px; color:#605e55; background:transparent; padding:15px 4px; min-height:44px; font-size:12px; font-family:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; overflow-wrap:anywhere; }
.fv-phone-symbol { display:flex; justify-content:center; align-items:center; width:52px; height:52px; margin:0 0 22px; color:#7a652e; background:#eee7d5; border:1px solid #d9ceb2; border-radius:50%; font-size:28px; }
.fv-phone-symbol.is-success { color:#426a47; background:#e5eddf; border-color:#c4d5b7; }
.fv-phone-symbol svg { width:28px; height:28px; }
.fv-phone-card .fv-phone-feedback { min-height:0; margin:0; font-size:13px; color:#436345; }
.fv-phone-feedback:not(:empty) { padding:16px 0 0; }
.fv-phone-card .fv-phone-feedback.is-error { color:#963d2a; }
.fv-phone-footer { display:grid; gap:8px; padding:22px 2px; color:#9e9a8f; font-size:11px; line-height:1.7; }
.fv-phone-footer span { color:#77776f; }
.fv-phone-loading { display:grid; justify-items:center; padding:38px 0 18px; gap:20px; }
.fv-phone-spinner { width:30px; height:30px; border:2px solid #ddd5c3; border-top-color:#8c7136; border-radius:50%; animation:fv-phone-spin .8s linear infinite; }
@keyframes fv-phone-spin { to { transform:rotate(360deg); } }
.fv-gym-qr-staff, .fv-phone-member { display:grid; gap:18px; min-width:0; padding:24px; border:1px solid var(--border,#34332e); border-radius:12px; background:var(--surface,#171819); }
.fv-gym-qr-heading { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.fv-gym-qr-eyebrow { display:block; color:var(--accent,#d5b878); letter-spacing:.1em; font-size:10px; font-weight:700; line-height:1.6; }
.fv-gym-qr-heading h3, .fv-phone-member h3 { margin:6px 0 0; font-size:24px; font-family:var(--heading,sans-serif); }
.fv-gym-qr-status { flex:0 0 auto; padding:6px 10px; border:1px solid var(--border,#34332e); border-radius:20px; color:var(--muted,#aaa89e); font-size:11px; }
.fv-gym-qr-status.is-enabled { color:#91bf95; border-color:#3b5540; }
.fv-gym-qr-explainer, .fv-phone-member p { margin:0; color:var(--muted,#aaa89e); font-size:13px; line-height:1.75; }
.fv-gym-qr-preview { display:grid; grid-template-columns:minmax(130px,190px) minmax(0,1fr); gap:26px; align-items:center; }
.fv-gym-qr-image { width:100%; max-width:280px; aspect-ratio:1; flex-shrink:0; padding:0; background:#fff; border-radius:4px; }
.fv-gym-qr-image svg { display:block; width:100%; height:100%; }
.fv-gym-qr-preview strong { font-size:20px; font-family:var(--heading,sans-serif); }
.fv-gym-qr-preview p { color:var(--muted,#aaa89e); font-size:13px; line-height:1.7; }
.fv-gym-qr-address { overflow-wrap:anywhere; font-size:11px!important; }
.fv-gym-qr-actions { display:flex; flex-wrap:wrap; gap:10px; }
.fv-gym-qr-actions .btn, .fv-gym-qr-staff >.btn { min-height:44px; }
.fv-gym-qr-staff .fv-gym-qr-hint, .fv-phone-member .fv-gym-qr-hint { margin:0; color:var(--muted,#aaa89e); font-size:11px; line-height:1.8; }
.fv-gym-qr-feedback { min-height:1em; margin:0; color:var(--muted,#aaa89e); font-size:12px; line-height:1.65; }
.fv-gym-qr-print { display:none; }
.fv-gym-qr-poster { display:flex; flex-direction:column; align-items:center; gap:18px; padding:32px; color:#161616; background:#fff; text-align:center; }
.fv-gym-qr-brand { font-weight:700; letter-spacing:.15em; font-size:15px; font-family:var(--heading,sans-serif); }
.fv-gym-qr-poster h1 { font-family:var(--heading,sans-serif); font-size:30px; margin:10px 0 0; overflow-wrap:anywhere; }
.fv-gym-qr-poster p { margin:0; line-height:1.7; }
.fv-gym-qr-poster small { font-size:11px; }
@media (max-width:600px) { .fv-phone-page { padding:32px 16px 16px; } .fv-phone-card { padding:26px 22px; } .fv-phone-kicker { margin-top:32px; } .fv-gym-qr-preview { grid-template-columns:1fr; } .fv-gym-qr-preview .fv-gym-qr-image { width:min(100%,230px); margin:0 auto; } .fv-gym-qr-staff, .fv-phone-member { padding:20px; } .fv-gym-qr-actions { flex-direction:column; } .fv-gym-qr-actions .btn { width:100%; } }
@media (min-width:900px) { .fv-phone-page { display:flex; align-items:center; padding:56px; } .fv-phone-layout { width:min(100%,1000px); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); column-gap:76px; align-items:center; } .fv-phone-intro { padding-bottom:0; } .fv-phone-intro h1 { font-size:clamp(44px,5vw,64px); } .fv-phone-intro p { font-size:17px; } .fv-phone-kicker { margin-top:52px; } .fv-phone-card { padding:36px; } .fv-phone-footer { grid-column:2; } }
@media (prefers-reduced-motion:reduce) { .fv-phone-spinner { animation:none; } .fv-phone-page .btn { transition:none; } .fv-phone-page .btn:hover:not(:disabled) { transform:none; } }
@media print { body.fv-print-gym-qr >* { display:none!important; } body.fv-print-gym-qr >.fv-gym-qr-print { display:block!important; position:static!important; width:100%!important; margin:0!important; padding:15mm!important; color:#000!important; background:#fff!important; } body.fv-print-gym-qr { padding:0!important; background:#fff!important; } .fv-gym-qr-poster { width:150mm; margin:0 auto; padding:10mm; break-inside:avoid; border:1px solid #ccc; } .fv-gym-qr-poster .fv-gym-qr-image { width:85mm; max-width:none; } }

/* gym-qr-admin.css */
.fv-qr-admin{max-width:1200px;margin:0 auto}.fv-qr-intro{padding:16px 0 28px;max-width:830px}.fv-qr-intro h2{font-size:clamp(28px,4vw,42px);letter-spacing:-.035em;margin:10px 0}.fv-qr-intro>p,.fv-qr-bottom-note{color:var(--muted,#9d9b94);line-height:1.7}.fv-qr-intro ol{display:flex;gap:24px;list-style:none;padding:0;margin:25px 0 0;flex-wrap:wrap}.fv-qr-intro li{display:flex;align-items:center;gap:10px;font-size:13px}.fv-qr-intro li span{border:1px solid #C8FF2E55;color:#C8FF2E;border-radius:50%;width:28px;height:28px;display:grid;place-items:center}.fv-qr-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}.fv-qr-grid>.surface-card{padding:28px;min-width:0}.fv-qr-select-label{display:grid;gap:10px;font-size:13px;margin:22px 0}.fv-qr-select-label select{min-width:0;width:100%;padding:13px;color:inherit;background:#111417;border:1px solid #ffffff24;border-radius:9px}.fv-qr-member-status{display:grid;gap:7px;margin:24px 0}.fv-qr-member-status span{font-size:13px;color:#aaa79e}.fv-qr-secondary-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 24px}.fv-qr-placeholder{width:200px;max-width:100%;height:180px;border:1px dashed #C8FF2E77;border-radius:14px;display:grid;place-items:center;font-size:64px;color:#C8FF2E;margin:24px auto}.fv-qr-activation{background:#C8FF2E10;border:1px solid #C8FF2E55;border-radius:12px;padding:20px;margin:24px 0}.fv-qr-activation>span{font-size:10px;letter-spacing:.13em;color:#C8FF2E}.fv-qr-activation code{display:block;font-size:16px;overflow-wrap:anywhere;padding:16px 0;user-select:all}.fv-qr-activation p,.fv-qr-preview-note{font-size:12px;line-height:1.7;color:#b7b1a6}.fv-qr-bottom-note{font-size:12px;margin-top:22px}.fv-qr-offline{padding:36px}.fv-qr-offline h2{font-size:28px;max-width:600px}.fv-qr-offline p{line-height:1.7;max-width:680px}.fv-qr-message{border-radius:10px;padding:14px 18px;background:#C8FF2E10;margin-bottom:20px}.fv-qr-grid .fv-gym-qr-card{margin:20px auto}.fv-qr-grid .fv-gym-qr-card svg{width:100%;max-width:280px;height:auto}.fv-qr-grid .fv-gym-qr-actions{display:flex;gap:10px;flex-wrap:wrap}.fv-qr-grid button:focus-visible,.fv-qr-grid select:focus-visible{outline:2px solid #C8FF2E;outline-offset:4px}@media(max-width:850px){.fv-qr-grid{grid-template-columns:1fr}.fv-qr-grid>.surface-card{padding:22px}}@media(prefers-reduced-motion:reduce){.fv-qr-admin *{transition:none!important}}

.fv-qr-code-section .fv-gym-qr-staff{margin:22px 0;padding:20px}.fv-qr-code-section .fv-gym-qr-preview{grid-template-columns:1fr;gap:18px}.fv-qr-code-section .fv-gym-qr-image{width:min(100%,240px);margin:auto}.fv-qr-code-section .fv-gym-qr-heading{align-items:flex-start}.fv-qr-code-section .fv-gym-qr-preview strong{font-size:18px}

/* Fitness Vault's shared operational theme, loaded after each task's styles. */
@font-face { font-family: 'Plus Jakarta Sans'; src: url('./assets/fonts/plus-jakarta-sans-400.woff2') format('woff2'); font-weight: 400 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Space Grotesk'; src: url('./assets/fonts/space-grotesk-600.woff2') format('woff2'); font-weight: 500 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'JetBrains Mono'; src: url('./assets/fonts/jetbrains-mono-500.woff2') format('woff2'); font-weight: 400 700; font-style: normal; font-display: swap; }
body { min-width: 0; }
body, button, input, select, textarea { font-family: var(--font-sans); }
h1, h2, h3, h4 { font-family: var(--font-sans); letter-spacing: -.025em; }
input, select, textarea { accent-color: var(--accent); caret-color: var(--accent); }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
input:focus, textarea:focus, select:focus { border-color: var(--accent-hover) !important; box-shadow: 0 0 0 3px #c8ff2e30; }
:where(button, a, summary, [tabindex]):focus-visible { outline: 3px solid var(--accent-hover); outline-offset: 4px; }
.app-shell .sidebar { background: var(--bg-elevated); }
.app-shell .topbar { background: var(--bg-elevated); backdrop-filter: none; }
.app-shell .cloud-bar > strong { color: var(--ink); }
.app-shell .progress-track { background: var(--line); }
.app-shell .progress-track > span { background: var(--accent); }
.app-shell .nav-item.active { background: var(--accent); color: var(--bg); }
.app-shell .nav-item.active:hover { background: var(--accent-hover); color: var(--bg); }
.app-shell .nav-item.active :where(svg, small, span) { color: inherit; }
.app-shell .page-heading h1, .operator-main .page-heading h1 { font-size: 2rem; line-height: 1.2; }
.app-shell .small-overline, .operator-shell .small-overline { display: none; }
.app-shell .frontdesk-primary { background: var(--surface); }
.app-shell .frontdesk-primary h2 { font-size: 1.625rem; }
.app-shell .frontdesk-task:hover { border-color: var(--accent); background: var(--accent-surface); }
.app-shell .stat-card > strong, .operator-stats strong, .closing-stat h2, .finance-stats strong { font-variant-numeric: tabular-nums; }
.btn-primary, .btn-lime { background: var(--accent); border-color: var(--accent); color: var(--bg); }
.btn-primary:hover:not(:disabled), .btn-lime:hover:not(:disabled) { background: var(--accent-hover); border-color: var(--accent-hover); color: var(--bg); }
.pill-success { background: var(--success-surface); color: var(--success); border-color: #235941; }
.pill-warning { background: var(--warning-surface); color: var(--warning); border-color: #665021; }
.pill-danger, .toast-error { background: var(--danger-surface); color: var(--danger); border-color: #7f4145; }
.operator-shell { min-width: 0; font-size: 14px; line-height: 1.5; }
.operator-header { background: var(--bg-elevated); }
.operator-client.selected { background: var(--accent-surface); outline: 1px solid var(--accent-line); box-shadow: none; }
.operator-client[aria-current='true'] { color: var(--ink); }
.operator-shell .operator-client :where(strong, small), .operator-shell .operator-facts dd { overflow-wrap: anywhere; }
.operator-shell .operator-client small { font-size: 12px; }
.operator-shell .operator-tabs .btn { min-height: 44px; }
.operator-shell .operator-tabs [aria-pressed='true'] { background: var(--accent); color: var(--bg); border-color: var(--accent); }
.operator-shell :where(.operator-search, .operator-search label, .operator-header > div, .partner-heading-actions) { min-width: 0; }
.operator-shell .operator-main :where(button, input, select, textarea, a) { scroll-margin-block: 24px; }
.operator-shell .operator-error, .cloud-error { overflow-wrap: anywhere; }
.modal input, .modal select, .modal textarea { min-height: 44px; }
.modal .form-row > *, .modal-form label, .operator-profile-form label { min-width: 0; }
.data-table { font-variant-numeric: tabular-nums; }
.modal :where(button, input, select, textarea) { scroll-margin-block: 18px; }
@media (max-width: 620px) {
  .app-shell .topbar { min-height: 64px; padding: 10px 16px; flex-wrap: nowrap; gap: 8px; }
  .app-shell .topbar-left { width: auto; min-width: 0; flex: 1; gap: 8px; }
  .app-shell .topbar-left strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .app-shell .topbar-right { flex: none; gap: 4px; }
  .app-shell .dashboard-content { padding-top: 16px; }
  .app-shell .connected-status { padding: 12px 14px; gap: 10px; margin-bottom: 12px; }
  .app-shell .connected-status > div:first-child p { display: none; }
  .app-shell .connected-status .workspace-status-access { gap: 8px; }
  .app-shell .cloud-bar { padding: 12px 14px; margin-bottom: 22px; justify-content: space-between; }
  .app-shell .cloud-bar > strong { display: none; }
  .app-shell .cloud-save-state { flex-basis: auto; font-size: 11px; }
  .app-shell .page-heading h1, .operator-main .page-heading h1 { font-size: 1.625rem; }
  .operator-header > div { width: 100%; }
  .operator-header > div > .btn { flex: 1; justify-content: center; white-space: normal; }
  .operator-shell .operator-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operator-shell .operator-tabs .btn { min-width: 0; padding: 10px; white-space: normal; }
  .operator-shell .operator-search label { max-width: 100%; }
  .operator-shell .operator-client { align-items: flex-start; flex-wrap: wrap; }
  .operator-shell .operator-client-state { max-width: 100%; text-align: left; }
  .operator-shell .operator-facts { grid-template-columns: minmax(0, 1fr); }
  .operator-shell .operator-status-action { align-items: flex-start; flex-direction: column; }
  .operator-shell .partner-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .modal .form-row { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; }
}
@media print {
  :root { --accent: #253900; --accent-hover: #253900; --accent-surface: #fff; }
  .operator-shell .operator-header, .operator-shell .operator-tabs { display: none; }
}

/* Daily work comes before reports; shared by the connected and desktop workspaces. */
body:has(.overview-primary, .frontdesk-primary) .connected-status { padding: 0 18px; min-height: 46px; margin-bottom: 10px; border-left-width: 1px; align-items: center; }
body:has(.overview-primary, .frontdesk-primary) .connected-status > div:first-child p { display: none; }
body:has(.overview-primary, .frontdesk-primary) .connected-status .workspace-status-access { flex-direction: row; flex-wrap: wrap; max-width: none; gap: 12px; align-items: center; }
body:has(.overview-primary, .frontdesk-primary) .cloud-bar { padding: 0 18px; margin-bottom: 24px; min-height: 46px; }
.app-shell .overview-primary { margin-bottom: 20px; }
.app-shell .overview-secondary { gap: 8px; }
.app-shell .overview-primary .btn:disabled { opacity: .6; cursor: not-allowed; }
.app-shell .fv-dashboard-readonly { max-width: 75ch; line-height: 1.65; }
.app-shell .fv-overview-attention { padding: 24px; }
.app-shell .fv-overview-attention .card-head { margin-bottom: 16px; gap: 14px; }
.app-shell .fv-attention-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.app-shell .fv-attention-summary > button { min-width: 0; padding: 14px 0; border-top: 1px solid var(--control-line); border-bottom: 0; gap: 10px; }
.app-shell .fv-attention-summary strong { font-size: 14px; }
.app-shell .fv-attention-summary > button > span:nth-child(2) { min-width: 0; flex: 1; }
.app-shell .fv-attention-summary small { font-size: 12px; }
.app-shell .fv-attention-summary > button > svg { width: 14px; flex-shrink: 0; }
.app-shell .fv-overview-queue { margin-top: 4px; padding-top: 16px; }
.app-shell .fv-overview-queue-head > span { color: var(--muted); font-size: 12px; }
.app-shell .fv-queue-row { grid-template-columns: minmax(0, 1.4fr) minmax(90px, .6fr) auto; padding: 12px 0; }
.app-shell .fv-queue-row .member-profile-link { min-height: 28px; text-align: left; overflow-wrap: anywhere; }
.app-shell .fv-queue-actions .btn { min-height: 44px; }
.app-shell .fv-queue-empty { padding: 18px 0 4px; }
.app-shell .fv-overview-stats { margin-top: 24px; }
.app-shell .frontdesk-primary { padding: 24px; }
.app-shell .frontdesk-primary h2 { margin-top: 0; font-size: 1.5rem; }
.app-shell .fv-service-queue { display: grid; gap: 8px; }
.app-shell .fv-service-queue .frontdesk-task { border: 0; border-top: 1px solid var(--control-line); border-radius: 0; background: transparent; padding-inline: 0; }
.app-shell .fv-service-queue small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.app-shell .fv-service-queue .member-avatar { flex: 0 0 36px; }
@media (max-width: 1100px) {
 .app-shell .fv-attention-summary { grid-template-columns: minmax(0, 1fr); gap: 0; }
 .app-shell .fv-attention-summary > button { padding: 12px 0; }
 .app-shell .fv-queue-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
 .app-shell .fv-queue-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 620px) {
 body:has(.overview-primary, .frontdesk-primary) .connected-status { padding: 10px 14px; }
 body:has(.overview-primary, .frontdesk-primary) .connected-status > div:first-child { display: none; }
 body:has(.overview-primary, .frontdesk-primary) .connected-status .workspace-status-access { width: 100%; gap: 8px; justify-content: space-between; }
 body:has(.overview-primary, .frontdesk-primary) .cloud-bar { padding: 10px 14px; gap: 8px; margin-bottom: 20px; }
 .app-shell .page-heading { gap: 12px; margin-bottom: 20px; }
 .app-shell .page-heading h1 { font-size: 1.65rem; }
 .app-shell .overview-primary { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
 .app-shell .overview-secondary { width: 100%; display: flex; flex-wrap: wrap; }
 .app-shell .overview-secondary .btn { flex: 1 1 130px; min-height: 44px; }
 .app-shell .fv-overview-attention { padding: 18px; }
 .app-shell .fv-overview-attention .card-head { align-items: flex-start; }
 .app-shell .fv-overview-attention .card-head .inline-link { white-space: nowrap; min-height: 44px; }
 .app-shell .fv-overview-attention .card-head p { max-width: 28ch; }
 .app-shell .fv-overview-queue-head { gap: 4px; }
 .app-shell .fv-queue-row { grid-template-columns: minmax(0, 1fr) auto; }
 .app-shell .fv-queue-actions { display: flex; }
 .app-shell .fv-queue-actions .btn { flex: 1; }
 .app-shell .fv-queue-status { max-width: 90px; }
 .app-shell .frontdesk-primary { padding: 20px; }
}

/* Compact renewal summary leaves the first member visible on phones. */
@media (max-width: 620px) {
 .app-shell .fv-overview-attention .card-head { flex-direction: row; flex-wrap: nowrap; align-items: center; }
 .app-shell .fv-overview-attention .card-head > div { min-width: 0; }
 .app-shell .fv-overview-attention .card-head h2 { font-size: 17px; }
 .app-shell .fv-overview-attention .card-head p { display: none; }
 .app-shell .fv-attention-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
 .app-shell .fv-attention-summary > button { display: block; padding: 12px 0; text-align: left; }
 .app-shell .fv-attention-summary .attention-icon, .app-shell .fv-attention-summary > button > svg { display: none; }
 .app-shell .fv-attention-summary > button > span:nth-child(2) { display: block; }
 .app-shell .fv-attention-summary strong { font-size: 13px; line-height: 1.5; }
 .app-shell .fv-attention-summary small { display: block; margin-top: 5px; font-size: 11px; line-height: 1.5; }
}

/* Phone layout: leave room for the first actionable member. */
@media (max-width: 620px) {
 body:has(.overview-primary, .frontdesk-primary) .connected-status .workspace-status-access { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; }
 body:has(.overview-primary, .frontdesk-primary) .workspace-status-access > span { overflow-wrap: anywhere; }
 .app-shell .overview-secondary { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 8px; }
 .app-shell .overview-secondary .btn { padding: 8px; min-height: 48px; font-size: 12px; }
 .app-shell .overview-secondary .btn > svg { display: none; }
}

/* Reviewed dashboard changes, 21 October 2026 */
/* Operational screens only. Public, authentication and private owner pages keep
   their own layouts. Dialogs are siblings of the verified .app-shell wrapper. */
.app-shell {
  --workspace-sidebar: 252px;
  --workspace-gutter: clamp(20px, 2.7vw, 40px);
  --workspace-card-space: clamp(20px, 2vw, 28px);
  min-height: 100dvh;
  font-size: 14px;
  line-height: 1.5;
}
.app-shell .sidebar {
  width: var(--workspace-sidebar);
  padding: 24px 16px 18px;
  background: #11151a;
  overscroll-behavior: contain;
  scrollbar-color: var(--control-line) transparent;
  scrollbar-width: thin;
}
.app-shell .main-column { margin-left: var(--workspace-sidebar); }
.app-shell .sidebar-logo { padding: 0 12px 24px; }
.app-shell .workspace-switch { padding: 12px; margin: 0 0 22px; border-radius: 10px; }
.app-shell .workspace-logo { width: 38px; height: 38px; flex-shrink: 0; border-radius: 8px; }
.app-shell .workspace-name { gap: 4px; }
.app-shell .workspace-name small { font-size: 12px; }
.app-shell .sidebar-nav { gap: 8px; padding: 0 2px 8px; }
.app-shell .nav-caption { font-size: 10px; letter-spacing: .13em; margin-top: 12px; }
.app-shell .nav-item { min-height: 46px; padding: 11px 13px; gap: 12px; border-radius: 8px; font-size: 14px; }
.app-shell .nav-item svg { width: 19px; height: 19px; }
.app-shell .nav-item.active { background: #152110; }
.app-shell .nav-more summary { min-height: 46px; border-radius: 8px; }
.app-shell .sidebar-bottom { padding-top: 16px; gap: 14px; }
.app-shell .sidebar-trial { padding: 15px; border-radius: 9px; }
.app-shell .sidebar-trial p { overflow-wrap: anywhere; }
.app-shell .profile-chip { min-width: 0; padding-top: 16px; }
.app-shell .profile-chip > span:nth-child(2) { min-width: 0; }
.app-shell .profile-chip strong { overflow-wrap: anywhere; }
.app-shell .topbar {
  position: sticky;
  top: 0;
  z-index: 9;
  min-height: 78px;
  height: auto;
  padding: 14px var(--workspace-gutter);
  background: #11151af5;
  backdrop-filter: blur(14px);
  gap: 18px;
}
.app-shell .topbar-left { font-size: 13px; gap: 12px; }
.app-shell .topbar-left strong { font-size: 14px; }
.app-shell .topbar-right { gap: 10px; }
.app-shell .topbar-quick { min-height: 44px; padding: 10px 16px; font-size: 13px; }
.app-shell .topbar-help { font-size: 13px; }
.app-shell .round-avatar { width: 44px; height: 44px; flex-shrink: 0; }
.app-shell .dashboard-content {
  max-width: 1480px;
  padding: 30px var(--workspace-gutter) 48px;
  min-width: 0;
}
.app-shell .dashboard-content :where(a, button, input, select, textarea, summary, [tabindex]) {
  scroll-margin-block: 108px 28px;
}
.app-shell .page-heading { gap: 20px; margin-bottom: 28px; align-items: flex-end; }
.app-shell .page-heading > div { min-width: 0; }
.app-shell .page-heading h1 {
  font-size: clamp(28px, 2.65vw, 36px);
  line-height: 1.15;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}
.app-shell .page-heading p { font-size: 14px; line-height: 1.7; max-width: 65ch; }
.app-shell .page-heading-action { gap: 10px; }
.app-shell .small-overline { font-size: 10px; letter-spacing: .14em; }
.app-shell .surface-card { border-radius: 12px; box-shadow: 0 4px 20px #00000012; }
.app-shell .btn { min-height: 44px; font-size: 14px; border-radius: 8px; line-height: 1.4; }
.app-shell .icon-btn { min-width: 44px; min-height: 44px; border-radius: 8px; }
.app-shell :where(button, a, summary):focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 4px; }
.app-shell .workspace-status { padding: 16px 20px; border-radius: 10px; background: var(--surface); }
.app-shell .workspace-status > div { min-width: 0; }
.app-shell .workspace-status p { max-width: 67ch; }
.app-shell .cloud-bar { border-color: var(--line); background: var(--surface); border-radius: 10px; gap: 10px 16px; }
.app-shell .cloud-bar select { min-height: 44px; min-width: 0; border-color: var(--control-line); background: var(--bg); }
.app-shell .cloud-save-state { font-size: 12px; }
.app-shell .setup-mini { padding: 18px 20px; border-radius: 10px; }
.app-shell .stats-grid, .app-shell .finance-stats, .app-shell .closing-stats { gap: 16px; }
.app-shell .stat-card, .app-shell .closing-stat { padding: 22px; gap: 13px; }
.app-shell .stat-card > strong, .app-shell .closing-stat h2 {
  font-size: clamp(26px, 2.6vw, 34px);
  letter-spacing: -.035em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.app-shell .stat-top > span:first-child { font-size: 13px; line-height: 1.6; }
.app-shell .stat-change { font-size: 12px; line-height: 1.6; align-items: flex-start; }
.app-shell .stat-change svg { margin-top: 2px; }
.app-shell .stat-icon { width: 36px; height: 36px; border-radius: 9px; }
.app-shell :is(.chart-card, .attention-card, .recent-card, .quick-card, .checkin-card,
  .settings-card, .help-panel, .member-hub-card, .closing-table-card, .closing-cash-card,
  .closing-review-card, .closing-history-card) { padding: var(--workspace-card-space); }
.app-shell .card-head { flex-wrap: wrap; gap: 12px; }
.app-shell .card-head h2 { font-size: 18px; line-height: 1.4; }
.app-shell .card-head p { font-size: 14px; line-height: 1.6; max-width: 60ch; }
.app-shell .overview-layout, .app-shell .overview-layout.lower { gap: 22px; margin-top: 22px; }
.app-shell .overview-primary { gap: 12px; }
.app-shell .quick-actions { gap: 10px; }
.app-shell .quick-actions button { min-height: 54px; font-size: 14px; padding: 12px; border-radius: 8px; }
.app-shell .quick-actions span { width: 34px; height: 34px; border-radius: 7px; }
.app-shell .attention-list button { min-height: 68px; padding: 16px 4px; border-radius: 5px; }
.app-shell .attention-list strong, .app-shell .recent-item strong { font-size: 14px; line-height: 1.5; }
.app-shell .attention-list small, .app-shell .recent-item small { font-size: 12px; line-height: 1.5; }
.app-shell .recent-item { gap: 12px; padding: 16px 0; }
.app-shell .recent-amount { font-size: 13px; font-variant-numeric: tabular-nums; }
.app-shell .mini-stats { gap: 12px; }
.app-shell .mini-stats > div { min-width: 140px; border-radius: 10px; padding: 16px 18px; }
.app-shell .mini-stats strong { font-size: 26px; font-variant-numeric: tabular-nums; }
.app-shell .table-toolbar { padding: 20px; gap: 14px; }
.app-shell .search-field { height: 48px; min-width: 180px; border-radius: 8px; }
.app-shell .segmented { border-radius: 8px; gap: 4px; }
.app-shell .segmented button { min-height: 44px; border-radius: 5px; font-size: 13px; }
.app-shell .member-filter-control { font-size: 14px; }
.app-shell .member-filter-control select { border-radius: 8px; min-height: 46px; }
/* Local/scroll backgrounds shade only the edges with content still offscreen. */
.app-shell .table-scroll {
  min-width: 0;
  max-width: 100%;
  overscroll-behavior-x: contain;
  scrollbar-color: var(--gold) var(--bg);
  background:
    linear-gradient(to right, var(--surface) 30%, transparent) left center / 42px 100% local no-repeat,
    linear-gradient(to left, var(--surface) 30%, transparent) right center / 42px 100% local no-repeat,
    linear-gradient(to right, #00000060, transparent) left center / 14px 100% scroll no-repeat,
    linear-gradient(to left, #00000060, transparent) right center / 14px 100% scroll no-repeat;
}
.app-shell .table-scroll::-webkit-scrollbar { height: 10px; }
.app-shell .table-scroll::-webkit-scrollbar-track { background: var(--bg); }
.app-shell .table-scroll::-webkit-scrollbar-thumb { background: var(--gold-line); border: 2px solid var(--bg); border-radius: 10px; }
.app-shell .table-scroll:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: -3px; }
.app-shell .data-table th { font-size: 11px; letter-spacing: .04em; padding: 16px 20px; }
.app-shell .data-table td { font-size: 14px; line-height: 1.6; padding: 16px 20px; }
.app-shell .data-table td strong { font-size: 14px; line-height: 1.5; }
.app-shell .member-cell { min-width: 200px; gap: 12px; }
.app-shell .member-cell > div { min-width: 0; }
.app-shell .member-cell strong { white-space: normal; max-width: 32ch; overflow-wrap: anywhere; }
.app-shell .member-avatar { width: 38px; height: 38px; border-radius: 8px; flex-shrink: 0; }
.app-shell .table-actions { gap: 8px; align-items: center; }
.app-shell .table-actions > button { min-width: 44px; min-height: 44px; border-radius: 7px; }
.app-shell .member-tools summary { border-radius: 7px; }
.app-shell .table-bottom { padding: 16px 20px; font-size: 12px; align-items: center; }
.app-shell .table-bottom > span { line-height: 1.7; }
.app-shell .member-hub-grid, .app-shell .member-hub-history-grid { gap: 22px; }
.app-shell .member-hub-access { border-radius: 10px; }
.app-shell .member-hub-total { padding: 16px; border-radius: 8px; }
.app-shell .member-hub-facts { gap: 22px 24px; }
.app-shell .member-hub-facts dt { font-size: 12px; }
.app-shell .member-hub-facts dd { font-size: 15px; }
.app-shell .member-hub-service-actions { gap: 10px; }
.app-shell .closing-section-head h2 { font-size: 21px; }
.app-shell .closing-stat-breakdown { gap: 10px; }
.app-shell .closing-stat small { font-size: 12px; line-height: 1.7; }
.app-shell .closing-bottom { gap: 22px; }
.app-shell .closing-cash-metrics > div { border-radius: 8px; }
.app-shell .closing-breakdown summary, .app-shell .closing-expenses summary,
.app-shell .closing-voids summary { min-height: 52px; }
.app-shell .closing-note { font-size: 14px; line-height: 1.7; }
.app-shell .report-period { font-size: 13px; gap: 10px; }
.app-shell .report-period input { min-height: 44px; min-width: 0; font-size: 14px; border-radius: 8px; }
.app-shell .modal-form { gap: 20px; }
.app-shell .modal-form label { font-size: 14px; line-height: 1.5; }
.app-shell .modal-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 16px;
}
.app-shell .modal-form textarea { min-height: 110px; }
.app-shell .settings-rows > div { align-items: flex-start; gap: 20px; }
.app-shell .settings-rows strong { max-width: 65%; }
.app-shell .team-row > div, .app-shell .history-row > div { min-width: 0; }
.app-shell .team-row strong, .app-shell .team-row small, .app-shell .history-row small { overflow-wrap: anywhere; }
.app-shell .team-row select { min-height: 44px; font-size: 14px; max-width: 100%; }
.app-shell ~ .modal-backdrop { padding: 24px; }
.app-shell ~ .modal-backdrop .modal {
  max-height: calc(100dvh - 48px);
  padding: 28px;
  border-radius: 16px;
  scroll-padding-block: 20px;
}
.app-shell ~ .modal-backdrop .modal:not(.modal-wide) { width: min(100%, 550px); }
.app-shell ~ .modal-backdrop .modal-head { gap: 16px; margin-bottom: 24px; }
.app-shell ~ .modal-backdrop .modal-head > div { min-width: 0; }
.app-shell ~ .modal-backdrop .modal-head h2 { font-size: 24px; line-height: 1.25; overflow-wrap: anywhere; }
.app-shell ~ .modal-backdrop .icon-btn { min-width: 44px; min-height: 44px; flex-shrink: 0; }
.app-shell ~ .modal-backdrop .modal-form { gap: 20px; }
.app-shell ~ .modal-backdrop .modal-form label { font-size: 14px; line-height: 1.5; }
.app-shell ~ .modal-backdrop .modal-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  min-height: 48px;
  font-size: 16px;
  padding: 12px 14px;
  border-radius: 8px;
}
.app-shell ~ .modal-backdrop .modal-actions { gap: 12px; padding-top: 22px; }
.app-shell ~ .modal-backdrop .modal-actions .btn { min-height: 46px; border-radius: 8px; font-size: 14px; }

@media (hover: hover) and (pointer: fine) {
  .app-shell .quick-actions button { transition: border-color .18s ease, background-color .18s ease, transform .18s ease; }
  .app-shell .quick-actions button:hover { transform: translateX(2px); }
  .app-shell .nav-item, .app-shell .attention-list button { transition: color .18s ease, background-color .18s ease, border-color .18s ease; }
}
@media (max-width: 1180px) {
  .app-shell { --workspace-sidebar: 236px; --workspace-gutter: 24px; }
  .app-shell .sidebar-logo { padding-inline: 8px; }
  .app-shell .sidebar-logo .brand-wordmark { width: 176px; }
  .app-shell .topbar-left > span, .app-shell .topbar-left > svg { display: none; }
  .app-shell .member-hub-grid, .app-shell .member-hub-history-grid { grid-template-columns: minmax(0, 1fr); }
  .app-shell .overview-layout, .app-shell .overview-layout.lower { grid-template-columns: minmax(0, 1fr); }
  .app-shell .closing-stats, .app-shell .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .app-shell .attendance-layout, .app-shell .feedback-layout { grid-template-columns: minmax(0, 1fr); }
  .app-shell .page-heading { flex-wrap: wrap; align-items: flex-start; }
  .app-shell .finance-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Match the existing 780px menu logic so hidden navigation stays inert. */
@media (max-width: 780px) {
  .app-shell { --workspace-gutter: 22px; --workspace-sidebar: min(290px, calc(100vw - 24px)); }
  .app-shell .sidebar { padding-top: 22px; }
  .app-shell .sidebar-logo { padding-inline: 8px; }
  .app-shell .sidebar-logo .brand-wordmark { width: 183px; max-width: 100%; }
  .app-shell .main-column { margin-left: 0; }
  .app-shell .topbar { min-height: 72px; padding-block: 12px; gap: 12px; }
  .app-shell .topbar-left { gap: 8px; }
  .app-shell .topbar-left strong { white-space: normal; line-height: 1.3; }
  .app-shell .dashboard-content { padding-top: 24px; }
  .app-shell .workspace-status { align-items: stretch; }
  .app-shell .workspace-status-access { justify-content: flex-start; }
  .app-shell .table-toolbar { flex-direction: column; align-items: stretch; }
  .app-shell .table-toolbar .search-field { width: 100%; min-width: 0; max-width: none; flex: auto; }
  .app-shell .member-filter-control { width: 100%; justify-content: space-between; }
  .app-shell .member-filter-control select { flex: 1; min-width: 0; }
  .app-shell .segmented { width: 100%; }
  .app-shell .segmented button { flex: 1; white-space: normal; }
  .app-shell .cloud-bar select { max-width: 100%; }
  .app-shell .mini-stats > div { min-width: 0; }
  .app-shell .settings-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 545px) {
  .app-shell { --workspace-gutter: 16px; --workspace-card-space: 20px; }
  .app-shell .page-heading { gap: 18px; margin-bottom: 24px; }
  .app-shell .page-heading h1 { font-size: 29px; }
  .app-shell .page-heading-action { width: 100%; gap: 10px; }
  .app-shell .page-heading-action .btn { flex: 1 1 140px; padding: 11px 14px; }
  .app-shell .stat-card, .app-shell .closing-stat { padding: 17px 15px; }
  .app-shell .stats-grid, .app-shell .finance-stats, .app-shell .closing-stats { gap: 12px; }
  .app-shell .stat-card > strong, .app-shell .closing-stat h2 { font-size: clamp(22px, 6.4vw, 30px); }
  .app-shell .stat-top > span:first-child { font-size: 12px; }
  .app-shell .stat-change { font-size: 12px; }
  .app-shell .stat-icon { width: 30px; height: 30px; }
  .app-shell .table-toolbar { padding: 17px; gap: 12px; }
  .app-shell .data-table th, .app-shell .data-table td { padding: 16px; }
  .app-shell .table-bottom { padding: 16px; gap: 12px; }
  .app-shell .mini-stats { gap: 8px; }
  .app-shell .mini-stats > div { padding: 14px 10px; }
  .app-shell .mini-stats span { font-size: 12px; }
  .app-shell .workspace-status, .app-shell .setup-mini { padding: 16px; }
  .app-shell .member-hub-service-actions { grid-column: 1 / -1; }
  .app-shell .member-hub-service-actions .btn, .app-shell .member-hub-actions .btn { flex: 1 1 140px; }
  .app-shell .member-hub-pagination { align-items: stretch; }
  .app-shell .member-hub-pagination > div { justify-content: space-between; }
  .app-shell .member-hub-facts { gap: 18px; }
  .app-shell .closing-header-actions .report-period { min-width: 0; justify-content: space-between; }
  .app-shell .closing-header-actions .report-period input { flex: 1; max-width: 190px; }
  .app-shell .closing-cash-summary, .app-shell .closing-review-summary,
  .app-shell .closing-expense-methods { grid-template-columns: minmax(0, 1fr) minmax(0, .7fr); }
  .app-shell .closing-cash-metrics { grid-template-columns: minmax(0, 1fr); }
  .app-shell .team-row .team-actions { flex-wrap: wrap; }
  .app-shell .team-row .team-actions select { flex: 1 1 150px; }
  .app-shell .team-row .team-actions .btn { flex: 1 1 120px; }
  .app-shell .settings-rows > div { gap: 12px; }
  .app-shell .settings-rows strong { max-width: 60%; }
  .app-shell ~ .modal-backdrop { padding: 12px; align-items: center; }
  .app-shell ~ .modal-backdrop .modal { max-height: calc(100dvh - 24px); padding: 22px 20px; border-radius: 13px; }
  .app-shell ~ .modal-backdrop .modal-head h2 { font-size: 23px; }
  .app-shell ~ .modal-backdrop .modal-actions .btn { flex: 1 1 120px; }
  .app-shell ~ .modal-backdrop .form-row { grid-template-columns: minmax(0, 1fr); }
  .app-shell ~ .modal-backdrop .import-pick { flex-direction: column; align-items: stretch; }
}
@media (max-width: 460px) {
  .app-shell .topbar { flex-wrap: wrap; gap: 8px; }
  .app-shell .topbar-left { flex: 1 1 100%; }
  .app-shell .topbar-right { flex: 1 1 100%; justify-content: flex-end; gap: 10px; }
  .app-shell .topbar-quick { flex: 1; font-size: 14px; }
  .app-shell .topbar-help { min-width: 44px; }
  .app-shell .dashboard-content :where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-top: 150px; }
  .app-shell .member-hub-facts { grid-template-columns: minmax(0, 1fr); }
  .app-shell .stat-icon { display: none; }
  .app-shell .recent-item { flex-wrap: wrap; }
  .app-shell .recent-amount { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell .sidebar, .app-shell .quick-actions button, .app-shell .nav-item,
  .app-shell .attention-list button { transition: none; }
  .app-shell .quick-actions button:hover { transform: none; }
}
@media print {
  .app-shell .sidebar, .app-shell .topbar { display: none !important; }
  .app-shell .main-column { margin-left: 0; }
  .app-shell .dashboard-content { padding: 0; max-width: none; }
  .app-shell .surface-card { box-shadow: none; }
  .app-shell .table-scroll { overflow: visible; background: none; }
  .app-shell .data-table { white-space: normal; }
  .app-shell .stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .app-shell ~ .modal-backdrop { position: static; padding: 0; background: white; }
  .app-shell ~ .modal-backdrop .modal { max-height: none; box-shadow: none; }
}

/* Daily dashboard hierarchy and role-focused service actions. */
.app-shell .overview-primary { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 0 0 24px; }
.app-shell .overview-primary > .btn { min-height: 52px; padding-inline: 22px; font-size: 15px; }
.app-shell .overview-secondary { display: flex; flex-wrap: wrap; gap: 9px; }
.app-shell .overview-secondary .btn { min-height: 44px; }
.app-shell .overview-count { display: inline-grid; min-width: 22px; height: 22px; place-items: center; border-radius: 999px; background: #ffffff16; font-size: 12px; }
.app-shell .fv-dashboard-readonly { margin: -10px 0 22px; color: var(--muted); }
.app-shell .fv-overview-attention { margin-bottom: 22px; }
.app-shell .fv-overview-queue { margin-top: 20px; border-top: 1px solid var(--control-line); padding-top: 18px; }
.app-shell .fv-overview-queue-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 10px; }
.app-shell .fv-overview-queue-list { display: grid; }
.app-shell .fv-queue-row { display: grid; grid-template-columns: minmax(180px, 1.5fr) minmax(90px, .6fr) minmax(210px, 1fr); align-items: center; gap: 16px; padding: 13px 0; border-top: 1px solid var(--control-line); }
.app-shell .fv-queue-member { display: flex; align-items: center; gap: 11px; min-width: 0; }
.app-shell .fv-queue-member > div { display: grid; min-width: 0; }
.app-shell .fv-queue-member small { color: var(--muted); overflow-wrap: anywhere; }
.app-shell .fv-queue-actions { display: flex; justify-content: flex-end; gap: 8px; }
.app-shell .fv-queue-actions .btn { min-height: 42px; padding: 9px 12px; }
.app-shell .fv-dashboard-ai { margin-top: 22px; }
.app-shell .fv-dashboard-ai > .ai-command-center { margin: 0; }
.app-shell .fv-overview-lower { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 18px; margin-top: 20px; }
.app-shell .today-pulse-card { grid-column: 1 / -1; padding: 24px; }
.app-shell .today-pulse-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.app-shell .today-pulse-actions .btn { min-height: 42px; }
.app-shell .today-pulse-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 20px; }
.app-shell .today-pulse-metric { min-width: 0; border-top: 1px solid var(--control-line); padding-top: 14px; }
.app-shell .today-pulse-metric > span { display: block; color: var(--muted); font-size: 12px; }
.app-shell .today-pulse-metric > strong { display: block; margin-top: 8px; color: var(--ink); font-size: clamp(22px, 2.5vw, 32px); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.app-shell .today-pulse-metric > small { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.app-shell .today-pulse-note { display: flex; align-items: flex-start; gap: 8px; margin: 20px 0 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.app-shell .today-pulse-note svg { flex: 0 0 auto; margin-top: 2px; color: var(--gold); }
.app-shell .frontdesk-primary { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: clamp(22px, 4vw, 36px); margin-bottom: 20px; border: 1px solid var(--control-line); border-radius: 12px; background: linear-gradient(120deg, #152110, #1b1e22 78%); }
.app-shell .frontdesk-primary h2 { margin: 8px 0 4px; font-size: clamp(22px, 3vw, 30px); }
.app-shell .frontdesk-primary p, .app-shell .frontdesk-tasks .card-head p { margin: 0; color: var(--muted); }
.app-shell .frontdesk-primary > .btn { min-height: 50px; padding-inline: 22px; }
.app-shell .frontdesk-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.app-shell .frontdesk-tasks { margin-bottom: 20px; }
.app-shell .frontdesk-task-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.app-shell .frontdesk-task { display: flex; min-width: 0; min-height: 58px; justify-content: space-between; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--control-line); border-radius: 9px; background: #ffffff05; color: var(--ink); text-align: left; cursor: pointer; }
.app-shell .frontdesk-task > span { display: flex; min-width: 0; align-items: center; gap: 10px; }
.app-shell .frontdesk-task strong { overflow-wrap: anywhere; }
.app-shell .frontdesk-task:hover { border-color: #C8FF2E; background: #C8FF2E10; }
.app-shell .frontdesk-task:focus-visible, .app-shell .overview-primary :focus-visible, .app-shell .fv-overview-queue :focus-visible { outline: 3px solid #DCFF6B; outline-offset: 3px; }
.app-shell .frontdesk-note { margin: 16px 0 0; color: var(--muted); }
.app-shell .fv-overview-queue .member-profile-link { padding: 0; }
.app-shell .fv-overview-queue .member-profile-link strong { font-size: 14px; }
@media (max-width: 900px) {
  .app-shell .fv-overview-lower { grid-template-columns: minmax(0, 1fr); }
  .app-shell .fv-queue-row { grid-template-columns: minmax(0, 1fr) auto; }
  .app-shell .fv-queue-status { justify-self: end; }
  .app-shell .fv-queue-actions { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 600px) {
  .app-shell .overview-primary { align-items: stretch; }
  .app-shell .overview-primary > .btn { width: 100%; justify-content: center; }
  .app-shell .overview-secondary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell .overview-secondary .btn { min-width: 0; justify-content: center; white-space: normal; }
  .app-shell .fv-overview-queue-head { align-items: flex-start; flex-direction: column; }
  .app-shell .fv-queue-row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .app-shell .fv-queue-status { justify-self: start; }
  .app-shell .fv-queue-actions { grid-column: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-shell .fv-queue-actions .btn { justify-content: center; }
  .app-shell .frontdesk-primary { align-items: stretch; flex-direction: column; }
  .app-shell .frontdesk-primary > .btn { width: 100%; justify-content: center; }
  .app-shell .frontdesk-task-list { grid-template-columns: minmax(0, 1fr); }
  .app-shell .frontdesk-task { min-height: 54px; }
  .app-shell .today-pulse-card { padding: 18px; }
  .app-shell .today-pulse-actions { width: 100%; justify-content: flex-start; }
  .app-shell .today-pulse-actions .inline-link { flex: 1 1 120px; text-align: left; }
  .app-shell .today-pulse-actions .btn { flex: 1 1 160px; }
  .app-shell .today-pulse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
}

/* Keep manager-only member editing controls out of front-desk task routes. */
.app-shell.role-front-desk [data-act="edit-member"], .app-shell.role-front-desk [data-act="freeze-member"], .app-shell.role-front-desk [data-act="edit-plan"] { display: none !important; }

@media (max-width: 545px) {
  body:has(.overview-primary) #ai-widget-root .ai-launcher { position: static; display: block; width: max-content; max-width: calc(100vw - 32px); margin: 12px 16px 20px auto; }
}

.app-shell .frontdesk-renewal-summary { margin: 0 0 14px; color: var(--gold-hover); font-size: 13px; font-weight: 600; }

/* Dashboard visual polish: keep the depth flat, the chart readable, and short cards from stretching. */
.app-shell .fv-overview-lower { align-items: start; }
.app-shell .dashboard-chart-label { letter-spacing: 0; text-transform: none; font-size: 12px; }
.app-shell .dashboard-chart-label { font-size: 0; }
.app-shell .dashboard-chart-label::after { content: 'Trend window'; font-size: 12px; letter-spacing: 0; }
.app-shell .dashboard-activity-orbit { background: var(--surface); box-shadow: none; }
.app-shell .dashboard-activity-orbit .dashboard-orbit-ring,
.app-shell .dashboard-activity-orbit .dashboard-orbit-core,
.app-shell .dashboard-activity-orbit .dashboard-orbit-node { box-shadow: none; }
.app-shell .dashboard-orbit-core small { font-size: 0; letter-spacing: 0; }
.app-shell .dashboard-orbit-core small::after { content: 'Active'; font-size: 9px; letter-spacing: .08em; }

/* Operational overview additions: compact action queue, honest drill-down, and peak-hour context. */
.app-shell .fv-next-actions-list { display: grid; gap: 0; }
.app-shell .fv-next-action { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--control-line); }
.app-shell .fv-next-action:first-child { border-top: 0; }
.app-shell .fv-next-action > div { display: grid; gap: 3px; min-width: 0; }
.app-shell .fv-next-action strong, .app-shell .fv-next-action small { overflow-wrap: anywhere; }
.app-shell .fv-next-action small { color: var(--muted); }
.app-shell .fv-next-action-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: #C8FF2E18; color: var(--gold); }
.app-shell .fv-next-action .btn { min-height: 38px; padding: 8px 11px; white-space: nowrap; }
.app-shell .fv-overview-lower > .surface-card { align-self: start; height: fit-content; min-height: 0; }
.app-shell .dashboard-chart-point { cursor: pointer; }
.app-shell .dashboard-chart-point.is-selected circle { stroke: var(--gold-hover); stroke-width: 3; }
.app-shell .fv-chart-hint { margin: 0; color: var(--muted); font-size: 12px; }
.app-shell .fv-chart-detail { display: grid; gap: 12px; margin-top: 4px; padding: 14px; border: 1px solid var(--control-line); border-radius: 10px; background: #ffffff05; }
.app-shell .fv-chart-detail > div:first-child { display: grid; gap: 3px; }
.app-shell .fv-chart-detail small, .app-shell .fv-chart-detail dt { color: var(--muted); font-size: 11px; }
.app-shell .fv-chart-detail dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.app-shell .fv-chart-detail dl div { display: grid; gap: 3px; min-width: 0; }
.app-shell .fv-chart-detail dd { margin: 0; font-weight: 750; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.app-shell .fv-chart-detail-links { display: flex; gap: 14px; flex-wrap: wrap; }
.app-shell .fv-attendance-compact { padding-bottom: 18px; }
.app-shell .fv-hour-strip { display: grid; grid-template-columns: repeat(24, minmax(5px, 1fr)); align-items: end; gap: 4px; min-height: 76px; margin-top: 14px; }
.app-shell .fv-hour-cell { display: grid; grid-template-rows: 48px 14px; gap: 5px; min-width: 0; }
.app-shell .fv-hour-cell i { display: block; min-height: 5px; align-self: end; border-radius: 4px 4px 2px 2px; background: var(--gold); opacity: var(--fv-hour-level); }
.app-shell .fv-hour-cell small { color: var(--muted); font-size: 9px; text-align: center; }
.app-shell .fv-heatmap-legend { display: flex; align-items: center; gap: 5px; margin-top: 12px; color: var(--muted); font-size: 10px; }
.app-shell .fv-heatmap-legend i { width: 10px; height: 10px; border-radius: 3px; background: var(--gold); opacity: .25; }
.app-shell .fv-heatmap-legend i:nth-of-type(2) { opacity: .55; }
.app-shell .fv-heatmap-legend i:nth-of-type(3) { opacity: .9; }
.app-shell .fv-heatmap-legend strong { margin-left: 2px; font-weight: 600; }
.app-shell .fv-dashboard-unavailable { padding: 17px 0 3px; color: var(--muted); font-size: 12px; line-height: 1.6; }
@media (max-width: 600px) {
  .app-shell .fv-next-action { grid-template-columns: auto minmax(0, 1fr); }
  .app-shell .fv-next-action .btn { grid-column: 2; justify-self: start; }
  .app-shell .fv-chart-detail dl { gap: 7px; }
  .app-shell .fv-hour-strip { gap: 3px; }
}

/* Dashboard home: trend controls, tactile surfaces and the lightweight activity orbit. */
.app-shell .fv-dashboard-surface { opacity: 0; transform: translateY(10px); transition: opacity .34s ease var(--fv-surface-delay, 0ms), transform .34s ease var(--fv-surface-delay, 0ms); }
.app-shell .fv-dashboard-surface.is-visible { opacity: 1; transform: translateY(0); }
.app-shell .fv-dashboard-surface.is-pressed { transform: translateY(1px) scale(.997); }
.app-shell .dashboard-chart { display: grid; gap: 16px; }
.app-shell .dashboard-chart-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.app-shell .dashboard-chart-label { color: var(--muted); font-size: 10px; letter-spacing: .14em; font-weight: 700; }
.app-shell .dashboard-periods { display: inline-flex; padding: 4px; gap: 3px; border: 1px solid var(--control-line); border-radius: 9px; background: var(--bg); }
.app-shell .dashboard-period-button { min-width: 54px; min-height: 38px; padding: 8px 12px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 700; letter-spacing: .04em; cursor: pointer; }
.app-shell .dashboard-period-button:hover { color: var(--ink); background: #ffffff0a; }
.app-shell .dashboard-period-button.selected { background: var(--gold); color: var(--bg); }
.app-shell .dashboard-period-button:focus-visible { outline: 3px solid var(--gold-hover); outline-offset: 2px; }
.app-shell .dashboard-chart-canvas { min-width: 0; overflow-x: auto; padding-top: 4px; }
.app-shell .dashboard-chart-canvas svg { display: block; width: 100%; min-width: 560px; height: auto; overflow: visible; }
.app-shell .dashboard-chart-grid line { stroke: var(--control-line); stroke-dasharray: 3 6; }
.app-shell .dashboard-chart-grid text, .app-shell .dashboard-chart-point text { fill: var(--muted); font-size: 12px; }
.app-shell .dashboard-chart-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.app-shell .dashboard-chart-line-collections { stroke: #C8FF2E; }
.app-shell .dashboard-chart-line-expenses { stroke: #AEB3BA; stroke-dasharray: 7 5; stroke-width: 2.5; }
.app-shell .dashboard-chart-line-visits { stroke: #7DD3FC; stroke-width: 2.5; }
.app-shell .dashboard-chart-dot { stroke: var(--surface); stroke-width: 2; }
.app-shell .dashboard-chart-dot-collections { fill: #C8FF2E; }
.app-shell .dashboard-chart-dot-expenses { fill: #AEB3BA; }
.app-shell .dashboard-chart-dot-visits { fill: #7DD3FC; }
.app-shell .dashboard-chart-point { outline: none; }
.app-shell .dashboard-chart-point:focus-visible circle { stroke: var(--gold-hover); stroke-width: 3; }
.app-shell .dashboard-chart-point:focus-visible text { fill: var(--ink); font-weight: 700; }
.app-shell .chart-key { flex-wrap: wrap; gap: 12px 18px; }
.app-shell .dot-sky { background: #7DD3FC; }
.app-shell .dashboard-activity-orbit { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, .9fr); align-items: center; gap: 20px; min-height: 220px; margin-bottom: 18px; padding: clamp(20px, 3vw, 30px); overflow: hidden; perspective: 900px; background: radial-gradient(circle at 80% 24%, #213a45 0, #171d24 36%, var(--surface) 72%); }
.app-shell .dashboard-activity-copy { position: relative; z-index: 2; min-width: 0; }
.app-shell .dashboard-activity-copy h2 { margin: 8px 0 5px; font-size: clamp(21px, 2.4vw, 29px); letter-spacing: -.03em; }
.app-shell .dashboard-activity-copy p { max-width: 43ch; margin: 0; color: var(--muted); }
.app-shell .dashboard-orbit-metrics { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 20px; }
.app-shell .dashboard-orbit-metrics span { display: grid; gap: 2px; min-width: 90px; }
.app-shell .dashboard-orbit-metrics strong { color: var(--ink); font-size: 17px; font-variant-numeric: tabular-nums; }
.app-shell .dashboard-orbit-metrics small, .app-shell .dashboard-orbit-hint { color: var(--muted); font-size: 11px; }
.app-shell .dashboard-orbit-hint { display: block; margin-top: 17px; }
.app-shell .dashboard-orbit-scene { position: relative; width: min(100%, 250px); aspect-ratio: 1; justify-self: end; transform: rotateX(var(--orbit-rx, 0deg)) rotateY(var(--orbit-ry, 0deg)); transform-style: preserve-3d; transition: transform .28s ease; }
.app-shell .dashboard-orbit-ring { position: absolute; inset: 15%; border: 1px solid #7DD3FC88; border-radius: 50%; transform-style: preserve-3d; box-shadow: 0 0 30px #7DD3FC1f; }
.app-shell .dashboard-orbit-ring-one { transform: rotateX(67deg) rotateZ(12deg); }
.app-shell .dashboard-orbit-ring-two { inset: 24%; transform: rotateY(68deg) rotateZ(-20deg); border-color: #C8FF2E88; }
.app-shell .dashboard-orbit-core { position: absolute; inset: 35%; display: grid; place-content: center; gap: 2px; border: 1px solid #C8FF2E99; border-radius: 50%; background: #10161ddd; color: #C8FF2E; text-align: center; box-shadow: 0 0 28px #C8FF2E2b; transform: translateZ(28px); }
.app-shell .dashboard-orbit-core span { font-size: 20px; font-weight: 800; letter-spacing: .08em; }
.app-shell .dashboard-orbit-core small { color: #7DD3FC; font-size: 8px; letter-spacing: .17em; }
.app-shell .dashboard-orbit-node { position: absolute; width: 12px; height: 12px; border: 2px solid var(--surface); border-radius: 50%; background: #C8FF2E; box-shadow: 0 0 15px #C8FF2Eaa; transform: translateZ(42px); }
.app-shell .dashboard-orbit-node-one { top: 12%; left: 55%; }
.app-shell .dashboard-orbit-node-two { right: 12%; bottom: 28%; background: #7DD3FC; box-shadow: 0 0 15px #7DD3FCaa; }
.app-shell .dashboard-orbit-node-three { bottom: 13%; left: 22%; background: #D1AC66; box-shadow: 0 0 15px #D1AC66aa; }
@media (max-width: 900px) {
  .app-shell .dashboard-activity-orbit { grid-template-columns: minmax(0, 1fr) minmax(190px, .7fr); }
  .app-shell .dashboard-chart-canvas svg { min-width: 640px; }
}
@media (max-width: 600px) {
  .app-shell .dashboard-chart-head { align-items: flex-start; flex-direction: column; }
  .app-shell .dashboard-periods { width: 100%; }
  .app-shell .dashboard-period-button { flex: 1; }
  .app-shell .dashboard-activity-orbit { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .app-shell .dashboard-orbit-scene { justify-self: center; width: min(58vw, 220px); }
  .app-shell .dashboard-chart-canvas svg { min-width: 620px; }
}
@media (max-width: 390px) {
  .app-shell .dashboard-activity-orbit { padding: 18px; }
  .app-shell .dashboard-orbit-metrics { gap: 12px; }
  .app-shell .dashboard-orbit-metrics span { min-width: 76px; }
  .app-shell .dashboard-chart-canvas svg { min-width: 560px; }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell .fv-dashboard-surface { opacity: 1; transform: none; transition: none; }
  .app-shell .fv-dashboard-surface.is-pressed { transform: none; }
  .app-shell .dashboard-orbit-scene { transform: none; transition: none; }
}

/* Final overrides for the dashboard visual pass. */
.app-shell .fv-overview-lower { align-items: start; }
.app-shell .dashboard-chart-label { font-size: 0; letter-spacing: 0; text-transform: none; }
.app-shell .dashboard-chart-label::after { content: 'Trend window'; font-size: 12px; letter-spacing: 0; }
.app-shell .dashboard-activity-orbit { background: var(--surface); }
.app-shell .dashboard-activity-orbit .dashboard-orbit-ring,
.app-shell .dashboard-activity-orbit .dashboard-orbit-core,
.app-shell .dashboard-activity-orbit .dashboard-orbit-node { box-shadow: none; }
.app-shell .dashboard-orbit-core small { font-size: 0; letter-spacing: 0; }
.app-shell .dashboard-orbit-core small::after { content: 'Active'; font-size: 9px; letter-spacing: .08em; }
