*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#12100e;color:#f5f0e8;display:flex;flex-direction:column}#root,.app{display:flex;flex-direction:column;flex:1;min-height:0}header{min-height:15vh;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;padding:1rem}.transponder-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;height:3.5rem}.transponder-label{font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:#f0b4508c}.transponder-id{font-size:clamp(1rem,6vw,1.8rem);font-weight:700;letter-spacing:.05em;color:#f5f0e8;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location{font-size:.75rem;color:#f0b4508c}.season-hero{display:none}.date-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:.4rem}.date-nav-center{display:flex;flex-direction:column;align-items:center;gap:.15rem}#activity-date{font-size:.85rem;font-weight:600;color:#f5f0e8;letter-spacing:.03em}#activity-time{font-size:.7rem;color:#f0b4508c}.nav-btn{background:none;border:none;color:#f0b450;font-size:1.4rem;line-height:1;cursor:pointer;padding:.2rem .5rem;-webkit-tap-highlight-color:transparent}.nav-btn:disabled{opacity:.2;cursor:default}.stat-grid{height:15vh;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr;gap:.75rem;padding:0 1rem}.stat-card{background-color:#1c1916;border:1px solid rgba(240,180,80,.15);border-radius:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem}.stat-label{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:#f0b4508c}.stat-value{font-size:1.4rem;font-weight:700;color:#f5f0e8}.stat-value-stacked{display:flex;flex-direction:column;align-items:center;gap:.1rem}.stat-value-stacked span{font-size:1.4rem;font-weight:700;color:#f5f0e8;line-height:1.2}.hero{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.action-bar{height:72px;display:flex;align-items:center;justify-content:space-around;padding:0 1.5rem;border-top:1px solid rgba(240,180,80,.08)}.action-btn{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#f0b45040;cursor:default;border-radius:50%}.action-btn svg{width:22px;height:22px}.ring-container{position:relative;width:280px;height:280px}.ring-container.clickable{cursor:pointer}.ring-container>svg{display:block;width:100%;height:100%;overflow:visible}.overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem}.overlay-label{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#f0b4508c}.overlay-lap-nr{font-size:.65rem;font-weight:600;color:#f5f0e8;letter-spacing:.05em}.overlay-value{font-size:3rem;font-weight:700;color:#f5f0e8}.overlay-value--xl{font-size:3rem}.overlay-value--lg{font-size:2.2rem}.overlay-value--md{font-size:1.7rem}.overlay-value--sm{font-size:1.3rem}.overlay-line{width:40px;height:1px;background-color:#f0b450;margin:.2rem 0}.overlay-unit,.overlay-speed{font-size:.7rem;color:#f0b4508c}.overlay-badges{display:flex;gap:6px;justify-content:center;margin-top:.25rem}.badge-pill{display:inline-flex;align-items:center;justify-content:center;background:#f0b450;color:#12100e;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:999px}.heart-badge{font-size:.65rem;color:#ef4444;opacity:.8;line-height:1}.clickable{cursor:pointer}.clickable:active{opacity:.75}.lap-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0000008c;opacity:0;pointer-events:none;transition:opacity .3s ease}.lap-backdrop.open{opacity:1;pointer-events:all}.lap-sheet{position:absolute;bottom:0;left:0;right:0;max-height:80vh;background:#1c1916;border-radius:16px 16px 0 0;border-top:1px solid rgba(240,180,80,.15);display:flex;flex-direction:column;transform:translateY(100%);transition:transform .35s cubic-bezier(.32,.72,0,1)}.lap-backdrop.open .lap-sheet{transform:translateY(0)}.lap-handle{width:32px;height:4px;background:#f0b4504d;border-radius:2px;margin:.75rem auto 0;flex-shrink:0}.lap-sheet-header{display:flex;justify-content:space-between;align-items:baseline;padding:.9rem 1rem .6rem;flex-shrink:0}.lap-sheet-title{font-size:.95rem;font-weight:700;color:#f5f0e8}.lap-sheet-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem}.lap-sheet-count{font-size:.7rem;color:#f0b4508c;letter-spacing:.05em}.lap-sheet-hr{font-size:.7rem;color:#ef4444;opacity:.8;letter-spacing:.03em}.lap-sheet-excluded{display:flex;align-items:center;gap:3px;font-size:.65rem;color:#f0b45073}.lap-sheet-excluded svg{width:10px;height:10px;stroke:#f0b45073;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.lap-list{overflow-y:auto;flex:1;padding-bottom:2rem;-webkit-overflow-scrolling:touch}.lap-chart{width:100%;height:72px;padding:6px 1rem;border-bottom:1px solid rgba(240,180,80,.1)}.lap-chart svg{width:100%;height:60px;display:block}.lap-row{display:flex;align-items:center;padding:.45rem 1rem;border-bottom:1px solid rgba(240,180,80,.07)}.lap-row.fastest{background:#f0b45014}.lap-nr{font-size:.7rem;color:#f0b4508c;width:2.2rem;flex-shrink:0}.lap-time{flex:1;font-size:.85rem;font-weight:600;color:#f5f0e8;font-variant-numeric:tabular-nums}.lap-time.fastest-time{color:#f0b450}.lap-trash{width:28px;height:28px;display:flex;align-items:center;justify-content:center;opacity:.45;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.lap-trash:active{opacity:.8}.lap-trash svg{width:16px;height:16px;stroke:#f0b450;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.lap-hr{font-size:.7rem;color:#ef4444;opacity:.6;min-width:28px;text-align:right;margin-left:auto}.lap-divider{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;margin-top:.25rem}.lap-divider:before,.lap-divider:after{content:"";flex:1;height:1px;background:#f0b4501f}.lap-divider span{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#f0b4504d}.lap-row-excluded{opacity:.4}.lap-time-muted{text-decoration:line-through;text-decoration-color:#f0b4504d}.lap-restore{width:28px;height:28px;display:flex;align-items:center;justify-content:center;opacity:.7;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.lap-restore:active{opacity:1}.lap-restore svg{width:15px;height:15px;stroke:#f0b450;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}@media(min-width:768px){body{max-width:420px;margin:0 auto}.lap-sheet{max-width:420px;left:50%;right:auto;width:100%;transform:translate(-50%) translateY(100%)}.lap-backdrop.open .lap-sheet{transform:translate(-50%) translateY(0)}}#activity-season{display:inline-flex;align-items:center;justify-content:center;background:#f0b45026;color:#f0b450cc;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:999px;margin-bottom:4px}.cal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:none;align-items:center;justify-content:center;z-index:100}.cal-backdrop.open{display:flex}.cal-modal{background:#1c1916;border:1px solid rgba(240,180,80,.15);border-radius:16px;padding:24px 20px;width:300px;max-width:calc(100vw - 32px)}.cal-title{color:#f0b450b3;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;text-align:center}.cal-selectors{display:flex;gap:8px}.cal-col{flex:1;display:flex;flex-direction:column;gap:2px;max-height:240px;overflow-y:auto;scrollbar-width:none}.cal-col::-webkit-scrollbar{display:none}.cal-item{padding:8px 4px;border-radius:8px;text-align:center;cursor:pointer;color:#f5f0e8;font-size:.88rem;transition:background .15s;-webkit-user-select:none;user-select:none}.cal-item:hover{background:#f0b4501a}.cal-item.selected{background:#f0b4502e;color:#f0b450;font-weight:600}.cal-item.disabled{color:#f5f0e833;cursor:default;pointer-events:none}.date-nav-center{cursor:pointer}.overlay-avg{font-size:.7rem;letter-spacing:.08em;color:#f0b45073;margin-top:4px;min-height:1rem}.view-dots{display:flex;gap:4px;justify-content:center;align-items:center;margin-top:10px}.view-dot-wrap{position:relative;display:flex;align-items:center;justify-content:center;padding:5px;cursor:pointer;-webkit-tap-highlight-color:transparent}.view-dot{width:5px;height:5px;border-radius:50%;background:#f0b45033;transition:background .2s;flex-shrink:0}.view-dot.active{background:#f0b450}.view-dot-wrap.has-record svg{color:#f0b45073;display:block}.view-dot-wrap.has-record.active svg{color:#f0b450}@keyframes record-dot-pulse{0%{transform:scale(.3);opacity:0;color:#f0b450}55%{transform:scale(1.8);opacity:1;color:#f0b450}to{transform:scale(1);opacity:1;color:#f0b450}}.view-dot-wrap.pulse-once svg{animation:record-dot-pulse .75s ease-out forwards}.celebration-overlay{display:flex;flex-direction:column;align-items:center;gap:.4rem}.celebration-text{display:flex;flex-direction:column;align-items:center;font-family:Anton,sans-serif;font-size:2.2rem;font-weight:400;line-height:.95;color:#f0b450;text-transform:uppercase;letter-spacing:.03em;text-shadow:0 2px 14px rgba(240,180,80,.35);animation:celebration-rise .4s ease-out both;animation-delay:50ms}.celebration-icon{width:48px;height:57px;color:#f0b450;fill:none;stroke:currentColor;stroke-width:.6;stroke-linejoin:round;stroke-linecap:round;overflow:visible;margin-bottom:.4rem;animation:celebration-pop .45s ease-out both;animation-delay:.15s}.celebration-medal{width:44px;height:57px;stroke-width:.7}@keyframes celebration-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}@keyframes celebration-rise{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.confetti-piece{position:absolute;left:50%;top:50%;width:7px;height:10px;border-radius:1px;opacity:0;animation:confetti-burst .6s ease-out 3 forwards}.confetti-piece:nth-child(3n+1){background:#f0b450}.confetti-piece:nth-child(3n+2){background:#f5f0e8}.confetti-piece:nth-child(3n){background:#e08a3c}.confetti-piece:nth-child(1){--tx: 128px;--ty: 0px;animation-delay:0ms}.confetti-piece:nth-child(2){--tx: 124px;--ty: 33px;animation-delay:20ms}.confetti-piece:nth-child(3){--tx: 111px;--ty: 64px;animation-delay:40ms}.confetti-piece:nth-child(4){--tx: 91px;--ty: 91px;animation-delay:60ms}.confetti-piece:nth-child(5){--tx: 64px;--ty: 111px;animation-delay:80ms}.confetti-piece:nth-child(6){--tx: 33px;--ty: 124px;animation-delay:.1s}.confetti-piece:nth-child(7){--tx: 0px;--ty: 128px;animation-delay:0ms}.confetti-piece:nth-child(8){--tx: -33px;--ty: 124px;animation-delay:30ms}.confetti-piece:nth-child(9){--tx: -64px;--ty: 111px;animation-delay:50ms}.confetti-piece:nth-child(10){--tx: -91px;--ty: 91px;animation-delay:70ms}.confetti-piece:nth-child(11){--tx: -111px;--ty: 64px;animation-delay:90ms}.confetti-piece:nth-child(12){--tx: -124px;--ty: 33px;animation-delay:.11s}.confetti-piece:nth-child(13){--tx: -128px;--ty: 0px;animation-delay:0ms}.confetti-piece:nth-child(14){--tx: -124px;--ty: -33px;animation-delay:25ms}.confetti-piece:nth-child(15){--tx: -111px;--ty: -64px;animation-delay:45ms}.confetti-piece:nth-child(16){--tx: -91px;--ty: -91px;animation-delay:65ms}.confetti-piece:nth-child(17){--tx: -64px;--ty: -111px;animation-delay:85ms}.confetti-piece:nth-child(18){--tx: -33px;--ty: -124px;animation-delay:105ms}.confetti-piece:nth-child(19){--tx: 0px;--ty: -128px;animation-delay:0ms}.confetti-piece:nth-child(20){--tx: 33px;--ty: -124px;animation-delay:35ms}.confetti-piece:nth-child(21){--tx: 64px;--ty: -111px;animation-delay:55ms}.confetti-piece:nth-child(22){--tx: 91px;--ty: -91px;animation-delay:75ms}.confetti-piece:nth-child(23){--tx: 111px;--ty: -64px;animation-delay:95ms}.confetti-piece:nth-child(24){--tx: 124px;--ty: -33px;animation-delay:115ms}.confetti-piece:nth-child(25){--tx: 91px;--ty: 12px;animation-delay:10ms}.confetti-piece:nth-child(26){--tx: 85px;--ty: 35px;animation-delay:35ms}.confetti-piece:nth-child(27){--tx: 73px;--ty: 56px;animation-delay:60ms}.confetti-piece:nth-child(28){--tx: 56px;--ty: 73px;animation-delay:85ms}.confetti-piece:nth-child(29){--tx: 35px;--ty: 85px;animation-delay:.11s}.confetti-piece:nth-child(30){--tx: 12px;--ty: 91px;animation-delay:15ms}.confetti-piece:nth-child(31){--tx: -12px;--ty: 91px;animation-delay:40ms}.confetti-piece:nth-child(32){--tx: -35px;--ty: 85px;animation-delay:65ms}.confetti-piece:nth-child(33){--tx: -56px;--ty: 73px;animation-delay:90ms}.confetti-piece:nth-child(34){--tx: -73px;--ty: 56px;animation-delay:115ms}.confetti-piece:nth-child(35){--tx: -85px;--ty: 35px;animation-delay:20ms}.confetti-piece:nth-child(36){--tx: -91px;--ty: 12px;animation-delay:45ms}.confetti-piece:nth-child(37){--tx: -91px;--ty: -12px;animation-delay:70ms}.confetti-piece:nth-child(38){--tx: -85px;--ty: -35px;animation-delay:95ms}.confetti-piece:nth-child(39){--tx: -73px;--ty: -56px;animation-delay:.12s}.confetti-piece:nth-child(40){--tx: -56px;--ty: -73px;animation-delay:25ms}.confetti-piece:nth-child(41){--tx: -35px;--ty: -85px;animation-delay:50ms}.confetti-piece:nth-child(42){--tx: -12px;--ty: -91px;animation-delay:75ms}.confetti-piece:nth-child(43){--tx: 12px;--ty: -91px;animation-delay:.1s}.confetti-piece:nth-child(44){--tx: 35px;--ty: -85px;animation-delay:125ms}.confetti-piece:nth-child(45){--tx: 56px;--ty: -73px;animation-delay:30ms}.confetti-piece:nth-child(46){--tx: 73px;--ty: -56px;animation-delay:55ms}.confetti-piece:nth-child(47){--tx: 85px;--ty: -35px;animation-delay:80ms}.confetti-piece:nth-child(48){--tx: 91px;--ty: -12px;animation-delay:105ms}@keyframes confetti-burst{0%{transform:translate(-50%,-50%) scale(.4) rotate(0);opacity:1}to{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(1) rotate(180deg);opacity:0}}@media(prefers-reduced-motion:reduce){.confetti{display:none}.celebration-icon,.celebration-text{animation:none;opacity:1;transform:none}.view-dot-wrap.pulse-once svg{animation:none}}.app-loading{position:fixed;top:0;right:0;bottom:0;left:0;background:#12100e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}.spinner-label{font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:#f0b45066}.loading-skater-wrap{perspective:500px}.loading-skater{width:140px;height:140px;object-fit:contain;filter:brightness(0) saturate(100%) invert(76%) sepia(40%) saturate(450%) hue-rotate(349deg) brightness(.9) opacity(.6);animation:coin-spin 1.8s linear infinite}@keyframes coin-spin{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}.transponder-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200;animation:modal-fade-in .3s ease}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.transponder-modal-card{background:#1c1916;border:1px solid rgba(240,180,80,.15);border-radius:16px;padding:32px 24px;width:340px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;align-items:center;gap:16px}.transponder-modal-logo{color:#f0b450;font-size:1.1rem;font-weight:700;letter-spacing:.25em;text-transform:uppercase;margin-bottom:8px}.transponder-modal-title{color:#f5f0e8;font-size:1.1rem;font-weight:700;text-align:center;line-height:1.3}.transponder-modal-subtitle{color:#f0b4508c;font-size:.75rem;text-align:center;line-height:1.4;margin-top:-8px}.transponder-modal-notice{font-size:.75rem;color:#f0b450b3;background:#f0b45014;border:1px solid rgba(240,180,80,.2);border-radius:8px;padding:10px 14px;text-align:center;line-height:1.5;margin:4px 0 0}.transponder-modal-card form{width:100%;display:flex;flex-direction:column;gap:20px;margin-top:8px}.transponder-modal-input{width:100%;background:transparent;border:none;border-bottom:2px solid rgba(240,180,80,.2);color:#f5f0e8;font-size:1rem;font-family:inherit;padding:12px 8px;text-align:center;letter-spacing:.05em;transition:border-color .2s;outline:none}.transponder-modal-input::placeholder{color:#f5f0e84d;text-transform:none}.transponder-modal-input:focus{border-bottom-color:#f0b450}.transponder-modal-actions{display:flex;flex-direction:column;gap:12px;width:100%}.transponder-modal-btn-primary{width:100%;background:#f0b450;color:#12100e;border:none;border-radius:10px;padding:14px 20px;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .2s;-webkit-tap-highlight-color:transparent}.transponder-modal-btn-primary:active{opacity:.85}.transponder-modal-btn-primary:disabled{opacity:.3;cursor:not-allowed}.transponder-modal-btn-secondary{width:100%;background:transparent;color:#f0b450;border:1px solid rgba(240,180,80,.4);border-radius:10px;padding:14px 20px;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.transponder-modal-btn-secondary:active{background:#f0b45014;border-color:#f0b450}.config-menu-title{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#f0b450;font-weight:700}.config-section{padding:0 1rem 1.5rem}.config-section-label{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:#f0b4508c;margin-bottom:.75rem}.transponder-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.75rem}.transponder-empty{font-size:.7rem;color:#ffffff40;text-align:left;padding:.5rem 0}.transponder-item{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid rgba(240,180,80,.06)}.transponder-item:last-child{border-bottom:none}.transponder-code{color:#f0b45073;font-size:.75rem;font-weight:400;letter-spacing:.02em}.transponder-delete{background:none;border:none;color:#f0b45059;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;opacity:.5;-webkit-tap-highlight-color:transparent;transition:opacity .2s}.transponder-delete:active{opacity:1}.transponder-delete svg{width:14px;height:14px}.transponder-input-row{display:flex;gap:.5rem;align-items:center}.transponder-input-row--spaced{margin-bottom:.5rem}.auto-delete-label{font-size:.75rem;color:#f0b45073;flex:0 0 110px}.auto-delete-input{width:90px;flex:none}.transponder-input{flex:1;background:#f0b4500d;border:none;border-bottom:1px solid rgba(240,180,80,.4);color:#f5f0e8;padding:.7rem .5rem;font-size:.85rem;border-radius:0;outline:none}.transponder-input::placeholder{color:#ffffff59}.transponder-input:focus{border-bottom-color:#f0b450}.transponder-add-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f0b45026;border:1px solid rgba(240,180,80,.4);border-radius:8px;color:#f0b450;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.transponder-add-btn:active{background:#f0b45040}.transponder-add-btn svg{width:20px;height:20px}.connection-list{display:flex;flex-direction:column;gap:.5rem}.connection-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .85rem;background:#f0b45008;border:1px solid rgba(240,180,80,.1);border-radius:8px}.connection-icon{width:24px;height:24px;background:#f0b45033;border-radius:4px;flex-shrink:0}.connection-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}.connection-dot--on{background:#3fb950}.connection-dot--off{background:#c846468c}.connection-name{flex:1;font-size:.85rem;color:#f5f0e8;font-weight:500}.connection-badge{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#f0b450;background:#f0b45026;padding:3px 8px;border-radius:999px}.connection-btn{font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#f0b450;background:#f0b45026;padding:3px 8px;border-radius:999px;border:none;outline:none;cursor:pointer;flex-shrink:0;transition:background .15s ease}.connection-btn:hover:not(:disabled){background:#f0b45038}.connection-btn:disabled{opacity:.45;cursor:not-allowed}.connection-btn--danger{color:#e05c5ccc;background:#e05c5c17}.connection-btn--danger:hover:not(:disabled){background:#e05c5c26}.delete-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:300;animation:modal-fade-in .2s ease}.delete-confirm-box{background:#1c1916;border:1px solid rgba(240,180,80,.2);border-radius:12px;padding:24px 20px;width:280px;max-width:calc(100vw - 48px);display:flex;flex-direction:column;align-items:center;gap:12px}.delete-confirm-title{font-size:.85rem;font-weight:600;color:#f5f0e8;text-align:center}.delete-confirm-code{font-size:.75rem;color:#f0b45099;padding:8px 12px;background:#f0b45014;border-radius:6px;letter-spacing:.02em}.delete-confirm-actions{display:flex;gap:8px;width:100%;margin-top:8px}.delete-confirm-cancel,.delete-confirm-delete{flex:1;padding:10px 16px;border-radius:8px;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:all .2s}.delete-confirm-cancel{background:transparent;border:1px solid rgba(240,180,80,.3);color:#f0b450b3}.delete-confirm-cancel:active{background:#f0b4500d}.delete-confirm-delete{background:#f0b45026;border:1px solid rgba(240,180,80,.4);color:#f0b450}.delete-confirm-delete:active{background:#f0b45040}.dist-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200;animation:modal-fade-in .25s ease;padding:16px}.dist-modal-card{background:#1c1916;border:1px solid rgba(240,180,80,.15);border-radius:16px;padding:20px 16px 16px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}.dist-modal-header{position:relative;display:flex;align-items:center;justify-content:center}.dist-modal-header-left{display:flex;align-items:center;gap:8px}.dist-modal-title{font-size:.85rem;font-weight:700;color:#f5f0e8;letter-spacing:.04em}.dist-modal-close{position:absolute;right:0;background:none;border:none;color:#f0b45080;font-size:1.3rem;line-height:1;cursor:pointer;padding:4px 6px;-webkit-tap-highlight-color:transparent}.dist-modal-close:active{color:#f0b450}.dist-modal-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dist-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.dist-stat-label{font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#f0b4508c}.dist-stat-value{font-size:1.05rem;font-weight:700;color:#f5f0e8;font-variant-numeric:tabular-nums}.dist-stat-prev-value{font-size:.72rem;color:#f5f0e84d;font-variant-numeric:tabular-nums;margin-top:1px}.dist-chart-wrap{display:flex;flex-direction:column;gap:8px}.dist-chart-svg{width:100%;height:auto;display:block;overflow:visible}.dist-chart-loading,.dist-chart-error{display:flex;align-items:center;justify-content:center;height:120px;font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:#f0b45059}.dist-chart-legend{display:flex;align-items:center;gap:14px;justify-content:center;margin-top:-4px}.dist-legend-curr,.dist-legend-prev{display:flex;align-items:center;gap:5px;font-size:.62rem;letter-spacing:.06em;color:#f0b4508c}.dist-legend-curr{color:#f0b450cc}.dist-modal-note{font-size:.62rem;color:#f0b45061;text-align:center;line-height:1.4}@keyframes dist-draw{0%{stroke-dashoffset:var(--path-length, 2000)}to{stroke-dashoffset:0}}@keyframes dist-fade{0%{opacity:0}to{opacity:1}}.dist-stroke-path{stroke-dasharray:var(--path-length, 2000);stroke-dashoffset:var(--path-length, 2000);animation:dist-draw .9s ease-out forwards;animation-delay:.05s}.dist-area-path{opacity:0;animation:dist-fade .7s ease-out forwards;animation-delay:.05s}.donate-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:200;animation:modal-fade-in .25s ease;padding:16px}.donate-card{background:#1c1916;border:1px solid rgba(240,180,80,.15);border-radius:16px;max-width:360px;width:100%;padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;position:relative}.donate-close{position:absolute;top:12px;right:12px;background:none;border:none;color:#f0b45080;font-size:1.3rem;line-height:1;cursor:pointer;padding:4px 6px;-webkit-tap-highlight-color:transparent}.donate-close:active{color:#f0b450}.donate-skater{width:64px;height:64px;object-fit:contain;filter:brightness(0) saturate(100%) invert(76%) sepia(40%) saturate(450%) hue-rotate(349deg) brightness(.95)}.donate-title{font-size:1.1rem;font-weight:700;color:#f5f0e8;letter-spacing:.02em;margin:0}.donate-text{font-size:.78rem;color:#f5f0e899;line-height:1.5;margin:0;max-width:280px}.donate-cta{background:#f0b450;color:#1c1916;border:none;border-radius:999px;padding:10px 22px;font-size:.82rem;font-weight:700;letter-spacing:.03em;cursor:pointer;margin-top:4px;transition:background .15s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.donate-cta:hover{background:#f5c163}.donate-cta:active{transform:scale(.97)}.connections-fetch-status{margin-top:.5rem;font-size:.72rem;text-align:center}.connections-fetch-status--matched{color:#3fb950d9}.connections-fetch-status--no-match{color:#f5f0e873}.connections-fetch-status--error{color:#f85149d9}.connection-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;flex-shrink:0}.connection-status-dot--connected{background:#4caf50}.connection-status-dot--disconnected{background:#666}.connection-status-text{font-size:.85rem;color:#f5f0e8b3}.connection-row--link{margin-top:8px}.connection-link-label{font-size:.8rem;color:#f0b4508c;display:block;margin-top:12px;margin-bottom:6px}.connection-link-input{flex:1;background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:6px 10px;font-size:.8rem;color:#fff;min-width:0}.connection-link-input::placeholder{color:#555}.connection-btn--small{padding:6px 10px;font-size:.8rem;white-space:nowrap}@media(orientation:portrait)and (max-height:680px){.ring-container{width:240px;height:240px}}@media(orientation:landscape)and (max-height:500px){body{max-width:unset;margin:0}.app{display:grid;grid-template-rows:auto 30px 1fr 48px;grid-template-columns:1fr auto 1fr;grid-template-areas:"datebar datebar datebar" "name    season  loc" "stat-l  hero    stat-r" "actions actions actions"}header{display:contents!important}.date-nav{grid-area:datebar;display:flex;flex-direction:row;align-items:center;justify-content:center;margin-top:0;padding:5px .75rem;gap:.5rem;border-bottom:1px solid rgba(240,180,80,.08)}.date-nav-center{flex-direction:row;gap:.4rem;align-items:center}#activity-season{display:none}#activity-date{font-size:.75rem}#activity-time{display:none}.transponder-toggle{grid-area:name;grid-row:2 / 4;display:flex;flex-direction:row;align-items:center;justify-content:center;align-self:end;height:30px;padding:0 10px;gap:.4rem;overflow:hidden;margin-bottom:171px;position:relative;z-index:1}.transponder-label{display:none}.transponder-id{font-size:.8rem;line-height:1}.location{grid-area:loc;grid-row:2 / 4;display:flex;align-self:end;align-items:center;justify-content:center;font-size:.6rem;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:171px;position:relative;z-index:1}.season-hero{grid-area:season;display:inline-flex;align-items:center;justify-content:center;align-self:center;justify-self:center;background:#f0b45026;color:#f0b450cc;font-size:.6rem;font-weight:700;letter-spacing:.08em;padding:2px 10px;border-radius:999px;white-space:nowrap}.stat-grid{display:contents}.stat-card:nth-child(1){grid-area:stat-l;align-self:end;justify-self:center;width:min(120px,70%);margin:0 8px 69px;padding:.55rem .7rem}.stat-card:nth-child(2){grid-area:stat-r;align-self:end;justify-self:center;width:min(120px,70%);margin:0 8px 69px;padding:.55rem .7rem}.stat-label{font-size:.5rem;letter-spacing:.06em}.stat-value,.stat-value-stacked span{font-size:1rem}.hero{grid-area:hero;padding:0 .5rem;justify-content:center}.action-bar{grid-area:actions;height:48px}.ring-container{width:min(185px,48vh);height:min(185px,48vh)}.overlay{transform:translate(-50%,-50%) scale(.65)}.lap-sheet{max-height:65vh}#config-sheet{left:max(4vw,calc(50% - 300px));right:max(4vw,calc(50% - 300px));width:auto;max-width:unset;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateY(100%)}.lap-backdrop.open #config-sheet{transform:translateY(0)}#lap-sheet{left:max(4vw,calc(50% - 300px));right:max(4vw,calc(50% - 300px));width:auto;max-width:unset;max-height:90vh;border-radius:16px;transform:translateY(100%)}.lap-backdrop.open #lap-sheet{transform:translateY(0)}.lap-chart{height:min(40vh,180px)}.cal-col{max-height:140px}.dist-modal-backdrop{padding:12px}.dist-modal-card{max-width:min(90vw,600px);flex-direction:row;flex-wrap:wrap;padding:14px;gap:10px;align-items:flex-start}.dist-modal-header{flex:0 0 100%}.dist-modal-stats{flex:0 0 110px;grid-template-columns:1fr;gap:6px}.dist-chart-wrap{flex:1;min-width:0}}@media(orientation:landscape)and (min-height:381px)and (max-height:400px){.ring-container{width:min(215px,55vh);height:min(215px,55vh)}.overlay{transform:translate(-50%,-50%) scale(.77)}.stat-card:nth-child(1),.stat-card:nth-child(2){margin-bottom:59px}.transponder-toggle,.location{margin-bottom:184px}}@media(orientation:landscape)and (min-height:401px)and (max-height:500px){.ring-container{width:min(230px,55vh);height:min(230px,55vh)}.overlay{transform:translate(-50%,-50%) scale(.82)}.stat-card:nth-child(1),.stat-card:nth-child(2){margin-bottom:72px}.transponder-toggle,.location{margin-bottom:201px}}.config-section-label{display:flex;align-items:center;gap:6px}.info-icon-btn{background:none;border:none;cursor:pointer;color:#f0b45080;font-size:.85rem;padding:0;line-height:1;-webkit-tap-highlight-color:transparent;transition:color .15s}.info-icon-btn:hover{color:#f0b450d9}.info-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:400;animation:modal-fade-in .15s ease}.info-modal-box{background:#1c1916;border:1px solid rgba(240,180,80,.2);border-radius:12px;padding:20px;width:calc(100% - 40px);max-width:320px;display:flex;flex-direction:column;gap:10px}.info-modal-title{font-size:.85rem;font-weight:600;color:#f0b450;margin-bottom:2px}.info-modal-text{font-size:.82rem;color:#f5f0e8cc;line-height:1.55}.info-modal-text strong{color:#f5f0e8e6}.info-modal-divider{border-top:1px solid rgba(240,180,80,.12);margin:2px 0}.info-modal-close{align-self:flex-end;margin-top:4px;background:#f0b4501f;border:1px solid rgba(240,180,80,.3);border-radius:8px;color:#f0b450d9;font-size:.78rem;font-weight:600;font-family:inherit;padding:7px 16px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.info-modal-close:active{background:#f0b45033}.modal-form{display:flex;flex-direction:column;gap:.75rem}.modal-field{display:flex;flex-direction:column;gap:.25rem}.modal-field-label{font-size:.75rem;color:#f0b450a6}.modal-error{font-size:.75rem;color:#f85149;margin-bottom:.75rem}.modal-desc{font-size:.85rem;color:#f5f0e8b3;margin-top:.5rem;margin-bottom:1rem}.modal-desc--center{text-align:center}.row-trailing{margin-left:auto;flex-shrink:0}.spinner-row{display:flex;justify-content:center;margin-bottom:1rem}.loading-spinner{width:24px;height:24px;border:3px solid rgba(240,180,80,.2);border-top-color:#f0b450;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.init-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;padding:40px 20px}.init-loading .loading-spinner{width:36px;height:36px;border-width:4px}.init-loading-title{font-size:1rem;color:var(--text-primary, #f0f0f0);margin:0;text-align:center}.init-loading-sub{font-size:.85rem;color:var(--text-secondary, #888);margin:0;text-align:center}
