:root{--bg: #1c1c1e;--text: #f2f2f2;--muted: #b7b7b7;--line: #2a2a2d;--gp: #ffea00;--fan: #0071d4;--danger: #686868;--danger-text: #ffffff;--bg-radial-fan: rgba(255, 234, 0, .06);--bg-radial-gp: rgba(255, 234, 0, .1);--surface-chip: rgba(255, 255, 255, .04);--surface-card-start: rgba(34, 34, 37, .95);--surface-card-end: rgba(26, 26, 28, .95);--surface-card-header: rgba(40, 40, 43, .85);--surface-btn: rgba(255, 255, 255, .06);--surface-btn-hover: rgba(255, 255, 255, .12);--surface-btn-ghost: rgba(0, 0, 0, .18);--surface-danger: rgba(80, 80, 80, .29);--surface-input: rgba(22, 22, 24, .95);--surface-stat-pill: rgba(255, 255, 255, .08);--surface-tab: rgba(255, 255, 255, .03);--surface-lane: rgba(18, 18, 20, .72);--surface-segment: rgba(38, 38, 41, .78);--border-subtle: rgba(255, 255, 255, .06);--border-soft: rgba(255, 255, 255, .1);--border-btn: rgba(255, 255, 255, .14);--border-btn-hover: rgba(255, 255, 255, .24);--border-danger: rgba(125, 125, 125, .45);--border-input: rgba(255, 255, 255, .12);--border-input-focus: rgba(255, 234, 0, .6);--border-stat-pill: rgba(255, 255, 255, .2);--border-tab-active: rgba(255, 255, 255, .24);--border-segment: rgba(255, 255, 255, .14);--heading-text: #ffffff;--shadow-card: rgba(0, 0, 0, .45);--shadow-stat-pill: rgba(0, 0, 0, .35);--chart-grid-major: rgba(255, 255, 255, .08);--chart-grid-minor: rgba(255, 255, 255, .05);--chart-axis-text: rgba(242, 242, 242, .78);--chart-axis-border: rgba(255, 255, 255, .16);--chart-gp-fill: rgba(255, 234, 0, .28);--chart-gp-stroke: rgba(255, 234, 0, .95);--chart-fan-fill: rgba(0, 124, 212, .22);--chart-fan-stroke: rgba(0, 124, 212, .95);--chart-axis-label: rgba(242, 242, 242, .86)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:radial-gradient(1000px 520px at 0% -10%,var(--bg-radial-fan),transparent 62%),radial-gradient(1000px 620px at 100% 0%,var(--bg-radial-gp),transparent 66%),var(--bg);color:var(--text)}button,input{font:inherit}.page-header{max-width:1480px;margin:0 auto;padding:16px 20px 8px;display:flex;align-items:center;justify-content:flex-end;gap:14px}.page-logo{margin-right:auto;height:49px;width:auto;object-fit:contain}.page-header-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.io-status{font-size:12px;color:var(--muted);margin-right:6px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-input-hidden{display:none}main{padding:14px 20px 28px;display:grid;gap:16px;max-width:1480px;margin:0 auto}.card{border:1px solid var(--line);background:linear-gradient(180deg,var(--surface-card-start),var(--surface-card-end));border-radius:16px;overflow:hidden;box-shadow:0 12px 28px var(--shadow-card)}.card .card-hd{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface-card-header)}.card .card-hd .label{font-size:14px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#fff}.legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chart-hd-actions{display:inline-flex;align-items:center;gap:10px}.editor-hd-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.editor-hd-actions .btn{font-weight:500}.series-toggle{border:1px solid var(--border-btn);background:var(--surface-btn-ghost);color:var(--text);border-radius:999px;padding:5px 10px;display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.series-toggle.off{opacity:.55}.series-toggle:hover{border-color:var(--border-btn-hover)}.dot{width:10px;height:10px;border-radius:999px;display:inline-block}.dot.gp{background:var(--gp)}.dot.fan{background:var(--fan)}.timeline-wrap{position:relative;padding:14px 16px 16px}canvas{width:100%;height:236px;display:block;cursor:crosshair}.chart-probe-readout{position:absolute;top:20px;right:24px;border:1px solid var(--border-soft);background:#28282bf0;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:8px 10px;border-radius:10px;display:block;min-width:140px;pointer-events:none}.chart-probe-readout.locked{border-color:#ffffff6b}.chart-probe-body{display:flex;align-items:flex-start;gap:10px}.chart-probe-rows{display:grid;gap:4px}.chart-probe-time{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;margin-left:2px}.chart-probe-row{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:700}.chart-probe-row.gp{color:var(--gp)}.chart-probe-row.fan{color:var(--fan)}.chart-readout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border-subtle);background:#ffffff08}.chart-stat{padding:12px 16px 14px;text-align:center}.chart-stat+.chart-stat{border-left:1px solid var(--border-subtle)}.chart-stat-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.chart-stat-value{font-size:20px;line-height:1.1;font-weight:700;color:var(--text)}.btn{border:1px solid var(--border-btn);background:var(--surface-btn);color:var(--text);font-weight:700;font-size:13px;padding:9px 12px;border-radius:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;-webkit-user-select:none;user-select:none}.btn:hover{border-color:var(--border-btn-hover);background:var(--surface-btn-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:7px 9px;border-radius:10px}.btn.ghost{background:var(--surface-btn-ghost)}.page-header-actions .btn.ghost{background:var(--gp);border-color:#ffea00eb;color:#101114;font-weight:700;box-shadow:inset 0 1px #ffffff73}.page-header-actions .btn.ghost:hover{background:#fff04a;border-color:#fff04a}.btn.danger{border-color:var(--border-danger);color:var(--danger-text);background:var(--surface-danger)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#05080d9e;display:grid;place-items:center;padding:18px;z-index:1000}.confirm-dialog{width:min(460px,100%);border:1px solid var(--border-soft);border-radius:14px;background:linear-gradient(180deg,var(--surface-card-start),var(--surface-card-end));box-shadow:0 16px 34px #00000085;padding:16px}.confirm-title{color:#fff;font-size:18px;font-weight:800;letter-spacing:.03em}.confirm-message{margin:10px 0 0;color:var(--text);line-height:1.4;font-size:14px}.confirm-actions{margin-top:14px;display:flex;justify-content:flex-end;gap:8px}.icon-btn{min-width:36px;padding:6px}.eye-icon,.trash-icon,.plus-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.editor-card{border-color:var(--line)}.timeline-editor{display:grid;gap:14px;padding:14px 16px 10px}.timeline-lane{display:grid;gap:6px}.timeline-lane-label{font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.timeline-lane.gp .timeline-lane-label{color:#ffea00e6}.timeline-lane.fan .timeline-lane-label{color:#3aa0ffeb}.segment-strip{display:flex;align-items:center;align-content:flex-start;flex-wrap:wrap;gap:8px;min-height:60px;overflow:visible;white-space:normal;padding:9px;border-radius:12px;border:1px dashed var(--border-soft);background:var(--surface-lane)}.segment-strip.gp{border-color:#ffea0040}.segment-strip.fan{border-color:#3aa0ff47}.segment-chip{position:relative;flex:0 0 auto;border:1px solid var(--border-segment);background:var(--surface-segment);color:var(--text);border-radius:0;min-height:40px;padding:0 13px;font-size:14px;white-space:nowrap;cursor:grab;overflow:hidden}.segment-chip-label{position:relative;z-index:2;font-weight:700}.segment-chip.gp.hold{border-color:#ffea007a;background:linear-gradient(180deg,#ffea003d,#ffea001f);color:var(--text);width:184px}.segment-chip.fan.hold{border-color:#3aa0ff7a;background:linear-gradient(180deg,#3aa0ff3d,#3aa0ff1f);color:var(--text);width:184px}.segment-chip.ramp{background:transparent;width:78px}.segment-chip.ramp:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:0;opacity:.85}.segment-chip.hold.zero-hold{background:transparent}.segment-chip.gp.ramp{border-color:#ffea008c}.segment-chip.fan.ramp{border-color:#3aa0ff8c}.segment-chip.gp.ramp:before{background:linear-gradient(145deg,#ffea0073,#ffea002e)}.segment-chip.fan.ramp:before{background:linear-gradient(145deg,#3aa0ff73,#3aa0ff29)}.segment-chip.ramp-up:before{clip-path:polygon(0% 100%,100% 0%,100% 100%)}.segment-chip.ramp-down:before{clip-path:polygon(0% 0%,100% 100%,0% 100%)}.segment-chip.ramp-flat:before{clip-path:polygon(0% 62%,100% 62%,100% 100%,0% 100%)}.segment-chip.gp.selected{box-shadow:0 0 0 1px #ffea00f2,0 0 14px #ffea0033}.segment-chip.fan.selected{box-shadow:0 0 0 1px #3aa0fff2,0 0 14px #3aa0ff33}.segment-chip:active{cursor:grabbing}.segment-add{border:1px solid var(--border-btn);background:var(--surface-btn-ghost);color:var(--text);border-radius:0;min-width:40px;height:38px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.segment-add-wrap{position:relative;display:inline-flex}.segment-add-option{border:1px solid var(--border-btn);background:var(--surface-btn-ghost);color:#fff;border-radius:0;padding:6px 8px;font-size:13px;text-align:left;cursor:pointer}.segment-add-option:hover{border-color:var(--border-btn-hover);background:var(--surface-btn-hover)}.floating-add-menu{position:fixed;min-width:92px;border:1px solid var(--border-soft);background:#181c24f7;z-index:1200;padding:4px;display:grid;gap:4px;transform:translate(-100%,-100%)}.segment-add.gp{border-color:#ffea0059}.segment-add.fan{border-color:#3aa0ff59}.segment-add:hover{border-color:var(--border-btn-hover)}.edit-bar{min-height:60px;margin:0;border-top:1px solid var(--border-subtle);background:var(--surface-card-header);padding:11px 16px 13px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.edit-control{display:inline-flex;align-items:center;gap:10px;min-width:0}.duration-control{margin-right:8px}.throttle-control{margin-left:2px}.edit-control-label{font-size:15px;font-weight:700;color:#fff;white-space:nowrap}.edit-control-row{display:inline-flex;align-items:center;gap:10px}.edit-number{width:80px;padding:7px 9px;border-radius:9px;border:1px solid var(--border-input);background:var(--surface-input);color:var(--text);outline:none}.edit-number:focus{border-color:var(--border-input-focus)}.edit-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:186px;height:4px;border-radius:999px;background:#ffffff47;outline:none}.edit-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.25);cursor:pointer}.edit-slider::-moz-range-thumb{width:14px;height:14px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.25);cursor:pointer}.edit-slider::-moz-range-track{height:4px;border-radius:999px;background:#ffffff47}.edit-slider:disabled{opacity:.5}.edit-control.hidden{display:none}.edit-delete{margin-left:6px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}@media (max-width: 900px){.page-header{padding-top:12px;gap:8px}.page-logo{height:40px}.page-header-actions{width:100%;justify-content:flex-end}.io-status{max-width:100%;width:100%;order:3;margin-right:0}.chart-hd-actions{width:100%;justify-content:space-between;gap:8px}.editor-hd-actions{width:100%;justify-content:flex-end}.legend{flex-wrap:wrap}.chart-readout{grid-template-columns:1fr}.chart-stat+.chart-stat{border-left:none;border-top:1px solid var(--border-subtle)}.edit-delete{margin-left:0}}
