/* =========================================================
   UNIFIED TABS — v300 (2026-10-03). Pulse · Access Codes · Match Console · Saved Requests · Waiting List
   now share ONE frame, taken from Access Codes (the reference):
     1) same slim site header on every tab (it used to shrink ONLY on Access Codes, so the tab dock jumped up/down),
     2) same stable page gutter (no sideways shift when one tab is short and another scrolls),
     3) every tab = navy strip header (gold hairline) + content card,
     4) Pulse's tall hero collapses to a compact strip, so no big empty bands above the section rail.
   CSS only — markup and behaviour untouched. Loaded after 163-command-deck.css.
   ========================================================= */

/* ---------- 1 · slim header / footer on the whole Requests workspace (not only Access Codes) ---------- */
body:has(.req-cc) header.site .header-inner{padding-block:3px;gap:12px}
body:has(.req-cc) header.site .brand .mark{height:26px}
body:has(.req-cc) header.site nav.main-nav a{padding:4px 10px;font-size:12.5px;min-height:0;gap:6px}
body:has(.req-cc) header.site nav.main-nav a i{width:20px;height:20px;font-size:10px;border-width:1px}
body:has(.req-cc) header.site .icon-btn{width:30px;height:30px;font-size:12px;border-radius:9px}
body:has(.req-cc) header.site::after{height:1px}
body:has(.req-cc) footer.site{padding:8px 20px;margin-top:6px}
body:has(.req-cc) footer.site .footer-art{display:none}
body:has(.req-cc) footer.site .footer-compact{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0;margin:0;border:0}
body:has(.req-cc) footer.site .footer-brand img{height:20px}
body:has(.req-cc) footer.site .footer-bottom{margin:4px 0 0;padding:4px 0 0;font-size:10.5px}

/* ---------- 2 · no sideways jump between short and long tabs ---------- */
html:has(.req-cc){scrollbar-gutter:stable}

/* ---------- 3 · one tab frame: navy strip + card (Saved · Waiting · Match Console) ---------- */
.req-cc #reqTabContent.req-tab-panel-saved,
.req-cc #reqTabContent.req-tab-panel-watch,
.req-cc #reqTabContent.req-tab-panel-call{
  display:block;padding:0!important;overflow:hidden;border-radius:var(--cd-r);border:1px solid var(--cd-line);background:var(--cd-card);
  box-shadow:0 1px 2px rgba(22,45,76,.05),0 10px 26px rgba(22,45,76,.06);}

/* strip: same gradient / hairline / serif title as the Access Codes header */
.req-cc .req-tab-panel-saved > .section-head,
.req-cc .req-tab-panel-watch > .section-head,
.req-cc .req-tab-panel-call::before{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin:0!important;padding:14px 18px!important;color:#fff;
  background:
    radial-gradient(420px 200px at 92% -20%,rgba(206,165,119,.30),transparent 70%),
    repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 1px,transparent 1px 22px),
    linear-gradient(135deg,var(--cd-navy2) 0%,var(--cd-navy) 58%,#1F3A5F 100%);
  box-shadow:inset 0 -3px 0 -1px rgba(206,165,119,.75);border:0;border-radius:0;}
