/* ══════════════════════════════════════════════════════════════════
   AEGIS Dashboard — Styles
   ICC · International Chamber of Commerce
   Juillet 2026
══════════════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --bg:#080b10;--bg2:#0d1117;--bg3:#131920;--bg4:#1a2332;--bg5:#212d3d;
  --border:#ffffff0a;--border2:#ffffff14;--border3:#ffffff1e;
  --text:#dde3ed;--text2:#7d8fa8;--text3:#3f4f63;
  --red:#ff4757;--red-d:#2a0f12;--red-m:#ff475730;
  --orange:#ff9f43;--orange-d:#251507;--orange-m:#ff9f4328;
  --blue:#4dabf7;--blue-d:#071828;--blue-m:#4dabf728;
  --green:#00d68f;--green-d:#03200f;--green-m:#00d68f28;
  --purple:#845ef7;--purple-m:#845ef728;
  --yellow:#ffd43b;
  --sidebar:220px;--topbar:52px;
  --font:'Segoe UI',system-ui,-apple-system,sans-serif;
  --r:8px;--r2:12px;--r3:16px;
  --shadow:0 4px 24px #00000060;
}
html,body{height:100%;overflow:hidden;}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;display:flex;flex-direction:column;}
.app{display:flex;height:100vh;overflow:hidden;}

/* SIDEBAR */
.sidebar{width:var(--sidebar);flex-shrink:0;background:var(--bg2);border-right:0.5px solid var(--border);display:flex;flex-direction:column;position:relative!important;z-index:20;transition:width .25s ease;overflow-y:auto;overflow-x:hidden;}
.sidebar.collapsed{width:54px;}
.sb-logo{height:var(--topbar);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 12px;border-bottom:0.5px solid var(--border);flex-shrink:0;overflow:hidden;}
.sb-logo-mark{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.02em;white-space:nowrap;}
.sb-logo-mark span{color:var(--blue);}
.sb-logo-sub{font-size:10px;color:var(--text3);white-space:nowrap;}
.sb-collapse{margin-left:auto;background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:4px;border-radius:6px;flex-shrink:0;transition:color .15s;}
.sb-collapse:hover{color:var(--text);}
.sidebar.collapsed .sb-logo-mark,.sidebar.collapsed .sb-logo-sub,.sidebar.collapsed .sb-collapse-show{display:none;}
.sb-collapse-hide{display:block;}
.sidebar.collapsed .sb-collapse-hide{display:none;}
.sidebar.collapsed .sb-collapse-show{display:block;}
.sb-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 0;}
.sb-nav::-webkit-scrollbar{width:3px;}
.sb-nav::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px;}
.sb-section{margin-bottom:4px;}
.sb-section-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;padding:8px 16px 4px;white-space:nowrap;overflow:hidden;}
.sidebar.collapsed .sb-section-label{opacity:0;}
.nav-item{display:flex;align-items:center;gap:10px;padding:7px 14px;margin:1px 8px;border-radius:var(--r);cursor:pointer;color:var(--text2);transition:background .12s,color .12s;text-decoration:none;white-space:nowrap;overflow:hidden;position:relative;}
.nav-item:hover{background:var(--bg3);color:var(--text);}
.nav-item.active{background:var(--blue-d);color:var(--blue);border:0.5px solid var(--blue-m);}
.nav-item i{font-size:16px;flex-shrink:0;}
.nav-label{font-size:12.5px;font-weight:500;}
.sidebar.collapsed .nav-label{opacity:0;pointer-events:none;}
.nav-badge{margin-left:auto;font-size:10px;font-weight:600;padding:1px 6px;border-radius:20px;flex-shrink:0;}
.nb-red{background:var(--red-m);color:var(--red);}
.nb-red-solid{background:var(--red)!important;color:#fff!important;}
.nb-orange{background:var(--orange-m);color:var(--orange);}
.nb-blue{background:var(--blue-m);color:var(--blue);}
.nb-gray{background:var(--bg4);color:var(--text2);}
.sidebar.collapsed .nav-badge{display:none;}
.nav-item .tooltip{display:none;position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:var(--bg5);border:0.5px solid var(--border2);border-radius:var(--r);padding:5px 10px;font-size:12px;color:var(--text);white-space:nowrap;z-index:999;pointer-events:none;box-shadow:var(--shadow);}
.sidebar.collapsed .nav-item:hover .tooltip{display:block;}
.sb-footer{padding:12px;border-top:0.5px solid var(--border);}
.config-btn{display:flex;align-items:center;gap:8px;width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:7px 10px;cursor:pointer;color:var(--text2);font-size:12px;font-family:var(--font);transition:all .15s;white-space:nowrap;overflow:hidden;}
.config-btn:hover{background:var(--bg4);color:var(--text);}
.sidebar.collapsed .config-btn-label{display:none;}

/* MAIN */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;}

