.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh;background:var(--bg)}.app-side{position:sticky;top:0;height:100vh;border-right:1px solid var(--border-faint);background:var(--bg-elev);display:flex;flex-direction:column;padding:22px 14px 18px;gap:4px}.app-side-brand{display:flex;align-items:center;gap:10px;padding:0 10px 22px;border-bottom:1px solid var(--border-faint);margin-bottom:14px}.app-side-brand .mark{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--accent),oklch(from var(--accent) calc(l + .1) c calc(h - 30)));display:grid;place-items:center;color:var(--bg);font-size:14px;box-shadow:0 0 18px -4px var(--accent-glow)}.app-side-brand .mark,.app-side-brand .name{font-family:var(--font-mono);font-weight:700}.app-side-brand .name{font-size:13px;letter-spacing:.04em}.app-side-brand .name span{color:var(--accent)}.app-side-section{font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-subtle);padding:14px 12px 6px}.app-side a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);color:var(--fg-muted);font-size:13px;font-weight:500;letter-spacing:-.005em;text-decoration:none;transition:all .12s cubic-bezier(.16,1,.3,1)}.app-side a:hover{background:var(--bg-elev-2);color:var(--fg)}.app-side a.is-active{background:oklch(from var(--accent) l c h/.1);color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.app-side a .icn{width:16px;display:grid;place-items:center;opacity:.7}.app-side a.is-active .icn{opacity:1}.app-side a .badge{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;background:var(--bg-elev-2);color:var(--fg-muted);padding:2px 6px;border-radius:4px;letter-spacing:.05em}.app-side-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:14px;border-top:1px solid var(--border-faint)}.app-main{min-width:0}.pg-shell{padding:28px 36px 56px;max-width:1480px;margin:0 auto}.pg-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;padding-bottom:22px;margin-bottom:28px;border-bottom:1px solid var(--border-faint)}.pg-head h1{margin:0;font-family:var(--font-display);font-size:32px;font-weight:200;letter-spacing:-.02em}.pg-head h1 b{font-weight:600}.pg-head .pg-crumb{display:flex;gap:6px;align-items:center;font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--fg-subtle);margin-bottom:8px}.pg-head .pg-crumb .now{color:var(--accent)}.pg-head .pg-crumb .sep{opacity:.4}.pg-head-actions{display:flex;align-items:center;gap:8px}.pg-head-actions .iconbtn{width:32px;height:32px;padding:0;display:grid;place-items:center;background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-md);color:var(--fg-muted);cursor:pointer;transition:all .14s cubic-bezier(.16,1,.3,1)}.pg-head-actions .iconbtn:hover{color:var(--fg);border-color:var(--border-strong)}.pg-head-actions .primary{background:var(--accent);color:var(--bg);border:0;border-radius:var(--radius-md);font-weight:600;letter-spacing:-.005em;box-shadow:0 0 18px -6px var(--accent-glow)}.pg-head-actions .ghost,.pg-head-actions .primary{height:32px;padding:0 14px;font-family:var(--font-sans);font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.pg-head-actions .ghost{background:transparent;color:var(--fg-muted);border:1px solid var(--border-faint);border-radius:var(--radius-md);font-weight:500;white-space:nowrap}.pg-head-actions .ghost:hover{color:var(--fg);border-color:var(--border-strong)}.card{background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-lg);padding:22px 24px}.card-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;gap:12px}.card-h h3{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}.card-h h3 .num{color:var(--fg-subtle);margin-right:6px}.card-h .meta{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-muted);font-variant-numeric:tabular-nums}.an-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px}.an-grid>.full{grid-column:1/-1}.an-pmc{height:320px;position:relative}.an-pmc svg{width:100%;height:100%;overflow:visible}.an-pmc-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;font-family:var(--font-mono);font-size:10.5px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.1em}.an-pmc-legend span{display:inline-flex;align-items:center;gap:6px}.an-pmc-legend .sw{width:18px;height:2px;border-radius:1px}.an-pmc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-faint);border-radius:var(--radius-md);margin-bottom:16px;overflow:hidden}.an-stat{background:var(--bg-elev);padding:14px 16px;display:flex;flex-direction:column;gap:4px}.an-stat .lbl{font-family:var(--font-mono);font-size:9.5px;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.14em}.an-stat .val{font-family:var(--font-display);font-size:28px;font-weight:300;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.an-stat .dlt{font-family:var(--font-mono);font-size:10.5px;font-variant-numeric:tabular-nums}.an-stat .dlt.up{color:oklch(75% .14 145)}.an-stat .dlt.dn{color:oklch(65% .2 25)}.an-power-curve{height:240px;position:relative}.an-power-curve svg{width:100%;height:100%;overflow:visible}.an-load-bars{display:flex;align-items:flex-end;gap:8px;height:160px;padding:0 4px;border-bottom:1px solid var(--border-faint)}.an-load-bar{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;height:100%;justify-content:flex-end;position:relative}.an-load-bar .seg{width:100%;border-radius:2px 2px 0 0;transition:opacity .16s ease}.an-load-bar:hover .seg{opacity:.85}.an-load-bar .lbl{position:absolute;bottom:-22px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:9.5px;color:var(--fg-subtle);white-space:nowrap}.an-load-bar.is-current .lbl{color:var(--accent)}.an-load-x{display:flex;gap:8px;margin-top:28px}.an-sport-split{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.an-sport-cell{padding:14px 16px;border-radius:var(--radius-md);background:var(--bg);border:1px solid var(--border-faint);display:flex;flex-direction:column;gap:6px}.an-sport-cell .top{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--fg-muted)}.an-sport-cell .v{font-family:var(--font-display);font-size:22px;font-weight:300;font-variant-numeric:tabular-nums}.an-sport-cell .pct{height:3px;border-radius:2px;background:var(--bg-elev-2);position:relative;overflow:hidden}.an-sport-cell .pct i{position:absolute;left:0;top:0;bottom:0;background:var(--tone,var(--accent));border-radius:2px}.chat-date-divider{display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 0 8px;text-align:center}.chat-date-divider:after,.chat-date-divider:before{content:"";flex:1;height:1px;background:var(--border-faint);max-width:80px}.chat-date-divider span{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-subtle);letter-spacing:.14em;text-transform:uppercase}.chat-shell{display:grid;grid-template-rows:minmax(0,1fr) auto;height:calc(100dvh - 60px - env(safe-area-inset-top) - 72px - env(safe-area-inset-bottom));max-width:920px;margin:0 auto;padding:0 16px;overflow:hidden}@media (min-width:768px){.chat-shell{height:calc(100dvh - 60px - env(safe-area-inset-top));padding:0 32px}}.chat-stream{min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 0 12px;display:flex;flex-direction:column;gap:22px}@media (min-width:768px){.chat-stream{padding:32px 0 24px;gap:28px}}.chat-msg{display:flex;gap:14px;max-width:100%}.chat-msg.is-user{justify-content:flex-end}.chat-msg.is-user .chat-bubble{background:var(--bg-elev-2);border:1px solid var(--border-faint);max-width:85%}@media (min-width:768px){.chat-msg.is-user .chat-bubble{max-width:70%}}.chat-msg.is-coach{align-items:flex-start}.chat-avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,var(--accent),oklch(from var(--accent) calc(l - .1) c calc(h + 30)));display:grid;place-items:center;color:var(--bg);font-family:var(--font-mono);font-weight:700;font-size:12px;flex-shrink:0;box-shadow:0 0 14px -4px var(--accent-glow)}.chat-bubble{padding:12px 16px;border-radius:14px;font-size:14.5px;line-height:1.55;color:var(--fg);text-wrap:pretty}@media (min-width:768px){.chat-bubble{padding:14px 18px;font-size:14px}}.chat-msg.is-coach .chat-bubble{background:transparent;padding-left:0;padding-right:0;flex:1;min-width:0}.chat-bubble p{margin:0 0 10px}.chat-bubble p:last-child{margin-bottom:0}.chat-bubble strong{color:var(--fg);font-weight:600}.chat-bubble .num{font-variant-numeric:tabular-nums;color:var(--accent);font-family:var(--font-mono)}.chat-msg.is-legacy{justify-content:center;padding:4px 0}.chat-legacy-error{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--fg-subtle);opacity:.55;letter-spacing:.04em}.chat-legacy-error em{font-style:italic}.chat-retry-btn{appearance:none;margin-top:10px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;background:oklch(from var(--accent) l c h/.1);border:1px solid oklch(from var(--accent) l c h/.35);border-radius:999px;color:var(--accent);font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform 80ms ease}.chat-retry-btn:hover{background:oklch(from var(--accent) l c h/.18);border-color:oklch(from var(--accent) l c h/.55)}.chat-retry-btn:active{transform:translateY(1px)}.chat-retry-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-subtle);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media (min-width:768px){.chat-meta{font-size:10px;margin-bottom:8px}}.chat-meta .tool{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:var(--bg-elev-2);border-radius:4px}.chat-w-card{margin-top:12px;display:grid;grid-template-columns:4px 1fr;background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-md);overflow:hidden}.chat-w-card .accent{background:var(--tone,var(--accent))}.chat-w-card .body{padding:14px 18px}.chat-w-card .row1{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.chat-w-card .title{font-size:14px;font-weight:600;letter-spacing:-.005em}.chat-w-card .when{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em}.chat-w-card .targets,.chat-w-card .when{font-family:var(--font-mono);color:var(--fg-muted)}.chat-w-card .targets{display:flex;gap:22px;font-size:11px;margin-bottom:12px}.chat-w-card .targets b{color:var(--fg);font-weight:600}.chat-w-card .actions{display:flex;gap:8px}.chat-w-card .actions button{appearance:none;background:transparent;border:1px solid var(--border-faint);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--fg-muted);padding:5px 10px;cursor:pointer;transition:all .12s ease}.chat-w-card .actions button.primary{background:oklch(from var(--accent) l c h/.12);border-color:oklch(from var(--accent) l c h/.4);color:var(--accent)}.chat-w-card .actions button:hover{color:var(--fg);border-color:var(--border-strong)}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.chat-chip{appearance:none;background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:999px;padding:8px 14px;font-family:var(--font-sans);font-size:13px;color:var(--fg-muted);cursor:pointer;transition:all .12s ease;min-height:36px;white-space:nowrap}@media (hover:hover){.chat-chip:hover{color:var(--fg);border-color:var(--accent)}}.chat-chip:active{transform:scale(.97)}@media (min-width:768px){.chat-chip{padding:6px 12px;font-size:12px;min-height:auto}}.chat-composer{border-top:1px solid var(--border-faint);padding:10px 0 max(10px,env(safe-area-inset-bottom));background:var(--bg)}@media (min-width:768px){.chat-composer{padding:18px 0 max(22px,env(safe-area-inset-bottom))}}.chat-composer-box{display:flex;align-items:center;gap:8px;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:6px 8px 6px 14px;transition:border-color .14s ease}.chat-composer-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px oklch(from var(--accent) l c h/.12)}.chat-composer-box input{appearance:none;border:0;background:transparent;flex:1;min-width:0;font-family:var(--font-sans);font-size:14px;color:var(--fg);padding:8px 0;outline:none}.chat-composer-box input::placeholder{color:var(--fg-subtle)}.chat-composer-textarea{appearance:none;border:0;background:transparent;flex:1;min-width:0;font-family:var(--font-sans);font-size:16px;color:var(--fg);padding:8px 0;outline:none;resize:none;max-height:200px;line-height:1.45}@media (min-width:768px){.chat-composer-textarea{font-size:14px}}.chat-composer-textarea::placeholder{color:var(--fg-subtle)}.chat-composer-box .send{width:36px;height:36px;background:var(--accent);color:var(--bg);border:0;border-radius:var(--radius-sm);display:grid;place-items:center;cursor:pointer;flex-shrink:0}@media (min-width:768px){.chat-composer-box .send{width:32px;height:32px}}.chat-attach-btn{width:36px;height:36px;display:grid;place-items:center;background:transparent;border:0;color:var(--fg-subtle);cursor:pointer;flex-shrink:0;border-radius:var(--radius-sm);transition:color .14s ease,background .14s ease}@media (hover:hover){.chat-attach-btn:hover{color:var(--fg);background:var(--bg-elev-2)}}.chat-attach-btn:active{transform:scale(.94)}.chat-attach-btn[data-disabled=true]{opacity:.45;cursor:not-allowed}@media (min-width:768px){.chat-attach-btn{width:32px;height:32px}}.chat-composer-tools{display:none;gap:14px;margin-top:10px;font-family:var(--font-mono);font-size:10px;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.12em}@media (min-width:768px){.chat-composer-tools{display:flex}}.lib-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;align-items:center}.lib-filters .group{display:flex;gap:1px;background:var(--border-faint);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-faint)}.lib-filters .group button{appearance:none;background:var(--bg-elev);border:0;padding:6px 12px;font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--fg-muted);cursor:pointer}.lib-filters .group button.on{background:var(--accent);color:var(--bg)}.lib-search{flex:1;max-width:320px;display:flex;align-items:center;gap:8px;background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-md);padding:6px 12px}.lib-search input{appearance:none;border:0;background:transparent;flex:1;font-family:var(--font-sans);font-size:13px;color:var(--fg);outline:none}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.lib-card{background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-md);padding:16px 18px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:all .16s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.lib-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--tone,var(--accent))}.lib-card:hover{border-color:var(--border-strong);transform:translateY(-1px)}.lib-card .top{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:9.5px;color:var(--fg-subtle);text-transform:uppercase;letter-spacing:.14em}.lib-card .top .tone{color:var(--tone)}.lib-card h4{margin:0;font-size:14.5px;font-weight:600;letter-spacing:-.01em;text-wrap:balance}.lib-card .desc{font-size:12px;color:var(--fg-muted);line-height:1.5;text-wrap:pretty}.lib-card .targets{display:flex;gap:14px;font-family:var(--font-mono);font-size:11px;color:var(--fg-muted);margin-top:auto;padding-top:10px;border-top:1px dashed var(--border-faint)}.lib-card .targets b{color:var(--fg);font-weight:600}.lib-segments{display:flex;gap:1px;height:5px;border-radius:2px;overflow:hidden}.lib-segments span{flex:var(--w,1);background:var(--c,var(--bg-elev-2))}.plan-overview{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;margin-bottom:24px}.plan-goal{background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-lg);padding:24px 28px;position:relative;overflow:hidden}.plan-goal:before{content:"";position:absolute;right:-40px;top:-40px;width:180px;height:180px;background:radial-gradient(circle,var(--accent-glow),transparent 70%);opacity:.4}.plan-goal .rel{position:relative}.plan-goal h2{margin:0 0 4px;font-family:var(--font-display);font-size:28px;font-weight:300;letter-spacing:-.02em}.plan-goal h2 b{font-weight:600}.plan-goal .where{font-family:var(--font-mono);font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:18px}.plan-goal .countdown{display:flex;gap:18px;align-items:baseline}.plan-goal .countdown .big{font-family:var(--font-display);font-size:56px;font-weight:200;line-height:1;letter-spacing:-.04em;color:var(--accent)}.plan-goal .countdown .lbl{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.14em}.plan-readiness{background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-lg);padding:20px 22px;display:flex;flex-direction:column;gap:14px}.plan-readiness h3{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--fg)}.plan-readiness .item{display:grid;grid-template-columns:1fr auto 80px;align-items:center;gap:12px;font-size:12.5px;color:var(--fg-muted)}.plan-readiness .item .v{font-family:var(--font-mono);font-size:11px;color:var(--fg);font-variant-numeric:tabular-nums}.plan-readiness .item .bar{height:4px;border-radius:2px;background:var(--bg-elev-2);position:relative;overflow:hidden}.plan-readiness .item .bar i{position:absolute;left:0;top:0;bottom:0;background:var(--tone,var(--accent))}.plan-timeline{background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-lg);padding:24px 28px;margin-bottom:24px}.plan-timeline-bar{position:relative;height:96px;margin:24px 0 12px;display:flex;border-radius:var(--radius-md);overflow:hidden}.plan-phase{position:relative;display:flex;flex-direction:column;padding:12px 14px;background:oklch(from var(--tone) l c h/.14);border-right:1px solid var(--bg);cursor:pointer;transition:background .16s ease}.plan-phase:hover{background:oklch(from var(--tone) l c h/.22)}.plan-phase.is-current{background:oklch(from var(--tone) l c h/.3);box-shadow:inset 0 -3px 0 var(--tone)}.plan-phase .name{font-family:var(--font-mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--tone);margin-bottom:4px}.plan-phase .weeks{font-family:var(--font-mono);font-size:9.5px;color:var(--fg-muted)}.plan-phase .ramp{margin-top:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--fg);font-variant-numeric:tabular-nums}.plan-now-marker{position:absolute;top:-8px;bottom:-8px;width:2px;background:var(--accent);box-shadow:0 0 12px var(--accent-glow);pointer-events:none;z-index:2}.plan-now-marker:before{content:"ORA";position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:8.5px;font-weight:700;color:var(--accent);letter-spacing:.18em;background:var(--bg);padding:1px 4px;border-radius:2px}.plan-races{display:flex;flex-direction:column;gap:10px}.plan-race{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:16px;padding:14px 16px;background:var(--bg);border:1px solid var(--border-faint);border-radius:var(--radius-md)}.plan-race.is-A{border-left:3px solid var(--accent)}.plan-race.is-B{border-left:3px solid oklch(78% .16 75)}.plan-race.is-C{border-left:3px solid var(--fg-subtle)}.plan-race .when .d{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1}.plan-race .when .m{font-family:var(--font-mono);font-size:9.5px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.14em}.plan-race .info .t{font-size:14px;font-weight:600}.plan-race .info .meta{font-family:var(--font-mono);font-size:11px;color:var(--fg-muted);margin-top:2px}.plan-race .prio{font-family:var(--font-mono);font-size:10.5px;padding:4px 10px;border-radius:999px;letter-spacing:.14em;text-transform:uppercase}.plan-race.is-A .prio{background:oklch(from var(--accent) l c h/.15);color:var(--accent)}.plan-race.is-B .prio{background:oklch(78% .16 75/.15);color:oklch(78% .16 75)}.plan-race.is-C .prio{background:var(--bg-elev-2);color:var(--fg-muted)}.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.pf-stat-card .v{font-family:var(--font-display);font-size:44px;font-weight:200;letter-spacing:-.025em;line-height:1;font-variant-numeric:tabular-nums}.pf-stat-card .v small{font-size:18px;color:var(--fg-muted);margin-left:6px;font-weight:300}.pf-stat-card .meta{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-muted);margin-top:8px;display:flex;gap:12px}.pf-zones{display:flex;flex-direction:column;gap:8px}.pf-zone{display:grid;grid-template-columns:60px 1fr 110px 80px;align-items:center;gap:14px;padding:10px 14px;background:var(--bg);border:1px solid var(--border-faint);border-radius:var(--radius-md)}.pf-zone .name{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--tone);letter-spacing:.08em}.pf-zone .name small{display:block;color:var(--fg-subtle);font-weight:500;margin-top:2px}.pf-zone .bar{height:8px;border-radius:4px;background:var(--bg-elev-2);position:relative;overflow:hidden}.pf-zone .bar i{position:absolute;top:0;bottom:0;background:var(--tone);opacity:.65}.pf-zone .pwr{font-size:12px;color:var(--fg);font-variant-numeric:tabular-nums}.pf-zone .hr,.pf-zone .pwr{font-family:var(--font-mono);text-align:right}.pf-zone .hr{font-size:11px;color:var(--fg-muted);font-variant-numeric:tabular-nums}.pf-tests{display:flex;flex-direction:column}.pf-test{display:grid;grid-template-columns:90px 1fr 90px 90px 60px;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-faint)}.pf-test:last-child{border-bottom:0}.pf-test .when{font-family:var(--font-mono);font-size:11px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.1em}.pf-test .what{font-size:13px;font-weight:500}.pf-test .what small{display:block;font-weight:400;color:var(--fg-muted);font-size:11px;margin-top:2px}.pf-test .v{font-size:13px;font-variant-numeric:tabular-nums}.pf-test .dlt,.pf-test .v{font-family:var(--font-mono);text-align:right}.pf-test .dlt{font-size:10.5px;font-variant-numeric:tabular-nums}.pf-test .dlt.up{color:oklch(75% .14 145)}.pf-test .dlt.dn{color:oklch(65% .2 25)}.pf-test .badge{text-align:center;font-family:var(--font-mono);font-size:9.5px;color:var(--fg-subtle);letter-spacing:.14em;text-transform:uppercase}.set-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px}.set-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:24px;align-self:start}.set-nav a{padding:8px 12px;border-radius:var(--radius-md);color:var(--fg-muted);font-size:13px;text-decoration:none;border-left:2px solid transparent}.set-nav a:hover{color:var(--fg)}.set-nav a.is-active{color:var(--fg);background:var(--bg-elev);border-left-color:var(--accent)}.set-section{margin-bottom:32px}.set-section h2{margin:0 0 6px;font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:-.015em}.set-section .sub{font-size:13px;color:var(--fg-muted);margin-bottom:20px;text-wrap:pretty}.set-row{display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:24px;padding:16px 0;border-top:1px solid var(--border-faint)}.set-row:last-child{border-bottom:1px solid var(--border-faint)}.set-row .lbl{font-size:13.5px;font-weight:500;color:var(--fg)}.set-row .lbl small{display:block;font-weight:400;margin-top:2px}.set-row .lbl small,.set-row .val{color:var(--fg-muted);font-size:12px}.set-row .val{font-family:var(--font-mono)}.set-int-card{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:16px;padding:16px 18px;background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-md);margin-bottom:10px}.set-int-card.is-on{border-color:oklch(from var(--accent) l c h/.5)}.set-int-card .logo{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-elev-2);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:13px;color:var(--tone,var(--accent))}.set-int-card .info .name{font-size:14px;font-weight:600}.set-int-card .info .meta{font-size:12px;color:var(--fg-muted);margin-top:2px}.toggle{appearance:none;width:36px;height:20px;background:var(--bg-elev-2);border:1px solid var(--border-faint);border-radius:999px;position:relative;cursor:pointer;transition:all .16s ease}.toggle:after{content:"";position:absolute;top:1px;left:1px;width:16px;height:16px;border-radius:50%;background:var(--fg-muted);transition:transform .16s ease}.toggle.on{background:var(--accent);border-color:var(--accent)}.toggle.on:after{background:var(--bg);transform:translateX(16px)}.ob-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.ob-bar{gap:16px;padding:18px 32px;border-bottom:1px solid var(--border-faint)}.ob-bar,.ob-bar .brand{display:flex;align-items:center}.ob-bar .brand{gap:10px;font-size:13px}.ob-bar .brand,.ob-bar .brand .mark{font-family:var(--font-mono);font-weight:700}.ob-bar .brand .mark{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--accent),oklch(from var(--accent) calc(l + .1) c calc(h - 30)));display:grid;place-items:center;color:var(--bg);font-size:12px}.ob-progress{flex:1;display:flex;gap:6px;max-width:400px;margin:0 auto}.ob-progress-step{flex:1;height:3px;border-radius:2px;background:var(--bg-elev-2);transition:background .2s ease}.ob-progress-step.is-done{background:var(--accent)}.ob-progress-step.is-current{background:var(--accent);box-shadow:0 0 10px var(--accent-glow)}.ob-counter{font-family:var(--font-mono);font-size:11px;color:var(--fg-muted);letter-spacing:.1em}.ob-stage{flex:1;display:grid;place-items:center;padding:32px 24px}.ob-card{width:100%;max-width:640px;display:flex;flex-direction:column;gap:28px}.ob-card h1{margin:0;font-family:var(--font-display);font-size:36px;font-weight:300;letter-spacing:-.025em;text-wrap:balance}.ob-card h1 b{font-weight:600}.ob-card .lead{font-size:15px;color:var(--fg-muted);line-height:1.55;text-wrap:pretty}.ob-step-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--accent);letter-spacing:.14em;text-transform:uppercase}.ob-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.ob-opt{appearance:none;text-align:left;background:var(--bg-elev);border:1px solid var(--border-faint);border-radius:var(--radius-md);padding:18px 20px;font-family:var(--font-sans);cursor:pointer;transition:all .16s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;gap:6px}.ob-opt:hover{border-color:var(--border-strong);transform:translateY(-1px)}.ob-opt.is-on{border-color:var(--accent);background:oklch(from var(--accent) l c h/.08);box-shadow:0 0 0 1px var(--accent),0 0 20px -8px var(--accent-glow)}.ob-opt .label{font-size:14px;font-weight:600}.ob-opt .hint{font-size:12px;color:var(--fg-muted)}.ob-input{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--border-strong);padding:16px 0}.ob-input input{appearance:none;border:0;background:transparent;font-family:var(--font-display);font-size:56px;font-weight:200;letter-spacing:-.025em;color:var(--fg);outline:none;width:200px;font-variant-numeric:tabular-nums}.ob-input .suffix{font-family:var(--font-mono);font-size:14px;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.14em}.ob-actions{display:flex;justify-content:space-between;gap:12px;margin-top:16px}.ob-actions button{appearance:none;font-family:var(--font-sans);font-size:13px;font-weight:600;letter-spacing:-.005em;padding:10px 20px;border-radius:var(--radius-md);cursor:pointer;transition:all .14s ease}.ob-actions .back{background:transparent;border:1px solid var(--border-faint);color:var(--fg-muted)}.ob-actions .next{background:var(--accent);color:var(--bg);border:0;box-shadow:0 0 22px -6px var(--accent-glow)}.ob-actions .next:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.hub{min-height:100vh;padding:80px 60px;background:var(--bg)}.hub h1{font-family:var(--font-display);font-size:56px;font-weight:200;letter-spacing:-.03em;margin:0 0 8px}.hub h1 b{font-weight:600;color:var(--accent)}.hub .lead{font-size:16px;color:var(--fg-muted);margin-bottom:56px;max-width:540px;text-wrap:pretty}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--border-faint);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border-faint)}.hub-tile{background:var(--bg-elev);padding:28px 32px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px;transition:background .16s ease;position:relative;overflow:hidden}.hub-tile:hover{background:var(--bg-elev-2)}.hub-tile .num{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-subtle);letter-spacing:.14em}.hub-tile h3{margin:0 0 4px;font-family:var(--font-display);font-size:22px;font-weight:400;letter-spacing:-.015em}.hub-tile p{margin:0;font-size:12.5px;color:var(--fg-muted);line-height:1.5}.hub-tile .arr{margin-top:14px;display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10.5px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}.hub-tile.coming{opacity:.5}.hub-tile.coming .arr{color:var(--fg-subtle)}@media (max-width:900px){.app-shell{grid-template-columns:1fr}.app-side{display:none}.pg-shell{padding:20px}.an-grid,.pf-grid,.plan-overview,.set-grid{grid-template-columns:1fr}}@media (max-width:480px){.pg-shell{padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));overflow-x:hidden}.pg-head h1{font-size:22px}.pg-head{flex-direction:column;align-items:stretch;gap:12px}.an-pmc-stats{grid-template-columns:1fr 1fr}.an-sport-split{grid-template-columns:repeat(2,1fr)}.an-power-curve svg{overflow:hidden}.an-load-bars{gap:4px}.an-load-bar .lbl{font-size:8.5px}.pf-zone{grid-template-columns:44px 1fr 92px;gap:10px;padding:8px 10px}.pf-zone .z-pct{display:none}.pf-zone .z-range{font-size:11px}.pf-test{grid-template-columns:70px 1fr 70px 60px;gap:8px;padding:10px 0;font-size:12px}.pf-test .when{font-size:9.5px}.lib-grid{grid-template-columns:1fr}.lib-filters{gap:6px}.lib-filters .group button{padding:4px 8px;font-size:11px}.plan-races{grid-template-columns:1fr}.plan-race{grid-template-columns:64px 1fr;gap:10px}.plan-race .prio{display:none}.plan-timeline-bar{flex-wrap:wrap}.plan-phase{min-width:50%}.set-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:8px}.set-nav a{flex-shrink:0}}