/* E2A Global Export Portal — all rules scoped under #e2a-portal-root so the
   plugin never leaks styles into (or inherits styles from) the active theme.
   Modals/lightboxes are appended directly to <body> (not nested inside
   #e2a-portal-root) to avoid page-builder ancestors with a CSS transform/
   filter/will-change silently breaking position:fixed — so the colour
   variables are duplicated onto .e2a-portal-scope, which we put on those
   body-level elements too. */
#e2a-portal-root, .e2a-portal-scope {
  --e2a-navy:#161654; --e2a-navy-light:#252575; --e2a-red:#E52328; --e2a-red-dark:#c31a1e;
  --e2a-bg:#F5F5F9; --e2a-paper:#FFFFFF; --e2a-ink:#20202E; --e2a-muted:#6B6B80;
  --e2a-line:#E1E1EA; --e2a-line-dark:#C8C8D8; --e2a-ok:#1F9254; --e2a-warn:#B8860B; --e2a-stamp:#8A8AA0;
  font-family: Arial, Helvetica, sans-serif; color: var(--e2a-ink); background: var(--e2a-bg);
  line-height:1.45; box-sizing:border-box;
}
/* Break the portal out of whatever "boxed"/max-width container the surrounding WordPress page or
   Elementor layout puts around it, so it always spans the true device width edge-to-edge —
   independent of that page's own container settings, which this plugin doesn't control. */
