:root{color-scheme:light;font-family:Avenir Next,Trebuchet MS,sans-serif;--bg: #faf7f2;--bg-elevated: rgba(255, 255, 255, .9);--bg-panel: rgba(255, 255, 255, .96);--bg-panel-strong: rgba(255, 255, 255, .98);--line: rgba(43, 46, 51, .14);--line-strong: rgba(43, 46, 51, .3);--text: #2b2e33;--text-muted: #6b6f73;--healthy: #3a5f44;--healthy-strong: #2e4a35;--shock: #bf6a2c;--failure: #a6291f;--accent: #3a5f44;--value: #b8860b;--brand-glow: rgba(61, 90, 68, .05);--shadow: 0 20px 50px rgba(43, 46, 51, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(circle at top left,rgba(61,90,68,.04),transparent 28%),var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.app-shell{position:relative;min-height:100vh;overflow:hidden}.app-shell__ambient{position:absolute;inset:0;background:radial-gradient(circle at 50% -10%,var(--brand-glow),transparent 38%);pointer-events:none;transition:background .24s ease}.app-shell__content{position:relative;max-width:1480px;margin:0 auto;padding:24px 22px 32px}.app-shell__header,.app-shell__overview,.app-shell__flow,.app-shell__dock,.app-shell__banner{position:relative;z-index:1}.simulator-tabs{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:18px;padding:10px 14px;border:1px solid var(--line);border-radius:20px;background:#ffffffd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.simulator-tabs__brand{display:flex;flex-direction:column;gap:2px;padding-right:14px;margin-right:4px;border-right:1px solid var(--line)}.simulator-tabs__eyeline{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--healthy)}.simulator-tabs__brand strong{font-size:.98rem;letter-spacing:-.02em;color:var(--text)}.simulator-tabs__list{display:flex;gap:8px;flex-wrap:wrap;flex:1}.simulator-tab{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border:1px solid var(--line);border-radius:14px;background:#2b2e3308;color:var(--text-muted);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.simulator-tab:hover{transform:translateY(-1px);border-color:var(--line-strong)}.simulator-tab--active{color:var(--text);border-color:var(--tab-accent, var(--accent));background:color-mix(in srgb,var(--tab-accent, var(--accent)) 12%,transparent)}.simulator-tab__text{display:flex;flex-direction:column;gap:2px;text-align:left}.simulator-tab__name{font-size:.92rem;font-weight:700;letter-spacing:-.01em}.simulator-tab__meta{display:inline-flex;align-items:center;gap:6px;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.simulator-tab__dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.simulator-tab__dot--running{background:var(--accent);box-shadow:0 0 8px var(--accent)}.simulator-tab__dot--error{background:var(--failure)}.simulator-tab__dot--completed,.simulator-tab__dot--stopped{background:var(--shock)}.simulator-logo{display:block;flex-shrink:0}.control-bar{display:grid;grid-template-columns:minmax(280px,1.4fr) minmax(420px,1fr) auto;gap:16px;align-items:stretch;padding:22px 24px;border:1px solid rgba(43,46,51,.12);border-radius:26px;background:linear-gradient(180deg,#fffffff7,#fdfbf8f2);box-shadow:var(--shadow)}.control-bar__identity{display:flex;align-items:center;gap:14px}.config-editor{grid-column:1 / -1;display:grid;gap:14px;padding:16px;border:1px solid rgba(43,46,51,.14);border-radius:18px;background:#2b2e3305}.config-editor__header,.config-editor__actions{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.config-editor__header span,.config-editor__grid span{display:block;color:var(--text-muted);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}.config-editor__header strong{display:block;margin-top:6px;color:var(--text);font-size:1rem;text-transform:uppercase}.config-editor__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.config-editor__grid label{display:grid;gap:7px}.config-editor__wide{grid-column:span 2}.config-editor input,.config-editor select{width:100%;min-width:0;border:1px solid rgba(43,46,51,.16);border-radius:12px;padding:11px 12px;color:var(--text);background:#2b2e3308;outline:none}.config-editor input:focus,.config-editor select:focus{border-color:#3a5f4480}.config-editor input:disabled,.config-editor select:disabled{opacity:.58}.config-editor__empty{margin:0;color:var(--text-muted)}.control-bar__brand h1{margin:0;font-size:clamp(1.8rem,3vw,3rem);line-height:1;letter-spacing:-.05em;max-width:11ch}.control-bar__eyeline,.flow-panel__caption,.bottom-dock__caption{margin:0 0 10px;font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.control-bar__description{max-width:42ch;margin:12px 0 0;color:var(--text-muted);line-height:1.45;font-size:.96rem}.control-bar__stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.control-bar__stat,.overview-card,.module-card,.module-detail,.telemetry-card,.status-banner,.bottom-dock{border:1px solid var(--line);background:var(--bg-panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.control-bar__stat{padding:14px 15px;border-radius:16px}.control-bar__stat span,.overview-card span,.telemetry-card span,.module-card span,.module-detail span{display:block;color:var(--text-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.12em}.control-bar__stat strong{display:block;margin-top:8px;font-size:1rem}.control-bar__actions{display:flex;flex-direction:column;gap:12px;justify-content:center;min-width:220px}.button{appearance:none;border:0;border-radius:999px;padding:13px 18px;cursor:pointer;font-weight:700;letter-spacing:.02em;transition:transform .16s ease,opacity .16s ease,background .16s ease}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed}.button--primary{color:#fff;background:linear-gradient(135deg,var(--healthy),var(--healthy-strong))}.button--secondary,.button--ghost{color:var(--text);background:#2b2e3308;border:1px solid rgba(43,46,51,.1)}.button--danger{color:#fff;background:#a6291f1a;border:1px solid rgba(166,41,31,.32)}.button--file{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.button--file[aria-disabled=true]{opacity:.55;cursor:not-allowed}.button--file[aria-disabled=true] span{pointer-events:none}.control-bar__upload-input{position:absolute;inset:0;opacity:0;cursor:pointer}.control-bar__upload-input:disabled{cursor:not-allowed}.control-bar__config-path{margin:0;max-width:220px;color:var(--text-muted);font-size:.82rem;line-height:1.4;word-break:break-word}.status-banner{margin-top:18px;padding:16px 18px;border-radius:20px;display:flex;gap:16px;align-items:center;justify-content:space-between}.status-banner strong{display:block;margin-bottom:6px}.status-banner p{margin:0;color:var(--text-muted)}.overview-grid{margin-top:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.overview-card{padding:16px 18px 18px;border-radius:18px}.overview-card strong{display:block;margin:10px 0 6px;font-size:clamp(1.3rem,1.5vw,1.8rem);letter-spacing:-.04em}.overview-card p{margin:0;color:var(--text-muted);line-height:1.35;font-size:.92rem}.overview-card--status{background:radial-gradient(circle at top right,var(--brand-glow),transparent 30%),var(--bg-panel)}.flow-panel{margin-top:18px;position:relative;padding:18px;border-radius:26px;border:1px solid var(--line);background:radial-gradient(circle at 20% 20%,var(--brand-glow),transparent 30%),linear-gradient(180deg,#fffffffa,#fdfbf8f7);box-shadow:var(--shadow);overflow:hidden}.flow-panel__stage{display:grid;grid-template-columns:minmax(0,1fr) 336px;gap:20px;margin-top:16px;align-items:start}.flow-panel__heading,.bottom-dock__header{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;flex-wrap:wrap}.flow-panel__heading h2,.bottom-dock__header h2{margin:0;font-size:clamp(1.2rem,1.5vw,1.6rem);letter-spacing:-.04em}.flow-panel__status{margin:0;max-width:42ch;color:var(--text-muted);text-align:right;font-size:.92rem;line-height:1.45}.flow-panel__canvas{position:relative;min-height:520px;border-radius:22px;border:1px solid rgba(43,46,51,.06);background:linear-gradient(180deg,rgba(43,46,51,.012),transparent 22%),linear-gradient(90deg,rgba(43,46,51,.025) 1px,transparent 1px),linear-gradient(180deg,rgba(43,46,51,.025) 1px,transparent 1px),#fdfbf8;background-size:auto,96px 96px,96px 96px,auto;overflow:hidden}.flow-panel__canvas svg{display:block;width:100%;height:auto}.flow-link{fill:none;stroke-linecap:round}.flow-link--base{opacity:.18}.flow-link--pulse{opacity:.88;stroke-dasharray:56 148;animation:heartbeat 4.8s linear infinite}.flow-link--co2{stroke:url(#co2Pulse)}.flow-link--steam{stroke:url(#steamPulse)}.flow-link--energy{stroke:url(#energyPulse)}.flow-link--materials{stroke:url(#materialsPulse)}.flow-link--co2.flow-link--pulse{filter:drop-shadow(0 0 6px rgba(61,90,68,.32))}.flow-link--steam.flow-link--pulse{filter:drop-shadow(0 0 6px rgba(130,203,255,.28))}.flow-link--energy.flow-link--pulse{filter:drop-shadow(0 0 6px rgba(255,193,111,.28))}.flow-link--materials.flow-link--pulse{filter:drop-shadow(0 0 6px rgba(208,227,140,.28))}.flow-link--inactive{stroke:#8c857a52;stroke-dasharray:3 5;opacity:.3}.flow-link--margin{fill:none;stroke:#a8bad257;stroke-dasharray:10 14}.flow-link__label{fill:var(--text-muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-anchor:middle}.flow-link__label--steam,.flow-link__label--margin{fill:#a8c4dbeb}.flow-lane__label{fill:#3a5f44eb;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.flow-lane__label--steam{fill:#8ed6ffe6}.flow-node{stroke:#2b2e331a;stroke-width:2px}.flow-node--module{fill:#fdfbf8fa}.flow-node--healthy{stroke:#3d5a44bf}.flow-node--shock{stroke:#bf6a2cbf}.flow-node--failure{stroke:#a6291fcc}.flow-node--idle{stroke:#8c857a66}.flow-node--steam{stroke:#8ed8ffb8}.module-ring{fill:none;stroke-width:8px;opacity:.18;transform-origin:center;animation:ringPulse 4.8s ease-in-out infinite}.module-ring--healthy{stroke:#3d5a4442}.module-ring--shock{stroke:#bf6a2c47}.module-ring--failure{stroke:#a6291f4d}.module-ring--idle{stroke:#8c857a2e}.module-ring--steam{stroke:#8ed8ff47}.flow-node--orb{fill:#fff}.flow-node__title{fill:var(--text);font-size:18px;font-weight:700}.flow-node__title--module,.flow-node__title--orb{font-size:16px}.flow-node__subtitle{fill:var(--text-muted);font-size:12px;text-transform:capitalize}.flow-node__subtitle--module,.flow-node__subtitle--orb{font-size:12px}.flow-node__title--centered,.flow-node__subtitle--centered{text-anchor:middle}.flow-node__metric-label,.flow-node__metric-value{fill:var(--text-muted);font-size:12px}.flow-node__metric-value{fill:var(--text);font-weight:700;text-anchor:end}.flow-chip{cursor:pointer;outline:none}.flow-chip rect{fill:#fff;stroke-width:1.75px;transition:transform .16s ease,fill .16s ease,stroke .16s ease}.flow-chip:hover rect,.flow-chip:focus-visible rect{transform:translateY(-1px)}.flow-chip--capture rect{stroke:#3d5a4480}.flow-chip--steam rect{stroke:#8ed8ff7a}.flow-chip--energy rect{stroke:#ffc16f7a}.flow-chip--materials rect{stroke:#d0e38c75}.flow-chip--loss rect{stroke:#ff84847a}.flow-chip--support rect{stroke:#a8bad257}.flow-chip--selected rect{fill:#fdfbf8}.flow-chip--disabled{opacity:1}.flow-chip--disabled rect{stroke:#8c857a66;stroke-dasharray:3 5}.flow-chip--disabled .flow-chip__status-dot{fill:#b4ada2}.flow-chip--capture.flow-chip--selected rect{stroke:#3d5a44d9}.flow-chip--steam.flow-chip--selected rect{stroke:#8ed8ffdb}.flow-chip--energy.flow-chip--selected rect{stroke:#ffc16fe0}.flow-chip--materials.flow-chip--selected rect{stroke:#d0e38cdb}.flow-chip--loss.flow-chip--selected rect{stroke:#ff8484e0}.flow-chip--support.flow-chip--selected rect{stroke:#a8bad2cc}.flow-chip__eyebrow{fill:var(--text-muted);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.flow-chip__title{fill:var(--text);font-size:16px;font-weight:700}.flow-chip__status-dot{fill:var(--accent)}.flow-chip--steam .flow-chip__status-dot{fill:#8ed8ff}.flow-chip--energy .flow-chip__status-dot{fill:#ffc16f}.flow-chip--materials .flow-chip__status-dot{fill:#d0e38c}.flow-chip--loss .flow-chip__status-dot{fill:#ff8484}.flow-chip--support .flow-chip__status-dot{fill:#a8bad2}.flow-inspector{display:grid;gap:8px;align-content:start;padding:18px;border-radius:22px;border:1px solid rgba(43,46,51,.13);background:radial-gradient(circle at top right,rgba(61,90,68,.04),transparent 30%),linear-gradient(180deg,#fffffffa,#fdfbf8f5);min-width:0;position:sticky;top:18px}.flow-inspector__header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.flow-inspector__header h3{margin:8px 0 0;font-size:1.5rem;line-height:1.05;letter-spacing:-.04em}.flow-inspector__eyebrow{display:inline-block;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}.flow-inspector__eyebrow--capture{color:var(--healthy)}.flow-inspector__eyebrow--steam{color:#4a90b8}.flow-inspector__eyebrow--support{color:var(--shock)}.flow-inspector__eyebrow--energy{color:#b8720f}.flow-inspector__eyebrow--materials{color:#7a8f3f}.flow-inspector__eyebrow--loss{color:#a6291f}.flow-inspector__summary{margin:0;color:var(--text-muted);line-height:1.5;font-size:.94rem}.flow-inspector__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.flow-inspector__grid dt{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}.flow-inspector__grid dd{margin:8px 0 0;color:var(--text);font-size:1rem;font-weight:700;line-height:1.35}.flow-inspector__footer{display:flex;flex-wrap:wrap;gap:8px}.flow-inspector__footer span{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;border:1px solid rgba(43,46,51,.06);background:#2b2e3308;color:var(--text-muted);font-size:.78rem;letter-spacing:.06em}.module-card,.module-detail{padding:16px;border-radius:16px;box-shadow:0 8px 20px #2b2e330f}.module-card__header,.module-detail__header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.module-card__header h3,.module-detail__header h3{margin:6px 0 0;font-size:1rem}.module-card__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 0}.module-card__metrics>div:last-child{grid-column:1 / -1}.module-detail__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 0}.module-card__metrics dt,.module-detail__grid dt{color:var(--text-muted);font-size:.77rem;text-transform:uppercase;letter-spacing:.12em}.module-card__metrics dd,.module-detail__grid dd{margin:8px 0 0;font-size:.93rem;font-weight:700}.module-card__flags{margin:14px 0 0;color:var(--text-muted);font-size:.88rem;line-height:1.4}.status-chip{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:#2b2e330d;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.status-chip--running{color:var(--healthy)}.status-chip--shock{color:var(--shock)}.status-chip--failed,.status-chip--error{color:var(--failure)}.status-chip--stopped,.status-chip--completed,.status-chip--idle,.status-chip--disabled{color:var(--text-muted)}.bottom-dock{margin-top:18px;padding:18px 18px 14px;border-radius:24px;box-shadow:var(--shadow)}.bottom-dock__meta{margin-left:auto;color:var(--text-muted);font-size:.84rem;letter-spacing:.03em}.bottom-dock__tabs{display:inline-flex;gap:8px;padding:4px;border-radius:999px;background:#fff;border:1px solid var(--line)}.dock-tab{appearance:none;border:0;background:transparent;color:var(--text-muted);padding:9px 14px;border-radius:999px;text-transform:capitalize;cursor:pointer}.dock-tab--active{color:var(--text);background:#3d5a4424}.bottom-dock__telemetry{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.telemetry-card{padding:14px;border-radius:18px}.telemetry-card__header strong{display:block;margin-top:7px;font-size:1.2rem;letter-spacing:-.04em}.telemetry-card__swing{display:block;margin-top:6px;color:var(--text-muted);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.telemetry-card__svg{display:block;width:100%;margin-top:10px}.telemetry-card__axis{stroke:#2b2e331a;stroke-width:2}.telemetry-card__label{fill:var(--text-muted);font-size:11px}.bottom-dock__table-wrap{margin-top:18px;overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:860px}.data-table th,.data-table td{padding:14px 10px;text-align:left;border-bottom:1px solid rgba(43,46,51,.08)}.data-table thead th{color:var(--text-muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.12em}.data-table__empty,.bottom-dock__empty{padding:24px 8px;color:var(--text-muted)}.bottom-dock__modules{margin-top:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}@keyframes heartbeat{0%{stroke-dashoffset:0}to{stroke-dashoffset:-408}}@keyframes ringPulse{0%,to{opacity:.12;transform:scale(.992)}45%{opacity:.24;transform:scale(1.008)}}@media(max-width:1120px){.control-bar{grid-template-columns:1fr}.config-editor__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-panel__stage{grid-template-columns:1fr}.flow-panel__status{text-align:left;max-width:none}.overview-grid,.bottom-dock__telemetry{grid-template-columns:repeat(2,minmax(0,1fr))}.flow-inspector{position:static}}@media(max-width:760px){.app-shell__content{padding:18px 14px 22px}.overview-grid,.bottom-dock__telemetry,.config-editor__grid,.flow-inspector__grid,.module-detail__grid,.module-card__metrics{grid-template-columns:1fr}.config-editor__wide{grid-column:auto}.flow-panel,.control-bar,.bottom-dock{border-radius:20px;padding:16px}.flow-panel__heading,.bottom-dock__header,.status-banner{flex-direction:column;align-items:stretch}.control-bar__actions{flex-direction:row}.flow-panel__canvas{min-height:auto}.flow-chip__title{font-size:18px}}@media(prefers-reduced-motion:reduce){.flow-link--pulse,.module-ring{animation:none}.button{transition:none}}.dock-tab:disabled{opacity:.4;cursor:not-allowed}.dock-tab:disabled:hover{color:var(--text-muted)}.simulator-tabs .dock-tab{text-transform:none}.full-bleed{width:100vw;margin-left:calc(50% - 50vw)}.pipeline-overview .flow-panel__stage{grid-template-columns:minmax(0,1fr) 300px}.pipeline-overview .flow-inspector{min-height:160px}.pipeline-overview .flow-node__title--orb{font-size:13px}.pipeline-overview .flow-node__subtitle--orb{font-size:10px}.pipeline-overview .flow-node-square{fill:none;stroke:#2b2e33c7;stroke-width:1.5px}.pipeline-overview .flow-node-touch{fill:var(--value)}.pipeline-overview .flow-link--co2{stroke:#3d5a44d9}@keyframes pipelineFlowReveal{0%{opacity:0}to{opacity:.88}}@keyframes pipelineFlowMove{0%{stroke-dashoffset:0}to{stroke-dashoffset:-408}}.pipeline-overview .flow-link--pulse{opacity:0;animation-name:pipelineFlowReveal,pipelineFlowMove;animation-duration:.4s,4.8s;animation-timing-function:linear,linear;animation-iteration-count:1,infinite;animation-fill-mode:forwards,none}.top-bar__scope{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.top-bar__scope-label{display:inline-flex;align-items:center;padding:8px 14px;border-radius:10px;background:#3d5a441a;border:1px solid rgba(61,90,68,.28);font-size:.86rem;font-weight:700;color:var(--text)}.top-bar__scope-trigger{appearance:none;border:1px solid var(--line);background:#fff;border-radius:10px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:.9rem;color:var(--text-muted)}.top-bar__scope-trigger:hover{border-color:var(--line-strong);color:var(--text)}.scope-menu{position:fixed;z-index:1000;padding:6px;border-radius:14px;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px}.scope-menu__item{appearance:none;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:9px;font-size:.86rem;color:var(--text);cursor:pointer}.scope-menu__item:hover{background:#2b2e330d}.scope-menu__item--active{background:#3d5a441f;font-weight:700}@keyframes touchChase{0%,to{opacity:1}2%{opacity:1}6%{opacity:0}9%{opacity:0}13%{opacity:1}}.pipeline-overview .flow-node-touch--active{animation:touchChase 4s ease-in-out infinite}html{scrollbar-gutter:stable}
