/* ═══════════════════════════════════════════════════════
   SAGENT — design system
   Palette: brand red / gold accent / cream + white rhythm
   Type:    Manrope (headings) · Inter (body & UI)
   ═══════════════════════════════════════════════════════ */

:root {
    /* Brand */
    --red:       #E8392A;   /* brand / accent */
    --gold:      #C99A3B;   /* buttons, highlights, icons */
    --gold-hover:#B0842F;
    --gold-pale: #F6EEDC;   /* soft icon badges */
    --cream:     #F5F3EA;   /* section backgrounds */
    --near-black:#1C1C1A;   /* footer-weight surfaces */

    /* Text */
    --heading:   #1A1A1A;
    --body:      #3D3D3A;
    --muted:     #5F5F5B;

    /* Lines & surfaces */
    --white:     #FFFFFF;
    --border:    #E4E1D7;
    --border-soft:#EEEBE1;

    /* Semantic (data) */
    --green:     #1E874B;
    --orange:    #C9772B;
    --neg:       #C9302A;

    /* Shape */
    --r-sm: 6px;
    --r-md: 10px;
    --r-lg: 14px;

    /* Legacy aliases — older markup still references these */
    --primary:   #1A1A1A;
    --secondary: #F5F3EA;
    --accent:    #C99A3B;
    --text:      #3D3D3A;
    --hover:     #B0842F;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--cream);
    color: var(--body);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4,h5 {
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    color: var(--heading);
    letter-spacing: -0.02em;
    line-height: 1.2;
}

/* Gold-accented word inside a headline */
.hl { color: var(--gold); }

/* ── Buttons ── */
.btn-gold,
.qbo-fetch-btn,
.login-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--gold);
    color: var(--white);
    border: none;
    border-radius: var(--r-sm);
    padding: 0.6rem 1.25rem;
    font-family: 'Inter', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
}
/* Materialize turns focused <button>s teal; keep the gold. */
.btn-gold:focus,
.qbo-fetch-btn:focus,
.login-btn:focus { background: var(--gold); }
.btn-gold:hover,
.qbo-fetch-btn:hover,
.login-btn:hover { background: var(--gold-hover); }
.btn-gold:active,
.qbo-fetch-btn:active,
.login-btn:active { transform: translateY(1px); }
.qbo-fetch-btn i, .login-btn i { font-size: 1rem; }
.qbo-fetch-btn:disabled { opacity:0.55;cursor:default;transform:none; }
.qbo-fetch-btn:disabled:hover { background:var(--gold); }
/* Outline variant (secondary action next to a gold button) */
.qbo-fetch-btn.btn-outline,
.qbo-fetch-btn.btn-outline:focus { background:var(--white);color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold); }
.qbo-fetch-btn.btn-outline:hover { background:var(--gold-pale);color:var(--gold-hover); }

