:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-0:#0b0b0e;--surface-1:#101014;--surface-2:#16161c;--surface-3:#1d1d25;--line-subtle:#ffffff0f;--line:#ffffff1a;--line-strong:#ffffff29;--text-primary:#f4f4f2;--text-secondary:#a3a3ad;--text-muted:#6e6e7a;--accent:#4cc4e0;--accent-dim:#4cc4e01f;--accent-line:#4cc4e047;--series-1:#3987e5;--series-2:#d95926;--series-1-soft:#3987e529;--series-2-soft:#d9592629;--good:#35b98a;--warning:#c98500;--critical:#e66767;--good-soft:#35b98a1f;--warning-soft:#c985001f;--critical-soft:#e667671f;--grid:#ffffff0e;--axis-text:#6e6e7a;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.75rem;--text-hero:2.75rem;--radius-sm:6px;--radius:10px;--radius-lg:14px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--ease:cubic-bezier(.2, 0, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--surface-0);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;line-height:1.5}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.app{background:var(--surface-0);flex-direction:column;min-height:100vh;display:flex}.header{z-index:50;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-subtle);background:#0b0b0ed1;position:sticky;top:0}.header-bar{max-width:1180px;padding:var(--space-3) var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.brand{align-items:center;gap:var(--space-2);min-width:0;display:flex}.brand-mark{line-height:0;display:flex}.brand-name{font-size:var(--text-base);letter-spacing:-.01em;color:var(--text-primary);font-weight:600}.header-right{align-items:center;gap:var(--space-3);min-width:0;display:flex}.user-email{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:18ch;overflow:hidden}.today-date{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.signout-btn{border:1px solid var(--line);color:var(--text-secondary);height:30px;padding:0 var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);transition:border-color .15s var(--ease), color .15s var(--ease);background:0 0}.signout-btn:hover{border-color:var(--line-strong);color:var(--text-primary)}.nav{max-width:1180px;padding:0 var(--space-4) var(--space-3);gap:var(--space-1);scrollbar-width:none;margin:0 auto;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:1px solid #0000;font-weight:500;display:inline-flex}.nav-btn:hover{color:var(--text-secondary);background:var(--surface-1)}.nav-btn.active{color:var(--accent);background:var(--accent-dim);border-color:var(--accent-line)}.nav-icon{font-size:.9rem;line-height:1}.main{width:100%;max-width:1180px;padding:var(--space-5) var(--space-4) var(--space-6);flex:1;margin:0 auto}.section{margin-bottom:var(--space-6)}.section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-3);font-weight:600}.hero{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-4)}.hero-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-2)}.hero-value{font-size:var(--text-hero);letter-spacing:-.03em;color:var(--text-primary);font-weight:650;line-height:1.05}.hero-meta{align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);display:flex}.delta{border-radius:var(--radius-sm);font-size:var(--text-xs);align-items:center;gap:.3em;padding:.15em .5em;font-weight:600;display:inline-flex}.delta.up{color:var(--good);background:var(--good-soft)}.delta.down{color:var(--critical);background:var(--critical-soft)}.delta.flat{color:var(--text-muted);background:var(--surface-2)}.stat-grid{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius);padding:var(--space-4)}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:var(--space-2);align-items:center;gap:var(--space-2);display:flex}.stat-value{font-size:var(--text-xl);letter-spacing:-.02em;color:var(--text-primary);font-weight:600}.stat-sub{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-muted)}.swatch{border-radius:2px;flex:none;width:8px;height:8px}.swatch.s1{background:var(--series-1)}.swatch.s2{background:var(--series-2)}.chart-card{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);padding:var(--space-4)}.chart-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.chart-title{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.chart-note{font-size:var(--text-xs);color:var(--text-muted)}.chart-controls{border:1px solid var(--line-subtle);border-radius:var(--radius-sm);background:var(--surface-2);gap:2px;padding:2px;display:inline-flex}.chart-control{color:var(--text-muted);font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:.25rem .5rem}.chart-control:hover,.chart-control.active{color:var(--text-primary);background:var(--surface-3)}.tooltip-hint{margin-top:var(--space-2);color:var(--text-muted);font-size:.7rem}.workout-details{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line-subtle)}.workout-details-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.detail-close{color:var(--text-muted);cursor:pointer;background:0 0;border:0;font-size:1.25rem;line-height:1}.detail-close:hover{color:var(--text-primary)}.workout-list{gap:var(--space-2);display:grid}.workout-detail{padding:var(--space-3);border:1px solid var(--line-subtle);border-radius:var(--radius);background:var(--surface-2)}.workout-detail-top{justify-content:space-between;gap:var(--space-3);color:var(--text-primary);display:flex}.workout-detail-date,.workout-detail p,.detail-empty{margin-top:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm)}.workout-detail p{white-space:pre-wrap;margin-bottom:0}.workout-detail .muted{color:var(--text-muted);font-style:italic}.legend{gap:var(--space-4);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);display:inline-flex}.chart-body{width:100%}.tooltip{background:var(--surface-3);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);box-shadow:0 8px 24px #00000080}.tooltip-title{color:var(--text-secondary);margin-bottom:var(--space-1)}.tooltip-row{align-items:center;gap:var(--space-2);color:var(--text-primary);white-space:nowrap;display:flex}.tooltip-row+.tooltip-row{margin-top:2px}.tooltip-value{margin-left:auto;font-weight:600}.split{gap:var(--space-4);flex-direction:column;display:flex}.split-row{gap:var(--space-2) var(--space-3);grid-template-columns:1fr auto;align-items:baseline;display:grid}.split-name{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);display:inline-flex}.split-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.split-track{background:var(--surface-3);border-radius:4px;grid-column:1/-1;height:8px;display:block;overflow:hidden}.split-fill{height:100%;transition:width .4s var(--ease);border-radius:4px;display:block}.split-sub{font-size:var(--text-xs);color:var(--text-muted);grid-column:1/-1}.disclosure{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:var(--warning-soft);border-radius:var(--radius);cursor:pointer;text-align:left;border:1px solid #c9850040;display:flex}.disclosure-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-primary);font-weight:500;display:inline-flex}.disclosure-caret{color:var(--text-muted);transition:transform .2s var(--ease);font-size:.6rem}.disclosure-caret.open{transform:rotate(90deg)}.issue-list{margin-top:var(--space-2);border:1px solid var(--line-subtle);border-radius:var(--radius);overflow:hidden}.issue-item{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-1);font-size:var(--text-sm);grid-template-columns:1fr auto auto;align-items:center;display:grid}.issue-item+.issue-item{border-top:1px solid var(--line-subtle)}.issue-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.issue-amount{font-weight:600}.issue-date{color:var(--text-muted);font-size:var(--text-xs)}.event-group+.event-group{margin-top:var(--space-5)}.event-group-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-2)}.event-list{border:1px solid var(--line-subtle);border-radius:var(--radius);overflow:hidden}.event-item{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-1);grid-template-columns:52px 1fr auto;align-items:center;display:grid}.event-item+.event-item{border-top:1px solid var(--line-subtle)}.event-date{text-align:center}.event-day{font-size:var(--text-lg);color:var(--text-primary);font-weight:600;line-height:1}.event-month{font-size:var(--text-xs);text-transform:uppercase;color:var(--text-muted);letter-spacing:.06em}.event-title{font-size:var(--text-sm);color:var(--text-primary);text-overflow:ellipsis;overflow:hidden}.event-time{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap}.table-wrap{border:1px solid var(--line-subtle);border-radius:var(--radius);max-height:60vh;overflow:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table thead th{z-index:1;background:var(--surface-3);color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:var(--space-3) var(--space-4);white-space:nowrap;font-weight:600;position:sticky;top:0}.table tbody td{padding:var(--space-3) var(--space-4);background:var(--surface-1);border-top:1px solid var(--line-subtle);color:var(--text-secondary)}.table tbody tr:hover td{background:var(--surface-2)}.table .num{text-align:right;white-space:nowrap;font-weight:600}.table .name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:30ch;overflow:hidden}.gain{color:var(--good)}.loss{color:var(--critical)}.pill{font-size:var(--text-xs);white-space:nowrap;border-radius:999px;align-items:center;gap:.35em;padding:.15em .5em;font-weight:600;display:inline-flex}.pill.pending{color:var(--warning);background:var(--warning-soft)}.pill.settled{color:var(--text-muted);background:var(--surface-3)}.co-tag{align-items:center;gap:var(--space-2);white-space:nowrap;display:inline-flex}.empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-sm);background:var(--surface-1);border:1px dashed var(--line);border-radius:var(--radius)}.empty-icon{margin-bottom:var(--space-2);opacity:.5;font-size:1.5rem;display:block}.auth{min-height:100vh;padding:var(--space-4);background:var(--surface-0);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--surface-1);border:1px solid var(--line-subtle);border-radius:var(--radius-lg);width:100%;max-width:360px;padding:var(--space-6);text-align:center}.auth-mark{margin-bottom:var(--space-3);line-height:0;display:block}.auth-title{letter-spacing:-.02em;margin-bottom:var(--space-2);font-size:1.375rem;font-weight:650}.auth-sub{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-5)}.auth-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--surface-3);border:1px solid var(--line);border-radius:var(--radius);color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease);font-weight:500}.auth-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{margin-bottom:var(--space-4);padding:var(--space-3);background:var(--critical-soft);border-radius:var(--radius-sm);color:var(--critical);font-size:var(--text-xs);text-align:left;border:1px solid #e6676740}.auth-note{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--text-muted)}.loading{background:var(--surface-0);justify-content:center;align-items:center;min-height:100vh;display:flex}.banner{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--critical-soft);border-radius:var(--radius);color:var(--text-secondary);font-size:var(--text-sm);border:1px solid #e6676740}.loading-row{align-items:center;gap:var(--space-2);display:flex}.banner.subtle{background:var(--surface-2);border-color:var(--line-subtle);color:var(--text-muted)}.chart-skeleton{min-height:280px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.two-col{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (width>=900px){.two-col{grid-template-columns:3fr 2fr}}@media (width<=520px){:root{--text-hero:2.25rem;--text-xl:1.5rem}.nav-label{display:none}.nav-btn{padding:var(--space-2)}.nav-icon{font-size:1.05rem}.user-email,.today-date{display:none}}
