/* /Components/Account/Pages/Manage/Index.razor.rz.scp.css */
/* A hairline between the two columns so the security half reads as its own
   area. Only from lg up -- below that the columns stack and a left border
   would appear as a stray vertical line. */
@media (min-width: 992px) {
    .acct-col-right[b-b5w4sb2tys] {
        border-left: 1px solid #e5e7eb;
        padding-left: 2rem;
    }
}
/* /Components/Account/Shared/AccountLayout.razor.rz.scp.css */
.account-page[b-ibt51y2ghe] {
    min-height: 100vh;
    background: linear-gradient(135deg, #eff6ff 0%, #f0f4ff 50%, #f5f3ff 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.account-card[b-ibt51y2ghe] {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.05), 0 10px 40px rgba(0,0,0,0.08);
    padding: 2.75rem 3rem;
    width: 100%;
    max-width: 420px;
    border: 1px solid #e5e7eb;
}

.account-logo[b-ibt51y2ghe] {
    text-align: center;
    margin-bottom: 2.25rem;
}

.account-logo-icon[b-ibt51y2ghe] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #2563eb, #4f46e5);
    color: #fff;
    font-size: 1.35rem;
    font-weight: 800;
    border-radius: 14px;
    margin-bottom: 0.6rem;
    box-shadow: 0 4px 14px rgba(37,99,235,0.35);
    letter-spacing: -0.02em;
}

.account-logo-name[b-ibt51y2ghe] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Real logo on the sign-in card (2026-08-30) */
.account-logo-img[b-ibt51y2ghe] {
    max-height: 52px;
    max-width: 240px;
    object-fit: contain;
    margin-bottom: 0.6rem;
}

/* Small-print legal notices under the card — informative, not intrusive */
.account-legal[b-ibt51y2ghe] {
    max-width: 420px;
    margin: 1rem auto 0;
    padding: 0 0.5rem;
    text-align: center;
}

.account-legal p[b-ibt51y2ghe] {
    font-size: 0.68rem;
    line-height: 1.45;
    color: #94a3b8;
    margin-bottom: 0.4rem;
}

/* Settings-page variant: wide enough for two columns of sections, so the
   page fits a screen instead of scrolling as a narrow ribbon. */
.account-card-wide[b-ibt51y2ghe] {
    max-width: 900px;
}
/* /Components/Layout/DemoBanner.razor.rz.scp.css */
/* Demo banner (2026-09-05): a stripe nobody can miss, on every layout. */
.demo-banner[b-mxy75pd6ep] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px;
    background: repeating-linear-gradient(135deg, #fbbf24 0 14px, #f59e0b 14px 28px);
    color: #1e293b;
    font-size: 0.85rem;
    line-height: 1.3;
    border-bottom: 2px solid #b45309;
}

.demo-banner-tag[b-mxy75pd6ep] {
    flex: none;
    padding: 2px 8px;
    border-radius: 6px;
    background: #1e293b;
    color: #fbbf24;
    font-weight: 800;
    letter-spacing: 0.12em;
    font-size: 0.72rem;
}

@media print { .demo-banner[b-mxy75pd6ep] { display: none; } }
/* /Components/Layout/FeedbackWidget.razor.rz.scp.css */
/* Feedback widget (2026-09-05). Navbar icon + a small anchored panel. */

.fbw-link[b-za7vmal1bf] {
    display: inline-flex;
    align-items: center;
    color: #475569;
    cursor: pointer;
}

.fbw-link:hover[b-za7vmal1bf] { color: #1d4ed8; }

.fbw-link .rzi[b-za7vmal1bf] { font-size: 1.25rem; }

.fbw-backdrop[b-za7vmal1bf] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: transparent;
}

.fbw-panel[b-za7vmal1bf] {
    position: fixed;
    top: 64px;
    right: 16px;
    width: 380px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    z-index: 1050;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
    padding: 12px 14px 14px;
    text-align: left;
    font-size: 0.9rem;
    color: #1e293b;
}

.fbw-head[b-za7vmal1bf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.fbw-title[b-za7vmal1bf] { font-weight: 700; font-size: 1rem; }

.fbw-close[b-za7vmal1bf] {
    border: 0;
    background: transparent;
    color: #64748b;
    padding: 2px;
    line-height: 1;
    cursor: pointer;
}

.fbw-close:hover[b-za7vmal1bf] { color: #1e293b; }

.fbw-note[b-za7vmal1bf] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 0.8rem;
    color: #64748b;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 6px;
    padding: 6px 8px;
    margin-bottom: 10px;
    line-height: 1.35;
}

.fbw-note .rzi[b-za7vmal1bf] { font-size: 1rem; color: #94a3b8; margin-top: 1px; }

.fbw-kinds[b-za7vmal1bf] {
    display: flex;
    gap: 6px;
    margin-bottom: 8px;
}

.fbw-kind[b-za7vmal1bf] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    color: #475569;
    border-radius: 6px;
    padding: 5px 0;
    font-size: 0.82rem;
    cursor: pointer;
}

.fbw-kind .rzi[b-za7vmal1bf] { font-size: 1rem; }

.fbw-kind.active[b-za7vmal1bf] {
    border-color: #1d4ed8;
    background: #eff6ff;
    color: #1d4ed8;
    font-weight: 600;
}

.fbw-text[b-za7vmal1bf] {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 8px 10px;
    font: inherit;
    resize: vertical;
}

.fbw-text:focus[b-za7vmal1bf] {
    outline: 2px solid #bfdbfe;
    border-color: #1d4ed8;
}

.fbw-foot[b-za7vmal1bf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 8px;
}

.fbw-error[b-za7vmal1bf] {
    margin-top: 8px;
    color: #b91c1c;
    font-size: 0.85rem;
}

.fbw-thanks[b-za7vmal1bf] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 6px;
    padding: 10px 12px;
}

