:root{--bg: #f4f4f3;--panel: #ffffff;--panel-2: #efefee;--border: #d4d4d2;--text: #111111;--fg: #111111;--muted: #5f5f5c;--accent: #111111;--accent-text: #ffffff;--accent-weak: #e6e6e4;--node: #ffffff;--node-inner: #ececea;--mid: #7a7a77;--link: #8c8c88;--grid: rgba(0, 0, 0, .055);--sel: #000000;--sel-halo: rgba(0, 0, 0, .08);--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .05);--fail: #c62828;--ok: #1b7a3a;--warn: #9a6a00;--changed: #f1f1ef;--changed-border: #111111;--focus: #111111;--data: var(--fg);--dv: var(--fg);--lsa: var(--mid);--hello: var(--fg);--route: var(--fg);--router: var(--fg);--pc: var(--fg);--note-white: #ffffff;--note-light: #f1f1ef;--note-mid: #d9d9d6;--note-dark: #2a2a29;--note-dark-text: #f4f4f3;--scale: 1;font-size:calc(15px * var(--scale));color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0d0d0d;--panel: #161616;--panel-2: #1f1f1f;--border: #333333;--text: #ededeb;--fg: #ededeb;--muted: #a3a3a0;--accent: #ededeb;--accent-text: #0d0d0d;--accent-weak: #2a2a2a;--node: #161616;--node-inner: #262626;--mid: #9a9a97;--link: #6e6e6b;--grid: rgba(255, 255, 255, .06);--sel: #ffffff;--sel-halo: rgba(255, 255, 255, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 2px 10px rgba(0, 0, 0, .35);--fail: #ff6b63;--ok: #5fd38a;--warn: #e9b949;--changed: #242424;--changed-border: #ededeb;--focus: #ededeb;--data: var(--fg);--dv: var(--fg);--lsa: var(--mid);--hello: var(--fg);--route: var(--fg);--router: var(--fg);--pc: var(--fg);--note-white: #1e1e1e;--note-light: #262626;--note-mid: #3a3a3a;--note-dark: #ededeb;--note-dark-text: #0d0d0d;color-scheme:dark}}:root[data-theme=dark]{--bg: #0d0d0d;--panel: #161616;--panel-2: #1f1f1f;--border: #333333;--text: #ededeb;--fg: #ededeb;--muted: #a3a3a0;--accent: #ededeb;--accent-text: #0d0d0d;--accent-weak: #2a2a2a;--node: #161616;--node-inner: #262626;--mid: #9a9a97;--link: #6e6e6b;--grid: rgba(255, 255, 255, .06);--sel: #ffffff;--sel-halo: rgba(255, 255, 255, .1);--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 2px 10px rgba(0, 0, 0, .35);--fail: #ff6b63;--ok: #5fd38a;--warn: #e9b949;--changed: #242424;--changed-border: #ededeb;--focus: #ededeb;--data: var(--fg);--dv: var(--fg);--lsa: var(--mid);--hello: var(--fg);--route: var(--fg);--router: var(--fg);--pc: var(--fg);--note-white: #1e1e1e;--note-light: #262626;--note-mid: #3a3a3a;--note-dark: #ededeb;--note-dark-text: #0d0d0d;color-scheme:dark}:root.large{--scale: 1.3}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text)}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}code,.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.92em}h1,h2,h3,h4{margin:0;line-height:1.2}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:.35rem .7rem;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;min-height:2.1rem}.btn:hover:not(:disabled){background:var(--panel-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.danger{color:var(--fail)}.btn.small{padding:.15rem .5rem;min-height:1.7rem;font-size:.9em}.btn[aria-pressed=true]{background:var(--accent-weak);border-color:var(--accent)}input[type=text],input[type=number],select,textarea{border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:.3rem .45rem;min-height:2rem}input.bad{border-color:var(--fail);background:color-mix(in srgb,var(--fail) 8%,var(--panel))}label{display:inline-flex;align-items:center;gap:.35rem}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.55rem 1rem;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem}.brand svg{color:var(--accent)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}.seg button{border:0;background:var(--panel);padding:.35rem .75rem;cursor:pointer;border-right:1px solid var(--border);min-height:2.1rem}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-text);font-weight:600}.topbar .spacer{flex:1}.topbar .group{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.main{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,430px);gap:.75rem;padding:.75rem;flex:1}.col{display:flex;flex-direction:column;gap:.75rem;min-width:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.75rem;min-width:0;box-shadow:var(--shadow)}.card>h2,.card>h3{font-size:1rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.card-head h2,.card-head h3{font-size:1rem}.muted{color:var(--muted)}.small{font-size:.88em}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.stack{display:flex;flex-direction:column;gap:.5rem}.canvas-wrap{position:relative;padding:0;overflow:hidden}.toolbar{display:flex;flex-wrap:wrap;gap:.35rem;padding:.5rem;border-bottom:1px solid var(--border);align-items:center}.toolbar .hint{margin-left:auto;color:var(--muted);font-size:.88em}svg.net{display:block;width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--panel)}svg.net text{fill:var(--text);font-family:inherit}svg.net .dev{cursor:grab}svg.net .dev:focus{outline:none}svg.net .dev:focus-visible .dev-shape{stroke:var(--focus);stroke-width:4}svg.net .linkhit{cursor:pointer}.banner{border-radius:8px;padding:.5rem .75rem;border:1px solid var(--border);background:var(--panel-2);display:flex;gap:.5rem;align-items:flex-start}.banner.warn{border-color:var(--changed-border);background:var(--changed)}.banner.err{border-color:var(--fail);background:color-mix(in srgb,var(--fail) 10%,var(--panel))}.banner.info{border-color:var(--accent);background:var(--accent-weak)}.banner .x{margin-left:auto}.controls{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.controls .pos{font-variant-numeric:tabular-nums;color:var(--muted);min-width:7rem}.bottom{display:grid;grid-template-columns:minmax(240px,.85fr) minmax(0,1.4fr);gap:.75rem}.timeline{max-height:300px;overflow:auto;border:1px solid var(--border);border-radius:8px}.timeline ol{list-style:none;margin:0;padding:0}.timeline li button{width:100%;text-align:left;border:0;border-bottom:1px solid var(--border);background:transparent;padding:.3rem .5rem;cursor:pointer;display:grid;grid-template-columns:2.6rem 1.4rem 1fr;gap:.35rem;align-items:center;font-size:.88em}.timeline li button:hover{background:var(--panel-2)}.timeline li.current button{background:var(--accent-weak);font-weight:600;box-shadow:inset 4px 0 0 var(--accent)}.timeline li.future button{opacity:.55}.timeline .t{color:var(--muted);font-variant-numeric:tabular-nums}.cat{display:inline-flex;width:1.3rem;height:1.3rem;align-items:center;justify-content:center;border-radius:4px;font-size:.72rem;font-weight:700;color:#fff}.cat.config{background:#5b6474}.cat.control{background:var(--dv)}.cat.lsa{background:var(--lsa);border-radius:2px;transform:rotate(45deg) scale(.85)}.cat.lsa span{transform:rotate(-45deg)}.cat.spf{background:var(--route)}.cat.data{background:var(--data);border-radius:50%}.cat.info{background:var(--muted);border-radius:50%}.explain h3{font-size:1.05rem;margin-bottom:.35rem}.explain p{margin:.25rem 0 .5rem}.explain .lead{font-size:1.02rem}.gate{border:2px dashed var(--border);border-radius:8px;padding:.75rem;text-align:center}table.tbl{border-collapse:collapse;width:100%;font-size:.88em}table.tbl th,table.tbl td{border-bottom:1px solid var(--border);padding:.25rem .35rem;text-align:left;vertical-align:top}table.tbl th{background:var(--panel-2);font-weight:600;position:sticky;top:0}table.tbl tr.changed td:first-child{box-shadow:inset 4px 0 0 var(--changed-border)}table.tbl tr.removed td{text-decoration:line-through;color:var(--muted);background:var(--changed)}table.tbl tr.match td{background:color-mix(in srgb,var(--route) 12%,transparent)}table.tbl tr.chosen td{background:color-mix(in srgb,var(--route) 26%,transparent);font-weight:600}table.tbl tr.clickable{cursor:pointer}table.tbl tr.clickable:hover td{background:var(--panel-2)}table.tbl tr.sel td{outline:2px solid var(--accent);outline-offset:-2px}.tbl-wrap{overflow:auto;max-width:100%}.badge{display:inline-block;padding:0 .35rem;border-radius:4px;font-size:.75em;font-weight:700;border:1px solid currentColor;margin-left:.25rem;white-space:nowrap}.badge.chg{color:var(--dv)}.src{display:inline-block;min-width:1.4rem;text-align:center;font-weight:700;border-radius:4px;padding:0 .2rem;background:var(--panel-2);border:1px solid var(--border)}.quiz{border:1px dashed var(--accent);background:var(--accent-weak);border-radius:4px;padding:0 .4rem;cursor:pointer}.tabs{display:flex;flex-wrap:wrap;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.tabs button{border:0;background:transparent;padding:.35rem .6rem;cursor:pointer;border-bottom:3px solid transparent}.tabs button[aria-selected=true]{border-bottom-color:var(--accent);font-weight:600}.cli{background:#0f1520;color:#d6e2f5;border-radius:8px;padding:.6rem;overflow:auto;font-size:.82em;max-height:280px;margin:0}.legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.35rem .75rem;font-size:.86em}.legend .item{display:flex;align-items:center;gap:.45rem}.scenario ol,.scenario ul{margin:.25rem 0 .5rem;padding-left:1.2rem}.choices{display:flex;flex-direction:column;gap:.3rem}.choices button{text-align:left}.form-grid{display:grid;grid-template-columns:auto 1fr;gap:.35rem .5rem;align-items:center}.issue{font-size:.86em;margin:.15rem 0}.issue.error:before{content:"✖ ";color:var(--fail);font-weight:700}.issue.warning:before{content:"▲ ";color:var(--dv);font-weight:700}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:4vh 1rem;overflow:auto}.modal{background:var(--panel);border-radius:12px;max-width:820px;width:100%;padding:1.1rem 1.3rem;border:1px solid var(--border)}.modal h2{margin-bottom:.6rem}.modal li{margin-bottom:.3rem}.kv{display:grid;grid-template-columns:max-content 1fr;gap:.15rem .75rem;font-size:.9em}.kv dt{color:var(--muted)}.kv dd{margin:0}.pill{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border);font-size:.85em;background:var(--panel-2)}details>summary{cursor:pointer;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (max-width: 1100px){.topbar{position:static}.main,.bottom{grid-template-columns:1fr}}@media (max-width: 600px){.main,.topbar{padding:.5rem}.seg button{padding:.35rem .5rem}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}@keyframes pulse{0%{stroke-opacity:1}50%{stroke-opacity:.25}to{stroke-opacity:1}}.pulse{animation:pulse 1.4s ease-in-out infinite}.app.app-wide{height:100vh;overflow:hidden}.app.app-wide .topbar{position:static}.teacher-panel{margin:.75rem .75rem 0;resize:vertical;overflow:auto;min-height:3rem}.banners{display:flex;flex-direction:column;gap:.4rem;padding:.6rem .75rem 0;max-height:30vh;overflow:auto;flex:none}.workspace{flex:1;min-height:0;display:grid;padding:.75rem;gap:0;grid-template-columns:minmax(0,1fr) 12px var(--sidebar, 440px)}.workspace.single{grid-template-columns:minmax(0,1fr)}.workspace.single>.panel,.workspace.single>section{height:100%;min-height:0}.wcol{display:flex;flex-direction:column;min-width:0;min-height:0}.slot{min-height:0;display:flex;flex-direction:column}.slot>*{flex:1;min-height:0}.slot-sized-l{flex:none;height:var(--canvas-h, 480px)}.slot-sized-r{flex:none;height:var(--timeline-h, 260px)}.slot-fill{flex:1}.slot-auto{flex:none}.slot-auto>*{flex:none}.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel.plain{background:transparent}.panel-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex:none;padding:.35rem .6rem;border:1px solid var(--border);border-radius:10px;background:var(--panel);margin-bottom:.5rem}.panel-bar h2{font-size:.95rem}.panel-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.75rem;padding-right:2px}.panel-btns{display:inline-flex;gap:.25rem;align-items:center;margin-left:auto}.btn.icon{min-width:2rem;justify-content:center;padding:.15rem .4rem}.app-wide .card.panel>.timeline,.workspace.single .timeline{flex:1;max-height:none;min-height:0}.canvas-wrap.panel{height:100%}.canvas-area{flex:1;min-height:0;display:flex;background:var(--panel)}.app-wide .canvas-area svg.net,.workspace.single .canvas-area svg.net,.present .canvas-area svg.net{width:100%;height:100%}.stacked{display:flex;flex-direction:column;gap:.75rem;padding:.75rem}.stacked .panel-body{overflow:visible}.splitter{position:relative;flex:none;display:flex;align-items:center;justify-content:center;touch-action:none;z-index:2;border-radius:6px}.splitter-v{width:12px;cursor:col-resize}.splitter-h{height:12px;cursor:row-resize}.splitter:before{content:"";position:absolute;background:var(--border);border-radius:2px;transition:background .15s}.splitter-v:before{top:0;bottom:0;width:2px}.splitter-h:before{left:0;right:0;height:2px}.splitter .grip{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:6px}.splitter-v .grip{width:8px;height:38px;background-image:radial-gradient(var(--muted) 1px,transparent 1.5px);background-size:4px 6px;background-position:center}.splitter-h .grip{width:38px;height:8px;background-image:radial-gradient(var(--muted) 1px,transparent 1.5px);background-size:6px 4px;background-position:center}.splitter:hover:before,.splitter:focus-visible:before,.splitter.active:before{background:var(--accent)}.splitter:hover .grip,.splitter.active .grip{border-color:var(--accent)}.splitter.active{background:color-mix(in srgb,var(--accent) 14%,transparent)}body.resizing-x,body.resizing-x *{cursor:col-resize!important;-webkit-user-select:none;user-select:none}body.resizing-y,body.resizing-y *{cursor:row-resize!important;-webkit-user-select:none;user-select:none}@media (pointer: coarse){.splitter-v{width:20px}.splitter-h{height:20px}.workspace{grid-template-columns:minmax(0,1fr) 20px var(--sidebar, 440px)}}.app.app-present{height:100vh;overflow:hidden}.present{height:100vh;display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background:var(--bg)}.present>.canvas-wrap{flex:1;min-height:0}.present-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .75rem;flex:none}.present-title{font-weight:700;flex:1;min-width:12rem}.move-grip{cursor:grab;touch-action:none}body.moving-panel,body.moving-panel *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.slot{position:relative;border-radius:12px;transition:opacity .15s}.slot.drag-source{opacity:.45}.slot.drop-target:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:3px dashed var(--accent);border-radius:12px;pointer-events:none;background:color-mix(in srgb,var(--accent) 16%,transparent);z-index:5}.slot.drop-target:before{content:"Drop here to swap";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:6;pointer-events:none;padding:.4rem .9rem;border-radius:999px;background:var(--panel);border:2px solid var(--accent);color:var(--accent);font-weight:800;white-space:nowrap}.move-ghost{position:fixed;z-index:100;pointer-events:none;padding:.35rem .7rem;border-radius:8px;font-weight:700;font-size:.9rem;background:var(--accent);color:#fff;box-shadow:0 6px 18px #00000040;white-space:nowrap}.menu-toggle{display:none}@media (max-width: 600px){.menu-toggle{display:inline-flex}.topbar .group{display:none;width:100%}.topbar .group.open{display:flex}.topbar{gap:.4rem .5rem}.brand{font-size:1rem}.topbar>label,.topbar>label select{flex:1 1 100%;max-width:100%}}.btn{border-radius:7px;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){border-color:var(--fg)}.btn[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn.danger{color:var(--fail);border-color:color-mix(in srgb,var(--fail) 45%,var(--border))}.banner.err{border-color:var(--fail);background:color-mix(in srgb,var(--fail) 9%,var(--panel))}.banner.warn{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,var(--panel))}.banner.info{border-color:var(--fg);background:var(--panel-2)}.issue.warning:before{color:var(--warn)}.pill.ok{color:var(--ok);border-color:var(--ok)}.pill.bad{color:var(--fail);border-color:var(--fail)}.pill.strong{background:var(--accent);color:var(--accent-text);border-color:var(--accent);font-weight:700}.badge.new{color:var(--ok)}.badge.chg{color:var(--fg)}.badge.del{color:var(--fail)}.badge.sim{color:var(--muted);font-weight:600;font-family:inherit}.cat{color:var(--accent-text);background:var(--fg)}.cat.config{background:var(--mid)}.cat.control{background:var(--fg);border-radius:3px}.cat.lsa{background:var(--mid)}.cat.spf{background:var(--panel);color:var(--fg);border:1.5px solid var(--fg)}.cat.data{background:var(--fg)}.cat.info{background:var(--panel-2);color:var(--fg);border:1px solid var(--border)}table.tbl tr.changed td{background:var(--changed)}table.tbl tr.changed td:first-child{box-shadow:inset 4px 0 0 var(--fg)}table.tbl tr.match td{background:var(--panel-2)}table.tbl tr.chosen td{background:color-mix(in srgb,var(--fg) 14%,transparent);font-weight:700}table.tbl tr.unreach td{color:var(--fail)}table.tbl tr.future td{opacity:.5}.timeline li.current button{background:var(--accent-weak);box-shadow:inset 4px 0 0 var(--fg)}.tabs button[aria-selected=true]{border-bottom-color:var(--fg)}svg.net{background:var(--panel)}svg.net text{fill:var(--fg)}svg.net text.addr{fill:var(--muted)}svg.net .dev:hover .dev-shape{stroke-width:3.2}svg.net .link:hover line:first-child{stroke:var(--fg)}svg.net .packet-token{cursor:pointer}svg.net.tool-select{cursor:grab}svg.net.tool-router,svg.net.tool-pc,svg.net.tool-switch,svg.net.tool-note{cursor:crosshair}svg.net.tool-delete{cursor:not-allowed}.cli{background:#0b0b0b;color:#e8e8e6}.topbar{gap:.5rem .75rem;box-shadow:var(--shadow)}.topbar .break{flex-basis:100%;height:0}.lab-name{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border:1px solid var(--border);border-radius:999px;max-width:26rem}.lab-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-name .dirty{color:var(--warn);font-weight:800}.lab-actions{gap:.3rem}.canvas-body{flex:1;min-height:0;display:flex}.stacked .canvas-body{min-height:0}.tool-palette{display:flex;flex-direction:column;gap:.25rem;padding:.4rem;border-right:1px solid var(--border);background:var(--panel);flex:none}.tool-btn{width:3.6rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.3rem .2rem;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer}.tool-btn:hover{border-color:var(--border);background:var(--panel-2)}.tool-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.tool-icon{font-weight:800;font-size:.95rem;line-height:1.1}.tool-label{font-size:.68rem}.zoom-group{display:inline-flex;align-items:center;gap:.2rem}.zoom-pct{min-width:2.8rem;text-align:center;font-variant-numeric:tabular-nums}.canvas-area{position:relative}@media (max-width: 600px){.tool-btn{width:2.6rem}.tool-label{display:none}}.canvas-note{width:100%;height:100%;box-sizing:border-box;overflow:auto;border:1px solid var(--border);border-radius:6px;padding:.4rem .55rem;font-size:12.5px;line-height:1.35;color:var(--fg);box-shadow:var(--shadow);cursor:move}.canvas-note.locked{cursor:default;border-style:dashed}.canvas-note.selected{outline:2px solid var(--sel);outline-offset:1px}.canvas-note.shade-white{background:var(--note-white)}.canvas-note.shade-light{background:var(--note-light)}.canvas-note.shade-mid{background:var(--note-mid)}.canvas-note.shade-dark{background:var(--note-dark);color:var(--note-dark-text)}.note-title{font-weight:800;margin-bottom:.2rem;display:flex;justify-content:space-between;gap:.3rem}.note-body p{margin:0 0 .2rem}.note-body ul{margin:.1rem 0 .3rem;padding-left:1.1rem}.note-resize{cursor:nwse-resize}.swatch{min-width:4.5rem}.swatch.shade-white{background:var(--note-white)}.swatch.shade-light{background:var(--note-light)}.swatch.shade-mid{background:var(--note-mid)}.swatch.shade-dark{background:var(--note-dark);color:var(--note-dark-text)}.swatch[aria-pressed=true]{outline:2px solid var(--fg);outline-offset:1px}.details-tabs{flex:none;margin-bottom:.4rem;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:0 .4rem}.card.inset{box-shadow:none;background:var(--panel-2);padding:.5rem .6rem}.card.inset h4{margin:0 0 .3rem}.packet-inspector details.layer{border:1px solid var(--border);border-radius:8px;padding:.35rem .5rem;background:var(--panel)}.packet-inspector details.layer summary{font-weight:700}.layer-tag{display:inline-block;min-width:1.8rem;text-align:center;font-size:.72rem;border-radius:4px;background:var(--accent);color:var(--accent-text);padding:0 .25rem;margin-right:.25rem}table.fields th{width:42%;font-weight:600;background:transparent;position:static}.packet-log{max-height:240px;overflow:auto;border:1px solid var(--border);border-radius:8px}.ttl-trail{margin:0;padding-left:1.2rem}.ping-tool{display:flex;flex-direction:column;gap:.35rem;border-top:1px solid var(--border);padding-top:.5rem}.modal{box-shadow:0 20px 60px #00000059}.modal.wide{max-width:900px}.modal h3{margin:.9rem 0 .3rem;font-size:1rem}.lab-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.lab-list li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem}.lab-list li.current{border-color:var(--fg)}.grow{flex:1;min-width:12rem}.stack-label{display:flex;flex-direction:column;align-items:stretch;gap:.25rem}.qr{width:220px;height:220px;border:1px solid var(--border);border-radius:8px;background:#fff}.exercise-bar{margin:.6rem .75rem 0;border-color:var(--fg)}fieldset{border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem}.modal fieldset>label,.modal .card.inset>label{display:block;line-height:1.5}.modal fieldset>label input,.modal .card.inset>label input{margin-right:.35rem}
