.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{display:grid;grid-template-areas:"overview records";grid-template-columns:minmax(0,1fr) minmax(18rem,.38fr);gap:clamp(.9rem,2vw,1.15rem);width:100%;align-items:stretch}.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{width:100%;border:1px solid var(--surface-card-border);border-radius:var(--radius);background:var(--surface-card-bg);box-shadow:var(--shadow-sm)}.diary-block{display:grid;gap:1.05rem;padding:clamp(1rem,2vw,1.35rem)}.block-kicker{margin:0;color:var(--color-accent);font-family:var(--font-mono);font-size:.78rem;letter-spacing:0}.overview-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:0;overflow:hidden;border:1px solid rgba(126,161,184,.3);border-radius:7px;background:#4e615129}.overview-stat{min-width:0;padding:1rem;background:#f8fbfa75}.overview-stat dt{color:var(--color-muted);font-size:.78rem}.overview-stat dd{margin:.2rem 0 .25rem;color:var(--color-fg);font-family:var(--font-mono);font-size:clamp(1.18rem,2vw,1.55rem);line-height:1.12}.overview-stat p{margin:0;color:var(--color-muted);font-size:.82rem;line-height:1.45}.subdivision-panel{display:grid;gap:.85rem}.subdivision-chart{display:grid;gap:.5rem;min-width:0;padding-top:.05rem}.subdivision-chart header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.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);font-size:.8rem;white-space:nowrap}.stacked-bar{display:flex;width:100%;height:1.55rem;overflow:hidden;border:1px solid rgba(18,32,43,.08);border-radius:5px;background:#ffffffb8}.stacked-segment{display:block;min-width:2px;background:var(--segment-color, var(--color-accent))}.chart-legend{display:flex;flex-wrap:wrap;gap:.42rem .8rem;margin:0;padding:0;list-style:none}.chart-legend li{display:inline-grid;grid-template-columns:.65rem auto auto;align-items:center;gap:.34rem;color:var(--color-muted);font-family:var(--font-mono);font-size:.74rem}.legend-swatch{width:.56rem;height:.56rem;border-radius:50%;background:var(--segment-color, var(--color-accent))}.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{display:grid;gap:.65rem;align-content:start}.record-highlight{--record-border: rgba(126, 161, 184, .28);--record-bg: rgba(248, 251, 250, .5);--record-bg-hover: rgba(248, 251, 250, .78);--record-label: var(--color-muted);display:grid;gap:.16rem;padding:.72rem;border:1px solid var(--record-border);border-radius:7px;background:var(--record-bg);color:var(--color-fg);text-decoration:none}.record-highlight-run{--record-border: rgba(94, 140, 97, .38);--record-bg: rgba(94, 140, 97, .08);--record-bg-hover: rgba(94, 140, 97, .14);--record-label: var(--type-run)}.record-highlight-ride{--record-border: rgba(59, 50, 44, .32);--record-bg: rgba(59, 50, 44, .055);--record-bg-hover: rgba(59, 50, 44, .1);--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{display:flex;flex-wrap:wrap;align-items:end;gap:.55rem}.records-controls label{display:grid;gap:.25rem;min-width:min(11.5rem,100%);color:var(--color-muted);font-size:.74rem}.records-controls select,.records-controls input{min-height:2.2rem;border:1px solid var(--color-border-strong);border-radius:6px;background:#f8fbfac7;color:var(--color-fg);font:inherit;padding:.4rem .55rem}.logbook-panel{overflow:hidden}.logbook-panel summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem;padding:.9rem 1rem;cursor:pointer;list-style:none}.logbook-panel summary::-webkit-details-marker{display:none}.logbook-panel summary span:first-child{display:grid;gap:.18rem}.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 rgba(126,161,184,.24);padding:1rem}.records-controls label:first-child{flex:1 1 18rem}.route-map-attribution{margin:0;padding:0 1rem .65rem;color:var(--color-muted);font-size:.64rem;line-height:1.3;text-align:right}.route-map-attribution a{color:inherit}.records-list{display:grid;max-height:min(66vh,42rem);overflow:auto;border-top:1px solid rgba(126,161,184,.24)}.record-row{content-visibility:auto;contain-intrinsic-size:auto 5rem;display:grid;grid-template-columns:4.4rem minmax(10rem,1fr) minmax(20rem,1.2fr);gap:.85rem;align-items:center;min-width:0;padding:.72rem 1rem;border-bottom:1px solid rgba(126,161,184,.2);background:#ffffff52}.record-row[hidden]{display:none}.record-row:hover{background:#ffffff9e}.record-preview{width:3.5rem;height:3.5rem}.record-route-button{display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;cursor:zoom-in}.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{display:block;width:100%;height:100%;border:1px solid rgba(126,161,184,.42);border-radius:6px;overflow:hidden;background:#edf0eb;transition:border-color .14s ease,transform .14s ease}.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:8}.record-route .route-line{stroke:var(--activity-color, var(--color-accent));stroke-width:4.5}.route-start{fill:var(--color-signal);stroke:#fff;stroke-width:1.1px}.route-end{fill:#c2410c;stroke:#fff;stroke-width:1.1px}.record-symbol{display:grid;place-items:center;width:100%;height:100%;border:1px solid rgba(126,161,184,.42);border-radius:6px;background:linear-gradient(180deg,#ffffffd6,#e8f1f7d6),radial-gradient(circle at center,rgba(31,109,143,.08),transparent 64%);color:var(--activity-color, var(--color-accent))}.record-symbol svg{width:2.05rem;height:2.05rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.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{margin:0 0 .1rem;color:var(--activity-color, var(--color-accent));font-family:var(--font-mono);font-size:.74rem}.record-main h3{overflow:hidden;color:var(--color-fg);font-size:.94rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.record-meta{display:flex;flex-wrap:wrap;gap:.25rem .5rem;color:var(--color-muted);font-size:.8rem}.record-meta span:before{content:"·";margin-right:.35rem;color:#7ea1b8cc}.record-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:0}.record-stats div{min-width:0}.record-stats dt{color:var(--color-muted);font-size:.7rem}.record-stats dd{margin:.05rem 0 0;overflow:hidden;color:var(--color-fg);font-family:var(--font-mono);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.empty-state{padding:1rem}.activity-map-dialog{width:min(62rem,calc(100vw - 2rem));max-width:none;margin:auto;padding:0;overflow:hidden;border:1px solid var(--surface-card-border);border-radius:var(--radius);background:var(--surface-card-bg);color:var(--color-fg);box-shadow:0 1.5rem 5rem #12202b47}.activity-map-dialog::backdrop{background:#12202b94;backdrop-filter:blur(4px)}.activity-map-card{display:grid;gap:.9rem;padding:clamp(.8rem,2vw,1.2rem)}.activity-map-card header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.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{min-height:2.4rem;padding:.45rem .75rem;border:1px solid var(--color-border-strong);border-radius:6px;background:#f8fbfad1;color:var(--color-fg);cursor:pointer;font:inherit}.activity-map-close:hover,.activity-map-close:focus-visible{border-color:var(--color-accent)}.activity-map-canvas{position:relative;isolation:isolate;z-index:0;width:100%;height:clamp(22rem,66vh,42rem);overflow:hidden;border:1px solid rgba(126,161,184,.3);border-radius:7px;background:#f8fbfa80}.activity-map-canvas.leaflet-container{font-family:var(--font-mono);font-size:.72rem}.activity-map-status:empty{display:none}.empty-state p{margin:0;color:var(--color-muted)}.inline-empty{border-radius:7px;box-shadow:none}.records-empty{border:0;border-top:1px solid rgba(126,161,184,.24);border-radius:0;background:#ffffff52;box-shadow:none}@media(max-width:1040px){.training-dashboard{grid-template-areas:"overview" "records";grid-template-columns:1fr}.record-highlight-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-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(max-width:640px){.subdivision-chart header,.logbook-panel summary{align-items:start;flex-direction:column}.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;display:grid;grid-template-columns:4.4rem minmax(10rem,1fr) minmax(20rem,1.2fr);gap:.85rem;align-items:center;min-width:0;padding:.72rem 1rem;border-bottom:1px solid rgba(126,161,184,.2);background:#ffffff52}.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{display:block;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:6px;background:transparent;color:inherit;cursor:zoom-in}.training-diary-page .record-route{display:block;width:100%;height:100%;border:1px solid rgba(126,161,184,.42);border-radius:6px}.training-diary-page .record-main{min-width:0}.training-diary-page .record-main h3{overflow:hidden;color:var(--color-fg);font-size:.94rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.training-diary-page .record-meta{display:flex;flex-wrap:wrap;gap:.25rem .5rem;color:var(--color-muted);font-size:.8rem}.training-diary-page .record-meta span:before{content:" · ";margin-right:.15rem;color:#7ea1b8cc}.training-diary-page .record-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;margin:0}@media(max-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(max-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}}
