*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fdfbf5;--bg-warm:#f7f3e9;--ink:#2c2a26;--ink-muted:#7a7568;--ink-faint:#a89f90;--line:#e4dfd4;--accent:#e8a838;--tab-active:#2c2a26;--shadow:#2c2a260f;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400}html,body,#root{background:var(--bg);height:100%}body{min-width:960px;overflow-x:auto}.app{flex-direction:column;gap:20px;max-width:1280px;min-height:100%;margin:0 auto;padding:28px 40px 24px;display:flex}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:18px;display:flex}.brand{flex-shrink:0;align-items:center;gap:14px;display:flex}.brand-mark{opacity:.9;justify-content:center;align-items:center;line-height:1;display:flex}.brand h1{letter-spacing:.02em;color:var(--ink);font-size:18px;font-weight:500;line-height:1.2}.subtitle{color:var(--ink-muted);letter-spacing:.06em;text-transform:lowercase;margin-top:2px;font-size:12px;font-weight:400}.tabs{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.tab{appearance:none;cursor:pointer;color:var(--ink-muted);background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;font-family:inherit;transition:background .2s,border-color .2s;display:flex}.tab:hover{background:var(--bg-warm);color:var(--ink)}.tab.active{background:var(--bg-warm);border-color:var(--line);color:var(--ink)}.tab-code{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.tab.active .tab-code{color:var(--accent)}.tab-name{letter-spacing:.01em;opacity:.85;white-space:nowrap;text-overflow:ellipsis;max-width:110px;font-size:10px;font-weight:400;overflow:hidden}.stage{flex:1;grid-template-columns:1fr 1fr;place-items:center;gap:28px;min-height:480px;padding:12px 0 8px;display:grid}.panel{justify-content:center;align-items:center;display:flex}.track-map,.curve-graph{overflow:visible}.caption-bar{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-top:16px;display:flex}.caption h2{letter-spacing:.02em;margin-bottom:4px;font-size:15px;font-weight:500}.caption p{color:var(--ink-muted);letter-spacing:.01em;font-size:13px;font-weight:400}.controls{flex-shrink:0;align-items:center;gap:12px;display:flex}.ctrl{appearance:none;border:1px solid var(--line);background:var(--bg-warm);cursor:pointer;width:36px;height:36px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:12px;transition:background .15s,border-color .15s;display:flex}.ctrl:hover{border-color:var(--ink-faint);background:#efe9dc}.auto-label{color:var(--ink-muted);cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.02em;align-items:center;gap:6px;font-size:11px;display:flex}.auto-label input{accent-color:var(--accent);cursor:pointer}.progress-track{background:var(--line);border-radius:2px;width:120px;height:3px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width 50ms linear}@media (width<=1100px){.app{padding:20px 24px}.stage{gap:16px}.tab-name{display:none}}
