:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#e8e4db;--surface:#faf8f4;--surface-2:#f3f0ea;--ink:#1c1b18;--muted:#5c574f;--line:#c9c2b6;--line-strong:#a59d90;--accent:#a63d32;--accent-hover:#8b3229;--warn-bg:#f5ebe0;--warn-border:#d4b896;--ok-bg:#e8f0e8;--mono:ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;line-height:1.45}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{min-width:320px;overflow:hidden}#root{height:100dvh;max-height:100dvh;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}code{font-family:var(--mono);font-size:.82em}.boot{min-height:100vh;color:var(--muted);place-items:center;display:grid}.app-shell{border-top:3px solid var(--ink);grid-template:"sidebar main inspector"minmax(0,1fr)/240px minmax(0,1fr) 280px;height:100%;max-height:100dvh;display:grid;overflow:hidden}.app-shell>.sidebar{grid-area:sidebar}.app-shell>.main{grid-area:main}.app-shell>.inspector{grid-area:inspector}.sidebar,.inspector{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:12px;min-width:0;min-height:0;padding:16px 14px;display:flex;overflow:hidden}.inspector{border-right:0;border-left:1px solid var(--line);overflow:hidden auto}.site-head,.sidebar-actions,.sidebar-label{flex-shrink:0}.site-head{border-bottom:1px solid var(--line);padding-bottom:12px}.site-title{letter-spacing:-.02em;margin:0;font-size:15px;font-weight:650}.site-tag{color:var(--muted);margin:4px 0 0;font-size:12px}.site-intro{color:var(--muted);margin:10px 0 0;font-size:11px;line-height:1.45}.sidebar-actions{flex-direction:column;gap:6px;display:flex}.sidebar-label,.palette-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.palette{background:var(--surface-2);border:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.palette-row{flex-wrap:wrap;gap:6px;display:flex}.palette-chip{border:1px solid var(--line-strong);background:var(--surface);cursor:grab;border-radius:2px;padding:5px 10px;font-size:12px;font-weight:550}.palette-chip:hover{border-color:var(--ink)}.palette-chip.is-dragging{opacity:.45}.primary,.ghost,.danger{cursor:pointer;border-radius:2px;padding:7px 12px;font-size:13px}.primary{border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600}.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.ghost{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.ghost:hover:not(:disabled){border-color:var(--ink)}.danger{color:#7a2e2e;background:#faf0f0;border:1px solid #c9a0a0}.ghost:disabled,.primary:disabled{opacity:.45;cursor:default}.workout-list{flex-direction:column;flex:1;gap:2px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.workout-list li{border:1px solid #0000;align-items:center;gap:2px;display:flex}.workout-list li.is-active{border-color:var(--line-strong);background:var(--surface-2)}.workout-open{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:7px 8px}.workout-open strong,.workout-open small{display:block}.workout-open strong{font-size:13px;font-weight:550}.workout-open small{color:var(--muted);font-family:var(--mono);font-size:11px}.icon-btn{width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:16px;line-height:1}.icon-btn:hover{color:var(--accent)}.local-notice,.support-aside{flex-shrink:0}.local-notice{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-left:3px solid var(--line-strong);margin-top:auto;padding:10px 10px 10px 12px;font-size:11px;line-height:1.45}.support-aside{color:var(--muted);flex-direction:column;gap:10px;font-size:11px;display:flex}.support-tip{margin:0;line-height:1.45}.support-tip a{color:var(--ink);font-weight:550}.support-tip a:hover{color:var(--accent)}.support-ad{border:1px dashed var(--line);background:var(--surface-2);min-height:0;padding:4px;overflow:hidden}.support-ad:empty{display:none}.main{background:var(--paper);flex-direction:column;gap:10px;min-width:0;min-height:0;padding:14px 16px;display:flex;overflow:hidden}.main>.topbar,.main>.palette,.main>.blank-manual,.main>.blank-or-divider,.main>.zone-legend{flex-shrink:0}.main-chart,.main-blank .blank-chart{flex-direction:column;flex:1;min-height:0;display:flex}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:10px;display:flex}.topbar h1{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:650}.topbar-meta{color:var(--muted);font-size:13px;font-family:var(--mono);margin:4px 0 0}.topbar-error{font-size:13px;color:var(--accent)!important}.topbar-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-group{border:1px solid var(--line-strong);background:var(--surface);display:flex}.toolbar-group .ghost{border:0;border-right:1px solid var(--line);border-radius:0}.toolbar-group .ghost:last-child{border-right:0}.toolbar-group .primary{border-radius:0}.ftp-banner{color:var(--muted);max-width:42rem;margin:8px 0 0;font-size:12px}.chart-panel{background:var(--surface);border:1px solid var(--line-strong);flex-direction:column;flex:1;min-height:0;padding:10px 10px 8px;display:flex;position:relative;overflow:hidden}.chart-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;padding:0 4px 8px;display:flex}.chart-heading h2{text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:13px;font-weight:650}.chart-heading p{color:var(--muted);font-size:12px;font-family:var(--mono);margin:0}.chart{flex:1;grid-template-columns:44px minmax(0,1fr);min-height:0;display:grid}.chart.is-over .chart-plot{outline:2px solid var(--ink);outline-offset:-2px}.chart-axis{font-family:var(--mono);color:var(--muted);font-size:10px;position:relative}.chart-axis span{position:absolute;right:6px;transform:translateY(50%)}.chart-plot{border:1px solid var(--line);background:#fff;height:100%;min-height:0;position:relative}.chart-stage{position:absolute;inset:12px 8px 44px}.chart-grid i{background:#e5e2dc;height:1px;position:absolute;left:0;right:0}.chart-grid .ftp-line{background:var(--accent);opacity:.85;height:2px}.chart-empty{color:var(--muted);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.chart-blocks{align-items:stretch;gap:2px;display:flex;position:absolute;inset:0}.chart-block{cursor:grab;background:0 0;border:0;min-width:24px;height:100%;padding:0;position:relative}.shape-wrap{align-items:flex-end;display:flex;position:absolute;inset:0}.chart-block.is-selected .shape-wrap{box-shadow:inset 0 0 0 2px var(--ink)}.chart-block.is-dragging{opacity:.4}.chart-block.is-preview .shape-wrap{box-shadow:inset 0 0 0 2px var(--muted);opacity:.75}.shape{align-self:flex-end;width:100%;display:block}.shape-ramp{height:100%}.shape-free{border:1px dashed var(--line-strong);background:repeating-linear-gradient(-45deg,#ddd9d2,#ddd9d2 4px,#f0ece6 4px 8px)}.shape-intervals{align-items:flex-end;gap:1px;height:100%;display:flex}.interval-pair{flex:1;align-items:flex-end;gap:1px;height:100%;display:flex}.interval-pair i{min-width:2px;display:block}.chart-block-meta{text-align:left;pointer-events:none;position:absolute;top:calc(100% + 2px);left:0;right:0}.chart-block-meta em,.chart-block-meta small{white-space:nowrap;text-overflow:ellipsis;font-style:normal;display:block;overflow:hidden}.chart-block-meta em{font-size:10px;font-weight:600}.chart-block-meta small{font-size:9px;font-family:var(--mono);color:var(--muted)}.zone-legend{color:var(--muted);flex-wrap:wrap;gap:10px 14px;margin:0;padding:4px 2px 0;font-size:11px;list-style:none;display:flex}.zone-legend i{vertical-align:-1px;width:10px;height:10px;margin-right:4px;display:inline-block}.inspector h2{text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:13px;font-weight:650}.field{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.field>span{overflow-wrap:anywhere}.field input,.field textarea,.field select{border:1px solid var(--line-strong);color:var(--ink);box-sizing:border-box;background:#fff;border-radius:2px;width:100%;min-width:0;max-width:100%;padding:6px 8px;font-size:13px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--ink);outline-offset:0}.field b{color:var(--ink);font-weight:600}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.duration-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:4px;width:100%;max-width:100%;display:grid}.duration-inputs input{padding-left:4px;padding-right:4px}.duration-inputs em{color:var(--muted);flex-shrink:0;font-size:11px;font-style:normal}.inspector-rule{background:var(--line);height:1px;margin:6px 0}.block-fields{flex-direction:column;gap:10px;min-width:0;display:flex}.block-fields-head{justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.block-fields-head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.chip{border:1px solid var(--line);background:var(--surface-2);padding:2px 6px;font-size:10px}.inspector-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.inspector-empty{color:var(--muted);margin:0;font-size:12px}.ftp-dot{font-size:11px;font-family:var(--mono);color:var(--accent);padding:0 4px}.ftp-mismatch,.ftp-match{border:1px solid var(--line);padding:8px;font-size:12px}.ftp-mismatch{background:var(--warn-bg);border-color:var(--warn-border)}.ftp-mismatch.compact{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.ftp-match{background:var(--ok-bg);color:var(--muted)}.ftp-match-note{color:var(--muted);margin:0;font-size:12px}.link-btn{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.modal-backdrop{z-index:40;background:#1c1b1859;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line-strong);flex-direction:column;gap:10px;width:min(420px,100%);padding:16px;display:flex}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.modal-head h2{margin:0;font-size:15px;font-weight:650}.modal-copy{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.modal-actions{flex-direction:column;gap:6px;padding-top:4px;display:flex}.drag-ghost{background:var(--surface);border:2px solid var(--ink);padding:6px 12px;font-size:12px;font-weight:600;box-shadow:4px 4px #0000001f}.main-blank .blank-or-divider{text-align:center;color:var(--muted);letter-spacing:.02em;margin:0;font-size:12px}.main-blank .blank-manual{opacity:.92}.ai-panel{border:1px solid var(--line-strong);background:var(--surface);flex-direction:column;flex-shrink:1;min-height:0;max-height:min(42vh,26rem);display:flex;overflow:hidden}.main-blank .ai-panel-prominent{max-height:min(48vh,28rem)}.ai-panel-prominent{border-width:2px;border-color:var(--ink);background:var(--surface);box-shadow:6px 6px #1c1b1814}.ai-hero-head{padding:16px 16px 0}.ai-hero-head h2{letter-spacing:-.02em;margin:0 0 8px;font-size:22px;font-weight:650}.ai-hero-head p{color:var(--muted);max-width:40rem;margin:0;font-size:14px;line-height:1.45}.ai-panel-prominent .ai-prompt{min-height:120px;font-size:15px}.ai-panel-prominent .ai-submit{min-width:10rem;padding:9px 16px}.ai-panel.is-loading{border-color:var(--ink)}.ai-panel-toggle{background:var(--surface-2);cursor:pointer;text-align:left;border:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 12px;display:flex}.ai-panel-title{text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:650}.ai-panel-chevron{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:8px;height:8px;margin-top:-4px;transition:transform .2s;transform:rotate(45deg)}.ai-panel.is-open .ai-panel-chevron{margin-top:4px;transform:rotate(-135deg)}.ai-panel-body{flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px;animation:.25s ai-panel-in;display:flex;overflow-y:auto}@keyframes ai-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ai-panel-lead{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.ai-mode{gap:6px;display:flex}.ai-mode-option{border:1px solid var(--line);background:var(--surface);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 8px;font-size:12px;display:flex}.ai-mode-option input{opacity:0;pointer-events:none;position:absolute}.ai-mode-option.is-active{border-color:var(--ink);background:var(--surface-2);font-weight:600}.ai-prompt{resize:none;border:1px solid var(--line-strong);background:#fff;width:100%;min-height:72px;max-height:8rem;padding:8px 10px;font-family:inherit;font-size:13px;line-height:1.45}.ai-prompt:focus{outline:2px solid var(--ink);outline-offset:0}.ai-prompt:disabled{opacity:.65;background:var(--surface-2)}.ai-panel-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.ai-hint{color:var(--muted);font-size:11px}.ai-submit{min-width:8rem}.ai-inline-loader{background:var(--surface-2);border:1px dashed var(--line-strong);align-items:center;gap:12px;padding:8px 10px;display:flex}.ai-inline-loader p{color:var(--muted);margin:0;font-size:12px;animation:1.2s ease-in-out infinite ai-text-pulse}@keyframes ai-text-pulse{0%,to{opacity:.55}50%{opacity:1}}.ai-bars{align-items:flex-end;gap:3px;height:28px;display:flex}.ai-bars-lg{gap:4px;height:48px}.ai-bars span{background:var(--accent);transform-origin:bottom;border-radius:1px;width:5px;animation:.9s ease-in-out infinite ai-bar-dance}.ai-bars-lg span{width:8px}@keyframes ai-bar-dance{0%,to{opacity:.45;height:22%}50%{opacity:1;height:100%}}.ai-error-panel{background:#faf0f0;border:1px solid #e0b8b8;padding:10px 12px;font-size:13px;line-height:1.45}.ai-error-panel strong{color:#7a2e2e;margin-bottom:4px;display:block}.ai-error-panel p{color:var(--ink);margin:0}.ai-error-hint{color:var(--muted)!important;margin-top:6px!important;font-size:12px!important}.ai-change-summary{background:var(--ok-bg);border:1px solid #b8d4be;padding:10px 12px;font-size:12px;line-height:1.45;animation:.35s ai-success-in}.ai-change-summary strong{text-transform:uppercase;letter-spacing:.04em;color:#2d6a3e;margin-bottom:6px;font-size:11px;display:block}.ai-change-summary ul{color:var(--ink);margin:0;padding-left:1.1rem}.ai-change-summary li+li{margin-top:4px}@keyframes ai-success-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chart-panel.is-generating .chart-plot{filter:saturate(.35)blur(1px);transition:filter .3s}.chart-generating-overlay{pointer-events:none;background:#faf8f4b8;place-items:center;animation:.25s overlay-in;display:grid;position:absolute;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.chart-block.ai-reveal .shape-wrap{animation:.5s cubic-bezier(.22,1,.36,1) backwards block-rise}@keyframes block-rise{0%{opacity:0;transform-origin:bottom;transform:translateY(12px)scaleY(.7)}to{opacity:1;transform:translateY(0)scaleY(1)}}@media (width<=1100px){.app-shell{grid-template:"sidebar main"minmax(0,1fr)"sidebar inspector"minmax(0,36%)/minmax(176px,200px) minmax(0,1fr)}.inspector{border-left:0;border-top:1px solid var(--line)}}@media (width<=720px){.app-shell{grid-template:"sidebar"minmax(0,20vh)"main"minmax(0,1fr)"inspector"minmax(0,34vh)/minmax(0,1fr)}.sidebar{border-right:0;border-bottom:1px solid var(--line);gap:8px;padding:10px 12px}.site-intro,.local-notice{display:none}.support-aside{margin-top:auto}.inspector{border-top:1px solid var(--line)}.main{gap:8px;padding:10px 12px}.topbar{flex-direction:column}.topbar h1{font-size:18px}}@media (height<=720px){.site-intro{display:none}.ai-hero-head{padding-top:10px}.ai-hero-head h2{font-size:18px}.ai-panel-prominent .ai-prompt{min-height:64px;max-height:5.5rem}.main{gap:8px;padding-top:10px;padding-bottom:10px}.chart-heading{margin-bottom:4px;padding-bottom:4px}}
