@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--accent: #7c5cfc;--accent-hover: #e3dafd;--accent-soft: #f1ecfe;--bg: #ffffff;--card: #ffffff;--border: #eae7f4;--headline: #1d1c26;--text: #3d3c4a;--text-dim: #8a879c;--green: #22b573;--amber: #f5a623;--red: #ef476f;--radius: 16px;--font-body: "Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Space Grotesk Variable", "Inter Variable", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}#root{min-height:100dvh}h1,h2,h3{color:var(--headline);font-weight:700}.section-label{color:var(--accent);display:block;font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.center-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,var(--accent-soft) 0%,var(--bg) 45%)}.pulse{font-size:56px}.login-card{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 40px #7c5cfc1a;padding:32px 24px;text-align:center}.login-card h1{margin:0 0 8px;font-size:22px}input{background:var(--bg);border:1px solid var(--border);border-radius:12px;color:var(--headline);font-family:var(--font-body);font-size:17px;padding:14px 16px;width:100%}input:focus{outline:2px solid var(--accent);border-color:var(--accent)}button{background:var(--accent);border:none;border-radius:99px;color:#fff;cursor:pointer;font-family:var(--font-body);font-size:17px;font-weight:600;min-height:48px;padding:12px 22px;width:100%}button:hover:not(:disabled){background:#6a4bea}button:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;border:1.5px solid var(--border);border-radius:99px;color:var(--text-dim);font-size:14px;min-height:36px;padding:6px 16px;width:auto}button.ghost:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent)}.error{color:var(--red);font-size:14px;margin:4px 0 0}.shell{display:flex;flex-direction:column;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}.topbar{align-items:center;background:var(--bg);display:flex;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 16px 12px}.brand{align-items:center;color:var(--headline);display:flex;font-size:17px;font-weight:700;gap:10px}.content{display:flex;flex-direction:column;gap:18px;margin:0 auto;max-width:760px;padding:4px 16px 32px;width:100%}.label{color:var(--text-dim);font-size:13px;font-weight:600;letter-spacing:.4px}.hero-card{background:linear-gradient(180deg,var(--accent-soft) 0%,#faf9ff 100%);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:10px;padding:22px 20px 20px}.hero-top{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.hero-number{color:var(--headline);font-family:var(--font-display);font-size:46px;font-weight:700;letter-spacing:-1.5px;line-height:1}.level-badge{background:var(--accent);border-radius:99px;box-shadow:0 0 14px #7c5cfc73;color:#fff;font-size:13px;font-weight:700;padding:6px 14px;white-space:nowrap}.quest-track{background:#e9e5f7;border-radius:99px;height:14px;overflow:hidden;position:relative}.quest-track:after{background:repeating-linear-gradient(to right,transparent 0,transparent calc(10% - 1.5px),rgba(255,255,255,.9) calc(10% - 1.5px),rgba(255,255,255,.9) 10%);content:"";top:0;right:0;bottom:0;left:0;position:absolute}.quest-fill{background:linear-gradient(90deg,#9d85ff,var(--accent));border-radius:99px;box-shadow:0 0 12px #7c5cfca6;height:100%}.quest-caption{color:var(--text-dim);font-size:13px}.stat-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:6px;padding:16px}.stat-number{color:var(--headline);font-family:var(--font-display);font-size:28px;font-weight:700}.milestone-note{color:var(--text-dim);font-size:13px;text-align:center}.page{display:flex;flex-direction:column;gap:18px;padding-bottom:88px}.page-head{align-items:center;display:flex;gap:12px;justify-content:space-between}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:10px;padding:16px}.empty-card{background:#fafafd;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:14px;padding:18px 16px}section>.section-label{margin-bottom:10px}.quest-meta{align-items:center;display:flex;justify-content:space-between}.quest-chips{display:flex;gap:8px}.chip{background:#fff;border:1px solid var(--border);border-radius:99px;color:var(--headline);font-size:12px;font-weight:700;padding:4px 10px}.chip.streak{border-color:#ffd9b3;background:#fff7ef}.bottom-nav{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-top:1px solid var(--border);bottom:0;display:flex;justify-content:space-around;left:0;padding:8px 12px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:20}.nav-item{align-items:center;color:var(--text-dim);display:flex;flex-direction:column;font-size:11px;font-weight:600;gap:2px;padding:4px 18px;text-decoration:none}.nav-item.active{color:var(--accent)}.nav-fab{border-radius:99px;box-shadow:0 6px 18px #7c5cfc66;font-family:var(--font-display);font-size:16px;font-weight:700;height:54px;margin-top:-26px;min-height:54px;padding:0;width:64px}.client-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}.client-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);display:flex;flex-direction:column;gap:8px;padding:16px;position:relative;text-decoration:none}.client-card:hover{border-color:var(--accent-hover);box-shadow:0 6px 20px #7c5cfc1f}.client-card.churned{opacity:.6}.client-card-head{align-items:center;display:flex;gap:8px;justify-content:space-between}.client-name{color:var(--headline);font-size:17px;font-weight:700}.client-sub{color:var(--text-dim);font-size:13px}.client-card-stats{align-items:center;display:flex;gap:10px;justify-content:space-between}.client-retainer{color:var(--headline);font-family:var(--font-display);font-size:18px;font-weight:700}.client-card-foot{color:var(--text-dim);display:flex;font-size:12px;gap:10px;justify-content:space-between}.badge{border-radius:99px;font-size:11px;font-weight:700;padding:3px 10px;white-space:nowrap}.badge.stream-1{background:#e7f7ef;color:#14805a}.badge.stream-2{background:var(--accent-hover);color:var(--accent)}.status-chip{border-radius:99px;font-size:11px;font-weight:700;padding:3px 10px;text-transform:capitalize}.status-chip.active{background:#e7f7ef;color:var(--green)}.status-chip.paused{background:#fff4e0;color:var(--amber)}.status-chip.churned{background:#fdecf1;color:var(--red)}.mini-pay{background:var(--accent-hover);border-radius:10px;color:var(--accent);font-size:13px;font-weight:700;min-height:34px;padding:4px 12px;position:absolute;right:12px;top:46px;width:auto}.mini-pay:hover:not(:disabled){background:var(--accent);color:#fff}.detail-name{align-items:center;display:flex;font-size:24px;gap:10px;margin:0}.head-actions{align-items:center;display:flex;gap:10px}.head-actions button{min-height:40px;width:auto}.ghost-link{border:1.5px solid var(--border);border-radius:99px;color:var(--text-dim);font-size:14px;font-weight:600;padding:8px 16px;text-decoration:none}.ghost-link:hover{background:var(--accent-hover);color:var(--accent)}.pay-table{border-collapse:collapse;font-size:14px;width:100%}.pay-table th{color:var(--text-dim);font-size:12px;font-weight:600;letter-spacing:.4px;padding:6px 8px;text-align:left;text-transform:uppercase}.pay-table td{border-top:1px solid var(--border);padding:10px 8px}.pay-table .amt{font-family:var(--font-display);font-weight:700}.notes{margin:0;white-space:pre-wrap}.client-form,.pay-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;flex:1;gap:6px}.field-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:10px}textarea{background:var(--bg);border:1px solid var(--border);border-radius:12px;color:var(--headline);font-family:var(--font-body);font-size:16px;padding:12px 14px;resize:vertical}textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}.segmented{background:#f4f2fb;border-radius:12px;display:flex;gap:4px;padding:4px}.segmented button{background:transparent;border-radius:9px;color:var(--text-dim);flex:1;font-size:14px;font-weight:600;min-height:40px;padding:8px 6px;text-transform:capitalize}.segmented button.on{background:#fff;box-shadow:0 1px 4px #1d1c261f;color:var(--accent)}.day-chips{display:flex;flex-wrap:wrap;gap:6px}.chip-toggle{background:#f4f2fb;border-radius:99px;color:var(--text-dim);font-size:13px;font-weight:600;min-height:38px;padding:6px 14px;width:auto}.chip-toggle.on{background:var(--accent);color:#fff}.save-window{flex:0 0 auto}.sheet-backdrop{align-items:flex-end;background:#1d1c2666;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:40}.sheet{background:var(--card);border-radius:20px 20px 0 0;display:flex;flex-direction:column;gap:12px;max-height:85dvh;max-width:560px;overflow-y:auto;padding:10px 20px calc(24px + env(safe-area-inset-bottom));width:100%}.sheet h2{font-size:20px;margin:4px 0 6px}.sheet-handle{align-self:center;background:var(--border);border-radius:99px;height:4px;width:44px}.pick-list{display:flex;flex-direction:column;gap:8px}.pick-row{align-items:center;background:#f8f7fd;border-radius:12px;color:var(--headline);display:flex;justify-content:space-between;min-height:56px;padding:12px 16px}.pick-row:hover{background:var(--accent-hover)}.pick-name{font-size:16px;font-weight:700}.pick-sub{color:var(--text-dim);font-size:13px;font-weight:500}.confetti-canvas{top:0;right:0;bottom:0;left:0;pointer-events:none;position:fixed;z-index:60}.levelup-banner{background:var(--accent);border-radius:18px;box-shadow:0 16px 50px #7c5cfc80;color:#fff;display:flex;flex-direction:column;gap:2px;left:50%;padding:18px 34px;position:fixed;text-align:center;top:22%;transform:translate(-50%);z-index:61}.levelup-title{font-family:var(--font-display);font-size:24px;font-weight:800;letter-spacing:2px}.levelup-detail{font-size:15px;font-weight:600;opacity:.9}@media(prefers-reduced-motion:no-preference){.levelup-banner{animation:pop-in .35s cubic-bezier(.22,1.4,.36,1)}}@keyframes pop-in{0%{opacity:0;transform:translate(-50%) scale(.7)}to{opacity:1;transform:translate(-50%) scale(1)}}.toast{background:var(--headline);border-radius:99px;bottom:calc(96px + env(safe-area-inset-bottom));color:#fff;font-size:14px;font-weight:600;left:50%;padding:10px 20px;position:fixed;transform:translate(-50%);white-space:nowrap;z-index:50}@media(prefers-reduced-motion:no-preference){.pulse{animation:pulse 1.2s ease-in-out infinite}.quest-fill{transition:width .8s cubic-bezier(.22,1,.36,1)}}@keyframes pulse{0%,to{opacity:.4;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