#e2a-portal-root {
  width:100vw; max-width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw;
}
#e2a-portal-root *, #e2a-portal-root *::before, #e2a-portal-root *::after,
.e2a-portal-scope *, .e2a-portal-scope *::before, .e2a-portal-scope *::after { box-sizing:border-box; }
#e2a-portal-root a, .e2a-portal-scope a { color:inherit; }
#e2a-portal-root button, .e2a-portal-scope button { font-family:inherit; cursor:pointer; }
#e2a-portal-root input, .e2a-portal-scope input, #e2a-portal-root select, .e2a-portal-scope select, #e2a-portal-root textarea, .e2a-portal-scope textarea { font-family:inherit; }
#e2a-portal-root .e2a-boot, .e2a-portal-scope .e2a-boot { padding:60px; text-align:center; color:var(--e2a-muted); }
#e2a-portal-root .login-wrap, .e2a-portal-scope .login-wrap { min-height:640px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(160deg,var(--e2a-navy) 0%,var(--e2a-navy) 45%,#0f0f3d 100%); padding:24px; border-radius:6px; }
#e2a-portal-root .login-card, .e2a-portal-scope .login-card { background:var(--e2a-paper); width:100%; max-width:920px; border-radius:4px; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,.35); }
#e2a-portal-root .login-head, .e2a-portal-scope .login-head { background:var(--e2a-navy); color:#fff; padding:28px 36px; border-bottom:4px solid var(--e2a-red); text-align:center; }
#e2a-portal-root .login-head img, .e2a-portal-scope .login-head img { max-width:260px; }
#e2a-portal-root .login-head .tag, .e2a-portal-scope .login-head .tag { font-size:12px; letter-spacing:3px; text-transform:uppercase; color:#B9B9E0; margin-top:10px; }
#e2a-portal-root .login-body, .e2a-portal-scope .login-body { padding:32px 36px 36px; }
#e2a-portal-root .role-grid, .e2a-portal-scope .role-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:22px; }
#e2a-portal-root .role-btn, .e2a-portal-scope .role-btn { border:2px solid var(--e2a-line); background:#fff; border-radius:6px; padding:26px 14px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; transition:.15s; }
#e2a-portal-root .role-btn:hover, .e2a-portal-scope .role-btn:hover { border-color:var(--e2a-navy); transform:translateY(-2px); }
#e2a-portal-root .role-btn.active, .e2a-portal-scope .role-btn.active { border-color:var(--e2a-red); background:#FFF6F6; }
#e2a-portal-root .role-icon, .e2a-portal-scope .role-icon { font-size:28px; }
#e2a-portal-root .role-title, .e2a-portal-scope .role-title { font-weight:800; font-size:14.5px; color:var(--e2a-navy); }
#e2a-portal-root .login-form, .e2a-portal-scope .login-form { border-top:1px solid var(--e2a-line); padding-top:20px; }
#e2a-portal-root .grid2, .e2a-portal-scope .grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#e2a-portal-root .field, .e2a-portal-scope .field { margin-bottom:14px; }
#e2a-portal-root .field label, .e2a-portal-scope .field label { display:block; font-size:12px; font-weight:700; color:var(--e2a-muted); text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px; }
#e2a-portal-root .field input, .e2a-portal-scope .field input, #e2a-portal-root .field select, .e2a-portal-scope .field select, #e2a-portal-root .field textarea, .e2a-portal-scope .field textarea { width:100%; padding:10px 12px; border:1px solid var(--e2a-line-dark); border-radius:4px; font-size:14px; background:#fff; }
#e2a-portal-root .field textarea, .e2a-portal-scope .field textarea { min-height:70px; resize:vertical; }
#e2a-portal-root .btn, .e2a-portal-scope .btn { display:inline-flex; align-items:center; gap:6px; padding:10px 20px; border-radius:4px; border:none; font-weight:700; font-size:13px; cursor:pointer; transition:transform .08s ease, box-shadow .08s ease, opacity .15s ease, filter .1s ease; }
#e2a-portal-root .btn:hover:not(:disabled), .e2a-portal-scope .btn:hover:not(:disabled) { filter:brightness(1.06); box-shadow:0 2px 8px rgba(0,0,0,.14); }
#e2a-portal-root .btn:active:not(:disabled), .e2a-portal-scope .btn:active:not(:disabled) { transform:scale(.95); box-shadow:0 1px 2px rgba(0,0,0,.12); filter:brightness(.96); }
#e2a-portal-root .btn:disabled, .e2a-portal-scope .btn:disabled { opacity:.6; cursor:default; transform:none; box-shadow:none; filter:none; }
@keyframes e2a-btn-pulse { 0%, 100% { opacity:1; } 50% { opacity:.55; } }
#e2a-portal-root .btn.btn-loading, .e2a-portal-scope .btn.btn-loading { animation:e2a-btn-pulse .7s ease-in-out infinite; cursor:wait; opacity:1; }
#e2a-portal-root .icon-btn, .e2a-portal-scope .icon-btn { cursor:pointer; transition:transform .08s ease, opacity .1s ease; }
#e2a-portal-root .icon-btn:active, .e2a-portal-scope .icon-btn:active { transform:scale(.92); opacity:.75; }
#e2a-portal-root .icon-btn:disabled, .e2a-portal-scope .icon-btn:disabled { opacity:.5; cursor:default; transform:none; }
#e2a-portal-root .nav-item, .e2a-portal-scope .nav-item { cursor:pointer; transition:transform .08s ease, background .12s ease; }
#e2a-portal-root .nav-item:active, .e2a-portal-scope .nav-item:active { transform:scale(.97); }
#e2a-portal-root .stat, .e2a-portal-scope .stat { transition:transform .08s ease, box-shadow .1s ease; }
#e2a-portal-root .stat:hover, .e2a-portal-scope .stat:hover { box-shadow:0 2px 8px rgba(0,0,0,.1); }
#e2a-portal-root .stat:active, .e2a-portal-scope .stat:active { transform:scale(.97); }
#e2a-portal-root .cat-tab:active, .e2a-portal-scope .cat-tab:active { transform:scale(.95); }
#e2a-portal-root .pcard, .e2a-portal-scope .pcard { transition:box-shadow .12s ease; }
#e2a-portal-root .pcard:hover, .e2a-portal-scope .pcard:hover { box-shadow:0 2px 10px rgba(0,0,0,.08); }
#e2a-portal-root .btn-primary, .e2a-portal-scope .btn-primary { background:var(--e2a-red); color:#fff; }
#e2a-portal-root .btn-primary:hover, .e2a-portal-scope .btn-primary:hover { background:var(--e2a-red-dark); }
#e2a-portal-root .btn-navy, .e2a-portal-scope .btn-navy { background:var(--e2a-navy); color:#fff; }
#e2a-portal-root .btn-ghost, .e2a-portal-scope .btn-ghost { background:#fff; border:1px solid var(--e2a-line-dark); color:var(--e2a-ink); }
#e2a-portal-root .btn-danger, .e2a-portal-scope .btn-danger { background:#fff; border:1px solid var(--e2a-red); color:var(--e2a-red); }
#e2a-portal-root .btn-sm, .e2a-portal-scope .btn-sm { padding:6px 12px; font-size:12px; }
#e2a-portal-root .err, .e2a-portal-scope .err { color:var(--e2a-red); font-size:13px; font-weight:700; margin:6px 0; }
#e2a-portal-root .login-note, .e2a-portal-scope .login-note { margin-top:16px; font-size:11.5px; color:var(--e2a-muted); line-height:1.6; border-top:1px dashed var(--e2a-line); padding-top:12px; }
#e2a-portal-root .app-shell-wrap, .e2a-portal-scope .app-shell-wrap { height:100vh; display:flex; flex-direction:column; overflow:hidden; }
#e2a-portal-root .shell, .e2a-portal-scope .shell { display:flex; flex:1; min-height:0; border:1px solid var(--e2a-line); border-radius:6px; overflow:hidden; }
#e2a-portal-root .sidebar, .e2a-portal-scope .sidebar { width:220px; height:100%; overflow-y:auto; background:var(--e2a-navy); color:#fff; display:flex; flex-direction:column; flex-shrink:0; }
#e2a-portal-root .sidebar .brand, .e2a-portal-scope .sidebar .brand { padding:18px 18px; border-bottom:1px solid rgba(255,255,255,.12); text-align:center; flex-shrink:0; }
#e2a-portal-root .sidebar .brand img, .e2a-portal-scope .sidebar .brand img { max-width:150px; }
#e2a-portal-root .sidebar-collapsible, .e2a-portal-scope .sidebar-collapsible { display:flex; flex-direction:column; flex:1; min-height:0; }
#e2a-portal-root .sidebar nav, .e2a-portal-scope .sidebar nav { flex:1; padding:12px 0; }
#e2a-portal-root .nav-item, .e2a-portal-scope .nav-item { display:block; width:100%; text-align:left; background:none; border:none; color:#C8C8E8; padding:11px 20px; font-size:13px; font-weight:600; border-left:3px solid transparent; }
#e2a-portal-root .nav-item:hover, .e2a-portal-scope .nav-item:hover { background:rgba(255,255,255,.06); color:#fff; }
#e2a-portal-root .nav-item.active, .e2a-portal-scope .nav-item.active { background:rgba(255,255,255,.1); color:#fff; border-left-color:var(--e2a-red); }
#e2a-portal-root .user-box, .e2a-portal-scope .user-box { padding:14px 18px; border-top:1px solid rgba(255,255,255,.12); font-size:11.5px; color:#B9B9E0; flex-shrink:0; }
#e2a-portal-root .user-box .uname, .e2a-portal-scope .user-box .uname { color:#fff; font-weight:700; font-size:12.5px; margin-bottom:2px; }
#e2a-portal-root .user-box .logout, .e2a-portal-scope .user-box .logout { margin-top:8px; width:100%; }
#e2a-portal-root .main, .e2a-portal-scope .main { flex:1; min-width:0; height:100%; display:flex; flex-direction:column; overflow:hidden; background:#fff; }
#e2a-portal-root .topbar, .e2a-portal-scope .topbar { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 20px; padding:14px 24px; border-bottom:1px solid var(--e2a-line); }
#e2a-portal-root .topbar h1, .e2a-portal-scope .topbar h1 { font-size:17px; margin:0; color:var(--e2a-navy); }
#e2a-portal-root .topbar .sub, .e2a-portal-scope .topbar .sub { font-size:11.5px; color:var(--e2a-muted); }
#e2a-portal-root .topbar-contact, .e2a-portal-scope .topbar-contact { font-size:11.5px; color:var(--e2a-muted); white-space:nowrap; }
#e2a-portal-root .topbar-contact a, .e2a-portal-scope .topbar-contact a { color:var(--e2a-navy); font-weight:700; text-decoration:none; }
#e2a-portal-root .content, .e2a-portal-scope .content { padding:20px 24px 40px; flex:1; min-height:0; overflow-y:auto; }
#e2a-portal-root .conf-banner, .e2a-portal-scope .conf-banner { background:var(--e2a-navy); color:#fff; font-size:11px; padding:6px 14px; text-align:center; }
#e2a-portal-root .card, .e2a-portal-scope .card { background:#fff; border:1px solid var(--e2a-line); border-radius:6px; padding:18px; margin-bottom:16px; }
#e2a-portal-root .card h2, .e2a-portal-scope .card h2 { font-size:14px; margin:0 0 12px; color:var(--e2a-navy); border-bottom:2px solid var(--e2a-red); padding-bottom:7px; display:inline-block; }
#e2a-portal-root .stat-grid, .e2a-portal-scope .stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-bottom:18px; }
#e2a-portal-root .stat, .e2a-portal-scope .stat { background:#fff; border:1px solid var(--e2a-line); border-left:4px solid var(--e2a-navy); border-radius:4px; padding:14px 16px; cursor:pointer; }
#e2a-portal-root .stat.stat-alert, .e2a-portal-scope .stat.stat-alert { border-left-color:var(--e2a-red); background:#FFF6F5; }
#e2a-portal-root .stat:hover, .e2a-portal-scope .stat:hover { border-left-color:var(--e2a-red); }
#e2a-portal-root .stat .num, .e2a-portal-scope .stat .num { font-size:24px; font-weight:800; color:var(--e2a-navy); }
#e2a-portal-root .stat .lbl, .e2a-portal-scope .stat .lbl { font-size:10.5px; text-transform:uppercase; color:var(--e2a-muted); }
#e2a-portal-root table, .e2a-portal-scope table { width:100%; border-collapse:collapse; font-size:12.5px; }
#e2a-portal-root th, .e2a-portal-scope th { text-align:left; background:#F8F8FC; color:var(--e2a-muted); text-transform:uppercase; font-size:10px; padding:9px 10px; border-bottom:2px solid var(--e2a-line); }
#e2a-portal-root td, .e2a-portal-scope td { padding:9px 10px; border-bottom:1px solid var(--e2a-line); vertical-align:middle; }
#e2a-portal-root .badge, .e2a-portal-scope .badge { display:inline-block; padding:3px 9px; border-radius:20px; font-size:10px; font-weight:800; text-transform:uppercase; }
#e2a-portal-root .badge-active, .e2a-portal-scope .badge-active { background:#E7F6ED; color:var(--e2a-ok); }
#e2a-portal-root .badge-draft, .e2a-portal-scope .badge-draft { background:#FFF3D6; color:var(--e2a-warn); }
#e2a-portal-root .badge-archived, .e2a-portal-scope .badge-archived { background:#EEE; color:var(--e2a-muted); }
#e2a-portal-root .badge-new, .e2a-portal-scope .badge-new { background:#FDE7E7; color:var(--e2a-red); }
#e2a-portal-root .badge-quoted, .e2a-portal-scope .badge-quoted { background:#E7F0FD; color:#1B5FB8; }
#e2a-portal-root .badge-confirmed, .e2a-portal-scope .badge-confirmed { background:#E7F6ED; color:var(--e2a-ok); }
#e2a-portal-root .badge-closed, .e2a-portal-scope .badge-closed { background:#EEE; color:var(--e2a-muted); }
#e2a-portal-root .code-stamp, .e2a-portal-scope .code-stamp { font-family:'Courier New',monospace; font-weight:800; color:var(--e2a-stamp); border:1.5px dashed var(--e2a-line-dark); padding:2px 8px; border-radius:3px; font-size:11px; }
#e2a-portal-root .toolbar, .e2a-portal-scope .toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:10px; flex-wrap:wrap; }
#e2a-portal-root .toolbar select, .e2a-portal-scope .toolbar select, #e2a-portal-root .toolbar input, .e2a-portal-scope .toolbar input { padding:7px 9px; border:1px solid var(--e2a-line-dark); border-radius:4px; font-size:12px; }
#e2a-portal-root .empty, .e2a-portal-scope .empty { text-align:center; padding:40px 16px; color:var(--e2a-muted); }
#e2a-portal-root .empty .big, .e2a-portal-scope .empty .big { font-size:14px; font-weight:700; color:var(--e2a-navy); margin-bottom:6px; }
#e2a-portal-root .icon-btn, .e2a-portal-scope .icon-btn { background:none; border:none; color:var(--e2a-navy); font-size:12.5px; font-weight:700; padding:4px 6px; }
#e2a-portal-root .icon-btn.del, .e2a-portal-scope .icon-btn.del { color:var(--e2a-red); white-space:normal; word-break:keep-all; min-width:80px; line-height:1.3; text-align:left; display:inline-block; }
#e2a-portal-root th.col-remove, .e2a-portal-scope th.col-remove { min-width:90px; }
#e2a-portal-root .row-actions, .e2a-portal-scope .row-actions { display:flex; gap:4px; }
#e2a-portal-root .chk-list, .e2a-portal-scope .chk-list { display:flex; flex-wrap:wrap; gap:8px; }
#e2a-portal-root .chk-item, .e2a-portal-scope .chk-item { border:1px solid var(--e2a-line-dark); border-radius:4px; padding:6px 10px; font-size:12px; }

