:root{--bg: #03070c;--surface-lowest: #02050a;--surface-low: #071019;--surface: #050b12;--surface-high: #0d1721;--surface-highest: rgba(13, 23, 33, .88);--surface-bright: #162330;--text: #d9e6f2;--text-muted: #8a9aab;--outline-soft: rgba(138, 154, 171, .14);--outline-strong: rgba(77, 177, 224, .32);--primary: #52b8e8;--primary-container: #246d92;--primary-fixed: #8bcde9;--on-primary-fixed: #041018;--secondary-container: #163d54;--tertiary: #5a79b0;--heatmap-0: #1f2932;--heatmap-1: #0b2f40;--heatmap-2: #104a61;--heatmap-3: #156b8b;--heatmap-4: #1b97bf;--radius-sm: 6px;--radius-md: 10px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,rgba(97,205,255,.15),transparent 24%),radial-gradient(circle at top right,rgba(45,149,199,.34),transparent 30%),linear-gradient(180deg,var(--surface-lowest) 0%,var(--bg) 30%,#08131d 100%);color:var(--text);font-family:Space Grotesk,sans-serif}#root{min-height:100vh}.shell{width:min(1200px,calc(100% - 48px));margin:0 auto;padding:48px 0 80px}.shell--centered{display:grid;place-items:center;min-height:100vh}.hero,.tonal-section,.deep-dive,.provenance-close,.state-panel{background:linear-gradient(180deg,#16212be0,#0b141df5);border-radius:var(--radius-md)}.hero{padding:40px 40px 32px;margin-bottom:48px}.hero--dashboard{display:grid;gap:28px;align-items:start}.hero-action-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:0;border-radius:8px;background:#ffffff0f;color:#e6f3ffdb;cursor:pointer;transition:transform .18s ease,background-color .18s ease,color .18s ease}.hero-action-button:hover{background:#ffffff1a;color:#ecf6fff5;transform:translateY(-1px)}.hero-action-button:disabled{cursor:wait;opacity:.9}.hero-action-button:focus-visible{outline:2px solid rgba(97,205,255,.52);outline-offset:2px}.hero-action-button svg{width:18px;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;fill:none}.hero-action-button:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 10px);right:0;padding:7px 10px;border-radius:10px;background:#050c13f5;color:#ecf6ffe0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(-2px);transition:opacity .18s ease,transform .18s ease}.hero-action-button:hover:after,.hero-action-button:focus-visible:after{opacity:1;transform:translateY(0)}.hero-action-button.is-busy svg{animation:hero-action-spin .9s linear infinite}@keyframes hero-action-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:#03070cb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:9998}.modal-panel{width:min(520px,100%);padding:28px;border-radius:18px;background:linear-gradient(180deg,#131e28fa,#080e15fa);box-shadow:0 24px 60px #0000006b}.modal-panel h2{margin:0 0 22px;font-size:24px;line-height:1.2}.import-form{display:grid;gap:18px}.toast{position:fixed;top:22px;right:22px;z-index:10000;display:flex;align-items:center;gap:14px;min-width:320px;max-width:min(420px,calc(100vw - 32px));padding:14px 16px;border-radius:14px;box-shadow:0 18px 34px #00000047;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.toast--success{background:#153a2cf0;color:#e1f9ecf5}.toast--error{background:#481920f0;color:#ffe5e9f5}.toast--info{background:#11293af0;color:#e5f3fff5}.toast span{flex:1;font-size:13px;line-height:1.5}.toast__close{border:0;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer;opacity:.72}.toast__close:hover{opacity:1}.import-dropzone{position:relative;display:grid;gap:10px;padding:22px;border:1px dashed rgba(97,205,255,.26);border-radius:16px;background:linear-gradient(180deg,#121d27d6,#0b1219eb);cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.import-dropzone:hover{border-color:#61cdff70;background:linear-gradient(180deg,#14222de6,#0c141cf5);transform:translateY(-1px)}.import-dropzone--selected{border-color:#61cdff94}.import-dropzone__input{position:absolute;inset:0;opacity:0;cursor:pointer}.import-dropzone__eyebrow{color:#a7b8c8c7;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.import-dropzone strong{font-size:18px;line-height:1.35}.import-dropzone em{color:#a7b8c8bd;font-style:normal;line-height:1.55}.import-form__note{color:#a7b8c8bd;font-size:13px;line-height:1.55}.import-form__actions{display:flex;justify-content:flex-end;gap:12px}.page-title-banner{margin-bottom:36px}.page-title-banner--with-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}.page-title-banner p{margin:0 0 14px;color:#e6f3ffc2;font-size:clamp(14px,1.3vw,18px);font-weight:500;letter-spacing:.08em}.page-title-banner h1{margin:0;color:#f2f6faeb;font-size:clamp(30px,4vw,52px);font-weight:650;line-height:.96;letter-spacing:-.04em}.page-title-banner h1 span{color:var(--primary)}.page-title-meta{display:grid;gap:8px;justify-items:end;text-align:right;align-self:end}.page-title-meta span{color:#a7b8c8b8;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.page-title-meta strong{color:#e6f3ffcc;font-size:clamp(13px,1.25vw,18px);font-weight:600;letter-spacing:-.02em}.eyebrow{margin:0 0 12px;color:var(--primary-fixed);font-size:13px;letter-spacing:.14em;text-transform:uppercase}.section-heading h2,.state-panel h1{font-family:Space Grotesk,sans-serif;margin:0}.hero__summary,.partial-note,.activity-item__meta,.state-panel p{color:var(--text-muted);line-height:1.6}.hero__status-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.status-pill{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;font-size:13px;letter-spacing:.05em;text-transform:uppercase}.status-pill--aqua{background:#61cdff24;color:var(--primary-fixed)}.status-pill--green{background:#76d8aa24;color:var(--tertiary)}.status-pill--neutral{background:#a7b8c81a;color:var(--text-muted)}.metric-block span,.provenance-close__grid span,.deep-dive__metrics span{display:block;margin-bottom:8px;color:var(--text-muted);font-size:13px;letter-spacing:.05em;text-transform:uppercase}.metric-block strong,.provenance-close__grid strong,.deep-dive__metrics strong{font-size:24px;font-family:Space Grotesk,sans-serif}.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}.dashboard-metric span{display:block;margin-bottom:10px;color:#a7b8c8b8;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.dashboard-metric strong{display:flex;align-items:flex-end;gap:4px;font-size:clamp(32px,4vw,52px);line-height:.9;letter-spacing:-.03em}.dashboard-metric em{color:var(--primary);font-size:.34em;font-style:normal;line-height:1.2;margin-bottom:.12em}.volume-card{padding:30px 32px 26px;background:linear-gradient(180deg,#070f17eb,#050c13fa);border-radius:var(--radius-md)}.volume-card__header{display:flex;justify-content:space-between;gap:24px;align-items:start;margin-bottom:26px}.volume-card__header h2{margin:0;font-size:24px}.volume-tabs{display:inline-flex;gap:10px;align-items:center}.volume-tabs button{border:0;background:transparent;color:#e6f3ffc2;padding:10px 14px;border-radius:999px;font-family:Space Grotesk,sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.volume-tabs button.is-active{background:linear-gradient(135deg,#19c7ff,#2d95c7);color:var(--on-primary-fixed)}.volume-chart{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:stretch;min-height:280px;padding-top:18px;border-top:1px solid rgba(167,184,200,.05)}.stroke-card{padding:0;background:transparent;border-radius:0}.stroke-card--consistency{margin-top:8px}.consistency-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:8px}.consistency-stat{padding:16px 16px 14px;background:#0b141dc2;border-radius:var(--radius-sm)}.consistency-stat span{display:block;margin-bottom:8px;color:#a7b8c8b8;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.consistency-stat strong{display:flex;align-items:flex-end;gap:4px;font-size:clamp(18px,2vw,26px);line-height:1;letter-spacing:-.02em}.consistency-stat em{color:#61cdffe0;font-size:.45em;font-style:normal;line-height:1.2;margin-bottom:.14em}.stroke-bar{display:flex;width:100%;height:18px;overflow:hidden;border-radius:999px;background:#2b323b47}.stroke-legend{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;margin-bottom:8px}.stroke-legend-item{display:inline-flex;align-items:center;gap:12px;width:fit-content}.stroke-legend-item span{font-size:15px}.stroke-segment{height:100%}.stroke-tone--freestyle{background:#19c7ff}.stroke-tone--backstroke{background:#bfd1e3}.stroke-tone--breaststroke{background:var(--tertiary)}.stroke-tone--butterfly{background:#a7f3d8}.stroke-tone--mixed{background:#00f5d4}.stroke-dot{width:12px;height:12px;border-radius:999px;display:inline-block}.stroke-legend .stroke-dot{width:12px;height:12px}.volume-axis{display:grid;grid-template-rows:repeat(4,1fr);align-items:space-between;justify-items:start;height:220px;padding-right:8px}.volume-axis span{color:#a7b8c86b;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.volume-bars{display:grid;grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:16px;align-items:end}.volume-bar-group{display:grid;justify-items:center;align-content:end;gap:12px;height:100%}.volume-bar-track{display:flex;align-items:end;justify-content:center;width:100%;height:220px}.volume-bar{width:10px;height:40%;border-radius:999px;background:linear-gradient(180deg,#082432f2,#0a3549c7);box-shadow:inset 0 1px #61cdff0a}.volume-bar--highlight{width:12px;background:linear-gradient(180deg,#19c7ff2e,#1185add1);box-shadow:0 0 18px #19c7ff1f,0 0 36px #19c7ff0f}.volume-bar-group span{color:#a7b8c86b;font-size:11px;letter-spacing:.08em;text-transform:uppercase;min-height:14px}.tonal-section,.deep-dive,.provenance-close{padding:32px;margin-bottom:32px}.section-heading{margin-bottom:24px}.section-heading h2{font-size:clamp(28px,4vw,40px);letter-spacing:-.02em}.section-copy{margin:12px 0 0;color:var(--text-muted);font-size:15px;line-height:1.6}.section-heading--row{display:flex;justify-content:space-between;gap:16px;align-items:end}.archive-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.archive-toolbar__controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.archive-actions{display:flex;align-items:center;gap:10px}.archive-toolbar__meta{display:flex;align-items:center;gap:16px}.archive-filter{display:grid;gap:6px}.archive-filter__label{color:#a7b8c8b8;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.archive-control{border:0;border-radius:8px;background:#ffffff0f;color:#e6f3ffdb;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:500;cursor:pointer}.archive-control--select{min-width:132px;padding:12px 14px;appearance:none}.archive-control--ghost{padding:12px 18px}.archive-control--primary{padding:12px 18px;background:linear-gradient(135deg,var(--primary),var(--primary-container));color:var(--on-primary-fixed)}.archive-total{color:#a7b8c8b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.archive-page-status{color:#a7b8c8b8;font-size:13px;font-weight:600;letter-spacing:.04em}.heatmap-panel--yearly{display:grid;gap:18px}.consistency-layout{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:start}.consistency-main{display:grid;gap:14px}.consistency-summary{margin:0;color:#e6f3ffc7;font-size:15px;font-weight:600;line-height:1.4}.heatmap-header{display:grid;grid-template-columns:1fr auto;align-items:center}.heatmap-header__spacer{min-height:1px}.heatmap-board{display:grid;gap:18px}.heatmap-months{display:grid;gap:8px;align-items:end}.heatmap-months__spacer{display:block}.heatmap-months span{color:#a7b8c838;font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;justify-self:start;white-space:nowrap}.heatmap-grid-shell{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:start}.heatmap-row-labels{display:grid;grid-template-rows:repeat(7,14px);gap:3px}.heatmap-row-labels span{color:#a7b8c838;font-size:12px;font-weight:500;line-height:14px;letter-spacing:.04em;text-transform:uppercase}.heatmap-row-labels span:nth-child(1){grid-row:1}.heatmap-row-labels span:nth-child(2){grid-row:3}.heatmap-row-labels span:nth-child(3){grid-row:5}.heatmap-calendar--year{display:grid;grid-auto-flow:column;grid-auto-columns:15px;gap:3px;overflow-x:hidden;overflow-y:visible;padding-bottom:0;position:relative;isolation:isolate}.heatmap-week{display:grid;grid-template-rows:repeat(7,14px);gap:3px;overflow:visible}.heatmap-dot{position:relative;width:14px;height:14px;border-radius:3px;background:var(--heatmap-0);cursor:default;box-shadow:none;z-index:0}.heatmap-dot[data-tooltip]:hover,.heatmap-dot[data-tooltip]:focus-visible{z-index:1000}.heatmap-dot--0{background:var(--heatmap-0)}.heatmap-dot--outside{background:transparent;opacity:0;pointer-events:none}.heatmap-dot--1{background:var(--heatmap-1)}.heatmap-dot--2{background:var(--heatmap-2)}.heatmap-dot--3{background:var(--heatmap-3)}.heatmap-dot--4{background:var(--heatmap-4)}.heatmap-tooltip-portal{position:fixed;width:max-content;max-width:180px;padding:10px 12px;border-radius:8px;background:#16212beb;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);color:var(--text);white-space:pre-line;line-height:1.45;font-size:12px;text-align:left;box-shadow:0 18px 34px #00000047;pointer-events:none;z-index:9999}.heatmap-legend__scale{display:flex;align-items:center;gap:8px}.heatmap-header .heatmap-legend{display:inline-flex;align-items:center;gap:16px;color:#e6f3ffbd;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.heatmap-header .heatmap-legend .heatmap-legend__scale{gap:8px}.heatmap-years{display:grid;gap:10px;align-content:start}.heatmap-year{width:100%;padding:12px 16px;border:0;border-radius:9px;background:transparent;color:#e6f3ffb8;font-family:Space Grotesk,sans-serif;font-size:15px;text-align:left;cursor:pointer;transition:background-color .18s ease,color .18s ease}.heatmap-year:hover{background:#1d2b376b;color:var(--text)}.heatmap-year--active{background:linear-gradient(135deg,var(--primary),var(--primary-container));color:var(--on-primary-fixed)}.deep-dive__grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:24px}.deep-dive__lead{margin:10px 0 18px;font-size:24px;line-height:1.35;font-family:Space Grotesk,sans-serif}.deep-dive__metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.deep-dive__metrics>div{padding:16px;background:linear-gradient(180deg,#1d2b377a,#16212b6b);border-radius:var(--radius-sm)}.activity-log{overflow:hidden;border-radius:16px;background:#0e161e8f}.activity-log__head{display:grid;grid-template-columns:1.1fr .9fr .85fr .9fr .8fr .8fr .9fr;gap:20px;align-items:center;padding:20px 24px;background:#ffffff0a}.activity-log__head span{color:#e6f3ffad;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.activity-list{display:grid;gap:0}.activity-item{display:grid;grid-template-columns:1.1fr .9fr .85fr .9fr .8fr .8fr .9fr;gap:20px;align-items:center;padding:22px 24px;border-top:1px solid rgba(29,43,55,.56)}.activity-item__date span{color:#a7b8c89e;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.activity-item__date{display:flex;align-items:center}.activity-item__distance,.activity-item__duration,.activity-item__stroke-frequency,.activity-item__swolf,.activity-item__source{color:#e6f3ffd6;font-size:15px;font-weight:500}.activity-item__distance{color:var(--primary);font-weight:700}.activity-item__stats{display:grid;gap:4px}.activity-item__stats strong{font-family:Space Grotesk,sans-serif;font-size:16px;line-height:1}.activity-item__stats span{color:#61cdffeb;font-size:11px;font-weight:600}.activity-item__metric--muted{color:#a7b8c89e;font-size:13px}.archive-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.archive-page-button,.archive-page-number{border:0;border-radius:999px;background:#1d2b3785;color:#e6f3ffd6;cursor:pointer;transition:background-color .18s ease,color .18s ease,opacity .18s ease}.archive-page-button{padding:12px 18px;font-size:14px;font-weight:600}.archive-page-number{width:40px;height:40px;font-size:14px;font-weight:700}.archive-page-button:hover:not(:disabled),.archive-page-number:hover{background:#39bcff2e;color:var(--text)}.archive-page-button:disabled{opacity:.38;cursor:not-allowed}.archive-page-number--active{background:linear-gradient(135deg,var(--primary),var(--primary-container));color:var(--on-primary-fixed)}.archive-page-numbers{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.provenance-close__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.provenance-close__grid>div{padding:16px;background:#0b141db8;border-radius:var(--radius-sm)}.state-panel{max-width:620px;padding:40px}@media(max-width:960px){.shell{width:min(100% - 32px,760px);padding-top:24px}.page-title-banner--with-meta{flex-direction:column;align-items:start}.page-title-meta{justify-items:start;text-align:left;padding-bottom:0}.deep-dive__grid{grid-template-columns:1fr}.hero{padding:36px 24px}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.dashboard-metric strong{font-size:clamp(28px,8vw,42px)}.volume-card{padding:24px 20px 20px}.consistency-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.volume-card__header{flex-direction:column;align-items:start}.volume-tabs{flex-wrap:wrap}.volume-chart{grid-template-columns:44px minmax(0,1fr);min-height:220px}.volume-axis{height:170px}.volume-bars{grid-template-columns:repeat(auto-fit,minmax(28px,1fr));gap:10px}.volume-bar-track{height:170px}.volume-bar{width:8px}.volume-bar--highlight{width:10px}.heatmap-calendar{grid-template-columns:repeat(7,16px)}.deep-dive__metrics{grid-template-columns:1fr}.activity-log__head{display:none}.activity-item{grid-template-columns:1fr;gap:12px}.activity-item__stats{justify-items:start;text-align:left}.archive-toolbar{align-items:start;flex-direction:column}.archive-toolbar__meta{align-items:start;flex-direction:column;gap:8px}.archive-filter,.archive-control--select{width:100%}.archive-pagination{align-items:stretch;flex-direction:column}.archive-page-button{width:100%}.heatmap-months{grid-template-columns:repeat(auto-fit,minmax(32px,1fr))!important}.heatmap-grid-shell{grid-template-columns:1fr}.heatmap-header{grid-template-columns:1fr;gap:12px}.consistency-layout{grid-template-columns:1fr}.heatmap-calendar--year{grid-auto-columns:20px;gap:6px;overflow-x:auto;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:rgba(167,184,200,.2) transparent}.heatmap-week{grid-template-rows:repeat(7,18px);gap:6px}.heatmap-dot{width:18px;height:18px}.heatmap-row-labels,.heatmap-months__spacer{display:none}.heatmap-years{grid-auto-flow:column;grid-auto-columns:minmax(84px,1fr);overflow-x:auto;overflow-y:hidden;height:auto;max-height:none}}