/* ── Login ── */
#login-overlay { position:fixed;inset:0;background:var(--cream);display:flex;align-items:center;justify-content:center;z-index:9999; }
#login-overlay.hidden { display:none; }
.login-card { background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);padding:3rem 2.5rem 2.5rem;width:100%;max-width:420px;box-shadow:0 12px 40px rgba(28,28,26,0.08); }
.login-logo { font-family:'Manrope',sans-serif;font-weight:800;font-size:2.25rem;color:var(--red);letter-spacing:-0.03em;line-height:1;margin-bottom:0.2rem; }
.login-byline { font-size:0.8rem;color:var(--muted);margin-bottom:2.25rem; }
.login-card h3 { font-size:1.4rem;margin-bottom:1.75rem; }
.login-field { margin-bottom:1.25rem; }
.login-field label { display:block;font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);margin-bottom:0.45rem; }
.login-field input { width:100%;padding:0.75rem 1rem;border:1px solid var(--border)!important;border-radius:var(--r-sm);background:var(--cream);font-family:'Inter',sans-serif;font-size:0.95rem;color:var(--heading);outline:none;box-sizing:border-box;height:auto!important;margin:0!important;box-shadow:none!important;transition:border-color 0.2s,background 0.2s; }
.login-field input:focus { border-color:var(--gold)!important;background:var(--white); }
.login-btn { width:100%;padding:0.85rem;font-size:0.85rem;margin-top:0.5rem; }
.login-error { background:#FDEFED;border-left:3px solid var(--red);border-radius:var(--r-sm);color:#8E2318;padding:0.6rem 0.9rem;font-size:0.85rem;margin-bottom:1rem;display:none; }
.login-error.show { display:block; }
.login-footer { margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border-soft);font-size:0.75rem;color:var(--muted);text-align:center; }
.user-pill { display:none;align-items:center;gap:0.4rem;background:var(--gold-pale);border:1px solid rgba(201,154,59,0.35);border-radius:999px;padding:0.25rem 0.7rem 0.25rem 0.45rem;font-size:0.72rem;letter-spacing:0.04em;color:var(--gold);font-weight:600;margin-top:0.75rem;cursor:pointer;width:fit-content;transition:background 0.2s; }
.user-pill:hover { background:#EFE2C8; }
.user-pill i { font-size:0.9rem; }

/* ── Layout ── */
.app-container { display:flex;min-height:100vh; }
.sidebar { width:250px;background:var(--white);color:var(--body);display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto;border-right:1px solid var(--border); }
.sidebar-header { padding:2rem 1.5rem 1.5rem;border-bottom:1px solid var(--border-soft); }
.sidebar-header h1 { font-size:1.75rem;font-weight:800;letter-spacing:-0.03em;color:var(--red);margin-bottom:0.25rem; }
.sidebar-header p { font-size:0.85rem;color:var(--muted);line-height:1.4; }
.main-nav { flex:1;padding:1.25rem 0;background:var(--cream); }
.main-nav-item { display:block;padding:0.9rem 1.5rem;color:var(--body);text-decoration:none;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;font-size:0.72rem;transition:background 0.2s,color 0.2s;cursor:pointer;border-left:3px solid transparent; }
.main-nav-item:hover { background:rgba(201,154,59,0.07);color:var(--gold-hover); }
.main-nav-item.active { background:var(--gold-pale);color:var(--gold);border-left-color:var(--gold); }
.main-nav-item i { margin-right:0.7rem;vertical-align:middle;font-size:1.1rem; }
.main-content { margin-left:250px;flex:1;min-width:0;padding:2.5rem 2.5rem 4rem;width:calc(100% - 250px);background:var(--white); }
.content-header { padding:0 0 1.75rem;border-bottom:1px solid var(--border);margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem; }
.content-header h2 { font-size:2.1rem;font-weight:800; }
.content-subtitle { color:var(--body);font-size:0.95rem;margin-top:0.4rem; }
.main-tab-content { display:none; }
.main-tab-content.active { display:block;animation:fadeIn 0.4s ease; }
@keyframes fadeIn { from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);} }

