:root{--bg: #f5f6f8;--panel: #ffffff;--ink: #14161a;--ink-soft: #3d4149;--muted: #8a909a;--line: #eceef1;--line-strong: #e2e5ea;--accent: #3d7df2;--accent-soft: #eaf1fe;--radius: 14px;--shadow-sm: 0 1px 2px rgba(20, 22, 26, .06);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}.app{min-height:100vh;display:flex;flex-direction:column}header{display:flex;align-items:baseline;gap:14px;padding:15px 24px;border-bottom:1px solid var(--line);background:var(--panel)}.brand{font-weight:700;font-size:17px;letter-spacing:-.02em}.brand span{color:var(--accent);margin:0 5px}.hint{color:var(--muted);font-size:12.5px;letter-spacing:.01em}main{flex:1;display:grid;grid-template-columns:1fr 372px}@media (max-width: 900px){main{grid-template-columns:1fr}}.stage-wrap{padding:28px;display:flex;flex-direction:column;gap:16px}.stage{flex:1;min-height:420px;border-radius:var(--radius);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;padding:6%}.stage svg{width:100%;height:100%;max-height:60vh;overflow:visible}.stage.bg-positive{background:#fafafa}.stage.bg-inverted{background:#0b0b0c}.transport{display:flex;align-items:center;gap:12px}.transport button{border:1px solid var(--line-strong);background:var(--panel);border-radius:9px;padding:8px 13px;font-size:13px;cursor:pointer;color:var(--ink-soft);transition:border-color .15s,color .15s}.transport button:hover{border-color:var(--accent);color:var(--accent)}.scrub{flex:1;height:4px;background:var(--line-strong);border-radius:4px;overflow:hidden}.scrub-fill{height:100%;background:var(--accent);border-radius:4px}.dur{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;min-width:34px;text-align:right}.panel{border-left:1px solid var(--line);background:var(--panel);padding:8px 24px 32px;overflow-y:auto}.group{padding:20px 0;border-bottom:1px solid var(--line)}.group:last-child{border-bottom:none}.ttl{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:14px}.ttl span{font-weight:500;text-transform:none;letter-spacing:0;opacity:.8}.row{display:flex;gap:8px;margin-bottom:8px}.row input{flex:1}.row input,.add{padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;font-size:14px;width:100%;color:var(--ink);background:var(--panel);transition:border-color .15s,box-shadow .15s}.row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.row input::placeholder{color:#bcc1c9}.mini{border:1px solid var(--line-strong);background:var(--panel);border-radius:10px;width:40px;flex:none;cursor:pointer;color:var(--muted);font-size:13px;transition:all .15s}.mini:hover{color:#ef4444;border-color:#f3c2c2;background:#fef5f5}.add{margin-top:2px;border-style:dashed;cursor:pointer;color:var(--accent);font-size:13px;font-weight:600;background:var(--panel)}.add:hover{border-color:var(--accent);background:var(--accent-soft)}.seg{display:flex;gap:3px;background:var(--bg);padding:3px;border-radius:11px}.seg button{flex:1;padding:8px 6px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);transition:background .15s,color .15s,box-shadow .15s}.seg button:hover:not(.on){color:var(--ink-soft)}.seg button.on{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-sm)}.seg.small{margin-top:10px}.seg.small button{padding:7px;font-size:12px}.chk{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink-soft);margin-top:11px;cursor:pointer}.chk input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.slider{display:grid;grid-template-columns:76px 1fr 40px;align-items:center;gap:12px;margin-bottom:13px;font-size:13px}.slider:last-child{margin-bottom:0}.slider>span{color:var(--ink-soft)}.slider b{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:500;text-align:right}.slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:16px;background:transparent;cursor:pointer;margin:0}.slider input[type=range]::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:var(--line-strong)}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;margin-top:-6px;border-radius:50%;background:var(--panel);border:2px solid var(--accent);box-shadow:var(--shadow-sm);transition:transform .12s}.slider input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.12)}.slider input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12);box-shadow:0 0 0 5px var(--accent-soft)}.slider input[type=range]::-moz-range-track{height:2px;border-radius:2px;background:var(--line-strong)}.slider input[type=range]::-moz-range-progress{height:2px;border-radius:2px;background:var(--line-strong)}.slider input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--panel);border:2px solid var(--accent);box-shadow:var(--shadow-sm)}.ex-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ex-grid button{padding:12px;border:1px solid var(--line-strong);background:var(--panel);border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-soft);transition:border-color .15s,color .15s,background .15s}.ex-grid button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.ex-grid button:disabled{opacity:.4;cursor:default}.note{font-size:11.5px;color:var(--muted);margin:12px 0 0;line-height:1.55}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c1080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:10}.modal{background:#fff;border-radius:16px;padding:30px 34px;text-align:center;min-width:264px;box-shadow:0 24px 70px #00000047}.modal .bar{height:5px;background:var(--line-strong);border-radius:4px;margin-top:16px;overflow:hidden}.modal .bar div{height:100%;background:var(--accent);border-radius:4px;transition:width .2s}.tiny{font-size:11px;color:var(--muted);margin-top:9px}.spin{width:26px;height:26px;border:3px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;margin:0 auto 14px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
