:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef1f4;--bg-soft:#f7f8fa;--surface:#fffc;--surface-solid:#fff;--surface-soft:#f6f6f3;--line:#0f172a14;--line-strong:#0f172a24;--ink:#101828;--ink-soft:#475467;--ink-muted:#667085;--accent:#1f5bd8;--accent-strong:#1849b5;--accent-soft:#1f5bd814;--ok:#0f766e;--ok-soft:#0f766e1a;--warning:#b26b19;--warning-soft:#b26b191a;--danger:#b42318;--danger-soft:#b423181a;--shadow-lg:0 24px 54px #0f172a14;--shadow-md:0 18px 36px #0f172a0d;color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#1f5bd812,#0000 28%),radial-gradient(circle at 90% 12%,#1118270d,#0000 24%),linear-gradient(#f7f8fb 0%,#eef1f4 100%);font-family:SF Pro Display,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--ink);background:0 0;margin:0}body:before{content:"";pointer-events:none;background-image:linear-gradient(#0f172a06 1px,#0000 1px),linear-gradient(90deg,#0f172a06 1px,#0000 1px);background-size:30px 30px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000002e,#0000 18% 82%,#0000002e);mask-image:linear-gradient(#0000002e,#0000 18% 82%,#0000002e)}button,input,select{font:inherit}button{cursor:pointer}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#ffffffeb;border-radius:16px;outline:none;padding:.82rem .92rem;transition:border-color .16s,box-shadow .16s,background .16s}input:focus,select:focus{border-color:#1f5bd859;box-shadow:0 0 0 4px #1f5bd814}input[type=range]{accent-color:var(--accent);padding:0}.app-shell{max-width:1720px;margin:0 auto;padding:28px 24px 42px}.page-hero,.panel-card,.visual-stage-card,.chart-card,.canvas-card,.metric-card,.remote-banner{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-md)}.page-hero{box-shadow:var(--shadow-lg);border-radius:28px;justify-content:space-between;align-items:flex-start;gap:18px;padding:24px 26px;display:flex;position:relative;overflow:visible}.hero-copy{gap:10px;display:grid}.hero-copy code{border:1px solid var(--line);background:#ffffffd6;border-radius:8px;padding:.08rem .38rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.84em}.hero-kicker,.card-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:8px;font-size:.72rem;font-weight:600;display:inline-flex}.hero-copy h1,.panel-head h2,.chart-head h3{margin:0}.hero-copy h1{letter-spacing:-.04em;font-size:clamp(2rem,3vw,2.7rem);line-height:1.02}.hero-meta,.hero-actions,.stage-topbar,.layer-switches,.stage-stats,.legend-row,.utility-row,.status-head,.panel-head{align-items:center;gap:12px;display:flex}.hero-meta{flex-wrap:wrap}.mode-chip,.state-chip,.panel-note{border:1px solid var(--line);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;justify-content:center;align-items:center;max-width:100%;min-height:30px;padding:.26rem .76rem;font-size:.75rem;display:inline-flex;overflow:hidden}.mode-chip,.panel-note,.state-chip.subtle{color:var(--ink-muted);background:#ffffffb3}.state-chip.ok{color:var(--ok);background:var(--ok-soft);border-color:#0f766e29}.state-chip.warning{color:var(--warning);background:var(--warning-soft);border-color:#b26b192e}.hero-actions{flex:760px;justify-items:end;gap:10px;min-width:0;display:grid;position:relative}.hero-toolbar{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:12px;width:100%;min-width:0;display:flex}.hero-view-switch{border:1px solid var(--line);background:#f8faffe0;border-radius:999px;align-items:center;gap:6px;padding:6px;display:inline-flex;box-shadow:inset 0 1px #fffc}.hero-select-field{flex:360px;align-items:center;min-width:260px;max-width:520px;display:flex}.hero-select-field select{border-radius:999px;width:100%;min-width:0;min-height:52px;padding:.72rem 3rem .72rem 1.15rem}.primary,.secondary,.mini-toggle,.segment{border:1px solid var(--line-strong);white-space:nowrap;border-radius:999px;min-height:50px;padding:.72rem 1.08rem;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s,color .16s}.primary:hover,.secondary:hover,.mini-toggle:hover,.segment:hover{transform:translateY(-1px)}.primary{color:#fff;background:linear-gradient(#1f5bd8,#1849b5);border-color:#1f5bd852;box-shadow:0 12px 24px #1f5bd82e}.secondary,.mini-toggle,.segment{color:var(--ink);background:#ffffffd1}.hero-toolbar>.primary,.hero-toolbar>.secondary{flex:none}.hero-view-switch .segment{min-height:42px;box-shadow:none;background:0 0;border-color:#0000;padding:.56rem .96rem}.hero-view-switch .segment.active{background:linear-gradient(#1f5bd81f,#1f5bd80f);border-color:#1f5bd838;box-shadow:0 8px 16px #1f5bd81a}.secondary.active,.mini-toggle.active,.segment.active{color:var(--accent-strong);background:var(--accent-soft);border-color:#1f5bd833}.primary:disabled,.secondary:disabled,.mini-toggle:disabled,.segment:disabled{cursor:not-allowed;opacity:.52;transform:none}.remote-banner{color:var(--ink-soft);border-radius:20px;margin-top:16px;padding:13px 16px}.hero-progress{border:1px solid var(--line);background:#ffffffc2;border-radius:20px;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:16px;width:100%;margin-top:16px;padding:14px 16px;display:grid}.hero-progress-inset{z-index:80;pointer-events:none;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#f8faffeb;border-radius:18px;grid-template-columns:1fr;gap:10px;width:min(420px,100vw - 36px);padding:11px 13px;position:fixed;bottom:20px;right:max(18px,50vw - 836px);box-shadow:0 22px 44px #11182729,inset 0 1px #ffffffd6}.hero-progress-copy,.hero-progress-meta{gap:6px;min-width:0;display:grid}.hero-progress-copy strong,.hero-progress-meta span{color:var(--ink)}.hero-progress-copy span,.hero-progress-meta span{font-size:.84rem}.hero-progress-copy span{color:var(--ink-soft)}.hero-progress-meta{align-content:center;justify-items:end}.hero-progress-inset .hero-progress-meta{justify-items:stretch}.hero-progress-track{background:#0f172a0f;border:1px solid #0f172a14;border-radius:999px;width:min(100%,320px);height:10px;position:relative;overflow:hidden}.hero-progress-inset .hero-progress-track{width:100%}.hero-progress-fill{border-radius:inherit;position:absolute;inset:0}.hero-progress-running{background:linear-gradient(#1f5bd814,#ffffffdb)}.hero-progress-running .hero-progress-fill{background:linear-gradient(90deg,#1f5bd838,#1f5bd8eb,#6ca0ff47);width:40%;animation:1.35s ease-in-out infinite hero-progress-slide}.hero-progress-ok{background:linear-gradient(#0f766e14,#ffffffdb)}.hero-progress-ok .hero-progress-fill{background:linear-gradient(90deg,#0f766ee0,#5bb7a2eb);width:100%}.hero-progress-danger{background:linear-gradient(#b4231814,#ffffffdb)}.hero-progress-danger .hero-progress-fill{background:linear-gradient(90deg,#b42318eb,#eb5f54eb);width:100%}.hero-progress-idle,.hero-progress-warning{background:#ffffffc2}.hero-progress-idle .hero-progress-fill,.hero-progress-warning .hero-progress-fill{background:linear-gradient(90deg,#94a3b873,#94a3b8d1);width:24%}.workspace-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;margin-top:18px;display:grid}.workspace-grid>*,.chart-row>*,.stage-column,.support-grid,.support-column,.panel-card,.visual-stage-card,.chart-card,.canvas-card{min-width:0}.stage-column,.support-grid,.support-column,.chart-row,.field-grid,.metric-grid,.utility-group,.status-list{gap:16px;display:grid}.stage-column{width:min(100%,1600px);margin:0 auto}.support-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;width:min(100%,1600px);margin:0 auto}.support-grid>.support-panel-card{flex-direction:column;height:100%;display:flex}.panel-card,.visual-stage-card,.chart-card,.canvas-card{border-radius:28px;padding:18px;overflow:hidden}.panel-head.compact{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.panel-head.compact>div{gap:5px;display:grid}.panel-head h2{font-size:1.06rem}.segmented-control{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.segmented-control.two-way{grid-template-columns:repeat(2,minmax(0,1fr))}.segment{padding-left:.85rem;padding-right:.85rem}label{color:var(--ink-soft);gap:8px;font-size:.92rem;display:grid}.field-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.span-2{grid-column:1/-1}.range-grid{margin-top:2px}.visual-stage-card{padding:18px}.stage-focus-card{padding:20px 22px 18px}.stage-topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.layer-switches,.stage-stats{flex-wrap:wrap}.stage-stats{justify-content:flex-end}.stage-stats div{border:1px solid var(--line);background:#ffffffb8;border-radius:18px;min-width:132px;padding:12px 13px}.stage-stats span,.metric-card header,.status-card p,.empty-state,.data-list dt,.canvas-hint,.legend-caption,.axis-text,.hero-kicker,.card-kicker{color:var(--ink-muted)}.stage-stats span,.metric-card header,.data-list dt{letter-spacing:.04em;font-size:.78rem;display:block}.stage-stats strong,.metric-card strong,.status-card strong,.data-list dd{color:var(--ink);display:block}.canvas-card{padding:14px}.field-canvas-shell{background:linear-gradient(#fafaf7 0%,#f3f4f0 100%);border:1px solid #0f172a12;border-radius:24px;width:100%;position:relative;overflow:hidden}.field-canvas-bitmap,.field-canvas-overlay{width:100%;height:100%;position:absolute;inset:0}.field-canvas-bitmap{display:block}.field-canvas-overlay{pointer-events:auto}.canvas-footer,.legend-scale,.legend-block{align-items:center;gap:12px;display:flex}.canvas-footer{flex-wrap:wrap;justify-content:space-between;margin-top:14px;padding:2px 4px 0}.legend-block{flex-wrap:wrap}.legend-scale{gap:10px}.legend-scale span,.legend-scale small,.canvas-hint{font-size:.78rem}.legend-gradient{border:1px solid #0f172a14;border-radius:999px;width:148px;height:10px}.chart-row{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.chart-head>div:first-child{gap:5px;display:grid}.chart-head h3{font-size:1.02rem}.legend-row{flex-wrap:wrap;justify-content:flex-end}.legend-pill{border:1px solid var(--line);color:var(--ink-soft);background:#ffffffd6;border-radius:999px;align-items:center;gap:8px;padding:.38rem .68rem;font-size:.8rem;display:inline-flex}.legend-pill i{border-radius:999px;width:9px;height:9px;display:inline-block}.line-chart{width:100%;display:block}.grid-line{stroke:#0f172a0f;stroke-width:1px}.axis-line{stroke:#0f172a24;stroke-width:1.2px}.axis-line.subtle{stroke:#0f172a14}.axis-text{font-size:11px}.axis-text-right{fill:#8b5e1c}.metric-grid.compact-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{border-radius:22px;padding:16px}.metric-card strong{margin-top:6px;font-size:1rem;line-height:1.2}.full-width{width:100%}.probe-panel-card .full-width{margin:6px 0 10px}.data-list{gap:10px;margin:14px 0 0;display:grid}.data-list div{border:1px solid var(--line);background:#ffffffbd;border-radius:18px;gap:4px;padding:12px 14px;display:grid}.data-list dd{margin:0;font-weight:600}.inline-metric-list{gap:8px}.inline-metric-list div{grid-template-columns:auto 1fr;align-items:center;gap:12px;padding:10px 14px}.inline-metric-list dt{letter-spacing:.08em;text-transform:lowercase;margin:0;font-size:.72rem}.inline-metric-list dd{text-align:right;justify-self:end;font-size:.95rem}.utility-row.two-col-inline{grid-template-columns:1fr auto;gap:10px;display:grid}.utility-block{gap:12px;display:grid}.utility-meta,.status-head{justify-content:space-between}.utility-meta{border:1px solid var(--line);color:var(--ink-muted);background:#ffffffb3;border-radius:18px;align-items:center;gap:10px;padding:11px 12px;font-size:.82rem;display:flex}.status-card{border:1px solid var(--line);background:#ffffffc2;border-radius:18px;padding:14px}.status-card p{margin:10px 0 0;font-size:.86rem}.status-card.ok{background:linear-gradient(#0f766e14,#ffffffdb)}.status-card.warning{background:linear-gradient(#b26b1914,#ffffffdb)}.status-card.danger{background:linear-gradient(#b4231817,#ffffffdb)}.status-card.running{background:linear-gradient(#1f5bd814,#ffffffdb)}.empty-state{background:#ffffff80;border:1px dashed #0f172a24;border-radius:20px;place-items:center;min-height:92px;display:grid}.compact-empty{min-height:74px}.lazy-panel-card{min-height:320px}.lazy-chart-empty{text-align:center;align-content:center;justify-items:center;gap:14px;padding:18px}.lazy-chart-copy{gap:6px;display:grid}.lazy-chart-copy strong{color:var(--ink);font-size:1rem}.lazy-chart-copy span{color:var(--ink-muted);font-size:.9rem}@media (width<=1520px){.chart-row{grid-template-columns:1fr}}@media (width<=1200px){.support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.support-grid{grid-template-columns:1fr}}@media (width<=1120px){.page-hero{flex-direction:column}.hero-actions{justify-items:stretch;width:100%}.hero-toolbar{flex-wrap:wrap;justify-content:flex-start}.hero-select-field{max-width:none}.hero-progress-inset{width:min(420px,100vw - 36px);left:auto;right:18px}.hero-progress{grid-template-columns:1fr}.hero-progress-meta{justify-items:start}.workspace-grid,.chart-row,.support-grid{grid-template-columns:1fr}}@media (width<=720px){.app-shell{padding:18px 14px 28px}.page-hero,.panel-card,.visual-stage-card,.chart-card,.canvas-card{border-radius:24px;padding:16px}.field-grid.two-col,.metric-grid.compact-metric-grid,.segmented-control,.utility-row.two-col-inline{grid-template-columns:1fr}.stage-topbar,.chart-head,.canvas-footer{flex-direction:column;align-items:stretch}.hero-toolbar,.hero-view-switch{width:100%}.hero-toolbar{gap:10px}.hero-toolbar>.primary,.hero-toolbar>.secondary,.hero-view-switch .segment{flex:calc(50% - 8px);justify-content:center}.hero-view-switch{flex-wrap:wrap;justify-content:stretch}.hero-progress-inset{width:auto;bottom:12px;left:12px;right:12px}.hero-progress-track{width:100%}.stage-stats{justify-content:stretch}.stage-stats div{min-width:0}}@keyframes hero-progress-slide{0%{transform:translate(-115%)}to{transform:translate(285%)}}