.req-cc .req-tab-panel-call::before{content:"Match Console";display:block;font:600 clamp(20px,2.4vw,26px)/1.1 var(--cd-serif);}
.req-cc .req-tab-panel-saved > .section-head > div,
.req-cc .req-tab-panel-watch > .section-head > div{display:flex;flex-direction:column;gap:3px;min-width:0;}
.req-cc .req-tab-panel-saved > .section-head h2,
.req-cc .req-tab-panel-watch > .section-head h2{margin:0;font:600 clamp(20px,2.4vw,26px)/1.1 var(--cd-serif);color:#fff;letter-spacing:-.2px;}
.req-cc .req-tab-panel-saved > .section-head .kicker,
.req-cc .req-tab-panel-watch > .section-head .kicker{order:-1;display:inline-block;margin:0;padding:0;border:0;background:none;border-radius:0;
  font:700 10.5px var(--cd-mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--cd-gold2);}
.req-cc .req-tab-panel-saved > .section-head button,
.req-cc .req-tab-panel-watch > .section-head button{height:36px;border-radius:11px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;font:700 12px var(--cd-body);}

/* content inside the card gets the same 14px inset the Access Codes list has */
.req-cc .req-tab-panel-saved > :not(.section-head),
.req-cc .req-tab-panel-watch > :not(.section-head){margin-left:14px;margin-right:14px;}
.req-cc .req-tab-panel-saved > .req-tab-sub,
.req-cc .req-tab-panel-watch > .req-tab-sub{margin-top:12px;margin-bottom:10px;max-width:none;}
.req-cc .req-tab-panel-saved > :last-child,
.req-cc .req-tab-panel-watch > :last-child{margin-bottom:14px;}
.req-cc .req-tab-panel-saved .empty-state,
.req-cc .req-tab-panel-watch .empty-state{border:1px dashed var(--cd-line);background:transparent;}

/* Match Console: search bar sits in the card like the Access Codes issue bar, results below */
.req-cc .req-tab-panel-call > .req-command{margin:12px 14px 0;box-shadow:none;}
.req-cc .req-tab-panel-call > .req-results,
.req-cc .req-tab-panel-call > #reqResults{margin:12px 14px 14px;}
.req-cc .req-tab-panel-call .empty-state{border:1px dashed var(--cd-line);background:transparent;}

/* ---------- 4 · Pulse: compact command strip instead of the tall hero ---------- */
.req-cc .vc-shell.pp .vc-command-head{padding:10px 16px;gap:8px 16px;border-radius:var(--cd-r);}
.req-cc .vc-shell.pp .vc-command-head::after{height:3px;}
.req-cc .vc-shell.pp .vc-head-brand{display:flex;flex-direction:column;gap:2px;}
.req-cc .vc-shell.pp .vc-command-head h2{font-size:clamp(19px,2vw,24px);line-height:1.1;margin:0;}
.req-cc .vc-shell.pp .vc-command-head .kicker,
.req-cc .vc-shell.pp .vc-head-brand .kicker{margin:0;font-size:10px;}
.req-cc .vc-shell.pp .pp-clock{margin-top:2px;font-size:12px;}
.req-cc .vc-shell.pp .vc-head-actions{gap:6px;flex-wrap:nowrap;}
.req-cc .vc-shell.pp .vc-head-actions > *{height:34px;}
.req-cc .vc-shell.pp .pp-hero-body{gap:8px;align-items:stretch;}
.req-cc .vc-shell.pp .pp-card{padding:8px 11px;display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:0;}
.req-cc .vc-shell.pp .pp-card h4{margin:0;font-size:10px;}
.req-cc .vc-shell.pp .pp-card .pp-none{font-size:13px;}
.req-cc .vc-shell.pp .pp-next-acts{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;}
.req-cc .vc-shell.pp .pp-chips{gap:5px;}
.req-cc .vc-shell.pp .pp-chip{padding:5px 9px;min-height:0;}
.req-cc .vc-shell.pp .pp-spark{height:28px;}
.req-cc .vc-shell.pp .pp-trend-meta b{font-size:20px;line-height:1;}
.req-cc .vc-shell.pp .vc-kpi{min-height:46px;padding:7px 11px;}
.req-cc .vc-shell.pp .vc-kpi b{font-size:19px;}
.req-cc .vc-shell.pp > .vc-command-head,
.req-cc .vc-shell.pp > .vc-kpi-strip,
.req-cc .vc-shell.pp > .vc-pending-banner-host:not(:empty),
.req-cc .vc-shell.pp > .vc-section-nav{margin-bottom:8px;}

@media (min-width:1100px){
  .req-cc .vc-shell.pp .vc-command-head{grid-template-columns:minmax(330px,.7fr) minmax(0,2.3fr);}
}
@media (max-width:640px){
  .req-cc .vc-shell.pp .vc-command-head{padding:10px 12px;}
}

/* ---------- 4b · Pulse strip: title on ONE line, no repeated kicker, tighter cards ---------- */
.req-cc .vc-shell.pp .vc-head-brand .kicker,
.req-cc .vc-shell.pp .vc-command-head .vc-kicker,
.req-cc .vc-shell.pp .vc-command-head .pp-kicker{display:none;}
.req-cc .vc-shell.pp .vc-command-head h2{font-size:clamp(18px,1.7vw,22px);}
.req-cc .vc-shell.pp .pp-clock{margin-top:0;}
.req-cc .vc-shell.pp .pp-card h4{display:flex;align-items:center;gap:6px;}
.req-cc .vc-shell.pp .pp-hero-body > .pp-card{justify-content:flex-start;}
@media (min-width:1100px){
  .req-cc .vc-shell.pp .vc-command-head{grid-template-columns:minmax(300px,.62fr) minmax(0,2.4fr);}
}
@media (min-width:1360px){
  .req-cc .vc-shell.pp .vc-command-head{grid-template-columns:minmax(420px,.75fr) minmax(0,2.25fr);}
  .req-cc .vc-shell.pp .vc-command-head h2{white-space:nowrap;}
}
