:root{color:#101820;background:#f4f6f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#1018200a,#10182000),#f4f6f3}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(100%,780px);min-height:100vh;margin:0 auto;padding:18px 14px 92px}.topbar,.balance-panel,.section-title,.progress-meta,.score-row,.session-item,.day,.split-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar{padding:8px 2px 18px}.top-actions{display:inline-flex;align-items:center;gap:8px}.topbar h1,.balance-panel h1,.section-title h2{margin:0;letter-spacing:0}.topbar h1{font-size:1.5rem}.eyebrow,.stat span,.section-title span,.progress-meta,.day span,.muted{color:#64706d;font-size:.82rem}.pill,.status,.icon-button{display:inline-flex;align-items:center;gap:6px;border:1px solid #1c7c54;border-radius:999px;color:#135f40;background:#e5f4ec;font-weight:800;padding:8px 11px;font-size:.75rem}.icon-button{width:38px;height:38px;justify-content:center;padding:0;border-color:#d5ddd9;color:#101820;background:#fff}.stop-pill,.status.locked{border-color:#a93636;color:#8c2424;background:#fae7e5}.screen{display:grid;gap:12px}.auth-shell{display:grid;align-items:center;padding-bottom:18px}.balance-panel,.position-panel,.panel,.stat,.day{background:#fff;border:1px solid #dce4df;border-radius:8px;box-shadow:0 8px 24px #1018200d}.position-panel{display:grid;gap:10px;padding:14px}.position-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.position-grid strong{min-height:42px;display:grid;align-items:center;padding:9px;border-radius:8px;background:#edf3ef;overflow-wrap:anywhere}.journey-track{height:9px}.balance-panel{min-height:128px;padding:18px;color:#f8fbf9;background:#101820;border-color:#101820}.balance-panel h1{margin-top:6px;font-size:clamp(2rem,8vw,3.7rem)}.balance-panel p{margin:6px 0 0;color:#c9d4d0;font-weight:800}.balance-panel .eyebrow{color:#afbbb7}.grid,.comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{min-height:86px;padding:13px;display:grid;align-items:center;grid-template-columns:28px 1fr}.stat-icon{width:28px;height:28px;display:grid;place-items:center;color:#1c7c54}.stat strong{display:block;margin-top:4px;font-size:1.1rem;overflow-wrap:anywhere}.panel{padding:15px}.auth-panel{display:grid;gap:14px;padding:20px}.auth-panel h1,.auth-panel p{margin:0}.auth-panel h1{font-size:1.65rem}.auth-panel p,.auth-message{color:#64706d;line-height:1.45}.auth-message{margin:0;font-weight:800}.sync-strip{display:grid;grid-template-columns:1fr;gap:3px;margin:-8px 0 12px;padding:9px 11px;border:1px solid #dce4df;border-radius:8px;background:#fff;color:#64706d;font-size:.78rem}.sync-strip strong{color:#101820;overflow-wrap:anywhere}.section-title{margin-bottom:12px}.section-title h2{font-size:1rem}.progress-track{height:14px;overflow:hidden;border-radius:999px;background:#e4e9e6}.progress-fill{height:100%;min-width:0;border-radius:inherit;background:#1c7c54}.progress-meta{margin-top:8px}.alert{margin:8px 0 0;padding:10px;border-radius:8px;background:#eef5f0;color:#25423a;font-weight:700}.alert.stop,.lock-box{color:#8c2424;background:#fae7e5}.score-row{justify-content:flex-start}.score-row>strong{width:54px;height:54px;display:grid;place-items:center;border-radius:8px;background:#101820;color:#fff;font-size:1.4rem}.score-row p{margin:3px 0 0;color:#64706d}.form{display:grid;gap:12px}label{display:grid;gap:7px;color:#384541;font-weight:800;font-size:.86rem}input{width:100%;border:1px solid #cbd6d1;border-radius:8px;padding:13px 12px;color:#101820;background:#fbfcfb}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.segmented button,.primary,.secondary,.danger,.bottom-nav button{min-height:44px;border-radius:8px;border:1px solid #cbd6d1;background:#fff;color:#101820;font-weight:800}.segmented .selected{border-color:#101820;background:#101820;color:#fff}.primary,.secondary,.danger{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px}.primary{color:#fff;background:#1c7c54;border-color:#1c7c54}.primary:disabled{cursor:wait;opacity:.7}.secondary{background:#edf3ef;border-color:#cbd6d1}.danger{color:#8c2424;background:#fae7e5;border-color:#efc7c2}.link-button{min-height:40px;border:0;background:transparent;color:#1c5f7c;font-weight:800;text-align:left;padding:0}.lock-box{display:grid;justify-items:start;gap:8px;border-radius:8px;padding:14px}.lock-box p{margin:0}.session-list,.milestone-list{display:grid;gap:8px}.milestone-toggle{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #dce4df;border-radius:8px;background:#fbfcfb;color:#101820;padding:10px 12px;font-weight:800}.milestone-toggle strong{color:#1c7c54}.session-item{border-top:1px solid #edf1ef;padding-top:9px}.gain{color:#1c7c54}.loss{color:#a93636}.timeline{display:grid;gap:8px}.day{display:grid;grid-template-columns:.75fr 1.55fr auto;padding:12px;border-left-width:6px}.day>div{display:grid;gap:3px}.day-ledger{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.day-ledger span{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;background:#edf3ef;color:#384541;padding:3px 8px;font-size:.72rem;font-weight:800}.day-ledger .gain{color:#135f40;background:#e5f4ec}.day-ledger .loss{color:#8c2424;background:#fae7e5}.day.ahead{border-left-color:#1c7c54}.day.track{border-left-color:#d8a21b}.day.behind{border-left-color:#a93636}.day.complete{border-left-color:#1c7c54}.day.pending,.day.future{border-left-color:#9aa5a1}.bottom-nav{position:fixed;left:50%;bottom:12px;z-index:10;width:min(calc(100% - 24px),740px);transform:translate(-50%);display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;border:1px solid #dce4df;border-radius:10px;background:#fffffff2;box-shadow:0 10px 32px #10182029}.bottom-nav button{display:grid;justify-items:center;align-content:center;gap:2px;color:#64706d;font-size:.74rem}.bottom-nav .active{color:#101820;border-color:#101820;background:#edf3ef}@media(min-width:720px){.app-shell{padding-top:28px}.screen{gap:14px}}@media(max-width:460px){.day{grid-template-columns:1fr}.day b{justify-self:start}}
