*,:before,:after{box-sizing:border-box}:root{--bg-0:#0b0b0b;--bg-1:#111;--bg-2:#161616;--bg-3:#1c1c1c;--panel-bg:#111;--border:#242424;--border-bright:#333;--grid-line:#ffffff09;--text-primary:#e2e2e2;--text-secondary:#999;--text-muted:#555;--text-faint:#333;--accent:#e2e2e2;--accent-dim:#666;--accent-orange:#c84800;--font-mono:"Berkeley Mono", "TX-02", "JetBrains Mono", "IBM Plex Mono", "Fira Mono", "SF Mono", ui-monospace, monospace;--z1:#888;--z2:#3db06a;--z3:#29b8d4;--z4:#d4920a;--z5:#e06830;--z6:#d44040}html,body{height:auto;min-height:100%;font-family:var(--font-mono);background-color:var(--bg-0);background-image:linear-gradient(to right, var(--grid-line) 1px, transparent 1px), linear-gradient(to bottom, var(--grid-line) 1px, transparent 1px);color:var(--text-primary);-webkit-font-smoothing:antialiased;background-size:72px 72px;margin:0;padding:0;overflow-y:auto}.page{flex-direction:column;gap:8px;min-height:100vh;padding:12px 14px 14px;display:flex;overflow:visible}.glass-panel{background:var(--panel-bg);border:1px solid var(--border);position:relative;overflow:hidden}.glass-panel:before,.glass-panel:after{content:"+";font-family:var(--font-mono);color:var(--border-bright);pointer-events:none;letter-spacing:0;z-index:1;font-size:9px;line-height:1;position:absolute}.glass-panel:before{top:5px;right:7px}.glass-panel:after{bottom:5px;right:7px}.session-header{background:var(--panel-bg);border:1px solid var(--border);border-top:2px solid var(--accent-orange);flex:none;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 18px;padding:12px 14px 10px;display:grid}.session-identity{flex-direction:column;align-items:flex-start;gap:11px;min-width:0;display:flex}.session-home{color:var(--text-primary);flex-shrink:0;align-items:center;gap:14px;text-decoration:none;transition:color .1s;display:flex}.session-home:hover{color:var(--accent-orange)}.session-wordmark{letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:600}.session-wordmark span{color:var(--accent-orange)}.session-product{color:var(--text-muted);border-left:1px solid var(--border);letter-spacing:.12em;text-transform:uppercase;padding-left:14px;font-size:9px}.session-title{align-items:baseline;gap:12px;min-width:0;display:flex}.session-badge{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--border-bright);font-size:9px;font-weight:500;font-family:var(--font-mono);align-items:center;gap:5px;padding:3px 8px;display:inline-flex}.session-header h1{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);margin:0;font-size:15px;font-weight:600}.session-header h1[contenteditable=true]{border:1px solid #0000;outline:none;min-width:7ch;padding:3px 5px}.session-header h1[contenteditable=true]:focus{border-color:var(--accent-orange);background:var(--bg-1)}.session-meta{color:var(--text-muted);font-size:11px;font-family:var(--font-mono);letter-spacing:.02em}.session-stats{border:1px solid var(--border);background:var(--bg-1);grid-area:2/1/auto/-1;grid-template-columns:repeat(5,max-content);justify-self:end;gap:0;display:grid}.stat-chip{background:0 0;border:0;flex-direction:column;gap:3px;min-width:86px;padding:6px 10px;display:flex;position:relative}.stat-chip:not(:last-child):after{content:"";background:var(--border);width:1px;position:absolute;top:8px;bottom:8px;right:0}.stat-chip.dominant{background:var(--bg-2);border-left:2px solid var(--accent-orange)}.stat-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:8px;font-weight:500;font-family:var(--font-mono)}.stat-value{letter-spacing:.01em;color:var(--text-primary);font-size:14px;font-weight:600;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.zone-z1{color:var(--z1)}.zone-z2{color:var(--z2)}.zone-z3{color:var(--z3)}.zone-z4{color:var(--z4)}.zone-z5{color:var(--z5)}.zone-z6{color:var(--z6)}.zone-ut1{color:var(--z3)}.session-description-panel{padding:12px 14px 10px}.session-description-panel .panel-header{align-items:center}.session-description-input{resize:vertical;border:1px solid var(--border);background:var(--bg-1);width:100%;min-height:70px;color:var(--text-secondary);font-family:var(--font-mono);outline:none;padding:10px 12px;font-size:11px;line-height:1.7;display:block;overflow:hidden}.session-description-input:focus{border-color:var(--accent-orange);color:var(--text-primary)}.top-row{flex:none;align-items:stretch;gap:6px;min-height:0;display:flex}.zones-panel{flex:1.2 1 0;min-width:0;padding:12px 14px 10px;overflow:visible}.intervals-panel{flex:.95 1 0;min-width:330px;padding:12px 12px 10px;overflow:visible}.map-panel{flex-direction:column;flex:.7 1 0;min-width:0;padding:10px;display:flex}.panel-header{border-bottom:1px solid var(--border);align-items:baseline;gap:12px;margin-bottom:8px;padding-bottom:7px;display:flex;position:relative}.panel-header:after{content:"";background:var(--accent-orange);width:18px;height:1px;position:absolute;bottom:-1px;left:0}.panel-header h2{letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-size:9px;font-weight:500;font-family:var(--font-mono);margin:0}.panel-meta{color:var(--text-muted);font-size:9.5px;font-family:var(--font-mono);letter-spacing:.01em}.panel-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border);font-size:9px;font-weight:500;font-family:var(--font-mono);flex:none;margin-bottom:8px;padding-bottom:7px;position:relative}.panel-label:after{content:"";background:var(--accent-orange);width:18px;height:1px;position:absolute;bottom:-1px;left:0}.col-hidden{display:none}.zones-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11px;font-family:var(--font-mono)}.zones-table thead tr{border-bottom:1px solid var(--border)}.zones-table th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:9px;font-weight:500;font-family:var(--font-mono);padding:0 12px 6px 0}.zones-table td{vertical-align:middle;color:var(--text-secondary);font-variant-numeric:tabular-nums;padding:5px 12px 5px 0}.zones-table th:nth-child(5),.zones-table th:nth-child(6),.zones-table th:nth-child(7),.zones-table th:nth-child(8),.zones-table td:nth-child(5),.zones-table td:nth-child(6),.zones-table td:nth-child(7),.zones-table td:nth-child(8){text-align:right}.zone-row:not(:last-child) td{border-bottom:1px solid var(--border)}.zone-row:hover td{background:var(--bg-2)}.zone-tag{letter-spacing:.06em;background:var(--bg-3);border:1px solid var(--border-bright);text-align:center;min-width:28px;font-size:10px;font-weight:600;font-family:var(--font-mono);padding:1px 5px;display:inline-block}.zone-name{font-size:11px;font-weight:600}.zone-desc{color:var(--text-muted)}.zone-pace{font-family:var(--font-mono);color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:11px}.pct{font-variant-numeric:tabular-nums;font-size:11px;font-weight:500;font-family:var(--font-mono)}.z1 .zone-tag,.z1 .zone-name,.z1 .pct,.z1 td:nth-child(7),.z1 td:nth-child(8){color:var(--z1)}.z2 .zone-tag,.z2 .zone-name,.z2 .pct,.z2 td:nth-child(7),.z2 td:nth-child(8){color:var(--z2)}.z3 .zone-tag,.z3 .zone-name,.z3 .pct,.z3 td:nth-child(7),.z3 td:nth-child(8){color:var(--z3)}.z4 .zone-tag,.z4 .zone-name,.z4 .pct,.z4 td:nth-child(7),.z4 td:nth-child(8){color:var(--z4)}.z5 .zone-tag,.z5 .zone-name,.z5 .pct,.z5 td:nth-child(7),.z5 td:nth-child(8){color:var(--z5)}.z6 .zone-tag,.z6 .zone-name,.z6 .pct,.z6 td:nth-child(7),.z6 td:nth-child(8){color:var(--z6)}.z1 .zone-tag{border-color:var(--z1)}.z2 .zone-tag{border-color:var(--z2)}.z3 .zone-tag{border-color:var(--z3)}.z4 .zone-tag{border-color:var(--z4)}.z5 .zone-tag{border-color:var(--z5)}.z6 .zone-tag{border-color:var(--z6)}.zone-segment-spacer td{height:9px;padding:0;border-bottom:0!important}.zone-segment-row td{color:var(--text-muted);border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;background:var(--bg-2);padding-top:5px;padding-bottom:5px}.segment-tag{border:1px solid var(--border-bright);background:var(--bg-3);min-width:28px;color:var(--text-muted);letter-spacing:.06em;text-align:center;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.segment-tag.warmup{border-color:var(--z2);color:var(--z2)}.segment-tag.cooldown{border-color:var(--z1);color:var(--z1)}.segment-name{color:var(--text-secondary);margin-left:7px}.intervals-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:10.8px;font-family:var(--font-mono)}.intervals-table thead tr{border-bottom:1px solid var(--border)}.intervals-table th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:9px;font-weight:500;font-family:var(--font-mono);padding:0 11px 6px 0}.intervals-table td{vertical-align:middle;color:var(--text-secondary);font-variant-numeric:tabular-nums;padding:4.5px 11px 4.5px 0}.intervals-table th:nth-child(n+2),.intervals-table td:nth-child(n+2){text-align:right}.intervals-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--border)}.intervals-table tbody tr:hover td{background:var(--bg-2)}.interval-tag{border:1px solid var(--accent-orange);background:var(--bg-3);min-width:28px;color:var(--accent-orange);letter-spacing:.06em;text-align:center;padding:1px 5px;font-size:10px;font-weight:600;display:inline-block}.interval-name{color:var(--text-secondary);margin-left:7px}.table-empty{color:var(--text-muted)}@media (width<=1180px){.top-row{flex-wrap:wrap;flex:none}.zones-panel,.intervals-panel{flex:calc(50% - 4px)}.intervals-panel{min-width:320px}.map-panel{flex:100%;height:260px}}.map-panel .chart-wrap{opacity:.78;flex-direction:column;flex:1 1 0;min-height:0;display:flex}.map-panel .chart-wrap>div{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.map-panel .plotly-graph-div{flex:1 1 0!important;width:100%!important;height:auto!important;min-height:0!important}.charts-panel{border-top-color:var(--border-bright);flex-direction:column;flex:0 0 320px;min-height:0;display:flex}#interval-charts-container{flex-direction:column;gap:8px;display:flex}.interval-panel{background:var(--panel-bg);border:1px solid var(--border);flex-direction:column;flex:none;height:200px;display:flex;overflow:hidden}.interval-header{border-bottom:1px solid var(--border);border-left:2px solid var(--accent-orange);flex:none;align-items:baseline;gap:12px;padding:6px 14px;display:flex}.interval-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);font-size:9px;font-weight:500;font-family:var(--font-mono)}.interval-meta{color:var(--text-muted);font-size:9.5px;font-family:var(--font-mono);letter-spacing:.01em;font-variant-numeric:tabular-nums}.interval-charts-row{flex-direction:row;flex:1 1 0;min-height:0;display:flex}.interval-chart-slot{flex-direction:column;flex:1 1 0;min-height:0;padding:4px 10px;display:flex}.interval-chart-slot:not(:last-child){border-right:1px solid var(--border)}.interval-chart-slot .slot-inner{flex:1 1 0;min-height:0}.split-charts{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.chart-slot{flex-direction:column;flex:1 1 0;min-height:0;padding:8px 12px 4px;display:flex}.chart-slot:not(:last-child){border-bottom:1px solid var(--border)}.slot-inner{flex:1 1 0;min-height:0}.slot-inner .plotly-graph-div,.slot-inner>div{width:100%!important;height:100%!important}.chart-empty{height:100%;color:var(--text-muted);font-size:11px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:center;align-items:center;display:flex}.print-debug{border:1px solid var(--border);background:var(--bg-1);color:var(--text-secondary);font-family:var(--font-mono);white-space:pre-wrap;margin:8px 0 0;padding:8px 10px;font-size:9px;line-height:1.45;display:none}.workout-switcher{align-items:center;gap:2px;margin-right:8px;display:flex}.workout-btn{color:var(--text-faint);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 8px;font-size:9px;font-weight:500;transition:color .1s,border-color .1s}.workout-btn:hover{color:var(--text-muted);border-color:var(--border)}.workout-btn.active{color:var(--accent-orange);border-color:var(--accent-orange)}.workout-btn:disabled,.save-btn:disabled{cursor:default;opacity:.45}.session-controls{justify-self:end;align-items:center;gap:6px;display:flex}.session-edit-menu{position:relative}.edit-menu-panel{z-index:20;border:1px solid var(--border);border-top:2px solid var(--accent-orange);background:var(--panel-bg);width:260px;padding:10px;position:absolute;top:calc(100% + 6px);right:0}.edit-menu-field{gap:7px;display:grid}.edit-menu-field span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:8px}.edit-menu-field select{border:1px solid var(--border);background:var(--bg-1);min-height:36px;color:var(--text-primary);font-family:var(--font-mono);outline:none;padding:7px 9px;font-size:10px}.edit-menu-field select:focus{border-color:var(--accent-orange)}.edit-menu-delete{border:1px solid var(--z6);width:100%;min-height:34px;color:var(--z6);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;margin-top:10px;font-size:9px;font-weight:600}.demo-workouts{grid-area:2/1;justify-self:start;align-items:center;padding-top:1px;display:flex}.save-btn{border:1px solid var(--border-bright);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;padding:4px 10px;font-size:9px;font-weight:500;transition:color .1s,border-color .1s}.save-btn:hover{color:var(--accent-orange);border-color:var(--accent-orange)}.save-btn{position:relative}.save-btn.is-loading{color:#0000}.save-btn.is-loading:after{content:"";border:1.5px solid var(--text-muted);border-right-color:#0000;border-radius:50%;width:10px;height:10px;margin-top:-5px;margin-left:-5px;animation:.7s linear infinite save-spin;position:absolute;top:50%;left:50%}html.exporting-pdf .page{padding:12px 14px 14px}html.exporting-pdf .workout-btn,html.exporting-pdf .save-btn{pointer-events:none}@keyframes save-spin{to{transform:rotate(360deg)}}html.light{--bg-0:#e6e6e0;--bg-1:#f0f0ea;--bg-2:#e8e8e2;--bg-3:#dcdcd6;--panel-bg:#f0f0eaf0;--border:#c4c4bc;--border-bright:#a0a098;--grid-line:#5a5a521f;--text-primary:#0e0e0e;--text-secondary:#484840;--text-muted:#888880;--text-faint:#c0c0b8;--accent:#0e0e0e;--accent-dim:#aaa;--accent-orange:#c84800;--z1:#888880;--z2:#1d8a4a;--z3:#0090aa;--z4:#a87000;--z5:#c04800;--z6:#b01818}@media (width<=760px){.session-header{grid-template-columns:1fr auto;justify-items:stretch}.session-controls{justify-self:end}.session-stats{grid-template-columns:repeat(5,max-content)}.zones-panel,.intervals-panel,.map-panel{flex:100%;min-width:0}.map-panel{height:220px}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}@media print{@page{margin:8mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body{background:#fff}.page{gap:4px;width:100%;max-width:100%;padding:0;display:block}.session-controls,.demo-workouts{display:none}.glass-panel{box-shadow:none;background:#fff;border:1px solid #ddd;overflow:visible}.chart-slot,.slot-inner{overflow:visible}.session-header{background:#fff;grid-template-columns:auto 1fr;gap:10px;height:auto;padding:7px 10px 8px}.session-stats{grid-template-columns:repeat(5,max-content);gap:0}.stat-chip{gap:2px;padding:5px 9px}.stat-label{letter-spacing:.1em;font-size:8px}.stat-value{font-size:13px}.top-row{flex-direction:row;gap:4px;height:auto;margin-bottom:4px;display:flex}.zones-panel{flex:50%;min-width:0;padding:8px 9px 7px}.intervals-panel{flex:28%;min-width:0;padding:8px 9px 7px}.map-panel{flex:22%;min-width:0;height:auto;padding:7px 8px}.panel-header{gap:8px;margin-bottom:8px;padding-bottom:6px}.panel-header h2,.panel-label,.interval-label{letter-spacing:.1em;font-size:8px}.panel-meta,.interval-meta{font-size:8px}.zones-table,.intervals-table{font-size:9.4px}.zones-table th,.intervals-table th{padding:0 10px 5px 0;font-size:8px}.zones-table td,.intervals-table td{padding:4px 9px 4px 0}.zone-tag,.interval-tag{min-width:24px;font-size:9px}.charts-panel{height:auto;margin-bottom:4px;display:block}.split-charts{display:block}.chart-slot{width:100%;height:160px;padding:5px 8px 3px;display:block}.chart-slot .slot-inner{height:100%}.chart-slot .js-plotly-plot,.chart-slot .plot-container,.chart-slot .svg-container,.chart-slot .main-svg{width:100%!important;max-width:100%!important}.chart-slot:not(:last-child){border-bottom:1px solid #ddd;border-right:none}#interval-charts-container{display:block}.interval-panel{break-inside:avoid;page-break-inside:avoid;background:#fff;flex-direction:column;height:154px;margin-bottom:6px;display:flex;overflow:hidden}.interval-header{gap:8px;padding:5px 10px 4px}.interval-charts-row{flex-direction:row;flex:1 1 0;min-height:0;display:flex}.interval-chart-slot{flex:1 1 0;min-width:0;height:auto;padding:3px 8px;display:flex;overflow:hidden}.interval-chart-slot .slot-inner{height:100%}.interval-chart-slot .js-plotly-plot,.interval-chart-slot .plot-container,.interval-chart-slot .svg-container,.interval-chart-slot .main-svg{width:100%!important;max-width:100%!important}.interval-chart-slot:not(:last-child){border-bottom:none;border-right:1px solid #ddd}.print-debug{display:none!important}}::-webkit-scrollbar-thumb{background:var(--border-bright)}.auth-body,.app-body{min-height:100vh}.auth-page{place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:var(--panel-bg);border:1px solid var(--border);border-top:2px solid var(--accent-orange);width:min(100%,440px);position:relative}.auth-panel:before,.auth-panel:after{content:"+";color:var(--border-bright);font-size:9px;position:absolute;right:9px}.auth-panel:before{top:8px}.auth-panel:after{bottom:8px}.auth-header{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 18px 13px;display:flex}.auth-wordmark,.sidebar-brand{color:var(--text-primary);letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:600;text-decoration:none}.auth-wordmark span,.sidebar-brand span{color:var(--accent-orange)}.auth-context{color:var(--text-muted);border-left:1px solid var(--border);letter-spacing:.12em;text-transform:uppercase;padding-left:14px;font-size:9px}.auth-form{flex-direction:column;gap:16px;padding:30px 28px 26px;display:flex}.auth-form[hidden]{display:none}.auth-copy{gap:9px;margin-bottom:6px;display:grid}.auth-kicker,.app-section-label{color:var(--accent-orange);letter-spacing:.14em;text-transform:uppercase;font-size:9px}.auth-copy h1,.app-topbar h1,.detail-head h2{color:var(--text-primary);letter-spacing:0;margin:0;font-size:24px;font-weight:600}.auth-copy p,.detail-head p,.auth-alt{color:var(--text-muted);margin:0;font-size:11px;line-height:1.65}.field{gap:7px;display:grid}.field span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--bg-1);width:100%;min-height:40px;color:var(--text-primary);font-family:var(--font-mono);outline:none;padding:9px 10px;font-size:12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-orange)}.field input:disabled,.field select:disabled,.field textarea:disabled{color:var(--text-muted);border-color:var(--border);opacity:1;cursor:default}.field textarea{resize:vertical;min-height:140px;line-height:1.6}.primary-action,.secondary-action,.topbar-action{border:1px solid var(--accent-orange);min-height:38px;color:var(--accent-orange);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:10px 14px;font-size:9.5px;font-weight:600;text-decoration:none;display:inline-flex}.primary-action:hover,.topbar-action:hover{color:var(--text-primary);border-color:var(--text-primary)}.topbar-action.is-hidden{display:none}.primary-action.narrow,.primary-action.as-link{width:fit-content}.secondary-action{border-color:var(--border-bright);color:var(--text-muted)}.secondary-action:hover{border-color:var(--accent-orange);color:var(--accent-orange)}.danger-action{border-color:var(--z6);color:var(--z6)}.auth-alt a,.sidebar-footer a{color:var(--accent-orange);text-decoration:none}.auth-link-button{color:var(--accent-orange);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.auth-link-button:hover,.auth-alt a:hover{color:var(--text-primary)}.auth-status{border:1px solid var(--border);border-left:2px solid var(--accent-orange);background:var(--bg-1);color:var(--text-secondary);margin:0;padding:10px 12px;font-size:10px;line-height:1.6}.app-shell{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{border-right:1px solid var(--border);border-top:2px solid var(--accent-orange);background:var(--panel-bg);grid-template-rows:auto 1fr auto;height:100vh;display:grid;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid var(--border);padding:16px 18px 15px;display:block}.sidebar-nav{padding:12px}.sidebar-link{width:100%;min-height:38px;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-left-width:2px;align-items:center;padding:9px 10px;font-size:10px;font-weight:600;display:flex}.sidebar-link:hover,.sidebar-link.active{color:var(--text-primary);border-color:var(--border);border-left-color:var(--accent-orange);background:var(--bg-1)}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-muted);gap:8px;padding:12px;font-size:10px;display:grid}.sidebar-footer-link{margin:0}.sidebar-footer a{padding:2px 6px}.app-main{min-width:0;padding:14px}.app-topbar{background:var(--panel-bg);border:1px solid var(--border);border-top:2px solid var(--accent-orange);justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;padding:14px 16px;display:flex}.app-topbar>div{gap:6px;display:grid}.app-view{display:none}.app-view.active{display:block}.workout-library{grid-template-columns:minmax(0,1fr);align-items:start;gap:8px;display:grid}.library-panel,.account-panel{background:var(--panel-bg);border:1px solid var(--border);padding:12px 14px}.workout-list{display:grid}.workout-filters{border-bottom:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:8px;padding-bottom:12px;display:grid}.workout-filters .field:first-child{grid-column:1/-1}.workout-filters .field:nth-child(5){grid-column:1/2}.workout-filters .secondary-action{min-height:40px}.workout-row{border:0;border-bottom:1px solid var(--border);width:100%;min-height:86px;color:var(--text-secondary);font-family:var(--font-mono);text-align:left;cursor:pointer;background:0 0;border-left:2px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;padding:10px 10px 10px 12px;text-decoration:none;display:grid}.workout-row:hover,.workout-row.active{background:var(--bg-1);border-left-color:var(--accent-orange)}.workout-row-main{gap:5px;min-width:0;display:grid}.workout-row-main strong{color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;font-size:12px}.workout-row-main small,.workout-row-stats,.workout-row-date{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10px}.workout-row-description{max-width:76ch;line-height:1.5;display:block}.workout-row-description span{color:var(--accent-orange);letter-spacing:.12em;text-transform:uppercase;margin-right:8px;font-size:8px}.workout-row-stats{white-space:nowrap;align-items:center;gap:10px;display:flex}.workout-row-side{justify-items:end;gap:12px;min-width:220px;display:grid}.workout-row-date{color:var(--text-secondary);letter-spacing:.04em;text-align:right}.zone-pill{border:1px solid;justify-content:center;align-items:center;min-width:30px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex}.zone-pill.z1,.zone-bar-fill.z1{color:var(--z1);background-color:var(--z1)}.zone-pill.z2,.zone-bar-fill.z2{color:var(--z2);background-color:var(--z2)}.zone-pill.z3,.zone-bar-fill.z3{color:var(--z3);background-color:var(--z3)}.zone-pill.z4,.zone-bar-fill.z4{color:var(--z4);background-color:var(--z4)}.zone-pill.z5,.zone-bar-fill.z5{color:var(--z5);background-color:var(--z5)}.zone-pill.z6,.zone-bar-fill.z6{color:var(--z6);background-color:var(--z6)}.zone-pill{background:0 0!important}.workout-detail{min-height:420px;padding:16px}.detail-empty{min-height:260px;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;place-items:center;font-size:10px;display:grid}.detail-head{border-bottom:1px solid var(--border);gap:7px;padding-bottom:14px;display:grid}.detail-stat-grid{border:1px solid var(--border);background:var(--bg-1);grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0;display:grid}.detail-zone-block{padding-top:2px}.zone-bars{gap:8px;display:grid}.zone-bar-row{color:var(--text-muted);font-variant-numeric:tabular-nums;grid-template-columns:38px minmax(0,1fr) 56px;align-items:center;gap:10px;font-size:10px;display:grid}.zone-bar-track{border:1px solid var(--border);background:var(--bg-1);height:8px}.zone-bar-fill{opacity:.7;height:100%;display:block}.detail-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.account-grid,.contact-grid{grid-template-columns:minmax(280px,.9fr) minmax(280px,1.1fr);gap:8px;display:grid}.contact-grid{grid-template-columns:minmax(320px,760px);align-items:start}.speed-tables-panel{grid-column:1/-1}.account-form,.contact-form{gap:14px;display:grid}.contact-panel{background:var(--panel-bg);border:1px solid var(--border);padding:12px 14px}.contact-status{border:1px solid var(--border);border-left:2px solid var(--accent-orange);background:var(--bg-1);color:var(--text-secondary);margin:0;padding:10px 12px;font-size:10px;line-height:1.6}.contact-method-list{border-bottom:1px solid var(--border);display:grid}.contact-method{border-top:1px solid var(--border);gap:6px;padding:12px 0;display:grid}.contact-method span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px}.contact-method strong{color:var(--text-primary);font-size:11px;font-weight:600}.settings-list{display:grid}.device-list{border-bottom:1px solid var(--border);display:grid}.device-row{border-top:1px solid var(--border);min-height:62px;color:var(--text-secondary);grid-template-columns:8px minmax(0,1fr) minmax(180px,240px);align-items:center;gap:12px;display:grid}.device-status{width:7px;height:7px;color:var(--z2);background:currentColor;border:1px solid}.device-status.idle{color:var(--text-muted);background:0 0}.device-status.pending{color:var(--accent-orange)}.device-main{gap:5px;min-width:0;display:grid}.device-main strong{color:var(--text-primary);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.device-main small,.device-state{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10px}.device-state{border:1px solid var(--border-bright);text-transform:uppercase;letter-spacing:.1em;padding:3px 7px}.device-table-select{align-self:center;gap:6px;display:grid;position:relative}.device-table-select span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:8px}.device-table-select select{appearance:none;border:1px solid var(--border-bright);background:linear-gradient(180deg, #ffffff0b, #fff0), var(--bg-1);width:100%;min-height:36px;color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.03em;cursor:pointer;outline:none;padding:8px 34px 8px 10px;font-size:10px;transition:border-color .14s,background-color .14s,color .14s}.device-table-select:after{content:"";border-right:1px solid var(--text-muted);border-bottom:1px solid var(--text-muted);pointer-events:none;width:7px;height:7px;transition:border-color .14s,transform .14s;position:absolute;bottom:13px;right:12px;transform:rotate(45deg)}.device-table-select:hover select{border-color:var(--text-muted)}.device-table-select select:focus{border-color:var(--accent-orange);background:linear-gradient(180deg, #c848001f, #c8480000), var(--bg-1)}.device-table-select:focus-within:after{border-color:var(--accent-orange);transform:translateY(2px)rotate(45deg)}.device-table-select select:disabled{color:var(--text-muted);cursor:default}.device-table-select:has(select:disabled):after{border-color:var(--border-bright)}.connect-device-action{margin-top:14px}.speed-table-form{border-bottom:1px solid var(--border);grid-template-columns:minmax(160px,.7fr) minmax(150px,.6fr) auto;align-items:end;gap:12px;padding-bottom:14px;display:grid}.panel-header-action{min-height:28px;margin-left:auto;padding:6px 10px}.modal-form{border-bottom:0;padding:14px}.app-modal{z-index:1000;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.app-modal.is-hidden{display:none}.app-modal-backdrop{cursor:pointer;background:#0a0a0a7a;border:0;position:absolute;inset:0}.app-modal-panel{z-index:1;background:var(--panel-bg);border:1px solid var(--border);border-top:2px solid var(--accent-orange);width:min(760px,100%);max-height:calc(100vh - 36px);position:relative;overflow:auto}.delete-modal-panel{width:min(460px,100%)}.connect-device-panel{width:min(520px,100%)}.app-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:16px;padding:14px;display:flex}.app-modal-header h2{color:var(--text-primary);letter-spacing:0;margin:6px 0 0;font-size:20px}.modal-copy{color:var(--text-secondary);border-bottom:1px solid var(--border);margin:0;padding:16px 14px;font-size:11px;line-height:1.65}.modal-copy strong{color:var(--text-primary)}.modal-actions{justify-content:flex-end;gap:8px;padding:14px;display:flex}.connect-device-form{gap:14px;display:grid}.pairing-card{border:1px solid var(--border);background:var(--bg-1);grid-template-columns:10px minmax(0,1fr);align-items:center;gap:12px;min-height:64px;padding:12px;display:grid}.pairing-status{border:1px solid var(--accent-orange);background:0 0;width:9px;height:9px}.pairing-status.connected{border-color:var(--z2);background:var(--z2)}.pairing-card span:last-child{gap:5px;display:grid}.pairing-card strong{color:var(--text-primary);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.pairing-card small{color:var(--text-muted);font-size:10px}.app-toast{z-index:1100;border:1px solid var(--accent-orange);border-left:3px solid var(--accent-orange);background:var(--panel-bg);min-width:220px;max-width:min(360px,100vw - 32px);color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;opacity:0;pointer-events:none;padding:11px 12px;font-size:10px;transition:opacity .14s,transform .14s;position:fixed;bottom:16px;right:16px;transform:translateY(8px)}.app-toast.is-visible{opacity:1;transform:translateY(0)}.table-color-picker{border:0;align-items:end;gap:8px;min-height:40px;margin:0;padding:0;display:flex}.table-color-picker legend{width:100%;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px;font-size:9px}.table-color-picker label{display:inline-flex}.table-color-picker input{opacity:0;pointer-events:none;position:absolute}.table-color-picker span{border:1px solid var(--border-bright);background:var(--swatch);cursor:pointer;width:26px;height:26px}.table-color-picker input:checked+span{outline:2px solid var(--text-primary);outline-offset:2px}.create-zone-editor{border:1px solid var(--border);background:var(--bg-1);grid-column:1/-1}.create-zone-editor-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 10px;display:flex}.create-zone-editor-head span{color:var(--text-secondary);letter-spacing:.14em;text-transform:uppercase;font-size:9px}.create-zone-editor-head small{color:var(--text-muted);font-size:9px}.create-zone-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.zone-edit-row{border-right:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:36px minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:8px;padding:8px 10px;display:grid}.zone-edit-row:nth-child(2n){border-right:0}.zone-edit-row:nth-last-child(-n+2){border-bottom:0}.zone-edit-row input{border:1px solid var(--border);background:var(--bg-0);min-width:0;height:34px;color:var(--text-primary);font-family:var(--font-mono);outline:none;padding:7px 8px;font-size:10px}.zone-edit-row input:focus{border-color:var(--accent-orange)}.speed-table-controls{border-bottom:1px solid var(--border);justify-content:flex-end;align-items:end;gap:14px;padding:12px;display:flex}.table-actions{justify-content:flex-end;align-items:end;display:flex}.edit-table-form{gap:14px;display:grid}.edit-table-actions{justify-content:space-between;padding:0}.speed-table-list{gap:10px;margin-top:14px;display:grid}.speed-table-card{border:1px solid var(--border);border-left:3px solid var(--table-color,var(--accent-orange));background:var(--bg-1)}.speed-table-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:16px;padding:11px 12px;display:flex}.speed-table-head span:first-child{gap:5px;display:grid}.speed-table-head strong{color:var(--text-primary);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:8px;font-size:12px;display:inline-flex}.table-color-tag{border:1px solid var(--table-color,var(--accent-orange));background:var(--table-color,var(--accent-orange));width:9px;height:9px}.speed-table-head small,.device-links{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10px}.device-links{text-align:right;gap:5px;display:grid}.device-links small{color:var(--accent-orange);letter-spacing:.1em;text-transform:uppercase;font-size:9px}.speed-zone-grid{display:grid}.speed-zone-row{border-bottom:1px solid var(--border);min-height:44px;color:var(--text-secondary);grid-template-columns:42px minmax(0,1fr) minmax(120px,auto);align-items:center;gap:12px;padding:10px 12px;font-size:10px;display:grid}.speed-zone-row:last-child{border-bottom:0}.speed-zone-row>span:not(.zone-pill){color:var(--text-secondary);letter-spacing:.04em;font-size:11px}.speed-zone-row strong{color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:11px}.setting-row{border-bottom:1px solid var(--border);min-height:64px;color:var(--text-secondary);justify-content:space-between;align-items:center;gap:16px;display:flex}.setting-row span{gap:5px;display:grid}.setting-row strong{color:var(--text-primary);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.setting-row small{color:var(--text-muted);font-size:10px}.setting-row input{width:18px;height:18px;accent-color:var(--accent-orange)}@media (width<=900px){.app-shell{grid-template-columns:1fr}.app-sidebar{border-right:0;border-bottom:1px solid var(--border);grid-template-rows:auto;grid-template-columns:auto 1fr auto;align-items:center;height:auto;position:static}.sidebar-nav{gap:4px;display:flex}.sidebar-footer{border-top:0;border-left:1px solid var(--border)}.workout-library,.account-grid,.contact-grid{grid-template-columns:1fr}.workout-filters,.speed-table-form{grid-template-columns:1fr 1fr}.speed-table-form .primary-action,.table-actions{grid-column:1/-1;width:fit-content}.table-actions{justify-content:flex-start}.detail-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.app-main{padding:8px}.app-topbar,.workout-row,.workout-row-stats,.detail-actions,.app-sidebar{align-items:stretch}.app-sidebar,.app-topbar,.workout-row{grid-template-columns:1fr;display:grid}.sidebar-footer{border-left:0}.workout-row-stats{flex-wrap:wrap}.detail-stat-grid,.workout-filters,.speed-table-form{grid-template-columns:1fr}.device-row{grid-template-columns:8px minmax(0,1fr)}.device-table-select{grid-column:2}.speed-table-head{display:grid}.device-links{text-align:left}.speed-zone-row{grid-template-columns:38px minmax(0,1fr)}.speed-zone-row strong{text-align:left;white-space:normal;grid-column:2}.detail-stat-grid .stat-chip:not(:last-child):after{width:auto;height:1px;inset:auto 10px 0}}
