@font-face{font-family:'Inter';src:url('/static/fonts/inter-latin.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}:root{--bg:#f5f6f8;--surface:#ffffff;--surface-hover:#f0f1f4;--border:#d8dae0;--border-strong:#c0c4cc;--text:#1a1d25;--text-dim:#4b5060;--text-faint:#636b7a;--accent:#b5422a;--accent-hover:#cc5539;--accent-dim:rgba(181,66,42,0.08);--blue:#1d6fb5;--blue-dim:rgba(29,111,181,0.08);--green:#147a49;--green-dim:rgba(20,122,73,0.08);--yellow:#7a6100;--yellow-dim:rgba(122,97,0,0.08);--red:#c03030;--red-dim:rgba(192,48,48,0.08);--phase-0:#2b70b6;--phase-0-dim:rgba(43,112,182,0.08);--phase-1:#1e7880;--phase-1-dim:rgba(30,120,128,0.08);--phase-2:#1d7c4d;--phase-2-dim:rgba(29,124,77,0.08);--phase-3:#864dd5;--phase-3-dim:rgba(134,77,213,0.08);--phase-4:#a15926;--phase-4-dim:rgba(161,89,38,0.08);--phase-5:#846b1f;--phase-5-dim:rgba(132,107,31,0.08);--phase-6:#c22e84;--phase-6-dim:rgba(194,46,132,0.08);--zone1:#206a9c;--zone2:#167a48;--zone3:#7a6100;--zone4:#9c5318;--zone5:#b02828;--zone-tint:rgba(0,0,0,0.04);--data-1:#2563eb;--data-2:#7a5200;--data-3:#6d32d4;--shadow-overlay:0 8px 24px rgba(0,0,0,0.12);--fs-xs:0.75rem;--fs-sm:0.8125rem;--fs-md:0.875rem;--fs-lg:1rem;--fs-xl:1.25rem;--fs-2xl:1.75rem;--fs-3xl:2.5rem;--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--r-sm:6px;--r-md:8px;--r-lg:12px;}
[hidden]{display:none !important;}
input[type="checkbox"],input[type="radio"]{accent-color:var(--accent);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0f1117;--surface:#1a1d25;--surface-hover:#1f222c;--border:#2a2d38;--border-strong:#363a47;--text:#e8eaed;--text-dim:#a5abb8;--text-faint:#848a96;--accent:#e85d3a;--accent-hover:#f06e4c;--accent-dim:rgba(232,93,58,0.06);--blue:#4a9eff;--blue-dim:rgba(74,158,255,0.15);--green:#3dd68c;--green-dim:rgba(61,214,140,0.15);--yellow:#f0c430;--yellow-dim:rgba(240,196,48,0.15);--red:#f15050;--red-dim:rgba(241,80,80,0.06);--phase-0:#5e9cd9;--phase-0-dim:rgba(94,156,217,0.15);--phase-1:#2baab6;--phase-1-dim:rgba(43,170,182,0.15);--phase-2:#29ae6b;--phase-2-dim:rgba(41,174,107,0.15);--phase-3:#ad87e3;--phase-3-dim:rgba(173,135,227,0.15);--phase-4:#d48349;--phase-4-dim:rgba(212,131,73,0.15);--phase-5:#ba962c;--phase-5-dim:rgba(186,150,44,0.15);--phase-6:#de73b1;--phase-6-dim:rgba(222,115,177,0.15);--zone1:#5aa9e6;--zone2:#35c08d;--zone3:#e8c33a;--zone4:#f0883c;--zone5:#ec6b6b;--zone-tint:rgba(255,255,255,0.06);--data-1:#3b82f6;--data-2:#b8860b;--data-3:#8b5cf6;--shadow-overlay:0 8px 24px rgba(0,0,0,0.4);}
}:root[data-theme="dark"]{--bg:#0f1117;--surface:#1a1d25;--surface-hover:#1f222c;--border:#2a2d38;--border-strong:#363a47;--text:#e8eaed;--text-dim:#a5abb8;--text-faint:#848a96;--accent:#e85d3a;--accent-hover:#f06e4c;--accent-dim:rgba(232,93,58,0.06);--blue:#4a9eff;--blue-dim:rgba(74,158,255,0.15);--green:#3dd68c;--green-dim:rgba(61,214,140,0.15);--yellow:#f0c430;--yellow-dim:rgba(240,196,48,0.15);--red:#f15050;--red-dim:rgba(241,80,80,0.06);--phase-0:#5e9cd9;--phase-0-dim:rgba(94,156,217,0.15);--phase-1:#2baab6;--phase-1-dim:rgba(43,170,182,0.15);--phase-2:#29ae6b;--phase-2-dim:rgba(41,174,107,0.15);--phase-3:#ad87e3;--phase-3-dim:rgba(173,135,227,0.15);--phase-4:#d48349;--phase-4-dim:rgba(212,131,73,0.15);--phase-5:#ba962c;--phase-5-dim:rgba(186,150,44,0.15);--phase-6:#de73b1;--phase-6-dim:rgba(222,115,177,0.15);--zone1:#5aa9e6;--zone2:#35c08d;--zone3:#e8c33a;--zone4:#f0883c;--zone5:#ec6b6b;--zone-tint:rgba(255,255,255,0.06);--data-1:#3b82f6;--data-2:#b8860b;--data-3:#8b5cf6;--shadow-overlay:0 8px 24px rgba(0,0,0,0.4);}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;}
.num,table td,table th{font-variant-numeric:tabular-nums;}
.skip-link{position:absolute;left:var(--sp-3);top:var(--sp-3);z-index:9999;padding:var(--sp-2) var(--sp-4);background:var(--accent);color:#fff;font-size:var(--fs-md);font-weight:600;border-radius:var(--r-md);text-decoration:none;transform:translateY(-200%);transition:transform 0.15s;}
.skip-link:focus{transform:translateY(0);}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm);}
.container{max-width:1200px;margin:0 auto;padding:1.5rem;}
@media (max-width:480px){.container{padding:1rem 0.75rem;}
}
body.layout-bare{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-6) var(--sp-4);}
@media (max-width:480px){body.layout-bare{padding:var(--sp-6) var(--sp-3) var(--sp-4);align-items:flex-start;}
}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:linear-gradient(to right,var(--surface) 30%,transparent) left center,linear-gradient(to left,var(--surface) 30%,transparent) right center,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,0.25),transparent) left center,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,0.25),transparent) right center;background-repeat:no-repeat;background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll;}
.table-wrap.sticky-first th:first-child,.table-wrap.sticky-first td:first-child{position:sticky;left:0;background:var(--surface);z-index:1;}
.table-wrap.sticky-first thead th:first-child{z-index:2;}
.table-wrap.sticky-first th:first-child::after,.table-wrap.sticky-first td:first-child::after{content:'';position:absolute;top:0;right:0;bottom:0;width:1px;background:var(--border);}:where(a){color:var(--accent);text-decoration:underline;text-underline-offset:0.15em;}:where(a:hover){text-decoration-thickness:2px;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:0.5rem 0.9rem;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:var(--fs-md);font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background 0.15s,border-color 0.15s;}
.btn:hover{background:var(--surface-hover);border-color:var(--border-strong);}
.btn:active{transform:translateY(1px);}
.btn svg,.btn i[data-lucide]{width:15px;height:15px;flex-shrink:0;}
.btn-accent,.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;}
.btn-accent:hover,.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);}
.btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim);}
.btn-ghost:hover{background:var(--surface-hover);color:var(--text);border-color:transparent;}
.btn-danger{background:var(--red-dim);border-color:transparent;color:var(--red);}
.btn-danger:hover{background:rgba(241,80,80,0.12);border-color:transparent;}
.btn-sm{font-size:var(--fs-xs);padding:0.3rem 0.6rem;gap:var(--sp-1);}
.btn-sm svg,.btn-sm i[data-lucide]{width:13px;height:13px;}
.btn-block{width:100%;}
.btn:disabled{opacity:0.45;cursor:not-allowed;}
.btn-start{margin-right:auto;}
.brand-text{color:var(--text);font-weight:600;font-size:1.3rem;letter-spacing:-0.01em;}
.brand-logo{width:30px;height:30px;color:var(--accent);flex-shrink:0;}
.brand-lockup{display:block;height:29px;width:auto;flex-shrink:0;}
.brand-lockup-dark{display:none;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand-lockup-light{display:none;}:root:not([data-theme="light"]) .brand-lockup-dark{display:block;}
}:root[data-theme="dark"] .brand-lockup-light{display:none;}:root[data-theme="dark"] .brand-lockup-dark{display:block;}
.page-title{font-size:var(--fs-xl);font-weight:600;letter-spacing:-0.01em;margin-bottom:var(--sp-5);}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;}
.page-head-actions{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;}
.section,.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-5);}
.section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;}
.section-title{font-size:var(--fs-lg);font-weight:600;}
.section-note{font-size:var(--fs-sm);color:var(--text-dim);text-align:right;}
.list{margin:0 calc(-1 * var(--sp-5));}
.list-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);transition:background 0.12s;}
.list-row:hover{background:var(--surface-hover);}
.list-row-main{flex:1;min-width:0;}
.list-row-title{font-size:var(--fs-md);font-weight:500;}
.list-row-meta{font-size:var(--fs-sm);color:var(--text-dim);}
.list-row-aside{font-size:var(--fs-sm);color:var(--text-dim);text-align:right;}
.field{margin-bottom:var(--sp-3);}
.field label{display:block;font-size:var(--fs-xs);font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.3rem;}
.check-row,.field label.check-row{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);font-weight:400;color:var(--text);text-transform:none;letter-spacing:normal;margin-bottom:0.35rem;cursor:pointer;}
.check-row input[type="checkbox"],.check-row input[type="radio"]{width:auto;margin:0;flex-shrink:0;accent-color:var(--accent);}
.check-group{display:flex;gap:var(--sp-5);flex-wrap:wrap;}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea{border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--fs-md);font-family:inherit;transition:border-color 0.15s;}
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);}
textarea{line-height:1.55;}
input::placeholder,textarea::placeholder{color:var(--text-faint);}
.field input,.field select,.field textarea{width:100%;padding:0.5rem 0.7rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--fs-md);font-family:inherit;transition:border-color 0.15s;}
.field input:hover,.field select:hover{border-color:var(--border-strong);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);}
.field input[readonly],.field input:disabled{opacity:0.5;cursor:not-allowed;}
.field input::placeholder{color:var(--text-faint);}
.field-row{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-3);}
.field-row .field{flex:1;margin-bottom:0;}
@media (max-width:480px){.field-row{flex-direction:column;gap:0;}
.field-row .field{margin-bottom:var(--sp-3);}
}
.val-positive{color:var(--green);}
.val-warn{color:var(--yellow);}
.val-danger{color:var(--red);}
.val-muted{color:var(--text-faint);}
.val-info{color:var(--blue);}
.label{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.07em;color:var(--text-faint);}
.hint{font-size:var(--fs-xs);color:var(--text-dim);}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-dim);font-size:var(--fs-md);}
.empty-state svg,.empty-state i[data-lucide]{width:28px;height:28px;color:var(--text-faint);}
.empty-state-text{max-width:360px;}
.empty-state-title{font-weight:600;color:var(--text);margin-bottom:0.2rem;}
.empty-state-desc{font-size:var(--fs-sm);color:var(--text-dim);line-height:1.5;}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;width:min(420px,92vw);max-height:85vh;overflow-y:auto;}
.import-fields{margin:var(--sp-4) 0;border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);}
.import-fields summary{cursor:pointer;font-size:var(--fs-sm);font-weight:500;}
.import-fields[open] summary{margin-bottom:var(--sp-3);}
.import-fields h4{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-sm);}
.import-fields h4:first-of-type{margin-top:var(--sp-3);}
#importModal .modal{width:min(680px,92vw);max-height:88vh;}
.import-fields pre{margin:var(--sp-3) 0;padding:var(--sp-3);background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);max-height:26rem;overflow:auto;}
.import-fields code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.75rem;line-height:1.5;white-space:pre;}
.import-fields .hint{margin:var(--sp-2) 0 0;}
.modal h2{font-size:1.1rem;font-weight:600;margin-bottom:1.25rem;}
.modal-field{margin-bottom:1rem;}
.modal-field label{display:block;font-size:0.75rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.35rem;}
.modal-field input{width:100%;padding:0.55rem 0.75rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:0.85rem;font-family:inherit;}
.modal-field input:focus{outline:none;border-color:var(--blue);}
.modal-actions{display:flex;justify-content:flex-end;gap:0.5rem;margin-top:1.25rem;}
.modal-msg{font-size:0.8rem;margin-top:0.75rem;padding:0.5rem 0.75rem;border-radius:6px;display:none;}
.modal-msg.ok{display:block;background:var(--green-dim);color:var(--green);}
.modal-msg.err{display:block;background:var(--red-dim);color:var(--red);}
.msg{font-size:var(--fs-sm);margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);display:none;}
.msg.ok{display:block;background:var(--green-dim);color:var(--green);}
.msg.err{display:block;background:var(--red-dim);color:var(--red);}
.chart-container{position:relative;width:100%;}
.chart-container canvas{width:100%;display:block;}
.chart-h-sm{height:130px;}
.chart-h-md{height:220px;}
.chart-h-lg{height:280px;}
.chart-h-170{height:170px;}
.chart-h-240{height:240px;}
.chart-h-250{height:250px;}
.phormlab-tooltip{position:fixed;z-index:100;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-xs);pointer-events:none;opacity:0;transition:opacity 0.12s;line-height:1.6;}
.phormlab-tooltip.visible{opacity:1;}
.phormlab-tooltip-title{font-weight:500;color:var(--text);white-space:nowrap;}
.phormlab-tooltip-row{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-dim);white-space:nowrap;}
.phormlab-tooltip-swatch{width:8px;height:3px;border-radius:1px;flex-shrink:0;}
.phormlab-tooltip-val{margin-left:auto;font-weight:500;font-variant-numeric:tabular-nums;color:var(--text);padding-left:var(--sp-3);}
.phormlab-guide{position:absolute;width:1px;background:var(--text-faint);pointer-events:none;opacity:0;transition:opacity 0.08s;z-index:1;}
.phormlab-guide.visible{opacity:1;}
.phormlab-dot{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid var(--surface);pointer-events:none;z-index:2;box-sizing:border-box;}
.btn-link{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;}
.btn-link:hover{color:var(--accent-hover);}
.toast-container{position:fixed;bottom:var(--sp-5);right:var(--sp-5);z-index:500;display:flex;flex-direction:column-reverse;gap:var(--sp-2);pointer-events:none;max-width:420px;width:calc(100vw - 2 * var(--sp-5));}
.toast{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-overlay);font-size:var(--fs-sm);pointer-events:auto;transform:translateX(110%);opacity:0;transition:transform 0.3s ease,opacity 0.3s ease;position:relative;overflow:hidden;}
.toast.toast-visible{transform:translateX(0);opacity:1;}
.toast.toast-exit{transform:translateX(110%);opacity:0;}
.toast-icon{flex-shrink:0;display:flex;align-items:center;margin-top:1px;}
.toast-icon svg,.toast-icon i[data-lucide]{width:16px;height:16px;}
.toast-body{flex:1;min-width:0;color:var(--text);line-height:1.4;word-break:break-word;}
.toast-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;color:var(--text-faint);cursor:pointer;border-radius:var(--r-sm);padding:0;transition:color 0.15s,background 0.15s;}
.toast-close:hover{color:var(--text);background:var(--surface-hover);}
.toast-close svg,.toast-close i[data-lucide]{width:14px;height:14px;}
.toast-undo{flex-shrink:0;border:none;background:none;color:var(--accent);font-size:var(--fs-sm);font-weight:600;font-family:inherit;cursor:pointer;padding:0 var(--sp-1);transition:opacity 0.15s;white-space:nowrap;}
.toast-undo:hover{opacity:0.8;}
.toast-progress{position:absolute;bottom:0;left:0;height:2px;border-radius:0 0 var(--r-md) var(--r-md);width:100%;transform-origin:left;animation:toast-shrink linear forwards;}
@keyframes toast-shrink{from{transform:scaleX(1);}
to{transform:scaleX(0);}
}
.toast-success .toast-icon{color:var(--green);}
.toast-success .toast-progress{background:var(--green);}
.toast-error .toast-icon{color:var(--red);}
.toast-error .toast-progress{background:var(--red);}
.toast-warning .toast-icon{color:var(--yellow);}
.toast-warning .toast-progress{background:var(--yellow);}
.toast-info .toast-icon{color:var(--blue);}
.toast-info .toast-progress{background:var(--blue);}
.skeleton-line{height:0.6rem;border-radius:3px;background:var(--border);margin-bottom:3px;animation:skeleton-pulse 1.2s ease-in-out infinite;}
.skeleton-line.short{width:55%;}
@keyframes skeleton-pulse{0%,100%{opacity:0.4;}
50%{opacity:0.12;}
}
.cad-spin{animation:cad-spin 0.8s linear infinite;display:inline-block;}
@keyframes cad-spin{to{transform:rotate(360deg);}
}
.cad-confirm-msg{font-size:var(--fs-md);color:var(--text-dim);line-height:1.6;}
.cad-confirm-input{width:100%;padding:0.5rem 0.7rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--fs-md);font-family:inherit;margin-top:var(--sp-3);}
.cad-confirm-input:focus{outline:none;border-color:var(--accent);}
.field-error input,.field-error select,.field-error textarea{border-color:var(--red);}
.field-error-msg{font-size:var(--fs-xs);color:var(--red);margin-top:0.25rem;}
.flash-bar{max-width:420px;margin:var(--sp-5) auto 0;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:var(--fs-sm);display:flex;align-items:center;gap:var(--sp-3);}
.flash-bar + .flash-bar{margin-top:var(--sp-2);}
.flash-bar i{width:16px;height:16px;flex:none;color:var(--text-dim);}
.flash-bar.error{border-color:var(--red);color:var(--red);}
.flash-bar.error i{color:var(--red);}
.sort-link{color:inherit;text-decoration:none;}
.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:0.75rem;margin-bottom:1rem;}
.review-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0.75rem;text-align:center;}
.review-card-label{font-size:0.7rem;text-transform:uppercase;color:var(--text-dim);}
.review-card-value{font-size:1.2rem;font-weight:700;}
.review-card-sub{font-size:0.75rem;color:var(--text-dim);}
.review-card-pct{font-size:0.75rem;font-weight:600;}
.review-workout-row{display:flex;align-items:center;gap:0.5rem;padding:0.35rem 0;font-size:0.82rem;border-bottom:1px solid var(--border);}
.review-workout-icon{width:16px;flex-shrink:0;}
.review-workout-date{color:var(--text-dim);width:40px;flex-shrink:0;}
.review-workout-km{color:var(--text-dim);margin-left:auto;}
.review-workout-reason{padding:0.3rem 0 0.45rem 3.5rem;font-size:0.78rem;line-height:1.4;color:var(--text-dim);border-bottom:1px solid var(--border);}
.review-warning{font-size:0.8rem;color:var(--red);margin-bottom:0.5rem;}
.review-notes{font-size:0.8rem;color:var(--text-dim);}
.weather-badge svg,.weather-badge i[data-lucide]{width:14px;height:14px;vertical-align:-2px;}
.weather-detail-icon svg,.weather-detail-icon i[data-lucide]{width:28px;height:28px;}
.tl-status{color:var(--text-dim);font-size:0.85rem;margin-bottom:0.5rem;}
.tl-gaps{color:var(--text-faint);font-size:var(--fs-xs);margin-bottom:0.5rem;}
.tl-gaps svg,.tl-gaps i[data-lucide]{width:13px;height:13px;vertical-align:-2px;margin-right:4px;}
.radio-group{display:flex;gap:0.75rem;margin-top:0.35rem;}
.radio-label{display:flex;align-items:center;gap:0.35rem;font-size:0.85rem;cursor:pointer;text-transform:none;letter-spacing:0;}
.import-hint{font-size:0.72rem;color:var(--text-dim);margin-top:0.35rem;}
.range-bar{display:flex;gap:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:3px;margin-bottom:var(--sp-5);}
.range-bar a{padding:0.35rem 0.75rem;font-size:var(--fs-xs);font-weight:500;color:var(--text-dim);text-decoration:none;border-radius:calc(var(--r-md) - 2px);transition:background 0.15s,color 0.15s;white-space:nowrap;}
.range-bar a:hover{color:var(--text);background:var(--surface-hover);}
.range-bar a.is-active{background:var(--accent-dim);color:var(--accent);font-weight:600;}
@media (max-width:480px){.range-bar{flex-wrap:wrap;}
.range-bar a{flex:1;text-align:center;padding:0.35rem 0.4rem;}
}
.section-icon svg,.section-icon i[data-lucide]{width:18px;height:18px;}
header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--sp-3);border-bottom:1px solid var(--border);margin-bottom:var(--sp-2);flex-wrap:wrap;gap:var(--sp-3);}
.header-left{display:flex;align-items:baseline;gap:var(--sp-3);}
.header-left h1{font-weight:600;display:flex;align-items:center;gap:var(--sp-2);}
.header-right{display:flex;align-items:center;gap:var(--sp-3);}
.sport-switcher{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:2px;}
.sport-switcher a{display:flex;align-items:center;gap:var(--sp-1);padding:0.3rem 0.6rem;border-radius:var(--r-sm);text-decoration:none;font-size:var(--fs-sm);font-weight:500;color:var(--text-dim);transition:all 0.15s;white-space:nowrap;}
.sport-switcher a:hover{color:var(--text);background:var(--surface-hover);}
.sport-switcher a.active{color:var(--text);background:var(--accent-dim);box-shadow:0 0 0 1px var(--accent);}
.sport-switcher a svg,.sport-switcher a i[data-lucide]{width:14px;height:14px;flex-shrink:0;}
.theme-switcher{display:flex;gap:0;padding:var(--sp-1) var(--sp-2);}
.theme-option{flex:1;justify-content:center;border-radius:var(--r-sm);font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-2);}
.theme-option.is-active{background:var(--accent-dim);color:var(--accent);}
.util-menu{position:relative;}
.util-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;transition:color 0.15s,background 0.15s,border-color 0.15s;}
.util-toggle:hover{color:var(--text);background:var(--surface-hover);border-color:var(--border-strong);}
.util-toggle svg,.util-toggle i[data-lucide]{width:16px;height:16px;}
.util-dropdown{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-1);z-index:200;box-shadow:var(--shadow-overlay);}
.util-dropdown.open{display:block;}
.util-dropdown a,.util-dropdown button.util-item{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);text-decoration:none;font-size:var(--fs-sm);color:var(--text-dim);transition:color 0.15s,background 0.15s;width:100%;border:none;background:none;cursor:pointer;font-family:inherit;text-align:left;}
.util-dropdown a:hover,.util-dropdown button.util-item:hover{color:var(--text);background:var(--surface-hover);}
.util-dropdown a svg,.util-dropdown a i[data-lucide],.util-dropdown button svg,.util-dropdown button i[data-lucide]{width:15px;height:15px;flex-shrink:0;}
.util-dropdown button.util-item:disabled{opacity:0.5;cursor:not-allowed;}
.util-dropdown button.util-item:disabled:hover{background:none;color:var(--text-dim);}
.util-divider{height:1px;background:var(--border);margin:var(--sp-1) 0;}
.sync-meta{padding:0 var(--sp-3) var(--sp-1);font-size:var(--fs-xs);color:var(--text-faint);}
.sync-progress-bar{height:2px;background:var(--border);border-radius:1px;margin:var(--sp-1) var(--sp-3) var(--sp-1);overflow:hidden;}
.sync-progress-fill{height:100%;background:var(--accent);border-radius:1px;transition:width 0.3s ease;width:0%;}
@keyframes sync-spin{to{transform:rotate(360deg);}
}
.sync-spinning svg,.sync-spinning i[data-lucide]{animation:sync-spin 1s linear infinite;}
.main-nav{display:flex;align-items:center;gap:0;padding-bottom:var(--sp-3);border-bottom:1px solid var(--border);margin-bottom:var(--sp-5);overflow-x:auto;}
.nav-link{position:relative;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);text-decoration:none;font-size:var(--fs-md);color:var(--text-dim);transition:color 0.15s,background 0.15s;white-space:nowrap;}
.nav-link:hover{color:var(--text);background:var(--surface-hover);}
.nav-link.active{color:var(--text);font-weight:500;}
.nav-link.active::after{content:'';position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:-0.55rem;height:2px;border-radius:2px;background:var(--accent);}
.nav-sep{width:1px;height:16px;background:var(--border);margin:0 var(--sp-1);flex-shrink:0;}
@media (max-width:768px){.nav-link{font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-2);}
.nav-sep{margin:0;}
}
.nav-toggle{display:none;}
@media (max-width:640px){.sport-switcher span.sport-label{display:none;}
.nav-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-md);font-weight:500;font-family:inherit;cursor:pointer;}
.nav-toggle i{width:16px;height:16px;color:var(--text-dim);transition:transform 0.15s;}
.nav-toggle[aria-expanded="true"] i{transform:rotate(180deg);}
.nav-toggle[aria-expanded="true"]{margin-bottom:0;border-radius:var(--r-md) var(--r-md) 0 0;}
.main-nav{display:none;flex-direction:column;align-items:stretch;gap:0;overflow-x:visible;padding:0;margin-bottom:var(--sp-4);border:1px solid var(--border);border-top:0;border-radius:0 0 var(--r-md) var(--r-md);background:var(--surface);}
.main-nav.is-open{display:flex;}
.nav-link{font-size:var(--fs-md);padding:0.7rem var(--sp-3);min-height:44px;display:flex;align-items:center;border-radius:0;border-top:1px solid var(--border);}
.nav-link.active::after{display:none;}
.nav-link.active{box-shadow:inset 2px 0 0 var(--accent);background:var(--surface-hover);}
.nav-sep{display:none;}
}
@media (max-width:480px){.header-left h1{font-size:1.1rem;}
.brand-text{font-size:1.1rem;}
.brand-lockup{height:23px;}
.header-left{gap:var(--sp-2);}
header{gap:var(--sp-2);padding-bottom:var(--sp-2);}
.sport-switcher a{padding:0.3rem 0.5rem;font-size:var(--fs-xs);}
.nav-link{font-size:var(--fs-xs);padding:0.6rem 0.35rem;}
.nav-sep{display:none;}
}:root{--workout-easy:#4a9eff;--workout-long:#3dd68c;--workout-tempo:#e85d3a;--workout-interval:#ef4444;--workout-recovery:#8b919e;--workout-race:#f0c430;--workout-cross:#a78bfa;--workout-rest:#374151;}
.workout-easy{--workout-colour:var(--workout-easy);}
.workout-long{--workout-colour:var(--workout-long);}
.workout-tempo{--workout-colour:var(--workout-tempo);}
.workout-interval{--workout-colour:var(--workout-interval);}
.workout-recovery{--workout-colour:var(--workout-recovery);}
.workout-race{--workout-colour:var(--workout-race);}
.workout-cross{--workout-colour:var(--workout-cross);}
.workout-rest{--workout-colour:var(--workout-rest);}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}
.phormlab-data-table{margin-top:var(--sp-2);font-size:var(--fs-sm);}
.phormlab-data-table table{width:100%;border-collapse:collapse;margin-top:var(--sp-2);overflow-x:auto;display:block;}
.phormlab-data-table th,.phormlab-data-table td{padding:var(--sp-1) var(--sp-2);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;}
.phormlab-data-table th{color:var(--text-dim);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.06em;}
.phormlab-data-table td{font-variant-numeric:tabular-nums;}
.footer-link{grid-column:1;display:inline-flex;align-items:center;gap:0.35rem;justify-self:start;font-size:var(--fs-sm);color:var(--text-faint);text-decoration:none;}
.footer-link:hover{color:var(--accent);}
.footer-link svg,.footer-link i[data-lucide]{width:14px;height:14px;}
@media (max-width:560px){.site-footer{grid-template-columns:1fr;justify-items:center;gap:var(--sp-3);}
.footer-link{grid-column:1;justify-self:center;}
}
.form-group{display:flex;flex-direction:column;gap:0.25rem;}
.form-group label{font-size:var(--fs-sm);font-weight:500;color:var(--text-dim);}
.form-group input,.form-group select,.form-group textarea{padding:0.5rem 0.75rem;}
.form-group textarea{resize:vertical;min-height:60px;}
.form-group-spaced{margin-top:var(--sp-4);}
.form-actions{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);}
.form-row{display:flex;gap:var(--sp-3);flex-wrap:wrap;}
.site-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:var(--sp-6) 0 var(--sp-4);margin-top:var(--sp-4);}
.strava-attribution{display:inline-flex;}
.strava-mark{display:block;width:92px;height:auto;}
.strava-mark-dark{display:none;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .strava-mark-light{display:none;}:root:not([data-theme="light"]) .strava-mark-dark{display:block;}
}:root[data-theme="dark"] .strava-mark-light{display:none;}:root[data-theme="dark"] .strava-mark-dark{display:block;}
.home-shot-img{display:block;width:100%;height:auto;}
.home-shot-dark{display:none;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .home-shot-light{display:none;}:root:not([data-theme="light"]) .home-shot-dark{display:block;}
}:root[data-theme="dark"] .home-shot-light{display:none;}:root[data-theme="dark"] .home-shot-dark{display:block;}
.home-icon-to-light{display:none;}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .home-icon-to-dark{display:none;}:root:not([data-theme="light"]) .home-icon-to-light{display:inline-flex;}
}:root[data-theme="dark"] .home-icon-to-dark{display:none;}:root[data-theme="dark"] .home-icon-to-light{display:inline-flex;}
.strava-connect{display:inline-block;line-height:0;}
.strava-connect img{width:237px;max-width:100%;height:auto;}
.strava-link{color:#fc5200;font-weight:600;text-decoration:none;margin-left:var(--sp-2);}
.strava-link:hover{text-decoration:underline;}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);}
.two-col > *{min-width:0;}
@media (max-width:768px){.two-col{grid-template-columns:1fr;}
}
.pagination{display:flex;justify-content:center;align-items:center;gap:var(--sp-1);margin-top:var(--sp-5);font-size:var(--fs-sm);color:var(--text-dim);}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 var(--sp-2);border-radius:var(--r-sm);text-decoration:none;color:var(--text-dim);transition:background 0.15s,color 0.15s;}
.pagination a:hover{background:var(--surface-hover);color:var(--text);}
.pagination .disabled{opacity:0.3;pointer-events:none;}
.pagination svg,.pagination i[data-lucide]{width:16px;height:16px;}
.pagination-range{font-variant-numeric:tabular-nums;padding:0 var(--sp-2);white-space:nowrap;}
.phase-badge{display:inline-block;padding:0.15rem 0.55rem;border-radius:4px;font-size:0.75rem;font-weight:600;background:var(--phase-dim);color:var(--phase-fg);}
.phase-seg{background:var(--phase-dim);}
.phase-badge,.phase-seg{--phase-fg:var(--text-dim);--phase-dim:var(--surface-hover);}
.phase-tone-0{--phase-fg:var(--phase-0);--phase-dim:var(--phase-0-dim);}
.phase-tone-1{--phase-fg:var(--phase-1);--phase-dim:var(--phase-1-dim);}
.phase-tone-2{--phase-fg:var(--phase-2);--phase-dim:var(--phase-2-dim);}
.phase-tone-3{--phase-fg:var(--phase-3);--phase-dim:var(--phase-3-dim);}
.phase-tone-4{--phase-fg:var(--phase-4);--phase-dim:var(--phase-4-dim);}
.phase-tone-5{--phase-fg:var(--phase-5);--phase-dim:var(--phase-5-dim);}
.phase-tone-6{--phase-fg:var(--phase-6);--phase-dim:var(--phase-6-dim);}
.phase-tone-7{--phase-fg:var(--text-dim);--phase-dim:var(--surface-hover);}
.state-switch{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;}
.state-option{padding:0.3rem 0.75rem;font-size:var(--fs-sm);font-weight:500;background:transparent;border:none;color:var(--text-dim);cursor:pointer;transition:background 0.15s,color 0.15s;}
.state-option:hover:not(:disabled){background:var(--surface-hover);color:var(--text);}
.state-option.is-current{background:var(--accent);color:#fff;cursor:default;}
.state-option:disabled{opacity:1;}
.state-option.is-current:disabled{color:#fff;}
.detail-nav{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);}
.detail-nav-center{flex:1;text-align:center;font-size:var(--fs-sm);color:var(--text-dim);}
@media (max-width:768px){.detail-nav{gap:var(--sp-2);}
.detail-nav .btn{font-size:var(--fs-xs);padding:0.3rem 0.5rem;}
}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:var(--sp-5);overflow:hidden;}
.metric{padding:var(--sp-4) var(--sp-5);border-left:1px solid var(--border);}
.metric:first-child{border-left:none;}
.metric-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.07em;color:var(--text-faint);}
.metric-value{font-size:1.4rem;font-weight:600;margin-top:0.2rem;line-height:1.15;}
.metric-sub{font-size:var(--fs-xs);color:var(--text-dim);margin-top:0.1rem;}
@media (max-width:640px){.metrics{grid-template-columns:1fr 1fr;}
.metric{border-left:none;border-top:1px solid var(--border);}
.metric:nth-child(-n+2){border-top:none;}
.metric:nth-child(odd){border-right:1px solid var(--border);}
}
@media (max-width:480px){.metric{padding:var(--sp-3) var(--sp-4);}
.metric-value{font-size:1.1rem;}
}
.filter-bar{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:flex-end;margin-bottom:var(--sp-4);}
.filter-bar .field{margin-bottom:0;flex:0 0 auto;}
.filter-toggle{display:none;}
.filter-bar .field.search-field{flex:1 1 200px;min-width:160px;}
.filter-bar input,.filter-bar select{width:100%;padding:0.4rem 0.6rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--fs-sm);font-family:inherit;transition:border-color 0.15s;}
.filter-bar input:focus,.filter-bar select:focus{outline:none;border-color:var(--accent);}
.filter-bar label{display:block;font-size:0.65rem;font-weight:500;color:var(--text-faint);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.2rem;}
.filter-bar input[type="date"]{width:auto;min-width:8.5em;}
.filter-bar input[type="number"]{width:80px;}
.filter-bar select{width:auto;min-width:90px;}
.filter-actions{display:flex;gap:var(--sp-1);align-self:flex-end;}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap;transition:color 0.15s;}
th.sortable:hover{color:var(--text);}
th.sortable .sort-icon{display:inline-block;width:12px;margin-left:2px;opacity:0.3;vertical-align:middle;}
th.sorted{color:var(--text);}
th.sorted .sort-icon{opacity:1;}
.result-info{font-size:var(--fs-sm);color:var(--text-dim);}
@media (max-width:768px){.filter-bar{gap:var(--sp-1);}
}
@media (max-width:640px){.filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font:inherit;font-weight:500;cursor:pointer;}
.filter-toggle i{width:16px;height:16px;color:var(--text-dim);}
.filter-bar{display:none;gap:var(--sp-1);}
.filter-bar.is-open{display:flex;}
.filter-bar.is-open{flex-direction:column;align-items:stretch;}
.filter-bar .field{flex:1 1 auto;}
.filter-bar input[type="date"],.filter-bar input[type="number"],.filter-bar select{width:100%;min-width:0;}
.filter-actions{justify-content:stretch;}
.filter-actions .btn{flex:1;}
}
.facts{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:var(--sp-2) var(--sp-4);margin:0;}
.facts dt{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.06em;color:var(--text-faint);}
.facts dd{margin:0;font-size:var(--fs-sm);}
@media (max-width:480px){.facts{grid-template-columns:1fr;gap:var(--sp-1) 0;}
.facts dd{margin-bottom:var(--sp-2);}
}
table{width:100%;border-collapse:collapse;font-size:0.85rem;font-variant-numeric:tabular-nums;}
th{text-align:left;padding:0.6rem 0.75rem;color:var(--text-dim);font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;white-space:nowrap;}
td{padding:0.6rem 0.75rem;border-bottom:1px solid var(--border);}
tbody tr:last-child td{border-bottom:none;}
@media (max-width:768px){table{font-size:0.8rem;}
th,td{padding:0.5rem 0.6rem;}
}
@media (max-width:480px){table{font-size:0.75rem;}
th,td{padding:0.4rem 0.5rem;}
}
body.page-activities{table{width:100%;border-collapse:collapse;font-size:0.85rem;font-variant-numeric:tabular-nums;}
.cell-equip{max-width:160px;color:var(--text-dim);}
.equip-cell{display:flex;align-items:center;gap:var(--sp-2);}
.equip-cell svg{width:14px;height:14px;flex-shrink:0;}
.equip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
th{text-align:left;padding:0.6rem 0.75rem;color:var(--text-dim);font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}
td{padding:0.6rem 0.75rem;border-bottom:1px solid var(--border);}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--surface-hover);}
.zone-badge{display:inline-block;padding:0.15rem 0.5rem;border-radius:4px;font-size:0.75rem;font-weight:600;}
.zone-1{background:var(--zone-tint);color:var(--zone1);}
.zone-2{background:var(--zone-tint);color:var(--zone2);}
.zone-3{background:var(--zone-tint);color:var(--zone3);}
.zone-4{background:var(--zone-tint);color:var(--zone4);}
.zone-5{background:var(--zone-tint);color:var(--zone5);}
.zone-badge-label{font-weight:400;font-size:0.65rem;}
@media (max-width:768px){table{font-size:0.8rem;}
th,td{padding:0.5rem 0.6rem;}
}
@media (max-width:640px){}
@media (max-width:480px){table{font-size:0.75rem;}
th,td{padding:0.4rem 0.5rem;}
}
}
body.page-activity-detail{.detail-header{margin-bottom:var(--sp-5);}
.detail-header-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3);}
.detail-sport svg{width:14px;height:14px;}
.detail-sport{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.06em;color:var(--text-dim);font-weight:500;margin-bottom:var(--sp-1);}
.detail-name{font-size:var(--fs-xl);font-weight:600;letter-spacing:-0.01em;cursor:pointer;border-bottom:1px dashed var(--border);padding-bottom:2px;}
.detail-name:hover{border-bottom-color:var(--accent);}
.detail-date{font-size:var(--fs-sm);color:var(--text-dim);margin-top:var(--sp-1);}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--sp-4);}
.stat-item{}
.stat-value{font-size:var(--fs-2xl);font-weight:700;line-height:1.2;}
.stat-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;font-weight:500;}
.stat-unit{font-size:var(--fs-md);font-weight:400;color:var(--text-dim);}
.splits-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.splits-table th{text-align:left;padding:var(--sp-2) var(--sp-3);color:var(--text-dim);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}
.splits-table td{padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border);}
.splits-table tr.fastest td{color:var(--green);}
.splits-table tr.slowest td{color:var(--red);}
.splits-table tr.partial td{color:var(--text-dim);font-style:italic;}
.pace-bar-cell{width:35%;}
.pace-bar{height:6px;border-radius:3px;background:var(--data-1);transition:width 0.3s;}
.fastest .pace-bar{background:var(--green);}
.slowest .pace-bar{background:var(--red);}
.partial .pace-bar{background:var(--text-faint);}
.zone-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;font-size:var(--fs-sm);}
.zone-row + .zone-row{border-top:1px solid var(--border);}
.zone-label{width:55px;font-weight:600;flex-shrink:0;}
.zone-bar-wrap{flex:1;height:8px;background:var(--bg);border-radius:4px;overflow:hidden;}
.zone-bar{height:100%;border-radius:4px;transition:width 0.3s;}
.zone-time{width:55px;text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;}
.zone-pct{width:40px;text-align:right;color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;}
.efforts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp-3);}
.effort-item{padding:var(--sp-3);background:var(--bg);border-radius:var(--r-md);text-align:center;}
.effort-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;font-weight:600;margin-bottom:var(--sp-1);}
.effort-time{font-size:var(--fs-lg);font-weight:700;color:var(--accent);}
.effort-pace{font-size:var(--fs-xs);color:var(--text-dim);margin-top:var(--sp-1);}
.compare{width:100%;border-collapse:collapse;}
.compare th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.06em;font-weight:600;color:var(--text-dim);padding:0.3rem 0.5rem 0.3rem 0;}
.compare thead th{padding-bottom:var(--sp-2);}
.compare tbody th{text-transform:none;letter-spacing:0;color:var(--text);}
.compare td{padding:0.3rem 0.5rem 0.3rem 0;font-variant-numeric:tabular-nums;white-space:nowrap;}
.compare-short{color:var(--yellow);}
.description-display{white-space:pre-wrap;font-size:var(--fs-md);line-height:1.6;color:var(--text-dim);}
.description-edit{width:100%;min-height:80px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:var(--fs-md);font-family:inherit;resize:vertical;line-height:1.6;display:none;}
.description-edit:focus{outline:none;border-color:var(--accent);}
.equipment-link{display:inline-flex;align-items:center;gap:var(--sp-2);color:var(--text);text-decoration:none;font-size:var(--fs-md);}
.equipment-link:hover{color:var(--accent);}
.equipment-link svg{width:16px;height:16px;flex-shrink:0;}
.equip-list{display:flex;flex-direction:column;}
.equip-entry{display:flex;align-items:center;gap:var(--sp-3);padding:0.45rem 0;border-bottom:1px solid var(--border);}
.equip-entry:last-child{border-bottom:none;}
.equip-entry svg,.equip-entry i[data-lucide]{width:16px;height:16px;flex-shrink:0;color:var(--text-dim);}
.equip-entry-img{width:28px;height:28px;border-radius:var(--r-sm);object-fit:cover;flex-shrink:0;border:1px solid var(--border);}
.equip-entry-name{flex:1;min-width:0;font-size:var(--fs-md);}
.equip-entry-km{font-size:var(--fs-sm);color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;}
.equip-entry-remove{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-faint);cursor:pointer;flex-shrink:0;}
.equip-entry-remove:hover{background:var(--surface-hover);color:var(--red);}
.equip-entry-remove svg{width:14px;height:14px;color:inherit;}
.equip-empty{margin:0.35rem 0;}
.equip-add{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);}
.equip-add select{flex:1;min-width:0;}
@media (max-width:768px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.detail-header-top{flex-wrap:wrap;}
.efforts-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));}
.photo-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));}
}
@media (max-width:480px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);}
.stat-value{font-size:1.4rem;}
}
}
body.page-analytics{.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);align-items:start;}
.zones-grid{margin:0 calc(-1 * var(--sp-5)) calc(-1 * var(--sp-5));}
.zone-row{display:grid;grid-template-columns:3px 1fr auto auto;gap:var(--sp-4);align-items:center;padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);}
.zone-indicator{width:3px;height:30px;border-radius:2px;}
.zone-indicator.z1{background:var(--zone1);}
.zone-indicator.z2{background:var(--zone2);}
.zone-indicator.z3{background:var(--zone3);}
.zone-indicator.z4{background:var(--zone4);}
.zone-indicator.z5{background:var(--zone5);}
.zone-name{font-weight:500;font-size:var(--fs-md);}
.zone-name-sub{color:var(--text-dim);font-weight:400;}
.zone-detail{font-size:var(--fs-sm);color:var(--text-dim);margin-top:0.1rem;}
.zone-hr{font-size:var(--fs-md);font-weight:500;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;}
.zone-hr-unit{color:var(--text-faint);font-weight:400;}
.zone-pct{font-size:var(--fs-sm);color:var(--text-faint);font-variant-numeric:tabular-nums;text-align:right;min-width:56px;}
.hr-summary{margin-top:var(--sp-4);font-size:var(--fs-sm);color:var(--text-dim);}
.zone-badge{display:inline-block;padding:0.15rem 0.5rem;border-radius:4px;font-size:0.75rem;font-weight:600;}
.zone-1{background:var(--zone-tint);color:var(--zone1);}
.zone-2{background:var(--zone-tint);color:var(--zone2);}
.zone-3{background:var(--zone-tint);color:var(--zone3);}
.zone-4{background:var(--zone-tint);color:var(--zone4);}
.zone-5{background:var(--zone-tint);color:var(--zone5);}
.pace-dist-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
.pace-dist-grid .pace-dist-card:first-child{border-left:none;}
.pace-dist-card{padding:var(--sp-3) var(--sp-4);border-left:1px solid var(--border);}
.pace-dist-label{font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-faint);margin-bottom:0.25rem;}
.pace-dist-card.is-target{background:var(--accent-dim);border-radius:var(--r-md);}
.pace-dist-value{font-size:1.4rem;font-weight:600;line-height:1.2;}
.pace-dist-sub{font-size:0.75rem;color:var(--text-dim);margin-top:0.2rem;font-variant-numeric:tabular-nums;}
.pace-dist-meta{font-size:0.65rem;color:var(--text-faint);margin-top:0.3rem;}
.chart-container-spaced{margin-top:var(--sp-5);}
.tl-status-label{font-weight:600;}
.tl-scope{margin:0 0 var(--sp-3);}
.empty-state-full{grid-column:1 / -1;}
@media (max-width:768px){.grid-2{grid-template-columns:1fr;}
.chart-container{height:180px;}
.pace-dist-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:0.5rem;}
.zone-row{grid-template-columns:3px 1fr auto;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);}
.zone-pct{display:none;}
.zone-hr{font-size:0.8rem;}
.zone-name{font-size:0.8rem;}
.zone-detail{font-size:0.7rem;}
}
@media (max-width:600px){.zone-row{grid-template-columns:3px 1fr auto;}
.zone-pct{display:none;}
}
@media (max-width:480px){.pace-dist-grid{grid-template-columns:1fr 1fr;}
.pace-dist-card{border-left:none;border-top:1px solid var(--border);padding:var(--sp-2) var(--sp-3);}
.pace-dist-grid .pace-dist-card:nth-child(-n+2){border-top:none;}
.pace-dist-value{font-size:1.1rem;}
.zone-name{font-size:var(--fs-sm);}
.zone-hr{font-size:var(--fs-sm);}
}
}
body.page-assign-shoes{.subtitle{color:var(--text-dim);font-size:0.9rem;margin-bottom:1.5rem;}
.section{padding:1.25rem;margin-bottom:1.5rem;}
.activity-row{display:flex;align-items:center;gap:1rem;padding:0.75rem;background:var(--bg);border-radius:8px;margin-bottom:0.5rem;}
.activity-info{flex:1;}
.activity-name{font-weight:500;font-size:0.9rem;}
.activity-meta{font-size:0.8rem;color:var(--text-dim);font-variant-numeric:tabular-nums;}
.shoe-select{padding:0.45rem 0.7rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:0.85rem;font-family:inherit;cursor:pointer;min-width:160px;}
.shoe-select:focus{border-color:var(--blue);outline:none;}
.actions{display:flex;gap:0.75rem;justify-content:flex-end;margin-top:1rem;}
.all-select{display:flex;align-items:center;gap:0.75rem;margin-bottom:1rem;padding:0.75rem;background:var(--surface);border-radius:8px;border:1px solid var(--border);}
.all-select label{font-size:0.85rem;color:var(--text-dim);}
.assign-card{max-width:800px;width:100%;}
@media (max-width:600px){.activity-row{flex-wrap:wrap;gap:0.5rem;}
.shoe-select{width:100%;}
}
}
body.page-calendar{.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:0.75rem;}
.toolbar-left{display:flex;align-items:center;gap:0.75rem;}
.toolbar-right{display:flex;align-items:center;gap:0.5rem;}
.btn-group{display:flex;}
.btn-group .btn{border-radius:0;border-right-width:0;}
.btn-group .btn:first-child{border-radius:6px 0 0 6px;}
.btn-group .btn:last-child{border-radius:0 6px 6px 0;border-right-width:1px;}
.btn-group .btn.active{background:var(--blue-dim);color:var(--blue);}
.current-period{font-size:1.1rem;font-weight:600;min-width:200px;text-align:center;}
.cal-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.cal-header{background:var(--surface);padding:0.6rem;text-align:center;font-size:0.75rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;}
.cal-day{background:var(--bg);min-height:110px;padding:0.4rem;cursor:pointer;transition:background 0.1s;position:relative;}
.cal-day:hover{background:var(--surface-hover);}
.cal-day.other-month{color:var(--text-faint);}
.cal-day.today{background:var(--blue-dim);box-shadow:inset 0 2px 0 var(--blue);}
.cal-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.25rem;margin-bottom:0.25rem;min-height:1.1rem;}
.cal-day-weather{flex-shrink:0;}
.cal-day-num{font-size:0.8rem;font-weight:500;font-variant-numeric:tabular-nums;}
.cal-day.today .cal-day-num{color:var(--blue);font-weight:700;}
.cal-week{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.cal-week-header{background:var(--surface);padding:0.75rem 0.5rem;text-align:center;font-size:0.8rem;}
.cal-week-header .day-name{font-weight:600;color:var(--text-dim);text-transform:uppercase;font-size:0.7rem;letter-spacing:0.06em;}
.cal-week-header .day-num{font-size:1.1rem;font-weight:600;margin-top:0.15rem;font-variant-numeric:tabular-nums;}
.cal-week-header.today{background:var(--blue-dim);}
.cal-week-header.today .day-num{color:var(--blue);}
.cal-week-time{background:var(--surface);padding:0.25rem 0.4rem;font-size:0.7rem;color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums;}
.cal-week-cell{background:var(--bg);padding:0.3rem;min-height:60px;cursor:pointer;transition:background 0.1s;}
.cal-week-cell:hover{background:var(--surface-hover);}
.cal-week-cell.today{background:var(--blue-dim);}
.cal-week-corner{background:var(--surface);}
.cal-day-view{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.cal-day-view-header{padding:1.25rem;border-bottom:1px solid var(--border);}
.cal-day-view-header h2{font-size:1.2rem;font-weight:600;}
.cal-day-view-header .date-sub{color:var(--text-dim);font-size:0.85rem;}
.cal-day-view-body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem;}
.event{padding:0.2rem 0.4rem;border-radius:4px;font-size:0.72rem;font-weight:500;margin-bottom:2px;cursor:pointer;border-left:3px solid;white-space:normal;overflow-wrap:anywhere;line-height:1.25;}
.event-workout{background:var(--surface);}
.event-activity{background:var(--green-dim);border-left-color:var(--green) !important;color:var(--green);}
.event-milestone{background:var(--yellow-dim);border-left-color:var(--yellow) !important;color:var(--yellow);font-weight:600;}
.event-race{background:var(--accent-dim);border-left-color:var(--accent) !important;color:var(--accent);font-weight:600;cursor:pointer;}
.week-event{padding:0.35rem 0.5rem;border-radius:6px;font-size:0.78rem;margin-bottom:3px;border-left:3px solid;background:var(--surface);}
.week-event-title{font-weight:600;overflow-wrap:anywhere;}
.week-event-meta{font-size:0.72rem;color:var(--text-dim);margin-top:0.1rem;}
.day-card{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:1rem;border-left:4px solid;}
.day-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem;}
.day-card-type{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;font-weight:600;}
.day-card-title{font-size:1rem;font-weight:600;}
.day-card-meta{display:flex;gap:1.5rem;font-size:0.85rem;color:var(--text-dim);margin-top:0.5rem;}
.day-card-desc{font-size:0.85rem;color:var(--text-dim);margin-top:0.5rem;line-height:1.6;}
.day-card-reason{font-size:0.8rem;color:var(--text-dim);margin-top:0.4rem;line-height:1.5;font-style:italic;}
.notes-input{width:100%;min-height:40px;padding:0.5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:0.8rem;font-family:inherit;resize:vertical;line-height:1.4;}
.notes-input:focus{border-color:var(--blue);outline:none;}
.notes-saved{font-size:0.7rem;color:var(--green);opacity:0;transition:opacity 0.3s;}
.weather-badge{display:inline-flex;align-items:center;gap:0.2rem;font-size:0.7rem;color:var(--text-dim);font-variant-numeric:tabular-nums;}
.weather-icon{line-height:1;}
.weather-icon svg{width:14px;height:14px;}
.cal-toggle-label{font-size:0.85rem;}
.btn-start{margin-right:auto;}
.event[draggable],.week-event[draggable]{cursor:grab;}
.completed-check{display:inline-flex;width:12px;height:12px;vertical-align:middle;}
.completed-check svg{width:12px;height:12px;}
.event i[data-lucide] svg,.week-event i[data-lucide] svg{width:12px;height:12px;}
.day-card-type i[data-lucide] svg{width:14px;height:14px;}
.day-card-check svg{width:14px;height:14px;}
.weather-temp{font-weight:500;}
.weather-detail{background:var(--bg);border-radius:8px;padding:0.75rem;margin-bottom:0.75rem;display:flex;gap:1.25rem;flex-wrap:wrap;align-items:center;}
.weather-detail-icon{font-size:2rem;display:flex;align-items:center;}
.weather-detail-icon svg{width:2rem;height:2rem;}
.weather-detail-temps{display:flex;flex-direction:column;}
.weather-detail-max{font-size:1.1rem;font-weight:600;}
.weather-detail-min{font-size:0.85rem;color:var(--text-dim);}
.weather-detail-meta{display:flex;flex-direction:column;gap:0.15rem;font-size:0.8rem;color:var(--text-dim);}
.weather-detail-forecast{font-size:0.65rem;color:var(--blue);font-weight:500;text-transform:uppercase;letter-spacing:0.05em;}
.weather-warn{color:var(--red);font-weight:600;}
.day-card-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:0.7rem;transition:all 0.15s;}
.day-card-check.done{background:var(--green);border-color:var(--green);color:var(--bg);}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:100;justify-content:center;align-items:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;width:90%;max-width:480px;max-height:85vh;overflow-y:auto;}
.modal h3{font-size:1.1rem;margin-bottom:1.25rem;}
.modal-tabs{display:flex;gap:0;margin-bottom:1.25rem;border:1px solid var(--border);border-radius:6px;overflow:hidden;}
.modal-tab{flex:1;padding:0.45rem;text-align:center;font-size:0.8rem;cursor:pointer;color:var(--text-dim);background:transparent;border:none;transition:all 0.15s;}
.modal-tab:not(:last-child){border-right:1px solid var(--border);}
.modal-tab.active{background:var(--accent-dim);color:var(--text);}
.modal-tab:hover:not(.active){color:var(--text);background:var(--surface-hover);}
.tab-content{display:none;}
.tab-content.active{display:block;}
.toggle-row{display:flex;align-items:center;gap:0.75rem;margin-top:0.5rem;}
.toggle-switch{position:relative;width:36px;height:20px;cursor:pointer;}
.toggle-switch input{display:none;}
.toggle-track{position:absolute;inset:0;background:var(--border);border-radius:10px;transition:background 0.2s;}
.toggle-switch input:checked + .toggle-track{background:var(--accent);}
.toggle-track::after{content:'';position:absolute;width:16px;height:16px;background:var(--text);border-radius:50%;top:2px;left:2px;transition:transform 0.2s;}
.toggle-switch input:checked + .toggle-track::after{transform:translateX(16px);}
.form-group{margin-bottom:1rem;}
.form-group label{display:block;font-size:0.8rem;color:var(--text-dim);margin-bottom:0.3rem;font-weight:500;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:0.5rem 0.7rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:0.9rem;font-family:inherit;}
.form-group textarea{resize:vertical;min-height:60px;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--blue);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;}
.modal-actions{display:flex;gap:0.5rem;justify-content:flex-end;margin-top:1.25rem;}
.phase-badge{display:inline-block;padding:0.15rem 0.5rem;border-radius:4px;font-size:0.7rem;font-weight:600;background:var(--surface-hover);color:var(--text);}
.match-icon{display:inline-flex;align-items:center;margin-right:3px;vertical-align:middle;}
.match-icon svg,.match-icon i[data-lucide]{width:10px;height:10px;}
.match-icon.s{color:var(--green);}
.match-icon.p{color:var(--yellow);}
.match-icon.m{color:var(--red);}
.event.status-success{background:var(--green-dim);}
.event.status-partial{background:var(--yellow-dim);}
.event.status-missed{background:var(--red-dim);}
.week-event.status-success{background:var(--green-dim);}
.week-event.status-partial{background:var(--yellow-dim);}
.week-event.status-missed{background:var(--red-dim);}
.day-card-check.success{background:var(--green);border-color:var(--green);color:var(--bg);}
.day-card-check.partial{background:var(--yellow);border-color:var(--yellow);color:var(--bg);}
.day-card-check.missed{background:var(--red);border-color:var(--red);color:var(--bg);}
.match-result{margin-top:0.75rem;padding:0.6rem 0.75rem;border-radius:6px;font-size:0.82rem;border-left:3px solid;}
.match-result.success{background:var(--green-dim);border-left-color:var(--green);}
.match-result.partial{background:var(--yellow-dim);border-left-color:var(--yellow);}
.match-result.missed{background:var(--red-dim);border-left-color:var(--red);}
.match-badge{font-weight:600;margin-bottom:0.3rem;}
.match-badge.success{color:var(--green);}
.match-badge.partial{color:var(--yellow);}
.match-badge.missed{color:var(--red);}
.match-details{display:flex;flex-wrap:wrap;gap:0.5rem 1.25rem;font-size:0.8rem;color:var(--text-dim);}
.match-detail-item{display:flex;align-items:center;gap:0.3rem;}
.match-detail-item .val{color:var(--text);font-weight:500;}
.match-vs{color:var(--text-dim);font-size:0.75rem;}
.cal-error{display:flex;flex-direction:column;align-items:center;gap:0.75rem;padding:3rem 1rem;color:var(--text-dim);text-align:center;}
.cal-error .error-icon{color:var(--yellow);}
.week-event-milestone{border-left-color:var(--yellow);background:var(--yellow-dim);}
.week-event-milestone .week-event-title{color:var(--yellow);}
.week-event-race{border-left-color:var(--accent);background:var(--accent-dim);}
.week-event-race .week-event-title{color:var(--accent);}
.week-event-activity{border-left-color:var(--green);background:var(--green-dim);}
.week-event-activity .week-event-title{color:var(--green);}
.day-card-milestone{border-left-color:var(--yellow);}
.day-card-milestone .day-card-type{color:var(--yellow);}
.day-card-race{border-left-color:var(--accent);cursor:pointer;}
.day-card-race .day-card-type{color:var(--accent);}
.day-card-activity{border-left-color:var(--green);}
.day-card-activity .day-card-type{color:var(--green);}
.day-notes{margin-top:0.5rem;}
.day-card-actions{margin-top:0.5rem;}
.cal-empty{text-align:center;padding:3rem;color:var(--text-dim);}
.cal-empty .btn{margin-top:1rem;}
.cal-agenda{display:flex;flex-direction:column;gap:0;}
.agenda-day{border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.1s;}
.agenda-day:first-child{border-top:1px solid var(--border);border-radius:10px 10px 0 0;}
.agenda-day:last-child{border-bottom:none;border-radius:0 0 10px 10px;}
.agenda-day:only-child{border-radius:10px;}
.agenda-day:hover{background:var(--surface-hover);}
.agenda-day-header{display:flex;align-items:center;gap:0.75rem;padding:0.75rem 1rem;min-height:44px;}
.agenda-day-date{min-width:52px;text-align:center;}
.agenda-day-num{font-size:1.3rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;}
.agenda-day-name{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-dim);font-weight:600;}
.agenda-day.today .agenda-day-num{color:var(--blue);}
.agenda-day.today{background:var(--blue-dim);}
.agenda-day-items{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.25rem;}
.agenda-item{display:flex;align-items:center;gap:0.5rem;font-size:0.85rem;min-height:28px;}
.agenda-item-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.agenda-item-text{flex:1;min-width:0;}
.agenda-item-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.agenda-item-meta{font-size:0.78rem;color:var(--text-dim);}
.agenda-item-status{flex-shrink:0;}
.agenda-gap{padding:0.5rem 1rem;font-size:0.8rem;color:var(--text-dim);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:0.5rem;}
.agenda-gap:last-child{border-bottom:none;border-radius:0 0 10px 10px;}
.agenda-gap:first-child{border-top:1px solid var(--border);border-radius:10px 10px 0 0;}
.agenda-gap:only-child{border-radius:10px;}
.agenda-gap-icon{color:var(--text-dim);opacity:0.5;}
.agenda-gap-icon svg{width:14px;height:14px;}
.agenda-weather{flex-shrink:0;}
.agenda-weather svg{width:14px;height:14px;}
.agenda-empty{text-align:center;padding:3rem 1rem;color:var(--text-dim);border:1px solid var(--border);border-radius:10px;}
.agenda-empty .btn{margin-top:1rem;}
@media (max-width:768px){.cal-day{min-height:60px;padding:0.25rem;}
.cal-day-num{font-size:0.7rem;}
.cal-month{font-size:0.75rem;}
.event{font-size:0.6rem;padding:0.15rem 0.3rem;}
.toolbar{flex-direction:column;align-items:stretch;}
.toolbar-left{justify-content:center;}
.toolbar-right{justify-content:center;}
.current-period{min-width:auto;font-size:0.95rem;}
.cal-week{grid-template-columns:40px repeat(7,minmax(0,1fr));overflow-x:auto;}
.cal-week-header .day-num{font-size:0.9rem;}
.cal-week-header .day-name{font-size:0.6rem;}
.week-event{padding:0.25rem 0.35rem;font-size:0.7rem;}
.week-event-meta{font-size:0.6rem;}
.cal-week-cell{min-height:45px;padding:0.2rem;}
}
@media (max-width:480px){.cal-day{min-height:50px;}
.cal-day-head{flex-wrap:wrap;gap:0.1rem;}
.weather-badge{font-size:0.6rem;}
.weather-icon svg{width:11px;height:11px;}
.cal-header{padding:0.4rem;font-size:0.65rem;}
.cal-week{grid-template-columns:30px repeat(7,minmax(0,1fr));}
.cal-week-time{font-size:0.6rem;padding:0.2rem;}
.cal-week-header{padding:0.4rem 0.2rem;}
.cal-week-header .day-num{font-size:0.8rem;}
.week-event-title{font-size:0.65rem;}
.week-event-meta{display:none;}
.form-row{grid-template-columns:1fr;}
.modal{padding:1.25rem;}
}
}
body.page-dashboard{.risk-card{border-left-width:3px;}
.risk-card.risk-alert{border-left-color:var(--red);}
.risk-card.risk-watch{border-left-color:var(--yellow);}
.risk-card.risk-calm{border-left-color:var(--green);}
.risk-card.risk-unknown{border-left-color:var(--border-strong);}
.risk-card .section-title i{width:17px;height:17px;}
.risk-card.risk-alert .section-title i{color:var(--red);}
.risk-card.risk-watch .section-title i{color:var(--yellow);}
.risk-card.risk-calm .section-title i{color:var(--green);}
.risk-reason{margin:0 0 var(--sp-4);font-size:var(--fs-md);}
.risk-metrics{display:flex;gap:var(--sp-5);flex-wrap:wrap;margin-bottom:var(--sp-3);}
.risk-metric-label{display:block;font-size:var(--fs-xs);color:var(--text-dim);}
.risk-metric-value{font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums;}
.risk-detail summary{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;padding:0.2rem 0;}
.risk-list{margin:var(--sp-3) 0 0;padding-left:1.1rem;}
.risk-item{font-size:var(--fs-sm);margin-bottom:0.35rem;}
.risk-item-alert::marker{content:'▲ ';}
.risk-item-watch::marker{content:'● ';}
.risk-item-calm::marker{content:'✓ ';}
.risk-item-unknown::marker{content:'? ';}
.risk-item-alert{color:var(--text);}
.risk-item-calm,.risk-item-unknown{color:var(--text-dim);}
.risk-disclaimer{font-size:var(--fs-xs);color:var(--text-dim);border-top:1px solid var(--border);padding-top:var(--sp-3);margin-top:var(--sp-3);}
.races{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--sp-4);margin-bottom:var(--sp-5);align-items:stretch;}
.races.is-single{grid-template-columns:1fr;}
.race{display:flex;flex-direction:column;justify-content:flex-start;gap:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-lg);padding:var(--sp-5);}
.race-name{font-size:var(--fs-md);font-weight:500;color:var(--text);}
.race-sub{font-size:var(--fs-sm);color:var(--text-dim);}
.race-count{display:flex;align-items:baseline;gap:var(--sp-2);margin-top:var(--sp-2);}
.race-days{font-size:3.25rem;font-weight:650;line-height:1;letter-spacing:-0.02em;}
.race-days-unit{font-size:var(--fs-lg);color:var(--text-dim);}
.race-facts{display:flex;gap:var(--sp-6);}
.race-fact-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.07em;color:var(--text-faint);}
.race-fact-value{font-size:var(--fs-md);margin-top:0.15rem;}
.race-next{display:flex;flex-direction:column;justify-content:center;gap:var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);}
.race-next-item + .race-next-item{padding-top:var(--sp-4);border-top:1px solid var(--border);}
.race-next-name{font-size:var(--fs-sm);color:var(--text-dim);}
.race-next-count{display:flex;align-items:baseline;gap:var(--sp-2);margin-top:0.1rem;}
.race-next-days{font-size:1.75rem;font-weight:600;line-height:1;letter-spacing:-0.01em;}
.race-next-unit{font-size:var(--fs-sm);color:var(--text-dim);}
.race-next-meta{font-size:var(--fs-sm);color:var(--text-faint);margin-top:0.25rem;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);align-items:start;}
.ms-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;align-items:center;justify-content:center;}
.ms-modal-overlay.open{display:flex;}
.ms-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;width:min(460px,92vw);}
.ms-modal h2{font-size:1.1rem;font-weight:600;margin-bottom:1.25rem;}
.ms-modal .field{margin-bottom:var(--sp-4);}
.ms-modal .row{display:flex;gap:0.75rem;}
.ms-modal .row .field{flex:1;}
.ms-modal .checkbox-field{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;}
.ms-modal .checkbox-field input[type="checkbox"]{width:auto;accent-color:var(--accent);}
.ms-modal .checkbox-field label{font-size:0.85rem;color:var(--text);text-transform:none;letter-spacing:normal;margin-bottom:0;}
.ms-modal-actions{display:flex;justify-content:flex-end;gap:0.5rem;margin-top:1.25rem;}
.ms-actual-fields{display:none;}
.ms-actual-fields.visible{display:block;}
@media (max-width:480px){.ms-modal .row{flex-direction:column;gap:0;}
.ms-modal .row .field{margin-bottom:var(--sp-3);}
}
.milestone-check{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.65rem;}
.milestone-check.done{background:var(--green);border-color:var(--green);color:var(--bg);}
.act-date{font-size:var(--fs-xs);color:var(--text-faint);width:42px;flex-shrink:0;font-variant-numeric:tabular-nums;}
.act-figures{display:flex;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;}
.act-figures span{color:var(--text-dim);text-align:right;flex:0 0 auto;}
.act-figures span:nth-child(1){width:52px;color:var(--text);}
.act-figures span:nth-child(2){width:56px;}
.act-figures span:nth-child(3){width:52px;}
.act-head{border-top:none;}
.act-head:hover{background:none;}
.act-head .act-figures span{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.06em;color:var(--text-faint);overflow:hidden;white-space:nowrap;}
@media (max-width:900px){.grid-2{grid-template-columns:1fr;}
}
@media (max-width:900px){.races{grid-template-columns:1fr;}
}
@media (max-width:640px){.race-facts{flex-wrap:wrap;gap:var(--sp-4) var(--sp-5);}
.race-days{font-size:2.5rem;}
}
@media (max-width:480px){.race-days{font-size:2rem;}
.race-next-days{font-size:1.4rem;}
.act-figures span:nth-child(2),.act-figures span:nth-child(3){width:44px;}
}
}
body.page-admin{.filter-bar .field.search-field{flex:0 1 260px;}
.report-number{color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;}
.filter-bar .field-tokens input[type="number"]{width:150px;}
.invite-result{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-3);}
.invite-result input{flex:1 1 auto;min-width:0;padding:0.4rem 0.6rem;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-sm);}
@media (max-width:640px){.invite-result{flex-direction:column;align-items:stretch;}
}
@media (max-width:640px){.col-wide{display:none;}
}
.pill{display:inline-block;padding:0.1rem 0.5rem;border-radius:999px;font-size:0.72rem;white-space:nowrap;}
.pill-blocking{background:var(--red-dim);color:var(--red);}
.pill-annoying{background:var(--yellow-dim);color:var(--yellow);}
.pill-minor{background:var(--surface-hover);color:var(--text-dim);}
.report-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;}
.report-images{display:flex;flex-wrap:wrap;gap:var(--sp-3);}
.report-images img{max-width:18rem;max-height:14rem;border:1px solid var(--border);border-radius:var(--r-md);object-fit:contain;background:var(--surface-hover);}
}
body.page-equipment{.equip-item{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);margin:0 calc(-1 * var(--sp-5));border-top:1px solid var(--border);transition:background 0.12s;}
.equip-item:hover{background:var(--surface-hover);}
.equip-retired{color:var(--text-faint);}
.equip-retired .equip-img-wrap{opacity:0.5;}
.equip-retired .equip-name{color:var(--text-dim);}
.equip-img-wrap{width:56px;height:56px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--surface);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color 0.15s;}
.equip-img-wrap:hover{border-color:var(--blue);}
.equip-img{width:100%;height:100%;object-fit:cover;}
.equip-img-placeholder{display:flex;color:var(--text-dim);opacity:0.75;}
.equip-img-placeholder svg{width:26px;height:26px;}
.equip-info{flex:1;min-width:0;}
.equip-name{font-weight:500;font-size:var(--fs-md);}
.equip-brand{color:var(--text-dim);font-weight:400;}
.equip-meta{font-size:var(--fs-sm);color:var(--text-dim);}
.equip-category-badge{display:inline-block;font-size:0.65rem;padding:0.15rem 0.5rem;border-radius:4px;background:var(--surface-hover);color:var(--text-dim);text-transform:uppercase;letter-spacing:0.05em;margin-right:0.25rem;}
.equip-wear{display:flex;align-items:center;gap:var(--sp-3);flex-shrink:0;font-variant-numeric:tabular-nums;}
.equip-km{font-size:var(--fs-sm);width:96px;text-align:right;}
.equip-km-max{color:var(--text-faint);}
.equip-bar{width:120px;height:6px;background:var(--border);border-radius:3px;overflow:hidden;}
.equip-bar-fill{height:100%;border-radius:3px;transition:width 0.3s;}
.equip-good{background:var(--green);}
.equip-warning{background:var(--yellow);}
.equip-critical{background:var(--red);}
.equip-retired-fill{background:var(--text-dim);}
.equip-pct{font-size:var(--fs-sm);color:var(--text-dim);width:42px;text-align:right;}
.equip-status-label{font-size:var(--fs-xs);font-weight:600;width:60px;text-align:right;background:none;}
.equip-status-label.equip-good{color:var(--green);}
.equip-status-label.equip-warning{color:var(--yellow);}
.equip-status-label.equip-critical{color:var(--red);}
.equip-actions{display:flex;gap:var(--sp-1);flex-shrink:0;}
.equip-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;align-items:center;justify-content:center;}
.equip-modal-overlay.open{display:flex;}
.equip-modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;width:min(460px,92vw);}
.equip-modal h2{font-size:1.1rem;font-weight:600;margin-bottom:1.25rem;}
.equip-modal .field{margin-bottom:var(--sp-4);}
.equip-modal .row{display:flex;gap:0.75rem;}
.equip-modal .row .field{flex:1;}
.equip-modal .checkbox-field{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;}
.equip-modal .checkbox-field input[type="checkbox"]{width:auto;accent-color:var(--accent);}
.equip-modal .checkbox-field label{font-size:0.85rem;color:var(--text);text-transform:none;letter-spacing:normal;margin-bottom:0;}
.equip-modal-actions{display:flex;justify-content:flex-end;gap:0.5rem;margin-top:1.25rem;}
.km-fields{display:none;}
.km-fields.visible{display:block;}
.category-group + .category-group{margin-top:var(--sp-5);}
.category-group-title{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-faint);margin-bottom:var(--sp-2);}
.category-group-title + .equip-item{border-top:none;}
@media (max-width:800px){.equip-item{flex-wrap:wrap;}
.equip-info{flex:1 1 auto;}
.equip-wear{flex:1 1 100%;justify-content:flex-end;}
.equip-bar{flex:1;width:auto;}
}
@media (max-width:480px){.equip-modal .row{flex-direction:column;gap:0;}
.equip-modal .row .field{margin-bottom:var(--sp-3);}
.equip-img-wrap{width:44px;height:44px;}
.equip-km{width:auto;font-size:var(--fs-xs);}
.equip-pct{width:auto;font-size:var(--fs-xs);}
}
}
body.page-health{.entry-form{display:none;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:1rem;margin-bottom:1rem;}
.entry-form.visible{display:block;}
.form-row{display:flex;gap:0.75rem;align-items:flex-end;flex-wrap:wrap;}
.form-group{display:flex;flex-direction:column;gap:0.25rem;}
.form-group label{font-size:0.75rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;}
.form-group input,.form-group select,.form-group textarea{padding:0.5rem 0.75rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:0.85rem;font-family:inherit;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--blue);}
.form-group textarea{resize:vertical;min-height:60px;}
.form-actions{display:flex;gap:0.5rem;margin-top:0.75rem;}
.form-group-spaced{margin-top:0.75rem;}
.injury-item{display:flex;align-items:flex-start;gap:0.75rem;padding:0.75rem 0;border-bottom:1px solid var(--border);}
.injury-item:last-child{border-bottom:none;}
.injury-dot{width:16px;height:16px;margin-top:0.25rem;flex-shrink:0;display:flex;align-items:center;}
.injury-dot svg,.injury-dot i[data-lucide]{width:16px;height:16px;}
.injury-content{flex:1;min-width:0;}
.injury-header{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;}
.injury-body-part{font-weight:600;font-size:0.9rem;}
.injury-severity{font-size:0.7rem;padding:0.15rem 0.5rem;border-radius:4px;font-weight:600;}
.injury-dates{font-size:0.8rem;color:var(--text-dim);margin-top:0.15rem;}
.injury-desc{font-size:0.85rem;color:var(--text-dim);margin-top:0.25rem;}
.injury-actions{display:flex;gap:0.35rem;flex-shrink:0;align-items:flex-start;}
.injury-actions button{padding:0.3rem 0.6rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:0.75rem;cursor:pointer;transition:background 0.15s;}
.injury-actions button:hover{background:var(--surface-hover);}
.injury-actions .btn-delete{color:var(--red);border-color:rgba(241,80,80,0.3);}
.injury-actions .btn-delete:hover{background:var(--red-dim);}
@media (max-width:768px){.form-row{flex-direction:column;}
.injury-item{flex-direction:column;}
.injury-actions{align-self:flex-end;}
}
}
body.page-login{.login-privacy{margin-top:var(--sp-4);font-size:var(--fs-sm);}
.login-card{text-align:center;max-width:420px;width:100%;}
.login-logo{height:48px;width:auto;margin-bottom:var(--sp-4);}
.login-brand{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);margin-bottom:var(--sp-2);}
.login-claim{color:var(--text-dim);font-size:var(--fs-md);margin-bottom:var(--sp-6);line-height:1.5;}
.setup-hint{color:var(--text-dim);font-size:var(--fs-xs);margin-top:var(--sp-3);}
}
body.page-profile{.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.profile-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);}
.profile-section > .hint{margin:var(--sp-2) 0 0;}
.profile-section > .hint:last-child{margin-bottom:0;}
.derived-facts{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);margin-bottom:var(--sp-4);padding:var(--sp-3);background:var(--surface-2,var(--bg));border-radius:var(--r-md);}
.derived-fact{display:flex;flex-direction:column;gap:0.15rem;}
.derived-label{font-size:0.75rem;color:var(--text-dim);}
.derived-value{font-size:var(--fs-sm);}
.profile-section h3{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);}
.profile-section h3 svg{opacity:0.55;}
.zone-preview{display:flex;flex-direction:column;gap:0.4rem;margin-top:0.75rem;}
.zone-row{display:flex;align-items:center;gap:0.5rem;font-size:0.8rem;}
.zone-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0;}
.zone-label{flex:1;color:var(--text-dim);}
.zone-range{font-variant-numeric:tabular-nums;font-weight:500;}
.zone-pct{font-size:0.75rem;color:var(--text-dim);min-width:50px;text-align:right;}
.profile-actions{display:flex;justify-content:flex-end;gap:0.5rem;margin-top:1.5rem;}
.save-msg{font-size:0.85rem;padding:0.5rem 0.75rem;border-radius:6px;display:none;margin-bottom:1rem;}
.save-msg.err{display:block;background:var(--red-dim);color:var(--red);}
.data-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);}
.method-desc{font-size:0.75rem;color:var(--text-dim);margin-bottom:0.75rem;}
.zone-info{margin-bottom:0.5rem;}
.zone-dot.z1{background:var(--zone1);}
.zone-dot.z2{background:var(--zone2);}
.zone-dot.z3{background:var(--zone3);}
.zone-dot.z4{background:var(--zone4);}
.zone-dot.z5{background:var(--zone5);}
.weather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.75rem;}
.coord-hint{margin-top:0.25rem;}
.strava-hint{margin-top:0.25rem;}
.data-label{display:block;font-size:0.75rem;color:var(--text-dim);margin:var(--sp-4) 0 0.4rem;}
.data-label:first-child{margin-top:0;}
.data-actions-spaced{margin-bottom:1rem;}
.btn-save{padding:0.6rem 2rem;}
.save-msg i{width:14px;height:14px;vertical-align:-2px;margin-right:4px;}
.weather-desc{margin:0;}
.data-desc{margin:0 0 0.85rem;}
.thr-list{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-4);}
.thr-row{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);}
.thr-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-2);flex-wrap:wrap;}
.thr-sport{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;font-size:var(--fs-sm);}
.thr-sport svg{width:15px;height:15px;color:var(--text-dim);}
.thr-meta{font-size:0.75rem;color:var(--text-dim);}
.thr-meta.is-stale{color:var(--yellow);}
.thr-unusable{display:inline-block;margin-top:0.15rem;color:var(--red);line-height:1.4;}
.thr-input{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;}
.thr-input label{font-size:0.75rem;color:var(--text-dim);min-width:6.5rem;}
.thr-input input{width:6rem;font-variant-numeric:tabular-nums;}
.thr-unit{font-size:0.75rem;color:var(--text-dim);}
.thr-test{margin-top:var(--sp-3);}
.thr-test summary{font-size:0.8rem;color:var(--accent);cursor:pointer;padding:0.2rem 0;}
.thr-test .field-row{margin-top:var(--sp-2);}
.thr-actions{margin-top:var(--sp-4);}
.thr-actions .hint{margin-top:var(--sp-2);}
.tier-status{display:flex;align-items:baseline;gap:var(--sp-2);margin-bottom:var(--sp-3);}
.tier-status .tier-name{font-weight:600;font-size:var(--fs-lg);}
.tier-status .tier-note{font-size:0.75rem;color:var(--text-dim);}
.tier-options{display:flex;flex-direction:column;gap:var(--sp-2);}
.tier-option{display:flex;align-items:flex-start;gap:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);cursor:pointer;text-align:left;background:none;color:inherit;width:100%;font:inherit;}
.tier-option:hover{border-color:var(--accent);}
.tier-option.is-static{cursor:default;}
.tier-option.is-static:hover{border-color:var(--border);}
.tier-option.is-static.is-current:hover{border-color:var(--accent);}
.tier-option.is-current{border-color:var(--accent);cursor:default;}
.tier-option i{width:16px;height:16px;flex-shrink:0;margin-top:3px;}
.tier-option.is-current i{color:var(--accent);}
.tier-option .opt-label{font-weight:600;font-size:var(--fs-sm);}
.tier-option .opt-body{display:flex;flex-direction:column;gap:2px;}
.tier-option .opt-head{display:flex;align-items:baseline;gap:var(--sp-2);}
.tier-option .opt-desc{display:block;font-size:0.75rem;color:var(--text-dim);margin-top:2px;line-height:1.5;}
.tier-option .opt-current{font-size:0.7rem;color:var(--accent);text-transform:uppercase;letter-spacing:0.04em;}
.consent-status{display:flex;align-items:flex-start;gap:var(--sp-2);font-size:var(--fs-sm);padding:var(--sp-3);border-radius:var(--r-md);margin-bottom:var(--sp-3);}
.consent-status i{width:16px;height:16px;flex-shrink:0;margin-top:2px;}
.consent-status.is-given{background:var(--green-dim);color:var(--green);}
.consent-status.is-none{background:var(--blue-dim);color:var(--blue);}
.consent-status.is-outdated{background:var(--yellow-dim);color:var(--yellow);}
.consent-details summary{font-size:0.8rem;color:var(--accent);cursor:pointer;padding:0.2rem 0;}
.consent-text{font-size:var(--fs-sm);color:var(--text-dim);white-space:pre-line;line-height:1.55;margin-top:var(--sp-2);}
.consent-data{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);}
.consent-block{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border);}
.consent-block h4{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2);font-size:var(--fs-sm);}
.consent-block h4 svg{width:16px;height:16px;}
.consent-data .hint{margin:var(--sp-1) 0 var(--sp-2);}
.consent-actions{margin-top:var(--sp-4);}
.consent-actions .data-actions{margin-top:var(--sp-2);}
.allowance-block{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border);}
.allowance-block h4{display:flex;align-items:center;gap:var(--sp-2);margin:0 0 var(--sp-2);font-size:var(--fs-sm);}
.allowance-block h4 svg{width:16px;height:16px;}
.allowance-row{display:flex;align-items:center;gap:var(--sp-3);}
.allowance-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden;}
.allowance-fill{height:100%;border-radius:3px;transition:width 0.3s;background:var(--green);min-width:2px;}
.allowance-fill.is-warn{background:var(--yellow);}
.allowance-fill.is-spent{background:var(--red);}
.allowance-pct{font-size:var(--fs-sm);color:var(--text-dim);width:42px;text-align:right;font-variant-numeric:tabular-nums;}
.allowance-note{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);}
.allowance-note.is-warn{color:var(--yellow);}
.allowance-note.is-spent{color:var(--red);}
.danger-zone{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border);}
.danger-zone h4{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--red);}
.danger-zone .field{margin-top:var(--sp-3);}
.danger-zone .btn{margin-top:var(--sp-2);}
@media (max-width:768px){.profile-grid{grid-template-columns:1fr;}
.field-row{flex-direction:column;gap:0;margin-bottom:0;}
.field-row .field{margin-bottom:var(--sp-3);}
}
}
body.page-beta{.privacy-card{max-width:46rem;margin:var(--sp-6) auto;padding:var(--sp-6);text-align:left;}
.privacy-card h1{font-size:var(--fs-xl);margin:0 0 var(--sp-4);}
.privacy-card h2{font-size:var(--fs-md);margin:var(--sp-5) 0 var(--sp-2);}
.privacy-lead{color:var(--text-dim);margin-bottom:var(--sp-4);}
.privacy-card ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5);}
.privacy-card li{margin-bottom:var(--sp-2);}
.privacy-back{margin-top:var(--sp-6);}
}
body.page-privacy{.privacy-card{max-width:46rem;margin:var(--sp-6) auto;padding:var(--sp-6);text-align:left;}
.privacy-card h1{font-size:var(--fs-xl);margin:0 0 var(--sp-4);}
.privacy-card h2{font-size:var(--fs-md);margin:var(--sp-5) 0 var(--sp-2);}
.privacy-lead{color:var(--text-dim);margin-bottom:var(--sp-4);}
.privacy-card ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5);}
.privacy-card li{margin-bottom:var(--sp-2);}
.privacy-back{margin-top:var(--sp-6);}
}
body.page-terms{.privacy-card{max-width:46rem;margin:var(--sp-6) auto;padding:var(--sp-6);text-align:left;}
.privacy-card h1{font-size:var(--fs-xl);margin:0 0 var(--sp-4);}
.privacy-card h2{font-size:var(--fs-md);margin:var(--sp-5) 0 var(--sp-2);}
.privacy-lead{color:var(--text-dim);margin-bottom:var(--sp-4);}
.privacy-card ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5);}
.privacy-card li{margin-bottom:var(--sp-2);}
.privacy-back{margin-top:var(--sp-6);}
}
body.page-home{--home-max:68rem;--home-gap:clamp(3.5rem,9vw,7rem);background:var(--bg);.home{text-align:left;padding-bottom:var(--sp-6);}
.home-nav,.home-hero,.home-section,.home-close,.home-footer,.home-band-inner{max-width:var(--home-max);margin-inline:auto;padding-inline:var(--sp-5);}
.home-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding-block:var(--sp-5);}
.home-nav-brand{display:block;line-height:0;}
.home-nav-brand .brand-lockup{height:1.75rem;width:auto;}
--home-control:2rem;.home-nav-tools{display:flex;align-items:center;gap:var(--sp-3);}
.home-nav-tools > *{height:var(--home-control);}
.home-nav-tools .btn{display:inline-flex;align-items:center;padding-block:0;padding-inline:var(--sp-4);}
.home-nav-login{flex:none;}
.home-langs{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;}
.home-lang{display:flex;align-items:center;padding:0 var(--sp-3);border:0;background:transparent;color:var(--text-faint);font:inherit;font-size:var(--fs-xs);font-weight:600;letter-spacing:0.04em;cursor:pointer;}
.home-lang:hover{color:var(--text);background:var(--surface-hover);}
.home-lang.is-active{color:var(--text);background:var(--surface);cursor:default;}
.home-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--home-control);padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:transparent;color:var(--text-dim);cursor:pointer;}
.home-icon-btn:hover{color:var(--text);background:var(--surface-hover);}
.home-icon-btn svg,.home-icon-btn i[data-lucide]{width:15px;height:15px;}
.home-hero{padding-top:var(--sp-6);text-align:center;}
.home-eyebrow{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--sp-3);margin:0 0 var(--sp-5);font-size:var(--fs-sm);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-faint);}
.home-pill{padding:0.15rem var(--sp-3);border:1px solid var(--accent);border-radius:999px;color:var(--accent);letter-spacing:0.06em;}
.home-title{margin:0;font-size:clamp(2.25rem,6.2vw,4.25rem);line-height:1.04;letter-spacing:-0.025em;font-weight:700;max-width:19ch;margin-inline:auto;text-wrap:balance;}
.home-lead{margin:var(--sp-5) auto 0;font-size:clamp(1.0625rem,1.9vw,1.375rem);line-height:1.55;color:var(--text-dim);max-width:54ch;}
.home-cta{margin-top:var(--sp-6);}
.home-btn{font-size:var(--fs-lg);padding:0.75rem 1.5rem;border-radius:var(--r-md);}
.home-cta-note{margin:var(--sp-3) 0 0;font-size:var(--fs-sm);color:var(--text-faint);}
.home-shot{margin:clamp(2rem,4vw,3.5rem) 0 0;padding:clamp(0.375rem,1.2vw,0.75rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-overlay);overflow:hidden;}
.home-shot-wide{width:min(100vw - 2 * var(--sp-5),84rem);max-width:none;margin-inline:calc(50% - min(50vw - var(--sp-5),42rem));}
.home-shot-img{aspect-ratio:1440 / 900;border-radius:var(--r-sm);border:1px solid var(--border);}
.will-reveal{opacity:0;transform:translateY(14px);}
.will-reveal.is-in{opacity:1;transform:none;transition:opacity 620ms ease,transform 620ms cubic-bezier(0.2,0.7,0.3,1);}
.home-grid > li.will-reveal.is-in,.home-steps > li.will-reveal.is-in{transition-duration:520ms;}
.home-section{padding-top:var(--home-gap);}
.home-h2{margin:0;font-size:clamp(1.5rem,3.2vw,2.25rem);line-height:1.15;letter-spacing:-0.015em;font-weight:700;max-width:24ch;text-wrap:balance;}
.home-sub{margin:var(--sp-4) 0 0;font-size:var(--fs-lg);line-height:1.55;color:var(--text-dim);max-width:52ch;}
.home-note{margin:var(--sp-5) 0 0;font-size:var(--fs-sm);color:var(--text-faint);max-width:52ch;}
.home-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);margin:var(--sp-6) 0 0;padding:0;list-style:none;counter-reset:none;}
.home-steps li{margin:0;}
.home-step-num{display:block;font-size:var(--fs-2xl);font-weight:700;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums;}
.home-steps h3{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-lg);font-weight:600;}
.home-steps p{margin:0;color:var(--text-dim);line-height:1.55;}
.home-chat{margin:var(--sp-6) 0 0;padding:var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:var(--sp-5);}
.home-chat-log{display:flex;flex-direction:column;gap:var(--sp-4);min-height:8rem;max-height:24rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;}
.home-chat-log::-webkit-scrollbar{width:6px;}
.home-chat-log::-webkit-scrollbar-track{background:transparent;}
.home-chat-log::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px;}
.home-chat-log >:first-child{margin-top:auto;}
.home-chat-composer{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4);border:1px solid var(--border-strong);border-radius:999px;background:var(--bg);}
.home-chat-input{flex:1;min-height:1.4em;line-height:1.4;color:var(--text);}
.home-chat-input:empty::before{content:attr(data-placeholder);color:var(--text-faint);}
.home-chat-input.is-typing::after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:text-bottom;background:var(--accent);animation:home-caret 900ms steps(1) infinite;}
.home-chat-send{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex:none;border-radius:50%;background:var(--accent);color:#fff;transition:transform 120ms ease;}
.home-chat-send svg,.home-chat-send i[data-lucide]{width:14px;height:14px;}
.home-chat.is-sending .home-chat-send{transform:scale(0.86);}
.home-chat-line{margin:0;max-width:62%;}
.home-chat-you{align-self:flex-end;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md) var(--r-md) var(--r-sm) var(--r-md);background:var(--accent-dim);border:1px solid var(--border);line-height:1.55;}
.home-chat-line.is-pending{display:none;}
.home-chat-line.is-arriving{animation:home-arrive 300ms cubic-bezier(0.2,0.7,0.3,1);}
@keyframes home-arrive{from{opacity:0;transform:translateY(10px);}
to{opacity:1;transform:none;}
}
.home-chat-app{align-self:flex-start;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md) var(--r-md) var(--r-md) var(--r-sm);background:var(--bg);border:1px solid var(--border);}
.home-chat-app p{margin:0;color:var(--text-dim);line-height:1.55;}
.home-chat-app.is-in{opacity:1;transition:opacity 380ms ease;}
.home-chat-app.is-thinking{opacity:1;}
.home-chat-app.is-thinking > *{visibility:hidden;}
.home-chat-app.is-thinking::before{content:"···";display:block;font-size:var(--fs-xl);line-height:1;letter-spacing:0.1em;color:var(--text-faint);animation:home-think 1.1s ease-in-out infinite;}
.home-chat-line:has(.home-chat-phases){max-width:78%;}
.home-chat-phases{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin:var(--sp-4) 0 0;padding:0;list-style:none;}
.home-chat-phases li{display:flex;align-items:baseline;gap:var(--sp-2);margin:0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:999px;font-size:var(--fs-sm);}
.home-chat-phases li.is-pending{opacity:0;transform:translateY(6px);}
.home-chat-phases li.is-in{opacity:1;transform:none;transition:opacity 320ms ease,transform 320ms ease;}
.home-chat-phase-name{font-weight:600;}
.home-chat-phase-weeks{color:var(--text-faint);font-variant-numeric:tabular-nums;}
.home-chat-total{margin-top:var(--sp-4) !important;font-size:var(--fs-sm);color:var(--text-faint);}
@keyframes home-caret{0%,49%{opacity:1;}
50%,100%{opacity:0;}
}
@keyframes home-think{0%,100%{opacity:0.35;}
50%{opacity:1;}
}
.home-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,4rem);align-items:center;}
.home-split-text p{margin:var(--sp-4) 0 0;color:var(--text-dim);line-height:1.6;font-size:var(--fs-lg);}
.home-split .home-shot{margin-top:0;}
.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4);margin:var(--sp-6) 0 0;padding:0;}
.home-grid li{margin:0;padding:var(--sp-5);list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:border-color 180ms ease;}
.home-grid li:hover{border-color:var(--border-strong);}
.home-grid i[data-lucide],.home-grid svg{width:20px;height:20px;color:var(--accent);}
.home-grid h3{margin:var(--sp-3) 0 var(--sp-2);font-size:var(--fs-md);font-weight:600;}
.home-grid p{margin:0;font-size:var(--fs-md);line-height:1.55;color:var(--text-dim);}
.home-band{margin-top:var(--home-gap);padding-block:var(--home-gap);background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.home-facts{margin:var(--sp-6) 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6);}
.home-facts li{margin:0;padding-top:var(--sp-4);border-top:2px solid var(--accent);color:var(--text-dim);line-height:1.55;}
.home-facts strong{display:block;margin-bottom:var(--sp-3);font-size:var(--fs-xl);line-height:1.2;letter-spacing:-0.01em;font-weight:700;color:var(--text);}
.home-facts-more{margin:var(--sp-6) 0 0;font-size:var(--fs-sm);color:var(--text-faint);max-width:60ch;}
.home-facts-more a{margin-left:var(--sp-2);}
.home-close{padding-top:var(--home-gap);text-align:center;}
.home-close .home-h2{margin-inline:auto;}
.home-close .home-lead{max-width:44ch;}
.home-footer{margin-top:var(--home-gap);padding-block:var(--sp-6);border-top:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-4);}
.home-footer-links{display:flex;flex-wrap:wrap;gap:var(--sp-5);font-size:var(--fs-sm);}
@media (prefers-reduced-motion:reduce){.will-reveal,.will-reveal.is-in,.home-chat-app,.home-chat-phases li{opacity:1;transform:none;transition:none;}
.home-chat-input.is-typing::after,.home-chat-app.is-thinking::before{animation:none;}
.home-chat-line.is-arriving{animation:none;}
.home-grid li{transition:none;}
}
@media (max-width:860px){.home-steps{grid-template-columns:repeat(2,minmax(0,1fr));}
.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.home-chat-line,.home-chat-line:has(.home-chat-phases){max-width:88%;}
.home-split{grid-template-columns:1fr;}
.home-facts{grid-template-columns:1fr;}
}
@media (max-width:560px){.home-nav,.home-hero,.home-section,.home-close,.home-footer,.home-band-inner{padding-inline:var(--sp-4);}
.home-steps{grid-template-columns:1fr;}
.home-grid{grid-template-columns:1fr;}
.home-shot-wide{width:auto;margin-inline:0;}
.home-title{max-width:none;}
.home-btn{display:block;text-align:center;}
.home-footer{justify-content:flex-start;}
.home-nav-tools{gap:var(--sp-2);}
}
}
body.page-records{.section-title{margin-bottom:1rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;}
.pr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-bottom:2rem;}
.pr-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;position:relative;overflow:hidden;}
.pr-card.has-record{border-left:3px solid var(--accent);}
.pr-card.no-record{opacity:0.55;}
.pr-label{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-dim);margin-bottom:0.5rem;}
.pr-time{font-size:1.8rem;font-weight:700;color:var(--accent);line-height:1.2;}
.pr-time a{color:inherit;text-decoration:none;}
.pr-time a:hover{text-decoration:underline;}
.pr-no-data{font-size:1.1rem;color:var(--text-dim);}
.pr-details{margin-top:0.75rem;display:flex;flex-wrap:wrap;gap:0.75rem;}
.pr-detail{font-size:0.78rem;color:var(--text-dim);}
.pr-detail strong{color:var(--text);font-weight:500;}
.specials-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-bottom:2rem;}
.special-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;text-align:center;}
.special-label{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-dim);margin-bottom:0.35rem;}
.special-value{font-size:1.5rem;font-weight:700;color:var(--green);}
.special-meta{font-size:0.75rem;color:var(--text-dim);margin-top:0.25rem;}
@media (max-width:640px){.pr-grid{grid-template-columns:1fr;}
.specials-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:480px){.specials-grid{grid-template-columns:1fr;}
.pr-time{font-size:1.4rem;}
}
}
body.page-setup{.setup-card{max-width:560px;width:100%;}
.back-link{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--text-dim);text-decoration:none;font-size:var(--fs-sm);margin-bottom:var(--sp-5);transition:color 0.15s;}
.back-link:hover{color:var(--text);}
.setup-title{font-size:var(--fs-xl);font-weight:600;margin-bottom:var(--sp-2);}
.setup-intro{color:var(--text-dim);font-size:var(--fs-md);margin-bottom:var(--sp-6);line-height:1.5;}
.steps{margin-bottom:var(--sp-6);}
.step{display:flex;gap:var(--sp-3);margin-bottom:var(--sp-5);align-items:flex-start;}
.step-num{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:var(--fs-sm);font-weight:700;display:flex;align-items:center;justify-content:center;}
.step-content{flex:1;}
.step-title{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--sp-1);}
.step-desc{font-size:var(--fs-sm);color:var(--text-dim);line-height:1.5;}
.step-desc a{color:var(--accent);text-decoration:none;}
.step-desc a:hover{text-decoration:underline;}
.step-desc code{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:0.1rem 0.4rem;font-size:var(--fs-xs);font-family:'SF Mono','Fira Code',monospace;color:var(--accent);user-select:all;}
.form-section{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-5);}
.form-title{font-size:var(--fs-sm);font-weight:600;margin-bottom:var(--sp-4);color:var(--text-dim);text-transform:uppercase;letter-spacing:0.06em;}
}
@keyframes dot{0%,60%,100%{opacity:0.25;transform:translateY(0);}
30%{opacity:1;transform:translateY(-3px);}
}
body.page-plan-new{.mode-consequence{margin:var(--sp-2) 0 0;font-size:var(--fs-sm);color:var(--text-dim);}
.mode-consequence:empty{display:none;}
.revision-head{margin-bottom:var(--sp-4);}
.revision-head .page-title{margin-bottom:var(--sp-1);}
.revision-head .hint{max-width:62ch;}
.resume-note{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);border:1px solid var(--blue);border-radius:var(--r-md);background:var(--blue-dim);}
.resume-note i{color:var(--blue);flex-shrink:0;}
.resume-text{display:flex;flex-direction:column;gap:0.1rem;flex:1;}
.resume-text span{font-size:var(--fs-sm);color:var(--text-dim);}
.talk{max-width:46rem;margin:0 auto;padding-top:var(--sp-4);display:flex;flex-direction:column;min-height:calc(100vh - 14rem);}
.talk-top{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-6);}
.talk-title{font-size:1.35rem;font-weight:600;letter-spacing:-0.01em;margin:0;}
.talk-switch{background:none;border:none;padding:0;font:inherit;font-size:var(--fs-sm);color:var(--text-dim);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-strong);}
.talk-switch:hover{color:var(--text);}
.draft-note{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);}
.draft-note i{color:var(--text-faint);flex-shrink:0;}
.draft-note-text{flex:1;display:flex;flex-direction:column;gap:0.1rem;}
.draft-note-text strong{color:var(--text);font-weight:600;}
.draft-note-text span{color:var(--text-dim);}
.draft-note-close{background:none;border:none;padding:0 var(--sp-2);font-size:1.25rem;line-height:1;color:var(--text-faint);cursor:pointer;}
.draft-note-close:hover{color:var(--text);}
.wiz-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);}
.talk-log{flex:1;display:flex;flex-direction:column;gap:var(--sp-5);padding-bottom:var(--sp-5);}
.talk.is-empty{justify-content:center;}
.talk.is-empty .talk-log{flex:0;padding-bottom:var(--sp-4);}
.talk.is-empty .bubble{font-size:1.05rem;}
.talk.is-empty .talk-top{margin-bottom:var(--sp-5);}
.consent-gate{justify-content:flex-start;}
.consent-gate-lead{font-size:1.05rem;line-height:1.6;color:var(--text);margin:0 0 var(--sp-5);}
.consent-gate .consent-details{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);background:var(--surface);}
.consent-gate .consent-details summary{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;padding:0.2rem 0;}
.consent-gate .consent-text{font-size:var(--fs-sm);color:var(--text-dim);white-space:pre-line;line-height:1.6;margin-top:var(--sp-3);}
.consent-gate .consent-actions{margin-top:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);}
.consent-gate .data-actions{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;}
.consent-gate .hint{margin-top:var(--sp-4);max-width:62ch;}
.turn{display:flex;}
.turn.is-user{justify-content:flex-end;}
.bubble{font-size:0.95rem;line-height:1.65;white-space:pre-line;}
.turn.is-user .bubble{max-width:80%;padding:0.65rem 1rem;border-radius:1.15rem;border-bottom-right-radius:0.35rem;background:var(--surface-hover);}
.turn.is-assistant .bubble{max-width:100%;}
.turn.is-waiting .bubble{color:var(--text-faint);}
.dots{display:inline-flex;gap:4px;align-items:center;height:1.65em;}
.dots span{width:5px;height:5px;border-radius:50%;background:var(--text-faint);animation:dot 1.2s infinite ease-in-out;}
.dots span:nth-child(2){animation-delay:0.18s;}
.dots span:nth-child(3){animation-delay:0.36s;}
@media (prefers-reduced-motion:reduce){.dots span{animation:none;opacity:0.5;}
}
.talk-compose{position:sticky;bottom:var(--sp-4);display:flex;align-items:flex-end;gap:var(--sp-2);padding:0.5rem 0.5rem 0.5rem 1rem;border:1px solid var(--border);border-radius:1.4rem;background:var(--surface);transition:border-color 0.15s;}
.talk-compose:focus-within{border-color:var(--border-strong);}
.talk-compose textarea{flex:1;border:none;background:none;padding:0.45rem 0;resize:none;max-height:12rem;font-size:0.95rem;line-height:1.55;}
.talk-compose textarea:focus{outline:none;border:none;}
.talk-send{flex-shrink:0;width:34px;height:34px;border:none;border-radius:50%;background:var(--accent);color:var(--on-accent,#fff);display:grid;place-items:center;cursor:pointer;transition:opacity 0.15s;}
.talk-send svg{width:17px;height:17px;}
.talk-send:disabled{opacity:0.35;cursor:default;}
.talk-note{margin:var(--sp-2) 0 0;font-size:0.75rem;color:var(--text-dim);min-height:1rem;}
.talk-note.is-warning{color:var(--yellow);}
.talk-fineprint{margin:var(--sp-2) 0 var(--sp-5);font-size:0.7rem;color:var(--text-faint);line-height:1.5;}
.talk-proposal{border:1px solid var(--accent);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-5);background:var(--surface);}
.proposal-summary{font-size:0.95rem;line-height:1.65;white-space:pre-line;margin-bottom:var(--sp-4);}
.proposal-note{font-size:0.8rem;color:var(--yellow);margin-bottom:var(--sp-3);}
.proposal-note:empty{display:none;}
.proposal-horizon{font-size:0.85rem;color:var(--text-muted);margin-bottom:var(--sp-3);padding-left:var(--sp-3);border-left:2px solid var(--border);}
.proposal-horizon:empty{display:none;}
.proposal-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;}
@media (max-width:640px){.talk{min-height:calc(100vh - 11rem);}
.talk-top{margin-bottom:var(--sp-4);}
}
.assist{border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-4);background:var(--surface-2,var(--bg));}
.assist label{display:block;font-size:0.75rem;color:var(--text-dim);margin-bottom:var(--sp-2);}
.assist textarea{width:100%;resize:vertical;}
.assist-actions{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-2);}
.assist-actions .hint{margin:0;}
.assist-actions svg{width:14px;height:14px;vertical-align:-2px;}
.assist-note{margin-top:var(--sp-3);font-size:var(--fs-sm);display:flex;flex-direction:column;gap:var(--sp-1);}
.assist-note .note-line{display:flex;align-items:flex-start;gap:var(--sp-2);}
.assist-note i{width:14px;height:14px;flex-shrink:0;margin-top:3px;}
.assist-note .is-filled{color:var(--green);}
.assist-note .is-dropped{color:var(--yellow);}
.assist-hint{margin-bottom:var(--sp-4);}
.from-text{border-color:var(--accent);}
.wiz-steps{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-5);flex-wrap:wrap;}
.wiz-step{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-dim);}
.wiz-step + .wiz-step::before{content:'';width:24px;height:1px;background:var(--border);}
.wiz-step-num{width:22px;height:22px;border-radius:50%;border:1px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;}
.wiz-step.is-current{color:var(--text);font-weight:600;}
.wiz-step.is-current .wiz-step-num{border-color:var(--accent);color:var(--accent);}
.wiz-step.is-done .wiz-step-num{border-color:var(--green);color:var(--green);}
.wiz-panel{display:none;}
.wiz-panel.is-active{display:block;}
.wiz-actions{display:flex;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-5);flex-wrap:wrap;}
.avail-grid{display:flex;flex-direction:column;gap:var(--sp-2);}
.avail-row{display:grid;grid-template-columns:4.5rem 5.5rem 6rem 1fr;gap:var(--sp-3);align-items:center;padding:var(--sp-2) 0;border-top:1px solid var(--border);}
.avail-row:first-child{border-top:none;}
.avail-day{font-weight:500;font-size:var(--fs-sm);}
.avail-row select,.avail-row input{margin:0;}
.avail-source{font-size:var(--fs-xs);color:var(--text-dim);}
.avail-source.is-user{color:var(--accent);}
.phase-bar{display:flex;height:30px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);margin-bottom:var(--sp-2);}
.phase-seg{display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:500;color:var(--text);min-width:0;overflow:hidden;white-space:nowrap;}
.phase-legend{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-xs);color:var(--text-dim);}
.week-scroll{overflow-x:auto;}
.week-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.week-table th,.week-table td{padding:var(--sp-2) var(--sp-3);text-align:left;border-top:1px solid var(--border);white-space:nowrap;}
.week-table th{font-weight:500;color:var(--text-dim);font-size:var(--fs-xs);}
.week-table tr.is-recovery td{color:var(--text-dim);}
.week-num{font-variant-numeric:tabular-nums;}
.week-load{font-variant-numeric:tabular-nums;text-align:right;}
.week-sessions{white-space:normal;}
.sess-chip{display:inline-block;font-size:var(--fs-xs);padding:0.1rem 0.4rem;border:1px solid var(--border);border-radius:var(--r-sm);margin:0.1rem 0.15rem 0.1rem 0;}
.sess-chip.is-high{border-color:var(--accent);font-weight:500;}
.wiz-msg{font-size:var(--fs-sm);padding:var(--sp-3);border-radius:var(--r-md);margin-bottom:var(--sp-3);display:flex;gap:var(--sp-2);align-items:flex-start;}
.wiz-msg i{width:16px;height:16px;flex-shrink:0;margin-top:2px;}
.wiz-msg.is-error{background:var(--red-dim);color:var(--red);}
.wiz-msg.is-warning{background:var(--yellow-dim);color:var(--yellow);}
.wiz-msg.is-info{background:var(--blue-dim);color:var(--blue);}
.wiz-stats{display:flex;gap:var(--sp-5);flex-wrap:wrap;margin-bottom:var(--sp-4);}
.wiz-stat-label{font-size:var(--fs-xs);color:var(--text-dim);display:block;}
.wiz-stat-value{font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums;}
.disclaimer{font-size:var(--fs-xs);color:var(--text-dim);border-top:1px solid var(--border);padding-top:var(--sp-3);margin-top:var(--sp-4);}
.wiz-more{border-top:1px solid var(--border);margin-top:var(--sp-4);padding-top:var(--sp-3);}
.wiz-more summary{font-size:var(--fs-sm);color:var(--accent);cursor:pointer;padding:0.2rem 0;}
.wiz-more > .field{margin-top:var(--sp-4);}
.second-grid{display:flex;flex-direction:column;gap:var(--sp-2);}
.second-row{display:grid;grid-template-columns:4.5rem 5.5rem 6rem;gap:var(--sp-3);align-items:center;}
@media (max-width:768px){.avail-row{grid-template-columns:3.5rem 1fr;row-gap:var(--sp-2);}
.avail-source{grid-column:1 / -1;}
.second-row{grid-template-columns:3.5rem 1fr 1fr;}
}
}
body.page-training{table{width:100%;border-collapse:collapse;font-size:0.85rem;font-variant-numeric:tabular-nums;}
th{text-align:left;padding:0.6rem 0.75rem;color:var(--text-dim);font-weight:500;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.06em;border-bottom:1px solid var(--border);}
td{padding:0.6rem 0.75rem;border-bottom:1px solid var(--border);}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--surface-hover);}
tr.phase-current td{background:var(--blue-dim);}
tr.phase-past td{color:var(--text-faint);}
tr.phase-total td{font-weight:600;border-top:1px solid var(--border-strong);color:var(--text);}
.info-card-unit{font-size:var(--fs-md);color:var(--text-dim);font-weight:400;}
.block-notes{display:flex;flex-direction:column;gap:var(--sp-4);}
.block-note-head{display:flex;align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2);}
.block-note-meta{font-size:0.75rem;color:var(--text-dim);}
.block-note-text{margin:0;font-size:var(--fs-sm);line-height:1.6;color:var(--text-dim);}
.block-notes + .disclaimer{margin-top:var(--sp-4);}
.intake-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-3);}
.intake-item{display:flex;flex-direction:column;gap:2px;}
.intake-label{font-size:0.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.04em;}
.intake-value{font-weight:600;font-variant-numeric:tabular-nums;}
.intake-notes{margin:var(--sp-4) 0 0;font-size:var(--fs-sm);color:var(--text-dim);white-space:pre-line;line-height:1.55;padding-top:var(--sp-3);border-top:1px solid var(--border);}
.phase-badge{display:inline-block;padding:0.15rem 0.55rem;border-radius:4px;font-size:0.75rem;font-weight:600;}
.progress-bar{width:100%;height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin-top:0.35rem;}
.progress-fill{height:100%;border-radius:3px;background:var(--green);transition:width 0.3s;}
.current-box{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem;}
.info-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
.info-card-label{font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--text-dim);margin-bottom:0.5rem;}
.info-card-value{font-size:1.75rem;font-weight:700;font-variant-numeric:tabular-nums;}
.info-card-sub{font-size:0.8rem;color:var(--text-dim);margin-top:0.25rem;}
.week-workouts{display:flex;flex-direction:column;gap:0.5rem;margin-top:0.75rem;}
.week-workout{display:flex;align-items:center;gap:0.75rem;padding:0.5rem 0.65rem;background:var(--bg);border-radius:6px;font-size:0.85rem;}
.week-workout-type{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.week-workout-done{margin-left:auto;font-size:0.75rem;color:var(--green);}
.week-workout-pending{margin-left:auto;font-size:0.75rem;color:var(--text-dim);}
.week-workout.has-reason{border-bottom-left-radius:0;border-bottom-right-radius:0;}
.week-workout-reason{margin-top:-0.5rem;padding:0.35rem 0.65rem 0.5rem;background:var(--bg);border-top:1px solid var(--border);border-bottom-left-radius:6px;border-bottom-right-radius:6px;font-size:0.78rem;color:var(--text-dim);}
.timeline{position:relative;margin-top:0.5rem;}
.timeline-bar{width:100%;height:34px;display:flex;gap:2px;}
.timeline-segment{height:100%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:500;color:var(--text);background:color-mix(in srgb,var(--seg) 18%,var(--surface));border-bottom:2px solid var(--seg);border-radius:var(--r-sm) var(--r-sm) 0 0;transition:background 0.15s;cursor:default;overflow:hidden;white-space:nowrap;}
.timeline-segment:hover{background:color-mix(in srgb,var(--seg) 30%,var(--surface));}
.timeline-segment{--seg:var(--phase-fg);}
.timeline-labels{display:flex;margin-top:0.35rem;}
.timeline-label{font-size:0.65rem;color:var(--text-dim);text-align:center;}
.timeline-now{left:var(--now);position:absolute;top:-4px;width:2px;height:40px;background:var(--text);border-radius:1px;}
.timeline-now::after{content:attr(data-label);position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:0.6rem;color:var(--text);white-space:nowrap;}
@media (max-width:768px){.current-box{grid-template-columns:1fr;}
.timeline-segment{font-size:0.55rem;}
.timeline-label{font-size:0.55rem;}
.info-card-value{font-size:1.4rem;}
table{font-size:0.75rem;}
th,td{padding:0.4rem 0.5rem;}
}
.text-dim{color:var(--text-dim);}
.status-icon{display:inline-flex;align-items:center;vertical-align:middle;margin-right:2px;}
.status-icon svg,.status-icon i[data-lucide]{width:12px;height:12px;}
.status-icon.fulfilled{color:var(--green);}
.status-icon.partial{color:var(--yellow);}
.status-icon.missed{color:var(--red);}
.status-icon.open{color:var(--text-dim);}
.week-summary-stats{display:flex;gap:1rem;margin-top:0.5rem;font-size:0.75rem;color:var(--text-dim);}
.review-nav{display:flex;gap:0.5rem;align-items:center;}
.review-nav-label{font-size:0.82rem;color:var(--text-dim);min-width:140px;text-align:center;}
.review-body{margin-top:0.75rem;}
@media (max-width:480px){.review-nav{width:100%;justify-content:space-between;}
.review-nav-label{min-width:0;flex:1;}
.timeline-segment{font-size:0.45rem;letter-spacing:-0.02em;}
.timeline-label{font-size:0.45rem;}
.week-workout{font-size:0.8rem;gap:0.5rem;padding:0.4rem 0.5rem;}
}
}
body.page-plans{.plans-hint{color:var(--text-dim);font-size:var(--fs-sm);margin-bottom:var(--sp-5);max-width:62ch;line-height:1.5;}
.plan-card{padding:0;overflow:hidden;}
.plan-active{border-left:3px solid var(--accent);}
.plan-archived .plan-name{color:var(--text-dim);}
.plan-card-body{display:block;padding:var(--sp-5);color:inherit;text-decoration:none;}
.plan-card-body:hover .plan-name{color:var(--accent);}
.plan-card-top{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4);}
.plan-name{font-size:var(--fs-lg);font-weight:600;}
.plan-facts{display:flex;flex-wrap:wrap;gap:var(--sp-6);}
.plan-fact-value{font-size:var(--fs-md);font-variant-numeric:tabular-nums;}
.plan-fact-sports{display:flex;align-items:center;gap:0.35rem;}
.plan-fact-sports svg,.plan-fact-sports i[data-lucide]{width:15px;height:15px;flex-shrink:0;}
.plan-fact-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-dim);margin-top:0.1rem;}
.plan-origin{margin-top:var(--sp-4);font-size:var(--fs-sm);color:var(--text-faint);}
.plan-card-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-hover);}
.plan-card-delete{margin-right:auto;color:var(--text-dim);}
.plan-card-delete:hover{color:var(--red);background:var(--red-dim);border-color:transparent;}
.plan-badge{font-size:0.65rem;text-transform:uppercase;letter-spacing:0.06em;padding:0.15rem 0.5rem;border-radius:4px;background:var(--surface-hover);color:var(--text-dim);font-weight:600;}
.plan-badge-active{background:var(--accent-dim);color:var(--accent);}
.plan-badge-draft{background:var(--surface-hover);color:var(--text-faint);}
@media (max-width:560px){.plan-facts{gap:var(--sp-4);}
.plan-card-actions{flex-wrap:wrap;}
.plan-card-actions .btn{flex:1;justify-content:center;}
}
}
body.page-plan-detail{.plan-head{padding:var(--sp-5);}
.plan-active{border-left:3px solid var(--accent);}
.plan-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;}
.plan-head-right{display:flex;align-items:center;gap:var(--sp-2);}
.plan-name{font-size:var(--fs-xl);font-weight:600;}
.plan-sub{color:var(--text-dim);font-size:var(--fs-sm);margin-top:0.15rem;}
.plan-sub-sports svg,.plan-sub-sports i[data-lucide]{width:14px;height:14px;vertical-align:-2px;}
.plan-fact-label svg,.plan-fact-label i[data-lucide]{width:13px;height:13px;vertical-align:-2px;}
td svg,td i[data-lucide]{width:14px;height:14px;vertical-align:-2px;}
.plan-progress{margin:var(--sp-5) 0;}
.plan-progress-bar{position:relative;background:var(--surface-hover);border-radius:4px;height:10px;overflow:hidden;}
.plan-progress-today{position:absolute;top:0;bottom:0;left:var(--at,0%);width:2px;background:var(--text-dim);opacity:0.7;}
.plan-progress-fill{background:var(--accent);height:100%;width:var(--fill,0%);border-radius:4px;}
.plan-progress-text{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--text-dim);}
.plan-facts{display:flex;flex-wrap:wrap;gap:var(--sp-6);}
.plan-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;}
.plan-foot .plan-facts{flex:1;}
.plan-head-downloads{display:flex;gap:var(--sp-2);flex-shrink:0;}
.plan-card-delete{color:var(--text-dim);}
.plan-card-delete:hover{color:var(--red);background:var(--red-dim);border-color:transparent;}
.plan-fact-value{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;}
.plan-fact-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-dim);margin-top:0.1rem;}
.stat-unit{font-size:var(--fs-sm);color:var(--text-dim);}
.plan-badge{font-size:0.65rem;text-transform:uppercase;letter-spacing:0.06em;padding:0.15rem 0.5rem;border-radius:4px;background:var(--surface-hover);color:var(--text-dim);font-weight:600;}
.plan-badge-active{background:var(--accent-dim);color:var(--accent);}
.plan-badge-draft{background:var(--surface-hover);color:var(--text-faint);}
.type-row{display:grid;grid-template-columns:8rem 1fr 2.5rem;align-items:center;gap:var(--sp-3);padding:0.35rem 0;}
.type-name{font-size:var(--fs-sm);}
.type-bar-wrap{background:var(--surface-hover);border-radius:3px;height:8px;overflow:hidden;}
.type-bar{background:var(--accent);height:100%;border-radius:3px;width:var(--fill,0%);}
.type-count{font-size:var(--fs-sm);color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums;}
.block-row{padding:var(--sp-3) 0;border-top:1px solid var(--border);}
.block-row:first-of-type{border-top:none;}
.block-head{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;}
.block-phase{font-weight:600;}
.block-dates{font-size:var(--fs-sm);color:var(--text-dim);}
.block-meta{font-size:var(--fs-sm);color:var(--text-dim);margin-top:0.15rem;}
.block-text{margin-top:var(--sp-2);font-size:var(--fs-sm);line-height:1.55;max-width:70ch;}
table{width:100%;border-collapse:collapse;font-size:0.85rem;font-variant-numeric:tabular-nums;}
th{text-align:left;padding:0.5rem 0.75rem;color:var(--text-dim);font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;}
td{padding:0.5rem 0.75rem;border-top:1px solid var(--border);}
.table-wrap{overflow-x:auto;}
.week-now td{background:var(--accent-dim);}
.row-rest td{color:var(--text-faint);}
.row-reason{margin-top:0.2rem;font-size:0.78rem;line-height:1.35;color:var(--text-dim);}
.icon-done{width:15px;height:15px;color:var(--green,var(--accent));}
.view-switch{display:inline-flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;}
.view-option{padding:0.3rem 0.7rem;font-size:var(--fs-sm);color:var(--text-dim);text-decoration:none;}
.view-option:hover{background:var(--surface-hover);color:var(--text);}
.view-option.is-current{background:var(--accent);color:#fff;}
.block-filter{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4);}
.chip{display:inline-flex;align-items:baseline;gap:0.35rem;padding:0.25rem 0.6rem;border:1px solid var(--border);border-radius:999px;font-size:var(--fs-sm);color:var(--text-dim);text-decoration:none;}
.chip:hover{background:var(--surface-hover);color:var(--text);}
.chip.is-current{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);}
.chip-note{font-size:0.7rem;opacity:0.8;}
@media (max-width:560px){.plan-facts{gap:var(--sp-4);}
.type-row{grid-template-columns:6.5rem 1fr 2rem;}
}
}
body.page-feedback{textarea{width:100%;resize:vertical;max-width:46rem;}
.hint,.note-below{max-width:46rem;}
.report-table{width:100%;border-collapse:collapse;}
.report-table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:0.04em;color:var(--text-faint);font-weight:600;padding:0 var(--sp-3) var(--sp-2) 0;white-space:nowrap;}
.report-table td{padding:var(--sp-3) var(--sp-3) var(--sp-3) 0;border-top:1px solid var(--border);vertical-align:top;}
.report-table .col-wide{width:100%;}
.report-date{font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;}
.report-pending{color:var(--text-faint);}
@media (max-width:640px){.report-table thead{display:none;}
.report-table,.report-table tbody,.report-table tr,.report-table td{display:block;width:auto;}
.report-table tr{border-top:1px solid var(--border);padding:var(--sp-3) 0;}
.report-table td{border-top:none;padding:0 0 0.2rem 0;}
}
.report-list{list-style:none;margin:0;padding:0;}
.report-item{padding:var(--sp-4) 0;border-top:1px solid var(--border);}
.report-item:first-child{border-top:none;}
.report-item-top{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);margin-bottom:0.2rem;}
.report-status{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}
.report-status.is-open{color:var(--text-dim);}
.report-status.is-in_progress{color:var(--blue);}
.report-status.is-done{color:var(--green);}
.report-status.is-declined{color:var(--text-faint);}
.report-meta{font-size:var(--fs-xs);color:var(--text-faint);}
.report-item-text{margin:0;white-space:pre-wrap;font-size:var(--fs-sm);color:var(--text-dim);}
.radio-group-stacked{flex-direction:column;gap:0.4rem;}
input[type="file"]{padding:0.5rem 0.75rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text-dim);font-size:var(--fs-sm);font-family:inherit;width:100%;}
input[type="file"]::file-selector-button{margin-right:0.75rem;padding:0.3rem 0.7rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-hover);color:var(--text);font:inherit;font-size:var(--fs-sm);cursor:pointer;}
input[type="file"]::file-selector-button:hover{border-color:var(--border-strong);}
.file-list{list-style:none;margin:0.5rem 0 0;padding:0;font-size:var(--fs-sm);color:var(--text-dim);}
.file-list li{padding:0.15rem 0;}
.file-rejected{color:var(--red);}
.context-list{list-style:none;margin:0.35rem 0 0;padding:0.6rem 0.75rem;background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-dim);overflow-wrap:anywhere;}
.context-list li{padding:0.15rem 0;}
.context-key{display:inline-block;min-width:5.5rem;color:var(--text-faint);}
@media (max-width:560px){.context-key{display:block;min-width:0;}
.form-actions{flex-wrap:wrap;}
}
}
.is-hidden{display:none;}
.is-clickable{cursor:pointer;}
.is-disabled-look{opacity:0.3;}
.text-yellow{color:var(--yellow);}
.text-red{color:var(--red);}
.text-dim-inline{color:var(--text-dim);}
.icon-inline{width:12px;height:12px;vertical-align:-1px;color:var(--text-faint);margin-right:4px;}
.note-below{margin-top:var(--sp-3);font-size:var(--fs-sm);color:var(--text-dim);}
.field-spaced{margin-top:1rem;}
.status-line{margin:0.75rem 0;}
.fs-micro{font-size:0.72rem;}
.allowance-fill,.pace-bar,.zone-bar,.equip-bar-fill,.progress-fill,.timeline-segment,.timeline-label{width:var(--fill,0%);}
.zone-bar{background:var(--tone);}
.zone-label{color:var(--tone);}
.week-workout-type{background:var(--tone,#a5abb8);}
.timeline-now{left:var(--now);}