:root{--bg: #f2f2f7;--card: #ffffff;--track: #e4e4ec;--track-toggle: #eeeef3;--text: #1c1c22;--text-dim: #8a8a94;--label: #9a9aa4;--faint: #b0b0ba;--divider: #f0f0f4;--accent: #7b6cff;--accent-soft: rgba(123, 108, 255, .14);--shadow-card: 0 2px 10px rgba(0, 0, 0, .05);--shadow-seg: 0 2px 6px rgba(0, 0, 0, .08);--shadow-pill: 0 1px 3px rgba(0, 0, 0, .08);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,SF Pro Display,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"tnum" 1,"cv11" 1;letter-spacing:-.01em}button{font-family:inherit;cursor:pointer}.app{max-width:480px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 22px calc(26px + env(safe-area-inset-bottom))}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 0}.brand-head{display:flex;flex-direction:column;gap:3px;min-width:0}.brand-title{font-size:23px;font-weight:700;letter-spacing:-.02em}.brand-user{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--text-dim)}.brand-user .dot{width:8px;height:8px;border-radius:50%}.icon-btn{width:36px;height:36px;border-radius:11px;background:var(--card);border:none;color:var(--text-dim);display:grid;place-items:center;box-shadow:var(--shadow-card);transition:color .15s,transform .1s}.icon-btn:hover{color:var(--text)}.icon-btn:active{transform:scale(.94)}.switcher{display:flex;gap:0;background:var(--track);padding:5px;border-radius:16px;margin-top:22px}.switch-btn{flex:1;border:none;background:transparent;color:var(--text-dim);padding:11px;border-radius:12px;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.switch-btn .dot{width:8px;height:8px;border-radius:50%}.switch-btn.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-seg)}.login-switcher{margin:0 0 14px;text-align:left}.monthbar{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:20px;padding:12px;margin-top:18px;box-shadow:var(--shadow-card);touch-action:pan-y}.monthbar-main{flex:1;text-align:center;min-width:0}.monthbar-title{font-size:18px;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monthbar-sub{font-size:13px;color:var(--text-dim);font-weight:500;margin-top:2px}.monthbar-nav{flex:none;width:40px;height:40px;padding:0;border:none;background:var(--track-toggle);border-radius:13px;color:var(--text-dim);font-size:20px;line-height:1;display:grid;place-items:center;transition:background .15s,color .15s,opacity .15s,transform .1s}.monthbar-nav:hover:not(:disabled){color:var(--text);background:var(--track)}.monthbar-nav:active:not(:disabled){transform:scale(.92)}.monthbar-nav:disabled{opacity:.3;cursor:default}.hero{background:var(--card);border-radius:22px;padding:22px 20px;margin-top:12px;box-shadow:var(--shadow-card)}.hero-label{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--label)}.hero-row{display:flex;align-items:baseline;gap:12px;margin-top:8px;flex-wrap:wrap}.hero-cost{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1}.hero-delta{font-size:14px;font-weight:700;white-space:nowrap}.hero-delta.down{color:#1a9d5a}.hero-delta.up{color:#e5484d}.hero-delta.flat{color:var(--faint)}.hero-sub{font-size:15px;color:var(--text-dim);margin-top:10px}.statrow{display:flex;gap:10px;margin-top:12px}.stat{flex:1;background:var(--card);border-radius:18px;padding:14px 15px;box-shadow:var(--shadow-card)}.stat-label{font-size:13px;color:var(--label)}.stat-value{font-size:19px;font-weight:700;margin-top:4px;letter-spacing:-.01em}.stat-unit{font-size:11px;color:var(--text-dim)}.card{background:var(--card);border-radius:22px;padding:20px 18px 16px;margin-top:14px;box-shadow:var(--shadow-card)}.card--sessions{padding:18px}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.card-title{font-size:17px;font-weight:700}.card-sub{font-size:14px;color:var(--text-dim);font-weight:500;white-space:nowrap}.seg{display:flex;background:var(--track-toggle);border-radius:10px;padding:3px}.seg button{border:none;background:transparent;color:var(--label);font-size:12px;font-weight:600;padding:5px 10px;border-radius:8px;transition:background .15s,color .15s,box-shadow .15s}.seg button.active{background:var(--card);color:var(--text);box-shadow:var(--shadow-pill)}.chart-wrap{height:168px;margin-top:20px}.card--sessions .card-head{margin-bottom:8px}.sessions{display:flex;flex-direction:column}.session{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--divider)}.session:last-child{border-bottom:none}.session-main{flex:1;min-width:0}.session-date{font-size:15px;font-weight:600}.session-date .session-time{color:var(--faint);font-weight:400}.session-sub{font-size:13px;color:var(--text-dim);margin-top:2px}.session-cost{font-size:16px;font-weight:700;text-align:right;white-space:nowrap}.session-rate{font-size:12px;color:var(--text-dim);margin-top:2px;text-align:right}.session-del{border:none;background:transparent;color:var(--faint);font-size:18px;width:28px;height:28px;border-radius:8px;line-height:1;opacity:0;transition:opacity .15s,color .15s,background .15s}.session:hover .session-del{opacity:1}.session-del:hover{color:var(--accent);background:var(--accent-soft)}@media(hover:none){.session-del{opacity:.45}}.empty{text-align:center;color:var(--faint);padding:34px 12px;font-size:14px}.show-more{width:100%;margin-top:12px;padding:12px;background:var(--bg);border:none;border-radius:13px;color:var(--accent);font-size:14px;font-weight:600;transition:filter .15s,transform .1s}.show-more:hover{filter:brightness(.97)}.show-more:active{transform:scale(.99)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:340px;background:var(--card);border-radius:24px;padding:30px 26px;box-shadow:var(--shadow-card);text-align:center}.login-mark{width:56px;height:56px;margin:0 auto 18px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:var(--accent-soft);color:var(--accent)}.login-title{font-size:21px;font-weight:700;letter-spacing:-.01em}.login-sub{font-size:13.5px;color:var(--text-dim);margin:6px 0 22px}.field{position:relative}.field input{width:100%;padding:14px 15px;font-size:16px;background:var(--bg);border:1px solid var(--divider);border-radius:13px;color:var(--text);outline:none;transition:border-color .15s}.field input:focus{border-color:var(--accent)}.btn{width:100%;margin-top:12px;padding:14px;font-size:15px;font-weight:700;background:var(--accent);color:#fff;border:none;border-radius:13px;transition:filter .15s,opacity .15s,transform .1s}.btn:hover{filter:brightness(1.05)}.btn:active{transform:scale(.99)}.btn:disabled{opacity:.6;cursor:default}.login-err{color:#e5484d;font-size:13px;margin-top:14px;min-height:18px}.center-note{text-align:center;color:var(--faint);padding:60px 20px}.recharts-cartesian-axis-tick text{fill:var(--faint);font-size:11px}.recharts-tooltip-wrapper{outline:none}
