.racelog-layout{display:flex;flex-direction:column;gap:12px;width:100%;margin-top:16px;animation:fadeIn .4s ease}.form-title{display:block;font-size:.65rem;color:var(--bike, #00ffc3);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:2px;font-weight:800}.filter-bar{display:flex;justify-content:flex-start;align-items:center;margin-bottom:0;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:12px;flex-wrap:wrap;gap:16px 24px}.filter-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filter-group--hidden{display:none}.filter-group--year{margin-left:auto;flex-shrink:0;justify-content:flex-end}.filter-label{font-size:.65rem;color:#666;font-weight:800;font-family:JetBrains Mono,monospace;letter-spacing:1px;text-transform:uppercase;margin-right:8px}.race-doc-scroll .filter-btn.is-active{border-color:var(--bike, #00ffc3);color:var(--bike, #00ffc3);background:#00ffc30d}.filter-select{background:#00000059;border:1px solid rgba(255,255,255,.1);color:#888;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:800;padding:6px 28px 6px 12px;border-radius:4px;cursor:pointer;text-transform:uppercase;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%23888'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;min-width:108px}.filter-select:hover{border-color:#ffffff4d;color:#fff}.filter-select:focus{outline:none;border-color:var(--bike, #00ffc3);color:var(--bike, #00ffc3)}.filter-select option{background:#12141d;color:#fff}.analytics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;width:100%;align-items:stretch}@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}}.analytics-card{display:flex;flex-direction:column}.analytics-card--vault{padding:var(--card-pad-y) var(--card-pad-x)}.analytics-card-body--vault{flex:1;padding-top:4px;text-align:center}.analytics-card-body--mix{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0;min-height:0}.vault-mix-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;flex:1;text-align:center;padding:4px 0 8px}.vault-mix-footer{text-align:center;width:100%}.analytics-card-body--pb,.analytics-card-body--metrics{text-align:left}.analytics-card-body--recent{flex:1;padding-top:4px;text-align:left}.analytics-card-body--exec{flex:1;padding:0;min-height:0;display:flex;flex-direction:column}.analytics-card--vault .exec-stack{flex:1;display:flex;flex-direction:column;justify-content:flex-start;padding-top:4px}.analytics-card--vault .exec-stack--detail{gap:0}.exec-summary{font-size:.62rem;color:#666;font-family:JetBrains Mono,monospace;text-align:center;margin:2px 0 14px;line-height:1.4}.exec-trail{margin-top:auto;text-align:left;width:100%;padding-top:4px}.exec-trail-label{font-size:.58rem;color:#555;letter-spacing:.5px;margin-bottom:6px;font-family:JetBrains Mono,monospace}.exec-trail-row{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;gap:8px;align-items:baseline;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04)}.exec-trail-row:last-child{border-bottom:none}.exec-trail-date{font-size:.58rem;color:#555;font-family:JetBrains Mono,monospace}.exec-trail-name{font-size:.62rem;color:#888;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exec-trail-pct{font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:800}.analytics-card--vault .exec-legend{margin-top:auto;margin-bottom:0;flex-shrink:0;width:100%;min-height:2.75rem;box-sizing:border-box;text-transform:none;letter-spacing:0;font-weight:400}.analytics-empty-note{text-align:center;color:#666;font-size:.75rem;font-family:JetBrains Mono,monospace;padding:24px 0}.vault-mix-count{font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:900;color:#fff;line-height:1.1}.vault-mix-breakdown{font-size:.75rem;color:#888;letter-spacing:1px;line-height:1.3}.metric-grid{display:flex;flex-direction:column;gap:16px;text-align:left}.metric-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.metric-label{font-size:.75rem;color:#888}.metric-value{font-family:JetBrains Mono,monospace;font-size:1rem;color:#fff;font-weight:800}.metric-value--accent{color:var(--accent, var(--bike, #00ffc3))}.metric-footnote{font-size:.65rem;color:#555;margin-top:4px}.tri-pace-grid{display:flex;flex-direction:column;gap:20px;text-align:left}.tri-pace-row{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:8px}.tri-pace-label{display:flex;align-items:center;gap:8px;font-size:.75rem;color:#888;font-family:JetBrains Mono,monospace}.tri-pace-icon{font-size:18px}.tri-pace-value{font-family:JetBrains Mono,monospace;font-size:1rem;color:#fff;font-weight:800;text-align:right;line-height:1.3}.tri-pace-sub{display:block;font-size:.8rem;color:var(--bike, #00ffc3);font-weight:800;margin-top:2px}.analytics-header{font-size:.65rem;color:#888;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:1px;font-weight:800;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:12px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.analytics-card--vault .analytics-header{margin-bottom:10px;padding-bottom:8px;align-items:flex-start;min-height:2.4rem}.analytics-header-icon{font-size:16px;line-height:1;flex-shrink:0;margin-top:1px}.analytics-header-title{text-align:right;line-height:1.2}.analytics-header-title--stack{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.analytics-header-sub{font-size:.55rem;color:#555;letter-spacing:1px;font-weight:800;line-height:1.2;min-height:.66rem}.analytics-header-sub--empty{visibility:hidden}.exec-row{margin-bottom:8px}.exec-row:last-of-type{margin-bottom:0}.exec-row-grid{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:8px}.exec-row-label{display:flex;align-items:center;gap:6px;font-size:.7rem;color:#888}.exec-row-icon{font-size:18px}.exec-bar-track{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.exec-bar-fill{height:100%}.exec-row-pct{text-align:right;min-width:52px}.exec-row-pct-value{font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:900;line-height:1}.exec-row-pct-threshold{font-size:.5rem;color:#666;letter-spacing:.5px;margin-top:2px}.exec-legend{font-size:.58rem;color:#555;line-height:1.4;margin:8px 0 0;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.macro-banner{background:color-mix(in srgb,var(--macro-accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--macro-accent) 25%,transparent);border-radius:12px;padding:var(--panel-pad-y) var(--panel-pad-x);margin-bottom:12px;display:flex;gap:16px;align-items:flex-start;animation:fadeIn .4s ease}.macro-banner-icon{color:var(--macro-accent);font-size:28px;flex-shrink:0}.macro-banner-title{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--macro-accent);font-weight:800;letter-spacing:1px;margin-bottom:8px}.macro-banner-body{font-size:.85rem;color:#ccc;line-height:1.6}.analytics-empty-state{text-align:center;padding:64px 24px;background:#0006;border-radius:16px;border:1px solid rgba(255,255,255,.08);grid-column:1 / -1}.analytics-empty-state-label{color:#666;font-size:.85rem;font-family:JetBrains Mono,monospace;font-weight:800;letter-spacing:1px;display:block;margin-bottom:24px}.analytics-empty-state-cta{max-width:200px;margin:0 auto}.recent-race-stack{display:flex;flex-direction:column;gap:8px}.recent-race-name{font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:800;color:#fff;text-transform:uppercase;line-height:1.3}.recent-race-meta{font-size:.7rem;color:var(--active-color, #00ffc3)}.recent-race-metric-row{display:flex;align-items:baseline;gap:10px;margin-top:8px}.recent-race-metric-value{font-family:JetBrains Mono,monospace;font-size:1.8rem;font-weight:900}.recent-race-metric-value--finish{color:#fff}.recent-race-metric-label{font-size:.6rem;color:#666;letter-spacing:1px}.recent-race-finish{font-family:JetBrains Mono,monospace;font-size:.95rem;color:#888;margin-top:12px}.recent-race-finish-sub{color:#555}.pr-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.pr-label{font-size:.7rem;color:#fff;font-weight:800;text-transform:uppercase;font-family:JetBrains Mono,monospace}.pr-label--empty{color:#555}.pr-time{font-size:1.1rem;color:var(--bike, #00ffc3);font-weight:400;font-family:JetBrains Mono,monospace}.history-feed{display:flex;flex-direction:column;margin-top:16px;gap:8px}.race-feed-year-group{display:flex;flex-direction:column}.race-feed-year-label{font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:800;color:#666;letter-spacing:1px;padding:20px 0 10px;border-bottom:1px solid rgba(255,255,255,.06)}.race-feed-year-group:first-child .race-feed-year-label{padding-top:4px}.race-feed-year-group .log-item-tight:last-child{border-bottom:none}.log-item-tight{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem) 4.5rem;align-items:center;column-gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.05);transition:background .2s;cursor:pointer}.race-feed-primary{display:grid;grid-template-columns:50px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0}.race-feed-icon-slot{flex-shrink:0;width:50px;display:flex;align-items:center;justify-content:center}.race-feed-icon-slot .cat-icon{font-size:22px;line-height:1}.race-feed-tri-icons{flex-direction:row;align-items:center;justify-content:center;gap:1px}.race-feed-tri-icons .material-symbols-outlined{font-size:14px;line-height:1}.race-feed-name{font-family:JetBrains Mono,monospace;font-size:.9rem;color:#fff;font-weight:800;text-transform:uppercase;white-space:normal;word-break:break-word;line-height:1.3;min-width:0}.race-feed-sep{color:#444;font-size:.9rem}.race-feed-time{font-family:JetBrains Mono,monospace;font-size:.95rem;color:#fff;font-weight:800;white-space:nowrap}.race-feed-stats{display:grid;grid-template-columns:5rem minmax(0,1fr);column-gap:16px;align-items:center;width:100%;min-width:0;max-width:22rem;overflow:hidden;font-family:JetBrains Mono,monospace;font-size:.8rem;color:#aaa;font-weight:800}.race-feed-dist{text-align:left;white-space:nowrap}.race-feed-detail{display:flex;justify-content:flex-end;align-items:center;gap:8px;text-align:right;white-space:nowrap;min-width:0;overflow:hidden}.race-feed-detail>span{flex-shrink:0}.race-feed-meta{display:flex;align-items:center;justify-content:flex-end;justify-self:end;width:4.5rem;flex-shrink:0}.race-feed-actions{display:flex;align-items:center;gap:8px}.race-feed-actions .xray-btn,.race-feed-actions .edit-log-btn,.race-feed-actions .delete-log-btn{opacity:1}.race-feed-actions .xray-btn{transition:color .2s,transform .2s}.race-feed-actions .xray-btn:hover{color:var(--bike, #00ffc3);transform:scale(1.08)}.log-item-tight:hover{background:#ffffff05}.log-item-tight:last-child{border-bottom:none}.edit-log-btn{background:transparent;border:none;color:#666;cursor:pointer;padding:0;display:flex;align-items:center;transition:color .2s,transform .2s}.edit-log-btn:hover{color:var(--swim, #00d2ff);transform:scale(1.08)}.delete-log-btn{background:transparent;border:none;color:#666;cursor:pointer;padding:0;display:flex;align-items:center;transition:color .2s,transform .2s}.delete-log-btn:hover{color:#f43f5e;transform:scale(1.08)}.chart-wrapper{width:100%;height:250px;margin-top:32px;padding-top:32px;border-top:1px solid rgba(255,255,255,.05);position:relative}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}#post-mortem-modal .modal-content{max-height:90vh;overflow-y:auto;scrollbar-width:none}#post-mortem-modal .modal-content::-webkit-scrollbar{display:none}.pm-title{font-size:1.5rem;font-weight:900;color:#fff;margin:0 0 4px;text-transform:uppercase;font-family:JetBrains Mono,monospace;text-align:center}.pm-subtitle{font-size:.75rem;color:var(--bike, #00ffc3);font-weight:800;letter-spacing:1px;font-family:JetBrains Mono,monospace;text-align:center;margin-bottom:32px}.pm-section-label{font-size:.85rem;color:#fff;font-weight:900;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px;display:block;font-family:JetBrains Mono,monospace;text-align:left}.pm-insight-box{font-size:.85rem;color:#aaa;line-height:1.6;margin-bottom:24px}.pm-insight-basis{font-size:.65rem;color:#666;font-family:JetBrains Mono,monospace;line-height:1.5;margin:0 0 20px;text-align:left}.pm-threshold-ref{font-size:.65rem;color:#666;font-family:JetBrains Mono,monospace;text-align:center;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.06);letter-spacing:.3px}.inline-pb-badge{display:inline-block;background:#f59e0b;color:#000;font-size:.55rem;padding:2px 4px;border-radius:4px;font-weight:900;vertical-align:top;margin-left:4px;line-height:1}.donut-container{position:relative;width:64px;height:64px;margin:0 auto 4px}.donut-chart{width:100%;height:100%;transform:rotate(-90deg);overflow:visible}.donut-track{fill:transparent;stroke:#ffffff0d;stroke-width:2.5}.donut-fill{fill:transparent;stroke-width:2.5;stroke-linecap:round;transition:stroke-dasharray 1s ease-out}.donut-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:JetBrains Mono,monospace;font-size:1rem;font-weight:900;color:#fff}.sync-btn{display:inline-block;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:#ccc;font-family:JetBrains Mono,monospace;font-size:.6rem;font-weight:800;padding:2px 6px;border-radius:4px;cursor:pointer;transition:all .2s;letter-spacing:.5px;vertical-align:middle;margin:0 4px}.sync-btn[data-sync=swim]:hover{border-color:var(--swim, #00d2ff);color:var(--swim, #00d2ff);background:#00d2ff1a}.sync-btn[data-sync=bike]:hover{border-color:var(--bike, #00ffc3);color:var(--bike, #00ffc3);background:#00ffc31a}.sync-btn[data-sync=run]:hover{border-color:var(--run, #FF5900);color:var(--run, #FF5900);background:#ff59001a}.sync-btn.synced{border-color:#10b981!important;color:#10b981!important;background:#10b9811a!important;pointer-events:none}@media(max-width:768px){.filter-group--year{width:100%;margin-left:0}.log-item-tight{grid-template-columns:1fr;row-gap:10px}.race-feed-primary{width:100%}.race-feed-stats{max-width:none}.race-feed-meta{width:100%;justify-self:end}.race-feed-detail{flex-wrap:wrap;white-space:normal;justify-content:flex-start}}
