/* ============================================================================
   منصة التطوير والجودة — DGA (Kood Al-Manassat) theme over Bootstrap 5 RTL
   Design tokens + component styles. No inline CSS anywhere else.
   ============================================================================ */

:root {
  /* Brand — Saudi-flag green */
  --dga-primary-50:#F3FCF6; --dga-primary-100:#DFF6E7; --dga-primary-200:#B8EACB;
  --dga-primary-300:#88D8AD; --dga-primary-400:#54C08A; --dga-primary-500:#25935F;
  --dga-primary-600:#1B8354; --dga-primary-700:#166A45; --dga-primary-800:#14573A; --dga-primary-900:#104631;
  --dga-gold-600:#DBA102;
  /* Neutrals */
  --dga-white:#fff; --dga-neutral-50:#F9FAFB; --dga-neutral-100:#F3F4F6; --dga-neutral-200:#E5E7EB;
  --dga-neutral-300:#D2D6DB; --dga-neutral-400:#9CA3AF; --dga-neutral-500:#6C7580; --dga-neutral-600:#4D5761;
  --dga-neutral-700:#384250; --dga-neutral-800:#1F2A37; --dga-neutral-900:#111927; --dga-neutral-950:#0D121C;
  /* Semantic */
  --dga-success-50:#ECFDF3; --dga-success-600:#079455; --dga-success-700:#067647;
  --dga-error-50:#FEF3F2; --dga-error-600:#D92D20; --dga-error-700:#B42318;
  --dga-warning-50:#FFFAEB; --dga-warning-600:#DC6803; --dga-warning-700:#B54708;
  --dga-info-50:#EFF8FF; --dga-info-600:#1570EF; --dga-info-700:#175CD3;
  /* Surfaces */
  --dga-text:#0D121C; --dga-text-secondary:#4D5761; --dga-text-tertiary:#6C7580;
  --dga-border:#D2D6DB; --dga-border-subtle:#E5E7EB; --dga-bg-subtle:#F9FAFB;
  --dga-font:"IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",sans-serif;
  --dga-radius-md:8px; --dga-radius-lg:16px; --dga-radius-full:9999px;
  --dga-shadow-xs:0 1px 2px rgba(16,24,40,.05);
  --dga-shadow-sm:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.03);
  --dga-shadow-md:0 4px 8px -2px rgba(16,24,40,.08),0 2px 4px -2px rgba(16,24,40,.03);
  --dga-shadow-lg:0 12px 16px -4px rgba(16,24,40,.08),0 4px 6px -2px rgba(16,24,40,.03);
  --dga-shadow-xl:0 20px 24px -4px rgba(16,24,40,.08),0 8px 8px -4px rgba(16,24,40,.03);

  /* Bootstrap variable overrides — bind BS to DGA tokens */
  --bs-font-sans-serif:var(--dga-font);
  --bs-body-font-family:var(--dga-font);
  --bs-body-color:var(--dga-text);
  --bs-body-bg:var(--dga-bg-subtle);
  --bs-primary:var(--dga-primary-600);
  --bs-primary-rgb:27,131,84;
  --bs-border-color:var(--dga-border-subtle);
  --bs-border-radius:8px;
  --bs-border-radius-lg:16px;
  --bs-link-color:var(--dga-primary-600);
  --bs-link-color-rgb:27,131,84;
  --bs-link-hover-color:var(--dga-primary-700);
}

*{box-sizing:border-box}
body{font-family:var(--dga-font);background:var(--dga-bg-subtle);color:var(--dga-text);min-height:100vh}

