/*
Theme Name: NetworkBudget inwi
Theme URI: https://www.networkbudget.com
Author: NetworkBudget
Description: Thème applicatif pour la construction du Budget Réseau annuel.
Version: 1.3.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: networkbudget-inwi
*/

:root{
  --nbm-primary:#B9078F;
  --nbm-primary-700:#970673;
  --nbm-primary-100:#F8E7F3;
  --nbm-sidebar:#2B0E3E;
  --nbm-secondary:#48114F;
  --nbm-bg:#F4F6F9;
  --nbm-surface:#FFFFFF;
  --nbm-surface-soft:#FAFBFC;
  --nbm-text:#171B2F;
  --nbm-text-2:#3D465B;
  --nbm-muted:#747D90;
  --nbm-border:#E3E7EE;
  --nbm-border-strong:#D5DAE4;
  --nbm-green:#12805F;
  --nbm-red:#B42318;
  --nbm-blue:#377FC1;
  --nbm-teal:#43AEB1;
  --nbm-yellow:#E9BB49;
  --nbm-orange:#E77F45;
  --nbm-shadow:0 1px 2px rgba(15,23,42,.03),0 8px 22px rgba(15,23,42,.05);
  --nbm-shadow-hover:0 2px 4px rgba(15,23,42,.04),0 12px 30px rgba(15,23,42,.08);
  --nbm-radius:12px;
  --nbm-radius-sm:8px;
  --nbm-sidebar-width:224px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--nbm-bg);color:var(--nbm-text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px;line-height:1.45}
body.networkbudget-app-page,body.networkbudget-login-page{overflow-x:hidden}
body.networkbudget-app-page .site-header,body.networkbudget-app-page .site-footer,body.networkbudget-login-page .site-header,body.networkbudget-login-page .site-footer{display:none!important}
a{color:var(--nbm-primary);text-decoration:none}
a:hover{color:var(--nbm-primary-700)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.5}

