:root{--bg: #14161a;--panel: rgba(26, 29, 34, .92);--panel-solid: #1a1d22;--edge: rgba(255, 255, 255, .09);--text: #e8e4dc;--muted: #9aa0a8;--accent: #e0a355;--accent-dim: rgba(224, 163, 85, .16);--good: #7fe3a5;--bad: #ff6b5c;--radius: 10px;--shadow: 0 10px 30px rgba(0, 0, 0, .45);font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;-webkit-font-smoothing:antialiased}#app{position:fixed;inset:0}.werkbank-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none}.ui-layer{position:absolute;inset:0;pointer-events:none}.ui-layer>*{pointer-events:auto}.modebar{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;gap:4px;padding:4px;background:var(--panel);border:1px solid var(--edge);border-radius:999px;backdrop-filter:blur(14px);box-shadow:var(--shadow)}.modebar button{appearance:none;border:0;background:transparent;color:var(--muted);padding:7px 15px;border-radius:999px;font:inherit;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .14s ease,color .14s ease}.modebar button:hover:not(.active):not(:disabled){color:var(--text);background:#ffffff0d}.modebar button.active{background:var(--accent);color:#221a10}.modebar button:disabled{opacity:.32;cursor:default}.modebar .key{opacity:.55;margin-left:7px;font-size:11px}.palette{position:absolute;top:68px;left:14px;width:208px;max-height:calc(100% - 150px);overflow-y:auto;padding:10px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.palette h3{margin:2px 0 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.palette .tool,.panel .tool{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px;appearance:none;border:1px solid transparent;background:transparent;color:var(--text);padding:7px 9px;border-radius:7px;font:inherit;text-align:left;cursor:pointer}.palette .tool:hover,.panel .tool:hover{background:#ffffff0d}.palette .tool.active,.panel .tool.active{background:var(--accent-dim);border-color:#e0a35573}.palette .tool .variant,.panel .tool .variant{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.palette .sep,.panel .sep{height:1px;background:var(--edge);margin:9px 2px}.panel{position:absolute;right:14px;width:250px;padding:12px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.panel h3{margin:0 0 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.panel.driver{top:68px}.panel .row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:6px 0}.panel .row label{color:var(--muted)}.panel .value{font-variant-numeric:tabular-nums;font-weight:600}input[type=range]{width:100%;accent-color:var(--accent)}.btnrow{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.btnrow>select.picker{min-width:0}button.action,.modal .btnrow button,.coach .btnrow button{flex:1;appearance:none;border:1px solid var(--edge);background:#ffffff0d;color:var(--text);padding:7px 10px;border-radius:7px;font:inherit;cursor:pointer}button.action:hover,.modal .btnrow button:hover,.coach .btnrow button:hover{background:#ffffff1a}.modal .btnrow button.primary,.coach .btnrow button.primary{background:var(--accent);border-color:var(--accent);color:#1b1206;font-weight:600}.coach .btnrow{margin-top:8px}.coach .btnrow button{flex:0 0 auto;padding:5px 12px;font-size:12px}button.action.primary{background:var(--accent);border-color:transparent;color:#221a10;font-weight:600}button.action:disabled{opacity:.35;cursor:default}.statusbar{position:absolute;left:14px;right:14px;bottom:12px;display:flex;align-items:center;gap:18px;padding:8px 14px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);backdrop-filter:blur(14px);box-shadow:var(--shadow);font-variant-numeric:tabular-nums}.statusbar .hint{color:var(--muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statusbar .stat{color:var(--muted)}.statusbar .stat b{color:var(--text);font-weight:600;margin-left:5px}.toasts{position:absolute;bottom:58px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.toast{padding:8px 14px;border-radius:8px;background:#1c1f24f2;border:1px solid var(--edge);box-shadow:var(--shadow);animation:toast-in .18s ease;max-width:60vw}.toast.bad{border-color:#ff6b5c80;color:#ffd9d4}.toast.good{border-color:#7fe3a573}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:9px}::-webkit-scrollbar-track{background:transparent}.consist{max-height:180px;overflow-y:auto;margin-bottom:6px}.tool.cut{justify-content:center;padding:3px 10px;margin:1px 0 1px 18px;font-size:11px;color:var(--muted);background:transparent;border-style:dashed}.tool.cut:hover{color:var(--text);border-color:var(--accent);background:#ffffff0d}select.picker{flex:2;appearance:none;border:1px solid var(--edge);background:#ffffff0d;color:var(--text);padding:7px 10px;border-radius:7px;font:inherit;cursor:pointer}select.picker option{background:var(--panel-solid);color:var(--text)}.panel-canvas{position:absolute;inset:0;display:block;background:#12151a;cursor:crosshair;z-index:0}.modebar,.palette,.driver,.status,.toasts{z-index:1}.palette .grouplabel{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f073;margin:8px 0 2px}.statusbar .hint.bad{color:#f2a08c}.modal-backdrop{position:absolute;inset:0;display:grid;place-items:center;background:#080b0e8c;backdrop-filter:blur(3px);pointer-events:auto;z-index:40}.modal{width:min(460px,calc(100vw - 48px));padding:22px 24px 18px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow)}.modal h2{margin:0 0 6px;font-size:18px;letter-spacing:.01em}.modal p{margin:0 0 16px;font-size:13px;line-height:1.5;color:var(--muted)}.coach{position:absolute;left:50%;bottom:74px;transform:translate(-50%);width:min(520px,calc(100vw - 48px));padding:14px 18px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow);pointer-events:auto;z-index:30}.coach .step{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#e2e8f073}.coach h3{margin:3px 0 4px;font-size:15px}.coach p{margin:0 0 10px;font-size:12.5px;line-height:1.45;color:var(--muted)}.coach .bar{height:3px;border-radius:2px;background:#ffffff1a;overflow:hidden}.coach .bar>i{display:block;height:100%;background:var(--accent);transition:width .25s ease}.coach.done h3{color:#8fe0a0}.palette.wide{width:300px}.palette .row{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:6px 0}.palette .row label{color:var(--muted);white-space:nowrap}.palette .row .value{color:var(--text);white-space:nowrap}.palette .consist .row{margin:3px 0}.service{border:1px solid var(--edge);border-radius:8px;padding:6px 8px;margin-bottom:8px;background:#ffffff06}.service.focus{border-color:var(--accent);background:#ffffff0e}.palette .row.conflict{display:block;font-size:11px;line-height:1.35;color:var(--accent);border-left:2px solid var(--accent);padding-left:7px;margin:5px 0}.call{display:flex;align-items:center;gap:4px;padding:2px 0}.callname{flex:1 1 auto;min-width:4.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text)}.delay{font-size:11px;color:var(--muted);white-space:nowrap}input.timefield{width:4.4em;flex:0 0 auto;text-align:center;font-variant-numeric:tabular-nums}input.namefield{flex:1 1 auto;min-width:0}input.timefield,input.namefield{border:1px solid var(--edge);background:#ffffff0d;color:var(--text);padding:4px 6px;border-radius:6px;font:inherit;font-size:12px}input.timefield:focus,input.namefield:focus{outline:none;border-color:var(--accent)}.row.speeds{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-start}.row.speeds button{flex:0 0 auto;min-width:46px}
