:root{--tk-brand-teal:#0e9e8f;--tk-brand-cream:#faf6ef;--tk-brand-forest:#102b28;--tk-brand-night:#0b1f1c;--tk-brand-mint:#5ee0ba;--tk-logo-gradient-dark:linear-gradient(105deg,#00a4ac,#00d7a4 50%,#b1ffb6);--tk-logo-gradient-light:linear-gradient(105deg,#007b80,#009d7e 50%,#47be8b);--tk-logo-dot-dark:#00e9cf;--tk-logo-dot-light:#0e9e8f;--tk-teal-50:#ecfdf3;--tk-teal-100:#d5fbe4;--tk-teal-200:#a8f4ce;--tk-teal-300:#5ee0ba;--tk-teal-400:#2fc3a8;--tk-teal-500:#0e9e8f;--tk-teal-600:#087f73;--tk-teal-700:#01665e;--tk-teal-800:#034f4a;--tk-teal-900:#053a37;--tk-teal-950:#022625;--tk-graphite-25:#f2f3f4;--tk-graphite-50:#f5f5f3;--tk-graphite-100:#eeeeec;--tk-graphite-200:#e1e1de;--tk-graphite-300:#a7acb1;--tk-graphite-400:#858b90;--tk-graphite-500:#5f6569;--tk-graphite-600:#3e4348;--tk-graphite-700:#2e3236;--tk-graphite-800:#262a2e;--tk-graphite-900:#1e2124;--tk-graphite-950:#121416;--tk-forest-50:#f2f7f5;--tk-forest-100:#e5eeea;--tk-forest-200:#cddbd5;--tk-forest-300:#a5beb4;--tk-forest-400:#7b9189;--tk-forest-500:#526760;--tk-forest-600:#3b524c;--tk-forest-700:#243f3a;--tk-forest-800:#14312d;--tk-forest-900:#102b28;--tk-forest-950:#0b1f1c;--tk-cream-50:#faf6ef;--tk-cream-100:#f3ece0;--tk-cream-200:#e8e1d5;--tk-cream-300:#d5c7b2;--tk-leaf-50:#e8f6ed;--tk-leaf-100:#d3f3dc;--tk-leaf-200:#b0e9c1;--tk-leaf-300:#81da9a;--tk-leaf-400:#4dbf74;--tk-leaf-500:#2a9e5e;--tk-leaf-600:#18794e;--tk-leaf-700:#15633f;--tk-leaf-800:#0d4d32;--tk-leaf-900:#093826;--tk-leaf-950:#06271b;--tk-saffron-50:#fff1d6;--tk-saffron-100:#ffe9bd;--tk-saffron-200:#ffda97;--tk-saffron-300:#ffc25b;--tk-saffron-400:#f9a726;--tk-saffron-500:#e78d02;--tk-saffron-600:#c26e12;--tk-saffron-700:#8a4b0f;--tk-saffron-800:#6d3a0f;--tk-saffron-900:#512a0f;--tk-saffron-950:#381c0b;--tk-rose-50:#fdecf0;--tk-rose-100:#ffdce1;--tk-rose-200:#ffbfc7;--tk-rose-300:#f99aa3;--tk-rose-400:#f16f78;--tk-rose-500:#e14754;--tk-rose-600:#b4233a;--tk-rose-700:#951c2e;--tk-rose-800:#781827;--tk-rose-900:#58131d;--tk-rose-950:#3e0e15;--tk-majorelle-50:#eef2ff;--tk-majorelle-100:#e1e9ff;--tk-majorelle-200:#c8d6ff;--tk-majorelle-300:#a7baff;--tk-majorelle-400:#8295fb;--tk-majorelle-500:#6370ec;--tk-majorelle-600:#4d53d9;--tk-majorelle-700:#3b41b9;--tk-majorelle-800:#2c3490;--tk-majorelle-900:#1e2769;--tk-majorelle-950:#141a48}.trakili,.trakili[data-theme=light]{color-scheme:light;--tk-bg:var(--tk-cream-50);--tk-bg-subtle:var(--tk-cream-100);--tk-surface:#fff;--tk-surface-raised:#fff;--tk-surface-sunken:var(--tk-graphite-50);--tk-surface-hover:var(--tk-graphite-50);--tk-surface-selected:var(--tk-teal-50);--tk-surface-inverse:var(--tk-forest-900);--tk-border-subtle:var(--tk-cream-200);--tk-border:var(--tk-graphite-400);--tk-border-strong:var(--tk-graphite-500);--tk-focus-ring:var(--tk-teal-600);--tk-text:var(--tk-forest-900);--tk-text-muted:var(--tk-graphite-500);--tk-text-disabled:var(--tk-graphite-400);--tk-text-link:var(--tk-teal-700);--tk-text-link-hover:var(--tk-teal-800);--tk-text-brand:var(--tk-teal-700);--tk-text-inverse:#fff;--tk-brand:var(--tk-teal-500);--tk-accent:var(--tk-teal-200);--tk-accent-fg:var(--tk-forest-900);--tk-selection:var(--tk-teal-200);--tk-primary:var(--tk-teal-600);--tk-primary-hover:var(--tk-teal-700);--tk-primary-active:var(--tk-teal-800);--tk-primary-fg:#fff;--tk-secondary:#fff;--tk-secondary-hover:var(--tk-graphite-50);--tk-secondary-active:var(--tk-graphite-100);--tk-secondary-fg:var(--tk-forest-900);--tk-secondary-border:var(--tk-graphite-400);--tk-ghost-hover:var(--tk-teal-50);--tk-ghost-fg:var(--tk-teal-700);--tk-disabled-bg:var(--tk-graphite-100);--tk-disabled-fg:var(--tk-graphite-400);--tk-danger:var(--tk-rose-600);--tk-danger-hover:var(--tk-rose-700);--tk-danger-active:var(--tk-rose-800);--tk-danger-fg:#fff;--tk-success-fg:var(--tk-leaf-600);--tk-success-bg:var(--tk-leaf-50);--tk-success-border:var(--tk-leaf-200);--tk-success-solid:var(--tk-leaf-600);--tk-warning-fg:var(--tk-saffron-700);--tk-warning-bg:var(--tk-saffron-50);--tk-warning-border:var(--tk-saffron-200);--tk-warning-solid:var(--tk-saffron-600);--tk-error-fg:var(--tk-rose-600);--tk-error-bg:var(--tk-rose-50);--tk-error-border:var(--tk-rose-200);--tk-error-solid:var(--tk-rose-600);--tk-info-fg:var(--tk-majorelle-700);--tk-info-bg:var(--tk-majorelle-50);--tk-info-border:var(--tk-majorelle-200);--tk-info-solid:var(--tk-majorelle-600);--tk-ring-execution:var(--tk-teal-500);--tk-ring-money:#c97700;--tk-ring-results:#6370ec;--tk-ring-track:var(--tk-graphite-100);--tk-pace-line:var(--tk-graphite-500);--tk-streak:var(--tk-saffron-600);--tk-medal-gold:var(--tk-saffron-300);--tk-medal-silver:var(--tk-graphite-200);--tk-medal-bronze:#e7a783;--tk-medal-fg:var(--tk-forest-900);--tk-tier-plus:var(--tk-majorelle-600);--tk-tier-plus-fg:#fff;--tk-chart-1:#0e9e8f;--tk-chart-2:#c97700;--tk-chart-3:#6370ec;--tk-chart-4:#c35f36;--tk-chart-5:#2b8ecd;--tk-chart-6:#749f2b;--tk-chart-7:#c04688;--tk-heat-0:var(--tk-graphite-100);--tk-heat-1:var(--tk-teal-200);--tk-heat-2:var(--tk-teal-300);--tk-heat-3:var(--tk-teal-400);--tk-heat-4:var(--tk-teal-500);--tk-heat-5:var(--tk-teal-600);--tk-heat-6:var(--tk-teal-700);--tk-shadow-card:0 1px 2px rgba(16,43,40,.05),0 6px 20px rgba(16,43,40,.06);--tk-shadow-sm:0 1px 2px rgba(16,43,40,.06),0 1px 1px rgba(16,43,40,.04);--tk-shadow-md:0 4px 12px rgba(16,43,40,.08),0 1px 3px rgba(16,43,40,.06);--tk-scrollbar:rgba(16,43,40,.18);--tk-scrollbar-hover:rgba(16,43,40,.3)}.trakili[data-theme=dark]{color-scheme:dark;--tk-bg:var(--tk-graphite-950);--tk-bg-subtle:var(--tk-graphite-900);--tk-surface:var(--tk-graphite-900);--tk-surface-raised:var(--tk-graphite-700);--tk-surface-sunken:var(--tk-graphite-950);--tk-surface-hover:var(--tk-graphite-800);--tk-surface-selected:var(--tk-teal-900);--tk-surface-inverse:var(--tk-graphite-25);--tk-border-subtle:var(--tk-graphite-700);--tk-border:var(--tk-graphite-400);--tk-border-strong:var(--tk-graphite-300);--tk-focus-ring:var(--tk-teal-300);--tk-text:var(--tk-graphite-25);--tk-text-muted:var(--tk-graphite-300);--tk-text-disabled:var(--tk-graphite-500);--tk-text-link:var(--tk-teal-300);--tk-text-link-hover:var(--tk-teal-200);--tk-text-brand:var(--tk-teal-300);--tk-text-inverse:var(--tk-graphite-950);--tk-brand:var(--tk-teal-400);--tk-accent:var(--tk-teal-300);--tk-accent-fg:var(--tk-forest-900);--tk-selection:var(--tk-teal-800);--tk-primary:var(--tk-teal-300);--tk-primary-hover:var(--tk-teal-200);--tk-primary-active:var(--tk-teal-400);--tk-primary-fg:var(--tk-forest-900);--tk-secondary:var(--tk-graphite-800);--tk-secondary-hover:var(--tk-graphite-700);--tk-secondary-active:var(--tk-graphite-600);--tk-secondary-fg:var(--tk-graphite-25);--tk-secondary-border:var(--tk-graphite-400);--tk-ghost-hover:var(--tk-graphite-800);--tk-ghost-fg:var(--tk-teal-300);--tk-disabled-bg:var(--tk-graphite-700);--tk-disabled-fg:var(--tk-graphite-400);--tk-danger:var(--tk-rose-600);--tk-danger-hover:var(--tk-rose-700);--tk-danger-active:var(--tk-rose-800);--tk-danger-fg:#fff;--tk-success-fg:var(--tk-leaf-300);--tk-success-bg:var(--tk-leaf-950);--tk-success-border:var(--tk-leaf-800);--tk-success-solid:var(--tk-leaf-400);--tk-warning-fg:var(--tk-saffron-300);--tk-warning-bg:var(--tk-saffron-950);--tk-warning-border:var(--tk-saffron-800);--tk-warning-solid:var(--tk-saffron-400);--tk-error-fg:var(--tk-rose-300);--tk-error-bg:var(--tk-rose-950);--tk-error-border:var(--tk-rose-800);--tk-error-solid:var(--tk-rose-400);--tk-info-fg:var(--tk-majorelle-300);--tk-info-bg:var(--tk-majorelle-950);--tk-info-border:var(--tk-majorelle-800);--tk-info-solid:var(--tk-majorelle-400);--tk-ring-execution:var(--tk-teal-400);--tk-ring-money:#d27c02;--tk-ring-results:#707ff1;--tk-ring-track:var(--tk-graphite-700);--tk-pace-line:var(--tk-graphite-300);--tk-streak:var(--tk-saffron-400);--tk-medal-gold:var(--tk-saffron-300);--tk-medal-silver:var(--tk-graphite-200);--tk-medal-bronze:#e7a783;--tk-medal-fg:var(--tk-forest-900);--tk-tier-plus:var(--tk-majorelle-400);--tk-tier-plus-fg:var(--tk-forest-900);--tk-chart-1:#2fc3a8;--tk-chart-2:#d27c02;--tk-chart-3:#707ff1;--tk-chart-4:#d87248;--tk-chart-5:#479cd7;--tk-chart-6:#7ba33c;--tk-chart-7:#d863a0;--tk-heat-0:var(--tk-graphite-700);--tk-heat-1:var(--tk-teal-800);--tk-heat-2:var(--tk-teal-700);--tk-heat-3:var(--tk-teal-600);--tk-heat-4:var(--tk-teal-500);--tk-heat-5:var(--tk-teal-400);--tk-heat-6:var(--tk-teal-300);--tk-shadow-card:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.28);--tk-shadow-sm:0 1px 2px rgba(0,0,0,.3);--tk-shadow-md:0 6px 16px rgba(0,0,0,.4);--tk-scrollbar:hsla(0,0%,100%,.16);--tk-scrollbar-hover:hsla(0,0%,100%,.26)}html:has(.trakili){color-scheme:light;scrollbar-color:rgba(16,43,40,.18) var(--tk-cream-50)}body:has(.trakili){background:var(--tk-cream-50);color:var(--tk-forest-900)}html:has(.trakili[data-theme=dark]){color-scheme:dark;scrollbar-color:hsla(0,0%,100%,.16) var(--tk-graphite-950)}body:has(.trakili[data-theme=dark]){background:var(--tk-graphite-950);color:var(--tk-graphite-25)}:where(.trakili) ::-moz-selection{background:var(--tk-selection)}:where(.trakili) ::selection{background:var(--tk-selection)}.trakili :focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:2px}:where(.trakili) a{color:var(--tk-text-link)}:where(.trakili) a:hover{color:var(--tk-text-link-hover)}html:has(.trakili)::-webkit-scrollbar-track{background:var(--tk-cream-50)}html:has(.trakili)::-webkit-scrollbar-thumb{background:rgba(16,43,40,.18);border-radius:5px}html:has(.trakili)::-webkit-scrollbar-thumb:hover{background:rgba(16,43,40,.3)}html:has(.trakili[data-theme=dark])::-webkit-scrollbar-track{background:var(--tk-graphite-950)}html:has(.trakili[data-theme=dark])::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.16)}html:has(.trakili[data-theme=dark])::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.26)}.trakili ::-webkit-scrollbar-track{background:var(--tk-bg)}.trakili ::-webkit-scrollbar-thumb{background:var(--tk-scrollbar);border-radius:5px}.trakili ::-webkit-scrollbar-thumb:hover{background:var(--tk-scrollbar-hover)}.trakili .tk-logo-dark{display:none}.trakili[data-theme=dark] .tk-logo-dark{display:block}.trakili[data-theme=dark] .tk-logo-light{display:none}.tk-btn-primary{background:var(--tk-primary);color:var(--tk-primary-fg)}.tk-btn-primary:hover{background:var(--tk-primary-hover)}.tk-btn-primary:active{background:var(--tk-primary-active)}.tk-btn-secondary{background:var(--tk-secondary);color:var(--tk-secondary-fg);border:1px solid var(--tk-secondary-border)}.tk-btn-secondary:hover{background:var(--tk-secondary-hover)}.tk-btn-secondary:active{background:var(--tk-secondary-active)}.tk-btn-ghost{background:transparent;color:var(--tk-ghost-fg)}.tk-btn-ghost:hover{background:var(--tk-ghost-hover)}.tk-btn-danger{background:var(--tk-danger);color:var(--tk-danger-fg)}.tk-btn-danger:hover{background:var(--tk-danger-hover)}.tk-btn-danger:active{background:var(--tk-danger-active)}.tk-btn-danger:disabled,.tk-btn-ghost:disabled,.tk-btn-primary:disabled,.tk-btn-secondary:disabled{background:var(--tk-disabled-bg);color:var(--tk-disabled-fg);border-color:transparent;cursor:not-allowed}.tk-input{background:var(--tk-surface);color:var(--tk-text);border:1px solid var(--tk-border)}.tk-input::-moz-placeholder{color:var(--tk-text-muted)}.tk-input::placeholder{color:var(--tk-text-muted)}.tk-input:hover{border-color:var(--tk-border-strong)}.tk-input[aria-invalid=true]{border-color:var(--tk-error-solid)}.tk-alert-success{background:var(--tk-success-bg);color:var(--tk-success-fg);border:1px solid var(--tk-success-border)}.tk-alert-warning{background:var(--tk-warning-bg);color:var(--tk-warning-fg);border:1px solid var(--tk-warning-border)}.tk-alert-error{background:var(--tk-error-bg);color:var(--tk-error-fg);border:1px solid var(--tk-error-border)}.tk-alert-info{background:var(--tk-info-bg);color:var(--tk-info-fg);border:1px solid var(--tk-info-border)}.trakili{--bg-0:var(--tk-bg);--bg-1:var(--tk-surface);--bg-2:var(--tk-surface-raised);--line:var(--tk-border-subtle);--line-soft:color-mix(in srgb,var(--tk-border-subtle) 60%,transparent);--ink-1:var(--tk-text);--ink-2:var(--tk-text-muted);--ink-3:var(--tk-text-muted);--ink-4:var(--tk-text-muted);--ink-5:var(--tk-text-muted);--positive:var(--tk-brand);--positive-ink:var(--tk-text-brand);--positive-tint:var(--tk-surface-selected);--negative:var(--tk-warning-solid);--negative-ink:var(--tk-warning-fg);--negative-tint:var(--tk-warning-bg);--tracked:var(--tk-ring-results);--tracked-ink:var(--tk-info-fg);--tracked-tint:var(--tk-info-bg);--warning:var(--tk-warning-solid);--warning-ink:var(--tk-warning-fg);--warning-tint:var(--tk-warning-bg);--neutral:var(--tk-text);--neutral-ink:var(--tk-text);--neutral-tint:var(--bg-2);--pace-mark:var(--tk-pace-line);--scrim:color-mix(in srgb,var(--tk-bg) 70%,transparent);--fs-display:48px;--fs-display-m:34px;--fs-h1:36px;--fs-h1-m:28px;--fs-h2:24px;--fs-h2-m:20px;--fs-h3:19px;--fs-h3-m:17px;--fs-lead:17px;--fs-lead-m:16px;--fs-body:15px;--fs-small:13px;--fs-label:11px;--fs-micro:10px;--fw-display:800;--fw-h1:800;--fw-h2:700;--fw-h3:700;--fw-lead:500;--fw-body:500;--fw-small:600;--fw-label:700;--fw-micro:700;--ls-display:-0.04em;--ls-display-m:-0.03em;--ls-h1:-0.04em;--ls-h1-m:-0.03em;--ls-h2:-0.03em;--ls-h2-m:-0.02em;--ls-h3:-0.02em;--ls-lead:-0.02em;--ls-lead-m:-0.02em;--ls-body:-0.01em;--ls-small:-0.01em;--ls-label:0.18em;--ls-micro:0.18em;--lh-display:1;--lh-heading:1.2;--lh-body:1.6;--lh-label:1.2;--r-pill:999px;--r-card:24px;--r-input:14px;--r-tight:10px;--sp-4:4px;--sp-8:8px;--sp-12:12px;--sp-16:16px;--sp-20:20px;--sp-24:24px;--sp-32:32px;--sp-40:40px;--sp-56:56px;--sp-80:80px}.gt-app{min-height:100vh;background:var(--bg-0);color:var(--ink-1);font-family:var(--font-poppins),system-ui,sans-serif;font-weight:var(--fw-body);line-height:var(--lh-body);padding:0 var(--sp-24) var(--sp-80);-webkit-font-smoothing:antialiased}.gt-app *,.gt-auth *,.gt-overlay *{box-sizing:border-box}.gt-wrap{max-width:880px;margin:0 auto}.gt-header{flex-direction:column;text-align:center;gap:var(--sp-12);padding:var(--sp-16) 0 var(--sp-32)}.gt-header,.gt-topbar{display:flex;align-items:center}.gt-topbar{position:relative;justify-content:center;width:100%;min-height:40px}.gt-topbar .gt-avatar-wrap{position:absolute;right:0;top:50%;transform:translateY(-50%)}.gt-brand{display:inline-flex;align-items:center}.gt-logo{display:block;height:36px;width:auto}.gt-streakline{display:inline-flex;align-items:center;gap:var(--sp-8);padding:var(--sp-4) 0;font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);color:var(--ink-2);text-decoration:none;touch-action:manipulation;transition:color .16s ease-out}.gt-streakline b,.gt-streakline:hover{color:var(--ink-1)}.gt-streakline b{font-weight:var(--fw-h3);font-variant-numeric:tabular-nums}.gt-streakline .sep{color:var(--ink-3)}.gt-streakline .gt-streak-flame{margin-top:0}.gt-streakline .gt-streak-flame svg{width:16px;height:16px}.gt-avatar,.gt-avatar-wrap{position:relative}.gt-avatar{width:36px;height:36px;border-radius:var(--r-pill);background:var(--bg-2);color:var(--ink-1);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h3-m);font-weight:var(--fw-h3);border:none;padding:0;font-family:inherit;cursor:pointer;touch-action:manipulation}.gt-avatar:before{content:"";position:absolute;inset:-4px}.gt-menu{position:absolute;top:calc(100% + var(--sp-8));right:0;z-index:20;min-width:200px;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-md);padding:var(--sp-8);display:flex;flex-direction:column}.gt-menu-item{display:flex;align-items:center;min-height:44px;padding:var(--sp-8) var(--sp-16);border-radius:var(--r-tight);background:none;border:none;font-family:inherit;font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);color:var(--ink-2);cursor:pointer;text-align:left;text-decoration:none;touch-action:manipulation;transition:background-color .15s,color .15s}.gt-menu-item:hover{background:var(--bg-2);color:var(--ink-1)}.gt-title{margin:0;font-size:var(--fs-h1);font-weight:var(--fw-h1);letter-spacing:var(--ls-h1);line-height:var(--lh-heading)}.gt-title-btn{display:inline-flex;align-items:center;gap:var(--sp-8);background:none;border:none;padding:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;border-radius:var(--r-tight);touch-action:manipulation}.gt-title-btn .gt-chev{font-size:var(--fs-h3);color:var(--ink-3);transition:color .16s ease-out}.gt-title-btn:hover .gt-chev{color:var(--ink-1)}.gt-title-btn:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:4px}.gt-pill{position:relative;touch-action:manipulation;font-size:var(--fs-small);font-weight:var(--fw-small);padding:var(--sp-8) var(--sp-16);border-radius:var(--r-pill);letter-spacing:var(--ls-small);line-height:var(--lh-label);border:1px solid var(--line);cursor:pointer;transition:color .15s,border-color .15s,background-color .15s,filter .15s;background:none;color:inherit;font-family:inherit}.gt-pill:before{content:"";position:absolute;inset:-8px 0}.gt-pill.ghost{color:var(--ink-2)}.gt-pill.ghost:hover{color:var(--ink-1)}.gt-pill.filled{background:var(--bg-2);border-color:var(--line);color:var(--ink-2)}.gt-pill.filled:hover{color:var(--ink-1)}.gt-pill.ghost.on{color:var(--positive-ink);border-color:var(--positive)}.gt-pill.accent{color:var(--ink-2)}.gt-pill.accent:hover{color:var(--ink-1)}.gt-listbar{display:flex;justify-content:flex-end;margin-bottom:var(--sp-4)}.gt-edit-toggle{position:relative;background:none;border:none;padding:var(--sp-8) var(--sp-4);font:inherit;font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);color:var(--ink-2);cursor:pointer;border-radius:var(--r-tight);touch-action:manipulation;transition:color .16s ease-out}.gt-edit-toggle:before{content:"";position:absolute;inset:-8px 0}.gt-edit-toggle:hover{color:var(--ink-1)}.gt-edit-toggle.on{color:var(--tk-text-brand)}.gt-edit-toggle:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-avatar:focus-visible,.gt-check:focus-visible,.gt-del-cat:focus-visible,.gt-edit:focus-visible,.gt-gdel:focus-visible,.gt-menu-item:focus-visible,.gt-pill:focus-visible,.gt-streakline:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-rings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-16);margin:var(--sp-16) 0 var(--sp-40)}.gt-ring-cell{display:flex;flex-direction:column;align-items:center;gap:var(--sp-12);min-width:0}.gt-ring{position:relative;width:148px;height:148px}.gt-ring svg{display:block;width:100%;height:100%}.gt-ring-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-display);font-weight:var(--fw-display);letter-spacing:var(--ls-display);line-height:var(--lh-display);font-variant-numeric:tabular-nums;white-space:nowrap}.gt-ring-label{font-size:var(--fs-label);font-weight:var(--fw-label);letter-spacing:var(--ls-label);line-height:var(--lh-label);text-transform:uppercase}.gt-ring-label,.gt-ring-sub{color:var(--ink-3);text-align:center}.gt-ring-sub{font-size:var(--fs-small);margin-top:calc(-1 * var(--sp-4))}.gt-money-sub{gap:var(--sp-4);flex-wrap:wrap}.gt-money-sub,.gt-money-toggle{display:inline-flex;align-items:center;justify-content:center}.gt-money-toggle{position:relative;background:none;border:none;padding:0;color:var(--ink-3);cursor:pointer;touch-action:manipulation;transition:color .16s ease-out}.gt-money-toggle:hover{color:var(--ink-1)}.gt-money-toggle:before{content:"";position:absolute;inset:-14px}.gt-money-toggle:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-ring-dot{r:3px}@media (max-width:760px){.gt-ring{width:96px;height:96px}.gt-ring-center{font-size:var(--fs-h2);letter-spacing:var(--ls-h2)}.gt-ring-dot{r:4.6px}}.gt-money-short{display:none}.gt-money-full,.gt-money-short{white-space:nowrap}.gt-streak-flame{display:inline-flex;align-self:center;margin-top:-.06em;color:var(--tk-streak)}.gt-streak-flame svg{width:22px;height:22px}.gt-hero{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-card);padding:var(--sp-24);margin-bottom:var(--sp-40)}.gt-hero,.gt-pace{display:flex;flex-direction:column}.gt-pace{gap:var(--sp-4);padding-bottom:var(--sp-16);margin-bottom:var(--sp-16);border-bottom:1px solid var(--line-soft)}.gt-pace-day{font-size:var(--fs-label);font-weight:var(--fw-label);letter-spacing:var(--ls-label);line-height:var(--lh-label);text-transform:uppercase;color:var(--ink-3)}.gt-pace-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);flex-wrap:wrap}.gt-pace-line{font-size:var(--fs-h3);font-weight:var(--fw-h3);letter-spacing:var(--ls-h3);line-height:var(--lh-heading);color:var(--ink-1);font-variant-numeric:tabular-nums;white-space:nowrap}.gt-pace-line .sep{color:var(--ink-3);font-weight:var(--fw-body);padding:0 var(--sp-4)}.gt-pace-pill{display:inline-flex;align-items:center;gap:var(--sp-4);height:24px;padding:0 var(--sp-12);border-radius:var(--r-pill);font-size:var(--fs-micro);font-weight:var(--fw-micro);letter-spacing:var(--ls-micro);line-height:var(--lh-label);text-transform:uppercase;white-space:nowrap}.gt-pace-pill.pos{background:var(--positive-tint);color:var(--positive-ink)}.gt-pace-pill.neg{background:var(--negative-tint);color:var(--negative-ink)}.gt-pace-pill.quiet{padding:0;background:none;color:var(--ink-3)}.gt-hero-chart{flex:1;min-width:0}.gt-chart{width:100%;min-width:0}.gt-chart-legend{display:flex;flex-wrap:wrap;gap:var(--sp-12);margin-bottom:var(--sp-8)}.gt-chart-key{display:inline-flex;align-items:center;gap:var(--sp-8);font-size:var(--fs-small);color:var(--ink-3);white-space:nowrap}.gt-chart-key i{width:9px;height:9px;border-radius:var(--r-tight);flex-shrink:0}.gt-chart-plot{position:relative;width:100%;min-width:0}.gt-chart-svg{display:block;width:100%;touch-action:pan-y;border-radius:var(--r-tight)}.gt-chart-svg:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:4px}.gt-chart-tip{position:absolute;top:0;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-tight);box-shadow:var(--tk-shadow-md);padding:var(--sp-8) var(--sp-12);pointer-events:none;z-index:2}.gt-chart-tip-d{font-size:var(--fs-micro);font-weight:var(--fw-micro);letter-spacing:var(--ls-micro);text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--sp-4)}.gt-chart-tip-r{display:flex;align-items:center;gap:var(--sp-8);font-size:var(--fs-small);color:var(--ink-2);line-height:var(--lh-body)}.gt-chart-tip-r i{width:8px;height:8px;border-radius:var(--r-tight);flex-shrink:0}.gt-chart-tip-r b{margin-left:auto;color:var(--ink-1);font-variant-numeric:tabular-nums}.gt-cats{display:flex;flex-direction:column;gap:var(--sp-16)}.gt-cat{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-card);overflow:hidden}.gt-cat-headrow{display:flex;align-items:center}.gt-cat-headrow>.gt-drag{margin-left:var(--sp-8)}.gt-cat-headrow>.gt-del-cat{margin-right:var(--sp-16)}.gt-cat-head{flex:1;min-width:0;display:block;padding:var(--sp-20) var(--sp-24);background:none;border:none;font:inherit;letter-spacing:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;transition:background-color .16s ease-out}.gt-cat-head:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:-2px}.gt-cat-head:hover{background:var(--bg-2)}.gt-cat.open .gt-cat-head{border-bottom:1px solid var(--line-soft)}.gt-cat-top{display:flex;align-items:center;gap:var(--sp-12)}.gt-cat-name{flex:1;min-width:0;font-size:var(--fs-h3);font-weight:var(--fw-h3);letter-spacing:var(--ls-h3);line-height:var(--lh-heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gt-cat-pct{font-size:var(--fs-body);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.gt-chev{color:var(--ink-3);font-size:var(--fs-micro);transition:transform .16s ease-out}.gt-cat.open .gt-chev{transform:rotate(180deg)}.gt-cat-track{position:relative;display:block;height:4px;margin-top:var(--sp-12);background:var(--tk-ring-track);overflow:visible}.gt-cat-fill,.gt-cat-track{border-radius:var(--r-pill)}.gt-cat-fill{position:absolute;inset:0 auto 0 0;background:var(--tk-brand);transition:width .16s ease-out}.gt-cat-tick{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:1px;background:var(--pace-mark)}.gt-cat-body{display:none;padding:var(--sp-4) var(--sp-24) var(--sp-24)}.gt-cat.open .gt-cat-body{display:block}.gt-del-cat{position:relative;background:none;border:none;font-family:inherit;touch-action:manipulation;color:var(--ink-3);font-size:var(--fs-lead-m);cursor:pointer;line-height:1;padding:var(--sp-4) var(--sp-8);border-radius:var(--r-tight);transition:color .16s ease-out,background-color .16s ease-out}.gt-del-cat:before{content:"";position:absolute;inset:-8px -4px}.gt-del-cat:hover{color:var(--tk-error-fg);background:var(--tk-error-bg)}.gt-addcat{margin-top:var(--sp-12)}.gt-cat-note{font-size:var(--fs-small);font-weight:var(--fw-small);color:var(--ink-3);white-space:nowrap}.gt-rewards{margin-top:var(--sp-12)}.gt-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.gt-sub-h{font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);line-height:var(--lh-body);color:var(--ink-3);margin:var(--sp-16) 0 var(--sp-4)}.gt-goal{padding:var(--sp-12) 0;border-bottom:1px solid var(--line-soft)}.gt-goal:last-child{border-bottom:none}.gt-goal-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12)}.gt-goal-top>div:first-child{min-width:0}.gt-goal-name{font-size:var(--fs-body);font-weight:var(--fw-body)}.gt-goal.result .gt-goal-name{color:var(--ink-2)}.gt-goal-from{font-size:var(--fs-small);color:var(--ink-4);margin-top:var(--sp-4)}.gt-goal-right{display:flex;align-items:center;gap:var(--sp-12);flex-shrink:0}.gt-count{position:relative;background:none;border:none;padding:var(--sp-4) 0;font:inherit;font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer;border-radius:var(--r-tight);-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-color:color-mix(in srgb,var(--ink-3) 55%,transparent);text-underline-offset:4px;touch-action:manipulation;transition:color .16s ease-out,text-decoration-color .16s ease-out}.gt-count:before{content:"";position:absolute;inset:-10px -6px}.gt-count:hover{color:var(--ink-1);text-decoration-color:var(--ink-1)}.gt-count:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-gpct{font-size:var(--fs-small);font-weight:700;font-variant-numeric:tabular-nums;min-width:44px;text-align:right}.gt-gpct.steel{color:var(--ink-2)}.gt-check{position:relative;background:none;padding:0;font-family:inherit;touch-action:manipulation;width:26px;height:26px;border-radius:var(--r-tight);border:1px solid var(--tk-border);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s,border-color .15s,color .15s;color:transparent;font-size:var(--fs-body)}.gt-check:before{content:"";position:absolute;inset:-9px}.gt-check.on{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-primary-fg);font-weight:700}.gt-edit{position:relative;background:none;font-family:inherit;touch-action:manipulation;font-size:var(--fs-small);color:var(--ink-4);cursor:pointer;padding:var(--sp-4) var(--sp-12);border:1px solid var(--line);border-radius:var(--r-pill);transition:color .12s,border-color .12s;white-space:nowrap}.gt-edit:before{content:"";position:absolute;inset:-8px -4px}.gt-edit:hover{color:var(--ink-1);border-color:var(--line)}.gt-slide-wrap{position:relative;display:flex;align-items:center;gap:var(--sp-12);margin-top:calc(-1 * var(--sp-8));margin-bottom:calc(-1 * var(--sp-8))}.gt-slider-guard{display:none;position:absolute;inset:0;touch-action:pan-y;-webkit-touch-callout:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}@media (pointer:coarse){.gt-slider-guard{display:block}}.gt-slide-wrap.armed .gt-slider::-webkit-slider-thumb{box-shadow:0 0 0 6px color-mix(in srgb,var(--positive) 32%,transparent)}.gt-slide-wrap.armed .gt-slider::-moz-range-thumb{box-shadow:0 0 0 6px color-mix(in srgb,var(--positive) 32%,transparent)}.gt-slider-hint{position:absolute;left:50%;bottom:calc(100% - var(--sp-4));transform:translateX(-50%);white-space:nowrap;background:var(--bg-2);color:var(--ink-1);border:1px solid var(--line);box-shadow:var(--tk-shadow-md);padding:var(--sp-4) var(--sp-12);font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);line-height:var(--lh-body);pointer-events:none}.gt-slider,.gt-slider-hint{border-radius:var(--r-pill)}.gt-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:44px;margin:0;background-color:transparent;background-repeat:no-repeat;background-size:100% 6px;background-position:50%;outline:none;cursor:grab;touch-action:pan-y}.gt-slider:active{cursor:grabbing}.gt-slider::-webkit-slider-runnable-track{height:6px;background:transparent;border-radius:var(--r-pill)}.gt-slider::-moz-range-track{height:6px;background:transparent;border-radius:var(--r-pill)}.gt-slider::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;margin-top:-4.5px;border-radius:var(--r-pill);background:var(--positive);border:2px solid var(--bg-0);cursor:grab;-webkit-transition:box-shadow .16s ease-out;transition:box-shadow .16s ease-out}.gt-slider::-moz-range-thumb{width:13px;height:13px;border-radius:var(--r-pill);background:var(--positive);border:2px solid var(--bg-0);cursor:grab;-moz-transition:box-shadow .16s ease-out;transition:box-shadow .16s ease-out}.gt-slider:hover::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--ink-1) 12%,transparent)}.gt-slider:hover::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--ink-1) 12%,transparent)}.gt-slider:focus-visible::-webkit-slider-thumb{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-slider:focus-visible::-moz-range-thumb{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-tag{display:inline-block;white-space:nowrap;font-size:var(--fs-small);font-weight:var(--fw-body);padding:var(--sp-4) var(--sp-8);border-radius:var(--r-tight);margin-left:var(--sp-8);font-variant-numeric:tabular-nums}.gt-tag.done{color:var(--positive-ink)}.gt-tag.behind,.gt-tag.done{padding:0;background:none;font-weight:var(--fw-small)}.gt-tag.behind{color:var(--ink-3)}.gt-tag.way{background:var(--negative-tint);color:var(--negative-ink);font-weight:var(--fw-small)}.gt-gdel{position:relative;background:none;border:none;font-family:inherit;touch-action:manipulation;color:var(--ink-4);cursor:pointer;font-size:var(--fs-body);padding:var(--sp-4) var(--sp-8);border-radius:var(--r-tight);line-height:1}.gt-gdel:before{content:"";position:absolute;inset:-8px -4px}.gt-gdel:hover{color:var(--tk-error-fg);background:var(--tk-error-bg)}.gt-addgoal{margin-top:var(--sp-16);font-size:var(--fs-small);color:var(--ink-2);background:none;border:1px dashed var(--line);padding:var(--sp-8) var(--sp-16);border-radius:var(--r-tight);cursor:pointer;width:100%;font-family:inherit;transition:color .15s,border-color .15s,background-color .15s}.gt-addgoal:hover{border-color:var(--ink-3);background:var(--bg-2)}.gt-addcat{margin-top:var(--sp-8);font-size:var(--fs-small);color:var(--tk-ghost-fg);background:none;border:1px dashed var(--line);padding:var(--sp-12) var(--sp-16);border-radius:var(--r-tight);cursor:pointer;width:100%;font-family:inherit;transition:color .15s,border-color .15s,background-color .15s}.gt-addcat:hover{border-color:var(--tk-brand);background:var(--tk-ghost-hover)}.gt-rewards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-12);padding-top:var(--sp-8)}.gt-rw{border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-16) var(--sp-20);background:var(--tk-surface-sunken);display:flex;justify-content:space-between;align-items:center}.gt-rw .rn{font-size:var(--fs-body);font-weight:var(--fw-body)}.gt-rw .rc{font-size:var(--fs-small);color:var(--positive-ink);font-weight:700;margin-top:var(--sp-4)}.gt-rw .rbtns{display:flex;gap:var(--sp-8);align-items:center}.gt-rw button{font-size:var(--fs-small);font-weight:var(--fw-body);padding:var(--sp-8) var(--sp-16);border-radius:var(--r-pill);border:1px solid var(--tk-secondary-border);background:var(--tk-secondary);color:var(--tk-secondary-fg);cursor:pointer;transition:background-color .15s,color .15s,border-color .15s;font-family:inherit}.gt-rw button:hover{background:var(--tk-secondary-hover)}.gt-rw.claimed button{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-primary-fg)}.gt-foot{margin-top:var(--sp-56);color:var(--ink-4)}.gt-brandline,.gt-foot{text-align:center;font-size:var(--fs-small)}.gt-brandline{margin:var(--sp-24) 0 0;color:var(--ink-3)}.gt-brandline a{color:var(--tk-text-link);text-decoration:underline}.gt-brandline a:hover{color:var(--tk-text-link-hover)}.gt-reset{margin-top:var(--sp-16);font-size:var(--fs-small);color:var(--ink-4);background:none;border:1px solid var(--line);padding:var(--sp-8) var(--sp-16);border-radius:var(--r-pill);cursor:pointer;font-family:inherit}.gt-reset:hover{color:var(--tk-error-fg);border-color:var(--tk-error-fg)}.gt-reset+.gt-reset{margin-left:var(--sp-8)}.gt-reset:disabled{opacity:.55;cursor:default}.gt-reset:disabled:hover{color:var(--ink-4);border-color:var(--line)}.gt-adminbar{background:var(--neutral-tint);border:1px solid var(--line);padding:var(--sp-12) var(--sp-16);margin-bottom:var(--sp-16);color:var(--neutral-ink)}.gt-adminbar,.gt-drag{border-radius:var(--r-tight);font-size:var(--fs-small)}.gt-drag{color:var(--ink-4);line-height:1;padding:7px 5px;margin:-7px 0;cursor:grab;touch-action:none;flex-shrink:0;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.gt-drag:hover{color:var(--ink-2);background:var(--bg-2)}.gt-drag:active{cursor:grabbing}.gt-cat-head .left .gt-drag{margin-right:-5px}.gt-dragging{opacity:.4}.gt-goal{position:relative}.gt-goal>.gt-drag{position:absolute;left:-22px;top:10px;padding:7px var(--sp-4);margin:0}.gt-drag-ghost{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-8) var(--sp-16);font-size:var(--fs-body);color:var(--ink-1);box-shadow:var(--tk-shadow-md);cursor:grabbing}.gt-dropzone{border:1px dashed var(--line);border-radius:var(--r-tight);padding:var(--sp-12);text-align:center;font-size:var(--fs-small);color:var(--ink-4)}.gt-dropzone.over{border-color:var(--tk-brand);color:var(--tk-text-brand);background:var(--tk-surface-selected)}.gt-auth{position:fixed;inset:0;background:var(--bg-0);z-index:100;display:flex;overflow-y:auto;padding:var(--sp-20);font-family:var(--font-poppins),system-ui,sans-serif;font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--ink-1)}.gt-auth>.gt-auth-card{margin:auto}.gt-auth-card{width:100%;max-width:420px;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-card);padding:var(--sp-24)}.gt-auth-card h1{font-size:var(--fs-h1);font-weight:var(--fw-h1);letter-spacing:var(--ls-h1);line-height:var(--lh-heading);margin-bottom:var(--sp-8)}.gt-auth-card .gt-auth-logo{margin-bottom:var(--sp-16)}.gt-auth-card .sub{font-size:var(--fs-small);color:var(--ink-2);margin-bottom:var(--sp-24)}.gt-auth-tabs{display:flex;gap:var(--sp-8);margin-bottom:var(--sp-24)}.gt-auth-tab{flex:1;text-align:center;font-size:var(--fs-small);font-weight:var(--fw-body);padding:var(--sp-12);border-radius:var(--r-pill);border:1px solid var(--line);cursor:pointer;color:var(--ink-2);transition:color .15s,border-color .15s,background-color .15s}.gt-auth-tab.on{border-color:var(--tk-primary)}.gt-auth-btn,.gt-auth-tab.on{background:var(--tk-primary);color:var(--tk-primary-fg);font-weight:700}.gt-auth-btn{width:100%;padding:var(--sp-12);border-radius:var(--r-pill);font-size:var(--fs-body);border:none;cursor:pointer;font-family:inherit;margin-top:var(--sp-8)}.gt-auth-btn:hover{background:var(--tk-primary-hover)}.gt-auth-btn:disabled{opacity:.6;cursor:default}.gt-auth-err{color:var(--tk-error-fg)}.gt-auth-err,.gt-auth-ok{font-size:var(--fs-small);margin-top:var(--sp-12);min-height:16px}.gt-auth-ok{color:var(--tk-success-fg)}.gt-admin-err:before,.gt-auth-err:before{content:"✕ ";content:"✕ "/""}.gt-admin-note:before,.gt-auth-ok:before{content:"✓ ";content:"✓ "/""}.gt-auth-note{color:var(--ink-4);margin-top:var(--sp-16);text-align:center;line-height:var(--lh-body)}.gt-auth-note,.gt-forgot{font-size:var(--fs-small)}.gt-forgot{display:block;margin:1px 0 0 auto;background:none;border:none;padding:var(--sp-8) 0;font-family:inherit;color:var(--ink-2);cursor:pointer;text-decoration:underline}.gt-forgot:hover{color:var(--tk-text-link-hover)}.gt-auth-back{display:block;width:100%;margin-top:var(--sp-16);background:none;border:none;padding:var(--sp-4);font-family:inherit;font-size:var(--fs-small);color:var(--ink-2);cursor:pointer}.gt-auth-back:hover{color:var(--ink-1)}.gt-mp-grid{display:flex;flex-direction:column;gap:var(--sp-16);max-height:55vh;overflow-y:auto;padding-right:var(--sp-8)}.gt-mp-year .yr{font-size:var(--fs-label);letter-spacing:var(--ls-label);color:var(--ink-3);text-transform:uppercase;margin-bottom:var(--sp-8);font-weight:var(--fw-label)}.gt-mp-months{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-8)}.gt-mp-m{font-size:var(--fs-small);padding:var(--sp-12) var(--sp-4);text-align:center;border:1px solid var(--line);border-radius:var(--r-pill);cursor:pointer;color:var(--ink-2);transition:color .12s,border-color .12s,background-color .12s;position:relative}.gt-mp-m:hover{border-color:var(--line);color:var(--ink-1)}.gt-mp-m.sel{background:var(--tk-primary);color:var(--tk-primary-fg);border-color:var(--tk-primary);font-weight:700}.gt-mp-m.hasdata:after{content:"";position:absolute;top:5px;right:6px;width:5px;height:5px;border-radius:var(--r-pill);background:var(--positive)}.gt-mp-m.sel.hasdata:after{background:var(--tk-primary-fg)}.gt-overlay{position:fixed;inset:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:50;padding:var(--sp-20);font-family:var(--font-poppins),system-ui,sans-serif;font-weight:var(--fw-body);line-height:var(--lh-body);color:var(--ink-1)}.gt-modal{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-md);padding:var(--sp-24);width:100%;max-width:440px}.gt-modal h3{font-size:var(--fs-h2-m);font-weight:var(--fw-h2);letter-spacing:var(--ls-h2-m);line-height:var(--lh-heading);margin-bottom:var(--sp-20)}.gt-field{margin-bottom:var(--sp-16)}.gt-field label{display:block;font-size:var(--fs-small);color:var(--ink-2);margin-bottom:var(--sp-8);letter-spacing:var(--ls-small)}.gt-field input,.gt-field select{width:100%;background:var(--tk-surface-sunken);border:1px solid var(--tk-border);border-radius:var(--r-input);padding:var(--sp-12);color:var(--ink-1);font-size:var(--fs-body);font-family:inherit;outline:none}.gt-field input:focus,.gt-field select:focus{border-color:var(--tk-focus-ring)}.gt-pw{position:relative}.gt-pw input{padding-right:44px}.gt-pw-toggle{position:absolute;top:1px;right:1px;bottom:1px;width:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;color:var(--ink-2);cursor:pointer;border-radius:var(--r-tight)}.gt-pw-toggle:hover{color:var(--ink-1)}.gt-pw-toggle:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:-2px}.gt-field-row{display:flex;gap:var(--sp-12)}.gt-field-row .gt-field{flex:1}.gt-check-field{display:flex;align-items:center;gap:var(--sp-8);margin-bottom:var(--sp-16);cursor:pointer;font-size:var(--fs-small);color:var(--ink-2)}.gt-check-field input{width:17px;height:17px;accent-color:var(--tk-primary);cursor:pointer;flex-shrink:0}.gt-modal-actions{display:flex;gap:var(--sp-8);margin-top:var(--sp-24)}.gt-modal-actions button{flex:1;padding:var(--sp-12);border-radius:var(--r-pill);font-size:var(--fs-body);font-weight:var(--fw-body);cursor:pointer;font-family:inherit;border:1px solid var(--line);background:none;color:var(--ink-1)}.gt-modal-actions .save{background:var(--tk-primary);color:var(--tk-primary-fg);border-color:var(--tk-primary);font-weight:700}.gt-empty{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-card);padding:var(--sp-40) var(--sp-24);margin-bottom:var(--sp-24);text-align:center}.gt-empty-t{font-size:var(--fs-h2);font-weight:var(--fw-h2);letter-spacing:var(--ls-h2);line-height:var(--lh-heading)}.gt-empty-d{font-size:var(--fs-small);color:var(--ink-2);margin-top:var(--sp-8);line-height:var(--lh-body)}.gt-empty-actions{display:flex;gap:var(--sp-8);justify-content:center;flex-wrap:wrap;margin-top:var(--sp-24)}.gt-empty-btn{padding:var(--sp-12) var(--sp-20);border-radius:var(--r-pill);font-size:var(--fs-body);font-weight:600;cursor:pointer;font-family:inherit;border:1px solid var(--line);background:none;color:var(--ink-1)}.gt-empty-btn:hover{border-color:var(--tk-border-strong)}.gt-empty-btn.primary{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-primary-fg);font-weight:700}.gt-empty-btn.primary:hover{background:var(--tk-primary-hover);border-color:var(--tk-primary-hover)}.gt-empty-btn:disabled{opacity:.55;cursor:default}.gt-choice-list{display:flex;flex-direction:column;gap:var(--sp-8)}.gt-choice{display:block;width:100%;text-align:left;background:var(--tk-surface-sunken);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-12) var(--sp-16);cursor:pointer;font-family:inherit;color:var(--ink-1)}.gt-choice:hover{border-color:var(--tk-brand)}.gt-choice-t{display:block;font-size:var(--fs-body);font-weight:700}.gt-choice-d{display:block;font-size:var(--fs-small);color:var(--ink-2);margin-top:var(--sp-4);line-height:var(--lh-body)}.gt-swatches{display:flex;gap:var(--sp-8);flex-wrap:wrap}.gt-swatch{width:28px;height:28px;border-radius:var(--r-tight);cursor:pointer;border:2px solid transparent}.gt-swatch.sel{border-color:var(--ink-1)}.gt-account{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--tk-shadow-card);padding:var(--sp-24);margin-top:var(--sp-24)}.gt-account-h{font-size:var(--fs-h3-m);font-weight:var(--fw-h3);letter-spacing:var(--ls-h3);line-height:var(--lh-heading)}.gt-account-sub{font-size:var(--fs-small);color:var(--ink-2);margin-top:var(--sp-4);margin-bottom:var(--sp-16);overflow-wrap:anywhere}.gt-account-sub b{color:var(--ink-1)}.gt-account-row{display:flex;gap:var(--sp-16)}.gt-account-row .gt-field{flex:1;min-width:0;margin-bottom:0}.gt-account-btn{margin-top:var(--sp-16);padding:var(--sp-12) var(--sp-24);border-radius:var(--r-pill);font-size:var(--fs-body);font-weight:700;background:var(--tk-primary);color:var(--tk-primary-fg);border:1px solid var(--tk-primary);cursor:pointer;font-family:inherit}.gt-account-btn:hover{background:var(--tk-primary-hover);border-color:var(--tk-primary-hover)}.gt-account-btn:disabled{opacity:.6;cursor:default}.gt-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--ink-2);font-size:var(--fs-body);font-weight:var(--fw-body);font-family:var(--font-poppins),system-ui,sans-serif;background:var(--bg-0)}@media (max-width:760px){.gt-app{padding:0 var(--sp-16) var(--sp-80)}.gt-auth-card h1,.gt-title{font-size:var(--fs-h1-m);letter-spacing:var(--ls-h1-m)}.gt-rings{margin:var(--sp-16) 0 var(--sp-32)}.gt-hero{padding:var(--sp-20) var(--sp-16);margin-bottom:var(--sp-32)}.gt-pace-line{font-size:var(--fs-h3-m)}.gt-cat-head{padding:var(--sp-20)}.gt-cat-name{font-size:var(--fs-h3-m)}.gt-cat-body{padding:0 var(--sp-20) var(--sp-20)}.gt-hero-chart{width:100%;flex:none}.gt-empty{padding:var(--sp-32) var(--sp-16)}.gt-empty-actions{flex-direction:column}.gt-empty-btn{width:100%}.gt-rewards-grid{grid-template-columns:1fr}.gt-header{padding-bottom:var(--sp-24)}.gt-account{padding:var(--sp-20) var(--sp-16)}.gt-account-row{flex-direction:column;gap:var(--sp-16)}.gt-account-btn{width:100%}.gt-drag{padding:9px 7px;margin:-9px 0;font-size:var(--fs-body)}.gt-goal>.gt-drag{left:-24px;top:8px;padding:9px 6px;margin:0}.gt-cat-head .left .gt-drag{margin-right:-6px}}@media (max-width:640px){.gt-money-full{display:none}.gt-money-short{display:inline}}.gt-wait-card{text-align:center}.gt-wait-badge{display:inline-block;font-size:var(--fs-label);font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--warning-ink);background:var(--warning-tint);border:1px solid var(--warning);border-radius:var(--r-pill);padding:var(--sp-4) var(--sp-12);margin-bottom:var(--sp-16)}.gt-wait-card h1{font-size:var(--fs-h1-m);letter-spacing:var(--ls-h1-m)}.gt-wait-card .sub{margin-bottom:var(--sp-24)}.gt-wait-email{font-size:var(--fs-small);color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-12) var(--sp-16);margin-bottom:var(--sp-20);overflow-wrap:anywhere}.gt-wait-email strong{color:var(--ink-1);font-weight:600}.gt-admin{padding-top:var(--sp-40);max-width:1180px;margin:0 auto}.gt-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-16);margin-bottom:var(--sp-24)}.gt-admin-head h1{font-size:var(--fs-h1-m);font-weight:var(--fw-h1);letter-spacing:var(--ls-h1-m);line-height:var(--lh-heading)}.gt-admin-sub{font-size:var(--fs-small);color:var(--ink-4);margin-top:var(--sp-4);overflow-wrap:anywhere}.gt-admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-12);margin-bottom:var(--sp-16)}.gt-admin-stat{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--sp-16)}.gt-admin-stat .k{font-size:var(--fs-micro);letter-spacing:var(--ls-micro);color:var(--ink-3);font-weight:var(--fw-micro)}.gt-admin-stat .v{font-size:var(--fs-h2);font-weight:800;margin-top:var(--sp-8);letter-spacing:var(--ls-h2);line-height:var(--lh-heading)}.gt-admin-stat .v.pending{color:var(--warning)}.gt-admin-stat .v.approved,.gt-admin-stat .v.on{color:var(--positive)}.gt-admin-stat .v.off{color:var(--ink-4)}.gt-admin-actions{display:flex;gap:var(--sp-8);flex-wrap:wrap;margin-bottom:var(--sp-16)}.gt-admin-btn{font-family:inherit;font-size:var(--fs-small);font-weight:600;padding:var(--sp-12) var(--sp-16);border-radius:var(--r-pill);border:1px solid var(--line);background:var(--bg-2);color:var(--ink-1);cursor:pointer;transition:filter .15s,opacity .15s,background-color .15s,border-color .15s,color .15s}.gt-admin-btn:hover:not(:disabled){filter:brightness(1.12)}.gt-admin-btn:disabled{opacity:.45;cursor:default}.gt-admin-btn.primary{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-primary-fg)}.gt-admin-btn.small{font-size:var(--fs-small);padding:var(--sp-8) var(--sp-12)}.gt-admin-btn.toggle.on{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-primary-fg)}.gt-admin-invite{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--sp-16);margin-bottom:var(--sp-16)}.gt-admin-invite .k{font-size:var(--fs-micro);letter-spacing:var(--ls-micro);color:var(--ink-3);font-weight:var(--fw-micro);margin-bottom:var(--sp-8)}.gt-admin-invite .row{display:flex;align-items:center;gap:var(--sp-12);flex-wrap:wrap}.gt-admin-invite code{font-size:var(--fs-small);letter-spacing:var(--ls-small);color:var(--neutral);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-8) var(--sp-12);flex:1;min-width:0;overflow-wrap:anywhere}.gt-admin-err{color:var(--tk-error-fg)}.gt-admin-err,.gt-admin-note{font-size:var(--fs-small);margin-bottom:var(--sp-12)}.gt-admin-note{color:var(--tk-success-fg)}.gt-admin-filters{display:flex;gap:var(--sp-8);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-12)}.gt-admin-chip{font-family:inherit;font-size:var(--fs-small);font-weight:var(--fw-body);padding:var(--sp-8) var(--sp-16);border-radius:var(--r-pill);border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;touch-action:manipulation}.gt-admin-chip.on{background:var(--tk-primary);border-color:var(--tk-primary);color:var(--tk-primary-fg);font-weight:700}.gt-admin-chip:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:2px}.gt-admin-chip.on:focus-visible{outline-color:var(--ink-1)}.gt-admin-search{flex:1;min-width:200px;font-family:inherit;font-size:var(--fs-small);padding:var(--sp-8) var(--sp-12);border-radius:var(--r-input);border:1px solid var(--line);background:var(--bg-1);color:var(--ink-1)}.gt-admin-search::-moz-placeholder{color:var(--ink-5)}.gt-admin-search::placeholder{color:var(--ink-5)}.gt-admin-table{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden}.gt-admin-tr{display:grid;grid-template-columns:1.3fr 1.7fr 1fr .9fr .8fr auto;gap:var(--sp-12);align-items:center;padding:var(--sp-12) var(--sp-16);border-top:1px solid var(--line-soft);font-size:var(--fs-small)}.gt-admin-tr:first-child{border-top:none}.gt-admin-tr.head{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--ink-3);font-weight:700;text-transform:uppercase;background:var(--bg-2)}.gt-admin-tr .mono{font-size:var(--fs-small);color:var(--ink-3);overflow-wrap:anywhere}.gt-admin-empty,.gt-admin-tr .muted{color:var(--ink-4)}.gt-admin-empty{padding:var(--sp-24) var(--sp-16);text-align:center;font-size:var(--fs-small)}.gt-admin-badge{font-size:var(--fs-label);font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;padding:var(--sp-4) var(--sp-12);border-radius:var(--r-pill)}.gt-admin-badge.pending{color:var(--warning-ink);background:var(--warning-tint);border:1px solid var(--warning)}.gt-admin-badge.approved{color:var(--positive-ink);background:var(--positive-tint);border:1px solid var(--positive)}.gt-admin-badge.banned{color:var(--tk-error-fg);background:var(--tk-error-bg);border:1px solid var(--tk-error-border)}.gt-admin-badge+.gt-admin-badge{margin-left:var(--sp-4)}.gt-admin-rowbtns{display:flex;gap:var(--sp-4);justify-content:flex-end;flex-wrap:wrap}.gt-admin-tag{font-size:var(--fs-micro);font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--tk-text-brand);margin-left:var(--sp-8)}@media (max-width:860px){.gt-admin{padding-left:var(--sp-16);padding-right:var(--sp-16)}.gt-admin-stats{grid-template-columns:1fr 1fr}.gt-admin-table{background:none;border:none;border-radius:0}.gt-admin-tr.head{display:none}.gt-admin-tr{grid-template-columns:1fr;gap:var(--sp-8);background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-16);margin-bottom:var(--sp-8)}.gt-admin-tr>div[data-l]:before{content:attr(data-l);display:block;font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-bottom:var(--sp-4)}.gt-admin-tr>div:empty{display:none}.gt-admin-btn{width:100%}.gt-admin-invite code{flex-basis:100%}}.gt-an{margin-bottom:var(--sp-24)}.gt-an-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);margin:0 0 var(--sp-12)}.gt-an-head.sub{margin-top:var(--sp-24)}.gt-an-head h2{margin:0;font-size:var(--fs-body);font-weight:700;letter-spacing:var(--ls-body);color:var(--ink-1)}.gt-an-note{font-size:var(--fs-small);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-3);font-weight:700}.gt-an-head-right{display:flex;align-items:center;gap:var(--sp-8);flex-shrink:0}.gt-an-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-12)}.gt-an-card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--sp-16)}.gt-an-card .k{font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-bottom:var(--sp-8)}.gt-an-card .v{font-size:var(--fs-h2);font-weight:var(--fw-h2);letter-spacing:var(--ls-h2);line-height:var(--lh-heading);color:var(--ink-1)}.gt-an-card .v.accent{color:var(--tk-text-brand)}.gt-an-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-8);margin-bottom:var(--sp-12)}.gt-an-empty{padding:var(--sp-24) var(--sp-16);text-align:center;font-size:var(--fs-small);color:var(--ink-2)}.gt-an-board,.gt-an-empty{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-card)}.gt-an-board{overflow:hidden}.gt-an-tr{display:grid;grid-template-columns:48px 1.4fr 1.8fr 150px;align-items:center;gap:var(--sp-12);padding:var(--sp-12) var(--sp-16);border-bottom:1px solid var(--line-soft);font-size:var(--fs-small)}.gt-an-tr:last-child{border-bottom:none}.gt-an-tr.head{font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-3);font-weight:700;background:var(--line-soft)}.gt-an-rank{color:var(--ink-2);font-weight:700}.gt-an-tr.top .gt-an-rank{color:var(--tk-text-brand)}.gt-an-email{color:var(--ink-3);overflow-wrap:anywhere}.gt-an-val{font-weight:700}.gt-an-tr.head>span:last-child,.gt-an-val{text-align:right}.gt-an-sub{display:block;font-size:var(--fs-small);font-weight:var(--fw-small);letter-spacing:var(--ls-small);color:var(--ink-4);margin-top:var(--sp-4)}.gt-an-tabnote{font-size:var(--fs-small);line-height:var(--lh-body);color:var(--ink-2);margin:-4px 0 var(--sp-12)}.gt-an-unit{display:none}@media (max-width:860px){.gt-an-cards{grid-template-columns:1fr 1fr}.gt-an-head .gt-admin-btn{width:auto}.gt-an-board{background:none;border:none;border-radius:0;overflow:visible}.gt-an-tr.head{display:none}.gt-an-unit{display:block;font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-3);font-weight:700}.gt-an-tr,.gt-an-unit{margin-bottom:var(--sp-8)}.gt-an-tr{grid-template-columns:26px minmax(0,1fr) auto;grid-template-areas:"rank name val" "rank email val";align-items:center;-moz-column-gap:var(--sp-8);column-gap:var(--sp-8);row-gap:1px;background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-12)}.gt-an-tr.top{border-color:var(--tk-brand)}.gt-an-rank{grid-area:rank;align-self:center}.gt-an-name{grid-area:name}.gt-an-email{grid-area:email;font-size:var(--fs-small)}.gt-an-val{grid-area:val;text-align:right;align-self:center}}.gt-lb{max-width:720px;margin:0 auto;padding-top:var(--sp-32)}.gt-lb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-16);margin-bottom:var(--sp-24)}.gt-lb-head h1{font-size:var(--fs-h1-m);font-weight:var(--fw-h1);letter-spacing:var(--ls-h1-m);line-height:var(--lh-heading)}.gt-lb-sub{color:var(--ink-2);margin-top:var(--sp-4)}.gt-lb-tabs{display:flex;flex-wrap:wrap;gap:var(--sp-8);margin-bottom:var(--sp-12)}.gt-lb-note{font-size:var(--fs-small);line-height:var(--lh-body);color:var(--ink-2);margin-bottom:var(--sp-16)}.gt-lb-panel:focus-visible{outline:2px solid var(--tk-focus-ring);outline-offset:6px;border-radius:var(--r-tight)}.gt-lb-unit{font-size:var(--fs-micro);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-3);font-weight:700}.gt-lb-tr,.gt-lb-unit{margin-bottom:var(--sp-8)}.gt-lb-tr{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;-moz-column-gap:var(--sp-8);column-gap:var(--sp-8);background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-tight);padding:var(--sp-12)}.gt-lb-tr.mine,.gt-lb-tr.top{border-color:var(--tk-brand)}.gt-lb-tr.mine{background:var(--tk-surface-selected)}.gt-lb-rank{font-size:var(--fs-small);font-weight:700;color:var(--ink-3);font-variant-numeric:tabular-nums}.gt-lb-name{font-size:var(--fs-body);font-weight:600;min-width:0;overflow-wrap:anywhere;word-break:break-word}.gt-lb-val{display:flex;align-items:center;gap:var(--sp-8);font-size:var(--fs-h3-m);font-weight:800;letter-spacing:var(--ls-h3);text-align:right;font-variant-numeric:tabular-nums}.gt-lb-flame{display:inline-flex;align-items:center;color:var(--tk-streak)}.gt-lb-sub{font-weight:var(--fw-small);color:var(--ink-4);letter-spacing:var(--ls-small);margin-left:var(--sp-4)}.gt-lb-empty,.gt-lb-sub{font-size:var(--fs-small)}.gt-lb-empty{color:var(--ink-2);padding:var(--sp-16) var(--sp-4)}.gt-lb-me{position:sticky;bottom:0;z-index:2;margin-top:var(--sp-16);padding:var(--sp-16) 0 var(--sp-16);background:linear-gradient(to top,var(--bg-0) 72%,color-mix(in srgb,var(--bg-0) 0,transparent))}.gt-lb-me .gt-lb-tr{margin-bottom:0;border-color:var(--tk-brand);background:var(--bg-2)}.gt-lb-me .gt-lb-rank{color:var(--tk-text-brand)}.gt-lb-me .gt-lb-name{font-weight:800}.gt-lb-gap{font-size:var(--fs-small);font-weight:600;color:var(--tk-text-brand);margin-top:var(--sp-8);padding-left:var(--sp-4)}.gt-lb-me.compact{padding:var(--sp-8) 0 var(--sp-16)}.gt-lb-me.compact .gt-lb-gap{margin-top:0;font-size:var(--fs-small)}@media (min-width:640px){.gt-lb{padding-top:var(--sp-40)}.gt-lb-head h1{font-size:var(--fs-h1);letter-spacing:var(--ls-h1)}.gt-lb-tr{padding:var(--sp-16)}.gt-lb-name{font-size:var(--fs-body)}.gt-lb-val{font-size:var(--fs-h3)}}@media (prefers-reduced-motion:reduce){.gt-app *,.gt-app :after,.gt-app :before,.gt-auth *,.gt-overlay *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}