:root{--studio-bg: #edf0f4;--studio-surface-bg: #ffffff;--studio-panel-bg: #f5f7fa;--studio-elevated-bg: #ffffff;--studio-text: #1e1e1e;--studio-text-muted: #5f6368;--studio-text-faint: #9aa0a6;--studio-footer-text: #444444;--studio-border: #d4d4d4;--studio-border-strong: #b0b0b0;--studio-hover-bg: #e8e8e8;--studio-accent: #2563eb;--studio-accent-hover: #1d4ed8;--studio-accent-bg: #dbeafe;--studio-accent-text: #1e3a8a;--studio-topbar-bg: #3b4045;--studio-topbar-text: #f0f0f0;--cat-basic: #64748b;--cat-timer: #2563eb;--cat-counter: #16a34a;--cat-data: #d97706;--studio-error: #dc2626;--studio-success: #16a34a;--studio-warning: #d97706;--studio-energized: #16a34a;--studio-ladder-accent: #0ea5e9;--studio-topbar-gradient: linear-gradient(100deg, #2b3136 0%, #3b4045 45%, #30353b 100%);--studio-grid-dot: rgba(31, 41, 55, .09);--studio-led-on: #22c55e;--studio-led-off: #8a9199;--studio-led-error: #ef4444;--studio-flow: #38bdf8;--studio-bg-code: #ffffff;--studio-text-code: #243247;--studio-input-bg: #f0f0f0;--studio-btn-bg: #e8e8e8;--studio-btn-hover: #dcdcdc;--studio-shadow: 0 1px 2px rgba(0, 0, 0, .06);--studio-shadow-lg: 0 4px 16px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .08);--studio-radius: 6px;--studio-radius-sm: 3px;--studio-font-weight-regular: 400;--studio-font-weight-medium: 500;--studio-font-weight-semibold: 600;--studio-font-weight-bold: 700;--studio-control-height: 28px;--studio-space-unit: 4px;--studio-force-bg: #fff4c2;--studio-force-text: #624700;--studio-syntax-keyword: #2549b5;--studio-syntax-string: #9c4428;--studio-syntax-comment: #52734e;--studio-syntax-number: #7855a3;--studio-font-sans: "Segoe UI", system-ui, -apple-system, sans-serif;--studio-font-mono: "JetBrains Mono", "Cascadia Code", ui-monospace, "SFMono-Regular", monospace;--studio-font-xxs: 11px;--studio-font-xs: 12px;--studio-font-sm: 13px;--studio-font-md: 14px;--studio-font-lg: 15px;--studio-font-xl: 17px;--studio-font-xxl: 20px;--studio-font-base: 13px;--studio-line-height-tight: 1.3;--studio-line-height-base: 1.42;--studio-duration: .14s;--studio-ease: cubic-bezier(.2, 0, 0, 1);--studio-inner-highlight: inset 0 1px 0 rgba(255, 255, 255, .65)}:root[data-theme=dark]{--studio-force-bg: #54451f;--studio-force-text: #ffe7a1;--studio-syntax-keyword: #8eb9ff;--studio-syntax-string: #e4aa88;--studio-syntax-comment: #8aa784;--studio-syntax-number: #c1a4ef;--studio-bg: #1e1e1e;--studio-surface-bg: #252526;--studio-panel-bg: #2d2d30;--studio-elevated-bg: #1e2836;--studio-hover-bg: #232e3b;--studio-text: #e0e0e0;--studio-text-muted: #9d9d9d;--studio-footer-text: #9d9d9d;--studio-text-faint: #5b6b7d;--studio-border: #3e3e42;--studio-border-strong: #3a4a5e;--studio-accent: #4f8ef7;--studio-accent-hover: #6ba1f8;--studio-accent-bg: #1e3a5f;--studio-accent-text: #ffffff;--studio-topbar-bg: #1a1a1d;--studio-topbar-text: #e0e0e0;--studio-error: #f87171;--studio-success: #34d399;--studio-warning: #fbbf24;--studio-energized: #4ade80;--studio-ladder-accent: #38bdf8;--studio-topbar-gradient: linear-gradient(100deg, #121316 0%, #1a1a1d 45%, #15161a 100%);--studio-grid-dot: rgba(148, 163, 184, .09);--studio-led-on: #4ade80;--studio-led-off: #566068;--studio-led-error: #f87171;--studio-bg-code: #1e1e1e;--studio-text-code: #e0e0e0;--studio-input-bg: #1e1e1e;--studio-btn-bg: #3a3a3d;--studio-btn-hover: #454548;--cat-basic: #94a3b8;--cat-timer: #60a5fa;--cat-counter: #34d399;--cat-data: #fbbf24;--studio-shadow: 0 1px 3px rgb(0 0 0 / .4), 0 4px 12px rgb(0 0 0 / .25);--studio-shadow-lg: 0 4px 16px rgb(0 0 0 / .5), 0 8px 32px rgb(0 0 0 / .35);--studio-inner-highlight: inset 0 1px 0 rgb(255 255 255 / .04)}:root[data-theme=light][data-profile=s7-edu]{--studio-accent: #2563eb;--studio-accent-hover: #1d4ed8;--studio-accent-bg: #dbeafe;--studio-accent-text: #1e3a8a;--studio-ladder-accent: #0ea5e9}:root[data-theme=dark][data-profile=s7-edu]{--studio-accent: #4f8ef7;--studio-accent-hover: #6ba1f8;--studio-accent-bg: #1e3a5f;--studio-accent-text: #ffffff;--studio-ladder-accent: #38bdf8}:root[data-theme=light][data-profile=codesys-edu]{--studio-accent: #0d9488;--studio-accent-hover: #0f766e;--studio-accent-bg: #ccfbf1;--studio-accent-text: #134e4a;--studio-ladder-accent: #14b8a6}:root[data-theme=dark][data-profile=codesys-edu]{--studio-accent: #2dd4bf;--studio-accent-hover: #5eead4;--studio-accent-bg: #115e59;--studio-accent-text: #ffffff;--studio-ladder-accent: #2dd4bf}:root[data-theme=light][data-profile=ab-edu]{--studio-accent: #c2410c;--studio-accent-hover: #9a3412;--studio-accent-bg: #ffedd5;--studio-accent-text: #7c2d12;--studio-ladder-accent: #ea580c}:root[data-theme=dark][data-profile=ab-edu]{--studio-accent: #fb923c;--studio-accent-hover: #fdba74;--studio-accent-bg: #7c2d12;--studio-accent-text: #ffffff;--studio-ladder-accent: #fb923c}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--studio-force-bg: #54451f;--studio-force-text: #ffe7a1;--studio-syntax-keyword: #8eb9ff;--studio-syntax-string: #e4aa88;--studio-syntax-comment: #8aa784;--studio-syntax-number: #c1a4ef;--studio-bg: #1e1e1e;--studio-surface-bg: #252526;--studio-panel-bg: #2d2d30;--studio-elevated-bg: #1e2836;--studio-text: #e0e0e0;--studio-text-muted: #9d9d9d;--studio-footer-text: #9d9d9d;--studio-text-faint: #5b6b7d;--studio-border: #3e3e42;--studio-border-strong: #3a4a5e;--studio-hover-bg: #232e3b;--studio-accent: #4f8ef7;--studio-accent-hover: #6ba1f8;--studio-accent-bg: #1e3a5f;--studio-accent-text: #ffffff;--studio-topbar-bg: #1a1a1d;--studio-topbar-text: #e0e0e0;--studio-error: #f87171;--studio-success: #34d399;--studio-warning: #fbbf24;--studio-energized: #4ade80;--studio-ladder-accent: #38bdf8;--studio-topbar-gradient: linear-gradient(100deg, #121316 0%, #1a1a1d 45%, #15161a 100%);--studio-grid-dot: rgba(148, 163, 184, .09);--studio-led-on: #4ade80;--studio-led-off: #566068;--studio-led-error: #f87171;--studio-bg-code: #1e1e1e;--studio-text-code: #e0e0e0;--studio-input-bg: #1e1e1e;--studio-btn-bg: #3a3a3d;--studio-btn-hover: #454548;--cat-basic: #94a3b8;--cat-timer: #60a5fa;--cat-counter: #34d399;--cat-data: #fbbf24;--studio-shadow: 0 1px 3px rgb(0 0 0 / .4), 0 4px 12px rgb(0 0 0 / .25);--studio-shadow-lg: 0 4px 16px rgb(0 0 0 / .5), 0 8px 32px rgb(0 0 0 / .35);--studio-inner-highlight: inset 0 1px 0 rgb(255 255 255 / .04)}}.studio-layout{position:relative;display:grid;grid-template-columns:220px 1fr 260px;grid-template-rows:48px 1fr 140px 32px;grid-template-areas:"topbar topbar topbar" "left main right" "footer footer footer" "status status status";height:100vh;min-width:1024px;font-family:var(--studio-font-sans);font-size:var(--studio-font-base);line-height:var(--studio-line-height-base);color:var(--studio-text);background:var(--studio-bg);overflow:hidden;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}.studio-locked-hint{position:absolute;top:56px;right:16px;z-index:50;display:flex;align-items:center;gap:12px;max-width:440px;padding:10px 12px;background:var(--studio-elevated-bg);border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius);box-shadow:var(--studio-shadow-lg);font-size:var(--studio-font-xs)}.studio-locked-hint__msg{color:var(--studio-text)}.studio-locked-hint__cta{white-space:nowrap}.studio-locked-hint__close{border:none;background:none;color:var(--studio-text-muted);font-size:var(--studio-font-md);cursor:pointer;padding:2px 4px}.studio-btn--locked{opacity:.45;cursor:not-allowed}@media (max-width: 1400px){.studio-layout{grid-template-columns:200px 1fr 240px}}@media (max-width: 1200px){.studio-layout{grid-template-columns:180px 1fr 220px}}.studio-topbar{grid-area:topbar;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--studio-topbar-gradient, var(--studio-topbar-bg));color:var(--studio-topbar-text);box-shadow:var(--studio-shadow);border-bottom:1px solid color-mix(in srgb,var(--studio-accent) 22%,transparent);position:relative;z-index:10}.studio-topbar__led{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle;background:var(--studio-led-off, #8a9199);transition:background var(--studio-duration),box-shadow var(--studio-duration)}.studio-topbar__led[data-run=true]{background:var(--studio-led-on, #22c55e);box-shadow:0 0 6px color-mix(in srgb,var(--studio-led-on, #22c55e) 80%,transparent);animation:studio-led-pulse 2s ease-in-out infinite}@keyframes studio-led-pulse{0%,to{opacity:1}50%{opacity:.55}}.studio-topbar__quick{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.studio-topbar__quick-btn{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:var(--studio-topbar-text);font-family:var(--studio-font-sans);cursor:pointer;border-radius:var(--studio-radius-sm);transition:background .12s ease,border-color .12s ease,transform .12s ease}.studio-topbar__quick-btn:hover{background:#ffffff24;border-color:#ffffff4d;transform:translateY(-1px)}.studio-topbar__quick-btn:active{background:#fff3}.studio-topbar__quick .studio-topbar__quick-btn svg{width:18px;height:18px;flex-shrink:0}.studio-topbar__title{font-weight:600;letter-spacing:.01em}.studio-topbar__profile{margin-left:14px;padding-left:14px;border-left:1px solid rgba(255,255,255,.25);display:inline-flex;align-items:center;gap:8px;font-size:var(--studio-font-xs);font-weight:500;color:var(--studio-topbar-text);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.92}.studio-topbar__profile-indicator{flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--studio-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--studio-accent) 22%,transparent)}.studio-topbar__project{margin-left:14px;padding-left:14px;border-left:1px solid rgba(255,255,255,.25);font-size:var(--studio-font-xs);font-weight:400;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.9}.studio-topbar__project-sep{margin-right:8px;opacity:.5}.studio-topbar__user{display:inline-flex;align-items:center;gap:8px;margin-left:6px;padding:4px 8px 4px 12px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:#ffffff0f;font-size:var(--studio-font-xs);font-weight:500;color:var(--studio-topbar-text);max-width:300px}.studio-topbar__user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.92}.studio-topbar__user-plan{flex:0 0 auto;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--studio-accent) 30%,transparent);color:var(--studio-topbar-text);font-weight:700;letter-spacing:.02em}.studio-topbar__auth{position:relative;display:inline-flex;align-items:center;margin-left:6px}.studio-login{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:flex;flex-direction:column;gap:10px;width:300px;padding:14px 16px 16px;background:var(--studio-elevated-bg);color:var(--studio-text);border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius);box-shadow:var(--studio-shadow-lg)}.studio-login__title{margin:0;font-size:var(--studio-font-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--studio-text-muted);border-bottom:1px solid var(--studio-border);padding-bottom:8px}.studio-login__field{box-sizing:border-box;width:100%;min-height:34px;padding:6px 10px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);background:var(--studio-input-bg);color:var(--studio-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-sm);outline:none;transition:border-color .12s ease,box-shadow .12s ease}.studio-login__field::placeholder{color:var(--studio-text-faint)}.studio-login__field:focus{border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.studio-login__submit{width:100%}.studio-login__error{font-size:var(--studio-font-xs);color:var(--studio-error);line-height:1.35}.studio-topbar__actions{display:flex;align-items:center;gap:8px}.studio-topbar__actions>button,.studio-topbar__user button{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;min-height:38px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:var(--studio-topbar-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-sm);font-weight:600;line-height:1.2;padding:8px 16px;border-radius:var(--studio-radius-sm);cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .12s ease}.studio-topbar__actions>button:hover,.studio-topbar__user button:hover{background:#ffffff24;border-color:#ffffff4d;transform:translateY(-1px)}.studio-topbar__actions>button:active,.studio-topbar__user button:active{background:#fff3}.studio-topbar__actions>button:disabled,.studio-topbar__user button:disabled{opacity:.4;cursor:default;pointer-events:none}.studio-topbar__actions>button.studio-btn--icon,.studio-topbar__user button.studio-btn--icon{min-height:34px;min-width:34px;width:auto;padding:7px;gap:0}.studio-topbar__actions>button.studio-btn--icon svg,.studio-topbar__user button.studio-btn--icon svg{width:18px;height:18px;flex-shrink:0}.studio-topbar__actions button[data-action=run]{border-color:#4ade8073;color:#4ade80}.studio-topbar__actions button[data-action=run]:hover{background:#4ade801f}.studio-topbar__actions button[data-action=stop]{border-color:#f8717173;color:#f87171}.studio-topbar__actions button[data-action=stop]:hover{background:#f871711f}.studio-panel--left{grid-area:left;border-right:1px solid var(--studio-border);padding:12px;overflow-y:auto;background:var(--studio-panel-bg);display:flex;flex-direction:column;gap:12px;box-shadow:var(--studio-inner-highlight)}.studio-panel--right{grid-area:right;border-left:1px solid var(--studio-border);padding:12px;overflow-y:auto;background:var(--studio-panel-bg);box-shadow:var(--studio-inner-highlight)}.studio-workspace{grid-area:main;overflow-y:auto;background:var(--studio-surface-bg);transition:background .12s ease}.studio-footer{grid-area:footer;border-top:1px solid var(--studio-border);padding:8px 16px;display:flex;flex-direction:column;gap:6px;font-size:var(--studio-font-xs);color:var(--studio-footer-text);background:var(--studio-bg)}.studio-statusbar{grid-area:status;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:var(--studio-topbar-bg);color:var(--studio-topbar-text);font-size:var(--studio-font-xxs);font-weight:500;letter-spacing:.01em;border-top:1px solid rgba(255,255,255,.1)}.studio-panel__placeholder{color:var(--studio-text-muted);font-size:var(--studio-font-xxs)}.studio-panel__header{margin:0 0 8px;font-size:var(--studio-font-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--studio-text-muted);padding:4px 0;border-bottom:1px solid var(--studio-border)}.studio-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;min-height:38px;border:1px solid var(--studio-border-strong);background:var(--studio-btn-bg);color:var(--studio-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-sm);font-weight:600;line-height:1.2;padding:8px 16px;border-radius:var(--studio-radius-sm);cursor:pointer;transition:background var(--studio-duration) var(--studio-ease),border-color var(--studio-duration) var(--studio-ease),color var(--studio-duration) var(--studio-ease),transform var(--studio-duration) var(--studio-ease)}.studio-btn:hover{background:var(--studio-btn-hover);border-color:var(--studio-text-muted)}.studio-btn:active{background:var(--studio-btn-hover);transform:scale(.98)}.studio-btn:disabled{opacity:.4;cursor:default;pointer-events:none}.studio-sep-v{width:1px;align-self:stretch;background:currentColor;opacity:.18;margin:2px 4px}.studio-legal{margin:0;font-size:var(--studio-font-xxs);color:var(--studio-text-faint);text-align:right;line-height:1.4}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--studio-bg)}::-webkit-scrollbar-thumb{background:var(--studio-border-strong);border-radius:5px;border:2px solid var(--studio-bg)}::-webkit-scrollbar-thumb:hover{background:var(--studio-text-muted)}::-webkit-scrollbar-corner{background:var(--studio-bg)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.studio-spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--studio-border);border-top-color:var(--studio-accent);border-radius:50%;animation:spin 1s linear infinite}.studio-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;color:var(--studio-text-muted);font-size:13px;gap:8px}.studio-empty-state__icon{font-size:32px;opacity:.5}.studio-empty-state__text{font-weight:500}.studio-empty-state__hint{font-size:12px;opacity:.7}.studio-btn--primary{background:var(--studio-accent);border-color:var(--studio-accent);color:#fff}.studio-btn--primary:hover{background:var(--studio-accent-hover)}.studio-btn--danger{background:var(--studio-error);border-color:var(--studio-error);color:#fff}.studio-btn--danger:hover{background:color-mix(in srgb,var(--studio-error) 80%,black)}.studio-btn--ghost{background:transparent;border-color:transparent;color:var(--studio-text-muted)}.studio-btn--ghost:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.studio-btn--icon{min-height:32px;min-width:32px;padding:7px;display:inline-flex;align-items:center;justify-content:center;gap:0}.studio-btn--icon svg{width:20px;height:20px;flex-shrink:0}.studio-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;border-radius:9px;background:var(--studio-accent);color:#fff}.studio-badge--success{background:var(--studio-success)}.studio-badge--warning{background:var(--studio-warning)}.studio-badge--error{background:var(--studio-error)}.studio-badge--muted{background:var(--studio-border-strong)}.diagnostics-list{margin:4px 0;padding-left:18px;font-size:12px;color:var(--studio-error)}.studio-topbar__plc-mode{margin-left:12px;font-size:var(--studio-font-xs);color:var(--studio-topbar-text);opacity:.85}.studio-topbar__draft-status{font-size:var(--studio-font-xs);color:var(--studio-topbar-text);opacity:.85}.studio-download-blocked{grid-column:1 / -1;margin:0;padding:6px 16px;background:var(--studio-error);color:#fff;font-size:13px}.studio-download-confirm{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--studio-accent-bg);color:var(--studio-accent-text);font-size:13px;border-left:3px solid var(--studio-accent);animation:slideIn .2s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.studio-download-confirm__actions{display:flex;gap:8px}.studio-download-confirm__actions button{padding:6px 14px;font-size:12px;font-weight:600;border-radius:var(--studio-radius-sm);border:1px solid var(--studio-accent);background:var(--studio-surface-bg);color:var(--studio-accent-text);cursor:pointer;transition:background .12s ease,transform .12s ease}.studio-download-confirm__actions button:hover{background:var(--studio-accent);color:#fff;transform:translateY(-1px)}.studio-download-confirm__actions button[data-action=cancel]{border-color:var(--studio-border);color:var(--studio-text-muted)}.studio-download-confirm__actions button[data-action=cancel]:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.studio-text-xs{font-size:11px;line-height:1.4}.studio-text-sm{font-size:12px;line-height:1.5}.studio-text-base{font-size:13px;line-height:1.6}.studio-text-lg{font-size:14px;line-height:1.5}.studio-text-xl{font-size:16px;line-height:1.4;font-weight:600}.studio-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.studio-text-muted{color:var(--studio-text-muted)}.studio-text-faint{color:var(--studio-text-faint)}.project-tree{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.project-tree__list{list-style:none;margin:0;padding:0}.project-tree__node{display:block;width:100%;text-align:left;background:none;border:none;padding:7px 10px;font-size:var(--studio-font-md);color:var(--studio-text);cursor:pointer;border-radius:4px}.project-tree__icon{flex-shrink:0;margin-right:6px;vertical-align:-2px;color:var(--studio-text);opacity:.7}.project-tree__node:hover .project-tree__icon{opacity:1}.project-tree__node--active .project-tree__icon{color:var(--studio-accent);opacity:1}.project-tree__node--group{display:flex;align-items:center;padding:0;border-radius:4px}.project-tree__chevron{flex-shrink:0;width:22px;height:26px;border:none;background:none;color:var(--studio-text-muted);font-size:var(--studio-font-sm);line-height:1;cursor:pointer;border-radius:3px}.project-tree__chevron:hover{color:var(--studio-accent);background:var(--studio-hover-bg)}.project-tree__node-label{flex:1;min-width:0;border:none;background:none;text-align:left;padding:5px 10px 5px 0;font-size:var(--studio-font-md);font-weight:var(--studio-font-weight-regular);color:inherit;cursor:pointer}.project-tree__node-label:hover{color:var(--studio-accent)}.project-tree__node--active .project-tree__node-label{color:var(--studio-accent-text)}.project-tree__block-badge{display:inline-block;margin-right:6px;padding:0 5px;font-family:var(--studio-font-mono);font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-bold);line-height:16px;border-radius:3px;background:var(--studio-hover-bg);color:var(--studio-text-muted)}.project-tree__block-badge--fb{background:color-mix(in srgb,var(--studio-accent) 14%,transparent);color:var(--studio-accent)}.project-tree__node--active .project-tree__block-badge{background:color-mix(in srgb,var(--studio-accent) 22%,transparent);color:var(--studio-accent-text)}.project-tree__node:hover{background:var(--studio-hover-bg)}.project-tree__node--child{padding-left:24px}.project-tree__block-row,.project-tree__new-block{position:relative}.project-tree__block-row:before,.project-tree__new-block:before{content:"";position:absolute;left:13px;top:0;bottom:0;width:1px;background:var(--studio-border)}.project-tree__node--active{background:var(--studio-accent-bg);color:var(--studio-accent-text);font-weight:var(--studio-font-weight-semibold);box-shadow:inset 2px 0 0 var(--studio-accent)}.project-tree__block-row{display:flex;align-items:center}.project-tree__block-row .project-tree__node{flex:1}.project-tree__block-delete{display:none;border:none;background:none;color:var(--studio-text-muted, var(--studio-text));font-size:var(--studio-font-lg);line-height:1;padding:2px 6px;border-radius:4px;cursor:pointer}.project-tree__block-row:hover .project-tree__block-delete{display:block}.project-tree__block-delete:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.project-tree__new-block{display:flex;flex-direction:column;padding-left:24px}.project-tree__new-block__button{border:none;background:none;text-align:left;color:var(--studio-text-muted, var(--studio-text));font-size:var(--studio-font-sm);padding:3px 8px;border-radius:4px;cursor:pointer}.project-tree__new-block__button:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.context-menu{position:fixed;z-index:1000;min-width:180px;padding:6px 0;background:var(--studio-surface-bg);border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);box-shadow:var(--studio-shadow-lg);display:flex;flex-direction:column;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu button{padding:8px 16px;font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-medium);text-align:left;color:var(--studio-text);background:none;border:none;cursor:pointer;white-space:nowrap;transition:background .12s ease,color .12s ease}.context-menu button:hover:not(:disabled){background:var(--studio-accent-bg);color:var(--studio-accent-text)}.context-menu button:disabled{color:var(--studio-text-faint);cursor:default}.context-menu__danger{color:var(--studio-error, #e5484d)!important}.context-menu__danger:hover:not(:disabled){background:#e5484d1a!important;color:var(--studio-error, #e5484d)!important}.ladder-network-card{position:relative;border:1px solid var(--studio-border);border-left:3px solid color-mix(in srgb,var(--studio-accent) 40%,var(--studio-border));border-radius:var(--studio-radius-sm);background:var(--studio-surface-bg);overflow:hidden;transition:border-color .14s ease}.ladder-network-card:hover{border-color:var(--studio-border-strong);border-left-color:var(--studio-accent)}.ladder-network-card__header{padding:10px 16px;background:color-mix(in srgb,var(--studio-accent) 6%,var(--studio-panel-bg));border-bottom:1px solid var(--studio-border)}.ladder-network-card__drag-handle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:2px;cursor:grab;color:var(--studio-text-muted);font-size:var(--studio-font-lg);line-height:1;-webkit-user-select:none;user-select:none;border-radius:3px;flex-shrink:0}.ladder-network-card__drag-handle:hover{color:var(--studio-accent);background:color-mix(in srgb,var(--studio-accent) 10%,transparent)}.ladder-network-card__drag-handle:active{cursor:grabbing}.ladder-network-card__remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:2px;border:none;background:transparent;color:var(--studio-text-muted);font-size:var(--studio-font-lg);line-height:1;cursor:pointer;border-radius:3px;flex-shrink:0;padding:0}.ladder-network-card__remove:hover{color:#c62828;background:color-mix(in srgb,#c62828 10%,transparent)}.ladder-network-card__titlebar{display:flex;align-items:center;gap:6px}.ladder-network-card__netlabel{flex:none;font-size:var(--studio-font-lg);font-weight:var(--studio-font-weight-bold);color:var(--studio-text);font-family:var(--studio-font-sans)}.ladder-network-card__collapse-btn{border:none;background:transparent;color:var(--studio-text-muted);cursor:pointer;font-size:var(--studio-font-xxs);line-height:1;padding:2px 4px;border-radius:3px;transition:background .12s ease,color .12s ease}.ladder-network-card__collapse-btn:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.ladder-network-card__title{margin:0;font-size:var(--studio-font-md);font-weight:var(--studio-font-weight-regular);color:var(--studio-text-muted);cursor:text;flex:1;font-family:var(--studio-font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ladder-network-card__title-input{flex:1;font-size:var(--studio-font-md);font-weight:var(--studio-font-weight-regular)}.ladder-network-card__label{display:inline-flex;align-items:center;gap:4px;margin-left:8px;flex:none}.ladder-network-card__label-badge{font-size:var(--studio-font-sm);color:var(--studio-text-muted)}.ladder-network-card__label-input{width:92px;font-size:var(--studio-font-sm);font-family:var(--studio-font-mono)}.ladder-network-card__title-input,.ladder-network-card__comment-input,.ladder-network-card__label-input{color:var(--studio-text);background:var(--studio-surface-bg);border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);padding:3px 5px}.ladder-network-card__title-input:focus-visible,.ladder-network-card__comment-input:focus-visible,.ladder-network-card__label-input:focus-visible{outline:2px solid var(--studio-accent);outline-offset:1px}.ladder-network-card__comment{margin:4px 0 0;padding-left:18px;font-size:var(--studio-font-sm);color:var(--studio-text-muted);cursor:text}.ladder-network-card__comment--placeholder{font-style:italic;opacity:.5}.ladder-network-card__comment-input{width:calc(100% - 18px);margin-top:4px;margin-left:18px;font-size:var(--studio-font-sm)}.ladder-svg{display:block;height:auto;max-width:100%;margin:14px 18px}.ladder-rail,.ladder-wire,.ladder-symbol-stroke{stroke:var(--studio-text);stroke-width:2.5;stroke-linecap:round;fill:none}.ladder-rail{stroke-width:3}.ladder-address-abs{font-size:var(--studio-font-xs);fill:var(--studio-ladder-accent, var(--studio-accent-text));font-family:var(--studio-font-mono)}.ladder-symbol-name{font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold);fill:var(--studio-text);font-family:var(--studio-font-sans)}.ladder-address-abs--sub{font-size:var(--studio-font-xxs);fill:var(--studio-text-muted)}.ladder-symbol-comment{font-size:var(--studio-font-xxs);fill:var(--studio-text-muted);font-family:var(--studio-font-mono);font-style:italic}.ladder-element--energized .ladder-symbol-name{fill:var(--studio-energized, #2e7d32);font-weight:var(--studio-font-weight-bold)}.ladder-box{fill:var(--studio-surface-bg);stroke:var(--studio-accent-bg);stroke-width:2.5;filter:drop-shadow(0 1px 2px rgb(0 0 0 / .18))}.ladder-box,.ladder-pin,.ladder-pin-label,.ladder-operand-label,.ladder-box-title,.ladder-box-instance,.ladder-wire,.ladder-symbol-stroke,.ladder-symbol-name,.ladder-symbol-comment,.ladder-address-abs{pointer-events:none}.ladder-element-selection--flash{animation:ladder-jump-flash .4s ease-in-out 3}@keyframes ladder-jump-flash{0%,to{stroke-width:2;fill-opacity:.1}50%{stroke-width:5;fill-opacity:.5}}.ladder-box-title{font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-bold);fill:var(--studio-text);font-family:var(--studio-font-sans)}.ladder-operand-label--const{font-weight:var(--studio-font-weight-bold, 700)}.ladder-box-instance{font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-semibold);fill:var(--studio-ladder-accent, var(--studio-accent-text));font-family:var(--studio-font-mono)}.ladder-pin{stroke:var(--studio-text);stroke-width:2.5;stroke-linecap:round}.ladder-pin-label{font-size:var(--studio-font-xxs);fill:var(--studio-text-muted);font-family:var(--studio-font-mono)}.ladder-operand-label{font-size:var(--studio-font-xxs);fill:var(--studio-text);font-family:var(--studio-font-mono)}.ladder-element--energized .ladder-wire,.ladder-element--energized .ladder-symbol-stroke{stroke:var(--studio-energized, #4ade80);stroke-width:3.5}.ladder-element--energized{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--studio-energized, #4ade80) 55%,transparent))}.ladder-element--energized .ladder-box{fill:color-mix(in srgb,var(--studio-energized, #4ade80) 14%,var(--studio-surface-bg));stroke:var(--studio-energized, #4ade80)}.ladder-element--energized .ladder-address-abs,.ladder-element--energized .ladder-symbol-name{fill:var(--studio-energized, #4ade80);font-weight:var(--studio-font-weight-bold)}.ladder-wire-flow{stroke:var(--studio-flow, #38bdf8);stroke-width:2;fill:none;stroke-dasharray:7 15;opacity:0;pointer-events:none}[data-plc-mode=RUN] .ladder-wire-flow{opacity:.85;animation:ladder-wire-flow .9s linear infinite}@keyframes ladder-wire-flow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-22}}[data-plc-mode=RUN] .ladder-element--energized{animation:ladder-energized-breathe 1.8s ease-in-out infinite}@keyframes ladder-energized-breathe{0%,to{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--studio-energized, #4ade80) 55%,transparent))}50%{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--studio-energized, #4ade80) 85%,transparent))}}.ladder-element-selection{fill:var(--studio-accent, #2563eb);fill-opacity:.1;stroke:var(--studio-accent, #2563eb);stroke-width:2;stroke-linejoin:round;pointer-events:none}.ladder-element{cursor:pointer}.ladder-element .ladder-click-target{transition:fill .12s ease}.ladder-element:hover .ladder-click-target{fill:color-mix(in srgb,var(--studio-accent, #2563eb) 10%,transparent)}.ladder-click-target:focus-visible{outline:none;fill:color-mix(in srgb,var(--studio-accent) 12%,transparent);stroke:var(--studio-accent);stroke-width:2;stroke-dasharray:3 2}.ladder-network-card__meta-edit{font:inherit;color:inherit;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--studio-radius-sm);padding:1px 3px;cursor:text;max-width:100%;overflow-wrap:anywhere}.ladder-network-card__meta-edit:not(:disabled):hover,.ladder-network-card__meta-edit:focus-visible{background:var(--studio-hover-bg);border-color:var(--studio-border-strong)}.ladder-network-card__meta-edit:focus-visible{outline:2px solid var(--studio-accent);outline-offset:1px}.ladder-network-card__meta-edit:disabled{opacity:1;cursor:default}.ladder-network-card[data-insert-mode] .ladder-gap[data-insertable] .ladder-gap-indicator{opacity:.65;stroke:var(--studio-accent)}.ladder-gap:focus-within .ladder-gap-indicator{opacity:1;stroke:var(--studio-accent)}.ladder-gap-hit:focus-visible{outline:none;fill:color-mix(in srgb,var(--studio-accent) 14%,transparent);stroke:var(--studio-accent)}.ladder-gap-indicator{stroke:var(--studio-border);stroke-width:1;stroke-dasharray:2 3;opacity:.1;transition:opacity .12s ease,stroke .12s ease}.ladder-gap-hit{fill:transparent}.ladder-svg--dragging .ladder-click-target{pointer-events:none}.ladder-gap:hover .ladder-gap-indicator{stroke:var(--studio-accent-bg);opacity:1}.ladder-rung-insert__line{stroke:var(--studio-accent-bg);stroke-width:2;stroke-dasharray:5 4;opacity:0;transition:opacity .12s ease,stroke .12s ease}.ladder-rung-insert--active .ladder-rung-insert__line{opacity:.7}.ladder-rung-insert--hover .ladder-rung-insert__line{opacity:1;stroke:var(--studio-accent);stroke-width:2.5}.ladder-rung-insert__hit{fill:transparent;pointer-events:none}.ladder-rung-insert__hit--active{pointer-events:all}.ladder-rung-handle__hit{fill:transparent;fill-rule:evenodd}.ladder-rung-handle__dot{fill:var(--studio-border-strong);stroke:var(--studio-surface-bg);stroke-width:1.5;opacity:0;transition:fill .12s ease,opacity .12s ease,r .12s ease}.ladder-rung-handle:hover .ladder-rung-handle__dot,.ladder-rung-handle--dragging .ladder-rung-handle__dot{opacity:1;fill:var(--studio-accent)}.ladder-rung-delete__bg{fill:var(--studio-surface-bg);stroke:var(--studio-border-strong);stroke-width:1;opacity:0;transition:opacity .12s ease,fill .12s ease,stroke .12s ease}.ladder-rung-delete__x{font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-bold);fill:var(--studio-text-muted);text-anchor:middle;dominant-baseline:central;opacity:0;transition:opacity .12s ease,fill .12s ease}.ladder-rung-delete:hover .ladder-rung-delete__bg{opacity:1;fill:var(--studio-error, #c62828);stroke:var(--studio-error, #c62828)}.ladder-rung-delete:hover .ladder-rung-delete__x{opacity:1;fill:#fff}.ladder-rung-delete--disabled .ladder-rung-delete__bg,.ladder-rung-delete--disabled .ladder-rung-delete__x{opacity:0!important;pointer-events:none}.ladder-parallel-add__bg{fill:var(--studio-surface-bg);stroke:var(--studio-accent);stroke-width:1;opacity:0;transition:opacity .12s ease,fill .12s ease}.ladder-parallel-add__x{font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-bold);fill:var(--studio-accent);text-anchor:middle;dominant-baseline:central;opacity:0;transition:opacity .12s ease,fill .12s ease}.ladder-parallel-add:hover .ladder-parallel-add__bg{opacity:1;fill:var(--studio-accent)}.ladder-parallel-add:hover .ladder-parallel-add__x{opacity:1;fill:#fff}.ladder-parallel-remove__bg{fill:var(--studio-surface-bg);stroke:var(--studio-border-strong);stroke-width:1;opacity:0;transition:opacity .12s ease,fill .12s ease,stroke .12s ease}.ladder-parallel-remove__x{font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-bold);fill:var(--studio-text-muted);text-anchor:middle;dominant-baseline:central;opacity:0;transition:opacity .12s ease,fill .12s ease}.ladder-parallel-remove:hover .ladder-parallel-remove__bg{opacity:1;fill:var(--studio-error, #c62828);stroke:var(--studio-error, #c62828)}.ladder-parallel-remove:hover .ladder-parallel-remove__x{opacity:1;fill:#fff}.ladder-parallel-remove--disabled .ladder-parallel-remove__bg,.ladder-parallel-remove--disabled .ladder-parallel-remove__x{opacity:0!important;pointer-events:none}.ladder-editor{display:flex;flex-direction:column;gap:14px;background-color:var(--studio-surface-bg);background-image:radial-gradient(var(--studio-grid-dot, rgba(0, 0, 0, .08)) 1px,transparent 1.5px);background-size:18px 18px}.ladder-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:0;margin:0;min-height:34px}.ladder-toolbar__group{display:inline-flex;align-items:center;flex-shrink:0;gap:2px;padding:0 7px;border-right:1px solid var(--studio-border)}.ladder-toolbar__group:first-child{padding-left:0}.ladder-toolbar__group:last-child{border-right:0;padding-right:0}.ladder-toolbar__view{margin-left:auto}.ladder-toolbar__zoom-level{font-family:var(--studio-font-mono);font-size:var(--studio-font-xs);color:var(--studio-text-muted);min-width:38px;text-align:center;font-variant-numeric:tabular-nums}.ladder-toolbar__instruction>span{display:inline-flex}.ladder-toolbar__instruction svg{width:22px;height:22px}.block-interface{margin-bottom:10px;padding:10px 12px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-panel-bg);font-size:var(--studio-font-md)}.block-interface__title{margin:0 0 8px;font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--studio-text-muted)}.block-interface__columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.block-interface__tabs{display:flex;gap:2px;margin-bottom:10px;border-bottom:1px solid var(--studio-border)}.block-interface__tab{border:none;border-radius:4px 4px 0 0;background:transparent;color:var(--studio-text-muted);font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold);padding:5px 12px;cursor:pointer;position:relative;transition:background .12s ease,color .12s ease}.block-interface__tab:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.block-interface__tab--active{color:var(--studio-text);background:var(--studio-surface-bg)}.block-interface__tab--active:after{content:"";position:absolute;left:-2px;right:-2px;bottom:0;height:2px;background:var(--studio-accent-bg)}.block-interface__content{min-height:0}.block-interface__group-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.block-interface__group-title{margin:0;font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold);color:var(--studio-text)}.block-interface__add{border:1px solid var(--studio-border);border-radius:3px;background:var(--studio-surface-bg);color:var(--studio-text);font-size:var(--studio-font-sm);padding:2px 8px;cursor:pointer}.block-interface__add:hover{background:var(--studio-hover-bg)}.block-interface__empty{margin:4px 0 0;padding:6px 8px;border:1px dashed var(--studio-border);border-radius:3px;color:var(--studio-text-muted);font-size:var(--studio-font-sm)}.block-interface__table{width:100%;border-collapse:collapse}.block-interface__table th{padding:2px 6px;text-align:left;font-weight:var(--studio-font-weight-semibold);font-size:var(--studio-font-xs);color:var(--studio-text-muted);border-bottom:1px solid var(--studio-border)}.block-interface__table td{padding:3px 4px;border-bottom:1px solid var(--studio-border)}.block-interface__input,.block-interface__select{width:100%;padding:3px 6px;border:1px solid var(--studio-border);border-radius:3px;background:var(--studio-surface-bg);color:var(--studio-text);font-size:var(--studio-font-sm)}.block-interface__delete{border:none;background:transparent;color:var(--studio-text-muted);font-size:var(--studio-font-lg);line-height:1;cursor:pointer;padding:0 4px;border-radius:3px}.block-interface__delete:hover{background:var(--studio-hover-bg);color:var(--studio-error)}.st-workspace{height:100%}.st-editor{display:flex;flex-direction:column;gap:8px;height:100%;min-height:260px}.st-editor__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:4px 0}.st-editor__title{font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold)}.st-editor__hint{font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.st-editor__language{margin-left:8px;color:var(--studio-accent);font-family:var(--studio-font-mono)}.st-editor__canvas{flex:1;display:flex;min-height:200px;overflow:hidden;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);background:var(--studio-bg-code)}.st-editor__canvas:focus-within{border-color:var(--studio-accent)}.st-editor__body{position:relative;flex:1;min-width:0}.st-editor__source,.st-editor__highlight,.st-editor__gutter{margin:0;border:0;border-radius:0;padding:12px;font-family:var(--studio-font-mono);font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-regular);line-height:1.7;letter-spacing:0;-moz-tab-size:inherit;tab-size:inherit;white-space:pre}.st-editor__source,.st-editor__highlight{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.st-editor__highlight{overflow:hidden;color:var(--studio-text-code);pointer-events:none}.st-editor__source{resize:none;overflow:auto;background:transparent;color:transparent;caret-color:var(--studio-text-code);outline:none;-webkit-text-fill-color:transparent}.st-editor__source::selection{background:var(--studio-accent-bg);-webkit-text-fill-color:var(--studio-text-code)}.st-editor__gutter{flex:0 0 48px;overflow:hidden;text-align:right;-webkit-user-select:none;user-select:none;background:var(--studio-panel-bg);color:var(--studio-text-muted);border-right:1px solid var(--studio-border)}.st-editor__status{display:flex;justify-content:space-between;font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.st-token--keyword{color:var(--studio-syntax-keyword)}.st-token--string{color:var(--studio-syntax-string)}.st-token--comment{color:var(--studio-syntax-comment)}.st-token--number{color:var(--studio-syntax-number)}.st-editor__line{display:block}.st-editor__line--error{color:var(--studio-error);background:color-mix(in srgb,var(--studio-error) 12%,transparent);box-shadow:inset 3px 0 0 var(--studio-error)}.st-editor__completions{position:absolute;top:8px;right:16px;z-index:5;width:min(240px,80%);max-height:220px;overflow:auto;padding:4px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);background:var(--studio-elevated-bg);box-shadow:var(--studio-shadow-lg)}.st-editor__completions button{display:block;width:100%;border:0;padding:5px 8px;text-align:left;background:transparent;color:var(--studio-text);font-family:var(--studio-font-mono);font-size:var(--studio-font-sm);cursor:pointer}.st-editor__completions [aria-selected=true]{background:var(--studio-accent-bg);color:var(--studio-accent-text)}.st-editor__errors{max-height:100px;overflow:auto;border-left:2px solid var(--studio-error)}.st-editor__errors button{display:block;width:100%;padding:3px 8px;border:0;background:transparent;color:var(--studio-error);text-align:left;cursor:pointer;font-size:var(--studio-font-xs)}.st-editor__errors button:hover{text-decoration:underline}@media (forced-colors: active){.st-editor__source{color:CanvasText;-webkit-text-fill-color:CanvasText}.st-editor__highlight{visibility:hidden}}.ladder-online-menu{position:fixed;z-index:1000;min-width:180px;padding:6px;background:var(--studio-elevated-bg);border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);box-shadow:var(--studio-shadow-lg);display:flex;flex-direction:column;gap:4px;font-size:var(--studio-font-sm);color:var(--studio-text)}.ladder-online-menu__title{font-weight:var(--studio-font-weight-semibold);padding:2px 4px 4px;border-bottom:1px solid var(--studio-border);margin-bottom:2px;font-family:var(--studio-font-mono)}.ladder-online-menu__row{display:flex;gap:4px;align-items:center}.ladder-online-menu__value{flex:1;min-width:40px;padding:3px 6px;background:var(--studio-input-bg);border:1px solid var(--studio-border);border-radius:3px;color:var(--studio-text);font-family:var(--studio-font-mono)}.ladder-online-menu__value:disabled{opacity:.5}.ladder-online-menu__action{padding:4px 8px;background:var(--studio-btn-bg);border:1px solid var(--studio-border);border-radius:3px;color:var(--studio-text);cursor:pointer;text-align:left}.ladder-online-menu__row .ladder-online-menu__action{text-align:center}.ladder-online-menu__action:hover:not(:disabled){background:var(--studio-btn-hover)}.ladder-online-menu__action:disabled{opacity:.4;cursor:not-allowed}.ladder-online-menu__action--force{background:#ffe08a;color:#333;border-color:#d4a017;font-weight:var(--studio-font-weight-semibold)}.ladder-online-menu__action--force:hover:not(:disabled){background:#ffd35c}.element-inspector{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;margin-bottom:8px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-panel-bg);font-size:var(--studio-font-md)}.element-inspector__title{margin:0;flex-basis:100%;font-weight:var(--studio-font-weight-semibold);color:var(--studio-text)}.element-inspector__input{padding:4px 6px;border:1px solid var(--studio-border);border-radius:3px;background:var(--studio-surface-bg);color:var(--studio-text)}.element-inspector__input--invalid{border-color:var(--studio-error);text-decoration:underline wavy var(--studio-error)}.element-inspector__input:focus-visible{outline:2px solid var(--studio-accent);outline-offset:1px}.element-inspector__operand-row{display:flex;align-items:center;gap:6px}.element-inspector__operand-row .element-inspector__input{flex:1 1 auto;min-width:0}.element-inspector__type-badge{flex:none;padding:1px 5px;border:1px solid var(--studio-border);border-radius:3px;background:var(--studio-panel-bg);color:var(--studio-text-muted);font-size:var(--studio-font-xs);line-height:1.5;white-space:nowrap}.element-inspector__type-badge--warn{border-color:var(--studio-error);background:var(--studio-error);color:#fff}.element-inspector__error{margin:0;color:var(--studio-error);font-size:var(--studio-font-sm);flex-basis:100%}.element-inspector__actions{display:flex;gap:6px}.element-inspector--inline{position:fixed;z-index:30;display:block;width:220px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;margin:0;padding:8px 10px;border:1px solid var(--studio-border-strong);border-radius:4px;background:var(--studio-surface-bg);box-shadow:var(--studio-shadow-lg, 0 4px 14px rgb(0 0 0 / .22))}.element-inspector__inline-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.element-inspector__inline-title{font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-semibold);color:var(--studio-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-inspector__inline-close{flex:none;border:none;background:transparent;color:var(--studio-text-muted);font-size:var(--studio-font-lg);line-height:1;cursor:pointer;padding:0 3px;border-radius:3px}.element-inspector__inline-close:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.element-inspector--inline .element-inspector__input{display:block;width:100%;margin-top:2px}.element-inspector--inline label{display:block;margin-top:6px;font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.element-inspector__address-wrap{position:relative}.element-inspector__autocomplete{position:absolute;top:100%;left:0;right:0;z-index:40;margin:2px 0 0;padding:2px;max-height:180px;overflow-y:auto;list-style:none;background:var(--studio-surface-bg);border:1px solid var(--studio-border-strong);border-radius:4px;box-shadow:var(--studio-shadow-lg, 0 4px 14px rgb(0 0 0 / .22))}.element-inspector__autocomplete-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 6px;border-radius:3px;cursor:pointer;color:var(--studio-text)}.element-inspector__autocomplete-item--active{background:var(--studio-hover-bg)}.element-inspector__autocomplete-name{font-weight:var(--studio-font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.element-inspector__autocomplete-addr{color:var(--studio-text-muted);font-size:var(--studio-font-xs)}.element-inspector__hint{flex-basis:100%;margin:4px 0 0;padding:4px 6px;border:1px dashed var(--studio-border);border-radius:3px;color:var(--studio-text-muted);font-size:var(--studio-font-sm)}.element-field__group{flex-basis:100%;display:flex;flex-direction:column;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid var(--studio-border)}.element-field__group-label{margin:0;font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--studio-text-muted)}.hardware-config-editor{display:flex;flex-direction:column;gap:16px}.hardware-config-editor__cpu{display:flex;align-items:center;gap:8px}.hardware-config-editor__rack{display:flex;gap:12px;align-items:stretch}.hardware-config-editor__cpu-block{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:96px;padding:14px 10px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius);background:var(--studio-accent-bg);color:var(--studio-accent-text);box-shadow:var(--studio-shadow)}.hardware-config-editor__cpu-block-label{font-size:var(--studio-font-xxs);font-weight:var(--studio-font-weight-bold);letter-spacing:.08em;text-transform:uppercase;opacity:.75}.hardware-config-editor__cpu-block-name{font-size:var(--studio-font-md);font-weight:var(--studio-font-weight-bold);text-align:center;line-height:1.2}.hardware-config-editor__cpu-block-meta{font-size:var(--studio-font-xxs);opacity:.7;text-align:center}.hardware-config-editor__slots{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-content:start}.hardware-config-editor__slot{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);background:var(--studio-panel-bg);transition:border-color .12s ease,box-shadow .12s ease}.hardware-config-editor__slot--filled{border-color:var(--studio-border-strong);background:var(--studio-surface-bg)}.hardware-config-editor__slot--error{border-color:var(--studio-error);background:color-mix(in srgb,var(--studio-error) 10%,var(--studio-panel-bg))}.hardware-config-editor__slot-number{position:absolute;top:8px;right:10px;font-size:var(--studio-font-xxs);font-weight:var(--studio-font-weight-bold);font-family:var(--studio-font-mono);color:var(--studio-text-faint)}.hardware-config-editor__slot select,.hardware-config-editor__slot input{width:100%;font-size:var(--studio-font-sm);padding:4px 6px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-surface-bg);color:var(--studio-text)}.hardware-config-editor__slot select:disabled,.hardware-config-editor__slot input:disabled{opacity:.5}.hardware-config-editor__slot-address{display:flex;gap:6px;align-items:center}.hardware-config-editor__slot-address input{flex:1;min-width:0}.hardware-config-editor__slot-address button{flex:none;font-size:var(--studio-font-xs);padding:4px 8px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-hover-bg);color:var(--studio-text);cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.hardware-config-editor__slot-address button:hover:not(:disabled){border-color:var(--studio-accent);background:var(--studio-accent-bg)}.hardware-config-editor__slot-address button:disabled{opacity:.5;cursor:not-allowed}.hardware-config-editor__slot-range{font-size:var(--studio-font-xs);font-family:var(--studio-font-mono);color:var(--studio-text-muted);min-height:14px}.hardware-config-editor__error{color:var(--studio-error);font-size:var(--studio-font-sm)}.hardware-config-editor__scene-check{border-top:1px solid var(--studio-border);padding-top:12px}.hardware-config-editor__warnings{margin:4px 0;padding-left:18px;font-size:var(--studio-font-sm);color:var(--studio-error)}.editor-surface{display:flex;flex-direction:column;gap:14px;min-width:0}.editor-header{display:flex;align-items:center;gap:12px;padding:4px 0 14px;border-bottom:1px solid var(--studio-border)}.editor-header__emblem{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--studio-radius);background:var(--studio-accent-bg);color:var(--studio-accent);flex-shrink:0}.editor-header__emblem svg{width:23px;height:23px}.editor-header__copy{min-width:0}.editor-header__copy h2{margin:0;font-size:var(--studio-font-lg);font-weight:var(--studio-font-weight-semibold)}.editor-header__copy p{margin:4px 0 0;font-size:var(--studio-font-xs);color:var(--studio-text-muted);line-height:1.5}.editor-header__meta{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.editor-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);font-size:var(--studio-font-xs);color:var(--studio-text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.editor-chip--accent{color:var(--studio-accent-text);background:var(--studio-accent-bg);border-color:transparent}.editor-chip--warning{color:var(--studio-warning)}.editor-chip--success{color:var(--studio-success)}.editor-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.editor-tools>select{padding:4px 8px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);color:var(--studio-text);background:var(--studio-surface-bg);font-size:var(--studio-font-sm)}.editor-search{display:flex;align-items:center;gap:6px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);background:var(--studio-surface-bg);padding:0 6px;min-width:160px;max-width:340px;flex:1;color:var(--studio-text-muted)}.editor-search:focus-within{border-color:var(--studio-accent)}.editor-search>input{border:0;background:transparent;color:var(--studio-text);width:100%;min-width:0;outline:none;padding:5px 2px;font-size:var(--studio-font-sm)}.editor-search input::-webkit-search-cancel-button{display:none}.editor-search .studio-action-icon{width:15px;height:15px}.editor-tools__count{margin-left:auto;font-size:var(--studio-font-xs);color:var(--studio-text-muted);font-variant-numeric:tabular-nums}.editor-entry{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px;padding:12px;border:1px solid var(--studio-border);border-radius:var(--studio-radius);background:var(--studio-panel-bg)}.editor-field{display:flex;flex-direction:column;gap:5px;min-width:100px;flex:1}.editor-field__label{font-size:var(--studio-font-xs);color:var(--studio-text-muted);font-weight:var(--studio-font-weight-medium)}.editor-entry input,.editor-entry select{min-width:0;width:100%;background:var(--studio-surface-bg);color:var(--studio-text);border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);padding:5px 8px;font-size:var(--studio-font-sm)}.editor-entry input:focus,.editor-entry select:focus{outline:1px solid var(--studio-accent);outline-offset:-1px}.editor-entry .studio-icon-button{background:var(--studio-accent-bg);color:var(--studio-accent-text);border:1px solid color-mix(in srgb,var(--studio-accent) 25%,var(--studio-border))}.editor-surface .editor-entry .studio-icon-button{background:var(--studio-accent-bg);color:var(--studio-accent-text);border-color:color-mix(in srgb,var(--studio-accent) 25%,var(--studio-border))}.editor-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;gap:12px;border:1px dashed var(--studio-border-strong);border-radius:var(--studio-radius);background:var(--studio-panel-bg);text-align:center;font-size:var(--studio-font-sm);color:var(--studio-text-muted)}.editor-empty__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--studio-radius);background:var(--studio-surface-bg);color:var(--studio-accent)}.editor-empty__icon svg{width:26px;height:26px}.editor-empty p{margin:0;line-height:1.6}.editor-hint{display:flex;gap:6px;align-items:center;color:var(--studio-text-muted);font-size:var(--studio-font-xs);margin:0}.editor-table-wrap{min-width:0;overflow:auto;border:1px solid var(--studio-border);border-radius:var(--studio-radius)}.editor-table-wrap table{margin:0}.editor-table-wrap th{height:34px}.editor-table-wrap td{height:38px}.editor-table-wrap tbody tr:last-child td{border-bottom:0}.editor-table-wrap .symbol-table__cell{display:block;min-height:24px;padding:3px;border-radius:var(--studio-radius-sm);cursor:text}.editor-table-wrap .symbol-table__cell:hover{background:var(--studio-hover-bg)}.symbol-table.editor-surface,.hmi-editor.editor-surface,.watch-table.editor-surface{padding:4px;height:auto;overflow:visible}@media (max-width: 1100px){.editor-header{flex-wrap:wrap}.editor-header__meta{margin-left:52px;justify-content:flex-start}}.watch-table{padding:4px 0}.watch-table__add-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.watch-table__input{padding:4px 6px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-surface-bg);color:var(--studio-text)}.watch-table__input--invalid{border-color:var(--studio-error)}.watch-table__error{color:var(--studio-error);font-size:var(--studio-font-sm);margin:0 0 8px}.watch-table__table{border-collapse:collapse;width:100%;font-size:var(--studio-font-md)}.watch-table__table th,.watch-table__table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--studio-border)}.watch-table__datatype{padding:2px 4px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-surface-bg);color:var(--studio-text)}.watch-table__value{font-variant-numeric:tabular-nums;white-space:nowrap}.watch-table__write{width:72px;padding:2px 4px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-surface-bg);color:var(--studio-text)}.watch-table__write[readonly]{opacity:.6;background:transparent}.watch-table__force{padding:2px 8px;border:1px solid var(--studio-border);border-radius:4px;background:var(--studio-surface-bg);color:var(--studio-text);cursor:pointer}.watch-table__force--on,.watch-table__value--forced{background:var(--studio-force-bg);color:var(--studio-force-text);border-color:var(--studio-warning)}.watch-table__row--forced td{background:var(--studio-force-bg)}.watch-table__forced-badge{display:inline-block;margin-left:6px;padding:0 4px;font-size:var(--studio-font-xxs);font-weight:var(--studio-font-weight-bold);color:var(--studio-force-text);background:var(--studio-force-bg);border:1px solid var(--studio-warning);border-radius:3px}.watch-table__force-none{color:var(--studio-text-muted, #888)}.symbol-table{display:flex;flex-direction:column;gap:10px;padding:12px;height:100%;overflow:auto}.symbol-table__add-row{display:flex;gap:6px;align-items:center}.symbol-table__input{padding:5px 8px;border:1px solid var(--studio-border);border-radius:3px;font-size:var(--studio-font-md);font-family:inherit;background:var(--studio-surface-bg);color:var(--studio-text)}.symbol-table__input:focus{outline:none;border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.symbol-table__input--address{width:110px;flex-shrink:0;font-family:monospace}.symbol-table__input--name,.symbol-table__input--comment{flex:1;min-width:120px}.symbol-table__input--type{width:84px;flex-shrink:0;cursor:pointer}.symbol-table__add-row button{padding:5px 14px;border:1px solid var(--studio-accent);border-radius:3px;background:var(--studio-accent);color:#fff;font-size:var(--studio-font-md);cursor:pointer;white-space:nowrap;flex-shrink:0}.symbol-table__add-row button:hover{background:color-mix(in srgb,var(--studio-accent) 85%,#000)}.symbol-table__error{margin:0;padding:6px 10px;border:1px solid #c62828;border-radius:3px;background:color-mix(in srgb,#c62828 8%,transparent);color:#c62828;font-size:var(--studio-font-sm)}.symbol-table__table{width:100%;border-collapse:collapse;font-size:var(--studio-font-md)}.symbol-table__table th{text-align:left;padding:6px 10px;border-bottom:2px solid var(--studio-border-strong);color:var(--studio-text-muted);font-weight:var(--studio-font-weight-semibold);font-size:var(--studio-font-sm);text-transform:uppercase;letter-spacing:.3px}.symbol-table__table td{padding:5px 10px;border-bottom:1px solid var(--studio-border);vertical-align:middle}.symbol-table__table tbody tr:hover{background:color-mix(in srgb,var(--studio-accent) 5%,transparent)}.symbol-table__address{font-family:monospace;font-weight:var(--studio-font-weight-semibold);color:var(--studio-accent);white-space:nowrap}.symbol-table__cell{cursor:text;border-radius:2px;padding:2px 4px;display:inline-block;min-width:20px}.symbol-table__cell:hover{background:color-mix(in srgb,var(--studio-accent) 10%,transparent)}.symbol-table__cell-input{width:100%;padding:3px 6px;border:1px solid var(--studio-accent);border-radius:3px;font-size:var(--studio-font-md);font-family:inherit;background:var(--studio-surface-bg);color:var(--studio-text)}.symbol-table__cell-input:focus{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.symbol-table__table td:last-child button{border:none;background:transparent;color:var(--studio-text-muted);font-size:var(--studio-font-xl);cursor:pointer;padding:2px 6px;border-radius:3px;line-height:1}.symbol-table__table td:last-child button:hover{color:#c62828;background:color-mix(in srgb,#c62828 10%,transparent)}.symbol-table__type-select{padding:3px 6px;border:1px solid var(--studio-border);border-radius:3px;font-size:var(--studio-font-sm);font-family:inherit;background:var(--studio-surface-bg);color:var(--studio-text);cursor:pointer}.symbol-table__type-select:focus{outline:none;border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.symbol-table__th--usage,.symbol-table__usage{text-align:center}.symbol-table__usage{font-family:monospace;color:var(--studio-text-muted)}.symbol-table__conflict{display:inline-block;margin-left:6px;color:#c62828;font-size:var(--studio-font-md);cursor:help}.hmi-kind-palette{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.hmi-kind-palette__item{display:flex;flex-direction:column;align-items:center;gap:7px;padding:10px 6px;min-width:0;border:1px solid var(--studio-border);border-radius:var(--studio-radius);color:var(--studio-text-muted);background:var(--studio-panel-bg);font-size:var(--studio-font-xs);cursor:pointer;transition:background var(--studio-duration),border-color var(--studio-duration)}.hmi-kind-palette__item .studio-action-icon{width:22px;height:22px}.hmi-kind-palette__item:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.hmi-kind-palette__item[aria-pressed=true]{background:var(--studio-accent-bg);color:var(--studio-accent-text);border-color:var(--studio-accent)}.hmi-editor__form{margin:0}.hmi-editor__field{display:flex;flex-direction:column;gap:5px;min-width:100px;flex:1}.hmi-editor__field-label{font-size:var(--studio-font-xs);color:var(--studio-text-muted);font-weight:var(--studio-font-weight-medium)}.hmi-editor__field input,.hmi-editor__field select{width:100%;min-width:0}.hmi-view-switch{display:flex;padding:2px;background:var(--studio-panel-bg);border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm)}.hmi-design-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:12px;align-items:start}.hmi-design-main{min-width:0}.hmi-preview-caption{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px;font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.hmi-preview-canvas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;padding:20px;min-height:260px;align-content:start;border:1px solid var(--studio-border);border-radius:var(--studio-radius);background-color:var(--studio-panel-bg);background-image:radial-gradient(var(--studio-border) 1px,transparent 1px);background-size:12px 12px}.hmi-preview-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:12px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius);background:var(--studio-surface-bg);color:var(--studio-text);text-align:left;cursor:pointer;box-shadow:var(--studio-shadow)}.hmi-preview-card:hover{border-color:var(--studio-accent)}.hmi-preview-card[aria-pressed=true]{border-color:var(--studio-accent);outline:2px solid color-mix(in srgb,var(--studio-accent) 25%,transparent);outline-offset:2px}.hmi-preview-card__meta{display:flex;align-items:center;gap:6px;font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.hmi-preview-card__meta svg{width:14px;height:14px}.hmi-preview-card__visual{min-height:64px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--studio-border);padding-bottom:8px}.hmi-preview-card strong{font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold);overflow-wrap:anywhere}.hmi-preview-card code{font-family:var(--studio-font-mono);font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.hmi-preview-push{width:60px;height:34px;display:flex;justify-content:center;align-items:center;border:1px solid var(--studio-accent);border-radius:var(--studio-radius-sm);background:var(--studio-accent-bg);color:var(--studio-accent-text);box-shadow:var(--studio-inner-highlight)}.hmi-preview-lamp{width:32px;height:32px;border-radius:50%;background:var(--studio-hover-bg);border:3px solid var(--studio-border-strong);box-shadow:var(--studio-inner-highlight)}.hmi-preview-lamp[data-active=true]{background:var(--studio-success);border-color:color-mix(in srgb,var(--studio-success) 65%,var(--studio-border))}.hmi-preview-lamp[data-active=unknown]{border-style:dashed}.hmi-preview-value{font:var(--studio-font-xxl) var(--studio-font-mono);font-variant-numeric:tabular-nums;color:var(--studio-accent)}.hmi-preview-track{width:100%;height:24px;display:flex;justify-content:center;align-items:center;color:var(--studio-accent)}.hmi-preview-track svg{width:60px;height:28px}.hmi-io-panel{padding:12px;border:1px solid var(--studio-border);border-radius:var(--studio-radius);background:var(--studio-panel-bg)}.hmi-io-panel h3{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold)}.hmi-io-panel>p{margin:8px 0 12px;font-size:var(--studio-font-xs);color:var(--studio-text-muted);line-height:1.5}.hmi-io-panel ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.hmi-io-panel li>button{display:flex;flex-direction:column;gap:5px;width:100%;padding:8px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);background:var(--studio-surface-bg);color:var(--studio-text);text-align:left;cursor:pointer;font-size:var(--studio-font-xs)}.hmi-io-panel li>button:hover{border-color:var(--studio-accent);background:var(--studio-accent-bg)}.hmi-io-panel__line{display:flex;justify-content:space-between;align-items:center;gap:4px;width:100%}.hmi-io-panel__line code{font-family:var(--studio-font-mono);color:var(--studio-accent)}.hmi-io-panel .editor-chip{padding:1px 4px;font-size:var(--studio-font-xxs)}.hmi-editor__table{width:100%;border-collapse:collapse}.hmi-editor__table [data-selected=true]{background:var(--studio-accent-bg)}.hmi-table-kind{display:flex;align-items:center;gap:6px}.hmi-table-kind svg{color:var(--studio-accent);width:15px;height:15px}.hmi-table-actions{display:flex;gap:2px}@media (max-width: 1200px){.hmi-design-layout{grid-template-columns:minmax(0,1fr)}.hmi-io-panel ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.unity-viewport{flex:1 1 auto;min-height:0;min-width:0;display:flex}.unity-viewport--hidden{display:none}.unity-viewport__stage{position:relative;flex:1 1 auto;min-height:0;min-width:0;background:#101418;overflow:hidden}.unity-viewport__canvas{display:block;width:100%;height:100%}.unity-viewport__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0a0c0ed9;color:#e6edf3;font-size:var(--studio-font-lg)}.unity-viewport__progress-track{width:min(420px,70%);height:8px;border-radius:4px;background:#2b333b;overflow:hidden}.unity-viewport__progress-fill{height:100%;width:0%;background:#4f8cff;transition:width .12s linear}.studio-workspace{display:flex;flex-direction:column;height:100%}.workspace-tabbar{display:flex;border-bottom:1px solid var(--studio-border);flex-shrink:0;background:var(--studio-panel-bg);padding:3px 0 0}.workspace-tab{display:flex;align-items:center;border-right:1px solid var(--studio-border);background:var(--studio-panel-bg);transition:background .12s ease}.workspace-tab:hover{background:var(--studio-hover-bg)}.workspace-tab--active{background:var(--studio-surface-bg);box-shadow:inset 0 -2px 0 var(--studio-accent);border-bottom:1px solid var(--studio-surface-bg);margin-bottom:-1px}.workspace-tab__label{background:none;border:none;padding:6px 12px;font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-medium);cursor:pointer;color:var(--studio-text);letter-spacing:.01em}.workspace-tab__close{background:none;border:none;padding:4px 8px 4px 0;cursor:pointer;color:var(--studio-text-muted);font-size:var(--studio-font-lg);line-height:1}.workspace-tab__close:hover{color:var(--studio-text)}.workspace-content{flex:1;overflow:auto;padding:10px}.workspace-content--empty{display:flex;align-items:center;justify-content:center}.workspace-empty{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;color:var(--studio-text-muted)}.workspace-empty__title{margin:0;font-family:var(--studio-font-sans);font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-semibold);color:var(--studio-text-muted)}.workspace-empty__hint{margin:0;font-size:var(--studio-font-xxs);color:var(--studio-text-faint);max-width:320px}.workspace-empty__rail{width:36px;height:20px;color:var(--studio-text-faint);opacity:.6;margin-top:6px}.workspace-empty--welcome{align-items:flex-start;text-align:left;width:min(620px,100%);padding:16px}.workspace-welcome{display:grid;grid-template-columns:repeat(2,minmax(200px,1fr));gap:10px;width:100%;margin-top:8px}.workspace-welcome__card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;background:var(--studio-surface-bg);border:1px solid var(--studio-border);border-radius:var(--studio-radius);box-shadow:var(--studio-shadow);cursor:pointer;text-align:left;font:inherit;color:var(--studio-text);transition:transform var(--studio-duration) var(--studio-ease),border-color var(--studio-duration) var(--studio-ease),box-shadow var(--studio-duration) var(--studio-ease)}.workspace-welcome__card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--studio-accent) 45%,var(--studio-border));box-shadow:var(--studio-shadow-lg)}.workspace-welcome__card--static{cursor:default}.workspace-welcome__card--static:hover{transform:none;border-color:var(--studio-border);box-shadow:var(--studio-shadow)}.workspace-welcome__card-icon{font-size:var(--studio-font-lg);line-height:1;color:var(--studio-accent);font-weight:var(--studio-font-weight-semibold)}.workspace-welcome__card-icon--demo{font-family:var(--studio-font-mono);font-size:var(--studio-font-md)}.workspace-welcome__card-title{font-size:var(--studio-font-md);font-weight:var(--studio-font-weight-semibold)}.workspace-welcome__card-hint{font-size:var(--studio-font-xs);color:var(--studio-text-muted)}.workspace-welcome__recent{list-style:none;margin:4px 0 0;padding:0;width:100%;display:flex;flex-direction:column;gap:2px}.workspace-welcome__recent-item{width:100%;text-align:left;background:none;border:none;padding:4px 6px;border-radius:var(--studio-radius-sm);font:inherit;font-size:var(--studio-font-sm);color:var(--studio-text);cursor:pointer;transition:background var(--studio-duration) var(--studio-ease)}.workspace-welcome__recent-item:hover{background:color-mix(in srgb,var(--studio-accent) 8%,transparent)}.ladder-workspace{display:flex;flex-direction:column;gap:4px;height:100%;min-height:0}.ladder-workspace__warning{margin:0;padding:6px 8px;border-radius:4px;background:var(--studio-hover-bg);color:var(--studio-error);font-size:var(--studio-font-sm)}.instruction-library__search{width:100%;box-sizing:border-box;margin-top:10px;padding:6px 10px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);background:var(--studio-surface-bg);color:var(--studio-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-sm)}.instruction-library__search::placeholder{color:var(--studio-text-faint, var(--studio-text-muted))}.instruction-library__search:focus{outline:none;border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.instruction-library__no-results{margin:12px 0 0;font-size:var(--studio-font-sm);color:var(--studio-text-muted);font-style:italic}.instruction-library__group{margin-top:10px}.instruction-library__group-title{font-size:var(--studio-font-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--studio-text-muted);margin:0 0 6px}.instruction-library__grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.instruction-library__item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:var(--studio-font-sm);padding:10px 8px;border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);background:var(--studio-panel-bg);color:var(--studio-text);cursor:pointer;text-align:center;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease,transform .12s ease}.instruction-library__icon{display:inline-flex;color:var(--studio-text);line-height:0}.instruction-icon--basic{color:var(--cat-basic)}.instruction-icon--timer{color:var(--cat-timer)}.instruction-icon--counter{color:var(--cat-counter)}.instruction-icon--data{color:var(--cat-data)}.instruction-library__label{line-height:1.2}.instruction-library__item:hover{border-color:var(--studio-accent);box-shadow:var(--studio-shadow);transform:translateY(-1px)}.instruction-library__item--active{background:var(--studio-accent-bg);color:var(--studio-surface-bg);border-color:var(--studio-accent-bg)}.instruction-library__item--active .instruction-library__icon{color:var(--studio-surface-bg)}.instruction-library__tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--studio-text);color:var(--studio-panel-bg);padding:6px 9px;border-radius:5px;font-size:var(--studio-font-xs);line-height:1.35;width:max-content;max-width:200px;text-align:left;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility 0ms linear .4s;transition-delay:0ms,.4s;z-index:20}.instruction-library__item:hover .instruction-library__tooltip,.instruction-library__item:focus-visible .instruction-library__tooltip{opacity:1;visibility:visible;transition-delay:.4s,0ms}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#00000052;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:settingsFadeIn var(--studio-duration) var(--studio-ease)}.settings-panel{position:fixed;top:0;right:0;z-index:91;width:420px;max-width:92vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--studio-panel-bg);color:var(--studio-text);font-family:var(--studio-font-sans);border-left:1px solid var(--studio-border);box-shadow:var(--studio-shadow-lg),var(--studio-inner-highlight);animation:settingsSlideIn .2s var(--studio-ease)}@keyframes settingsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes settingsSlideIn{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.settings-panel__header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--studio-surface-bg);border-bottom:1px solid var(--studio-border)}.settings-panel__header h2{margin:0;font-size:var(--studio-font-sm);font-weight:600;letter-spacing:.01em;color:var(--studio-text)}.settings-panel__close{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;font-size:var(--studio-font-lg);line-height:1;color:var(--studio-text-muted);cursor:pointer;border-radius:var(--studio-radius-sm);transition:background var(--studio-duration) var(--studio-ease),color var(--studio-duration) var(--studio-ease),transform var(--studio-duration) var(--studio-ease)}.settings-panel__close:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.settings-panel__close:active{transform:scale(.94)}.settings-panel__tabs{flex:0 0 auto;display:flex;background:var(--studio-panel-bg);border-bottom:1px solid var(--studio-border)}.settings-panel__tab{flex:1;padding:9px 6px 8px;border:none;border-bottom:2px solid transparent;background:transparent;font-family:var(--studio-font-sans);font-size:var(--studio-font-xxs);font-weight:600;letter-spacing:.02em;color:var(--studio-text-muted);cursor:pointer;transition:color .12s ease,border-color .12s ease}.settings-panel__tab:hover{color:var(--studio-text)}.settings-panel__tab.active{color:var(--studio-accent);border-bottom-color:var(--studio-accent)}.settings-panel__content{flex:1;overflow-y:auto;padding:14px 16px 20px}.settings-section{margin-bottom:20px}.settings-section h3{margin:0 0 10px;font-size:var(--studio-font-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--studio-text-muted);padding:4px 0;border-bottom:1px solid var(--studio-border)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0}.setting-row label{font-size:var(--studio-font-xs);color:var(--studio-text)}.setting-row select{box-sizing:border-box;min-height:34px;padding:6px 10px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);background:var(--studio-input-bg);color:var(--studio-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-xs);cursor:pointer;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.setting-row select:focus{border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.toggle-btn{position:relative;flex:0 0 auto;width:40px;height:22px;padding:0;border:1px solid var(--studio-border-strong);border-radius:999px;background:var(--studio-btn-bg);cursor:pointer;transition:background .12s ease,border-color .12s ease}.toggle-btn:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--studio-text-muted);transition:transform .12s ease,background .12s ease}.toggle-btn[aria-pressed=true]{background:var(--studio-accent);border-color:var(--studio-accent)}.toggle-btn[aria-pressed=true]:after{transform:translate(18px);background:#fff}.toggle-btn:hover{border-color:var(--studio-text-muted)}.toast-stack{position:fixed;right:16px;bottom:44px;z-index:100;display:flex;flex-direction:column;gap:8px;width:360px;max-width:calc(100vw - 32px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--studio-elevated-bg);color:var(--studio-text);border:1px solid var(--studio-border);border-left:3px solid var(--studio-accent);border-radius:var(--studio-radius-sm);box-shadow:var(--studio-shadow-lg),var(--studio-inner-highlight);font-family:var(--studio-font-sans);font-size:var(--studio-font-xs);line-height:var(--studio-line-height-base);animation:toastIn .2s var(--studio-ease)}.toast--success{border-left-color:var(--studio-success)}.toast--error{border-left-color:var(--studio-error)}.toast--info{border-left-color:var(--studio-accent)}.toast__msg{flex:1;min-width:0;word-break:break-word}.toast__close{flex:0 0 auto;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--studio-text-muted);font-size:var(--studio-font-md);line-height:1;cursor:pointer;border-radius:var(--studio-radius-sm);transition:background var(--studio-duration) var(--studio-ease),color var(--studio-duration) var(--studio-ease)}.toast__close:hover{background:var(--studio-hover-bg);color:var(--studio-text)}@keyframes toastIn{0%{transform:translate(16px);opacity:0}to{transform:translate(0);opacity:1}}.studio-diagnostics{display:flex;flex-direction:column;gap:4px;min-height:0}.studio-diagnostics__bar{display:flex;align-items:center;justify-content:space-between;gap:12px}.studio-diagnostics__bar h2{margin:0;font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--studio-footer-text)}.studio-diagnostics__tabs{display:flex;gap:2px}.studio-diagnostics__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:2px 10px;font-family:var(--studio-font-sans);font-size:var(--studio-font-xs);color:var(--studio-footer-text);border-radius:var(--studio-radius-sm);cursor:pointer;transition:background .12s ease,color .12s ease}.studio-diagnostics__tab:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.studio-diagnostics__tab:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.studio-diagnostics__tab--active{color:var(--studio-text);box-shadow:inset 0 -2px 0 var(--studio-accent)}.studio-diagnostics__content{flex:1 1 auto;min-height:0;overflow:auto;background:var(--studio-bg);display:flex}.studio-diagnostics__content>.studio-panel__placeholder{margin:auto;text-align:center;max-width:85%;color:var(--studio-footer-text)}.diagnostics-output{margin:0;padding:0;list-style:none;font-family:var(--studio-font-mono);font-size:var(--studio-font-xs);line-height:1.4}.diagnostics-output__line{animation:diagnostics-line-in .4s var(--studio-ease, ease)}@keyframes diagnostics-line-in{0%{background-color:color-mix(in srgb,var(--studio-accent, #2563eb) 12%,transparent)}to{background-color:transparent}}.diagnostics-output__line--success{color:var(--studio-success)}.diagnostics-output__line--error{color:var(--studio-error)}.diagnostics-output__line--warn{color:var(--studio-warning)}.diagnostics-list{margin:0;padding:4px 8px;list-style:none;font-family:var(--studio-font-mono);font-size:var(--studio-font-xxs);line-height:1.5;color:var(--studio-error)}.diagnostics-list--warning{color:var(--studio-warning)}.ladder-drag-ghost{position:fixed;z-index:1000;transform:translate(12px,12px);pointer-events:none;padding:4px 10px;border-radius:4px;font-size:var(--studio-font-sm);white-space:nowrap;background:var(--studio-accent-bg);color:var(--studio-accent-text);border:1px solid var(--studio-border);box-shadow:0 2px 6px #00000040}.ladder-drag-highlight{position:fixed;z-index:999;pointer-events:none;border-radius:3px;border-width:2px;border-style:solid;box-sizing:border-box}.ladder-drag-highlight--valid{background:#1f8a3b2e;border-color:var(--studio-energized)}.ladder-drag-highlight--invalid{background:#b3261e24;border-color:var(--studio-error)}.ladder-dragging-cursor,.ladder-dragging-cursor *{cursor:grabbing!important}.projects-panel{display:flex;flex-direction:column;gap:.5rem;padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid var(--studio-border)}.projects-panel__title{margin:0;font-size:var(--studio-font-lg);font-weight:var(--studio-font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;opacity:.85}.projects-panel__profile{display:flex;flex-direction:column;gap:.2rem}.projects-panel__profile-label{font-size:var(--studio-font-xs);text-transform:uppercase;letter-spacing:.04em;opacity:.75}.projects-panel__profile-select{min-height:38px;padding:6px 10px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);background:var(--studio-input-bg);color:var(--studio-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-sm);cursor:pointer}.projects-panel__profile-select:focus{outline:none;border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.projects-panel__new{display:flex;gap:.35rem}.projects-panel__new-input{flex:1;min-width:0;box-sizing:border-box;min-height:38px;padding:8px 12px;border:1px solid var(--studio-border-strong);border-radius:var(--studio-radius-sm);background:var(--studio-input-bg);color:var(--studio-text);font-family:var(--studio-font-sans);font-size:var(--studio-font-sm)}.projects-panel__new-input:focus{outline:none;border-color:var(--studio-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--studio-accent) 20%,transparent)}.projects-panel__hint{font-size:var(--studio-font-sm);opacity:.7;margin:0}.projects-panel__error{font-size:var(--studio-font-sm);color:var(--studio-error);margin:0}.projects-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:8rem;overflow-y:auto}.projects-panel__item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:var(--studio-font-md)}.projects-panel__item-info{display:flex;flex-direction:column;min-width:0}.projects-panel__item-name{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-panel__item-icon{flex-shrink:0;color:var(--studio-text);opacity:.7}.projects-panel__item-name--active{font-weight:var(--studio-font-weight-semibold)}.projects-panel__item-date{font-size:var(--studio-font-xs);opacity:.6}.projects-panel__versions-toggle{align-self:flex-start}.projects-panel__actions{display:flex;gap:.5rem;align-items:center}.projects-panel__versions-list{list-style:none;margin:0;padding:0;font-size:var(--studio-font-sm);opacity:.85;display:flex;flex-direction:column;gap:.25rem}.projects-panel__version-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.projects-panel__version-date{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-panel__version-restore{flex-shrink:0;font-size:var(--studio-font-xs);padding:.15rem .4rem;background:var(--studio-accent);color:#fff;border:none;border-radius:var(--studio-radius-sm);cursor:pointer;opacity:.9}.projects-panel__version-restore:hover{opacity:1}.status-bar{display:flex;align-items:center;gap:16px;grid-area:status;padding:0 12px;background:var(--studio-topbar-bg);color:var(--studio-topbar-text);font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-medium);letter-spacing:.01em;font-variant-numeric:tabular-nums;font-family:var(--studio-font-sans);border-top:1px solid rgba(255,255,255,.1)}.status-bar__item{display:flex;align-items:center;gap:4px}.status-bar__icon{font-size:var(--studio-font-sm)}.status-bar__text{white-space:nowrap;opacity:.9}.status-bar__text strong{color:var(--studio-topbar-text);opacity:1}.status-bar__item--error{color:#ffd591}.status-bar__item--error .status-bar__text{opacity:1}.status-bar__leds{display:inline-flex;align-items:center;gap:5px;margin-right:2px}.status-led{display:inline-block;width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--studio-led-off, #566068) 55%,transparent);box-shadow:inset 0 0 1px #0006;transition:background var(--studio-duration),box-shadow var(--studio-duration)}.status-led[data-state=on]{background:var(--studio-led-on, #4ade80);box-shadow:0 0 6px color-mix(in srgb,var(--studio-led-on, #4ade80) 75%,transparent);animation:status-led-pulse 2s ease-in-out infinite}.status-led--stop[data-state=on]{background:var(--studio-led-error, #f87171);box-shadow:0 0 6px color-mix(in srgb,var(--studio-led-error, #f87171) 70%,transparent);animation:none}.status-led--error-led[data-state=on]{background:var(--studio-led-error, #f87171);box-shadow:0 0 7px color-mix(in srgb,var(--studio-led-error, #f87171) 80%,transparent);animation:status-led-blink 1s steps(2,start) infinite}@keyframes status-led-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes status-led-blink{50%{opacity:.3}}html,body,#root{width:100%;height:100%;margin:0}*,*:before,*:after{box-sizing:border-box}body{font-family:var(--studio-font-sans);background:var(--studio-bg);color:var(--studio-text)}button,input,select,textarea,summary{font:inherit}button,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--studio-accent);outline-offset:-2px}.studio-layout{grid-template-columns:minmax(0,var(--workbench-left)) 5px minmax(0,1fr) 5px minmax(0,var(--workbench-right));grid-template-rows:44px 34px minmax(0,1fr) 5px var(--workbench-bottom) 26px;grid-template-areas:"topbar topbar topbar topbar topbar" "commands commands commands commands commands" "left left-resize main right-resize right" "bottom-resize bottom-resize bottom-resize bottom-resize bottom-resize" "footer footer footer footer footer" "status status status status status";min-width:760px;height:100dvh}.studio-layout[data-left-visible=false]{grid-template-columns:0 0 minmax(0,1fr) 5px minmax(0,var(--workbench-right))}.studio-layout[data-right-visible=false]{grid-template-columns:minmax(0,var(--workbench-left)) 5px minmax(0,1fr) 0 0}.studio-layout[data-left-visible=false][data-right-visible=false]{grid-template-columns:0 0 minmax(0,1fr) 0 0}.studio-layout[data-bottom-visible=false]{grid-template-rows:44px 34px minmax(0,1fr) 0 0 26px}.studio-layout[data-left-visible=false]>.studio-panel--left,.studio-layout[data-right-visible=false]>.studio-panel--right,.studio-layout[data-bottom-visible=false]>.studio-footer{display:none}.studio-layout[data-font-size=large]{--studio-font-base: 15px;--studio-font-sm: 15px;--studio-font-md: 16px;--studio-font-xs: 14px;--studio-font-xxs: 13px;--studio-control-height: 32px}.studio-layout[data-font-size=small]{--studio-font-base: 12px;--studio-font-sm: 12px;--studio-font-md: 13px;--studio-control-height: 26px}.studio-layout[data-animations=false] *,.studio-layout[data-animations=false] *:before,.studio-layout[data-animations=false] *:after{transition:none!important;animation:none!important}.studio-topbar{gap:12px;padding:0 12px;box-shadow:none}.studio-topbar__title{font-size:var(--studio-font-md);letter-spacing:.02em;margin-right:auto;white-space:nowrap}.studio-topbar__profile{font-size:var(--studio-font-xs);border:0;padding:0 10px}.studio-topbar__project{max-width:230px;min-width:0;font-size:var(--studio-font-sm)}.studio-topbar__actions{gap:5px;min-width:0}.studio-topbar__actions>button,.studio-topbar__quick-btn{min-height:28px;height:28px;padding:4px 8px}.studio-topbar__actions>button.studio-btn--icon,.studio-topbar__quick-btn{width:28px;min-width:28px;padding:5px}.studio-topbar__plc-mode{font-family:var(--studio-font-mono);font-size:var(--studio-font-xs);margin-left:6px}.workbench-commandbar{grid-area:commands;display:flex;justify-content:flex-start;gap:8px;padding:0 10px;align-items:center;border-bottom:1px solid var(--studio-border);background:var(--studio-panel-bg)}.workbench-commandbar__group{display:flex;align-items:center;gap:4px}.workbench-runtime{display:flex;align-items:center;gap:4px;padding-right:12px;border-right:1px solid var(--studio-border)}.workbench-runtime .studio-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;min-width:28px;height:28px;min-height:28px;padding:5px;border-color:transparent;background:transparent;font-size:var(--studio-font-xs)}.workbench-runtime .studio-btn svg{width:15px;height:15px}.workbench-runtime .studio-btn:hover{background:var(--studio-hover-bg);border-color:var(--studio-border)}.workbench-runtime [data-action=run]{color:var(--studio-success)}.workbench-runtime [data-action=stop]{color:var(--studio-error)}.workbench-commandbar__label{font-size:var(--studio-font-xs);color:var(--studio-text-muted);padding-right:12px}.workbench-view-button{border:1px solid transparent;background:transparent;color:var(--studio-text-muted);border-radius:var(--studio-radius-sm);padding:3px 9px;cursor:pointer;font-size:var(--studio-font-xs);white-space:nowrap}.workbench-view-button:hover{background:var(--studio-hover-bg);color:var(--studio-text)}.workbench-view-button[aria-pressed=true]{background:var(--studio-accent-bg);color:var(--studio-accent-text);border-color:color-mix(in srgb,var(--studio-accent) 20%,transparent)}.workbench-commandbar__group:last-child{margin-left:auto;padding-left:8px;border-left:1px solid var(--studio-border)}.studio-action-icon{width:17px;height:17px;display:block;flex-shrink:0}.studio-layout .studio-icon-button{display:inline-flex;justify-content:center;align-items:center;flex-shrink:0;width:28px;height:28px;min-height:28px;padding:4px;border:1px solid transparent;border-radius:var(--studio-radius-sm);background:transparent;color:var(--studio-text-muted);cursor:pointer;transition:background var(--studio-duration),color var(--studio-duration),border-color var(--studio-duration)}.studio-layout .studio-icon-button:hover:not(:disabled){background:var(--studio-hover-bg);border-color:var(--studio-border);color:var(--studio-text)}.studio-layout .studio-icon-button[aria-pressed=true]{background:var(--studio-accent-bg);color:var(--studio-accent-text);border-color:color-mix(in srgb,var(--studio-accent) 35%,transparent)}.studio-layout .studio-icon-button:disabled{opacity:.35;cursor:default}.studio-layout .studio-icon-button:focus-visible{outline:2px solid var(--studio-accent);outline-offset:-2px}.workbench-resize{background:var(--studio-bg);touch-action:none;z-index:2;transition:background var(--studio-duration)}.workbench-resize:hover,.workbench-resize:focus-visible,.workbench-resize:active{background:var(--studio-accent)}.workbench-resize--left{grid-area:left-resize;cursor:col-resize}.workbench-resize--right{grid-area:right-resize;cursor:col-resize}.workbench-resize--bottom{grid-area:bottom-resize;cursor:row-resize}.studio-panel--left,.studio-panel--right{min-width:0;min-height:0;padding:10px;border:0;box-shadow:none;overflow:auto;scrollbar-gutter:stable}.studio-panel--left{gap:10px}.studio-panel__header{font-size:var(--studio-font-xs);font-weight:var(--studio-font-weight-semibold);text-transform:none;letter-spacing:0;padding:0 0 8px}.workbench-projects{border-bottom:1px solid var(--studio-border);padding-bottom:8px;flex-shrink:0}.workbench-projects>summary{cursor:pointer;font-weight:var(--studio-font-weight-semibold);padding:5px 2px;color:var(--studio-text-muted)}.workbench-projects[open]>summary{margin-bottom:8px}.project-tree__node{padding:5px 8px;font-size:var(--studio-font-sm);border-radius:var(--studio-radius-sm)}.project-tree__node-label{font-size:var(--studio-font-sm)}.studio-workspace{min-height:0;min-width:0;overflow:hidden}.workspace-tabbar{overflow-x:auto;min-height:33px;padding:0;scrollbar-width:thin}.workspace-tab{flex-shrink:0}.workspace-tab__label{display:flex;align-items:center;gap:8px;padding:7px 12px;white-space:nowrap}.workspace-tab__kind{font:var(--studio-font-xxs) var(--studio-font-mono);color:var(--studio-text-muted)}.workspace-tab--active .workspace-tab__kind{color:var(--studio-accent)}.workspace-tab__modified{color:var(--studio-warning);font-size:var(--studio-font-xxs);line-height:1;margin-left:2px}.workspace-content{min-height:0;padding:12px;scrollbar-gutter:stable}.workspace-empty__title{font-size:var(--studio-font-xl);color:var(--studio-text)}.workspace-empty__hint{color:var(--studio-text-muted);line-height:1.7}.workspace-empty__rail{stroke:currentColor}.studio-btn{min-height:var(--studio-control-height);padding:5px 10px;font-size:var(--studio-font-sm);font-weight:var(--studio-font-weight-medium)}.studio-btn--icon{min-width:var(--studio-control-height);padding:5px}.studio-btn:hover,.studio-btn:active,.studio-topbar__quick-btn:hover{transform:none}.instruction-library__search{margin:0 0 10px;height:var(--studio-control-height);padding:4px 8px}.studio-panel--right>.studio-panel__placeholder{font-size:var(--studio-font-xs);line-height:1.5;margin:8px 0 12px}.instruction-library__group{margin-top:5px;border-bottom:1px solid var(--studio-border);padding-bottom:6px}.instruction-library__group-title{display:list-item;cursor:pointer;padding:6px 0;margin:0;font-size:var(--studio-font-xs);text-transform:none;letter-spacing:0;font-weight:var(--studio-font-weight-semibold)}.instruction-library__group-title>span{float:right;font-size:var(--studio-font-xxs);color:var(--studio-text-muted)}.instruction-library__grid{display:flex;flex-direction:column;gap:2px}.instruction-library__entry{display:flex;align-items:center;min-width:0}.instruction-library__entry>.instruction-library__item{flex:1;min-width:0}.instruction-library__favorite{border:0;border-radius:var(--studio-radius-sm);background:transparent;color:var(--studio-text-muted);padding:4px;cursor:pointer;opacity:.35}.instruction-library__favorite[aria-pressed=true]{color:var(--studio-warning);opacity:1}.instruction-library__entry:hover .instruction-library__favorite,.instruction-library__favorite:focus-visible{opacity:1}.instruction-library__item{flex-direction:row;justify-content:flex-start;gap:10px;padding:4px 8px;min-height:33px;border-color:transparent;background:transparent;text-align:left}.instruction-library__item:hover{background:var(--studio-hover-bg);box-shadow:none;transform:none}.instruction-library__item--active{background:var(--studio-accent-bg);color:var(--studio-accent-text);border-color:var(--studio-accent)}.instruction-library__item--active .instruction-library__icon{color:var(--studio-accent)}.instruction-library__icon{flex:0 0 28px;justify-content:center}.instruction-library__icon svg{width:26px;height:26px}.instruction-library__tooltip{display:none}.instruction-library__label{min-width:0;overflow-wrap:anywhere}.ladder-editor{gap:10px}.ladder-canvas{flex-shrink:0}.ladder-workspace{height:auto;min-height:100%;gap:8px}.ladder-toolbar{position:sticky;top:0;z-index:4;flex-shrink:0;background:var(--studio-panel-bg);border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);padding:3px 5px;box-shadow:none;overflow-x:auto;scrollbar-width:thin}.ladder-network-card{border-left:1px solid var(--studio-border);border-radius:var(--studio-radius-sm);box-shadow:none;flex-shrink:0}.ladder-network-card:focus-within{border-color:var(--studio-accent)}.ladder-network-card__header{padding:6px 10px;background:var(--studio-panel-bg)}.ladder-network-card__netlabel{font-size:var(--studio-font-sm)}.ladder-network-card__title{font-size:var(--studio-font-sm);color:var(--studio-text)}.ladder-network-card__comment{font-size:var(--studio-font-xs);padding-left:20px;margin-top:4px}.ladder-network-card__remove:hover{color:var(--studio-error);background:var(--studio-hover-bg)}.ladder-network-card__remove,.ladder-network-card__collapse-btn{width:22px;height:22px;padding:3px;flex-shrink:0}.ladder-network-card__remove .studio-action-icon,.network-chevron .studio-action-icon{width:14px;height:14px}.network-chevron{display:inline-flex;transition:transform var(--studio-duration)}.network-chevron--open{transform:rotate(90deg)}.ladder-svg{max-width:none;margin:10px 12px}.ladder-network-card{overflow-x:auto}.studio-footer{min-height:0;padding:0 10px 6px;overflow:hidden;background:var(--studio-panel-bg);border:0}.studio-diagnostics{flex:1;height:100%;gap:0}.studio-diagnostics__bar{flex-shrink:0;min-height:32px;border-bottom:1px solid var(--studio-border)}.studio-diagnostics__bar h2{font-size:var(--studio-font-xxs);text-transform:none;letter-spacing:0}.studio-diagnostics__tabs{height:32px}.studio-diagnostics__tab{border-radius:0;padding:4px 12px}.studio-diagnostics__content{padding:8px 2px;background:var(--studio-panel-bg);display:block}.studio-diagnostics__content>.studio-panel__placeholder{text-align:left;margin:8px}.diagnostics-count{margin-left:6px;padding:0 5px;border-radius:var(--studio-radius-sm);background:var(--studio-accent-bg);color:var(--studio-accent-text)}.diagnostics-location{border:0;background:transparent;padding:3px 0;color:inherit;text-align:left;cursor:pointer}.diagnostics-location:disabled{cursor:default}.diagnostics-location:not(:disabled):hover{text-decoration:underline}.element-inspector{margin:0;border:0;padding:4px 8px;font-size:var(--studio-font-sm)}.element-inspector__title{font-size:var(--studio-font-xs)}.element-inspector__input{min-height:var(--studio-control-height);max-width:240px}.studio-layout input,.studio-layout select{min-height:var(--studio-control-height)}.studio-layout table{font-size:var(--studio-font-sm);border-collapse:collapse}.studio-layout table th{position:sticky;top:0;z-index:1;background:var(--studio-panel-bg);color:var(--studio-text-muted);font-weight:var(--studio-font-weight-semibold)}.studio-layout table th,.studio-layout table td{padding:5px 8px;border-bottom:1px solid var(--studio-border)}.studio-layout table tbody tr:hover{background:color-mix(in srgb,var(--studio-accent) 4%,var(--studio-surface-bg))}.studio-layout table tbody tr:focus-within{background:var(--studio-accent-bg)}.data-grid__header{position:relative;padding-right:14px!important}.data-grid__resize{position:absolute;top:0;right:0;bottom:0;width:6px;cursor:col-resize;touch-action:none}.data-grid__resize:hover,.data-grid__resize:focus-visible{background:var(--studio-accent)}.watch-table{overflow-x:auto}.symbol-table__table,.watch-table__table{table-layout:fixed}.symbol-table__table td,.watch-table__table td{overflow-wrap:anywhere}.watch-table__value{font-family:var(--studio-font-mono);font-variant-numeric:tabular-nums}.watch-table__row--forced{background:var(--studio-force-bg);color:var(--studio-force-text)}.watch-table__force--on,.watch-table__value--forced,.watch-table__forced-badge,.studio-layout .watch-table__force--on[aria-pressed=true]{background:var(--studio-force-bg);color:var(--studio-force-text);border-color:var(--studio-warning)}.studio-layout .ladder-toolbar__instruction[aria-pressed=true] svg{color:var(--studio-accent-text)}.symbol-table{padding:0}.status-bar{gap:16px;font-size:var(--studio-font-xxs);background:var(--studio-panel-bg);color:var(--studio-text-muted);border-top:1px solid var(--studio-border);overflow:auto}.status-bar__text strong{color:var(--studio-text)}.status-bar__icon{display:none}.status-bar__connection{width:6px;height:6px;border-radius:50%;background:var(--studio-text-muted)}.status-bar__connection[data-connected=true]{background:var(--studio-success)}.status-bar__item{flex-shrink:0}.status-bar__item--error{color:var(--studio-error)}.studio-download-blocked,.studio-download-confirm{position:absolute;top:80px;left:50%;transform:translate(-50%);z-index:25;width:min(680px,90vw);border-radius:var(--studio-radius);box-shadow:var(--studio-shadow-lg)}.studio-download-confirm{animation:none}.hardware-config-editor{gap:12px}.hardware-config-editor__rack{overflow-x:auto;padding:16px;background:var(--studio-panel-bg);border:1px solid var(--studio-border);border-radius:var(--studio-radius-sm)}.hmi-editor__form{background:var(--studio-panel-bg);border-color:var(--studio-border);border-radius:var(--studio-radius-sm)}.hmi-editor__field input,.hmi-editor__field select{background:var(--studio-surface-bg);border-radius:var(--studio-radius-sm);font-size:var(--studio-font-sm)}@media (max-width: 1100px){.studio-topbar__profile,.workbench-commandbar__label{display:none}.studio-topbar__project{max-width:140px}.workbench-runtime .studio-btn span{display:none}}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--studio-bg, #edf0f4);color:var(--studio-text, #1e1e1e);font-family:Segoe UI,system-ui,-apple-system,sans-serif}.login-card{width:100%;max-width:400px;background:var(--studio-surface-bg, #ffffff);border:1px solid var(--studio-border, #d4d4d4);border-radius:8px;box-shadow:0 6px 24px #1e1e1e1f;padding:28px 28px 20px}.login-card__head{margin-bottom:18px}.login-card__brand{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--studio-accent, #2563eb);margin-bottom:6px}.login-card__title{margin:0;font-size:20px;font-weight:600}.login-tabs{display:flex;gap:4px;border-bottom:1px solid var(--studio-border, #d4d4d4);margin-bottom:18px}.login-tabs__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:8px 14px;font-size:14px;color:var(--studio-text-muted, #5f6368);cursor:pointer}.login-tabs__tab:hover{color:var(--studio-text, #1e1e1e)}.login-tabs__tab--active{color:var(--studio-accent, #2563eb);border-bottom-color:var(--studio-accent, #2563eb);font-weight:600}.login-form{display:flex;flex-direction:column;gap:14px}.login-field{display:flex;flex-direction:column;gap:5px}.login-field__label{font-size:12px;font-weight:600;color:var(--studio-text-muted, #5f6368)}.login-field__input{padding:9px 11px;font-size:14px;border:1px solid var(--studio-border-strong, #b0b0b0);border-radius:5px;background:#fff;color:var(--studio-text, #1e1e1e)}.login-field__input:focus{outline:2px solid var(--studio-accent, #2563eb);outline-offset:-1px;border-color:transparent}.login-form__error{margin:0;padding:8px 10px;font-size:13px;color:var(--studio-error, #dc2626);background:#fef2f2;border:1px solid #fecaca;border-radius:5px}.login-form__submit{margin-top:4px;padding:10px 14px;font-size:14px;font-weight:600;color:#fff;background:var(--studio-accent, #2563eb);border:none;border-radius:5px;cursor:pointer}.login-form__submit:hover:not(:disabled){background:var(--studio-accent-hover, #1d4ed8)}.login-form__submit:disabled{opacity:.6;cursor:wait}.login-card__foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--studio-border, #d4d4d4);display:flex;gap:8px;align-items:center;font-size:13px}.login-card__foot a{color:var(--studio-accent, #2563eb);text-decoration:none}.login-card__foot a:hover{text-decoration:underline}.login-card__sep{color:var(--studio-text-faint, #9aa0a6)}