/* APP SHELL */
.nbm-app-shell{min-height:100vh;display:grid;grid-template-columns:var(--nbm-sidebar-width) minmax(0,1fr);background:var(--nbm-bg)}
.nbm-sidebar{position:sticky;top:0;height:100vh;z-index:50;display:flex;flex-direction:column;padding:20px 12px 14px;color:#fff;background:linear-gradient(180deg,#321044 0%,#2B0E3E 58%,#210A2F 100%);box-shadow:7px 0 22px rgba(31,15,40,.08)}
.nbm-brand{display:flex;flex-direction:column;gap:5px;padding:3px 12px 21px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:12px}
.nbm-brand-word{font-size:34px;line-height:1;font-weight:800;letter-spacing:4px}
.nbm-brand-logo{height:34px;width:auto;max-width:150px;object-fit:contain;object-position:left center}
.nbm-brand span{font-size:12px;font-weight:600;color:rgba(255,255,255,.74)}
.nbm-nav{display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}
.nbm-nav button,.nbm-nav a{width:100%;min-height:39px;border:0;border-radius:8px;background:transparent;color:rgba(255,255,255,.88);display:flex;align-items:center;gap:10px;padding:9px 11px;text-align:left;font-size:12.5px;font-weight:560;transition:background .16s ease,color .16s ease,transform .16s ease}
.nbm-nav button span,.nbm-nav a span{width:18px;min-width:18px;text-align:center;color:rgba(255,255,255,.72)}
.nbm-nav button:hover,.nbm-nav a:hover{background:rgba(255,255,255,.075);color:#fff;transform:translateX(1px)}
.nbm-nav button.is-active{background:linear-gradient(90deg,#C6188F 0%,#B9078F 100%);color:#fff;box-shadow:0 7px 18px rgba(185,7,143,.25)}
.nbm-nav button.is-active span{color:#fff}
.nbm-nav-label{padding:14px 11px 6px;font-size:9.5px;line-height:1;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:rgba(255,255,255,.42)}
.nbm-stream-link{min-height:33px!important;padding:7px 10px 7px 30px!important;font-size:11.5px!important;color:rgba(255,255,255,.73)!important}
.nbm-sidebar-footer{margin-top:auto;padding:14px 11px 2px;border-top:1px solid rgba(255,255,255,.09)}
.nbm-sidebar-footer a{font-size:11.5px;color:rgba(255,255,255,.65)}
.nbm-sidebar-footer a:hover{color:#fff}

.nbm-main{min-width:0;min-height:100vh}
.nbm-topbar{height:72px;position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;padding:0 24px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--nbm-border);backdrop-filter:blur(12px)}
.nbm-topbar-title{display:flex;flex-direction:column;gap:2px;min-width:0}
.nbm-topbar-title strong{font-size:20px;line-height:1.18;font-weight:780;letter-spacing:-.02em;color:#161A2C}
.nbm-topbar-title small{font-size:11.5px;color:var(--nbm-muted)}
.nbm-topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.nbm-topbar-actions select{height:36px;min-width:128px;padding:0 34px 0 11px;border:1px solid var(--nbm-border);border-radius:8px;background:#fff;color:var(--nbm-text-2);font-size:12px;font-weight:600;box-shadow:0 1px 1px rgba(15,23,42,.02)}
.nbm-user-badge{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#D536A2,#98207E);color:#fff;font-size:11px;font-weight:800;box-shadow:0 5px 14px rgba(185,7,143,.2)}
.nbm-user-name{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:650;color:var(--nbm-text-2)}
.nbm-icon-btn{display:none;border:0;background:transparent;color:var(--nbm-text);font-size:20px}
.nbm-notification-btn{display:grid;place-items:center;position:relative;width:34px;height:34px;border:1px solid var(--nbm-border);border-radius:8px;background:#fff;font-size:13px;color:#596277}
.nbm-notification-count{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--nbm-primary);color:#fff;font-size:9px;line-height:17px;font-weight:800}

.nbm-content{width:100%;max-width:1660px;margin:0 auto;padding:22px 24px 32px}
.nbm-loading{min-height:45vh;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--nbm-muted);font-size:12px}
.nbm-loading:before{content:"";width:20px;height:20px;border:2px solid #EADDE7;border-top-color:var(--nbm-primary);border-radius:50%;animation:nbm-spin .7s linear infinite}
@keyframes nbm-spin{to{transform:rotate(360deg)}}

/* TYPOGRAPHY AND PAGE HEADERS */
.nbm-section-head,.nbm-view-heading{display:flex;align-items:flex-end;gap:14px;margin:0 0 16px}
.nbm-section-head h1,.nbm-section-head h2,.nbm-view-heading h2{margin:0;color:#171A2A;font-size:21px;line-height:1.2;font-weight:780;letter-spacing:-.025em}
.nbm-section-head .nbm-spacer{margin-left:auto}
.nbm-card-sub,.nbm-view-heading p{margin:4px 0 0;color:var(--nbm-muted);font-size:11.5px;line-height:1.45}
.nbm-breadcrumb{margin-bottom:4px;color:#8B6A83;font-size:10px;font-weight:700}

/* TOOLBARS */
.nbm-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0 0 16px;padding:11px;background:#fff;border:1px solid var(--nbm-border);border-radius:10px;box-shadow:0 1px 2px rgba(15,23,42,.02)}
.nbm-toolbar input,.nbm-toolbar select{height:36px;min-width:155px;padding:0 10px;border:1px solid var(--nbm-border-strong);border-radius:7px;background:#fff;color:var(--nbm-text-2);font-size:11.5px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.nbm-toolbar input:focus,.nbm-toolbar select:focus{border-color:rgba(185,7,143,.6);box-shadow:0 0 0 3px rgba(185,7,143,.08)}
.nbm-dashboard-filters{position:relative}
.nbm-dashboard-filters:before{content:"Filtres";display:flex;align-items:center;height:36px;padding:0 8px;color:#7C8393;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}

/* BUTTONS */
.nbm-btn{min-height:36px;border:1px solid var(--nbm-border-strong);border-radius:8px;padding:8px 13px;background:#fff;color:#30384B;font-size:11.5px;font-weight:700;line-height:1.2;transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}
.nbm-btn:hover{border-color:#C5CBD7;background:#FCFCFD;box-shadow:0 4px 12px rgba(15,23,42,.06);transform:translateY(-1px)}
.nbm-btn-primary{border-color:transparent;background:linear-gradient(90deg,#C81892,#B9078F);color:#fff;box-shadow:0 6px 15px rgba(185,7,143,.18)}
.nbm-btn-primary:hover{background:linear-gradient(90deg,#B91586,#A90782);color:#fff;border-color:transparent}
.nbm-btn-danger{border-color:#F0C9C6;color:var(--nbm-red);background:#FFF8F7}
.nbm-btn-small{min-height:31px;padding:6px 10px;border-radius:7px;font-size:10.5px}

/* CARDS AND KPIS */
.nbm-card{min-width:0;padding:17px;background:var(--nbm-surface);border:1px solid var(--nbm-border);border-radius:var(--nbm-radius);box-shadow:var(--nbm-shadow)}
.nbm-card-title{margin:0 0 14px;color:#20263A;font-size:13px;font-weight:780;line-height:1.35}
.nbm-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}
.nbm-kpi-grid.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nbm-kpi-card{position:relative;min-height:108px;padding:15px 16px;overflow:hidden;transition:box-shadow .16s ease,transform .16s ease}
.nbm-kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--nbm-primary),#D845AA);opacity:.88}
.nbm-kpi-card:hover{box-shadow:var(--nbm-shadow-hover);transform:translateY(-1px)}
.nbm-kpi-label{margin-bottom:12px;color:#4D566B;font-size:10.5px;font-weight:760}
.nbm-kpi-value{color:#161A2E;font-size:24px;line-height:1.08;font-weight:820;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.nbm-kpi-sub{margin-top:8px;color:var(--nbm-muted);font-size:10.5px;line-height:1.35}
.nbm-positive{color:var(--nbm-green)!important}
.nbm-negative{color:var(--nbm-red)!important}
.nbm-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.nbm-grid-3{display:grid;grid-template-columns:1.18fr 1fr 1fr;gap:14px;margin-bottom:14px}
.nbm-grid-7-5{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:14px}

/* CHARTS */
.nbm-bar-list{display:flex;flex-direction:column;gap:10px}
.nbm-bar-row{display:grid;grid-template-columns:minmax(112px,1.1fr) minmax(120px,2fr) 66px;align-items:center;gap:10px;color:#485166;font-size:10.5px}
.nbm-bar-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nbm-bar-track{height:9px;border-radius:999px;background:#EEF1F5;overflow:hidden}
.nbm-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#3D89C9,#62A6DD)}
.nbm-bar-row:nth-child(2n) .nbm-bar-fill{background:linear-gradient(90deg,#B9078F,#D442A5)}
.nbm-bar-value{text-align:right;font-size:10px;font-weight:760;color:#31394E;font-variant-numeric:tabular-nums}
.nbm-donut-wrap{display:grid;grid-template-columns:145px minmax(0,1fr);align-items:center;gap:18px}
.nbm-donut{position:relative;width:138px;height:138px;border-radius:50%;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.nbm-donut:after{content:"";position:absolute;width:82px;height:82px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #EEF0F4}
.nbm-donut-center{position:relative;z-index:1;text-align:center}
.nbm-donut-center strong{display:block;font-size:19px;line-height:1.05;font-weight:820;color:#1B2033}
.nbm-donut-center span{display:block;margin-top:3px;color:var(--nbm-muted);font-size:9.5px}
.nbm-legend{display:flex;flex-direction:column;gap:9px}
.nbm-legend-row{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:center;color:#4E576A;font-size:10px}
.nbm-legend-row strong{color:#2F374A;font-size:10px}
.nbm-dot{width:8px;height:8px;border-radius:2px}.nbm-dot.magenta{background:var(--nbm-primary)}.nbm-dot.blue{background:var(--nbm-blue)}.nbm-dot.teal{background:var(--nbm-teal)}.nbm-dot.yellow{background:var(--nbm-yellow)}.nbm-dot.orange{background:var(--nbm-orange)}

/* TABLES */
.nbm-table-wrap{position:relative;width:100%;overflow:auto;background:#fff;border:1px solid var(--nbm-border);border-radius:10px;box-shadow:0 1px 2px rgba(15,23,42,.025);scrollbar-width:thin;scrollbar-color:#C8CDD7 #F4F5F7}
.nbm-card>.nbm-table-wrap{box-shadow:none}
.nbm-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;background:#fff;color:#333B4E;font-size:11.5px}
.nbm-table thead th{position:sticky;top:0;z-index:3;height:42px;padding:10px 12px;background:#F3F5F8;border-bottom:1px solid #DDE2EA;color:#4D566B;text-align:left;vertical-align:middle;font-size:10.5px;font-weight:780;line-height:1.2;white-space:nowrap;letter-spacing:.005em}
.nbm-table tbody td{padding:11px 12px;border-bottom:1px solid #ECEFF3;background:#fff;vertical-align:middle;line-height:1.4}
.nbm-table tbody tr:nth-child(even) td{background:#FCFDFE}
.nbm-table tbody tr:hover td{background:#FBF6FA}
.nbm-table tbody tr:last-child td{border-bottom:0}
.nbm-table th.nbm-sortable{cursor:pointer;padding-right:25px}
.nbm-table th.nbm-sortable:after{content:"↕";position:absolute;right:9px;color:#A1A8B5;font-size:10px;font-weight:400}
.nbm-table th[data-sort-dir="asc"]:after{content:"↑";color:var(--nbm-primary)}
.nbm-table th[data-sort-dir="desc"]:after{content:"↓";color:var(--nbm-primary)}
.nbm-table td:first-child,.nbm-table th:first-child{padding-left:14px}
.nbm-table td:last-child,.nbm-table th:last-child{padding-right:14px}
.nbm-table td:last-child:has(.nbm-btn){white-space:nowrap;text-align:right}
.nbm-table tbody td:nth-child(4){font-weight:650;color:#242B3E}
.nbm-money{text-align:right!important;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:720;color:#252C3F}
.nbm-table .nbm-btn{box-shadow:none}
.nbm-table .nbm-btn:hover{box-shadow:0 2px 8px rgba(15,23,42,.05)}

/* BADGES */
.nbm-badge{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:999px;background:#EDF0F4;color:#536074;font-size:9.5px;font-weight:760;line-height:1.15;white-space:nowrap;border:1px solid transparent}
.nbm-badge.success{background:#E8F6F1;color:#0F7456;border-color:#D3EEE5}
.nbm-badge.warning{background:#FFF7E0;color:#8A6507;border-color:#F5E7B7}
.nbm-badge.danger{background:#FDECEA;color:#A42A20;border-color:#F5D4D0}
.nbm-badge.info{background:#EAF3FA;color:#286894;border-color:#D6E9F5}
.nbm-badge.magenta{background:#F7E8F2;color:#950875;border-color:#EDD4E5}

/* TABS */
.nbm-tabs{display:flex;gap:3px;padding:4px;margin:0 0 15px;background:#EEF1F5;border:1px solid #E1E5EB;border-radius:10px;overflow:auto}
.nbm-tabs button{min-height:34px;padding:7px 13px;border:0;border-radius:7px;background:transparent;color:#606A7D;font-size:10.5px;font-weight:680;white-space:nowrap}
.nbm-tabs button:hover{background:rgba(255,255,255,.7)}
.nbm-tabs button.is-active{background:#fff;color:var(--nbm-primary);box-shadow:0 2px 7px rgba(15,23,42,.08);font-weight:780}

/* FILTER COVERAGE */
.nbm-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.nbm-filter-card{padding:12px;border:1px solid #E5E8EE;border-radius:9px;background:#FBFCFD}
.nbm-filter-card strong{display:block;color:#424B60;font-size:10px;line-height:1.3}
.nbm-filter-card .pct{margin-top:8px;color:#1A2033;font-size:20px;font-weight:820}
.nbm-filter-card small{display:block;margin-top:7px;color:#7C8597;font-size:9.5px;line-height:1.35}
.nbm-progress{height:6px;margin-top:8px;background:#EDF0F4;border-radius:999px;overflow:hidden}
.nbm-progress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--nbm-primary),#D84AAB)}

/* FORMS */
.nbm-form-section{margin-bottom:14px;padding:16px;border:1px solid var(--nbm-border);border-radius:10px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.025)}
.nbm-form-section h3{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:#252C3F;font-size:12.5px;font-weight:800}
.nbm-form-section h3:before{content:"";width:3px;height:16px;border-radius:3px;background:var(--nbm-primary)}
.nbm-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px 12px}
.nbm-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.nbm-field.span-2{grid-column:span 2}.nbm-field.span-4{grid-column:span 4}
.nbm-field label{color:#4A5367;font-size:9.8px;font-weight:760;line-height:1.3}
.nbm-field input,.nbm-field select,.nbm-field textarea,.nbm-filter-input select,.nbm-filter-input textarea{width:100%;border:1px solid #D8DDE6;border-radius:7px;background:#fff;color:#262D40;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}
.nbm-field input,.nbm-field select{min-height:37px;padding:8px 9px;font-size:11px}
.nbm-field textarea{min-height:76px;padding:9px;font-size:11px;line-height:1.45;resize:vertical}
.nbm-field input:focus,.nbm-field select:focus,.nbm-field textarea:focus,.nbm-filter-input select:focus,.nbm-filter-input textarea:focus{border-color:rgba(185,7,143,.65);box-shadow:0 0 0 3px rgba(185,7,143,.08)}
.nbm-field input[readonly]{background:#F4F6F8;color:#485166;font-weight:750}
.nbm-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nbm-filter-input{padding:11px;border:1px solid #E2E6ED;border-radius:9px;background:#FAFBFC}
.nbm-filter-input .line{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.nbm-filter-input strong{color:#394257;font-size:10.5px;font-weight:760}
.nbm-filter-input select{width:auto;min-width:128px;margin-left:auto;padding:6px 8px;font-size:10px}
.nbm-filter-input textarea{min-height:62px;padding:8px;font-size:10.5px;resize:vertical}

/* MODALS */
.nbm-modal-backdrop{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:18px;background:rgba(23,15,30,.58);backdrop-filter:blur(3px)}
.nbm-modal{width:min(1280px,97vw);max-height:96vh;overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.5);border-radius:14px;box-shadow:0 30px 80px rgba(12,6,20,.30)}
.nbm-modal-head{position:sticky;top:0;z-index:5;min-height:60px;display:flex;align-items:center;padding:13px 18px;background:#fff;border-bottom:1px solid var(--nbm-border)}
.nbm-modal-head h2{display:flex;align-items:center;margin:0;color:#1C2234;font-size:16px;font-weight:800;letter-spacing:-.01em}
.nbm-modal-head h2:before{content:"";width:4px;height:19px;margin-right:9px;border-radius:4px;background:var(--nbm-primary)}
.nbm-modal-head button{margin-left:auto;width:32px;height:32px;border:0;border-radius:8px;background:#F4F5F7;color:#5A6376;font-size:20px;line-height:1}
.nbm-modal-body{padding:15px 17px 8px;background:#F6F7F9}
.nbm-modal-foot{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:8px;padding:11px 17px;background:#fff;border-top:1px solid var(--nbm-border);box-shadow:0 -7px 20px rgba(15,23,42,.04)}

/* WORKFLOW */
.nbm-timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin:2px 0 22px;padding:6px 2px 0}
.nbm-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;color:#7D8595;font-size:9.5px;text-align:center}
.nbm-step:not(:last-child):before{content:"";position:absolute;top:14px;left:55%;right:-45%;height:1px;background:#DCE1E8}
.nbm-step .dot{position:relative;z-index:1;width:29px;height:29px;display:grid;place-items:center;border:1px solid #D8DDE6;border-radius:50%;background:#fff;color:#596275;font-size:10px;font-weight:760}
.nbm-step.done .dot{background:var(--nbm-primary);border-color:var(--nbm-primary);color:#fff;box-shadow:0 5px 12px rgba(185,7,143,.16)}
.nbm-step.done:not(:last-child):before{background:linear-gradient(90deg,var(--nbm-primary),#D7DCE5)}

/* REPORTS, CHIPS, LISTS */
.nbm-report-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 8px;border-bottom:1px solid #EDF0F4}
.nbm-report-row:last-child{border-bottom:0}
.nbm-report-row:hover{background:#FCFAFC}
.nbm-report-icon{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;background:#F7EAF3;color:var(--nbm-primary);font-size:16px;font-weight:800}
.nbm-report-row strong{color:#2C3448;font-size:11.5px}
.nbm-kpi-chip-list{display:flex;flex-wrap:wrap;gap:7px}
.nbm-kpi-chip{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid #E7D8E3;border-radius:999px;background:#FAF2F7;color:#7B1B62;font-size:9.8px;font-weight:700}
.nbm-notification-list{display:flex;flex-direction:column;gap:7px}
.nbm-notification-item{padding:11px 12px;border:1px solid #E4E7ED;border-radius:9px;background:#fff;color:#4C5569;font-size:11px}
.nbm-notification-item.is-unread{border-color:#E8C7DE;background:#FFF8FC}
.nbm-notification-item strong{display:block;margin-bottom:4px;color:#252C3F}
.nbm-notification-item small{display:block;margin-top:5px;color:#8991A0;font-size:9px}

/* STATES */
.nbm-empty{padding:28px 18px;border:1px dashed #DDE1E8;border-radius:9px;background:#FAFBFC;color:#7A8394;font-size:11px;text-align:center}
.nbm-alert{margin:0 0 14px;padding:10px 12px;border:1px solid #F0D5D1;border-radius:8px;background:#FFF6F5;color:#8E2C24;font-size:11px}
.nbm-alert.info{border-color:#D6E8F4;background:#F3F9FD;color:#2D678F}
.nbm-toast{position:fixed;right:22px;bottom:22px;z-index:500;max-width:360px;padding:11px 14px;border-radius:9px;background:#252A3A;color:#fff;font-size:11px;box-shadow:0 15px 38px rgba(15,23,42,.24)}
.nbm-toast.error{background:#A92B22}

/* LOGIN */
.nbm-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(440px,52%) minmax(480px,48%);background:#fff}
.nbm-login-visual{position:relative;display:flex;flex-direction:column;padding:40px 44px 30px;overflow:hidden;background:linear-gradient(145deg,rgba(43,14,62,.94),rgba(185,7,143,.78)),radial-gradient(circle at 75% 20%,rgba(255,255,255,.12),transparent 32%);background-size:cover;background-position:center;color:#fff}
.nbm-login-visual:after{content:"";position:absolute;inset:auto -12% -21% 28%;height:52%;background:radial-gradient(circle,rgba(255,255,255,.10),transparent 66%);pointer-events:none}
.nbm-login-brand{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.nbm-login-brand img{height:42px;width:auto;max-width:180px;object-fit:contain}.nbm-login-inwi{font-size:46px;line-height:1;font-weight:800;letter-spacing:4px}
.nbm-login-brand span{font-size:9px;font-weight:700;letter-spacing:.02em;opacity:.82}
.nbm-login-copy{position:relative;z-index:2;margin-top:64px;max-width:390px}
.nbm-login-copy h1{margin:0 0 10px;font-size:36px;line-height:1.05;font-weight:800;letter-spacing:-.035em}
.nbm-login-copy p{margin:0;font-size:16px;line-height:1.45;font-weight:520}
.nbm-login-pillars{position:relative;z-index:2;margin-top:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding-top:35px;border-top:1px solid rgba(255,255,255,.18);font-size:9px;text-align:center;color:rgba(255,255,255,.9)}
.nbm-login-pillars span{position:relative;padding-top:26px}.nbm-login-pillars span:before{content:"◈";position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:18px}
.nbm-login-form-panel{position:relative;display:grid;place-items:center;padding:50px 56px;background:#fff}
.nbm-login-lang{position:absolute;top:22px;right:26px}.nbm-login-lang select{height:32px;border:1px solid var(--nbm-border);border-radius:7px;background:#fff;color:#4E576A;font-size:10px}
.nbm-login-box{width:min(100%,400px)}
.nbm-login-box h2{margin:0 0 5px;color:#161A2E;font-size:26px;line-height:1.1;font-weight:800;letter-spacing:-.03em}
.nbm-login-box>p{margin:0 0 24px;color:#737C90;font-size:11.5px}
.nbm-login-box label{display:block;margin-bottom:5px;color:#454E62;font-size:10px;font-weight:730}
.nbm-login-box input[type=text],.nbm-login-box input[type=password]{width:100%;height:40px;margin-bottom:13px;padding:9px 11px;border:1px solid #D6DBE4;border-radius:7px;outline:none;font-size:11.5px}
.nbm-login-box input[type=text]:focus,.nbm-login-box input[type=password]:focus{border-color:rgba(185,7,143,.65);box-shadow:0 0 0 3px rgba(185,7,143,.08)}
.nbm-login-box .login-remember{display:flex;align-items:center;margin:2px 0 16px;color:#5B6478;font-size:9.8px}.nbm-login-box .login-remember label{display:flex;align-items:center;gap:7px;font-weight:500}.nbm-login-box input[type=checkbox]{accent-color:var(--nbm-primary)}
.nbm-login-box input[type=submit]{width:100%;height:40px;border:0;border-radius:7px;background:linear-gradient(90deg,#C81892,#B9078F);color:#fff;font-size:11.5px;font-weight:760;box-shadow:0 7px 18px rgba(185,7,143,.18)}
.nbm-login-forgot{margin:-40px 0 26px!important;text-align:right;font-size:9.8px!important}.nbm-login-forgot a{color:#8F1A72}
.nbm-login-foot{display:flex;justify-content:space-between;margin-top:34px;padding-top:12px;border-top:1px solid #ECEEF2;color:#8A91A0;font-size:9px}.nbm-login-foot span{color:#8A91A0}

/* RESPONSIVE */
@media(max-width:1360px){
  :root{--nbm-sidebar-width:198px}
  .nbm-content{padding-left:18px;padding-right:18px}
  .nbm-kpi-grid{gap:10px}.nbm-kpi-value{font-size:22px}
  .nbm-grid-3{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:1120px){
  .nbm-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.nbm-kpi-grid.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nbm-grid-3{grid-template-columns:1fr 1fr}.nbm-grid-3>.nbm-card:first-child{grid-column:1/-1}
  .nbm-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nbm-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nbm-field.span-4{grid-column:span 2}
  .nbm-login-shell{grid-template-columns:45% 55%}.nbm-login-visual{padding:34px 30px}.nbm-login-form-panel{padding:42px 38px}
}
@media(max-width:900px){
  .nbm-app-shell{display:block}.nbm-sidebar{position:fixed;left:-245px;top:0;width:224px;transition:left .2s ease;box-shadow:16px 0 40px rgba(18,7,28,.22)}.nbm-sidebar.is-open{left:0}
  .nbm-icon-btn{display:grid;place-items:center}.nbm-topbar{padding:0 15px}.nbm-topbar-actions select{min-width:112px}.nbm-user-name{display:none}
  .nbm-content{padding:18px 14px 28px}.nbm-grid-2,.nbm-grid-3,.nbm-grid-7-5{grid-template-columns:1fr}.nbm-grid-3>.nbm-card:first-child{grid-column:auto}
  .nbm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nbm-donut-wrap{grid-template-columns:130px 1fr}
  .nbm-login-shell{grid-template-columns:1fr}.nbm-login-visual{min-height:340px}.nbm-login-copy{margin-top:38px}.nbm-login-form-panel{min-height:520px}
}
@media(max-width:620px){
  .nbm-topbar-title strong{font-size:17px}.nbm-topbar-title small{display:none}.nbm-topbar-actions{gap:7px}.nbm-topbar-actions select{min-width:102px;width:102px}.nbm-user-badge{width:32px;height:32px}
  .nbm-kpi-grid,.nbm-kpi-grid.is-4{grid-template-columns:1fr}.nbm-kpi-card{min-height:96px}.nbm-kpi-value{font-size:23px}
  .nbm-filter-grid,.nbm-check-grid{grid-template-columns:1fr}.nbm-toolbar{align-items:stretch}.nbm-toolbar:before{display:none}.nbm-toolbar input,.nbm-toolbar select,.nbm-toolbar .nbm-btn{width:100%;min-width:0}
  .nbm-form-grid{grid-template-columns:1fr}.nbm-field.span-2,.nbm-field.span-4{grid-column:span 1}.nbm-modal-backdrop{padding:7px}.nbm-modal{width:100%;max-height:98vh;border-radius:10px}.nbm-modal-body{padding:10px}.nbm-form-section{padding:12px}.nbm-modal-foot{padding:10px}
  .nbm-timeline{grid-template-columns:repeat(3,1fr);row-gap:18px}.nbm-step:nth-child(3):before,.nbm-step:nth-child(6):before{display:none}
  .nbm-donut-wrap{grid-template-columns:1fr;justify-items:center;width:100%}.nbm-legend{width:100%}
  .nbm-login-visual{min-height:310px;padding:28px 24px 22px}.nbm-login-copy h1{font-size:31px}.nbm-login-copy p{font-size:14px}.nbm-login-pillars{gap:4px;font-size:8px}.nbm-login-form-panel{padding:48px 24px 34px}.nbm-login-foot{flex-direction:column;gap:5px}
}

/* Professional budget table details */
.nbm-budget-table{min-width:1180px}
.nbm-row-ref{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 7px;border:1px solid #E1E5EC;border-radius:6px;background:#F7F8FA;color:#667084;font-size:9.5px;font-weight:760;font-variant-numeric:tabular-nums}
.nbm-stream-cell{display:inline-flex;align-items:center;min-height:24px;padding:3px 7px;border-radius:6px;background:#F5EEF4;color:#7C215F;font-size:9.5px;font-weight:740;white-space:nowrap}
.nbm-line-title{display:block;max-width:260px;color:#252B3D;font-size:11.5px;line-height:1.35;font-weight:760}
.nbm-line-meta{display:block;margin-top:3px;color:#88909F;font-size:9.2px;line-height:1.25}
.nbm-ratio-cell{display:flex;flex-direction:column;gap:1px;white-space:nowrap}.nbm-ratio-cell strong{color:#2E3649;font-size:10.5px}.nbm-ratio-cell small{color:#8B93A2;font-size:8.8px}
.nbm-action-col{position:sticky;right:0;z-index:2;background:#fff!important;box-shadow:-8px 0 12px -12px rgba(15,23,42,.25)}
.nbm-budget-table thead .nbm-action-col{z-index:5;background:#F3F5F8!important}
.nbm-budget-table tbody tr:nth-child(even) .nbm-action-col{background:#FCFDFE!important}
.nbm-budget-table tbody tr:hover .nbm-action-col{background:#FBF6FA!important}

/* 1.3.0 standalone hardening: the app is independent from the active WordPress theme */
html:has(body.nbm-plugin-shell),body.nbm-plugin-shell{margin:0!important;padding:0!important;min-width:320px!important;width:100%!important;max-width:none!important;background:var(--nbm-bg)!important;color:var(--nbm-text)!important;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important;overflow-x:hidden!important}
body.nbm-plugin-shell>*:not(.nbm-app-shell):not(.nbm-login-shell):not(#nbm-modal-root):not(script):not(style){max-width:none}
body.nbm-plugin-shell #wpadminbar{display:none!important}
body.nbm-plugin-shell .wp-site-blocks,body.nbm-plugin-shell .entry-content,body.nbm-plugin-shell main,body.nbm-plugin-shell article{margin:0!important;padding:0!important;max-width:none!important;width:auto!important}
body.nbm-plugin-shell h1,body.nbm-plugin-shell h2,body.nbm-plugin-shell h3,body.nbm-plugin-shell h4,body.nbm-plugin-shell p{font-family:inherit}

/* Dashboard polish */
.nbm-content{padding-top:24px}
.nbm-kpi-grid>.nbm-card{border-top:1px solid #eef0f4}
.nbm-kpi-card{background:linear-gradient(180deg,#fff 0%,#fdfdfe 100%)}
.nbm-kpi-card:after{content:"";position:absolute;right:-28px;top:-30px;width:88px;height:88px;border-radius:50%;background:radial-gradient(circle,rgba(185,7,143,.055),rgba(185,7,143,0) 70%);pointer-events:none}
.nbm-card{overflow:hidden}
.nbm-card>.nbm-card-title{padding-bottom:11px;border-bottom:1px solid #eef1f5}
.nbm-grid-3>.nbm-card,.nbm-grid-2>.nbm-card{min-height:210px}

/* Premium data tables */
.nbm-table-wrap{border-radius:12px;border-color:#dde2ea;box-shadow:0 1px 2px rgba(15,23,42,.02),0 5px 18px rgba(15,23,42,.035)}
.nbm-table{font-size:12px}
.nbm-table thead th{height:44px;background:linear-gradient(180deg,#f7f8fa 0%,#f1f3f6 100%);color:#40495d;border-bottom:1px solid #d8dee8;font-size:10px;text-transform:uppercase;letter-spacing:.045em}
.nbm-table tbody td{padding:11px 12px;border-bottom:1px solid #edf0f4;vertical-align:middle;background:#fff}
.nbm-table tbody tr:nth-child(even) td{background:#fcfdfe}
.nbm-table tbody tr:hover td{background:#faf5f8}
.nbm-table tbody tr:last-child td{border-bottom:0}
.nbm-table td:first-child,.nbm-table th:first-child{padding-left:14px}
.nbm-table td:last-child,.nbm-table th:last-child{padding-right:14px}
.nbm-budget-table tbody td:nth-child(4){min-width:230px}
.nbm-budget-table tbody td:nth-child(5){min-width:120px}
.nbm-budget-table tbody td:nth-child(6){min-width:118px}
.nbm-budget-table .nbm-action-col{min-width:86px}
.nbm-budget-table .nbm-action-col .nbm-btn{width:100%;background:#fff;border-color:#d8dde6;color:#3f485c}
.nbm-budget-table .nbm-action-col .nbm-btn:hover{border-color:rgba(185,7,143,.35);color:var(--nbm-primary);background:#fff8fc}
.nbm-row-ref{background:#f4f6f8;border-color:#e0e4ea;color:#5d6679}
.nbm-stream-cell{background:#f7edf4;border:1px solid #edd5e5;color:#7e1d62}
.nbm-line-title{font-size:12px}
.nbm-line-meta{font-size:9.5px}
.nbm-ratio-cell strong{font-size:11.5px}
.nbm-badge{font-size:9px;text-transform:none;letter-spacing:0}

/* Page and filters */
.nbm-section-head{align-items:center;margin-bottom:14px}
.nbm-section-head h2,.nbm-view-heading h2{font-size:22px}
.nbm-toolbar{gap:8px;padding:10px 11px}
.nbm-toolbar input,.nbm-toolbar select{background:#fbfcfd}
.nbm-toolbar .nbm-btn-primary{min-width:112px}
.nbm-dashboard-filters:before{padding-left:5px;padding-right:3px}

/* Login redesign */
.nbm-login-shell{min-height:100dvh}
.nbm-login-visual{isolation:isolate}
.nbm-login-visual:before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(17,6,29,.02),rgba(20,7,29,.28));pointer-events:none}
.nbm-login-brand,.nbm-login-copy,.nbm-login-pillars{z-index:2}
.nbm-login-form-panel{background:linear-gradient(180deg,#fff 0%,#fbfbfc 100%)}
.nbm-login-box{padding:30px 32px;border:1px solid #e5e8ee;border-radius:16px;background:#fff;box-shadow:0 22px 60px rgba(32,22,38,.08)}
.nbm-login-box input[type=text],.nbm-login-box input[type=password]{height:44px}
.nbm-login-box input[type=submit]{height:44px}
.nbm-login-foot{margin-top:28px}
.nbm-password-wrap{position:relative}
.nbm-password-wrap input{padding-right:78px!important}
.nbm-password-toggle{position:absolute;right:7px;top:5px;height:32px;padding:0 9px;border:0;border-radius:6px;background:#f3f4f6;color:#596174;font-size:10px;font-weight:700}

/* Better off-canvas behavior */
@media(max-width:900px){
  .nbm-sidebar{z-index:100}
  .nbm-sidebar.is-open:after{content:"";position:fixed;inset:0 0 0 224px;background:rgba(20,11,28,.30);backdrop-filter:blur(1px);pointer-events:none}
  .nbm-topbar{height:64px}
  .nbm-content{padding-top:14px}
  .nbm-grid-3>.nbm-card,.nbm-grid-2>.nbm-card{min-height:0}
}
@media(max-width:620px){
  .nbm-login-shell{display:block;background:#fff}
  .nbm-login-visual{min-height:250px;padding:24px 22px 20px}
  .nbm-login-brand img{height:32px;max-width:136px}.nbm-login-inwi{font-size:38px}
  .nbm-login-copy{margin-top:30px}.nbm-login-copy h1{font-size:30px}.nbm-login-copy p{font-size:13px;max-width:330px}
  .nbm-login-pillars{padding-top:20px}.nbm-login-pillars span{padding-top:20px}
  .nbm-login-form-panel{display:block;min-height:auto;padding:42px 16px 28px}
  .nbm-login-lang{top:10px;right:16px}
  .nbm-login-box{width:100%;padding:22px 18px;border-radius:14px;box-shadow:0 12px 35px rgba(32,22,38,.08)}
  .nbm-login-box h2{font-size:24px}
  .nbm-login-forgot{margin:-41px 0 26px!important}
  .nbm-topbar{padding:0 12px}
  .nbm-content{padding:12px 10px 24px}
  .nbm-card{padding:14px;border-radius:10px}
  .nbm-section-head h2,.nbm-view-heading h2{font-size:19px}
  .nbm-table{font-size:11px}
  .nbm-table-wrap{border-radius:9px}
}

/* NetworkBudget 1.4.0 - Capacity Planning */
.nbm-capacity-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 12px;margin:-4px 0 14px;scrollbar-width:thin}
.nbm-capacity-tabs button{flex:0 0 auto;border:1px solid var(--nbm-border,#e4e7ee);background:#fff;color:#4c5365;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:.18s ease}
.nbm-capacity-tabs button:hover{border-color:#d4a2c6;color:var(--nbm-primary)}
.nbm-capacity-tabs button.is-active{background:linear-gradient(135deg,var(--nbm-primary),#8d176f);border-color:var(--nbm-primary);color:#fff;box-shadow:0 5px 14px rgba(185,7,143,.18)}
.nbm-capacity-head{display:flex;align-items:flex-start;gap:18px;justify-content:space-between;margin:4px 0 16px;padding:18px 20px;border:1px solid #e7e9ef;border-radius:12px;background:linear-gradient(135deg,#fff 0%,#fbf7fa 100%)}
.nbm-capacity-head h2{margin:3px 0 6px;font-size:22px;letter-spacing:-.02em;color:#19172a}.nbm-capacity-head p{margin:0;color:#6a7182;max-width:900px;line-height:1.55}.nbm-eyebrow{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:800;color:var(--nbm-primary)}
.nbm-capacity-kpis{grid-template-columns:repeat(7,minmax(130px,1fr))}.nbm-capacity-flow-card{overflow:hidden}.nbm-e2e-flow{display:grid;grid-template-columns:repeat(13,max-content);align-items:center;gap:10px;overflow-x:auto;padding:15px 4px 7px}.nbm-e2e-flow div{padding:12px 15px;border-radius:9px;background:#f7f4f8;border:1px solid #eadde7;font-weight:800;color:#38253f;white-space:nowrap}.nbm-e2e-flow div:first-child{background:#f6e7f1;color:#8d176f;border-color:#e8bfd9}.nbm-e2e-flow span{font-size:18px;color:#b6bac5}
.nbm-cap-legend{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.nbm-cap-status{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.nbm-cap-status.normal{background:#eaf7f1;color:#14825f}.nbm-cap-status.watch{background:#eaf2fb;color:#2f6fa6}.nbm-cap-status.study{background:#fff7d7;color:#8b6a00}.nbm-cap-status.project{background:#fff0e5;color:#b65d17}.nbm-cap-status.critical{background:#fde8ea;color:#b62a35}
.nbm-cap-table td,.nbm-cap-table th{vertical-align:middle}.nbm-cap-table .nbm-spark{min-width:95px}.nbm-spark{display:block;width:105px;height:34px;color:var(--nbm-primary);overflow:visible}.nbm-empty-line{width:105px;height:1px;background:#e2e4e9}
.nbm-domain-card{min-height:160px}.nbm-domain-card .nbm-spark{width:100%;height:56px;margin-top:12px;color:#995083}.nbm-scenario-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eef0f4}.nbm-scenario-row:last-child{border-bottom:0}.nbm-scenario-row strong{display:block}.nbm-scenario-row small{display:block;margin-top:2px;color:#7a8190}
.nbm-assumption-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nbm-assumption-list>div{border:1px solid #eceef2;background:#fafbfc;border-radius:8px;padding:9px 10px}.nbm-assumption-list span,.nbm-assumption-list small{display:block;color:#737b8d;font-size:11px}.nbm-assumption-list strong{display:block;margin:3px 0;font-size:13px;color:#2b2b3d}
.nbm-priority{display:inline-flex;min-width:34px;justify-content:center;padding:4px 7px;border-radius:6px;font-size:11px;font-weight:900}.nbm-priority.p0{background:#fde8ea;color:#b62a35}.nbm-priority.p1{background:#fff0e5;color:#b65d17}.nbm-priority.p2{background:#fff7d7;color:#8b6a00}.nbm-priority.p3{background:#eaf2fb;color:#2f6fa6}.nbm-empty.is-hidden{display:none}.nbm-empty strong,.nbm-empty span{display:block}.nbm-empty span{margin-top:4px;color:#7a8190}
@media(max-width:1450px){.nbm-capacity-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))}}
@media(max-width:1024px){.nbm-capacity-head{flex-direction:column}.nbm-capacity-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nbm-assumption-list{grid-template-columns:1fr}.nbm-e2e-flow{grid-template-columns:repeat(13,max-content)}}
@media(max-width:620px){.nbm-capacity-tabs{margin-left:-4px;margin-right:-4px}.nbm-capacity-head{padding:14px}.nbm-capacity-head h2{font-size:19px}.nbm-capacity-kpis{grid-template-columns:1fr 1fr}.nbm-cap-legend{justify-content:flex-start}.nbm-cap-table{min-width:1050px}.nbm-e2e-flow{padding-bottom:10px}}

/* NetworkBudget 1.5.0 - Forecast & Dimensioning model */
.nbm-model-hero{background:linear-gradient(135deg,#fff 0%,#fbf4f8 54%,#f6f2f8 100%)}
.nbm-model-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:190px}.nbm-model-run-state{font-size:10.5px;color:#7a8190;text-align:right}
.nbm-source-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.nbm-source-chips span{padding:4px 8px;border:1px solid #e6dce4;border-radius:999px;background:#fff;color:#6c5168;font-size:9.5px;font-weight:700}
.nbm-model-pipeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 16px}.nbm-model-pipeline button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:8px 12px;border:1px solid #e3e6ec;border-radius:10px;background:#fff;color:#555d6f;font:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:.18s ease}.nbm-model-pipeline button span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:#f1f2f5;color:#777f8f;font-size:11px}.nbm-model-pipeline button:hover{border-color:#d6a5ca;color:var(--nbm-primary)}.nbm-model-pipeline button.is-active{border-color:rgba(185,7,143,.3);background:linear-gradient(135deg,#fff5fb,#f8edf5);color:#8d176f;box-shadow:0 4px 14px rgba(185,7,143,.08)}.nbm-model-pipeline button.is-active span{background:var(--nbm-primary);color:#fff}
.nbm-model-panel{display:none}.nbm-model-panel.is-active{display:block}.nbm-model-kpis{margin-bottom:14px}.nbm-model-layout{align-items:start}
.nbm-model-param-list{display:grid;gap:7px}.nbm-model-param{display:grid;grid-template-columns:minmax(0,1fr) minmax(135px,190px);align-items:center;gap:12px;padding:9px 10px;border:1px solid #eceef2;border-radius:8px;background:#fbfcfd}.nbm-model-param strong{display:block;font-size:11.5px;color:#2b2d3c}.nbm-model-param small{display:block;margin-top:3px;color:#7d8493;font-size:9.5px;line-height:1.35}.nbm-model-param-control{display:flex;align-items:center;justify-content:flex-end;gap:6px;color:#7a8190;font-size:10px}.nbm-param-input{width:112px;height:34px;border:1px solid #dfe3ea;border-radius:7px;background:#fff;padding:0 8px;text-align:right;font:inherit;font-size:11.5px;color:#272a38}.nbm-param-input:focus{outline:2px solid rgba(185,7,143,.12);border-color:#c85ba9}.nbm-param-value{font-size:12px;font-weight:800;color:#242636}
.nbm-model-tag{display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:999px;background:#f0f2f5;color:#626a79;font-size:9.5px;font-weight:800}.nbm-model-tag.normal{background:#eaf7f1;color:#14825f}.nbm-model-tag.watch{background:#eaf2fb;color:#2f6fa6}.nbm-model-tag.project{background:#fff0e5;color:#b65d17}
.nbm-method-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.nbm-method-compare>div{padding:14px;border:1px solid #e8eaf0;border-radius:10px;background:linear-gradient(180deg,#fff,#fafbfc)}.nbm-method-compare span,.nbm-method-compare small{display:block}.nbm-method-compare>div>span:first-child{font-size:10px;color:#7b8291;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.nbm-method-compare strong{display:block;margin:6px 0 3px;font-size:15px;color:#232536}.nbm-method-compare small{margin-bottom:10px;color:#747c8d}.nbm-model-note{margin-top:12px;padding:12px 14px;border-left:3px solid var(--nbm-primary);border-radius:0 8px 8px 0;background:#fbf5f9}.nbm-model-note strong{font-size:11.5px;color:#542347}.nbm-model-note p{margin:4px 0 0;color:#6c6470;font-size:11px;line-height:1.5}
.nbm-formula-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.nbm-formula-card{min-height:142px;padding:14px;border:1px solid #e7e9ee;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(33,28,40,.025)}.nbm-formula-step{display:inline-flex;margin-bottom:8px;padding:3px 7px;border-radius:999px;background:#f5eaf2;color:#8d176f;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.nbm-formula-card strong{display:block;margin-bottom:8px;font-size:12px;color:#242635}.nbm-formula-card code{display:block;min-height:48px;padding:8px;border-radius:7px;background:#f7f8fa;color:#4c5361;font-size:9.5px;line-height:1.45;white-space:normal}.nbm-formula-card small{display:block;margin-top:8px;color:#7d8492;font-size:9.5px}.nbm-model-calc-table{min-width:1240px}
.nbm-model-chart{min-height:270px;padding:10px 6px 0}.nbm-chart-legend{display:flex;justify-content:flex-end;gap:15px;margin-bottom:10px;color:#6c7382;font-size:10px}.nbm-chart-legend span{display:flex;align-items:center;gap:5px}.nbm-chart-legend i{display:inline-block;width:9px;height:9px;border-radius:3px}.nbm-chart-legend i.mobile{background:#b9078f}.nbm-chart-legend i.fixed{background:#4c8fd3}.nbm-model-bars{display:grid;grid-template-columns:repeat(12,minmax(20px,1fr));align-items:end;gap:7px;height:220px;border-bottom:1px solid #dfe3e9;padding:0 2px}.nbm-model-bar-col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:6px}.nbm-model-bar-stack{display:flex;align-items:flex-end;justify-content:center;gap:2px;width:100%;height:180px}.nbm-model-bar-stack span{display:block;width:38%;min-height:2px;border-radius:5px 5px 1px 1px}.nbm-model-bar-stack .mobile{background:linear-gradient(180deg,#c6239f,#a0067d)}.nbm-model-bar-stack .fixed{background:linear-gradient(180deg,#61a5e3,#3f83c4)}.nbm-model-bar-col small{font-size:9px;color:#7e8594;text-transform:capitalize}
.nbm-output-driver-list{display:grid;gap:9px}.nbm-output-driver-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:11px 12px;border:1px solid #e9ebef;border-radius:9px;background:#fbfcfd}.nbm-output-driver-list span{font-size:11px;font-weight:700;color:#414656}.nbm-output-driver-list strong{grid-row:1/3;grid-column:2;font-size:16px;color:#8d176f;align-self:center}.nbm-output-driver-list small{font-size:9.5px;color:#7c8494}
.nbm-model-bridge{display:flex;align-items:stretch;justify-content:space-between;gap:6px;margin-top:14px;overflow-x:auto}.nbm-model-bridge>div{flex:1 0 130px;padding:11px 10px;border:1px solid #e8e9ee;border-radius:9px;background:#fafbfc;text-align:center}.nbm-model-bridge strong{display:block;color:#6e245e;font-size:10px;letter-spacing:.05em}.nbm-model-bridge span{display:block;margin-top:4px;color:#727987;font-size:9.5px;line-height:1.35}.nbm-model-bridge b{display:flex;align-items:center;color:#b4b9c3;font-size:16px}
@media(max-width:1200px){.nbm-formula-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nbm-model-param{grid-template-columns:minmax(0,1fr) 150px}.nbm-model-bridge{justify-content:flex-start}}
@media(max-width:900px){.nbm-model-actions{align-items:flex-start}.nbm-model-run-state{text-align:left}.nbm-model-pipeline{grid-template-columns:1fr 1fr}.nbm-method-compare{grid-template-columns:1fr}.nbm-model-bars{gap:4px}.nbm-model-bar-stack span{width:42%}}
@media(max-width:620px){.nbm-model-pipeline{grid-template-columns:1fr 1fr;gap:6px}.nbm-model-pipeline button{justify-content:flex-start;padding:7px 9px;font-size:10.5px}.nbm-model-param{grid-template-columns:1fr;gap:6px}.nbm-model-param-control{justify-content:flex-start}.nbm-param-input{width:120px}.nbm-formula-grid{grid-template-columns:1fr}.nbm-formula-card{min-height:0}.nbm-model-chart{min-height:230px}.nbm-model-bars{height:190px;gap:3px}.nbm-model-bar-stack{height:150px}.nbm-model-bar-col small{font-size:8px}.nbm-model-bridge{padding-bottom:5px}.nbm-model-kpis{grid-template-columns:1fr 1fr}}
.nbm-control-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}

/* NetworkBudget 1.7.0: OLT, prix unitaires, modernisation */
.nbm-muted{color:#98a0af}
.nbm-mini-metric{min-width:108px}
.nbm-mini-metric>div:first-child{display:flex;gap:4px;align-items:baseline}.nbm-mini-metric strong{font-size:11.5px;color:#252b3c}.nbm-mini-metric span{font-size:10px;color:#7b8394}.nbm-mini-metric small{display:block;margin-top:3px;font-size:9.5px;color:#7d8494;white-space:nowrap}
.nbm-progress{height:5px;margin-top:5px;background:#eceff3;border-radius:999px;overflow:hidden}.nbm-progress i{display:block;height:100%;min-width:2px;background:linear-gradient(90deg,var(--nbm-primary),#d04da9);border-radius:999px}
.nbm-dual-resource{display:grid;gap:8px;min-width:120px}.nbm-olt-table{min-width:1680px}.nbm-olt-table th:nth-child(1){min-width:150px}.nbm-olt-table th:nth-child(2){min-width:120px}.nbm-olt-table th:nth-child(3){min-width:110px}.nbm-olt-table th:nth-child(4){min-width:130px}.nbm-olt-table th:nth-child(5){min-width:145px}.nbm-olt-table th:nth-child(6){min-width:130px}.nbm-olt-table th:nth-child(9){min-width:125px}.nbm-olt-table th:nth-child(12){min-width:125px}
.nbm-olt-kpis{grid-template-columns:repeat(4,minmax(160px,1fr))}.nbm-olt-mobile{display:none}.nbm-olt-mobile-card{background:#fff;border:1px solid var(--nbm-border);border-radius:12px;padding:14px;box-shadow:0 4px 16px rgba(15,23,42,.045);display:grid;gap:12px}.nbm-olt-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.nbm-olt-card-head strong{display:block;color:#252338}.nbm-olt-card-head small{display:block;margin-top:3px;color:#7c8393;font-size:10px}.nbm-olt-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nbm-olt-card-grid>div{background:#f8f9fb;border:1px solid #eceef2;border-radius:8px;padding:8px}.nbm-olt-card-grid span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#8a91a0}.nbm-olt-card-grid b{display:block;margin-top:3px;font-size:11.5px;color:#2a3042}.nbm-olt-card-foot{display:flex;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid #eceef2;font-size:10.5px;color:#747c8d}

.nbm-price-table{min-width:1250px}.nbm-price-missing{color:#b42318;font-weight:750}.nbm-chip{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f4ecf2;color:#7f1d64;font-size:10px;font-weight:750;white-space:nowrap}

.nbm-obso-kpis{grid-template-columns:repeat(6,minmax(140px,1fr))}.nbm-obso-stream-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.nbm-obso-stream-card{appearance:none;text-align:left;border:1px solid #e4e7ed;background:#fff;border-radius:10px;padding:12px 13px;cursor:pointer;transition:.15s ease}.nbm-obso-stream-card:hover{border-color:#d7accd;box-shadow:0 5px 16px rgba(71,31,65,.07);transform:translateY(-1px)}.nbm-obso-stream-card span{display:block;color:#6d7587;font-size:10px;font-weight:700}.nbm-obso-stream-card strong{display:block;margin-top:4px;font-size:14px;color:#272b3d}.nbm-obso-stream-card small{display:block;margin-top:4px;color:#8b92a1;font-size:10px}.nbm-obso-table{min-width:1850px}.nbm-obso-table th:nth-child(1){min-width:150px}.nbm-obso-table th:nth-child(2){min-width:140px}.nbm-obso-table th:nth-child(3){min-width:130px}.nbm-obso-table th:nth-child(4){min-width:170px}.nbm-obso-table th:nth-child(10){min-width:120px}.nbm-obso-table th:last-child{min-width:180px}.nbm-row-actions{display:flex;gap:5px;justify-content:flex-end}.nbm-obso-source{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 16px}.nbm-obso-source>div{background:#f8f8fb;border:1px solid #ebecef;border-radius:9px;padding:10px}.nbm-obso-source span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#7c8495}.nbm-obso-source strong{display:block;margin-top:4px;color:#2c2e40;font-size:14px}

@media(max-width:1450px){.nbm-obso-kpis{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:900px){.nbm-olt-desktop{display:none}.nbm-olt-mobile{display:grid;gap:10px}.nbm-olt-kpis{grid-template-columns:1fr 1fr}.nbm-obso-kpis{grid-template-columns:1fr 1fr}.nbm-obso-source{grid-template-columns:1fr 1fr}.nbm-obso-table{min-width:1650px}}
@media(max-width:560px){.nbm-olt-kpis,.nbm-obso-kpis{grid-template-columns:1fr}.nbm-olt-card-grid{grid-template-columns:1fr}.nbm-olt-card-foot{flex-direction:column}.nbm-obso-source{grid-template-columns:1fr 1fr}.nbm-row-actions{flex-direction:column;align-items:stretch}}
.nbm-budget-cell{display:flex;min-width:132px;flex-direction:column;align-items:flex-start;gap:4px}.nbm-budget-cell strong{color:#2b3042;font-size:11px}.nbm-budget-cell small,.nbm-budget-cell>span{color:#7c8494;font-size:9px;line-height:1.3}.nbm-budget-cell .nbm-btn{margin-top:3px}
