:root{--sg-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sg-text: #1d1d1f;--sg-text-secondary: #6e6e73;--sg-text-tertiary: #86868b;--sg-line: rgba(0, 0, 0, .08);--sg-surface: #f5f5f7;--sg-surface-elevated: #fbfbfd;--sg-card: #ffffff;--sg-fill: #f5f5f7;--sg-radius-lg: 20px;--sg-radius-md: 12px;--sg-shadow-card: 0 0 0 1px rgba(0, 0, 0, .06), 0 24px 48px -12px rgba(0, 0, 0, .14), 0 8px 20px -8px rgba(0, 0, 0, .08);--sg-shadow-float: 0 0 0 1px rgba(0, 0, 0, .06), 0 12px 32px -8px rgba(0, 0, 0, .12);--sg-overlay: rgba(29, 29, 31, .45);--sg-accent: #0d9488;--sg-accent-hover: #0f766e;--sg-accent-bright: #14b8a6;--sg-accent-muted: #ccfbf1;--sg-accent-soft: #f0fdfa;--sg-accent-border: #99f6e4;--sg-accent-glow: rgba(13, 148, 136, .32);--sg-accent-shadow: rgba(13, 148, 136, .22);--sg-radius-node: 16px;--sg-node-chrome: #f1f5f9;--sg-powered-ring: #22c55e;--sg-powered-header: #ecfdf5;--sg-energy-flow: #22c55e;--sg-energy-flow-mid: #4ade80;--sg-energy-sub: #15803d;--sg-energy-sub-mid: #22c55e;--sg-energy-drain: #f59e0b;--sg-energy-drain-mid: #fbbf24;--sg-energy-consume: #ea580c;--sg-energy-consume-mid: #fb923c;--sg-energy-battery: #0ea5e9;--sg-energy-battery-mid: #38bdf8;--sg-track-bg: #e2e8f0;--sg-dashboard-glass: rgba(255, 255, 255, .82);--sg-dashboard-glass-border: rgba(255, 255, 255, .6)}[data-sg-theme=dark]{color-scheme:dark;--sg-text: #f5f5f7;--sg-text-secondary: #a1a1a6;--sg-text-tertiary: #8e8e93;--sg-line: rgba(255, 255, 255, .12);--sg-surface: #000000;--sg-surface-elevated: #1c1c1e;--sg-card: #2c2c2e;--sg-fill: #3a3a3c;--sg-shadow-card: 0 0 0 1px rgba(255, 255, 255, .06), 0 24px 48px -12px rgba(0, 0, 0, .5), 0 8px 20px -8px rgba(0, 0, 0, .35);--sg-shadow-float: 0 0 0 1px rgba(255, 255, 255, .06), 0 12px 32px -8px rgba(0, 0, 0, .45);--sg-overlay: rgba(0, 0, 0, .65);--sg-accent: #2dd4bf;--sg-accent-hover: #5eead4;--sg-accent-bright: #5eead4;--sg-accent-muted: rgba(45, 212, 191, .15);--sg-accent-soft: rgba(45, 212, 191, .08);--sg-accent-border: rgba(94, 234, 212, .35);--sg-accent-glow: rgba(45, 212, 191, .35);--sg-accent-shadow: rgba(45, 212, 191, .25);--sg-node-chrome: #3a3a3c;--sg-powered-ring: #4ade80;--sg-powered-header: rgba(34, 197, 94, .12);--sg-energy-flow: #4ade80;--sg-energy-flow-mid: #86efac;--sg-energy-sub: #22c55e;--sg-energy-sub-mid: #4ade80;--sg-energy-drain: #fbbf24;--sg-energy-drain-mid: #fcd34d;--sg-energy-consume: #fb923c;--sg-energy-consume-mid: #fdba74;--sg-energy-battery: #38bdf8;--sg-energy-battery-mid: #7dd3fc;--sg-track-bg: #48484a;--sg-dashboard-glass: rgba(44, 44, 46, .92);--sg-dashboard-glass-border: rgba(255, 255, 255, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;font-family:var(--sg-font);-webkit-font-smoothing:antialiased;color:var(--sg-text);background:var(--sg-surface)}[data-sg-theme=dark] .auth-shell{--auth-text: #f5f5f7;--auth-muted: #a1a1a6;--auth-line: rgba(255, 255, 255, .12);--auth-fill: #3a3a3c}.auth-shell{--auth-text: #1d1d1f;--auth-muted: #6e6e73;--auth-line: rgba(0, 0, 0, .08);--auth-fill: #f5f5f7;--auth-radius: 20px;--auth-radius-sm: 12px;--auth-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--auth-shell-pad: max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:var(--auth-shell-pad);box-sizing:border-box;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;font-family:var(--auth-font);-webkit-font-smoothing:antialiased;animation:auth-shell-in .35s cubic-bezier(.22,1,.36,1)}@keyframes auth-shell-in{0%{opacity:0}to{opacity:1}}.auth-shell--continue,.auth-shell--continue .auth-card{animation:none}.auth-shell--fade-out{pointer-events:none;animation:auth-shell-out .45s cubic-bezier(.22,1,.36,1) forwards!important}@keyframes auth-shell-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.auth-shell--fade-out{animation-duration:.12s!important}}.auth-shell__veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:var(--sg-overlay, rgba(29, 29, 31, .45));backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);pointer-events:none}.auth-card{position:relative;z-index:1;width:100%;max-width:420px;min-height:0;max-height:min(720px,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px));display:flex;flex-direction:column;overflow:hidden;color:var(--auth-text);background:var(--sg-surface-elevated, #fbfbfd);border-radius:var(--auth-radius);box-shadow:0 0 0 1px #0000000f,0 32px 64px -16px #00000047,0 12px 24px -8px #0000001f;animation:auth-card-in .45s cubic-bezier(.22,1,.36,1)}@media (orientation: landscape) and (min-width: 640px),(min-width: 800px) and (max-height: 760px){.auth-card{max-width:min(880px,calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px) - 40px));max-height:min(640px,calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px))}}@keyframes auth-card-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-card__header{flex-shrink:0;display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:12px 18px;padding:18px 22px 16px;text-align:left;border-bottom:1px solid var(--auth-line);background:#fff}.auth-card__header-start{display:flex;flex-direction:row;align-items:flex-start;gap:12px;flex:0 1 auto;min-width:0}.auth-card__header .auth-card__title{color:#1d1d1f}.auth-card__header .auth-card__eyebrow,.auth-card__header .auth-card__subtitle{color:#6e6e73}[data-sg-theme=dark] .auth-card__header{background:var(--sg-card);border-bottom-color:var(--auth-line)}[data-sg-theme=dark] .auth-card__header .auth-card__title{color:#f5f5f7}[data-sg-theme=dark] .auth-card__header .auth-card__eyebrow{color:#8e8e93}[data-sg-theme=dark] .auth-card__header .auth-card__subtitle,[data-sg-theme=dark] .auth-card__header .auth-card__attribution{color:#a1a1a6}[data-sg-theme=dark] .auth-card__mark{background:linear-gradient(180deg,#3a3a3c,#2c2c2e);box-shadow:0 0 0 1px var(--auth-line);color:var(--sg-accent-bright, #5eead4)}.auth-card__headline{flex:0 1 auto;min-width:0;max-width:11rem}.auth-card__mark{width:44px;height:44px;margin:0;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:14px;color:#0d9488;background:linear-gradient(180deg,#fafafa,#f5f5f7);box-shadow:0 0 0 1px var(--auth-line)}@media (orientation: landscape) and (min-width: 640px),(min-width: 800px) and (max-height: 760px){.auth-card__header{padding:18px 28px 16px;gap:14px 22px}.auth-card__headline{max-width:12rem}}.auth-card__mark-icon{width:24px;height:24px}.auth-card__eyebrow{margin:0 0 6px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--auth-muted)}.auth-card__title{margin:0;font-size:clamp(20px,4.5svh,26px);font-weight:600;letter-spacing:-.03em;line-height:1.15}.auth-card__subtitle-wrap{flex:1 1 200px;min-width:min(100%,12rem);max-width:none;text-align:right}.auth-card__subtitle{margin:0 0 4px;width:100%;font-size:clamp(11px,2.8svh,13px);font-weight:400;line-height:1.4;color:var(--auth-muted);white-space:pre-line}.auth-card__attribution{margin:0;width:100%;font-size:11px;font-weight:500;font-style:italic;line-height:1.3;letter-spacing:.02em;color:var(--auth-muted);opacity:.9}@media (max-width: 520px){.auth-card__header{flex-direction:column;align-items:center;text-align:center;padding:22px 20px 18px}.auth-card__header-start{justify-content:center;flex-wrap:wrap}.auth-card__headline{max-width:100%;text-align:center}.auth-card__subtitle-wrap{flex:1 1 100%;width:100%;text-align:center}}.auth-card__body{flex:1 1 auto;min-height:0;padding:20px 22px 24px;display:flex;flex-direction:column;gap:18px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-padding-bottom:16px}.auth-card__pane{display:flex;flex-direction:column;gap:18px;min-width:0}.auth-card__pane--credentials{flex:1 1 auto}.auth-card__pane--social{flex:1 1 auto;justify-content:flex-start}@media (orientation: landscape) and (min-width: 640px),(min-width: 800px) and (max-height: 760px){.auth-card__body{flex-direction:row;align-items:stretch;gap:0;padding:22px 28px 26px}.auth-card__pane--credentials,.auth-card__pane--social{flex:1 1 0;justify-content:center}.auth-card__pane--credentials .auth-form{gap:14px}}.auth-segment{position:relative;padding:3px;border-radius:100px;background:var(--auth-fill);box-shadow:inset 0 0 0 1px var(--auth-line)}.auth-segment__track{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;min-width:0}.auth-segment__slider{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:100px;background:#fff;box-shadow:0 1px 3px #0000000f,0 0 0 1px #0000000a;transition:transform .3s cubic-bezier(.32,.72,0,1);pointer-events:none;z-index:0;will-change:transform}.auth-segment__slider--right{transform:translate(100%)}[data-sg-theme=dark] .auth-segment__slider{background:#f5f5f7;box-shadow:0 1px 3px #0003,0 0 0 1px #ffffff14}.auth-segment__btn{position:relative;z-index:1;padding:10px 16px;border:none;border-radius:100px;font-family:inherit;font-size:14px;font-weight:500;color:var(--auth-muted);background:transparent;cursor:pointer;transition:color .25s ease}.auth-segment__btn--active{color:#1d1d1f}.auth-segment__btn:focus-visible{outline:2px solid #0d9488;outline-offset:2px}.auth-segment__btn:disabled{opacity:.45;cursor:not-allowed}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:6px;text-align:left}.auth-field__label{font-size:13px;font-weight:500;color:var(--auth-muted);letter-spacing:-.01em}.auth-input{font-family:inherit;font-size:16px;line-height:1.35;padding:14px 16px;border-radius:var(--auth-radius-sm);border:1px solid transparent;background:var(--auth-fill);color:var(--auth-text);transition:background .2s ease,box-shadow .2s ease}.auth-input::placeholder{color:#aeaeb2}.auth-input:hover{background:#ebebed}.auth-input:focus{outline:none;background:#fff;box-shadow:0 0 0 1px #0000001f}[data-sg-theme=dark] .auth-input:hover{background:#48484a}[data-sg-theme=dark] .auth-input:focus{background:var(--sg-card);box-shadow:0 0 0 1px #ffffff2e}[data-sg-theme=dark] .auth-input::placeholder{color:#8e8e93}.auth-banner{margin:0;padding:12px 14px;border-radius:var(--auth-radius-sm);font-size:13px;line-height:1.45}.auth-banner--error{color:#b91c1c;background:#fef2f2;box-shadow:inset 0 0 0 1px #dc262626}.auth-banner--info{color:#0f766e;background:#f0fdfa;box-shadow:inset 0 0 0 1px #0d948833}.auth-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:var(--auth-radius-sm);font-family:inherit;font-size:15px;font-weight:500;letter-spacing:-.01em;cursor:pointer;border:none;transition:transform .15s ease,opacity .15s ease,background .2s ease}.auth-btn:active:not(:disabled){transform:scale(.99)}.auth-btn:disabled{opacity:.45;cursor:not-allowed}.auth-btn--primary{width:100%;margin-top:4px;color:#fff;background:#1d1d1f;box-shadow:0 1px 2px #00000014}.auth-btn--primary:hover:not(:disabled){background:#000}.auth-btn--primary.auth-btn--loading{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;opacity:1!important;cursor:wait;box-shadow:0 1px 2px #00000014,0 0 0 1px #3b82f673}.auth-btn__spinner{flex-shrink:0;width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:auth-btn-spin .65s linear infinite}@keyframes auth-btn-spin{to{transform:rotate(360deg)}}[data-sg-theme=dark] .auth-btn__spinner{border-color:#0a0a0a59;border-top-color:#0a0a0a}[data-sg-theme=dark] .auth-btn--primary.auth-btn--loading{box-shadow:0 1px 2px #0000001f,0 0 0 1px #7dd3fc80}@media (prefers-reduced-motion: reduce){.auth-btn__spinner{animation:auth-btn-spin 1.2s linear infinite}}.auth-btn--ghost{color:var(--auth-text);background:transparent;box-shadow:inset 0 0 0 1px var(--auth-line)}.auth-btn--ghost:hover:not(:disabled){background:#0000000a}[data-sg-theme=dark] .auth-btn--ghost:hover:not(:disabled){background:#ffffff0f}[data-sg-theme=dark] .auth-btn--primary{color:#0a0a0a;background:#f5f5f7}[data-sg-theme=dark] .auth-btn--primary:hover:not(:disabled){background:#fff}.auth-hr{display:flex;align-items:center;gap:14px;margin:0}.auth-hr__line{flex:1;height:1px;background:var(--auth-line)}.auth-hr__label{font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:lowercase;color:#aeaeb2}[data-sg-theme=dark] .auth-hr__label{color:#8e8e93}@media (orientation: landscape) and (min-width: 640px),(min-width: 800px) and (max-height: 760px){.auth-hr--spine{flex:0 0 52px;flex-direction:column;align-self:stretch;justify-content:center;gap:10px;width:52px;min-height:120px;margin:0;padding:0 8px}.auth-hr--spine .auth-hr__line{flex:1 1 auto;width:1px;min-height:28px;height:auto;background:var(--auth-line)}.auth-hr--spine .auth-hr__label{flex-shrink:0}}.auth-social{display:flex;flex-direction:column;gap:12px}.auth-social__label{margin:0;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:#86868b}[data-sg-theme=dark] .auth-social__label{color:#8e8e93}.auth-social__row{display:flex;flex-direction:column;gap:10px}.auth-social__btn{display:flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 18px;border-radius:var(--auth-radius-sm);font-family:inherit;font-size:15px;font-weight:500;color:#1d1d1f;background:#fff;border:1px solid var(--auth-line);box-shadow:0 1px 2px #0000000a;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.auth-social__btn:hover:not(:disabled){border-color:#0000001f;box-shadow:0 2px 8px #0000000f}.auth-social__btn:focus-visible{outline:2px solid #0d9488;outline-offset:2px}.auth-social__btn:disabled{opacity:.45;cursor:not-allowed}.auth-social__icon{width:20px;height:20px;flex-shrink:0}.auth-social__icon--github{color:#24292f}.auth-foot{padding-top:8px;text-align:center;display:flex;flex-direction:column;gap:8px}.auth-foot__label{margin:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#aeaeb2}[data-sg-theme=dark] .auth-foot__label{color:#8e8e93}.auth-foot__link{align-self:center;padding:6px 4px;border:none;background:none;font-family:inherit;font-size:15px;font-weight:500;color:#0d9488;cursor:pointer;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.auth-foot__link:hover:not(:disabled){border-bottom-color:#0d948873}.auth-foot__link:focus-visible{outline:2px solid #0d9488;outline-offset:4px;border-radius:4px}.auth-foot__link:disabled{opacity:.45;cursor:not-allowed}.auth-confirm{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3100;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 20px max(16px,env(safe-area-inset-bottom));box-sizing:border-box;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--sg-overlay, rgba(29, 29, 31, .5));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:auth-shell-in .25s ease}.auth-confirm__sheet{width:100%;max-width:380px;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px);padding:24px 24px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:var(--auth-radius);background:var(--sg-surface-elevated, #fbfbfd);box-shadow:0 0 0 1px #0000000f,0 24px 48px -12px #00000059}.auth-confirm__text{margin:0 0 24px;font-size:16px;font-weight:400;line-height:1.5;letter-spacing:-.01em;color:var(--sg-text, #1d1d1f)}.auth-confirm__actions{display:flex;flex-direction:column-reverse;gap:10px}.auth-confirm__actions .auth-btn{width:100%;margin-top:0}@media (min-width: 400px){.auth-confirm__actions{flex-direction:row;justify-content:flex-end}.auth-confirm__actions .auth-btn{width:auto;min-width:120px}}.auth-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2999;display:flex;align-items:center;justify-content:center;background:#f5f5f7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-sg-theme=dark] .auth-loading-overlay{background:var(--sg-surface, #000)}.auth-loading-spinner{width:40px;height:40px;border-radius:50%;border:3px solid rgba(0,0,0,.08);border-top-color:#1d1d1f;animation:auth-spin .75s linear infinite}[data-sg-theme=dark] .auth-loading-spinner{border-color:#ffffff1f;border-top-color:#f5f5f7}@keyframes auth-spin{to{transform:rotate(360deg)}}@media (max-height: 720px) and (orientation: portrait){.auth-card__header{padding:20px 20px 16px}.auth-card__mark{width:40px;height:40px}.auth-card__body{padding:14px 18px 18px;gap:14px}.auth-form{gap:12px}.auth-social__row{gap:8px}.auth-btn,.auth-social__btn{min-height:44px}}@media (prefers-reduced-motion: reduce){.auth-shell,.auth-card,.auth-confirm{animation:none}.auth-loading-spinner{animation:none;border-color:#1d1d1f}}.small-screen-notice.auth-shell{z-index:100000}.small-screen-notice__sheet{position:relative;width:100%;max-width:min(336px,calc(100vw - 40px));padding:2rem 1.65rem 2.1rem;text-align:center;background:var(--sg-card);border:1px solid var(--sg-line);border-radius:var(--sg-radius-lg);box-shadow:var(--sg-shadow-card);animation:auth-card-in .45s cubic-bezier(.22,1,.36,1)}.small-screen-notice__icon-wrap{width:3.75rem;height:3.75rem;margin:0 auto 1.15rem;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--sg-accent);background:radial-gradient(circle at 30% 28%,rgba(13,148,136,.18),rgba(13,148,136,.05) 52%,transparent 70%);box-shadow:0 0 0 1px #0d94881f,inset 0 1px #ffffffa6}.small-screen-notice__bolt{width:1.65rem;height:1.65rem;display:block}.small-screen-notice__brand{margin:0 0 .65rem;font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sg-text-tertiary)}.small-screen-notice__headline{margin:0 0 1rem;font-size:clamp(1.28rem,4.2vw,1.45rem);font-weight:600;letter-spacing:-.038em;line-height:1.22;color:var(--sg-text)}.small-screen-notice__sub{margin:0;font-size:.9375rem;line-height:1.58;letter-spacing:-.015em;color:var(--sg-text-secondary)}[data-sg-theme=dark] .small-screen-notice__icon-wrap{color:var(--sg-accent-bright);background:radial-gradient(circle at 30% 28%,rgba(45,212,191,.2),rgba(45,212,191,.06) 55%,transparent 72%);box-shadow:0 0 0 1px #2dd4bf2e,inset 0 1px #ffffff0f}@media (prefers-reduced-motion: reduce){.small-screen-notice.auth-shell,.small-screen-notice__sheet{animation-duration:.12s!important}}.grid-container{width:100%;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;display:flex;flex-direction:column;background-color:var(--sg-surface);position:relative;--sg-chrome-inset-top: max(12px, env(safe-area-inset-top));--sg-dashboard-min-h: 52px;--sg-dashboard-outer-h: var(--sg-dashboard-min-h);--sg-dashboard-control-h: 32px}.grid-main{flex:1;position:relative;min-height:0;width:100%;display:flex;flex-direction:column}.grid-board{flex:1;width:100%;min-height:0;position:relative;display:flex;flex-direction:column;background-color:var(--sg-card)}.grid-board__stage{flex:1;min-height:0;width:100%;position:relative;display:flex;flex-direction:column}.grid-board__stage .react-flow{flex:1;min-height:0;width:100%;position:relative}.grid-board--basemap{background-color:transparent}.grid-board--basemap .grid-board__stage .sg-basemap-google{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.grid-board--basemap .sg-basemap-google--no-key{display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;font-size:13px;line-height:1.45;color:var(--sg-text-secondary);background:var(--sg-surface)}.grid-board--basemap .grid-board__stage .react-flow{z-index:1;background:transparent!important;touch-action:none}.grid-board--basemap .react-flow__pane{cursor:grab}.grid-board--basemap .react-flow__pane:active{cursor:grabbing}.canvas-peak-capacity{position:absolute;top:max(12px,env(safe-area-inset-top));right:auto;bottom:auto;left:max(12px,env(safe-area-inset-left));z-index:1200;pointer-events:none;display:flex;flex-direction:column;justify-content:center;min-width:132px;max-width:min(200px,calc(100vw - 24px));height:var(--sg-dashboard-outer-h);min-height:var(--sg-dashboard-outer-h);max-height:var(--sg-dashboard-outer-h);padding:8px 10px 8px 12px;box-sizing:border-box;border-radius:var(--sg-radius-lg);border:1px solid var(--sg-line);background:var(--sg-dashboard-glass);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 0 0 1px var(--sg-dashboard-glass-border) inset,var(--sg-shadow-float);overflow:hidden}.canvas-peak-capacity__title{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sg-text-tertiary);margin:0 0 8px;line-height:1.1;flex-shrink:0}.canvas-peak-capacity__rows{margin:0;display:flex;flex-direction:column;gap:4px;min-height:0;justify-content:center;flex:1}.canvas-peak-capacity__row{display:flex;align-items:center;justify-content:space-between;gap:8px;line-height:1.15}.canvas-peak-capacity__row dt{margin:0;font-size:10px;font-weight:500;color:var(--sg-text-secondary)}.canvas-peak-capacity__row dd{margin:0;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--sg-text);white-space:nowrap}.grid-board[data-sg-snap-grid=true]:not([data-sg-reduced-motion=true]) .react-flow__node.draggable.dragging{transition:transform .14s cubic-bezier(.25,.46,.45,.94)}@media (prefers-reduced-motion: reduce){.grid-board[data-sg-snap-grid=true] .react-flow__node.draggable.dragging{transition:none}}.sim-dashboard{display:flex;flex-wrap:nowrap;justify-content:center;position:absolute;top:var(--sg-chrome-inset-top);left:50%;transform:translate(-50%);z-index:1100;align-items:center;gap:10px;min-height:var(--sg-dashboard-min-h);max-width:calc(100vw - 16px);padding:8px 10px 8px 12px;border-radius:var(--sg-radius-lg);border:1px solid var(--sg-line);background:var(--sg-dashboard-glass);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:0 0 0 1px var(--sg-dashboard-glass-border) inset,var(--sg-shadow-float);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.sim-dashboard::-webkit-scrollbar{display:none}.time-module{display:flex;flex-direction:column;align-items:center;min-width:72px;flex-shrink:0;gap:2px}.date-badge{font-size:10px;text-transform:uppercase;color:var(--sg-text-tertiary);font-weight:600;letter-spacing:.08em}.digital-clock{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--sg-text)}.digital-clock span{color:var(--sg-accent)}.sim-dashboard__divider{width:1px;align-self:stretch;min-height:36px;margin:2px 2px 2px 0;background:linear-gradient(180deg,transparent 0%,var(--sg-line) 20%,var(--sg-line) 80%,transparent 100%);flex-shrink:0}.sim-dashboard__canvas{display:flex;align-items:center;gap:6px;padding:5px 8px 5px 10px;border-radius:var(--sg-radius-md);background:var(--sg-fill);border:1px solid var(--sg-line);box-shadow:none;flex-shrink:0;min-height:calc(var(--sg-dashboard-control-h) + 10px);box-sizing:border-box}.sim-dashboard__canvas-dropdown{position:relative;flex-shrink:0;min-width:72px;max-width:118px}.sim-dashboard__canvas-trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;min-width:0;height:var(--sg-dashboard-control-h);padding:0 8px 0 10px;box-sizing:border-box;font-family:inherit;font-size:12px;font-weight:500;text-align:left;color:var(--sg-text);border-radius:10px;border:1px solid var(--sg-line);background:var(--sg-card);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.sim-dashboard__canvas-trigger-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-dashboard__canvas-trigger-chevron{flex-shrink:0;color:var(--sg-text-tertiary);transition:transform .15s ease}.sim-dashboard__canvas-trigger--open .sim-dashboard__canvas-trigger-chevron{transform:rotate(180deg)}.sim-dashboard__canvas-trigger:hover:not(:disabled){border-color:#0000001a}.sim-dashboard__canvas-trigger:focus-visible{outline:none;border-color:var(--sg-accent);box-shadow:0 0 0 3px #0d948838}.sim-dashboard__canvas-trigger:disabled{opacity:.5;cursor:not-allowed}.sim-dashboard__canvas-menu{margin:0;padding:2px;list-style:none;max-height:min(280px,40vh);overflow-y:auto;border-radius:var(--sg-radius-md);border:1px solid var(--sg-line);background:var(--sg-card);box-shadow:var(--sg-shadow-float);box-sizing:border-box}.sim-dashboard__canvas-menu-option{display:block;width:100%;padding:5px 8px;border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:500;text-align:left;color:var(--sg-text);background:transparent;cursor:pointer;transition:background .12s ease,color .12s ease}.sim-dashboard__canvas-menu-option:hover{background:var(--sg-fill)}.sim-dashboard__canvas-menu-option:focus-visible{outline:none;background:var(--sg-fill);box-shadow:inset 0 0 0 2px var(--sg-accent)}.sim-dashboard__canvas-menu-option--active{color:var(--sg-accent);background:var(--sg-accent-soft)}[data-sg-theme=dark] .sim-dashboard__canvas-menu-option--active{background:var(--sg-accent-muted)}.user-menu-field-dropdown.sim-dashboard__canvas-dropdown{width:100%;max-width:none;min-width:0}.user-menu-field-dropdown .sim-dashboard__canvas-trigger{height:auto;min-height:42px;padding:0 10px 0 12px;font-size:14px}.sim-dashboard__canvas-icon-btn{flex-shrink:0;width:var(--sg-dashboard-control-h);height:var(--sg-dashboard-control-h);display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--sg-line);background:var(--sg-card);color:var(--sg-text-secondary);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.sim-dashboard__canvas-icon-btn:hover:not(:disabled){color:var(--sg-accent);border-color:#0000001f;background:var(--sg-fill)}.sim-dashboard__canvas-icon-btn:focus-visible{outline:none;border-color:var(--sg-accent);box-shadow:0 0 0 3px #0d948838}.sim-dashboard__canvas-icon-btn:disabled{opacity:.4;cursor:not-allowed}.sim-dashboard__canvas-icon-btn--accent{color:var(--sg-accent);border-color:var(--sg-accent-border);background:var(--sg-accent-soft)}.sim-dashboard__canvas-icon-btn--accent:hover:not(:disabled){color:var(--sg-accent-hover);border-color:var(--sg-accent);background:var(--sg-accent-muted)}.sim-dashboard__canvas-icon-btn--accent:focus-visible{border-color:var(--sg-accent);box-shadow:0 0 0 3px var(--sg-accent-glow)}.sim-dashboard__canvas-icon-btn--danger{color:#dc2626;border-color:#dc262666;background:#dc262614}.sim-dashboard__canvas-icon-btn--danger:hover:not(:disabled){color:#b91c1c;border-color:#b91c1c8c;background:#dc262624}[data-sg-theme=dark] .sim-dashboard__canvas-icon-btn--danger{color:#f87171;border-color:#f8717173;background:#dc26261f}[data-sg-theme=dark] .sim-dashboard__canvas-icon-btn--danger:hover:not(:disabled){color:#fca5a5;border-color:#fca5a58c;background:#dc262633}.sim-dashboard__canvas-icon-btn--danger:focus-visible{border-color:#dc2626;box-shadow:0 0 0 3px #dc262647}.sim-dashboard__canvas-icon{width:16px;height:16px}.sim-dashboard__viewport-group{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.sim-dashboard__geo-hint{margin:0;max-width:220px;padding:0 4px;font-size:10px;line-height:1.25;text-align:center;color:var(--sg-text-secondary)}.sim-dashboard__viewport{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:var(--sg-radius-md);background:var(--sg-fill);border:1px solid var(--sg-line);flex-shrink:0;min-height:calc(var(--sg-dashboard-control-h) + 10px);box-sizing:border-box}.sim-dashboard__viewport-snap--on{border-color:var(--sg-accent)!important;background:#0d94881f!important;color:var(--sg-accent)}.sim-dashboard__viewport-snap--on:hover:not(:disabled){background:#0d94882e!important}[data-sg-theme=dark] .sim-dashboard__viewport-snap--on{border-color:var(--sg-accent-bright)!important;background:#2dd4bf24!important;color:var(--sg-accent-bright)}[data-sg-theme=dark] .sim-dashboard__viewport-snap--on:hover:not(:disabled){background:#2dd4bf38!important}.sim-controls{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:var(--sg-radius-md);background:var(--sg-fill);border:1px solid var(--sg-line);box-shadow:none;flex-shrink:0;min-height:calc(var(--sg-dashboard-control-h) + 10px);box-sizing:border-box}.sim-controls__reset{flex-shrink:0;width:var(--sg-dashboard-control-h);height:var(--sg-dashboard-control-h);display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--sg-line);background:var(--sg-card);color:var(--sg-text-secondary);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.sim-controls__reset:hover{color:var(--sg-accent);border-color:#0000001f;background:var(--sg-fill);box-shadow:0 1px 2px #0000000a}.sim-controls__reset:focus-visible{outline:none;border-color:var(--sg-accent);box-shadow:0 0 0 3px #0d948838}.sim-controls__reset-icon{width:18px;height:18px}.sim-controls__knob-wrap{position:relative;flex-shrink:0;width:var(--sg-dashboard-control-h);height:var(--sg-dashboard-control-h);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.sim-controls__knob-wrap:active{cursor:grabbing}.sim-controls__knob-wrap:focus{outline:none}.sim-controls__knob-wrap:focus-visible{border-radius:50%;box-shadow:0 0 0 2px var(--sg-card),0 0 0 4px var(--sg-accent-glow)}.sim-controls__knob-tick{position:absolute;left:50%;top:50%;z-index:0;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;border-radius:50%;pointer-events:none;background:var(--sg-text-tertiary);opacity:.55;transform:rotate(calc(-135deg + 54deg * var(--sg-knob-tick, 0))) translateY(-13px)}.sim-controls__knob-tick--active{opacity:1;background:var(--sg-accent);box-shadow:0 0 0 1px var(--sg-accent-border)}.sim-controls__knob{position:absolute;z-index:1;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--sg-card);border:1px solid var(--sg-line);box-shadow:0 1px 2px #0000000a}[data-sg-theme=dark] .sim-controls__knob{box-shadow:0 1px 3px #00000040}.sim-controls__knob-dial{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;transform-origin:50% 50%;transition:transform .1s ease-out;pointer-events:none}.sim-controls__knob-grip{position:absolute;left:50%;top:2px;width:2px;height:8px;margin-left:-1px;border-radius:1px;background:var(--sg-accent)}.sim-controls__readout{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;min-width:2.25rem;min-height:var(--sg-dashboard-control-h);margin:0;padding:0 2px 0 4px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--sg-text);text-align:right;border-left:1px solid var(--sg-line)}.sim-controls__readout-suffix{margin-left:1px;font-size:12px;font-weight:600;color:#94a3b8}.user-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 20px max(16px,env(safe-area-inset-bottom));background:var(--sg-overlay);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);animation:user-menu-overlay-in .2s ease-out}@keyframes user-menu-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes user-menu-overlay-out{0%{opacity:1}to{opacity:0}}.user-menu-overlay--closing{animation:user-menu-overlay-out .25s ease-in forwards;pointer-events:none}.user-menu-dialog{position:relative;width:100%;max-width:420px;max-height:min(88vh,720px);overflow:hidden auto;color:var(--sg-text);background:var(--sg-surface-elevated);border-radius:var(--sg-radius-lg);border:1px solid var(--sg-line);box-shadow:var(--sg-shadow-card);padding:0 0 20px;animation:user-menu-dialog-in .25s ease-out;display:flex;flex-direction:column;min-height:0}.user-menu-dialog__body{display:flex;flex-direction:column;flex:1;min-height:0}.user-menu-dialog.user-menu-dialog--grid{max-width:min(900px,96vw);max-height:min(92vh,680px);padding-bottom:0}.user-menu-dialog__masthead{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px 20px;padding:18px 20px 16px;background:var(--sg-card);border-bottom:1px solid var(--sg-line);flex-shrink:0}.user-menu-dialog__masthead-start{display:flex;gap:16px;align-items:flex-start;min-width:0;flex:1 1 200px}.user-menu-dialog__masthead-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}.user-menu-dialog__guest-banner{padding:10px 20px;text-align:center;background:var(--sg-fill);border-bottom:1px solid var(--sg-line);flex-shrink:0}.user-menu-dialog__preferences-notice{grid-column:1 / -1;margin:0 0 8px;padding:12px 14px;border-radius:10px;border:1px solid var(--sg-line);background:linear-gradient(135deg,rgba(13,148,136,.06),var(--sg-fill));border-left:3px solid var(--sg-accent)}.user-menu-dialog__preferences-notice-title{margin:0 0 6px;font-size:.88rem;font-weight:650;line-height:1.3;color:var(--sg-text)}.user-menu-dialog__preferences-notice-body{margin:0;font-size:.8rem;line-height:1.45;color:var(--sg-text-secondary)}.user-menu-section__title-text{flex:1 1 auto;min-width:0}.user-menu-section__badge{flex:0 0 auto;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;color:var(--sg-text-secondary);background:var(--sg-fill);border:1px solid var(--sg-line)}.user-menu-subsection-label{margin:12px 0 8px;padding:8px 10px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--sg-text-tertiary);text-transform:none;line-height:1.35;border-radius:8px;background:var(--sg-fill);border:1px dashed var(--sg-line)}[data-sg-theme=dark] .user-menu-dialog__preferences-notice{background:linear-gradient(135deg,#2dd4bf14,#3a3a3c80);border-left-color:var(--sg-accent-bright)}.user-menu-dialog__main{display:grid;grid-template-columns:1fr;gap:12px;padding:14px 16px 24px;flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}@media (min-width: 560px){.user-menu-dialog--grid .user-menu-dialog__main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:14px;padding:16px 18px 28px}}.user-menu-dialog__main .user-menu-section{padding:0;margin-bottom:0}.user-menu-dialog__main .user-menu-section--card{margin-left:0;margin-right:0;margin-bottom:0;height:100%;padding:16px 16px 24px}.user-menu-field--last{margin-bottom:0}.user-menu-dialog--grid .user-menu-dialog__spectrum{position:relative;height:1px;overflow:hidden;background:var(--sg-line)}.user-menu-dialog__spectrum-flow,.user-menu-dialog__mesh{display:none}@keyframes user-menu-dialog-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes user-menu-dialog-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.98)}}.user-menu-overlay--closing .user-menu-dialog{animation:user-menu-dialog-out .25s ease-in forwards}@media (prefers-reduced-motion: reduce){.user-menu-overlay--closing,.user-menu-overlay--closing .user-menu-dialog{animation-duration:.12s}.user-menu-dialog__spectrum-flow{animation:none}}.user-menu-dialog__eyebrow{margin:0 0 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--sg-text-tertiary)}.user-menu-dialog__avatar{flex-shrink:0;width:48px;height:48px;border-radius:14px;background:var(--sg-fill);border:1px solid var(--sg-line);box-shadow:none;display:flex;align-items:center;justify-content:center;color:var(--sg-accent)}.user-menu-dialog__avatar-icon{width:28px;height:28px}.user-menu-dialog__headline{flex:1;min-width:0;display:flex;flex-direction:column}.user-menu-dialog__title{margin:0 0 14px;font-size:18px;font-weight:600;letter-spacing:-.03em;line-height:1.28;color:var(--sg-text)}.user-menu-dialog__identity{display:flex;flex-direction:column;gap:5px;margin:0;min-width:0}.user-menu-dialog__signed-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--sg-text-tertiary)}.user-menu-dialog__email{margin:0;font-size:13px;font-weight:500;line-height:1.35;letter-spacing:.01em;color:var(--sg-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-dialog__name{margin:0 0 8px;font-size:15px;font-weight:600;color:var(--sg-text)}.user-menu-dialog__name--guest{margin-bottom:6px}.user-menu-dialog__hint{margin:0;font-size:12px;line-height:1.5;color:var(--sg-text-secondary)}.user-menu-dialog__close{flex-shrink:0;width:36px;height:36px;margin:0;border:none;border-radius:10px;background:transparent;color:#94a3b8;font-size:24px;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease}.user-menu-dialog__close:hover{background:var(--sg-fill);color:var(--sg-text)}.user-menu-signout-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:0;padding:10px 14px;border-radius:var(--sg-radius-md);border:1px solid var(--sg-line);background:var(--sg-card);color:var(--sg-text-secondary);font-family:inherit;font-size:14px;font-weight:500;line-height:1.25;cursor:pointer;box-shadow:0 1px 2px #0000000a;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}.user-menu-signout-btn:hover{border-color:#fecaca;color:#b91c1c;background:linear-gradient(180deg,#fffbeb,#fef2f2);box-shadow:0 1px #fffc inset,0 2px 8px #b91c1c14}.user-menu-signout-btn:focus-visible{outline:none;border-color:#f87171;box-shadow:0 0 0 3px #f8717140}.user-menu-signout-btn:active{transform:scale(.99)}.user-menu-signout-btn__icon{width:16px;height:16px;flex-shrink:0;opacity:.9}.user-menu-signout-btn:hover .user-menu-signout-btn__icon{opacity:1}.user-menu-signout-btn--masthead{width:auto;min-width:0;padding:8px 14px;min-height:40px}.user-menu-guest-note{display:flex;align-items:center;justify-content:center;width:100%;padding:11px 16px;border-radius:var(--sg-radius-md);border:1px dashed var(--sg-line);background:var(--sg-fill);box-shadow:none}.user-menu-guest-note__text{font-size:12px;font-weight:500;color:var(--sg-text-tertiary);text-align:center;line-height:1.35}.user-menu-section{padding:0 22px;margin-bottom:8px}.user-menu-section--card{margin-left:16px;margin-right:16px;padding:14px 14px 16px;margin-bottom:12px;border-radius:var(--sg-radius-md);background:var(--sg-card);border:1px solid var(--sg-line);box-shadow:0 1px 2px #00000008}.user-menu-section--card:last-of-type{margin-bottom:8px}.user-menu-section__title{margin:0 0 12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sg-text-tertiary);display:flex;flex-wrap:wrap;align-items:center;gap:8px;row-gap:6px}.user-menu-section__title:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--sg-accent);box-shadow:none}.user-menu-field{margin-bottom:14px}.user-menu-field-label{display:block;font-size:12px;font-weight:500;color:var(--sg-text-secondary);margin-bottom:6px}.user-menu-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--sg-line);cursor:pointer;position:relative}.user-menu-toggle-row:first-of-type{border-top:none}.user-menu-dialog__col--toggles .user-menu-toggle-row:first-of-type{border-top:1px solid var(--sg-line);margin-top:2px;padding-top:14px}.user-menu-dialog__col--toggles .user-menu-toggle-row:last-of-type{padding-bottom:16px}.user-menu-toggle-text{display:flex;flex-direction:column;gap:2px;min-width:0}.user-menu-toggle-title{font-size:13px;font-weight:500;color:var(--sg-text)}.user-menu-toggle-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.user-menu-toggle-unavailable-badge{flex-shrink:0;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sg-text-tertiary);background:#94a3b838;border:1px solid rgba(100,116,139,.35)}[data-sg-theme=dark] .user-menu-toggle-unavailable-badge{color:var(--sg-text-secondary);background:#94a3b81f;border-color:#94a3b859}.user-menu-toggle-hint{font-size:11px;color:var(--sg-text-tertiary);line-height:1.35}.user-menu-toggle-input{position:absolute;right:0;top:50%;transform:translateY(-50%);width:44px;height:24px;margin:0;opacity:0;cursor:pointer;z-index:2}.user-menu-toggle-switch{position:relative;width:44px;height:24px;border-radius:12px;background:#d2d2d7;flex-shrink:0;transition:background .2s ease;pointer-events:none}.user-menu-toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f172a33;transition:transform .2s ease}.user-menu-toggle-input:checked+.user-menu-toggle-switch{background:var(--sg-accent)}.user-menu-toggle-input:checked+.user-menu-toggle-switch:after{transform:translate(20px)}.user-menu-toggle-input:focus-visible+.user-menu-toggle-switch{box-shadow:0 0 0 3px #0d948859}.user-menu-toggle-row:hover .user-menu-toggle-title{color:var(--sg-text)}.user-menu-toggle-row--disabled{cursor:not-allowed;margin-top:6px;padding:12px 12px 14px;border-radius:12px;border:1px dashed rgba(100,116,139,.45);background:#94a3b81a;box-shadow:inset 0 0 0 1px #ffffff59}.user-menu-toggle-row--disabled .user-menu-toggle-title{color:var(--sg-text-secondary)}.user-menu-toggle-row--disabled .user-menu-toggle-hint{color:var(--sg-text-tertiary)}.user-menu-toggle-row--disabled .user-menu-toggle-input{cursor:not-allowed}.user-menu-toggle-row--disabled .user-menu-toggle-switch{background:#aeb0b8;opacity:.88;box-shadow:inset 0 1px 2px #0f172a1f}.user-menu-toggle-row--disabled .user-menu-toggle-switch:after{background:#f1f5f9;box-shadow:0 1px 2px #0f172a2e}.user-menu-toggle-row--disabled:hover .user-menu-toggle-title{color:var(--sg-text-secondary)}[data-sg-theme=dark] .user-menu-toggle-row--disabled{border-color:#94a3b866;background:#94a3b814;box-shadow:inset 0 0 0 1px #ffffff0a}[data-sg-theme=dark] .user-menu-toggle-row--disabled .user-menu-toggle-switch{background:#52525b;opacity:1}[data-sg-theme=dark] .user-menu-toggle-row--disabled .user-menu-toggle-switch:after{background:#a1a1aa}.sim-alert-stack{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--sg-library-tray-h, 80px) + 12px + env(safe-area-inset-bottom,0px));z-index:1600;width:min(420px,calc(100vw - 24px));display:flex;flex-direction:column;gap:8px;pointer-events:none;box-sizing:border-box}.sim-alert-toast{--sim-alert-accent: #94a3b8;--sim-alert-icon-bg: rgba(148, 163, 184, .2);--sim-alert-icon-color: #64748b;pointer-events:auto;position:relative;display:flex;flex-direction:column;padding:0;border-radius:14px;border:1px solid var(--sg-line);background:#fbfbfdf5;backdrop-filter:blur(18px) saturate(1.15);-webkit-backdrop-filter:blur(18px) saturate(1.15);box-shadow:0 0 0 1px #ffffff8c inset,0 10px 36px #0f172a1f;font-size:13px;line-height:1.45;color:var(--sg-text);animation:sim-alert-toast-in .28s ease-out;overflow:hidden}.sim-alert-toast--critical{--sim-alert-accent: #fb7185;--sim-alert-icon-bg: rgba(251, 113, 133, .22);--sim-alert-icon-color: #e11d48;border-color:#fbb6c6f2;background:#fff1f2;box-shadow:0 0 0 1px #fda4af59 inset,0 10px 32px #f43f5e1a}.sim-alert-toast--warning{--sim-alert-accent: #fbbf24;--sim-alert-icon-bg: rgba(251, 191, 36, .22);--sim-alert-icon-color: #d97706;border-color:#fde68af2;background:#fffbeb;box-shadow:0 0 0 1px #fde04766 inset,0 10px 32px #f59e0b17}.sim-alert-toast--positive{--sim-alert-accent: #6ee7b7;--sim-alert-icon-bg: rgba(110, 231, 183, .28);--sim-alert-icon-color: #059669;border-color:#a7f3d0f2;background:#ecfdf5;box-shadow:0 0 0 1px #a7f3d073 inset,0 10px 32px #10b98117}.sim-alert-toast__icon-wrap{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--sim-alert-icon-bg);color:var(--sim-alert-icon-color);box-shadow:0 1px 2px #0f172a0d}.sim-alert-toast__icon-svg{display:block}.sim-alert-toast__row{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px}.sim-alert-toast__timer{height:3px;width:100%;flex-shrink:0;background:#0f172a0f}.sim-alert-toast__timer-bar{height:100%;width:100%;transform-origin:left center;background:var(--sim-alert-accent);animation-name:sim-alert-toast-timer;animation-timing-function:linear;animation-fill-mode:forwards}.sim-alert-toast__timer-bar--static{animation:none;opacity:.45}@keyframes sim-alert-toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}html[data-sg-reduced-motion] .sim-alert-toast__timer-bar:not(.sim-alert-toast__timer-bar--static){animation:none;opacity:.45}@media (prefers-reduced-motion: reduce){.sim-alert-toast__timer-bar{animation:none!important;opacity:.45}}@keyframes sim-alert-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}html[data-sg-reduced-motion] .sim-alert-toast{animation:none}.sim-alert-toast__text{flex:1;min-width:0}.sim-alert-toast__dismiss{flex-shrink:0;width:28px;height:28px;margin:-4px -4px -4px 0;border:none;border-radius:8px;background:transparent;color:var(--sg-text-secondary);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center}.sim-alert-toast__dismiss:hover{background:#0000000f;color:var(--sg-text)}.sim-alert-toast__dismiss:focus-visible{outline:2px solid var(--sim-alert-accent, rgba(13, 148, 136, .45));outline-offset:2px}[data-sg-theme=dark] .sim-alert-toast{--sim-alert-accent: #94a3b8;--sim-alert-icon-bg: rgba(148, 163, 184, .2);--sim-alert-icon-color: #cbd5e1;border-color:#ffffff1a;box-shadow:0 0 0 1px #ffffff0a inset,0 12px 40px #00000059}[data-sg-theme=dark] .sim-alert-toast--critical{--sim-alert-accent: #fda4af;--sim-alert-icon-bg: rgba(251, 113, 133, .22);--sim-alert-icon-color: #fda4af;border-color:#fb718559;background:#2d1f24;box-shadow:0 0 0 1px #fb71851f inset,0 12px 40px #00000059}[data-sg-theme=dark] .sim-alert-toast--warning{--sim-alert-accent: #fbbf24;--sim-alert-icon-bg: rgba(251, 191, 36, .18);--sim-alert-icon-color: #fcd34d;border-color:#fbbf2459;background:#2a2418;box-shadow:0 0 0 1px #fbbf241a inset,0 12px 40px #00000059}[data-sg-theme=dark] .sim-alert-toast--positive{--sim-alert-accent: #6ee7b7;--sim-alert-icon-bg: rgba(52, 211, 153, .2);--sim-alert-icon-color: #6ee7b7;border-color:#34d39959;background:#1a2e28;box-shadow:0 0 0 1px #34d3991f inset,0 12px 40px #00000059}[data-sg-theme=dark] .sim-alert-toast__timer{background:#ffffff1a}[data-sg-theme=dark] .sim-alert-toast__dismiss:hover{background:#ffffff14}.secret-sim-menu{position:fixed;right:max(12px,env(safe-area-inset-right,0px));bottom:calc(var(--sg-library-tray-h, 80px) + 12px + env(safe-area-inset-bottom,0px));z-index:1610;width:min(280px,calc(100vw - 24px));padding:12px 14px 14px;border-radius:14px;border:1px solid var(--sg-line);background:#fbfbfdf5;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 0 0 1px #ffffff8c inset,0 12px 40px #0f172a29;pointer-events:auto}.secret-sim-menu__header{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.secret-sim-menu__title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sg-text)}.secret-sim-menu__hint{font-size:11px;color:var(--sg-text-secondary);line-height:1.35}.secret-sim-menu__map-dev{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;padding:10px 10px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.08);background:#ffffffa6;cursor:pointer}.secret-sim-menu__map-dev-input{margin-top:2px;flex-shrink:0;accent-color:var(--sg-accent);cursor:pointer}.secret-sim-menu__map-dev-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.secret-sim-menu__map-dev-label{font-size:12px;font-weight:600;color:var(--sg-text);line-height:1.3}.secret-sim-menu__map-dev-hint{font-size:11px;color:var(--sg-text-secondary);line-height:1.35}[data-sg-theme=dark] .secret-sim-menu__map-dev{background:#282c34bf;border-color:#ffffff1a}.secret-sim-menu__buttons{display:flex;flex-direction:column;gap:6px}.secret-sim-menu__btn{width:100%;padding:8px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.08);background:#ffffffd9;font-size:12px;font-weight:500;color:var(--sg-text);cursor:pointer;text-align:left}.secret-sim-menu__btn:hover{border-color:#0d948859;background:#0d94880f}.secret-sim-menu__btn:focus-visible{outline:2px solid rgba(13,148,136,.45);outline-offset:2px}[data-sg-theme=dark] .secret-sim-menu{background:#1c2028f5;border-color:#ffffff1a}[data-sg-theme=dark] .secret-sim-menu__btn{background:#282c34f2;border-color:#ffffff14}[data-sg-theme=dark] .secret-sim-menu__btn:hover{background:#0d94881f}.secret-sim-menu__btn--positive{border-color:#15803d59}.secret-sim-menu__btn--positive:hover{border-color:#15803d8c;background:#15803d1a}[data-sg-theme=dark] .secret-sim-menu__btn--positive{border-color:#4ade8059}[data-sg-theme=dark] .secret-sim-menu__btn--positive:hover{border-color:#4ade8080;background:#4ade801f}.library-tray{position:absolute;bottom:0;left:0;right:0;z-index:1000;display:flex;flex-direction:column;align-items:center;padding:0 12px;pointer-events:none}.library-tray__shell{pointer-events:auto;width:100%;max-width:min(920px,calc(100vw - 24px));border-radius:22px 22px 0 0;border:1px solid var(--sg-line);border-bottom:none;background:#fbfbfdeb;backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2);box-shadow:0 0 0 1px #ffffffa6 inset,0 -12px 40px #0f172a1f;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px)}.library-tray__topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:10px 14px 10px 16px;border-bottom:1px solid rgba(0,0,0,.06);flex-shrink:0}.library-tray__topbar-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sg-text-tertiary);white-space:nowrap}.library-tray__topbar-hint{font-size:11px;line-height:1.35;color:var(--sg-text-secondary);text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 560px){.library-tray__topbar-hint{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-align:center}}.library-tray__shell--open .library-tray__body{max-height:260px;opacity:1;transition:max-height .38s cubic-bezier(.4,0,1,1),opacity .26s ease-out}.library-tray__shell--closed .library-tray__body{max-height:0;opacity:0;pointer-events:none;transition:max-height .38s cubic-bezier(.32,.72,0,1),opacity .28s ease}@media (prefers-reduced-motion: reduce){.library-tray__shell--open .library-tray__body,.library-tray__shell--closed .library-tray__body{transition-duration:.01ms}}html[data-sg-reduced-motion] .grid-board[data-sg-snap-grid=true] .react-flow__node.draggable.dragging{transition:none}html[data-sg-reduced-motion] .user-menu-overlay--closing,html[data-sg-reduced-motion] .user-menu-overlay--closing .user-menu-dialog{animation-duration:.12s}html[data-sg-reduced-motion] .user-menu-dialog__spectrum-flow{animation:none}html[data-sg-reduced-motion] .library-tray__shell--open .library-tray__body,html[data-sg-reduced-motion] .library-tray__shell--closed .library-tray__body{transition-duration:.01ms}.library-tray__scroll{text-align:center;width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.2) transparent;padding:4px 8px 6px}.library-tray__scroll::-webkit-scrollbar{height:6px}.library-tray__scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#0000002e}.library-tray__items{display:inline-flex;flex-direction:row;flex-wrap:nowrap;align-items:flex-start;gap:6px;vertical-align:top;padding-bottom:2px;text-align:left}.library-tray .library-node-preview.custom-node-body{flex:0 0 auto;min-width:104px;max-width:128px;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-x;-webkit-touch-callout:none;-webkit-user-drag:element;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.library-tray .library-node-preview:active{cursor:grabbing}.library-tray .library-node-preview:hover{transform:translateY(-2px);border-color:#0d948866;box-shadow:0 0 0 1px #0d94881f,0 10px 28px -8px #0f172a24,0 4px 12px -4px #0000000f}.library-tray .library-node-preview .node-header{padding:6px 8px;font-size:10px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-tray .library-node-preview .node-content{padding:8px 8px 7px;gap:4px}.library-tray .library-node-preview .node-icon{width:28px;height:28px}.library-tray .library-node-preview .node-type-label{font-size:8px;letter-spacing:.08em;line-height:1.2}.library-tray__toggle{position:relative;display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 12px;border-radius:10px;border:1px solid var(--sg-line);background:#ffffffa6;color:var(--sg-text-secondary);font-size:12px;font-weight:500;line-height:1.2;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}.library-tray__toggle-text{font-size:11px;letter-spacing:.02em}@media (max-width: 520px){.library-tray__toggle-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}.library-tray__toggle:hover{border-color:var(--sg-accent-border);color:var(--sg-accent);background:#fffffff2;box-shadow:0 1px 4px #0000000f}.library-tray__toggle:focus-visible{outline:none;border-color:var(--sg-accent);box-shadow:0 0 0 3px #0d948838}.react-flow__node-multiConnect,.react-flow__node-simpleIo{background:none!important;border:none!important;padding:0!important}.custom-node-body{background:var(--sg-card);border:1px solid var(--sg-line);border-radius:var(--sg-radius-node);min-width:168px;box-shadow:0 0 0 1px #0000000a,0 8px 28px -6px #0000001a,0 2px 10px -4px #0000000d;position:relative;overflow:visible;display:flex;flex-direction:column}.custom-node-body--sub-tripped{border-color:#b91c1c73;box-shadow:0 0 0 1px #b91c1c1f,0 8px 28px -6px #b91c1c1f}[data-sg-theme=dark] .custom-node-body--sub-tripped{border-color:#f8717166}.substation-trip-strip{margin-top:6px;padding:0 8px 8px;display:flex;justify-content:center}.substation-restore-btn{width:100%;max-width:148px;padding:7px 10px;border-radius:10px;border:1px solid rgba(13,148,136,.45);background:#0d94881f;color:var(--sg-text);font-size:11px;font-weight:600;letter-spacing:.02em;cursor:pointer;line-height:1.25}.substation-restore-btn:hover:not(:disabled){background:#0d948833;border-color:#0d948899}.substation-restore-btn:disabled{opacity:.45;cursor:not-allowed}.substation-restore-btn:focus-visible{outline:2px solid rgba(13,148,136,.45);outline-offset:2px}[data-sg-theme=dark] .substation-restore-btn{background:#0d94882e;border-color:#2dd4bf59}[data-sg-theme=dark] .substation-restore-btn:hover:not(:disabled){background:#0d948847}.custom-node-inner{overflow:hidden;border-radius:calc(var(--sg-radius-node) - 1px);display:flex;flex-direction:column;width:100%}.node-header{background:var(--sg-node-chrome);padding:11px 14px;font-size:12px;font-weight:600;letter-spacing:-.02em;text-align:center;border-bottom:1px solid var(--sg-line);color:var(--sg-text)}.node-content{display:flex;flex-direction:column;align-items:center;padding:16px 16px 14px;gap:10px;background:#fff}.node-icon{width:40px;height:40px;object-fit:contain}.node-type-label{font-size:10px;text-transform:uppercase;color:#64748b;font-weight:600;letter-spacing:.1em}.node-production-row{width:100%;max-width:132px;margin-top:6px}.node-production-row--text-only{display:flex;justify-content:center;text-align:center}.node-production-row--text-only:has(.node-metric-caption){flex-direction:column;gap:3px;align-items:center}.node-metric-caption{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;max-width:132px;margin-bottom:1px}.node-metric-caption__dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px #00000014}.node-metric-caption__dot--supply{background:linear-gradient(90deg,var(--sg-energy-flow) 0%,var(--sg-energy-flow-mid) 100%)}.node-metric-caption__dot--drain{background:linear-gradient(180deg,var(--sg-energy-drain) 0%,var(--sg-energy-drain-mid) 100%)}.node-metric-caption__dot--loss{background:linear-gradient(90deg,#d97706,#f59e0b)}.node-metric-caption__dot--gen{background:linear-gradient(90deg,var(--sg-energy-flow) 0%,var(--sg-energy-flow-mid) 100%)}.node-metric-caption__dot--hydro-res{background:linear-gradient(90deg,#0284c7,#0ea5e9)}.node-metric-caption__dot--consume{background:linear-gradient(90deg,var(--sg-energy-consume) 0%,var(--sg-energy-consume-mid) 100%)}.node-metric-caption__dot--battery{background:linear-gradient(90deg,var(--sg-energy-battery) 0%,var(--sg-energy-battery-mid) 100%)}.node-metric-caption__label{font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#475569;line-height:1.1}.node-metric-caption--gen .node-metric-caption__label,.node-metric-caption--supply .node-metric-caption__label{color:#16a34a}.node-metric-caption--hydro-res .node-metric-caption__label{color:#0284c7}.node-metric-caption--loss .node-metric-caption__label,.node-metric-caption--drain .node-metric-caption__label{color:#b45309}.node-metric-caption--consume .node-metric-caption__label{color:#ea580c}.node-metric-caption--battery .node-metric-caption__label{color:#0369a1}[data-sg-theme=dark] .node-metric-caption__label{color:#cbd5e1}[data-sg-theme=dark] .node-metric-caption--gen .node-metric-caption__label,[data-sg-theme=dark] .node-metric-caption--supply .node-metric-caption__label{color:#4ade80}[data-sg-theme=dark] .node-metric-caption--hydro-res .node-metric-caption__label{color:#67e8f9}[data-sg-theme=dark] .node-metric-caption--loss .node-metric-caption__label{color:#fbbf24}[data-sg-theme=dark] .node-metric-caption--drain .node-metric-caption__label{color:#fde047}[data-sg-theme=dark] .node-metric-caption--consume .node-metric-caption__label{color:#fed7aa}[data-sg-theme=dark] .node-metric-caption--battery .node-metric-caption__label{color:#38bdf8}.node-power-readout-text{font-size:9px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2;letter-spacing:-.02em;color:#0f172a}.node-power-readout-text--sub{color:#14532d}.node-power-readout-text--drain{color:#92400e}.node-power-readout-text--consume{color:#c2410c}.node-power-readout-text--battery{color:#0c4a6e}[data-sg-theme=dark] .node-power-readout-text{color:#e2e8f0}[data-sg-theme=dark] .node-power-readout-text--sub{color:#86efac}[data-sg-theme=dark] .node-power-readout-text--drain{color:#fffbeb;text-shadow:0 0 1px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.5)}[data-sg-theme=dark] .node-power-readout-text--consume{color:#fff7ed;text-shadow:0 0 1px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.5)}[data-sg-theme=dark] .node-power-readout-text--battery{color:#7dd3fc}.node-type-label+.node-production-row{margin-top:4px}.node-production-track{width:100%;min-height:15px;height:15px;border-radius:999px;background:var(--sg-track-bg);box-shadow:inset 0 1px 2px #0000000f;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.node-power-readout--inbar{position:relative;z-index:2;font-size:9px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02em;color:#0a0a0a;text-shadow:none;pointer-events:none}[data-sg-theme=dark] .node-power-readout--inbar{color:#f1f5f9;text-shadow:0 0 1px rgba(0,0,0,.35),0 1px 2px rgba(0,0,0,.45)}[data-sg-theme=dark] .node-power-readout--inbar-sub{color:#86efac}[data-sg-theme=dark] .node-power-readout--inbar-drain{color:#fffbeb;text-shadow:0 0 1px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.55)}[data-sg-theme=dark] .node-power-readout--inbar-consume{color:#fff7ed;text-shadow:0 0 1px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.55)}.node-production-fill{position:absolute;left:0;top:0;bottom:0;height:100%;border-radius:999px;min-width:0;z-index:0;transition:width .35s cubic-bezier(.22,1,.36,1);background:linear-gradient(90deg,var(--sg-energy-flow) 0%,var(--sg-energy-flow-mid) 100%)}.node-production-fill--sub{background:linear-gradient(90deg,var(--sg-energy-flow) 0%,var(--sg-energy-flow-mid) 100%)}.node-production-track--sub-overload{background:#fff7ed}.node-production-fill--sub-overload{background:linear-gradient(90deg,#c2410c,#ea580c)}.node-production-track--loss{background:#fffbeb}.node-production-fill--loss{background:linear-gradient(90deg,#d97706,#f59e0b)}.node-power-readout-text--loss{color:#92400e}[data-sg-theme=dark] .node-production-track--loss{background:#f59e0b24}[data-sg-theme=dark] .node-power-readout--inbar-loss,[data-sg-theme=dark] .node-power-readout-text--loss{color:#fde68a}.node-production-fill--drain{background:linear-gradient(90deg,var(--sg-energy-drain) 0%,var(--sg-energy-drain-mid) 100%)}.node-production-fill--consume{background:linear-gradient(90deg,var(--sg-energy-consume) 0%,var(--sg-energy-consume-mid) 100%)}[data-sg-theme=dark] .node-metric-caption__dot--drain{background:linear-gradient(180deg,#eab308,#facc15);box-shadow:0 0 0 1px #fde04773,0 0 8px #facc1559}[data-sg-theme=dark] .node-metric-caption__dot--consume{background:linear-gradient(90deg,#ea580c,#fb923c);box-shadow:0 0 0 1px #fdba7473,0 0 8px #f9731659}[data-sg-theme=dark] .node-production-track--drain{background:#facc1538}[data-sg-theme=dark] .node-production-track--consume{background:#f9731633}[data-sg-theme=dark] .node-production-fill--drain{background:linear-gradient(90deg,#ca8a04,#eab308)}[data-sg-theme=dark] .node-production-fill--consume{background:linear-gradient(90deg,#c2410c,#ea580c)}.node-production-track--battery{background:#e0f2fe}.node-production-fill--battery{background:linear-gradient(90deg,var(--sg-energy-battery) 0%,var(--sg-energy-battery-mid) 100%)}[data-sg-theme=dark] .node-power-readout--inbar-battery{color:#7dd3fc}.node-production-track--hydro-res{background:#e0f2fe}.node-production-fill--hydro-res{background:linear-gradient(90deg,#0284c7,#0ea5e9)}.node-power-readout-text--hydro-res{color:#075985}[data-sg-theme=dark] .node-metric-caption__dot--hydro-res{background:linear-gradient(90deg,#06b6d4,#22d3ee);box-shadow:0 0 0 1px #67e8f973,0 0 8px #22d3ee59}[data-sg-theme=dark] .node-production-track--hydro-res{background:#22d3ee38}[data-sg-theme=dark] .node-production-fill--hydro-res{background:linear-gradient(90deg,#0891b2,#22d3ee)}[data-sg-theme=dark] .node-power-readout--inbar-hydro-res,[data-sg-theme=dark] .node-power-readout-text--hydro-res{color:#ecfeff;text-shadow:0 0 1px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.55)}.react-flow__handle{width:12px!important;height:12px!important;background:#1e293b!important;border:2px solid #ffffff!important;border-radius:50%!important;cursor:crosshair!important;z-index:10!important;box-shadow:0 1px 4px #0000001f!important}.react-flow__handle-top{top:-6px}.react-flow__handle-bottom{bottom:-6px}.react-flow__handle-left{left:-6px}.react-flow__handle-right{right:-6px}.react-flow__handle:hover{background:#22c55e!important;border-color:#22c55e!important;box-shadow:0 0 0 2px #22c55e59!important}.react-flow__edge-path{stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.react-flow__edge.rf-edge-short path.react-flow__edge-path{stroke-dasharray:none!important;animation:none!important}html[data-sg-reduced-motion] .react-flow__edge.animated path.react-flow__edge-path{stroke-dasharray:none!important;animation:none!important}.custom-node-body.is-powered{border-color:var(--sg-powered-ring);box-shadow:0 0 0 1px #22c55e33,0 10px 32px -8px #22c55e1f,0 4px 14px -4px #0000000f}.custom-node-body.is-powered .node-header{background:var(--sg-powered-header);color:var(--sg-text)}.custom-node-body.is-powered .node-type-label{color:#16a34a}.custom-node-body--gen-idle{border-color:#cbd5e1;box-shadow:0 0 0 1px #64748b1f,0 8px 24px -8px #0f172a14,0 2px 10px -4px #0000000a}.custom-node-body--gen-idle .node-header{background:#e2e8f0;color:#475569;border-bottom-color:#cbd5e1}.custom-node-body--gen-idle .node-content{background:#f8fafc}.custom-node-body--gen-idle .node-icon{filter:grayscale(1);opacity:.72}.custom-node-body--gen-idle .node-type-label,.custom-node-body--gen-idle .node-metric-caption__label{color:#64748b}.custom-node-body--gen-idle .node-metric-caption__dot--gen{background:linear-gradient(90deg,#94a3b8,#cbd5e1);box-shadow:inset 0 0 0 1px #0000000f}.custom-node-body--gen-idle .node-production-track{background:#f1f5f9}.custom-node-body--gen-idle .node-production-fill,.custom-node-body--gen-idle .node-production-fill--gen{background:linear-gradient(90deg,#94a3b8,#cbd5e1)}.custom-node-body--gen-idle .node-power-readout--inbar{color:#475569;text-shadow:none}.custom-node-body--gen-idle .node-power-readout-text{color:#64748b}.custom-node-body--gen-idle .node-metric-caption__dot--hydro-res{background:linear-gradient(90deg,#64748b,#94a3b8)}.custom-node-body--gen-idle .node-production-track--hydro-res{background:#f1f5f9}.custom-node-body--gen-idle .node-production-fill--hydro-res{background:linear-gradient(90deg,#64748b,#94a3b8)}.custom-node-body--gen-idle .node-power-readout-text--hydro-res,.custom-node-body--gen-idle .node-power-readout--inbar-hydro-res{color:#475569;text-shadow:none}.custom-node-body--gen-idle .react-flow__handle{background:#94a3b8!important;border-color:#f1f5f9!important}.custom-node-body--gen-idle .react-flow__handle:hover{background:#64748b!important;border-color:#e2e8f0!important;box-shadow:0 0 0 2px #64748b40!important}[data-sg-theme=dark] .custom-node-body--gen-idle{border-color:#94a3b859;box-shadow:0 0 0 1px #94a3b826,0 8px 24px -8px #00000059,0 2px 10px -4px #0003}[data-sg-theme=dark] .custom-node-body--gen-idle .node-header{background:#334155a6;color:#cbd5e1;border-bottom-color:#94a3b840}[data-sg-theme=dark] .custom-node-body--gen-idle .node-content{background:#0f172a8c}[data-sg-theme=dark] .custom-node-body--gen-idle .node-type-label,[data-sg-theme=dark] .custom-node-body--gen-idle .node-metric-caption__label{color:#94a3b8}[data-sg-theme=dark] .custom-node-body--gen-idle .node-production-track,[data-sg-theme=dark] .custom-node-body--gen-idle .node-production-track--hydro-res{background:#1e293bd9}[data-sg-theme=dark] .custom-node-body--gen-idle .node-power-readout--inbar,[data-sg-theme=dark] .custom-node-body--gen-idle .node-power-readout-text,[data-sg-theme=dark] .custom-node-body--gen-idle .node-power-readout-text--hydro-res,[data-sg-theme=dark] .custom-node-body--gen-idle .node-power-readout--inbar-hydro-res{color:#cbd5e1}[data-sg-theme=dark] .custom-node-body--gen-idle .react-flow__handle{background:#64748b!important;border-color:#0f172ae6!important}[data-sg-theme=dark] .custom-node-body--gen-idle .react-flow__handle:hover{background:#94a3b8!important;border-color:#475569!important;box-shadow:0 0 0 2px #94a3b859!important}.context-menu{position:fixed;background:var(--sg-card);z-index:2000;border:1px solid var(--sg-line);border-radius:var(--sg-radius-md);padding:6px;box-shadow:var(--sg-shadow-float);display:flex;flex-direction:column;gap:2px;min-width:160px}.context-menu__item{width:100%;padding:8px 12px;border:none;border-radius:8px;background:none;font-family:var(--sg-font);font-size:13px;font-weight:500;cursor:pointer;text-align:left}.context-menu__item--action{color:var(--sg-text)}.context-menu__item--action:hover{background:var(--sg-fill)}.context-menu__item--danger{color:#dc2626}.context-menu__item--danger:hover{background:#fef2f2}[data-sg-theme=dark] .context-menu__item--danger:hover{background:#dc26261f}.reset-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--sg-overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:center;z-index:2000;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));box-sizing:border-box;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.solar-array-dialog__confirm-overlay{z-index:2100}.reset-dialog{font-family:var(--sg-font);color:var(--sg-text);background:var(--sg-surface-elevated);border:1px solid var(--sg-line);border-radius:var(--sg-radius-lg);padding:24px;width:min(100%,360px);max-width:100%;box-shadow:var(--sg-shadow-card);box-sizing:border-box}@media (max-width: 480px){.reset-dialog:not(.solar-array-dialog){max-height:min(88dvh,720px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:18px}}.reset-dialog h3{margin:0 0 10px;font-size:18px;font-weight:600;letter-spacing:-.02em}.reset-dialog p{margin:0;font-size:14px;line-height:1.5;color:var(--sg-text-secondary)}.reset-dialog--surface-pick{width:min(100%,420px)}.reset-dialog__intro{margin:0 0 4px;font-size:14px;line-height:1.5;color:var(--sg-text-secondary)}.reset-dialog__surface-choices{display:flex;flex-direction:column;gap:10px;margin-top:14px}.reset-dialog__surface-btn{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:var(--sg-radius-md);border:1px solid var(--sg-line);background:var(--sg-card);color:inherit;cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease}.reset-dialog__surface-btn:hover{border-color:var(--sg-accent);background:var(--sg-surface)}.reset-dialog__surface-btn-title{display:block;font-size:15px;font-weight:600;margin-bottom:4px}.reset-dialog__surface-btn-hint{display:block;font-size:12px;line-height:1.45;color:var(--sg-text-secondary);font-weight:400}.reset-dialog-buttons--single{margin-top:16px;justify-content:flex-end}.reset-dialog__label{display:block;margin-top:14px;font-size:13px;font-weight:500;color:var(--sg-text-secondary)}.reset-dialog__input{width:100%;margin-top:8px;padding:10px 12px;font-family:inherit;font-size:15px;color:var(--sg-text);background:var(--sg-card);border:1px solid var(--sg-line);border-radius:var(--sg-radius-md);box-sizing:border-box}.reset-dialog__input:focus{outline:none;border-color:var(--sg-accent);box-shadow:0 0 0 3px #0d948833}[data-sg-theme=dark] .reset-dialog__input:focus{box-shadow:0 0 0 3px var(--sg-accent-glow)}.solar-array-dialog{width:min(100%,440px);max-width:100%;padding:20px 20px 16px;box-sizing:border-box;display:flex;flex-direction:column;max-height:min(88dvh,900px);margin-block:auto;flex-shrink:0}.solar-array-dialog__header{display:flex;align-items:center;gap:12px;margin:0 0 18px;flex-shrink:0}.solar-array-dialog__title-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;flex-shrink:0;border-radius:12px;background:var(--sg-accent-soft);color:var(--sg-accent);border:1px solid var(--sg-accent-border);box-shadow:0 1px #0000000a}[data-sg-theme=dark] .solar-array-dialog__title-icon{box-shadow:none}.solar-array-dialog__title-icon svg{width:22px;height:22px}.solar-array-dialog h3.solar-array-dialog__title{margin:0;font-size:18px;font-weight:600;letter-spacing:-.03em;line-height:1.2;color:var(--sg-text);flex:1;min-width:0}.solar-array-dialog__body{display:flex;flex-direction:column;gap:18px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.solar-array-dialog__section{margin:0}.solar-array-dialog__section-heading{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--sg-text-tertiary)}.solar-array-dialog__section-heading--sub{margin:14px 0 6px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sg-text-tertiary)}.solar-array-dialog__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;align-items:start}.solar-array-dialog__field{display:flex;flex-direction:column;min-width:0}@media (max-width: 420px){.solar-array-dialog__grid{grid-template-columns:1fr}}@media (max-width: 480px){.solar-array-dialog{padding:14px 14px 12px;max-height:min(92dvh,900px)}.solar-array-dialog__body{gap:14px}.solar-array-dialog__header{margin-bottom:14px}.solar-array-dialog__curve-card{padding:12px}.solar-array-dialog__presets{padding:12px 0 8px}}@media (max-width: 420px){.solar-array-dialog .reset-dialog-buttons{flex-direction:column;align-items:stretch;gap:8px;margin-top:14px;padding-top:14px}.solar-array-dialog .reset-dialog-buttons .reset-cancel-btn,.solar-array-dialog .reset-dialog-buttons .reset-confirm-btn{width:100%;justify-content:center}}.solar-array-dialog__field .reset-dialog__label{margin-top:0;min-height:2.75em;line-height:1.35;font-size:12px;font-weight:500;color:var(--sg-text-secondary)}.solar-array-dialog__field .reset-dialog__input{margin-top:6px;padding:9px 11px;font-size:14px}.solar-array-dialog__field .reset-dialog__input--time{font-variant-numeric:tabular-nums;letter-spacing:.04em;min-height:42px;padding:8px 10px}.solar-array-dialog--city{width:min(100%,420px)}.solar-array-dialog--city .solar-array-dialog__body{gap:16px}.solar-array-dialog--city .solar-array-dialog__section-heading{margin:0 0 10px;font-size:13px;font-weight:600;letter-spacing:-.02em;text-transform:none;color:var(--sg-text)}.solar-array-dialog--city .solar-array-dialog__section-heading--sub{margin:12px 0 8px;font-size:12px;font-weight:600;letter-spacing:-.01em;text-transform:none;color:var(--sg-text-secondary)}.solar-array-dialog--city .hydro-dialog__week-head{margin-bottom:8px}.solar-array-dialog--city .city-dialog-form{display:flex;flex-direction:column;gap:10px}.solar-array-dialog--city .city-dialog-form__row{display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:center;gap:10px 14px}.solar-array-dialog--city .city-dialog-form__label{margin:0;font-size:13px;font-weight:500;line-height:1.35;color:var(--sg-text-secondary)}.solar-array-dialog--city .city-dialog-form__row .reset-dialog__input{margin-top:0;width:100%;text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 420px){.solar-array-dialog--city .city-dialog-form__row{grid-template-columns:1fr;gap:4px}.solar-array-dialog--city .city-dialog-form__row .reset-dialog__input{text-align:left}}.sg-time-picker{width:100%}button.reset-dialog__input.sg-time-picker__trigger{-moz-appearance:none;appearance:none;-webkit-appearance:none}.sg-time-picker__trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}.sg-time-picker__value{font-variant-numeric:tabular-nums;letter-spacing:.04em}.sg-time-picker__clock{flex-shrink:0;color:var(--sg-text-tertiary);opacity:.9}.sg-time-picker__trigger:hover .sg-time-picker__clock{color:var(--sg-accent)}.sg-time-picker__popover{position:fixed;z-index:2500;width:max-content;max-width:min(200px,calc(100vw - 16px));padding:6px 8px;border-radius:var(--sg-radius-md);border:1px solid var(--sg-line);background:var(--sg-card);box-shadow:var(--sg-shadow-float);box-sizing:border-box}.sg-time-picker__cols{display:flex;align-items:stretch;justify-content:center;gap:0}.sg-time-picker__col{flex:0 0 auto}.sg-time-picker__sep{display:flex;align-items:center;padding:0 2px;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--sg-text-tertiary);-webkit-user-select:none;user-select:none}.sg-time-picker__list{width:38px;max-height:200px;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--sg-line) transparent;padding:2px 0;box-sizing:border-box}.sg-time-picker__list::-webkit-scrollbar{width:4px}.sg-time-picker__list::-webkit-scrollbar-thumb{background:var(--sg-line);border-radius:3px}.sg-time-picker__row{width:100%;min-width:0;min-height:34px;padding:0 2px;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:14px;font-variant-numeric:tabular-nums;border:none;border-radius:8px;background:transparent;color:var(--sg-text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease,box-shadow .12s ease}.sg-time-picker__row:hover{background:var(--sg-fill);color:var(--sg-text)}.sg-time-picker__row--selected{background:var(--sg-accent-soft);color:var(--sg-accent);font-weight:600;box-shadow:inset 0 0 0 1px var(--sg-accent-border)}.sg-time-picker__row--selected:hover{background:var(--sg-accent-soft);color:var(--sg-accent-hover)}[data-sg-theme=dark] .sg-time-picker__row--selected:hover{color:var(--sg-accent-bright)}.solar-array-dialog__intro{margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--sg-text-secondary)}.solar-array-dialog__field-hint{margin:6px 0 0;font-size:11px;line-height:1.4;color:var(--sg-text-tertiary)}.solar-array-dialog__field-hint--block{margin:0 0 10px}.solar-array-dialog__section--bordered{margin-top:4px;padding-top:16px;border-top:1px solid var(--sg-line)}.solar-array-dialog__field--toggle{gap:0}.solar-array-dialog__field--toggle .solar-array-dialog__toggle-row{margin-top:2px}.solar-array-dialog__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;position:relative;min-height:28px}.solar-array-dialog__toggle-title{flex:1;min-width:0;font-size:13px;font-weight:500;line-height:1.35;color:var(--sg-text)}.solar-array-dialog__toggle-input{position:absolute;right:0;top:50%;transform:translateY(-50%);width:48px;height:28px;margin:0;opacity:0;cursor:pointer;z-index:2}.solar-array-dialog__toggle-switch{position:relative;width:48px;height:28px;border-radius:14px;background:#d8d8dd;flex-shrink:0;transition:background .22s ease;pointer-events:none;box-shadow:inset 0 1px 2px #0f172a0f}.solar-array-dialog__toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a1f,0 2px 6px #0f172a14;transition:transform .22s ease}.solar-array-dialog__toggle-input:checked+.solar-array-dialog__toggle-switch{background:var(--sg-accent);box-shadow:inset 0 1px 2px #0000001a}.solar-array-dialog__toggle-input:checked+.solar-array-dialog__toggle-switch:after{transform:translate(20px)}.solar-array-dialog__toggle-input:focus-visible+.solar-array-dialog__toggle-switch{box-shadow:0 0 0 3px #0d948859,inset 0 1px 2px #0f172a0f}.solar-array-dialog__toggle-input:focus-visible:checked+.solar-array-dialog__toggle-switch{box-shadow:0 0 0 3px #0d948866,inset 0 1px 2px #0000001f}.solar-array-dialog__toggle-row:hover .solar-array-dialog__toggle-title{color:var(--sg-text)}[data-sg-theme=dark] .solar-array-dialog__toggle-switch{background:#ffffff1f;box-shadow:inset 0 1px 2px #00000040}[data-sg-theme=dark] .solar-array-dialog__toggle-input:checked+.solar-array-dialog__toggle-switch{background:var(--sg-accent);box-shadow:inset 0 1px 2px #0003}[data-sg-theme=dark] .solar-array-dialog__toggle-switch:after{box-shadow:0 1px 2px #00000059,0 2px 6px #0003}[data-sg-theme=dark] .solar-array-dialog__toggle-input:focus-visible+.solar-array-dialog__toggle-switch{box-shadow:0 0 0 3px #2dd4bf59,inset 0 1px 2px #0003}.solar-array-dialog--hydro .solar-array-dialog__body{gap:14px}.solar-array-dialog__grid--hydro-plant{align-items:start}.solar-array-dialog--hydro .solar-array-dialog__field--hint .solar-array-dialog__field-hint{min-height:2.75em}.solar-array-dialog--hydro .solar-array-dialog__field--ramp{grid-column:1;max-width:100%}@media (max-width: 420px){.solar-array-dialog--hydro .solar-array-dialog__field--ramp{grid-column:1 / -1;max-width:none}}.hydro-dialog__week-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 6px}.hydro-dialog__week-head .solar-array-dialog__section-heading{margin:0}.hydro-dialog__preview-pill{display:inline-flex;align-items:baseline;gap:8px;padding:5px 10px;border-radius:999px;border:1px solid var(--sg-line);background:var(--sg-surface);font-size:12px;line-height:1.2;flex-shrink:0}.hydro-dialog__preview-pill-label{font-weight:500;color:var(--sg-text-tertiary);font-size:11px;letter-spacing:.02em;text-transform:uppercase}.hydro-dialog__preview-pill-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--sg-text);letter-spacing:-.02em}.solar-array-dialog__curve-card .hydro-curve-actions{display:flex;flex-direction:column;gap:10px;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--sg-line)}.hydro-curve-actions__primary{display:flex;flex-wrap:wrap;gap:6px}.hydro-curve-actions__secondary{display:flex;flex-wrap:wrap;align-items:center;gap:4px 2px;padding-left:2px}.hydro-curve-actions__sep{color:var(--sg-text-tertiary);font-size:12px;-webkit-user-select:none;user-select:none}.hydro-curve-actions__text{margin:0;padding:4px 2px;border:none;background:none;font-family:inherit;font-size:12px;font-weight:500;color:var(--sg-accent);text-decoration:underline;text-underline-offset:2px;cursor:pointer;border-radius:4px}.hydro-curve-actions__text:hover{color:var(--sg-accent-hover)}.hydro-curve-actions__text:focus-visible{outline:2px solid var(--sg-accent);outline-offset:2px}.week-inflow-curve-editor .week-inflow-curve-editor__svg{max-height:none;width:100%;aspect-ratio:100 / 54}.solar-array-dialog__presets{display:flex;flex-direction:column;gap:10px;margin:0;padding:14px 0 10px;border-top:1px solid var(--sg-line)}.solar-array-dialog__presets-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}.solar-array-dialog__presets-label{margin:0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--sg-text-tertiary)}.solar-array-dialog__presets-head-actions{flex-shrink:0}.solar-array-dialog__presets-save-btn{white-space:nowrap}.solar-array-dialog__presets-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.solar-array-dialog__presets-form-input{flex:1 1 200px;min-width:0;max-width:100%}.solar-array-dialog__presets-form-cancel{padding:8px 12px;font-size:13px;white-space:nowrap}.solar-array-dialog__presets-form-error{margin:-4px 0 0;font-size:12px;line-height:1.45;color:var(--sg-danger, #c62828)}[data-sg-theme=dark] .solar-array-dialog__presets-form-error{color:var(--sg-danger, #ef9a9a)}.solar-array-dialog__presets-strip{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;gap:8px;width:100%;max-width:100%;padding:0;box-sizing:border-box}.solar-array-dialog__presets-chip{flex:0 0 auto}.solar-array-dialog__user-preset{display:inline-flex;flex:0 0 auto;align-items:stretch;max-width:min(220px,100%);border-radius:999px;overflow:hidden;border:1px solid transparent;background:var(--sg-surface);transition:background .15s ease,border-color .15s ease,transform .12s ease}.solar-array-dialog__user-preset:hover{background:var(--sg-fill);border-color:var(--sg-line)}.solar-array-dialog__user-preset:active{transform:scale(.98)}.solar-array-dialog__user-preset .solar-array-dialog__user-preset-apply{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:0;border:none;box-shadow:inset -1px 0 0 var(--sg-line);background:transparent}.solar-array-dialog__user-preset .solar-array-dialog__user-preset-apply:hover{background:transparent;border-color:transparent;color:inherit}.solar-array-dialog__user-preset-remove{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;margin:0;padding:7px 6px;min-width:28px;font-family:inherit;font-size:12px;font-weight:500;border:none;border-radius:0;background:transparent;color:var(--sg-text-tertiary);cursor:pointer;transition:color .15s ease}.solar-array-dialog__user-preset:hover .solar-array-dialog__user-preset-remove{color:var(--sg-text-secondary)}.solar-array-dialog__user-preset-remove:hover{color:var(--sg-text)}.solar-array-dialog__user-preset-remove:active{transform:none}.solar-array-dialog__user-preset-remove svg{display:block;width:13px;height:13px;stroke-width:2.25}.solar-array-dialog__curve-card{padding:14px;border-radius:14px;border:1px solid var(--sg-line);background:var(--sg-card);box-shadow:0 1px #00000008}[data-sg-theme=dark] .solar-array-dialog__curve-card{box-shadow:none}.solar-array-dialog__nameplate{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px;margin:0;font-size:13px;color:var(--sg-text-secondary)}.solar-array-dialog__nameplate--panels{margin-top:12px;padding-top:12px;border-top:1px solid var(--sg-line)}.solar-array-dialog__nameplate-label{font-weight:500}.solar-array-dialog__nameplate-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--sg-text);letter-spacing:-.02em}.solar-time-row{display:flex;flex-direction:row;align-items:center;gap:8px;margin-top:8px}.solar-time-row__select{flex:1;min-width:0;max-width:6.5rem;margin-top:0!important;padding:10px 32px 10px 12px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--sg-card);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236e6e73' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px 12px}.solar-time-row__sep{flex-shrink:0;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--sg-text-tertiary);-webkit-user-select:none;user-select:none}[data-sg-theme=dark] .solar-time-row__select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a1a1a6' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E")}.solar-array-dialog__curve-card .solar-curve-editor{margin:0}.solar-curve-editor__svg{display:block;width:100%;height:auto;max-height:180px;border-radius:10px;-webkit-user-select:none;user-select:none}.solar-curve-editor__handle{filter:drop-shadow(0 1px 2px rgb(0 0 0 / .12))}.solar-curve-editor__handle:active{cursor:grabbing!important}.solar-curve-editor__axis-labels{display:flex;justify-content:space-between;align-items:flex-start;margin-top:4px;padding:0 1px;font-size:10px;color:var(--sg-text-tertiary)}.solar-curve-editor__axis-y{margin-left:auto}.solar-array-dialog__curve-card .solar-curve-actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--sg-line)}.solar-curve-actions__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:12px;font-weight:500;padding:7px 12px;border-radius:999px;border:1px solid transparent;background:var(--sg-surface);color:var(--sg-text-secondary);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.solar-curve-actions__btn svg{width:14px;height:14px;flex-shrink:0}.solar-curve-actions__btn:hover:not(:disabled){background:var(--sg-fill);color:var(--sg-text);border-color:var(--sg-line)}.solar-curve-actions__btn:active:not(:disabled){transform:scale(.98)}.solar-curve-actions__btn:disabled{opacity:.38;cursor:not-allowed}.reset-dialog-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.solar-array-dialog .reset-dialog-buttons{margin-top:18px;padding-top:16px;border-top:1px solid var(--sg-line);flex-shrink:0}.solar-array-dialog .reset-confirm-btn{background:var(--sg-accent);color:#fff}.solar-array-dialog .reset-confirm-btn:hover{background:var(--sg-accent-hover)}.solar-array-dialog .reset-dialog-buttons .reset-cancel-btn,.solar-array-dialog .reset-dialog-buttons .reset-confirm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.solar-array-dialog .reset-dialog-buttons .reset-cancel-btn svg,.solar-array-dialog .reset-dialog-buttons .reset-confirm-btn svg{width:15px;height:15px;flex-shrink:0}.reset-confirm-btn{background:#1d1d1f;color:#fff;padding:10px 18px;border:none;border-radius:var(--sg-radius-md);font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}.reset-confirm-btn:hover{background:#000}.reset-confirm-btn:disabled{opacity:.45;cursor:not-allowed}.reset-confirm-btn:disabled:hover{background:#1d1d1f}.reset-confirm-btn--danger{background:#dc2626}.reset-confirm-btn--danger:hover:not(:disabled){background:#b91c1c}[data-sg-theme=dark] .reset-confirm-btn--danger{background:#ef4444}[data-sg-theme=dark] .reset-confirm-btn--danger:hover:not(:disabled){background:#f87171}.reset-cancel-btn{padding:10px 18px;border:1px solid var(--sg-line);background:var(--sg-card);border-radius:var(--sg-radius-md);font-family:inherit;font-size:14px;font-weight:500;color:var(--sg-text);cursor:pointer}.reset-cancel-btn:hover{background:var(--sg-fill)}[data-sg-theme=dark] .node-content{background:var(--sg-card)}[data-sg-theme=dark] .node-type-label{color:#94a3b8}[data-sg-theme=dark] .sim-controls__track{background:#48484a}[data-sg-theme=dark] .sim-controls__track-fill{background:var(--sg-accent)}[data-sg-theme=dark] .sim-controls__thumb{background:var(--sg-card);border-color:var(--sg-line)}[data-sg-theme=dark] .library-tray__shell{background:#1c1c1ef0;border-color:var(--sg-line);box-shadow:0 0 0 1px #ffffff0f inset,0 -12px 40px #00000073}[data-sg-theme=dark] .library-tray__topbar{border-bottom-color:#ffffff14}[data-sg-theme=dark] .library-tray__toggle{background:#3a3a3cd9;border-color:var(--sg-line);color:var(--sg-text-secondary)}[data-sg-theme=dark] .library-tray__toggle:hover{border-color:var(--sg-accent-border);color:var(--sg-accent-bright);background:#48484af2}[data-sg-theme=dark] .library-tray .library-node-preview:hover{border-color:var(--sg-accent-border);box-shadow:0 0 0 1px #2dd4bf1f,0 12px 36px -10px #0000008c,0 4px 16px -4px #0006}
