:root{--ace-font-heading:"Source Sans 3", "Source Sans Pro", system-ui, sans-serif;--ace-font-body:"Montserrat", system-ui, sans-serif;--ace-brand-slate:#595e71;--ace-brand-ink:#2a2e3c;--ace-brand-plum:#44344f;--ace-brand-blue:#1446a0;--ace-brand-cyan:#adfcf9;--ace-brand-orange:#f6511d;--ace-brand-white:#fff;--ace-brand-lime:#c1d301;--ace-brand-mist:#dbdbdb;--ace-bg:#11131a;--ace-bg-elevated:#191c26;--ace-bg-panel:#202432;--ace-bg-soft:#2a2e3c;--ace-border:#dbdbdb29;--ace-border-strong:#dbdbdb47;--ace-text:#fff;--ace-text-muted:#c4c8d4;--ace-text-subtle:#8f95a6;--ace-primary:#c1d301;--ace-primary-hover:#d1e510;--ace-primary-soft:#c1d30124;--ace-secondary:#adfcf9;--ace-secondary-soft:#adfcf91f;--ace-danger:#f6511d;--ace-danger-soft:#f6511d21;--ace-focus:#adfcf961;--ace-shadow:0 18px 50px #00000047;--bg-primary:var(--ace-bg);--bg-secondary:var(--ace-bg-elevated);--bg-card:#191c26d6;--bg-card-hover:#202432eb;--border-color:var(--ace-border);--border-glow:var(--ace-primary-soft);--text-primary:var(--ace-text);--text-secondary:var(--ace-text-muted);--text-muted:var(--ace-text-subtle);--primary:var(--ace-primary);--primary-rgb:193, 211, 1;--primary-hover:var(--ace-primary-hover);--primary-gradient:linear-gradient(135deg, #c1d301 0%, #aab900 100%);--secondary:var(--ace-secondary);--secondary-rgb:173, 252, 249;--secondary-gradient:linear-gradient(135deg, #adfcf9 0%, #75d9d6 100%);--accent-blue:var(--ace-brand-blue);--success:#14ae5c;--success-bg:#14ae5c1a;--warning:#ffa726;--warning-bg:#ffa7261a;--error:var(--ace-danger);--error-bg:var(--ace-danger-soft);--font-sans:var(--ace-font-body);--font-heading:var(--ace-font-heading);--font-mono:"JetBrains Mono", SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--transition-fast:.2s ease;--transition-normal:.3s ease;--radius-sm:4px;--radius-md:6px;--radius-lg:8px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(circle at 0 0,#1446a02e,#0000 34rem),linear-gradient(135deg,#11131a 0%,#171a24 48%,#101218 100%);background-attachment:fixed;min-height:100vh;line-height:1.6;overflow-x:hidden}button,input,select,textarea{font:inherit}.ace-icon-symbols{width:0;height:0;position:absolute;overflow:hidden}.sim-node-icon{fill:currentColor;color:var(--primary)}.sim-node-icon.secondary{color:var(--secondary)}.sim-node-caption{fill:var(--text-secondary);font:600 9px var(--ace-font-body);text-anchor:middle}.diagram-canvas text:not(.node-ip){font-family:var(--ace-font-body)}.diagram-canvas .node-label{font-family:var(--ace-font-heading);font-size:11px;font-weight:700}.diagram-canvas .node-ip{font-size:9.5px}.split-node-name{fill:var(--ace-text);font:700 10px var(--ace-font-heading);text-anchor:middle}.split-node-address{fill:var(--ace-text-muted);font:9.5px var(--font-mono);text-anchor:middle}#split-horizon-svg text,#vlan-svg text{font-size:9.5px}#vlan-svg .sim-node-caption{font-size:9px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app-container{max-width:1440px;margin:0 auto;padding:2rem 1.5rem}header{text-align:left;border-bottom:1px solid #ffffff0d;flex-direction:column;align-items:flex-start;width:100%;margin-bottom:2.5rem;padding-bottom:1.5rem;display:flex}.logo-section{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;width:100%;margin-bottom:1.25rem;display:flex}.logo-icon{width:38px;height:38px;color:var(--primary);filter:drop-shadow(0 0 8px rgba(var(--primary-rgb), .5))}h1{font-family:var(--font-heading);letter-spacing:-.025em;background:linear-gradient(135deg, #fff 30%, var(--primary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.25rem;font-weight:700}.header-title-container{text-align:right}.header-title{font-size:1.85rem;font-weight:800;line-height:1.1;font-family:var(--font-heading);letter-spacing:-.02em;background:linear-gradient(135deg, #fff 45%, var(--primary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0}@media (width<=768px){.logo-section{flex-direction:column;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.header-title-container{text-align:left;width:100%}.header-title{font-size:1.55rem}}.subtitle{color:var(--text-secondary);max-width:600px;margin-top:.5rem;font-size:1.05rem}.tabs-navigation{border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;flex-wrap:wrap;justify-content:center;align-self:center;gap:.25rem;width:fit-content;max-width:100%;margin-bottom:2.5rem;padding:.35rem;display:flex}.tab-btn{color:var(--text-secondary);font-family:var(--font-heading);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;display:flex}.tab-btn svg{width:18px;height:18px}.tab-btn:hover{color:var(--text-primary);background:#ffffff0d}.tab-btn.active{color:var(--bg-primary);background:var(--primary);box-shadow:0 4px 15px rgba(var(--primary-rgb), .3)}.glossary-link{color:var(--secondary);cursor:pointer;font:inherit;font-weight:650;line-height:inherit;text-align:inherit;background:0 0;border:0;border-bottom:1px dotted;padding:0;display:inline}.glossary-link:hover{color:var(--primary);border-bottom-style:solid}.glossary-link:focus-visible{outline:3px solid var(--ace-focus);outline-offset:2px;border-radius:2px}.glossary-page{gap:1rem;display:grid}.glossary-hero{grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);align-items:end;gap:2rem;display:grid}.glossary-hero h2{font:700 clamp(1.75rem, 4vw, 2.4rem) var(--font-heading);margin:.15rem 0 .35rem}.glossary-hero p:last-child{max-width:650px;color:var(--text-secondary)}.glossary-search{color:var(--text-primary);gap:.4rem;font-size:.8rem;font-weight:700;display:grid}.glossary-search__control{display:block;position:relative}.glossary-search__control svg{fill:none;width:18px;height:18px;stroke:var(--text-muted);stroke-linecap:round;stroke-width:2px;pointer-events:none;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.glossary-search__control input{border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:3rem;color:var(--text-primary);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#11131ac7;outline:none;padding:.7rem .85rem .7rem 2.75rem}.glossary-search__control input::placeholder{color:var(--text-muted)}.glossary-search__control input:focus{border-color:var(--secondary);box-shadow:0 0 0 3px var(--ace-focus)}.glossary-toolbar{min-height:2rem;color:var(--text-muted);justify-content:space-between;align-items:center;padding:0 .25rem;font-size:.82rem;display:flex}.glossary-toolbar button,.glossary-empty button,.glossary-related button{color:var(--secondary);cursor:pointer;font:inherit;background:0 0;border:0}.glossary-toolbar button:hover,.glossary-empty button:hover,.glossary-related button:hover{color:var(--primary)}.glossary-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start;gap:1rem;display:grid}.glossary-entry{gap:.9rem;padding:1.3rem;scroll-margin:2rem;display:grid}.glossary-entry--target{border-color:rgba(var(--secondary-rgb), .65);box-shadow:0 0 0 3px rgba(var(--secondary-rgb), .12), var(--ace-shadow)}.glossary-entry:focus{outline:none}.glossary-entry__term{border-radius:var(--radius-sm);width:fit-content;margin:-.18rem -.32rem;padding:.18rem .32rem;transition:color .18s,background-color .18s,box-shadow .18s}.glossary-entry--target .glossary-entry__term{background:var(--secondary);color:#11131a;box-shadow:0 0 0 4px rgba(var(--secondary-rgb), .16);animation:.9s ease-out glossary-target-pulse}@keyframes glossary-target-pulse{0%{box-shadow:0 0 0 0 rgba(var(--secondary-rgb), .55)}to{box-shadow:0 0 0 8px rgba(var(--secondary-rgb), 0)}}.glossary-entry__heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.glossary-entry__heading>div{flex-wrap:wrap;align-items:baseline;gap:.55rem;display:flex}.glossary-entry h3{font:700 1.08rem var(--font-heading)}.glossary-entry__heading span{color:var(--primary);font:700 .75rem var(--font-mono)}.glossary-entry__heading small{color:var(--text-muted);text-align:right;text-transform:uppercase;letter-spacing:.045em;font-size:.68rem;line-height:1.35}.glossary-entry p{color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.65}.glossary-aliases{color:var(--text-muted);font-size:.75rem}.glossary-aliases strong{color:var(--text-secondary)}.glossary-related{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:.4rem .7rem;padding-top:.75rem;font-size:.74rem;display:flex}.glossary-related>span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.glossary-related button{text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.glossary-empty{text-align:center;padding:3rem}.glossary-empty p{color:var(--text-secondary);margin:.35rem 0 1rem}.bacnet-overview{background:radial-gradient(circle at 92% 0%, rgba(var(--secondary-rgb), .12), transparent 25rem), var(--bg-card);gap:1.5rem;display:grid;overflow:hidden}.bacnet-overview__heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.bacnet-overview__heading h2{max-width:760px;font:700 clamp(1.65rem, 4vw, 2.35rem) var(--font-heading);margin-top:.15rem;line-height:1.16}.bacnet-overview__standard{border:1px solid rgba(var(--secondary-rgb), .25);background:rgba(var(--secondary-rgb), .07);color:var(--secondary);font:700 .7rem var(--font-mono);border-radius:999px;flex:none;padding:.35rem .65rem}.bacnet-overview__lead{max-width:1030px;color:var(--text-secondary);font-size:clamp(1rem,2vw,1.15rem);line-height:1.75}.primer-reading-guide{border:1px solid rgba(var(--secondary-rgb), .18);border-radius:var(--radius-lg);background:linear-gradient(120deg, rgba(var(--secondary-rgb), .07), transparent 52%), #11131a80;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:1.25rem;margin:1.1rem 0;padding:1.25rem;display:grid}.primer-reading-guide h3{color:var(--text-primary);font:700 1.08rem/1.35 var(--font-heading);margin-bottom:.45rem}.primer-reading-guide>div>p:last-child{color:var(--text-secondary);margin:0;font-size:.84rem;line-height:1.65}.primer-reading-guide ul{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.primer-reading-guide li{border-left:2px solid var(--primary);gap:.12rem;padding-left:.75rem;display:grid}.primer-reading-guide li strong{color:var(--text-primary);font:700 .8rem var(--font-heading)}.primer-reading-guide li span{color:var(--text-muted);font-size:.74rem;line-height:1.45}.primer-scenario-index{margin:1.25rem 0}.primer-scenario-index__heading{max-width:920px;margin-bottom:.9rem}.primer-scenario-index__heading h3{color:var(--text-primary);font:700 1.05rem/1.35 var(--font-heading);margin-bottom:.35rem}.primer-scenario-index__heading>p:last-child{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.6}.primer-scenario-index__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;display:grid}.primer-scenario-index__grid a{border:1px solid var(--border-color);border-radius:var(--radius-md);min-height:100%;color:inherit;transition:border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast);background:#11131a85;align-content:start;gap:.35rem;padding:.85rem;text-decoration:none;display:grid}.primer-scenario-index__grid a:hover,.primer-scenario-index__grid a:focus-visible{border-color:rgba(var(--secondary-rgb), .55);background:rgba(var(--secondary-rgb), .07);transform:translateY(-2px)}.primer-scenario-index__grid a:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.primer-scenario-index__grid strong{color:var(--secondary);font:700 .8rem/1.35 var(--font-heading)}.primer-scenario-index__grid span{color:var(--text-muted);font-size:.73rem;line-height:1.5}.primer-section,.primer-section-anchor{scroll-margin-top:1.25rem}.primer-scenario-intro{border:1px solid var(--border-color);border-left:3px solid var(--secondary);border-radius:0 var(--radius-lg) var(--radius-lg) 0;background:#191c26a3;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:1rem;margin:-.25rem 0 1.25rem;padding:1rem;display:grid}.primer-scenario-intro__summary>p:last-child{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.6}.primer-scenario-intro__lens{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.primer-scenario-intro__lens>div{border-radius:var(--radius-md);background:#11131a94;grid-template-columns:auto 1fr;align-items:start;gap:.55rem;padding:.75rem;display:grid}.primer-scenario-intro__lens p{color:var(--text-muted);margin:0;font-size:.73rem;line-height:1.5}.primer-scenario-intro__lens strong{color:var(--text-primary);font:700 .76rem var(--font-heading);margin-bottom:.18rem;display:block}.primer-scenario-intro__icon{width:1.4rem;height:1.4rem;font:800 .78rem var(--font-heading);border-radius:50%;place-items:center;display:grid}.primer-scenario-intro__icon.difference{background:rgba(var(--secondary-rgb), .12);color:var(--secondary)}.primer-scenario-intro__icon.risk{background:var(--warning-bg);color:var(--warning)}.bacnet-concept-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;display:grid}.bacnet-concept-grid article{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:#11131a8f;min-width:0;padding:1.2rem;position:relative}.bacnet-concept-grid article>span{background:var(--primary);width:1.75rem;height:1.75rem;color:var(--bg-primary);font:800 .78rem var(--font-heading);border-radius:50%;place-items:center;margin-bottom:.8rem;display:grid}.bacnet-concept-grid h3{color:var(--text-primary);font:700 1rem var(--font-heading);margin-bottom:.45rem}.bacnet-concept-grid p{color:var(--text-secondary);margin:0;font-size:.82rem;line-height:1.6}.bacnet-use-flow{border-radius:var(--radius-lg);background:rgba(var(--primary-rgb), .06);grid-template-columns:1fr 32px 1fr 32px 1fr;align-items:center;gap:.75rem;padding:1rem;display:grid}.bacnet-use-flow>div{gap:.25rem;display:grid}.bacnet-use-flow strong{color:var(--primary);font:700 .9rem var(--font-heading)}.bacnet-use-flow span{color:var(--text-secondary);font-size:.76rem;line-height:1.5}.bacnet-use-flow svg{fill:none;width:32px;stroke:var(--text-muted);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}@media (width<=760px){.glossary-hero{grid-template-columns:1fr;gap:1.25rem}.tab-btn{flex:180px;justify-content:center}.bacnet-overview__heading{display:grid}.bacnet-overview__standard{width:fit-content}.bacnet-concept-grid,.primer-reading-guide,.primer-scenario-intro,.primer-scenario-intro__lens,.primer-scenario-index__grid,.bacnet-use-flow{grid-template-columns:1fr}.bacnet-use-flow svg{justify-self:center;transform:rotate(90deg)}}@media (width>=761px) and (width<=1100px){.bacnet-concept-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.primer-reading-guide,.primer-scenario-intro{grid-template-columns:1fr}.primer-scenario-index__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-tab{animation:.4s ease-out forwards fadeIn;display:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.glass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--ace-shadow);transition:box-shadow var(--transition-normal), border-color var(--transition-normal);padding:1.75rem}.glass-card:hover{border-color:#ffffff1f}.glass-card.highlight-primary{border-color:rgba(var(--primary-rgb), .3);box-shadow:0 0 20px rgba(var(--primary-rgb), .05)}.glass-card.highlight-secondary{border-color:rgba(var(--secondary-rgb), .3);box-shadow:0 0 20px rgba(var(--secondary-rgb), .05)}.grid-2col{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=900px){.grid-2col{grid-template-columns:1fr 1fr}}.grid-1-3col{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=1100px){.grid-1-3col{grid-template-columns:minmax(400px,.72fr) minmax(0,1.8fr)}}.card-title{font-family:var(--font-heading);color:var(--text-primary);border-bottom:1px solid var(--border-color);align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.75rem;font-size:1.25rem;font-weight:600;display:flex}.card-title svg{width:20px;height:20px;color:var(--primary)}p{color:var(--text-secondary);margin-bottom:1rem;font-size:.95rem}.form-group{margin-bottom:1.25rem}label{font-family:var(--font-heading);color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.input-row{gap:.5rem;display:flex}.input-row>input{flex:auto;min-width:0}input[type=text],input[type=number],select,textarea{border:1px solid var(--border-color);min-height:2.6rem;color:var(--text-primary);border-radius:var(--radius-md);font-family:var(--font-sans);width:100%;transition:all var(--transition-fast);background:#11131abd;outline:none;padding:.75rem 1rem;font-size:.95rem}input[type=text]:focus,input[type=number]:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--ace-focus);background:#11131af0;border-color:#adfcf99e}input::placeholder,textarea::placeholder{color:var(--ace-text-subtle)}.ace-toggle{color:var(--ace-text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:1rem;margin:0;display:inline-flex}.ace-toggle__copy{gap:.15rem;display:grid}.ace-toggle__label{font:700 .84rem/1.35 var(--ace-font-body)}.ace-toggle__description{color:var(--ace-text-subtle);font:400 .74rem/1.4 var(--ace-font-body)}.ace-toggle__input,.ace-checkbox__input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.ace-toggle__track{border:1px solid var(--ace-border-strong);background:var(--ace-bg-soft);border-radius:999px;flex:none;align-items:center;width:2.55rem;height:1.45rem;padding:.17rem;transition:background-color .14s,border-color .14s,box-shadow .14s;display:flex}.ace-toggle__thumb{background:var(--ace-text-muted);border-radius:50%;width:.98rem;height:.98rem;transition:background-color .14s,transform .16s;box-shadow:0 1px 3px #00000061}.ace-toggle__input:checked+.ace-toggle__track{border-color:var(--ace-primary);background:var(--ace-primary)}.ace-toggle__input:checked+.ace-toggle__track .ace-toggle__thumb{background:#15170c;transform:translate(1.08rem)}.ace-toggle__input:focus-visible+.ace-toggle__track,.ace-checkbox__input:focus-visible+.ace-checkbox__control{border-color:var(--ace-secondary);box-shadow:0 0 0 3px var(--ace-focus)}.ace-toggle:hover .ace-toggle__track,.ace-checkbox:hover .ace-checkbox__control{border-color:#adfcf980}.ace-toggle--disabled,.ace-checkbox--disabled{cursor:not-allowed;opacity:.5}.ace-checkbox{color:var(--ace-text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:.65rem;margin:0;display:inline-flex}.ace-checkbox__control{border:1px solid var(--ace-border-strong);border-radius:var(--ace-radius-sm);color:#15170c;background:#11131abd;flex:none;place-items:center;width:1.25rem;height:1.25rem;margin-top:.08rem;transition:background-color .14s,border-color .14s,box-shadow .14s;display:inline-grid}.ace-checkbox__control svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;opacity:0;width:.85rem;height:.85rem;transition:opacity .12s,transform .12s;transform:scale(.7)}.ace-checkbox__input:checked+.ace-checkbox__control{border-color:var(--ace-primary);background:var(--ace-primary)}.ace-checkbox__input:checked+.ace-checkbox__control svg{opacity:1;transform:scale(1)}.ace-checkbox__copy{gap:.15rem;display:grid}.ace-checkbox__label{font:700 .84rem/1.35 var(--ace-font-body)}.ace-checkbox__description{color:var(--ace-text-subtle);font-size:.74rem;line-height:1.4}.sim-option-toggle{flex:100%;margin-bottom:.5rem}input[type=radio]{width:1.1rem;height:1.1rem;accent-color:var(--ace-primary)}input[type=radio]:focus-visible{box-shadow:0 0 0 3px var(--ace-focus);outline:0}textarea{resize:vertical;min-height:82px}.diagram-page-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.5rem;display:flex}.multi-port-primer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0;display:grid}.multi-port-primer-grid article{border:1px solid var(--ace-border);border-radius:var(--radius-lg);background:var(--ace-bg-elevated);gap:.35rem;padding:1rem;display:grid}.multi-port-primer-grid strong{font-family:var(--ace-font-heading)}.multi-port-primer-grid small{color:var(--ace-text-muted);line-height:1.45}.port-badge{background:var(--ace-primary-soft);width:max-content;color:var(--ace-primary);font:700 .7rem var(--font-mono);border-radius:999px;padding:.22rem .48rem}.whois-port-input{min-width:0;flex:0 0 104px!important}.device-service-selection{flex-wrap:wrap;gap:.5rem 1rem;padding:.55rem 0;display:flex}.planner-sc-inline{border-radius:var(--radius-md);background:#adfcf90a;border:1px solid #adfcf933;gap:.55rem;margin:.25rem 0 0 1.25rem;padding:.75rem;display:grid}.planner-sc-inline .form-group{margin:0}@media (width<=760px){.multi-port-primer-grid{grid-template-columns:1fr}}.diagram-page-heading h2{font-family:var(--font-heading);margin-bottom:.5rem;font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.2}.diagram-page-heading p:last-child{max-width:720px;margin:0}.eyebrow{color:var(--primary);font-family:var(--font-heading);letter-spacing:.16em;margin-bottom:.4rem;font-size:.72rem;font-weight:700}.diagram-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.diagram-actions .btn{white-space:nowrap;flex:none;min-width:auto}.diagram-import-notice{border-radius:var(--radius-md);background:var(--success-bg);color:#86efac;border:1px solid #14ae5c4d;justify-content:space-between;align-items:center;gap:1rem;margin:-.5rem 0 1rem;padding:.7rem .85rem;font-size:.78rem;display:flex}.diagram-import-notice button{width:1.6rem;height:1.6rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;font-size:1.1rem;display:grid}.diagram-import-notice button:hover{background:#ffffff12}.pdf-export-dialog{background:var(--ace-bg-panel);border:1px solid var(--ace-border);border-radius:var(--radius-lg);width:min(520px,100vw - 2rem);color:var(--ace-text);margin:auto;padding:1.35rem;box-shadow:0 28px 80px #0000009e}.pdf-export-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#04060ac7}.pdf-export-dialog-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.pdf-export-dialog-header h3{font:700 1.35rem var(--ace-font-heading);margin:0}.pdf-dialog-close{width:2rem;height:2rem;color:var(--ace-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:1.5rem;line-height:1}.pdf-dialog-close:hover{background:var(--ace-bg-soft);color:var(--ace-text)}.pdf-export-description{color:var(--ace-text-muted);margin:.75rem 0 1rem;font-size:.9rem;line-height:1.5}.pdf-theme-options{border:0;gap:.65rem;margin:0;padding:0;display:grid}.pdf-theme-option{border:1px solid var(--ace-border);border-radius:var(--radius-md);background:var(--ace-bg-elevated);cursor:pointer;grid-template-columns:auto 54px 1fr;align-items:center;gap:.8rem;padding:.8rem;display:grid}.pdf-theme-option:hover{border-color:var(--ace-border-strong)}.pdf-theme-option.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.pdf-theme-option input{margin:0}.pdf-theme-option>span:last-child{gap:.15rem;display:grid}.pdf-theme-option strong{color:var(--ace-text);font-family:var(--ace-font-heading)}.pdf-theme-option small{color:var(--ace-text-muted);font-size:.75rem}.pdf-theme-swatch{border:1px solid #64748b;border-radius:6px;width:54px;height:36px;display:block;box-shadow:inset 0 5px #c1d301}.pdf-theme-swatch.light{background:#fff}.pdf-theme-swatch.dark{background:#121212}.pdf-export-dialog-actions{border-top:1px solid var(--ace-border);justify-content:flex-end;gap:.6rem;margin-top:1.15rem;padding-top:1rem;display:flex}.pdf-export-dialog-actions .btn{flex:none;min-width:auto}.nmap-import-dialog{background:var(--ace-bg-panel);border:1px solid var(--ace-border);border-radius:var(--radius-lg);width:min(760px,100vw - 2rem);max-height:calc(100vh - 2rem);color:var(--ace-text);margin:auto;padding:1.35rem;overflow-y:auto;box-shadow:0 28px 80px #0000009e}.nmap-import-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#04060ac7}.nmap-import-output{color:var(--ace-text);gap:.4rem;margin:0;font-size:.8rem;font-weight:700;display:grid}.nmap-import-output textarea{resize:vertical;min-height:220px;font:.76rem/1.5 var(--font-mono);white-space:pre}.nmap-import-options{grid-template-columns:150px minmax(0,1fr);align-items:end;gap:1rem;margin-top:.9rem;display:grid}.nmap-import-options label{color:var(--ace-text);gap:.35rem;margin:0;font-size:.76rem;font-weight:700;display:grid}.nmap-import-options p{color:var(--ace-text-muted);margin:0 0 .15rem;font-size:.72rem;line-height:1.45}.nmap-import-preview{border:1px solid var(--ace-border);border-radius:var(--radius-md);background:#11131a8c;margin-top:1rem;overflow:hidden}.nmap-import-summary{border-bottom:1px solid var(--ace-border);flex-wrap:wrap;gap:.6rem;padding:.75rem;display:flex}.nmap-import-summary span{background:var(--ace-bg-soft);color:var(--ace-text-muted);border-radius:999px;padding:.3rem .55rem;font-size:.7rem}.nmap-import-summary strong{color:var(--ace-secondary);font-family:var(--font-mono)}.nmap-import-duplicates{background:var(--warning-bg);color:#fde68a;border-bottom:1px solid #ffa7262e;margin:0;padding:.55rem .75rem;font-size:.7rem}.nmap-import-hosts{max-height:230px;overflow-y:auto}.nmap-import-hosts>div{border-bottom:1px solid #ffffff0d;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.6rem;padding:.55rem .75rem;display:grid}.nmap-import-hosts>div:last-child{border-bottom:0}.nmap-import-host-status{background:var(--success);border-radius:50%;width:.5rem;height:.5rem;box-shadow:0 0 8px #14ae5c73}.nmap-import-hosts>div>span:nth-child(2){gap:.08rem;min-width:0;display:grid}.nmap-import-hosts strong{color:var(--ace-text);font:700 .76rem var(--ace-font-heading);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nmap-import-hosts small{color:var(--ace-text-muted);font:.68rem var(--font-mono)}.nmap-import-hosts em{border:1px solid rgba(var(--secondary-rgb),.22);color:var(--ace-secondary);font:normal 700 .58rem var(--ace-font-heading);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.18rem .4rem}.nmap-import-empty{color:var(--ace-text-muted);text-align:center;margin:0;padding:1.5rem;font-size:.8rem}.diagram-workspace{grid-template-columns:minmax(360px,430px) minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.diagram-editor{flex-direction:column;gap:1rem;display:flex}.diagram-editor .glass-card{padding:1.25rem}.diagram-settings-card{border-color:rgba(var(--primary-rgb), .24)}.compact-group{margin-bottom:0}.autosave-status{color:var(--text-muted);margin-top:.65rem;font-size:.72rem;display:block}.editor-section-heading{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.editor-section-heading>div{align-items:center;gap:.65rem;display:flex}.editor-section-heading h3{font-family:var(--font-heading);font-size:1rem}.step-number{background:var(--primary);width:25px;height:25px;color:var(--bg-primary);font-family:var(--font-heading);border-radius:50%;place-items:center;font-size:.75rem;font-weight:800;display:grid}.icon-text-button,.remove-button,.row-remove-button,.reset-button{color:var(--primary);cursor:pointer;font:600 .78rem var(--font-heading);background:0 0;border:0}.icon-text-button:hover,.reset-button:hover{color:#e5f31f}.icon-text-button.small{font-size:.72rem}.subnet-editor-card{border-left:3px solid var(--subnet-color)}.editor-card-header{font-family:var(--font-heading);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.remove-button{color:var(--text-muted);font-size:.7rem}.remove-button:hover,.row-remove-button:hover{color:#fca5a5}.editor-grid{gap:.75rem;display:grid}.editor-grid.two-columns{grid-template-columns:1fr .55fr}.editor-grid.network-address-grid{grid-template-columns:.55fr minmax(0,1fr)}.network-address-grid .input-row>input{min-width:0}.network-address-grid .cidr-select{flex:0 0 6.5rem}.editor-grid .form-group{margin-bottom:.75rem}.device-list-header{border-top:1px solid var(--border-color);color:var(--text-secondary);justify-content:space-between;align-items:center;margin-top:.25rem;padding-top:.8rem;font-size:.76rem;font-weight:600;display:flex}.empty-editor-state{color:var(--text-muted);padding:.8rem 0;font-size:.78rem;line-height:1.5}.infrastructure-empty{padding:1.25rem!important}.device-editor-row{align-items:center;gap:.45rem;margin-top:.55rem;display:flex}.device-editor-block{border-bottom:1px solid #ffffff0d;margin-top:.55rem;padding:.25rem 0 .55rem}.device-editor-block:last-child{border-bottom:0;padding-bottom:0}.interface-summary{color:var(--text-muted);justify-content:space-between;align-items:center;gap:.5rem;margin:.35rem 28px 0 0;font-size:.65rem;display:flex}.interface-summary button,.add-hop-button{color:#5eead4;cursor:pointer;font:600 .68rem var(--font-heading);background:0 0;border:0}.device-address-count{border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);white-space:nowrap;align-items:center;padding:.45rem .55rem;font-size:.68rem;display:flex}.nic-editor-card{border-radius:var(--radius-sm);background:#0f766e0d;border:1px solid #2dd4bf38;margin:.45rem 28px 0 .75rem;padding:.5rem}.nic-editor-heading{grid-template-columns:1fr auto 24px;align-items:center;gap:.4rem;display:grid}.nic-editor-heading input{background:0 0;border-color:#0000;min-width:0;padding:.42rem .5rem;font-size:.7rem}@media (width<=620px){.nmap-import-options{grid-template-columns:1fr;align-items:stretch}.nmap-import-output textarea{min-height:180px}.nmap-import-dialog .pdf-export-dialog-actions{flex-wrap:wrap}.nmap-import-dialog .pdf-export-dialog-actions .btn{flex:150px}}.nic-editor-heading>button:not(.row-remove-button){color:#5eead4;cursor:pointer;font:600 .65rem var(--font-heading);background:0 0;border:0}.interface-editor-row{border-left:2px dashed #2dd4bf;grid-template-columns:.8fr 1.1fr 1fr 24px;align-items:center;gap:.4rem;margin:.4rem 0 0 .75rem;padding-left:.55rem;display:grid}.interface-editor-row input,.interface-editor-row select{min-width:0;padding:.48rem .52rem;font-size:.7rem}.device-fields{flex:1;grid-template-columns:1.2fr .9fr 1fr;gap:.4rem;min-width:0;display:grid}.device-fields input,.device-fields select{min-width:0;padding:.55rem .6rem;font-size:.76rem}.row-remove-button{color:var(--text-muted);flex:none;width:24px;font-size:1.15rem}.input-invalid{border-color:var(--error)!important}.input-warning{border-color:var(--warning)!important}.subnet-checkboxes{flex-wrap:wrap;gap:.45rem;display:flex}.checkbox-chip{cursor:pointer;margin:0}.checkbox-chip input{opacity:0;pointer-events:none;position:absolute}.checkbox-chip span{border:1px solid var(--border-color);color:var(--text-muted);font:600 .68rem var(--font-sans);border-radius:999px;padding:.35rem .55rem;display:block}.checkbox-chip input:checked+span{color:var(--text-primary);border-color:var(--chip-color);background:color-mix(in srgb, var(--chip-color) 12%, transparent)}.field-hint{color:var(--text-muted);font-size:.75rem}.diagram-preview-column{min-width:0;position:sticky;top:1rem}.diagram-preview-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.diagram-preview-toolbar>div{flex-direction:column;display:flex}.diagram-preview-toolbar strong{font-family:var(--font-heading);font-size:.9rem}.diagram-preview-toolbar span{color:var(--text-muted);font-size:.72rem}.reset-button{color:var(--text-muted)}.diagram-scroll-frame{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:#121212;max-width:100%;overflow:auto;box-shadow:0 20px 50px #00000047}.network-diagram-svg{min-height:480px;max-height:72vh;display:block}.ace-node-icon{fill:currentColor;color:var(--primary)}.infra-node-icon,.host-node-icon{color:var(--secondary)}.diagnostics-panel{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.diagnostic-item{border-radius:var(--radius-sm);align-items:flex-start;gap:.5rem;padding:.55rem .7rem;font-size:.73rem;line-height:1.35;display:flex}.diagnostic-item.error{color:#fca5a5;background:var(--error-bg);border:1px solid #df121940}.diagnostic-item.warning{color:#fde68a;background:var(--warning-bg);border:1px solid #ffa72640}.icon-text-button:disabled{opacity:.4;cursor:not-allowed}.path-editor-card{border-left:3px solid var(--success)}.path-editor-card.failure{border-left-color:var(--error)}.path-settings-grid{grid-template-columns:1.3fr .7fr .9fr}.path-hop-list{flex-direction:column;gap:.4rem;display:flex}.path-hop-row{grid-template-columns:46px 1fr 24px;align-items:center;gap:.4rem;display:grid}.path-hop-row>span{color:var(--text-muted);font:700 .58rem var(--font-heading);letter-spacing:.08em}.path-hop-row select{padding:.52rem .6rem;font-size:.75rem}.add-hop-button{color:var(--secondary);margin:.55rem 0 .8rem 46px}.path-notes{margin-top:.25rem}.whois-broadcast-field{border:1px solid rgba(var(--secondary-rgb), .22);border-radius:var(--radius-md);background:rgba(var(--secondary-rgb), .04);padding:.85rem}.whois-broadcast-field .field-hint{margin-top:.45rem;display:block}.use-broadcast-button{border:1px solid rgba(var(--secondary-rgb), .35);border-radius:var(--radius-md);background:rgba(var(--secondary-rgb), .08);color:var(--secondary);cursor:pointer;font:600 .68rem var(--font-heading);white-space:nowrap;flex:none;padding:.55rem .7rem}.use-broadcast-button:disabled{opacity:.4;cursor:not-allowed}.bbmd-reachability-results{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%;margin:.9rem 0;display:grid}.bbmd-result-step{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0000002e;align-items:center;gap:.65rem;padding:.7rem .8rem;display:flex}.bbmd-result-step>span{color:#cbd5e1;width:24px;height:24px;font:700 .72rem var(--font-heading);background:#334155;border-radius:50%;flex:0 0 24px;place-items:center;display:grid}.bbmd-result-step div{flex-direction:column;min-width:0;display:flex}.bbmd-result-step strong{font:600 .78rem var(--font-heading);color:var(--text-primary)}.bbmd-result-step small{color:var(--text-muted);font-size:.7rem;line-height:1.4}.bbmd-result-step.success{background:var(--success-bg);border-color:#14ae5c59}.bbmd-result-step.success>span{background:var(--success);color:#fff}.bbmd-result-step.error{background:var(--error-bg);border-color:#df121966}.bbmd-result-step.error>span{background:var(--error);color:#fff}@media (width<=680px){.bbmd-reachability-results{grid-template-columns:1fr}}.visually-hidden{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (width<=1100px){.tabs-navigation{width:100%;overflow-x:auto}.tab-btn{flex:none;padding-inline:1rem}.diagram-workspace{grid-template-columns:1fr}.diagram-preview-column{order:-1;position:static}.network-diagram-svg{max-height:600px}}@media (width<=680px){.diagram-page-heading{flex-direction:column;align-items:flex-start}.diagram-actions{justify-content:flex-start;width:100%}.diagram-actions .btn{flex:calc(50% - .5rem)}.device-fields{grid-template-columns:1fr}.interface-editor-row{grid-template-columns:1fr;padding-bottom:.5rem}.editor-grid.two-columns,.path-settings-grid{grid-template-columns:1fr}}.cidr-select{text-align:center;flex:0 0 7rem;width:auto}.preset-selector{margin-bottom:1.5rem}.preset-selector select{padding-right:2.5rem;font-size:.9rem}.metrics-table{border-collapse:collapse;width:100%;margin-top:.5rem;font-size:.9rem}.metrics-table tr{border-bottom:1px solid #ffffff0a}.metrics-table tr:last-child{border-bottom:none}.metrics-table td{padding:.65rem 0}.metrics-table td.label{color:var(--text-secondary);width:130px;font-weight:500}.metrics-table td.value{color:var(--text-primary);font-family:var(--font-mono);text-align:right;word-break:break-all}.metrics-table td.value .binary{color:var(--text-muted);margin-top:.15rem;font-size:.75rem;display:block}.network-divider{vertical-align:middle;border-left:2px dashed #ffffff26;height:20px;margin:0 1px;display:inline-block}.verdict-box{border-radius:var(--radius-md);border:1px solid #0000;flex-direction:column;gap:.5rem;margin-top:1.5rem;padding:1.25rem;display:flex}.verdict-header{font-family:var(--font-heading);align-items:center;gap:.75rem;font-size:1.1rem;font-weight:600;display:flex}.verdict-header svg{width:24px;height:24px}.verdict-body{font-size:.95rem;line-height:1.55}.verdict-success{background:var(--success-bg);color:#a7f3d0;border-color:#10b98133}.verdict-success svg{color:var(--success)}.verdict-warning{background:var(--warning-bg);color:#fde68a;border-color:#f59e0b33}.verdict-warning svg{color:var(--warning)}.verdict-error{background:var(--error-bg);color:#fca5a5;border-color:#ef444433}.verdict-error svg{color:var(--error)}.sim-controls-panel{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.btn{border:1px solid var(--ace-border);min-height:2.35rem;color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-heading);transition:all var(--transition-fast);background:0 0;flex:calc(25% - .75rem);justify-content:center;align-items:center;gap:.5rem;min-width:170px;padding:.65rem 1.2rem;font-size:.85rem;font-weight:700;display:flex}.btn svg{flex-shrink:0;width:16px;height:16px}.btn:hover:not(:disabled){border-color:var(--ace-border-strong);color:#fff;box-shadow:none;background:#ffffff0d}.btn:focus-visible{box-shadow:0 0 0 3px var(--ace-focus);outline:0}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.35;cursor:not-allowed;filter:grayscale(.8)}.btn-primary{background:var(--ace-primary);color:#15170c;box-shadow:none;border:1px solid #0000}.btn.btn-primary:hover:not(:disabled){background:var(--ace-primary-hover);color:#15170c;filter:none;box-shadow:none;border-color:#0000}.btn-secondary{background:var(--ace-secondary-soft);color:var(--ace-secondary);box-shadow:none;border:1px solid #adfcf96b}.btn.btn-secondary:hover:not(:disabled){color:var(--ace-secondary);filter:none;box-shadow:none;background:#adfcf92e;border-color:#adfcf96b}.btn-danger{background:var(--ace-danger-soft);color:#ffb5a0;box-shadow:none;border:1px solid #f6511d85}.btn.btn-danger:hover:not(:disabled){color:#ffb5a0;filter:none;box-shadow:none;background:#f6511d33;border-color:#f6511d85}.btn-sm{min-height:1.9rem;padding:.4rem .65rem;font-size:.78rem}.btn-md{min-height:2.35rem;padding:.58rem .95rem;font-size:.86rem}.btn-lg{min-height:2.85rem;padding:.74rem 1.15rem;font-size:.96rem}.btn-block{width:100%}.btn-quiet{color:var(--ace-text-muted);border-color:#0000}.btn-quiet:hover:not(:disabled){color:var(--ace-text);background:0 0}.btn-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:1em;height:1em;animation:.7s linear infinite ace-spin}@keyframes ace-spin{to{transform:rotate(360deg)}}.sim-checkbox-label{cursor:pointer;color:var(--text-secondary);-webkit-user-select:none;user-select:none;flex:100%;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.85rem;display:flex}.sim-checkbox-label input{accent-color:var(--primary);width:16px;height:16px}.diagram-canvas{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#00000040;width:100%;height:auto;max-height:380px;margin-bottom:1.25rem;overflow:visible}.node-group rect{fill:#1a2238;stroke:var(--border-color);stroke-width:2px;rx:8;ry:8;transition:all var(--transition-normal)}.node-group.active rect{stroke:var(--primary);filter:drop-shadow(0 0 6px rgba(var(--primary-rgb), .3))}.node-group.trap-node rect{stroke:var(--warning);filter:drop-shadow(0 0 6px #f59e0b4d)}.node-label{font-family:var(--font-heading);fill:var(--text-primary);text-anchor:middle;font-size:13px;font-weight:600}.node-ip{font-family:var(--font-mono);fill:var(--text-secondary);text-anchor:middle;font-size:10px}.wire-path{fill:none;stroke:#ffffff1a;stroke-width:3px;stroke-linecap:round;transition:all var(--transition-normal)}.wire-path.active{stroke:rgba(var(--primary-rgb), .4)}.wire-path.secondary-active{stroke:rgba(var(--secondary-rgb), .4)}.packet-pulse{fill:var(--primary);filter:drop-shadow(0 0 4px var(--primary));opacity:0}.packet-pulse.secondary{fill:var(--secondary);filter:drop-shadow(0 0 4px var(--secondary))}.packet-label{font-family:var(--font-mono);fill:#fff;background:var(--bg-primary);text-anchor:middle;opacity:0;pointer-events:none;font-size:9px;font-weight:600}.terminal-card{border:1px solid var(--border-color);border-radius:var(--radius-md);font-family:var(--font-mono);color:#e2e8f0;background:#060911;max-height:180px;padding:1rem;font-size:.8rem;overflow-y:auto;box-shadow:inset 0 2px 8px #000c}.terminal-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.5rem;font-size:.75rem;font-weight:700;display:flex}.terminal-dot{background:var(--primary);width:8px;height:8px;box-shadow:0 0 6px var(--primary);border-radius:50%;margin-right:.25rem;display:inline-block}.terminal-line{word-break:break-all;margin-bottom:.35rem;line-height:1.4}.terminal-line .timestamp{color:var(--text-muted);margin-right:.5rem}.terminal-line.info{color:#38bdf8}.terminal-line.success{color:#34d399}.terminal-line.warning{color:#fbbf24}.terminal-line.error{color:#f87171}.terminal-line.system{color:#c084fc}.primer-intro{margin-bottom:2rem}.primer-section{margin-bottom:3rem}.primer-grid{grid-template-columns:1fr;gap:2rem;margin-top:1.5rem;display:grid}@media (width>=900px){.primer-grid{grid-template-columns:1.2fr 1fr}}.primer-card{border:1px solid var(--ace-border);border-radius:var(--ace-radius-lg);background:#191c26d6;height:100%;padding:1.5rem}.primer-subheading{font-family:var(--font-heading);color:var(--primary);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1.1rem;font-weight:600;display:flex}.osi-table{border-collapse:collapse;border-radius:var(--radius-sm);border:1px solid var(--border-color);width:100%;margin:1rem 0;font-size:.85rem;overflow:hidden}.osi-table th,.osi-table td{text-align:left;padding:.6rem .75rem}.osi-table th{font-family:var(--font-heading);background:#ffffff0d;font-weight:600}.osi-table tr{border-bottom:1px solid #ffffff0a}.osi-table tr.highlight-bacnet-ip{background:rgba(var(--primary-rgb), .04);border-left:3px solid var(--primary)}.osi-table tr.highlight-bacnet-eth{background:rgba(var(--secondary-rgb), .04);border-left:3px solid var(--secondary)}.diagram-block{border-radius:var(--radius-md);border:1px solid var(--border-color);background:#0003;flex-direction:column;justify-content:center;align-items:center;min-height:250px;padding:1.5rem;display:flex}.interactive-osi-selector{gap:.5rem;width:100%;margin-bottom:1rem;display:flex}.osi-toggle-btn{border:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--ace-font-body);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);text-align:center;background:#ffffff08;flex:1;padding:.5rem;font-size:.85rem;font-weight:700}.osi-toggle-btn:hover{border-color:var(--ace-border-strong);color:var(--ace-text);background:#ffffff0d}.osi-toggle-btn:focus-visible{box-shadow:0 0 0 3px var(--ace-focus);outline:0}.osi-toggle-btn.active{color:#15170c;border-color:var(--ace-primary);background:var(--ace-primary);box-shadow:none}.standards-note,.failure-causes{border:1px solid var(--ace-border);border-left:3px solid var(--ace-secondary);border-radius:var(--ace-radius-md);background:var(--ace-secondary-soft);color:var(--ace-text-muted);gap:.45rem;margin-top:1rem;padding:.85rem 1rem;font-size:.8rem;line-height:1.5;display:grid}.standards-note strong,.failure-causes strong{color:var(--ace-text);font-family:var(--ace-font-heading);font-size:.9rem}.standards-note a{width:fit-content;color:var(--ace-secondary);text-underline-offset:3px;text-decoration:underline}.failure-causes{border-left-color:var(--ace-danger);background:var(--ace-danger-soft);text-align:left;width:100%}.failure-causes ul{gap:.25rem;margin:0;padding-left:1.1rem;display:grid}.calculator-device-group{border:1px solid var(--ace-border);border-left:3px solid var(--primary);border-radius:var(--ace-radius-md);background:#11131a73;margin-bottom:1.5rem;padding:1rem}.calculator-device-group.destination{border-left-color:var(--secondary)}.calculator-device-group .form-group:last-child{margin-bottom:0}.calculator-bbmd-config{border-top:1px solid var(--ace-border);margin-top:1.5rem;padding-top:1.5rem}.calculator-bbmd-node{border:1px solid var(--ace-border);border-left:2px solid var(--primary);border-radius:var(--ace-radius-md);background:#11131a73;margin-top:1rem;padding:.85rem}.calculator-bbmd-node.destination{border-left-color:var(--secondary)}.osi-toggle-btn.active.bacnet-ip{background:rgba(var(--primary-rgb), .15);border-color:var(--primary);color:var(--primary);box-shadow:0 0 10px rgba(var(--primary-rgb), .1)}.osi-toggle-btn.active.bacnet-eth{background:rgba(var(--secondary-rgb), .15);border-color:var(--secondary);color:var(--secondary);box-shadow:0 0 10px rgba(var(--secondary-rgb), .1)}.packet-container{flex-direction:column;gap:.35rem;width:100%;margin-top:1rem;display:flex}.packet-layer{border-radius:var(--radius-sm);font-family:var(--font-mono);text-align:center;transition:all var(--transition-normal);border:1px solid #0000;justify-content:center;align-items:center;padding:.6rem;font-size:.75rem;font-weight:500;display:flex;position:relative}.packet-layer .layer-meta{color:#fff6;font-size:.65rem;position:absolute;left:10px}.packet-layer.eth{background:rgba(var(--secondary-rgb), .15);border-color:rgba(var(--secondary-rgb), .3);color:#e9d5ff}.packet-layer.ip{color:#bfdbfe;background:#3b82f626;border-color:#3b82f64d}.packet-layer.udp{color:#bae6fd;background:#0ea5e926;border-color:#0ea5e94d}.packet-layer.bvll{background:rgba(var(--primary-rgb), .15);border-color:rgba(var(--primary-rgb), .3);color:#e0f2fe}.packet-layer.bacnet{color:#a7f3d0;background:#10b98126;border-color:#10b9814d;font-weight:700}.callout-box{border-left:4px solid var(--warning);border-radius:0 var(--radius-md) var(--radius-md) 0;background:#f59e0b0f;margin:1.5rem 0;padding:1.25rem}.callout-title{font-family:var(--font-heading);color:#fde68a;align-items:center;gap:.5rem;margin-bottom:.5rem;font-weight:600;display:flex}.callout-title svg{color:var(--warning);width:20px;height:20px}.callout-content{color:var(--text-secondary);font-size:.9rem;line-height:1.5}.bbmd-diagram-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0003;margin-top:1rem;padding:1rem;position:relative}.bbmd-controls{justify-content:center;gap:.5rem;margin-top:1rem;display:flex}ul.custom-list{margin-bottom:1rem;margin-left:.25rem;list-style:none}ul.custom-list li{color:var(--text-secondary);margin-bottom:.5rem;padding-left:1.5rem;font-size:.95rem;position:relative}ul.custom-list li:before{content:"•";color:var(--primary);font-size:1.2rem;position:absolute;top:-2px;left:.25rem}footer{border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);margin-top:5rem;padding-top:2rem;font-size:.85rem}footer a{color:var(--primary);transition:color var(--transition-fast);text-decoration:none}footer a:hover{color:var(--text-primary)}.footer-signup-button{color:var(--secondary);cursor:pointer;font:700 .82rem var(--font-heading);background:0 0;border:0;border-bottom:1px dotted;margin-top:.65rem;padding:.35rem .15rem}.footer-signup-button:hover{color:var(--primary);border-bottom-style:solid}.footer-signup-button:focus-visible{outline:3px solid var(--ace-focus);outline-offset:3px;border-radius:2px}.footer-logo{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.footer-logo svg{width:20px;height:20px;color:var(--text-muted)}.signup-banner{z-index:1000;right:max(1rem, env(safe-area-inset-right));bottom:max(1rem, env(safe-area-inset-bottom));left:max(1rem, env(safe-area-inset-left));border:1px solid rgba(var(--secondary-rgb), .34);border-radius:var(--radius-lg);background:linear-gradient(110deg, rgba(var(--primary-rgb), .08), transparent 38%), #191c26f7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:auto minmax(220px,.8fr) minmax(340px,1.2fr);align-items:center;gap:1rem;width:min(1040px,100vw - 2rem);margin:0 auto;padding:1.1rem 3.25rem 1.1rem 1.2rem;display:grid;position:fixed;box-shadow:0 24px 70px #00000094,0 0 0 1px #ffffff0a}.signup-banner__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:.65rem;right:.65rem}.signup-banner__close:hover{color:var(--text-primary);background:#ffffff0f}.signup-banner__close:focus-visible{outline:3px solid var(--ace-focus)}.signup-banner__close svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:18px;height:18px}.signup-banner__mark{background:var(--primary);color:#15170c;width:3.25rem;height:3.25rem;box-shadow:0 0 24px rgba(var(--primary-rgb), .2);border-radius:50%;place-items:center;display:grid}.signup-banner__mark svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.45rem;height:1.45rem}.signup-banner__copy{min-width:0}.signup-banner__copy .eyebrow{margin:0 0 .15rem}.signup-banner__copy h2{font:700 1.15rem/1.25 var(--font-heading)}.signup-banner__copy>p:last-child{color:var(--text-secondary);margin:.25rem 0 0;font-size:.78rem;line-height:1.45}.signup-banner__form{grid-template-columns:minmax(180px,1fr) auto;align-items:start;gap:.45rem .6rem;display:grid}.signup-banner__form input[type=email]{border:1px solid var(--border-color);border-radius:var(--radius-md);width:100%;min-height:2.7rem;color:var(--text-primary);font:.9rem var(--font-sans);background:#11131ae0;outline:0;padding:.65rem .85rem}.signup-banner__form input[type=email]:focus{border-color:var(--secondary);box-shadow:0 0 0 3px var(--ace-focus)}.signup-banner__form input[type=email][aria-invalid=true]{border-color:var(--error)}.signup-banner__form .btn{min-width:110px;min-height:2.7rem}.signup-banner__form small{color:var(--text-muted);grid-column:1/-1;font-size:.65rem;line-height:1.35}.signup-banner__honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.signup-banner__error{color:#fca5a5;grid-column:1/-1;margin:0;font-size:.72rem;line-height:1.35}.signup-banner__success{color:var(--text-primary);justify-self:end;align-items:center;gap:.7rem;display:flex}.signup-banner__success svg{background:var(--success);fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px;border-radius:50%;width:2rem;height:2rem;padding:.35rem}.signup-banner__success div{gap:.1rem;display:grid}.signup-banner__success strong{font:700 .9rem var(--font-heading)}.signup-banner__success span{color:var(--text-secondary);font-size:.72rem}.signup-banner-enter-active,.signup-banner-leave-active{transition:opacity .22s,transform .26s}.signup-banner-enter-from,.signup-banner-leave-to{opacity:0;transform:translateY(24px)}@media (width<=800px){.signup-banner{grid-template-columns:auto 1fr;gap:.8rem}.signup-banner__form,.signup-banner__success{grid-column:1/-1;justify-self:stretch}}@media (width<=520px){.signup-banner{padding:1rem 2.8rem 1rem 1rem}.signup-banner__mark{width:2.65rem;height:2.65rem}.signup-banner__form{grid-template-columns:1fr}.signup-banner__form .btn,.signup-banner__form small,.signup-banner__error{grid-column:1}}@media (prefers-reduced-motion:reduce){.signup-banner-enter-active,.signup-banner-leave-active{transition:none}.glossary-entry--target .glossary-entry__term{animation:none}}.planner-subnet-card{border:1px solid var(--border-color);border-radius:var(--radius-md);background:#191c26d6;flex-direction:column;gap:1rem;padding:1.25rem;transition:border-color .2s,box-shadow .2s;display:flex;position:relative}.planner-subnet-card .form-group>label,.diagram-editor .form-group>label{color:var(--ace-text);font-family:var(--ace-font-body);font-size:.8rem;font-weight:700}.planner-subnet-card input:not([type=checkbox]):not([type=radio]),.planner-subnet-card select{min-height:2.6rem;border-color:var(--ace-border)!important;border-radius:var(--ace-radius-md)!important;color:var(--ace-text)!important;background:#11131abd!important}.planner-subnet-card input:not([type=checkbox]):not([type=radio]):focus,.planner-subnet-card select:focus{box-shadow:0 0 0 3px var(--ace-focus)!important;border-color:#adfcf99e!important}.planner-card-header input[type=text]{min-height:auto;box-shadow:none!important;font-family:var(--ace-font-heading)!important;background:0 0!important;border-color:#0000!important}.planner-subnet-card:hover{border-color:#ffffff26;box-shadow:0 8px 24px #0000004d}.planner-card-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;margin-bottom:.25rem;padding-bottom:.5rem;display:flex}.planner-card-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=768px){.planner-card-grid,.editor-grid.network-address-grid{grid-template-columns:1fr}}.planner-btn-delete{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;transition:color .15s,background .15s;display:inline-flex}.planner-btn-delete:hover{color:var(--error);background:#dc262626}.planner-alert{border-radius:var(--radius-sm);align-items:start;gap:.5rem;padding:.65rem .85rem;font-size:.8rem;line-height:1.4;display:flex}.planner-alert.warning{color:#fbbf24;background:#d9770626;border:1px solid #d977064d}.planner-alert.error{color:#f87171;background:#dc262626;border:1px solid #dc26264d}.planner-alert.success{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.sheet-item{border-radius:var(--radius-sm);background:#ffffff05;border:1px solid #ffffff0d;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.sheet-item.summary{border-left:3px solid var(--primary)}.sheet-item.subnet{border-left:3px solid var(--secondary)}.planner-grid-container{grid-template-columns:1.2fr .8fr;align-items:start;gap:1.5rem;display:grid}@media (width<=992px){.planner-grid-container{grid-template-columns:1fr;gap:2rem}}.ace-svg-device-card rect[data-v-3c9da39d]{fill:#1a2238;stroke:var(--border-color);stroke-width:2px}.ace-svg-device-card__label[data-v-3c9da39d]{font-size:12px}.ace-svg-device-card__address[data-v-3c9da39d]{font-size:10px}.ace-svg-device-card__prefix[data-v-3c9da39d]{fill:var(--text-muted);font-family:var(--font-mono);text-anchor:middle;font-size:9px}.subnet-accent{fill:var(--subnet-accent-color);stroke:none}.export-bg{fill:#121212}.export-title{fill:#f8fafc;font:700 24px Montserrat,Arial,sans-serif}.export-notes{fill:#94a3b8;font:13px Inter,Arial,sans-serif}.layer-label{fill:#475569;letter-spacing:1.5px;font:700 8px Inter,Arial,sans-serif}.connection{fill:none;stroke:#64748b;stroke-width:2.5px}.connection-dot{fill:#94a3b8}.infra-box{fill:#1e293b;stroke:#94d8ff;stroke-width:2px}.infra-type{fill:#94d8ff;letter-spacing:1px;font:700 10px Inter,Arial,sans-serif}.infra-name{fill:#f8fafc;font:600 13px Inter,Arial,sans-serif}.infra-ip{fill:#94a3b8;font:11px monospace}.subnet-box{fill:#171722;stroke-width:2px}.subnet-name{fill:#f8fafc;font:700 15px Inter,Arial,sans-serif}.subnet-address{fill:#cbd5e1;font:12px monospace}.subnet-meta{fill:#94a3b8;font:11px Inter,Arial,sans-serif}.device-icon{fill:#334155}.device-name{fill:#f8fafc;font:600 12px Inter,Arial,sans-serif}.device-kind{fill:#94a3b8;text-transform:uppercase;font:9px Inter,Arial,sans-serif}.footer-label{fill:#64748b;font:10px Inter,Arial,sans-serif}.node-category{fill:#64748b;letter-spacing:1.2px;font:700 9px Inter,Arial,sans-serif}.host-box{fill:#252536;stroke:#64748b;stroke-width:1.5px}.host-address-label{fill:#94a3b8;font:700 8px Inter,Arial,sans-serif}.host-address-summary{fill:#cbd5e1;font:10px monospace}.host-count-badge{fill:#0f3d39;stroke:#2dd4bf}.host-count-text{fill:#99f6e4;font:700 7px Inter,Arial,sans-serif}.address-link{fill:none;stroke-width:2.5px}.address-endpoint{stroke:#121212;stroke-width:1px}.address-link-label{fill:#cbd5e1;paint-order:stroke;stroke:#121212;stroke-width:4px;stroke-linejoin:round;font:9px monospace}.test-path{fill:none;stroke-width:4px;opacity:.9}.test-path.success{stroke:#14ae5c}.test-path.failure{stroke:#df1219;stroke-dasharray:9 6}.test-path-label-bg.success{fill:#0d3823;stroke:#14ae5c}.test-path-label-bg.failure{fill:#3d1719;stroke:#df1219}.test-path-label{font:700 9px Inter,Arial,sans-serif}.test-path-label.success{fill:#86efac}.test-path-label.failure{fill:#fca5a5}.connection{stroke-width:2px;stroke-linejoin:round}.address-link{stroke-width:2px}.test-path{stroke-width:2.75px;opacity:.78}.test-path.failure{stroke-dasharray:8 6}.path-legend-bg{fill:#181820;stroke:#334155}.path-legend-bg.success{stroke:#14ae5c}.path-legend-bg.failure{stroke:#df1219}.path-legend-dot.success{fill:#14ae5c}.path-legend-dot.failure{fill:#df1219}.path-legend-text{fill:#cbd5e1;font:600 9px Inter,Arial,sans-serif}.sc-service-link{fill:none;stroke:#2dd4bf;stroke-width:2.5px;stroke-dasharray:8 6;opacity:.9}.sc-service-endpoint{fill:#2dd4bf;stroke:#121212;stroke-width:1px}.path-legend-title{fill:#f8fafc;font:700 10px Inter,Arial,sans-serif}.path-result-badge.success{fill:#0d3823;stroke:#14ae5c}.path-result-badge.failure{fill:#3d1719;stroke:#df1219}.path-result-text{font:700 8px Inter,Arial,sans-serif}.path-result-text.success{fill:#86efac}.path-result-text.failure{fill:#fca5a5}.path-route-label{fill:#64748b;letter-spacing:.6px;font:700 8px Inter,Arial,sans-serif}.path-route-text{fill:#cbd5e1;font:10px monospace}.page-tab{display:none}.page-tab.active{display:block}