/* ── Buttons: DGA green ─────────────────────────────────────────── */
.btn{font-weight:600;border-radius:var(--dga-radius-md)}
.btn-primary{--bs-btn-bg:var(--dga-primary-600);--bs-btn-border-color:var(--dga-primary-600);--bs-btn-hover-bg:var(--dga-primary-700);--bs-btn-hover-border-color:var(--dga-primary-700);--bs-btn-active-bg:var(--dga-primary-800);--bs-btn-active-border-color:var(--dga-primary-800);--bs-btn-disabled-bg:var(--dga-primary-300);--bs-btn-disabled-border-color:var(--dga-primary-300);--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff}
.btn-outline-primary{--bs-btn-color:var(--dga-primary-600);--bs-btn-border-color:var(--dga-primary-600);--bs-btn-hover-bg:var(--dga-primary-50);--bs-btn-hover-color:var(--dga-primary-700);--bs-btn-hover-border-color:var(--dga-primary-600);--bs-btn-active-bg:var(--dga-primary-100);--bs-btn-active-color:var(--dga-primary-800)}
.btn-outline-secondary{--bs-btn-color:var(--dga-neutral-700);--bs-btn-border-color:var(--dga-border);--bs-btn-hover-bg:var(--dga-neutral-50);--bs-btn-hover-color:var(--dga-neutral-800);--bs-btn-hover-border-color:var(--dga-border);--bs-btn-active-bg:var(--dga-neutral-100)}
.btn-danger{--bs-btn-bg:var(--dga-error-600);--bs-btn-border-color:var(--dga-error-600);--bs-btn-hover-bg:var(--dga-error-700);--bs-btn-hover-border-color:var(--dga-error-700)}
.btn:focus-visible,.form-control:focus-visible,.form-select:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--dga-primary-600);outline-offset:2px;box-shadow:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--dga-border);border-radius:var(--dga-radius-md);background:#fff;color:var(--dga-neutral-600);cursor:pointer;transition:all .15s var(--dga-ease,ease)}
.icon-btn:hover{border-color:var(--dga-primary-300);color:var(--dga-primary-600);background:var(--dga-primary-50)}
.icon-btn.danger:hover{border-color:var(--dga-error-600);color:var(--dga-error-600);background:var(--dga-error-50)}

/* ── Forms ──────────────────────────────────────────────────────── */
.form-control,.form-select{border-color:var(--dga-border);border-radius:var(--dga-radius-md);font-size:14px;min-height:44px;color:var(--dga-text)}
.form-control:focus,.form-select:focus{border-color:var(--dga-primary-600);box-shadow:0 0 0 4px var(--dga-primary-50)}
.form-control.is-invalid,.form-select.is-invalid{border-color:var(--dga-error-600)}
.form-control.is-invalid:focus{box-shadow:0 0 0 4px var(--dga-error-50)}
.form-label{font-size:13px;font-weight:600;color:var(--dga-neutral-700);margin-bottom:6px}
.form-check-input:checked{background-color:var(--dga-primary-600);border-color:var(--dga-primary-600)}
.form-check-input:focus{border-color:var(--dga-primary-600);box-shadow:0 0 0 4px var(--dga-primary-50)}
.req{color:var(--dga-error-600)}