.e2a-portal-scope.modal-bg { position:fixed; inset:0; background:rgba(20,20,50,.55); display:flex; align-items:flex-start; justify-content:center; z-index:99999; padding:34px 18px; overflow-y:auto; }
.e2a-portal-scope .modal { background:#fff; border-radius:6px; max-width:720px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.4); }
.e2a-portal-scope .modal-head { padding:16px 22px; border-bottom:1px solid var(--e2a-line); display:flex; justify-content:space-between; align-items:center; background:var(--e2a-navy); color:#fff; border-radius:6px 6px 0 0; }
.e2a-portal-scope .modal-head button { background:none; border:none; color:#fff; font-size:19px; }
.e2a-portal-scope .modal-body { padding:20px 22px; max-height:66vh; overflow-y:auto; }
.e2a-portal-scope .modal-foot { padding:14px 22px; border-top:1px solid var(--e2a-line); display:flex; justify-content:flex-end; gap:10px; }
#e2a-portal-root .section-tabs, .e2a-portal-scope .section-tabs { display:flex; gap:2px; margin-bottom:14px; border-bottom:1px solid var(--e2a-line); }
#e2a-portal-root .section-tab, .e2a-portal-scope .section-tab { padding:8px 14px; font-size:12px; font-weight:700; background:none; border:none; color:var(--e2a-muted); border-bottom:3px solid transparent; }
#e2a-portal-root .section-tab.active, .e2a-portal-scope .section-tab.active { color:var(--e2a-navy); border-bottom-color:var(--e2a-red); }
#e2a-portal-root .pgrid, .e2a-portal-scope .pgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:16px; }
#e2a-portal-root .pcard, .e2a-portal-scope .pcard { background:#fff; border:1px solid var(--e2a-line); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; }
#e2a-portal-root .pcard .thumb, .e2a-portal-scope .pcard .thumb { aspect-ratio:1/1; background:#F0F0F5; display:flex; align-items:center; justify-content:center; color:var(--e2a-muted); font-size:11px; cursor:pointer; }
#e2a-portal-root .doc-thumb, .e2a-portal-scope .doc-thumb { height:110px; background:#F0F0F5 url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23c4c4d4"><path d="M6 2c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"/></svg>') no-repeat center / 34px; display:flex; align-items:center; justify-content:center; overflow:hidden; cursor:pointer; }
#e2a-portal-root .pcard .thumb img, .e2a-portal-scope .pcard .thumb img { width:100%; height:100%; object-fit:cover; }
#e2a-portal-root .pcard .pbody, .e2a-portal-scope .pcard .pbody { padding:12px; flex:1; display:flex; flex-direction:column; gap:5px; }
#e2a-portal-root .pcard .pname, .e2a-portal-scope .pcard .pname { font-weight:800; font-size:13.5px; color:var(--e2a-navy); }
#e2a-portal-root .pcard .pcat, .e2a-portal-scope .pcard .pcat { font-size:10.5px; color:var(--e2a-muted); text-transform:uppercase; }
#e2a-portal-root .pcard .pdesc, .e2a-portal-scope .pcard .pdesc { font-size:12px; max-height:50px; overflow:hidden; }
#e2a-portal-root .pcard .pprice, .e2a-portal-scope .pcard .pprice { font-size:15px; font-weight:800; color:var(--e2a-red); margin-top:auto; }
#e2a-portal-root .pcard .pfoot, .e2a-portal-scope .pcard .pfoot { padding:9px 12px; border-top:1px solid var(--e2a-line); display:flex; gap:8px; flex-wrap:wrap; }
#e2a-portal-root .pcard .pfoot .btn, .e2a-portal-scope .pcard .pfoot .btn { white-space:normal; word-break:keep-all; text-align:center; min-width:70px; }
#e2a-portal-root .spec-tbl td, .e2a-portal-scope .spec-tbl td { padding:5px 8px; font-size:11.5px; }
#e2a-portal-root .spec-tbl td:first-child, .e2a-portal-scope .spec-tbl td:first-child { color:var(--e2a-muted); font-weight:700; width:40%; }
#e2a-portal-root .lightbox-bg, .e2a-portal-scope .lightbox-bg { position:fixed; inset:0; background:rgba(10,10,30,.9); z-index:100000; display:flex; align-items:center; justify-content:center; flex-direction:column; padding:20px; }
#e2a-portal-root .lightbox-bg img, .e2a-portal-scope .lightbox-bg img { max-width:88vw; max-height:72vh; border-radius:4px; }
#e2a-portal-root .lightbox-stage, .e2a-portal-scope .lightbox-stage { position:relative; display:flex; align-items:center; justify-content:center; width:100%; }
#e2a-portal-root .lightbox-nav, .e2a-portal-scope .lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.15); border:none; color:#fff; font-size:26px; width:44px; height:44px; border-radius:50%; }
#e2a-portal-root .lightbox-nav.prev, .e2a-portal-scope .lightbox-nav.prev { left:14px; }
#e2a-portal-root .lightbox-nav.next, .e2a-portal-scope .lightbox-nav.next { right:14px; }
#e2a-portal-root .lightbox-close, .e2a-portal-scope .lightbox-close { position:absolute; top:16px; right:22px; background:none; border:none; color:#fff; font-size:28px; }
#e2a-portal-root .lightbox-strip, .e2a-portal-scope .lightbox-strip { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; justify-content:center; max-width:88vw; }
#e2a-portal-root .lightbox-strip img, .e2a-portal-scope .lightbox-strip img { width:56px; height:56px; object-fit:cover; border-radius:3px; cursor:pointer; opacity:.6; border:2px solid transparent; }
#e2a-portal-root .lightbox-strip img.active, .e2a-portal-scope .lightbox-strip img.active { opacity:1; border-color:var(--e2a-red); }
#e2a-portal-root .image-manager, .e2a-portal-scope .image-manager { display:flex; flex-wrap:wrap; gap:9px; margin-top:8px; }
#e2a-portal-root .img-tile, .e2a-portal-scope .img-tile { width:84px; height:84px; position:relative; border-radius:4px; overflow:hidden; border:1px solid var(--e2a-line-dark); }
#e2a-portal-root .img-tile img, .e2a-portal-scope .img-tile img { width:100%; height:100%; object-fit:cover; }
#e2a-portal-root .img-tile button, .e2a-portal-scope .img-tile button { position:absolute; top:2px; right:2px; background:rgba(200,20,20,.85); color:#fff; border:none; border-radius:3px; font-size:11px; padding:1px 5px; }
#e2a-portal-root .upload-tile, .e2a-portal-scope .upload-tile { width:84px; height:84px; border:2px dashed var(--e2a-line-dark); border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:10.5px; color:var(--e2a-muted); text-align:center; cursor:pointer; }
#e2a-portal-root .export-bar, .e2a-portal-scope .export-bar { display:flex; gap:6px; flex-wrap:wrap; }
#e2a-portal-root .pg-bar, .e2a-portal-scope .pg-bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; padding:10px 4px; font-size:12.5px; color:var(--e2a-muted); }
#e2a-portal-root .pg-pages, .e2a-portal-scope .pg-pages { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
#e2a-portal-root .pg-btn, .e2a-portal-scope .pg-btn { min-width:30px; padding:5px 9px; }
#e2a-portal-root .pg-ellipsis, .e2a-portal-scope .pg-ellipsis { padding:0 4px; color:var(--e2a-muted); }
#e2a-portal-root .pg-size select, .e2a-portal-scope .pg-size select { padding:4px 6px; border:1px solid var(--e2a-line-dark); border-radius:4px; font-size:12.5px; }
#e2a-portal-root .cat-tabs, .e2a-portal-scope .cat-tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; border-bottom:2px solid var(--e2a-line); padding-bottom:0; }
#e2a-portal-root .cat-tab, .e2a-portal-scope .cat-tab { background:none; border:none; padding:9px 14px; font-size:13px; font-weight:600; color:var(--e2a-muted); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .15s, border-color .15s; }
#e2a-portal-root .cat-tab:hover, .e2a-portal-scope .cat-tab:hover { color:var(--e2a-navy); }
#e2a-portal-root .cat-tab.active, .e2a-portal-scope .cat-tab.active { color:var(--e2a-navy); border-bottom-color:var(--e2a-red); }
#e2a-portal-root .pin-inline, .e2a-portal-scope .pin-inline { width:110px; padding:6px 8px; border:1px solid var(--e2a-line-dark); border-radius:4px; font-size:12px; }
#e2a-portal-root .bulk-drop, .e2a-portal-scope .bulk-drop { border:2px dashed var(--e2a-line-dark); border-radius:6px; padding:20px; text-align:center; color:var(--e2a-muted); font-size:12px; cursor:pointer; }
#e2a-portal-root .bulk-result, .e2a-portal-scope .bulk-result { background:#F8F8FC; border:1px solid var(--e2a-line); border-radius:4px; padding:10px; font-size:11.5px; margin-top:8px; white-space:pre-wrap; }
#e2a-portal-root .site-footer, .e2a-portal-scope .site-footer { flex-shrink:0; background:var(--e2a-navy); color:#C8C8E8; padding:8px 22px; font-size:10.5px; text-align:center; border-top:3px solid var(--e2a-red); border-radius:0 0 6px 6px; }
#e2a-portal-root .site-footer a, .e2a-portal-scope .site-footer a { color:#fff; font-weight:700; text-decoration:none; }
#e2a-portal-root .danger-zone, .e2a-portal-scope .danger-zone { border:1px solid var(--e2a-red); background:#FFF6F6; border-radius:6px; padding:16px; }
#e2a-portal-root .danger-zone h2, .e2a-portal-scope .danger-zone h2 { color:var(--e2a-red); border-bottom-color:var(--e2a-navy); }

@media print{#e2a-portal-root .sidebar, .e2a-portal-scope .sidebar, #e2a-portal-root .conf-banner, .e2a-portal-scope .conf-banner, #e2a-portal-root .export-bar, .e2a-portal-scope .export-bar, .modal-bg, .lightbox-bg, #e2a-portal-root .topbar, .e2a-portal-scope .topbar, #e2a-portal-root .nav-item, .e2a-portal-scope .nav-item, #e2a-portal-root .pfoot, .e2a-portal-scope .pfoot, #e2a-portal-root .row-actions, .e2a-portal-scope .row-actions { display:none !important; }
}
#e2a-portal-root .mobile-nav-toggle, .e2a-portal-scope .mobile-nav-toggle { display:none; }
@media (max-width:780px){#e2a-portal-root .shell, .e2a-portal-scope .shell { flex-direction:column; }
#e2a-portal-root .sidebar, .e2a-portal-scope .sidebar { width:100%; height:auto; max-height:none; flex-shrink:0; overflow-y:visible; }
#e2a-portal-root .sidebar .brand, .e2a-portal-scope .sidebar .brand { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; }
#e2a-portal-root .sidebar .brand img, .e2a-portal-scope .sidebar .brand img { max-width:120px; }
#e2a-portal-root .mobile-nav-toggle, .e2a-portal-scope .mobile-nav-toggle { display:block; background:rgba(255,255,255,.12); border:none; color:#fff; font-size:20px; width:38px; height:38px; border-radius:4px; cursor:pointer; flex-shrink:0; }
#e2a-portal-root .sidebar-collapsible, .e2a-portal-scope .sidebar-collapsible { display:none; max-height:55vh; overflow-y:auto; flex-direction:column; }
#e2a-portal-root .sidebar-collapsible.open, .e2a-portal-scope .sidebar-collapsible.open { display:flex; }
#e2a-portal-root .main, .e2a-portal-scope .main { height:auto; min-height:0; }
#e2a-portal-root .topbar, .e2a-portal-scope .topbar { flex-direction:column; align-items:flex-start; gap:2px; }
#e2a-portal-root .role-grid, .e2a-portal-scope .role-grid { grid-template-columns:1fr; }
#e2a-portal-root .grid2, .e2a-portal-scope .grid2 { grid-template-columns:1fr; }
}
