.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#0f172a8c;display:flex;align-items:center;justify-content:center}.auth-modal{position:relative;width:100%;max-width:400px;max-height:90vh;overflow-y:auto;background:#fff;border-radius:12px;padding:28px 28px 20px;box-shadow:0 20px 60px #0f172a4d}.auth-modal-close{position:absolute;top:12px;right:12px;width:28px;height:28px;padding:0;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;color:#64748b;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.auth-modal-close:hover{background:#f1f5f9;color:#1e293b}.auth-modal-title{margin:0 0 16px;font-size:18px;font-weight:800;color:#0f172a}.auth-modal-error{margin:0 0 12px;padding:10px 12px;border:1px solid #fecaca;border-radius:6px;background:#fef2f2;color:#dc2626;font-size:13px}.auth-modal-unavailable{padding:24px 0;text-align:center;color:#64748b;font-size:14px}.nav-menu{position:relative}.nav-menu-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0f;color:#f8fafc;font-size:18px;cursor:pointer;transition:all .2s ease}.nav-menu-trigger:hover{background:#ffffff24;border-color:#ffffff73;transform:scale(1.05)}.nav-menu-trigger[aria-expanded=true]{background:#ffffff2e;border-color:#ffffff80}.nav-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;z-index:200;min-width:220px;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 40px #0f172a1f,0 2px 8px #0f172a0f;animation:navMenuSlideIn .15s ease-out}@keyframes navMenuSlideIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.nav-menu-dropdown [role=menuitem]{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;text-align:left;text-decoration:none;border:none;background:none;color:#334155;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;border-radius:8px;transition:all .12s ease}.nav-menu-dropdown [role=menuitem]:hover,.nav-menu-dropdown [role=menuitem]:focus{background:#f1f5f9;color:#0f172a;outline:none;transform:translate(2px)}.nav-menu-dropdown [role=menuitem] .nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:#f1f5f9;font-size:14px;flex-shrink:0;transition:background .12s ease}.nav-menu-dropdown [role=menuitem]:hover .nav-icon,.nav-menu-dropdown [role=menuitem]:focus .nav-icon{background:#e0e7ff}.nav-menu-header{padding:10px 12px 6px;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-menu-separator{height:1px;background:#f1f5f9;margin:4px 6px}.nav-menu-signout{color:#dc2626!important}.nav-menu-signout:hover,.nav-menu-signout:focus{background:#fef2f2!important;color:#b91c1c!important}.nav-menu-signout .nav-icon{background:#fef2f2!important}.nav-menu-external:after{content:"↗";margin-left:auto;font-size:11px;opacity:.4}.signup-prompt{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:10px;padding:12px 16px;background:#0f172a;color:#f8fafc;border-radius:10px;box-shadow:0 8px 32px #0f172a59;font-size:14px;white-space:nowrap;animation:signup-prompt-in .2s ease}@keyframes signup-prompt-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.signup-prompt-message{font-weight:600}.signup-prompt-cta{padding:6px 12px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s}.signup-prompt-cta:hover{background:#1d4ed8}.signup-prompt-dismiss{padding:6px 10px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:transparent;color:#cbd5e1;font-size:13px;cursor:pointer;transition:background .15s}.signup-prompt-dismiss:hover{background:#ffffff14;color:#f8fafc}.mobile-banner{display:none;background:#fef3c7;color:#92400e;padding:.75rem 1rem;font-size:.85rem;align-items:center;justify-content:space-between;gap:.5rem;border-bottom:1px solid #fcd34d}.mobile-banner p{margin:0}.mobile-banner button{background:none;border:none;color:#92400e;font-size:1.1rem;cursor:pointer;padding:0 .25rem}@media (max-width: 768px){.mobile-banner{display:flex}}.root-layout{display:flex;flex-direction:column;height:100%}.root-nav{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#0f172a;color:#f8fafc;flex-shrink:0;gap:12px;position:relative;z-index:100}.root-nav-brand{font-weight:800;font-size:15px;color:#f8fafc;letter-spacing:-.01em;white-space:nowrap;text-decoration:none;cursor:pointer}.root-nav-brand:hover{color:#e2e8f0}.root-nav-tabs{display:flex;align-items:center;gap:4px;background:#ffffff14;border-radius:10px;padding:4px}.root-nav-tab{display:flex;align-items:center;gap:8px;padding:10px 28px;border-radius:8px;font-size:16px;font-weight:700;color:#f8fafcb3;text-decoration:none;transition:all .15s ease;white-space:nowrap}.root-nav-tab:hover{color:#f8fafc;background:#ffffff1a}.root-nav-tab.active{color:#0f172a;background:#f8fafc;box-shadow:0 1px 3px #0003}.root-nav-tab-icon{font-size:18px}.root-layout-content{flex:1;min-height:0;overflow:auto;position:relative}.root-layout-content>:first-child{max-width:100%}.ladder-symbol{width:64px;height:36px;display:block;color:currentColor;overflow:visible}.ladder-symbol.compact{width:70px;height:34px}.symbol-stroke{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:square;stroke-linejoin:round;vector-effect:non-scaling-stroke}.symbol-cutout{fill:var(--ladder-surface, #f8fafc)}.coil-cutout{rx:2}.symbol-mark,.block-mark{dominant-baseline:middle;fill:currentColor;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;pointer-events:none;text-anchor:middle}.symbol-mark{font-size:11px}.block-symbol{color:#334155;width:76px}.block-mark{dominant-baseline:middle;font-size:17px;font-weight:900;text-anchor:middle}.instruction-palette{width:280px;min-width:280px;min-height:0;border-left:1px solid #cbd5e1;background:#f8fafc;display:flex;flex-direction:column}.palette-title{padding:12px 12px 6px;color:#172033;font-weight:900}.palette-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px 10px 10px;border-bottom:1px solid #e2e8f0;flex:0 0 auto}.palette-tabs button{border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;padding:6px 8px;font-size:12px;cursor:pointer}.palette-tabs button.active{border-color:var(--state-off);color:var(--state-off);background:var(--state-off-soft)}.palette-list{flex:1 1 auto;min-height:0;display:grid;gap:8px;padding:12px;overflow:auto;align-content:start}.palette-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center;border:1px solid #cbd5e1;border-radius:8px;padding:10px;background:#fff;color:#172033;cursor:grab;-webkit-user-select:none;user-select:none}.palette-item:active{cursor:grabbing}.palette-icon{min-width:70px;color:var(--state-off);display:inline-flex;align-items:center;justify-content:center;position:relative}.palette-coil{color:var(--state-off)}.palette-timer,.palette-counter,.palette-comparison,.palette-math,.palette-res{color:#334155}.palette-copy{min-width:0;display:grid;gap:2px}.palette-copy strong{color:#172033;font-size:13px}.palette-copy small{color:#64748b;font-size:11px}.rung-editor{--ladder-surface: #f8fafc;min-width:0;min-height:0;height:100%;flex:1 1 auto;display:flex;flex-direction:column;background:#f1f5f9;color:#172033}.rung-editor-toolbar,.rung-card-header{display:flex;align-items:center;gap:8px}.rung-editor-toolbar{flex:0 0 auto;padding:10px 12px;border-bottom:1px solid #cbd5e1;background:#fff}.rung-editor button,.floating-menu button,.tag-popover button{border:1px solid #cbd5e1;background:#fff;color:#172033;border-radius:6px;padding:6px 9px;cursor:pointer}.delete-confirmation{display:inline-flex;align-items:center;gap:4px}.rung-editor button.danger-button{border-color:#fed7aa;background:#fff7ed;color:#9a3412}.rung-editor-list{min-height:0;flex:1 1 auto;overflow:auto;padding:18px;display:grid;align-content:start;gap:16px}.empty-rung-workspace{min-height:220px;border:1px dashed #94a3b8;border-radius:8px;background:#fff;display:grid;place-content:center;gap:12px;color:#64748b}.rung-card{background:#fff;border:1px solid #d5dee8;border-radius:8px;padding:12px;box-shadow:0 8px 22px #0f172a14;overflow:visible}.rung-card-header{margin-bottom:18px}.rung-card-header input{flex:1;min-width:220px;border:1px solid #cbd5e1;border-radius:6px;padding:7px 9px}.rung-number{font-weight:800;color:#334155;cursor:grab;-webkit-user-select:none;user-select:none}.validation-pill{color:#92400e;background:#fef3c7;border:1px solid #f59e0b;border-radius:999px;padding:3px 8px;font-size:12px}.rung-editor button.validation-pill{color:#92400e;background:#fef3c7;border-color:#f59e0b;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-weight:700}.rung-editor button.validation-pill:hover{background:#fde68a}.rung-editor button.validation-pill:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}.rung-issues-panel{display:grid;gap:6px;margin:-8px 0 12px 94px;padding:8px;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed}.rung-issue{display:grid;grid-template-columns:64px minmax(0,1fr);gap:8px;align-items:baseline;color:#7c2d12;font-size:12px}.rung-issue strong{text-transform:uppercase;font-size:10px;letter-spacing:.06em}.rung-issue-error{color:#991b1b}.rung-strip{min-height:56px;display:grid;grid-template-columns:4px 1fr 4px;gap:0;align-items:center;background:var(--ladder-surface);border:1px solid #e2e8f0;border-radius:4px;overflow:visible;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}.rung-strip.drag-over{border-color:#60a5fa;box-shadow:0 0 0 2px #3b82f61f}.power-rail{background:#2f3b45;min-height:100%}.ladder-lane{min-width:0;display:flex;align-items:flex-start;padding:4px 0;position:relative;min-height:56px}.ladder-lane:has(.block-chip){min-height:80px;padding-top:24px}.ladder-lane:before{content:"";position:absolute;top:28px;left:0;right:0;height:2px;background:var(--state-off);z-index:0}.ladder-lane:has(.block-chip):before{top:48px}.rung-elements{min-width:0;display:flex;align-items:flex-start;position:relative;z-index:1}.input-elements{justify-content:flex-start}.output-elements{justify-content:flex-end}.rung-wire{flex:1 1 auto;min-width:72px;height:2px;background:transparent}.drop-zone{width:14px;align-self:center;flex:0 0 14px;height:48px;border-radius:3px;position:relative;transition:flex-basis .12s ease,background .12s ease}.drop-zone.active{flex-basis:24px}.drop-zone.active:after{content:"";position:absolute;top:12px;left:3px;right:3px;bottom:12px;background:#3b82f62e;border:2px solid var(--state-off);border-radius:4px}.element-chip{width:90px;height:48px;padding:0;background:transparent;color:#172033;display:flex;flex-direction:column;align-items:center;gap:0;cursor:pointer;position:relative;z-index:1}.element-symbol{color:inherit;height:36px;display:flex;align-items:center;justify-content:center;width:76px;padding:0;position:absolute;top:6px;left:50%;transform:translate(-50%);z-index:2}.element-tag{font-size:9px;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:88px;text-align:center;line-height:14px;height:14px;position:absolute;top:34px;left:1px;right:1px}.element-value{display:none}.element-chip:hover{background:#3b82f614;border-radius:3px}.block-chip:hover{background:#fff;border-color:var(--state-off);border-radius:4px;box-shadow:0 0 0 2px #2563eb1f}.element-chip:hover>.chip-actions{display:flex}.branch-chip:hover>.chip-actions{display:none}.branch-chip.actions-open>.chip-actions{display:flex}.element-chip.drop-before:before,.element-chip.drop-after:before{content:"";position:absolute;top:10px;bottom:10px;width:18px;background:#3b82f62e;border:2px solid var(--state-off);border-radius:4px;z-index:5}.element-chip.drop-before:before{right:calc(100% + 6px)}.element-chip.drop-after:before{left:calc(100% + 6px)}.element-chip.drop-branch{background:#3b82f614;border-radius:4px;box-shadow:inset 0 0 0 2px var(--state-off)}.element-chip.drop-branch:before{content:"";position:absolute;left:-10px;right:-10px;top:22px;bottom:-20px;border-left:2px solid rgba(37,99,235,.42);border-right:2px solid rgba(37,99,235,.42);border-bottom:2px solid rgba(37,99,235,.42);border-radius:0 0 5px 5px;pointer-events:none;z-index:4}.element-chip.drop-branch:after{content:"";position:absolute;left:50%;bottom:-30px;width:30px;height:16px;transform:translate(-50%);background:#3b82f61a;border:2px solid rgba(37,99,235,.42);border-radius:4px;pointer-events:none;z-index:5}.contact-chip,.coil-chip{color:var(--state-off)}.block-chip{width:190px;height:auto;min-height:106px;border:2px solid #334155;border-radius:4px;background:#fff;color:#111827;padding:0 7px 7px;box-sizing:border-box}.branch-chip{width:auto;min-width:126px;height:auto;min-height:48px;align-items:stretch;border:0;border-radius:0;background:transparent;padding:0 14px;cursor:default}.element-chip.energized{color:var(--state-on)}.branch-chip.energized>.branch-paths>.branch-path.has-next>.branch-rail{background:var(--state-on)}.contact-chip .element-symbol,.coil-chip .element-symbol{color:var(--state-off)}.block-chip .element-symbol{color:#111827;top:-24px;left:50%;width:86px;height:22px;justify-content:center;transform:translate(-50%);background:transparent;border:0;padding:0;pointer-events:none}.block-chip .block-symbol{width:62px;height:22px}.block-details{width:100%;margin-top:42px;display:grid;gap:4px;color:#334155}.block-tag-line{position:absolute;top:10px;right:auto;left:8px;min-width:0;width:min(118px,calc(100% - 16px));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;line-height:18px;font-weight:900;color:#172033;border:1px solid #cbd5e1;border-radius:4px;background:#f8fafc;padding:1px 20px 1px 7px;z-index:3}.block-tag-line:after{content:"";position:absolute;top:50%;right:8px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #334155;transform:translateY(-30%)}.block-tag-line.missing-tag{color:#b45309;background:#fffbeb;border:1px solid #fbbf24;border-radius:4px;padding:2px 4px}.block-io-grid{display:grid;gap:2px}.block-io-row{min-width:0;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:4px;font-size:9px;line-height:11px}.block-io-row span{color:#111827;font-weight:800}.block-io-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#111827;font-weight:700}.block-io-row.output span,.block-io-row.output strong{color:#111827}.block-io-row.bool-off strong{color:var(--state-off)}.block-io-row.bool-on strong,.element-chip.energized .element-symbol,.element-chip.energized .element-tag,.element-chip.energized .element-value{color:var(--state-on)}.element-chip.energized.block-chip .element-symbol,.element-chip.energized.block-chip .block-io-row span,.element-chip.energized.block-chip .block-io-row strong{color:#111827}.chip-actions{display:none;align-items:center;gap:4px;position:absolute;top:-24px;left:50%;transform:translate(-50%);background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:2px 4px;box-shadow:0 2px 8px #0000001f;z-index:20;white-space:nowrap}.chip-actions button{padding:2px 5px;font-size:10px;white-space:nowrap}.branch-paths{display:grid;grid-auto-rows:minmax(48px,auto);align-items:stretch;width:max-content;min-width:100%;position:relative;background:var(--ladder-surface)}.branch-path{min-width:100%;width:100%;display:flex;align-items:stretch;gap:4px;padding:0 12px;box-sizing:border-box;position:relative;font-size:11px;font-family:ui-monospace,monospace;border-radius:4px;transition:background .12s ease,box-shadow .12s ease}.branch-rail{position:absolute;top:24px;height:100%;width:2px;background:var(--state-off);pointer-events:none;z-index:3}.branch-rail-left{left:-6px}.branch-rail-right{right:-6px}.branch-path:before{content:"";position:absolute;top:24px;left:-6px;right:-6px;height:2px;background:var(--state-off);z-index:0}.branch-path.drag-over{background:#3b82f61f;box-shadow:inset 0 0 0 2px #3b82f6}.branch-path.empty-path.drag-over:after{content:"";position:absolute;left:36px;top:12px;width:24px;height:24px;background:#3b82f62e;border:2px solid var(--state-off);border-radius:4px;z-index:4}.branch-path .drop-zone{width:10px;height:48px;flex:0 0 10px;align-self:flex-start}.branch-path .drop-zone.active{flex-basis:20px}.branch-path>.branch-chip{flex:1 1 auto;align-self:flex-start;min-width:126px}.branch-path>.branch-chip>.branch-paths{width:100%}.floating-menu,.tag-popover{position:fixed;z-index:30;display:grid;gap:8px;width:260px;padding:12px;background:#fff;border:1px solid #94a3b8;border-radius:8px;box-shadow:0 14px 32px #0f172a29}.quick-add-menu{width:360px;max-height:min(520px,calc(100vh - 32px));grid-template-rows:auto minmax(0,1fr)}.quick-search{display:grid;gap:4px;font-size:11px;font-weight:700;color:#475569}.quick-search input{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:7px 9px;color:#172033}.quick-menu-list{min-height:0;max-height:390px;overflow:auto;display:grid;gap:6px;padding-right:2px}.floating-menu button{display:grid;grid-template-columns:76px 52px 1fr;gap:8px;align-items:center;text-align:left}.quick-empty{color:#64748b;padding:12px;text-align:center}.quick-symbol{color:var(--state-off);display:inline-flex;justify-content:center}.quick-symbol-coil{color:var(--state-off)}.quick-symbol-timer,.quick-symbol-counter,.quick-symbol-comparison,.quick-symbol-math,.quick-symbol-res{color:#334155}.floating-menu small{color:#64748b}.tag-popover{position:fixed;z-index:30;display:grid;gap:8px;width:260px;max-height:calc(100vh - 20px);overflow-y:auto;padding:14px;background:#fff;border:1px solid #94a3b8;border-radius:8px;box-shadow:0 14px 32px #0f172a29}.tag-popover label{display:grid;gap:6px;font-size:12px;color:#475569;font-weight:700}.tag-popover input{border:1px solid #cbd5e1;border-radius:6px;padding:8px}.popover-title{font-size:13px;font-weight:700;color:#172033;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.popover-actions{display:flex;justify-content:flex-end;gap:8px}.tag-input-wrapper{display:flex;align-items:stretch;border:2px solid #0f172a;border-radius:4px;overflow:hidden}.tag-input-wrapper input{flex:1;border:none;outline:none;padding:6px 8px;font-size:14px;font-family:inherit;min-width:0}.tag-dropdown-toggle{flex:0 0 28px;border:none;border-left:1px solid #e2e8f0;background:#f8fafc;cursor:pointer;font-size:10px;color:#334155;display:flex;align-items:center;justify-content:center}.tag-dropdown-toggle:hover{background:#e2e8f0}.tag-dropdown-list{list-style:none;margin:4px 0 0;padding:0;max-height:120px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:4px;background:#fff;box-shadow:0 4px 12px #0000001a}.tag-dropdown-item{padding:6px 10px;font-size:13px;font-family:monospace;cursor:pointer;color:#334155}.tag-dropdown-item:hover{background:#e0e7ff;color:#3730a3}.tag-dropdown-item.selected{background:#eef2ff;font-weight:700}.tag-popover label{display:block;font-size:12px;font-weight:600;color:#64748b;margin-bottom:8px}.mode-selector{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:7px 9px;cursor:pointer;font-size:13px}.mode-selector:disabled{opacity:.55;cursor:not-allowed}.problem-picker{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:7px 9px;cursor:pointer;font-size:13px;min-width:200px}.problem-picker optgroup{font-weight:800;color:#334155}.problem-picker option{font-weight:400;color:#172033}.problem-picker-empty{font-size:13px;color:#64748b;padding:7px 9px}.results-modal{border:none;border-radius:12px;padding:0;width:520px;max-width:90vw;max-height:80vh;overflow:hidden;box-shadow:0 20px 60px #0000004d}.results-modal::backdrop{background:#00000080}.results-modal-content{display:flex;flex-direction:column;max-height:80vh;background:#fff}.results-modal-title{margin:0;padding:20px 24px 16px;font-size:18px;font-weight:800;color:#0f172a;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:12px}.results-count{font-size:14px;font-weight:700;color:#64748b}.results-list{flex:1;overflow-y:auto;padding:12px 24px;display:grid;gap:8px}.results-row{display:grid;grid-template-columns:24px 1fr;gap:6px 8px;align-items:start;padding:10px 12px;border-radius:8px;border:1px solid #e2e8f0}.results-pass{background:#f0fdf4;border-color:#bbf7d0}.results-fail{background:#fff7ed;border-color:#fed7aa}.results-icon{font-size:16px;font-weight:800;line-height:1.5;text-align:center}.results-pass .results-icon{color:#16a34a}.results-fail .results-icon{color:#dc2626}.results-name{font-weight:700;font-size:14px;line-height:1.5}.results-failure-detail{grid-column:2;display:grid;gap:2px;font-size:12px;color:#64748b;margin-top:4px;padding:6px 8px;background:#fed7aa4d;border-radius:4px;border:1px solid #fed7aa}.results-modal-actions{display:flex;gap:8px;padding:16px 24px;border-top:1px solid #e2e8f0;background:#f8fafc;justify-content:flex-end}.results-modal-empty{padding:32px 24px;color:#64748b;text-align:center;font-size:14px}.results-btn-accept,.results-btn-run-again,.results-btn-try-again{border:1px solid #cbd5e1;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:13px;font-weight:600;background:#fff;color:#172033}.results-btn-accept{background:#0f172a;color:#fff;border-color:#0f172a}.results-btn-run-again{background:#2563eb;color:#fff;border-color:#2563eb}.results-btn-accept:hover{background:#1e293b}.results-btn-run-again:hover{background:#1d4ed8}.results-btn-try-again:hover{background:#f1f5f9}.run-tests-button{background:#2563eb;color:#fff;border:none;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;white-space:nowrap}.run-tests-button:hover:not(:disabled){background:#1d4ed8}.run-tests-button:disabled{opacity:.75;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}.run-tests-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;flex-shrink:0;animation:spin .7s linear infinite}.speed-selector{display:flex;border:1px solid #cbd5e1;border-radius:6px;overflow:hidden}.speed-btn{border:none;border-right:1px solid #cbd5e1;background:#fff;color:#475569;padding:6px 10px;font-size:12px;font-weight:700;cursor:pointer;line-height:1}.speed-btn:last-child{border-right:none}.speed-btn.active{background:#1e3a8a;color:#fff}.speed-btn:hover:not(.active){background:#f1f5f9}.export-menu-container{position:relative}.export-menu-trigger{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:7px 9px;cursor:pointer;font-size:13px;white-space:nowrap}.export-menu-trigger:hover{background:#f1f5f9}.export-dropdown{position:absolute;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 4px 16px #0000001f;z-index:100;min-width:160px;overflow:hidden;display:flex;flex-direction:column}.export-dropdown button{border:none;background:#fff;color:#172033;padding:10px 14px;cursor:pointer;font-size:13px;text-align:left}.export-dropdown button:hover{background:#f1f5f9}.share-link-field{position:absolute;top:calc(100% + 4px);right:0;width:320px;border:1px solid #cbd5e1;border-radius:6px;padding:7px 10px;font-size:12px;background:#0f172a;color:#fff;z-index:101;box-shadow:0 4px 16px #0000001f}.rung-editor-container{position:relative;min-width:0;min-height:0;height:100%;flex:1 1 auto;display:flex;flex-direction:column}.rung-editor-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0f172a1f;pointer-events:none}.rung-editor-lock-icon{font-size:32px;line-height:1}.rung-editor-lock-label{font-size:13px;font-weight:700;color:#334155;background:#ffffffeb;padding:4px 12px;border-radius:6px;box-shadow:0 1px 4px #0000001a}.hmi-panel{--hmi-green: #22c55e;--hmi-red: #ef4444;--hmi-yellow: #eab308;--hmi-blue: #3b82f6;--hmi-gray: #6b7280;min-width:0;min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr) 280px;background:#e8eef6;overflow:hidden}.hmi-canvas{min-width:0;min-height:0;position:relative;overflow-y:auto;overflow-x:hidden;box-shadow:inset 0 0 0 1px #94a3b852}.hmi-canvas-grey{background-color:#d7e0ea;background-image:linear-gradient(90deg,rgb(30 58 95 / .08) 1px,transparent 1px),linear-gradient(0deg,rgb(30 58 95 / .08) 1px,transparent 1px),radial-gradient(circle at 1px 1px,rgb(15 23 42 / .18) 1px,transparent 0),linear-gradient(135deg,#f6f9fd,#d7e0ea 52%,#c5d0dc);background-size:80px 80px,80px 80px,20px 20px,100% 100%}.hmi-canvas-blue{background-color:#bfdbfe;background-image:linear-gradient(90deg,rgb(37 99 235 / .12) 1px,transparent 1px),linear-gradient(0deg,rgb(37 99 235 / .12) 1px,transparent 1px),radial-gradient(circle at 1px 1px,rgb(30 64 175 / .18) 1px,transparent 0),linear-gradient(135deg,#eff6ff,#bfdbfe 54%,#93c5fd);background-size:80px 80px,80px 80px,20px 20px,100% 100%}.hmi-canvas.drag-over{box-shadow:inset 0 0 0 2px var(--hmi-blue)}.hmi-canvas-label{position:absolute;top:0;left:0;z-index:4;padding:5px 9px;border:0;border-right:1px solid rgb(37 99 235 / .18);border-bottom:1px solid rgb(37 99 235 / .18);border-radius:0 0 8px;background:#ffffffd1;color:#1e3a5f;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 1px #ffffffbf,0 8px 22px #0f172a14;pointer-events:none}.hmi-background-picker{position:absolute;top:8px;right:10px;z-index:6;display:flex;align-items:center;gap:7px;padding:3px;border:1px solid rgb(51 65 85 / .18);border-radius:8px;background:#ffffffc7;box-shadow:inset 0 1px #ffffffb8,0 8px 20px #0f172a1a}.hmi-background-picker button{min-width:0;border:0;border-radius:6px;background:transparent;color:#334155;padding:5px 8px;font-size:11px;font-weight:900;line-height:1;cursor:pointer}.hmi-background-picker button.active{background:#1e3a5f;color:#f8fafc;box-shadow:0 2px 8px #0f172a2e}.hmi-widget-frame{position:absolute;display:grid;place-items:stretch;border:2px solid transparent;border-radius:0;-webkit-user-select:none;user-select:none;cursor:grab;touch-action:none}.hmi-widget-frame.selected{border:2px solid var(--hmi-blue);box-shadow:0 0 0 4px #3b82f629,0 14px 32px #0f172a21}.hmi-widget-frame:active{cursor:grabbing}.hmi-warning-badge{position:absolute;top:-8px;right:-8px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--hmi-yellow);color:#111827;font-size:12px;font-weight:900;z-index:5}.hmi-resize-handle{position:absolute;background:var(--hmi-blue);border:2px solid #ffffff;box-shadow:0 0 0 1px #2563eb59,0 5px 14px #0f172a47;z-index:30;pointer-events:auto}.hmi-resize-handle:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.hmi-resize-handle.nw,.hmi-resize-handle.ne,.hmi-resize-handle.se,.hmi-resize-handle.sw{width:20px;height:20px;border-radius:6px}.hmi-resize-handle.nw{top:-11px;left:-11px;cursor:nwse-resize}.hmi-resize-handle.ne{top:-11px;right:-11px;cursor:nesw-resize}.hmi-resize-handle.sw{bottom:-11px;left:-11px;cursor:nesw-resize}.hmi-resize-handle.se{bottom:-11px;right:-11px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 0 38%,#ffffff 38% 47%,transparent 47% 58%,#ffffff 58% 67%,transparent 67%),var(--hmi-blue)}.hmi-resize-handle.n,.hmi-resize-handle.s{left:22px;right:22px;height:14px;border:0;border-radius:999px;background:#3b82f64d;box-shadow:inset 0 0 0 1px #3b82f62e;cursor:ns-resize}.hmi-resize-handle.n{top:-9px}.hmi-resize-handle.s{bottom:-9px}.hmi-resize-handle.e,.hmi-resize-handle.w{top:22px;bottom:22px;width:14px;border:0;border-radius:999px;background:#3b82f64d;box-shadow:inset 0 0 0 1px #3b82f62e;cursor:ew-resize}.hmi-resize-handle.e{right:-9px}.hmi-resize-handle.w{left:-9px}.hmi-widget-palette{min-width:280px;min-height:0;border-left:1px solid #334155;background:#f8fafc;display:flex;flex-direction:column}.hmi-palette-title{padding:12px;border-bottom:1px solid #e2e8f0;color:#172033;font-weight:900}.hmi-palette-list{flex:1 1 auto;min-height:0;display:grid;gap:8px;padding:12px;overflow:auto;align-content:start}.hmi-palette-item{display:grid;grid-template-columns:82px minmax(0,1fr);gap:12px;align-items:center;border:1px solid #cbd5e1;border-radius:8px;min-height:60px;padding:9px 10px;background:#fff;color:#172033;cursor:grab}.hmi-palette-item:active{cursor:grabbing}.hmi-widget-icon{width:64px;height:38px;display:grid;place-items:center;color:var(--hmi-blue)}.hmi-palette-icon{width:64px;height:38px}.hmi-palette-icon.hmi-widget-icon-numeric-display{width:56px;height:30px;justify-self:center}.hmi-palette-icon b,.hmi-icon-numeric{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:18px;color:#172033}.hmi-icon-numeric{display:grid;place-items:center;width:48px;height:28px;border:1px solid #94a3b8;border-radius:6px;background:linear-gradient(180deg,#f8fafc,#eaf2fb);box-shadow:inset 0 1px #ffffffd9;font-style:normal;font-weight:900;font-size:16px;line-height:1}.hmi-palette-item span:last-child{min-width:0;display:flex;align-items:center;height:100%}.hmi-palette-item strong{font-size:14px;line-height:1.15;overflow-wrap:anywhere}.hmi-icon-button,.hmi-icon-light,.hmi-icon-tank,.hmi-icon-conveyor,.hmi-icon-motor{display:block}.hmi-icon-button{width:32px;height:32px;border-radius:50%;background:var(--hmi-widget-color, var(--hmi-green));box-shadow:inset 0 -5px #0000002e,0 3px 8px #0003}.hmi-icon-light{width:28px;height:28px;border-radius:50%;background:var(--hmi-widget-color, var(--hmi-yellow));box-shadow:0 0 12px 4px color-mix(in srgb,var(--hmi-widget-color, var(--hmi-yellow)) 30%,transparent)}.hmi-icon-tank{width:46px;height:42px;overflow:visible}.hmi-icon-tank-shadow{fill:#0f172a1f;transform:translate(2px,2px)}.hmi-icon-tank-glass{fill:#f8fafc;stroke:#334155;stroke-width:2.4;stroke-linejoin:round}.hmi-icon-tank-fill{fill:var(--hmi-widget-color, var(--hmi-blue));stroke:none}.hmi-icon-tank-shine{fill:none;stroke:#ffffffad;stroke-width:2.2;stroke-linecap:round}.hmi-icon-conveyor{width:44px;height:22px;border:2px solid #334155;border-radius:4px;background:repeating-linear-gradient(135deg,#94a3b8 0,#94a3b8 8px,#e2e8f0 8px,#e2e8f0 16px)}.hmi-icon-motor{width:58px;height:34px;fill:#e2e8f0;stroke:#334155;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.hmi-icon-motor circle,.hmi-icon-motor path:last-child{fill:none;stroke:var(--hmi-blue);stroke-width:3}.hmi-widget-icon.active .hmi-icon-button{box-shadow:inset 0 4px 6px #00000047,inset 0 -2px #ffffff2e,0 2px 6px #0000002e;filter:brightness(.92) contrast(1.08)}.hmi-widget-icon.active .hmi-icon-light{box-shadow:0 0 12px 4px color-mix(in srgb,var(--hmi-widget-color, var(--hmi-yellow)) 42%,transparent),0 0 22px 8px color-mix(in srgb,var(--hmi-widget-color, var(--hmi-yellow)) 24%,transparent);filter:saturate(1.2) brightness(1.08)}.hmi-widget-icon.active .hmi-icon-conveyor{background:repeating-linear-gradient(135deg,var(--hmi-green) 0 8px,#bbf7d0 8px 16px);box-shadow:0 0 10px #22c55e3d}.hmi-widget-icon.active .hmi-icon-motor circle,.hmi-widget-icon.active .hmi-icon-motor path:last-child{stroke:var(--hmi-green)}.hmi-pushbutton{width:100%;height:100%;border:0;background:transparent;display:grid;grid-template-rows:minmax(0,1fr) auto auto;align-items:center;justify-items:center;gap:4px;padding:6px 4px;box-sizing:border-box;color:#f8fafc;cursor:pointer;transition:transform .12s ease}.hmi-canvas-widget-icon{width:min(76%,150px);height:100%;min-width:36px;min-height:28px;justify-self:center;align-self:center}.hmi-canvas-widget-icon .hmi-icon-button,.hmi-canvas-widget-icon .hmi-icon-light{width:min(100%,72px);height:min(100%,72px);aspect-ratio:1}.hmi-canvas-widget-icon .hmi-icon-numeric{width:min(100%,92px);height:min(100%,44px);padding:0 6px;box-sizing:border-box;overflow:hidden;font-size:clamp(12px,34%,22px);white-space:nowrap}.hmi-canvas-widget-icon .hmi-icon-motor{width:min(100%,116px);height:auto;max-height:none;filter:none}.hmi-canvas-widget-icon .hmi-icon-tank{width:100%;height:100%;max-height:none;filter:none}.hmi-canvas-widget-icon .hmi-icon-conveyor{width:min(100%,104px);height:min(100%,44px)}.hmi-tank .hmi-canvas-widget-icon{width:100%;height:100%}.hmi-tank .hmi-canvas-widget-icon .hmi-icon-tank{width:100%;height:100%;max-height:none;filter:none}.hmi-pushbutton-base{width:clamp(36px,70%,170px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 24%,rgb(255 255 255 / .82) 0 8%,transparent 20%),linear-gradient(145deg,#f8fafc,#cbd5e1,#64748b 56%,#263445);box-shadow:inset 0 3px 4px #ffffffc2,inset 0 -8px 10px #0f172a6b,0 1px #ffffffd1,0 11px 18px #0f172a42;transition:transform .12s ease,box-shadow .12s ease}.hmi-pushbutton-face{width:76%;aspect-ratio:1;border-radius:50%;display:block;position:relative;overflow:hidden;background:radial-gradient(circle at 35% 25%,rgb(255 255 255 / .56) 0 9%,transparent 24%),radial-gradient(circle at 50% 50%,transparent 0 48%,color-mix(in srgb,var(--hmi-widget-color) 60%,#020617) 76%),linear-gradient(145deg,color-mix(in srgb,var(--hmi-widget-color) 88%,#ffffff) 0%,var(--hmi-widget-color) 44%,color-mix(in srgb,var(--hmi-widget-color) 76%,#020617) 100%);box-shadow:inset 0 4px #ffffff3d,inset 0 -12px 10px #00000057,0 0 0 2px #0f172a4d,0 7px 12px #0f172a57;transition:transform .1s ease,box-shadow .1s ease,filter .1s ease}.hmi-pushbutton-highlight{position:absolute;inset:13% 23% auto;height:18%;border-radius:50%;background:linear-gradient(180deg,#ffffffad,#ffffff2e);filter:blur(1px)}.hmi-pushbutton.pressed{transform:none}.hmi-pushbutton.pressed .hmi-pushbutton-base{transform:none;box-shadow:inset 0 4px 7px #0f172a57,inset 0 -3px 6px #ffffff29,0 1px #ffffffb8,0 10px 16px #0f172a3d}.hmi-pushbutton.pressed .hmi-pushbutton-face{transform:none;background:radial-gradient(circle at 50% 40%,rgb(255 255 255 / .16) 0 8%,transparent 22%),radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--hmi-widget-color) 84%,#ffffff) 0 18%,var(--hmi-widget-color) 42%,color-mix(in srgb,var(--hmi-widget-color) 58%,#020617) 100%);box-shadow:inset 0 0 18px #00000080,inset 0 5px 10px #00000057,inset 0 -2px 2px #ffffff14,0 0 0 3px #0f172a70,0 1px 2px #0003;filter:saturate(1.05) brightness(.9) contrast(1.12)}.hmi-pushbutton strong,.hmi-indicator strong,.hmi-motor strong,.hmi-tank strong,.hmi-conveyor strong{min-height:15px;max-width:100%;color:#172033;text-shadow:0 1px 0 rgb(255 255 255 / .52);font-size:13px;text-align:center;line-height:1.2;overflow-wrap:anywhere}.hmi-pushbutton small{min-height:12px;max-width:100%;color:#475569;font-size:10px;line-height:1.1;overflow-wrap:anywhere}.hmi-indicator{width:100%;height:100%;display:grid;place-items:center;gap:7px}.hmi-indicator-housing{width:min(70px,68%);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 33% 24%,rgb(255 255 255 / .78) 0 8%,transparent 20%),linear-gradient(145deg,#f8fafc,#cbd5e1 30%,#64748b 58%,#263445);box-shadow:inset 0 3px 4px #ffffffc7,inset 0 -7px 9px #0f172a6b,0 1px #ffffffb8,0 8px 15px #0f172a38}.hmi-indicator-lens{width:72%;aspect-ratio:1;border-radius:50%;position:relative;overflow:hidden;background:radial-gradient(circle at 34% 24%,rgb(255 255 255 / .48) 0 8%,transparent 25%),radial-gradient(circle at 50% 62%,color-mix(in srgb,var(--hmi-widget-color) 58%,#ffffff),color-mix(in srgb,var(--hmi-widget-color) 72%,#1f2937) 58%,color-mix(in srgb,var(--hmi-widget-color) 56%,#020617));box-shadow:inset 0 3px #ffffff2e,inset 0 -8px 10px #0000006b,0 0 0 2px #0f172a47;transition:box-shadow .2s ease,filter .2s ease,transform .2s ease;filter:saturate(.7) brightness(.82) contrast(1.06)}.hmi-indicator-glint{position:absolute;top:15%;left:22%;width:26%;height:18%;border-radius:50%;background:#ffffff7a;filter:blur(.5px)}.hmi-indicator.active .hmi-indicator-lens{filter:saturate(1.45) brightness(1.12) contrast(1.08);background:radial-gradient(circle at 34% 24%,rgb(255 255 255 / .82) 0 10%,transparent 27%),radial-gradient(circle at 50% 58%,color-mix(in srgb,var(--hmi-widget-color) 92%,#ffffff) 0%,var(--hmi-widget-color) 52%,color-mix(in srgb,var(--hmi-widget-color) 74%,#020617) 100%);box-shadow:inset 0 3px #ffffff47,inset 0 -8px 9px #00000038,0 0 0 2px #0f172a38,0 0 14px 5px color-mix(in srgb,var(--hmi-widget-color) 48%,transparent),0 0 28px 8px color-mix(in srgb,var(--hmi-widget-color) 28%,transparent);animation:hmi-lens-pulse 1.4s ease-in-out infinite}.hmi-numeric-display{width:100%;height:100%;display:grid;place-items:center;gap:7px;padding:4px;box-sizing:border-box}.hmi-numeric-label{color:#172033;font-size:13px;font-weight:800;text-align:center;line-height:1.15;text-shadow:0 1px 0 rgb(255 255 255 / .52)}.hmi-numeric-display small,.hmi-tank small{color:#475569;font-size:10px;font-weight:800}.hmi-motor{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.hmi-motor>svg{width:100%;height:auto;max-height:calc(100% - 18px);flex:0 1 auto;min-height:0;filter:drop-shadow(0 10px 15px rgb(15 23 42 / .2));overflow:visible}.hmi-motor .hmi-canvas-widget-icon .hmi-icon-motor,.hmi-tank .hmi-canvas-widget-icon .hmi-icon-tank{width:100%;height:100%;max-height:none;filter:none}.hmi-motor-shadow{fill:#0f172a24}.hmi-motor-body{stroke:#dbeafe;stroke-width:2.5;transition:filter .2s ease}.hmi-motor.running .hmi-motor-body{filter:drop-shadow(0 0 10px rgb(34 197 94 / .32))}.hmi-motor-endcap,.hmi-motor-foot{fill:#334155;stroke:#dbeafe;stroke-width:2.5;stroke-linejoin:round}.hmi-motor-body-shine{fill:none;stroke:#ffffff6b;stroke-width:4;stroke-linecap:round}.hmi-motor-shaft{fill:none;stroke:#cbd5e1;stroke-width:6;stroke-linecap:round}.hmi-motor-bearing{fill:#0f172a;stroke:#dbeafe;stroke-width:3}.hmi-motor-rotor{transform-origin:57px 45px;fill:none;stroke:#f8fafc;stroke-width:3.5;stroke-linecap:round}.hmi-motor.running .hmi-motor-rotor{animation:hmi-rotate .85s linear infinite}.hmi-tank{width:100%;height:100%;display:grid;grid-template-rows:1fr auto auto;align-content:stretch;align-items:center;justify-content:center;justify-items:center;gap:0;padding:4px 0;box-sizing:border-box}.hmi-tank>svg{width:100%;height:auto;max-height:calc(100% - 14px);flex:0 1 auto;min-height:0;filter:drop-shadow(0 9px 16px rgb(15 23 42 / .16));overflow:visible}.hmi-motor strong,.hmi-tank strong{margin-top:0}.hmi-tank-shadow{fill:#0f172a29;transform:translate(4px,4px)}.hmi-tank-glass{stroke:#24364f;stroke-width:3}.hmi-tank-cap,.hmi-tank-base{fill:#dbeafe;stroke:#24364f;stroke-width:3;stroke-linejoin:round}.hmi-tank-frame{fill:none;stroke:#24364f;stroke-width:3}.hmi-tank-fill{fill:var(--hmi-widget-color);opacity:.86;transition:height .45s ease,y .45s ease}.hmi-tank-liquid-surface{fill:color-mix(in srgb,var(--hmi-widget-color) 78%,#ffffff);transition:d .45s ease;animation:hmi-liquid-sway 2.6s ease-in-out infinite}.hmi-tank-highlight{fill:#ffffff6b}.hmi-tank-rim,.hmi-tank-ticks{fill:none;stroke:#24364f75;stroke-width:2;stroke-linecap:round}.hmi-tank-rim{stroke:#ffffff6b}.hmi-tank text{fill:#0f172a;font-weight:900;text-anchor:middle;font-family:inherit;paint-order:stroke;stroke:#ffffffe6;stroke-width:4px}.hmi-tank-percent{font-size:16px}.hmi-conveyor{width:100%;height:100%;display:grid;grid-template-rows:1fr auto;gap:7px;align-items:center;position:relative}.hmi-conveyor-frame{align-self:center;min-height:44px;display:grid;align-items:center;padding:7px 10px;border:2px solid #334155;border-radius:8px;background:linear-gradient(180deg,#e2e8f0,#94a3b8 48%,#475569);box-shadow:inset 0 2px #ffffff85,0 9px 16px #0f172a29}.hmi-conveyor-belt{position:relative;height:30px;border:2px solid #172033;border-radius:6px;overflow:hidden;background-color:#475569;background-image:repeating-linear-gradient(135deg,rgb(255 255 255 / .28) 0 9px,transparent 9px 18px),linear-gradient(180deg,rgb(255 255 255 / .18),transparent 42%);background-size:26px 26px,100% 100%}.hmi-conveyor-belt-shine{position:absolute;inset:3px 8px auto;height:5px;border-radius:999px;background:#ffffff47}.hmi-conveyor.running .hmi-conveyor-belt{background-color:color-mix(in srgb,var(--hmi-green) 74%,#1f2937);animation:hmi-conveyor-scroll .42s linear infinite;box-shadow:0 0 12px #22c55e33}.hmi-conveyor-rollers{position:absolute;left:18px;right:18px;bottom:23px;display:flex;justify-content:space-between;pointer-events:none}.hmi-conveyor-rollers span{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f8fafc 0 10%,transparent 12%),radial-gradient(circle,#64748b 0,#64748b 28%,#0f172a 30%,#0f172a);border:2px solid #e5e7eb;box-shadow:0 2px 4px #0f172a42}.hmi-conveyor.running .hmi-conveyor-rollers span{animation:hmi-rotate .42s linear infinite}.hmi-config-popover{position:absolute;width:280px;display:grid;gap:10px;z-index:20;padding:12px;border:1px solid #334155;border-radius:10px;background:#f8fafc;color:#172033;box-shadow:0 18px 48px #00000059}.hmi-config-popover header{display:flex;align-items:center;justify-content:space-between}.hmi-config-popover button,.hmi-config-popover input,.hmi-config-popover select{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:6px 8px}.hmi-config-popover label{display:grid;gap:4px;font-size:12px;font-weight:800;color:#475569}.hmi-config-popover .binding-field-wrapper{position:relative}.hmi-binding-input-wrapper{display:flex;align-items:stretch;border:1px solid #cbd5e1;border-radius:6px;overflow:hidden;background:#fff}.hmi-config-popover .hmi-binding-input{flex:1 1 auto;min-width:0;border:0;border-radius:0;padding:7px 8px;font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.hmi-config-popover .hmi-binding-input:focus{outline:none}.hmi-binding-input-wrapper:focus-within{border-color:var(--hmi-blue);box-shadow:0 0 0 2px #3b82f624}.hmi-config-popover .hmi-binding-dropdown-toggle{flex:0 0 30px;border:0;border-left:1px solid #e2e8f0;border-radius:0;padding:0;background:#f8fafc;color:#334155;font-size:11px}.hmi-config-popover .hmi-binding-dropdown-toggle:hover{background:#e2e8f0}.hmi-binding-dropdown-list{list-style:none;margin:4px 0 0;padding:0;max-height:150px;overflow-y:auto;border:1px solid #cbd5e1;border-radius:6px;background:#fff;box-shadow:0 10px 24px #0f172a24}.hmi-binding-dropdown-list .tag-dropdown-item{display:grid;gap:2px;padding:7px 9px;cursor:pointer}.hmi-binding-dropdown-list .tag-dropdown-item:hover{background:#e0e7ff}.hmi-binding-dropdown-list .tag-dropdown-item.selected{background:#eef2ff}.hmi-binding-dropdown-list .tag-dropdown-item strong{color:#172033;font-family:SFMono-Regular,Consolas,monospace;font-size:12px}.hmi-binding-dropdown-list .tag-dropdown-item small,.tag-dropdown-empty{color:#64748b;font-size:11px}.tag-dropdown-empty{display:block;padding:9px}.hmi-config-popover .binding-field-select{width:100%;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;font-size:13px;cursor:pointer}.hmi-delete-widget{border-color:#fecaca!important;background:#fff7f7!important;color:#991b1b!important}@keyframes hmi-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hmi-conveyor-scroll{0%{background-position:0 0}to{background-position:26px 0}}@keyframes hmi-lens-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes hmi-liquid-sway{0%,to{transform:translate(0)}50%{transform:translate(1.5px)}}.panel-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px;height:100%;overflow:auto}.panel-section,.problem-panel,.test-panel,.table-panel{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:12px;color:#172033}.panel-section h3,.problem-panel h3{margin:0 0 10px;color:#334155}.io-panel{height:100%;min-height:0;display:grid;grid-template-rows:auto 1fr;gap:10px;color:#172033}.io-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.io-panel-header h3{margin:0;color:#334155}.io-summary{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.io-summary span{border:1px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;font-size:11px;font-weight:800;padding:4px 8px}.io-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;min-height:0;overflow:auto;align-content:start}.io-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;border:1px solid #cbd5e1;border-left-width:4px;border-radius:6px;background:#fff;padding:8px 10px}.io-row-input,.io-row-output{border-left-color:var(--state-off)}.io-row-internal{border-left-color:#64748b}.io-row-system{border-left-color:#334155}.io-tag-meta{display:grid;gap:2px;min-width:0}.io-tag-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.io-tag-meta span{display:flex;align-items:center;gap:6px;color:#64748b;font-size:12px}.io-tag-meta b{color:#334155;font-size:10px;letter-spacing:0}.bool-inputs{display:flex;align-items:center;gap:8px}.switch input{display:none}.switch span{display:block;width:42px;height:22px;border-radius:999px;background:var(--state-off);position:relative}.switch span:after{content:"";width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .12s ease}.switch input:checked+span{background:var(--state-on)}.switch input:checked+span:after{transform:translate(20px)}.momentary,.panel-actions button,.table-panel button,.test-panel button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:6px 9px;cursor:pointer}.indicator{width:18px;height:18px;border-radius:50%;background:var(--state-off);box-shadow:0 0 0 2px var(--state-off-border)}.indicator.on{background:var(--state-on);box-shadow:0 0 0 2px var(--state-on-border),0 0 16px color-mix(in srgb,var(--state-on) 42%,transparent)}.numeric-input,.numeric-display,.structured-display,.table-panel input,.table-panel select{border:1px solid #cbd5e1;border-radius:6px;padding:7px 8px;background:#fff;min-width:92px}.numeric-display,.structured-display{background:#f8fafc}.structured-editor{min-width:190px;display:grid;gap:6px}.structured-preset{display:grid;grid-template-columns:78px minmax(74px,1fr);align-items:center;gap:6px;color:#475569;font-size:11px;font-weight:800}.structured-preset input{min-width:0;width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:5px 7px;color:#172033}.structured-status{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;font-size:11px;color:#475569}.structured-status span{min-width:0;display:flex;justify-content:space-between;gap:6px}.structured-status b{color:#334155;font-weight:800}.structured-status strong,.bool-text-on,.bool-text-off{font-weight:800}.bool-text-on{color:var(--state-on)}.bool-text-off{color:var(--state-off)}.structured-flags{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:11px;color:#475569}.structured-flags label{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.structured-flags input{width:13px;height:13px;accent-color:var(--state-on)}.structured-flags .bool-field.on,.tag-structured-flags .bool-field.on{color:var(--state-on)}.structured-flags .bool-field.off,.tag-structured-flags .bool-field.off{color:var(--state-off)}.table-panel{height:100%;overflow:auto}.panel-actions{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.table-panel table{width:100%;table-layout:fixed;border-collapse:collapse}.table-panel th,.table-panel td{border-bottom:1px solid #e2e8f0;padding:8px;text-align:left;vertical-align:middle}.table-panel th button{border:0;padding:0;background:transparent;font-weight:800;color:#334155}.forced-row{background:#fffbeb}.tag-table input{width:100%;min-width:0;font-size:12px;padding:4px 6px}.tag-table select{font-size:12px;padding:4px;width:100%;min-width:0}.tag-table td,.tag-table th{padding:5px 6px;font-size:12px}.tag-table .col-name{width:32%}.tag-table .col-type{width:96px}.tag-table .col-value{width:auto;min-width:0}.tag-table .col-delete{width:28px;text-align:center}.tag-table .col-name input{width:100%;min-width:0;box-sizing:border-box}.tag-table td,.tag-table th{overflow:visible}.tag-table input,.tag-table select{max-width:100%;box-sizing:border-box}.tag-table .col-value>*{min-width:0}.tag-table .col-delete button{width:22px;height:22px;padding:0;line-height:1}.tag-add-row td{padding:8px 6px!important}.tag-add-inline{width:100%;padding:6px 0;border:1px dashed #cbd5e1;border-radius:6px;background:transparent;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.tag-add-inline:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.bool-toggle{border:1px solid #cbd5e1;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700;cursor:pointer;width:100%}.bool-toggle.on{background:var(--state-on-soft);color:var(--state-on);border-color:var(--state-on)}.bool-toggle.off{background:var(--state-off-soft);color:var(--state-off);border-color:var(--state-off)}.value-input{width:100%;font-size:12px;padding:3px 6px;border:1px solid #cbd5e1;border-radius:4px}.value-display{font-size:11px;color:#475569}.force-cell{display:grid;grid-template-columns:20px minmax(86px,1fr);gap:6px;align-items:center}.force-cell input[type=checkbox]{width:16px}.tag-structured-cell{display:grid;gap:5px;min-width:0}.tag-structured-cell label{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:2px;color:#475569;font-size:10px;font-weight:800}.tag-structured-cell input[type=number]{min-width:0;width:100%;border:1px solid #cbd5e1;border-radius:4px;padding:3px 4px;font-size:11px}.tag-structured-flags{display:flex;flex-wrap:wrap;gap:4px 8px;color:#475569;font-size:10px;font-weight:800}.tag-structured-flags label{display:inline-flex;grid-template-columns:none;gap:3px;align-items:center;white-space:nowrap}.tag-structured-flags input{width:13px;accent-color:var(--state-on)}.tag-structured-reset{border:1px solid #cbd5e1;border-radius:5px;padding:3px 6px;background:#fff;color:#475569;font-size:10px;font-weight:800;cursor:pointer}.tag-counter-toggle{width:auto;min-width:66px;padding:3px 8px}.tag-structured-reset{color:#334155;background:#f8fafc;border-color:#cbd5e1}.problem-title-row{display:flex;align-items:start;justify-content:space-between;gap:12px}.problem-title-row h2{margin:0}.problem-title-row span{font-size:12px;font-weight:600;white-space:nowrap;padding:4px 10px;border-radius:12px}.problem-status.completed{color:#15803d;background:#dcfce7}.problem-status.incomplete{color:#64748b;background:#f1f5f9}.problem-panel ul{padding-left:20px}.tag-pill-list{display:flex;flex-wrap:wrap;gap:6px}.tag-pill-list span{background:var(--state-off-soft);border:1px solid var(--state-off-border);color:var(--state-off);border-radius:999px;padding:4px 8px;font-size:12px}.test-list{display:grid;gap:8px}.test-list details{border:1px solid #cbd5e1;border-radius:8px;padding:8px}.test-list summary{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;cursor:pointer}.passed-test{background:var(--state-on-soft)}.failed-test{background:#fff7ed}.failure-row{display:grid;gap:4px;border-top:1px solid #fed7aa;padding-top:8px;margin-top:8px}.empty-panel-text{color:#64748b;font-size:13px}.problem-run-tests-btn{display:inline-block;margin-top:16px;padding:7px 18px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.problem-run-tests-btn:hover{background:#1d4ed8}.problem-run-tests-btn:disabled{background:#94a3b8;cursor:not-allowed}.ppd-container{position:relative}.ppd-trigger{display:flex;align-items:center;gap:6px;min-width:200px;max-width:280px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:7px 9px;cursor:pointer;font-size:13px;text-align:left}.ppd-trigger:hover:not(:disabled){border-color:#94a3b8}.ppd-trigger:disabled{opacity:.55;cursor:not-allowed}.ppd-trigger-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ppd-trigger-arrow{flex-shrink:0;font-size:10px;color:#64748b;transition:transform .15s}.ppd-trigger[aria-expanded=true] .ppd-trigger-arrow{transform:rotate(180deg)}.ppd-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:150;min-width:280px;max-height:360px;overflow-y:auto;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 8px 24px #0f172a24;padding:4px 0}.ppd-family-header{padding:7px 12px 4px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.ppd-item{display:flex;align-items:center;gap:7px;width:100%;padding:7px 12px 7px 20px;border:none;background:none;color:#1e293b;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap}.ppd-item:hover,.ppd-item:focus{background:#f1f5f9;outline:none}.ppd-item[aria-selected=true]{background:#eff6ff;color:#1d4ed8;font-weight:700}.ppd-star{font-size:13px;flex-shrink:0;color:#f59e0b}.ppd-star-empty{color:#cbd5e1}.ppd-empty{font-size:13px;color:#64748b;padding:7px 9px}.app-shell{min-width:1280px;height:100%;min-height:0;display:grid;grid-template-rows:auto auto 1fr auto;background:#dbe4ee;color:#172033}.top-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-bottom:1px solid #cbd5e1;box-shadow:0 1px 3px #0f172a14}.brand{font-weight:800;color:#0f172a;margin-right:8px;white-space:nowrap}.top-bar label{display:flex;align-items:center;gap:6px;color:#475569;font-size:12px;font-weight:700}.top-bar select,.top-bar button,.import-button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;padding:7px 9px;cursor:pointer;font-size:13px}.clear-all-button{font-weight:800}.clear-all-confirmation{display:flex;align-items:center;gap:6px;max-width:420px;padding:4px 6px;border:1px solid #fecaca;border-radius:6px;background:#fff7f7;color:#991b1b;font-size:12px;font-weight:800}.clear-all-confirmation span{min-width:0;overflow-wrap:anywhere}.clear-all-confirmation .danger-button{border-color:#ef4444;background:#fee2e2;color:#991b1b;font-weight:900}.top-bar button:disabled{opacity:.55;cursor:not-allowed}.sim-controls,.view-mode-controls,.zoom-controls{display:flex;align-items:center;gap:6px;border-left:1px solid #e2e8f0;padding-left:10px}.sim-controls{border-right:1px solid #e2e8f0;padding-right:10px}.view-mode-controls button.active{border-color:var(--state-off);background:var(--state-off-soft);color:var(--state-off);font-weight:800}.zoom-controls span,.sim-controls span{min-width:auto;color:#475569;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.import-button input{display:none}.icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#172033;font-size:16px;cursor:pointer;padding:0;flex-shrink:0}.icon-btn:hover:not(:disabled){background:#f1f5f9}.icon-btn:disabled{opacity:.55;cursor:not-allowed}.share-link{position:absolute;right:16px;top:58px;max-width:520px;z-index:40;padding:8px 10px;background:#0f172a;color:#fff;border-radius:6px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:copy}.workspace{min-height:0;height:100%;display:grid;grid-template-columns:380px minmax(0,1fr)}.left-panel{min-width:0;border-right:1px solid #cbd5e1;background:#f8fafc;display:grid;grid-template-rows:auto 1fr}.left-panel-title{padding:12px;background:#eef2f7;border-bottom:1px solid #cbd5e1;font-weight:800;color:#334155}.panel-tabs{display:flex;gap:6px;padding:8px;background:#eef2f7;border-bottom:1px solid #cbd5e1}.panel-tabs button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:7px 10px;cursor:pointer}.panel-tabs button.active{border-color:var(--state-off);background:var(--state-off-soft);color:var(--state-off)}.left-panel-content{min-height:0;min-width:0;overflow:auto;padding:10px}.center-panel{min-width:0;min-height:0;width:100%;height:100%;display:grid;grid-template-rows:1fr 0}.center-panel[data-view=full-ladder]{grid-template-rows:1fr 0}.center-panel[data-view=split-h]{grid-template-rows:3fr 2fr}.center-panel[data-view=split-v]{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.center-panel[data-view=full-hmi]{grid-template-rows:0 1fr}.ladder-work-area{min-width:0;min-height:0;width:100%;height:100%;flex:1;display:grid;grid-template-columns:minmax(0,1fr) auto;overflow:hidden}.hmi-work-area{min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden}.center-panel[data-view=split-h] .instruction-palette .palette-list,.center-panel[data-view=split-v] .instruction-palette .palette-list,.center-panel[data-view=split-h] .hmi-palette-list,.center-panel[data-view=split-v] .hmi-palette-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.center-panel[data-view=split-h] .instruction-palette .palette-item,.center-panel[data-view=split-v] .instruction-palette .palette-item,.center-panel[data-view=split-h] .hmi-palette-item,.center-panel[data-view=split-v] .hmi-palette-item{grid-template-columns:minmax(0,1fr);justify-items:center;align-content:center;gap:6px;min-height:82px;padding:8px 6px;text-align:center}.center-panel[data-view=split-h] .instruction-palette .palette-icon,.center-panel[data-view=split-v] .instruction-palette .palette-icon,.center-panel[data-view=split-h] .hmi-palette-icon,.center-panel[data-view=split-v] .hmi-palette-icon{min-width:0;width:100%;height:34px}.center-panel[data-view=split-h] .instruction-palette .palette-copy,.center-panel[data-view=split-v] .instruction-palette .palette-copy,.center-panel[data-view=split-h] .hmi-palette-item span:last-child,.center-panel[data-view=split-v] .hmi-palette-item span:last-child{justify-items:center;justify-content:center;min-width:0;width:100%;height:auto}.center-panel[data-view=split-h] .instruction-palette .palette-copy strong,.center-panel[data-view=split-v] .instruction-palette .palette-copy strong,.center-panel[data-view=split-h] .hmi-palette-item strong,.center-panel[data-view=split-v] .hmi-palette-item strong{font-size:12px;line-height:1.1}.center-panel[data-view=split-h] .instruction-palette .palette-copy small,.center-panel[data-view=split-v] .instruction-palette .palette-copy small{font-size:10px;line-height:1.1}.center-panel[data-view=split-h] .instruction-palette .palette-timer,.center-panel[data-view=split-v] .instruction-palette .palette-timer,.center-panel[data-view=split-h] .instruction-palette .palette-counter,.center-panel[data-view=split-v] .instruction-palette .palette-counter,.center-panel[data-view=split-h] .instruction-palette .palette-comparison,.center-panel[data-view=split-v] .instruction-palette .palette-comparison,.center-panel[data-view=split-h] .instruction-palette .palette-math,.center-panel[data-view=split-v] .instruction-palette .palette-math,.center-panel[data-view=split-h] .instruction-palette .palette-res,.center-panel[data-view=split-v] .instruction-palette .palette-res{display:none}.center-panel[data-view=split-h] .instruction-palette .palette-item:has(.palette-timer),.center-panel[data-view=split-v] .instruction-palette .palette-item:has(.palette-timer),.center-panel[data-view=split-h] .instruction-palette .palette-item:has(.palette-counter),.center-panel[data-view=split-v] .instruction-palette .palette-item:has(.palette-counter),.center-panel[data-view=split-h] .instruction-palette .palette-item:has(.palette-comparison),.center-panel[data-view=split-v] .instruction-palette .palette-item:has(.palette-comparison),.center-panel[data-view=split-h] .instruction-palette .palette-item:has(.palette-math),.center-panel[data-view=split-v] .instruction-palette .palette-item:has(.palette-math),.center-panel[data-view=split-h] .instruction-palette .palette-item:has(.palette-res),.center-panel[data-view=split-v] .instruction-palette .palette-item:has(.palette-res){min-height:62px}.center-panel[data-view=full-hmi] .ladder-work-area,.center-panel[data-view=full-ladder] .hmi-work-area{visibility:hidden;overflow:hidden;height:0}.renderer-stack{min-width:0;min-height:0;width:100%;height:100%;display:flex;flex-direction:column;background:#f1f5f9}.center-problem-prompt{margin:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;overflow:hidden;flex-shrink:0}.center-problem-prompt[open]{overflow-y:auto;max-height:40vh}.center-problem-prompt summary{padding:10px 12px;cursor:pointer;font-weight:800;color:#334155;background:#f8fafc}.center-problem-prompt .problem-panel{border:0;border-radius:0;padding-top:8px}.bottom-panel{min-height:0;max-height:240px;display:grid;grid-template-rows:auto minmax(0,1fr);border-top:1px solid #cbd5e1;background:#eef2f7}.bottom-panel-tabs{display:flex;gap:6px;padding:8px;border-bottom:1px solid #cbd5e1}.bottom-panel-tabs button{border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;padding:7px 10px}.bottom-panel-tabs button.active{border-color:var(--state-off);background:var(--state-off-soft);color:var(--state-off);font-weight:800}.bottom-panel-content{min-height:0;overflow:auto;padding:10px}.sim-tips-banner{position:relative;display:flex;align-items:center;padding:8px 40px 8px 16px;background:#eff6ff;border-bottom:1px solid #bfdbfe;flex-shrink:0}.sim-tips-content{display:flex;flex-wrap:wrap;gap:16px 32px;font-size:13px;color:#1e40af;line-height:1.4}.sim-tip strong{color:#1e3a5f}.sim-tips-dismiss{position:absolute;top:6px;right:10px;border:none;background:none;font-size:18px;color:#64748b;cursor:pointer;line-height:1;padding:2px 6px;border-radius:4px}.sim-tips-dismiss:hover{background:#dbeafe;color:#1e40af}.tips-reopen-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:50%;background:#f8fafc;color:#64748b;font-size:13px;font-weight:700;cursor:pointer;padding:0;margin-left:auto;flex-shrink:0}.tips-reopen-btn:hover{background:#dbeafe;color:#1e40af;border-color:#93c5fd}.about-page{height:100%;overflow-y:auto;background:#f8fafc;color:#1e293b}.about-page-inner{max-width:720px;margin:0 auto;padding:56px 24px 80px;text-align:center}.about-logo{width:280px;height:280px;border-radius:36px;margin-bottom:28px;box-shadow:0 4px 20px #0f172a1f}.about-page h1{margin:0 0 8px;font-size:36px;font-weight:900;color:#0f172a;letter-spacing:-.02em}.about-tagline{margin:0 0 40px;font-size:18px;color:#475569;line-height:1.6}.about-mission{margin:0 0 48px;padding:24px 28px;border-left:4px solid #2563eb;background:#eff6ff;border-radius:0 8px 8px 0;font-size:16px;line-height:1.7;color:#1e3a6e}.about-offerings{margin:0 0 48px;text-align:left}.about-offerings h2{margin:0 0 20px;font-size:22px;font-weight:800;color:#0f172a}.about-offering-list{display:grid;gap:16px;list-style:none;margin:0;padding:0}.about-offering-item{display:flex;gap:14px;align-items:flex-start;padding:16px 20px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.about-offering-icon{font-size:22px;flex-shrink:0;margin-top:1px}.about-offering-item h3{margin:0 0 4px;font-size:15px;font-weight:700;color:#0f172a}.about-offering-item p{margin:0;font-size:14px;color:#475569;line-height:1.55}.about-back{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#1e293b;font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s}.about-back:hover{border-color:#94a3b8;background:#f8fafc}.contact-page{display:flex;justify-content:center;padding:3rem 1.5rem}.contact-page-inner{max-width:600px;width:100%}.contact-page h1{margin-bottom:.5rem}.contact-page>.contact-page-inner>p{color:#666;margin-bottom:2rem}.contact-methods{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.contact-method h3{margin:0 0 .25rem;font-size:.9rem;text-transform:uppercase;color:#888}.contact-method a{color:#2563eb;text-decoration:none;font-size:1.1rem}.contact-method a:hover{text-decoration:underline}.contact-back{color:#2563eb;text-decoration:none}.contact-back:hover{text-decoration:underline}:root{--learn-bg: #f8fafc;--learn-surface: #ffffff;--learn-surface-muted: #f1f5f9;--learn-border: #dbe4ee;--learn-border-strong: #cbd5e1;--learn-text: #0f172a;--learn-text-muted: #475569;--learn-text-soft: #64748b;--learn-link: #2563eb;--learn-link-hover: #1d4ed8;--learn-success: #15803d;--learn-success-bg: #dcfce7;--learn-warning: #a16207;--learn-warning-bg: #fef9c3;--learn-danger: #b91c1c;--learn-danger-bg: #fee2e2;--learn-radius: 8px;--learn-shadow: 0 1px 2px rgb(15 23 42 / .06)}.learn-page{min-height:100%;overflow-y:auto;background:var(--learn-bg);color:var(--learn-text)}.learn-hero{text-align:center;padding:48px 24px 40px;background:linear-gradient(135deg,#0f172a,#1e3a5f);color:#f8fafc;border-radius:12px;margin-bottom:32px;position:relative}.learn-hero-dismiss{position:absolute;top:12px;right:12px;width:28px;height:28px;border:none;border-radius:50%;background:#ffffff26;color:#f8fafccc;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.learn-hero-dismiss:hover{background:#ffffff4d;color:#f8fafc}.learn-hero-title{font-size:clamp(22px,4vw,32px);font-weight:900;margin:0 0 12px;line-height:1.2}.learn-hero-subtitle{font-size:clamp(14px,2.5vw,16px);color:#f8fafccc;max-width:600px;margin:0 auto 24px;line-height:1.5}.learn-hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.learn-hero-btn{padding:10px 24px;border-radius:8px;font-size:15px;font-weight:700;text-decoration:none;transition:all .15s}.learn-hero-btn.primary{background:#f8fafc;color:#0f172a}.learn-hero-btn.primary:hover{background:#e2e8f0}.learn-hero-btn.secondary{background:#ffffff1f;color:#f8fafc;border:1px solid rgba(255,255,255,.3)}.learn-hero-btn.secondary:hover{background:#fff3;border-color:#ffffff80}.learn-layout,.learn-ci-inner,.learn-lesson-inner{width:min(100%,1100px);margin:0 auto;padding:32px 20px 72px}.learn-layout{display:grid;gap:32px}.learn-sidebar{align-self:start}.learn-main{width:100%;max-width:800px;min-width:0}.learn-ci-inner,.learn-lesson-inner{max-width:848px}.learn-lesson-inner{max-width:800px}.learn-sidebar,.learn-toc{color:var(--learn-text-muted)}.learn-sidebar h2,.learn-toc h2{margin:0 0 12px;color:var(--learn-text-soft);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.learn-sidebar ul,.learn-toc-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.learn-sidebar a,.learn-toc-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:6px 8px;border-radius:6px;color:var(--learn-text-muted);font-size:13px;line-height:1.35;text-decoration:none}.learn-sidebar a:hover,.learn-sidebar a:focus-visible,.learn-toc-list a:hover,.learn-toc-list a:focus-visible{background:var(--learn-surface-muted);color:var(--learn-text);outline:none}.learn-ci-header{margin:0 0 32px}.learn-ci-header h1,.lesson-page h1,.mdx-content h1{margin:0 0 10px;color:var(--learn-text);font-size:32px;font-weight:850;letter-spacing:0;line-height:1.15}.learn-ci-subtitle,.lesson-page>p,.mdx-content p{color:var(--learn-text-muted);font-size:15.5px;line-height:1.75}.learn-ci-subtitle{margin:0}.curriculum-index,.learn-cat-grid{display:grid;grid-template-columns:1fr;gap:18px}.category-card,.learn-cat-card{overflow:hidden;border:1px solid var(--learn-border);border-radius:var(--learn-radius);background:var(--learn-surface);box-shadow:var(--learn-shadow)}.category-card{display:grid;gap:12px;padding:20px}.learn-cat-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--learn-border);background:var(--learn-surface);color:inherit;text-decoration:none}.learn-cat-card-header:hover,.learn-cat-card-header:focus-visible{background:var(--learn-surface-muted);outline:none}.category-card h2,.learn-cat-card-title{margin:0 0 6px;color:var(--learn-text);font-size:18px;font-weight:800;line-height:1.25}.category-card p,.learn-cat-card-desc{margin:0;color:var(--learn-text-muted);font-size:14px;line-height:1.6}.category-card .lesson-count{color:var(--learn-text-soft);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.learn-cat-card-arrow{flex:0 0 auto;color:var(--learn-text-soft);font-size:18px;line-height:1;transition:color .15s ease,transform .15s ease}.learn-cat-card-header:hover .learn-cat-card-arrow{color:var(--learn-link);transform:translate(3px)}.learn-cat-progress-bar-wrap{height:4px;background:var(--learn-surface-muted)}.learn-cat-progress-bar-fill{height:100%;background:var(--learn-success);transition:width .25s ease}.learn-cat-lesson-list,.learn-lesson-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.learn-lesson-list{gap:8px}.learn-cat-lesson-list li+li{border-top:1px solid var(--learn-surface-muted)}.lesson-list-item,.learn-cat-lesson-row,.learn-lesson-link{display:flex;align-items:center;gap:10px;min-width:0;padding:12px 18px;color:var(--learn-text);font-size:14px;text-decoration:none}.learn-lesson-link{border:1px solid var(--learn-border);border-radius:var(--learn-radius);background:var(--learn-surface);box-shadow:var(--learn-shadow)}.lesson-list-item:hover,.lesson-list-item:focus-visible,.learn-cat-lesson-row:hover,.learn-cat-lesson-row:focus-visible,.learn-lesson-link:hover,.learn-lesson-link:focus-visible{background:var(--learn-surface-muted);outline:none}.learn-lesson-body{display:grid;flex:1 1 auto;gap:2px;min-width:0}.learn-lesson-title{overflow-wrap:anywhere;color:var(--learn-text);font-weight:700;line-height:1.35}.learn-lesson-prereqs{color:var(--learn-text-soft);font-size:12px;line-height:1.4}.progress-indicator,.ci-progress{position:relative;display:inline-flex;flex:0 0 18px;width:18px;height:18px;align-items:center;justify-content:center;border-radius:999px;font-size:0}.progress-indicator.not-started,.ci-progress.not-started{border:2px solid var(--learn-border-strong);background:var(--learn-surface)}.progress-indicator.in-progress,.ci-progress.in-progress{border:2px solid #f59e0b;background:linear-gradient(90deg,#f59e0b 50%,var(--learn-surface) 50%)}.progress-indicator.completed,.ci-progress.completed{border:2px solid var(--learn-success);background:var(--learn-success);color:#fff;font-size:12px;font-weight:900}.progress-indicator.completed:before,.ci-progress.completed:before{content:"";width:8px;height:4px;border:solid currentColor;border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg)}.difficulty-badge,.learn-level-badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-height:22px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1;text-transform:uppercase}.difficulty-badge.beginner,.learn-level-badge.level-1{background:var(--learn-success-bg);color:var(--learn-success)}.difficulty-badge.intermediate,.learn-level-badge.level-2{background:var(--learn-warning-bg);color:var(--learn-warning)}.learn-level-badge.level-3{background:var(--learn-danger-bg);color:var(--learn-danger)}.lesson-page,.learn-lesson-article,.mdx-content{color:var(--learn-text)}.lesson-breadcrumb,.learn-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 24px;color:var(--learn-text-soft);font-size:13px;line-height:1.4}.lesson-breadcrumb a,.learn-breadcrumb a{color:var(--learn-link);font-weight:650;text-decoration:none}.lesson-breadcrumb a:hover,.learn-breadcrumb a:hover{color:var(--learn-link-hover);text-decoration:underline}.learn-breadcrumb-sep{color:var(--learn-border-strong)}.lesson-section,.mdx-content section{margin:0 0 36px;scroll-margin-top:24px}.lesson-section h2,.mdx-content h2{margin:36px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--learn-border);color:var(--learn-text);font-size:22px;font-weight:800;letter-spacing:0;line-height:1.25}.lesson-section h3,.mdx-content h3{margin:24px 0 8px;color:var(--learn-text);font-size:17px;font-weight:750;line-height:1.35}.mdx-content p{margin:0 0 18px}.mdx-content ul,.mdx-content ol{margin:0 0 18px;padding-left:24px;color:var(--learn-text-muted);font-size:15.5px;line-height:1.75}.mdx-content li+li{margin-top:5px}.mdx-content code,.lesson-section code{border:1px solid var(--learn-border);border-radius:5px;background:var(--learn-surface-muted);color:#1e293b;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.92em;padding:1px 5px}.mdx-content pre{margin:0 0 20px;padding:16px;overflow-x:auto;border:1px solid var(--learn-border);border-radius:var(--learn-radius);background:#0f172a;color:#e2e8f0}.mdx-content pre code{border:0;background:transparent;color:inherit;padding:0}.mdx-content blockquote{margin:0 0 22px;padding:14px 16px;border-left:3px solid var(--learn-link);border-radius:0 var(--learn-radius) var(--learn-radius) 0;background:#eff6ff;color:#1e3a5f}.lesson-nav,.learn-prev-next{display:grid;grid-template-columns:1fr;gap:12px;margin-top:44px;padding-top:24px;border-top:1px solid var(--learn-border)}.learn-prev-next-slot{display:flex;min-width:0}.learn-nav-link{display:grid;flex:1 1 auto;gap:4px;min-width:0;padding:14px 16px;border:1px solid var(--learn-border);border-radius:var(--learn-radius);background:var(--learn-surface);color:var(--learn-text);text-decoration:none;box-shadow:var(--learn-shadow)}.learn-nav-link:hover,.learn-nav-link:focus-visible{border-color:var(--learn-border-strong);background:var(--learn-surface-muted);outline:none}.learn-nav-next{justify-items:start}.learn-nav-label{color:var(--learn-text-soft);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.learn-nav-title{overflow-wrap:anywhere;color:var(--learn-text);font-size:14px;font-weight:750;line-height:1.35}.learn-nav-arrow{color:var(--learn-text-soft);font-size:16px}.learn-loading,.learn-not-found{margin:0;padding:32px 0;color:var(--learn-text-soft);font-size:15px}.simulator-embed,.sim-embed{width:100%;max-width:100%;margin:24px 0;overflow:hidden;border:1px solid var(--learn-border-strong);border-radius:var(--learn-radius);background:var(--learn-surface);color:var(--learn-text);box-shadow:var(--learn-shadow)}.simulator-embed{max-height:var(--simulator-embed-max-height, 420px)}.simulator-embed-layout,.sim-embed-main{display:flex;flex-direction:column;min-height:0;overflow:hidden}.sim-embed-header{display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 10px;background:#1e293b;color:#f8fafc}.sim-embed-mode-badge{border-radius:4px;background:#334155;color:#fff;font-size:10px;font-weight:800;letter-spacing:.06em;padding:3px 6px;text-transform:uppercase}.sim-embed-mode-badge--demo{background:var(--learn-success)}.sim-embed-mode-badge--guided,.sim-embed-mode-badge--challenge{background:var(--learn-link)}.sim-embed-mode-badge--debug,.sim-embed-mode-badge--interview{background:#7c3aed}.sim-embed-title{overflow:hidden;color:#f8fafc;font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.sim-embed-body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.sim-embed-hmi-panel{flex:0 0 220px;min-height:160px;overflow:hidden;border-top:1px solid var(--learn-border);background:var(--learn-surface-muted)}.sim-embed-hmi-canvas{position:relative;width:100%;height:100%;min-height:160px}.sim-embed-inputs,.sim-embed-panel,.sim-embed-actions,.sim-embed-prompts{border-top:1px solid var(--learn-border);padding:10px}.sim-embed-inputs,.sim-embed-tag-values,.truth-table-controls,.completion-prompt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sim-embed-inputs-label,.sim-embed-panel-label{color:var(--learn-text-soft);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.sim-embed-input-btn,.truth-table-submit,.truth-table-reset,.completion-btn{min-height:34px;border:1px solid var(--learn-border-strong);border-radius:6px;background:var(--learn-surface);color:var(--learn-text);cursor:pointer;font-weight:700}.sim-embed-input-btn{min-height:28px;padding:4px 10px;font-size:12px}.sim-embed-input-btn.active{border-color:var(--learn-success);background:var(--learn-success);color:#fff}.sim-embed-boolean-expr,.sim-embed-tag-val{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.sim-embed-boolean-expr{display:block;margin-top:6px;overflow-x:auto;border-radius:6px;background:#0f172a;color:#bae6fd;padding:8px 10px}.sim-embed-truth-table,.truth-table{width:100%;min-width:320px;border-collapse:collapse;color:var(--learn-text);font-size:13px}.truth-table-wrapper{margin:24px 0;overflow-x:auto}.truth-table th,.truth-table td,.sim-embed-truth-table th,.sim-embed-truth-table td{border:1px solid var(--learn-border);padding:8px 10px;text-align:center}.truth-table th,.sim-embed-truth-table th{background:#e2e8f0;color:var(--learn-text);font-weight:800}.truth-table tbody tr:nth-child(odd),.sim-embed-truth-table tbody tr:nth-child(odd),.truth-table-row-odd{background:var(--learn-surface)}.truth-table tbody tr:nth-child(2n),.sim-embed-truth-table tbody tr:nth-child(2n),.truth-table-row-even{background:var(--learn-surface-muted)}.truth-table-input-cell,.truth-table-output-cell{color:var(--learn-text);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.truth-table .correct,.truth-table-correct{background:var(--learn-success-bg)!important;color:var(--learn-success);font-weight:800}.truth-table .incorrect,.truth-table-incorrect{background:var(--learn-danger-bg)!important;color:var(--learn-danger)}.truth-table-interactive{cursor:pointer;-webkit-user-select:none;user-select:none}.truth-table-interactive:hover{background:#e0f2fe}.truth-table-wrong{margin-right:.4em;color:var(--learn-danger);text-decoration:line-through}.truth-table-correct-hint{color:var(--learn-success);font-weight:800}.truth-table-submit,.truth-table-reset,.completion-btn{padding:8px 14px;font-size:14px}.truth-table-submit,.completion-btn-primary,.sim-embed-submit-btn{border-color:var(--learn-link);background:var(--learn-link);color:#fff}.truth-table-submit:hover,.completion-btn-primary:hover,.sim-embed-submit-btn:hover{background:var(--learn-link-hover)}.truth-table-submit:disabled{border-color:var(--learn-border);background:var(--learn-surface-muted);color:var(--learn-text-soft);cursor:not-allowed}.truth-table-reset,.completion-btn-secondary{background:var(--learn-surface-muted)}.sim-embed-submit-btn{align-self:flex-start;min-height:34px;padding:8px 16px;border:1px solid var(--learn-link);border-radius:6px;cursor:pointer;font-weight:800}.sim-embed-result{border-radius:6px;font-size:13px;line-height:1.5;padding:8px 10px}.sim-embed-result--pass{background:var(--learn-success-bg);color:var(--learn-success);font-weight:800}.sim-embed-result--fail{background:var(--learn-danger-bg);color:var(--learn-danger)}.three-panel,.four-panel{display:flex;flex-direction:column;gap:10px;margin:24px 0}.three-panel .panel,.three-panel .panel-card,.four-panel .panel,.four-panel .panel-card{flex:1 1 0;min-width:0;overflow:hidden;border:1px solid var(--learn-border);border-radius:var(--learn-radius);background:var(--learn-surface);box-shadow:var(--learn-shadow)}.three-panel .panel header,.three-panel .panel-header,.four-panel .panel header,.four-panel .panel-header{padding:9px 12px;border-bottom:1px solid var(--learn-border);background:var(--learn-surface-muted);color:var(--learn-text);font-size:12px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.three-panel .panel>:not(header),.three-panel .panel-body,.four-panel .panel>:not(header),.four-panel .panel-body{padding:12px;color:var(--learn-text-muted);font-size:14px;line-height:1.6}.panel-arrow{display:flex;align-items:center;justify-content:center;color:var(--learn-text-soft);font-size:18px}.completion-prompt{display:grid;justify-items:center;gap:18px;margin:44px auto 32px;padding:24px;border:1px solid var(--learn-border);border-radius:var(--learn-radius);background:var(--learn-surface);text-align:center;box-shadow:var(--learn-shadow)}.completion-prompt-heading{max-width:560px;margin:0;color:var(--learn-text);font-size:18px;line-height:1.45}.completion-prompt-heading em{color:var(--learn-link);font-style:normal}.completion-prompt-confirmed{display:grid;justify-items:center;gap:10px}.completion-confirmation{margin:0;color:var(--learn-success);font-weight:800}.completion-sandbox-link{color:var(--learn-link);font-weight:750;text-decoration:none}.completion-sandbox-link:hover{color:var(--learn-link-hover);text-decoration:underline}@media (min-width: 768px){.learn-layout{grid-template-columns:240px minmax(0,1fr);align-items:start}.learn-sidebar,.learn-toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto}.curriculum-index,.learn-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-nav,.learn-prev-next{grid-template-columns:1fr 1fr}.learn-nav-next{justify-items:end;text-align:right}.simulator-embed-layout,.sim-embed-main{flex-direction:row}.sim-embed-hmi-panel{border-top:0;border-left:1px solid var(--learn-border)}.three-panel,.four-panel{flex-direction:row;align-items:stretch}.panel-arrow{flex:0 0 24px}}@media (max-width: 767px){.learn-layout,.learn-ci-inner,.learn-lesson-inner{padding:24px 16px 56px}.learn-ci-header h1,.lesson-page h1,.mdx-content h1{font-size:28px}.learn-cat-card-header,.category-card{padding:16px}.lesson-list-item,.learn-cat-lesson-row,.learn-lesson-link{align-items:flex-start;padding:12px 14px}.difficulty-badge,.learn-level-badge{margin-top:1px}.panel-arrow{transform:rotate(90deg)}.completion-prompt{padding:20px 16px}.completion-prompt-actions,.completion-btn{width:100%}}.mdx-content table,.lesson-page table,.learn-lesson-article table{width:100%;max-width:600px;border-collapse:collapse;margin:1rem 0 1.5rem;font-size:14px;border:1px solid var(--learn-border);border-radius:var(--learn-radius);overflow:hidden}.mdx-content table th,.lesson-page table th,.learn-lesson-article table th{padding:10px 14px;text-align:left;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:var(--learn-surface-muted);color:var(--learn-text);border-bottom:2px solid var(--learn-border)}.mdx-content table td,.lesson-page table td,.learn-lesson-article table td{padding:8px 14px;border-bottom:1px solid var(--learn-border);color:var(--learn-text-muted);font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.mdx-content table tbody tr:last-child td,.lesson-page table tbody tr:last-child td,.learn-lesson-article table tbody tr:last-child td{border-bottom:none}.mdx-content table tbody tr:nth-child(2n),.lesson-page table tbody tr:nth-child(2n),.learn-lesson-article table tbody tr:nth-child(2n){background:var(--learn-surface-muted)}.mdx-content .sim-embed-header-standalone,.mdx-content .lesson-editor{width:calc(100vw - 100px);max-width:1100px;margin-left:calc(-.5*(min(100vw - 100px,1100px) - 100%))}.mdx-content .sim-embed-header-standalone{margin-bottom:0;border-radius:8px 8px 0 0}.mdx-content .lesson-editor{border-radius:0 0 8px 8px;margin-top:0}.ladder-renderer{width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;min-height:420px;overflow:auto;background:#e2e8f0;border:1px solid #cbd5e1}.ladder-renderer svg{display:block}.lesson-editor{display:flex;border:1px solid #e2e8f0;border-radius:0 0 8px 8px;overflow:hidden;background:#fff;min-height:380px;max-height:550px;width:100%}.lesson-editor-tags{flex:0 0 150px;border-right:1px solid #e2e8f0;overflow-y:auto;background:#f8fafc;padding:10px 0}.lesson-editor-tags-title{padding:0 12px 8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.lesson-editor-tags-list{list-style:none;margin:0;padding:0}.lesson-tag{display:flex;flex-direction:column;gap:1px;padding:6px 12px;border-bottom:1px solid #f1f5f9}.lesson-tag:last-child{border-bottom:none}.lesson-tag-name{font-family:SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:700;color:#0f172a}.lesson-tag-meta{font-size:10px;color:#94a3b8;text-transform:uppercase}.lesson-tag--input .lesson-tag-name{color:#1d4ed8}.lesson-tag--output .lesson-tag-name{color:#15803d}.lesson-tag--internal .lesson-tag-name{color:#7c3aed}.lesson-editor-canvas{flex:1 1 auto;overflow:auto;min-width:0}.lesson-editor-canvas .rung-editor{min-height:100%}.lesson-editor-palette{flex:0 0 300px;min-width:300px;border-left:1px solid #e2e8f0;overflow-x:hidden;overflow-y:auto;background:#f8fafc}.lesson-editor-palette .instruction-palette{width:100%;min-width:0;border:none;border-radius:0;height:auto;overflow:hidden}.sim-embed{display:flex;flex-direction:column;width:100%;max-width:100%;overflow:hidden;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;font-size:13px}.sim-embed--not-found{align-items:center;justify-content:center;color:#64748b}.sim-embed-header{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#1e293b;color:#f1f5f9;flex-shrink:0;min-height:32px}.sim-embed-mode-badge{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:#334155}.sim-embed-mode-badge--demo{background:#15803d}.sim-embed-mode-badge--guided{background:#1d4ed8}.sim-embed-mode-badge--challenge{background:#b45309}.sim-embed-mode-badge--debug{background:#b91c1c}.sim-embed-mode-badge--interview{background:#7c3aed}.sim-embed-title{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sim-embed-body{display:flex;flex-direction:column;flex:1 1 auto;overflow:hidden;min-height:0}.sim-embed-main{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}.sim-embed-ladder{flex:1 1 auto;min-width:0;overflow:auto}.sim-embed-ladder .ladder-renderer{min-height:0}.sim-embed-hmi-panel{flex:0 0 220px;border-left:1px solid #cbd5e1;overflow:hidden;background:#f1f5f9}.sim-embed-hmi-canvas{position:relative;width:100%;height:100%;min-height:140px}.sim-embed-inputs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;border-top:1px solid #e2e8f0;flex-shrink:0;background:#f1f5f9}.sim-embed-inputs-label{font-weight:600;color:#475569;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.sim-embed-input-btn{padding:3px 10px;border:1px solid #94a3b8;border-radius:4px;background:#fff;cursor:pointer;font-size:12px;font-weight:500;color:#334155;transition:background .1s,border-color .1s}.sim-embed-input-btn.active{background:#16a34a;border-color:#15803d;color:#fff}.sim-embed-input-btn:hover{border-color:#64748b}.sim-embed-prompts{padding:6px 10px;border-top:1px solid #e2e8f0;flex-shrink:0;background:#eff6ff}.sim-embed-prompt-list{margin:4px 0 0 16px;padding:0;font-size:12px;color:#1e3a5f;line-height:1.5}.sim-embed-panel{padding:6px 10px;border-top:1px solid #e2e8f0;flex-shrink:0}.sim-embed-panel-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:4px}.sim-embed-boolean-expr{display:block;font-size:12px;background:#1e293b;color:#7dd3fc;padding:4px 8px;border-radius:4px}.sim-embed-truth-table{border-collapse:collapse;font-size:12px;width:auto}.sim-embed-truth-table th,.sim-embed-truth-table td{border:1px solid #cbd5e1;padding:2px 8px;text-align:center}.sim-embed-truth-table th{background:#e2e8f0;font-weight:600}.sim-embed-scan-meta{display:flex;gap:16px;font-size:11px;color:#475569;margin-bottom:4px}.sim-embed-tag-values{display:flex;flex-wrap:wrap;gap:4px}.sim-embed-tag-row{display:flex;gap:4px;background:#e2e8f0;border-radius:3px;padding:2px 6px;font-size:11px}.sim-embed-tag-name{color:#475569;font-weight:500}.sim-embed-tag-val{color:#0f172a;font-family:monospace}.sim-embed-actions{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-top:1px solid #e2e8f0;flex-shrink:0}.sim-embed-submit-btn{align-self:flex-start;padding:5px 16px;background:#2563eb;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s}.sim-embed-submit-btn:hover{background:#1d4ed8}.sim-embed-result{font-size:12px;border-radius:4px;padding:6px 10px}.sim-embed-result--pass{background:#dcfce7;color:#15803d;font-weight:600}.sim-embed-result--fail{background:#fef2f2;color:#b91c1c}.sim-embed-failure-list{margin:0;padding-left:16px;line-height:1.6}.sim-embed-hidden-fail{margin:4px 0 0;font-style:italic;color:#64748b}.sim-embed-guided-hints{margin-top:12px;padding:12px 16px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;font-size:14px;line-height:1.6;color:#1e40af}.sim-embed-guided-hints summary{cursor:pointer;font-weight:700;font-size:14px;color:#1e40af}.sim-embed-guided-hints .sim-embed-prompt-list{margin:8px 0 0 20px;padding:0;color:#334155}.sim-embed-guided-hints .sim-embed-prompt-list li{margin-bottom:6px}.sim-embed-actions-external{display:flex;align-items:center;gap:12px;margin-top:10px}.sim-embed-header-standalone{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#1e293b;color:#f1f5f9;border-radius:8px 8px 0 0;margin-bottom:0}.sim-embed-header-standalone+.lesson-editor{border-top-left-radius:0;border-top-right-radius:0}.sim-embed-start-prompt{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;margin:16px 0}.sim-embed-start-info{display:flex;align-items:center;gap:10px}.sim-embed-start-title{font-size:14px;font-weight:600;color:#334155}.sim-embed-start-btn{padding:8px 20px;border:none;border-radius:6px;background:#4f46e5;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.sim-embed-start-btn:hover{background:#4338ca}.truth-table-wrapper{overflow-x:auto;margin:1.5rem 0}.truth-table{border-collapse:collapse;font-size:.9rem;min-width:280px;width:100%;max-width:500px;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.truth-table th{padding:.6rem 1.2rem;text-align:center;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e2e8f0}.truth-table-input-header{background:#f1f5f9;color:#334155}.truth-table-output-header{background:#e0e7ff;color:#3730a3}.truth-table td{padding:.5rem 1.2rem;text-align:center;border:1px solid #e5e7eb}.truth-table-row-even{background:#fff}.truth-table-row-odd{background:#f9fafb}.truth-table-input-cell{font-family:SFMono-Regular,Consolas,monospace;font-weight:600;font-size:.85rem}.truth-table-output-cell{font-family:SFMono-Regular,Consolas,monospace;font-weight:700;font-size:.85rem}.truth-table-value-true{color:#16a34a}.truth-table-value-false{color:#dc2626}.truth-table-interactive{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,box-shadow .15s}.truth-table-interactive:hover{background:#e0f2fe;box-shadow:inset 0 0 0 2px #7dd3fc}.truth-table-unanswered{background:#f0f9ff!important;border:1px dashed #93c5fd!important;color:#6b7280}.truth-table-instruction{color:#4f46e5;font-size:.85rem;margin-bottom:.5rem;font-weight:500}.truth-table-click-hint{font-size:.65rem;font-weight:400;color:#818cf8;margin-left:.3em}.truth-table-correct{background:#dcfce7!important}.truth-table-incorrect{background:#fee2e2!important;cursor:default}.truth-table-wrong{text-decoration:line-through;color:#dc2626;margin-right:.4em}.truth-table-correct-hint{color:#16a34a;font-weight:700}.truth-table-controls{margin-top:.75rem;display:flex;gap:.5rem}.truth-table-submit,.truth-table-reset{padding:.5rem 1.4rem;border:none;border-radius:6px;font-size:.875rem;cursor:pointer;font-weight:600;transition:background .15s}.truth-table-submit{background:#4f46e5;color:#fff}.truth-table-submit:hover{background:#4338ca}.truth-table-submit:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.truth-table-reset{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.truth-table-reset:hover{background:#e5e7eb}.truth-table-reveal{margin-top:1rem;padding:.85rem 1.1rem;background:#eff6ff;border-left:4px solid #3b82f6;border-radius:6px;color:#1e40af;font-size:.9rem;line-height:1.6;animation:reveal-fade-in .4s ease-out}@keyframes reveal-fade-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.three-panel{display:flex;flex-direction:row;align-items:stretch;gap:0;margin:1.25rem 0;flex-wrap:nowrap}.panel-card{flex:1;background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;min-width:0;box-shadow:0 1px 2px #0f172a0f}.panel-header{padding:.5rem 1rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0}.panel-header-realworld{background:#eff6ff;color:#1e40af}.panel-header-boolean{background:#faf5ff;color:#6b21a8}.panel-header-ladder{background:#ecfdf5;color:#065f46}.panel-header-scan{background:#fffbeb;color:#92400e}.panel-body{padding:.75rem 1rem;font-size:.875rem;color:#334155;line-height:1.6}.panel-arrow{display:flex;align-items:center;padding:0 .5rem;color:#94a3b8;font-size:1.25rem;flex-shrink:0}@media (max-width: 768px){.three-panel{flex-direction:column}.panel-arrow{transform:rotate(90deg);align-self:center;padding:.25rem 0}}.completion-prompt{margin:48px 0 32px;padding:24px 28px;border:2px solid #e2e8f0;border-radius:12px;background:#f8fafc}.completion-prompt-heading{margin:0 0 20px;font-size:18px;font-weight:700;color:#0f172a}.completion-prompt-heading em{font-style:normal;color:#3b82f6}.completion-prompt-actions{display:flex;flex-wrap:wrap;gap:12px}.completion-btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s}.completion-btn-primary{background:#3b82f6;color:#fff}.completion-btn-primary:hover{background:#2563eb}.completion-btn-secondary{background:#e2e8f0;color:#1e293b}.completion-btn-secondary:hover{background:#cbd5e1}.completion-prompt-confirmed{display:flex;flex-direction:column;gap:12px}.completion-confirmation{margin:0;font-size:15px;font-weight:600;color:#15803d}.completion-sandbox-link{display:inline-flex;align-items:center;gap:6px;color:#3b82f6;font-size:14px;font-weight:600;text-decoration:none}.completion-sandbox-link:hover{text-decoration:underline}*{box-sizing:border-box}:root{--state-off: #2563eb;--state-off-soft: #eff6ff;--state-off-border: #bfdbfe;--state-on: #16a34a;--state-on-soft: #ecfdf5;--state-on-border: #86efac;--state-neutral: #64748b}html,body,#root{width:100%;height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#dbe4ee}button,input,select,textarea{font:inherit}button:hover,.import-button:hover{border-color:#94a3b8}
