.network-banner{padding-bottom:70px}.network-section{padding-top:65px}.network-lab{max-width:1600px;min-height:760px;margin:auto;display:grid;grid-template-columns:240px minmax(0,1fr);overflow:hidden;border:1px solid #d9e2ed;border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(7,26,51,.14)}.network-palette{padding:1.25rem;background:#071a33;color:#fff}.network-palette h2{font-family:Inter,sans-serif;font-size:1.15rem}.network-palette .section-kicker{color:#5ed8e4}.network-palette>button{width:100%;display:flex;align-items:center;gap:.85rem;margin:.55rem 0;padding:.8rem;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.055);color:#fff;text-align:left}.network-palette>button:hover,.network-palette>button.active{background:#0f67d8;transform:translateX(3px)}.network-palette>button>i{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.1);font-size:1.2rem}.network-palette b,.network-palette small{display:block}.network-palette small{color:#9fb3ca;font-size:.7rem}.network-palette hr{border-color:rgba(255,255,255,.12)}.network-palette .danger-tool:hover{background:#b83c4c}.network-main{min-width:0;display:grid;grid-template-rows:auto minmax(510px,1fr) 175px}.network-toolbar{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;border-bottom:1px solid #dce4ed;background:#f8fafc}.network-toolbar strong,.network-toolbar small{display:block}.network-toolbar small,#save-state{color:#718198;font-size:.74rem}.network-actions{display:flex;align-items:center;gap:.8rem}.network-actions button{border:0;border-radius:12px;padding:.7rem 1rem;background:#0f67d8;color:#fff;font-weight:800}.network-canvas{position:relative;overflow:hidden;min-height:510px;background-color:#f7fafc;background-image:radial-gradient(#bac9d9 1px,transparent 1px);background-size:24px 24px;touch-action:none}.network-canvas.connecting{cursor:crosshair}.network-canvas svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.network-link{stroke:#4c6681;stroke-width:4}.network-link-label{fill:#617891;font:700 11px Inter}.network-device{position:absolute;width:112px;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #d5e0eb;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(7,26,51,.13);cursor:grab;user-select:none;z-index:2}.network-device:active{cursor:grabbing}.network-device:hover,.network-device.selected{border-color:#0f67d8;box-shadow:0 13px 34px rgba(15,103,216,.24)}.network-device i{font-size:2rem;color:#0f67d8}.network-device.router i{color:#7452c8}.network-device.switch i{color:#168965}.network-device b{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.network-device small{color:#7b8b9e;font-size:.62rem}.device-delete{position:absolute;right:-8px;top:-8px;width:24px;height:24px;border:0;border-radius:50%;background:#bd3d50;color:#fff;display:none}.network-device:hover .device-delete{display:block}#network-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8a9caf;pointer-events:none}#network-empty i{font-size:3rem;margin-bottom:.5rem}#network-empty b,#network-empty span{display:block}.network-console{background:#07131f;color:#c4f1d1;min-width:0}.network-console>div{display:flex;justify-content:space-between;padding:.55rem .85rem;background:#0d2237;color:#e7eef7}.network-console button{border:0;background:transparent;color:#a9b9ca}.network-console pre{height:125px;overflow:auto;margin:0;padding:.75rem 1rem;white-space:pre-wrap;font:500 .8rem/1.5 Consolas,monospace}.network-dialog{width:min(680px,calc(100% - 2rem));max-height:88vh;padding:1.5rem;border:0;border-radius:24px;box-shadow:0 30px 90px #06132166}.network-dialog::backdrop{background:#061321aa;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:1rem;top:.8rem;border:0;background:transparent;font-size:1.7rem}.network-dialog h2{font-size:1.7rem}.network-dialog form:not(:first-child),#device-form{display:grid;gap:.85rem}.network-dialog label{font-weight:800;font-size:.8rem}.network-dialog input,.network-dialog select{width:100%;margin-top:.35rem;padding:.7rem;border:1px solid #d6e0ea;border-radius:11px}.interface-card,.route-row{display:grid;grid-template-columns:1fr 1.25fr .7fr auto;align-items:end;gap:.6rem;padding:.75rem;border:1px solid #e0e7ef;border-radius:14px;background:#f8fafc}.route-row{grid-template-columns:1fr .65fr 1fr auto}.interface-card button,.route-row button{height:40px;border:0;border-radius:10px;background:#f5dfe3;color:#a92f43}.dialog-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1rem}@media(max-width:900px){.network-lab{grid-template-columns:1fr}.network-palette{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.network-palette>div,.network-palette hr{display:none}.network-palette>button{margin:0}.network-main{grid-template-rows:auto minmax(480px,1fr) 160px}}@media(max-width:600px){.network-section .container-fluid{padding:0 .55rem!important}.network-lab{border-radius:18px}.network-palette{grid-template-columns:repeat(2,1fr)}.network-palette>button{padding:.55rem}.network-toolbar{align-items:flex-start;flex-direction:column}.network-actions{width:100%;justify-content:space-between}.interface-card,.route-row{grid-template-columns:1fr}.network-device{width:94px}.network-console pre{height:110px}}
/* Accès direct à la configuration IP de chaque équipement. */
.device-config{position:absolute;left:-9px;top:-9px;width:27px;height:27px;padding:0;border:0;border-radius:50%;background:#0f67d8;color:#fff;display:grid;place-items:center;z-index:3}.device-config i{font-size:.75rem!important;color:#fff!important}
