.page-shell{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.page-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg2);flex:none}.page-title{margin:0;font-size:var(--fs-xl);font-weight:700;letter-spacing:0}.page-soft{font-size:var(--fs-sm);color:var(--text-muted, var(--text2))}.tb-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;padding:0;transition:border-color .15s,color .15s,background .15s}.tb-iconbtn:hover{border-color:var(--accent3);color:var(--text)}.tb-iconbtn svg{width:16px;height:16px;display:block}.tb-user{position:relative;flex:none}.tb-user-circle{color:var(--accent)}.tb-user-circle svg{width:16px;height:16px;display:block}.tb-user[data-open=true] .tb-user-circle{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.tb-user-menu{position:absolute;top:calc(100% + 12px);right:0;z-index:60;width:min(360px,calc(100vw - 24px));display:grid;grid-template-columns:1fr;gap:14px;padding:16px;border:1px solid var(--border);border-radius:14px;background:radial-gradient(120% 80% at 100% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 58%),var(--bg2);box-shadow:0 18px 50px -12px #0000008c,0 0 0 1px color-mix(in srgb,var(--accent) 7%,transparent);transform-origin:top right;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.97);pointer-events:none;transition:opacity .16s ease,transform .18s cubic-bezier(.2,.8,.2,1),visibility 0s linear .18s}.tb-user[data-open=true] .tb-user-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto;transition:opacity .16s ease,transform .18s cubic-bezier(.2,.8,.2,1),visibility 0s}.tb-auth-identity{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border)}.tb-auth-avatar{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:999px;font-weight:800;font-size:var(--fs-lg);color:var(--bg);background:linear-gradient(135deg,var(--accent),var(--accent3));box-shadow:0 0 0 1px var(--border),0 2px 8px #00000040}.tb-auth-who{flex:1;min-width:0;display:grid;gap:1px}.tb-auth-who strong{color:var(--text);font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-auth-role{color:var(--text2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em}.tb-user-menu[data-authed=false] .tb-auth-identity{display:none}.tb-field{display:grid;gap:5px}.tb-field-name{color:var(--text2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em}.tb-field-box{position:relative;display:flex;align-items:center}.tb-field-icon{position:absolute;left:11px;width:15px;height:15px;color:var(--text3);pointer-events:none;transition:color .15s}.tb-field-box input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:var(--fs-md);transition:border-color .15s,box-shadow .15s}.tb-field.has-reveal input{padding-right:38px}.tb-field-box input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.tb-field-box:focus-within .tb-field-icon{color:var(--accent)}.tb-reveal{position:absolute;right:6px;display:grid;place-items:center;width:26px;height:26px;padding:0;border:none;background:none;color:var(--text3);border-radius:6px;cursor:pointer;transition:color .15s,background .15s}.tb-reveal svg{width:16px;height:16px}.tb-reveal:hover{color:var(--text);background:var(--bg3)}.tb-reveal.revealed{color:var(--accent)}.tb-auth-submit{margin-top:4px;width:100%;justify-content:center;border:none;color:var(--bg);font-weight:700;background:linear-gradient(135deg,var(--accent),var(--accent3));box-shadow:0 8px 18px -8px color-mix(in srgb,var(--accent) 70%,transparent);transition:filter .15s,box-shadow .15s,opacity .15s}.tb-auth-submit:hover{filter:brightness(1.06)}.tb-auth-submit.busy{opacity:.6;pointer-events:none}.tb-auth-error{margin:0;padding:7px 10px;border-radius:7px;color:var(--badge-offline);background:color-mix(in srgb,var(--badge-offline) 12%,transparent);border:1px solid color-mix(in srgb,var(--badge-offline) 30%,transparent);font-size:var(--fs-sm)}@media(prefers-reduced-motion:reduce){.tb-user-menu,.tb-user[data-open=true] .tb-user-menu{transition:none}}.tb-settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#00000047;opacity:0;pointer-events:none;transition:opacity .18s var(--ease-out, ease)}.tb-settings-backdrop[data-open=true]{opacity:1;pointer-events:auto}.tb-settings-panel{position:fixed;top:0;right:0;z-index:71;height:100vh;width:min(340px,100vw);display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--bg2);border-left:1px solid var(--border);box-shadow:var(--shadow);transform:translate(100%);transition:transform .22s var(--ease-out, cubic-bezier(.16, 1, .3, 1));overflow-y:auto}.tb-settings-panel[data-open=true]{transform:translate(0)}.tb-settings-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tb-settings-head h2{font-size:var(--fs-lg);font-weight:700;color:var(--text)}.tb-section{display:grid;gap:8px;padding:12px 0;border-top:1px solid var(--border)}.tb-section:first-of-type{border-top:none}.tb-section-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3, var(--text2))}.tb-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tb-row>span{color:var(--text2);font-size:var(--fs-md)}.tb-dev-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;border:1px solid var(--warn, #d4a574);color:var(--warn, #d4a574);background:transparent;font-size:var(--fs-2xs);font-weight:800;letter-spacing:.08em}.login-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:16px;background:var(--galaxy-bg)}.login-gate[data-open=false]{display:none}.lg-sky{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.lg-galaxy{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .9s ease}.lg-galaxy[data-ready=true]{opacity:.85}@media(prefers-reduced-motion:reduce){.lg-galaxy{transition:none}}.lg-galaxy canvas{width:100%!important;height:100%!important;display:block}.lg-card{position:relative;width:min(400px,100%);display:grid;gap:18px;padding:30px 28px 24px;border-radius:20px;border:1px solid color-mix(in srgb,var(--text) 14%,transparent);background:radial-gradient(130% 90% at 100% 0%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 55%),color-mix(in srgb,var(--bg2) 58%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.35);backdrop-filter:blur(20px) saturate(1.35);box-shadow:0 30px 80px -20px #0009,inset 0 1px color-mix(in srgb,var(--text) 10%,transparent);animation:lg-enter .5s cubic-bezier(.2,.8,.2,1)}:root[data-theme=light] .lg-card{background:radial-gradient(130% 90% at 100% 0%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 55%),color-mix(in srgb,var(--bg2) 76%,transparent);box-shadow:0 30px 80px -28px #0f172a59,inset 0 1px #ffffffb3}@keyframes lg-enter{0%{opacity:0;transform:translateY(14px) scale(.97)}}.lg-brand{display:grid;justify-items:center;gap:6px;text-align:center}.lg-brand-mark{height:118px;display:grid;place-items:center;margin-bottom:6px}.lg-brand-logo{height:118px;width:auto;filter:drop-shadow(0 0 10px color-mix(in srgb,var(--accent) 65%,transparent)) drop-shadow(0 0 32px color-mix(in srgb,var(--accent) 45%,transparent))}.lg-title{margin:0;color:var(--text);font-size:var(--fs-xl);font-weight:800;letter-spacing:-.01em}.lg-sub{margin:0;color:var(--text2);font-size:var(--fs-sm)}.lg-pane{display:grid;gap:12px}.lg-card .tb-field-box input{background:color-mix(in srgb,var(--bg) 72%,transparent)}.lg-error{margin:0}.lg-swap{margin:2px 0 0;text-align:center;color:var(--text3);font-size:var(--fs-sm)}.lg-swap-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;background:none;color:var(--accent);font-size:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent);text-underline-offset:3px;transition:text-decoration-color .15s}.lg-swap-link:hover{text-decoration-color:var(--accent)}.lg-swap-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}@media(prefers-reduced-motion:reduce){.lg-card{animation:none}}.galaxy-tooltip{position:absolute;pointer-events:none;padding:2px 8px;font-size:var(--fs-sm);background:var(--panel);border:1px solid var(--border);border-radius:4px;color:var(--text);box-shadow:var(--shadow);z-index:5;display:none;white-space:nowrap}.pack-svg g.pack-circles circle{transition:fill-opacity .26s ease,stroke-opacity .16s ease}.pack-svg g.pack-circles circle.pack-group:hover{stroke-opacity:1}.pack-svg g.pack-circles circle.pack-leaf:hover{filter:brightness(1.25)}.pack-svg g.pack-circles circle.pack-selected{filter:drop-shadow(0 0 6px rgba(250,204,21,.65))}.pack-svg g.pack-circles circle.pack-leaf.pack-selected:hover{filter:brightness(1.25) drop-shadow(0 0 6px rgba(250,204,21,.65))}.pack-svg g.pack-circles text{font-family:Segoe UI,system-ui,sans-serif;transition:opacity .26s ease}.theme-toggle{display:inline-flex;align-items:center;gap:8px;color:var(--text2);cursor:pointer;-webkit-user-select:none;user-select:none}.theme-toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:42px;height:24px;border-radius:999px;border:1px solid var(--border);background:var(--bg3);position:relative;cursor:pointer;transition:background .15s,border-color .15s}.theme-toggle input:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:999px;background:var(--text2);transition:transform .15s,background .15s}.theme-toggle input:checked{background:var(--accent2);border-color:var(--accent3)}.theme-toggle input:checked:after{transform:translate(18px);background:var(--accent)}.theme-toggle span{cursor:pointer}*{box-sizing:border-box}button,input{font:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.topbar{height:42px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 16px;flex:none;z-index:10}.logo{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:var(--fs-lg);font-weight:800;text-decoration:none}.logo-dot{width:8px;height:8px;border-radius:999px;background:var(--accent)}.app-switcher{position:relative;flex:none;width:180px;flex:0 0 180px}.connection-details{position:relative;flex:none}.app-switcher summary,.connection-details summary{cursor:pointer;list-style:none}.app-switcher summary::-webkit-details-marker,.connection-details summary::-webkit-details-marker{display:none}.app-switcher summary:after,.connection-details summary:after{content:"▾";color:var(--text2);font-size:var(--fs-xs);margin-left:2px}.app-menu,.connection-popover{position:absolute;top:calc(100% + 10px);z-index:50;min-width:220px;display:grid;gap:4px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);box-shadow:var(--shadow)}.app-menu{left:0}.connection-popover{right:0;width:min(460px,calc(100vw - 24px));gap:10px}.app-menu a{display:grid;gap:2px;padding:8px 10px;border-radius:6px;color:var(--text);text-decoration:none}.app-menu a span{color:var(--text2);font-size:var(--fs-sm)}.app-menu a:hover,.app-menu a.active{background:var(--bg3)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px;min-width:0}.metric-chip{display:inline-flex;align-items:baseline;gap:4px;border:1px solid var(--border);border-radius:999px;color:var(--text2);background:var(--bg3);padding:3px 8px;white-space:nowrap}.metric-chip strong{color:var(--text);font-size:var(--fs-md)}.shell{flex:1;min-height:0;overflow:auto;padding:4px 4px 2px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:4px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:4px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.hero-main{padding:18px;display:grid;gap:18px;overflow:hidden}.eyebrow{color:var(--accent);font-size:var(--fs-xs);font-weight:800;letter-spacing:0}h1{margin:0;font-size:31px;line-height:1;letter-spacing:0}.hero-copy{max-width:760px;color:var(--text2);font-size:var(--fs-lg);line-height:1.5}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}.metric{padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg2)}.metric strong{display:block;font-size:var(--fs-3xl)}.metric span{color:var(--text2)}.control-panel{padding:14px;display:grid;gap:10px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;font-weight:800}.status-pill{border:1px solid var(--border);border-radius:999px;color:var(--text2);background:var(--bg2);padding:4px 8px;white-space:nowrap}.status-pill.online{color:var(--ok);border-color:#43c07a59;background:#43c07a1f}.source-popover{position:fixed;z-index:9999;min-width:180px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000059;padding:4px;font-size:var(--fs-md);color:var(--text)}.source-popover .source-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px}.source-popover .source-row:hover{background:var(--bg3, rgba(255,255,255,.04))}.source-popover .source-name{white-space:nowrap}.source-popover .source-refresh{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--text2);cursor:pointer;transition:transform .25s ease,color .2s ease,border-color .2s ease}.source-popover .source-refresh:hover{color:var(--ok);border-color:#43c07a8c;transform:rotate(180deg)}.mode-pill:not(.active){color:var(--text2)}.mode-pill-group{display:inline-flex;align-items:center;gap:2px;margin-left:12px}.mode-pill{--pill-accent: #00e5ff;--pill-bg-a: rgba(0,229,255,.06);--pill-bg-b: transparent;--pill-border: rgba(120,140,150,.28);--pill-text: var(--pill-accent);--pill-shimmer: rgba(255,255,255,.18);position:relative;display:inline-flex;align-items:center;gap:8px;padding:4px 10px;height:24px;font-family:inherit;font-size:var(--fs-md);font-weight:500;letter-spacing:normal;color:var(--pill-text);background:transparent;border:none;cursor:pointer;overflow:hidden;box-shadow:none;transition:filter .2s ease,transform .2s ease,opacity .2s ease;text-decoration:none;font:500 var(--fs-md)/1 inherit}.mode-pill:hover{background:color-mix(in srgb,var(--pill-accent) 10%,transparent);color:var(--pill-accent)}.mode-pill:active{background:color-mix(in srgb,var(--pill-accent) 16%,transparent)}.mode-pill .mode-pill-label{padding-left:0}:root[data-goto-pending] .mode-pill-label .goto-accel{text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent)}.mode-pill.inactive{opacity:1;color:var(--text2)}.mode-pill.active{opacity:1;color:var(--pill-accent);box-shadow:inset 0 -2px 0 var(--pill-accent)}.mode-pill.explore{--pill-accent: #f05d5e;--pill-border: rgba(240,93,94,.32);--pill-bg-a: rgba(240,93,94,.06);--pill-bg-b: transparent}.mode-pill.calc{--pill-accent: #66c2a5;--pill-border: rgba(102,194,165,.32);--pill-bg-a: rgba(102,194,165,.06);--pill-bg-b: transparent}.mode-pill.export-pill{--pill-accent: #d4a574;--pill-border: rgba(212,165,116,.32);--pill-bg-a: rgba(212,165,116,.06);--pill-bg-b: transparent}.mode-pill.import-pill{--pill-accent: #c79bbf;--pill-border: rgba(199,155,191,.32);--pill-bg-a: rgba(199,155,191,.06);--pill-bg-b: transparent}.mode-pill.optimize{--pill-accent: #f6c869;--pill-border: rgba(246,200,105,.32);--pill-bg-a: rgba(246,200,105,.06);--pill-bg-b: transparent}:root[data-theme=light] .mode-pill{--pill-shimmer: rgba(0,0,0,.06)}:root[data-theme=light] .mode-pill:not(.active){box-shadow:none}:root[data-theme=light] .mode-pill.explore{--pill-accent: #c44d4e;--pill-border: rgba(196,77,78,.3);--pill-bg-a: rgba(196,77,78,.06);--pill-bg-b: transparent}:root[data-theme=light] .mode-pill.calc{--pill-accent: #3d8c70;--pill-border: rgba(61,140,112,.3);--pill-bg-a: rgba(61,140,112,.06);--pill-bg-b: transparent}:root[data-theme=light] .mode-pill.export-pill{--pill-accent: #a36d2d;--pill-border: rgba(163,109,45,.3);--pill-bg-a: rgba(163,109,45,.06);--pill-bg-b: transparent}:root[data-theme=light] .mode-pill.import-pill{--pill-accent: #8a5d80;--pill-border: rgba(138,93,128,.3);--pill-bg-a: rgba(138,93,128,.06);--pill-bg-b: transparent}.status-pill.warn{color:var(--warn);border-color:#e19b1b59;background:#e19b1b1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}label{display:grid;gap:5px;color:var(--text2);font-size:var(--fs-sm)}input{min-width:0;color:var(--text);background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:8px 9px}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--border);border-radius:6px;color:var(--text);background:var(--bg3);padding:8px 10px;cursor:pointer}.btn:hover{border-color:var(--accent3)}.btn-primary{border-color:var(--accent3);background:var(--accent);color:#fff;font-weight:800}.hint{color:var(--text3);line-height:1.45}.remember-row{display:flex;align-items:center;gap:6px;color:var(--text2);font-size:var(--fs-sm);cursor:pointer}section.workspace{position:relative;min-height:0;display:grid;--ws-split: 50%;grid-template-columns:minmax(280px,var(--ws-split)) 6px minmax(280px,1fr);gap:0}.ws-divider{position:relative;cursor:col-resize;background:transparent;z-index:5;touch-action:none;-webkit-user-select:none;user-select:none}.ws-divider:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:8px 2px;border-radius:2px;background:var(--border);opacity:.6;transition:opacity .15s,background .15s}.ws-divider:hover:before,.ws-divider:active:before{opacity:1;background:var(--accent3)}.data-panel,.graph-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}.viscosity-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.panel-head{height:44px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px}.panel-head h2{margin:0;font-size:var(--fs-lg)}.toolrow{display:flex;align-items:center;gap:8px;min-width:0;position:relative}.search-wrap{position:relative;display:flex;align-items:center;width:min(280px,32vw)}.search{width:100%;padding-right:26px}#quickFilter::-webkit-search-cancel-button{display:none}.search-clear{position:absolute;right:6px;background:none;border:none;cursor:pointer;color:var(--text-muted, #888);font-size:var(--fs-md);padding:2px 4px;line-height:1;border-radius:3px}.search-clear:hover{color:var(--text);background:var(--border)}.search-hint{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:40;width:max(300px,100%);background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:10px 12px;font-size:var(--fs-md);color:var(--text)}.search-hint.show{display:block}.search-hint strong{display:block;margin-bottom:7px;font-size:var(--fs-xs);letter-spacing:.5px;opacity:.6}.search-hint ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}.search-hint code{background:var(--border);padding:1px 5px;border-radius:4px;font-size:var(--fs-sm)}#materialsGrid{width:100%;height:100%;min-height:0}.grid-fallback{padding:12px;overflow:auto}.grid-fallback table{width:100%;border-collapse:collapse}.grid-fallback th,.grid-fallback td{border-bottom:1px solid var(--border);padding:8px;text-align:left}.graph-wrap{position:relative;min-height:min(520px,60vh);overflow:hidden}.graph-wrap{background:#0c1018}:root[data-theme=light] .graph-wrap{background:var(--bg)}:root[data-theme=light] #materialGraph canvas{filter:drop-shadow(0 0 12px rgba(0,120,130,.1))}#graphGrid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(to right,#1a2535 1px,transparent 1px),repeating-linear-gradient(to bottom,#1a2535 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}:root[data-theme=light] #graphGrid{background-image:repeating-linear-gradient(to right,#dde3ec 1px,transparent 1px),repeating-linear-gradient(to bottom,#dde3ec 1px,transparent 1px)}#graphSvgUnderlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:visible}#materialGraph,#fallbackGraph{z-index:1}#materialGraph canvas{filter:drop-shadow(0 0 12px rgba(0,255,247,.14))}#materialGraph.ambient{cursor:default}.graph-summary-controls{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.seg-btn{display:inline-flex;border:1px solid var(--border);border-radius:5px;overflow:hidden;font-size:var(--fs-sm)}.seg-btn button{padding:3px 9px;background:transparent;color:var(--text3);border:none;border-left:1px solid var(--border);cursor:pointer;white-space:nowrap;font-size:var(--fs-sm);transition:background .12s,color .12s}.seg-btn button:first-child{border-left:none}.seg-btn button.active{background:var(--bg3);color:var(--text)}.seg-btn button:hover:not(.active){background:var(--bg2);color:var(--text2)}.renderer-select{border:1px solid var(--border);border-radius:5px;background:var(--bg2);color:var(--text2);font-size:var(--fs-sm);padding:3px 6px;cursor:pointer;max-width:210px}.renderer-select:hover{background:var(--bg3);color:var(--text)}#graphBreadcrumb{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:.4em;padding:.5em 1em;font-size:.9em;color:var(--text);background:#0c1018b8;pointer-events:auto}:root[data-theme=light] #graphBreadcrumb{background:#f4f6fad1;color:var(--text)}#graphBreadcrumb .crumb{cursor:pointer;background:none;border:none;color:inherit;font:inherit;padding:2px 6px;border-radius:4px}#graphBreadcrumb .crumb:hover{background:#ffffff14}:root[data-theme=light] #graphBreadcrumb .crumb:hover{background:#0000000f}#graphBreadcrumb .sep{color:var(--text2);-webkit-user-select:none;user-select:none}.plot-wrap{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--panel)}#viscosityPlot{width:100%;height:100%;min-height:0}.sym-gd-dot{font-size:.65em;vertical-align:.5em;margin-left:-.2em}.uplot{background:transparent;color:var(--text);font-family:var(--font-ui)}.uplot .u-axis path,.uplot .u-axis line{stroke:#3a4555}.uplot .u-axis text{fill:var(--text2);font-size:var(--fs-sm)}.uplot .u-grid path{stroke:#27313f}.uplot .u-select{background:#e6443d24;border:1px solid var(--accent)}.uplot .u-cursor-x,.uplot .u-cursor-y{border-color:var(--accent)}.uplot .u-cursor-pt{border-color:#fff;background:var(--accent)}.plot-readout{position:absolute;top:12px;right:12px;z-index:2;min-width:230px;max-width:min(360px,calc(100% - 24px));border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:var(--shadow);padding:9px 10px;display:grid;gap:6px}.plot-readout strong{font-size:var(--fs-sm)}.plot-readout-row{display:flex;justify-content:space-between;gap:14px;color:var(--text2)}.plot-readout-row span:last-child{color:var(--text);font-variant-numeric:tabular-nums}.plot-readout-key{display:inline-flex;align-items:center;gap:6px;min-width:0}.plot-readout-swatch{flex:0 0 auto}.plot-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--text2);text-align:center;padding:24px;pointer-events:none}.plot-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plot-toolbar label{display:inline-flex;align-items:center;grid-template-columns:none;gap:6px}.plot-toolbar input{width:86px;padding:5px 7px}.plot-toolbar select{padding:5px 7px;background:var(--bg2);color:var(--text);border:1px solid var(--border);border-radius:6px}.plot-toolbar input[type=text]{width:130px}.radar-props{position:relative}.radar-props summary{list-style:none;cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:5px 8px;background:var(--bg2);color:var(--text2);-webkit-user-select:none;user-select:none}.radar-props[open] summary,.radar-props summary:hover{color:var(--text);border-color:var(--accent3)}.radar-prop-list{position:absolute;left:0;top:calc(100% + 4px);z-index:30;display:grid;gap:4px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px;min-width:220px;box-shadow:0 8px 24px #00000059}.radar-prop-row{display:flex;gap:6px;align-items:center;font-size:var(--fs-sm, 12px);color:var(--text2);white-space:nowrap;cursor:pointer}.radar-prop-unit{opacity:.6}.radar-svg{display:block;margin:0 auto}.tool-btn{border:1px solid var(--border);border-radius:6px;color:var(--text2);background:var(--bg2);padding:5px 8px;cursor:pointer}.tool-btn:hover{color:var(--text);border-color:var(--accent3)}.plot-legend{display:flex;gap:6px;flex-wrap:wrap}.plot-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;color:var(--text2);background:var(--bg2);padding:4px 8px;max-width:280px}.plot-chip svg{flex:0 0 28px;overflow:visible}.plot-cap-notice{border-style:dashed;color:var(--text3, var(--text2));background:transparent;font-style:italic}.plot-chip--muted{opacity:.55;filter:grayscale(.8)}.plot-chip-note{font-style:normal;opacity:.7;font-size:.85em}.plot-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plot-ctx-menu{position:fixed;z-index:60;display:grid;gap:2px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:4px;min-width:190px;box-shadow:0 8px 24px #00000059}.plot-ctx-item{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 6px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer}.plot-ctx-item:hover{background:var(--panel)}.plot-ctx-check{flex:0 0 14px;text-align:center;color:var(--accent);font-size:.85em}.parameter-strip{flex-shrink:0;border-top:1px solid var(--border);background:var(--bg2)}.parameter-strip summary{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--text-muted);padding:5px 10px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.parameter-strip summary:after{content:" ▾"}.parameter-strip[open] summary:after{content:" ▴"}.parameter-strip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:8px;padding:8px 10px 10px;max-height:160px;overflow-y:auto}.parameter-card{border:1px solid var(--border);border-left:3px solid var(--card-accent, var(--border));border-radius:7px;background:var(--panel);padding:8px;display:grid;gap:6px;min-width:0}.parameter-card--selected{border-color:var(--card-accent, var(--accent));box-shadow:0 0 0 1px var(--card-accent, var(--accent))}.parameter-card strong{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}.parameter-card strong .plot-readout-swatch{flex:none}.plot-hover-card{position:absolute;left:0;top:0;z-index:5;pointer-events:none;max-width:260px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:var(--panel);box-shadow:0 4px 14px #00000040;display:grid;gap:6px;font-size:12px}.plot-hover-card strong{color:var(--text);display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parameter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;color:var(--text2);font-variant-numeric:tabular-nums}.parameter-grid span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parameter-grid span:nth-child(2n){color:var(--text);text-align:right}.graph-details{overflow:hidden}.graph-details summary{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;cursor:pointer;list-style:none;border-bottom:1px solid transparent}.graph-details summary::-webkit-details-marker{display:none}.graph-details[open] summary{border-bottom-color:var(--border)}.summary-title{display:flex;align-items:center;gap:8px;font-weight:800}.summary-title:before{content:"▸";color:var(--text2);font-size:var(--fs-xs)}.graph-details[open] .summary-title:before{content:"▾"}#materialGraph,#fallbackGraph{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}#materialGraph{cursor:grab}#materialGraph:active{cursor:grabbing}#fallbackGraph{width:100%;height:100%}.graph-overlay{position:absolute;left:12px;bottom:12px;right:12px;display:flex;justify-content:space-between;gap:8px;pointer-events:none}.legend{display:flex;flex-wrap:wrap;gap:6px}.legend span{display:inline-flex;align-items:center;gap:5px;color:var(--text2);background:#12151bd1;border:1px solid var(--border);border-radius:999px;padding:5px 8px}:root[data-theme=light] .legend span{color:var(--text2);background:#f4f6fae6}#canvasGraph .graph-overlay{bottom:38px}.dot{width:7px;height:7px;border-radius:50%;background:var(--node-color)}.error-box{margin:12px;padding:12px;border:1px solid var(--accent3);border-radius:8px;background:var(--accent2);color:var(--text);line-height:1.5}@media(max-width:1040px){.hero,section.workspace{grid-template-columns:1fr}.ws-divider{display:none}body{overflow:auto}.shell{min-height:calc(100vh - 42px);overflow:visible;grid-template-rows:auto auto}section.workspace{min-height:auto}.plot-wrap,#materialsGrid{min-height:380px}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-chip{display:none}#treeExplorer{position:absolute;left:0;top:0;z-index:20}}.topbar-lang{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:var(--fs-sm);cursor:pointer}@media(max-width:720px){.topbar{height:auto;align-items:flex-start;flex-direction:column;padding:10px 12px}.shell{padding:10px}.metric-strip,.form-row{grid-template-columns:1fr}.panel-head{height:auto;align-items:stretch;flex-direction:column;padding:10px 12px}.toolrow{flex-wrap:wrap}.search-wrap{width:100%}}.canvas-mode-strip{display:flex;align-items:center;gap:6px;flex-shrink:0}.canvas-mode-pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.07em;padding:4px 11px;border-radius:999px;border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,opacity .15s;background:none;color:var(--text-muted);outline:none}.canvas-mode-pill:hover{color:var(--text);border-color:var(--text-muted)}.canvas-mode-pill.gated{opacity:.45;cursor:not-allowed}.canvas-mode-pill.gated:hover{color:var(--text-muted);border-color:var(--border)}.canvas-mode-pill.active.graph{background:#0e2436;color:var(--mode-cyan-soft);border-color:rgba(var(--mode-cyan-rgb),.55);box-shadow:0 0 10px rgba(var(--mode-cyan-rgb),.35),inset 0 0 5px rgba(var(--mode-cyan-rgb),.18)}.canvas-mode-pill.active.plots{background:#2a1505;color:#f4a878;border-color:#d55e008c;box-shadow:0 0 10px #d55e0059,inset 0 0 5px #d55e002e}.canvas-mode-pill.active.cad{background:#1b1430;color:#c4b5f4;border-color:#8f7ae58c;box-shadow:0 0 10px #8f7ae559,inset 0 0 5px #8f7ae52e}.canvas-mode-pill.active.editor{background:#2a1f00;color:#f6c869;border-color:#e69f008c;box-shadow:0 0 10px #e69f0059,inset 0 0 5px #e69f002e}.canvas-mode-pill.active.setup{background:#06251c;color:#4dc9a5;border-color:#009e738c;box-shadow:0 0 10px #009e7359,inset 0 0 5px #009e732e}.canvas-mode-pill.active.filedrop{background:#2a1220;color:#eab0d0;border-color:rgba(var(--mode-magenta-rgb),.55);box-shadow:0 0 10px rgba(var(--mode-magenta-rgb),.35),inset 0 0 5px rgba(var(--mode-magenta-rgb),.18)}.canvas-mode-pill.active.fitresults{background:#071d2e;color:#86c3ec;border-color:#0072b28c;box-shadow:0 0 10px #0072b259,inset 0 0 5px #0072b22e}:root[data-theme=light] .canvas-mode-pill.active.graph{background:#d6ecfa;color:#1f6aa3;border-color:rgba(var(--mode-cyan-rgb),.55);box-shadow:0 0 8px rgba(var(--mode-cyan-rgb),.28)}:root[data-theme=light] .canvas-mode-pill.active.plots{background:#fbe1cf;color:#8a3d00;border-color:#d55e008c;box-shadow:0 0 8px #d55e0047}:root[data-theme=light] .canvas-mode-pill.active.cad{background:#e6def8;color:#4c3a99;border-color:#8f7ae58c;box-shadow:0 0 8px #8f7ae547}:root[data-theme=light] .canvas-mode-pill.active.editor{background:#fbe9c1;color:#8a5e00;border-color:#e69f008c;box-shadow:0 0 8px #e69f0047}:root[data-theme=light] .canvas-mode-pill.active.setup{background:#cdebde;color:#006149;border-color:#009e738c;box-shadow:0 0 8px #009e7347}:root[data-theme=light] .canvas-mode-pill.active.filedrop{background:#f6ddeb;color:#8f3a68;border-color:rgba(var(--mode-magenta-rgb),.55);box-shadow:0 0 8px rgba(var(--mode-magenta-rgb),.28)}:root[data-theme=light] .canvas-mode-pill.active.fitresults{background:#d3e8f7;color:#024e79;border-color:#0072b28c;box-shadow:0 0 8px #0072b247}@keyframes pill-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.canvas-mode-pill.blocked{animation:pill-shake .28s ease;opacity:.55}.canvas-panel{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.canvas-panel .panel-head{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex-shrink:0}#canvasPanelHead{height:auto;min-height:44px;padding-block:8px}.canvas-controls-row{display:flex;align-items:center;gap:8px;min-height:28px;min-width:0}.canvas-head-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.canvas-head-controls[hidden]{display:none}#editorSaveBtn{padding:5px 12px;font-size:var(--fs-md)}#editorConfirmBar{background:var(--panel2);border-top:1px solid var(--border);padding:6px 14px;display:flex;align-items:center;gap:8px;font-size:var(--fs-md);color:var(--text-muted);flex-shrink:0}#canvasGraph{flex:1;min-height:0;overflow:hidden}#canvasViscosity{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}#canvasEditor,#canvasSetup{flex:1;min-height:0;overflow:hidden}#canvasCad{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--panel)}#cadViewport{width:100%;height:100%}#canvasCad.drag-over{outline:2px dashed var(--accent, #7f9dbf);outline-offset:-6px}.setup-card-row{display:flex;gap:12px;align-items:stretch;height:100%;overflow-x:auto;overflow-y:hidden;padding:14px}.setup-card{flex:0 0 auto;min-width:280px;max-width:340px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.setup-card.focused{border-color:var(--accent, var(--mode-cyan))}.setup-card-head{display:flex;align-items:center;gap:8px;padding:10px 10px 6px}.setup-card-name{flex:1;min-width:0;background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 9px;font-size:var(--fs-lg);font-weight:600}.setup-card-count{flex:none;font-size:var(--fs-sm);color:var(--text-muted)}.setup-card-delete{flex:none;cursor:pointer;background:none;border:none;color:var(--text-muted);font-size:var(--fs-xl)}.setup-card-delete:hover{color:var(--text)}.setup-card-drop{flex:1;min-height:0;overflow-y:auto;padding:8px 10px}.setup-card-drop.drag-over{outline:2px dashed var(--accent, #00fff7);outline-offset:-6px}.setup-card-foot{padding:8px 10px 10px;display:flex;justify-content:flex-end}.setup-add-zone{flex:0 0 auto;min-width:200px;display:grid;place-items:center;border:1px dashed var(--border);border-radius:8px;color:var(--text-muted);font-size:var(--fs-lg);text-align:center;padding:14px}.setup-add-zone.drag-over{outline:2px dashed var(--accent, #00fff7);outline-offset:-6px;color:var(--accent, #00fff7)}.setup-layer-list{list-style:none;margin:0;padding:0}.setup-layer-row{display:flex;align-items:center;gap:10px;padding:8px 10px;margin-bottom:6px;background:color-mix(in srgb,var(--layer-color, #888) 16%,var(--bg3));border:1px solid var(--border);border-left:5px solid var(--layer-color, #888);border-radius:6px;cursor:grab}.setup-layer-row:active{cursor:grabbing}.setup-layer-row.unavailable{opacity:.55;font-style:italic}.setup-layer-badge{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--layer-color, #888);color:#fff;font-size:var(--fs-sm);font-weight:700}.setup-layer-name{flex:1;font-size:var(--fs-lg)}.setup-layer-handle{cursor:grab;opacity:.5}.setup-layer-handle:hover{opacity:1}.setup-layer-remove{cursor:pointer;background:none;border:none;color:var(--text-muted);font-size:var(--fs-xl)}.setup-layer-dup{cursor:pointer;background:none;border:none;color:var(--text-muted);font-size:var(--fs-lg)}.setup-layer-dup:hover{color:var(--text)}.setup-multiplier{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm)}#setupMultValue{min-width:14px;text-align:center;font-weight:700}.setup-empty{margin-top:30px;text-align:center;color:var(--text-muted);font-size:var(--fs-lg)}.setup-drop-hint{margin-top:10px;padding:12px;border:1px dashed var(--border);border-radius:6px;text-align:center;color:var(--text-muted);font-size:var(--fs-md)}.setup-layer-list .sortable-ghost{opacity:.35}.editor-tab-bar{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--panel)}.editor-tab-btn{padding:8px 14px;font-size:var(--fs-sm);font-weight:600;letter-spacing:.04em;border:none;border-bottom:2px solid transparent;background:none;color:var(--text-muted);cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}.editor-tab-btn:hover{color:var(--text)}.editor-tab-btn.active{color:var(--text);border-bottom-color:var(--amber)}.editor-tab-content{display:none;flex:1;min-height:0;overflow-y:auto;padding:16px 14px}.editor-tab-content.active{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start}.editor-tab-content.active.single-col{grid-template-columns:1fr}.editor-field{display:flex;flex-direction:column;gap:3px}.editor-field-label{font-size:var(--fs-sm);color:var(--text-muted)}.editor-field-unit{font-size:var(--fs-2xs);opacity:.7}.editor-field--full{grid-column:1 / -1}.editor-field--checkbox{flex-direction:row;align-items:center;gap:8px}.editor-field--checkbox input[type=checkbox]{width:auto;margin:0}.editor-field input,.editor-field select,.editor-field textarea{background:var(--panel2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:4px 8px;font-size:var(--fs-md);font-family:inherit}.editor-field input:read-only{opacity:.5;cursor:default}.editor-field textarea{width:100%;resize:vertical;font:inherit}.fit-card{grid-column:1 / -1;border:1px solid var(--border);border-radius:6px;padding:12px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-content:start}.fit-card-header{grid-column:1 / -1;display:flex;align-items:center;gap:10px}.fit-card-header .editor-field{flex:1}.fit-card-remove{font-size:var(--fs-sm);padding:3px 10px;border:1px solid var(--border);border-radius:4px;background:none;color:var(--text-muted);cursor:pointer}.fit-card-remove:hover{color:#ef4444;border-color:#ef4444}.fit-card-remove:disabled{opacity:.3;cursor:default}.fit-add-btn{grid-column:1 / -1;padding:8px;border:1px dashed var(--border);border-radius:6px;background:none;color:var(--text-muted);font-size:var(--fs-md);cursor:pointer;text-align:center}.fit-add-btn:hover{color:var(--text);border-color:var(--text-muted)}details.editor-collapse{grid-column:1 / -1}details.editor-collapse summary{font-size:var(--fs-xs);letter-spacing:.06em;color:var(--text-muted);cursor:pointer;padding:4px 0;border-bottom:1px solid var(--border);margin-bottom:8px;list-style:none}details.editor-collapse summary:after{content:" ▾"}details.editor-collapse[open] summary:after{content:" ▴"}details.editor-collapse .collapse-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:8px}@media(max-width:900px){.editor-tab-content.active,.fit-card{grid-template-columns:1fr}details.editor-collapse .collapse-grid{grid-template-columns:1fr}}[hidden]{display:none!important}#treeExplorer{position:fixed;left:0;top:42px;bottom:0;z-index:20;pointer-events:none}.te-panel{width:220px;height:100%;background:var(--panel);border:1px solid var(--border);border-radius:0 8px 8px 0;display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transform:translate(-228px);transition:opacity .21s ease,transform .21s ease;box-shadow:var(--shadow)}#treeExplorer.tree-expanded{pointer-events:auto}#treeExplorer.tree-expanded .te-panel{opacity:1;pointer-events:auto;transform:translate(0)}#treeBackdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:19;background:#04080e59}#treeBackdrop.tree-expanded{display:block}.te-toggle-btn{width:26px;height:26px;background:none;border:1px solid transparent;border-radius:5px;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);flex:none;transition:color .12s,border-color .12s,background .12s}.te-toggle-btn:hover{color:var(--text);border-color:var(--border);background:var(--bg3)}.te-toggle-btn.active{color:var(--accent);border-color:var(--accent3);background:var(--accent2)}.te-header{height:36px;flex:none;display:flex;align-items:center;gap:4px;padding:0 8px;border-bottom:1px solid var(--border)}.te-title{font-size:var(--fs-sm);font-weight:700;letter-spacing:.04em;color:var(--text2);flex:1}.te-icon-btn{width:22px;height:22px;background:none;border:1px solid transparent;border-radius:4px;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg);flex:none}.te-icon-btn:hover{color:var(--text);border-color:var(--border)}.te-group-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--text3);flex:none}.te-group-row select{flex:1;background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:2px 4px;font-size:var(--fs-sm);cursor:pointer}.te-body{flex:1;overflow-y:auto;padding:4px 0}.te-branch-head{width:100%;display:flex;align-items:center;gap:5px;padding:4px 8px;background:none;border:none;color:var(--text2);cursor:pointer;font-size:var(--fs-md);text-align:left;border-radius:4px;transition:background .1s,color .1s}.te-branch-head:hover{background:var(--bg3);color:var(--text)}.te-branch-head.active{color:var(--accent);background:var(--accent2)}.te-arrow{font-size:var(--fs-2xs);flex:none;color:var(--text3);width:10px}.te-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.te-count{font-size:var(--fs-xs);color:var(--text3);flex:none}.te-children{padding-left:18px}.te-leaf{width:100%;display:block;padding:3px 8px;background:none;border:none;color:var(--text3);cursor:pointer;font-size:var(--fs-sm);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;transition:background .1s,color .1s}.te-leaf:hover{background:var(--bg3);color:var(--text2)}.te-leaf.active{color:var(--accent);background:var(--accent2)}.te-empty{padding:12px 8px;color:var(--text3);font-size:var(--fs-sm);text-align:center}#treeExplorer.tree-overlay{z-index:20}#canvasFiledrop{display:flex;padding:18px;height:100%;box-sizing:border-box}#fitDropZone{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;border-radius:16px;background:var(--bg2);background-image:repeating-linear-gradient(0deg,var(--border) 0 10px,transparent 10px 20px),repeating-linear-gradient(90deg,var(--border) 0 10px,transparent 10px 20px),repeating-linear-gradient(180deg,var(--border) 0 10px,transparent 10px 20px),repeating-linear-gradient(270deg,var(--border) 0 10px,transparent 10px 20px);background-size:2px 100%,100% 2px,2px 100%,100% 2px;background-position:0 0,0 0,100% 0,0 100%;background-repeat:no-repeat;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}#fitDropZone .fit-drop-icon{width:56px;height:56px;color:var(--text-muted);transition:transform .18s ease,color .18s ease}#fitDropZone .setup-empty{border:none;padding:0;max-width:360px}#fitDropZone.drag-over{transform:scale(1.012);background-color:color-mix(in srgb,var(--accent, var(--mode-cyan)) 8%,var(--bg2));box-shadow:0 0 0 1px var(--accent, var(--mode-cyan)),0 0 26px color-mix(in srgb,var(--accent, var(--mode-cyan)) 35%,transparent);animation:fit-dash-march .5s linear infinite}#fitDropZone.drag-over .fit-drop-icon{color:var(--accent, var(--mode-cyan));transform:translateY(-6px) scale(1.06)}@keyframes fit-dash-march{to{background-position:0 20px,20px 0,100% 20px,20px 100%}}#fitDropZone.dropped{animation:fit-drop-pop .42s cubic-bezier(.2,.8,.2,1)}@keyframes fit-drop-pop{0%{transform:scale(.97);box-shadow:0 0 color-mix(in srgb,var(--accent, var(--mode-cyan)) 60%,transparent)}45%{transform:scale(1.02)}to{transform:scale(1);box-shadow:0 0 0 18px transparent}}@media(prefers-reduced-motion:reduce){#fitDropZone,#fitDropZone.drag-over,#fitDropZone.dropped,#fitDropZone .fit-drop-icon{animation:none!important;transition:none!important}}.ag-row.vim-visual{background:color-mix(in srgb,var(--accent) 18%,transparent)!important;box-shadow:inset 3px 0 0 var(--accent)}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.learn-shell{display:grid;grid-template-columns:268px 1fr;gap:0;height:calc(100vh - 88px);min-height:600px;background:var(--bg);overflow:hidden;transition:grid-template-columns .2s ease}.learn-shell:has(.lsb-root.collapsed){grid-template-columns:36px 1fr}.learn-sidebar-host{min-height:0;overflow:hidden}.lsb-root{height:100%;border-right:1px solid var(--border);background:var(--bg2);display:flex;flex-direction:column;overflow:hidden;transition:width .2s ease}.lsb-head{height:36px;flex:none;display:flex;align-items:center;gap:6px;padding:0 8px;border-bottom:1px solid var(--border);background:var(--bg2)}.lsb-head-title{font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text2);flex:1}.lsb-auto{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--text3);cursor:pointer}.lsb-auto input{accent-color:var(--accent)}.lsb-collapse{width:22px;height:22px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);border-radius:4px;cursor:pointer;font-size:var(--fs-lg);font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center}.lsb-collapse:hover{color:var(--text);border-color:var(--accent3)}.lsb-section{padding:10px 8px 6px;border-bottom:1px solid var(--border);overflow-y:auto}.lsb-section:last-child{flex:1;border-bottom:none}.lsb-section-title{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:0 6px 6px;font-weight:700}.lsb-group{margin:6px 0 4px}.lsb-group-head{font-size:var(--fs-xs);color:var(--text3);font-weight:600;padding:6px 6px 2px}.lsb-leaf{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:5px;padding:5px 8px;margin:1px 0;cursor:pointer;color:var(--text2);transition:background .1s,border-color .1s,color .1s}.lsb-leaf:hover{background:var(--bg3);color:var(--text)}.lsb-leaf.active{background:var(--accent2);border-color:var(--accent3);color:var(--accent)}.lsb-leaf-abbr{font-size:var(--fs-sm);font-weight:700;background:var(--bg3);border-radius:3px;padding:2px 5px;min-width:36px;text-align:center;color:var(--text)}.lsb-leaf.active .lsb-leaf-abbr{background:var(--accent3);color:var(--accent)}.lsb-leaf-name{font-size:var(--fs-md);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lsb-leaf-tag{font-size:var(--fs-2xs);color:var(--text3);letter-spacing:.04em;text-transform:uppercase}.lsb-leaf-concept .lsb-leaf-name{font-weight:500;font-size:var(--fs-sm)}.lsb-root.collapsed .lsb-section,.lsb-root.collapsed .lsb-head-title,.lsb-root.collapsed .lsb-auto{display:none}.lsb-root.collapsed .lsb-head{justify-content:center;padding:0}.lsb-rail{display:none;flex-direction:column;align-items:center;gap:6px;padding:8px 0;border-bottom:1px solid var(--border)}.lsb-root.collapsed .lsb-rail{display:flex}.lsb-rail-icon{width:28px;height:28px;background:var(--bg3);border:1px solid var(--border);border-radius:5px;color:var(--text2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.lsb-rail-icon:hover{color:var(--text);border-color:var(--accent3)}.lsb-rail-icon.active{background:var(--accent2);border-color:var(--accent3);color:var(--accent)}.lsb-popover{position:absolute;left:40px;top:80px;width:250px;max-height:70vh;overflow-y:auto;background:var(--bg2);border:1px solid var(--border);border-radius:6px;box-shadow:0 16px 42px #04080e73;padding:8px;z-index:50}.lsb-pop-title{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-weight:700;padding:4px 6px 8px}.lsb-root{position:relative}.learn-main{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr);overflow:hidden}.learn-viewer-host{border-bottom:1px solid var(--border);display:flex;flex-direction:column;background:var(--bg);overflow:hidden;min-height:0}.vp-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:7px 14px;border-bottom:1px solid var(--border);background:var(--bg2)}.vp-tabs{display:inline-flex;gap:4px}.vp-tab{background:none;border:1px solid var(--border);color:var(--text2);padding:3px 10px;border-radius:5px;font-size:var(--fs-sm);font-weight:600;cursor:pointer}.vp-tab:hover{color:var(--text)}.vp-tab.active{background:var(--accent2);border-color:var(--accent3);color:var(--accent)}.vp-modes{display:inline-flex;gap:3px;border:1px solid var(--border);border-radius:5px;padding:2px}.vp-mode{background:none;border:none;color:var(--text2);padding:2px 9px;border-radius:3px;font-size:var(--fs-sm);cursor:pointer}.vp-mode:hover{color:var(--text);background:var(--bg3)}.vp-mode.active{background:var(--accent2);color:var(--accent)}.vp-hint{margin-left:auto;font-size:var(--fs-sm);color:var(--text3)}.vp-stage{flex:1;position:relative;min-height:0;background:var(--bg2)}.vp-canvas-picker{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:6px;background:#12151bc7;border:1px solid var(--border);border-radius:5px;padding:4px 8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:4}.vp-canvas-picker-label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text3);font-weight:700}.vp-canvas-picker-select{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 8px;font-size:var(--fs-md);cursor:pointer;min-width:200px}.vp-legend{position:absolute;top:8px;left:8px;background:#12151bc7;border:1px solid var(--border);border-radius:5px;padding:6px 8px;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.vp-legend-title{font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;font-weight:700}.vp-legend-row{display:flex;flex-wrap:wrap;gap:6px}.vp-legend-chip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);color:var(--text);background:var(--bg3);border-radius:3px;padding:1px 6px}.vp-legend-dot{width:8px;height:8px;border-radius:50%}.vp-legend-el{font-weight:700}.vp-legend-count{color:var(--text3);font-variant-numeric:tabular-nums}.vp-controls{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:7px 14px;border-top:1px solid var(--border);background:var(--bg2)}.vp-ctrl{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text2)}.vp-ctrl>span:first-child{font-weight:600;color:var(--text3)}.vp-val{font-variant-numeric:tabular-nums;color:var(--text);min-width:50px;text-align:right}.vp-ctrl input[type=range]{width:130px;accent-color:var(--accent)}.vp-ctrl select{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 6px;font-size:var(--fs-sm);cursor:pointer}.vp-ctrl-check{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text2);cursor:pointer}.vp-ctrl-check input{accent-color:var(--accent)}.vp-ctrl-spacer{margin-left:auto;display:inline-flex}.vp-btn-secondary{background:var(--bg3);border:1px solid var(--border);color:var(--text2);font-size:var(--fs-sm);padding:4px 10px;border-radius:4px;cursor:pointer}.vp-btn-secondary:hover{color:var(--text);border-color:var(--accent3)}.learn-info{overflow-y:auto;padding:20px 28px 40px;background:var(--bg);color:var(--text);font-size:var(--fs-lg);line-height:1.6}.learn-info p{margin:0 0 12px;color:var(--text2)}.learn-info code{background:var(--bg3);padding:1px 5px;border-radius:3px;font-size:var(--fs-md);color:var(--text)}.learn-header{margin-bottom:12px}.learn-eyebrow{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:4px}.learn-title{font-size:var(--fs-title);margin:0 0 4px;color:var(--text);font-weight:700}.learn-sub{font-size:var(--fs-md);color:var(--text3)}.learn-blurb{font-size:var(--fs-xl);color:var(--text);font-style:italic;border-left:2px solid var(--accent);padding-left:12px;margin:12px 0 16px}.learn-h3{font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin:20px 0 10px;font-weight:700}.learn-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.learn-table th{text-align:left;padding:6px 12px 6px 0;color:var(--text3);font-weight:600;width:200px;border-bottom:1px solid var(--border)}.learn-table td{padding:6px 0;color:var(--text);border-bottom:1px solid var(--border)}.learn-note{font-size:var(--fs-sm);color:var(--text3);margin-left:6px}.learn-list{padding-left:18px;margin:0 0 8px}.learn-list li{color:var(--text2);margin-bottom:4px;font-size:var(--fs-lg)}.learn-element-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.learn-element{display:inline-flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--border);border-radius:5px;padding:4px 8px;font-size:var(--fs-md)}.learn-element-dot{width:10px;height:10px;border-radius:50%}.learn-element-el{font-weight:700;color:var(--text)}.learn-element-name{color:var(--text3);font-size:var(--fs-sm)}.learn-sources{list-style:none;padding:0;margin:0}.learn-sources li{padding:4px 0;border-bottom:1px dashed var(--border);font-size:var(--fs-md)}.learn-sources li:last-child{border-bottom:none}.learn-sources a{color:var(--accent);text-decoration:none}.learn-sources a:hover{text-decoration:underline}.learn-formulas{display:flex;flex-direction:column;gap:6px}.learn-formula{display:flex;align-items:baseline;gap:12px;padding:6px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:5px}.learn-formula-label{font-size:var(--fs-sm);color:var(--text3);min-width:110px;font-weight:600}.learn-formula code{background:none;font-size:var(--fs-lg);color:var(--text)}@media(max-width:960px){.learn-info{padding:16px 18px 28px}}.pg-slot{margin:10px 0 20px;background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:12px}.pg-empty{color:var(--text3);font-style:italic;font-size:var(--fs-md);padding:8px}.pg-thermal-wrap{display:flex;flex-direction:column;gap:8px}.pg-thermal-canvas{width:100%;display:block;cursor:crosshair}.pg-thermal-readout{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-md);color:var(--text2)}.pg-thermal-temp{font-size:var(--fs-2xl);font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;min-width:80px}.pg-thermal-region{color:var(--text3)}.pg-rheo,.pg-mw{display:grid;grid-template-columns:1fr 240px;gap:16px;align-items:start}@media(max-width:800px){.pg-rheo,.pg-mw{grid-template-columns:1fr}}.pg-rheo-plot,.pg-mw-plot{min-height:220px;min-width:0;overflow:hidden;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:4px}.pg-rheo-controls,.pg-mw-controls{display:flex;flex-direction:column;gap:8px}.pg-rheo-ctrl{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);color:var(--text2)}.pg-rheo-label{display:flex;justify-content:space-between;font-weight:600;color:var(--text3);letter-spacing:.02em}.pg-rheo-ctrl input[type=range]{accent-color:var(--accent);width:100%}.pg-rheo-val{font-variant-numeric:tabular-nums;color:var(--text);font-size:var(--fs-sm);text-align:right}.pg-rheo-reset{margin-top:6px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);font-size:var(--fs-sm);padding:5px 8px;border-radius:4px;cursor:pointer}.pg-rheo-reset:hover{color:var(--text);border-color:var(--accent3)}.pg-mw-readouts{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:var(--fs-md);color:var(--text2)}.pg-mw-readouts strong{color:var(--text3);font-weight:600;min-width:28px;display:inline-block}.pg-mw-readouts span[data-readout]{color:var(--text);font-variant-numeric:tabular-nums}.u-legend{color:var(--text2);font-size:var(--fs-sm)}.u-title,.u-label{color:var(--text2)}.badge{background:var(--accent2);color:var(--accent);border:1px solid var(--accent3);padding:2px 7px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout{display:flex;flex:1;overflow:hidden}.main{flex:1;overflow:auto;padding:8px;display:grid;gap:8px;min-width:0}.workspace{display:grid;--ws-split: 50%;grid-template-columns:minmax(280px,var(--ws-split)) 6px minmax(280px,1fr);gap:0;align-items:stretch;min-height:0;flex:1}.workspace>.ws-divider{position:relative;cursor:col-resize;background:transparent;z-index:5;touch-action:none;-webkit-user-select:none;user-select:none}.workspace>.ws-divider:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:8px 2px;border-radius:2px;background:var(--border);opacity:.6;transition:opacity .15s,background .15s}.workspace>.ws-divider:hover:before,.workspace>.ws-divider:active:before{opacity:1;background:var(--accent3, var(--accent))}.left-pane,.plot-pane{display:flex;flex-direction:column;gap:8px;min-height:0;min-width:0}.left-pane{overflow:auto;padding-right:2px}.plot-pane{min-height:calc(100vh - 114px)}.panel-block{border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.panel-block-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),var(--panel))}.panel-block-header h2{font-size:var(--fs-lg)}.collapse-button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);color:var(--text);cursor:pointer;flex:none}.collapse-button[data-state=collapsed] .chev{transform:rotate(-90deg)}.collapse-button .chev{display:inline-block;transition:transform .15s var(--ease-out)}.panel-body{padding:10px}.panel-block.collapsed .panel-body{display:none}.tabs{display:flex;gap:2px;align-items:center;flex-wrap:wrap}.tab{padding:6px 12px;font-size:var(--fs-sm);font-weight:600;letter-spacing:.04em;border:none;border-bottom:2px solid transparent;background:none;color:var(--text2);cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--amber)}.tabs--cyber{gap:5px;align-items:center}.tab--cyber{position:relative;padding:1px 9px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.06em;border:1px solid transparent;border-radius:999px;background:none;color:var(--text2);cursor:pointer;margin:0;line-height:1.4;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.tab--cyan{background:#0e2436;color:var(--mode-cyan-soft);border-color:rgba(var(--mode-cyan-rgb),.4);box-shadow:0 0 8px rgba(var(--mode-cyan-rgb),.2)}.tab--cyan:hover{background:#163148;border-color:rgba(var(--mode-cyan-rgb),.65);box-shadow:0 0 12px rgba(var(--mode-cyan-rgb),.4)}.tab--cyan.active{background:#0b3858;color:#e6f4fc;border-color:var(--mode-cyan);box-shadow:0 0 14px rgba(var(--mode-cyan-rgb),.55),inset 0 0 6px rgba(var(--mode-cyan-rgb),.25)}.tab--magenta{background:#2a1320;color:#e6b3cf;border-color:rgba(var(--mode-magenta-rgb),.4);box-shadow:0 0 8px rgba(var(--mode-magenta-rgb),.2)}.tab--magenta:hover{background:#3a1a2c;border-color:rgba(var(--mode-magenta-rgb),.65);box-shadow:0 0 12px rgba(var(--mode-magenta-rgb),.4)}.tab--magenta.active{background:#5a1f3d;color:#fbe6f1;border-color:var(--mode-magenta);box-shadow:0 0 14px rgba(var(--mode-magenta-rgb),.55),inset 0 0 6px rgba(var(--mode-magenta-rgb),.25)}:root[data-theme=light] .tab--cyan{background:#d6ecfa;color:#1f6aa3;border-color:rgba(var(--mode-cyan-rgb),.55);box-shadow:0 0 6px rgba(var(--mode-cyan-rgb),.18)}:root[data-theme=light] .tab--cyan:hover{background:#b9defa;border-color:rgba(var(--mode-cyan-rgb),.75);box-shadow:0 0 10px rgba(var(--mode-cyan-rgb),.3)}:root[data-theme=light] .tab--cyan.active{background:var(--mode-cyan);color:#f8fafc;border-color:#1f6aa3;box-shadow:0 0 12px rgba(var(--mode-cyan-rgb),.45)}:root[data-theme=light] .tab--magenta{background:#f7dbe8;color:#8a3d65;border-color:rgba(var(--mode-magenta-rgb),.55);box-shadow:0 0 6px rgba(var(--mode-magenta-rgb),.18)}:root[data-theme=light] .tab--magenta:hover{background:#f4c6da;border-color:rgba(var(--mode-magenta-rgb),.75);box-shadow:0 0 10px rgba(var(--mode-magenta-rgb),.3)}:root[data-theme=light] .tab--magenta.active{background:var(--mode-magenta);color:#fdf4ff;border-color:#8a3d65;box-shadow:0 0 12px rgba(var(--mode-magenta-rgb),.45)}.section{border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.section-title{padding:8px 12px;color:var(--text);border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),var(--panel));font-weight:700}.grid{display:grid;gap:8px}.panel-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:8px}.card{border:1px solid var(--border);border-radius:8px;background:var(--bg2);padding:8px;display:grid;gap:8px}.card h3{font-size:var(--fs-lg)}.card p{color:var(--text2);line-height:1.45}.field-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.field{display:grid;gap:6px}.field label{color:var(--text2);font-size:var(--fs-sm)}.field input,.field select{height:34px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);color:var(--text);padding:0 10px}.field input::placeholder{color:var(--text2)}.toggle-row,.button-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.button{min-height:34px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg3);color:var(--text);cursor:pointer}.button.primary{background:var(--accent);border-color:var(--accent3);color:#fff}.button.ghost{background:transparent}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.table th{color:var(--text2);font-weight:600}.table td{color:var(--text)}.pill{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;border:1px solid var(--accent3);background:var(--accent2);color:var(--accent)}.results-bar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border)}.results-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.results-controls label{color:var(--text2);font-size:var(--fs-sm)}.results-controls select{height:32px;border:1px solid var(--border);border-radius:6px;background:var(--bg3);color:var(--text);padding:0 10px}.plot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;padding:4px;flex:1;min-height:0}.plot-grid.plot-grid--stacked{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(280px,auto);overflow-y:auto}.results-tab-content{display:flex;flex-direction:column;flex:1;min-height:0}.results-tab-content[hidden]{display:none}.stability-plot-wrap{display:flex;flex-direction:column;flex:1;gap:4px;padding:4px;min-height:0}.stability-legend{display:flex;flex-wrap:wrap;gap:8px 20px;padding:4px 8px 8px;border-top:1px solid var(--border)}.stability-legend-item{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);color:var(--text2)}.stability-legend-icon{width:22px;height:22px;flex-shrink:0}.stability-legend-labels{display:flex;flex-direction:column;gap:2px}.stability-legend-layer{display:flex;align-items:center;gap:5px;font-size:var(--fs-sm);color:var(--text2)}.stability-legend-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.plot-card{border:1px solid var(--border);border-radius:8px;background:var(--bg2);overflow:hidden;min-height:0;display:flex;flex-direction:column}.plot-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 8px;border-bottom:1px solid var(--border)}.plot-card-head strong{font-size:var(--fs-md)}.plot-card-head span{color:var(--text2);font-size:var(--fs-sm)}.unit,.kv-label{font-variant-numeric:tabular-nums}.unit i,.kv-label i,.plot-card-head i,th i{font-style:italic;font-family:"Cambria Math","Latin Modern Math","STIX Two Math",Times New Roman,serif;font-weight:500}.plot-surface{position:relative;flex:1;min-height:260px;background:var(--plot-bg);overflow:hidden;display:flex;align-items:stretch;justify-content:stretch}.plot-surface svg{width:100%;height:100%;display:block}.uplot{width:100%!important;height:100%!important}.uplot .u-title,.uplot .u-legend{display:none}.uplot .u-axis path,.uplot .u-axis line{stroke:var(--plot-ax)}.uplot .u-grid path{stroke:var(--plot-grid)}.uplot{background:var(--plot-bg)}.plot-surface>.uplot{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important}.uplot-readout{position:absolute;min-width:190px;max-width:280px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:color-mix(in srgb,var(--bg2) 94%,transparent);box-shadow:var(--shadow);color:var(--text);font-size:var(--fs-sm);line-height:1.35;pointer-events:none;z-index:3}.uplot-readout strong{display:block;color:var(--text);font-size:var(--fs-sm);margin-bottom:4px}.uplot-readout-row{display:flex;justify-content:space-between;gap:12px;color:var(--text2)}.uplot-readout-row span:last-child{color:var(--text);font-variant-numeric:tabular-nums}.uplot .u-select{background:color-mix(in oklch,var(--accent) 10%,transparent);box-shadow:inset 0 0 0 1px var(--accent)}main.main .uplot .u-cursor-x,main.main .uplot .u-cursor-y,main.main .uplot .u-cursor-pt{display:none!important}.plotly-graph-div{width:100%!important;height:100%!important}.footer-actions{display:flex;gap:10px;flex-wrap:wrap}.badge--offline{background:#ef44441f;color:var(--badge-offline);border-color:#ef444447}.badge--calculating{background:#facc151f;color:#facc15;border-color:#facc1547}.layer-input{background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.2);color:#fff;font-size:var(--fs-sm);padding:1px 2px;width:52px}.layer-input:focus{outline:none;border-bottom-color:var(--accent)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.btn-calc{background:var(--accent2);border:1px solid var(--accent3);color:var(--accent);font-size:var(--fs-sm);font-weight:700;padding:4px 12px;border-radius:5px;cursor:pointer;flex-shrink:0}.btn-calc:hover{background:var(--accent3)}.setup-panel{border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.setup-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),var(--panel));flex-shrink:0}.setup-panel-title{font-size:var(--fs-lg);font-weight:700;color:var(--text)}.setup-file-label{font-size:var(--fs-xs);color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kv-grid{display:grid;grid-template-columns:auto 1fr;row-gap:5px;column-gap:10px;padding:8px 12px}.kv-label{font-size:var(--fs-sm);color:var(--text2);display:flex;align-items:center;white-space:nowrap}.kv-value{font-size:var(--fs-lg);color:var(--text);background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:2px 4px;width:100%}.kv-value:focus{outline:none;border-bottom-color:var(--accent)}select.kv-value{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:auto}.geo-segmented{grid-column:1 / -1;display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-bottom:2px}.geo-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:7px 10px;background:transparent;border:none;border-right:1px solid var(--border);cursor:pointer;font-size:var(--fs-sm);font-weight:500;color:var(--text2);transition:background .12s,color .12s;letter-spacing:.3px}.geo-btn:last-child{border-right:none}.geo-btn:hover{background:var(--bg3);color:var(--text)}.geo-btn.active{background:var(--accent2);color:var(--accent)}.geo-btn svg{flex-shrink:0;opacity:.8}.geo-btn.active svg{opacity:1}.kv-row-geo{display:contents}.kv-row-geo.hidden>*{display:none}.setup-section-divider{font-size:var(--fs-xs);font-weight:700;letter-spacing:.9px;color:var(--text2);padding:7px 12px 4px;border-top:1px solid var(--border)}.layer-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin-bottom:4px}.layer-table th{text-align:left;padding:5px 8px;color:var(--text2);font-weight:600;font-size:var(--fs-xs);letter-spacing:.5px;border-bottom:1px solid var(--border)}.layer-table td{padding:5px 6px;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.3);font-size:var(--fs-md);border-bottom:1px solid rgba(0,0,0,.08)}.layer-drag-handle{cursor:grab;padding:0 6px;opacity:.5;font-size:var(--fs-lg);line-height:1;-webkit-user-select:none;user-select:none;color:#fff}.layer-drag-handle:hover{opacity:1}.sortable-ghost{opacity:.35}.sortable-drag{box-shadow:0 4px 16px #0006}.layer-actions{white-space:nowrap}.layer-act-btn{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:3px;opacity:.55;color:#fff;font-size:var(--fs-lg);line-height:1;transition:opacity .12s,background .12s}.layer-act-btn:hover{opacity:1;background:#ffffff26}.layer-act-btn.danger:hover{background:rgba(var(--badge-offline-rgb),.3)}.plot-subtitle{color:var(--text2);font-size:var(--fs-sm);margin-top:2px}@media(max-width:1200px){.plot-grid{grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(0,1fr))}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){body{overflow:auto;height:auto}.layout{flex-direction:column}.workspace{grid-template-columns:1fr}.plot-grid{grid-template-rows:auto}}.browser-panel{border:1px solid var(--border);border-radius:10px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;flex-shrink:0}.browser-panel-head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--panel2),var(--panel));flex-shrink:0;-webkit-user-select:none;user-select:none}.browser-panel.collapsed .browser-panel-head{border-bottom:none}.browser-panel-title{font-size:var(--fs-xs);font-weight:700;letter-spacing:.8px;color:var(--text2)}.browser-collapse-btn{background:none;border:none;cursor:pointer;color:var(--text2);font-size:var(--fs-md);line-height:1;padding:2px 4px;border-radius:3px}.browser-collapse-btn:hover{background:var(--bg3);color:var(--text)}.browser-panel-body{display:flex;flex-direction:column;overflow:hidden;min-height:0}.browser-panel.collapsed .browser-panel-body{display:none}.browser-search-wrap{padding:6px 8px;flex-shrink:0;border-bottom:1px solid var(--border)}.browser-search{width:100%;padding:5px 8px 5px 26px;background:var(--bg3);border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:var(--fs-sm);outline:none;transition:border-color .15s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a7b0bf' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:8px center}.browser-search:focus{border-color:var(--accent)}.browser-list{list-style:none;overflow-y:auto;max-height:168px;border-bottom:1px solid var(--border);flex-shrink:0}.browser-item{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 12px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.04);transition:background .1s;border-left:2px solid transparent}.browser-item:last-child{border-bottom:none}.browser-item:hover{background:var(--bg3)}.browser-item.active{background:var(--accent2);border-left-color:var(--accent);padding-left:10px}.browser-item-name{font-size:var(--fs-md);font-weight:600;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browser-item.active .browser-item-name{color:var(--accent)}.browser-item-chips{display:flex;gap:3px;flex-shrink:0}.chip{font-size:var(--fs-2xs);font-weight:700;padding:1px 5px;border-radius:3px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);white-space:nowrap}.chip-live{background:var(--accent2);border-color:var(--accent3);color:var(--accent)}.chip-dim{opacity:.5}.setup-detail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 12px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.setup-detail-title{font-size:var(--fs-xs);color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-actions{display:flex;gap:4px;flex-shrink:0}.setup-action-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--border);border-radius:5px;background:var(--bg3);color:var(--text2);cursor:pointer;padding:0}.setup-action-btn:hover{color:var(--text);border-color:var(--accent3)}.setup-action-btn.save-ok{color:var(--ok);border-color:var(--ok)}.setup-action-btn.save-err{color:var(--warn);border-color:var(--warn)}.mat-tree{overflow-y:auto;flex:1;min-height:0}.mat-group{border-bottom:1px solid var(--border)}.mat-group:last-child{border-bottom:none}.mat-group-head{display:flex;align-items:center;gap:6px;padding:5px 10px;cursor:pointer;font-size:var(--fs-sm);font-weight:700;color:var(--text);-webkit-user-select:none;user-select:none;transition:background .1s}.mat-group-head:hover{background:var(--bg3)}.mat-group-head .chev{color:var(--text2);font-size:var(--fs-xs);width:10px;flex-shrink:0}.mat-count{margin-left:auto;font-size:var(--fs-xs);color:var(--text2);font-weight:400}.mat-grades{display:none;flex-direction:column;background:var(--bg)}.mat-group.open .mat-grades{display:flex}.mat-grade{display:flex;align-items:center;justify-content:space-between;padding:4px 10px 4px 22px;font-size:var(--fs-sm);color:var(--text2);cursor:pointer;transition:background .1s;gap:6px}.mat-grade:hover{background:var(--bg3);color:var(--text)}.mat-grade-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-grade-model{font-size:var(--fs-2xs);font-weight:600;color:var(--text2);background:var(--bg3);border:1px solid var(--border);border-radius:3px;padding:1px 4px;white-space:nowrap;flex-shrink:0}.mat-manufacturer{font-size:var(--fs-xs);font-weight:400;color:var(--text2);margin-left:4px}.no-results-msg{padding:10px 14px;font-size:var(--fs-sm);color:var(--text2);text-align:center}[data-lang=zh] body{font-family:Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}#canvasImport{flex:1;min-height:0;overflow:auto;padding:18px 22px 26px;display:flex;flex-direction:column;gap:18px;background:radial-gradient(circle at 12% -10%,color-mix(in srgb,#c79bbf 14%,transparent) 0%,transparent 38%),radial-gradient(circle at 88% 110%,color-mix(in srgb,#7bb6e8 10%,transparent) 0%,transparent 42%)}.import-section-title{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-weight:700;display:flex;align-items:center;gap:6px}.import-section-title:before{content:"";width:3px;height:12px;background:var(--accent);border-radius:2px}@keyframes import-spin{to{transform:rotate(360deg)}}.import-stepper{display:flex;align-items:center;gap:6px;padding:0 2px;flex-wrap:wrap}.import-step{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:18px;font-size:var(--fs-sm);color:var(--text-muted);background:var(--bg2);border:1px solid var(--border);transition:color .2s,background .2s,border-color .2s}.import-step.done{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent);background:color-mix(in srgb,var(--ok) 8%,transparent)}.import-step.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 60%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.import-step-dot{width:18px;height:18px;border-radius:50%;background:var(--bg3);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700}.import-step.done .import-step-dot{background:var(--ok);color:#0a1f17}.import-step.active .import-step-dot{background:var(--accent);color:#1a0e00}.import-step-label{font-weight:600;letter-spacing:.04em}.import-step-line{flex:1;height:1px;background:var(--border);min-width:12px;transition:background .2s}.import-step-line.done{background:#66c2a566}.import-vendor-chips{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.import-vendor-card{--vendor-accent: #888;position:relative;background:var(--bg2);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:12px;cursor:pointer;display:grid;grid-template-columns:36px 1fr auto;gap:10px;align-items:center;transition:border-color .18s,transform .12s,box-shadow .18s;overflow:hidden}.import-vendor-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(135deg,color-mix(in srgb,var(--vendor-accent) 22%,transparent) 0%,transparent 55%);opacity:0;transition:opacity .18s}.import-vendor-card:hover{border-color:color-mix(in srgb,var(--vendor-accent) 60%,var(--border));transform:translateY(-1px)}.import-vendor-card:hover:after{opacity:.6}.import-vendor-card.active{border-color:var(--vendor-accent);box-shadow:0 0 0 1px var(--vendor-accent),0 8px 24px color-mix(in srgb,var(--vendor-accent) 22%,transparent)}.import-vendor-card.active:after{opacity:1}.import-vendor-mark{width:36px;height:36px;border-radius:8px;background:color-mix(in srgb,var(--vendor-accent) 18%,transparent);color:var(--vendor-accent);display:inline-flex;align-items:center;justify-content:center}.import-vendor-mark svg{width:22px;height:22px}.import-vendor-logo{width:100%;height:100%;object-fit:contain;padding:4px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.import-vendor-mark[data-has-logo]{background:#fff;padding:2px}:root[data-theme=light] .import-vendor-mark[data-has-logo]{background:#fafafa}.import-vendor-mark-fallback{width:100%;height:100%;align-items:center;justify-content:center;color:var(--vendor-accent)}.import-source-switcher{display:flex;gap:4px;padding:4px;background:var(--bg2);border:1px solid var(--border);border-radius:10px}.import-source-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:var(--text-muted);border:1px solid transparent;border-radius:7px;padding:8px 12px;font-size:var(--fs-md);font-weight:600;cursor:pointer;transition:background .14s,color .14s,border-color .14s}.import-source-btn:hover:not(.unsupported){background:var(--bg3);color:var(--text)}.import-source-btn.active{background:var(--bg3);color:var(--text);border-color:color-mix(in srgb,var(--accent) 50%,var(--border));box-shadow:inset 0 -2px 0 var(--accent)}.import-source-btn.unsupported{opacity:.35;cursor:not-allowed}.import-source-icon{font-size:var(--fs-2xl)}.import-source-label{letter-spacing:.04em}.import-source-config{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.import-cfg-head{display:flex;align-items:center;gap:8px}.import-cfg-title{font-size:var(--fs-lg);font-weight:700;letter-spacing:.02em}.import-cfg-body{display:flex;flex-direction:column;gap:8px}.import-cfg-row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:10px;font-size:var(--fs-md)}.import-cfg-row>label{color:var(--text-muted);font-weight:600;font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase}.import-cfg-row input[type=text],.import-cfg-row input[type=password],.import-cfg-row select,.import-cfg-row textarea{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 9px;font-size:var(--fs-md);font-family:inherit;width:100%}.import-cfg-row textarea{font-family:var(--font-mono);min-height:60px;resize:vertical}.import-cfg-check{display:inline-flex;align-items:center;gap:6px;text-transform:none;letter-spacing:0;font-weight:500;color:var(--text)}.import-cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:720px){.import-cfg-grid{grid-template-columns:1fr}}.import-cfg-note{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5}.import-cfg-status{font-size:var(--fs-md);min-height:16px;font-variant-numeric:tabular-nums}.import-cfg-status.ok{color:var(--ok)}.import-cfg-status.err{color:var(--danger)}.import-vendor-text{display:flex;flex-direction:column;gap:1px;min-width:0;position:relative}.import-vendor-name{font-size:var(--fs-lg);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-vendor-soft{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-vendor-kbd{position:relative;font:600 var(--fs-xs)/1 var(--font-mono);padding:3px 6px;border-radius:4px;background:var(--bg3);color:var(--text-muted);border:1px solid var(--border)}.import-vendor-card.active .import-vendor-kbd{color:var(--vendor-accent);border-color:var(--vendor-accent)}.import-vendor-hint{display:flex;flex-direction:column;gap:4px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.import-hint-row{display:flex;align-items:baseline;gap:8px}.import-hint-label{font-size:var(--fs-lg);font-weight:700}.import-hint-soft{font-size:var(--fs-sm);color:var(--text-muted)}.import-hint-text{font-size:var(--fs-md);color:var(--text);opacity:.82}.import-hint-ext{font-size:var(--fs-sm);color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.import-hint-ext code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--bg3);padding:1px 6px;border-radius:3px;border:1px solid var(--border)}.import-dropzone{position:relative;border:2px dashed color-mix(in srgb,var(--text-muted) 50%,transparent);border-radius:14px;padding:30px 20px;text-align:center;cursor:pointer;background:color-mix(in srgb,var(--bg2) 84%,transparent);transition:border-color .15s,background .15s,transform .12s;overflow:hidden}.import-dropzone:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:conic-gradient(from 0deg,transparent 0deg,color-mix(in srgb,var(--accent) 60%,transparent) 90deg,transparent 180deg);opacity:0;transition:opacity .2s;animation:import-spin 6s linear infinite;z-index:0}.import-dropzone:hover{border-color:var(--accent)}.import-dropzone.dragging{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--bg2));transform:scale(1.005)}.import-dropzone.dragging:before{opacity:.35}.import-dropzone>*{position:relative;z-index:1}.import-dropzone-icon{width:44px;height:44px;margin:0 auto 6px;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:color .15s,transform .15s}.import-dropzone.dragging .import-dropzone-icon{color:var(--accent);transform:translateY(-2px)}.import-dropzone-title{font-size:var(--fs-xl);font-weight:600;margin-bottom:4px}.import-dropzone-sub{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;max-width:660px;margin:0 auto}.import-bulk-actions{display:flex;align-items:center;gap:8px;padding:4px 4px 0;font-size:var(--fs-sm);color:var(--text-muted)}.import-bulk-stat{font-variant-numeric:tabular-nums}.import-queue{display:flex;flex-direction:column;gap:3px;border:1px solid var(--border);border-radius:10px;background:var(--bg2);padding:6px;max-height:220px;overflow-y:auto}.import-queue-empty{padding:16px;text-align:center;font-size:var(--fs-md);color:var(--text-muted)}.import-queue-item{--row-accent: #888;position:relative;display:grid;grid-template-columns:1fr 140px 90px 90px 24px;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:7px;cursor:pointer;font-size:var(--fs-md);transition:background .12s}.import-queue-item:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--row-accent);opacity:.4}.import-queue-item:hover{background:color-mix(in srgb,var(--row-accent) 8%,transparent)}.import-queue-item.selected{background:color-mix(in srgb,var(--row-accent) 14%,transparent)}.import-queue-item.selected:before{opacity:1;box-shadow:0 0 8px var(--row-accent)}.import-queue-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-queue-vendor{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-queue-conf{display:block;height:4px;background:var(--bg3);border-radius:2px;overflow:hidden}.import-queue-conf>span{display:block;height:100%;transition:width .25s ease}.import-queue-x{background:none;border:none;color:var(--text-muted);font-size:var(--fs-2xl);line-height:1;cursor:pointer;padding:0}.import-queue-x:hover{color:var(--danger)}.badge{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:10px;white-space:nowrap}.badge.ok{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.badge.err{background:rgba(var(--danger-rgb),.18);color:var(--danger)}.badge.pending{background:rgba(var(--mode-cyan-soft-rgb),.14);color:var(--mode-cyan-soft)}.badge.done{background:rgba(var(--mode-cyan-rgb),.16);color:var(--mode-cyan)}.import-preview{border:1px solid var(--border);border-radius:12px;background:var(--bg2);padding:14px;display:flex;flex-direction:column;gap:12px;min-height:320px}.import-preview-empty,.import-preview-error{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--text-muted);font-size:var(--fs-md);text-align:center;padding:32px}.import-preview-error{color:var(--danger)}.import-spinner{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:import-spin .8s linear infinite}.import-preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.import-preview-title{display:flex;align-items:center;gap:12px}.import-preview-icon{width:36px;height:36px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center}.import-preview-title strong{font-size:var(--fs-xl)}.import-preview-meta{font-size:var(--fs-sm);color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:3px}.import-preview-meta code{font-family:var(--font-mono)}.import-preview-meta .dot{opacity:.5}.conf-pill{position:relative;padding:2px 8px;border-radius:10px;background:var(--bg3);overflow:hidden;color:var(--text);font-weight:600;z-index:0}.conf-pill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:var(--conf);background:color-mix(in srgb,var(--accent) 40%,transparent);z-index:-1}.import-preview-actions{display:flex;gap:8px}.import-stat-row{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.import-stat{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.import-stat-label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.import-stat-value{font-size:var(--fs-lg);font-weight:600;font-variant-numeric:tabular-nums}.import-preview-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px}@media(max-width:980px){.import-preview-grid{grid-template-columns:1fr}}.import-chart{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:8px;min-height:240px;display:flex;align-items:center;justify-content:center}.import-chart-empty{color:var(--text-muted);font-size:var(--fs-md)}.import-side{display:flex;flex-direction:column;gap:6px}.import-side-title{font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:600;display:flex;align-items:baseline;gap:8px}.import-side-soft{font-size:var(--fs-xs);color:var(--text-muted);text-transform:none;letter-spacing:0}.import-mapping{display:grid;gap:6px;grid-template-columns:1fr}.import-mapping label{font-size:var(--fs-sm);color:var(--text-muted);display:grid;grid-template-columns:100px 1fr;align-items:center;gap:8px}.import-mapping select{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:5px;padding:5px 7px;font-size:var(--fs-md);width:100%}.import-trim{display:flex;flex-direction:column;gap:6px;padding:4px 2px}.import-trim input[type=range]{width:100%;accent-color:var(--accent)}.import-preview-rawwrap{font-size:var(--fs-sm)}.import-preview-rawwrap summary{cursor:pointer;color:var(--text-muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 0}.import-preview-tablewrap{overflow:auto;max-height:200px;border:1px solid var(--border);border-radius:6px;margin-top:6px}.import-preview-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.import-preview-table th,.import-preview-table td{padding:4px 8px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.import-preview-table th{background:var(--bg3);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-xs)}.import-commit-status{font-size:var(--fs-md);color:var(--text-muted);min-height:16px}#canvasExport{flex:1;min-height:0;overflow:auto;padding:16px 20px;display:flex;flex-direction:column;gap:14px}.export-section-title{font-size:var(--fs-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-top:4px}.export-target-chips{display:flex;flex-wrap:wrap;gap:8px}.export-target-chip{display:flex;flex-direction:row;align-items:center;gap:10px;padding:7px 12px;border:1px solid var(--border);background:var(--bg2);color:var(--text);border-radius:8px;cursor:pointer;min-width:160px;text-align:left;border-left:3px solid var(--target-accent, var(--border));transition:transform .12s ease,box-shadow .12s ease}.export-target-mark{width:32px;height:32px;border-radius:6px;flex:0 0 auto;background:color-mix(in srgb,var(--target-accent) 18%,transparent);color:var(--target-accent);display:inline-flex;align-items:center;justify-content:center}.export-target-mark svg{width:20px;height:20px}.export-target-mark[data-has-logo]{background:#fff;padding:2px}:root[data-theme=light] .export-target-mark[data-has-logo]{background:#fafafa}.export-target-logo{width:100%;height:100%;object-fit:contain;padding:2px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.export-target-mark-fallback{width:100%;height:100%;align-items:center;justify-content:center;color:var(--target-accent)}.export-target-text{display:flex;flex-direction:column;gap:1px;min-width:0}.export-target-chip:hover{transform:translateY(-1px);box-shadow:0 4px 14px color-mix(in srgb,var(--target-accent) 22%,transparent)}.export-target-chip.active{background:color-mix(in srgb,var(--target-accent) 10%,var(--bg2));box-shadow:inset 0 0 0 1px var(--target-accent)}.export-target-name{font-size:var(--fs-lg);font-weight:600}.export-target-soft{font-size:var(--fs-sm);color:var(--text-muted)}.export-detail{border:1px solid var(--border);border-radius:10px;background:var(--bg2);padding:14px;display:flex;flex-direction:column;gap:10px}.export-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.export-detail-head strong{color:var(--target-accent, var(--text))}.export-detail-soft{font-size:var(--fs-sm);color:var(--text-muted);margin-left:8px}.export-detail-actions{display:flex;align-items:center;gap:8px}.export-docs-link{font-size:var(--fs-md);color:var(--text-muted);text-decoration:none}.export-docs-link:hover{color:var(--text);text-decoration:underline}.export-detail-hint{font-size:var(--fs-md);color:var(--text);line-height:1.45}.export-detail-supports{font-size:var(--fs-sm);color:var(--text-muted)}.export-detail-supports span{color:var(--text)}.export-layer-summary{font-size:var(--fs-md);color:var(--text-muted);font-variant-numeric:tabular-nums}.export-empty{font-size:var(--fs-md);color:var(--text-muted);padding:12px 0}.export-preview{max-height:360px;overflow:auto;margin:0;background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font:var(--fs-sm)/1.45 var(--font-mono);color:var(--text);white-space:pre;-moz-tab-size:4;tab-size:4}.export-send{border:1px solid var(--border);border-radius:8px;background:var(--bg2);overflow:hidden}.export-send>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:10px 14px;font-size:var(--fs-md);border-bottom:1px solid transparent;transition:background .12s,border-color .12s}.export-send>summary::-webkit-details-marker{display:none}.export-send>summary:before{content:"▸";color:var(--text-muted);font-size:var(--fs-xs);transition:transform .15s}.export-send[open]>summary:before{transform:rotate(90deg)}.export-send[open]>summary{border-bottom-color:var(--border)}.export-send>summary:hover{background:var(--bg3)}.export-send-summary{font-weight:600;color:var(--text)}.export-send-soft{font-size:var(--fs-sm);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono)}.export-send-body{padding:12px 14px 14px;display:grid;gap:10px;grid-template-columns:2fr 1fr}.export-send-field{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--text-muted)}.export-send-field span{letter-spacing:.04em;text-transform:uppercase;font-weight:600}.export-send-field em{font-style:normal;opacity:.7;text-transform:none;letter-spacing:0;font-weight:400}.export-send-field input{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 9px;font-size:var(--fs-md);font-family:var(--font-mono)}.export-send-field input:focus{outline:none;border-color:color-mix(in srgb,var(--target-accent, var(--accent)) 60%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--target-accent, var(--accent)) 40%,transparent)}.export-send-actions{grid-column:1 / -1;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.export-send-status{grid-column:1 / -1;font:var(--fs-sm)/1.4 var(--font-mono);min-height:16px;color:var(--text-muted)}.export-send-status.ok{color:var(--ok)}.export-send-status.err{color:var(--danger)}.export-send-status.pending{color:var(--mode-cyan-soft)}@media(max-width:720px){.export-send-body{grid-template-columns:1fr}}.code-editor{border:1px solid var(--border);border-radius:10px;background:#0c1018;overflow:hidden;box-shadow:0 8px 28px #00000052,inset 0 0 0 1px #ffffff05;display:flex;flex-direction:column;max-height:480px}:root[data-theme=light] .code-editor{background:var(--panel2);box-shadow:0 4px 18px #0f172a14}.code-editor-head{display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),#11161f;border-bottom:1px solid rgba(255,255,255,.06);font:600 var(--fs-xs)/1 var(--font-mono);letter-spacing:.12em;color:#8ea0b8}:root[data-theme=light] .code-editor-head{background:#eef2f7;color:var(--text2);border-bottom-color:var(--border)}.code-editor-lang{color:var(--target-accent, #c7d3e6)}.code-editor-stats{margin-left:auto;opacity:.7;font-weight:500;letter-spacing:.04em}.code-editor-body{display:grid;grid-template-columns:auto 1fr;min-height:0;overflow:auto;flex:1;font:var(--fs-md)/1.55 var(--font-mono)}.code-gutter{-webkit-user-select:none;user-select:none;text-align:right;padding:12px 10px 12px 14px;color:#4a5468;background:#ffffff04;border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}:root[data-theme=light] .code-gutter{background:#f0f3f8;color:#aab3c0;border-right-color:var(--border)}.code-gutter span{display:block;line-height:1.55}.code-content{margin:0;padding:12px 14px;background:transparent;color:#d6dde8;white-space:pre;-moz-tab-size:2;tab-size:2;font:inherit}:root[data-theme=light] .code-content{color:#2a3140}.code-editor .tok-key{color:#7dd3fc}.code-editor .tok-str{color:#a7f3d0}.code-editor .tok-num{color:#fbbf24}.code-editor .tok-bool{color:#f0abfc;font-weight:600}.code-editor .tok-null{color:#94a3b8;font-style:italic}.code-editor .tok-punct{color:#64748b}.code-editor .tok-kw{color:#c084fc;font-weight:600}.code-editor .tok-comment{color:#6b7280;font-style:italic}.code-editor .tok-dims{color:#fb923c}:root[data-theme=light] .code-editor .tok-key{color:#0369a1}:root[data-theme=light] .code-editor .tok-str{color:#047857}:root[data-theme=light] .code-editor .tok-num{color:#b45309}:root[data-theme=light] .code-editor .tok-bool{color:#a21caf}:root[data-theme=light] .code-editor .tok-null{color:#64748b}:root[data-theme=light] .code-editor .tok-punct{color:#94a3b8}:root[data-theme=light] .code-editor .tok-kw{color:#7c3aed;font-weight:600}:root[data-theme=light] .code-editor .tok-comment{color:#6b7280;font-style:italic}:root[data-theme=light] .code-editor .tok-dims{color:#c2410c}.opt-shell{padding:8px;display:flex;flex-direction:column;flex:1;min-height:0}.opt-workspace{display:grid;--ws-split: 38%;grid-template-columns:minmax(320px,var(--ws-split)) 6px minmax(360px,1fr);gap:0;flex:1;min-height:0}.opt-workspace>.ws-divider{position:relative;cursor:col-resize;background:transparent;z-index:5;touch-action:none;-webkit-user-select:none;user-select:none}.opt-workspace>.ws-divider:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:8px 2px;border-radius:2px;background:var(--border);opacity:.6;transition:opacity .15s,background .15s}.opt-workspace>.ws-divider:hover:before,.opt-workspace>.ws-divider:active:before{opacity:1;background:var(--accent3, var(--accent))}.opt-config,.opt-results{display:flex;flex-direction:column;min-height:0;overflow:hidden}.opt-config .panel-head,.opt-results .panel-head{display:flex;align-items:baseline;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);flex:none}.opt-form{padding:12px 14px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.opt-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.opt-row-tight{grid-template-columns:1fr 1fr 1fr}.opt-form label{display:flex;flex-direction:column;gap:3px;font-size:var(--fs-sm);color:var(--text2)}.opt-form input,.opt-form select{font-size:var(--fs-md);padding:5px 7px;border:1px solid var(--border);border-radius:5px;background:var(--bg2);color:var(--text)}.opt-form input:focus,.opt-form select:focus{outline:none;border-color:var(--accent3)}.opt-section-title{margin:8px 0 2px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}.opt-layer-sweeps{display:flex;flex-direction:column;gap:8px}.opt-layer-card{border:1px solid var(--border);border-radius:6px;padding:8px 10px;background:var(--panel2)}.opt-layer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.opt-layer-title{font-weight:700;font-size:var(--fs-md);color:var(--text)}.opt-layer-sub{font-size:var(--fs-xs);color:var(--text3)}.opt-layer-toggles{display:flex;gap:4px;flex-wrap:wrap}.opt-pill{font-size:var(--fs-xs);padding:3px 7px;border-radius:999px;border:1px solid var(--border);background:var(--bg3);color:var(--text2);cursor:pointer;-webkit-user-select:none;user-select:none}.opt-pill.active{background:var(--accent2);border-color:var(--accent3);color:var(--accent)}.opt-layer-axes{display:flex;flex-direction:column;gap:4px;margin-top:4px}.opt-axis{display:grid;grid-template-columns:60px repeat(3,1fr);gap:4px;font-size:var(--fs-xs);color:var(--text3);align-items:center}.opt-axis input{font-size:var(--fs-sm);padding:3px 5px}.opt-actions{display:flex;align-items:center;gap:8px;padding-top:4px;border-top:1px solid var(--border)}.opt-soft{font-size:var(--fs-sm);color:var(--text3)}.opt-progress-wrap{display:flex;align-items:center;gap:8px}.opt-progress-bar{flex:1;height:8px;background:var(--bg3);border-radius:4px;overflow:hidden}.opt-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent3));transition:width .15s linear}.opt-auto-pick{margin:8px 14px 0;padding:10px 12px;border:1px solid var(--accent3);border-radius:6px;background:var(--accent2);color:var(--text);font-size:var(--fs-md);display:flex;flex-direction:column;gap:4px}.opt-auto-pick strong{color:var(--accent);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase}.opt-auto-pick .opt-auto-actions{display:flex;gap:8px;margin-top:4px}.opt-results-table-wrap{flex:1;min-height:0;overflow:auto;padding:8px 14px}.opt-results-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.opt-results-table th,.opt-results-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}.opt-results-table th{font-weight:700;color:var(--text3);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;background:var(--bg3);position:sticky;top:0}.opt-results-table tr.opt-best td{background:color-mix(in srgb,var(--accent2) 60%,transparent)}.opt-results-table tr.opt-invalid td{color:var(--text3)}.opt-results-table .opt-status-ok{color:var(--ok)}.opt-results-table .opt-status-warn{color:var(--warn)}.opt-results-table .opt-status-err{color:var(--accent)}.opt-results-table .opt-empty{text-align:center;color:var(--text3);padding:24px}.opt-results-table button.opt-apply-btn{font-size:var(--fs-sm);padding:3px 8px}.opt-sensitivity{border-top:1px solid var(--border);flex:none}.opt-sensitivity summary{padding:8px 14px;font-size:var(--fs-sm);font-weight:700;letter-spacing:.06em;cursor:pointer;color:var(--text2)}.opt-sensitivity-body{padding:4px 14px 12px;display:flex;flex-direction:column;gap:5px}.opt-sensitivity-row{display:grid;grid-template-columns:60px 80px 1fr 50px;gap:8px;font-size:var(--fs-sm);align-items:center}.opt-sensitivity-bar{height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}.opt-sensitivity-bar>div{height:100%;background:var(--accent)}@media(max-width:1040px){.opt-workspace{grid-template-columns:1fr}.opt-workspace>.ws-divider{display:none}}
