:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eff1f5;--panel:#e6e9ef;--control-bg:#dce0e8;--table-bg:#ccd0da;--editor-bg:#eff1f5;--editor-header-bg:#e6e9ef;--editor-text:#4c4f69;--editor-caret:#dc8a78;--editor-selection:#bcc0cc;--editor-border:#ccd0da;--editor-heading:#8839ef;--tab-bg:#dce0e8;--tab-text:#7c7f93;--tab-hover-bg:#ccd0da;--tab-hover-text:#4c4f69;--tab-active-text:#dc8a78;--line:#ccd0da;--text:#4c4f69;--muted:#6c6f85;--accent:#1e66f5;--danger:#d20f39;--warn:#df8e1d;--ok:#40a02b;--danger-bg:#f2d5d7;--warn-bg:#f8e3c1;--ok-bg:#d9ead3;--terminal:#e6e9ef;--terminal-text:#4c4f69;--terminal-line:#ccd0da;--terminal-handle:#1e66f5;--terminal-button-bg:#dce0e8;--terminal-button-border:#bcc0cc}body.dark-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1e1e2e;--panel:#181825;--control-bg:#313244;--table-bg:#11111b;--editor-bg:#1e1e2e;--editor-header-bg:#181825;--editor-text:#cdd6f4;--editor-caret:#f5e0dc;--editor-selection:#45475a;--editor-border:#313244;--editor-heading:#b4befe;--tab-bg:#11111b;--tab-text:#7f849c;--tab-hover-bg:#1e1e2e;--tab-hover-text:#cdd6f4;--tab-active-text:#f5e0dc;--line:#313244;--text:#cdd6f4;--muted:#a6adc8;--accent:#89b4fa;--danger:#f38ba8;--warn:#f9e2af;--ok:#a6e3a1;--danger-bg:#3b2230;--warn-bg:#3a321f;--ok-bg:#20382f;--terminal:#11111b;--terminal-text:#cdd6f4;--terminal-line:#313244;--terminal-handle:#89b4fa;--terminal-button-bg:#313244;--terminal-button-border:#45475a}body.dracula-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#282a36;--panel:#21222c;--control-bg:#44475a;--table-bg:#191a21;--editor-bg:#282a36;--editor-header-bg:#21222c;--editor-text:#f8f8f2;--editor-caret:#f8f8f2;--editor-selection:#44475a;--editor-border:#44475a;--editor-heading:#bd93f9;--tab-bg:#191a21;--tab-text:#9aa0bf;--tab-hover-bg:#343746;--tab-hover-text:#f8f8f2;--tab-active-text:#ff79c6;--line:#44475a;--text:#f8f8f2;--muted:#c7c9df;--accent:#bd93f9;--danger:#f55;--warn:#f1fa8c;--ok:#50fa7b;--danger-bg:#4a2230;--warn-bg:#3d3c22;--ok-bg:#1f3f2d;--terminal:#191a21;--terminal-text:#f8f8f2;--terminal-line:#44475a;--terminal-handle:#bd93f9;--terminal-button-bg:#44475a;--terminal-button-border:#6272a4}body.cyberpunk-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#100816;--panel:#190d24;--control-bg:#2a123d;--table-bg:#12091b;--editor-bg:#14091f;--editor-header-bg:#0b0611;--editor-text:#f8d7ff;--editor-caret:#ff4fd8;--editor-selection:#4b1f69;--editor-border:#4b1f69;--editor-heading:#ff7adf;--tab-bg:#0b0611;--tab-text:#b98acb;--tab-hover-bg:#241034;--tab-hover-text:#ffd6f6;--tab-active-text:#00f5ff;--line:#43205f;--text:#f8d7ff;--muted:#c69ad8;--accent:#ff4fd8;--danger:#ff5c8a;--warn:#fcee54;--ok:#00f5a0;--danger-bg:#421227;--warn-bg:#3d3510;--ok-bg:#073528;--terminal:#08040d;--terminal-text:#ffdef8;--terminal-line:#43205f;--terminal-handle:#ff4fd8;--terminal-button-bg:#2a123d;--terminal-button-border:#6c2b8f}*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{background:var(--bg);min-height:100dvh;color:var(--text);-webkit-tap-highlight-color:color-mix(in srgb, var(--accent) 18%, transparent);touch-action:manipulation;margin:0;font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,select,input,textarea{font:inherit}button,select{border:1px solid color-mix(in srgb, var(--line) 70%, transparent);background:color-mix(in srgb, var(--control-bg) 76%, transparent);color:var(--text);border-radius:5px;min-height:32px;transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,opacity .16s}button{cursor:pointer;padding:0 10px}select{padding:0 36px 0 10px}button:not(.modal-backdrop,.docs-backdrop,.menu-backdrop,.menu-header-logo,.random-scenario-icon-button,.incident-mode-button,.menu-search-button,.menu-search-clear):hover,select:hover{border-color:color-mix(in srgb, var(--accent) 34%, var(--line));background:color-mix(in srgb, var(--control-bg) 82%, var(--accent) 6%)}button:not(.modal-backdrop,.docs-backdrop,.menu-backdrop,.random-scenario-icon-button,.incident-mode-button,.menu-search-button,.menu-search-clear):focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 72%, transparent);outline-offset:2px}.menu-backdrop{z-index:30;background:#11111bb8;border:0;border-radius:0;min-height:0;padding:0;position:fixed;inset:0}.menu-backdrop:hover,.menu-backdrop:focus-visible{background:#11111bb8;outline:0}.menu-search{gap:0;display:grid}.menu-search input{width:100%;min-height:38px}.app-menu{z-index:40;width:min(360px,100vw - 24px);height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-right:1px solid var(--line);background:var(--panel);overscroll-behavior:contain;flex-direction:column;gap:10px;transition:transform .16s;display:flex;position:fixed;top:0;left:0;overflow:hidden;transform:translate(-105%);box-shadow:20px 0 45px #11111b6b}.menu-footer{flex:none;justify-content:space-between;align-items:center;gap:12px;margin-top:0;padding-top:2px;display:flex}.menu-repo-link{min-width:0;color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;text-decoration:none;display:flex}.menu-footer-icon{object-fit:contain;width:28px;height:28px;image-rendering:pixelated;transform-origin:50% 70%;animation:10s ease-in-out infinite menu-footer-icon-idle}.menu-repo-link:hover .menu-footer-icon,.menu-repo-link:focus-visible .menu-footer-icon{animation:.52s menu-footer-icon-bounce}.menu-github-link{width:32px;height:32px;color:var(--muted);border-radius:8px;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.menu-github-link:hover,.menu-github-link:focus-visible,.menu-repo-link:hover{color:var(--accent)}@keyframes menu-footer-icon-bounce{0%,to{transform:translateY(0)rotate(0)}35%{transform:translateY(-4px)rotate(-8deg)}65%{transform:translateY(-2px)rotate(6deg)}}@keyframes menu-footer-icon-idle{0%,94%,to{transform:translateY(0)rotate(0)}96%{transform:translateY(-4px)rotate(-8deg)}98%{transform:translateY(-2px)rotate(6deg)}}@media (prefers-reduced-motion:reduce){.menu-footer-icon,.menu-header-logo img,.topbar-title-icon,.menu-repo-link:hover .menu-footer-icon,.menu-repo-link:focus-visible .menu-footer-icon,.menu-header-logo:hover img,.menu-header-logo:focus-visible img,.topbar-title:hover .topbar-title-icon{animation:none}}.app-menu.open{transform:translate(0)}.menu-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.menu-header-logo{min-width:38px;min-height:38px;box-shadow:none;background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.menu-header-logo:hover,.menu-header-logo:focus-visible{box-shadow:none;background:0 0;border-color:#0000}.menu-header-logo img{object-fit:contain;width:34px;height:34px;image-rendering:pixelated;transform-origin:50% 70%;animation:10s ease-in-out infinite menu-footer-icon-idle;display:block}.menu-header-logo:hover img,.menu-header-logo:focus-visible img{animation:.52s menu-footer-icon-bounce}.menu-header-controls{align-items:center;gap:10px;display:inline-flex}.menu-close-button{width:28px;height:28px;min-height:28px;color:var(--muted);border-radius:999px;place-items:center;padding:0;font-size:18px;line-height:1;display:inline-grid}.app-menu .menu-close-button{background:0 0;border-color:#0000}.menu-section{border-top:1px solid color-mix(in srgb, var(--line) 42%, transparent);gap:8px;padding-top:12px;display:grid}.menu-header+.menu-section{border-top:0;padding-top:0}.menu-global-progress{margin-top:8px;padding:0 2px 2px;display:grid}.menu-global-progress-track{border:1px solid color-mix(in srgb, var(--menu-global-progress-color,var(--accent)) 42%, var(--line));background:color-mix(in srgb, var(--muted) 10%, transparent);border-radius:999px;place-items:center;height:6px;display:grid;position:relative;overflow:hidden}.menu-global-progress-track span{width:var(--menu-global-progress,0%);border-radius:inherit;background:var(--menu-global-progress-color,var(--accent));height:100%;transition:width .18s;display:block;position:absolute;inset:0 auto 0 0}.menu-progress-summary{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;margin-top:6px;font-size:11px;font-weight:700;display:flex}.lab-menu-section{border-top:0;flex-direction:column;flex:auto;gap:6px;min-height:0;display:flex}.menu-search{min-width:0;margin-bottom:6px;display:flex}.menu-search-label{width:100%}.menu-search-control{align-items:center;min-width:0;display:block;position:relative}.menu-search-control:before{content:"";border:1.5px solid color-mix(in srgb, var(--muted) 50%, transparent);pointer-events:none;border-radius:999px;width:9px;height:9px;position:absolute;top:50%;left:10px;transform:translateY(-58%)}.menu-search-control:after{content:"";background:color-mix(in srgb, var(--muted) 50%, transparent);pointer-events:none;border-radius:999px;width:6px;height:1.5px;position:absolute;top:23px;left:20px;transform:rotate(45deg)}.menu-search input{border:1px solid color-mix(in srgb, var(--line) 30%, transparent);width:100%;min-height:34px;color:var(--text);box-shadow:none;background:0 0;border-radius:8px;padding:0 28px 0 30px;font-size:12px;font-weight:700}.menu-search input::placeholder{color:color-mix(in srgb, var(--muted) 50%, transparent);font-weight:600}.menu-search input:focus{border-color:color-mix(in srgb, var(--accent) 42%, transparent);outline:none}.menu-search-control .menu-search-clear{width:20px;min-width:0;max-width:20px;height:20px;min-height:0;max-height:20px;box-shadow:none;color:color-mix(in srgb, var(--muted) 60%, transparent);box-sizing:border-box;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex;top:50%;right:6px;transform:translateY(-50%);padding:0!important;position:absolute!important;left:auto!important}.menu-search-control .menu-search-clear:hover,.menu-search-control .menu-search-clear:focus-visible{color:var(--muted);background:color-mix(in srgb, var(--muted) 14%, transparent);outline:none}.menu-search-button{width:30px;height:30px;min-height:30px;color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;border-radius:8px;flex:0 0 30px;place-items:center;padding:0;display:inline-grid}.menu-search-button:hover,.menu-search-button:focus-visible{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text)}.menu-search-button.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.menu-lab-list{scrollbar-color:transparent transparent;scrollbar-width:thin;align-content:start;gap:8px;min-height:0;padding-bottom:4px;padding-right:4px;display:grid;overflow-y:auto}.menu-lab-list::-webkit-scrollbar{width:10px}.menu-lab-list::-webkit-scrollbar-track{background:0 0}.menu-lab-list::-webkit-scrollbar-thumb{background:0 0;border:2px solid #0000;border-radius:999px}.menu-lab-list::-webkit-scrollbar-thumb:hover{background:0 0}.menu-lab-nav-section{background:0 0;border:0;border-radius:0;gap:4px;padding:0;display:grid}.menu-nav-section-button{min-height:30px;color:color-mix(in srgb, var(--muted) 92%, var(--text));text-align:left;box-shadow:none;background:0 0;border-color:#0000;justify-content:space-between;align-items:center;gap:10px;padding:5px 8px;display:flex}.menu-nav-section-button:before{content:"›";color:var(--muted);transition:transform .14s;transform:rotate(0)}.menu-nav-section-button[aria-expanded=true]:before{transform:rotate(90deg)}.menu-nav-section-button span{text-transform:uppercase;flex:1;min-width:0;font-size:11px;font-weight:900}.menu-nav-section-button small{color:var(--muted);flex:none;font-size:10px;font-weight:800}.menu-nav-section-button:hover,.menu-nav-section-button:focus-visible{color:var(--text);background:0 0}.menu-lab-nav-section.contains-selected .menu-nav-section-button,.menu-lab-nav-section.contains-selected .menu-nav-section-button small,.menu-lab-nav-section.contains-selected .menu-nav-section-button:before{color:var(--accent)}.menu-nav-section-groups{gap:4px;display:grid}.menu-subsection-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;opacity:.7;padding:6px 6px 2px;font-size:10px;font-weight:700}.menu-lab-group{border:1px solid #0000;border-radius:8px;gap:5px;padding:2px;transition:background-color .16s,border-color .16s,box-shadow .16s;display:grid}.menu-lab-group.selected-section{border-color:color-mix(in srgb, var(--accent) 72%, var(--line));background:color-mix(in srgb, var(--accent) 8%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent), 0 0 22px color-mix(in srgb, var(--accent) 28%, transparent)}.menu-group-header{align-items:center;gap:8px;width:100%;display:flex}.menu-group-icon{width:22px;height:22px;color:var(--accent);flex-shrink:0;place-items:center;display:inline-grid}.menu-group-icon :global(svg){fill:currentColor;display:block}.menu-group-button{text-align:left;min-width:0;min-height:34px;box-shadow:none;background:0 0;border-color:#0000;flex:1;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px;display:flex}.menu-group-button:before{content:"›";color:var(--muted);transition:transform .14s;transform:rotate(0)}.menu-group-button[aria-expanded=true]:before{transform:rotate(90deg)}.menu-lab-group.selected-section .menu-group-button:before,.menu-lab-group.selected-section .menu-group-button strong,.menu-lab-group.selected-section .menu-group-button small{color:var(--accent)}.menu-lab-group.selected-section .menu-group-button small{background:color-mix(in srgb, var(--accent) 14%, transparent)}.menu-group-button>span{flex:1;gap:2px;min-width:0;display:grid}.menu-group-button strong{font-weight:800}.menu-group-button small{color:var(--muted);background:0 0;border-radius:999px;flex:none;padding:2px 7px;font-size:11px;font-weight:800}.scenario-list,.menu-actions{gap:8px;display:grid}.menu-actions{grid-template-columns:minmax(0,1fr)}.menu-lab-group .scenario-list{border-left:0;gap:5px;padding-left:10px}.menu-lab-group.selected-section .scenario-list{padding:2px 3px 3px 13px}.theme-dots{border-left:1px solid color-mix(in srgb, var(--line) 58%, transparent);align-items:center;gap:8px;min-height:24px;padding:2px 0 2px 12px;display:flex}.theme-dot{border:1px solid color-mix(in srgb, var(--line) 72%, transparent);width:14px;min-width:14px;height:14px;min-height:14px;box-shadow:none;border-radius:999px;flex:0 0 14px;padding:0}.theme-dot.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent)}.incident-mode-button{width:30px;height:30px;min-height:30px;color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;border-radius:8px;flex:0 0 30px;place-items:center;padding:0;display:inline-grid}.incident-mode-button:hover,.incident-mode-button:focus-visible{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text)}.incident-mode-button.active{border-color:color-mix(in srgb, var(--accent) 42%, transparent);background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.random-scenario-icon-button{width:30px;height:30px;min-height:30px;color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;border-radius:8px;flex:0 0 30px;place-items:center;padding:0;display:inline-grid}.random-scenario-icon-button:hover,.random-scenario-icon-button:focus-visible{background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--text)}.theme-dot-latte{background:#eff1f5}.theme-dot-mocha{background:#1e1e2e}.theme-dot-dracula{background:#bd93f9}.theme-dot-cyberpunk{background:#ff4fd8}.scenario-list button,.menu-actions button{text-align:left;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;display:flex}.scenario-list button{min-height:34px;box-shadow:none;background:0 0;border-color:#0000;padding:7px 9px;font-size:12px}.scenario-list button.scenario-difficulty,.lab-index-list button.scenario-difficulty{background:0 0}.scenario-list button.difficulty-easy,.lab-index-list button.difficulty-easy{--difficulty-color:#a6e3a1}.scenario-list button.difficulty-normal,.lab-index-list button.difficulty-normal{--difficulty-color:#f9e2af}.scenario-list button.difficulty-hard,.lab-index-list button.difficulty-hard{--difficulty-color:#cba6f7}.scenario-list button.difficulty-legendary,.lab-index-list button.difficulty-legendary{--difficulty-color:#fab387}.scenario-title{min-width:0}.scenario-check{background:var(--ok-bg);width:22px;height:22px;color:var(--ok);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;place-items:center;font-size:14px;font-weight:800;display:inline-grid}.scenario-check-empty{border:1px solid color-mix(in srgb, var(--muted) 42%, transparent);color:#0000;background:0 0}.group-check{margin-left:7px}.group-check-progress{border-color:color-mix(in srgb, var(--accent) 58%, transparent);background:linear-gradient(0deg, color-mix(in srgb, var(--accent) 26%, transparent) var(--group-completion-percent,0%), transparent 0);color:#0000}.scenario-check:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.scenario-list button.completed:not(.active){border-color:#0000}.scenario-list button.active{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--ok);border-color:#0000;font-weight:700}.menu-actions button.active{color:var(--accent);background:0 0;border-color:#0000;font-weight:700}.lab-index{scrollbar-color:transparent transparent;scrollbar-width:thin;grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:18px;width:min(100%,1440px);min-height:0;margin:0 auto;padding:clamp(16px,4vh,42px) clamp(12px,3vw,28px) 32px;display:grid;overflow:auto}.lab-index::-webkit-scrollbar{width:8px;height:8px}.lab-index::-webkit-scrollbar-track{background:0 0}.lab-index::-webkit-scrollbar-thumb{background:0 0}.lab-index-intro{color:var(--text);text-align:center;grid-column:1/-1;margin:0;padding:10px 0 34px;font-family:SFMono-Regular,Consolas,monospace;font-size:clamp(32px,4vw,38px);font-style:normal;font-weight:500}.lab-index-intro span{color:#a6e3a1;background:#a6e3a138;border:1px solid #a6e3a1b8;border-radius:999px;padding:3px 12px 5px;display:inline-block}.lab-index-intro .pill-mauve{color:#cba6f7;background:#cba6f738;border-color:#cba6f7b8}.lab-index-card{border:1px solid color-mix(in srgb, var(--line) 34%, transparent);background:color-mix(in srgb, var(--panel) 88%, transparent);text-align:left;border-radius:8px;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:14px;min-height:164px;padding:24px 22px;transition:background-color 2s,border-color 2s,box-shadow 2s,transform .16s;display:grid;overflow:hidden}.lab-index-card:hover,.lab-index-card:focus-visible{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));background:color-mix(in srgb, var(--panel) 94%, var(--accent) 6%);box-shadow:0 0 24px color-mix(in srgb, var(--accent) 50%, transparent), 0 10px 28px #11111b38;transition:background-color .16s,border-color .16s,box-shadow .16s;transform:translateY(-2px)}.lab-index-icon{width:36px;height:36px;color:var(--accent);place-items:center;display:inline-grid}.lab-index-icon svg{fill:currentColor;display:block}.lab-index-content{gap:10px;min-width:0;padding:2px 0 4px;display:grid}.lab-index-content strong{color:var(--text);font-size:18px;line-height:1.2}.lab-index-content small{max-height:46.5px;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-left:-46px;margin-right:-46px;padding-top:3px;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.lab-index-providers{flex-wrap:wrap;gap:6px;display:flex}.lab-index-providers span{border:1px solid color-mix(in srgb, var(--accent) 36%, transparent);color:var(--accent);text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.2}.lab-index-providers span.provider-aws{color:#ffb066;border-color:#ffb0669e}.lab-index-providers span.provider-generic{border-color:color-mix(in srgb, var(--ok) 62%, transparent);color:var(--ok)}.lab-index-providers span.provider-azure{color:#5daedb;border-color:#5daedb9e}.lab-index-providers span.provider-k8s{color:#7b8feb;border-color:#7b8feb9e}.lab-index-providers span.provider-github{color:#9b7ed5;border-color:#9b7ed59e}.lab-index-providers span.provider-java{color:#f5a94d;border-color:#f5a94d9e}.lab-index-providers span.provider-hashicorp{color:#a87ec9;border-color:#a87ec99e}.lab-index-count{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-self:start;font-size:12px;font-weight:800}@media (width<=1180px){.lab-index{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (height<=820px) and (width>=821px){.lab-index{gap:14px 16px;padding:10px clamp(12px,2vw,20px) 28px}.lab-index-intro{padding:6px 0 14px;font-size:28px;line-height:1.2}.lab-index-card{grid-template-columns:40px minmax(0,1fr) auto;gap:14px;min-height:128px;padding:16px 20px;overflow:hidden}.lab-index-content{gap:7px;padding:0 0 2px}.lab-index-content strong{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.18;display:-webkit-box;overflow:hidden}.lab-index-content small{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:36.4px;font-size:13px;line-height:1.4;display:-webkit-box}.lab-index-providers{gap:5px}.lab-index-providers span{padding:2px 6px;font-size:9px}}.app-shell{grid-template-rows:auto minmax(0, 1fr) var(--terminal-height,260px);height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));gap:10px;display:grid}.app-shell.index-page,.app-shell.network-page,.app-shell.terminal-less-page{grid-template-rows:auto minmax(0,1fr)}.app-shell.is-resizing-terminal{cursor:row-resize;-webkit-user-select:none;user-select:none}.app-shell.is-resizing-workspace{cursor:col-resize;-webkit-user-select:none;user-select:none}.app-shell.modal-open{pointer-events:none;-webkit-user-select:none;user-select:none}.confetti-layer{z-index:20;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{top:-18px;left:var(--left);width:var(--size);height:calc(var(--size) * 1.45);background:var(--color);opacity:0;transform:translate3d(0, 0, 0) rotate(var(--rotation));animation:confetti-fall var(--duration) cubic-bezier(.22, .9, .35, 1) var(--delay) forwards;border-radius:2px;position:absolute}@keyframes confetti-fall{0%{opacity:1;transform:translate3d(0, -24px, 0) rotate(var(--rotation))}82%{opacity:1}to{opacity:0;transform:translate3d(var(--drift), 110vh, 0) rotate(calc(var(--rotation) + 720deg))}}.topbar,.panel{border:1px solid color-mix(in srgb, var(--line) 64%, transparent);background:color-mix(in srgb, var(--panel) 74%, transparent);border-radius:6px}.topbar{justify-content:flex-start;align-items:center;gap:12px;padding:8px 10px;display:flex}.app-shell.index-page .topbar{background:0 0;border-color:#0000}.topbar-title{flex:1;min-width:0}.topbar-title h1{align-items:center;gap:8px;display:inline-flex}.topbar-title-icon{object-fit:contain;width:1.6em;height:1.6em;image-rendering:pixelated;transform-origin:50% 70%;animation:10s ease-in-out infinite menu-footer-icon-idle}.topbar-title:hover .topbar-title-icon{animation:.52s menu-footer-icon-bounce}.topbar-badges{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;gap:6px;display:flex}.topbar-actions{flex:none;position:relative}.actions-menu-button{color:var(--muted);background:0 0;border-color:#0000;align-items:center;gap:6px;display:inline-flex}.actions-menu-button:hover,.actions-menu-button:focus-visible,.actions-menu-button[aria-expanded=true]{border-color:color-mix(in srgb, var(--line) 72%, transparent);background:color-mix(in srgb, var(--control-bg) 58%, transparent);color:var(--text)}.actions-menu{z-index:25;border:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:var(--panel);border-radius:6px;min-width:180px;padding:4px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 34px #11111b3d}.actions-menu button{width:100%;min-height:32px;color:var(--text);text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;align-items:center;gap:8px;padding:0 8px;display:flex}.actions-menu button svg{color:var(--muted);flex:none}.actions-menu button:hover,.actions-menu button:focus-visible{background:color-mix(in srgb, var(--accent) 8%, transparent)}.actions-menu button.danger{color:var(--danger)}.actions-menu button.danger svg{color:currentColor}.hamburger-button{background:0 0;border-color:#0000;flex:none;place-content:center;gap:4px;width:38px;min-height:38px;padding:0;display:inline-grid}.hamburger-button span{background:currentColor;border-radius:999px;width:17px;height:2px;display:block}.modal-backdrop{z-index:60;background:#11111bad;border:0;border-radius:0;min-height:0;padding:0;position:fixed;inset:0}.lab-modal{z-index:70;border:1px solid color-mix(in srgb, var(--accent) 34%, var(--line));background:var(--panel);border-radius:8px;flex-direction:column;width:min(640px,100vw - 32px);max-height:min(720px,100dvh - 32px);display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 70px #11111b7a}.docs-backdrop{z-index:60;background:#11111b6b;border:0;border-radius:0;min-height:0;padding:0;position:fixed;inset:0}.docs-window{z-index:70;border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));background:var(--panel);border-radius:8px;flex-direction:column;width:min(960px,100vw - 40px);height:min(880px,100dvh - 40px);display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 24px 70px #11111b70}.docs-window-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.docs-window-header h2{margin:0;font-size:14px}.lab-modal-header,.lab-modal-actions{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.lab-modal-header>div{gap:2px;min-width:0;display:grid}.lab-modal-header p{color:var(--accent);text-transform:uppercase;margin:0;font-size:11px;font-weight:800}.lab-modal-header h2{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;overflow:hidden}.lab-modal-body{gap:12px;padding:16px;display:grid;overflow:auto}.lab-modal-body h3{color:var(--text);margin:4px 0 0;font-size:13px}.lab-modal-body p,.lab-modal-body li{color:var(--muted);line-height:1.55}.lab-modal-body p{margin:0}.lab-modal-body ol{gap:8px;margin:0;padding-left:20px;display:grid}.lab-modal-body pre{border:1px solid var(--line);background:var(--terminal);color:var(--terminal-text);border-radius:8px;margin:0;padding:12px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.lab-modal-actions{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.solution-apply-button{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));background:color-mix(in srgb, var(--accent) 16%, var(--control-bg));color:var(--text)}.solution-apply-button:hover{border-color:color-mix(in srgb, var(--accent) 68%, var(--line));background:color-mix(in srgb, var(--accent) 22%, var(--control-bg))}h1,h2,h3,p{margin:0}h1{text-wrap:balance;font-size:20px;font-weight:700}h2{text-wrap:balance;font-size:14px;font-weight:700}h3{color:var(--muted);text-transform:uppercase;margin-bottom:8px;font-size:12px}.workspace{grid-template-columns:minmax(280px, var(--workspace-editor-width,50%)) 8px minmax(320px, 1fr);gap:0;min-height:0;display:grid}.workspace-split-handle{z-index:1;cursor:col-resize;background:0 0;border:0;min-width:8px;min-height:0;padding:0;position:relative}.workspace-split-handle:hover,.workspace-split-handle:focus-visible{background:0 0}.workspace-split-handle:before{content:"";background:color-mix(in srgb, var(--line) 70%, transparent);border-radius:999px;transition:background-color .16s,box-shadow .16s;position:absolute;inset:8px 3px}.workspace-split-handle:hover:before,.workspace-split-handle:focus-visible:before,.app-shell.is-resizing-workspace .workspace-split-handle:before{background:color-mix(in srgb, var(--accent) 72%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 16%, transparent)}.panel{flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid color-mix(in srgb, var(--line) 58%, transparent);justify-content:space-between;align-items:center;gap:8px;min-height:34px;padding:6px 10px;display:flex}.panel-header h2{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.editor-panel .panel-header h2,.pr-diff-panel .panel-header h2{text-transform:none;font-size:12px}.editor-panel{border-color:color-mix(in srgb, var(--editor-border) 72%, transparent);background:var(--editor-bg)}.editor-panel .panel-header{border-bottom-color:color-mix(in srgb, var(--editor-border) 58%, transparent);background:color-mix(in srgb, var(--editor-header-bg) 68%, transparent)}.editor-panel button{color:var(--editor-text);background:0 0;border-color:#0000}.editor-save-state{align-items:center;gap:8px;display:inline-flex}.editor-save-state span{color:var(--warn);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.editor-save-state button{color:var(--muted)}.editor-save-state button.dirty{border-color:color-mix(in srgb, var(--accent) 44%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--editor-text)}.file-tabs{border-bottom:1px solid color-mix(in srgb, var(--editor-border) 58%, transparent);background:color-mix(in srgb, var(--editor-header-bg) 68%, transparent);gap:12px;min-height:32px;padding:0 10px;display:flex}.file-tabs button{max-width:220px;min-height:32px;color:var(--tab-text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border-color:#0000;border-radius:0;justify-content:center;align-items:center;gap:7px;display:inline-flex;position:relative;overflow:hidden}.file-tab-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.file-tab-dot{background:var(--warn);width:6px;height:6px;box-shadow:0 0 0 2px color-mix(in srgb, var(--warn-bg) 70%, transparent);border-radius:999px;flex:none}.file-tabs button:hover{color:var(--tab-hover-text);background:0 0}.file-tabs button.active{color:var(--tab-active-text);background:0 0;border-color:#0000;font-weight:700}.file-tabs button.dirty:not(.active){color:color-mix(in srgb, var(--tab-text) 78%, var(--warn))}.file-tabs button.active:after{content:"";background:var(--accent);border-radius:999px 999px 0 0;height:2px;position:absolute;inset:auto 0 0}.editor-panel textarea{resize:none;width:100%;height:100%;color:var(--editor-text);background:var(--editor-bg);caret-color:var(--editor-caret);border:0;outline:0;padding:12px;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.editor-panel textarea:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 42%, transparent)}.editor-panel textarea::selection{background:var(--editor-selection);color:var(--editor-text)}.resource-grid{grid-template-columns:1fr 1fr;gap:0;min-height:0;padding:0;display:grid;overflow:auto}.resources-panel .resource-grid{flex:1}.resource-section{min-width:0;padding:10px}.resource-grid .resource-section+.resource-section{border-left:1px solid color-mix(in srgb, var(--line) 58%, transparent)}.resource-section-header{justify-content:space-between;align-items:center;gap:10px;min-height:24px;margin-bottom:8px;display:flex}.resource-section h3{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.pipeline-dashboard{flex:1;grid-template-columns:1fr 1fr;gap:0;min-height:0;padding:0;display:grid;overflow:auto}.pipeline-dashboard .resource-section{border:0;border-right:1px solid color-mix(in srgb, var(--line) 58%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 58%, transparent);background:0 0;border-radius:0;min-width:0;padding:10px}.run-card{grid-column:1/-1}.kv-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 8px;display:grid}.kv-grid div{min-width:0}.kv-grid dt{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.kv-grid dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:2px 0 0}.pipeline-log{border:1px solid color-mix(in srgb, var(--line) 58%, transparent);background:var(--terminal);min-height:116px;color:var(--terminal-text);white-space:pre-wrap;border-radius:4px;margin:0;padding:9px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.resource-chip-list{flex-wrap:wrap;gap:6px;display:flex}.pill{background:color-mix(in srgb, var(--warn-bg) 72%, transparent);min-height:24px;color:var(--warn);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.pill-ok{background:color-mix(in srgb, var(--ok-bg) 72%, transparent);color:var(--ok)}.pill-danger{background:color-mix(in srgb, var(--danger-bg) 72%, transparent);color:var(--danger)}.resource-list{gap:0;display:grid}.resource-row{border-bottom:1px solid color-mix(in srgb, var(--line) 46%, transparent);justify-content:space-between;align-items:center;gap:10px;min-height:30px;padding:4px 0;display:flex}.resource-row code{overflow-wrap:anywhere}.resource-empty{color:var(--muted);margin:0;font-size:12px}.resource-table{table-layout:fixed}.resource-table thead{z-index:1;background:color-mix(in srgb, var(--panel) 92%, var(--table-bg));position:sticky;top:0}.resource-table th,.resource-table td{padding-block:6px}.resource-table th{border-bottom-color:color-mix(in srgb, var(--line) 70%, transparent)}.resource-table tbody tr:last-child td{border-bottom-color:#0000}.resource-table td{overflow-wrap:anywhere}.resource-table .muted{margin-top:2px;line-height:1.35}.resource-status-column,.resource-status-cell,.resource-value-column,.resource-value-cell{width:34%}.resource-status-column,.resource-status-cell{text-align:right}.resource-status-cell .badge{justify-content:flex-start;min-width:72px}.resource-value-cell{color:color-mix(in srgb, var(--text) 84%, var(--muted));font-variant-numeric:tabular-nums}.resource-empty-row td{border-bottom:0;padding-block:12px}.pr-workspace{grid-template-columns:minmax(420px,1fr) minmax(320px,420px);gap:12px;min-height:0;display:grid}.pr-diff-panel{border-color:var(--editor-border);background:var(--editor-bg)}.pr-diff-panel .panel-header{border-bottom-color:var(--editor-border);background:var(--editor-header-bg)}.pr-diff-view{color:var(--editor-text);background:var(--editor-bg);white-space:pre;flex:1;margin:0;padding:10px 0;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.diff-line{background:var(--editor-bg);border-left:3px solid #0000;min-width:max-content;padding:0 14px;display:block}.diff-line-meta,.diff-line-file{color:var(--muted);background:var(--editor-header-bg)}.diff-line-hunk{border-left-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--editor-bg));color:var(--editor-heading);font-weight:800}.diff-line-add{border-left-color:var(--ok);background:color-mix(in srgb, var(--ok-bg) 68%, var(--editor-bg));color:var(--text)}.diff-line-remove{border-left-color:var(--danger);background:color-mix(in srgb, var(--danger-bg) 68%, var(--editor-bg));color:var(--text)}.pr-review-body{flex:1;gap:0;min-height:0;padding:0;display:grid;overflow:auto}.pr-review-body .resource-section{border-bottom:1px solid color-mix(in srgb, var(--line) 52%, transparent)}.pr-summary p{margin:0;line-height:1.45}.pr-kv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented-control{grid-template-columns:1fr 1fr;gap:6px;display:grid}.segmented-control button.active{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.pr-finding{cursor:pointer;justify-content:flex-start;align-items:flex-start;gap:9px;min-height:auto;padding:8px 0}.pr-finding.selected{color:var(--text)}.pr-finding input{accent-color:var(--accent);flex:none;margin-top:2px}.pr-finding span{gap:3px;min-width:0;display:grid}.pr-finding strong{font-size:12px}.pr-finding small,.pr-finding em{color:var(--muted);font-size:11px;font-style:normal;line-height:1.35}.pr-selected-summary ul{margin:0;padding:0;list-style:none;display:grid}.pr-tips{border-bottom:0}.tips-panel{border-top:1px solid color-mix(in srgb, var(--line) 58%, transparent);background:0 0;padding:9px 10px 10px}.tips-panel h3{margin-bottom:6px}.tips-panel ol{margin:0;padding-left:20px}.tips-panel li{color:var(--text);margin:4px 0}button:disabled{cursor:not-allowed;opacity:.58}table{border-collapse:collapse;background:0 0;width:100%}th,td{border-bottom:1px solid color-mix(in srgb, var(--line) 50%, transparent);text-align:left;vertical-align:top;padding:7px 0}th+th,td+td{padding-left:12px}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.muted{color:var(--muted);margin-top:3px;font-size:12px}.badge{border-radius:999px;align-items:center;gap:5px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.badge:before{content:"";opacity:.88;background:currentColor;border-radius:999px;flex:none;width:6px;height:6px}.badge-ok{background:color-mix(in srgb, var(--ok-bg) 72%, transparent);color:var(--ok)}.badge-warn{background:color-mix(in srgb, var(--warn-bg) 72%, transparent);color:var(--warn)}.badge-neutral{background:color-mix(in srgb, var(--control-bg) 72%, transparent);color:var(--muted)}.badge-danger{background:color-mix(in srgb, var(--danger-bg) 72%, transparent);color:var(--danger)}.terminal-panel{background:linear-gradient(180deg, color-mix(in srgb, var(--terminal) 94%, var(--panel) 6%), var(--terminal));color:var(--terminal-text)}.terminal-resize-handle{cursor:row-resize;border:0;border-bottom:1px solid color-mix(in srgb, var(--terminal-line) 68%, transparent);background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--terminal-handle) 42%, transparent), transparent) center / 40px 1px no-repeat, var(--terminal);border-radius:0;flex:0 0 7px;width:100%;min-height:7px;padding:0}.terminal-resize-handle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.terminal-panel .panel-header{border-bottom-color:color-mix(in srgb, var(--terminal-line) 48%, transparent);background:color-mix(in srgb, var(--terminal) 86%, var(--panel) 14%);min-height:30px}.terminal-panel h2{color:color-mix(in srgb, var(--terminal-text) 70%, transparent)}.terminal-panel button{color:color-mix(in srgb, var(--terminal-text) 58%, transparent);background:0 0;border-color:#0000}.terminal-panel button:hover,.terminal-panel button:focus-visible{background:color-mix(in srgb, var(--terminal-button-bg) 52%, transparent);color:var(--terminal-text)}.terminal-output{color:color-mix(in srgb, var(--terminal-text) 90%, transparent);flex:1;margin:0;padding:8px 0;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.terminal-line{white-space:pre-wrap;overflow-wrap:anywhere;border-left:2px solid #0000;min-height:20px;padding:1px 12px 1px 18px;display:block}.terminal-line-command{border-left-color:color-mix(in srgb, var(--accent) 72%, transparent);color:color-mix(in srgb, var(--terminal-text) 96%, var(--accent));font-weight:700}.terminal-line-error{border-left-color:color-mix(in srgb, var(--danger) 76%, transparent);background:color-mix(in srgb, var(--danger-bg) 28%, transparent);color:color-mix(in srgb, var(--terminal-text) 82%, var(--danger))}.terminal-line-warn{border-left-color:color-mix(in srgb, var(--warn) 76%, transparent);background:color-mix(in srgb, var(--warn-bg) 24%, transparent);color:color-mix(in srgb, var(--terminal-text) 84%, var(--warn))}.terminal-line-success{border-left-color:color-mix(in srgb, var(--ok) 76%, transparent);background:color-mix(in srgb, var(--ok-bg) 22%, transparent);color:color-mix(in srgb, var(--terminal-text) 86%, var(--ok))}.terminal-empty{color:color-mix(in srgb, var(--terminal-text) 54%, transparent);margin:0;padding:2px 12px}.networking-workspace,.threat-model-workspace{min-height:0;display:grid}.networking-workspace .panel-header,.threat-model-workspace .panel-header{min-height:36px;padding:6px 10px}.network-brief-content{border-bottom:1px solid var(--line);gap:10px;padding:10px 12px;display:grid}.network-brief-content h3{margin-bottom:5px}.network-brief-content p,.network-brief-content ul{color:var(--text);margin:0;line-height:1.45}.network-brief-content ul{color:var(--muted);gap:6px;padding-left:18px;display:grid}.network-design-tips{border-bottom:1px solid var(--line);padding:8px 10px}.network-design-tips ol{gap:5px;display:grid}.network-design-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.network-main-row{grid-template-columns:minmax(620px,1fr) minmax(300px,360px);gap:10px;min-height:0;display:grid}.network-diagram-panel,.network-controls-panel,.threat-diagram-panel,.threat-controls-panel{min-height:0}.network-controls-panel,.threat-controls-panel{overflow-y:auto}.network-controls-panel .panel-header,.threat-controls-panel .panel-header{z-index:2;background:var(--panel);position:sticky;top:0}.network-diagram-panel,.threat-diagram-panel{min-width:0}.network-canvas{border:1px solid var(--line);background:linear-gradient(90deg, color-mix(in srgb, var(--line) 42%, transparent) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(0deg, color-mix(in srgb, var(--line) 42%, transparent) 1px, transparent 1px) 0 0 / 40px 40px, var(--table-bg);cursor:grab;touch-action:none;border-radius:8px;flex:1;min-height:560px;margin:8px;transition:border-color .18s,box-shadow .22s;position:relative;overflow:hidden}.network-canvas.is-panning{cursor:grabbing}.network-canvas.network-success{border-color:var(--ok);box-shadow:0 0 0 1px color-mix(in srgb, var(--ok) 44%, transparent), 0 0 28px color-mix(in srgb, var(--ok) 22%, transparent);animation:.78s ease-out network-success-sweep}.threat-canvas{background:radial-gradient(circle at 12px 12px, color-mix(in srgb, var(--accent) 18%, transparent) 1px, transparent 1px) 0 0 / 28px 28px, linear-gradient(90deg, color-mix(in srgb, var(--line) 34%, transparent) 1px, transparent 1px) 0 0 / 56px 56px, linear-gradient(0deg, color-mix(in srgb, var(--line) 34%, transparent) 1px, transparent 1px) 0 0 / 56px 56px, var(--table-bg)}.network-links{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.network-pan-surface{transition:transform 90ms linear;position:absolute;inset:0}.network-canvas.is-panning .network-pan-surface{transition:none}.network-diagram-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.network-diagram-actions button{min-height:28px;padding:0 9px;font-size:12px}.network-links path{fill:none;stroke:var(--ok);stroke-width:.42px;vector-effect:non-scaling-stroke;transition:stroke .18s,stroke-dasharray .18s,opacity .18s}.threat-links{z-index:4}.threat-links path{stroke-width:.74px}.threat-links marker path{fill:var(--ok);stroke:none}.network-links path.failed-link{stroke:var(--danger);stroke-dasharray:4 3;animation:.9s linear infinite failed-link-flow}.threat-links marker#threat-arrow-failed path{fill:var(--danger)}.network-node{width:var(--node-width,112px);min-height:var(--node-height,52px);border-color:var(--accent);background:var(--panel);text-align:center;z-index:3;gap:2px;padding:7px;transition:border-color .16s,box-shadow .16s,transform .16s,outline-color .16s;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 22px #11111b2e}.network-node:hover{transform:translate(-50%,-52%)scale(1.025);box-shadow:0 12px 28px #11111b42}.network-node.network-container{background:color-mix(in srgb, var(--panel) 74%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent);text-align:left;z-index:1;border-style:dashed;align-content:start;justify-items:start;padding:10px}.network-node.network-container:hover{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 34%, transparent);transform:translate(-50%,-50%)}.network-node.network-container[type=button]{align-items:start}.network-node.selected{outline:2px solid var(--warn);outline-offset:2px;box-shadow:0 0 0 1px color-mix(in srgb, var(--warn) 30%, transparent), 0 12px 28px #11111b38}.threat-node{min-height:var(--node-height,56px);border:1.5px solid color-mix(in srgb, var(--accent) 72%, var(--line));background:var(--panel);z-index:5;place-content:center;gap:0}.threat-node.threat-external,.threat-node.threat-internal{width:var(--node-width,126px);height:var(--node-height,68px);border-color:color-mix(in srgb, var(--accent) 38%, var(--line));background:color-mix(in srgb, var(--accent) 12%, var(--panel));box-shadow:none;border-radius:0}.threat-node.threat-internal{border-style:dashed}.threat-node.threat-process,.threat-node.threat-multiple-process{aspect-ratio:1;background:color-mix(in srgb, var(--accent) 9%, var(--panel));border-radius:50%;width:104px;height:104px;min-height:0;padding:10px;box-shadow:0 10px 24px #11111b2e}.threat-node.threat-multiple-process{box-shadow:inset 0 0 0 4px color-mix(in srgb, var(--panel) 88%, transparent), inset 0 0 0 7px color-mix(in srgb, var(--accent) 42%, transparent), 0 10px 24px #11111b2e}.threat-node.threat-datastore{width:var(--node-width,118px);height:var(--node-height,76px);border:0;border-top:2px solid color-mix(in srgb, var(--ok) 76%, var(--line));border-bottom:2px solid color-mix(in srgb, var(--ok) 76%, var(--line));min-height:0;box-shadow:none;background:0 0;border-radius:0}.threat-node.threat-datastore:before,.threat-node.threat-datastore:after{background:color-mix(in srgb, var(--ok) 76%, var(--line));content:"";height:2px;position:absolute;left:0;right:0}.threat-node.threat-datastore:before{top:7px}.threat-node.threat-datastore:after{bottom:7px}.threat-node.threat-covered{border-color:var(--ok);box-shadow:0 0 0 1px color-mix(in srgb, var(--ok) 30%, transparent), 0 12px 26px #11111b33}.threat-boundary-line{opacity:.88;pointer-events:none;z-index:2;border-left:2px dashed #eab308;border-radius:50%;width:72px;position:absolute;transform:translate(-50%)}.threat-boundary-line span{transform-origin:0 0;width:max-content;max-width:220px;color:var(--text);text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:800;position:absolute;top:50%;left:-22px;transform:rotate(-90deg)translate(-50%)}.network-node span{font-size:11px;font-weight:800}.network-node small{color:var(--muted);font-size:11px}.network-link-list{flex-wrap:wrap;gap:6px;padding:0 8px 8px;display:flex}.network-detail,.network-controls{gap:8px;padding:10px;display:grid}.network-trace-panel{border-bottom:1px solid var(--line);gap:8px;padding:10px;display:grid}.network-trace-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.network-trace-heading h3{margin:0}.network-trace-panel label{gap:5px;display:grid}.network-trace-panel label>span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.network-trace-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;display:grid}.network-trace-meta div{border:1px solid var(--line);background:var(--table-bg);border-radius:8px;min-width:0;padding:7px}.network-trace-meta dt{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.network-trace-meta dd{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:11px;font-weight:700;overflow:hidden}.network-trace-output{border:1px solid color-mix(in srgb, var(--accent) 42%, var(--line));background:var(--terminal-bg);min-height:96px;color:var(--terminal-text);white-space:pre-wrap;border-radius:8px;margin:0;padding:9px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.55;overflow:auto}.network-detail{border-bottom:1px solid var(--line)}.network-detail p{color:var(--muted);margin:0;font-size:12px;line-height:1.35;animation:.18s detail-fade-in}.network-controls label{border:1px solid var(--line);background:var(--table-bg);border-radius:8px;gap:5px;padding:8px;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.network-controls label.control-error{border-color:var(--danger)}.network-check-message,.network-empty-controls{color:var(--muted);margin:0;font-size:12px;line-height:1.4}.network-check-message{color:var(--warn)}.network-symptom-log{border:1px solid color-mix(in srgb, var(--warn) 44%, var(--line));background:color-mix(in srgb, var(--warn-bg) 54%, transparent);border-radius:8px;gap:6px;padding:8px;display:grid}.network-symptom-log h3{color:var(--warn);margin-bottom:0}.network-symptom-log ul{color:var(--text);gap:5px;margin:0;padding-left:18px;font-size:12px;line-height:1.35;display:grid}.network-controls label>span{font-size:12px;font-weight:700}.network-controls input,.network-controls select{width:100%;min-height:32px}.network-controls small{color:var(--muted);font-size:11px;line-height:1.35}.threat-controls label em{background:color-mix(in srgb, var(--accent) 16%, var(--table-bg));width:fit-content;color:var(--accent);text-transform:uppercase;border-radius:999px;padding:2px 7px;font-size:10px;font-style:normal;font-weight:800}@keyframes failed-link-flow{to{stroke-dashoffset:-14px}}@keyframes network-success-sweep{0%{box-shadow:0 0 0 1px color-mix(in srgb, var(--ok) 20%, transparent), 0 0 0 color-mix(in srgb, var(--ok) 0%, transparent)}45%{box-shadow:0 0 0 2px color-mix(in srgb, var(--ok) 58%, transparent), 0 0 38px color-mix(in srgb, var(--ok) 34%, transparent)}to{box-shadow:0 0 0 1px color-mix(in srgb, var(--ok) 44%, transparent), 0 0 28px color-mix(in srgb, var(--ok) 22%, transparent)}}@keyframes detail-fade-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.terminal-panel form{border-top:1px solid color-mix(in srgb, var(--terminal-line) 48%, transparent);background:color-mix(in srgb, var(--terminal) 92%, var(--panel) 8%);color:color-mix(in srgb, var(--accent) 72%, var(--terminal-text));align-items:center;gap:9px;padding:8px 12px 9px;display:flex}.terminal-panel form span{color:var(--accent);font-weight:800}.terminal-panel input{width:100%;color:var(--terminal-text);background:0 0;border:0;outline:0;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.terminal-panel input:focus-visible{box-shadow:0 1px 0 color-mix(in srgb, var(--accent) 62%, transparent)}.wiki-layout{grid-template-columns:220px minmax(0,860px);align-content:start;gap:24px;min-height:0;padding:8px 4px 32px;display:grid;overflow:auto}.docs-window .wiki-layout{flex:auto;grid-template-columns:minmax(0,1fr);padding:12px}.docs-window .wiki-article{width:min(100%,760px);max-width:760px;margin:0 auto}.wiki-toc{align-self:start;gap:6px;padding:8px;display:grid;position:sticky;top:0}.wiki-toc a{color:var(--muted);border-radius:6px;padding:7px 8px;text-decoration:none}.wiki-toc a:hover{background:var(--panel);color:var(--text)}.wiki-article{min-width:0;max-width:860px}.wiki-article section{border-bottom:1px solid var(--line);margin-bottom:28px;padding:0 0 28px}.wiki-article section:last-child{border-bottom:0}.wiki-article h2{margin-bottom:10px;font-size:22px}.wiki-article h3{color:var(--text);text-transform:none;margin:18px 0 8px;font-size:14px}.wiki-article p{max-width:76ch;color:var(--muted);margin:0 0 12px;line-height:1.6}.wiki-article ul,.wiki-article ol{color:var(--muted);gap:7px;margin:0;padding-left:20px;line-height:1.5;display:grid}.wiki-article pre{border:1px solid var(--line);background:var(--terminal);max-width:760px;color:var(--terminal-text);border-radius:8px;margin:12px 0 16px;padding:12px 14px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.wiki-table-wrap{border:1px solid var(--line);border-radius:8px;max-width:920px;margin:12px 0 16px;overflow-x:auto}.wiki-table-wrap table{min-width:760px}.wiki-table-wrap th,.wiki-table-wrap td{line-height:1.45}.wiki-article code{color:var(--text);font-size:12px}.wiki-diagram{grid-template-columns:minmax(140px,1fr) auto minmax(140px,1fr) auto minmax(140px,1fr);align-items:stretch;gap:10px;max-width:780px;margin:14px 0 16px;display:grid}.diagram-node{border:1px solid var(--line);background:var(--panel);min-height:82px;color:var(--text);border-radius:8px;align-content:center;padding:12px;font-weight:700;display:grid}.diagram-node span{color:var(--muted);margin-top:4px;font-size:12px;font-weight:500}.diagram-arrow{color:var(--muted);place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:800;display:grid}.tree-diagram{border-left:3px solid var(--accent);background:var(--panel);border-radius:8px;gap:8px;max-width:820px;margin:14px 0 16px;padding:12px;display:grid}.tree-row{border:1px solid var(--line);background:var(--bg);border-radius:6px;grid-template-columns:minmax(220px,1fr) minmax(180px,1fr);align-items:center;gap:12px;min-height:36px;padding:8px 10px;display:grid}.tree-row code{overflow-wrap:anywhere}.tree-row span{color:var(--muted);font-size:12px}.tree-root{margin-left:0}.tree-branch{margin-left:22px}.tree-leaf{margin-left:44px}@media (width<=820px){.app-shell{grid-template-rows:auto minmax(520px, 1fr) var(--terminal-height,240px);height:auto;min-height:100dvh}.app-shell.index-page,.app-shell.terminal-less-page{grid-template-rows:auto minmax(520px,1fr)}.docs-window{width:calc(100vw - 16px);height:calc(100dvh - 16px)}.app-shell.network-page{grid-template-rows:auto minmax(0,1fr)}.topbar,.workspace,.pr-workspace,.lab-index,.resource-grid,.pipeline-dashboard,.kv-grid,.wiki-layout{grid-template-columns:1fr}.workspace-split-handle{display:none}.networking-workspace,.threat-model-workspace,.network-main-row,.threat-main-row,.network-brief-content,.network-brief-content ul{grid-template-columns:1fr}.wiki-toc{grid-template-columns:repeat(2,minmax(0,1fr));padding:0;position:static}.wiki-diagram{grid-template-columns:1fr}.diagram-arrow{min-height:18px;transform:rotate(90deg)}.tree-row{grid-template-columns:1fr}.tree-branch,.tree-leaf{margin-left:12px}.run-card{grid-column:auto}}@media (prefers-reduced-motion:reduce){.lab-index-card,.network-canvas,.network-canvas.network-success,.network-links line,.network-links line.failed-link,.network-node,.network-detail p,.network-controls label{transition:none;animation:none}.lab-index-card:hover,.lab-index-card:focus-visible{transform:none}}
