:root{color-scheme:light;--page: #f2f2f7;--surface: #ffffff;--surface-2: #ffffff;--ink: #1c1c1e;--ink-2: #6c6c70;--muted: #8e8e93;--grid: #e5e5ea;--baseline: #d1d1d6;--border: rgba(60, 60, 67, .12);--hairline: rgba(60, 60, 67, .16);--accent: #2a78d6;--accent-ink: #ffffff;--accent-wash: color-mix(in oklab, var(--accent) 12%, var(--surface));--lvl-0: #efa192;--lvl-0-ink: #0b0b0b;--lvl-80: #edc63b;--lvl-80-ink: #0b0b0b;--lvl-100: #74cf64;--lvl-100-ink: #0b0b0b;--lvl-120: #188a34;--lvl-120-ink: #fcfcfb;--lvl-empty: #e8e8ed;--danger: #d03b3b;--series-1: #2a78d6;--series-2: #008300;--series-3: #e87ba4;--series-4: #eda100;--goal-blue: #2a78d6;--goal-green: #008300;--goal-magenta: #e87ba4;--goal-yellow: #eda100;--goal-aqua: #1baf7a;--goal-orange: #eb6834;--goal-violet: #4a3aa7;--goal-red: #e34948;--shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 3px rgba(0, 0, 0, .05);--shadow-2: 0 6px 24px rgba(0, 0, 0, .12);--r-card: 18px;--r-control: 12px;--r-pill: 999px;--ease: cubic-bezier(.2, 0, 0, 1);--ease-out: cubic-bezier(.05, .7, .1, 1);--dur-1: .14s;--dur-2: .24s;--glass: rgba(255, 255, 255, .72)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--page: #000000;--surface: #1c1c1e;--surface-2: #2c2c2e;--ink: #ffffff;--ink-2: #a0a0a8;--muted: #8e8e93;--grid: #38383a;--baseline: #48484a;--border: rgba(255, 255, 255, .14);--hairline: rgba(255, 255, 255, .1);--accent: #3987e5;--accent-ink: #ffffff;--accent-wash: color-mix(in oklab, var(--accent) 22%, var(--surface));--lvl-0: #93443a;--lvl-0-ink: #ffffff;--lvl-80: #ab8a17;--lvl-80-ink: #0d0d0d;--lvl-100: #2f8a3f;--lvl-100-ink: #ffffff;--lvl-120: #86dc8f;--lvl-120-ink: #0d0d0d;--lvl-empty: #2c2c2e;--danger: #ff6b6b;--series-1: #3987e5;--series-2: #008300;--series-3: #d55181;--series-4: #c98500;--goal-blue: #3987e5;--goal-green: #4ba34b;--goal-magenta: #d55181;--goal-yellow: #c98500;--goal-aqua: #199e70;--goal-orange: #d95926;--goal-violet: #9085e9;--goal-red: #e66767;--shadow-1: 0 1px 3px rgba(0, 0, 0, .4);--shadow-2: 0 6px 24px rgba(0, 0, 0, .5);--glass: rgba(28, 28, 30, .72)}}:root[data-theme=dark]{color-scheme:dark;--page: #000000;--surface: #1c1c1e;--surface-2: #2c2c2e;--ink: #ffffff;--ink-2: #a0a0a8;--muted: #8e8e93;--grid: #38383a;--baseline: #48484a;--border: rgba(255, 255, 255, .14);--hairline: rgba(255, 255, 255, .1);--accent: #3987e5;--accent-ink: #ffffff;--accent-wash: color-mix(in oklab, var(--accent) 22%, var(--surface));--lvl-0: #93443a;--lvl-0-ink: #ffffff;--lvl-80: #ab8a17;--lvl-80-ink: #0d0d0d;--lvl-100: #2f8a3f;--lvl-100-ink: #ffffff;--lvl-120: #86dc8f;--lvl-120-ink: #0d0d0d;--lvl-empty: #2c2c2e;--danger: #ff6b6b;--series-1: #3987e5;--series-2: #008300;--series-3: #d55181;--series-4: #c98500;--shadow-1: 0 1px 3px rgba(0, 0, 0, .4);--shadow-2: 0 6px 24px rgba(0, 0, 0, .5);--glass: rgba(28, 28, 30, .72)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{max-width:640px;margin:0 auto;padding:0 16px calc(84px + env(safe-area-inset-bottom))}h1{font-size:32px;line-height:1.12;font-weight:700;letter-spacing:-.02em;margin:calc(16px + env(safe-area-inset-top)) 2px 14px;padding-right:92px}h2{font-size:13px;line-height:1.3;color:var(--muted);margin:26px 4px 8px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.card{background:var(--surface);border-radius:var(--r-card);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-1)}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.levels button,.daypicker button,.day-chips button,.week-dots .dot,.btn,.tabbar button,.logout-btn,.theme-btn{transition:transform var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),color var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease)}.levels button:active,.daypicker button:active,.day-chips button:active,.btn:active,.week-dots .dot:not(:disabled):active{transform:scale(.955)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--baseline);border-radius:var(--r-control);padding:11px 13px;width:100%}textarea{resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@keyframes tab-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tab-view{animation:tab-enter var(--dur-2) var(--ease-out)}.day-chips{display:flex;gap:6px}.day-chips button{flex:1;border:1px solid var(--baseline);background:var(--surface);color:var(--ink-2);border-radius:10px;padding:9px 0;font-size:13px}.day-chips button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:4px;background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-top:.5px solid var(--hairline);padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:20}.tabbar button{flex:0 1 130px;background:none;border:none;border-radius:var(--r-control);padding:6px 4px;color:var(--muted);font-size:11px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:3px}.tabbar button svg{width:25px;height:25px}.tabbar button.active{color:var(--accent)}.tabbar button.active svg{transform:scale(1.06)}.daypicker{display:flex;gap:7px;overflow-x:auto;padding:4px;margin:0 -4px 14px;scrollbar-width:none}.daypicker::-webkit-scrollbar{display:none}.daypicker button{flex:1 0 52px;border:none;background:var(--surface);box-shadow:var(--shadow-1);border-radius:14px;padding:9px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-2)}.daypicker .dow{font-size:11px;color:var(--muted);text-transform:capitalize}.daypicker .num{font-size:17px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.daypicker button.tinted .num,.daypicker button.tinted .dow{color:inherit}.daypicker button.tinted .dow{opacity:.72}.daypicker button.sel{box-shadow:0 0 0 2px var(--accent)}.daypicker button.sel:not(.tinted){background:var(--accent-wash)}.goal-name{font-weight:600;font-size:16px;letter-spacing:-.01em;margin-bottom:3px}.goal-sub{font-size:12.5px;color:var(--muted);margin-bottom:12px;line-height:1.35}.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.levels button{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;padding:10px 2px;display:flex;flex-direction:column;gap:2px;align-items:center;color:var(--ink);min-height:60px;justify-content:center}.levels .pct{font-weight:600;font-size:15px}.levels .val{font-size:11.5px;color:var(--muted)}.levels button.sel{background:var(--sel-bg, var(--accent));border-color:var(--sel-bg, var(--accent));color:var(--sel-ink, var(--accent-ink));box-shadow:var(--shadow-1)}.levels button.sel .val{color:inherit;opacity:.78}.week-dots{display:flex;gap:8px;align-items:center;margin-top:12px}.week-dots .dot{width:34px;height:34px;border-radius:50%;border:1px solid var(--baseline);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);padding:0}.week-dots .dot.done{background:var(--lvl-100);border-color:var(--lvl-100);color:var(--lvl-100-ink);font-weight:600}.week-dots .dot:disabled{opacity:.4;cursor:default}.wk-progress{font-size:12.5px;color:var(--ink-2);margin-top:10px}.badge{display:inline-block;border-radius:var(--r-pill);padding:3px 10px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.badge.b0{background:var(--lvl-empty);color:var(--ink-2)}.badge.b80{background:var(--lvl-80);color:var(--lvl-80-ink)}.badge.b100{background:var(--lvl-100);color:var(--lvl-100-ink)}.badge.b120{background:var(--lvl-120);color:var(--lvl-120-ink)}.filter-row{display:flex;gap:8px;margin-bottom:12px}.heatmap-scroll{overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.heatmap-scroll::-webkit-scrollbar{display:none}.hm-legend{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted);margin-top:10px;flex-wrap:wrap}.hm-legend .cell{width:11px;height:11px;border-radius:3px}.stat-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-tile .num{font-size:30px;font-weight:700;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-tile .lbl{font-size:12.5px;color:var(--ink-2);margin-top:4px}.viz-tooltip{position:fixed;pointer-events:none;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-2);border-radius:10px;padding:7px 10px;font-size:12.5px;z-index:30;white-space:nowrap}details.data-table summary{font-size:12.5px;color:var(--muted);cursor:pointer;margin-top:10px}details.data-table table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:8px}details.data-table td,details.data-table th{border-top:1px solid var(--grid);padding:5px 6px;text-align:left;font-variant-numeric:tabular-nums}.form-row{display:flex;gap:10px;margin-bottom:10px}.form-row>*{flex:1}label.fld{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:5px}.btn{background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--r-control);padding:12px 18px;font-weight:600;font-size:15px}.btn:active{filter:brightness(.94)}.btn.secondary{background:var(--accent-wash);color:var(--accent)}.btn.ghost{background:none;border:none;color:var(--accent);padding:9px 10px;font-weight:500}.btn.danger{background:none;border:1px solid var(--danger);color:var(--danger)}.error-text{color:var(--danger);font-size:13px;margin:6px 0}.muted{color:var(--muted);font-size:13px}.goal-row-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.logout-btn,.theme-btn{position:fixed;top:calc(12px + env(safe-area-inset-top));z-index:25;background:var(--glass);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:.5px solid var(--hairline);border-radius:var(--r-pill);width:38px;height:38px;justify-content:center;color:var(--ink-2);display:flex;align-items:center;box-shadow:var(--shadow-1)}.logout-btn{right:16px}.theme-btn{right:62px}.logout-btn:active,.theme-btn:active{transform:scale(.92)}.logout-btn svg,.theme-btn svg{width:19px;height:19px}@keyframes mark-pop{0%{transform:scale(1)}40%{transform:scale(1.14)}to{transform:scale(1)}}@keyframes mark-glow{0%{box-shadow:0 0 color-mix(in oklab,var(--lvl-120) 70%,transparent)}to{box-shadow:0 0 0 16px transparent}}.levels button.just{animation:mark-pop var(--dur-2) var(--ease)}.levels button.just.glow{animation:mark-pop var(--dur-2) var(--ease),mark-glow .6s var(--ease-out)}.login-wrap{min-height:82vh;display:flex;flex-direction:column;justify-content:center;max-width:360px;margin:0 auto}.login-wrap h1{text-align:center;padding-right:0;margin-bottom:20px}.login-logo{width:104px;height:104px;margin:0 auto 4px;border-radius:28px;overflow:hidden;background:#fff;box-shadow:var(--shadow-2)}.login-logo img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.06)}.login-wrap .card{display:flex;flex-direction:column;gap:12px;padding:20px}.or-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px;margin:2px 0}.or-divider:before,.or-divider:after{content:"";flex:1;border-top:1px solid var(--grid)}.btn.oauth{display:block;text-align:center;text-decoration:none}.btn.oauth.yandex{background:#fc3f1d;color:#fff}.btn.oauth.vk{background:#07f;color:#fff}.goal-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--gc, var(--accent));flex:0 0 auto}.goal-title-row{display:flex;align-items:center;gap:8px}.card.goal-card{border-left:4px solid var(--gc, var(--accent));padding-left:13px}.color-swatches{display:flex;gap:8px;flex-wrap:wrap}.color-swatches button{width:30px;height:30px;border-radius:50%;border:2px solid transparent;background:var(--sw);padding:0}.color-swatches button.on{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset}.note-saved{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;padding:4px 0 0;text-align:left;color:var(--ink)}.note-saved .check{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--lvl-100);color:var(--lvl-100-ink);display:flex;align-items:center;justify-content:center;font-size:14px}.note-saved .txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;color:var(--ink-2)}.note-saved .edit{flex:0 0 auto;color:var(--accent);font-size:13px}.journal-entry{display:flex;gap:12px}.journal-entry .jdate{flex:0 0 auto;width:52px;text-align:center}.journal-entry .jday{font-size:22px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.journal-entry .jmon{font-size:11px;color:var(--muted);text-transform:uppercase}.journal-entry .jtext{flex:1;min-width:0;font-size:14.5px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.journal-entry .jlevel{margin-top:6px}.grid-2{display:contents}@media(min-width:900px){#root{max-width:none;margin:0;padding:0 0 40px}.tab-view{max-width:940px;margin-left:calc(232px + max(0px,(100vw - 232px - 940px) / 2));margin-right:auto;padding:8px 32px 40px}h1{padding-right:0}.tabbar{flex-direction:column;justify-content:flex-start;top:0;left:0;right:auto;bottom:0;width:232px;gap:4px;border-top:none;border-right:.5px solid var(--hairline);padding:calc(20px + env(safe-area-inset-top)) 16px 16px;background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}.tabbar:before{content:"Трекер целей";display:block;font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ink);padding:4px 12px 18px}.tabbar button{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:14px;width:100%;padding:11px 12px;font-size:15px;font-weight:500;border-radius:var(--r-control)}.tabbar button svg{width:22px;height:22px}.tabbar button.active{background:var(--accent-wash)}.tabbar button.active svg{transform:none}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.grid-2>h2,.grid-2>.full{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
