
.boai-vlan-app{--panel:#111b2e;--line:#273750;--muted:#a9b8cc;--cyan:#67e8f9;max-width:1280px;margin:0 auto;padding:24px 18px 60px;color:#edf4ff}
.boai-vlan-hero{padding:38px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#111d34,#0b1528);margin-bottom:18px}
.boai-vlan-kicker{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-weight:900;font-size:.76rem;color:var(--cyan)}
.boai-vlan-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:7px 0 10px;color:#fff}
.boai-vlan-hero p{max-width:850px;color:var(--muted);font-size:1.05rem}
.boai-vlan-privacy{display:inline-block;margin-top:10px;padding:8px 11px;border-radius:9px;background:#0e2134;border:1px solid #28455f;color:#a9d6e9;font-size:.82rem}
.boai-vlan-project,.boai-vlan-storage,.boai-vlan-results,.boai-vlan-help{border:1px solid var(--line);background:var(--panel);border-radius:17px;padding:18px;margin-bottom:16px}
.boai-project-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.boai-project-fields label{display:flex;flex-direction:column;gap:6px;color:#cbd7e7;font-size:.84rem;font-weight:800}
.boai-project-fields input,.boai-vlan-table input{width:100%;box-sizing:border-box;border:1px solid #344963;background:#081321;color:#fff;border-radius:9px;padding:9px 10px;font:inherit;outline:none}
.boai-project-fields input:focus,.boai-vlan-table input:focus{border-color:#38bdf8}
.boai-template-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid #263951;color:#8498b1;font-size:.8rem}
.boai-template-bar button,.boai-vlan-actions button,.boai-export-actions button,.boai-storage-actions button,.boai-import-label{border:1px solid #3a5575;background:#172941;color:#e6eff9;padding:8px 11px;border-radius:9px;cursor:pointer;font-weight:800}
.boai-vlan-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:18px 0 10px}
.boai-vlan-toolbar>div:first-child{display:flex;flex-direction:column}.boai-vlan-toolbar strong{color:#fff}.boai-vlan-toolbar span{color:#8195ad;font-size:.78rem}
.boai-vlan-actions{display:flex;gap:8px;flex-wrap:wrap}
#boai-add-vlan{background:linear-gradient(135deg,#7c3aed,#0891b2);border:0;color:#fff}
.boai-vlan-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#0c1728}
.boai-vlan-table{width:100%;border-collapse:collapse;min-width:1000px}
.boai-vlan-table thead th{position:static!important;top:auto!important;background:#101d31;color:#9fb0c6;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:11px;border-bottom:1px solid #293d57}
.boai-vlan-table td{padding:9px;border-bottom:1px solid #21334a}
.boai-vlan-table tbody tr:last-child td{border-bottom:0}
.boai-vlan-table input.invalid{border-color:#dc2626;background:rgba(127,29,29,.14)}
.boai-row-remove{width:34px;height:34px;border-radius:8px;border:1px solid #63343b;background:rgba(127,29,29,.13);color:#fca5a5;cursor:pointer;font-weight:900}
.boai-validation-summary{margin:12px 0;padding:14px 16px;border-radius:12px;border:1px solid #2f4764;background:#0d192a;color:#bdd0e4}
.boai-validation-summary.ok{border-color:#166534;background:rgba(22,101,52,.11);color:#bbf7d0}
.boai-validation-summary.bad{border-color:#7f1d1d;background:rgba(127,29,29,.13);color:#fecaca}
.boai-validation-summary ul{margin:8px 0 0 18px!important}
.boai-results-head{display:flex;justify-content:space-between;gap:15px;align-items:end;margin-bottom:13px}
.boai-results-head h2,.boai-vlan-storage h2{margin:0 0 4px!important;color:#fff}.boai-results-head p,.boai-vlan-storage p{margin:0;color:#8fa1b8;font-size:.86rem}
.boai-export-actions,.boai-storage-actions{display:flex;gap:7px;flex-wrap:wrap}
.boai-network-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.boai-network-card{border:1px solid #2b405b;background:#0d1829;border-radius:14px;overflow:hidden}
.boai-network-card.invalid{border-color:#7f1d1d}
.boai-network-card header{position:static!important;display:flex;justify-content:space-between;gap:10px;padding:13px 15px;background:#101d31;border-bottom:1px solid #263951}
.boai-network-card header strong{color:#fff}.boai-network-card header span{font-size:.75rem;color:#67e8f9;font-weight:850}
.boai-network-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.boai-network-grid div{padding:10px 13px;border-bottom:1px solid #22344b}
.boai-network-grid div:nth-child(odd){border-right:1px solid #22344b}
.boai-network-grid small{display:block;color:#70849d;font-size:.68rem;text-transform:uppercase;font-weight:850;margin-bottom:3px}.boai-network-grid strong{color:#dce9f8;font-size:.88rem;word-break:break-word}
.boai-storage-actions{margin-top:13px}
.boai-import-label input{display:none}
#boai-saved-plans{display:grid;gap:7px;margin-top:13px}
.boai-saved-plan{display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid #263951;padding-top:8px}
.boai-saved-plan button{border:0;background:none;color:#93c5fd;cursor:pointer;font-weight:800}.boai-saved-plan .delete{color:#fca5a5;font-size:.75rem}
#boai-saved-empty{margin-top:12px!important;color:#70849d!important}
.boai-vlan-help{color:#aebdd0}.boai-vlan-help strong{color:#fff}.boai-vlan-help p{margin:5px 0 0}
.boai-vlan-print-meta{display:none}
@media(max-width:850px){.boai-project-fields{grid-template-columns:1fr}.boai-network-cards{grid-template-columns:1fr}.boai-results-head{align-items:stretch;flex-direction:column}}
@media(max-width:560px){.boai-vlan-hero{padding:27px 21px}.boai-vlan-toolbar{align-items:stretch;flex-direction:column}.boai-network-grid{grid-template-columns:1fr}.boai-network-grid div:nth-child(odd){border-right:0}.boai-network-grid div{border-bottom:1px solid #22344b}}
@media print{
 @page{
  size:A4 portrait;
  margin:11mm 10mm 12mm;
 }

 html,body{
  background:#fff!important;
  color:#111!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
 }

 /*
  * Imprimer uniquement le planificateur.
  * Les breadcrumbs, ressources associées, footer, launchers et autres
  * composants du site ne doivent jamais entrer dans le PDF.
  */
 body *{
  visibility:hidden!important;
 }

 .boai-vlan-app,
 .boai-vlan-app *{
  visibility:visible!important;
 }

 .boai-vlan-app{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  color:#111!important;
  font-size:9.5pt!important;
 }

 .boai-template-bar,
 .boai-vlan-toolbar,
 .boai-vlan-table-wrap,
 .boai-validation-summary,
 .boai-export-actions,
 .boai-vlan-storage,
 .boai-vlan-help,
 .boai-row-remove,
 .boai-fav-launcher,
 .boai-fav-inline,
 .boai-issue-launcher,
 .boai-smart-search-launcher{
  display:none!important;
 }

 /*
  * En impression on ne montre pas les inputs éditables :
  * ils peuvent imprimer leurs placeholders et être pris pour des valeurs.
  */
 .boai-project-fields{
  display:none!important;
 }

 .boai-vlan-print-meta{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:0!important;
  border:1px solid #b8c0c8!important;
  border-radius:8px!important;
  overflow:hidden!important;
 }

 .boai-vlan-print-meta>div{
  padding:7px 9px!important;
  border-bottom:1px solid #d4d8dc!important;
  min-width:0!important;
 }

 .boai-vlan-print-meta>div:nth-child(odd){
  border-right:1px solid #d4d8dc!important;
 }

 .boai-vlan-print-meta>div:nth-last-child(-n+2){
  border-bottom:0!important;
 }

 .boai-vlan-print-meta small{
  display:block!important;
  margin:0 0 2px!important;
  color:#66717d!important;
  font-size:7.2pt!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
 }

 .boai-vlan-print-meta strong{
  display:block!important;
  color:#111!important;
  font-size:9pt!important;
  line-height:1.25!important;
  overflow-wrap:anywhere!important;
 }

 .boai-vlan-hero,
 .boai-vlan-project,
 .boai-vlan-results,
 .boai-network-card{
  background:#fff!important;
  color:#111!important;
  border-color:#b8c0c8!important;
  box-shadow:none!important;
 }

 .boai-vlan-hero{
  padding:0 0 8mm!important;
  margin:0 0 5mm!important;
  border:0!important;
  border-radius:0!important;
  border-bottom:2px solid #1996ad!important;
 }

 .boai-vlan-kicker{
  color:#167d90!important;
  font-size:7.5pt!important;
  letter-spacing:.1em!important;
 }

 .boai-vlan-hero h1{
  margin:2mm 0 1.5mm!important;
  color:#111!important;
  font-size:22pt!important;
  line-height:1.05!important;
 }

 .boai-vlan-hero p{
  margin:0!important;
  max-width:none!important;
  color:#4d5965!important;
  font-size:9.5pt!important;
  line-height:1.4!important;
 }

 .boai-vlan-privacy{
  display:none!important;
 }

 .boai-vlan-project{
  padding:0!important;
  margin:0 0 5mm!important;
  border:0!important;
  border-radius:0!important;
 }

 .boai-vlan-results{
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
 }

 .boai-results-head{
  display:block!important;
  margin:0 0 3mm!important;
 }

 .boai-results-head h2{
  margin:0 0 1mm!important;
  color:#111!important;
  font-size:16pt!important;
  line-height:1.15!important;
 }

 .boai-results-head p{
  margin:0!important;
  color:#66717d!important;
  font-size:8pt!important;
 }

 /*
  * Deux cartes par ligne même si le viewport d'impression passe sous 850px.
  */
 .boai-network-cards{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:4mm!important;
  align-items:start!important;
 }

 .boai-network-card{
  border:1px solid #aeb7bf!important;
  border-radius:7px!important;
  overflow:hidden!important;
  break-inside:avoid!important;
  page-break-inside:avoid!important;
  min-width:0!important;
 }

 .boai-network-card header{
  position:static!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:4mm!important;
  padding:6px 8px!important;
  background:#eef3f5!important;
  border-bottom:1px solid #aeb7bf!important;
  break-after:avoid!important;
  page-break-after:avoid!important;
 }

 .boai-network-card header strong{
  color:#111!important;
  font-size:9pt!important;
 }

 .boai-network-card header span{
  color:#167d90!important;
  font-size:7pt!important;
 }

 .boai-network-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
 }

 .boai-network-grid div{
  padding:5px 7px!important;
  border-bottom:1px solid #d0d5da!important;
  min-width:0!important;
 }

 .boai-network-grid div:nth-child(odd){
  border-right:1px solid #d0d5da!important;
 }

 .boai-network-grid div:nth-last-child(-n+2){
  border-bottom:0!important;
 }

 .boai-network-grid small{
  display:block!important;
  margin:0 0 1px!important;
  color:#66717d!important;
  font-size:6.4pt!important;
  line-height:1.15!important;
 }

 .boai-network-grid strong{
  color:#111!important;
  font-size:8pt!important;
  line-height:1.2!important;
  overflow-wrap:anywhere!important;
 }

 .boai-network-card.invalid{
  border-color:#b42318!important;
 }

 .boai-vlan-print-has-errors .boai-results-head:after{
  content:"Attention : le plan contient au moins une anomalie. Vérifiez les valeurs avant déploiement.";
  display:block!important;
  margin-top:2mm!important;
  padding:2mm 3mm!important;
  border:1px solid #b42318!important;
  border-radius:4px!important;
  color:#8a1c13!important;
  font-size:7.5pt!important;
  font-weight:700!important;
 }

 a,
 a:visited{
  color:#111!important;
  text-decoration:none!important;
 }

 *{
  -webkit-print-color-adjust:exact!important;
  print-color-adjust:exact!important;
 }
}