/* ── Gov banner ─────────────────────────────────────────────────── */
.gov-banner{display:flex;align-items:center;justify-content:center;gap:8px;min-height:32px;padding:4px 16px;background:var(--dga-neutral-100);font-size:13px;color:var(--dga-neutral-700);flex-wrap:wrap}
.gov-banner .gov-check{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:3px;background:var(--dga-primary-600);color:#fff}
.gov-banner a{color:var(--dga-primary-700);font-weight:600;text-decoration:none}

/* ── App header ─────────────────────────────────────────────────── */
.app-header{position:sticky;top:0;z-index:1030;background:#fff;border-bottom:1px solid var(--dga-border-subtle)}
.app-header .inner{max-width:1440px;margin:0 auto;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px}
.brand{display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none}
.brand img{height:40px;width:auto}
.brand .b-title{font-size:14px;font-weight:700;color:var(--dga-text);white-space:nowrap;line-height:1.3}
.brand .b-sub{font-size:11px;color:var(--dga-text-tertiary);white-space:nowrap}
.header-search{position:relative}
.header-search input{width:240px;height:40px;padding:0 40px 0 14px;border:1px solid var(--dga-border);border-radius:var(--dga-radius-full);background:var(--dga-neutral-50);font-size:13.5px}
.header-search .s-ic{position:absolute;top:11px;inset-inline-start:14px;color:var(--dga-neutral-500);pointer-events:none}
.avatar{width:30px;height:30px;border-radius:var(--dga-radius-full);background:var(--dga-primary-600);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700}
.notif-dot{position:absolute;top:6px;inset-inline-end:7px;width:8px;height:8px;border-radius:var(--dga-radius-full);background:var(--dga-error-600);border:1.5px solid #fff}

/* ── Layout: sidebar + main ─────────────────────────────────────── */
.app-body{max-width:1440px;margin:0 auto;width:100%;display:flex;align-items:stretch;min-height:calc(100vh - 96px)}
.app-sidebar{width:264px;flex-shrink:0;background:#fff;border-inline-start:1px solid var(--dga-border-subtle);border-inline-end:1px solid var(--dga-border-subtle);padding:24px 16px;display:flex;flex-direction:column;gap:4px}
.side-group{font-size:11px;font-weight:700;color:var(--dga-text-tertiary);letter-spacing:.4px;padding:16px 12px 8px}
.side-group:first-child{padding-top:0}
.side-link{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;background:none;color:var(--dga-neutral-700);border:none;border-radius:var(--dga-radius-md);font-size:14px;font-weight:600;cursor:pointer;text-align:start;text-decoration:none;transition:background .15s}
.side-link:hover{background:var(--dga-neutral-50);color:var(--dga-neutral-800)}
.side-link.active{background:var(--dga-primary-50);color:var(--dga-primary-700)}
.side-link .side-count{font-size:11.5px;font-weight:700;background:var(--dga-neutral-100);color:var(--dga-neutral-600);padding:1px 8px;border-radius:var(--dga-radius-full)}
.side-link.active .side-count{background:var(--dga-primary-600);color:#fff}
.side-sub{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;padding-inline-start:26px;background:none;color:var(--dga-neutral-700);border:none;border-radius:var(--dga-radius-md);font-size:13px;font-weight:500;cursor:pointer;text-align:start;text-decoration:none}
.side-sub:hover{background:var(--dga-neutral-50)}
.side-sub.active{background:var(--dga-primary-50);color:var(--dga-primary-700)}
.side-sub .dot{width:7px;height:7px;border-radius:var(--dga-radius-full);flex-shrink:0}
.side-help{margin-top:auto;padding:16px 12px 4px}
.side-help .box{background:var(--dga-primary-50);border:1px solid var(--dga-primary-100);border-radius:12px;padding:14px}
.app-main{flex:1;min-width:0;padding:24px 32px 56px}
.app-main .inner{max-width:1104px;margin:0}

/* ── Cards ──────────────────────────────────────────────────────── */
.dga-card{background:#fff;border:1px solid var(--dga-border-subtle);border-radius:var(--dga-radius-lg);box-shadow:var(--dga-shadow-xs)}
.dga-card-pad{padding:24px}
.kpi-card{display:block;width:100%;text-align:start;background:#fff;border:1px solid var(--dga-border-subtle);border-radius:var(--dga-radius-lg);padding:20px;cursor:pointer;box-shadow:var(--dga-shadow-xs);transition:box-shadow .15s,border-color .15s;text-decoration:none;color:inherit}
.kpi-card:hover{box-shadow:var(--dga-shadow-md);border-color:var(--dga-primary-200)}
.kpi-ic{width:34px;height:34px;border-radius:var(--dga-radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.kpi-val{font-size:28px;font-weight:700;line-height:1}
.kpi-label{font-size:13px;color:var(--dga-text-secondary)}
.kpi-hint{font-size:12px;color:var(--dga-text-tertiary);margin-top:8px}

/* ── Status pills ───────────────────────────────────────────────── */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:var(--dga-radius-full);white-space:nowrap}
.pill .pdot{width:6px;height:6px;border-radius:var(--dga-radius-full);background:currentColor}
.pill-success{color:var(--dga-success-700);background:var(--dga-success-50)}
.pill-warning{color:var(--dga-warning-700);background:var(--dga-warning-50)}
.pill-error{color:var(--dga-error-700);background:var(--dga-error-50)}
.pill-info{color:var(--dga-info-700);background:var(--dga-info-50)}
.pill-neutral{color:var(--dga-neutral-700);background:var(--dga-neutral-100)}

/* ── Tables ─────────────────────────────────────────────────────── */
.dga-table{width:100%;border-collapse:collapse}
.dga-table thead th{text-align:start;padding:12px;font-size:12px;font-weight:700;color:var(--dga-text-tertiary);background:var(--dga-neutral-50);white-space:nowrap}
.dga-table tbody td{padding:14px 12px;font-size:13px;color:var(--dga-text-secondary);border-top:1px solid var(--dga-border-subtle);vertical-align:middle}
.dga-table tbody tr:hover{background:var(--dga-neutral-50)}
.dga-table .t-strong{font-size:13.5px;font-weight:600;color:var(--dga-text)}
.dga-table .num{font-variant-numeric:tabular-nums}
.table-cover{width:40px;height:52px;border-radius:6px;display:flex;align-items:flex-end;justify-content:center;color:#fff;font-size:9px;font-weight:700;padding-bottom:4px;flex-shrink:0}

/* ── Tabs (segmented / underline) ───────────────────────────────── */
.dga-tabs{display:flex;gap:4px;border-bottom:1px solid var(--dga-border-subtle);overflow-x:auto}
.dga-tab{padding:10px 16px 12px;background:none;border:none;border-bottom:3px solid transparent;font-size:13.5px;font-weight:600;color:var(--dga-neutral-600);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.dga-tab:hover{color:var(--dga-primary-700)}
.dga-tab.active{color:var(--dga-primary-700);border-bottom-color:var(--dga-primary-600)}
.dga-tab .tcount{font-size:11.5px;font-weight:700;background:var(--dga-neutral-100);color:var(--dga-neutral-600);padding:1px 8px;border-radius:var(--dga-radius-full)}
.dga-tab.active .tcount{background:var(--dga-primary-600);color:#fff}

/* ── Breadcrumb ─────────────────────────────────────────────────── */
.dga-bc{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--dga-text-tertiary);flex-wrap:wrap;margin-bottom:16px}
.dga-bc a{color:var(--dga-text-tertiary);text-decoration:none}
.dga-bc a:hover{color:var(--dga-primary-600)}
.dga-bc .sep{transform:scaleX(-1);display:inline-flex}
.dga-bc .cur{color:var(--dga-text);font-weight:600}

/* ── Timeline (stepper) ─────────────────────────────────────────── */
.tl-row{display:flex;gap:16px}
.tl-col{display:flex;flex-direction:column;align-items:center}
.tl-mark{width:34px;height:34px;border-radius:var(--dga-radius-full);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;border:2px solid var(--dga-neutral-200);background:#fff;color:var(--dga-neutral-400)}
.tl-mark.done{background:var(--dga-primary-600);border-color:var(--dga-primary-600);color:#fff}
.tl-mark.cur{background:var(--dga-primary-50);border-color:var(--dga-primary-600);color:var(--dga-primary-700)}
.tl-line{width:2px;flex:1;min-height:36px;background:var(--dga-neutral-200)}
.tl-line.done{background:var(--dga-primary-600)}
.tl-body{padding-bottom:28px}
.tl-title{font-size:14.5px;font-weight:700;color:var(--dga-neutral-400)}
.tl-title.on{color:var(--dga-text)}
.tl-sub{font-size:12.5px;color:var(--dga-text-tertiary);margin-top:2px}

/* ── File upload ────────────────────────────────────────────────── */
.upload-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:160px;border:1.5px dashed var(--dga-border);border-radius:12px;background:var(--dga-neutral-50);cursor:pointer;color:var(--dga-text-tertiary);text-align:center;padding:12px}
.upload-drop:hover{border-color:var(--dga-primary-400);background:var(--dga-primary-50)}
.upload-preview{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--dga-border);height:160px}
.upload-preview img{width:100%;height:100%;object-fit:cover;display:block}
.upload-remove{position:absolute;top:8px;inset-inline-end:8px;width:30px;height:30px;border-radius:var(--dga-radius-full);background:rgba(13,18,28,.6);border:none;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.pdf-badge{width:44px;height:52px;border-radius:8px;background:var(--dga-error-50);color:var(--dga-error-600);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}

/* ── Charts ─────────────────────────────────────────────────────── */
.bar-chart{display:flex;align-items:flex-end;gap:6%;height:170px;padding:0 8px;border-bottom:1px solid var(--dga-border-subtle)}
.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.bar{width:100%;max-width:44px;background:var(--dga-primary-600);border-radius:6px 6px 0 0}
.bar.muted{background:var(--dga-primary-300)}
.bar-val{font-size:12px;font-weight:700;color:var(--dga-primary-700)}
.bar-label{font-size:11.5px;color:var(--dga-text-tertiary);text-align:center;flex:1}

/* ── Empty / loading states ─────────────────────────────────────── */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:56px 24px;text-align:center}
.empty-ic{width:64px;height:64px;border-radius:var(--dga-radius-full);background:var(--dga-neutral-100);display:flex;align-items:center;justify-content:center;color:var(--dga-neutral-400);margin-bottom:8px}
.empty-title{font-size:16px;font-weight:700;color:var(--dga-text)}
.empty-msg{font-size:13.5px;color:var(--dga-text-secondary);max-width:380px;line-height:1.7}
@keyframes dgaShimmer{0%{opacity:.55}50%{opacity:1}100%{opacity:.55}}
.skeleton{background:var(--dga-neutral-100);border-radius:6px;animation:dgaShimmer 1.2s infinite}
@keyframes dgaSpin{to{transform:rotate(360deg)}}
.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:var(--dga-radius-full);display:inline-block;animation:dgaSpin .7s linear infinite}

/* ── Bulk action bar ────────────────────────────────────────────── */
.bulk-bar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--dga-primary-50);border-bottom:1px solid var(--dga-primary-100);flex-wrap:wrap}

/* ── Dropdown menus (notifications / user) ──────────────────────── */
.dropdown-menu{border:1px solid var(--dga-border-subtle);border-radius:var(--dga-radius-lg);box-shadow:var(--dga-shadow-lg);padding:6px}
.notif-menu{width:340px;padding:0}
.notif-item{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid var(--dga-border-subtle)}
.notif-item:hover{background:var(--dga-neutral-50)}
.notif-ic{width:36px;height:36px;border-radius:var(--dga-radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:15px;font-weight:700}

/* ── Toast ──────────────────────────────────────────────────────── */
.dga-toast{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid var(--dga-border-subtle);border-inline-start:4px solid var(--dga-neutral-400);border-radius:12px;box-shadow:var(--dga-shadow-lg);padding:14px 18px;max-width:380px}
.dga-toast.success{border-inline-start-color:var(--dga-success-600)}
.dga-toast.error{border-inline-start-color:var(--dga-error-600)}
.dga-toast.info{border-inline-start-color:var(--dga-info-600)}
.dga-toast .t-ic{width:32px;height:32px;border-radius:var(--dga-radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;font-size:14px}

/* ── Sticky form action bar ─────────────────────────────────────── */
.form-actionbar{position:sticky;bottom:0;margin-top:16px;background:#fff;border:1px solid var(--dga-border-subtle);border-radius:12px;box-shadow:var(--dga-shadow-md);padding:14px 20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;z-index:5}

/* ── Footer ─────────────────────────────────────────────────────── */
.app-footer{background:#fff;border-top:1px solid var(--dga-border-subtle)}
.app-footer .inner{max-width:1440px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--dga-text-tertiary)}
.app-footer a{color:var(--dga-text-tertiary);text-decoration:none}
.app-footer a:hover{color:var(--dga-primary-600)}

/* ── Tags / chips ───────────────────────────────────────────────── */
.tag-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 12px;background:var(--dga-primary-50);color:var(--dga-primary-700);border-radius:var(--dga-radius-full);font-size:12.5px;font-weight:600}
.tag-chip .x{width:20px;height:20px;border-radius:var(--dga-radius-full);background:none;border:none;color:var(--dga-primary-600);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.tag-chip .x:hover{background:var(--dga-primary-100)}
.tag-view{height:28px;padding:0 12px;display:inline-flex;align-items:center;background:var(--dga-neutral-100);color:var(--dga-neutral-700);border-radius:var(--dga-radius-full);font-size:12.5px;font-weight:500}

/* ── Status radio (report form) ─────────────────────────────────── */
.status-radio{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--dga-border);border-radius:10px;background:#fff;cursor:pointer;text-align:start;width:100%}
.status-radio.on{border-color:var(--dga-primary-600);background:var(--dga-primary-50)}
.status-radio .rdot{width:18px;height:18px;border-radius:var(--dga-radius-full);border:2px solid var(--dga-neutral-300);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.status-radio.on .rdot{border-color:var(--dga-primary-600)}
.status-radio .rdot i{width:8px;height:8px;border-radius:var(--dga-radius-full);background:transparent}
.status-radio.on .rdot i{background:var(--dga-primary-600)}
.status-radio .rl{font-size:13.5px;font-weight:600;color:var(--dga-text);display:block}
.status-radio .rh{font-size:11.5px;color:var(--dga-text-tertiary);margin-top:1px;display:block}

/* ── Report cover (view) ────────────────────────────────────────── */
.report-cover{height:220px;display:flex;align-items:flex-end;justify-content:center;padding:20px;border-radius:var(--dga-radius-lg)}
.report-cover span{color:#fff;font-size:26px;font-weight:700;text-shadow:0 1px 8px rgba(0,0,0,.3)}

/* ── Utilities ──────────────────────────────────────────────────── */
.text-tertiary{color:var(--dga-text-tertiary)!important}
.text-secondary-dga{color:var(--dga-text-secondary)!important}
.page-title{font-size:24px;font-weight:700;margin:0 0 4px}
.page-sub{font-size:13.5px;color:var(--dga-text-secondary)}
.section-title{font-size:15px;font-weight:700;margin:0 0 16px}
.hamburger{display:none}
.desktop-search{display:flex}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width:1023.98px){
  .app-sidebar{display:none}
  .hamburger{display:inline-flex}
  .desktop-search{display:none}
  .app-main{padding:24px 24px 48px}
  .header-username{display:none}
}
@media (max-width:719.98px){
  .app-main{padding:16px 16px 48px}
  .desktop-only{display:none!important}
  .app-header .inner{padding:0 16px}
}
@media (min-width:1024px){
  .mobile-only{display:none!important}
}


/* ── Accordion sidebar (redesign) ──────────────────────────────── */
.app-sidebar{position:sticky;top:96px;height:calc(100vh - 96px);overflow:hidden;padding:16px 12px}
.acc-nav{overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;padding-inline-end:2px}
.acc-nav::-webkit-scrollbar{width:8px}
.acc-nav::-webkit-scrollbar-thumb{background:var(--dga-neutral-200);border-radius:9999px;border:2px solid #fff}
.acc-nav{scrollbar-width:thin;scrollbar-color:var(--dga-neutral-200) transparent}
.acc-item{border-radius:var(--dga-radius-md)}
.acc-item + .acc-item{margin-top:2px}
.acc-item + .acc-item::before{content:"";display:block;height:1px;background:var(--dga-border-subtle);margin:2px 12px 4px}
.acc-row{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;background:none;border:1.5px solid transparent;border-radius:var(--dga-radius-md);font-family:inherit;font-size:14px;font-weight:600;color:var(--dga-neutral-700);cursor:pointer;text-align:start;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.acc-row:hover{background:var(--dga-neutral-50);color:var(--dga-neutral-800)}
.acc-row:focus-visible{outline:2px solid var(--dga-info-600);outline-offset:2px}
.acc-ic{flex-shrink:0;display:inline-flex;color:var(--dga-neutral-500)}
.acc-row:hover .acc-ic{color:var(--dga-neutral-700)}
.acc-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-badge{font-size:11.5px;font-weight:700;background:var(--dga-neutral-100);color:var(--dga-neutral-600);padding:1px 8px;border-radius:var(--dga-radius-full)}
.acc-chev{flex-shrink:0;color:var(--dga-neutral-400);transition:transform .2s ease}
.acc-row.active{color:var(--dga-info-700);background:var(--dga-info-50);border-color:var(--dga-info-600)}
.acc-row.active .acc-ic{color:var(--dga-info-600)}
.acc-row.active .acc-badge{background:var(--dga-info-600);color:#fff}
.acc-row.branch-active{color:var(--dga-info-700)}
.acc-row.branch-active .acc-ic{color:var(--dga-info-600)}
.acc-item.open > .acc-row .acc-chev{transform:rotate(-180deg)}
.acc-sub{list-style:none;margin:0;padding:0;overflow:hidden;max-height:0;transition:max-height .25s ease}
.acc-item.open > .acc-sub{max-height:520px}
.acc-sublink{display:flex;align-items:center;gap:10px;padding:9px 12px;padding-inline-start:44px;margin:2px 0;border:1.5px solid transparent;border-radius:var(--dga-radius-md);font-size:13.5px;font-weight:500;color:var(--dga-neutral-600);text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.acc-sublink:hover{background:var(--dga-neutral-50);color:var(--dga-neutral-800)}
.acc-sublink:focus-visible{outline:2px solid var(--dga-info-600);outline-offset:2px}
.acc-sublink .sub-dot{width:6px;height:6px;border-radius:9999px;background:var(--dga-neutral-300);flex-shrink:0}
.acc-sublink.active{color:var(--dga-info-700);background:var(--dga-info-50);border-color:var(--dga-info-600);font-weight:600}
.acc-sublink.active .sub-dot{background:var(--dga-info-600)}
.acc-subcount{margin-inline-start:auto;font-size:11px;font-weight:700;color:var(--dga-neutral-500)}
.acc-sublink.active .acc-subcount{color:var(--dga-info-700)}
/* mobile offcanvas nav also scrolls & carries accordion look */
#mobileNav .acc-nav{padding:8px}
@media (max-width:1023.98px){ .app-sidebar{position:static;height:auto;overflow:visible} }

/* ── Recent-requests table (semantic rows) ─────────────────────── */
.recent-table{table-layout:auto}
.recent-table tbody td{padding:16px;vertical-align:middle}
.recent-table tbody tr{cursor:pointer}
.recent-table .rt-serial{width:1%;white-space:nowrap}
.recent-table .rt-title{width:100%}
.recent-table .rt-title .rt-link{display:block;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;color:var(--dga-text)}
.recent-table tbody tr:hover .rt-title .rt-link{color:var(--dga-primary-700)}
.recent-table .rt-stage{white-space:nowrap}
.recent-table .rt-status{white-space:nowrap;text-align:start}


.dga-table tfoot th ,
.dga-table tfoot td { 
    padding: 14px 12px;
    font-size: 13px;
}