/* Costruisci la rete — native, responsive workbench and vector devices. */
.network-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:18px 0 26px}.network-heading h1{margin:0!important}.network-heading .eyebrow{margin-bottom:8px}.network-heading-badge{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:9px 14px;white-space:nowrap;font-size:.8rem;font-weight:750}
.network-scoreboard{display:flex;align-items:center;flex-wrap:wrap;gap:26px;background:var(--white);border:1px solid var(--line);padding:16px 20px;border-radius:18px;margin-bottom:24px}.network-scoreboard>div{display:flex;align-items:center;gap:12px}.network-scoreboard strong{font-size:1.6rem;line-height:1.15;display:block;letter-spacing:-.025em}.network-scoreboard small{display:block;color:var(--muted);font-weight:500;font-size:.68rem;letter-spacing:0;margin-top:4px}.network-scoreboard em{font-style:normal;font-size:.85rem;font-weight:500;color:var(--muted)}.network-scoreboard progress{width:75px;height:7px;accent-color:var(--accent)}.network-score-icon{display:grid;place-items:center;width:43px;height:43px;font-size:1.9rem;border-radius:12px;color:var(--accent);background:var(--accent-soft)}.network-view-actions{margin-left:auto;gap:8px!important}.network-view-actions button{font-size:.72rem;min-height:40px}.network-preview{font-size:.73rem;color:var(--accent);font-weight:700}
.network-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:24px;align-items:start}.network-map{position:sticky;top:18px;background:var(--white);border:1px solid var(--line);border-radius:17px;overflow:hidden}.network-map summary{display:flex;align-items:center;justify-content:space-between;padding:18px;font-size:.92rem;font-weight:750;cursor:pointer}.network-map summary span{font-size:.7rem;color:var(--accent);background:var(--accent-soft);padding:3px 6px;border-radius:5px}.network-map nav{max-height:min(78vh,850px);overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin}.network-map nav h3{margin:18px 10px 8px;text-transform:uppercase;letter-spacing:.12em;font-size:.58rem;color:var(--muted)}.network-level{display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:10px;width:100%;background:transparent;color:var(--ink);text-align:left;cursor:pointer;padding:10px 8px;min-height:66px;font-size:.73rem}.network-level>span:first-child{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid var(--line);background:var(--white);border-radius:8px;font:650 .65rem ui-monospace,monospace}.network-level>span:nth-child(2){flex:1}.network-level small{display:block;color:var(--muted);font-size:.62rem;margin-top:4px}.network-level em{font-size:.78rem;color:#bb851a;font-style:normal;letter-spacing:-.15em;white-space:nowrap}.network-level:hover{background:var(--soft)}.network-level.is-current{background:var(--accent-soft);border-color:var(--accent)}.network-level.is-current>span:first-child{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.network-level.is-complete>span:first-child{border-color:var(--success-text)}
.network-workbench{min-width:0}.network-mission-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.network-mission-heading .eyebrow{font-size:.62rem;margin:0 0 6px}.network-mission-heading h2{margin:0;font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.2;letter-spacing:-.025em}.network-points{font-size:1.9rem;line-height:1.1;color:var(--accent);text-align:right}.network-points small{display:block;font-size:.62rem;font-weight:550;white-space:nowrap;color:var(--muted);margin-top:3px}.network-description{font-size:.85rem;color:var(--muted);margin:10px 0 14px}.network-briefing{padding:12px 16px;border:1px solid var(--line);border-radius:12px;background:var(--accent-soft);margin-bottom:16px;font-size:.78rem}.network-briefing summary{font-weight:750;cursor:pointer;min-height:24px}.network-briefing ul{padding-left:19px;margin:9px 0 1px;display:grid;gap:6px}.network-studio{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:18px;align-items:start}.network-workspace{min-width:0}.network-toolbox{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid var(--line);border-radius:15px;background:var(--white);margin-bottom:12px}.network-toolbox strong{font-size:.84rem;display:block}.network-toolbox small{display:block;font-size:.65rem;color:var(--muted);margin-top:3px}.network-toolbox-items{display:flex;gap:7px}.network-token{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:72px;height:77px;padding:7px;border:1px solid var(--line);border-radius:11px;background:var(--soft);color:var(--ink);font:650 .65rem ui-monospace,monospace;cursor:grab;touch-action:none;user-select:none}.network-token svg{width:50px;height:46px}.network-token:hover,.network-token.is-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.network-token:active{cursor:grabbing}
.network-board{border:1px solid #37586c;border-radius:20px;overflow:hidden;box-shadow:0 12px 32px #071d3320;background:#0d1b29}.network-canvas{display:block;touch-action:none;width:100%;aspect-ratio:900/540;max-height:650px}.network-map-caption{font:650 10px ui-monospace,monospace;fill:#90aebf;letter-spacing:.11em}.network-wire{fill:none;stroke:#56bcdf;stroke-width:3;stroke-linecap:round;filter:drop-shadow(0 0 3px #35bdf433)}.network-wire.is-trace{stroke:#76f4c5;stroke-width:4;stroke-dasharray:10 5;animation:network-flow 1.2s linear infinite}.network-packet{fill:#e7fff6;stroke:#4bffc4;stroke-width:2;filter:drop-shadow(0 0 6px #60ffc9);pointer-events:none}.network-slot [data-slot]{cursor:pointer;outline:none}.network-node-panel{fill:#142b40;stroke:#3a5b75;stroke-width:1.5;filter:drop-shadow(0 5px 6px #0003)}.network-empty{fill:#142a3c88;stroke:#65849b;stroke-width:1.6;stroke-dasharray:6 6}.network-slot.is-selected .network-node-panel,.network-slot.is-selected .network-empty,.network-slot [data-slot]:hover .network-node-panel,.network-slot [data-slot]:focus-visible .network-node-panel,.network-slot [data-slot]:focus-visible .network-empty,.network-slot.is-drop-over .network-empty,.network-slot [data-slot].is-drop-over .network-empty{stroke:#95dcff;stroke-width:2.7;filter:drop-shadow(0 0 7px #5dcfff55)}.network-node-label{fill:#c5dce8;font:650 14px system-ui,sans-serif;pointer-events:none}.network-node-meta{fill:#93b3c8;font:600 11px ui-monospace,monospace;pointer-events:none}.network-plus{stroke:#88adc4;stroke-width:2.3;stroke-linecap:round}.network-symbol{stroke-linejoin:round;stroke-linecap:round;pointer-events:none;--device:#63c2ef;--device-dark:#183d58;--device-light:#b4e4ff}.network-symbol--server{--device:#a49bff;--device-dark:#2d2d55;--device-light:#d0caff}.network-symbol--switch{--device:#69d9be;--device-dark:#173d3c;--device-light:#b5f5de}.network-symbol--router{--device:#efb85e;--device-dark:#4b3822;--device-light:#ffe0ab}.net-case{fill:var(--device-dark);stroke:var(--device);stroke-width:2}.net-screen{fill:#0b1e2e;stroke:var(--device);stroke-width:1}.net-code{fill:none;stroke:var(--device-light);stroke-width:2}.net-drive{fill:var(--device-dark);stroke:var(--device);stroke-width:1.5}.net-led{fill:#83f3b7;stroke:none}.net-slot-line{fill:none;stroke:var(--device-light);stroke-width:1.5}.net-top{fill:var(--device);opacity:.28;stroke:var(--device);stroke-width:1.3}.net-socket{fill:#091e27;stroke:var(--device);stroke-width:1.2}.net-route{fill:none;stroke:var(--device-light);stroke-width:2.6}.network-port{cursor:crosshair;touch-action:none;outline:none}.network-port-hit{fill:#102435;stroke:#506f83;stroke-width:1}.network-port-dot{fill:#1d4259;stroke:#b1d9ee;stroke-width:1.5}.network-port.is-used .network-port-dot{fill:#58c1df;stroke:#b8efff}.network-port.is-active .network-port-hit,.network-port:focus-visible .network-port-hit,.network-port:hover .network-port-hit,.network-port.is-drop-over .network-port-hit{stroke:#fff2b3;stroke-width:2;fill:#7c632c;filter:drop-shadow(0 0 5px #ffd36566)}.network-port text{fill:#a9c7d9;font:650 10px ui-monospace,monospace;pointer-events:none}
.network-board-help{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.7rem;padding:10px 2px}.network-board-help button{padding:6px 10px;font-size:.68rem}.network-link-list{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}.network-link-list>span{display:flex;align-items:center;gap:4px;padding:3px 4px 3px 9px;border:1px solid var(--line);border-radius:7px;background:var(--white);font:500 .61rem ui-monospace,monospace}.network-link-list button{display:grid;place-items:center;min-width:32px;min-height:32px;border:0;background:var(--soft);border-radius:5px;color:var(--muted);font-size:1.1rem;cursor:pointer}.network-link-list p{font-size:.7rem;color:var(--muted);margin:4px 0}.network-cabling{font-size:.75rem;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--white);margin-bottom:12px}.network-cabling summary{font-weight:650;cursor:pointer;min-height:26px}.network-cabling>div{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:8px 0}.network-cabling label{flex:1 1 150px}.network-cabling select{width:100%}
.network-inspector{position:sticky;top:18px;border:1px solid var(--line);border-radius:16px;background:var(--white);padding:17px}.network-panel-heading .eyebrow{font-size:.57rem;letter-spacing:.12em;margin:0 0 5px}.network-panel-heading h3{font-size:1rem;margin:0 0 15px;line-height:1.3}.network-inspector>p{font-size:.8rem;color:var(--muted)}.network-interface{border:1px solid var(--line);border-radius:10px;padding:12px;margin:0 0 12px;min-width:0}.network-interface legend{font:700 .68rem ui-monospace,monospace;color:var(--accent);padding:0 5px}.network-interface label{display:block;font-size:.7rem;font-weight:650;margin:0 0 10px}.network-interface label:last-child{margin-bottom:0}.network-interface small{font-size:.62rem;font-weight:450;color:var(--muted)}.network-interface input,.network-interface select,.network-ping select,.network-cabling select{display:block;min-height:42px;margin-top:5px;padding:9px 10px;border:1px solid var(--field-border);border-radius:7px;background:var(--field-bg);color:var(--ink);font:500 .77rem ui-monospace,monospace;max-width:100%;width:100%}.network-field-note{font-size:.66rem;color:var(--muted);margin-bottom:0}.network-remove{font-size:.68rem;padding:9px 10px;width:100%}.network-ping{display:flex;align-items:end;flex-wrap:wrap;gap:9px;border:1px solid var(--line);background:var(--white);border-radius:13px;padding:14px}.network-ping>div{flex:1 1 130px}.network-ping strong{font-size:.8rem;display:block}.network-ping small{font-size:.63rem;color:var(--muted)}.network-ping label{font-size:.65rem;min-width:105px;flex:1 1 120px}.network-ping select{font-family:inherit;font-size:.7rem}.network-ping button{font-size:.74rem;min-height:42px}.network-ping>p{flex-basis:100%;font-size:.7rem;margin:2px 0 0;color:var(--muted)}.network-ping .is-ok{color:var(--success-text)}.network-ping .is-warning{color:var(--warning-text)}
.network-status{font-size:.78rem;color:var(--muted);padding:12px 3px;min-height:44px;margin:0}.network-error,.network-reset,.network-hint{padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--accent-soft);font-size:.8rem;margin:10px 0 14px}.network-error{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}.network-error button{margin:8px 0 0}.network-checks{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:13px 16px;margin:0 0 14px}.network-checks summary{font-size:.8rem;font-weight:700;cursor:pointer;min-height:25px}.network-checks ul{padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px 20px;margin:12px 0 0}.network-checks li{font-size:.72rem;line-height:1.5}.network-checks .is-ok{color:var(--success-text)}.network-checks .is-warning{color:var(--warning-text)}.network-checks p{color:var(--muted);font-size:.72rem}.network-checks.is-stale{opacity:.65}.network-actions{display:flex;gap:8px;flex-wrap:wrap}.network-actions button{font-size:.78rem;min-height:44px}.network-actions .primary-button{flex:1 1 220px}.network-rules{font-size:.66rem;color:var(--muted);line-height:1.65;margin:11px 0 20px}.network-victory{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:20px;border:1px solid var(--success-text);background:var(--success-bg);border-radius:14px;margin:12px 0 16px;animation:network-win .3s ease-out}.network-victory>span{font-size:2rem;color:#c89b2a;letter-spacing:.08em}.network-victory h3{margin:0 0 5px;font-size:1.3rem}.network-victory p{font-size:.75rem;margin:0;color:var(--muted)}.network-victory button{margin-left:auto;font-size:.8rem}.network-ghost{position:fixed;z-index:10000;pointer-events:none;transform:translate(-50%,-50%) rotate(-5deg);padding:16px;border:2px solid #95dcff;border-radius:12px;background:#173a53;color:#d1efff;font:750 .9rem ui-monospace,monospace;box-shadow:0 10px 30px #05152955,0 0 20px #7fdcff33}.network-help{margin-top:26px;padding:16px 20px;border:1px solid var(--line);border-radius:14px;font-size:.8rem;color:var(--muted)}.network-help summary{font-weight:750;color:var(--ink);cursor:pointer}.network-help p{max-width:110ch}.network-help kbd{font:650 .7rem ui-monospace,monospace;border:1px solid var(--line);border-radius:4px;padding:1px 5px;background:var(--white)}
#network-root button:focus-visible,#network-root input:focus-visible,#network-root select:focus-visible,#network-root summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}#network-root button:disabled{opacity:.55;cursor:default}#network-root:fullscreen{background:var(--paper);padding:18px 24px;overflow-y:auto;width:100%;height:100%}#network-root:fullscreen .network-map{display:none}#network-root:fullscreen .network-layout{grid-template-columns:1fr;max-width:1550px;margin:auto}#network-root:fullscreen .network-scoreboard{max-width:1550px;margin:0 auto 18px}#network-root:fullscreen .network-canvas{max-height:54vh}
@keyframes network-flow{to{stroke-dashoffset:-30}}@keyframes network-win{from{opacity:.5;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:1350px){.network-layout{grid-template-columns:200px minmax(0,1fr);gap:18px}.network-studio{grid-template-columns:minmax(0,1fr) 230px;gap:12px}.network-toolbox{align-items:start;flex-direction:column;gap:8px}.network-toolbox-items{width:100%;justify-content:space-between}.network-token{flex:1;width:auto;min-width:50px;height:70px}.network-token svg{width:44px;height:40px}.network-scoreboard{gap:20px}.network-inspector{padding:12px}}
@media(max-width:1050px){.network-studio{grid-template-columns:1fr}.network-inspector{position:static;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.network-inspector .network-panel-heading,.network-inspector>.network-remove,.network-inspector>p{grid-column:1/-1}.network-interface{margin:0}.network-panel-heading h3{margin-bottom:0}.network-inspector>p{margin:0}.network-layout{grid-template-columns:190px minmax(0,1fr)}.network-toolbox{flex-direction:row;align-items:center}.network-toolbox-items{width:auto}.network-token{width:68px}.network-checks ul{grid-template-columns:1fr}}
@media(max-width:760px){.network-heading{display:block;margin:14px 0 20px}.network-heading-badge{display:inline-block;margin-top:10px;font-size:.7rem}.network-heading .game-intro{font-size:.85rem}.network-scoreboard{padding:14px;gap:16px;border-radius:14px}.network-scoreboard strong{font-size:1.3rem}.network-scoreboard small{font-size:.6rem}.network-scoreboard em{font-size:.7rem}.network-scoreboard progress{width:45px}.network-score-icon{display:none}.network-view-actions{margin-left:0;flex-basis:100%;justify-content:space-between}.network-view-actions button{flex:1;font-size:.68rem}.network-layout{display:flex;flex-direction:column;gap:20px}.network-workbench{width:100%}.network-map{order:2;position:static;width:100%}.network-map nav{max-height:420px}.network-level{font-size:.8rem}.network-map nav h3{font-size:.65rem}.network-mission-heading .eyebrow{font-size:.54rem}.network-mission-heading h2{font-size:1.5rem}.network-points{font-size:1.5rem}.network-briefing{font-size:.74rem;padding:11px 13px}.network-toolbox{display:block;padding:12px}.network-toolbox>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}.network-toolbox strong{font-size:.73rem}.network-toolbox small{font-size:.56rem}.network-toolbox-items{width:100%}.network-token{height:70px;font-size:.6rem}.network-board{border-radius:14px}.network-board-help{font-size:.65rem}.network-inspector{grid-template-columns:1fr}.network-interface input,.network-interface select{font-size:1rem;min-height:44px}.network-interface label{font-size:.76rem}.network-ping{padding:12px;gap:8px}.network-ping>div{flex-basis:100%}.network-ping label{flex:1;min-width:0}.network-ping select,.network-cabling select{font-size:.75rem;min-height:44px}.network-ping>span{align-self:center}.network-cabling button{min-height:44px}.network-link-list button{min-width:44px;min-height:44px}.network-actions button{flex:1 1 auto}.network-actions .primary-button{flex-basis:100%}.network-victory{padding:16px;gap:12px}.network-victory button{width:100%;margin:0}.network-status{font-size:.74rem}.network-rules{font-size:.63rem}.network-help{font-size:.74rem}#network-root:fullscreen{padding:12px}#network-root:fullscreen .network-canvas{max-height:none}}
@media(prefers-reduced-motion:reduce){.network-wire.is-trace,.network-victory{animation:none}.network-ghost{transform:translate(-50%,-50%)}}

.network-ip-label{fill:#a2d1dd;font:550 10px ui-monospace,monospace;pointer-events:none}

.network-map summary h2{font:inherit;margin:0}
