:root{--bg:#efebe3;--bg-elev:#f6f2ea;--ink:#141210;--ink-2:#3a3631;--ink-3:#6b655c;--ink-4:#9a9388;--rule:#d5cfc3;--rule-strong:#b8b1a2;--accent:#d64515;--accent-2:#1f6f5c;--warn:#c29a17;--alert:#b42318;--accent-3:#4a7c96;--z1:#e8e3d8;--z2:#c9d6c2;--z3:#e6d9a8;--z4:#e7be9a;--z5:#d89088;--sport-running:var(--accent);--sport-cycling:var(--warn);--sport-swimming:var(--accent-2);--font-sans:"Inter Tight", "Neue Haas Grotesk Text", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace}[data-theme=graphite]{--bg:#171513;--bg-elev:#1e1c19;--ink:#f1ede4;--ink-2:#cfc9bd;--ink-3:#948e82;--ink-4:#615c52;--rule:#2b2824;--rule-strong:#3a3630;--accent:#e8632e;--accent-3:#5b93b0}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11";font-size:14px;line-height:1.45}.mono{font-family:var(--font-mono);font-feature-settings:"tnum", "zero"}.tnum{font-variant-numeric:tabular-nums}.app{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.topbar{border-bottom:1px solid var(--rule);background:var(--bg);z-index:40;grid-template-columns:220px 1fr auto;align-items:center;padding:14px 28px;display:grid;position:sticky;top:0}.brand{color:var(--ink);align-items:center;gap:10px;display:flex}.brand .logo{width:38px;height:26px}.brand .word{letter-spacing:-.01em;font-size:16px;font-weight:600}.brand .word sup{color:var(--ink-3);letter-spacing:.14em;margin-left:4px;font-size:9px;font-weight:500}.nav{justify-content:center;gap:2px;display:flex}.nav button{font:inherit;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:0;padding:8px 18px;font-size:12.5px;position:relative}.nav button:hover,.nav button.active{color:var(--ink)}.nav button.active:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:-15px;left:18px;right:18px}.topbar-right{align-items:center;gap:18px;display:flex}.topbar-right .chip{color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-size:11px}.topbar-right .chip:hover{color:var(--ink)}.btn{background:var(--ink);color:var(--bg);font:inherit;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:0;align-items:center;gap:8px;padding:9px 16px;font-size:12px;display:inline-flex}.btn:hover{background:var(--accent)}.btn.ghost{color:var(--ink);border:1px solid var(--rule-strong);background:0 0}.btn.ghost:hover{border-color:var(--ink);color:var(--ink);background:0 0}.btn.sm{padding:6px 10px;font-size:11px}.rule{border:0;border-top:1px solid var(--rule);margin:0}.rule.strong{border-top-color:var(--rule-strong)}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:500}.section-title{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);align-items:baseline;gap:10px;margin:0 0 14px;font-size:11px;font-weight:500;display:flex}.section-title .num{font-family:var(--font-mono);color:var(--ink-4);font-size:10px}.section-title:after{content:"";border-top:1px solid var(--rule);flex:1;transform:translateY(-2px)}.layout-activity{grid-template-columns:300px 1fr;min-height:calc(100vh - 57px);display:grid}.sidebar{border-right:1px solid var(--rule);background:var(--bg);max-height:calc(100vh - 57px);padding:24px 0 40px;position:sticky;top:57px;overflow-y:auto}.sidebar h3{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px;padding:0 24px;font-size:10.5px;font-weight:500}.sidebar .count{font-family:var(--font-mono);color:var(--ink-4);font-size:10px}.actlist{margin:16px 0 0;padding:0;list-style:none}.actitem{border-top:1px solid var(--rule);cursor:pointer;grid-template-columns:18px 1fr auto;align-items:start;gap:12px;padding:14px 24px;transition:background .1s;display:grid}.actitem:hover,.actitem.active{background:var(--bg-elev)}.actitem.active:before{content:"";background:var(--accent);width:3px;height:100%;margin-left:-24px;position:absolute;left:0}.actitem{position:relative}.actitem .sport-glyph{width:18px;height:18px;color:var(--ink-2);margin-top:2px}.actitem .title{color:var(--ink);letter-spacing:-.005em;font-size:13px;font-weight:500}.actitem .sub{color:var(--ink-3);gap:10px;margin-top:2px;font-size:11px;display:flex}.actitem .stat{font-family:var(--font-mono);color:var(--ink-3);text-align:right;white-space:nowrap;font-size:10.5px}.actitem .stat b{color:var(--ink);font-weight:500;display:block}.actitem .dot{background:var(--accent-2);border-radius:50%;width:6px;height:6px;margin-top:6px}.actitem.partial .dot{background:var(--warn)}.actitem[data-sport=running] .sport-glyph{color:var(--sport-running)}.actitem[data-sport=cycling] .sport-glyph{color:var(--sport-cycling)}.actitem[data-sport=swimming] .sport-glyph{color:var(--sport-swimming)}.main{max-width:1180px;padding:40px 56px 120px}.activity-head{border-bottom:2px solid var(--ink);grid-template-columns:1fr auto;align-items:end;margin-bottom:32px;padding-bottom:24px;display:grid}.activity-head h1{letter-spacing:-.02em;margin:8px 0 0;font-size:40px;font-weight:500;line-height:1.05}.activity-head .meta{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;gap:16px;font-size:11px;display:flex}.activity-head .meta .dotsep:before{content:"·";color:var(--ink-4);margin-right:16px}.activity-head .tags{align-items:center;gap:8px;display:flex}.tag{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);padding:4px 8px;font-size:10.5px}.tag.accent{background:var(--ink);color:var(--bg)}.tag.ok{border-color:var(--accent-2);color:var(--accent-2)}.tag.warn{border-color:var(--warn);color:var(--warn)}.activity-menu{position:relative}.activity-menu-trigger{line-height:1;padding:4px 6px!important}.activity-menu-trigger .ico{width:16px;height:16px}.activity-menu-dropdown{z-index:20;background:var(--bg);border:1px solid var(--rule-strong);border-radius:6px;min-width:180px;padding:4px 0;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 16px #00000014}.activity-menu-item{text-align:left;width:100%;font-size:12px;font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-2);cursor:pointer;background:0 0;border:none;padding:8px 14px;display:block}.activity-menu-item:hover{background:var(--bg-elev);color:var(--ink)}.activity-menu-item.danger{color:var(--alert)}.activity-menu-item.danger:hover{background:var(--alert);color:var(--bg)}.activity-menu-confirm{padding:10px 14px}.activity-menu-confirm p{color:var(--ink-2);margin:0 0 10px;font-size:12px;line-height:1.4}.dials{border:1px solid var(--rule-strong);background:var(--bg-elev);grid-template-columns:repeat(5,1fr);margin-bottom:40px;display:grid}.dial{border-right:1px solid var(--rule);padding:22px 20px 20px;position:relative}.dial:last-child{border-right:0}.dial .label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:10px;font-weight:500}.dial .value{font-family:var(--font-mono);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:14px;font-size:34px;font-weight:500;line-height:1}.dial .unit{color:var(--ink-3);font-size:13px;font-family:var(--font-mono);margin-left:4px}.dial .sub{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.02em;margin-top:10px;font-size:10.5px}.dial .indicator{width:22px;height:22px;position:absolute;top:18px;right:20px}.directive{border:1px solid var(--ink);background:var(--bg-elev);margin-bottom:40px}.directive-head{border-bottom:1px solid var(--ink);background:var(--ink);color:var(--bg);grid-template-columns:auto 1fr auto;align-items:center;padding:12px 20px;display:grid}.directive-head .label{letter-spacing:.18em;text-transform:uppercase;font-size:10.5px;font-weight:500}.directive-head .src{font-family:var(--font-mono);opacity:.7;text-transform:uppercase;letter-spacing:.1em;margin-left:18px;font-size:10px}.directive-body{padding:24px 28px}.directive-body .headline{color:var(--ink);letter-spacing:-.01em;text-wrap:pretty;margin:0 0 14px;font-size:18px;font-weight:400;line-height:1.4}.directive-body .headline .mono-inline{font-family:var(--font-mono);background:var(--z2);padding:0 4px}.directive-body .why{color:var(--ink-2);max-width:72ch;font-size:13px;line-height:1.55}.directive-body .why p{margin:0 0 8px}.directive-foot{border-top:1px solid var(--rule);font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;grid-template-columns:1fr auto;align-items:center;padding:12px 20px;font-size:10.5px;display:grid}.directive-foot a{color:var(--accent);text-decoration:none}.directive-foot a:hover{text-decoration:underline}.intent{background:var(--bg);border:1px solid var(--rule);grid-template-columns:110px 1fr;gap:18px;margin-bottom:40px;padding:16px 20px;display:grid}.intent .label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:500}.intent .body{color:var(--ink-2);max-width:70ch;font-size:13.5px;line-height:1.55}.findings{border:1px solid var(--rule-strong);grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:48px;display:grid}.findings-col{border-right:1px solid var(--rule);background:var(--bg-elev);padding:20px 22px}.findings-col:last-child{border-right:0}.findings-col h4{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:8px;margin:0 0 14px;font-size:10.5px;font-weight:500;display:flex}.findings-col h4 .count{font-family:var(--font-mono);color:var(--ink-4);font-size:10px}.findings-col.highlights h4 .dot{background:var(--accent-2)}.findings-col.concerns h4 .dot{background:var(--warn)}.findings-col.recs h4 .dot{background:var(--accent)}.findings-col h4 .dot{background:var(--ink-3);border-radius:50%;width:7px;height:7px}.finding{border-top:1px solid var(--rule);color:var(--ink-2);padding:10px 0;font-size:12.5px;line-height:1.5}.finding:first-of-type{border-top:0;padding-top:0}.finding .fid{font-family:var(--font-mono);color:var(--ink-4);margin-right:8px;font-size:10px}.hca-section{border:1px solid color-mix(in srgb, #10b981 30%, var(--rule));background:color-mix(in srgb, #10b981 4%, var(--bg-elev));margin-bottom:48px;padding:20px 22px}.hca-header{margin-bottom:14px}.hca-badge{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:#10b981;border:1px solid #10b98166;border-radius:3px;margin-bottom:10px;padding:2px 8px;font-size:9px;display:inline-block}.hca-summary{color:var(--ink-1);max-width:80ch;margin:0;font-size:13.5px;line-height:1.55}.hca-block{margin-top:16px}.hca-block-title{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;font-size:10.5px;font-weight:500}.hca-note{color:var(--ink-2);margin:6px 0;font-size:13px;line-height:1.55}.hca-adjustments{flex-direction:column;gap:8px;display:flex}.hca-adj{border-top:1px solid var(--rule);flex-direction:column;padding:8px 0;display:flex}.hca-adj:first-child{border-top:0;padding-top:0}.hca-adj-what{color:var(--ink-2);font-size:13px;line-height:1.5}.hca-adj-why{color:var(--ink-3);margin-top:2px;font-size:11.5px;font-style:italic}.metric-table{border-collapse:collapse;width:100%;margin-bottom:40px;font-size:13px}.metric-table th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--ink);padding:10px 12px;font-size:10.5px;font-weight:500}.metric-table th.num,.metric-table td.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.metric-table td{border-bottom:1px solid var(--rule);color:var(--ink);padding:14px 12px}.metric-table tr:last-child td{border-bottom:1px solid var(--rule-strong)}.metric-table td.num b{font-weight:500}.metric-table tr.lap-active td:first-child{box-shadow:inset 3px 0 0 0 var(--accent-2)}.metric-table tr.lap-recovery td:first-child{box-shadow:inset 3px 0 0 0 var(--accent-3)}.metric-table tr.lap-neutral td:first-child{box-shadow:inset 3px 0 0 0 var(--ink-4)}.metric-table tr.lap-active td{background:#1f6f5c0d}.metric-table tr.lap-recovery td{background:#4a7c960a}[data-theme=graphite] .metric-table tr.lap-active td{background:#1f6f5c14}[data-theme=graphite] .metric-table tr.lap-recovery td{background:#4a7c9612}.metrics-grid{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(4,1fr);gap:0;margin-bottom:40px;display:grid}.metric-cell{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:18px 20px}.metric-cell .lbl{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:10px;font-size:10.5px}.metric-cell .val{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:22px}.metric-cell .val .u{color:var(--ink-3);margin-left:4px;font-size:12px}.metric-cell .ctx{color:var(--ink-4);font-size:11px;font-family:var(--font-mono);margin-top:6px}.chart-block{margin-bottom:44px}.chart-head{grid-template-columns:1fr auto;align-items:baseline;margin-bottom:16px;display:grid}.chart-head .name{color:var(--ink);letter-spacing:-.005em;font-size:14px;font-weight:500}.chart-head .unit{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}.chart-head .scale{font-family:var(--font-mono);color:var(--ink-3);font-size:10.5px}.chart svg{width:100%;display:block}.zones-legend{border:1px solid var(--rule-strong);gap:0;margin-bottom:16px;display:flex}.zone{font-family:var(--font-mono);border-right:1px solid var(--rule);flex:1;grid-template-columns:1fr auto;align-items:baseline;gap:8px;padding:8px 12px;font-size:10.5px;display:grid}.zone:last-child{border-right:0}.zone .z{color:var(--ink);font-weight:600}.zone .r{color:var(--ink-3)}.zone .pct{color:var(--ink);font-size:13px;font-weight:500}.zone[data-z="1"]{background:color-mix(in oklab, var(--z1), transparent 30%)}.zone[data-z="2"]{background:color-mix(in oklab, var(--z2), transparent 30%)}.zone[data-z="3"]{background:color-mix(in oklab, var(--z3), transparent 30%)}.zone[data-z="4"]{background:color-mix(in oklab, var(--z4), transparent 30%)}.zone[data-z="5"]{background:color-mix(in oklab, var(--z5), transparent 30%)}.chat-page{max-width:880px;margin:0 auto;padding:40px 32px 160px}.chat-header{border-bottom:2px solid var(--ink);margin-bottom:32px;padding-bottom:20px}.chat-header h1{letter-spacing:-.02em;margin:0 0 8px;font-size:32px;font-weight:500}.chat-header p{color:var(--ink-3);max-width:60ch;margin:0;font-size:13px}.chat-stream{flex-direction:column;gap:28px;padding:8px 0 120px;display:flex}.msg{max-width:78%;font-size:14px;line-height:1.55}.msg .stamp{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:10px}.msg.me{text-align:right;align-self:flex-end}.msg.me .bubble{background:var(--ink);color:var(--bg);text-align:left;white-space:pre-wrap;border-top-right-radius:0;padding:14px 18px}.msg.coach .bubble{background:var(--bg-elev);color:var(--ink);border:1px solid var(--rule);text-align:left;padding:14px 18px}.msg.coach .bubble ul{margin:6px 0 8px;padding-left:18px}.msg.coach .bubble li{margin:2px 0}.msg.coach .bubble strong{color:var(--ink);font-weight:600}.daymark{text-align:center;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-4);padding:20px 0;font-size:10px;position:relative}.daymark:before,.daymark:after{content:"";border-top:1px solid var(--rule);width:calc(50% - 80px);position:absolute;top:50%}.daymark:before{left:0}.daymark:after{right:0}.composer{background:var(--bg);border-top:1px solid var(--rule-strong);z-index:30;padding:16px 32px;position:fixed;bottom:0;left:0;right:0}.composer-inner{grid-template-columns:1fr auto;align-items:end;gap:12px;max-width:880px;margin:0 auto;display:grid}.composer textarea{resize:none;border:1px solid var(--rule-strong);background:var(--bg-elev);width:100%;min-height:48px;max-height:140px;font:inherit;color:var(--ink);padding:12px 14px}.composer textarea:focus{border-color:var(--ink);outline:none}.composer .hint{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.06em;text-transform:uppercase;margin-top:8px;font-size:10px}.context-tab{z-index:35;background:var(--bg);border-top:1px solid var(--ink);position:fixed;bottom:0;left:0;right:0}.context-collapsed{cursor:pointer;grid-template-columns:1fr auto;padding:14px 32px;display:grid}.context-collapsed:hover{background:var(--bg-elev)}.context-collapsed .l{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);align-items:center;gap:10px;font-size:11px;font-weight:500;display:flex}.context-collapsed .ver{font-family:var(--font-mono);color:var(--ink-3);font-size:10px}.context-collapsed .r{font-family:var(--font-mono);color:var(--ink-3);font-size:11px}.context-expanded{border-top:1px solid var(--rule);max-height:70vh;padding:0;overflow:auto}.context-expanded .inner{max-width:1080px;margin:0 auto;padding:32px}.ctx-block{border-top:1px solid var(--rule);padding:20px 0}.ctx-block:first-child{border-top:0;padding-top:0}.ctx-block h3{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;font-size:10.5px;font-weight:500}.ctx-block p{color:var(--ink-2);max-width:78ch;margin:4px 0 0;font-size:13px;line-height:1.55}.ctx-kv{grid-template-columns:160px 1fr;gap:12px 24px;margin-top:10px;font-size:13px;display:grid}.ctx-kv dt{color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-size:11.5px}.ctx-kv dd{color:var(--ink);margin:0;line-height:1.5}.pill-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.pill{font-family:var(--font-mono);color:var(--ink-2);border:1px solid var(--rule-strong);background:var(--bg);padding:4px 10px;font-size:11px}.pill.warn{border-color:var(--warn);color:var(--warn)}.pill.ok{border-color:var(--accent-2);color:var(--accent-2)}.profile-page{max-width:1080px;margin:0 auto;padding:40px 32px 120px}.profile-head{border-bottom:2px solid var(--ink);grid-template-columns:1fr auto;align-items:end;margin-bottom:40px;padding-bottom:24px;display:grid}.profile-head h1{letter-spacing:-.02em;margin:0;font-size:40px;font-weight:500}.profile-head p{color:var(--ink-3);margin:8px 0 0;font-size:13px}.profile-grid{border-top:1px solid var(--rule-strong);border-left:1px solid var(--rule-strong);grid-template-columns:1fr 1fr;gap:0;display:grid}.field-cell{border-right:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);background:var(--bg-elev);padding:20px 24px}.field-cell.full{grid-column:1/-1}.field-cell label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px;font-size:10.5px;font-weight:500;display:block}.field-cell .readout{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:24px}.field-cell .readout .u{color:var(--ink-3);margin-left:4px;font-size:12px}.field-cell input,.field-cell select,.field-cell textarea{border:0;border-bottom:1px solid var(--ink);width:100%;font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;padding:4px 0 8px;font-size:22px}.field-cell input:focus,.field-cell select:focus{border-bottom-color:var(--accent);outline:none}.field-cell .helper{color:var(--ink-4);font-size:11px;font-family:var(--font-mono);margin-top:6px}.zone-bar{border:1px solid var(--rule-strong);grid-template-columns:repeat(5,1fr);display:grid}.zone-bar .slot{border-right:1px solid var(--rule);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.zone-bar .slot:last-child{border-right:0}.zone-bar .slot .zn{font-family:var(--font-mono);color:var(--ink);font-size:11px;font-weight:600}.zone-bar .slot .rng{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;font-size:13px}.zone-bar .slot .nm{color:var(--ink-3);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.prog-page{max-width:1400px;margin:0 auto;padding:40px 56px 120px}.prog-head{border-bottom:2px solid var(--ink);grid-template-columns:1fr auto;align-items:end;margin-bottom:40px;padding-bottom:24px;display:grid}.prog-head h1{letter-spacing:-.02em;margin:0;font-size:40px;font-weight:500}.summary-row{border:1px solid var(--rule-strong);grid-template-columns:repeat(4,1fr);margin-bottom:40px;display:grid}.summary-cell{border-right:1px solid var(--rule);background:var(--bg-elev);padding:22px}.summary-cell:last-child{border-right:0}.summary-cell .lbl{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px}.summary-cell .val{font-family:var(--font-mono);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:10px;font-size:30px;line-height:1}.summary-cell .u{color:var(--ink-3);margin-left:4px;font-size:12px}.summary-cell .ctx{color:var(--ink-4);font-size:11px;font-family:var(--font-mono);margin-top:8px}.calendar-v2{border:1px solid var(--rule-strong);background:var(--bg-elev);margin-bottom:40px}.cal-dow{border-bottom:1px solid var(--rule-strong);grid-template-columns:100px repeat(7,1fr);display:grid}.cal-dow .h{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border-right:1px solid var(--rule);text-align:right;padding:10px 12px;font-size:10px}.cal-dow .h:last-child{border-right:0}.cal-dow .h.week-label{text-align:left;color:var(--ink)}.cal-week{border-bottom:1px solid var(--rule);grid-template-columns:100px repeat(7,1fr);display:grid}.cal-week:last-child{border-bottom:0}.cal-weeknum{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.06em;border-right:1px solid var(--rule);flex-direction:column;justify-content:center;gap:2px;padding:10px 14px;font-size:10.5px;display:flex}.cal-weeknum b{color:var(--ink);font-size:11px;font-weight:500}.cal-cell{border-right:1px solid var(--rule);background:var(--bg);min-height:56px;padding:6px 8px;position:relative}.cal-cell:last-child{border-right:0}.cal-cell.new-month{border-left:2px solid var(--ink);margin-left:-1px}.cal-cell .dnum{font-family:var(--font-mono);color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:10.5px}.cal-cell .mlab{font-family:var(--font-mono);color:var(--ink);letter-spacing:.1em;text-transform:uppercase;margin-left:4px;font-size:9px}.cal-cell .sblock{width:100%;height:14px;font-family:var(--font-mono);color:var(--ink);letter-spacing:.08em;text-transform:uppercase;align-items:center;margin-top:6px;padding:0 6px;font-size:9px;display:flex}.cal-cell[data-type=swim] .sblock{background:color-mix(in oklab, var(--accent), var(--bg) 70%)}.cal-cell[data-type=run] .sblock{background:color-mix(in oklab, var(--accent-2), var(--bg) 75%);color:var(--bg-elev)}.cal-cell[data-type=bike] .sblock{background:color-mix(in oklab, var(--warn), var(--bg) 75%)}.cal-cell[data-type=strength] .sblock{background:var(--ink-2);color:var(--bg)}.cal-cell.future{background:repeating-linear-gradient(135deg, var(--bg) 0 6px, transparent 6px 12px)}.cal-cell.future .dnum{color:var(--ink-4)}.cal-cell.today{outline:2px solid var(--ink);outline-offset:-2px}.cal-legend{border-top:1px solid var(--rule-strong);font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;gap:16px;padding:12px 16px;font-size:10.5px;display:flex}.cal-legend .sw{vertical-align:middle;width:12px;height:12px;margin-right:6px;display:inline-block}.tracked{border-top:1px solid var(--rule-strong);border-left:1px solid var(--rule-strong);grid-template-columns:1fr 1fr;gap:0;margin-bottom:40px;display:grid}.tracked-cell{border-right:1px solid var(--rule-strong);border-bottom:1px solid var(--rule-strong);background:var(--bg-elev);padding:20px 24px;position:relative}.tracked-cell .head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.tracked-cell label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:500}.tracked-cell .src-tag{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4);font-size:9px}.tracked-cell .src-tag.src-app{color:var(--accent)}.tracked-cell .src-tag.src-user{color:var(--ink-4)}.tracked-cell .row{grid-template-columns:1fr 120px;align-items:end;gap:16px;display:grid}.tracked-cell .readout{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:28px;line-height:1}.tracked-cell .readout .u{color:var(--ink-3);margin-left:4px;font-size:12px}.tracked-cell .delta{font-family:var(--font-mono);color:var(--ink-3);margin-top:6px;font-size:11px}.tracked-cell .delta.down{color:var(--accent-2)}.tracked-cell .delta.up{color:var(--accent)}.tracked-cell .spark{height:36px}.tracked-cell .footer{gap:10px;margin-top:14px;font-size:11px;display:flex}.tracked-cell .footer button{border:1px solid var(--rule-strong);font:inherit;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--ink);background:0 0;padding:5px 10px;font-size:10.5px}.tracked-cell .footer button:hover{border-color:var(--ink)}.history-sheet{border-top:1px solid var(--rule);margin-top:12px;padding-top:12px}.history-sheet table{border-collapse:collapse;width:100%;font-size:12px}.history-sheet th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--rule);padding:6px 8px 6px 0;font-size:10px;font-weight:500}.history-sheet th.num,.history-sheet td.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.history-sheet td{border-bottom:1px solid var(--rule);color:var(--ink-2);font-family:var(--font-mono);padding:8px 8px 8px 0;font-size:11.5px}.history-sheet td .src-chip{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule-strong);color:var(--ink-3);margin-left:6px;padding:1px 5px;font-size:9px}.history-sheet td .src-chip.src-app{border-color:var(--accent);color:var(--accent)}.ctx-summary{border:1px solid var(--rule-strong);background:var(--bg-elev);margin:0 0 24px}.ctx-summary .hd{border-bottom:1px solid var(--rule);grid-template-columns:1fr auto;align-items:center;padding:10px 16px;display:grid}.ctx-summary .hd .t{letter-spacing:.18em;text-transform:uppercase;color:var(--ink);align-items:center;gap:10px;font-size:10.5px;font-weight:500;display:flex}.ctx-summary .hd .ver{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.08em;font-size:10px}.ctx-summary .hd a{font-family:var(--font-mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px;text-decoration:none}.ctx-summary .hd a:hover{text-decoration:underline}.ctx-summary .body{grid-template-columns:repeat(4,1fr);display:grid}.ctx-summary .cell{border-right:1px solid var(--rule);padding:12px 16px}.ctx-summary .cell:last-child{border-right:0}.ctx-summary .cell .lbl{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px;font-size:9.5px}.ctx-summary .cell .val{font-family:var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.005em;font-size:13px}.ctx-summary .cell .val.wrap{font-family:var(--font-sans);font-size:12px;line-height:1.4}.ctx-summary .cell .chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.ctx-summary .cell .chip{font-family:var(--font-mono);border:1px solid var(--warn);color:var(--warn);padding:2px 6px;font-size:9.5px}.tweaks{z-index:100;background:var(--bg);border:1px solid var(--ink);min-width:220px;padding:14px 16px;display:none;position:fixed;bottom:20px;right:20px}.tweaks.on{display:block}.tweaks h5{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0 0 10px;font-size:10px}.tweaks .t-row{grid-template-columns:1fr auto;align-items:center;padding:6px 0;font-size:12px;display:grid}.tweaks .t-row button{border:1px solid var(--rule-strong);font:inherit;cursor:pointer;color:var(--ink);background:0 0;padding:2px 8px;font-size:11px}.tweaks .t-row button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.tweaks .swatch{border:1px solid var(--ink);vertical-align:middle;width:14px;height:14px;margin-left:4px;display:inline-block}.ico{stroke:currentColor;fill:none;stroke-width:1.6px;width:16px;height:16px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule-strong)}::-webkit-scrollbar-track{background:0 0}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{border:1px solid var(--rule-strong);background:var(--bg-elev);width:100%;max-width:380px;padding:40px 36px}.auth-card h1{letter-spacing:-.02em;text-align:center;margin:0 0 8px;font-size:24px;font-weight:600}.auth-card .subtitle{color:var(--ink-3);text-align:center;letter-spacing:.08em;text-transform:uppercase;margin-bottom:32px;font-size:11px}.auth-card .field{margin-bottom:20px}.auth-card .field label{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;font-size:10.5px;font-weight:500;display:block}.auth-card .field input{border:0;border-bottom:1px solid var(--rule-strong);width:100%;font-family:var(--font-mono);color:var(--ink);background:0 0;padding:6px 0 10px;font-size:15px}.auth-card .field input:focus{border-bottom-color:var(--accent);outline:none}.auth-card .error{font-family:var(--font-mono);color:var(--alert);margin-bottom:16px;font-size:11px}.auth-card .btn{justify-content:center;width:100%;margin-top:8px}.auth-card .toggle{text-align:center;color:var(--ink-3);margin-top:20px;font-size:11px}.auth-card .toggle button{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;font-size:11px;text-decoration:underline}.upload-toast{z-index:200;font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--rule);background:var(--bg-elev);color:var(--ink-2);border-radius:6px;min-width:220px;max-width:360px;font-size:11px;position:fixed;top:56px;right:24px;box-shadow:0 4px 16px #00000014}.upload-toast[data-status=error]{border-color:var(--alert);color:var(--alert)}.upload-toast[data-status=success]{border-color:var(--accent-2);color:var(--accent-2)}.upload-toast[data-status=warn]{border-color:var(--warn);color:var(--warn)}.upload-toast-inner{align-items:center;gap:10px;padding:10px 14px;display:flex}.upload-toast-label{text-transform:uppercase;font-weight:600;display:block}.upload-toast-files{color:var(--ink-4);text-overflow:ellipsis;white-space:nowrap;max-width:260px;margin-top:2px;font-size:10px;display:block;overflow:hidden}.upload-toast-close{color:var(--ink-4);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:14px;line-height:1}.upload-spinner{border:2px solid var(--rule-strong);border-top-color:var(--ink-2);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite uspin;display:inline-block}@keyframes uspin{to{transform:rotate(360deg)}}.sidebar-spinner{width:14px;height:14px;margin-top:2px}.intent-textarea{border:1px solid var(--rule);background:var(--bg);color:var(--ink);font-size:12px;font-family:var(--font-mono);resize:none;border-radius:4px;flex:1;min-height:26px;max-height:80px;padding:5px 8px;line-height:1.4;transition:height .1s;overflow:hidden}.intent-textarea:focus{border-color:var(--ink-3);outline:none}.tool-panel{border:1px solid var(--rule);background:var(--bg-elev);border-radius:6px;margin-bottom:20px}.tool-panel-head{justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;display:flex}.tool-panel-body{padding:0 14px 12px}.tool-panel-msg{font-family:var(--font-mono);color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.tool-panel-msg[data-type=ok]{color:var(--accent-2)}.tool-panel-msg[data-type=warn]{color:var(--warn)}.tool-panel-proposals{margin:0 0 10px;padding:0;list-style:none}.tool-panel-proposals li{color:var(--ink-2);align-items:flex-start;gap:8px;padding:4px 0;font-size:12px;display:flex}.tool-panel-proposals li input[type=checkbox]{accent-color:var(--accent);margin-top:2px}.tool-panel-actions{gap:8px;display:flex}.admin-view{max-width:960px;margin:0 auto;padding:24px 32px 60px}.admin-section{margin-bottom:40px}.admin-subtitle{color:var(--ink-3);margin-bottom:20px;font-size:12px;line-height:1.5}.admin-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.admin-card{border:1px solid var(--rule);border-radius:6px;margin-bottom:14px;padding:14px}.admin-card h3{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:12px;font-weight:700}.admin-card .field{margin-bottom:8px}.admin-card .field label{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.04em;text-transform:uppercase;margin-bottom:3px;font-size:10px;display:block}.admin-card .field select,.admin-card .field input{border:1px solid var(--rule);background:var(--bg);width:100%;color:var(--ink);font-size:12px;font-family:var(--font-mono);border-radius:4px;padding:5px 8px}.admin-card .field-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.admin-badge-warn{font-family:var(--font-mono);color:var(--warn);border:1px solid var(--warn);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:1px 6px;font-size:10px;display:inline-block}.prompt-group{margin-bottom:28px}.prompt-group-label{font-family:var(--font-mono);color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;font-size:11px;font-weight:700}.prompt-card{margin-bottom:10px}.prompt-card-head{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.prompt-card-title{align-items:center;gap:10px;display:flex}.prompt-chevron{color:var(--ink-3);font-size:14px;transition:transform .15s}.prompt-chevron[data-open=true]{transform:rotate(90deg)}.prompt-desc{color:var(--ink-3);margin:6px 0 8px;font-size:11px;line-height:1.5}.prompt-vars{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.prompt-vars-label{font-family:var(--font-mono);color:var(--ink-4);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.prompt-var-pill{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--rule);color:var(--accent);border-radius:3px;padding:1px 6px;font-size:10px}.admin-badge{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border-radius:4px;padding:1px 6px;font-size:10px;display:inline-block}.admin-badge.default{color:var(--ink-4);border:1px solid var(--rule)}.admin-badge.customized{color:var(--accent);border:1px solid var(--accent)}.prompt-edit{margin-top:10px}.prompt-edit textarea{border:1px solid var(--rule);background:var(--bg);width:100%;color:var(--ink);font-size:11px;font-family:var(--font-mono);resize:vertical;tab-size:2;border-radius:4px;padding:10px 12px;line-height:1.5}.prompt-edit textarea:focus{border-color:var(--accent);outline:none}.prompt-edit-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.prompt-unsaved{font-family:var(--font-mono);color:var(--warn);letter-spacing:.04em;font-size:10px}.error-toast{z-index:250;background:var(--alert);color:#fff;font-family:var(--font-mono);letter-spacing:.04em;border-radius:6px;padding:8px 18px;font-size:11px;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026}.week-summary-row{background:var(--bg-elev);border-top:1px solid var(--rule);padding:10px 12px}.week-summary-row .ws-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px;display:grid}.week-summary-row .ws-cell{text-align:center}.week-summary-row .ws-cell b{color:var(--ink);font-size:16px;display:block}.week-summary-row .ws-cell span{font-family:var(--font-mono);color:var(--ink-4);letter-spacing:.04em;text-transform:uppercase;font-size:10px}.week-summary-row .ws-sport{color:var(--ink-2);align-items:center;gap:8px;padding:3px 0;font-size:12px;display:flex}.week-summary-row .ws-sport-badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--rule);border-radius:3px;padding:1px 6px;font-size:10px}.ai-layers-admin-tag{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);border:1px solid var(--rule-strong);vertical-align:middle;margin-left:8px;padding:1px 5px;font-size:9px}.ai-layers-section-header{cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;width:100%;margin-bottom:8px;padding:0;display:flex}.ai-layers-section-header:hover .section-title{color:var(--ink-2)}.ai-layers-list{flex-direction:column;gap:2px;display:flex}.ai-layers-block{border:1px solid var(--rule);border-radius:2px}.ai-layers-block-header{cursor:pointer;width:100%;color:var(--ink-3);font-size:12px;font-family:var(--font-mono);letter-spacing:.04em;background:0 0;border:none;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.ai-layers-block-header:hover{color:var(--ink);background:var(--bg-elev)}.ai-layers-block-right{align-items:center;gap:8px;display:flex}.ai-layers-empty{color:var(--ink-4);font-size:10px;font-style:italic}.ai-layers-empty-msg{color:var(--ink-4);padding:4px 0;font-size:11px;font-style:italic}.ai-layers-chevron{width:12px;height:12px;transition:transform .15s}.ai-layers-chevron.open{transform:rotate(90deg)}.ai-layers-block-body{padding:0 10px 10px}.ai-layers-pre{background:var(--bg);font-family:var(--font-mono);color:var(--ink-2);white-space:pre-wrap;word-break:break-all;border:1px solid var(--rule);border-radius:2px;margin:0;padding:10px;font-size:11px;overflow-x:auto}.empty-page{min-height:60vh;color:var(--ink-3);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-page .title{letter-spacing:.18em;text-transform:uppercase;margin-top:16px;font-size:11px}.empty-page .sub{font-family:var(--font-mono);color:var(--ink-4);margin-top:6px;font-size:11px}
