:root { --brand-blue:#0176d3; --brand-navy:#032d60; --ink:#333; --muted:#555; --canvas:#f7f7f7; --line:#e0e0e0; --accent:var(--brand-blue); --sidebar:var(--brand-navy); --bs-primary:var(--brand-blue); --bs-body-color:var(--ink); --bs-body-font-family:Helvetica Neue,Arial,sans-serif; }
body { background:var(--canvas); color:var(--ink); font-size:.9rem; line-height:1.55; }
a { color:var(--brand-blue); text-underline-offset:3px; }
h1,h2,h3 { color:var(--ink); letter-spacing:-.025em; font-weight:650; }
h1.h3 { font-size:1.85rem; }.text-muted { color:var(--muted)!important; }
.app-sidebar { position:fixed; inset:0 auto 0 0; width:242px; background:var(--sidebar); color:#fff; display:flex; flex-direction:column; z-index:1030; }
.app-brand { display:flex; align-items:center; gap:10px; padding:26px 19px; color:white; text-decoration:none; font-weight:650; letter-spacing:-.02em; }
.app-brand:hover { color:white; }.app-brand small { display:block; font-size:.7rem; color:#d7e7f5; font-weight:400; letter-spacing:.02em; }
.brand-mark { display:grid; place-items:center; width:34px; height:38px; border-radius:9px; background:var(--brand-blue); color:#fff; font-size:1.25rem; }
.sidebar-navigation { padding:0 12px 20px; overflow-y:auto; flex:1; }.nav-group-label { margin:18px 12px 7px; font-size:.64rem; font-weight:650; letter-spacing:.12em; text-transform:uppercase; color:#a5bec5; }
.app-nav-link { display:block; padding:8px 12px; margin:2px 0; border-radius:6px; font-size:.82rem; color:#e5f0fa; text-decoration:none; border-left:3px solid transparent; }
.app-nav-link:hover { background:#124b80; color:white; }.app-nav-link.active { color:white; background:#0b4678; border-left-color:#65b5f2; font-weight:600; }
.sidebar-footer { padding:18px; border-top:1px solid #2b5b86; font-size:.71rem; color:#d7e7f5; }.role-dot { display:inline-block; width:6px; height:6px; background:#65b5f2; border-radius:50%; margin-right:9px; }
.app-workspace { margin-left:242px; min-width:0; }.app-topbar { min-height:70px; padding:12px 32px; border-bottom:1px solid var(--line); background:#fff; display:flex; gap:16px; align-items:center; justify-content:space-between; }
.workspace-location { display:flex; gap:12px; font-size:.77rem; color:var(--muted); }.workspace-location strong { color:var(--ink); font-weight:550; }
.topbar-actions { display:flex; gap:18px; align-items:center; }.topbar-actions form { margin:0; }.account-name { font-size:.74rem; max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.environment-badge { border:1px solid #c9c9c9; color:#555; background:#f5f5f5; padding:3px 9px; border-radius:5px; font-size:.67rem; font-weight:650; }.environment-badge.production { color:#155847; border-color:#b6dacf; background:#edf8f4; }
.app-content { padding:32px; max-width:1800px; margin:0 auto; min-height:calc(100vh - 125px); }.app-footer { padding:16px 32px; border-top:1px solid var(--line); color:var(--muted); font-size:.7rem; display:flex; justify-content:space-between; gap:16px; }
.menu-toggle { display:none; }.skip-link { position:fixed; left:12px; top:-60px; z-index:2000; padding:10px 20px; background:white; }.skip-link:focus { top:12px; }
:focus-visible { outline:3px solid var(--brand-blue)!important; outline-offset:3px; }.card { border:1px solid var(--line); border-radius:10px; box-shadow:0 2px 5px #0000000a!important; overflow:hidden; }.card-body { padding:22px; }.shadow-sm { box-shadow:0 2px 5px #0000000a!important; }
.btn { font-size:.8rem; font-weight:550; border-radius:6px; padding:.5rem .85rem; }.btn-sm { font-size:.74rem; padding:.35rem .6rem; }.btn-primary { --bs-btn-bg:var(--brand-blue); --bs-btn-border-color:var(--brand-blue); --bs-btn-hover-bg:var(--brand-navy); --bs-btn-hover-border-color:var(--brand-navy); --bs-btn-active-bg:var(--brand-navy); --bs-btn-active-border-color:var(--brand-navy); }.btn-outline-primary { --bs-btn-color:var(--brand-blue); --bs-btn-border-color:#8abce3; --bs-btn-hover-bg:var(--brand-blue); --bs-btn-hover-border-color:var(--brand-blue); }.btn-outline-secondary { --bs-btn-color:#555; --bs-btn-border-color:#c9c9c9; }
.form-label { font-size:.76rem; font-weight:600; margin-bottom:.4rem; }.form-control,.form-select { font-size:.84rem; min-height:39px; border-color:#ccc; border-radius:6px; }.form-control:focus,.form-select:focus { border-color:var(--brand-blue); box-shadow:0 0 0 .2rem #0176d31c; }
.table { font-size:.8rem; --bs-table-hover-bg:#f5f5f5; }.table>:not(caption)>*>* { padding:13px 15px; border-bottom-color:#e0e0e0; }.table thead th { background:#f7f7f7; color:#555; font-size:.68rem; letter-spacing:.035em; text-transform:uppercase; font-weight:650; white-space:nowrap; }.table-responsive { scrollbar-width:thin; }.table td { vertical-align:middle; }.table-sm>:not(caption)>*>* { padding:10px 12px; }
.badge { font-size:.68rem; font-weight:600; padding:.4em .65em; border-radius:5px; }.text-bg-success { color:#155847!important; background:#e3f3eb!important; }.text-bg-warning { color:#79500b!important; background:#fff1cf!important; }.text-bg-danger { color:#9e3035!important; background:#fce8e8!important; }.text-bg-primary,.text-bg-info { color:#195774!important; background:#e3f1fa!important; }.alert { border-radius:8px; font-size:.84rem; }.alert-warning { background:#fff8e8; border-color:#efddb2; color:#6d5018; }.alert-danger { background:#fff1f1; border-color:#f0cdcd; color:#883b40; }.alert-info { background:#edf6fa; border-color:#d0e4ed; color:#2a596f; }
.dashboard-hero { padding:0 0 24px; border-bottom:1px solid var(--line); }.dashboard-section { padding-top:4px; }.metric-card { border-top:3px solid #b8d8d2; }.metric-label { color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.065em; margin-bottom:10px; }.metric-value,.metric-card .display-6 { font-size:1.9rem; line-height:1.15; font-weight:650; font-variant-numeric:tabular-nums; }.metric-hint { font-size:.74rem; color:var(--muted); margin-top:8px; }.issue-card-critical { border-left:3px solid #dba263; }
.workspace-tabs,.view-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:24px; border-bottom:1px solid var(--line); }.workspace-tabs a,.view-tabs a { display:block; padding:10px 14px; color:var(--muted); text-decoration:none; border-bottom:2px solid transparent; font-size:.8rem; }.workspace-tabs a.active,.view-tabs a.active { border-color:var(--accent); color:var(--brand-blue); font-weight:650; }.workspace-tabs a:hover,.view-tabs a:hover { background:#f5f5f5; }
.filter-disclosure { padding:16px 0 0; border-top:1px solid var(--line); margin-top:18px; }.filter-disclosure summary { font-weight:600; color:#375869; font-size:.8rem; cursor:pointer; margin-bottom:12px; }.filter-actions { display:flex; gap:10px; align-items:center; margin-top:18px; }.empty-state { padding:44px 20px; text-align:center; color:var(--muted); }.empty-state strong { display:block; color:var(--ink); font-size:1rem; margin-bottom:8px; }
.operation-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }.operation-card { display:flex; flex-direction:column; }.operation-card .card-body { display:flex; flex-direction:column; height:100%; }.operation-card .operation-actions { margin-top:auto; padding-top:18px; }.operation-description { color:var(--muted); font-size:.8rem; }.eyebrow { color:var(--brand-blue); font-size:.67rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.account-brand { text-align:center; padding-top:50px; }.account-brand a { font-size:1.5rem; font-weight:650; color:var(--ink); text-decoration:none; }.account-brand span { display:block; font-size:.8rem; color:var(--muted); }
@media(min-width:1200px) { .table-responsive { max-height:72vh; }.table thead th { position:sticky; top:0; z-index:1; } }
@media(max-width:1100px) { .account-name { display:none; }.app-content { padding:24px; }.app-topbar { padding:14px 24px; } }
@media(max-width:850px) { .app-sidebar { transform:translateX(-100%); transition:transform .15s ease; top:65px; }.app-sidebar.is-open { transform:translateX(0); box-shadow:12px 0 30px #102d3540; }.app-workspace { margin-left:0; }.menu-toggle { display:block; }.app-topbar { position:sticky; top:0; z-index:1040; min-height:65px; padding:12px 16px; }.workspace-location { display:none; }.topbar-actions { gap:10px; margin-left:auto; }.app-content { padding:22px 16px; }.app-footer { padding:16px; }.app-footer span { display:none; }h1.h3 { font-size:1.5rem; }.card-body { padding:18px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; scroll-behavior:auto!important; } }

@media(max-width:850px) { html:not(.has-js) .app-sidebar { position:static; width:auto; transform:none; } html:not(.has-js) .menu-toggle { display:none; } }
[id] { scroll-margin-top:90px; }

/* Sidebar sections use native disclosure controls for keyboard access. */
.nav-group { margin:6px 0; }
.nav-group-toggle { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:7px; cursor:pointer; list-style:none; color:#d7e7f5; font-size:.78rem; font-weight:650; }
.nav-group-toggle::-webkit-details-marker { display:none; }
.nav-group-toggle:hover { background:#124b80; color:#fff; }
.nav-group.is-current > .nav-group-toggle { background:#0b4678; color:#9ed2f7; }
.nav-group-toggle:focus-visible, .app-nav-link:focus-visible { outline:2px solid #65b5f2; outline-offset:2px; }
.nav-group-icon { width:19px; height:19px; flex-shrink:0; }
.nav-group-chevron { width:16px; height:16px; margin-left:auto; transform:rotate(-90deg); }
.nav-group[open] > .nav-group-toggle .nav-group-chevron { transform:rotate(0); }
.nav-group-items { margin:4px 0 10px 21px; padding-left:9px; border-left:1px solid #2b5b86; }
.nav-group-items .app-nav-link { padding:8px 9px; }

/* Keep the language control usable on both account and narrow admin layouts. */
.language-switcher { flex-shrink:0; }
.account-brand .language-switcher { justify-content:center; margin-top:16px; }
@media(max-width:600px) {
    .topbar-actions { flex-wrap:wrap; justify-content:flex-end; gap:8px; }
    .topbar-actions .account-name { display:none; }
    .topbar-actions .environment-badge { display:none; }
}

/* Keep supplier readiness compact without letting long translated labels size the table. */
.supplier-readiness .table-responsive { max-height:none; }
.supplier-readiness-table { table-layout:fixed; width:100%; min-width:720px; }
.supplier-readiness-table > :not(caption) > * > * { padding:14px; vertical-align:top; overflow-wrap:anywhere; }
.supplier-readiness-table thead th { white-space:normal; position:static; }
.supplier-readiness-table .badge { white-space:normal; line-height:1.4; }
.supplier-readiness-facts { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; margin:0; }
.supplier-readiness-facts dt { font-weight:400; color:var(--muted); }
.supplier-readiness-facts dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.supplier-readiness-dates { grid-template-columns:1fr; gap:2px; }
.supplier-readiness-dates dd { text-align:left; margin-bottom:6px; }
.supplier-readiness-actions { display:flex; flex-wrap:wrap; align-items:flex-start; gap:6px; }
.supplier-readiness-actions .btn { white-space:normal; text-align:left; max-width:100%; }
.supplier-readiness-advanced { flex-basis:100%; order:1; margin-top:4px; }
.supplier-readiness-advanced summary { cursor:pointer; }
.supplier-readiness-advanced[open] summary { margin-bottom:8px; }