.fbw-thanks .rzi[b-za7vmal1bf] { color: #15803d; font-size: 1.4rem; }

.fbw-prev-title[b-za7vmal1bf] {
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 600;
}

.fbw-prev[b-za7vmal1bf] { display: flex; flex-direction: column; gap: 8px; margin-top: 6px; }

.fbw-item[b-za7vmal1bf] {
    border: 1px solid #eef2f7;
    border-radius: 6px;
    padding: 8px 10px;
    background: #fafbfd;
}

.fbw-item-head[b-za7vmal1bf] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.fbw-item-msg[b-za7vmal1bf] { white-space: pre-wrap; }

.fbw-item-reply[b-za7vmal1bf] {
    margin-top: 6px;
    padding: 6px 8px;
    border-left: 3px solid #1d4ed8;
    background: #eff6ff;
    border-radius: 0 4px 4px 0;
    white-space: pre-wrap;
    display: flex;
    gap: 6px;
    align-items: flex-start;
}

.fbw-item-reply .rzi[b-za7vmal1bf] { font-size: 1rem; color: #1d4ed8; margin-top: 2px; }

.fbw-pill[b-za7vmal1bf] {
    display: inline-block;
    width: 78px;
    text-align: center;
    padding: 1px 0;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fbw-pill-new[b-za7vmal1bf]      { background: #fef3c7; color: #b45309; }
.fbw-pill-answered[b-za7vmal1bf] { background: #dcfce7; color: #166534; }
.fbw-pill-closed[b-za7vmal1bf]   { background: #e2e8f0; color: #475569; }
/* /Components/Layout/HelpWidget.razor.rz.scp.css */
/* Help widget (2026-09-05). Navbar icon + anchored panel, same family as the feedback widget. */

.hlp-link[b-iht93eoavn] {
    display: inline-flex;
    align-items: center;
    color: #475569;
    cursor: pointer;
}

.hlp-link:hover[b-iht93eoavn] { color: #1d4ed8; }

.hlp-link .rzi[b-iht93eoavn] { font-size: 1.3rem; }

.hlp-panel[b-iht93eoavn] {
    position: fixed;
    top: 64px;
    right: 16px;
    width: 440px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    z-index: 1050;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-left: 4px solid #2563eb;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
    padding: 12px 16px 14px;
    text-align: left;
    font-size: 0.9rem;
    color: #1e293b;
    line-height: 1.45;
}

.hlp-head[b-iht93eoavn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.hlp-eyebrow[b-iht93eoavn] {
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    font-weight: 700;
}

.hlp-close[b-iht93eoavn] {
    border: 0;
    background: transparent;
    color: #64748b;
    padding: 2px;
    line-height: 1;
    cursor: pointer;
}

.hlp-close:hover[b-iht93eoavn] { color: #1e293b; }

.hlp-title[b-iht93eoavn] {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 4px 0 2px;
}

.hlp-purpose[b-iht93eoavn] {
    color: #475569;
    margin: 0 0 10px;
}

.hlp-section[b-iht93eoavn] {
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #2563eb;
    font-weight: 700;
    margin: 12px 0 4px;
}

.hlp-steps[b-iht93eoavn],
.hlp-tips[b-iht93eoavn] {
    margin: 0;
    padding-left: 1.3rem;
}

.hlp-steps li[b-iht93eoavn],
.hlp-tips li[b-iht93eoavn] {
    margin: 0 0 6px;
}

.hlp-steps li[b-iht93eoavn]::marker {
    font-weight: 700;
    color: #2563eb;
}

.hlp-foot[b-iht93eoavn] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px solid #eef2f7;
}

.hlp-foot select[b-iht93eoavn] {
    flex: 1;
    font-size: 0.82rem;
}

.hlp-foot a[b-iht93eoavn] { white-space: nowrap; }

@media (max-width: 575px) {
    .hlp-panel[b-iht93eoavn] { right: 8px; left: 8px; width: auto; top: 58px; }
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.app-content[b-8ykd6jpyxf] {
    min-height: calc(100vh - 56px);
}

#blazor-error-ui[b-8ykd6jpyxf] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-8ykd6jpyxf] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MobileLayout.razor.rz.scp.css */
/* Phone layout + phone page styles (2026-09-05). Everything the /m pages
   use is here behind ::deep so the pages carry no CSS of their own. */

.mob-shell[b-4sdpo7uh7p] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: #f8fafc;
    font-family: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    font-size: 16px;                 /* 16px stops iOS zooming into inputs */
    color: #1e293b;
}

.mob-bar[b-4sdpo7uh7p] {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 52px;
    padding: 0 12px;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
    box-shadow: 0 1px 0 #2563eb;
}

.mob-bar-home[b-4sdpo7uh7p] { display: flex; align-items: center; margin-right: auto; text-decoration: none; }
.mob-bar-logo[b-4sdpo7uh7p] { height: 26px; }
.mob-bar-name[b-4sdpo7uh7p] { font-weight: 700; color: #1e293b; }
.mob-bar-back[b-4sdpo7uh7p], .mob-bar-out[b-4sdpo7uh7p] { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; color: #475569; text-decoration: none; }
.mob-bar-back:active[b-4sdpo7uh7p], .mob-bar-out:active[b-4sdpo7uh7p] { background: #eff6ff; }

.mob-main[b-4sdpo7uh7p] {
    flex: 1;
    padding: 14px 14px 24px;
    max-width: 560px;
    width: 100%;
    margin: 0 auto;
}

.mob-foot[b-4sdpo7uh7p] {
    padding: 10px 14px 18px;
    text-align: center;
    font-size: 0.75rem;
    color: #94a3b8;
}

/* ── Building blocks used by the pages ─────────────────────────────── */
.mob-shell[b-4sdpo7uh7p]  h1 { font-size: 1.25rem; font-weight: 700; margin: 4px 0 12px; }
.mob-shell[b-4sdpo7uh7p]  .mob-title { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: #64748b; font-weight: 700; margin: 18px 0 6px; }

.mob-shell[b-4sdpo7uh7p]  .mob-btn {
    display: flex; align-items: center; gap: 12px;
    min-height: 56px; padding: 12px 14px; margin-bottom: 10px;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    color: #1e293b; text-decoration: none; font-weight: 600; font-size: 1.02rem;
}
.mob-shell[b-4sdpo7uh7p]  .mob-btn .rzi { font-size: 1.6rem; color: #2563eb; }
.mob-shell[b-4sdpo7uh7p]  .mob-btn:active { background: #eff6ff; }
.mob-shell[b-4sdpo7uh7p]  .mob-btn.mob-primary { background: #2563eb; border-color: #2563eb; color: #fff; }
.mob-shell[b-4sdpo7uh7p]  .mob-btn.mob-primary .rzi { color: #fff; }
.mob-shell[b-4sdpo7uh7p]  .mob-btn .mob-count { margin-left: auto; min-width: 30px; height: 30px; padding: 0 9px; border-radius: 15px; background: #fee2e2; color: #b91c1c; display: inline-flex; align-items: center; justify-content: center; font-size: 0.9rem; }
.mob-shell[b-4sdpo7uh7p]  .mob-btn .mob-count.zero { background: #dcfce7; color: #15803d; }

.mob-shell[b-4sdpo7uh7p]  .mob-list { display: flex; flex-direction: column; gap: 8px; }
.mob-shell[b-4sdpo7uh7p]  .mob-item {
    display: block; padding: 12px 14px;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    color: #1e293b; text-decoration: none;
}
.mob-shell[b-4sdpo7uh7p]  .mob-item:active { background: #eff6ff; }
.mob-shell[b-4sdpo7uh7p]  .mob-item-head { display: flex; justify-content: space-between; gap: 8px; font-weight: 600; }
.mob-shell[b-4sdpo7uh7p]  .mob-item-sub { font-size: 0.85rem; color: #64748b; margin-top: 2px; }
.mob-shell[b-4sdpo7uh7p]  .mob-item-body { font-size: 0.95rem; margin-top: 4px; }

.mob-shell[b-4sdpo7uh7p]  .mob-pill { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 0.75rem; font-weight: 600; background: #e2e8f0; color: #334155; }
.mob-shell[b-4sdpo7uh7p]  .mob-pill.open { background: #dbeafe; color: #1d4ed8; }
.mob-shell[b-4sdpo7uh7p]  .mob-pill.closed { background: #dcfce7; color: #15803d; }
.mob-shell[b-4sdpo7uh7p]  .mob-pill.late { background: #fee2e2; color: #b91c1c; }
.mob-shell[b-4sdpo7uh7p]  .mob-pill.amber { background: #fef3c7; color: #b45309; }

.mob-shell[b-4sdpo7uh7p]  .mob-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 14px; margin-bottom: 12px; }
.mob-shell[b-4sdpo7uh7p]  .mob-card dl { display: grid; grid-template-columns: 96px 1fr; gap: 6px 10px; margin: 0; font-size: 0.95rem; }
.mob-shell[b-4sdpo7uh7p]  .mob-card dt { color: #64748b; font-weight: 500; }
.mob-shell[b-4sdpo7uh7p]  .mob-card dd { margin: 0; }
.mob-shell[b-4sdpo7uh7p]  .mob-desc { white-space: pre-wrap; line-height: 1.45; }

.mob-shell[b-4sdpo7uh7p]  .mob-note { padding: 10px 12px; border-radius: 10px; background: #eff6ff; color: #1e3a8a; font-size: 0.9rem; margin-bottom: 12px; }
.mob-shell[b-4sdpo7uh7p]  .mob-note.ok { background: #dcfce7; color: #14532d; }
.mob-shell[b-4sdpo7uh7p]  .mob-note.warn { background: #fef3c7; color: #78350f; }
.mob-shell[b-4sdpo7uh7p]  .mob-empty { color: #64748b; padding: 14px; text-align: center; }

.mob-shell[b-4sdpo7uh7p]  .mob-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.mob-shell[b-4sdpo7uh7p]  .mob-photos a { display: block; aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: #e2e8f0; }
.mob-shell[b-4sdpo7uh7p]  .mob-photos img { width: 100%; height: 100%; object-fit: cover; }
.mob-shell[b-4sdpo7uh7p]  .mob-file { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid #f1f5f9; font-size: 0.9rem; color: #1e293b; text-decoration: none; }

/* forms */
.mob-shell[b-4sdpo7uh7p]  form.mob-form label { display: block; font-size: 0.85rem; font-weight: 600; color: #475569; margin: 12px 0 4px; }
.mob-shell[b-4sdpo7uh7p]  form.mob-form input[type="text"],
.mob-shell[b-4sdpo7uh7p]  form.mob-form input[type="search"],
.mob-shell[b-4sdpo7uh7p]  form.mob-form select,
.mob-shell[b-4sdpo7uh7p]  form.mob-form textarea {
    width: 100%; min-height: 48px; padding: 10px 12px; font-size: 16px;
    border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #1e293b;
}
.mob-shell[b-4sdpo7uh7p]  form.mob-form textarea { min-height: 120px; }
.mob-shell[b-4sdpo7uh7p]  .mob-radios { display: flex; gap: 8px; }
.mob-shell[b-4sdpo7uh7p]  .mob-radios label { flex: 1; margin: 0; }
.mob-shell[b-4sdpo7uh7p]  .mob-radios input { position: absolute; opacity: 0; }
.mob-shell[b-4sdpo7uh7p]  .mob-radios span { display: flex; align-items: center; justify-content: center; min-height: 48px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; font-weight: 600; }
.mob-shell[b-4sdpo7uh7p]  .mob-radios input:checked + span { background: #2563eb; border-color: #2563eb; color: #fff; }
.mob-shell[b-4sdpo7uh7p]  .mob-file-pick { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 10px 12px; border: 2px dashed #93c5fd; border-radius: 12px; background: #eff6ff; color: #1d4ed8; font-weight: 600; }
.mob-shell[b-4sdpo7uh7p]  .mob-file-pick input { font-size: 15px; width: 100%; }
.mob-shell[b-4sdpo7uh7p]  .mob-submit {
    display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%;
    min-height: 54px; margin-top: 16px; border: 0; border-radius: 12px;
    background: #2563eb; color: #fff; font-size: 1.05rem; font-weight: 700;
}
.mob-shell[b-4sdpo7uh7p]  .mob-submit.secondary { background: #fff; color: #1e293b; border: 1px solid #cbd5e1; }
.mob-shell[b-4sdpo7uh7p]  .mob-submit.danger { background: #fff; color: #b91c1c; border: 1px solid #fecaca; }
.mob-shell[b-4sdpo7uh7p]  .mob-search { display: flex; gap: 8px; }
.mob-shell[b-4sdpo7uh7p]  .mob-search input { flex: 1; }
.mob-shell[b-4sdpo7uh7p]  .mob-search button { width: 56px; min-height: 48px; border: 0; border-radius: 10px; background: #2563eb; color: #fff; }
.mob-shell[b-4sdpo7uh7p]  .mob-actions { display: flex; gap: 8px; margin-top: 10px; }
.mob-shell[b-4sdpo7uh7p]  .mob-actions .mob-submit { margin-top: 0; min-height: 46px; font-size: 0.95rem; }

/* The framework's error bar. These rules live in MainLayout's SCOPED css, so
   they never reached this layout's own copy of the div and the yellow "An
   unhandled error has occurred" bar showed on every phone page (2026-09-05).
   Scoped here too, so it is hidden until Blazor actually shows it. */
#blazor-error-ui[b-4sdpo7uh7p] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-4sdpo7uh7p] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────────────
   White-label header. Customers put their own logo in the banner, and
   almost every company logo is designed for a white letterhead — so the
   bar is white, the logo sits on it directly (no contrast pill needed),
   and the colour comes from a thin brand accent line across the very
   top plus the blue active-link indicators. Dark text on white also
   reads as the more conventional commercial-SaaS look.
   ───────────────────────────────────────────────────────────────── */
.sqmw-navbar[b-rmhum4ls0q] {
    background-color: #ffffff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 1px 6px rgba(15, 23, 42, 0.06);
    /* the brand accent line across the very top of the app */
    border-top: 3px solid #2563eb;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}

.sqmw-navbar[b-rmhum4ls0q]  .navbar-brand {
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: 0.01em;
    color: #0f172a;
}

/* Toggler icon on light background */
.sqmw-navbar[b-rmhum4ls0q]  .navbar-toggler {
    border-color: #d1d5db;
}

/* Keep every item on one straight line regardless of content height */
.sqmw-navbar[b-rmhum4ls0q]  .navbar-nav {
    align-items: center;
}

/* Force consistent size/weight on every nav element */
.sqmw-navbar[b-rmhum4ls0q]  .nav-link,
.sqmw-navbar[b-rmhum4ls0q]  .nav-link.dropdown-toggle,
.sqmw-navbar[b-rmhum4ls0q]  .navbar-nav .nav-item > a,
.sqmw-navbar[b-rmhum4ls0q]  .navbar-nav .nav-item > span {
    color: #475569;
    font-size: 0.875rem;
    font-weight: 500;
    font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
    padding-left: 0.8rem !important;
    padding-right: 0.8rem !important;
    transition: color 0.15s;
    line-height: 1.5;
    position: relative;
}

.sqmw-navbar[b-rmhum4ls0q]  .nav-link:hover,
.sqmw-navbar[b-rmhum4ls0q]  .nav-link:focus {
    color: #0f172a;
}

/* ── Active link: brand blue with an underline indicator ───────── */
.sqmw-navbar[b-rmhum4ls0q]  .nav-link.active {
    color: #2563eb !important;
    font-weight: 600;
}

.sqmw-navbar[b-rmhum4ls0q]  .nav-link.active::after {
    content: "";
    position: absolute;
    left: 0.8rem;
    right: 0.8rem;
    bottom: -0.5rem;
    height: 2px;
    border-radius: 2px;
    background: #2563eb;
}

/* Dropdown menus stay white for readability */
.sqmw-navbar[b-rmhum4ls0q]  .dropdown-item {
    font-size: 0.875rem;
    color: #374151;
    padding: 0.45rem 1.1rem;
    transition: background 0.12s;
}

.sqmw-navbar[b-rmhum4ls0q]  .dropdown-item:hover {
    background: #f3f4f6;
    color: #111827;
}

.sqmw-navbar[b-rmhum4ls0q]  .dropdown-item.active,
.sqmw-navbar[b-rmhum4ls0q]  .dropdown-item:active {
    background: #eff6ff;
    color: #2563eb;
}

.sqmw-navbar[b-rmhum4ls0q]  .dropdown-divider {
    border-color: #e5e7eb;
    margin: 0.25rem 0;
}

/* ── Desktop: open dropdown on hover ─────────────────────────── */
@media (min-width: 992px) {
    .sqmw-navbar[b-rmhum4ls0q]  .dropdown:hover > .dropdown-menu {
        display: block;
        animation: fadeIn-b-rmhum4ls0q 0.12s ease-in;
    }

    .sqmw-navbar[b-rmhum4ls0q]  .dropdown-menu {
        margin-top: 0;
        border-radius: 8px;
        border: 1px solid #e5e7eb;
        box-shadow: 0 8px 24px rgba(0,0,0,0.14);
        border-top: 2px solid #2563eb;
        padding: 0.4rem 0;
    }

    .sqmw-navbar[b-rmhum4ls0q]  .dropdown-toggle {
        cursor: default;
    }
}

/* ── Mobile: show dropdown items inline ───────────────────────── */
@media (max-width: 991.98px) {
    .sqmw-navbar[b-rmhum4ls0q]  .dropdown-menu {
        display: block;
        position: static;
        float: none;
        border: none;
        background: #f8fafc;
        padding-left: 1rem;
        box-shadow: none;
    }

    .sqmw-navbar[b-rmhum4ls0q]  .dropdown-item {
        color: #475569;
    }

    .sqmw-navbar[b-rmhum4ls0q]  .dropdown-item:hover {
        background: #eef2f7;
        color: #0f172a;
    }

    .sqmw-navbar[b-rmhum4ls0q]  .dropdown-divider {
        border-color: #e5e7eb;
    }
}

/* ── Data-sync traffic light (right side, Customer users) ─────── */
/* A sync icon with a small coloured dot on its corner; colour = latest
   run outcome (see SyncStatusSnapshot.Light). ::deep because the badge is
   its own component rendered inside this one. */
.sqmw-navbar[b-rmhum4ls0q]  .sync-status {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: #94a3b8;
}

.sqmw-navbar[b-rmhum4ls0q]  .sync-status .rzi {
    font-size: 1.25rem;
    line-height: 1;
}

.sqmw-navbar[b-rmhum4ls0q]  .sync-status-dot {
    position: absolute;
    top: 0.35rem;
    right: 0.55rem;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: #9ca3af;
}

.sqmw-navbar[b-rmhum4ls0q]  .sync-status-ok   .sync-status-dot { background: #16a34a; }
.sqmw-navbar[b-rmhum4ls0q]  .sync-status-warn .sync-status-dot { background: #f59e0b; }
.sqmw-navbar[b-rmhum4ls0q]  .sync-status-bad  .sync-status-dot { background: #dc2626; }
.sqmw-navbar[b-rmhum4ls0q]  .sync-status-off  .sync-status-dot { background: #9ca3af; }

.sqmw-navbar[b-rmhum4ls0q]  .sync-status-bad { color: #dc2626; }
.sqmw-navbar[b-rmhum4ls0q]  .sync-status-ok:hover,
.sqmw-navbar[b-rmhum4ls0q]  .sync-status-warn:hover,
.sqmw-navbar[b-rmhum4ls0q]  .sync-status-off:hover { color: #0f172a; }

/* ── User info text (right side of navbar) ───────────────────── */
.user-info[b-rmhum4ls0q] {
    color: #94a3b8 !important;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: default;
}

@keyframes fadeIn-b-rmhum4ls0q {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── "What's new" icon + pulsing NEW pill (2026-09-03) ───────── */
.sqmw-navbar[b-rmhum4ls0q]  .whats-new {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: #94a3b8;
}

.sqmw-navbar[b-rmhum4ls0q]  .whats-new .rzi {
    font-size: 1.25rem;
    line-height: 1;
}

.sqmw-navbar[b-rmhum4ls0q]  .whats-new:hover { color: #0f172a; }

.sqmw-navbar[b-rmhum4ls0q]  .whats-new-unseen { color: #f59e0b; }

.sqmw-navbar[b-rmhum4ls0q]  .whats-new-pill {
    position: absolute;
    top: 0.15rem;
    right: -0.25rem;
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1;
    padding: 3px 5px;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    animation: whats-new-pulse-b-rmhum4ls0q 1.6s ease-in-out infinite;
}

@keyframes whats-new-pulse-b-rmhum4ls0q {
    0%, 100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.55); }
    50%      { transform: scale(1.12); box-shadow: 0 0 0 6px rgba(220, 38, 38, 0); }
}
/* /Components/Layout/SearchBox.razor.rz.scp.css */
/* Navbar search dropdown (2026-09-05). */
.sb[b-slwzuuxfsd] { position: relative; display: flex; align-items: center; gap: 4px; border: 1px solid #e2e8f0; border-radius: 999px; padding: 2px 10px; margin-right: 8px; background: #f8fafc; }
.sb-icon[b-slwzuuxfsd] { font-size: 1.1rem; color: #64748b; }
.sb-input[b-slwzuuxfsd] { border: 0; background: transparent; outline: none; width: 190px; font-size: 0.85rem; }
@media (max-width: 991px) { .sb[b-slwzuuxfsd] { margin: 6px 0; } .sb-input[b-slwzuuxfsd] { width: 100%; } }

.sb-panel[b-slwzuuxfsd] {
    position: absolute; top: calc(100% + 6px); right: 0; width: 420px; max-width: calc(100vw - 24px);
    max-height: 70vh; overflow-y: auto; z-index: 1060;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; box-shadow: 0 12px 32px rgba(15, 23, 42, 0.18);
    padding: 6px 0; text-align: left;
}
.sb-note[b-slwzuuxfsd] { padding: 10px 14px; color: #64748b; font-size: 0.85rem; }
.sb-group[b-slwzuuxfsd] { padding: 8px 14px 2px; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; color: #94a3b8; font-weight: 700; }
.sb-row[b-slwzuuxfsd] { display: flex; flex-direction: column; padding: 6px 14px; color: #1e293b; text-decoration: none; }
.sb-row:hover[b-slwzuuxfsd] { background: #eff6ff; color: #1e293b; }
.sb-main[b-slwzuuxfsd] { font-size: 0.9rem; }
.sb-sub[b-slwzuuxfsd] { font-size: 0.75rem; color: #64748b; }
.sb-all[b-slwzuuxfsd] { display: block; padding: 8px 14px; border-top: 1px solid #eef2f7; margin-top: 4px; font-size: 0.85rem; }
/* /Components/Pages/AdminUsers.razor.rz.scp.css */
/* Reuse the standard overlay/panel pattern */
.sc-form-overlay[b-gyryg8gq0m] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-form-panel[b-gyryg8gq0m] {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    padding: 1.75rem;
    width: 100%;
    max-width: 480px;
}

.sc-form-title[b-gyryg8gq0m] {
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 1.25rem;
}

.au-confirm-row[b-gyryg8gq0m] {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

/* Group chips: filled = member, outlined = not. Clickable for Administrators
   only (disabled otherwise, but still readable). */
.au-chip[b-gyryg8gq0m] {
    display: inline-block;
    padding: 1px 8px;
    margin-right: 4px;
    border-radius: 999px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #94a3b8;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.5;
    cursor: pointer;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.au-chip-on[b-gyryg8gq0m] {
    background: #dbeafe;
    border-color: #93c5fd;
    color: #1e40af;
}

.au-chip-on.au-chip-admin[b-gyryg8gq0m] {
    background: #ede9fe;
    border-color: #c4b5fd;
    color: #5b21b6;
}

.au-chip:not(:disabled):hover[b-gyryg8gq0m] {
    border-color: #2563eb;
    color: #1e3a8a;
}

.au-chip:disabled[b-gyryg8gq0m] {
    cursor: default;
    opacity: 0.85;
}

.au-show-disabled[b-gyryg8gq0m] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: #475569;
    cursor: pointer;
    user-select: none;
}
/* /Components/Pages/ApprovedSupplierList.razor.rz.scp.css */
.asl-page[b-me1t3j65g0] {
    padding: 1.25rem;
}

.asl-filter[b-me1t3j65g0] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px 16px;
}

.asl-count[b-me1t3j65g0] {
    font-style: italic;
}

/* table-layout: fixed so the columns obey the widths below instead of the
   longest supplier name deciding everything. Auto layout was letting names
   like "A RAYMOND BAGLANTI ELEMANLARI SANAYI VE TICARET LT" push the table
   past the window, which pushed Overall and the Scorecard button off-screen
   to the right -- the whole point of the page, out of sight. */
.asl-table[b-me1t3j65g0] {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.88rem;
}

/* The name gets the slack, but is capped and truncated rather than allowed to
   set the table's width. The full name stays available on hover. */
.asl-table td.asl-col-name[b-me1t3j65g0] {
    max-width: 0;          /* with fixed layout this makes the cell obey the column */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.asl-table th.asl-col-name[b-me1t3j65g0] { width: auto; }
.asl-table th.asl-col-code[b-me1t3j65g0] { width: 88px; }
.asl-table th.asl-col-sites[b-me1t3j65g0] { width: 92px; }
.asl-table th.asl-col-cat[b-me1t3j65g0] { width: 130px; }
.asl-table th.asl-col-country[b-me1t3j65g0] { width: 78px; }
.asl-table th.asl-col-action[b-me1t3j65g0] { width: 112px; }

.asl-table thead th[b-me1t3j65g0] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 10px;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
    text-align: left;
}

.asl-table thead th.text-center[b-me1t3j65g0] { text-align: center; }

.asl-table thead th.sortable[b-me1t3j65g0] {
    cursor: pointer;
    user-select: none;
}

.asl-table thead th.sortable:hover[b-me1t3j65g0] {
    background: #f3f4f6;
}

.asl-table tbody td[b-me1t3j65g0] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.asl-table tbody tr:hover[b-me1t3j65g0] {
    background: #f9fafb;
}

/* Rating badges */
.asl-badge[b-me1t3j65g0] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 500;
    white-space: nowrap;
}

.asl-badge-preferred[b-me1t3j65g0] {
    background: #d1e7dd;
    color: #0a3622;
}

.asl-badge-acceptable[b-me1t3j65g0] {
    background: #cfe2ff;
    color: #084298;
}

.asl-badge-conditional[b-me1t3j65g0] {
    background: #fff3cd;
    color: #664d03;
}

.asl-badge-unacceptable[b-me1t3j65g0] {
    background: #f8d7da;
    color: #842029;
}

.sort-icon[b-me1t3j65g0] {
    font-size: 0.7rem;
    margin-left: 4px;
    color: #6b7280;
}


/* Site badges (which plants the supplier delivers to) — 2026-08-30 */
.asl-site-badge[b-me1t3j65g0] {
    display: inline-block;
    padding: 1px 8px;
    margin-right: 3px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.72rem;
    font-weight: 600;
}

/* Newly added suppliers awaiting their first ratings cycle (2026-08-30) */
.asl-badge-unrated[b-me1t3j65g0] {
    background: #f1f5f9;
    color: #64748b;
    border: 1px dashed #cbd5e1;
}

/* Whole-row tint by overall rating (badges carry the exact value) */
.asl-row-preferred    td[b-me1t3j65g0] { background: #f2fdf6; }
.asl-row-acceptable   td[b-me1t3j65g0] { background: #f3f8ff; }
.asl-row-conditional  td[b-me1t3j65g0] { background: #fffaf0; }
.asl-row-unacceptable td[b-me1t3j65g0] { background: #fef4f4; }

/* Rating movement since last month, restoring the legacy ASL's arrow images
   (Images/{CRDiff}.jpg) in a modern form. Deliberately small and quiet: an
   unchanged rating shows nothing, so the eye lands only on suppliers that
   actually moved. */
.asl-move[b-me1t3j65g0] {
    font-size: 0.7em;
    margin-left: 3px;
    vertical-align: middle;
    cursor: help;
}

.asl-move-up[b-me1t3j65g0] { color: #15803d; }
.asl-move-down[b-me1t3j65g0] { color: #b91c1c; }

.asl-move-new[b-me1t3j65g0] {
    font-size: 0.62em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #6b7280;
    background: #f3f4f6;
    border-radius: 3px;
    padding: 1px 4px;
}
/* /Components/Pages/ASN.razor.rz.scp.css */

/* One-year order horizon — zone group headers + subtle zone tints (2026-08-30) */
.asn-zone-row th.asn-zone[b-4303fsmht1] {
    text-align: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 3px 6px;
    border-bottom: none;
}

.asn-zone-daily[b-4303fsmht1]   { background: #eff6ff; color: #1d4ed8; }
.asn-zone-weekly[b-4303fsmht1]  { background: #f0fdfa; color: #0f766e; }
.asn-zone-monthly[b-4303fsmht1] { background: #f8fafc; color: #475569; }

.asn-cell-weekly[b-4303fsmht1]  { background: #f7fdfc; }
.asn-cell-monthly[b-4303fsmht1] { background: #fafbfc; }

.asn-orders-table th[b-4303fsmht1],
.asn-orders-table td[b-4303fsmht1] {
    white-space: nowrap;
}

/* Stacked info cells (part+description, GIT+last delivery) — 2026-08-30 */
.asn-stack-sub[b-4303fsmht1] {
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.25;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.asn-stack-git[b-4303fsmht1] {
    font-size: 0.74rem;
    font-weight: 700;
    color: #0f766e;
}

/* Customer-system receipt indicator on the ASN list (PortalSync ack, 2026-09-02) */
.asn-receipt .rzi[b-4303fsmht1] {
    font-size: 1.25rem;
    vertical-align: middle;
    cursor: default;
}

.asn-receipt-ok[b-4303fsmht1]    { color: #16a34a; }
.asn-receipt-stale[b-4303fsmht1] { color: #d97706; }
.asn-receipt-none[b-4303fsmht1]  { color: #cbd5e1; }
/* /Components/Pages/ASNAdd.razor.rz.scp.css */

/* Clickable quantity shortcuts (quick entry, 2026-08-30) */
.asn-qty-link[b-smn9fiatp7] {
    color: #2563eb;
    text-decoration: none;
    border-bottom: 1px dashed #93c5fd;
    cursor: pointer;
}

.asn-qty-link:hover[b-smn9fiatp7] {
    color: #1d4ed8;
    border-bottom-style: solid;
}
/* /Components/Pages/CancelledConcernList.razor.rz.scp.css */
.cancelled-table[b-gnh7pnzv9w] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.cancelled-table th[b-gnh7pnzv9w],
.cancelled-table td[b-gnh7pnzv9w] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: middle;
}

.cancelled-table thead th[b-gnh7pnzv9w] {
    background: #f9fafb;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
}

.cancelled-table tbody tr:hover[b-gnh7pnzv9w] {
    background: #fff8f0;
}

.nowrap[b-gnh7pnzv9w] {
    white-space: nowrap;
}

/* /Components/Pages/CertAdmin.razor.rz.scp.css */
.certadmin-table[b-l82illen8k] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.certadmin-table th[b-l82illen8k],
.certadmin-table td[b-l82illen8k] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: middle;
}

.certadmin-table thead th[b-l82illen8k] {
    background: #f9fafb;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
}

.certadmin-table tbody tr:hover[b-l82illen8k] {
    background: #f9fafb;
}

.sc-form-overlay[b-l82illen8k] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-form-panel[b-l82illen8k] {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    padding: 1.75rem;
    width: 100%;
    max-width: 480px;
}

.sc-form-title[b-l82illen8k] {
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 1.25rem;
}

/* /Components/Pages/CertReport.razor.rz.scp.css */
.crp-page[b-78l4f391pc] {
    padding: 1.25rem;
    max-width: 1100px;
}

.crp-table[b-78l4f391pc] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.crp-table thead th[b-78l4f391pc] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    text-align: left;
    white-space: nowrap;
}

.crp-table tbody td[b-78l4f391pc] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.crp-expired[b-78l4f391pc] {
    color: #b91c1c;
    font-weight: 600;
}

.crp-expiring[b-78l4f391pc] {
    color: #b45309;
    font-weight: 600;
}

.crp-badge[b-78l4f391pc] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    background: #f3f4f6;
    color: #374151;
    white-space: nowrap;
}

.crp-preferred[b-78l4f391pc]    { background: #dcfce7; color: #166534; }
.crp-acceptable[b-78l4f391pc]   { background: #dbeafe; color: #1e40af; }
.crp-conditional[b-78l4f391pc]  { background: #fef3c7; color: #92400e; }
.crp-unacceptable[b-78l4f391pc] { background: #fee2e2; color: #991b1b; }

/* Rows beyond the current pager page: hidden on screen, printed in full. */
.crp-offpage[b-78l4f391pc] {
    display: none;
}

@media print {
    .no-print[b-78l4f391pc] { display: none !important; }
    .crp-offpage[b-78l4f391pc] { display: table-row; }
    .crp-page[b-78l4f391pc] { padding: 0 !important; max-width: none; }

    /* Auto-width tables can grow wider than the printed page and spill onto
       extra pages to the right instead of shrinking -- browsers don't scale
       table content for print (feedback 2026-09-03: "the indicators don't
       resize, prints over many pages"). table-layout: fixed forces every
       table below to stay within the page width regardless of content. */

    .crp-table[b-78l4f391pc] {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .crp-table th[b-78l4f391pc],
    .crp-table td[b-78l4f391pc] {
        white-space: normal !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }
    .crp-badge[b-78l4f391pc] {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .crp-table tbody tr[b-78l4f391pc] { break-inside: avoid; }
}
/* /Components/Pages/CombinedActions.razor.rz.scp.css */
.ca-page[b-nkh9v52wj3] {
    padding: 1.25rem;
}

.ca-group[b-nkh9v52wj3] {
    margin-bottom: 2rem;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.ca-group-header[b-nkh9v52wj3] {
    background: #111827;
    color: #fff;
    padding: 0.6rem 1rem;
    font-size: 0.9rem;
    font-weight: 600;
}

.ca-group-header a[b-nkh9v52wj3] {
    color: #adb5bd;
}

.ca-group-header a:hover[b-nkh9v52wj3] {
    color: #fff;
}

.ca-concern-title[b-nkh9v52wj3] {
    font-weight: 400;
    color: rgba(255,255,255,0.7);
}

.ca-table[b-nkh9v52wj3] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.ca-table thead th[b-nkh9v52wj3] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
}

.ca-table tbody td[b-nkh9v52wj3] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: top;
}

.ca-table tbody tr:last-child td[b-nkh9v52wj3] {
    border-bottom: none;
}

.ca-table tbody tr:hover[b-nkh9v52wj3] {
    background: #f9fafb;
}

.ca-complete[b-nkh9v52wj3] {
    opacity: 0.6;
}

.ca-section[b-nkh9v52wj3] {
    font-weight: 600;
    white-space: nowrap;
    color: #374151;
}

.ca-problem[b-nkh9v52wj3] {
    margin-bottom: 2px;
    font-style: italic;
}

.nowrap[b-nkh9v52wj3] {
    white-space: nowrap;
}

/* Status badge */
.ca-status[b-nkh9v52wj3] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 500;
    white-space: nowrap;
}

.ca-status-complete[b-nkh9v52wj3] {
    background: #d1e7dd;
    color: #0a3622;
}

.ca-status-in-progress[b-nkh9v52wj3] {
    background: #fff3cd;
    color: #664d03;
}

.ca-status-overdue[b-nkh9v52wj3] {
    background: #f8d7da;
    color: #842029;
}

.ca-status-pending[b-nkh9v52wj3],
.ca-status-[b-nkh9v52wj3] {
    background: #f3f4f6;
    color: #374151;
}

/* /Components/Pages/ConcernList.razor.rz.scp.css */
/* ── Top bar ─────────────────────────────────────────────── */
.cl-topbar[b-orugd79bba] {
    margin-bottom: 10px;
}

.cl-search-row[b-orugd79bba] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.cl-search-input[b-orugd79bba] {
    flex: 1 1 260px;
    min-width: 200px;
    max-width: 480px;
    border-radius: 8px;
    border-color: #d1d5db;
    font-size: 0.85rem;
}

.cl-search-input:focus[b-orugd79bba] {
    border-color: #2563eb;
    box-shadow: 0 0 0 3px #2563eb20;
}

.cl-filter-toggle[b-orugd79bba] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    font-size: 0.82rem;
    font-weight: 500;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    cursor: pointer;
    color: #374151;
    white-space: nowrap;
    transition: background 0.12s, border-color 0.12s;
    line-height: 1.4;
}

.cl-filter-toggle .material-icons[b-orugd79bba] {
    font-size: 16px;
}

.cl-filter-toggle:hover[b-orugd79bba] {
    background: #f3f4f6;
    border-color: #9ca3af;
}

.cl-filter-toggle.cl-filter-toggle-open[b-orugd79bba] {
    background: #f0f6ff;
    border-color: #2563eb;
    color: #2563eb;
}

.cl-filter-toggle.cl-filter-toggle-active[b-orugd79bba] {
    border-color: #2563eb;
    color: #2563eb;
}

.cl-filter-badge[b-orugd79bba] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    background: #2563eb;
    color: #fff;
    border-radius: 9px;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1;
}

.cl-filter-row[b-orugd79bba] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    padding: 8px 12px;
    background: #f8faff;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    margin-bottom: 4px;
}

.cl-clear-btn[b-orugd79bba] {
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 0.8rem;
}

.filter-sep[b-orugd79bba] {
    width: 1px;
    height: 22px;
    background: #d1d5db;
    margin: 0 2px;
}

/* ── Main concern table ─────────────────────────────────────── */
.cl-count[b-orugd79bba] {
    font-size: 0.78rem;
    color: #6b7280;
    margin-bottom: 6px;
}

.cl-table[b-orugd79bba] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.cl-table thead th[b-orugd79bba] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 10px;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
    white-space: nowrap;
}

.cl-table th.cl-sort[b-orugd79bba] {
    cursor: pointer;
    user-select: none;
}

.cl-table th.cl-sort:hover[b-orugd79bba] {
    background: #f3f4f6;
    color: #374151;
}

.cl-table tbody td[b-orugd79bba] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.cl-table tbody tr[b-orugd79bba] {
    cursor: pointer;
}

.cl-table tbody tr:hover[b-orugd79bba] {
    background: #f0f6ff;
}

.cl-table tbody tr.cl-selected[b-orugd79bba] {
    background: #eff6ff;
}

.cl-table tbody tr.cl-selected td[b-orugd79bba] {
    border-bottom-color: #bfdbfe;
}

.cl-link[b-orugd79bba] {
    color: #2563eb;
    text-decoration: none;
}

.cl-link:hover[b-orugd79bba] {
    text-decoration: underline;
}

.cl-pn-wrapper[b-orugd79bba] {
    position: relative;
    display: inline-block;
}

.cl-pn[b-orugd79bba] {
    color: #2563eb;
    text-decoration: underline;
    cursor: default;
}

/* HTML tooltip panel */
.cl-pn-tip[b-orugd79bba] {
    display: none;
    position: absolute;
    z-index: 1050;
    top: 100%;
    left: 0;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 8px 12px;
    min-width: 260px;
    max-width: 480px;
    box-shadow: 0 6px 20px rgba(0,0,0,0.12);
    white-space: normal;
    font-size: 0.8rem;
    pointer-events: none;
}

.cl-pn-wrapper:hover .cl-pn-tip[b-orugd79bba] {
    display: block;
}

.cl-icon-btn[b-orugd79bba] {
    background: none;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 2px 5px;
    cursor: pointer;
    line-height: 1;
    color: #4b5563;
    transition: background 0.12s;
}

.cl-icon-btn:hover[b-orugd79bba] {
    background: #f3f4f6;
    border-color: #d1d5db;
}

.cl-icon-btn .material-icons[b-orugd79bba] {
    font-size: 16px;
    vertical-align: middle;
    line-height: 1.4;
}

/* ── Pagination ─────────────────────────────────────────────── */
.cl-pager[b-orugd79bba] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 12px;
}

.cl-page-btn[b-orugd79bba] {
    min-width: 32px;
    height: 30px;
    padding: 0 8px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 0.8125rem;
    cursor: pointer;
    color: #374151;
    font-family: 'Inter', sans-serif;
    transition: background 0.12s;
}

.cl-page-btn:hover:not(:disabled)[b-orugd79bba] {
    background: #f3f4f6;
}

.cl-page-btn:disabled[b-orugd79bba] {
    opacity: 0.4;
    cursor: default;
}

.cl-page-btn.cl-page-active[b-orugd79bba] {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
    font-weight: 600;
}

/* ── Pinned-drawer layout: push main content left ─────────── */
.cl-has-pinned-drawer[b-orugd79bba] {
    padding-right: 390px;
    transition: padding-right 0.2s ease;
}

/* ── Right drawer ─────────────────────────────────────────── */
.cl-drawer[b-orugd79bba] {
    position: fixed;
    top: 56px;
    right: 0;
    bottom: 0;
    width: 440px;
    background: #fff;
    border-left: 1px solid #e5e7eb;
    box-shadow: -4px 0 24px rgba(0,0,0,0.13);
    z-index: 200;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: clDrawerIn-b-orugd79bba 0.18s ease;
}

.cl-drawer.cl-drawer-pinned[b-orugd79bba] {
    width: 380px;
    box-shadow: none;
    border-left: 2px solid #e5e7eb;
}

@keyframes clDrawerIn-b-orugd79bba {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}

.cl-drawer-header[b-orugd79bba] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    flex-shrink: 0;
    min-height: 52px;
}

.cl-drawer-title[b-orugd79bba] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    overflow: hidden;
    font-size: 0.8125rem;
}

.cl-drawer-subtitle[b-orugd79bba] {
    color: #374151;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.8rem;
}

/* See the single .cl-drawer-status rule further down -- kept in one place so
   the two halves cannot drift apart again. */

.cl-drawer-body[b-orugd79bba] {
    flex: 1;
    overflow-y: auto;
    padding: 4px 6px;
}

.cl-pin-active[b-orugd79bba] {
    color: #2563eb !important;
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
}

/* ── Attachment count badge on the paperclip button ─────────── */
.cl-attach-count[b-orugd79bba] {
    background: #2563eb;
    color: #fff;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    padding: 0 5px;
    margin-left: 2px;
    vertical-align: top;
}

/* ── Attachments overlay ────────────────────────────────────── */
.cl-attach-overlay[b-orugd79bba] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.35);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cl-attach-panel[b-orugd79bba] {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    width: 620px;
    max-width: 94vw;
    max-height: 85vh;
    overflow-y: auto;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}

.cl-attach-title[b-orugd79bba] {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 10px;
    margin-bottom: 16px;
}

.cl-attach-table[b-orugd79bba] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.83rem;
}

.cl-attach-table thead th[b-orugd79bba] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    text-align: left;
}

.cl-attach-table tbody td[b-orugd79bba] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
}

/* Image attachment thumbnails in the attachments overlay (2026-08-30) */
.cl-attach-thumb[b-orugd79bba] {
    width: 56px;
    height: 42px;
    object-fit: cover;
    border-radius: 6px;
    border: 1px solid #e2e8f0;
    display: block;
}

.cl-attach-fileicon[b-orugd79bba] {
    color: #94a3b8;
    font-size: 1.6rem;
    vertical-align: middle;
}

/* Drawer status badge.
   
   The width was never about the text. .cl-drawer-title is a COLUMN flex
   container, so its default align-items: stretch made every child as wide as
   the container -- and the container is as wide as the concern title, which
   differs on every concern. The same word "Closed" was measured at 177px,
   144px, 126px and 88px on consecutive rows. A min-width could not fix that,
   because the element was being stretched, not sized by its content.
   
   align-self: flex-start takes it out of the stretch; the fixed width then
   keeps Open, Verify, Closed and Cancelled all identical. */
.cl-drawer-status[b-orugd79bba] {
    align-self: flex-start;
    flex: 0 0 auto;
    display: inline-block;
    width: 88px;
    text-align: center;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Rows-per-page selector, sitting with the pager. */
.cl-pager-bar[b-orugd79bba] {
    display: flex;
    justify-content: flex-end;
    padding: 6px 2px 0;
}

/* "My site" notice above the grid (2026-09-05). */
.cl-site-note[b-orugd79bba] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 4px 0 10px;
    padding: 6px 10px;
    border-radius: 8px;
    background: #eff6ff;
    color: #1e3a8a;
    font-size: 0.85rem;
}
.cl-site-note .material-icons[b-orugd79bba] { font-size: 1rem; }
/* /Components/Pages/ConcernReport.razor.rz.scp.css */
.concern-report[b-at6fmu3tle] {
    max-width: 1200px;
    font-size: 0.875rem;
}

/* ── Cards ───────────────────────────────────────────────── */
.report-card[b-at6fmu3tle] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    overflow: hidden;
}

.report-card-header[b-at6fmu3tle] {
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    padding: 8px 14px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #374151;
}

.report-card-body[b-at6fmu3tle] {
    padding: 14px;
}

/* ── Title ───────────────────────────────────────────────── */
.report-title[b-at6fmu3tle] {
    font-size: 1.1rem;
    font-weight: 600;
    color: #212529;
}

/* ── Field table (key–value pairs) ──────────────────────── */
.report-fields-table[b-at6fmu3tle] {
    width: 100%;
    border-collapse: collapse;
}

.report-fields-table th[b-at6fmu3tle] {
    width: 140px;
    text-align: right;
    padding: 3px 10px 3px 0;
    color: #6b7280;
    font-weight: 500;
    white-space: nowrap;
    vertical-align: top;
}

.report-fields-table td[b-at6fmu3tle] {
    padding: 3px 0;
    color: #212529;
    vertical-align: top;
}

/* ── Flags / badges ──────────────────────────────────────── */
.report-flag[b-at6fmu3tle] {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 500;
    margin: 2px 3px 2px 0;
}

.flag-warn[b-at6fmu3tle]   { background: #fff3cd; color: #856404; border: 1px solid #ffe69c; }
.flag-danger[b-at6fmu3tle] { background: #f8d7da; color: #842029; border: 1px solid #f1aeb5; }
.flag-muted[b-at6fmu3tle]  { background: #f3f4f6; color: #374151; border: 1px solid #e5e7eb; }

/* ── Text blocks (description / notes) ──────────────────── */
.report-section-label[b-at6fmu3tle] {
    font-weight: 600;
    color: #6b7280;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
}

.report-text-block[b-at6fmu3tle] {
    white-space: pre-wrap;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 8px 12px;
    color: #212529;
    line-height: 1.5;
}

/* ── Data tables ─────────────────────────────────────────── */
.report-table[b-at6fmu3tle] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.83rem;
}

.report-table thead th[b-at6fmu3tle] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    text-align: left;
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
}

.report-table tbody td[b-at6fmu3tle] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    color: #212529;
    vertical-align: top;
}

.report-table tbody tr:last-child td[b-at6fmu3tle] {
    border-bottom: none;
}

.report-table tbody tr:hover td[b-at6fmu3tle] {
    background: #f9fafb;
}

.report-total-row td[b-at6fmu3tle] {
    border-top: 2px solid #e5e7eb !important;
    padding: 6px 10px;
    background: #f9fafb;
}

.currency-code[b-at6fmu3tle] {
    font-size: 0.72rem;
    color: #6b7280;
    margin-left: 3px;
}

/* ── Footer notice (7-day scrap warning — legacy RDLC Textbox43) ── */
.report-important-notice[b-at6fmu3tle] {
    border: 1px solid #842029;
    border-radius: 6px;
    background: #fff5f5;
    color: #842029;
    padding: 10px 14px;
    margin-top: 12px;
    line-height: 1.5;
}

/* ── Print styles ────────────────────────────────────────── */
@media print {
    .no-print[b-at6fmu3tle] {
        display: none !important;
    }

    .concern-report[b-at6fmu3tle] {
        max-width: 100%;
        font-size: 0.8rem;
    }

    /* Auto-width tables can grow wider than the printed page and spill onto
       extra pages to the right instead of shrinking -- browsers don't scale
       table content for print (feedback 2026-09-03: "the indicators don't
       resize, prints over many pages"). table-layout: fixed forces every
       table below to stay within the page width regardless of content. */

    .report-table[b-at6fmu3tle] {
        table-layout: fixed !important;
        width: 100% !important;
        font-size: 0.7rem;
    }

    .report-table th[b-at6fmu3tle],
    .report-table td[b-at6fmu3tle] {
        white-space: normal !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
        padding: 3px 5px !important;
    }

    .report-card[b-at6fmu3tle] {
        page-break-inside: avoid;
    }

    .report-important-notice[b-at6fmu3tle] {
        page-break-inside: avoid;
    }

    .report-table tbody tr[b-at6fmu3tle] {
        page-break-inside: avoid;
    }

    a[b-at6fmu3tle] {
        text-decoration: none;
        color: inherit;
    }

    /* Hide the Blazor nav sidebar and top bar when printing */
    [b-at6fmu3tle] .sidebar, [b-at6fmu3tle] .top-row, [b-at6fmu3tle] nav {
        display: none !important;
    }
}

/* /Components/Pages/ConcernStats.razor.rz.scp.css */
.stats-page[b-gw4jtvhtuu] {
    padding: 1.25rem;
}

.stats-filter[b-gw4jtvhtuu] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px 16px;
}

.stats-chart[b-gw4jtvhtuu] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 1rem;
    background: #fff;
}

.stats-table[b-gw4jtvhtuu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.stats-table thead th[b-gw4jtvhtuu] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 10px;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
    text-align: left;
}

.stats-table thead th.text-end[b-gw4jtvhtuu] { text-align: right; }

.stats-table tbody td[b-gw4jtvhtuu] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.stats-table tbody tr:hover[b-gw4jtvhtuu] {
    background: #f9fafb;
}

.stats-footer td[b-gw4jtvhtuu] {
    background: #f3f4f6;
    border-top: 2px solid #e5e7eb;
    padding: 7px 10px;
}

/* ── Print / Save as PDF (feedback 2026-09-03: "check all print pages") ──
   .no-print (filters, the Print button) is already hidden globally by
   app.css. table-layout: fixed keeps the summary table within the page
   width and stops the chart or table splitting across a page boundary. */
@media print {
    /* Landscape, because this page is a wide chart above a wide month-by-month
       table -- portrait cut both off (2026-09-04). An explicit page size and
       small margins also stop the browser's own default margins pushing the
       content over a second sheet. */
    @page { size: A4 landscape; margin: 8mm; }

    .stats-page[b-gw4jtvhtuu] {
        padding: 0 !important;
        margin: 0 !important;
        max-width: 100% !important;
        font-size: 7pt !important;
    }

    .stats-page h2[b-gw4jtvhtuu] { font-size: 11pt !important; margin: 0 0 4px !important; }

    /* An ApexCharts canvas keeps its on-screen pixel width when printed, so a
       chart laid out for a 1400px browser ran off the sheet. Forcing the
       wrapper to the page width makes the SVG scale down to fit. */
    .stats-chart[b-gw4jtvhtuu],
    .stats-chart .apexcharts-canvas[b-gw4jtvhtuu],
    .stats-chart svg[b-gw4jtvhtuu] {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
    }

    /* Filters and buttons are screen furniture -- they are not the report. */
    .stats-filter[b-gw4jtvhtuu],
    .no-print[b-gw4jtvhtuu],
    .stats-page .rz-button[b-gw4jtvhtuu],
    .stats-page button[b-gw4jtvhtuu] { display: none !important; }

    .stats-table[b-gw4jtvhtuu] { font-size: 6pt !important; }
    .stats-table th[b-gw4jtvhtuu], .stats-table td[b-gw4jtvhtuu] { padding: 1px 3px !important; }

    .stats-page *[b-gw4jtvhtuu] { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

    .stats-chart[b-gw4jtvhtuu] {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .stats-table[b-gw4jtvhtuu] {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .stats-table th[b-gw4jtvhtuu],
    .stats-table td[b-gw4jtvhtuu] {
        white-space: normal !important;
        word-break: break-word !important;
    }

    .stats-table tbody tr[b-gw4jtvhtuu] {
        page-break-inside: avoid;
    }
}
/* /Components/Pages/COQbyPart.razor.rz.scp.css */
.coq-page[b-l6k5r7y1hv] {
    padding: 1.25rem;
}

.coq-filter[b-l6k5r7y1hv] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px 16px;
}

.coq-table[b-l6k5r7y1hv] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.coq-table thead th[b-l6k5r7y1hv] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
    text-align: left;
}

.coq-table thead th.text-end[b-l6k5r7y1hv] { text-align: right; }

.coq-table thead th.sortable[b-l6k5r7y1hv] {
    cursor: pointer;
    user-select: none;
}

.coq-table thead th.sortable:hover[b-l6k5r7y1hv] {
    background: #f3f4f6;
}

.coq-table tbody td[b-l6k5r7y1hv] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.coq-table tbody tr:hover[b-l6k5r7y1hv] {
    background: #f9fafb;
}

.coq-footer td[b-l6k5r7y1hv] {
    background: #f3f4f6;
    border-top: 2px solid #e5e7eb;
    padding: 7px 12px;
}

.sort-icon[b-l6k5r7y1hv] {
    font-size: 0.7rem;
    margin-left: 4px;
    color: #6b7280;
}


/* Presentation-currency note next to the page description (2026-09-04). */
.coq-currency-note[b-l6k5r7y1hv] {
    display: inline-block;
    margin-left: 6px;
    font-style: italic;
    color: #6b7280;
}
/* /Components/Pages/COQbySupplier.razor.rz.scp.css */
.coq-page[b-kpoy4apjwo] {
    padding: 1.25rem;
}

.coq-filter[b-kpoy4apjwo] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px 16px;
}

.coq-table[b-kpoy4apjwo] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.coq-table thead th[b-kpoy4apjwo] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
    text-align: left;
}

.coq-table thead th.text-end[b-kpoy4apjwo] { text-align: right; }

.coq-table thead th.sortable[b-kpoy4apjwo] {
    cursor: pointer;
    user-select: none;
}

.coq-table thead th.sortable:hover[b-kpoy4apjwo] {
    background: #f3f4f6;
}

.coq-table tbody td[b-kpoy4apjwo] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.coq-table tbody tr:hover[b-kpoy4apjwo] {
    background: #f9fafb;
}

.coq-footer td[b-kpoy4apjwo] {
    background: #f3f4f6;
    border-top: 2px solid #e5e7eb;
    padding: 7px 12px;
}

.sort-icon[b-kpoy4apjwo] {
    font-size: 0.7rem;
    margin-left: 4px;
    color: #6b7280;
}


/* Presentation-currency note next to the page description (2026-09-04). */
.coq-currency-note[b-kpoy4apjwo] {
    display: inline-block;
    margin-left: 6px;
    font-style: italic;
    color: #6b7280;
}
/* /Components/Pages/EightD.razor.rz.scp.css */
/* ── Page header ─────────────────────────────────────────── */
.ed-page-header[b-eoupk7n3r7] {
    padding: 16px 20px;
    background: linear-gradient(135deg, #1e293b 0%, #334155 100%);
    border-bottom: 1px solid #0f172a;
    margin: -1rem -1rem 1.25rem;
}

.ed-concern-ref[b-eoupk7n3r7] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.5);
    margin-bottom: 2px;
}

.ed-concern-title[b-eoupk7n3r7] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

.ed-concern-supplier[b-eoupk7n3r7] {
    font-size: 0.875rem;
    color: rgba(255,255,255,0.68);
    margin-top: 4px;
}

.ed-status-badge[b-eoupk7n3r7] {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    border: 1px solid transparent;
}

.ed-status-badge.status-open[b-eoupk7n3r7] {
    background: rgba(234,179,8,0.18);
    color: #fcd34d;
    border-color: rgba(234,179,8,0.35);
}

.ed-status-badge.status-closed[b-eoupk7n3r7] {
    background: rgba(34,197,94,0.18);
    color: #86efac;
    border-color: rgba(34,197,94,0.3);
}

/* ── Tab content ─────────────────────────────────────────── */
.tab-content-pad[b-eoupk7n3r7] {
    padding: 20px 4px;
}

/* ── Tab completion dots ─────────────────────────────────── */
.ed-tab-dot[b-eoupk7n3r7] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #d1d5db;
    margin-left: 6px;
    vertical-align: middle;
    flex-shrink: 0;
}

.ed-tab-done[b-eoupk7n3r7] {
    background: #22c55e;
}



.ed-section-subtitle[b-eoupk7n3r7] {
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
}

/* ── Field labels ────────────────────────────────────────── */
.ed-field-label[b-eoupk7n3r7] {
    display: block;
    font-weight: 600;
    font-size: 0.83rem;
    color: #374151;
    margin-bottom: 4px;
}

/* ── Read-only block ─────────────────────────────────────── */
.ed-readonly-block[b-eoupk7n3r7] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 8px 12px;
    color: #374151;
    white-space: pre-wrap;
    min-height: 40px;
    font-size: 0.875rem;
}

/* ── Data tables ─────────────────────────────────────────── */
.ed-data-table[b-eoupk7n3r7] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.ed-data-table thead th[b-eoupk7n3r7] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    text-align: left;
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
}

.ed-data-table tbody td[b-eoupk7n3r7] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.ed-data-table tbody tr:last-child td[b-eoupk7n3r7] {
    border-bottom: none;
}

/* ── IS/IS NOT card layout ───────────────────────────────── */
.isisnot-cards[b-eoupk7n3r7] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}

.isisnot-card[b-eoupk7n3r7] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

.isisnot-card-header[b-eoupk7n3r7] {
    background: #334155;
    color: #fff;
    font-weight: 700;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 5px 14px;
}

.isisnot-card-body[b-eoupk7n3r7] {
    padding: 12px 14px;
}

.isisnot-col-head[b-eoupk7n3r7] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    border-bottom: 2px solid #e5e7eb;
    padding-bottom: 5px;
    margin-bottom: 10px;
}

.isisnot-col-head.is-col[b-eoupk7n3r7] {
    color: #2563eb;
    border-color: #2563eb;
}

.isisnot-col-head.isnot-col[b-eoupk7n3r7] {
    color: #6b7280;
}

.isisnot-pair[b-eoupk7n3r7] {
    margin-bottom: 8px;
}

.isisnot-pair label[b-eoupk7n3r7] {
    display: block;
    font-size: 0.78rem;
    color: #6b7280;
    margin-bottom: 3px;
}







.ed-fishbone-add[b-eoupk7n3r7] {
    padding: 4px 6px;
    border-top: 1px solid #e5e7eb;
    background: #f9fafb;
}






/* ── Training modal ──────────────────────────────────────── */
.ed-training-backdrop[b-eoupk7n3r7] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 400;
}

.ed-training-modal[b-eoupk7n3r7] {
    position: fixed;
    top: 56px;
    right: 0;
    bottom: 0;
    width: 660px;
    max-width: 92vw;
    background: #fff;
    border-left: 1px solid #e5e7eb;
    box-shadow: -6px 0 32px rgba(0,0,0,0.18);
    z-index: 401;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ed-training-header[b-eoupk7n3r7] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 12px 16px;
    background: #f0f6ff;
    border-bottom: 1px solid #dbeafe;
    font-weight: 600;
    font-size: 0.9rem;
    color: #1e3a5f;
    flex-shrink: 0;
}

.ed-training-close[b-eoupk7n3r7] {
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 2px;
    line-height: 1;
    border-radius: 4px;
}

.ed-training-close:hover[b-eoupk7n3r7] { color: #111827; background: #e5e7eb; }

.ed-training-close .material-icons[b-eoupk7n3r7] { font-size: 18px; vertical-align: middle; }

.ed-training-body[b-eoupk7n3r7] {
    flex: 1;
    overflow-y: auto;
    padding: 0;
}

.ed-training-section[b-eoupk7n3r7] {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid #f3f4f6;
}

.ed-training-section:last-of-type[b-eoupk7n3r7] {
    border-bottom: none;
}

.ed-training-section-title[b-eoupk7n3r7] {
    font-weight: 700;
    font-size: 0.83rem;
    color: #1e3a5f;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.ed-training-section p[b-eoupk7n3r7] {
    font-size: 0.83rem;
    color: #374151;
    margin: 0;
    line-height: 1.5;
}

/* ── Autosave status indicator ───────────────────────────── */
.ed-autosave[b-eoupk7n3r7] {
    font-size: 0.75rem;
    font-weight: 500;
    margin-left: auto;
}

.ed-autosave-saving[b-eoupk7n3r7] {
    color: #6b7280;
}

.ed-autosave-saved[b-eoupk7n3r7] {
    color: #16a34a;
}

/* ed-section-header / ed-checkoff-* / ed-fishbone-* rules moved to app.css:
   those elements are rendered via RenderTreeBuilder helpers, which do not
   receive the CSS-isolation attribute, so scoped rules never matched. */

/* ── Compact D2 / D4 (2026-09-03) ─────────────────────────────────────────
   Cards and fishbone groups are collapsed rows with a count; questions are
   single-line inputs that grow with their content. */
.isisnot-toolbar[b-eoupk7n3r7] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 8px;
}

.isisnot-link[b-eoupk7n3r7] {
    background: none;
    border: none;
    padding: 0;
    color: #2563eb;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.isisnot-link:hover[b-eoupk7n3r7] {
    text-decoration: underline;
}

.isisnot-cards[b-eoupk7n3r7] {
    gap: 6px;
}

.isisnot-card-header[b-eoupk7n3r7],
.fb-group-header[b-eoupk7n3r7] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: #f8fafc;
    color: #1e293b;
    border: none;
    padding: 8px 12px;
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.03em;
    cursor: pointer;
}

.isisnot-card-header:hover[b-eoupk7n3r7],
.fb-group-header:hover[b-eoupk7n3r7] {
    background: #eef2f7;
}

.isisnot-open > .isisnot-card-header[b-eoupk7n3r7],
.fb-open > .fb-group-header[b-eoupk7n3r7] {
    background: #334155;
    color: #fff;
}

.isisnot-chevron[b-eoupk7n3r7] {
    font-size: 1.1rem;
    line-height: 1;
    opacity: 0.8;
}

.isisnot-name[b-eoupk7n3r7],
.fb-group-name[b-eoupk7n3r7] {
    flex: 1;
}

.isisnot-count[b-eoupk7n3r7] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    padding: 2px 9px;
    border-radius: 999px;
    background: #e2e8f0;
    color: #475569;
}

.isisnot-count-done[b-eoupk7n3r7] {
    background: #dcfce7;
    color: #166534;
}

.isisnot-open > .isisnot-card-header .isisnot-count[b-eoupk7n3r7],
.fb-open > .fb-group-header .isisnot-count[b-eoupk7n3r7] {
    background: rgba(255,255,255,0.18);
    color: #fff;
}

.isisnot-pair[b-eoupk7n3r7] {
    margin-bottom: 6px;
}

.isisnot-pair label[b-eoupk7n3r7] {
    margin-bottom: 2px;
}

/* One line that grows as the text does; the old boxes were two rows each
   whether or not anything was typed in them. */
[b-eoupk7n3r7] .isisnot-input textarea,
[b-eoupk7n3r7] textarea.isisnot-input {
    field-sizing: content;
    min-height: 34px;
    max-height: 200px;
    resize: vertical;
    line-height: 1.35;
    padding-top: 6px;
    padding-bottom: 6px;
}

.fb-group[b-eoupk7n3r7] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 10px;
}

.fb-group-body[b-eoupk7n3r7] {
    padding: 12px 14px 14px;
}

.fw-row[b-eoupk7n3r7] {
    display: grid;
    grid-template-columns: 28px 1fr;
    grid-template-rows: auto auto;
    column-gap: 10px;
    align-items: center;
}

.fw-row .fw-num[b-eoupk7n3r7] {
    grid-row: 1 / span 2;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #334155;
    color: #fff;
    font-weight: 700;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fw-row .ed-field-label[b-eoupk7n3r7] {
    margin-bottom: 2px;
}
/* /Components/Pages/EightDReminders.razor.rz.scp.css */
/* Administrator switch for the overdue-8D reminder emails (2026-09-04). */
.edr-card[b-jzg3c3xiub] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    padding: 14px 16px;
    max-width: 720px;
}

/* The switch is the point of the page, so it is bigger than a stock checkbox. */
.edr-switch .form-check-input[b-jzg3c3xiub] {
    width: 2.6rem;
    height: 1.35rem;
    cursor: pointer;
}
/* /Components/Pages/EightDReport.razor.rz.scp.css */
.edr-page[b-mjrltk8pjv] {
    padding: 1.25rem;
    max-width: 950px;
}

/* ── Section cards ─────────────────────────────────────────── */
.edr-page[b-mjrltk8pjv]  .edr-card,
.edr-card[b-mjrltk8pjv] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 18px;
    margin-bottom: 14px;
}

.edr-page[b-mjrltk8pjv]  .edr-card-title,
.edr-card-title[b-mjrltk8pjv] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #0f172a;
    border-left: 3px solid #2563eb;
    padding-left: 8px;
    margin-bottom: 10px;
}

.edr-block-label[b-mjrltk8pjv] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin: 10px 0 4px;
}

.edr-text[b-mjrltk8pjv] {
    font-size: 0.85rem;
    white-space: pre-wrap;
}

.edr-page[b-mjrltk8pjv]  .edr-empty,
.edr-empty[b-mjrltk8pjv] {
    font-size: 0.8rem;
    color: #9ca3af;
}

/* ── Tables ────────────────────────────────────────────────── */
.edr-page[b-mjrltk8pjv]  .edr-table,
.edr-table[b-mjrltk8pjv] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    margin-bottom: 6px;
}

.edr-page[b-mjrltk8pjv]  .edr-table thead th,
.edr-table thead th[b-mjrltk8pjv] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 5px 10px;
    font-weight: 600;
    color: #374151;
    text-align: left;
}

.edr-page[b-mjrltk8pjv]  .edr-table tbody td,
.edr-table tbody td[b-mjrltk8pjv] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: top;
}

.edr-fields[b-mjrltk8pjv] {
    width: 100%;
    font-size: 0.85rem;
    margin-bottom: 6px;
}

.edr-fields th[b-mjrltk8pjv] {
    width: 110px;
    font-weight: 600;
    color: #6b7280;
    padding: 3px 8px 3px 0;
    text-align: left;
    vertical-align: top;
}

.edr-fields td[b-mjrltk8pjv] {
    padding: 3px 16px 3px 0;
}

/* ── IS / IS NOT ───────────────────────────────────────────── */
.edr-isisnot-group[b-mjrltk8pjv] {
    margin-bottom: 8px;
}

.edr-isisnot-head[b-mjrltk8pjv] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #2563eb;
    margin-bottom: 2px;
}

.edr-isisnot-side[b-mjrltk8pjv] {
    width: 64px;
    font-weight: 700;
    font-size: 0.72rem;
    color: #6b7280;
    white-space: nowrap;
}

.edr-isisnot-q[b-mjrltk8pjv] {
    width: 40%;
    color: #6b7280;
}

/* ── Status chips ──────────────────────────────────────────── */
.edr-page[b-mjrltk8pjv]  .edr-status,
.edr-status[b-mjrltk8pjv] {
    display: inline-block;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    background: #f3f4f6;
    color: #374151;
    white-space: nowrap;
}

.edr-page[b-mjrltk8pjv]  .edr-done,
.edr-done[b-mjrltk8pjv] { background: #dcfce7; color: #166534; }

.edr-page[b-mjrltk8pjv]  .edr-late,
.edr-late[b-mjrltk8pjv] { background: #fee2e2; color: #991b1b; }

/* ── Print ─────────────────────────────────────────────────── */
@media print {
    .no-print[b-mjrltk8pjv] { display: none !important; }
    .edr-page[b-mjrltk8pjv] { padding: 0 !important; max-width: none; }

    /* Auto-width tables can grow wider than the printed page and spill onto
       extra pages to the right instead of shrinking -- browsers don't scale
       table content for print (feedback 2026-09-03: "the indicators don't
       resize, prints over many pages"). table-layout: fixed forces every
       table below to stay within the page width regardless of content. */

    .edr-table[b-mjrltk8pjv],
    .edr-fields[b-mjrltk8pjv] {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .edr-table th[b-mjrltk8pjv],
    .edr-table td[b-mjrltk8pjv],
    .edr-fields th[b-mjrltk8pjv],
    .edr-fields td[b-mjrltk8pjv] {
        white-space: normal !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }

    .edr-page[b-mjrltk8pjv]  .edr-card,
    .edr-card[b-mjrltk8pjv] {
        break-inside: avoid;
        border-color: #d1d5db;
    }

    .edr-page[b-mjrltk8pjv]  .edr-status,
    .edr-status[b-mjrltk8pjv],
    .edr-page[b-mjrltk8pjv]  .edr-done,
    .edr-page[b-mjrltk8pjv]  .edr-late {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
/* /Components/Pages/EightDStats.razor.rz.scp.css */
.stats-page[b-fqbxdp3r3v] {
    padding: 1.25rem;
}

.stats-filter[b-fqbxdp3r3v] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 12px 16px;
}

.stats-chart[b-fqbxdp3r3v] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 1rem;
    background: #fff;
}

.stats-table[b-fqbxdp3r3v] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.88rem;
}

.stats-table thead th[b-fqbxdp3r3v] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 10px;
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
    text-align: left;
}

.stats-table thead th.text-end[b-fqbxdp3r3v] { text-align: right; }

.stats-table tbody td[b-fqbxdp3r3v] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.stats-table tbody tr:hover[b-fqbxdp3r3v] {
    background: #f9fafb;
}

.stats-footer td[b-fqbxdp3r3v] {
    background: #f3f4f6;
    border-top: 2px solid #e5e7eb;
    padding: 7px 10px;
}

/* ── Print / Save as PDF (feedback 2026-09-03: "check all print pages") ──
   .no-print (filters, the Print button) is already hidden globally by
   app.css. table-layout: fixed keeps the summary table within the page
   width and stops the chart or table splitting across a page boundary. */
@media print {
    .stats-page[b-fqbxdp3r3v] {
        padding: 0 !important;
        font-size: 0.78rem;
    }

    .stats-chart[b-fqbxdp3r3v] {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .stats-table[b-fqbxdp3r3v] {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .stats-table th[b-fqbxdp3r3v],
    .stats-table td[b-fqbxdp3r3v] {
        white-space: normal !important;
        word-break: break-word !important;
    }

    .stats-table tbody tr[b-fqbxdp3r3v] {
        page-break-inside: avoid;
    }
}
/* /Components/Pages/Feedback.razor.rz.scp.css */
/* Feedback inbox (2026-09-05). Plain markup, so scoped styles apply. */

.fb-filter[b-1ip73oqn7y] { display: inline-flex; border: 1px solid #e2e8f0; border-radius: 6px; overflow: hidden; }

.fb-filter-btn[b-1ip73oqn7y] {
    border: 0;
    background: #fff;
    color: #475569;
    padding: 4px 12px;
    font-size: 0.85rem;
    cursor: pointer;
}

.fb-filter-btn.active[b-1ip73oqn7y] { background: #1d4ed8; color: #fff; font-weight: 600; }

.fb-list[b-1ip73oqn7y] { display: flex; flex-direction: column; gap: 10px; }

.fb-item[b-1ip73oqn7y] {
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    padding: 12px 14px;
}

.fb-item-open[b-1ip73oqn7y] { border-left: 4px solid #f59e0b; }

.fb-item-head[b-1ip73oqn7y] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.fb-kind[b-1ip73oqn7y] { display: inline-flex; align-items: center; gap: 3px; color: #475569; font-size: 0.85rem; }
.fb-kind .rzi[b-1ip73oqn7y] { font-size: 1rem; }

.fb-message[b-1ip73oqn7y] { white-space: pre-wrap; }

.fb-reply[b-1ip73oqn7y] {
    margin-top: 8px;
    padding: 8px 10px;
    border-left: 3px solid #1d4ed8;
    background: #eff6ff;
    border-radius: 0 6px 6px 0;
    white-space: pre-wrap;
}

.fb-actions[b-1ip73oqn7y] { margin-top: 10px; display: flex; gap: 8px; flex-wrap: wrap; }

.fb-reply-box[b-1ip73oqn7y] {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    padding: 8px 10px;
    font: inherit;
}

.fb-pill[b-1ip73oqn7y] {
    display: inline-block;
    width: 82px;
    text-align: center;
    padding: 2px 0;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.fb-pill-new[b-1ip73oqn7y]      { background: #fef3c7; color: #b45309; }
.fb-pill-answered[b-1ip73oqn7y] { background: #dcfce7; color: #166534; }
.fb-pill-closed[b-1ip73oqn7y]   { background: #e2e8f0; color: #475569; }
/* /Components/Pages/Home.razor.rz.scp.css */
/* ── Page ──────────────────────────────────────────────────── */
.dash-page[b-tddvn8yghs] {
    padding: 0.75rem 1.5rem 0.75rem;
}

.dash-heading h4[b-tddvn8yghs] {
    font-size: 1.15rem;
    font-weight: 700;
    color: #111827;
}

/* ── KPI cards ─────────────────────────────────────────────── */
.dash-kpi-period-label[b-tddvn8yghs] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6b7280;
    margin-bottom: 10px;
}

.dash-kpi-row[b-tddvn8yghs] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.dash-kpi-card[b-tddvn8yghs] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 10px 14px;
    min-width: 115px;
    flex: 1 1 115px;
    text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
    transition: box-shadow 0.15s;
}

.dash-kpi-card:hover[b-tddvn8yghs] {
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
}

.dash-kpi-card.kpi-green[b-tddvn8yghs] {
    background: #f0fdf4;
    border-color: #bbf7d0;
}

.dash-kpi-card.kpi-amber[b-tddvn8yghs] {
    background: #fffbeb;
    border-color: #fde68a;
}

.dash-kpi-card.kpi-red[b-tddvn8yghs] {
    background: #fef2f2;
    border-color: #fecaca;
}

.dash-kpi-value[b-tddvn8yghs] {
    font-size: 1.5rem;
    font-weight: 800;
    color: #111827;
    line-height: 1.1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dash-kpi-label[b-tddvn8yghs] {
    font-size: 0.7rem;
    color: #6b7280;
    margin-top: 5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
}

/* ── Chart sections ─────────────────────────────────────────── */
.dash-chart-section[b-tddvn8yghs] {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 18px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.dash-chart-title[b-tddvn8yghs] {
    font-size: 0.8rem;
    font-weight: 700;
    color: #374151;
    border-bottom: 1px solid #f3f4f6;
    padding-bottom: 10px;
    margin-bottom: 14px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.dash-chart-layout[b-tddvn8yghs] {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.dash-chart-table[b-tddvn8yghs] {
    flex: 0 0 280px;
}

.dash-chart-area[b-tddvn8yghs] {
    flex: 1 1 0;
    min-width: 0;
}

/* ── Data tables ─────────────────────────────────────────────── */
.dash-table[b-tddvn8yghs] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.dash-table thead th[b-tddvn8yghs] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    color: #6b7280;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.dash-table tbody td[b-tddvn8yghs] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.dash-table tbody tr:last-child td[b-tddvn8yghs] {
    border-bottom: none;
}

/* ── Activity section ─────────────────────────────────────────── */
.dash-activity-section[b-tddvn8yghs] {
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px 18px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.nowrap[b-tddvn8yghs] { white-space: nowrap; }

/* ── Supply Base Performance (CAT dashboard) ───────────────── */
.dash-sbp-header[b-tddvn8yghs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.dash-sbp-filters[b-tddvn8yghs] {
    display: flex;
    gap: 8px;
    align-items: center;
}

.dash-sbp-charts[b-tddvn8yghs] {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.dash-sbp-chart-card[b-tddvn8yghs] {
    flex: 1 1 380px;
    min-width: 320px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 12px 14px 6px;
}

.dash-sbp-chart-title[b-tddvn8yghs] {
    font-size: 0.85rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}

.dash-sbp-total[b-tddvn8yghs] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #2563eb;
    white-space: nowrap;
}

.dash-sbp-hint[b-tddvn8yghs] {
    font-size: 0.68rem;
    color: #9ca3af;
    text-align: center;
    padding-bottom: 4px;
}

/* Worst performer tables */
.dash-sbp-worst[b-tddvn8yghs] {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.dash-sbp-worst-card[b-tddvn8yghs] {
    flex: 1 1 420px;
    min-width: 360px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 12px 14px;
}

.dash-sbp-table tbody tr.dash-sbp-row[b-tddvn8yghs] {
    cursor: pointer;
}

.dash-sbp-table tbody tr.dash-sbp-row:hover td[b-tddvn8yghs] {
    background: #f0f6ff;
}

/* Score pills */
.dash-score[b-tddvn8yghs] {
    display: inline-block;
    min-width: 46px;
    text-align: center;
    padding: 1px 8px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.78rem;
}

.dash-score-green[b-tddvn8yghs] { background: #dcfce7; color: #166534; }
.dash-score-amber[b-tddvn8yghs] { background: #fef3c7; color: #92400e; }
.dash-score-red[b-tddvn8yghs]   { background: #fee2e2; color: #991b1b; }

/* Supplier status (P/A/C/U) tiles */
.dash-pau-row[b-tddvn8yghs] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.dash-pau-tile[b-tddvn8yghs] {
    flex: 1 1 140px;
    min-width: 120px;
    border-radius: 10px;
    padding: 10px 14px;
    text-align: center;
    cursor: pointer;
    border: 1px solid transparent;
    transition: box-shadow 0.15s, transform 0.1s;
}

.dash-pau-tile:hover[b-tddvn8yghs] {
    box-shadow: 0 3px 10px rgba(0,0,0,0.10);
    transform: translateY(-1px);
}

.dash-pau-count[b-tddvn8yghs] {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.dash-pau-label[b-tddvn8yghs] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.dash-pau-preferred[b-tddvn8yghs]    { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.dash-pau-acceptable[b-tddvn8yghs]   { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.dash-pau-conditional[b-tddvn8yghs]  { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.dash-pau-unacceptable[b-tddvn8yghs] { background: #fee2e2; color: #991b1b; border-color: #fecaca; }

/* ── Tabbed dashboard ──────────────────────────────────────── */
.dash-tabs .rz-tabview-panel[b-tddvn8yghs] {
    padding-top: 1rem;
}

/* ── Dashboard tabs (2026-09-04) ─────────────────────────────
   The tabs stay down the left side, but the labels read horizontally instead
   of rotated, and the tabs are squared off. The sideways text, 14px pill
   corners and inset glows of the notebook treatment read as dated; the rail is
   simply made wide enough for real labels.

   Colour coding is kept but carried more quietly: each tab's icon holds its
   own colour all the time, while the label greys until the tab is active.
   The active tab fills with its colour and the panel border follows it, via
   the --nb-* vars on the dash-nb-N wrapper (set in C# from the tab index). */
.dash-nb-0[b-tddvn8yghs] { --nb-border: #bfdbfe; --nb-strong: #1d4ed8; --nb-soft: #eff6ff; }
.dash-nb-1[b-tddvn8yghs] { --nb-border: #99f6e4; --nb-strong: #0f766e; --nb-soft: #f0fdfa; }
.dash-nb-2[b-tddvn8yghs] { --nb-border: #ddd6fe; --nb-strong: #6d28d9; --nb-soft: #f5f3ff; }
.dash-nb-3[b-tddvn8yghs] { --nb-border: #a5f3fc; --nb-strong: #0e7490; --nb-soft: #ecfeff; }
.dash-nb-4[b-tddvn8yghs] { --nb-border: #fde68a; --nb-strong: #b45309; --nb-soft: #fffbeb; }
.dash-nb-5[b-tddvn8yghs] { --nb-border: #fde68a; --nb-strong: #b45309; --nb-soft: #fffbeb; }
.dash-nb-6[b-tddvn8yghs] { --nb-border: #fecdd3; --nb-strong: #be123c; --nb-soft: #fff1f2; }

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 0 0 auto;
    width: 158px;
    min-width: 158px;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    list-style: none;
}

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li {
    position: relative;
    border: 1px solid #e5e7eb;
    border-right: none;
    border-radius: 6px 0 0 6px;
    background: #f8fafc;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li a {
    position: relative;          /* anchors the count badge */
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 9px;
    padding: 9px 12px;
    text-decoration: none;
    overflow: visible;
}

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li a i {
    font-size: 17px;
    line-height: 1;
    flex: 0 0 auto;
}

/* Upright and normal-reading: the vertical writing mode is gone */
.dash-notebook[b-tddvn8yghs]  .rz-tabview-title {
    writing-mode: horizontal-tb;
    transform: none;
    display: inline-block;
    padding: 0;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: #64748b;
    white-space: nowrap;
}

/* Each tab keeps its own icon colour whether active or not */
.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:nth-child(1) a i { color: #3b82f6; }
.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:nth-child(2) a i { color: #14b8a6; }
.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:nth-child(3) a i { color: #8b5cf6; }
.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:nth-child(4) a i { color: #06b6d4; }
.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:nth-child(5) a i { color: #f59e0b; }
.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:nth-child(6) a i { color: #f43f5e; }

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li:hover:not(.rz-tabview-selected) {
    background: #f8fafc;
    border-color: #cbd5e1;
}

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li.rz-tabview-selected {
    background: #fff;
    border-color: var(--nb-border);
    border-right: none;
    margin-right: -1px;
    z-index: 2;
}

.dash-notebook[b-tddvn8yghs]  .rz-tabview-nav li.rz-tabview-selected .rz-tabview-title {
    color: var(--nb-strong);
    font-weight: 700;
}

/* Content panel: one thin border in the active tab's colour, no glow.
   flex/min-width keep it filling the space beside the rail without the wide
   charts inside it forcing the whole row wider. */
.dash-notebook[b-tddvn8yghs]  .rz-tabview-panels {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid var(--nb-border);
    border-radius: 0 8px 8px 0;
    background: #fff;
    padding: 14px;
    transition: border-color 0.25s ease;
}

.dash-notebook[b-tddvn8yghs]  .rz-tabview-panel {
    padding: 0;
}

/* Overview tab chart pair */
.dash-overview-charts[b-tddvn8yghs] {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.dash-overview-charts .dash-sbp-chart-card[b-tddvn8yghs] {
    flex: 1 1 380px;
    min-width: 320px;
}

/* Worst-supplier names: wrap instead of clipping, nicely cased */
.dash-sbp-name[b-tddvn8yghs] {
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    max-width: 240px;
}

/* KPI cards that hold a NAME rather than a number: smaller type, wrap */
.dash-kpi-name[b-tddvn8yghs] {
    font-size: 0.95rem !important;
    font-weight: 700;
    line-height: 1.25;
    white-space: normal;
    overflow-wrap: anywhere;
}

/* ── Overview cockpit (2026-08-31) ─────────────────────────── */

/* KPI cards v2: label on top, value + delta chip, sub-line/sparkline below */
.dash-kpi-v2[b-tddvn8yghs] {
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 150px;
    padding: 8px 14px 6px;
}

.dash-kpi-v2 .dash-kpi-label[b-tddvn8yghs] {
    margin-top: 0;
    font-size: 0.66rem;
}

.dash-kpi-v2 .dash-kpi-main[b-tddvn8yghs] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-height: 28px;
}

.dash-kpi-v2 .dash-kpi-value[b-tddvn8yghs] {
    font-size: 1.45rem;
}

.dash-kpi-sub[b-tddvn8yghs] {
    font-size: 0.7rem;
    color: #94a3b8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dash-sub-alert[b-tddvn8yghs] {
    color: #dc2626;
    font-weight: 600;
}

/* Change chips (▲/▼ vs last month) — green = improving, red = worsening */
.dash-delta[b-tddvn8yghs] {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 999px;
    white-space: nowrap;
}

.dash-delta-good[b-tddvn8yghs] { background: #dcfce7; color: #166534; }
.dash-delta-bad[b-tddvn8yghs]  { background: #fee2e2; color: #991b1b; }
.dash-delta-flat[b-tddvn8yghs] { background: #f1f5f9; color: #64748b; }

/* Inline SVG sparkline pinned to the card's bottom edge */
.dash-spark[b-tddvn8yghs] {
    width: 100%;
    height: 26px;
    margin-top: auto;
    display: block;
}

/* Heading row: title left, supplier-rating chips filling the dead space right */
.dash-heading-row[b-tddvn8yghs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}

.dash-rating-chips[b-tddvn8yghs] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.dash-chip[b-tddvn8yghs] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 13px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 0.76rem;
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.1s, box-shadow 0.12s, filter 0.12s;
}

.dash-chip:hover[b-tddvn8yghs] {
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(0,0,0,0.12);
    filter: brightness(1.02);
}

.dash-chip-count[b-tddvn8yghs] {
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1;
}

.dash-chip-preferred[b-tddvn8yghs]    { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.dash-chip-acceptable[b-tddvn8yghs]   { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.dash-chip-conditional[b-tddvn8yghs]  { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.dash-chip-unacceptable[b-tddvn8yghs] { background: #fee2e2; color: #991b1b; border-color: #fecaca; }

/* Cockpit chart grid: 6 columns — row 1 is two half-width charts (span 3),
   row 2 is the heatmap (span 4) beside the COQ treemap (span 2) */
.dash-cockpit-grid[b-tddvn8yghs] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
}

.dash-cockpit-half[b-tddvn8yghs]  { grid-column: span 3; }
.dash-cockpit-wide[b-tddvn8yghs]  { grid-column: span 4; }
.dash-cockpit-third[b-tddvn8yghs] { grid-column: span 2; }

/* Viewport-proportional chart heights: charts fill these wrappers (Apex
   height 100%), and the wrappers scale with the window — clamped to sane
   bounds — so the Overview fits on screen without scrolling. */
.dash-fit[b-tddvn8yghs] { width: 100%; }
.dash-fit-row1[b-tddvn8yghs] { height: clamp(140px, 20vh, 230px); }
.dash-fit-heat[b-tddvn8yghs] { height: clamp(190px, 30vh, 320px); }

/* The sankey gets whatever is left under the navbar/heading/tab chrome */
.dash-sankey-fit[b-tddvn8yghs] {
    height: clamp(360px, calc(100vh - 330px), 640px);
    width: 100%;
}

@media (max-width: 1200px) {
    .dash-cockpit-wide[b-tddvn8yghs],
    .dash-cockpit-third[b-tddvn8yghs] { grid-column: span 6; }
}

@media (max-width: 760px) {
    .dash-cockpit-half[b-tddvn8yghs] { grid-column: span 6; }
}

.dash-cockpit-card[b-tddvn8yghs] {
    position: relative;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 10px 12px 4px;
    overflow: hidden;
    transition: box-shadow 0.15s, transform 0.12s;
}

/* Blue gradient accent along each card's top edge */
.dash-cockpit-card[b-tddvn8yghs]::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(90deg, #2563eb, #0ea5e9);
}

.dash-cockpit-card:hover[b-tddvn8yghs] {
    box-shadow: 0 4px 16px rgba(30, 41, 59, 0.10);
    transform: translateY(-1px);
}

/* Staggered entrance: cards fade and lift in as the dashboard opens */
@keyframes dashFadeUp-b-tddvn8yghs {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}

.dash-cockpit-kpis > *[b-tddvn8yghs],
.dash-cockpit-grid > *[b-tddvn8yghs] {
    animation: dashFadeUp-b-tddvn8yghs 0.4s ease both;
}

.dash-cockpit-kpis > *:nth-child(2)[b-tddvn8yghs] { animation-delay: 0.04s; }
.dash-cockpit-kpis > *:nth-child(3)[b-tddvn8yghs] { animation-delay: 0.08s; }
.dash-cockpit-kpis > *:nth-child(4)[b-tddvn8yghs] { animation-delay: 0.12s; }
.dash-cockpit-kpis > *:nth-child(5)[b-tddvn8yghs] { animation-delay: 0.16s; }
.dash-cockpit-kpis > *:nth-child(6)[b-tddvn8yghs] { animation-delay: 0.20s; }
.dash-cockpit-kpis > *:nth-child(7)[b-tddvn8yghs] { animation-delay: 0.24s; }
.dash-cockpit-grid > *:nth-child(1)[b-tddvn8yghs] { animation-delay: 0.15s; }
.dash-cockpit-grid > *:nth-child(2)[b-tddvn8yghs] { animation-delay: 0.20s; }
.dash-cockpit-grid > *:nth-child(3)[b-tddvn8yghs] { animation-delay: 0.25s; }
.dash-cockpit-grid > *:nth-child(4)[b-tddvn8yghs] { animation-delay: 0.30s; }
.dash-cockpit-grid > *:nth-child(5)[b-tddvn8yghs] { animation-delay: 0.35s; }

/* ── Trends tab chart cards + View-report links (2026-08-30) ── */
.dash-trend-card[b-tddvn8yghs] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 16px;
}

.dash-trend-head[b-tddvn8yghs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.dash-report-link[b-tddvn8yghs] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.76rem;
    font-weight: 600;
    color: #2563eb;
    text-decoration: none;
    padding: 3px 9px;
    border: 1px solid #bfdbfe;
    border-radius: 999px;
    background: #eff6ff;
    white-space: nowrap;
}

.dash-report-link:hover[b-tddvn8yghs] {
    background: #dbeafe;
    text-decoration: none;
}

.dash-report-link .material-icons[b-tddvn8yghs] {
    font-size: 14px;
}

/* ── Reports tab card grid ── */
.dash-report-grid[b-tddvn8yghs] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 14px;
    padding-top: 14px;
}

.dash-report-card[b-tddvn8yghs] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.dash-report-card:hover[b-tddvn8yghs] {
    border-color: #2563eb;
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.10);
    text-decoration: none;
    color: inherit;
}

.dash-report-card .material-icons[b-tddvn8yghs] {
    font-size: 26px;
    color: #2563eb;
}

.dash-report-card-title[b-tddvn8yghs] {
    font-weight: 700;
    font-size: 0.92rem;
    color: #1e293b;
}

.dash-report-card-sub[b-tddvn8yghs] {
    font-size: 0.78rem;
    color: #64748b;
}

/* ── Review tab (2026-09-05) ─────────────────────────────────────────────── */
.dash-tab-dot[b-tddvn8yghs] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #dc2626;
    margin-left: 6px;
    vertical-align: middle;
    box-shadow: 0 0 0 2px #fff;
}

.dash-review[b-tddvn8yghs] { padding: 4px 2px; }

.dash-review-empty[b-tddvn8yghs] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 16px;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    max-width: 640px;
}

.dash-review-empty .rzi[b-tddvn8yghs] { font-size: 1.8rem; color: #94a3b8; }

.dash-review-head[b-tddvn8yghs] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.dash-review-nav[b-tddvn8yghs] { display: flex; align-items: center; gap: 10px; }
.dash-review-nav select[b-tddvn8yghs] { width: auto; }

.dash-review-summary[b-tddvn8yghs] {
    font-size: 0.98rem;
    line-height: 1.55;
    color: #374151;
    margin: 10px 0 12px;
    max-width: 80ch;
    white-space: pre-line;       /* the model sometimes writes paragraphs */
}

.dash-review-grid[b-tddvn8yghs] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 900px) { .dash-review-grid[b-tddvn8yghs] { grid-template-columns: 1fr; } }

.dash-review-section[b-tddvn8yghs] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 10px 14px;
    margin-top: 12px;
    background: #fafbfd;
}

.dash-review-grid .dash-review-section[b-tddvn8yghs] { margin-top: 0; }

.dash-review-section h6[b-tddvn8yghs],
.dash-review-actions-title[b-tddvn8yghs] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 6px;
}

.dash-review-actions-title[b-tddvn8yghs] { margin-top: 14px; }
.dash-review-section h6 .rzi[b-tddvn8yghs], .dash-review-actions-title .rzi[b-tddvn8yghs] { font-size: 1.05rem; }
.dash-review-section ul[b-tddvn8yghs] { margin: 0; padding-left: 18px; }
.dash-review-section li[b-tddvn8yghs] { margin: 3px 0; }

.dash-review-better[b-tddvn8yghs] { border-color: #bbf7d0; background: #f0fdf4; }
.dash-review-better h6[b-tddvn8yghs] { color: #15803d; }
.dash-review-worse[b-tddvn8yghs]  { border-color: #fecaca; background: #fef2f2; }
.dash-review-worse h6[b-tddvn8yghs] { color: #b91c1c; }
.dash-review-audit[b-tddvn8yghs]  { border-color: #fde68a; background: #fffbeb; }
.dash-review-audit h6[b-tddvn8yghs] { color: #b45309; }

.dash-review-actions th[b-tddvn8yghs] {
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    text-align: left;
    padding: 4px 8px;
}

.dash-review-actions td[b-tddvn8yghs] { padding: 6px 8px; vertical-align: top; }

.dash-review-foot[b-tddvn8yghs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px solid #eef2f7;
}

.dash-review-optin[b-tddvn8yghs] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9rem;
    color: #1e293b;
    cursor: pointer;
}

.dash-review-optin input[b-tddvn8yghs] { width: 16px; height: 16px; accent-color: #1d4ed8; cursor: pointer; }

/* ── Needs attention tab (2026-09-05) ─────────────────────────────────────── */
.dash-attention[b-tddvn8yghs] { padding: 4px 2px; }
.dash-att-list[b-tddvn8yghs] { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; max-width: 760px; }
.dash-att-item[b-tddvn8yghs] {
    display: flex; align-items: center; gap: 14px;
    border: 1px solid #e5e7eb; border-left-width: 5px; border-radius: 8px; background: #fff;
    padding: 10px 14px; color: #1e293b; text-decoration: none;
}
.dash-att-item:hover[b-tddvn8yghs] { background: #f8fafc; color: #1e293b; }
.dash-att-red[b-tddvn8yghs]   { border-left-color: #dc2626; }
.dash-att-amber[b-tddvn8yghs] { border-left-color: #f59e0b; }
.dash-att-blue[b-tddvn8yghs]  { border-left-color: #2563eb; }
.dash-att-grey[b-tddvn8yghs]  { border-left-color: #94a3b8; }
.dash-att-count[b-tddvn8yghs] { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.4rem; font-weight: 700; min-width: 44px; text-align: center; }
.dash-att-text[b-tddvn8yghs] { display: flex; flex-direction: column; flex: 1; }
.dash-att-label[b-tddvn8yghs] { font-weight: 600; }
.dash-att-hint[b-tddvn8yghs] { font-size: 0.82rem; color: #64748b; }
.dash-att-arrow[b-tddvn8yghs] { color: #94a3b8; }
.dash-att-ok[b-tddvn8yghs] { display: flex; align-items: center; gap: 6px; color: #15803d; margin-top: 10px; }

/* Needs-attention count on the tab (2026-09-05): number always, pulse only when it changed */
.dash-tab-count[b-tddvn8yghs] {
    /* Sits in the tab's top-right corner (the tab anchor is position:relative)
       so a wide number never pushes past the 158px tab edge (user 2026-09-05). */
    position: absolute; top: -7px; right: 6px;
    display: inline-block; min-width: 20px; padding: 0 6px; margin: 0;
    border-radius: 999px; background: #e2e8f0; color: #475569; border: 2px solid #fff;
    font-size: 0.68rem; font-weight: 700; line-height: 16px; text-align: center;
}
.dash-tab-count.changed[b-tddvn8yghs] { background: #dc2626; color: #fff; box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.6); animation: dash-count-pulse-b-tddvn8yghs 1.6s ease-out 3; }
@keyframes dash-count-pulse-b-tddvn8yghs { 0% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.6); } 100% { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); } }

/* AI Brief opt-in moved to the heading row (2026-09-05). */
.dash-review-optin-top[b-tddvn8yghs] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px; border-radius: 999px;
    background: #eff6ff; border: 1px solid #bfdbfe; color: #1e3a8a;
    font-size: 0.82rem; font-weight: 600; white-space: nowrap; cursor: pointer;
}
.dash-review-optin-top input[b-tddvn8yghs] { margin: 0; }
.dash-review-tagline[b-tddvn8yghs] { color: #1e3a8a; font-weight: 600; margin: 2px 0; }
/* /Components/Pages/MyOrders.razor.rz.scp.css */
/* Supplier order book (/my-orders) */

.mo-page[b-4ipob7pov1] {
    /* full viewport width for the schedule pivot (2026-08-30) */
}

/* Clickable part header rows */
.mo-header-row[b-4ipob7pov1] {
    cursor: pointer;
}

.mo-header-row:hover td[b-4ipob7pov1] {
    background: #f1f5f9;
}

.mo-chevron[b-4ipob7pov1] {
    font-size: 1.1rem;
    color: #64748b;
    vertical-align: middle;
}

/* Detail sub-rows: indented, lighter */
.mo-detail-head td[b-4ipob7pov1],
.mo-detail-row td[b-4ipob7pov1] {
    background: #f8fafc;
    border-bottom: 1px solid #eef2f6;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

.mo-detail-head td[b-4ipob7pov1] {
    padding-bottom: 0;
}

/* Badges: frequency + overdue (matches the app's badge convention) */
.mo-badge[b-4ipob7pov1] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.mo-badge-d[b-4ipob7pov1] {
    background: #dbeafe;   /* Daily = blue */
    color: #1d4ed8;
}

.mo-badge-w[b-4ipob7pov1] {
    background: #ccfbf1;   /* Weekly = teal */
    color: #0f766e;
}

.mo-badge-m[b-4ipob7pov1] {
    background: #e2e8f0;   /* Monthly = grey */
    color: #475569;
}

.mo-badge-overdue[b-4ipob7pov1] {
    background: #fee2e2;   /* red */
    color: #b91c1c;
}

/* Commitment badges: Firm / Planned / Forecast (2026-08-30) */
.mo-commit-f[b-4ipob7pov1] {
    background: #dcfce7;   /* Firm = green (committed) */
    color: #166534;
}

.mo-commit-p[b-4ipob7pov1] {
    background: #dbeafe;   /* Planned = blue */
    color: #1d4ed8;
}

.mo-commit-c[b-4ipob7pov1] {
    background: #f1f5f9;   /* Forecast = grey */
    color: #64748b;
}
/* /Components/Pages/MyOrdersReport.razor.rz.scp.css */
.mor-page[b-0ao4yp0vvk] {
    padding: 1.25rem;
    max-width: 1100px;
}

.mor-table[b-0ao4yp0vvk] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.mor-table thead th[b-0ao4yp0vvk] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    text-align: left;
    white-space: nowrap;
}

.mor-table tbody td[b-0ao4yp0vvk] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

/* One bold band per part, its detail lines beneath */
.mor-group-row td[b-0ao4yp0vvk] {
    background: #f1f5f9;
    border-top: 2px solid #e2e8f0;
    padding-top: 8px;
    padding-bottom: 8px;
}

.mor-group-meta[b-0ao4yp0vvk] {
    float: right;
    color: #64748b;
    font-size: 0.78rem;
}

.mor-group-meta span + span[b-0ao4yp0vvk] {
    margin-left: 1.25rem;
}

.mor-overdue[b-0ao4yp0vvk] {
    color: #b91c1c;
    font-weight: 600;
}

/* Rows beyond the current pager page: hidden on screen, printed in full. */
.mor-offpage[b-0ao4yp0vvk] {
    display: none;
}

@media print {
    .no-print[b-0ao4yp0vvk] { display: none !important; }
    .mor-offpage[b-0ao4yp0vvk] { display: table-row; }
    .mor-page[b-0ao4yp0vvk] { padding: 0 !important; max-width: none; }

    /* Auto-width tables can grow wider than the printed page and spill onto
       extra pages to the right instead of shrinking -- browsers don't scale
       table content for print (feedback 2026-09-03: "the indicators don't
       resize, prints over many pages"). table-layout: fixed forces every
       table below to stay within the page width regardless of content. */

    .mor-table[b-0ao4yp0vvk] {
        table-layout: fixed !important;
        width: 100% !important;
    }

    .mor-table th[b-0ao4yp0vvk],
    .mor-table td[b-0ao4yp0vvk] {
        white-space: normal !important;
        word-break: break-word !important;
        overflow-wrap: break-word !important;
    }
    .mor-group-row td[b-0ao4yp0vvk] {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .mor-table tbody tr[b-0ao4yp0vvk] { break-inside: avoid; }
}
/* /Components/Pages/PSWGrid.razor.rz.scp.css */
/* ── PSW document status matrix table ─────────────────────────────────────── */

.psw-grid-table[b-ho9ezxkuxy] {
    border-collapse: collapse;
    font-size: 0.8rem;
    width: 100%;
}

.psw-grid-table thead th[b-ho9ezxkuxy] {
    background: #f1f3f5;
    border: 1px solid #e5e7eb;
    padding: 6px 8px;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #374151;
    vertical-align: bottom;
}

.psw-grid-table tbody td[b-ho9ezxkuxy] {
    border: 1px solid #f3f4f6;
    padding: 4px 6px;
    vertical-align: middle;
}

.psw-grid-table tbody tr:hover td[b-ho9ezxkuxy] {
    background: #f9fafb;
}

/* Full-width variant: lifts app.css's shared 1100px .psw-page cap */
.psw-page-wide[b-ho9ezxkuxy] {
    max-width: none;
}

/* Requirement row-label column — sticky so it stays put when a project has
   enough part columns to scroll sideways */
.psw-req-rowhead[b-ho9ezxkuxy] {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #fff;
    text-align: left;
    min-width: 220px;
    max-width: 340px;
    line-height: 1.25;
}

/* The header corner cell keeps the header background */
.psw-corner-col[b-ho9ezxkuxy] {
    background: #f1f3f5;
}

/* Part-number column headers — short codes with an optional description */
.psw-pn-colhead[b-ho9ezxkuxy] {
    min-width: 96px;
    white-space: nowrap;
}

.psw-pn-colhead-desc[b-ho9ezxkuxy] {
    text-align: center;
    margin: 0 auto;
    font-weight: 400;
    text-transform: none;
    letter-spacing: normal;
    font-size: 0.68rem;
    color: #6b7280;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.psw-status-cell[b-ho9ezxkuxy] {
    padding: 2px 4px;
}

/* Status indicator buttons — clickable cells */
.psw-status-btn[b-ho9ezxkuxy] {
    background: none;
    border: none;
    padding: 2px;
    cursor: pointer;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    transition: background 0.12s;
}

.psw-status-btn:hover[b-ho9ezxkuxy] {
    background: #f3f4f6;
}

.psw-icon-done[b-ho9ezxkuxy] {
    color: #198754;
    font-size: 22px;
}

.psw-icon-req[b-ho9ezxkuxy] {
    color: #dc2626;
    font-size: 22px;
}

.psw-icon-opt[b-ho9ezxkuxy] {
    color: #adb5bd;
    font-size: 20px;
}

/* ── Legend ───────────────────────────────────────────────────────────────── */

.psw-legend[b-ho9ezxkuxy] {
    font-size: 0.82rem;
    color: #374151;
}

.psw-cell-done .rzi[b-ho9ezxkuxy] { color: #198754; vertical-align: middle; font-size: 18px; }
.psw-cell-req  .rzi[b-ho9ezxkuxy] { color: #dc2626; vertical-align: middle; font-size: 18px; }
.psw-cell-opt  .rzi[b-ho9ezxkuxy] { color: #adb5bd; vertical-align: middle; font-size: 18px; }


/* ── Answer dialog (2026-09-05): typed answers, N/A, part tick list ────── */
.psw-answer[b-ho9ezxkuxy], .psw-na[b-ho9ezxkuxy] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 10px 12px;
    background: #fafbfd;
}

.psw-na[b-ho9ezxkuxy] { border-color: #fde68a; background: #fffbeb; }

.psw-answer-tick[b-ho9ezxkuxy] {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    margin: 0;
}

.psw-answer-tick.disabled[b-ho9ezxkuxy] { opacity: .5; cursor: default; }
.psw-answer-tick input[b-ho9ezxkuxy] { width: 18px; height: 18px; accent-color: #1d4ed8; }

.psw-parts[b-ho9ezxkuxy] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-height: 160px;
    overflow-y: auto;
    padding: 2px;
}

.psw-part[b-ho9ezxkuxy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #e5e7eb;
    border-radius: 999px;
    padding: 3px 10px 3px 6px;
    font-size: 0.85rem;
    background: #fff;
    cursor: pointer;
    margin: 0;
}

.psw-part input[b-ho9ezxkuxy] { accent-color: #1d4ed8; margin: 0; }
.psw-part.current[b-ho9ezxkuxy] { border-color: #1d4ed8; background: #eff6ff; font-weight: 600; }

/* ── Review states (package B, 2026-09-05) ───────────────────────────────── */
.psw-icon-accepted[b-ho9ezxkuxy] { color: #15803d; }
.psw-icon-rejected[b-ho9ezxkuxy] { color: #dc2626; }
.psw-cell-accepted[b-ho9ezxkuxy] { color: #15803d; display: inline-flex; align-items: center; gap: 4px; }
.psw-cell-rejected[b-ho9ezxkuxy] { color: #dc2626; display: inline-flex; align-items: center; gap: 4px; }

.psw-review[b-ho9ezxkuxy] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 8px 12px;
    background: #f8fafc;
}

.psw-review-accepted[b-ho9ezxkuxy] { border-color: #bbf7d0; background: #f0fdf4; }
.psw-review-rejected[b-ho9ezxkuxy] { border-color: #fecaca; background: #fef2f2; }

.psw-review-comment[b-ho9ezxkuxy] {
    margin-top: 6px;
    padding-left: 10px;
    border-left: 3px solid #dc2626;
    white-space: pre-wrap;
    font-size: 0.9rem;
}

.psw-rev-pill[b-ho9ezxkuxy] {
    display: inline-block;
    min-width: 110px;
    text-align: center;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.psw-rev-submitted[b-ho9ezxkuxy] { background: #dbeafe; color: #1d4ed8; }
.psw-rev-accepted[b-ho9ezxkuxy]  { background: #dcfce7; color: #166534; }
.psw-rev-rejected[b-ho9ezxkuxy]  { background: #fee2e2; color: #b91c1c; }
/* /Components/Pages/PSWPartnumbersBulk.razor.rz.scp.css */
/* Spreadsheet test page (2026-09-04). The component brings its own styling;
   this only gives it a framed, full-width area to live in. */
.pswb-page[b-8ogyb5bhoq] {
    max-width: 100%;
}

.pswb-sheet-wrap[b-8ogyb5bhoq] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    overflow: hidden;
}

/* Supplier resolution panel: what each name typed into the Supplier column
   was matched to, and a picker for anything the matcher would not guess. */
.pswb-resolve[b-8ogyb5bhoq] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #f8fafc;
    padding: 12px 14px;
}

.pswb-resolve-table[b-8ogyb5bhoq] {
    background: transparent;
}

.pswb-resolve-table td[b-8ogyb5bhoq] {
    vertical-align: middle;
}

.pswb-matched[b-8ogyb5bhoq] {
    font-weight: 600;
    color: #166534;
}

/* An unmatched row is the one thing on this panel that blocks a save, so it
   is the only thing coloured. */
.pswb-unmatched td[b-8ogyb5bhoq] {
    background: #fef2f2;
}
/* /Components/Pages/StandardCosts.razor.rz.scp.css */
.stdcost-table[b-0cwf3t7kft] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.stdcost-table th[b-0cwf3t7kft],
.stdcost-table td[b-0cwf3t7kft] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid #e5e7eb;
    vertical-align: middle;
}

.stdcost-table thead th[b-0cwf3t7kft] {
    background: #f9fafb;
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    white-space: nowrap;
}

.stdcost-table tbody tr:hover[b-0cwf3t7kft] {
    background: #f9fafb;
}

/* Reuse the standard overlay/panel pattern from SupplierCategories */
.sc-form-overlay[b-0cwf3t7kft] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-form-panel[b-0cwf3t7kft] {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
    padding: 1.75rem;
    width: 100%;
    max-width: 480px;
}

.sc-form-title[b-0cwf3t7kft] {
    font-weight: 700;
    font-size: 1.05rem;
    margin-bottom: 1.25rem;
}


/* ── Multi-site standard costs (2026-09-04) ──────────────────────────── */
.stdcost-also-at[b-0cwf3t7kft] {
    font-size: 0.75rem;
    color: #6b7280;
    margin-top: 2px;
}

.stdcost-rate-plant[b-0cwf3t7kft] {
    min-width: 130px;
    font-size: 0.85rem;
    color: #374151;
}

.stdcost-rate-symbol[b-0cwf3t7kft] {
    width: 18px;
    text-align: center;
    color: #6b7280;
}

.stdcost-copy-summary[b-0cwf3t7kft] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 10px 12px;
}
/* /Components/Pages/SupplierBSC.razor.rz.scp.css */
/* ── Page wrapper ─────────────────────────────────────────── */
.bsc-page[b-mcmujuwl1q] {
    padding: 1.25rem;
    max-width: 1400px;
}

/* ── Supplier header ─────────────────────────────────────── */
.bsc-header[b-mcmujuwl1q] {
    padding: 12px 16px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
}

.bsc-supplier-name[b-mcmujuwl1q] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #212529;
    line-height: 1.3;
}

/* ── Section titles ──────────────────────────────────────── */
.bsc-section[b-mcmujuwl1q] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 16px;
}

.bsc-section-title[b-mcmujuwl1q] {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    border-bottom: 2px solid #e5e7eb;
    padding-bottom: 8px;
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Score cards (current month) ─────────────────────────── */
/* .bsc-score-card styles moved to app.css: the cards are rendered via
   RenderTreeBuilder, which does not receive the CSS-isolation attribute, so
   scoped rules never matched them. */

/* ── Pivot / history table ───────────────────────────────── */
.bsc-pivot-table[b-mcmujuwl1q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.bsc-pivot-table thead th[b-mcmujuwl1q] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    color: #374151;
    text-align: center;
    white-space: nowrap;
}

.bsc-pivot-table thead th.metric-col[b-mcmujuwl1q] {
    text-align: left;
    min-width: 180px;
}

.bsc-pivot-table tbody td[b-mcmujuwl1q] {
    border: 1px solid #f3f4f6;
    padding: 5px 10px;
    vertical-align: middle;
}

.bsc-pivot-table tbody td.metric-label[b-mcmujuwl1q] {
    font-weight: 600;
    color: #111827;
    background: #fafafa;
}

/* Score colour classes apply to table cells and cards */
.score-green[b-mcmujuwl1q] { background: #d1e7dd !important; }
.score-amber[b-mcmujuwl1q] { background: #fff3cd !important; }
.score-red[b-mcmujuwl1q]   { background: #f8d7da !important; }

/* ── Concern detail tables ───────────────────────────────── */
.bsc-concern-table[b-mcmujuwl1q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.84rem;
}

.bsc-concern-table thead th[b-mcmujuwl1q] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 10px;
    font-weight: 600;
    color: #374151;
    text-align: left;
    white-space: nowrap;
}

.bsc-concern-table tbody td[b-mcmujuwl1q] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.bsc-concern-table tbody tr:last-child td[b-mcmujuwl1q] {
    border-bottom: none;
}

.bsc-concern-table a[b-mcmujuwl1q] {
    color: #2563eb;
    text-decoration: none;
    font-weight: 600;
}

.bsc-concern-table a:hover[b-mcmujuwl1q] {
    text-decoration: underline;
}


/* ── Print / Save as PDF (feedback 2026-09-03) ──────────────────────────
   The navbar and buttons are hidden by the global rules in app.css; these
   keep the score colours, stop sections splitting across pages and let the
   tables use the full page width. */

/* Print rules for this page live in wwwroot/app.css, NOT here. The score
   cards are produced by a RenderFragment (see ScoreCard in the .razor), and
   builder-rendered markup carries no scope attribute, so scoped print rules
   never matched them -- which is why earlier attempts to fix the printed
   layout appeared to do nothing at all. */
/* /Components/Pages/SupplierCategories.razor.rz.scp.css */
.sc-page[b-8o16yqi52y] {
    padding: 1.25rem;
    max-width: 700px;
}

.sc-table[b-8o16yqi52y] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.sc-table thead th[b-8o16yqi52y] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    text-align: left;
}

.sc-table tbody td[b-8o16yqi52y] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.sc-table tbody tr:last-child td[b-8o16yqi52y] {
    border-bottom: none;
}

/* ── Inline form panel ─────────────────────────────────────── */
.sc-form-overlay[b-8o16yqi52y] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.35);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-form-panel[b-8o16yqi52y] {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    width: 420px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}

.sc-form-title[b-8o16yqi52y] {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 10px;
    margin-bottom: 16px;
}

/* /Components/Pages/SupplierCertifications.razor.rz.scp.css */
.scert-page[b-7cm634o2va] {
    padding: 1.25rem;
    max-width: 900px;
}

.scert-table[b-7cm634o2va] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.scert-table thead th[b-7cm634o2va] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    text-align: left;
}

.scert-table tbody td[b-7cm634o2va] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.scert-table tbody tr:last-child td[b-7cm634o2va] {
    border-bottom: none;
}

/* Expiry colour coding */
.scert-expired[b-7cm634o2va] {
    color: #b91c1c;
    font-weight: 600;
}

.scert-expiring[b-7cm634o2va] {
    color: #b45309;
    font-weight: 600;
}

/* Small icon buttons (same look as the customer-side sub-grids) */
.scert-icon-btn[b-7cm634o2va] {
    display: inline-flex;
    align-items: center;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 6px;
    padding: 3px 8px;
    cursor: pointer;
    color: #374151;
    text-decoration: none;
    transition: background 0.12s;
}

.scert-icon-btn:hover[b-7cm634o2va] {
    background: #f3f4f6;
    color: #111827;
}

.scert-icon-btn.danger:hover[b-7cm634o2va] {
    background: #fee2e2;
    color: #b91c1c;
}

.scert-icon-btn .rzi[b-7cm634o2va] {
    font-family: 'Material Icons';
    font-size: 16px;
    line-height: 1;
}

/* ── Document overlay ──────────────────────────────────────── */
.scert-overlay[b-7cm634o2va] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.35);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.scert-panel[b-7cm634o2va] {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    width: 540px;
    max-width: 92vw;
    max-height: 85vh;
    overflow-y: auto;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}

.scert-panel-title[b-7cm634o2va] {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 10px;
    margin-bottom: 16px;
}
/* /Components/Pages/SupplierConcernList.razor.rz.scp.css */
.sc-detail[b-cd0e27ptwz] {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 14px 16px;
    background: #fff;
}

.sc-detail-title[b-cd0e27ptwz] {
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 8px;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 8px;
}

.sc-table[b-cd0e27ptwz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.sc-table thead th[b-cd0e27ptwz] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 5px 8px;
    font-weight: 600;
    color: #374151;
}

.sc-table tbody td[b-cd0e27ptwz] {
    padding: 4px 8px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.sc-table tbody tr:last-child td[b-cd0e27ptwz] {
    border-bottom: none;
}

/* /Components/Pages/SupplierEightD.razor.rz.scp.css */
/* Supplier "My 8D Actions" — same styling as the customer 8D Status page
   (this page previously had NO stylesheet at all, so it rendered unformatted;
   the customer page's styles are scoped to that page only — fixed 2026-08-30). */

.s8d-page[b-afaf6hhwme] {
    padding: 1.25rem;
}

.s8d-table[b-afaf6hhwme] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.83rem;
}

.s8d-table thead th[b-afaf6hhwme] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
    text-align: left;
}

.s8d-table tbody td[b-afaf6hhwme] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.s8d-table tbody tr:last-child td[b-afaf6hhwme] {
    border-bottom: none;
}

.nowrap[b-afaf6hhwme] { white-space: nowrap; }

/* Date cell colour-coding */
.date-red[b-afaf6hhwme]   { background: #f8d7da !important; color: #842029; font-weight: 600; }
.date-amber[b-afaf6hhwme] { background: #fff3cd !important; color: #664d03; }
.date-green[b-afaf6hhwme] { background: #d1e7dd !important; color: #0a3622; }
.date-na[b-afaf6hhwme]    { background: #e5e7eb !important; color: #6b7280; }

/* Status badges */
.s8d-status[b-afaf6hhwme] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.s8d-status-open[b-afaf6hhwme]      { background: #dbeafe; color: #1e40af; }
.s8d-status-late[b-afaf6hhwme]      { background: #fee2e2; color: #991b1b; }
.s8d-status-closed[b-afaf6hhwme]    { background: #dcfce7; color: #166534; }
.s8d-status-cancelled[b-afaf6hhwme] { background: #e5e7eb; color: #4b5563; }

/* ── Edit overlay ──────────────────────────────────────────── */
.s8d-overlay[b-afaf6hhwme] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.35);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.s8d-panel[b-afaf6hhwme] {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    width: 500px;
    max-width: 94vw;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}

.s8d-panel-title[b-afaf6hhwme] {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 10px;
    margin-bottom: 12px;
}

/* Whole row is clickable -> opens the 8D form (2026-08-30) */
.s8d-row[b-afaf6hhwme] { cursor: pointer; }
.s8d-row:hover td[b-afaf6hhwme] { background: #f1f5f9; }
/* /Components/Pages/SupplierEightDStatus.razor.rz.scp.css */
.s8d-page[b-9btvpe1dxm] {
    padding: 1.25rem;
}

.s8d-table[b-9btvpe1dxm] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.83rem;
}

.s8d-table thead th[b-9btvpe1dxm] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
    text-align: left;
}

.s8d-table tbody td[b-9btvpe1dxm] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.s8d-table tbody tr:last-child td[b-9btvpe1dxm] {
    border-bottom: none;
}

.nowrap[b-9btvpe1dxm] { white-space: nowrap; }

/* Date cell colour-coding */
.date-red[b-9btvpe1dxm]   { background: #f8d7da !important; color: #842029; font-weight: 600; }
.date-amber[b-9btvpe1dxm] { background: #fff3cd !important; color: #664d03; }
.date-green[b-9btvpe1dxm] { background: #d1e7dd !important; color: #0a3622; }
.date-na[b-9btvpe1dxm]    { background: #e5e7eb !important; color: #6b7280; }

/* ── Edit overlay ──────────────────────────────────────────── */
.s8d-overlay[b-9btvpe1dxm] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.35);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.s8d-panel[b-9btvpe1dxm] {
    background: #fff;
    border-radius: 8px;
    padding: 24px;
    width: 500px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}

.s8d-panel-title[b-9btvpe1dxm] {
    font-size: 1rem;
    font-weight: 700;
    color: #111827;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 10px;
    margin-bottom: 12px;
}


/* Whole row is clickable -> opens the 8D form (2026-08-30) */
.s8d-row[b-9btvpe1dxm] {
    cursor: pointer;
}

.s8d-row:hover td[b-9btvpe1dxm] {
    background: #f1f5f9;
}
/* /Components/Pages/SupplierHome.razor.rz.scp.css */
/* Supplier dashboard — same visual language as the customer dashboard */

.shome-page[b-x3qxtww4p0] {
    max-width: 1100px;
}

/* KPI tiles */
.shome-tiles[b-x3qxtww4p0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
}

.shome-tile[b-x3qxtww4p0] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 16px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.shome-tile:hover[b-x3qxtww4p0] {
    border-color: #2563eb;
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.10);
}

.shome-tile-count[b-x3qxtww4p0] {
    font-size: 1.9rem;
    font-weight: 700;
    line-height: 1.2;
}

.shome-tile-label[b-x3qxtww4p0] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    margin-top: 3px;
}

.shome-green[b-x3qxtww4p0] { color: #16a34a; }
.shome-blue[b-x3qxtww4p0]  { color: #2563eb; }
.shome-amber[b-x3qxtww4p0] { color: #d97706; }
.shome-red[b-x3qxtww4p0]   { color: #dc2626; }

/* Charts */
.shome-charts[b-x3qxtww4p0] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

@media (max-width: 900px) {
    .shome-charts[b-x3qxtww4p0] { grid-template-columns: 1fr; }
}

.shome-chart-card[b-x3qxtww4p0] {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 14px 16px;
}

.shome-chart-title[b-x3qxtww4p0] {
    font-size: 0.88rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 8px;
}

/* Quick-link cards (mirrors the customer dashboard's Reports grid) */
.dash-report-grid-s[b-x3qxtww4p0] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 14px;
}

.shome-link-card[b-x3qxtww4p0] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.12s, box-shadow 0.12s;
}

.shome-link-card:hover[b-x3qxtww4p0] {
    border-color: #2563eb;
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.10);
    text-decoration: none;
    color: inherit;
}

.shome-link-card .material-icons[b-x3qxtww4p0] {
    font-size: 26px;
    color: #2563eb;
}

.shome-link-title[b-x3qxtww4p0] {
    font-weight: 700;
    font-size: 0.92rem;
    color: #1e293b;
}

.shome-link-sub[b-x3qxtww4p0] {
    font-size: 0.78rem;
    color: #64748b;
}

/* ── Rating status tiles (Cert / Quality / Delivery / Overall) — 2026-08-30 ── */
.shome-ratings[b-x3qxtww4p0] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 14px;
}

.shome-rating-tile[b-x3qxtww4p0] {
    border-radius: 10px;
    padding: 12px 16px;
    text-align: center;
    cursor: pointer;
    border: 1px solid transparent;
    transition: filter 0.12s;
}

.shome-rating-tile:hover[b-x3qxtww4p0] {
    filter: brightness(0.97);
}

.shome-rating-label[b-x3qxtww4p0] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.75;
}

.shome-rating-value[b-x3qxtww4p0] {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
}

/* Same palette as the dashboard P/A/C/U tiles and ASL badges */
.shome-rating-preferred[b-x3qxtww4p0]    { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.shome-rating-acceptable[b-x3qxtww4p0]   { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.shome-rating-conditional[b-x3qxtww4p0]  { background: #fef3c7; color: #92400e; border-color: #fde68a; }
.shome-rating-unacceptable[b-x3qxtww4p0] { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.shome-rating-none[b-x3qxtww4p0]         { background: #f1f5f9; color: #64748b; border-color: #e2e8f0; }

/* ── What needs you (2026-09-05) ───────────────────────────────────────── */
.shome-todo[b-x3qxtww4p0] { border: 1px solid #e5e7eb; border-radius: 8px; background: #fff; padding: 10px 14px; }
.shome-todo-title[b-x3qxtww4p0] { display: flex; align-items: center; gap: 6px; font-size: 0.78rem; letter-spacing: 0.05em; text-transform: uppercase; color: #64748b; font-weight: 700; margin-bottom: 6px; }
.shome-todo-item[b-x3qxtww4p0] { display: flex; justify-content: space-between; gap: 12px; padding: 8px 10px; border-left: 4px solid #94a3b8; border-radius: 6px; background: #f8fafc; margin-bottom: 6px; color: #1e293b; text-decoration: none; }
.shome-todo-item:hover[b-x3qxtww4p0] { background: #eff6ff; color: #1e293b; }
.shome-todo-red[b-x3qxtww4p0] { border-left-color: #dc2626; }
.shome-todo-amber[b-x3qxtww4p0] { border-left-color: #f59e0b; }
.shome-todo-blue[b-x3qxtww4p0] { border-left-color: #2563eb; }
.shome-todo-when[b-x3qxtww4p0] { color: #64748b; font-size: 0.85rem; white-space: nowrap; }
/* /Components/Pages/SupplierList.razor.rz.scp.css */
/* ── Page ──────────────────────────────────────────────────── */
.sl-page[b-uice8thwzd] {
    padding: 1.5rem;
}

.sl-toolbar h4[b-uice8thwzd] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #111827;
}

/* ── Two-column layout ─────────────────────────────────────── */
.sl-layout[b-uice8thwzd] {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.sl-main[b-uice8thwzd] {
    flex: 1 1 0;
    min-width: 0;
}

.sl-sidebar[b-uice8thwzd] {
    flex: 0 0 200px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 0.8125rem;
}

.sl-sidebar-title[b-uice8thwzd] {
    font-weight: 700;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
    border-bottom: 1px solid #e5e7eb;
    padding-bottom: 6px;
    margin-bottom: 8px;
}

.sl-unlinked-list[b-uice8thwzd] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sl-unlinked-list li[b-uice8thwzd] {
    color: #dc2626;
    font-size: 0.8rem;
    padding: 2px 0;
    border-bottom: 1px solid #f3f4f6;
}

/* ── Sub-tabs section ──────────────────────────────────────── */
.sl-subtabs[b-uice8thwzd] {
    border-top: 2px solid #e5e7eb;
    padding-top: 1rem;
}

.sl-subtab-header[b-uice8thwzd] {
    font-size: 0.85rem;
    color: #6b7280;
}

/* ── Sub-tab data tables ───────────────────────────────────── */
.sl-sub-table[b-uice8thwzd] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.sl-sub-table thead th[b-uice8thwzd] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 10px;
    font-weight: 600;
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
    text-align: left;
}

.sl-sub-table tbody td[b-uice8thwzd] {
    padding: 6px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.sl-sub-table tbody tr:last-child td[b-uice8thwzd] {
    border-bottom: none;
}

/* ── Add-user panel (Supplier Users tab) ───────────────────── */
.su-add-panel[b-uice8thwzd] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 12px 14px;
}

.nowrap[b-uice8thwzd] {
    white-space: nowrap;
}

/* ── Overall rating badges (merged from the Approved Supplier List) ── */
.sl-rating-badge[b-uice8thwzd] {
    /* Fixed width and centred, matching the ASL pills and the dashboard's
       rating chips -- the same standing should look the same everywhere, and
       equal widths make the column read straight instead of ragged. */
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 112px;
    padding: 3px 10px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.sl-rating-preferred[b-uice8thwzd]    { background: #dcfce7; color: #166534; }
.sl-rating-acceptable[b-uice8thwzd]   { background: #dbeafe; color: #1e40af; }
.sl-rating-conditional[b-uice8thwzd]  { background: #fef3c7; color: #92400e; }
.sl-rating-unacceptable[b-uice8thwzd] { background: #fee2e2; color: #991b1b; }

/* ── Filter bar (mirrors the Concern List pattern) — 2026-08-30 ── */
.sl-filter-toggle[b-uice8thwzd] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    font-size: 0.82rem;
    font-weight: 600;
    color: #374151;
    background: #ffffff;
    border: 1px solid #d1d5db;
    border-radius: 7px;
    cursor: pointer;
}

.sl-filter-toggle .material-icons[b-uice8thwzd] {
    font-size: 16px;
}

.sl-filter-toggle:hover[b-uice8thwzd] {
    background: #f3f4f6;
    border-color: #9ca3af;
}

.sl-filter-toggle.sl-filter-toggle-open[b-uice8thwzd],
.sl-filter-toggle.sl-filter-toggle-active[b-uice8thwzd] {
    border-color: #2563eb;
    color: #2563eb;
}

.sl-filter-toggle.sl-filter-toggle-open[b-uice8thwzd] {
    background: #f0f6ff;
}

.sl-filter-badge[b-uice8thwzd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: #2563eb;
    color: #fff;
    font-size: 0.7rem;
}

.sl-filter-row[b-uice8thwzd] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    padding: 8px 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

.sl-filter-label[b-uice8thwzd] {
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
}

.sl-filter-sep[b-uice8thwzd] {
    width: 1px;
    height: 22px;
    background: #d1d5db;
    margin: 0 2px;
}

/* Site badges — which plants the supplier delivers to */
.sl-site-badge[b-uice8thwzd] {
    display: inline-block;
    padding: 1px 8px;
    margin-right: 3px;
    border-radius: 999px;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.72rem;
    font-weight: 600;
}

/* ── Supplier details drawer (Concern List pattern) — 2026-08-30 ── */
.sl-has-pinned-drawer[b-uice8thwzd] {
    padding-right: 470px;
    transition: padding-right 0.2s ease;
}

.sl-drawer[b-uice8thwzd] {
    position: fixed;
    top: 56px;
    right: 0;
    bottom: 0;
    width: 560px;
    max-width: 94vw;
    background: #fff;
    border-left: 1px solid #e5e7eb;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.13);
    z-index: 200;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: slDrawerIn-b-uice8thwzd 0.18s ease;
}

.sl-drawer.sl-drawer-pinned[b-uice8thwzd] {
    width: 460px;
    box-shadow: none;
    border-left: 2px solid #e5e7eb;
}

@keyframes slDrawerIn-b-uice8thwzd {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}

.sl-drawer-header[b-uice8thwzd] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    flex-shrink: 0;
    min-height: 52px;
}

.sl-drawer-title[b-uice8thwzd] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    overflow: hidden;
    font-size: 0.8125rem;
}

.sl-drawer-subtitle[b-uice8thwzd] {
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.78rem;
}

.sl-drawer-body[b-uice8thwzd] {
    flex: 1;
    overflow-y: auto;
    padding: 4px 10px 10px;
}

.sl-icon-btn[b-uice8thwzd] {
    background: none;
    border: 1px solid transparent;
    border-radius: 6px;
    padding: 2px 5px;
    cursor: pointer;
    line-height: 1;
    color: #4b5563;
}

.sl-icon-btn:hover[b-uice8thwzd] {
    background: #f3f4f6;
    border-color: #d1d5db;
}

.sl-icon-btn .material-icons[b-uice8thwzd] {
    font-size: 16px;
    vertical-align: middle;
}

.sl-pin-active[b-uice8thwzd] {
    color: #2563eb;
    background: #eff6ff;
    border-color: #bfdbfe;
}

/* ── Status badge, quick filters, show-hidden tick box (2026-09-03) ── */
.sl-status[b-uice8thwzd] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    white-space: nowrap;
}

.sl-status-active[b-uice8thwzd]   { background: #dcfce7; color: #166534; }
.sl-status-dormant[b-uice8thwzd]  { background: #fef3c7; color: #92400e; }
.sl-status-inactive[b-uice8thwzd] { background: #e5e7eb; color: #4b5563; }

.sl-show-hidden[b-uice8thwzd] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: #475569;
    cursor: pointer;
    user-select: none;
}

.sl-quick-row[b-uice8thwzd] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.sl-quick[b-uice8thwzd] {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #475569;
    border-radius: 999px;
    padding: 2px 11px;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.sl-quick:hover[b-uice8thwzd] { background: #f1f5f9; }

.sl-quick-on[b-uice8thwzd] {
    background: #1e293b;
    border-color: #1e293b;
    color: #fff;
}

/* Suppliers awaiting their first ratings cycle. Deliberately grey and lighter
   than the rated pills -- it is an absence of a rating, not a poor one. */
.sl-rating-unrated[b-uice8thwzd] {
    background: #f3f4f6;
    color: #6b7280;
    border-color: #e5e7eb;
    font-weight: 500;
}
/* /Components/Pages/SupplierMap.razor.rz.scp.css */
.sm-header[b-80gvt9ma9j] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}

.sm-title[b-80gvt9ma9j] {
    font-size: 1.35rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 2px;
    border-left: 3px solid #2563eb;
    padding-left: 10px;
}

.sm-sub[b-80gvt9ma9j] {
    font-size: 0.8rem;
    color: #6b7280;
    padding-left: 13px;
}


.sm-legend[b-80gvt9ma9j] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: #374151;
    flex-wrap: wrap;
}

.sm-dot[b-80gvt9ma9j] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.sm-zoom-btn[b-80gvt9ma9j] {
    padding: 4px 12px;
    font-size: 0.8rem;
    font-weight: 500;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    cursor: pointer;
    color: #374151;
    transition: background 0.12s, border-color 0.12s;
}

.sm-zoom-btn:hover[b-80gvt9ma9j] {
    background: #f0f6ff;
    border-color: #2563eb;
    color: #2563eb;
}

.sm-map[b-80gvt9ma9j] {
    width: 100%;
    height: calc(100vh - 185px);
    min-height: 400px;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
}

/* ── Geocode panel ────────────────────────────────────────── */
.sm-geocode-btn[b-80gvt9ma9j] {
    border-color: #2563eb;
    color: #2563eb;
}

.sm-geocode-btn:hover[b-80gvt9ma9j] {
    background: #2563eb;
    color: #fff;
}

.sm-geocode-panel[b-80gvt9ma9j] {
    margin-top: 10px;
    border: 1px solid #dbeafe;
    border-radius: 10px;
    background: #f8faff;
    overflow: hidden;
}

.sm-geocode-header[b-80gvt9ma9j] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 10px 14px;
    background: #eff6ff;
    border-bottom: 1px solid #dbeafe;
    font-weight: 600;
    font-size: 0.85rem;
    color: #1e3a5f;
}

.sm-close-btn[b-80gvt9ma9j] {
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 2px;
    line-height: 1;
    border-radius: 4px;
}

.sm-close-btn:hover[b-80gvt9ma9j] { color: #111827; background: #e5e7eb; }
.sm-close-btn .material-icons[b-80gvt9ma9j] { font-size: 18px; vertical-align: middle; }

.sm-geocode-body[b-80gvt9ma9j] {
    padding: 14px;
}

.sm-progress-row[b-80gvt9ma9j] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.sm-progress-bar-wrap[b-80gvt9ma9j] {
    flex: 1;
    height: 8px;
    background: #e5e7eb;
    border-radius: 4px;
    overflow: hidden;
}

.sm-progress-bar[b-80gvt9ma9j] {
    height: 100%;
    background: #2563eb;
    border-radius: 4px;
    transition: width 0.3s ease;
}

.sm-progress-label[b-80gvt9ma9j] {
    font-size: 0.8rem;
    color: #374151;
    white-space: nowrap;
    min-width: 60px;
    text-align: right;
}

.sm-geocode-log[b-80gvt9ma9j] {
    max-height: 200px;
    overflow-y: auto;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #fff;
}

.sm-log-row[b-80gvt9ma9j] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    font-size: 0.8rem;
    border-bottom: 1px solid #f3f4f6;
}

.sm-log-row:last-child[b-80gvt9ma9j] { border-bottom: none; }

.sm-log-icon[b-80gvt9ma9j] { font-size: 14px !important; flex-shrink: 0; }

.sm-log-ok .sm-log-icon[b-80gvt9ma9j] { color: #22c55e; }
.sm-log-fail .sm-log-icon[b-80gvt9ma9j] { color: #ef4444; }
.sm-log-skip .sm-log-icon[b-80gvt9ma9j] { color: #9ca3af; }

.sm-log-name[b-80gvt9ma9j] {
    font-weight: 600;
    color: #1e293b;
    flex: 1;
}

.sm-log-detail[b-80gvt9ma9j] {
    color: #6b7280;
    white-space: nowrap;
}

.sm-geocode-summary[b-80gvt9ma9j] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #166534;
    margin-bottom: 10px;
}

.sm-geocode-summary .material-icons[b-80gvt9ma9j] { font-size: 20px; }

/* Inline auto-geocode progress note in the header (2026-08-30) */
.sm-geocoding-note[b-80gvt9ma9j] {
    color: #2563eb;
    font-weight: 600;
}

/* Site filter: one tick box per plant, all on by default. Kept compact so it
   sits in the header beside the legend rather than pushing the map down. */
.sm-sites[b-80gvt9ma9j] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 4px 10px;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    background: #f8fafc;
}

.sm-sites-label[b-80gvt9ma9j] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
}

.sm-site[b-80gvt9ma9j] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.78rem;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    margin: 0;
}

.sm-site input[b-80gvt9ma9j] {
    cursor: pointer;
    margin: 0;
}

.sm-site-all[b-80gvt9ma9j] {
    border: 1px solid #cbd5e1;
    background: #fff;
    border-radius: 5px;
    font-size: 0.72rem;
    font-weight: 600;
    color: #475569;
    padding: 2px 8px;
    cursor: pointer;
}

.sm-site-all:hover[b-80gvt9ma9j] {
    background: #f1f5f9;
}

/* Footnote under the map. Deliberately small and grey -- it is a housekeeping
   note for whoever maintains the ERP, not something to greet a customer with. */
.sm-footnote[b-80gvt9ma9j] {
    padding: 6px 2px 0;
    font-size: 0.76rem;
    color: #9ca3af;
    text-align: right;
}

.sm-footnote a[b-80gvt9ma9j] {
    color: #9ca3af;
    text-decoration: none;
    border-bottom: 1px dotted #d1d5db;
}

.sm-footnote a:hover[b-80gvt9ma9j] { color: #6b7280; border-bottom-color: #9ca3af; }
/* /Components/Pages/SupplierProfile.razor.rz.scp.css */
/* Supplier profile (2026-09-05). Plain markup; scoped styles apply. */

.sp-head[b-ogbankjbap] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.sp-actions[b-ogbankjbap] { display: flex; gap: 6px; flex-wrap: wrap; }
.sp-pills[b-ogbankjbap] { display: flex; gap: 8px; flex-wrap: wrap; }

.sp-grid[b-ogbankjbap] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 900px) { .sp-grid[b-ogbankjbap] { grid-template-columns: 1fr; } }

.sp-card[b-ogbankjbap] { border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px 14px; background: #fff; }
.sp-span2[b-ogbankjbap] { grid-column: span 2; }
@media (max-width: 900px) { .sp-span2[b-ogbankjbap] { grid-column: span 1; } }

.sp-card h6[b-ogbankjbap] { font-size: 0.78rem; letter-spacing: 0.05em; text-transform: uppercase; color: #64748b; margin: 0 0 8px; }
.sp-list[b-ogbankjbap] { margin: 0; padding-left: 18px; }
.sp-list li[b-ogbankjbap] { margin: 3px 0; }

.sp-history[b-ogbankjbap] { display: flex; gap: 6px; flex-wrap: wrap; }
.sp-hist-cell[b-ogbankjbap] { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 46px; }
.sp-hist-dot[b-ogbankjbap] { width: 14px; height: 14px; border-radius: 50%; display: inline-block; }
.sp-hist-preferred[b-ogbankjbap] { background: #16a34a; }
.sp-hist-acceptable[b-ogbankjbap] { background: #2563eb; }
.sp-hist-unacceptable[b-ogbankjbap] { background: #dc2626; }
.sp-hist-unrated[b-ogbankjbap] { background: #cbd5e1; }
.sp-hist-label[b-ogbankjbap] { font-size: 0.7rem; color: #64748b; }

/* Rating pills sized to their text (the ASL pills are fixed-width for a column) */
.sp-pill[b-ogbankjbap] { display: inline-flex; align-items: center; padding: 4px 14px; border-radius: 999px; border: 1px solid transparent; font-size: 0.8rem; font-weight: 600; white-space: nowrap; }
/* /Components/Pages/SupplyReview.razor.rz.scp.css */
/* Supply-base review page. Plain markup (no builder-rendered content), so
   scoped styles apply here. */

.sbr-card[b-tqa9voxa9g] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 14px 16px;
    background: #fff;
}

.sbr-head[b-tqa9voxa9g] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.sbr-month[b-tqa9voxa9g] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e293b;
}

.sbr-status[b-tqa9voxa9g] {
    display: inline-block;
    width: 72px;
    text-align: center;
    padding: 2px 0;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sbr-status-ok[b-tqa9voxa9g]     { background: #dcfce7; color: #166534; }
.sbr-status-failed[b-tqa9voxa9g] { background: #fee2e2; color: #991b1b; }
.sbr-status-dryrun[b-tqa9voxa9g] { background: #e0f2fe; color: #075985; }

.sbr-summary[b-tqa9voxa9g] {
    font-size: 0.95rem;
    line-height: 1.5;
    color: #374151;
    margin: 6px 0 14px;
}

.sbr-grid[b-tqa9voxa9g] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

@media (max-width: 900px) { .sbr-grid[b-tqa9voxa9g] { grid-template-columns: 1fr; } }

.sbr-section[b-tqa9voxa9g] {
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 10px 14px;
    margin-top: 12px;
    background: #fafbfd;
}

.sbr-grid .sbr-section[b-tqa9voxa9g] { margin-top: 0; }

.sbr-section h6[b-tqa9voxa9g] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 6px;
}

.sbr-section h6 .rzi[b-tqa9voxa9g] { font-size: 1.05rem; }
.sbr-section ul[b-tqa9voxa9g] { margin: 0; padding-left: 18px; }
.sbr-section li[b-tqa9voxa9g] { margin: 3px 0; }

.sbr-better[b-tqa9voxa9g] { border-color: #bbf7d0; background: #f0fdf4; }
.sbr-better h6[b-tqa9voxa9g] { color: #15803d; }
.sbr-worse[b-tqa9voxa9g]  { border-color: #fecaca; background: #fef2f2; }
.sbr-worse h6[b-tqa9voxa9g] { color: #b91c1c; }
.sbr-audit[b-tqa9voxa9g]  { border-color: #fde68a; background: #fffbeb; }
.sbr-audit h6[b-tqa9voxa9g] { color: #b45309; }

.sbr-actions th[b-tqa9voxa9g] { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: #6b7280; }

.sbr-digest[b-tqa9voxa9g] { margin-top: 12px; }
.sbr-digest summary[b-tqa9voxa9g] { cursor: pointer; }
.sbr-digest pre[b-tqa9voxa9g] {
    margin-top: 8px;
    padding: 10px 12px;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 0.74rem;
    white-space: pre-wrap;
    max-height: 420px;
    overflow: auto;
}
/* /Components/Pages/Sync.razor.rz.scp.css */
.sy-page[b-t51266lt27] {
    padding: 1.25rem;
    max-width: 1200px;
}

.sy-section-title[b-t51266lt27] {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

.sy-panel[b-t51266lt27] {
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 1rem 1.25rem;
}

.sy-table[b-t51266lt27] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.sy-table thead th[b-t51266lt27] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    text-align: left;
    white-space: nowrap;
}

.sy-table tbody td[b-t51266lt27] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.sy-table tbody tr:last-child td[b-t51266lt27] {
    border-bottom: none;
}

.sy-notes[b-t51266lt27] {
    max-width: 380px;
    white-space: normal;
    word-break: break-word;
}

.sy-detail-cell[b-t51266lt27] {
    background: #fafafa;
    padding: 0.75rem 1.25rem !important;
}

/* The one-time key display: monospace, wraps, easy to select. */
.sy-key[b-t51266lt27] {
    font-size: 0.95rem;
    padding: 4px 8px;
    background: #fff;
    border: 1px solid #fcd34d;
    border-radius: 4px;
    user-select: all;
    word-break: break-all;
}

.sy-pill[b-t51266lt27] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

.sy-pill-ok[b-t51266lt27]      { background: #dcfce7; color: #166534; }
.sy-pill-pending[b-t51266lt27] { background: #fef3c7; color: #92400e; }
.sy-pill-bad[b-t51266lt27]     { background: #fee2e2; color: #991b1b; }
.sy-pill-off[b-t51266lt27]     { background: #f3f4f6; color: #6b7280; }
/* /Components/Pages/SyncStatus.razor.rz.scp.css */
.ss-page[b-0rkjju5hlg] {
    padding: 1.25rem;
    max-width: 1200px;
}

.ss-section-title[b-0rkjju5hlg] {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

/* Headline card: left border + dot take the traffic-light colour */
.ss-headline[b-0rkjju5hlg] {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-left-width: 5px;
    border-radius: 8px;
    padding: 0.9rem 1.25rem;
}

.ss-dot[b-0rkjju5hlg] {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    margin-top: 0.3rem;
    border-radius: 50%;
    background: #9ca3af;
}

.ss-headline-ok[b-0rkjju5hlg]   { border-left-color: #16a34a; }
.ss-headline-warn[b-0rkjju5hlg] { border-left-color: #f59e0b; }
.ss-headline-bad[b-0rkjju5hlg]  { border-left-color: #dc2626; background: #fef2f2; }
.ss-headline-off[b-0rkjju5hlg]  { border-left-color: #9ca3af; }

.ss-headline-ok   .ss-dot[b-0rkjju5hlg] { background: #16a34a; }
.ss-headline-warn .ss-dot[b-0rkjju5hlg] { background: #f59e0b; }
.ss-headline-bad  .ss-dot[b-0rkjju5hlg] { background: #dc2626; }
.ss-headline-off  .ss-dot[b-0rkjju5hlg] { background: #9ca3af; }

.ss-table[b-0rkjju5hlg] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.ss-table thead th[b-0rkjju5hlg] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 7px 12px;
    font-weight: 600;
    color: #374151;
    text-align: left;
    white-space: nowrap;
}

.ss-table tbody td[b-0rkjju5hlg] {
    padding: 6px 12px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: middle;
}

.ss-table tbody tr:last-child td[b-0rkjju5hlg] {
    border-bottom: none;
}

.ss-notes[b-0rkjju5hlg] {
    max-width: 420px;
    white-space: normal;
    word-break: break-word;
}

.ss-detail-cell[b-0rkjju5hlg] {
    background: #fafafa;
    padding: 0.75rem 1.25rem !important;
}

.ss-pill[b-0rkjju5hlg] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

.ss-pill-ok[b-0rkjju5hlg]      { background: #dcfce7; color: #166534; }
.ss-pill-pending[b-0rkjju5hlg] { background: #fef3c7; color: #92400e; }
.ss-pill-bad[b-0rkjju5hlg]     { background: #fee2e2; color: #991b1b; }
/* /Components/Pages/WhatsNewPage.razor.rz.scp.css */
.wn-page[b-cahz7c8z1o] {
    max-width: 760px;
}

.wn-icon[b-cahz7c8z1o] {
    font-size: 1.6rem;
    color: #f59e0b;
}

.wn-date[b-cahz7c8z1o] {
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6b7280;
    margin: 18px 0 8px;
}

.wn-card[b-cahz7c8z1o] {
    border: 1px solid #e5e7eb;
    border-left: 4px solid #2563eb;
    border-radius: 8px;
    padding: 12px 16px;
    margin-bottom: 10px;
    background: #fff;
}

.wn-title[b-cahz7c8z1o] {
    font-weight: 700;
    margin-bottom: 6px;
}

.wn-points[b-cahz7c8z1o] {
    margin: 0;
    padding-left: 18px;
    font-size: 0.92rem;
}

.wn-points li[b-cahz7c8z1o] {
    margin-bottom: 3px;
}
/* /Components/Shared/ChartSkeleton.razor.rz.scp.css */
.cs-wrap[b-naee5sbt6b] {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 8px 12px 4px;
    overflow: hidden;
}

/* ── Column-chart silhouette ───────────────────────────────── */
.cs-bars[b-naee5sbt6b] {
    flex: 1;
    display: flex;
    align-items: flex-end;
    gap: 6%;
    padding: 0 4%;
}

.cs-bar[b-naee5sbt6b] {
    flex: 1;
    border-radius: 4px 4px 0 0;
    background: linear-gradient(100deg,
        #eef2f7 40%,
        #f8fafc 50%,
        #eef2f7 60%);
    background-size: 200% 100%;
    animation: cs-shimmer-b-naee5sbt6b 1.4s ease-in-out infinite;
}

.cs-axis[b-naee5sbt6b] {
    height: 2px;
    margin-top: 2px;
    border-radius: 2px;
    background: #e5e7eb;
}

/* ── Row/list silhouette ───────────────────────────────────── */
.cs-rows[b-naee5sbt6b] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
}

.cs-row[b-naee5sbt6b] {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(100deg,
        #eef2f7 40%,
        #f8fafc 50%,
        #eef2f7 60%);
    background-size: 200% 100%;
    animation: cs-shimmer-b-naee5sbt6b 1.4s ease-in-out infinite;
}

/* Stagger the shimmer slightly so it ripples across the shape */
.cs-bar:nth-child(2n)[b-naee5sbt6b], .cs-row:nth-child(2n)[b-naee5sbt6b] { animation-delay: 0.15s; }
.cs-bar:nth-child(3n)[b-naee5sbt6b], .cs-row:nth-child(3n)[b-naee5sbt6b] { animation-delay: 0.3s; }

@keyframes cs-shimmer-b-naee5sbt6b {
    0%   { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}
/* /Components/Shared/ConcernEditForm.razor.rz.scp.css */
.form-label-sm[b-mryvkrpz1a] {
    font-size: 0.8rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 0.2rem;
    display: block;
}

.required-label[b-mryvkrpz1a]::after {
    content: " *";
    color: #dc2626;
}

/* /Components/Shared/EightDTraining.razor.rz.scp.css */
/* Tab strip */
.edt-tabs[b-8frl4ffhe9] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 10px 14px;
    border-bottom: 1px solid #e5e7eb;
    background: #f8fafc;
    flex-shrink: 0;
}

.edt-tab[b-8frl4ffhe9] {
    padding: 4px 10px;
    font-size: 0.78rem;
    font-weight: 600;
    color: #475569;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    cursor: pointer;
    font-family: 'DM Sans', sans-serif;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.edt-tab:hover[b-8frl4ffhe9] {
    border-color: #94a3b8;
    background: #f1f5f9;
}

.edt-tab-active[b-8frl4ffhe9],
.edt-tab-active:hover[b-8frl4ffhe9] {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

/* Content area */
.edt-content[b-8frl4ffhe9] {
    padding: 14px 18px 20px;
    font-size: 0.85rem;
    color: #374151;
    line-height: 1.55;
}

.edt-content h5[b-8frl4ffhe9] {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 10px;
}

/* Numbered how-to steps */
.edt-steps[b-8frl4ffhe9] {
    margin: 10px 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.edt-step[b-8frl4ffhe9] {
    display: flex;
    gap: 9px;
    align-items: flex-start;
}

.edt-step > span[b-8frl4ffhe9] {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #eff6ff;
    color: #2563eb;
    font-size: 0.72rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}

/* Good vs bad examples */
.edt-good-bad[b-8frl4ffhe9] {
    margin: 10px 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 0.82rem;
}

.edt-good[b-8frl4ffhe9] {
    background: #f0fdf4;
    border-left: 3px solid #22c55e;
    padding: 6px 10px;
    border-radius: 0 6px 6px 0;
    color: #166534;
}

.edt-bad[b-8frl4ffhe9] {
    background: #fef2f2;
    border-left: 3px solid #ef4444;
    padding: 6px 10px;
    border-radius: 0 6px 6px 0;
    color: #991b1b;
}

/* "In this form" mapping box */
.edt-inform[b-8frl4ffhe9] {
    margin-top: 12px;
    background: #f0f6ff;
    border: 1px solid #dbeafe;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 0.8rem;
    color: #1e3a5f;
}

/* Overview callout */
.edt-callout[b-8frl4ffhe9] {
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: 10px 12px;
    margin: 10px 0;
    font-size: 0.82rem;
    color: #713f12;
}

.edt-note[b-8frl4ffhe9] {
    color: #64748b;
    font-size: 0.8rem;
}

/* Video list */
.edt-videos[b-8frl4ffhe9] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 0.83rem;
}

.edt-vid-icon[b-8frl4ffhe9] {
    font-size: 15px;
    vertical-align: middle;
    color: #dc2626;
    margin-right: 5px;
}

/* Drawer shell (shared by /ed3 and /supplier-8d) */
.edt-backdrop[b-8frl4ffhe9] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 400;
}

.edt-drawer[b-8frl4ffhe9] {
    position: fixed;
    top: 56px;
    right: 0;
    bottom: 0;
    width: 660px;
    max-width: 92vw;
    background: #fff;
    border-left: 1px solid #e5e7eb;
    box-shadow: -6px 0 32px rgba(0, 0, 0, 0.18);
    z-index: 401;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.edt-header[b-8frl4ffhe9] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 16px;
    background: #f0f6ff;
    border-bottom: 1px solid #dbeafe;
    font-weight: 600;
    font-size: 0.9rem;
    color: #1e3a5f;
    flex-shrink: 0;
}

.edt-header-icon[b-8frl4ffhe9] {
    color: #2563eb;
    font-size: 20px;
}

.edt-close[b-8frl4ffhe9] {
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    color: #6b7280;
    padding: 2px;
    line-height: 1;
    border-radius: 4px;
}

.edt-close:hover[b-8frl4ffhe9] {
    color: #111827;
    background: #e5e7eb;
}

.edt-close .material-icons[b-8frl4ffhe9] {
    font-size: 18px;
    vertical-align: middle;
}

.edt-scroll[b-8frl4ffhe9] {
    flex: 1;
    overflow-y: auto;
}
/* /Components/Shared/EmptyState.razor.rz.scp.css */
.nodata[b-tx751fxmnd] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 34px 16px;
    color: #94a3b8;
    font-size: 0.85rem;
}

.nodata .material-icons[b-tx751fxmnd] {
    font-size: 34px;
    opacity: 0.55;
}
/* /Components/Shared/ListPager.razor.rz.scp.css */
.lp-bar[b-3h178srm0w] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.lp-count[b-3h178srm0w] {
    font-size: 0.8rem;
    color: #6b7280;
}

.lp-pager[b-3h178srm0w] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.lp-btn[b-3h178srm0w] {
    min-width: 32px;
    height: 30px;
    padding: 0 8px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    font-size: 0.8125rem;
    cursor: pointer;
    color: #374151;
    font-family: 'Inter', sans-serif;
    transition: background 0.12s;
}

.lp-btn:hover:not(:disabled)[b-3h178srm0w] {
    background: #f3f4f6;
}

.lp-btn:disabled[b-3h178srm0w] {
    opacity: 0.4;
    cursor: default;
}

.lp-btn.lp-active[b-3h178srm0w] {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
    font-weight: 600;
}

/* Rows-per-page selector. Deliberately quiet -- it sits beside the count and
   should read as a setting, not a filter. */
.lp-size[b-3h178srm0w] {
    margin-left: 10px;
    font-size: 0.82rem;
    padding: 2px 6px;
    border: 1px solid #d1d5db;
    border-radius: 5px;
    background: #fff;
    color: #4b5563;
    cursor: pointer;
}

.lp-size:hover[b-3h178srm0w] { border-color: #9ca3af; }
/* /Components/Shared/OrderBookList.razor.rz.scp.css */
/* Order book list — expandable part rows with schedule-line details */

.obl-header-row[b-9pvnns5jlt] {
    cursor: pointer;
}

.obl-header-row:hover td[b-9pvnns5jlt] {
    background: #f1f5f9;
}

.obl-chevron[b-9pvnns5jlt] {
    font-size: 1.1rem;
    color: #64748b;
    vertical-align: middle;
}

.obl-detail-head td[b-9pvnns5jlt],
.obl-detail-row td[b-9pvnns5jlt] {
    background: #f8fafc;
    border-bottom: 1px solid #eef2f6;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}

.obl-detail-head td[b-9pvnns5jlt] {
    padding-bottom: 0;
}

.obl-badge[b-9pvnns5jlt] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.obl-freq-d[b-9pvnns5jlt] { background: #dbeafe; color: #1d4ed8; }   /* Daily   */
.obl-freq-w[b-9pvnns5jlt] { background: #ccfbf1; color: #0f766e; }   /* Weekly  */
.obl-freq-m[b-9pvnns5jlt] { background: #e2e8f0; color: #475569; }   /* Monthly */

.obl-commit-f[b-9pvnns5jlt] { background: #dcfce7; color: #166534; } /* Firm     */
.obl-commit-p[b-9pvnns5jlt] { background: #dbeafe; color: #1d4ed8; } /* Planned  */
.obl-commit-c[b-9pvnns5jlt] { background: #f1f5f9; color: #64748b; } /* Forecast */

.obl-badge-overdue[b-9pvnns5jlt] { background: #fee2e2; color: #b91c1c; }
.obl-badge-site[b-9pvnns5jlt]    { background: #e0e7ff; color: #3730a3; }
/* /Components/Shared/OrderSchedulePivot.razor.rz.scp.css */
/* Year-view schedule pivot — zone bands + stacked info cells */

/* Compact by design (2026-08-30): this is a heavy-use working screen, so
   type is a step smaller and cell padding tight — minimum wasted space. */
.osp-table[b-aw9pn1nya1] {
    font-size: 0.78rem;
}

.osp-table th[b-aw9pn1nya1],
.osp-table td[b-aw9pn1nya1] {
    white-space: nowrap;
    padding: 3px 7px;
}

.osp-zone-row th.osp-zone[b-aw9pn1nya1] {
    text-align: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 3px 6px;
    border-bottom: none;
}

.osp-zone-daily[b-aw9pn1nya1]   { background: #eff6ff; color: #1d4ed8; }
.osp-zone-weekly[b-aw9pn1nya1]  { background: #f0fdfa; color: #0f766e; }
.osp-zone-monthly[b-aw9pn1nya1] { background: #f8fafc; color: #475569; }

.osp-cell-weekly[b-aw9pn1nya1]  { background: #f7fdfc; }
.osp-cell-monthly[b-aw9pn1nya1] { background: #fafbfc; }

.osp-sub[b-aw9pn1nya1] {
    font-size: 0.72rem;
    color: #64748b;
    line-height: 1.25;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.osp-git[b-aw9pn1nya1] {
    font-size: 0.74rem;
    font-weight: 700;
    color: #0f766e;
}

/* ── Full-width scroll container with an always-visible scrollbar,
     a frozen Part column and frozen date headers (2026-08-30) ─────────── */
.osp-scroll[b-aw9pn1nya1] {
    /* Height-bounded to the viewport: the grid scrolls INSIDE this box, so
       the horizontal scrollbar sits at the bottom of the visible area at all
       times instead of below 25 rows of table. */
    max-height: calc(100vh - 225px);
    overflow: auto;
    overflow-x: scroll;          /* scroll (not auto): the bar is always there */
    border: 1px solid #e5e7eb;
    border-radius: 8px;
}

/* Classic, always-visible scrollbar (Chrome/Edge) */
.osp-scroll[b-aw9pn1nya1]::-webkit-scrollbar {
    height: 12px;
    width: 12px;
}

.osp-scroll[b-aw9pn1nya1]::-webkit-scrollbar-track {
    background: #f1f5f9;
    border-radius: 0 0 8px 8px;
}

.osp-scroll[b-aw9pn1nya1]::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 6px;
    border: 2px solid #f1f5f9;
}

.osp-scroll[b-aw9pn1nya1]::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}

/* Firefox */
.osp-scroll[b-aw9pn1nya1] {
    scrollbar-width: auto;
    scrollbar-color: #94a3b8 #f1f5f9;
}

/* Frozen Part column: stays put while the schedule scrolls beneath it */
.osp-table th.osp-sticky[b-aw9pn1nya1],
.osp-table td.osp-sticky[b-aw9pn1nya1] {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #fff;
    box-shadow: 2px 0 4px rgba(15, 23, 42, 0.06);
}

.osp-table thead th.osp-sticky[b-aw9pn1nya1] {
    z-index: 5;                  /* corner cells: above both frozen planes */
    background: #f9fafb;
}

.osp-table .osp-zone-row th.osp-sticky[b-aw9pn1nya1] {
    background: #fff;
}

/* ── Frozen date headers: both header rows stick while rows scroll ────── */
.osp-table thead th[b-aw9pn1nya1] {
    position: sticky;
    z-index: 4;
    background: #f9fafb;         /* solid ground so rows never show through */
}

.osp-table .osp-zone-row th[b-aw9pn1nya1] {
    top: 0;
    height: 25px;                /* fixed height = exact offset for row two */
}

.osp-table thead tr:nth-child(2) th[b-aw9pn1nya1] {
    top: 25px;
}
/* /Components/Shared/PhoneUploadQr.razor.rz.scp.css */
/* "Upload from your phone" QR block (2026-09-05). */
.puq[b-j761c8tds3] { margin-top: 8px; }
.puq-compact[b-j761c8tds3] { margin-top: 4px; }
.puq-box[b-j761c8tds3] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 10px 12px;
    border: 1px dashed #93c5fd;
    border-radius: 8px;
    background: #eff6ff;
    max-width: 560px;
}
.puq-box img[b-j761c8tds3] { flex: none; border-radius: 4px; background: #fff; padding: 4px; border: 1px solid #dbeafe; }
.puq-text[b-j761c8tds3] { font-size: 0.85rem; line-height: 1.4; }
/* /Components/Shared/ReportHeader.razor.rz.scp.css */
.rh-band[b-j2ca6ra49m] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-top: 3px solid #2563eb;   /* same brand accent as the app header */
    border-radius: 8px;
    margin-bottom: 16px;
}

.rh-left[b-j2ca6ra49m] {
    flex: 0 0 auto;
}

.rh-logo[b-j2ca6ra49m] {
    height: 40px;
    width: auto;
    object-fit: contain;
}

.rh-appname[b-j2ca6ra49m] {
    font-weight: 700;
    font-size: 1.05rem;
    color: #0f172a;
}

.rh-center[b-j2ca6ra49m] {
    flex: 1 1 auto;
    text-align: center;
}

.rh-title[b-j2ca6ra49m] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.01em;
}

.rh-subtitle[b-j2ca6ra49m] {
    font-size: 0.8rem;
    color: #6b7280;
}

.rh-right[b-j2ca6ra49m] {
    flex: 0 0 auto;
    text-align: right;
}

.rh-ref[b-j2ca6ra49m] {
    font-weight: 700;
    font-size: 0.95rem;
    color: #2563eb;
}

.rh-date[b-j2ca6ra49m] {
    font-size: 0.75rem;
    color: #6b7280;
}

/* Keep the band intact on the printout — the whole point is a branded page. */
@media print {
    .rh-band[b-j2ca6ra49m] {
        border: 1px solid #d1d5db;
        border-top: 3px solid #2563eb;
        break-inside: avoid;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
/* /Components/Shared/RunSummary.razor.rz.scp.css */
.rs-wrap[b-xfwhqiiya3] {
    font-size: 0.85rem;
}

.rs-head[b-xfwhqiiya3] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.rs-table[b-xfwhqiiya3] {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.rs-table thead th[b-xfwhqiiya3] {
    background: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    padding: 6px 10px;
    font-weight: 600;
    color: #374151;
    text-align: left;
    white-space: nowrap;
}

.rs-table tbody td[b-xfwhqiiya3] {
    padding: 5px 10px;
    border-bottom: 1px solid #f3f4f6;
    vertical-align: top;
}

.rs-detail[b-xfwhqiiya3] {
    white-space: normal;
    word-break: break-word;
    max-width: 520px;
    font-size: 0.8rem;
}

.rs-pill[b-xfwhqiiya3] {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

.rs-pill-ok[b-xfwhqiiya3]  { background: #dcfce7; color: #166534; }
.rs-pill-bad[b-xfwhqiiya3] { background: #fee2e2; color: #991b1b; }
.rs-pill-dry[b-xfwhqiiya3] { background: #dbeafe; color: #1e40af; }
.rs-pill-off[b-xfwhqiiya3] { background: #f3f4f6; color: #6b7280; }