/* TOPBAR */
.topbar{height:var(--topbar);display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:0.5px solid var(--border);background:var(--bg2);flex-shrink:0;gap:12px;}
.topbar-left{display:flex;align-items:center;gap:10px;min-width:0;}
.breadcrumb{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3);}
.breadcrumb-page{color:var(--text);font-weight:500;font-size:13px;}
.topbar-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.live-chip{display:flex;align-items:center;gap:5px;background:var(--green-m);border:0.5px solid #00d68f35;border-radius:20px;padding:3px 9px;font-size:11px;color:var(--green);font-weight:500;}
.dot{width:5px;height:5px;border-radius:50%;background:var(--green);animation:blink 2s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.3;}}
.ts{font-size:11px;color:var(--text3);}
.tb-btn{background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:6px 8px;cursor:pointer;color:var(--text2);font-size:14px;display:flex;align-items:center;transition:all .15s;}
.tb-btn:hover{background:var(--bg4);color:var(--text);}
.search-bar{display:flex;align-items:center;gap:7px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:5px 12px;width:200px;}
.search-bar input{background:none;border:none;color:var(--text);font-size:12px;font-family:var(--font);outline:none;width:100%;}
.search-bar input::placeholder{color:var(--text3);}
.search-bar i{font-size:13px;color:var(--text3);}

/* REFRESH CHIP */
.refresh-chip{display:flex;align-items:center;gap:6px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:4px 10px;font-size:11px;color:var(--text2);cursor:default;}
.refresh-chip select{background:none;border:none;color:var(--text2);font-size:11px;font-family:var(--font);outline:none;cursor:pointer;}
.refresh-chip select option{background:var(--bg3);}
.refresh-countdown{font-size:10px;color:var(--text3);min-width:36px;text-align:right;}
.refresh-bar{position:absolute;bottom:0;left:0;height:2px;background:var(--blue);transition:width 1s linear;border-radius:0;}

/* PAGES */
.pages{flex:1;overflow:hidden;position:relative;min-width:0;}
.page{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;padding:20px 24px 40px;display:none;background:var(--bg);}
.page::-webkit-scrollbar{width:5px;}
.page::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
.page.active{display:block;}

