@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Oswald:wght@600;700&display=swap";:root{font-family:Manrope,system-ui,sans-serif;color:#f4f7f8;background:#080b0f;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#080b0f}button,input,select{font:inherit}.brand{display:flex;align-items:center;gap:12px;font:700 20px Oswald;letter-spacing:.6px}.brand>span:last-child span,.green{color:#b9ff3b}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;color:#080b0f;background:#b9ff3b}.brand-mark svg{width:23px}.eyebrow{color:#b9ff3b!important;font-size:11px!important;font-weight:800;letter-spacing:2px}.muted{color:#7f8993}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-brand{padding:55px 7vw;position:relative;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(circle at 70% 50%,#233218 0,transparent 37%),linear-gradient(135deg,#0d1217,#090c10)}.login-brand:after{content:"";position:absolute;width:520px;height:520px;border:1px solid #b9ff3b18;border-radius:50%;right:-160px;top:15%;box-shadow:0 0 0 80px #b9ff3b08,0 0 0 160px #b9ff3b05}.login-copy{margin:auto 0;position:relative;z-index:1;max-width:650px}.login-copy h1{font:700 clamp(46px,6vw,84px)/1.03 Oswald;margin:16px 0 28px;text-transform:uppercase}.login-copy h1 em{font-style:normal;color:#b9ff3b}.login-copy>p:last-child{max-width:560px;color:#9aa4ae;font-size:16px;line-height:1.8}.secure-note,.aside-foot{display:flex;gap:12px;align-items:center;color:#a9b1b9}.secure-note svg,.aside-foot svg{color:#b9ff3b}.secure-note span,.aside-foot span{display:flex;flex-direction:column;font-size:12px}.secure-note small,.aside-foot small{color:#626d77;margin-top:3px}.login-panel{display:grid;place-items:center;padding:30px;background:#0d1116}.login-card{width:min(420px,100%);padding:40px}.login-card h2{font:700 44px Oswald;margin:10px 0 0}.login-card>p{font-size:14px}.login-card label{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:700;margin:24px 0;color:#bac1c7}.login-card input,.head-actions select{border:1px solid #26303a;background:#10161c;color:#fff;border-radius:10px;padding:14px;outline:none}.login-card input:focus{border-color:#b9ff3b}.primary{width:100%;border:0;border-radius:10px;padding:15px;background:#b9ff3b;color:#0a0d10;font-weight:800;cursor:pointer}.primary:disabled{opacity:.6}.error,.alert{color:#ff8e8e;background:#341c20;border:1px solid #622f36;padding:11px;border-radius:9px}.privacy{display:flex;align-items:center;justify-content:center;gap:7px!important;color:#646f79!important;margin-top:25px}.privacy svg{width:16px}.mobile-logo{display:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.app-shell aside{border-right:1px solid #1d242b;padding:28px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.app-shell nav{display:flex;flex-direction:column;gap:7px;margin-top:48px}.app-shell nav a{padding:12px 13px;display:flex;align-items:center;gap:12px;color:#77818b;border-radius:9px;font-size:13px;font-weight:600}.app-shell nav a svg{width:18px}.app-shell nav a.active{background:#b9ff3b12;color:#b9ff3b}.aside-foot{margin-top:auto;border-top:1px solid #1d242b;padding-top:20px}.dashboard{padding:36px clamp(25px,4vw,60px);overflow:hidden}.dashboard header{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px}.dashboard h1{font:700 35px Oswald;margin:5px 0;text-transform:uppercase}.head-actions{display:flex;gap:9px}.head-actions select{padding:10px 13px}.icon-btn{width:43px;height:43px;border-radius:10px;border:1px solid #26303a;color:#a9b1b9;background:#10161c;display:grid;place-items:center;cursor:pointer}.icon-btn svg{width:18px}.sync-strip{display:flex;align-items:center;gap:9px;font-size:12px;color:#7e8993;background:#0d1217;border:1px solid #1c242b;border-radius:10px;padding:10px 14px;margin-bottom:17px}.sync-strip b{color:#dce1e5}.sync-strip small{margin-left:auto}.dot{width:8px;height:8px;border-radius:50%;background:#b9ff3b;box-shadow:0 0 8px #b9ff3b}.dot.bad{background:#ff6b6b}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric,.panel{background:#0d1217;border:1px solid #1d252d;border-radius:15px}.metric{padding:20px}.metric-top{display:flex;justify-content:space-between}.metric-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#b9ff3b12;color:#b9ff3b}.metric-icon svg,.trend{width:18px}.trend{color:#59636d}.trend.up{color:#b9ff3b}.metric p{font-size:11px;color:#818b95;margin:18px 0 7px}.metric h3{font:700 26px Oswald;margin:0}.metric small{font-size:10px;color:#606a74}.grid-main,.grid-bottom{display:grid;grid-template-columns:2fr 1fr;gap:15px;margin-top:15px}.panel{padding:20px;min-width:0}.panel-title{display:flex;justify-content:space-between;align-items:start}.panel-title h3{font-size:14px;margin:0}.panel-title p{color:#6e7882;font-size:10px;margin:5px 0}.panel-title svg{width:16px;color:#6f7a84}.chart{height:270px;margin-top:20px;font-size:10px}.chart.small{height:210px}.donut{position:relative}.legend p{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:10px;color:#8a949d}.legend i{width:7px;height:7px;border-radius:50%}.legend b{margin-left:auto;color:#edf0f2}.highlights{display:flex;flex-direction:column}.highlight{display:flex;flex-direction:column;padding:17px 0;border-bottom:1px solid #1d252d}.highlight:last-child{border:0}.highlight span{color:#6f7a84;font-size:10px;margin-bottom:5px}.highlight b{font-size:13px}.setup,.loader{min-height:100vh;display:grid;place-content:center;text-align:center;justify-items:center;padding:30px}.setup>svg,.loader svg{color:#b9ff3b;width:55px;height:55px}.setup p{max-width:560px;color:#8d97a1;line-height:1.7}.setup pre{background:#111820;border:1px solid #26313a;border-radius:10px;text-align:left;padding:18px;color:#b9ff3b}.setup small{color:#727d86}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.grid-main,.grid-bottom,.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-panel{min-height:100vh}.mobile-logo{display:flex;align-items:center;gap:8px;color:#b9ff3b;font:700 18px Oswald;margin-bottom:60px}}@media(max-width:720px){.app-shell{display:block}.app-shell aside{display:none}.dashboard{padding:22px 15px}.dashboard header{align-items:flex-start;gap:14px}.dashboard h1{font-size:26px}.dashboard header .muted{display:none}.head-actions select{max-width:145px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:15px}.metric h3{font-size:22px}.sync-strip span:nth-of-type(2),.sync-strip small{display:none}.panel{padding:15px}}@media(max-width:450px){.metrics{grid-template-columns:1fr}.head-actions .icon-btn:first-of-type{display:none}}.brand-logo{height:auto}.brand-logo img{display:block;width:138px;height:auto;object-fit:contain}.sidebar-brand img{width:128px}.eyebrow,.green{color:#ef1b24!important}.login-brand{background:radial-gradient(circle at 70% 50%,#471015 0,transparent 39%),linear-gradient(135deg,#101114,#08090b)}.login-brand:after{border-color:#ef1b241f;box-shadow:0 0 0 80px #ef1b240d,0 0 0 160px #ef1b2408}.login-copy h1 em{color:#ef1b24}.secure-note svg,.aside-foot svg{color:#ef1b24}.login-card input:focus{border-color:#ef1b24;box-shadow:0 0 0 3px #ef1b2417}.primary{background:linear-gradient(135deg,#ef1b24,#ba0d15);color:#fff;box-shadow:0 12px 28px #ef1b2427}.primary:hover{background:linear-gradient(135deg,#ff3039,#d3111a)}.app-shell nav a.active{background:#ef1b2412;color:#ef1b24}.dot{background:#ef1b24;box-shadow:0 0 8px #ef1b24}.metric-icon{background:#ef1b2412;color:#ef1b24}.trend.up{color:#ef1b24}.setup>svg,.loader svg{color:#ef1b24}.setup pre{color:#ef1b24}.mobile-logo img{display:block;width:150px;height:auto;object-fit:contain}@media(max-width:1050px){.mobile-logo{margin-bottom:48px}.mobile-logo img{width:170px}}.app-shell aside nav button{width:100%;padding:12px 13px;display:flex;align-items:center;gap:12px;color:#77818b;border:0;background:transparent;border-radius:9px;font-size:13px;font-weight:600;cursor:pointer;text-align:left}.app-shell aside nav button svg{width:18px}.app-shell aside nav button.active{background:#ef1b2412;color:#ef1b24}.bottom-nav{display:none}.app-shell:not(.view-summary) .grid-main,.app-shell:not(.view-summary) .grid-bottom{grid-template-columns:1fr}.view-memberships .metric:not(#metric-memberships),.view-memberships .grid-main{display:none}.view-products .metric:not(#metric-products),.view-products .grid-main .panel.wide,.view-products .grid-bottom{display:none}.view-income .metric:not(#metric-income),.view-income .grid-bottom,.view-visits .metric:not(#metric-visits),.view-visits .grid-main,.view-memberships .grid-main{display:none}.view-visits .grid-bottom,.view-memberships .grid-bottom{grid-template-columns:1fr}.metric-clickable{cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.metric-clickable:hover,.metric-clickable:focus-visible{transform:translateY(-2px);border-color:#ef1b24;box-shadow:0 10px 28px #0000002e;outline:none}.metric-detail{display:inline-flex;margin-top:10px;color:#ef1b24;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.retention-view{margin-top:15px}.retention-heading{display:flex;justify-content:space-between;align-items:center;padding:22px;border:1px solid #2b2227;border-radius:14px;background:radial-gradient(circle at 90% 20%,#ef1b2426,transparent 35%),#11161c}.retention-heading h2{margin:4px 0 7px;font-size:25px}.retention-heading p{margin:0;color:#7f8993;font-size:12px}.retention-heading>svg{width:42px;height:42px;color:#ef1b24}.retention-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:15px}.retention-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:15px;margin-top:15px}.retention-split{display:flex;flex-direction:column;justify-content:center}.panel-title-with-filter{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-title-with-filter .panel-title{flex:1}.month-filter{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #2b3540;border-radius:10px;background:#10161c;color:#a9b1b9}.month-filter svg{width:16px;height:16px}.month-filter input{border:0;outline:0;background:transparent;color:#fff;color-scheme:dark;font:inherit;font-size:12px}.split-bar{height:22px;overflow:hidden;margin:45px 0 25px;border-radius:999px;background:#3c4650}.split-bar span{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,#ef1b24,#ff6b73);border-radius:inherit}.split-labels{display:grid;grid-template-columns:1fr 1fr;gap:12px}.split-labels p{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;color:#9aa3ab;font-size:12px}.split-labels i{width:9px;height:9px;border-radius:50%;background:#ef1b24}.split-labels .old-dot{background:#3c4650}.split-labels b{color:#fff;font-size:18px}.split-labels small{grid-column:2 / 4;color:#68727c}.retention-note{color:#66717b;font-size:10px;line-height:1.6;margin:12px 4px 0}.voided-payments-section{margin-top:15px}.voided-payments-section .card-heading{display:flex;align-items:center;gap:11px}.voided-payments-section .card-heading>svg{color:#ff6b73}.voided-payments-section .card-heading h3{margin:0 0 4px}.voided-payments-section .card-heading p{margin:0;color:#7f8993;font-size:11px}.voided-count{margin-left:auto;min-width:30px;padding:6px 9px;border-radius:999px;background:#351b20;color:#ff8e98;text-align:center;font-weight:800}.voided-payment-list{display:grid;gap:10px;margin-top:16px}.voided-payment{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;padding:13px;border:1px solid #34262a;border-radius:11px;background:#141012}.voided-payment>div{display:grid;gap:4px}.voided-payment span,.voided-payment small{color:#89929b;font-size:10px}.voided-payment-amount{text-align:right}.voided-payment-amount>strong{color:#ff8e98;text-decoration:line-through}.voided-reason{grid-column:1 / -1;padding-top:9px;border-top:1px solid #302328;color:#d9dde1;font-size:11px}.voided-reason b{color:#ff8e98}.voided-reason small{display:block;margin-top:2px}@media(max-width:720px){.voided-payment{grid-template-columns:1fr}.voided-payment-amount{text-align:left}.voided-reason{grid-column:1}.panel-title-with-filter{align-items:stretch;flex-direction:column}.month-filter{width:100%;justify-content:center}.month-filter input{flex:1}.dashboard{padding:20px 14px calc(92px + env(safe-area-inset-bottom))}.dashboard header{flex-wrap:wrap}.head-actions{width:100%}.head-actions select{flex:1;max-width:none}.metric{scroll-margin-top:18px}.chart{height:235px}.bottom-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:#0b0f14ed;border-top:1px solid #252d35;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav button{min-width:0;border:0;background:transparent;color:#6f7984;display:flex;flex-direction:column;align-items:center;gap:4px;padding:5px 1px;font-size:9px;font-weight:700}.bottom-nav button svg{width:20px;height:20px}.bottom-nav button.active{color:#ef1b24}.bottom-nav button.active svg{filter:drop-shadow(0 0 7px #ef1b2477)}}@media(max-width:450px){.metrics{grid-template-columns:1fr 1fr}.head-actions .icon-btn:first-of-type{display:grid}.metric h3{font-size:19px}.metric p{margin-top:13px}}@media(max-width:720px){.dashboard{padding-bottom:calc(154px + env(safe-area-inset-bottom))}.app-shell .bottom-nav{left:10px;right:10px;bottom:10px;height:72px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));border:1px solid #ef1b246b;border-radius:27px;background:linear-gradient(180deg,#190b0fef,#0d090cef);box-shadow:0 0 22px #ef1b243b,inset 0 1px #ffffff0d;overflow:visible;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex-direction:row;gap:0;margin:0}.bottom-nav button{height:54px;justify-content:flex-end;position:relative;gap:5px;color:#a79da1;transition:color .2s ease,transform .2s ease;cursor:pointer}.bottom-nav button svg{width:20px;height:20px;position:relative;z-index:2;transition:all .22s ease}.bottom-nav button span{line-height:1;transition:all .22s ease}.bottom-nav button.active{color:#fff}.bottom-nav button.active svg{box-sizing:content-box;width:22px;height:22px;padding:12px;margin-top:-31px;color:#fff;background:linear-gradient(145deg,#ff2440,#e50928);border:2px solid #ff6b7d;border-radius:50%;box-shadow:0 0 0 5px #12090c,0 5px 18px #ff173d8a;filter:none;transform:translateY(-1px)}.bottom-nav button.active span{font-weight:800;transform:translateY(-2px)}.retention-metrics{grid-template-columns:1fr 1fr}.retention-grid{grid-template-columns:1fr}.retention-heading{padding:17px}.retention-heading>svg{width:32px;height:32px}}@media(max-width:380px){.dashboard{padding-bottom:calc(166px + env(safe-area-inset-bottom))}}.executive-view{display:grid;gap:15px}.executive-heading{display:flex;align-items:center;justify-content:space-between;padding:22px;border:1px solid #2b2227;border-radius:14px;background:radial-gradient(circle at 90% 20%,#ef1b2426,transparent 35%),#11161c}.executive-heading h2{margin:4px 0 7px;font-size:25px}.executive-heading p{margin:0;color:#7f8993;font-size:12px}.executive-heading>svg{width:42px;height:42px;color:#ef1b24}.comparison-grid{display:grid;grid-template-columns:1fr;gap:15px}.comparison-grid .panel h3{font:700 28px Oswald;margin:10px 0}.comparison-grid .panel>span,.comparison-grid .panel>b{color:#7f8993;font-size:12px}.comparison-card{color:inherit;text-align:left;cursor:pointer;font-family:inherit;transition:border-color .2s ease,transform .2s ease}.comparison-card:hover{border-color:#ef1b24;transform:translateY(-2px)}.comparison-card small{display:block;margin-top:10px;font-size:11px;font-weight:800}.positive-text{color:#58d68d!important}.negative-text{color:#ff6b73!important}.executive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.card-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.card-heading>svg{color:#ef1b24;width:22px}.card-heading h3,.detail-head h3{margin:0}.card-heading p,.detail-head p{color:#7f8993;font-size:11px;margin:3px 0 0}.goal-values{display:flex;justify-content:space-between;align-items:end}.goal-values b{font:700 28px Oswald}.goal-values span{color:#7f8993;font-size:12px}.progress{height:9px;border-radius:10px;background:#2b3239;margin:12px 0 18px;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c90922,#ff334b)}.goal-card label{display:flex;justify-content:space-between;align-items:center;color:#8c959e;font-size:12px}.goal-card input{width:125px;padding:9px;color:#fff;background:#0d1217;border:1px solid #2b333b;border-radius:8px}.goal-card .card-heading{align-items:flex-start}.goal-month{text-transform:capitalize}.goal-edit{margin-left:auto;display:inline-flex;align-items:center;gap:6px;border:0;color:#ff6871;background:transparent;cursor:pointer;font-size:11px;font-weight:800}.goal-edit svg{width:14px}.goal-progress-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.goal-progress-row .progress{width:100%;margin:12px 0}.goal-progress-row strong{color:#fff;font:700 15px Oswald}.goal-status-row{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#9aa3ab;font-size:11px}.goal-status{padding:5px 9px;border-radius:999px;font-weight:800}.goal-status.on-track,.goal-status.reached{color:#70d89f;background:#173326}.goal-status.at-risk{color:#ff8e98;background:#351b20}.goal-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:15px}.goal-metrics>div{display:grid;gap:5px;padding:11px;border:1px solid #252d34;border-radius:9px;background:#0d1217}.goal-metrics span{color:#78838d;font-size:10px}.goal-metrics b{color:#fff;font-size:13px}.goal-editor{margin-top:14px;padding-top:14px;border-top:1px solid #252d34}.goal-editor>div{display:flex;justify-content:flex-end;gap:7px;margin-top:10px}.goal-message{display:block;margin-top:10px;color:#a8b1b9}.business-alert{display:flex;align-items:center;gap:10px;padding:10px;margin:8px 0;border-radius:9px;font-size:11px;background:#332817;color:#f4c86c}.business-alert.danger{background:#351b20;color:#ff8e98}.business-alert.ok{background:#173326;color:#70d89f}.business-alert svg{width:17px;flex:0 0 auto}.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#fff;background:#191f25;border:1px solid #343c44;border-radius:8px;padding:9px 12px;cursor:pointer;font-size:11px;font-weight:700}.secondary-action svg{width:15px}.alerts-card .secondary-action{margin-top:10px}.rank{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #222930}.rank>b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#ef1b2418;color:#ef1b24;font-size:11px}.rank span{font-size:12px}.rank span small{display:block;color:#66717b;margin-top:2px}.rank strong{font:700 19px Oswald}.detail-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:15px}.detail-head>div:last-child{display:flex;gap:7px}.table-wrap{overflow:auto;max-height:390px}table{width:100%;border-collapse:collapse;font-size:11px}th{position:sticky;top:0;background:#11161c;color:#7f8993;text-align:left;padding:10px}td{padding:10px;border-top:1px solid #222930}td:last-child{color:#fff;font-weight:800}.empty-state{color:#66717b;text-align:center;padding:18px;font-size:12px}.product-detail-grid{display:grid;grid-template-columns:minmax(0,1fr);margin-top:15px}@media(max-width:720px){.comparison-grid,.executive-grid{grid-template-columns:1fr}.executive-heading{padding:17px}.bottom-nav button{font-size:8px}.bottom-nav button svg{width:18px;height:18px}.detail-head{align-items:flex-start;flex-direction:column}}@media print{aside,.bottom-nav,.head-actions,.sync-strip,.executive-heading,.comparison-grid,.executive-grid,.detail-head button{display:none!important}.app-shell{display:block}.dashboard{padding:0}body,.panel{color:#000;background:#fff}.table-wrap{max-height:none;overflow:visible}th{color:#333;background:#eee}}.date-filter{display:flex;gap:8px}.calendar-input{height:43px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #26303a;background:#10161c;border-radius:10px;color:#a9b1b9}.calendar-input svg{width:17px}.calendar-input input{min-width:125px;border:0;outline:0;background:transparent;color:#fff;color-scheme:dark;font:inherit}@media(max-width:720px){.date-filter{flex:1;flex-direction:column}.date-filter select,.calendar-input{width:100%}.calendar-input input{flex:1}.head-actions{align-items:flex-start}}
