/* Scoped infrastructure diagrams and calculation models. */
.it-widget{--it-blue:#1b17ff;--it-ink:#262626;--it-muted:#666;box-sizing:border-box;width:100%;min-width:0;margin:36px 0;padding:clamp(20px,2vw,30px);border:1px solid #ddd;background:#fff;color:var(--it-ink);overflow-wrap:anywhere}
.it-widget *,.it-widget *:before,.it-widget *:after{box-sizing:border-box}
.it-widget [hidden]{display:none!important}
.it-widget .it-kicker{display:block;font-size:10px;line-height:1.6;letter-spacing:.07em;text-transform:uppercase;color:#666;margin-bottom:14px}
.it-widget .it-heading h3{font-size:clamp(25px,2.5vw,34px);font-weight:450;letter-spacing:-.025em;line-height:1.2;margin:0 0 15px;scroll-margin-top:150px}
.it-widget .it-heading>p{font-size:15px;line-height:1.8;color:#666;margin:0 0 28px;max-width:820px}
.it-widget .it-controls{display:grid;gap:20px;margin-bottom:25px}
.it-widget .it-choices{display:flex;flex-wrap:wrap;gap:8px}
.it-widget .it-control-label{display:block;margin-bottom:9px;font-size:10px;line-height:1.6;letter-spacing:.04em;text-transform:uppercase;color:#666}
.it-widget button{font:inherit;font-size:13px;line-height:1.5;text-align:left;cursor:pointer;color:#262626;background:#fff;border:1px solid #ccc;border-radius:0;min-height:44px;padding:11px 15px;transition:background-color .18s,border-color .18s;max-width:100%}
.it-widget button[aria-pressed=true]{color:#1b17ff;border-color:#1b17ff;background:#f5f5ff}
.it-widget button:hover{border-color:#1b17ff}
.it-widget button:focus-visible,.it-widget input:focus-visible,.it-widget summary:focus-visible{outline:2px solid #1b17ff;outline-offset:4px}
.it-widget .it-static-assumptions{padding:18px;background:#f6f6f6;font-size:13px;line-height:1.8;color:#555}
.it-widget .it-note{font-size:12px;line-height:1.8;color:#666;margin:24px 0 0}
.it-widget dt{font-size:10px;line-height:1.6;color:#666;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.it-widget dd{margin:0;font-size:14px;line-height:1.8;color:#262626}
.it-widget .it-topology-map{display:grid;grid-template-columns:minmax(0,1.45fr) 80px minmax(0,1fr);align-items:stretch;margin:30px 0}
.it-widget .it-zone{padding:20px;background:#f6f6f6;border:1px solid #ddd;min-width:0}
.it-widget .it-zone-title{display:block;font-size:10px;line-height:1.6;letter-spacing:.06em;text-transform:uppercase;color:#666;margin-bottom:18px}
.it-widget .it-zone-grid{display:grid;gap:12px}
.it-widget .it-node{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid #ddd;padding:15px;min-width:0;transition:border-color .2s,opacity .2s}
.it-widget .it-node svg{width:30px;height:30px;flex-shrink:0;color:#1b17ff}
.it-widget .it-node>div{min-width:0}
.it-widget .it-node strong{display:block;font-size:13px;font-weight:500;line-height:1.5}
.it-widget .it-node span{display:block;font-size:10px;color:#777;line-height:1.6;margin-top:3px}
.it-widget .it-node b{display:block;font-size:10px;color:#1b17ff;line-height:1.5;margin-top:10px;font-weight:400}
.it-widget .it-node[data-it-node-state=unused]{opacity:.55;background:#fafafa}
.it-widget .it-node[data-it-node-state=unused] svg,.it-widget .it-node[data-it-node-state=unused] b{color:#777}
.it-widget .it-node[data-it-node-state=offline],.it-widget .it-node[data-it-node-state=blocked]{border-color:#555;border-style:dashed;background:#eee}
.it-widget .it-node[data-it-node-state=offline] svg,.it-widget .it-node[data-it-node-state=blocked] svg,.it-widget .it-node[data-it-node-state=offline] b,.it-widget .it-node[data-it-node-state=blocked] b{color:#262626}
.it-widget .it-wan{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-width:0;text-align:center;color:#777}
.it-widget .it-wan span{font-size:10px;letter-spacing:.06em}
.it-widget .it-wan i{display:block;width:100%;border-top:2px dashed #aaa}
.it-widget .it-wan b{font-size:9px;line-height:1.6;font-weight:400;padding-inline:4px}
.it-widget .it-wan[data-it-wan-state="1"]{color:#1b17ff}
.it-widget .it-wan[data-it-wan-state="1"] i{border-color:#1b17ff;border-style:solid}
.it-widget .it-wan[data-it-wan-state="2"] i{border-color:#262626;border-style:dashed}
.it-widget .it-arch-note{font-size:13px;line-height:1.8;color:#555;padding:19px;background:#f6f6f6}
.it-widget .it-topology-result{padding:24px 0 0}
.it-widget .it-topology-result h4{font-size:23px;font-weight:500;letter-spacing:-.02em;line-height:1.4;margin:0 0 23px}
.it-widget .it-topology-result dl{display:grid;gap:20px;margin:0}
.it-widget .it-topology-result dl>div{border-top:1px solid #ddd;padding-top:15px}
.it-widget .it-boundary{padding:18px 21px;background:#f7f7f7;border-left:2px solid #1b17ff;font-size:14px;line-height:1.8;margin-top:24px}
.it-widget .it-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}
.it-widget .it-field{min-width:0}
.it-widget .it-field label{display:block;font-size:12px;line-height:1.6;margin-bottom:8px;color:#444}
.it-widget .it-field input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #bbb;background:#fff;font:inherit;font-size:21px;color:#262626;border-radius:0}
.it-widget .it-field input[aria-invalid=true]{border:2px solid #8a3636}
.it-widget .it-field>span{display:block;font-size:10px;color:#777;line-height:1.6;margin-top:7px}
.it-widget [data-it-reset]{justify-self:start;font-size:12px}
.it-widget .it-error{border-left:2px solid #8a3636;background:#faf6f6;padding:15px 18px;color:#6e2424;font-size:13px;line-height:1.7}
.it-widget .it-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin:30px 0}
.it-widget .it-results>div{padding-top:17px;border-top:1px solid #ccc;min-width:0}
.it-widget .it-results dd{font-size:clamp(23px,2.4vw,33px);line-height:1.35;letter-spacing:-.025em;color:#1b17ff;overflow-wrap:anywhere}
.it-widget .it-capacity-meter{margin:30px 0}
.it-widget .it-capacity-meter>span{display:block;font-size:11px;color:#555;line-height:1.6;margin-bottom:12px}
.it-widget .it-capacity-meter>div{height:14px;background:#eee;overflow:hidden}
.it-widget .it-capacity-meter i{display:block;height:100%;background:#1b17ff;max-width:100%}
.it-widget .it-capacity-meter small{display:flex;justify-content:space-between;font-size:10px;color:#777;margin-top:8px}
.it-widget .it-capacity-meter b{font-weight:400}
.it-widget[data-it-capacity-state=above] .it-capacity-meter i{background:#262626}
.it-widget[data-it-capacity-state=above] .it-results dd{color:#262626}
.it-widget .it-result-message{font-size:14px;line-height:1.85;padding:21px;background:#f6f6f6;border-left:2px solid #1b17ff;color:#555;margin:23px 0}
.it-widget .it-difference{font-size:13px;color:#555;line-height:1.8}
.it-widget .it-difference strong{font-weight:500;color:#262626}
.it-widget .it-formula{border-block:1px solid #ddd;padding:16px 0;margin-top:22px}
.it-widget .it-formula summary{font-size:13px;line-height:1.7;cursor:pointer;color:#444}
.it-widget .it-formula p{font-size:13px;line-height:1.85;color:#555;margin:14px 0 0}
.infra-cover{background:#f5f5f5!important}
.infra-cover svg{width:100%;max-width:600px;height:auto}
@media(max-width:800px){.it-widget .it-topology-map{grid-template-columns:1fr}.it-widget .it-zone-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.it-widget .it-wan{padding:16px;gap:8px}.it-widget .it-wan i{width:2px;height:24px;border-top:0;border-left:2px dashed #aaa}.it-widget .it-wan[data-it-wan-state="1"] i{border-left-color:#1b17ff;border-left-style:solid}.it-widget .it-wan[data-it-wan-state="2"] i{border-left-color:#262626}}
@media(max-width:650px){
.it-widget{padding:20px;margin-block:28px}
.it-widget .it-heading h3{font-size:25px;scroll-margin-top:100px}
.it-widget .it-heading>p{font-size:14px}
.it-widget button{font-size:12px;padding:10px 12px}
.it-widget [data-it-event]{width:100%}
.it-widget .it-topology-map{margin-inline:-20px}
.it-widget .it-zone{border-inline:0;padding:17px 19px}
.it-widget .it-zone-grid{grid-template-columns:1fr}
.it-widget .it-node{padding:13px;gap:12px}
.it-widget .it-node strong{font-size:14px}
.it-widget .it-node svg{width:30px}
.it-widget .it-topology-result h4{font-size:21px}
.it-widget .it-arch-note{padding:16px}
.it-widget .it-fields{grid-template-columns:1fr;gap:20px}
.it-widget .it-results{grid-template-columns:1fr;gap:21px}
.it-widget .it-results dd{font-size:29px}
.it-widget .it-result-message,.it-widget .it-boundary{padding:17px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.it-widget button,.it-widget .it-node{transition:none}}
@media print{.it-widget [data-it-controls]{display:none!important}.it-widget .it-topology-map{break-inside:avoid}}