/* COMPONENTS */
.page-header{margin-bottom:20px;}
.page-title{font-size:20px;font-weight:500;letter-spacing:-.02em;color:var(--text);margin-bottom:4px;}
.page-sub{font-size:12px;color:var(--text3);}
.kpi-row{display:grid;gap:10px;margin-bottom:16px;}
.kpi-4{grid-template-columns:repeat(4,1fr);}
.kpi-1{grid-template-columns:1fr;}
.kpi-2{grid-template-columns:repeat(2,1fr);}
.kpi-3{grid-template-columns:repeat(3,1fr);}
.kpi{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);padding:14px 16px;position:relative;overflow:hidden;transition:border-color .2s;cursor:default;}
.kpi:hover{border-color:var(--border2);}
.kpi::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;border-radius:var(--r2) var(--r2) 0 0;}
.k-red::after{background:var(--red);}
.k-orange::after{background:var(--orange);}
.k-blue::after{background:var(--blue);}
.k-green::after{background:var(--green);}
.k-purple::after{background:var(--purple);}
.kpi-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;display:flex;align-items:center;gap:4px;}
.kpi-val{font-size:28px;font-weight:500;letter-spacing:-.03em;margin-bottom:3px;}
.k-red .kpi-val{color:var(--red);}
.k-orange .kpi-val{color:var(--orange);}
.k-blue .kpi-val{color:var(--blue);}
.k-green .kpi-val{color:var(--green);}
.k-purple .kpi-val{color:var(--purple);}
.kpi-sub{font-size:11px;color:var(--text3);}
.kpi-sub b{color:var(--text2);font-weight:500;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px;}
.col-span2{grid-column:span 2;}
.card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);overflow:hidden;margin-bottom:12px;}
.card-last{margin-bottom:0;}
.ch{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:0.5px solid var(--border);}
.ch-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ch-title{font-size:13px;font-weight:500;color:var(--text);}
.ch-right{display:flex;align-items:center;gap:6px;}
.see-all{font-size:11px;color:var(--text3);background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:3px;padding:0;transition:color .15s;}
.see-all:hover{color:var(--blue);}
.chip{font-size:10px;font-weight:600;letter-spacing:.03em;padding:2px 7px;border-radius:20px;display:inline-flex;align-items:center;gap:3px;}
.c-red{background:var(--red-m);color:var(--red);}
.c-orange{background:var(--orange-m);color:var(--orange);}
.c-blue{background:var(--blue-m);color:var(--blue);}
.c-green{background:var(--green-m);color:var(--green);}
.c-purple{background:var(--purple-m);color:var(--purple);}
.c-gray{background:var(--bg4);color:var(--text2);}
.tabs-bar{display:flex;gap:2px;padding:8px 14px;border-bottom:0.5px solid var(--border);overflow-x:auto;flex-wrap:nowrap;flex-shrink:0;}
.tbtab{font-size:11px;padding:3px 10px;border-radius:6px;background:none;border:none;color:var(--text3);cursor:pointer;transition:all .15s;font-family:var(--font);}
.tbtab.on{background:var(--bg4);color:var(--text);}
.tbtab:hover:not(.on){color:var(--text2);}
.trow{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .1s;}
.trow:last-child{border-bottom:none;}
.trow:hover{background:var(--bg3);}
.trow-title{font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.trow-meta{font-size:11px;color:var(--text3);margin-top:2px;display:flex;gap:8px;align-items:center;}
.trow-main{flex:1;min-width:0;}
.trow-right{display:flex;align-items:center;gap:7px;flex-shrink:0;}
.sev-bar{width:3px;height:34px;border-radius:2px;flex-shrink:0;}
.sb-crit{background:var(--red);}
.sb-high{background:var(--orange);}
.sb-med{background:var(--blue);}
.sb-low{background:var(--green);}
.sb-info{background:var(--purple);}
.icon-box{width:28px;height:28px;border-radius:7px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;}
.ib-red{background:var(--red-m);color:var(--red);}
.ib-orange{background:var(--orange-m);color:var(--orange);}
.ib-blue{background:var(--blue-m);color:var(--blue);}
.ib-green{background:var(--green-m);color:var(--green);}
.ib-purple{background:var(--purple-m);color:var(--purple);}
.ib-gray{background:var(--bg4);color:var(--text2);}
.status{font-size:10px;font-weight:500;padding:2px 8px;border-radius:20px;}
.st-open{background:var(--red-m);color:var(--red);}
.st-prog{background:var(--orange-m);color:var(--orange);}
.st-ok{background:var(--green-m);color:var(--green);}
.st-warn{background:var(--orange-m);color:var(--orange);}
.st-info{background:var(--blue-m);color:var(--blue);}
.st-gray{background:var(--bg4);color:var(--text2);}
.st-purple{background:var(--purple-m);color:var(--purple);}
.age{font-size:11px;color:var(--text3);min-width:36px;text-align:right;}
.link-chip{font-size:11px;color:var(--blue);background:var(--blue-d);border:0.5px solid var(--blue-m);border-radius:6px;padding:2px 8px;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:all .15s;white-space:nowrap;}
.link-chip:hover{background:var(--blue-m);color:#fff;}
.pbar{height:3px;background:var(--border2);border-radius:2px;overflow:hidden;margin-top:5px;}
.pbar-fill{height:100%;border-radius:2px;transition:width .3s;}
.pb-red{background:var(--red);}
.pb-orange{background:var(--orange);}
.pb-blue{background:var(--blue);}
.pb-green{background:var(--green);}
.sdot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block;}
.sd-ok{background:var(--green);}
.sd-warn{background:var(--orange);}
.sd-err{background:var(--red);}
.sd-off{background:var(--text3);}
.sd-info{background:var(--blue);}
.az-grid{display:grid;grid-template-columns:repeat(3,1fr);}
.az-cell{padding:11px 14px;border-right:0.5px solid var(--border);border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .12s;}
.az-cell:hover{background:var(--bg3);}
.az-cell:nth-child(3n){border-right:none;}
.az-cell:nth-child(n+13){border-bottom:none;}
.az-name{font-size:12px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:6px;margin-bottom:3px;}
.az-sub{font-size:10.5px;color:var(--text3);}
.az-sub.warn{color:var(--orange);}
.az-sub.err{color:var(--red);}
.ret-row{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .12s;}
.ret-row:last-child{border-bottom:none;}
.ret-row:hover{background:var(--bg3);}
.ret-date{width:70px;flex-shrink:0;}
.ret-date-label{font-size:10px;font-weight:600;padding:2px 6px;border-radius:5px;white-space:nowrap;text-align:center;margin-bottom:3px;}
.rd-urgent{background:var(--red-m);color:var(--red);}
.rd-soon{background:var(--orange-m);color:var(--orange);}
.rd-future{background:var(--blue-m);color:var(--blue);}
.ret-main{flex:1;min-width:0;}
.ret-name{font-size:12.5px;color:var(--text);}
.ret-sub{font-size:11px;color:var(--text3);margin-top:2px;}
.device-stat{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:0.5px solid var(--border);}
.device-stat:last-child{border-bottom:none;}
.ds-left{display:flex;align-items:center;gap:10px;}
.ds-label{font-size:12.5px;color:var(--text);}
.ds-sub{font-size:11px;color:var(--text3);margin-top:1px;}
.ds-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;}
.ds-count{font-size:16px;font-weight:500;color:var(--text);}
.wa-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 100px;align-items:center;gap:8px;padding:9px 16px;border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .12s;}
.wa-row:last-child{border-bottom:none;}
.wa-row:hover{background:var(--bg3);}
.wa-row.header{padding:7px 16px;background:var(--bg3);cursor:default;}
.wa-row.header:hover{background:var(--bg3);}
.wa-col-label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;}
.wa-name{font-size:12.5px;color:var(--text);font-weight:500;display:flex;align-items:center;gap:6px;}
.wa-sub{font-size:11px;color:var(--text3);}
.wa-val{font-size:12px;color:var(--text2);}
.rb-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;align-items:center;gap:8px;padding:9px 16px;border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .12s;}
.rb-row:last-child{border-bottom:none;}
.rb-row:hover{background:var(--bg3);}
.rb-row.header{padding:7px 16px;background:var(--bg3);cursor:default;}
.detail-overlay{position:fixed;inset:0;background:#00000050;z-index:80;display:none;}
.detail-overlay.open{display:block;}
.detail-panel{position:fixed;top:0;right:0;bottom:0;width:480px;max-width:95vw;background:var(--bg2);border-left:0.5px solid var(--border2);z-index:81;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s ease;}
.detail-panel.open{transform:translateX(0);}
.dp-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 16px;border-bottom:0.5px solid var(--border);flex-shrink:0;}
.dp-title{font-size:14px;font-weight:500;color:var(--text);line-height:1.4;margin-bottom:4px;}
.dp-sub{font-size:11px;color:var(--text3);}
.dp-close{background:none;border:none;color:var(--text2);cursor:pointer;font-size:16px;padding:2px;margin-left:12px;flex-shrink:0;transition:color .15s;}
.dp-close:hover{color:var(--text);}
.dp-body{flex:1;overflow-y:auto;padding:16px 20px;}
.dp-body::-webkit-scrollbar{width:4px;}
.dp-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px;}
.dp-section{margin-bottom:20px;}
.dp-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:8px;}
.dp-field{display:flex;justify-content:space-between;align-items:flex-start;padding:7px 0;border-bottom:0.5px solid var(--border);}
.dp-field:last-child{border-bottom:none;}
.dp-key{font-size:11px;color:var(--text3);flex-shrink:0;margin-right:12px;}
.dp-val{font-size:12px;color:var(--text);text-align:right;word-break:break-all;}
.dp-actions{padding:12px 20px;border-top:0.5px solid var(--border);flex-shrink:0;display:flex;gap:8px;flex-wrap:wrap;}
.dp-btn{font-size:12px;font-weight:500;padding:7px 14px;border-radius:var(--r);border:none;cursor:pointer;font-family:var(--font);display:flex;align-items:center;gap:6px;text-decoration:none;transition:all .15s;}
.dp-btn-primary{background:var(--blue);color:#fff;}
.dp-btn-primary:hover{opacity:.85;}
.dp-btn-sec{background:var(--bg4);color:var(--text2);border:0.5px solid var(--border2);}
.dp-btn-sec:hover{color:var(--text);}
.dp-btn-danger{background:var(--red-m);color:var(--red);border:0.5px solid #ff475730;}
.dp-btn-danger:hover{background:var(--red-d);}
.modal-overlay{position:fixed;inset:0;background:#00000070;z-index:100;display:none;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--bg2);border:0.5px solid var(--border2);border-radius:var(--r3);padding:28px;width:460px;max-width:95vw;}
.modal h2{font-size:15px;font-weight:500;margin-bottom:5px;}
.modal p{font-size:12px;color:var(--text3);margin-bottom:20px;}
.fg{margin-bottom:12px;}
.fg label{display:block;font-size:10px;color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:5px;}
.fg input{width:100%;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:8px 12px;color:var(--text);font-size:12.5px;font-family:var(--font);outline:none;transition:border-color .15s;}
.fg input:focus{border-color:var(--blue);}
.fg input::placeholder{color:var(--text3);}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;}
.btn{font-size:12px;font-weight:500;padding:7px 16px;border-radius:var(--r);border:none;cursor:pointer;font-family:var(--font);display:flex;align-items:center;gap:6px;transition:all .15s;}
.btn-primary{background:var(--blue);color:#fff;}
.btn-primary:hover{opacity:.85;}
.btn-sec{background:var(--bg4);color:var(--text2);border:0.5px solid var(--border2);}
.btn-sec:hover{color:var(--text);}
.toast{position:fixed;bottom:20px;right:20px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);padding:10px 14px;font-size:12px;color:var(--text);display:none;z-index:200;align-items:center;gap:8px;box-shadow:var(--shadow);}
.toast.show{display:flex;}
.empty{padding:32px;text-align:center;color:var(--text3);font-size:12px;}
.empty i{font-size:28px;margin-bottom:8px;display:block;opacity:.4;}
.sdiv{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin:20px 0 10px;display:flex;align-items:center;gap:10px;}
.sdiv::after{content:'';flex:1;height:0.5px;background:var(--border);}
.sum-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:10px;}
.sum-card{background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--r2);overflow:hidden;cursor:pointer;transition:border-color .2s;}
.sum-card:hover{border-color:var(--border2);}
.az-login-btn{display:flex;align-items:center;gap:8px;width:100%;background:var(--blue-d);border:0.5px solid var(--blue-m);border-radius:var(--r);padding:8px 10px;cursor:pointer;color:var(--blue);font-size:12px;font-family:var(--font);transition:all .15s;white-space:nowrap;overflow:hidden;margin-bottom:6px;}
.az-login-btn:hover{background:var(--blue-m);}
.az-user-chip{display:flex;align-items:center;gap:7px;padding:7px 10px;background:var(--bg3);border:0.5px solid var(--border2);border-radius:var(--r);margin-bottom:6px;overflow:hidden;}
.az-avatar{width:22px;height:22px;border-radius:50%;background:var(--blue-m);color:var(--blue);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.az-user-name{font-size:11px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;}
.az-logout{background:none;border:none;color:var(--text3);cursor:pointer;font-size:13px;padding:2px;flex-shrink:0;transition:color .15s;}
.az-logout:hover{color:var(--red);}
.sidebar.collapsed .az-user-name,.sidebar.collapsed .az-login-btn span,.sidebar.collapsed .az-logout{display:none;}
.sk{background:var(--bg3);border-radius:4px;animation:sk 1.4s infinite;}
.sk-row{height:38px;margin:1px 0;border-bottom:0.5px solid var(--border);}
@keyframes sk{0%,100%{opacity:.5;}50%{opacity:1;}}
.loading-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;gap:10px;color:var(--text3);font-size:12px;}
.spinner{width:20px;height:20px;border:2px solid var(--border2);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.az-noauth{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;gap:8px;color:var(--text3);font-size:12px;text-align:center;}
.az-noauth i{font-size:24px;opacity:.4;margin-bottom:4px;}
.az-noauth-btn{margin-top:6px;display:inline-flex;align-items:center;gap:6px;background:var(--blue-d);border:0.5px solid var(--blue-m);border-radius:var(--r);padding:7px 14px;cursor:pointer;color:var(--blue);font-size:12px;font-family:var(--font);transition:all .15s;}
.az-noauth-btn:hover{background:var(--blue-m);}
.err-card{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:var(--red-d);border-bottom:0.5px solid var(--border);font-size:12px;color:var(--text2);}
.err-card i{color:var(--red);font-size:15px;flex-shrink:0;margin-top:1px;}

/* EXCHANGE TABLE */
.exo-table{width:100%;border-collapse:collapse;}
.exo-table th{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;padding:7px 16px;border-bottom:0.5px solid var(--border);text-align:left;background:var(--bg3);}
.exo-table td{padding:9px 16px;border-bottom:0.5px solid var(--border);font-size:12px;color:var(--text2);vertical-align:middle;}
.exo-table tr:last-child td{border-bottom:none;}
.exo-table tr:hover td{background:var(--bg3);}
.no-archive-badge{font-size:10px;background:var(--orange-m);color:var(--orange);padding:2px 7px;border-radius:20px;font-weight:600;}

/* SHAREPOINT DEDICATED */
.sp-site-row{display:grid;grid-template-columns:2.5fr 1fr 1fr 110px 60px;align-items:center;gap:8px;padding:9px 16px;border-bottom:0.5px solid var(--border);cursor:pointer;transition:background .12s;}
.sp-site-row:last-child{border-bottom:none;}
.sp-site-row:hover{background:var(--bg3);}
.sp-site-row.header{padding:7px 16px;background:var(--bg3);cursor:default;}

/* LAST REFRESH TIMESTAMP */
.last-refresh{font-size:10px;color:var(--text3);padding:6px 16px;border-top:0.5px solid var(--border);display:flex;align-items:center;gap:5px;}

@media(max-width:1100px){.grid3{grid-template-columns:1fr 1fr;}}
@media(max-width:800px){
  .sidebar{position:fixed;height:100vh;z-index:50;}
  .grid2,.grid3,.sum-grid{grid-template-columns:1fr;}
  .wa-row{grid-template-columns:1fr 1fr;}
  .wa-row > *:nth-child(n+3){display:none;}
  .kpi-4{grid-template-columns:repeat(2,1fr);}
}

.fs-panel .card{border-radius:0;}
.fs-panel .sdiv{border-radius:0;}

[data-theme="light"]{
  --bg:#f8fafc;--bg2:#ffffff;--bg3:#f1f5f9;--bg4:#e8edf5;--bg5:#dde3ed;
  --border:#e2e8f0;--border2:#cbd5e1;--border3:#b0bec5;
  --text:#0f172a;--text2:#475569;--text3:#94a3b8;
  --red:#dc2626;--red-d:#fef2f2;--red-m:#fecaca;
  --orange:#ea580c;--orange-d:#fff7ed;--orange-m:#fed7aa;
  --green:#16a34a;--green-d:#f0fdf4;--green-m:#bbf7d0;
  --blue:#2563eb;--blue-d:#eff6ff;--blue-m:#bfdbfe;
  --yellow:#ca8a04;--yellow-d:#fefce8;--yellow-m:#fde68a;
  --purple:#9333ea;
}
[data-theme="light"] .sidebar{background:var(--bg2);border-right:1px solid var(--border);}
[data-theme="light"] .topbar{background:var(--bg2);border-bottom:1px solid var(--border);}
[data-theme="light"] .card{background:var(--bg2);border-color:var(--border);}
[data-theme="light"] .nav-item:hover{background:var(--bg3);}
[data-theme="light"] .nav-item.active{background:var(--blue-d);color:var(--blue);}

/* ── Splash screen animation ── */
@keyframes splashFadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* ══════════════════════════════════════════════════════════════════
   CISCO RESTCONF — Styles dédiés
══════════════════════════════════════════════════════════════════ */
.cisco-switch-div{font-size:14px;color:var(--text2);text-transform:uppercase;letter-spacing:.1em;margin:0 0 10px;display:flex;align-items:center;gap:10px;}
.cisco-switch-div::after{content:'';flex:1;height:0.5px;background:var(--border2);}
.cisco-stack-div{font-size:11px;color:var(--text3);letter-spacing:.1em;margin:20px 0 10px;display:flex;align-items:center;gap:10px;}
.cisco-switch-container{margin-bottom:15px}
.cisco-stack-container{display:grid;gap:8px;flex-wrap:wrap;grid-template-columns:50px 50px 50px 50px 50px 736px 136px;}
.cisco-stack-card{width:50px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;padding:5px;}
.cisco-chart-container{display:grid;grid-template-columns:repeat(3,1fr) 200px;gap:20px;margin-top:12px;}
.cisco-chart-card{position:relative;height:210px;border-radius:8px;overflow:hidden;}
.cisco-chart-card canvas{width:100%!important;height:100%!important;}
.cisco-port-container{display:grid;grid-template-columns:repeat(24,26px);grid-template-rows:repeat(2,14px);gap:4px;padding:10px;border-radius:8px;background:var(--bg2);border:0.5px solid var(--border);}
.cisco-modport-container{display:grid;grid-template-columns:repeat(4,26px);grid-template-rows:repeat(2,14px);gap:4px;padding:10px;border-radius:8px;background:var(--bg2);border:0.5px solid var(--border);}
.cisco-port-number{width:26px;height:14px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:9px;font-weight:800;}
.cisco-template-menu{display:none;margin-left:20px;flex-direction:column;}
.cisco-hidden{display:none;}
.cisco-tabs-bar{display:flex;gap:2px;padding:8px 0;border-bottom:0.5px solid var(--border);}

@keyframes splashAuto{0%,80%{opacity:1;display:block}100%{opacity:0;visibility:hidden}}

#home-sec-preview{overflow:hidden;width:100%;}
/* ══════════════════════════════════════════════════
   MODE TV — écrans 1920x1080
══════════════════════════════════════════════════ */
body.tv-mode .sidebar { display: none; }
body.tv-mode .topbar { height: 38px; }
body.tv-mode .page { padding: 8px 12px 12px; }

/* Tiles très compactes */
body.tv-mode .kpi { padding: 7px 10px; }
body.tv-mode .kpi-val { font-size: 24px; margin-bottom: 1px; line-height: 1.1; }
body.tv-mode .kpi-label { font-size: 9px; margin-bottom: 3px; }
body.tv-mode .kpi-sub { font-size: 9px; line-height: 1.3; }
body.tv-mode .kpi-row { gap: 6px; margin-bottom: 6px; }
body.tv-mode .kpi::after { height: 1.5px; }

/* Cards et listes compactes */
body.tv-mode .card { margin-bottom: 6px; }
body.tv-mode .ch { padding: 6px 10px; }
body.tv-mode .ch-title { font-size: 12px; }
body.tv-mode .sdiv { padding: 4px 10px; font-size: 10px; margin: 6px 0 3px; }
body.tv-mode .trow { padding: 5px 10px; }
body.tv-mode .trow-title { font-size: 12px; }
body.tv-mode .trow-meta { font-size: 9px; margin-top: 1px; }
body.tv-mode .wa-row { padding: 5px 10px; }
body.tv-mode .chip { font-size: 9px; padding: 1px 5px; }
body.tv-mode .status { font-size: 9px; padding: 1px 6px; }

/* Masquer les éléments interactifs */
body.tv-mode .see-all,
body.tv-mode #global-search,
body.tv-mode #global-search-results,
body.tv-mode .tabs-bar input,
body.tv-mode .tabs-bar select,
body.tv-mode input[type="text"],
body.tv-mode select,
body.tv-mode button[onclick*="reset"],
body.tv-mode button[onclick*="Filters"] { display: none !important; }

/* Vue d'ensemble : tout doit tenir sans scroll */
body.tv-mode #page-home { overflow: hidden; }
body.tv-mode #page-home .card { display: none; }
body.tv-mode #page-home .sdiv { display: none; }
body.tv-mode #page-home .kpi-row { margin-bottom: 5px; }
body.tv-mode #page-home .kpi { padding: 6px 9px; }
body.tv-mode #page-home .kpi-val { font-size: 21px; }
