*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--accent:#c8f026;--accent-dark:#b0d820;--bg:#000;--surface:#141414;--border:#2a2a2a;--border-mid:#383838;--text:#fff;--text-secondary:#b8b8b8;--text-dim:#909090;--text-muted:gray;--font:"Helvetica Neue", Helvetica, Arial, sans-serif;--color-green:#c8f026;--color-orange:#ef9f27;--color-red:#e24b4a}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none}body{max-width:430px;margin:0 auto}button{font-family:var(--font);cursor:pointer}.fc-overlay{z-index:200;background:#000000ed;justify-content:center;align-items:center;animation:.25s fc-fadein;display:flex;position:fixed;inset:0}@keyframes fc-fadein{0%{opacity:0}to{opacity:1}}.fc-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.fc-medal{z-index:2;filter:drop-shadow(0 0 24px #c8f02659);animation:.65s cubic-bezier(.175,.885,.32,1.4) .35s both fc-medal-pop;position:relative}@keyframes fc-medal-pop{0%{opacity:0;transform:scale(0)rotate(-15deg)}to{opacity:1;transform:scale(1)rotate(0)}}.fc-controls{bottom:max(48px, env(safe-area-inset-bottom,48px));z-index:3;justify-content:center;gap:16px;display:flex;position:absolute;left:0;right:0}.fc-btn{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff14;border:1.5px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;transition:background .15s,border-color .15s,transform .1s;display:flex}.fc-btn:active{transform:scale(.93)}.fc-replay:hover,.fc-replay:focus-visible{background:#c8f0262e;border-color:#c8f0268c;outline:none}.fc-close:hover,.fc-close:focus-visible{background:#ffffff29;border-color:#fff6;outline:none}.overview{padding:16px 20px 0}.hero{padding:14px 0 4px}.hero-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:2px;font-size:12px}.hero-label-vp{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);opacity:.5;margin-top:1px;font-size:11px;display:block}.hero-num{color:var(--text);letter-spacing:-.03em;font-size:64px;font-weight:900;line-height:1}.hero-unit{color:var(--text-dim);font-size:18px;font-weight:500}.stat-row{gap:8px;margin:16px 0;display:flex}.stat{background:var(--surface);border:1px solid var(--border-mid);flex:1;padding:12px 10px}.stat-label{letter-spacing:.11em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:5px;font-size:12px}.stat-val{color:var(--text);letter-spacing:-.02em;font-size:18px;font-weight:900}.stat-val span{color:var(--text-dim);font-size:11px;font-weight:500}.stat-val.accent{color:var(--accent)}.delta-val.green{color:var(--color-green)}.delta-val.orange{color:var(--color-orange)}.delta-val.red{color:var(--color-red)}.progress-section{margin:20px 0}.progress-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.progress-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:12px}.progress-right{align-items:baseline;gap:8px;display:flex}.progress-km{color:var(--text-dim);letter-spacing:.06em;font-size:12px}.progress-pct{color:var(--accent);letter-spacing:.1em;font-size:12px;font-weight:800}.progress-track{background:var(--border-mid);border-radius:3px;position:relative;overflow:visible}.progress-fill{transition:width .4s,height 1.2s,background-color 1.2s;position:relative;overflow:visible}.progress-fill:after{content:"";pointer-events:none;background:#fff;border-radius:50%;width:9px;height:9px;animation:1.6s ease-in-out infinite pulse-lead;position:absolute;top:50%;right:-1px;transform:translateY(-50%);box-shadow:0 0 8px 3px #fff9}@keyframes pulse-lead{0%,to{opacity:1;transform:translateY(-50%)scale(1);box-shadow:0 0 8px 3px #fff9}50%{opacity:.7;transform:translateY(-50%)scale(1.3);box-shadow:0 0 16px 6px #fff3}}.progress-dots{height:10px;margin-top:14px;position:relative}.dot{background:var(--border-mid);border-radius:50%;width:4px;height:4px;position:absolute;top:50%;transform:translate(-50%,-50%)}.dot.done{background:var(--accent)}.next-vp{background:var(--surface);border-left:2px solid var(--accent);margin:20px 0;padding:14px 16px}.next-vp-info{cursor:pointer;padding-bottom:2px;transition:opacity .15s}.next-vp-info:active{opacity:.7}.next-detail-arrow{color:var(--accent);margin-left:4px;font-size:11px;font-weight:700}.next-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:5px;font-size:12px}.next-name{color:var(--text);letter-spacing:-.02em;margin-bottom:6px;font-size:22px;font-weight:900}.next-meta{color:var(--text-secondary);flex-wrap:wrap;gap:14px;margin-bottom:14px;font-size:13px;display:flex}.next-meta strong{color:var(--accent)}.next-cutoff,.next-cutoff strong{color:var(--color-orange)!important}.next-drop-bag{letter-spacing:.08em;color:var(--accent);font-size:12px;font-weight:800}.next-notes{color:var(--text-secondary);margin-bottom:12px;font-size:12px;font-style:italic;line-height:1.5}.checkin-btn{color:#000;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#d4f53c 0%,#b8db00 100%);border:2px solid #000;border-radius:4px;width:100%;padding:16px;font-size:15px;font-weight:900;transition:box-shadow 80ms,transform 80ms;position:relative;overflow:hidden;transform:translateY(0);box-shadow:0 3px #5a6e00}.checkin-btn:before{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 30%,#ffffff8c 50%,#0000 70%);animation:9s ease-in-out infinite btn-comet;position:absolute;inset:0;transform:translate(-150%)}@keyframes btn-comet{0%{opacity:0;transform:translate(-150%)}2%{opacity:1}15%{opacity:1;transform:translate(250%)}16%{opacity:0;transform:translate(250%)}55%{opacity:0;transform:translate(-150%)}57%{opacity:1}67%{opacity:1;transform:translate(250%)}68%{opacity:0}to{opacity:0;transform:translate(-150%)}}.checkin-btn:active{box-shadow:none;background:linear-gradient(#b8db00 0%,#a0c400 100%);transform:translateY(3px)}.finish-card{background:var(--surface);border-left:2px solid var(--accent);text-align:center;margin:20px 0;padding:14px 16px}.finish-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px;font-size:12px}.finish-time{color:var(--accent);letter-spacing:-.02em;font-size:36px;font-weight:900}.finish-delta{color:var(--text-secondary);margin-top:6px;font-size:13px}.finish-delta.green{color:var(--color-green)}.finish-delta.orange{color:var(--color-orange)}.finish-delta.red{color:var(--color-red)}.finish-replay-btn{border:1px solid var(--border-mid);width:100%;color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;margin-top:14px;padding:10px 16px;font-size:13px;font-weight:700;transition:border-color .15s,color .15s;display:block}.finish-replay-btn:hover,.finish-replay-btn:active{border-color:var(--accent);color:var(--accent)}.race-info{margin-bottom:8px}.info-row{border-bottom:1px solid var(--surface);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:10px 0;font-size:14px;display:flex}.info-row:last-child{border-bottom:none}.info-row span:last-child{color:var(--text);font-weight:700}.info-row span.accent{color:var(--accent)}.info-row span.warn{color:var(--color-orange);font-weight:700}.seg-view{flex-direction:column;padding:0;display:flex}.seg-viewport{flex:1;width:100%;overflow:hidden}.seg-track{will-change:transform;transition:transform .28s cubic-bezier(.25,.46,.45,.94);display:flex}.seg-card{flex:0 0 100%;max-width:100%;padding:0 20px;overflow:hidden}.seg-card-header{justify-content:space-between;align-items:center;margin-bottom:14px;padding-top:16px;display:flex}.seg-num{letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);font-size:12px;font-weight:800}.seg-badge{letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;font-size:11px;font-weight:800}.badge-active{color:var(--accent);background:#1c2500}.badge-done{color:#6a8a00;background:#111a00}.badge-pending{background:var(--surface);color:var(--text-muted)}.seg-from{color:var(--text-secondary);letter-spacing:.04em;margin-bottom:2px;font-size:13px}.seg-to{color:var(--text);letter-spacing:-.03em;flex:1;margin-bottom:18px;font-size:30px;font-weight:900;line-height:1.05}.seg-stats{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.seg-stat{background:var(--surface);border:1px solid var(--border);padding:12px}.seg-stat-label{letter-spacing:.11em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:4px;font-size:12px}.seg-stat-val{color:var(--text);letter-spacing:-.02em;font-size:24px;font-weight:900}.seg-stat-val span{color:var(--text-secondary);font-size:12px;font-weight:500}.seg-stat-val.pace{font-size:20px}.seg-stat-val.arr{color:var(--accent);font-size:20px}.seg-stat-val.arr-actual{color:var(--color-green);font-size:20px}.seg-title-row{justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:18px;display:flex}.seg-title-row .seg-to{margin-bottom:0}.seg-drop-bag-pill{letter-spacing:.08em;text-transform:uppercase;color:#000;background:var(--accent);white-space:nowrap;border:none;flex-shrink:0;margin-bottom:5px;padding:6px 14px;font-size:14px;font-weight:900}.seg-notes{background:var(--surface);border:1px solid var(--border);margin-top:10px;padding:9px 10px}.seg-notes-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px;font-size:12px;font-weight:600}.seg-notes-text{color:var(--text-secondary);font-size:15px;line-height:1.5}.seg-cutoff{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;display:flex}.seg-cutoff span:first-child{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:600}.cutoff-time{color:var(--text-dim)!important;font-size:13px!important;font-weight:700!important}.seg-nutrition{margin-top:10px}.seg-nutrition-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:10px;font-weight:600}.seg-nutrition-grid{flex-direction:column;gap:6px;display:flex}.seg-nutrition-tile{border:1px solid var(--border);background:var(--surface);padding:9px 10px}.seg-nutrition-cat{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:7px;font-size:12px;font-weight:600}.seg-pills{flex-wrap:wrap;gap:5px;display:flex}.pill{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);letter-spacing:.03em;padding:5px 11px;font-size:15px;font-weight:600}.pill.hl{color:var(--accent);background:#131a00;border-color:#2a3d00}.seg-pagination{justify-content:center;align-items:center;gap:4px;padding:10px 20px 4px;display:flex;overflow:hidden}.seg-page-dot{background:var(--border-mid);border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:all .2s}.seg-page-dot.active{background:var(--text);border-radius:3px;width:18px}.seg-page-dot.done{background:var(--accent)}.seg-nav{justify-content:space-between;align-items:center;padding:10px 20px 4px;display:flex}.seg-btn{border:1px solid var(--border-mid);color:var(--text-dim);letter-spacing:.12em;text-transform:uppercase;background:0 0;min-height:44px;padding:12px 18px;font-size:12px;font-weight:800;transition:border-color .15s,color .15s}.seg-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.seg-btn:disabled{opacity:.18;cursor:default}.seg-counter{color:var(--text-secondary);letter-spacing:.08em;font-size:14px}.seg-counter strong{color:var(--text);font-size:17px}.seg-time-row{align-items:center;gap:8px;display:flex}.seg-edit-btn{color:var(--text-secondary);cursor:pointer;opacity:.6;background:0 0;border:none;padding:2px 4px;font-size:13px;transition:opacity .15s,color .15s}.seg-edit-btn:hover{opacity:1;color:var(--accent)}.seg-time-edit{flex-direction:column;gap:6px;display:flex}.seg-time-input{border:1px solid var(--accent);color:var(--text);font-size:18px;font-weight:900;font-family:var(--font);letter-spacing:.04em;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#0d0d0d;width:100%;padding:4px 8px}.seg-time-actions{gap:6px;display:flex}.seg-time-btn{cursor:pointer;font-size:14px;font-weight:900;font-family:var(--font);border:none;flex:1;padding:6px}.seg-time-btn.confirm{background:var(--accent);color:#000}.seg-time-btn.confirm:active{background:var(--accent-dark)}.seg-time-btn.cancel{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border-mid)}.vp-view{padding:0 0 16px}.vp-header{border-bottom:1px solid var(--border);padding:16px 20px 10px}.vp-title-label{letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:2px;font-size:12px}.vp-subtitle{color:var(--text);letter-spacing:-.02em;font-size:18px;font-weight:900}.vp-list{flex-direction:column;display:flex}.vp-row{border-bottom:1px solid var(--border);transition:background .15s}.vp-row.past{opacity:.6}.vp-row.current{border-left:2px solid var(--accent)}.vp-row.open{background:var(--surface)}.vp-row-header{width:100%;min-height:60px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.vp-row.current .vp-row-header{padding-left:18px}.vp-km-col{text-align:right;flex-shrink:0;min-width:38px;padding-top:1px}.vp-km{color:var(--text);letter-spacing:-.02em;font-size:18px;font-weight:900}.vp-km-unit{color:var(--text-secondary);margin-left:1px;font-size:12px}.vp-body{flex:1;min-width:0}.vp-name-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:3px;display:flex}.vp-name{color:var(--text);letter-spacing:-.01em;font-size:18px;font-weight:900}.vp-badge-current{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:#1c2500;padding:3px 7px;font-size:11px;font-weight:800}.vp-badge-drop{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:#0a1800;border:1px solid #2a3d00;padding:3px 7px;font-size:11px;font-weight:800}.vp-badge-cutoff{letter-spacing:.1em;text-transform:uppercase;color:var(--color-orange);background:#1a0800;border:1px solid #3a1800;padding:3px 7px;font-size:11px;font-weight:800}.vp-meta-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.vp-plan-time{color:var(--text-secondary);font-size:16px}.vp-pause{color:var(--text-muted);background:var(--border);padding:2px 7px;font-size:13px}.vp-drink-count{color:var(--text-muted);font-size:13px}.vp-right-col{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;padding-top:2px;display:flex}.vp-check{color:var(--accent);font-size:18px;font-weight:900}.vp-dot{background:var(--border-mid);border-radius:50%;width:6px;height:6px}.vp-chevron{color:var(--text-secondary);font-size:18px;line-height:1;transition:transform .2s;display:inline-block;transform:rotate(90deg)}.vp-chevron.up{transform:rotate(-90deg)}.vp-detail{flex-direction:column;gap:12px;padding:0 20px 14px 70px;display:flex}.vp-section{flex-direction:column;gap:6px;display:flex}.vp-section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:12px}.vp-pills{flex-wrap:wrap;gap:5px;display:flex}.vp-pill{letter-spacing:.03em;border:1px solid;padding:5px 11px;font-size:12px;font-weight:600}.vp-empty{color:var(--text-muted);font-size:13px}.vp-notes-section{border-top:1px solid var(--border);margin-top:2px;padding-top:10px}.vp-notes{color:var(--text-secondary);font-size:13px;font-style:italic;line-height:1.5}.plan-list{flex-direction:column;gap:8px;display:flex}.plan-item{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;transition:border-color .15s;display:flex}.plan-item.active{border-color:var(--accent);background:#c0d71e0f}.plan-item-info{align-items:center;gap:10px;min-width:0;display:flex}.plan-item-info-btn{text-align:left;cursor:pointer;min-height:44px;color:inherit;background:0 0;border:none;flex:1;padding:0}.plan-item-chevron{color:var(--text-secondary);margin-left:auto;padding-left:6px;font-size:18px;line-height:1}.plan-active-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px}.plan-item-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:160px;margin:0;font-size:13px;font-weight:600;overflow:hidden}.plan-item-meta{color:var(--text-secondary);margin:2px 0 0;font-size:11px}.plan-item-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.plan-item-active-label{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:600}.plan-item-btn{cursor:pointer;border:none;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;transition:opacity .15s,transform .1s}.plan-item-btn:active{transform:scale(.96)}.plan-item-btn.activate{background:var(--accent);color:#111}.plan-item-btn.delete{color:var(--color-red);background:#e24b4a26;padding:5px 9px}.plan-item-btn.delete:hover{background:#e24b4a47}.plan-import{flex-direction:column;gap:12px;padding:16px 0 8px;display:flex}.plan-import-title{color:var(--text-primary);letter-spacing:.03em;margin:0;font-size:14px;font-weight:600}.plan-import-template{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:12px;display:flex}.plan-import-template-link{color:var(--accent);font-size:12px;font-weight:600;text-decoration:none}.plan-import-template-link:hover{text-decoration:underline}.plan-import-file-label{border:1px dashed var(--border);cursor:pointer;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:13px;transition:border-color .15s,background .15s;display:flex}.plan-import-file-label:hover{border-color:var(--accent);background:#c0d71e0f}.plan-import-file{display:none}.plan-import-or{text-align:center;color:var(--text-dim);margin:0;font-size:11px}.plan-import-textarea{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text-primary);resize:vertical;box-sizing:border-box;border-radius:8px;padding:10px 12px;font-family:Courier New,monospace;font-size:11px;line-height:1.5;transition:border-color .15s}.plan-import-textarea:focus{border-color:var(--accent);outline:none}.plan-import-textarea.has-error{border-color:var(--color-red)}.plan-import-textarea.has-ok{border-color:var(--color-green)}.plan-import-error{color:var(--color-red);background:#e24b4a1a;border-radius:6px;margin:0;padding:6px 10px;font-size:12px}.plan-import-success{color:var(--color-green);text-align:center;margin:0;font-size:13px;font-weight:600}.plan-import-preview{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.preview-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;font-size:11px;font-weight:600}.preview-row{color:var(--text-secondary);justify-content:space-between;font-size:13px;display:flex}.preview-row strong{color:var(--text-primary);font-weight:500}.plan-import-actions{gap:10px;display:flex}.plan-import-btn{cursor:pointer;border:none;border-radius:8px;flex:1;padding:10px;font-size:13px;font-weight:600;transition:opacity .15s,transform .1s}.plan-import-btn:active{transform:scale(.97)}.plan-import-btn.confirm{background:var(--accent);color:#111}.plan-import-btn.confirm:disabled{opacity:.35;cursor:not-allowed}.plan-import-btn.cancel{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border)}.ng-view{padding:0 0 16px}.ng-header{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 20px 12px;display:flex}.ng-back{border:1px solid var(--border-mid);color:var(--text-secondary);letter-spacing:.08em;cursor:pointer;background:0 0;flex-shrink:0;min-height:44px;padding:8px 14px;font-size:13px;font-weight:800;transition:border-color .15s,color .15s}.ng-back:hover{border-color:var(--accent);color:var(--accent)}.ng-title-label{letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:1px;font-size:11px}.ng-title{color:var(--text);letter-spacing:-.02em;font-size:17px;font-weight:900}.ng-type-editor{flex-direction:column;gap:24px;padding:20px 20px 24px;display:flex}.ng-section-block{border-bottom:1px solid var(--border)}.ng-section-toggle{width:100%;min-height:52px;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.ng-section-toggle-label{color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;font-size:13px;font-weight:700}.ng-color-editor{flex-direction:column;gap:16px;padding:4px 20px 16px;display:flex}.ng-color-group-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:11px}.ng-color-pills{flex-direction:column;gap:4px;display:flex}.ng-color-item{flex-direction:column;gap:6px;display:flex}.ng-item-pills{flex-wrap:wrap;gap:5px;padding:4px 2px 6px;display:flex}.ng-item-pill{letter-spacing:.03em;opacity:.75;border:1px solid;padding:4px 10px;font-size:12px;font-weight:700}.ng-color-pill{cursor:pointer;letter-spacing:.03em;text-align:left;background:0 0;border:1px solid;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:14px;font-weight:700;transition:opacity .15s,filter .15s;display:flex}.ng-color-pill:not(.open){opacity:.8}.ng-color-pill:not(.open):hover{opacity:1;filter:brightness(1.15)}.ng-color-pill.open{opacity:1}.ng-pill-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ng-pill-dot--plan{border-radius:2px}.ng-custom-badge{opacity:.8;flex-shrink:0;font-size:8px}.ng-pill-chevron{color:inherit;opacity:.5;margin-left:auto;font-size:18px;line-height:1;transition:transform .2s;display:inline-block;transform:rotate(90deg)}.ng-pill-chevron.open{opacity:.8;transform:rotate(-90deg)}.ng-swatch-panel{border:1px solid var(--border-mid,#2a2a2a);background:var(--surface,#0d0d0d);border-top:none;flex-direction:column;gap:14px;padding:14px 16px 16px;display:flex}.ng-swatch-current{align-items:center;gap:12px;display:flex}.ng-swatch-preview{border:1px solid #ffffff14;border-radius:6px;flex-shrink:0;width:36px;height:36px}.ng-swatch-current-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ng-swatch-current-label{color:var(--text);letter-spacing:.02em;font-size:13px;font-weight:700}.ng-swatch-hex{color:var(--text-muted,#555);letter-spacing:.06em;text-transform:uppercase;font-family:SF Mono,Consolas,monospace;font-size:11px}.ng-reset-inline{border:1px solid var(--border-mid,#333);color:var(--text-secondary,#888);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:border-color .15s,color .15s;display:flex}.ng-reset-inline:hover{border-color:var(--accent,#c8f026);color:var(--accent,#c8f026)}.ng-swatches{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.ng-swatch{aspect-ratio:1;cursor:pointer;border:2px solid #0000;border-radius:6px;transition:transform .12s,border-color .12s,box-shadow .12s}.ng-swatch:hover{transform:scale(1.08);box-shadow:0 0 0 1px #ffffff40}.ng-swatch.active{border-color:#fff;transform:scale(1.04);box-shadow:0 0 10px #ffffff2e}.ng-reset-btn{color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-self:flex-start;padding:0;font-size:11px;font-weight:600;text-decoration:underline}.ng-list{flex-direction:column;display:flex}.ng-row{border-bottom:1px solid var(--border);transition:background .15s}.ng-row.open{background:var(--surface)}.ng-row-header{width:100%;min-height:52px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.ng-station{color:var(--text);letter-spacing:-.01em;font-size:16px;font-weight:900}.ng-row-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.ng-dot-row{align-items:center;gap:4px;display:flex}.ng-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.ng-chevron{color:var(--text-secondary);font-size:20px;line-height:1;transition:transform .2s;display:inline-block;transform:rotate(90deg)}.ng-chevron.up{transform:rotate(-90deg)}.ng-detail{flex-direction:column;gap:10px;padding:4px 20px 16px;display:flex}.ng-cat-group-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:6px;font-size:11px}.ng-pills{flex-wrap:wrap;gap:5px;display:flex}.ng-pill{letter-spacing:.04em;border:1px solid;padding:5px 12px;font-size:13px;font-weight:700}.pd-view{padding:0 0 24px}.pd-header{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 20px 12px;display:flex}.pd-back{border:1px solid var(--border-mid);color:var(--text-secondary);letter-spacing:.08em;cursor:pointer;background:0 0;flex-shrink:0;min-height:44px;padding:8px 14px;font-size:13px;font-weight:800;transition:border-color .15s,color .15s}.pd-back:hover{border-color:var(--accent);color:var(--accent)}.pd-title-label{letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:1px;font-size:11px}.pd-title{color:var(--text);letter-spacing:-.02em;font-size:17px;font-weight:900}.pd-meta{border-bottom:1px solid var(--border);padding:8px 20px 4px}.pd-meta-row{border-bottom:1px solid var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;display:flex}.pd-meta-row:last-child{border-bottom:none}.pd-meta-row span:last-child{color:var(--text);font-weight:700}.pd-seg-list{margin-top:16px;padding:0 20px}.pd-seg-thead{border-bottom:1px solid var(--border-mid);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);grid-template-columns:24px 1fr 44px 52px 52px 40px;gap:6px;padding:0 0 6px;font-size:10px;font-weight:700;display:grid}.pd-seg-row{border-bottom:1px solid var(--border);grid-template-columns:24px 1fr 44px 52px 52px 40px;align-items:center;gap:6px;padding:9px 0;font-size:13px;display:grid}.pd-seg-row:last-child{border-bottom:none}.pd-seg-num{color:var(--text-muted);font-size:12px}.pd-seg-to{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.pd-seg-val{color:var(--text-secondary);text-align:right;font-size:13px}.pd-seg-val.accent{color:var(--accent);font-weight:700}.pd-raw{margin:20px 20px 0}.pd-raw-label{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-size:11px}.pd-raw-code{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);white-space:pre;padding:12px;font-family:SF Mono,Fira Code,monospace;font-size:11px;line-height:1.6;overflow-x:auto}.settings-view{padding:0 0 16px}.settings-section{border-bottom:1px solid var(--border);padding:16px 20px}.settings-section-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;font-size:11px}.settings-row{border-bottom:1px solid var(--border);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.settings-row:last-child{border-bottom:none}.settings-row span:last-child{color:var(--text);font-weight:700}.settings-row span.accent{color:var(--accent);font-weight:700}.reset-btn{background:var(--surface);border:1px solid var(--border-mid);width:100%;color:var(--color-red);letter-spacing:.04em;cursor:pointer;margin-bottom:8px;padding:14px;font-size:14px;font-weight:800;transition:background .15s,border-color .15s}.reset-btn:hover{border-color:var(--color-red)}.reset-btn.confirm{border-color:var(--color-red);color:var(--color-red);background:#1a0000}.cancel-btn{border:1px solid var(--border-mid);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;margin-bottom:8px;padding:10px;font-size:13px}.reset-hint{color:var(--text-muted);font-size:12px;line-height:1.5}.settings-time-input{background:var(--surface-2);border:1px solid var(--border);color:var(--text-primary);text-align:right;border-radius:6px;width:120px;padding:4px 8px;font-size:14px;font-weight:700}.settings-time-input:focus{border-color:var(--accent);outline:none}.update-btn{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text-secondary);cursor:default;border-radius:8px;padding:12px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.update-btn.available{background:var(--accent);border-color:var(--accent);color:#111;cursor:pointer}.update-btn.available:active{transform:scale(.97)}.import-btn{border:1px dashed var(--accent);width:100%;color:var(--accent);cursor:pointer;background:0 0;border-radius:8px;margin-top:10px;padding:11px;font-size:13px;font-weight:600;transition:background .15s}.import-btn:hover{background:#c0d71e12}.settings-nav-row{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;min-height:44px;padding:14px 0;font-size:14px;transition:color .15s;display:flex}.settings-nav-row:last-child{border-bottom:none}.settings-nav-row:hover{color:var(--text)}.settings-nav-arrow{color:var(--text-secondary);font-size:20px;line-height:1}.settings-info{color:var(--text-muted);letter-spacing:.04em;padding:16px 20px 0;font-size:11px;line-height:1.8}.bottom-nav{background:var(--bg);width:100%;max-width:430px;padding:10px 0 max(20px, env(safe-area-inset-bottom));z-index:100;border-top:1px solid #1a1a1a;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.nav-item{opacity:.48;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:52px;transition:opacity .15s;display:flex}.nav-item.active{opacity:1}.nav-item svg{width:20px;height:20px;color:var(--text)}.nav-item span{letter-spacing:.12em;text-transform:uppercase;color:var(--text);font-size:10px;font-weight:800}.nav-item.active svg,.nav-item.active span{color:var(--accent)}.app{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 20px 10px;display:flex}.app-supertitle{letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin-bottom:2px;font-size:11px}.app-title{color:var(--text);letter-spacing:-.02em;font-size:20px;font-weight:900}.app-logo{background:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.app-logo svg{color:#000;width:18px;height:18px}.app-main{flex:1;padding-bottom:80px;overflow-y:auto}
