.training-diary-page{--type-run:#5e8c61;--type-walk:#72bda3;--type-hike:#4e6151;--type-ride:#3b322c;--type-virtualride:#3b322c;--type-swim:#72bda3;--type-weighttraining:#3b322c;--type-workout:#4e6151;--type-other:#94e8b4;gap:clamp(1.2rem,3vw,2rem)}.training-diary-head{max-width:820px}.training-dashboard{grid-template-columns:minmax(0,1fr) minmax(18rem,.38fr);grid-template-areas:"overview records";align-items:stretch;gap:clamp(.9rem,2vw,1.15rem);width:100%;display:grid}.overview-section{grid-area:overview}.records-block{grid-area:records;align-self:stretch}.overview-section,.records-block{height:100%}.diary-block,.logbook-panel,.empty-state{border:1px solid var(--surface-card-border);border-radius:var(--radius);background:var(--surface-card-bg);width:100%;box-shadow:var(--shadow-sm)}.diary-block{gap:1.05rem;padding:clamp(1rem,2vw,1.35rem);display:grid}.block-kicker{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:0;margin:0;font-size:.78rem}.overview-stat-grid{background:#4e615129;border:1px solid #7ea1b84d;border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.overview-stat{background:#f8fbfa75;min-width:0;padding:1rem}.overview-stat dt{color:var(--color-muted);font-size:.78rem}.overview-comparison{white-space:nowrap;min-height:1.45em}[data-overview-note]{display:block}.overview-stat dd{color:var(--color-fg);font-family:var(--font-mono);margin:.2rem 0 .25rem;font-size:clamp(1.18rem,2vw,1.55rem);line-height:1.12}.overview-stat p{color:var(--color-muted);margin:0;font-size:.82rem;line-height:1.45}.subdivision-panel{gap:.85rem;display:grid}.subdivision-chart{gap:.5rem;min-width:0;padding-top:.05rem;display:grid}.subdivision-chart header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.subdivision-chart h2,.record-main h3{margin:0}.subdivision-chart h2{font-size:.98rem;line-height:1.2}.subdivision-chart header span{color:var(--color-muted);font-family:var(--font-mono);white-space:nowrap;font-size:.8rem}.stacked-bar{background:#ffffffb8;border:1px solid #12202b14;border-radius:5px;width:100%;height:1.55rem;display:flex;overflow:hidden}.stacked-segment{background:var(--segment-color,var(--color-accent));min-width:2px;display:block}.chart-legend{flex-wrap:wrap;gap:.42rem .8rem;margin:0;padding:0;list-style:none;display:flex}.chart-legend li{color:var(--color-muted);font-family:var(--font-mono);grid-template-columns:.65rem auto auto;align-items:center;gap:.34rem;font-size:.74rem;display:inline-grid}.legend-swatch{background:var(--segment-color,var(--color-accent));border-radius:50%;width:.56rem;height:.56rem}.chart-legend strong{color:var(--color-fg);font-weight:650}.type-run,.type-run .record-symbol,.type-run.record-row{--segment-color:var(--type-run);--activity-color:var(--type-run)}.type-walk,.type-walk .record-symbol,.type-walk.record-row{--segment-color:var(--type-walk);--activity-color:var(--type-walk)}.type-hike,.type-hike .record-symbol,.type-hike.record-row{--segment-color:var(--type-hike);--activity-color:var(--type-hike)}.type-ride,.type-virtualride,.type-ride .record-symbol,.type-virtualride .record-symbol,.type-ride.record-row,.type-virtualride.record-row{--segment-color:var(--type-ride);--activity-color:var(--type-ride)}.type-swim,.type-swim .record-symbol,.type-swim.record-row{--segment-color:var(--type-swim);--activity-color:var(--type-swim)}.type-weighttraining,.type-workout,.type-weighttraining .record-symbol,.type-workout .record-symbol,.type-weighttraining.record-row,.type-workout.record-row{--segment-color:var(--type-weighttraining);--activity-color:var(--type-weighttraining)}.type-other{--segment-color:var(--type-other);--activity-color:var(--type-other)}.record-highlight-list{align-content:start;gap:.65rem;display:grid}.record-highlight{--record-border:#7ea1b847;--record-bg:#f8fbfa80;--record-bg-hover:#f8fbfac7;--record-label:var(--color-muted);border:1px solid var(--record-border);background:var(--record-bg);color:var(--color-fg);border-radius:7px;gap:.16rem;padding:.72rem;text-decoration:none;display:grid}.record-highlight-run{--record-border:#5e8c6161;--record-bg:#5e8c6114;--record-bg-hover:#5e8c6124;--record-label:var(--type-run)}.record-highlight-ride{--record-border:#3b322c52;--record-bg:#3b322c0e;--record-bg-hover:#3b322c1a;--record-label:var(--type-ride)}a.record-highlight:hover,a.record-highlight:focus-visible{background:var(--record-bg-hover);color:var(--color-fg);text-decoration:none}.record-highlight p,.record-highlight span,.record-highlight small{margin:0}.record-highlight p{color:var(--record-label);font-size:.76rem}.record-highlight strong{color:var(--color-fg);font-family:var(--font-mono);font-size:1.05rem;line-height:1.18}.record-highlight span{color:var(--color-accent);font-family:var(--font-mono);font-size:.74rem}.record-highlight small{color:var(--color-muted);font-size:.76rem;line-height:1.35}.records-controls{flex-wrap:wrap;align-items:end;gap:.55rem;display:flex}.records-controls label{min-width:min(11.5rem,100%);color:var(--color-muted);gap:.25rem;font-size:.74rem;display:grid}.records-controls select,.records-controls input{border:1px solid var(--color-border-strong);min-height:2.2rem;color:var(--color-fg);font:inherit;background:#f8fbfac7;border-radius:6px;padding:.4rem .55rem}.logbook-panel{overflow:hidden}.logbook-panel summary{cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;padding:.9rem 1rem;list-style:none;display:flex}.logbook-panel summary::-webkit-details-marker{display:none}.logbook-panel summary span:first-child{gap:.18rem;display:grid}.logbook-panel small,.records-summary-action{color:var(--color-muted);font-family:var(--font-mono);font-size:.78rem}.logbook-panel[open] .records-summary-action{color:var(--color-accent);font-size:0}.logbook-panel[open] .records-summary-action:after{content:"Close logbook";font-size:.78rem}.records-controls{border-top:1px solid #7ea1b83d;padding:1rem}.records-controls label:first-child{flex:18rem}.route-map-attribution{color:var(--color-muted);text-align:right;margin:0;padding:0 1rem .65rem;font-size:.64rem;line-height:1.3}.route-map-attribution a{color:inherit}.records-list{border-top:1px solid #7ea1b83d;max-height:min(66vh,42rem);display:grid;overflow:auto}.record-row{content-visibility:auto;contain-intrinsic-size:auto 5rem;background:#ffffff52;border-bottom:1px solid #7ea1b833;grid-template-columns:4.4rem minmax(10rem,1fr) minmax(20rem,1.2fr);align-items:center;gap:.85rem;min-width:0;padding:.72rem 1rem;display:grid}.record-row[hidden]{display:none}.record-row:hover{background:#ffffff9e}.record-preview{width:3.5rem;height:3.5rem}.record-route-button{width:100%;height:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:6px;margin:0;padding:0;display:block}.record-route-button:hover .record-route{border-color:var(--activity-color,var(--color-accent));transform:translateY(-1px)}.record-route-button:focus-visible{outline:2px solid var(--activity-color,var(--color-accent));outline-offset:2px}.record-route{background:#edf0eb;border:1px solid #7ea1b86b;border-radius:6px;width:100%;height:100%;transition:border-color .14s,transform .14s;display:block;overflow:hidden}.record-route image{opacity:.82;filter:saturate(.72)contrast(.94)brightness(1.03)}.record-route .route-halo,.record-route .route-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.record-route .route-halo{stroke:#fffffff0;stroke-width:8px}.record-route .route-line{stroke:var(--activity-color,var(--color-accent));stroke-width:4.5px}.route-start{fill:var(--color-signal);stroke:#fff;stroke-width:1.1px}.route-end{fill:#c2410c;stroke:#fff;stroke-width:1.1px}.record-symbol{width:100%;height:100%;color:var(--activity-color,var(--color-accent));background:linear-gradient(#ffffffd6,#e8f1f7d6),radial-gradient(circle,#1f6d8f14,#0000 64%);border:1px solid #7ea1b86b;border-radius:6px;place-items:center;display:grid}.record-symbol svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:2.05rem;height:2.05rem}.record-symbol span{color:currentColor;font-family:var(--font-mono);font-size:1.15rem;font-weight:700}.record-main{min-width:0}.record-main p{color:var(--activity-color,var(--color-accent));font-family:var(--font-mono);margin:0 0 .1rem;font-size:.74rem}.record-main h3{color:var(--color-fg);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.94rem;display:-webkit-box;overflow:hidden}.record-meta{color:var(--color-muted);flex-wrap:wrap;gap:.25rem .5rem;font-size:.8rem;display:flex}.record-meta span:before{content:"·";color:#7ea1b8cc;margin-right:.35rem}.record-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:0;display:grid}.record-stats div{min-width:0}.record-stats dt{color:var(--color-muted);font-size:.7rem}.record-stats dd{color:var(--color-fg);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin:.05rem 0 0;font-size:.78rem;overflow:hidden}.empty-state{padding:1rem}.activity-map-dialog{border:1px solid var(--surface-card-border);border-radius:var(--radius);background:var(--surface-card-bg);width:min(62rem,100vw - 2rem);max-width:none;color:var(--color-fg);margin:auto;padding:0;overflow:hidden;box-shadow:0 1.5rem 5rem #12202b47}.activity-map-dialog::backdrop{backdrop-filter:blur(4px);background:#12202b94}.activity-map-card{gap:.9rem;padding:clamp(.8rem,2vw,1.2rem);display:grid}.activity-map-card header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.activity-map-card h2,.activity-map-meta,.activity-map-status{margin:0}.activity-map-card h2{margin-top:.15rem;font-size:clamp(1.15rem,3vw,1.6rem)}.activity-map-meta,.activity-map-status{color:var(--color-muted);font-size:.82rem}.activity-map-close{border:1px solid var(--color-border-strong);min-height:2.4rem;color:var(--color-fg);cursor:pointer;font:inherit;background:#f8fbfad1;border-radius:6px;padding:.45rem .75rem}.activity-map-close:hover,.activity-map-close:focus-visible{border-color:var(--color-accent)}.activity-map-canvas{isolation:isolate;z-index:0;background:#f8fbfa80;border:1px solid #7ea1b84d;border-radius:7px;width:100%;height:clamp(22rem,66vh,42rem);position:relative;overflow:hidden}.activity-map-canvas.leaflet-container{font-family:var(--font-mono);font-size:.72rem}.activity-map-status:empty{display:none}.empty-state p{color:var(--color-muted);margin:0}.inline-empty{box-shadow:none;border-radius:7px}.records-empty{box-shadow:none;background:#ffffff52;border:0;border-top:1px solid #7ea1b83d;border-radius:0}@media (width<=1040px){.training-dashboard{grid-template-columns:1fr;grid-template-areas:"overview""records"}.record-highlight-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=920px){.overview-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-row{grid-template-columns:4.2rem minmax(0,1fr)}.record-stats{grid-column:2;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.subdivision-chart header,.logbook-panel summary{flex-direction:column;align-items:start}.overview-stat-grid,.record-highlight-list{grid-template-columns:1fr}.records-controls label,.records-controls button{width:100%}.record-row{grid-template-columns:3.7rem minmax(0,1fr);padding:.72rem}.record-preview{width:3.2rem;height:3.2rem}.record-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.record-stat-calories{display:none}.activity-map-dialog{width:calc(100vw - .8rem)}.activity-map-card header{gap:.65rem}.activity-map-canvas{height:min(64vh,32rem);min-height:18rem}}.training-diary-page .record-row{content-visibility:auto;contain-intrinsic-size:auto 5rem;background:#ffffff52;border-bottom:1px solid #7ea1b833;grid-template-columns:4.4rem minmax(10rem,1fr) minmax(20rem,1.2fr);align-items:center;gap:.85rem;min-width:0;padding:.72rem 1rem;display:grid}.training-diary-page .record-row[hidden]{display:none}.training-diary-page .record-row:hover{background:#ffffff9e}.training-diary-page .record-preview{width:3.5rem;height:3.5rem}.training-diary-page .record-route-button{width:100%;height:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:6px;margin:0;padding:0;display:block}.training-diary-page .record-route{border:1px solid #7ea1b86b;border-radius:6px;width:100%;height:100%;display:block}.training-diary-page .record-main{min-width:0}.training-diary-page .record-main h3{color:var(--color-fg);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.94rem;display:-webkit-box;overflow:hidden}.training-diary-page .record-meta{color:var(--color-muted);flex-wrap:wrap;gap:.25rem .5rem;font-size:.8rem;display:flex}.training-diary-page .record-meta span:before{content:" · ";color:#7ea1b8cc;margin-right:.15rem}.training-diary-page .record-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:0;display:grid}@media (width<=920px){.training-diary-page .record-row{grid-template-columns:4.2rem minmax(0,1fr)}.training-diary-page .record-stats{grid-column:2;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){.training-diary-page .record-row{grid-template-columns:3.7rem minmax(0,1fr);padding:.72rem}.training-diary-page .record-preview{width:3.2rem;height:3.2rem}.training-diary-page .record-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.training-diary-page .record-stat-calories{display:none}}