/* ── Tables ── */
.client-controls { display:flex;gap:1rem;margin-bottom:2rem;align-items:center; }
.search-box { flex:1;position:relative; }
.search-box input { width:100%;padding:0.75rem 1rem 0.75rem 3rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--white);font-family:'Inter',sans-serif;font-size:0.95rem; }
.search-box i { position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--muted); }
.client-table { background:var(--white);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden; }
.client-table table { width:100%;border-collapse:collapse; }
.client-table.scroll-x { overflow-x:auto; }
.client-table thead { background:var(--cream);border-bottom:1px solid var(--border); }
.client-table th { padding:0.9rem 1rem;text-align:left;font-weight:600;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.09em;color:var(--muted);white-space:nowrap; }
.client-table td { padding:1rem;border-bottom:1px solid var(--border-soft);font-size:0.9rem;color:var(--body); }
.client-table td strong { color:var(--heading);font-weight:600; }
.client-table tbody tr:last-child td { border-bottom:none; }
.client-table tbody tr { transition:background 0.2s ease; }
.client-table tbody tr:hover { background:var(--cream); }
.business-info { display:flex;align-items:center;gap:1rem; }
.business-icon { width:40px;height:40px;background:var(--gold-pale);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;color:var(--gold); }
.business-name { font-weight:600;font-size:0.95rem;color:var(--heading); }
.business-type { font-size:0.85rem;color:var(--muted); }
.status-badge { padding:0.35rem 0.75rem;border-radius:999px;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;display:inline-flex;align-items:center;gap:0.5rem; }
.status-healthy { background:#E4F2E8;color:#186438; }
.status-at-risk { background:var(--gold-pale);color:#8A6520; }
.status-overdue { background:#FDEBE9;color:#8E2318; }

/* ── Coloured cell accents ──
   Selectors include `td` so they outrank `.client-table td`'s base colour. */
.val-positive, .client-table td.val-positive { color:var(--green);font-weight:600; }
.val-negative, .client-table td.val-negative { color:var(--neg);font-weight:600; }
.cb-type-pill { display:inline-block;padding:0.28rem 0.65rem;border-radius:999px;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;background:var(--gold-pale);color:var(--gold); }
.cb-type-pill.placeholder { background:#EFEEE9;color:var(--muted); }
.cb-type-pill.warn { background:#FBEEE1;color:var(--orange); }
.rev-tag { font-size:0.75rem;font-weight:600;color:var(--muted);white-space:nowrap;margin-left:0.15rem; }
.status-flag { display:inline-flex;align-items:center;gap:0.25rem;margin-left:0.4rem;padding:0.12rem 0.5rem;border-radius:999px;font-size:0.64rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap;vertical-align:middle; }
.status-flag i { font-size:0.85rem; }
.status-flag.error   { background:#FDEBE9;color:#8E2318; }
.status-flag.muted   { background:#EFEEE9;color:var(--muted); }
.status-flag.running { background:var(--gold-pale);color:var(--gold); }
.table-footnote { font-size:0.8rem;color:var(--muted);margin-top:0.75rem;max-width:900px; }
.type-dot { display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:0.6rem;vertical-align:middle; }

/* ── Stat cards ── */
.stats-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2.5rem; }
.stat-card { background:var(--white);padding:1.5rem;border:1px solid var(--border);border-radius:var(--r-md);transition:box-shadow 0.25s ease,border-color 0.25s ease; }
.stat-card:hover { box-shadow:0 8px 28px rgba(28,28,26,0.07);border-color:#D8D4C7; }
.stat-header { display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem; }
.stat-label { color:var(--muted);font-size:0.7rem;text-transform:uppercase;letter-spacing:0.09em;font-weight:600;line-height:1.4; }
/* soft icon badge in pale gold */
.stat-icon { font-size:1.15rem!important;color:var(--gold);background:var(--gold-pale);border-radius:var(--r-sm);width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0; }
.stat-icon.green  { color:var(--green);background:#E4F2E8; }
.stat-icon.orange { color:var(--orange);background:#FBEEE1; }
.stat-icon.red    { color:var(--red);background:#FDEBE9; }
.stat-icon.accent { color:var(--gold);background:var(--gold-pale); }
.stat-card.kpi-gold   { border-top:3px solid var(--gold); }
.stat-card.kpi-green  { border-top:3px solid var(--green); }
.stat-card.kpi-red    { border-top:3px solid var(--red); }
.stat-card.kpi-orange { border-top:3px solid var(--orange); }
.stat-number { font-family:'Manrope',sans-serif;font-size:2.2rem;font-weight:800;letter-spacing:-0.03em;color:var(--heading);line-height:1;margin-bottom:0.5rem; }
.stat-detail { color:var(--muted);font-size:0.85rem; }

/* ── Client-detail sub-nav ── */
#client-subnav { background:var(--cream);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft); }
.client-nav-back { display:flex;align-items:center;gap:0.45rem;padding:0.6rem 1.25rem;color:var(--gold);font-weight:700;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.09em;cursor:pointer;transition:color 0.2s; }
.client-nav-back:hover { color:var(--gold-hover); }
.client-nav-back i { font-size:0.95rem; }
.client-nav-viewing { padding:0.7rem 1.25rem;border-bottom:1px solid var(--border-soft);background:var(--cream); }
.client-nav-viewing-label { font-size:0.62rem;font-weight:600;text-transform:uppercase;letter-spacing:0.12em;color:var(--muted);margin-bottom:0.15rem; }
.client-nav-viewing-name { font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem;color:var(--heading);line-height:1.15; }
.client-nav-item { display:flex;align-items:center;gap:0.65rem;padding:0.55rem 1.25rem;color:var(--body);text-decoration:none;font-weight:500;font-size:0.88rem;cursor:pointer;transition:background 0.2s,color 0.2s;border-left:3px solid transparent; }
.client-nav-item:hover { background:rgba(201,154,59,0.07); }
.client-nav-item i { font-size:1.05rem;color:var(--muted);flex-shrink:0; }
.client-nav-item span { flex:1; }
.client-nav-item.active { background:var(--gold-pale);color:var(--gold);border-left-color:var(--gold);font-weight:600; }
.client-nav-item.active i { color:var(--gold); }
.back-button { display:inline-flex;align-items:center;gap:0.5rem;color:var(--gold);text-decoration:none;font-weight:600;font-size:0.85rem;margin-bottom:1.5rem;transition:color 0.2s;cursor:pointer; }
.back-button:hover { color:var(--gold-hover); }
.back-button i { font-size:1.2rem; }
.client-tab-content { display:none; }
.client-tab-content.active { display:block;animation:fadeIn 0.4s ease; }

/* ── Loading spinner ── */
.qbo-spinner { width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin 0.75s linear infinite;display:inline-block;vertical-align:middle;margin-right:0.5rem; }
.qbo-spinner.small { width:14px;height:14px;border-width:2px;margin-right:0.35rem; }
@keyframes spin { to{transform:rotate(360deg);} }

/* ── Error & placeholder ── */
.error-banner { padding:0.9rem 1.1rem;background:#FDEFED;border-left:3px solid var(--red);border-radius:var(--r-sm);color:#8E2318;font-size:0.88rem;margin-bottom:1rem; }
.warn-banner { display:flex;align-items:center;gap:0.75rem;padding:0.8rem 1.1rem;background:#FBF3E4;border-left:3px solid var(--orange);border-radius:var(--r-sm);color:#7A4B12;font-size:0.88rem;margin-bottom:1.5rem; }
.warn-banner i { color:var(--orange);flex-shrink:0; }
.warn-banner span { flex:1; }
.warn-banner .qbo-fetch-btn { padding:0.45rem 0.9rem;flex-shrink:0; }
.placeholder-section { display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 2rem;text-align:center;color:var(--muted);gap:0.75rem;background:var(--cream);border-radius:var(--r-md); }
.placeholder-section p { font-size:1rem; }

/* ── Sections: alternating white / cream bands ── */
.panel { padding:2rem 2rem 2.25rem;border-radius:var(--r-lg);margin-bottom:1.75rem;background:var(--white); }
.panel-cream { background:var(--cream); }
/* full-bleed to the content gutter so bands read as page rhythm */
.panel { margin-left:-2.5rem;margin-right:-2.5rem;padding-left:2.5rem;padding-right:2.5rem;border-radius:0; }
@media(max-width:992px){.panel{margin-left:-1.5rem;margin-right:-1.5rem;padding-left:1.5rem;padding-right:1.5rem;}}

/* ── Section headings inside tab content ── */
.section-heading { font-size:1.3rem;font-weight:700;margin:2.5rem 0 1rem;color:var(--heading); }
.section-heading:first-child { margin-top:0; }
.panel .section-heading { margin-top:0; }

/* ── Chargeback intro hint ── */
.cb-intro { display:flex;align-items:center;gap:0.6rem;background:var(--cream);border:1px solid var(--border-soft);border-left:3px solid var(--gold);border-radius:var(--r-sm);padding:0.75rem 1rem;font-size:0.88rem;color:var(--body);margin-bottom:1.5rem; }
.cb-intro-icon { font-size:1.1rem;color:var(--gold);flex-shrink:0; }

/* ── Chargeback filter bar ── */
.cb-filter-bar { display:flex;align-items:center;gap:0.75rem;margin-bottom:1.25rem; }
.cb-filter-label { font-size:0.7rem;font-weight:600;text-transform:uppercase;letter-spacing:0.09em;color:var(--muted); }
.cb-filter-select { padding:0.5rem 0.9rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--white);font-family:'Inter',sans-serif;font-size:0.88rem;color:var(--heading);cursor:pointer;outline:none;transition:border-color 0.2s; }
.cb-filter-select:focus { border-color:var(--gold); }
.cb-filter-select.browser-default { width:auto;min-width:320px;max-width:100%;height:auto; }
.cb-filter-count { font-size:0.8rem;color:var(--muted);margin-left:0.25rem;white-space:nowrap; }

/* ── Chargeback expandable rows ── */
.cb-data-row { cursor:pointer; }
.cb-data-row:hover { background:var(--cream); }
.cb-chevron-th { width:32px; }
.client-table td.cb-chevron { width:32px;color:var(--muted); }
.cb-chevron i { font-size:1rem;vertical-align:middle;transition:transform 0.15s; }
.cb-narrative-row { display:none; }
.cb-narrative-row.open { display:table-row; }
.cb-narrative-row td { padding:0.9rem 1.25rem 1.1rem 2.5rem;background:var(--cream);border-top:none; }
.cb-narrative-text { font-size:0.88rem;color:var(--body);line-height:1.65; }
.cb-chargeback-note { background:#E9F3EC;border-left:3px solid var(--green);border-radius:var(--r-sm);padding:0.7rem 0.95rem;margin-bottom:0.9rem;font-size:0.9rem;color:#186438;line-height:1.55;max-width:900px; }
.cb-chargeback-note.neutral { background:#FBF3E4;border-left-color:var(--orange);color:#7A4B12; }
.cb-audit-summary { font-size:0.88rem;color:var(--body);margin-bottom:0.4rem;max-width:900px; }
.cb-audit-caveat { font-size:0.8rem;color:var(--muted);margin-bottom:0.9rem;max-width:900px; }
.cb-audit .client-table th { padding:0.6rem 0.7rem;position:static;box-shadow:none; }
.cb-audit .client-table td { padding:0.6rem 0.7rem;font-size:0.82rem;vertical-align:top; }
.client-table td.cb-audit-notes { min-width:280px;font-size:0.8rem; }
.cb-audit-notes div + div { margin-top:0.3rem; }
.nfi-badge { display:inline-block;margin-left:0.4rem;padding:0.08rem 0.45rem;border-radius:999px;background:#FBEEE1;color:var(--orange);font-size:0.64rem;font-weight:700;letter-spacing:0.03em;white-space:nowrap;vertical-align:middle; }
.po-pill { display:inline-block;padding:0.15rem 0.55rem;border-radius:999px;font-size:0.66rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap; }
.po-pill.ok   { background:#E4F2E8;color:#186438; }
.po-pill.warn { background:#FBEEE1;color:var(--orange); }
.inv-line { font-size:0.8rem;line-height:1.5; }
.dm-tag { display:inline-block;margin-left:0.3rem;padding:0 0.35rem;border-radius:4px;background:#FDEBE9;color:#8E2318;font-size:0.62rem;font-weight:700;letter-spacing:0.05em; }

/* ── Reconciliation sub-tab nav ── */
.recon-subnav { display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:1.5rem; }
.recon-nav-item { padding:0.65rem 1.5rem;font-weight:600;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.09em;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color 0.2s,border-color 0.2s; }
.recon-nav-item:hover { color:var(--gold-hover); }
.recon-nav-item.active { color:var(--gold);border-bottom-color:var(--gold); }
.recon-panel { display:none; }
.recon-panel.active { display:block; }

/* ── Chargeback detail table (scrollable, sticky header) ── */
.cb-table-wrap { overflow-x:auto;max-height:70vh;overflow-y:auto;border-radius:var(--r-md); }
/* Mirror scrollbar above the table so horizontal scroll is reachable without scrolling to the bottom. */
.cb-scroll-top { overflow-x:auto;overflow-y:hidden;margin-bottom:0.25rem; }
.cb-scroll-top > div { height:1px; }
/* Always-visible scrollbars (macOS otherwise hides them until you scroll). */
.cb-scroll-top::-webkit-scrollbar, .cb-table-wrap::-webkit-scrollbar { height:10px;width:10px; }
.cb-scroll-top::-webkit-scrollbar-track, .cb-table-wrap::-webkit-scrollbar-track { background:var(--cream);border-radius:999px; }
.cb-scroll-top::-webkit-scrollbar-thumb, .cb-table-wrap::-webkit-scrollbar-thumb { background:#C9C5B8;border-radius:999px; }
.cb-scroll-top::-webkit-scrollbar-thumb:hover, .cb-table-wrap::-webkit-scrollbar-thumb:hover { background:var(--muted); }
.cb-table-wrap .client-table { width:fit-content;min-width:100%;overflow:visible;border-radius:0; }
.cb-table-wrap thead th { position:sticky;top:0;background:var(--cream);z-index:1;box-shadow:inset 0 -1px 0 var(--border); }

/* ── Dashboard header actions + refresh progress ── */
.header-actions { display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap;justify-content:flex-end; }
.data-as-of { font-size:0.8rem;color:var(--muted);white-space:nowrap; }
.refresh-progress { display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;background:var(--cream);border:1px solid var(--border-soft);border-left:3px solid var(--gold);border-radius:var(--r-sm);padding:0.65rem 1rem;font-size:0.88rem;color:var(--body);margin:-0.75rem 0 1.5rem; }
.refresh-progress.done { background:var(--white); }
.refresh-progress > i { font-size:1.1rem; }
.refresh-progress .job-warnings { flex-basis:100%;order:10; }
.refresh-dismiss { margin-left:auto;cursor:pointer;color:var(--gold);font-weight:600;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.06em; }
.refresh-dismiss:hover { color:var(--gold-hover); }
.job-warnings { font-size:0.82rem;color:#7A4B12; }
.job-warnings summary { cursor:pointer;font-weight:600; }
.job-warnings ul { margin:0.35rem 0 0 1.1rem;max-height:160px;overflow-y:auto; }
.job-warnings li { list-style:disc;line-height:1.45; }

/* ── Manage programs modal ── */
body.pm-lock { overflow:hidden; }
.pm-overlay { position:fixed;inset:0;background:rgba(28,28,26,0.45);display:none;align-items:flex-start;justify-content:center;padding:2rem 1rem;z-index:1000; }
.pm-overlay.open { display:flex;animation:fadeIn 0.2s ease; }
.pm-panel { background:var(--white);border-radius:var(--r-lg);box-shadow:0 24px 60px rgba(28,28,26,0.25);width:100%;max-width:1440px;max-height:calc(100vh - 4rem);display:flex;flex-direction:column;overflow:hidden; }
.pm-header { display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.75rem;border-bottom:1px solid var(--border);flex-shrink:0; }
.pm-header h3 { font-size:1.4rem;font-weight:800; }
.pm-close, .pm-close:focus { background:none;border:none;cursor:pointer;color:var(--muted);padding:0.3rem;border-radius:var(--r-sm);display:inline-flex; }
.pm-close:hover { background:var(--cream);color:var(--heading); }
.pm-body { overflow-y:auto;padding:1.5rem 1.75rem 2rem;flex:1;min-height:0; }
.pm-section { margin-bottom:2.25rem; }
.pm-section-last { margin-bottom:0; }
.pm-section-title { font-size:1.05rem;margin-bottom:0.85rem; }
.pm-note { padding:0.7rem 1rem;background:#E9F3EC;border-left:3px solid var(--green);border-radius:var(--r-sm);color:#186438;font-size:0.88rem;margin-bottom:1rem; }
.pm-empty { padding:1.5rem;background:var(--cream);border-radius:var(--r-md);color:var(--muted);text-align:center;font-size:0.9rem; }
.pm-table-wrap { overflow-x:auto;border-radius:var(--r-md); }
.pm-table-wrap > .client-table { min-width:1100px;overflow:visible; }
.pm-table-wrap > .client-table > table > tbody > tr > td { vertical-align:top;padding:0.85rem 0.8rem; }
.pm-table-wrap > .client-table > table > thead > tr > th { padding:0.75rem 0.8rem; }
.pm-sub { font-size:0.78rem;color:var(--muted);line-height:1.4;margin-top:0.15rem; }
.pm-sub-inline { font-size:0.8rem;color:var(--muted);margin-left:0.35rem; }
.pm-muted { color:var(--muted); }
.pm-help { font-size:0.75rem;color:var(--muted);line-height:1.4;margin-top:0.35rem; }
.pm-nowrap { white-space:nowrap; }
.pm-boards-cell { width:150px; }
.pm-boards-cell .pm-help { max-width:140px; }
.pm-error-text { font-size:0.75rem;color:#8E2318;margin-top:0.3rem;max-width:220px;word-break:break-word; }
.pm-actions { width:110px; }
.pm-actions .pm-btn { display:flex;width:100%;justify-content:center; }
.pm-actions .pm-btn + .pm-btn { margin-left:0;margin-top:0.35rem; }

/* Inputs: always `browser-default` so Materialize leaves them alone */
.pm-input { width:100%;padding:0.5rem 0.75rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--white);font-family:'Inter',sans-serif;font-size:0.88rem;color:var(--heading);outline:none;transition:border-color 0.2s,background 0.2s; }
.pm-input:focus, .pm-select:focus { border-color:var(--gold); }
.pm-input.pm-boards { width:110px; }
.pm-select.browser-default { width:auto; }
.pm-select { padding:0.45rem 0.6rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--white);font-family:'Inter',sans-serif;font-size:0.85rem;color:var(--heading);cursor:pointer;outline:none;height:auto; }
.pm-input.pm-saved, .pm-select.pm-saved { border-color:var(--green);background:#E9F3EC; }
input[type="checkbox"].pm-check { position:static;opacity:1;pointer-events:auto;width:15px;height:15px;margin:0;accent-color:var(--gold);cursor:pointer;vertical-align:middle; }
.pm-check-label { display:inline-flex;align-items:center;gap:0.45rem;font-size:0.82rem;color:var(--body);cursor:pointer;white-space:nowrap; }
.pm-search { position:relative; }
.pm-search > i { position:absolute;left:0.65rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:1.1rem;pointer-events:none; }
.pm-search .pm-input { padding-left:2.2rem; }

/* Small buttons & links */
.pm-btn, .pm-btn:focus { display:inline-flex;align-items:center;gap:0.3rem;background:var(--white);color:var(--body);border:1px solid var(--border);border-radius:var(--r-sm);padding:0.35rem 0.65rem;font-family:'Inter',sans-serif;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;cursor:pointer;transition:background 0.2s,border-color 0.2s; }
.pm-btn + .pm-btn { margin-left:0.35rem; }
.pm-btn i { font-size:0.95rem; }
.pm-btn:hover { background:var(--cream);border-color:#D8D4C7; }
.pm-btn.danger { color:var(--neg); }
.pm-btn:disabled { opacity:0.5;cursor:default; }
.pm-link { display:inline-flex;align-items:center;gap:0.2rem;color:var(--gold);font-weight:600;font-size:0.8rem;cursor:pointer; }
.pm-link:hover { color:var(--gold-hover); }
.pm-link i { font-size:0.9rem; }

/* Status pills */
.pm-pill { display:inline-flex;align-items:center;padding:0.15rem 0.55rem;border-radius:999px;font-size:0.66rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap; }
.pm-pill.ok      { background:#E4F2E8;color:#186438; }
.pm-pill.error   { background:#FDEBE9;color:#8E2318;cursor:help; }
.pm-pill.warn    { background:#FBEEE1;color:var(--orange); }
.pm-pill.muted   { background:#EFEEE9;color:var(--muted); }
.pm-pill.running { background:var(--gold-pale);color:var(--gold); }
.pm-status { min-width:150px;max-width:220px; }
.pm-status .job-warnings { margin-top:0.35rem; }

/* Add-program steps */
.pm-step { margin-bottom:1.25rem;max-width:960px; }
.pm-step-label { display:flex;align-items:center;gap:0.5rem;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;color:var(--heading);margin-bottom:0.55rem; }
.pm-step-label .pm-muted { text-transform:none;letter-spacing:0;font-weight:500; }
.pm-step-no { display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--gold-pale);color:var(--gold);font-size:0.7rem; }
.pm-step-submit { display:flex;align-items:center;gap:1rem; }
.pm-step-submit .pm-help { margin-top:0; }
.pm-picked { display:flex;align-items:center;flex-wrap:wrap;gap:0.4rem;padding:0.55rem 0.85rem;background:var(--cream);border:1px solid var(--border-soft);border-radius:var(--r-sm);font-size:0.9rem; }
.pm-picked strong { color:var(--heading); }
.pm-picked .pm-link { margin-left:auto; }
.pm-loading { font-size:0.85rem;color:var(--muted);padding:0.5rem 0; }
.pm-pick-list { display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-sm);margin-top:0.4rem;max-height:260px;overflow-y:auto; }
.pm-pick-item, .pm-pick-item:focus { display:flex;align-items:center;gap:0.4rem;text-align:left;background:var(--white);border:none;border-bottom:1px solid var(--border-soft);padding:0.55rem 0.85rem;font-family:'Inter',sans-serif;font-size:0.88rem;color:var(--body);cursor:pointer; }
.pm-pick-item:last-child { border-bottom:none; }
.pm-pick-item:hover { background:var(--cream); }
.pm-pick-item strong { color:var(--heading);font-weight:600; }
.pm-asm-controls { display:flex;align-items:center;gap:1rem;margin-bottom:0.6rem; }
.pm-asm-controls .pm-search { flex:1; }
.pm-list-wrap { max-height:320px;overflow-y:auto;border-radius:var(--r-md);margin-top:0.5rem; }
.pm-list-wrap thead th { position:sticky;top:0;background:var(--cream);z-index:1;box-shadow:inset 0 -1px 0 var(--border); }
.pm-compact th { padding:0.55rem 0.75rem; }
.pm-compact td { padding:0.5rem 0.75rem;font-size:0.84rem; }
.pm-list-count { font-size:0.75rem;color:var(--muted);margin-top:0.4rem; }
.pm-asm-row { cursor:pointer; }
.client-table tr.pm-asm-row.disabled { cursor:default;opacity:0.55; }
.client-table tr.pm-asm-row.disabled:hover { background:transparent; }
.pm-inline-fields { display:flex;align-items:flex-end;gap:1.25rem;flex-wrap:wrap; }
.pm-field { display:flex;flex-direction:column;gap:0.35rem;font-size:0.82rem;color:var(--body); }
.pm-field > span:first-child { font-size:0.68rem;font-weight:600;text-transform:uppercase;letter-spacing:0.09em;color:var(--muted); }
.pm-field-row { display:inline-flex;align-items:center;gap:0.5rem; }
#pm-add-progress .refresh-progress { margin:0.75rem 0 0;max-width:960px; }

@media(max-width:768px){
    .pm-overlay { padding:0.5rem; }
    .pm-panel { max-height:calc(100vh - 1rem); }
    .pm-header, .pm-body { padding-left:1rem;padding-right:1rem; }
    .pm-asm-controls, .pm-step-submit { flex-direction:column;align-items:stretch; }
    .header-actions { justify-content:flex-start; }
}

/* ── Responsive ── */
@media(max-width:992px){.sidebar{width:200px;}.main-content{margin-left:200px;width:calc(100% - 200px);padding:2rem 1.5rem 3rem;}.content-header h2{font-size:1.7rem;}}
@media(max-width:768px){.app-container{flex-direction:column;}.sidebar{width:100%;position:relative;height:auto;}.main-content{margin-left:0;width:100%;}.content-header{flex-direction:column;align-items:flex-start;gap:1rem;}}
