
/* access-guard — modale double-auth + toasts (core) */
.ag-ov { position:fixed; inset:0; z-index:4000; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; backdrop-filter:blur(3px); }
.ag-modal { background:#18181b; border:1px solid rgba(var(--p-base-rgb),.35); border-radius:12px; padding:1.3rem 1.4rem; width:min(420px,92vw); box-shadow:0 12px 40px rgba(0,0,0,.6); }
.ag-modal h3 { margin:0 0 .5rem; color:var(--p-base); font-size:1rem; }
.ag-modal p { margin:0 0 .8rem; font-size:.82rem; color:#a1a1aa; line-height:1.5; }
.ag-modal input[type=password] { width:100%; box-sizing:border-box; background:rgba(39,39,42,.7); color:#fafafa; border:1px solid rgba(255,255,255,.15); border-radius:7px; padding:.5rem .65rem; font-size:.9rem; }
.ag-err { color:#f87171; font-size:.76rem; min-height:1.1em; margin:.35rem 0 0; }
.ag-actions { display:flex; justify-content:flex-end; gap:.55rem; margin-top:.9rem; }
.ag-actions button { border-radius:7px; padding:.42rem .9rem; font-size:.82rem; cursor:pointer; border:1px solid rgba(255,255,255,.14); background:rgba(39,39,42,.6); color:#d4d4d8; }
.ag-actions .ag-primary { background:rgba(var(--p-base-rgb),.18); color:var(--p-base); border-color:rgba(var(--p-base-rgb),.5); }
.ag-actions .ag-primary:hover { background:rgba(var(--p-base-rgb),.32); }
.ag-actions button:disabled { opacity:.5; cursor:wait; }

#ag-toasts { position:fixed; bottom:1.1rem; right:1.1rem; z-index:4100; display:flex; flex-direction:column; gap:.5rem; }
.ag-toast { background:#18181b; border:1px solid rgba(255,255,255,.12); border-left-width:3px; border-radius:8px; padding:.55rem .8rem; font-size:.8rem; color:#e4e4e7; box-shadow:0 6px 20px rgba(0,0,0,.5); max-width:340px; transition:opacity .3s, transform .3s; }
.ag-toast.ag-out { opacity:0; transform:translateX(12px); }
.ag-ok { border-left-color:#4ade80; }
.ag-warn { border-left-color:#fbbf24; }
.ag-info { border-left-color:var(--p-base); }

/* Écran "accès restreint" (onglet bloqué au niveau courant) */
/* z-index 990 : au-dessus du contenu (sidebars ~250) mais SOUS la couche des modales (.modal-backdrop
   = 1000) → la modale de login/step-up reste accessible pour ré-élever le niveau. */
#ag-blocked { position:fixed; left:0; right:0; bottom:0; z-index:990; background:rgba(10,10,12,.93); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; }
.agb-box { text-align:center; max-width:460px; padding:2rem 2.4rem; }
.agb-ic { color:var(--p-base); opacity:.85; margin-bottom:.7rem; display:flex; justify-content:center; }
.agb-box h2 { color:var(--p-base); font-size:1.35rem; margin:0 0 .7rem; }
.agb-box p { color:#a1a1aa; font-size:.9rem; line-height:1.6; margin:.35rem 0; }
.agb-box .agb-hint { color:#71717a; font-size:.8rem; margin-top:.8rem; }

/* Onglet inaccessible (blocked) au niveau courant — grisé, reste cliquable (→ écran restreint) */
#tabs a.ag-tab-blocked, nav a.ag-tab-blocked { opacity:.22; transition:opacity .2s; }
#tabs a.ag-tab-blocked:hover, nav a.ag-tab-blocked:hover { opacity:.4; }

/* "Plus" UI : Lecture seule (readonly) → contrôles d'action du contenu grisés (opacité seule,
   clics non bloqués). Navigation latérale (sidebar/arbre/tree) exclue pour rester consultable. */
main.ag-ro button, main.ag-ro select, main.ag-ro input, main.ag-ro textarea { opacity:.4; transition:opacity .2s; }
main.ag-ro aside button, main.ag-ro aside select, main.ag-ro aside input,
main.ag-ro [id$="-sidebar"] button, main.ag-ro [id$="-sidebar"] select, main.ag-ro [id$="-sidebar"] input,
main.ag-ro [id$="-tree"] button, main.ag-ro .sidebar button, main.ag-ro [id$="-nav"] button,
main.ag-ro .ass-nav button, main.ag-ro .ass-nav select { opacity:1; }

/* Lecture seule : les affordances de DÉPLIAGE (voir la hiérarchie) restent pleinement utilisables
   et non grisées — expansion = lecture, pas modification. Couvre aussi les chevrons-boutons. */
main.ag-ro [data-toggle], main.ag-ro [data-col-key], main.ag-ro summary,
main.ag-ro .tax-row, main.ag-ro .rep-cat, main.ag-ro .rep-head,
main.ag-ro button.agent-group-header, main.ag-ro button.agent-navgroup,
main.ag-ro .g-chevron, main.ag-ro .rep-chev, main.ag-ro .tax-rchev,
main.ag-ro .wf-chevron, main.ag-ro .ac-section-h { opacity:1 !important; }
