:root {
    --modern-canvas: #f3f5f7;
    --modern-surface: #ffffff;
    --modern-surface-soft: #f8fafb;
    --modern-border: #dbe1e8;
    --modern-border-strong: #c8d0da;
    --modern-text: #18212f;
    --modern-muted: #66758a;
    --modern-primary: #2563eb;
    --modern-primary-strong: #1d4ed8;
    --modern-success: #07845d;
    --modern-warning: #c26a08;
    --modern-danger: #d43131;
    --modern-radius: 8px;
    --modern-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .04);
    --modern-shadow-md: 0 8px 24px rgba(15, 23, 42, .08);
    --modern-shadow-float: 0 18px 48px rgba(15, 23, 42, .14);
}

* {
    letter-spacing: 0 !important;
    scrollbar-width: thin;
    scrollbar-color: #c7d0dc transparent;
}
*::-webkit-scrollbar { width: 9px; height: 9px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: #c7d0dc; background-clip: padding-box; }
*::-webkit-scrollbar-thumb:hover { background: #aab5c4; background-clip: padding-box; }

html { color-scheme: light; }
body {
    background: var(--modern-canvas) !important;
    color: var(--modern-text);
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
    -webkit-font-smoothing: antialiased;
}

/* Application shell */
.app-sidebar {
    width: 16rem !important;
    background: color-mix(in srgb, var(--brand-sidebar) 88%, #101418) !important;
    border-right: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 12px 0 36px rgba(15, 23, 42, .13) !important;
}
.app-main { margin-left: 16rem !important; }
.app-brand {
    min-height: 4.5rem;
    height: auto !important;
    padding: .8rem 1rem !important;
    gap: .7rem !important;
    border-color: rgba(255, 255, 255, .09) !important;
    background: rgba(255, 255, 255, .025);
}
.app-brand img {
    width: 2.65rem !important;
    height: 2.65rem !important;
    flex: 0 0 2.65rem;
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow: 0 5px 16px rgba(2, 6, 23, .25);
}
.app-brand > div { min-width: 0; }
.app-brand > div > div:first-child { overflow: hidden; font-size: .82rem !important; text-overflow: ellipsis; white-space: nowrap; }
.app-brand > div > div:last-child { overflow: hidden; color: #8ea0b8 !important; text-overflow: ellipsis; white-space: nowrap; }

.app-sidebar nav { padding: .8rem .65rem 1.25rem !important; }
.app-sidebar .nav-link {
    min-height: 2.55rem;
    margin: .12rem 0;
    padding: .58rem .7rem !important;
    border: 1px solid transparent;
    border-radius: 7px !important;
    color: #b8c3d2;
    font-size: .79rem;
    font-weight: 520;
    line-height: 1.15rem;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.app-sidebar .nav-link > i:first-child {
    width: 1.25rem;
    flex: 0 0 1.25rem;
    color: #8292a8;
    font-size: .93rem;
    text-align: center;
    transition: color .16s ease, transform .16s ease;
}
.app-sidebar .nav-link:hover {
    background: rgba(255, 255, 255, .065) !important;
    border-color: rgba(255, 255, 255, .055);
    color: #fff;
    transform: translateX(1px);
}
.app-sidebar .nav-link:hover > i:first-child { color: #d6e1ef; }
.app-sidebar .nav-link.active {
    position: relative;
    background: color-mix(in srgb, var(--brand-primary) 30%, transparent) !important;
    border-color: color-mix(in srgb, var(--brand-accent) 30%, transparent);
    color: #fff !important;
    box-shadow: inset 3px 0 0 var(--brand-accent), 0 4px 14px rgba(2, 6, 23, .16);
}
.app-sidebar .nav-link.active > i:first-child { color: #7dd3fc !important; }
.app-sidebar .nav-section { margin-top: .25rem; }
.app-sidebar .nav-section > summary {
    min-height: 2.15rem;
    padding: .48rem .65rem !important;
    color: #8797ad !important;
    font-size: .65rem !important;
    font-weight: 750 !important;
}
.app-sidebar .nav-section > summary:hover { background: rgba(255, 255, 255, .045) !important; color: #d8e0eb !important; }
.app-sidebar .nav-section-body { margin-left: .55rem; padding-left: .45rem !important; border-color: rgba(148, 163, 184, .14) !important; }
.app-sidebar-footer { border-color: rgba(255, 255, 255, .08) !important; color: #728197 !important; }

.app-topbar {
    min-height: 4.5rem !important;
    height: auto !important;
    padding: .68rem 1.25rem !important;
    border-color: rgba(203, 213, 225, .82) !important;
    background: rgba(255, 255, 255, .94) !important;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .03), 0 6px 20px rgba(15, 23, 42, .035);
    backdrop-filter: blur(16px) saturate(1.2);
}
.app-topbar-title { min-width: 0; }
.app-topbar-label {
    max-width: clamp(13rem, 25vw, 28rem);
    overflow: hidden;
    color: #1f2937 !important;
    font-size: 1.02rem !important;
    font-weight: 700 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.app-topbar-actions { gap: .35rem !important; }
.app-topbar button,
.app-topbar a:not(.group) {
    min-width: 2.5rem;
    min-height: 2.5rem;
    border: 1px solid transparent;
    border-radius: 8px !important;
}
.app-topbar button:hover,
.app-topbar a:not(.group):hover {
    border-color: #dbe3ec;
    background: #f6f8fa !important;
    color: var(--modern-primary) !important;
}
.global-search { margin-right: .4rem; }
.global-search input {
    width: clamp(15rem, 22vw, 22rem) !important;
    height: 2.55rem;
    border-color: #d5dce5 !important;
    background: #f8fafc;
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, .02);
}
.global-search input:focus { background: #fff; }
.global-search [data-search-suggest-panel] {
    overflow-x: hidden;
    border-radius: var(--modern-radius) !important;
    box-shadow: var(--modern-shadow-float) !important;
}
.global-search [data-search-suggest-panel] > a {
    display: block !important;
    width: 100%;
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: hidden;
    border-radius: 0 !important;
    box-sizing: border-box;
}
.global-search [data-search-suggest-panel] > a > div {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}
.app-topbar a.group {
    min-width: 0;
    min-height: 2.75rem;
    margin-left: .2rem;
    padding: .25rem .35rem .25rem .55rem;
    border: 1px solid transparent;
    border-radius: 8px !important;
}
.app-topbar a.group:hover { border-color: #dbe3ec; background: #f8fafc; }
.app-topbar a.group img,
.app-topbar a.group > div:last-child { box-shadow: 0 0 0 3px #eef2f7; }

main#main-content {
    padding: 1.35rem !important;
    background: var(--modern-canvas);
}
.app-content-shell { max-width: 1720px !important; }
.app-footer { background: #f8fafb; border-color: var(--modern-border) !important; color: #8793a4 !important; }

/* Page hierarchy and surfaces */
.ui-page-header { align-items: center !important; margin-bottom: 1.15rem !important; }
.ui-page-kicker { margin-bottom: .3rem !important; color: var(--modern-primary) !important; font-size: .68rem !important; font-weight: 800 !important; }
.ui-page-title { color: #111827 !important; font-size: 1.48rem !important; line-height: 1.85rem !important; font-weight: 780 !important; }
.ui-page-subtitle { max-width: 65rem !important; color: var(--modern-muted) !important; font-size: .8rem !important; line-height: 1.25rem; }
.ui-card,
main#main-content .ux-section,
main#main-content .compact-panel {
    border-color: var(--modern-border) !important;
    border-radius: var(--modern-radius) !important;
    background: var(--modern-surface) !important;
    box-shadow: var(--modern-shadow-sm) !important;
}
main#main-content :where(.rounded-xl, .rounded-2xl) { border-radius: var(--modern-radius) !important; }
main#main-content :where(.shadow, .shadow-sm, .shadow-md, .shadow-lg, .shadow-xl) { box-shadow: var(--modern-shadow-sm) !important; }
.ui-card-hover { transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease !important; }
.ui-card-hover:hover { border-color: #b7c7dc !important; box-shadow: var(--modern-shadow-md) !important; transform: translateY(-1px) !important; }
.ui-card-header {
    min-height: 3.6rem;
    padding: .78rem 1rem !important;
    border-color: #e7ebf0 !important;
    background: #fbfcfd;
}
.ui-card-title { color: #263244 !important; font-size: .88rem !important; font-weight: 720 !important; }
.ui-card-subtitle { color: #8290a3 !important; }
.capital-cashflow-header {
    display: flex;
    min-height: 3rem;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .48rem .75rem;
    border-bottom: 1px solid #e7ebf0;
    background: #fbfcfd;
}
.capital-cashflow-heading,
.capital-asof-form { display: flex; min-width: 0; align-items: center; }
.capital-cashflow-heading { gap: .45rem; }
.capital-cashflow-heading .ui-card-title { overflow: hidden; line-height: 1.1rem; text-overflow: ellipsis; white-space: nowrap; }
.capital-asof-form { flex: 0 0 auto; gap: .35rem; }
main#main-content input.capital-asof-input {
    width: 8.75rem;
    height: 2rem !important;
    min-width: 0;
    min-height: 2rem !important;
    border: 1px solid #cbd5e1;
    border-radius: .38rem;
    background: #fff;
    padding: 0 .5rem;
    color: #334155;
    font-size: .78rem;
}
.capital-asof-button.ui-btn {
    width: 2rem !important;
    height: 2rem !important;
    min-width: 2rem !important;
    min-height: 2rem !important;
    flex: 0 0 2rem;
    padding: 0 !important;
}
.capital-asof-status {
    flex: 0 0 auto;
    border-radius: 999px;
    padding: .2rem .5rem;
    font-size: .68rem;
    font-weight: 700;
    line-height: 1rem;
    white-space: nowrap;
}
html.dark .capital-cashflow-header { border-color: #334152; background: #1d2835; }
html.dark main#main-content input.capital-asof-input { border-color: #3a485a; background: #111820; color: #e5edf6; }
.ui-stat { min-height: 6.9rem; padding: .9rem 1rem !important; }
.ui-stat::after { display: none !important; }
.ui-stat-label { color: #77869a !important; font-size: .66rem !important; }
.ui-stat-value { color: #172033 !important; font-size: 1.4rem !important; font-weight: 780 !important; }
.ui-stat-note { color: #8996a8 !important; }
.ui-stat-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; color: #8996a8; font-size: .66rem; }
.ui-stat-trend { color: #526174; font-weight: 720; }
.ui-stat-compact {
    min-height: 4.75rem !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .08rem;
    padding: .7rem .85rem !important;
    border-left-width: 3px !important;
}
.ui-stat-compact .ui-stat-label,
.ui-stat-compact .ui-stat-value,
.ui-stat-compact .ui-stat-note { display: block; }
.ui-stat-tone-default { border-left-color: #64748b !important; }
.ui-stat-tone-success { border-left-color: #059669 !important; }
.ui-stat-tone-success .ui-stat-value { color: #047857 !important; }
.ui-stat-tone-warning { border-left-color: #d97706 !important; }
.ui-stat-tone-warning .ui-stat-value { color: #b45309 !important; }
.ui-stat-tone-danger { border-left-color: #dc2626 !important; }
.ui-stat-tone-danger .ui-stat-value { color: #b91c1c !important; }
.ui-stat-tone-info { border-left-color: #0284c7 !important; }
.ui-stat-tone-info .ui-stat-value { color: #0369a1 !important; }

/* Contracts workspace: compact operational hierarchy */
.contract-page-header { min-width: 0; }
.contract-page-header > :first-child { flex: 1 1 auto; }
.contracts-page { min-width: 0; }
.contract-filter-panel { overflow: hidden; background: #fbfcfd !important; }
.contract-filter-summary {
    display: flex;
    min-height: 3rem;
    cursor: pointer;
    list-style: none;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .6rem .8rem;
    color: #344256;
    font-size: .78rem;
    font-weight: 720;
}
.contract-filter-summary::-webkit-details-marker { display: none; }
.contract-filter-summary-meta { display: flex; flex: 0 0 auto; align-items: center; gap: .45rem; }
.contract-filter-chevron { color: #8996a8; transition: transform .16s ease; }
.contract-filter-panel[open] .contract-filter-chevron { transform: rotate(180deg); }
.contract-filter-grid { padding: .72rem .8rem .8rem; border-top: 1px solid #e7ebf0; }
.contract-filter-actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem; padding-top: .1rem; }
.contract-kpi-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.contract-kpi {
    min-width: 0;
    min-height: 4.25rem;
    padding: .62rem .7rem !important;
    border-left: 3px solid #64748b !important;
}
.contract-kpi:nth-child(2),
.contract-kpi:nth-child(3),
.contract-kpi:nth-child(4) { border-left-color: #2563eb !important; }
.contract-kpi:nth-child(6) { border-left-color: #059669 !important; }
.contract-kpi:nth-child(7) { border-left-color: #d97706 !important; }
.contract-kpi:nth-child(n+8) { border-left-color: #dc2626 !important; }
.contract-kpi .ui-stat-label { line-height: .95rem; }
.contract-kpi .ui-stat-label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.contract-kpi .ui-stat-label i { flex: 0 0 auto; font-size: .75rem; }
.contract-kpi > :last-child { margin-top: .12rem !important; overflow: hidden; font-size: 1.05rem !important; line-height: 1.3rem; text-overflow: ellipsis; white-space: nowrap; }
.contract-section-tabs { gap: .4rem !important; }
.contract-section-tabs .ui-btn { min-height: 2.2rem !important; padding: .4rem .65rem !important; }
.contract-draft-workspace {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #d9e2ec;
    border-left: 3px solid #4f73da;
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--modern-shadow-sm);
}
.contract-draft-workspace-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem .85rem;
    border-bottom: 1px solid #e8edf3;
    background: #f8faff;
}
.contract-draft-kicker { color: #4266c7; font-size: .62rem; font-weight: 780; text-transform: uppercase; }
.contract-draft-workspace-header h2 { margin: .1rem 0 0; color: #243247; font-size: .92rem; font-weight: 780; }
.contract-draft-workspace-header p { margin: .15rem 0 0; color: #758397; font-size: .68rem; line-height: 1rem; }
.contract-draft-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.contract-draft-group { min-width: 0; padding: .72rem .8rem .8rem; }
.contract-draft-group + .contract-draft-group { border-left: 1px solid #e8edf3; }
.contract-draft-group-title { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .45rem; color: #48586d; font-size: .7rem; font-weight: 740; }
.contract-draft-group-title span { display: inline-flex; align-items: center; gap: .38rem; }
.contract-draft-group-title i { color: #4f73da; }
.contract-draft-group-title strong { display: grid; min-width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 999px; background: #edf2ff; color: #315fc7; font-size: .62rem; }
.contract-draft-list { display: grid; gap: .45rem; }
.contract-draft-item { min-width: 0; padding: .62rem .68rem; border: 1px solid #dde5ee; border-radius: 7px; background: #fff; scroll-margin-top: 5.5rem; }
.contract-draft-item:target { border-color: #7394e6; box-shadow: 0 0 0 3px rgba(79,115,218,.12); }
.contract-draft-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .65rem; }
.contract-draft-item-title { overflow-wrap: anywhere; color: #2c3b50; font-size: .74rem; font-weight: 750; line-height: 1.05rem; }
.contract-draft-item-meta { display: flex; min-width: 0; flex-wrap: wrap; gap: .15rem .65rem; margin-top: .22rem; color: #7b899a; font-size: .62rem; line-height: .9rem; }
.contract-draft-review-note { display: flex; gap: .4rem; margin-top: .5rem; border-left: 2px solid #4f73da; border-radius: 0 5px 5px 0; background: #f1f5ff; padding: .42rem .5rem; color: #3f5f9f; font-size: .64rem; line-height: .95rem; }
.contract-draft-actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: flex-start; gap: .35rem; margin-top: .55rem; padding-top: .5rem; border-top: 1px solid #edf1f5; }
.contract-draft-actions .ui-btn { min-height: 2rem !important; gap: .3rem; padding: .33rem .55rem !important; font-size: .66rem !important; }
.contract-draft-editor { min-width: 0; }
.contract-draft-editor > summary { list-style: none; cursor: pointer; }
.contract-draft-editor > summary::-webkit-details-marker { display: none; }
.contract-draft-editor[open] { flex: 1 1 100%; }
.contract-draft-editor[open] > summary { margin-bottom: .5rem; }
.contract-draft-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: .65rem; border: 1px solid #dce5ee; border-radius: 7px; background: #f8fafc; }
.contract-draft-form label { display: grid; min-width: 0; align-content: start; gap: .25rem; color: #526174; font-size: .62rem; font-weight: 700; }
.contract-draft-form label > span { min-height: .9rem; }
.contract-draft-form label b { color: #dc2626; }
.contract-draft-form .contract-field { min-width: 0; min-height: 2.25rem; font-size: .75rem; }
.contract-draft-form textarea.contract-field { min-height: 3.6rem; resize: vertical; }
.contract-draft-span-2,
.contract-draft-span-full { grid-column: 1 / -1; }
.contract-draft-form-actions { display: flex; justify-content: flex-end; }
.contract-draft-errors { border-radius: 5px; background: #fff0f0; padding: .45rem .55rem; color: #b42318; font-size: .65rem; }
.contract-draft-empty { display: grid; min-height: 3rem; place-items: center; border: 1px dashed #d5dee8; border-radius: 6px; color: #8a97a8; font-size: .66rem; }
.contract-child-drafts { margin: .55rem 0; border: 1px solid #dbe5f4; border-radius: 7px; background: #f8faff; overflow: hidden; }
.contract-child-drafts-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .42rem .55rem; border-bottom: 1px solid #e5ebf4; color: #405a87; font-size: .67rem; font-weight: 760; }
.contract-child-drafts-head > span { display: inline-flex; align-items: center; gap: .32rem; }
.contract-child-drafts-head i { color: #4f73da; }
.contract-child-drafts-head strong { display: grid; width: 1.3rem; height: 1.3rem; place-items: center; border-radius: 999px; background: #e7efff; color: #315fc7; font-size: .61rem; }
.contract-child-drafts-list { display: grid; gap: .45rem; padding: .5rem; }
.contract-child-draft { min-width: 0; padding: .58rem .62rem; border: 1px solid #dce5ee; border-radius: 6px; background: #fff; scroll-margin-top: 5.5rem; }
.contract-child-draft:target { border-color: #7394e6; box-shadow: 0 0 0 3px rgba(79,115,218,.12); }
.contract-child-draft-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
.contract-child-draft-title { color: #2c3b50; font-size: .71rem; font-weight: 760; line-height: 1rem; }
.contract-child-draft-meta { display: flex; flex-wrap: wrap; gap: .12rem .5rem; margin-top: .18rem; color: #7b899a; font-size: .6rem; line-height: .85rem; }
.contract-child-draft-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .5rem; padding-top: .5rem; border-top: 1px solid #edf1f5; }
.contract-child-draft-actions .ui-btn { min-height: 1.95rem !important; padding: .3rem .5rem !important; font-size: .64rem !important; }
.contract-section { padding: .85rem !important; }
.contract-section > :first-child { margin-bottom: .65rem !important; }
.contract-section > :first-child h3 { font-size: .9rem; }
.contract-section > details { margin-bottom: .7rem !important; padding: .65rem .75rem !important; }
.contract-empty-inline {
    display: flex;
    min-height: 4rem;
    align-items: center;
    gap: .7rem;
    padding: .7rem .8rem;
    border: 1px dashed #cbd5df;
    border-radius: 7px;
    background: #f8fafb;
}
.contract-empty-icon {
    display: inline-flex;
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: #eaf0ff;
    color: #315fc7;
}
.contract-record { overflow: hidden; padding: .8rem !important; }
.contract-record-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .8rem; }
.contract-record-main { min-width: 0; }
.contract-record-title { color: #253246; font-size: .88rem; font-weight: 750; line-height: 1.2rem; }
.contract-record-meta { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: .32rem; margin-top: .28rem; color: #65758a; font-size: .68rem; }
.contract-record-meta > span:first-child { display: inline-flex; min-width: 0; align-items: center; gap: .28rem; }
.contract-record-meta .ui-chip { padding: .14rem .42rem !important; font-size: .62rem; line-height: .9rem; }
.contract-record-owner { margin-top: .22rem; overflow: hidden; color: #7c899a; font-size: .67rem; line-height: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.contract-record-value { display: grid; justify-items: end; gap: .16rem; }
.contract-record-value > span:first-child { color: #7c899a; font-size: .62rem; font-weight: 700; text-transform: uppercase; }
.contract-record-value strong { color: #315fc7; font-size: .95rem; line-height: 1.15rem; white-space: nowrap; }
.contract-record-value .rounded-full { padding-top: .15rem !important; padding-bottom: .15rem !important; }
.contract-record-value-tools { display: flex; align-items: center; justify-content: flex-end; gap: .35rem; }
.contract-record-value-tools .ui-btn-icon { width: 2rem; min-width: 2rem !important; min-height: 2rem !important; }
.contract-payment-summary { margin-top: .62rem; padding: .55rem .65rem; border: 1px solid #e4eaf0; border-radius: 7px; background: #f8fafb; }
.contract-payment-label { display: flex; align-items: center; justify-content: space-between; gap: .5rem; color: #65758a; font-size: .65rem; }
.contract-payment-label strong { color: #08775b; font-size: .7rem; }
.contract-payment-track { height: .35rem; margin-top: .3rem; overflow: hidden; border-radius: 999px; background: #e4eaf0; }
.contract-payment-track span { display: block; height: 100%; border-radius: inherit; background: #10b981; }
.contract-payment-meta { display: grid; grid-template-columns: auto auto auto minmax(0, 1fr); gap: .35rem 1rem; margin-top: .35rem; color: #728094; font-size: .65rem; line-height: 1rem; }
.contract-payment-meta strong { color: #425169; }
.contract-document-links { overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.contract-record .quality-lazy-browser { margin-top: .6rem !important; padding-top: .55rem !important; }
.contract-record .quality-lazy-browser > :first-child { margin-bottom: .35rem !important; }
.contract-record .quality-lazy-browser [data-quality-group] > div:first-child { min-height: 2.55rem; padding: .4rem .55rem !important; }
.contract-record-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4rem; margin-top: .55rem; padding-top: .55rem; border-top: 1px solid #edf0f4; }
.contract-record .contract-detail-panel { margin-top: .25rem; }
.contract-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: .75rem;
}
.contract-secondary-panels {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-width: 0;
    align-content: start;
    gap: .65rem;
}
.contract-detail-panel-card {
    min-width: 0;
    align-self: start;
    padding: .65rem;
    border: 1px solid #e4eaf0;
    border-radius: 7px;
    background: #f8fafb;
}
.contract-detail-panel-card > summary {
    display: flex;
    min-height: 2.15rem;
    align-items: center;
    color: #46566c !important;
    font-size: .74rem !important;
    font-weight: 720 !important;
    line-height: 1rem;
}
.contract-detail-panel-card > summary:focus-visible,
.contract-payment-create > summary:focus-visible,
.contract-payment-edit > summary:focus-visible {
    border-radius: 5px;
    outline: 2px solid #4f7fdd;
    outline-offset: 2px;
}
.contract-payment-panel { background: #fff; }
.contract-payment-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
    margin-top: .55rem;
}
.contract-payment-metric {
    display: grid;
    min-width: 0;
    gap: .12rem;
    padding: .48rem .55rem;
    border: 1px solid #dce4ed;
    border-left: 3px solid #5d76a7;
    border-radius: 6px;
    background: #f8fafc;
}
.contract-payment-metric span {
    overflow: hidden;
    color: #758397;
    font-size: .61rem;
    line-height: .85rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.contract-payment-metric strong {
    overflow: hidden;
    color: #314157;
    font-size: .72rem;
    font-variant-numeric: tabular-nums;
    line-height: 1rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.contract-payment-metric.is-paid { border-left-color: #0f9f78; background: #f1fbf7; }
.contract-payment-metric.is-retention { border-left-color: #7c5bd6; background: #f7f4ff; }
.contract-payment-metric.is-remaining { border-left-color: #d89524; background: #fffbef; }
.contract-payment-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
    gap: .55rem;
    margin-top: .65rem;
    color: #58687c;
    font-size: .68rem;
}
.contract-payment-item {
    min-width: 0;
    padding: .65rem;
    border: 1px solid #dfe6ee;
    border-radius: 7px;
    background: #fff;
}
.contract-payment-item-header {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: .65rem;
}
.contract-payment-item-title {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: .4rem;
}
.contract-payment-item-title strong { color: #29384d; font-size: .78rem; white-space: nowrap; }
.contract-payment-item-title span { overflow: hidden; color: #68778a; text-overflow: ellipsis; white-space: nowrap; }
.contract-payment-item-status { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: .3rem; }
.contract-payment-item-status .ui-chip { padding: .12rem .4rem !important; font-size: .59rem; line-height: .82rem; }
.contract-payment-item-finance {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .4rem;
    margin-top: .5rem;
}
.contract-payment-item-finance > div {
    display: grid;
    min-width: 0;
    gap: .08rem;
    padding: .38rem .45rem;
    border-radius: 5px;
    background: #f5f7fa;
}
.contract-payment-item-finance span { color: #7a8798; font-size: .58rem; line-height: .8rem; }
.contract-payment-item-finance strong {
    overflow: hidden;
    color: #334258;
    font-size: .66rem;
    font-variant-numeric: tabular-nums;
    line-height: .92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.contract-payment-item-finance .is-paid { background: #eef9f5; }
.contract-payment-item-finance .is-paid strong { color: #08775b; }
.contract-payment-item-finance .is-remaining { background: #fff8e8; }
.contract-payment-item-meta {
    display: flex;
    min-width: 0;
    flex-wrap: wrap;
    gap: .22rem .8rem;
    margin-top: .48rem;
    color: #748196;
    font-size: .62rem;
    line-height: .9rem;
}
.contract-payment-item-meta strong { color: #48576b; }
.contract-payment-item-documents {
    margin-top: .42rem;
    padding-top: .38rem;
    border-top: 1px solid #edf0f4;
    font-size: .62rem;
}
.contract-payment-edit { flex: 1 1 100%; min-width: 0; }
.contract-payment-edit > summary {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 2rem;
    font-size: .65rem;
    font-weight: 680;
}
.contract-payment-edit-form,
.contract-payment-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contract-form-span { grid-column: 1 / -1; }
.contract-payment-create {
    margin-top: .65rem;
    padding-top: .55rem;
    border-top: 1px solid #e5eaf0;
}
.contract-payment-create > summary {
    display: inline-flex;
    min-height: 2.15rem;
    align-items: center;
    gap: .32rem;
    color: #315fc7;
    font-size: .7rem;
    font-weight: 720;
}
html.dark .contract-filter-panel,
html.dark .contract-payment-summary,
html.dark .contract-empty-inline { border-color: #334152 !important; background: #18222d !important; }
html.dark .contract-draft-workspace,
html.dark .contract-draft-item { border-color: #334152; background: #18222d; }
html.dark .contract-draft-workspace-header,
html.dark .contract-draft-form { border-color: #334152; background: #141d27; }
html.dark .contract-draft-group + .contract-draft-group,
html.dark .contract-draft-actions { border-color: #334152; }
html.dark .contract-draft-workspace-header h2,
html.dark .contract-draft-item-title { color: #e5edf6; }
html.dark .contract-draft-review-note { background: #182a4d; color: #bfd0ff; }
html.dark .contract-draft-empty { border-color: #3b495b; color: #9eacbd; }
html.dark .contract-child-drafts { border-color: #334152; background: #141d27; }
html.dark .contract-child-drafts-head { border-color: #334152; color: #bfd0ff; }
html.dark .contract-child-draft { border-color: #334152; background: #18222d; }
html.dark .contract-child-draft-title { color: #e5edf6; }
html.dark .contract-filter-grid,
html.dark .contract-record-actions { border-color: #334152; }
html.dark .contract-record-title,
html.dark .contract-empty-inline .font-semibold { color: #e5edf6 !important; }
html.dark .contract-detail-panel-card,
html.dark .contract-payment-item { border-color: #334152; background: #18222d; }
html.dark .contract-payment-metric,
html.dark .contract-payment-item-finance > div { border-color: #344355; background: #1e2a36; }
html.dark .contract-detail-panel-card > summary,
html.dark .contract-payment-item-title strong,
html.dark .contract-payment-metric strong,
html.dark .contract-payment-item-finance strong { color: #e5edf6 !important; }
html.dark .contract-payment-item-documents,
html.dark .contract-payment-create { border-color: #334152; }

@media (max-width: 1024px) {
    .contract-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .contract-draft-columns { grid-template-columns: minmax(0, 1fr); }
    .contract-draft-group + .contract-draft-group { border-top: 1px solid #e8edf3; border-left: 0; }
}

@media (max-width: 640px) {
    .contract-page-header { gap: .65rem !important; }
    .contract-page-header > :last-child { width: 100%; gap: .4rem !important; }
    .contract-page-header > :last-child .ui-btn { flex: 1 1 auto; justify-content: center; padding: .42rem .55rem !important; }
    .contract-page-header > :last-child .ui-btn:last-child { flex-basis: 100%; }
    .contract-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin-bottom: .75rem !important; }
    .contract-kpi { min-height: 3.8rem; padding: .5rem .58rem !important; }
    .contract-kpi > :last-child { font-size: .94rem !important; }
    .contract-filter-panel { margin-bottom: .75rem !important; }
    .contract-filter-summary { min-height: 2.75rem; padding: .52rem .65rem; }
    .contract-filter-summary-meta > .text-xs { display: none; }
    .contract-filter-grid { padding: .6rem; }
    .contract-filter-actions { position: sticky; bottom: 0; padding-top: .5rem; background: #fbfcfd; }
    .contract-filter-actions .ui-btn { flex: 1 1 0; justify-content: center; }
    .contract-section-tabs { margin-bottom: .65rem !important; gap: .3rem !important; }
    .contract-section-tabs .ui-btn { min-width: 0 !important; flex: 1 1 auto; gap: .28rem; padding: .35rem .42rem !important; font-size: .7rem !important; }
    .contract-draft-workspace { margin-bottom: .75rem !important; }
    .contract-draft-workspace-header { align-items: flex-start; padding: .65rem; }
    .contract-draft-workspace-header p { max-width: 17rem; }
    .contract-draft-group { padding: .6rem; }
    .contract-draft-item { padding: .58rem; }
    .contract-draft-item-head { align-items: flex-start; }
    .contract-draft-actions > a,
    .contract-draft-actions > form,
    .contract-draft-actions > form .ui-btn,
    .contract-draft-editor:not([open]) { flex: 1 1 auto; }
    .contract-draft-actions > a,
    .contract-draft-actions > form .ui-btn,
    .contract-draft-editor:not([open]) > summary { width: 100%; justify-content: center; }
    .contract-draft-form { grid-template-columns: minmax(0, 1fr); padding: .55rem; }
    .contract-draft-span-2,
    .contract-draft-span-full { grid-column: auto; }
    .contracts-page .contract-draft-form .contract-field { font-size: 1rem !important; }
    .contract-draft-form-actions .ui-btn { width: 100%; justify-content: center; min-height: 2.5rem !important; }
    .contract-child-drafts-list { padding: .45rem; }
    .contract-child-draft { padding: .55rem; }
    .contract-child-draft-actions > a,
    .contract-child-draft-actions > form,
    .contract-child-draft-actions > form .ui-btn,
    .contract-child-draft-actions .contract-draft-editor:not([open]) { flex: 1 1 auto; }
    .contract-child-draft-actions > a,
    .contract-child-draft-actions > form .ui-btn,
    .contract-child-draft-actions .contract-draft-editor:not([open]) > summary { width: 100%; justify-content: center; }
    .contract-section { margin-bottom: .8rem !important; padding: .65rem !important; }
    .contract-section > :first-child { align-items: flex-start; }
    .contract-section > :first-child > :last-child { text-align: right; }
    .contract-empty-inline { min-height: 3.8rem; padding: .65rem; }
    .contract-record { padding: .65rem !important; }
    .contract-record-header { grid-template-columns: 1fr; gap: .45rem; }
    .contract-record-value { grid-template-columns: 1fr auto; align-items: center; justify-items: start; gap: .25rem .5rem; padding-top: .45rem; border-top: 1px solid #edf0f4; }
    .contract-record-value > span:first-child { grid-column: 1 / -1; }
    .contract-record-value-tools { justify-self: end; }
    .contract-record-owner { white-space: normal; }
    .contract-payment-summary { padding: .5rem .55rem; }
    .contract-payment-meta { grid-template-columns: 1fr 1fr; gap: .25rem .55rem; }
    .contract-document-links { grid-column: 1 / -1; text-align: left; }
    .contract-record .quality-lazy-browser { margin-top: .5rem !important; }
    .contract-record-actions .ui-btn:not(.ui-btn-icon) { flex: 1 1 auto; justify-content: center; }
    .contract-payment-metrics,
    .contract-payment-item-finance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .contract-secondary-panels { grid-template-columns: minmax(0, 1fr); }
    .contract-payment-item-header { align-items: stretch; flex-direction: column; gap: .38rem; }
    .contract-payment-item-status { justify-content: flex-start; }
    .contract-payment-edit-form,
    .contract-payment-create-form { grid-template-columns: minmax(0, 1fr); }
    .contract-form-span { grid-column: auto; }
}


/* Project-first dashboard hierarchy */
.dashboard-project-flow { min-width: 0; }
.dashboard-structure-card { min-height: 12.75rem; }
.dashboard-utility-card { display: flex; min-height: 5.45rem; align-items: center; }
.dashboard-project-flow :where(.ui-card, .dashboard-utility-card) { min-width: 0; }

/* Commands and status */
.ui-btn {
    min-height: 2.4rem !important;
    border-radius: 7px !important;
    padding: .48rem .78rem !important;
    font-size: .78rem !important;
    font-weight: 680 !important;
    line-height: 1rem;
    box-shadow: none !important;
}
.ui-btn-primary,
.brand-button { border-color: var(--modern-primary) !important; background: var(--modern-primary) !important; color: #fff !important; }
.ui-btn-primary:hover,
.brand-button:hover { border-color: var(--modern-primary-strong) !important; background: var(--modern-primary-strong) !important; }
.ui-btn-secondary { border-color: #ccd5df !important; background: #fff !important; color: #344256 !important; }
.ui-btn-secondary:hover { border-color: #aebbc9 !important; background: #f7f9fb !important; }
.ui-btn-danger { border-color: #f2b8b8 !important; color: #c92a2a !important; }
.ui-btn-danger:hover { border-color: #e58b8b !important; background: #fff5f5 !important; color: #a91f1f !important; }
.ui-btn-ghost { border-color: transparent !important; background: transparent !important; color: #526174 !important; }
.ui-btn-ghost:hover { border-color: #dbe3ec !important; background: #f6f8fa !important; color: var(--modern-primary) !important; }
.ui-btn-icon { width: 2.4rem; min-width: 2.4rem !important; padding: 0 !important; justify-content: center; }
.ui-chip,
main#main-content .rounded-full { border-radius: 999px !important; font-weight: 680; }
.ui-chip-muted { background: #edf1f5 !important; color: #526174 !important; }
.ui-chip-info { background: #eaf0ff !important; color: #2d55b4 !important; }
.ui-chip-success { background: #e6f6ef !important; color: #087253 !important; }
.ui-chip-warning { background: #fff3dd !important; color: #9f5908 !important; }
.ui-chip-danger { background: #fdeaea !important; color: #bc2929 !important; }
.ui-alert { border-radius: var(--modern-radius) !important; box-shadow: var(--modern-shadow-sm); }

/* Forms */
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="color"]),
select,
textarea {
    min-height: 2.55rem !important;
    border: 1px solid #cfd7e1 !important;
    border-radius: 7px !important;
    background-color: #fff;
    color: #253246;
    font-size: .82rem;
    box-shadow: inset 0 1px 1px rgba(15, 23, 42, .025);
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
textarea { line-height: 1.45; }
input::placeholder,
textarea::placeholder { color: #9aa6b5 !important; }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
select:focus,
textarea:focus {
    border-color: #6d99ea !important;
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--modern-primary); }
.ui-field-label { margin-bottom: .32rem !important; color: #627187 !important; font-size: .68rem !important; font-weight: 720 !important; }
.ui-field { min-width: 0; }
.ui-field > :is(input, select, textarea) { width: 100%; }
.ui-field-hint { margin-top: .3rem; color: #7b889a; font-size: .7rem; line-height: 1.05rem; }
.ui-field-error { margin-top: .3rem; color: var(--modern-danger); font-size: .7rem; font-weight: 650; line-height: 1.05rem; }
.ui-required { color: var(--modern-danger); }
.ui-filter-card { padding: .85rem 1rem !important; background: #fbfcfd !important; }

/* Data and expandable content */
.ux-table-wrap,
main#main-content .overflow-x-auto:has(> table) { border-radius: var(--modern-radius); scrollbar-gutter: stable; }
.ui-table { color: #344256; font-size: .8rem !important; }
.ui-table thead { background: #f4f7f9 !important; color: #68788e !important; font-size: .66rem !important; }
.ui-table th { height: 2.65rem; padding: .58rem .75rem !important; font-weight: 750 !important; }
.ui-table td { padding: .65rem .75rem !important; line-height: 1.2rem; }
.ui-table tbody tr { border-color: #e9edf2 !important; transition: background-color .12s ease; }
.ui-table tbody tr:hover { background: #f7f9fb !important; }
.ui-table-shell { overflow: hidden; }
.ui-table-shell-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ui-table-shell-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .55rem; }
.ui-result-count { color: #6f7e91; font-size: .72rem; font-weight: 650; }
.ui-table-shell-pagination { padding: .8rem 1rem; border-top: 1px solid #e7ebf0; background: #fbfcfd; }
details > summary { transition: background-color .14s ease, color .14s ease; }
main#main-content details > summary:hover { background: #f7f9fb; }
.compact-panel > summary { min-height: 3.35rem; padding: .72rem 1rem !important; }
.compact-panel-body { border-color: #e7ebf0 !important; }
.ui-empty-state,
.ux-empty { border-color: #cbd5df !important; border-radius: var(--modern-radius) !important; background: #f8fafb !important; color: #718096 !important; }
.ui-state { display: flex; min-height: 10rem; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; padding: 1.5rem; border: 1px dashed #cbd5df; border-radius: var(--modern-radius); background: #f8fafb; text-align: center; }
.ui-state-icon { color: #7a899c; font-size: 1.45rem; }
.ui-state-title { color: #344256; font-size: .88rem; }
.ui-state-description { max-width: 36rem; color: #718096; font-size: .76rem; line-height: 1.2rem; }
.ui-state-action { margin-top: .25rem; }
.ui-state-error .ui-state-icon { color: var(--modern-danger); }
.ui-state-permission .ui-state-icon { color: var(--modern-warning); }
.ui-state-offline .ui-state-icon { color: #64748b; }
.ui-state-loading .ui-state-icon { color: var(--modern-primary); animation: ui-state-spin .9s linear infinite; }
@keyframes ui-state-spin { to { transform: rotate(360deg); } }
.notification-center-panel,
.notification-toast { border-radius: var(--modern-radius) !important; box-shadow: var(--modern-shadow-float) !important; }

/* CDE workspace */
.cde-portfolio,
.cde-project-workspace { min-width: 0; }
.cde-page-header { gap: 1rem; }
.cde-section-kicker { margin: 0; color: #5273bb; font-size: .67rem; font-weight: 750; line-height: 1rem; }
.cde-section-kicker i { margin-right: .25rem; }
.cde-metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.cde-portfolio-content { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: 1rem; }
.cde-priority-strip {
    border: 1px solid #f0d59e;
    border-left: 3px solid #d88716;
    border-radius: var(--modern-radius);
    background: #fffaf0;
    padding: 1rem;
}
.cde-priority-strip-heading,
.cde-filter-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.cde-priority-strip h2,
.cde-filter-heading h2 { margin: .15rem 0 0; color: #263244; font-size: .92rem; font-weight: 740; line-height: 1.25rem; }
.cde-priority-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: .85rem; }
.cde-priority-item {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: .65rem;
    border: 1px solid #f0dfb8;
    border-radius: 7px;
    background: #fff;
    padding: .65rem .7rem;
    color: #334155;
    font-size: .76rem;
    transition: border-color .15s ease, background-color .15s ease;
}
.cde-priority-item:hover { border-color: #dfad54; background: #fffdf8; color: #1f2937; }
.cde-priority-item > i { color: #aa670b; }
.cde-priority-code { flex: 0 0 auto; border-radius: 4px; background: #fff1d6; padding: .22rem .35rem; color: #8b5308; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .65rem; font-weight: 700; }
.cde-priority-item small { margin-top: .16rem; color: #7c6850; font-size: .65rem; }
.cde-filter-surface { padding: 1rem !important; }
.cde-filter-heading { margin-bottom: .85rem; }
.cde-checkbox-command { display: inline-flex; min-height: 2.4rem; align-items: center; gap: .5rem; border: 1px solid #dce3eb; border-radius: 7px; background: #fff; padding: .45rem .7rem; color: #526174; font-size: .75rem; font-weight: 650; }
.cde-checkbox-command:hover { border-color: #b8c6d8; }
.cde-filter-chip {
    display: inline-flex;
    min-height: 2rem;
    align-items: center;
    border: 1px solid #dbe2ea;
    border-radius: 6px;
    background: #fff;
    padding: .35rem .55rem;
    color: #64748b;
    font-size: .69rem;
    font-weight: 700;
}
.cde-filter-chip:hover { border-color: #b6c5d9; background: #f8fafc; color: #344256; }
.cde-filter-chip.is-active { border-color: #b7c9f4; background: #edf3ff; color: #2354b8; }
.cde-overview-insights { padding: .85rem !important; }
.cde-insight-heading { padding: .1rem .05rem .65rem; border-bottom: 1px solid #e8edf2; color: #526174; font-size: .74rem; font-weight: 740; }
.cde-insight-heading i { margin-right: .3rem; color: #5273bb; }
.cde-insight-list { padding-top: .35rem; }
.cde-insight-row { display: flex; min-height: 2rem; align-items: center; justify-content: space-between; gap: .75rem; border-radius: 5px; padding: .35rem .05rem; color: #607087; font-size: .75rem; }
a.cde-insight-row:hover { background: #f6f8fb; color: #344256; }
.cde-insight-row strong { color: #263244; font-size: .78rem; }
.cde-insight-callout { display: flex; align-items: flex-start; gap: .5rem; margin-top: .7rem; border-top: 1px solid #e8edf2; padding: .7rem .05rem .05rem; color: #50627c; font-size: .71rem; line-height: 1.1rem; }
.cde-insight-callout i { color: #2563eb; }
.cde-alert-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.cde-alert-row { min-width: 0; border-left: 3px solid #d5dce5; background: #fbfcfd; padding: .7rem .75rem; color: #526174; }
.cde-alert-row[data-level="danger"],
.cde-alert-row[data-level="critical"] { border-left-color: #dc2626; background: #fff5f5; }
.cde-alert-row[data-level="warning"],
.cde-alert-row[data-level="high"] { border-left-color: #d88716; background: #fffaf0; }
.cde-alert-row[data-level="info"],
.cde-alert-row[data-level="medium"] { border-left-color: #0e8cbe; background: #f2faff; }
.cde-alert-row-title { color: #334155; font-size: .78rem; }

.cde-workspace-nav {
    display: grid;
    grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr);
    overflow: hidden;
    margin-bottom: 1rem;
    border: 1px solid var(--modern-border);
    border-radius: var(--modern-radius);
    background: #fff;
    box-shadow: var(--modern-shadow-sm);
}
.cde-workspace-nav-context { display: flex; min-width: 0; align-items: center; gap: .6rem; border-right: 1px solid #e6ebf1; padding: .65rem .8rem; }
.cde-workspace-nav-icon { display: inline-flex; width: 2rem; height: 2rem; flex: 0 0 2rem; align-items: center; justify-content: center; border-radius: 6px; background: #eaf0ff; color: #2857c0; }
.cde-workspace-nav-context strong { display: block; overflow: hidden; color: #344256; font-size: .76rem; line-height: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.cde-workspace-nav-context small { display: block; overflow: hidden; margin-top: .1rem; color: #8390a1; font-size: .64rem; line-height: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.cde-workspace-overview-link { margin-left: auto; color: #64748b; font-size: .68rem; white-space: nowrap; }
.cde-workspace-overview-link:hover { color: var(--modern-primary); }
.cde-workspace-overview-link i { margin-right: .2rem; }
.cde-workspace-nav-tabs { display: flex; min-width: 0; overflow-x: auto; padding: 0 .35rem; scrollbar-width: thin; }
.cde-workspace-nav-tab { display: inline-flex; min-height: 3.3rem; flex: 0 0 auto; align-items: center; gap: .35rem; border-bottom: 2px solid transparent; padding: .65rem .6rem .55rem; color: #6a788c; font-size: .72rem; font-weight: 650; white-space: nowrap; }
.cde-workspace-nav-tab:hover { color: #344256; background: #fafbfd; }
.cde-workspace-nav-tab.is-active { border-bottom-color: var(--modern-primary); color: #2155be; }

.cde-project-workspace .ui-page-header { margin-top: .15rem; }
.cde-launchpad { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr); gap: 1.25rem; padding: 1.25rem !important; }
.cde-launchpad-copy { min-width: 0; }
.cde-launchpad-icon { display: inline-flex; width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center; border-radius: 7px; background: #eaf0ff; color: #2857c0; font-size: 1.1rem; }
.cde-launchpad h2 { margin: .8rem 0 .3rem; color: #263244; font-size: 1rem; font-weight: 760; line-height: 1.35rem; }
.cde-launchpad p { max-width: 38rem; color: #68788e; font-size: .78rem; line-height: 1.25rem; }
.cde-launchpad-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.cde-launchpad-steps { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.cde-launchpad-steps li { display: grid; grid-template-columns: 1.65rem minmax(0, 1fr); gap: .6rem; align-items: start; border-left: 1px solid #d9e2ef; padding: .08rem 0 .55rem .65rem; color: #68788e; font-size: .73rem; line-height: 1.1rem; }
.cde-launchpad-steps li:last-child { padding-bottom: .08rem; }
.cde-launchpad-step-number { display: inline-flex; width: 1.45rem; height: 1.45rem; align-items: center; justify-content: center; border-radius: 999px; background: #edf3ff; color: #2a58bd; font-size: .67rem; font-weight: 760; }
.cde-launchpad-steps strong { display: block; margin-bottom: .1rem; color: #405167; font-size: .75rem; }
.cde-data-partition {
    border: 1px solid #dfe6ef;
    border-radius: var(--modern-radius);
    background: #fff;
    padding: 1rem;
    box-shadow: var(--modern-shadow-sm);
}
.cde-data-partition-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.cde-data-partition-heading h2 { margin: .14rem 0 0; color: #263244; font-size: .98rem; font-weight: 760; line-height: 1.3rem; }
.cde-filter-status { display: inline-flex; min-height: 2rem; align-items: center; gap: .35rem; border: 1px solid #bcd3fa; border-radius: 999px; background: #edf3ff; padding: .3rem .65rem; color: #2857c0; font-size: .69rem; font-weight: 720; }
.cde-data-kind-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; margin: .9rem 0 1rem; }
.cde-data-kind-tab {
    display: grid;
    min-width: 0;
    min-height: 4.8rem;
    grid-template-columns: 1.65rem minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    align-items: center;
    gap: .15rem .5rem;
    border: 1px solid #dce4ee;
    border-radius: 7px;
    background: #fbfcfe;
    padding: .65rem .7rem;
    color: #526174;
    text-align: left;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.cde-data-kind-tab:hover { border-color: #aebfd7; background: #fff; color: #344256; }
.cde-data-kind-tab.is-active { border-color: #8eaff3; background: #eef4ff; box-shadow: inset 0 0 0 1px #d4e2ff; color: #2155be; }
.cde-data-kind-icon { display: inline-flex; grid-row: span 2; width: 1.65rem; height: 1.65rem; align-items: center; justify-content: center; border-radius: 5px; background: #eef2f7; color: #65758a; font-size: .78rem; }
.cde-data-kind-tab.is-active .cde-data-kind-icon { background: #dce8ff; color: #275bc6; }
.cde-data-kind-cad .cde-data-kind-icon { background: #eef0ff; color: #5b50c8; }
.cde-data-kind-ifc .cde-data-kind-icon { background: #e8f7ff; color: #0e7ca8; }
.cde-data-kind-empty .cde-data-kind-icon { background: #fff6df; color: #a1660a; }
.cde-data-kind-label { overflow: hidden; font-size: .7rem; font-weight: 700; line-height: 1rem; text-overflow: ellipsis; white-space: nowrap; }
.cde-data-kind-tab strong { grid-column: 2; color: inherit; font-size: 1rem; line-height: 1rem; }
.cde-data-filter-grid { display: grid; grid-template-columns: minmax(13rem, 1.55fr) repeat(4, minmax(8.5rem, 1fr)) minmax(6.5rem, .72fr) minmax(8.75rem, .9fr); gap: .65rem; align-items: end; border-top: 1px solid #edf1f5; padding-top: .9rem; }
.cde-data-filter-grid .ui-field-label { display: block; color: #66758a; font-size: .66rem; font-weight: 720; }
.cde-data-filter-grid input,
.cde-data-filter-grid select { min-height: 2.35rem; border: 1px solid #d5dee9; border-radius: 6px; background: #fff; color: #425269; }
.cde-data-filter-command { display: flex; align-items: end; }
.cde-data-filter-command .ui-btn { min-height: 2.35rem; justify-content: center; }
.cde-cad-status-strip { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-top: .85rem; border-top: 1px solid #edf1f5; padding-top: .75rem; }
.cde-cad-status-heading { margin-right: .15rem; color: #66758a; font-size: .67rem; font-weight: 760; }
.cde-cad-status-heading i { color: #526fe0; }
.cde-cad-status-chip { display: inline-flex; min-height: 1.85rem; align-items: center; gap: .35rem; border: 1px solid #dde5ef; border-radius: 999px; background: #fafbfd; padding: .25rem .55rem; color: #617086; font-size: .66rem; font-weight: 680; }
.cde-cad-status-chip:hover { border-color: #aec2e5; background: #f4f7fc; color: #334155; }
.cde-cad-status-chip.is-active { border-color: #9db8f1; background: #edf3ff; color: #2658be; }
.cde-cad-status-chip strong { color: inherit; font-size: .68rem; }
.cde-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.cde-filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.cde-filter-group-label { color: #7a899c; font-size: .67rem; font-weight: 700; }
.cde-inline-empty { padding: 1.25rem; }

/* Authentication and installer */
.auth-panel,
.install-panel { border-radius: var(--modern-radius) !important; box-shadow: var(--modern-shadow-float) !important; }
.auth-panel .rounded-2xl,
.auth-panel .rounded-xl { border-radius: var(--modern-radius) !important; }
.install-logo { box-shadow: var(--modern-shadow-md); }

/* Dark mode */
html.dark { color-scheme: dark; }
html.dark body,
html.dark main#main-content { background: #111820 !important; }
html.dark .app-topbar { border-color: #2c3948 !important; background: rgba(23, 32, 43, .94) !important; }
html.dark .app-topbar-label { color: #e7edf5 !important; }
html.dark .app-topbar button:hover,
html.dark .app-topbar a:not(.group):hover,
html.dark .app-topbar a.group:hover { border-color: #3a485a; background: #202b38 !important; }
html.dark .global-search input { border-color: #384659 !important; background: #111820; }
html.dark .ui-card,
html.dark main#main-content .ux-section,
html.dark main#main-content .compact-panel { border-color: #334152 !important; background: #1a2430 !important; }
html.dark .ui-card-header { border-color: #334152 !important; background: #1d2835; }
html.dark .ui-page-title,
html.dark .ui-stat-value { color: #edf2f7 !important; }
html.dark .ui-page-subtitle,
html.dark .ui-field-label,
html.dark .ui-field-hint { color: #9ba9bb !important; }
html.dark input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html.dark select,
html.dark textarea { border-color: #3b495b !important; background-color: #121a23 !important; color: #e2e8f0; }
html.dark .ui-table thead { background: #141d27 !important; color: #9ba9bb !important; }
html.dark .ui-table tbody tr { border-color: #303d4d !important; }
html.dark .ui-table tbody tr:hover,
html.dark main#main-content details > summary:hover { background: #202b38 !important; }
html.dark .ui-table-shell-pagination { border-color: #334152; background: #1d2835; }
html.dark .ui-state { border-color: #405064; background: #141d27; }
html.dark .ui-state-title { color: #e5ebf3; }
html.dark .app-footer { border-color: #2c3948 !important; background: #151e28; }
html.dark .cde-priority-strip { border-color: #7c5a23; background: #2a2317; }
html.dark .cde-priority-item { border-color: #5d4828; background: #211d16; color: #d7deea; }
html.dark .cde-priority-item:hover { border-color: #a4772c; background: #2b251b; color: #fff; }
html.dark .cde-priority-code { background: #3b2d16; color: #f0c36d; }
html.dark .cde-priority-item small { color: #b8a786; }
html.dark .cde-workspace-nav { border-color: #334152; background: #1a2430; }
html.dark .cde-workspace-nav-context { border-color: #334152; }
html.dark .cde-workspace-nav-context strong { color: #e5ebf3; }
html.dark .cde-workspace-nav-icon { background: #1e3567; color: #aac5ff; }
html.dark .cde-workspace-nav-tab:hover { background: #202b38; color: #e5ebf3; }
html.dark .cde-workspace-nav-tab.is-active { color: #aac5ff; }
html.dark .cde-filter-chip { border-color: #3b495b; background: #141d27; color: #aab7c8; }
html.dark .cde-filter-chip:hover { background: #202b38; color: #e5ebf3; }
html.dark .cde-filter-chip.is-active { border-color: #4569bd; background: #1c315f; color: #c3d4ff; }
html.dark .cde-insight-heading,
html.dark .cde-insight-callout { border-color: #334152; }
html.dark .cde-insight-row strong { color: #e5ebf3; }
html.dark a.cde-insight-row:hover { background: #202b38; color: #dbe5f3; }
html.dark .cde-alert-row { background: #141d27; color: #aab7c8; }
html.dark .cde-alert-row[data-level="danger"],
html.dark .cde-alert-row[data-level="critical"] { background: #311b20; }
html.dark .cde-alert-row[data-level="warning"],
html.dark .cde-alert-row[data-level="high"] { background: #2a2317; }
html.dark .cde-alert-row[data-level="info"],
html.dark .cde-alert-row[data-level="medium"] { background: #142634; }
html.dark .cde-alert-row-title { color: #e5ebf3; }
html.dark .cde-checkbox-command { border-color: #3b495b; background: #141d27; color: #b8c5d5; }
html.dark .cde-launchpad-icon,
html.dark .cde-launchpad-step-number { background: #1c315f; color: #b8cdff; }
html.dark .cde-launchpad h2,
html.dark .cde-launchpad-steps strong { color: #e5ebf3; }
html.dark .cde-launchpad p,
html.dark .cde-launchpad-steps li { color: #aab7c8; }
html.dark .cde-launchpad-steps li { border-color: #405064; }
html.dark .cde-data-partition { border-color: #334152; background: #1a2430; }
html.dark .cde-data-partition-heading h2 { color: #e5ebf3; }
html.dark .cde-filter-status { border-color: #4262a7; background: #1c315f; color: #bdd1ff; }
html.dark .cde-data-kind-tab { border-color: #394757; background: #141d27; color: #aab7c8; }
html.dark .cde-data-kind-tab:hover { border-color: #52657c; background: #202b38; color: #e5ebf3; }
html.dark .cde-data-kind-tab.is-active { border-color: #4569bd; background: #1c315f; box-shadow: inset 0 0 0 1px #31518e; color: #c3d4ff; }
html.dark .cde-data-kind-icon { background: #263445; color: #aab7c8; }
html.dark .cde-data-kind-tab.is-active .cde-data-kind-icon { background: #29467d; color: #d4e0ff; }
html.dark .cde-data-filter-grid,
html.dark .cde-cad-status-strip { border-color: #334152; }
html.dark .cde-data-filter-grid .ui-field-label,
html.dark .cde-cad-status-heading { color: #aab7c8; }
html.dark .cde-data-filter-grid input,
html.dark .cde-data-filter-grid select { border-color: #3b495b; background: #121a23; color: #e2e8f0; }
html.dark .cde-cad-status-chip { border-color: #3b495b; background: #141d27; color: #aab7c8; }
html.dark .cde-cad-status-chip:hover { border-color: #52657c; background: #202b38; color: #e5ebf3; }
html.dark .cde-cad-status-chip.is-active { border-color: #4569bd; background: #1c315f; color: #c3d4ff; }

@media (max-width: 1180px) {
    .global-search input { width: 14rem !important; }
    .cde-portfolio-content { grid-template-columns: 1fr; }
    .cde-data-kind-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cde-data-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cde-data-filter-search { grid-column: span 2; }
}
@media (max-width: 1380px) {
    .app-user-meta { display: none !important; }
    .global-search input { width: 14rem !important; }
}
@media (max-width: 1023px) {
    .app-sidebar { width: min(17rem, 88vw) !important; }
    .app-main { margin-left: 0 !important; }
    .app-topbar { min-height: 4rem !important; padding: .55rem .75rem !important; }
    main#main-content { padding: 1rem !important; }
    .ui-page-header { align-items: flex-start !important; }
}
@media (max-width: 640px) {
    main#main-content { padding: .75rem !important; }
    .dashboard-structure-card,
    .dashboard-utility-card { min-height: 0; }
    .keep-mobile-grid.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .app-topbar-actions { gap: .1rem !important; }
    .app-topbar button,
    .app-topbar a:not(.group) { min-width: 2.35rem; min-height: 2.35rem; }
    .ui-page-title { font-size: 1.28rem !important; line-height: 1.6rem !important; }
    .ui-page-subtitle { font-size: .76rem !important; }
    .ui-card-header { min-height: auto; padding: .72rem .8rem !important; }
    .capital-cashflow-header { align-items: stretch; flex-direction: column; gap: .4rem; padding: .5rem .65rem; }
    .capital-cashflow-heading { justify-content: space-between; }
    .capital-asof-form { width: 100%; }
    main#main-content input.capital-asof-input { width: auto; flex: 1 1 auto; font-size: 1rem; }
    .ui-filter-card { padding: .75rem !important; }
    .ui-table th,
    .ui-table td { padding-left: .65rem !important; padding-right: .65rem !important; }
    .ui-table-shell-header { align-items: flex-start; flex-direction: column; }
    .ui-table-shell-tools { width: 100%; justify-content: space-between; }
    .cde-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cde-priority-items { grid-template-columns: 1fr; }
    .cde-alert-list { grid-template-columns: 1fr; }
    .cde-workspace-nav { grid-template-columns: 1fr; }
    .cde-workspace-nav-context { border-right: 0; border-bottom: 1px solid #e6ebf1; }
    .cde-workspace-nav-tab { min-height: 2.85rem; }
    .cde-launchpad { grid-template-columns: 1fr; }
    .cde-data-partition { padding: .8rem; }
    .cde-data-partition-heading { gap: .65rem; }
    .cde-data-kind-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
    .cde-data-kind-tab { min-height: 4.25rem; padding: .55rem; }
    .cde-data-filter-grid { grid-template-columns: 1fr; gap: .55rem; }
    .cde-data-filter-search { grid-column: auto; }
    .cde-data-filter-command .ui-btn { width: 100%; }
    .cde-cad-status-strip { gap: .35rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
.ui-confirm-dialog { width:min(30rem, calc(100vw - 2rem)); max-width:calc(100vw - 2rem); max-height:calc(100vh - 2rem); margin:auto; overflow:visible; border:0; border-radius:8px; background:transparent; padding:0; color:#172033; }
.ui-confirm-dialog::backdrop { background:rgba(15,23,42,.58); backdrop-filter:blur(2px); }
.ui-confirm-dialog-panel { display:grid; grid-template-columns:auto minmax(0,1fr); gap:1rem; overflow:hidden; border:1px solid #dfe4ea; border-radius:8px; background:#fff; padding:1.25rem; box-shadow:0 24px 60px rgba(15,23,42,.28); animation:ui-confirm-enter .16s ease-out both; }
.ui-confirm-dialog-icon { display:flex; width:2.5rem; height:2.5rem; align-items:center; justify-content:center; border-radius:999px; background:#eef2ff; color:#4f46e5; font-size:1.1rem; }
.ui-confirm-dialog[data-variant="danger"] .ui-confirm-dialog-icon { background:#fef2f2; color:#dc2626; }
.ui-confirm-dialog-content { min-width:0; }
.ui-confirm-dialog-title { color:#0f172a; font-size:1rem; line-height:1.4rem; font-weight:750; }
.ui-confirm-dialog-message { margin-top:.4rem; color:#64748b; font-size:.875rem; line-height:1.4rem; overflow-wrap:anywhere; }
.ui-confirm-dialog-input { margin-top:1rem; }
.ui-confirm-dialog-input label { display:block; margin-bottom:.35rem; color:#334155; font-size:.78rem; font-weight:700; }
.ui-confirm-dialog-input input { width:100%; min-height:42px; border:1px solid #cbd5e1; border-radius:6px; background:#fff; padding:.6rem .7rem; color:#0f172a; font-size:.875rem; }
.ui-confirm-dialog-input input:focus { border-color:#6366f1; outline:3px solid rgba(99,102,241,.18); outline-offset:1px; }
.ui-confirm-dialog-input input[aria-invalid="true"] { border-color:#dc2626; }
.ui-confirm-dialog-input p { margin-top:.35rem; color:#b91c1c; font-size:.75rem; line-height:1.1rem; }
.ui-confirm-dialog-actions { grid-column:1 / -1; display:flex; justify-content:flex-end; gap:.6rem; margin-top:.25rem; }
.ui-btn-danger-solid { border-color:#dc2626; background:#dc2626; color:#fff; box-shadow:0 8px 18px rgba(220,38,38,.18); }
.ui-btn-danger-solid:hover { border-color:#b91c1c; background:#b91c1c; }
body.ui-confirm-dialog-open { overflow:hidden; }
html.dark .ui-confirm-dialog-panel { border-color:#475569; background:#1e293b; }
html.dark .ui-confirm-dialog-title { color:#f8fafc; }
html.dark .ui-confirm-dialog-message { color:#cbd5e1; }
html.dark .ui-confirm-dialog-input label { color:#e2e8f0; }
html.dark .ui-confirm-dialog-input input { border-color:#475569; background:#0f172a; color:#f8fafc; }
@keyframes ui-confirm-enter { from { transform:translateY(.5rem); opacity:0; } to { transform:translateY(0); opacity:1; } }
@media (max-width:480px) { .ui-confirm-dialog-panel { grid-template-columns:1fr; padding:1rem; } .ui-confirm-dialog-actions { flex-direction:column-reverse; } .ui-confirm-dialog-actions .ui-btn { width:100%; min-height:44px !important; } }
@media (prefers-reduced-motion:reduce) { .ui-confirm-dialog-panel { animation:none; } }

/* Capital portfolio reporting */
.capital-portfolio { display:grid; gap:1rem; }
.capital-portfolio-header { align-items:center; }
.capital-portfolio-export { display:flex; flex-wrap:wrap; gap:.5rem; }
.capital-portfolio-filters { padding:1rem; }
.capital-portfolio-filter-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:.75rem; align-items:end; }
.capital-portfolio-filter-grid label { display:grid; gap:.32rem; min-width:0; color:#526174; font-size:.72rem; font-weight:700; }
.capital-portfolio-filter-grid input, .capital-portfolio-filter-grid select { width:100%; min-height:2.45rem; border:1px solid #cbd5e1; border-radius:6px; background:#fff; padding:.45rem .6rem; color:#18212f; font-size:.82rem; }
.capital-portfolio-search { grid-column:span 2; }
.capital-portfolio-filter-actions { display:flex; gap:.45rem; }
.capital-portfolio-kpis { display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:.75rem; }
.capital-portfolio-kpi { display:flex; min-height:6.5rem; gap:.75rem; border:1px solid #dce3ea; border-radius:8px; background:#fff; padding:1rem; box-shadow:var(--modern-shadow-sm); }
.capital-portfolio-kpi > i { display:grid; width:2.35rem; height:2.35rem; flex:0 0 2.35rem; place-items:center; border-radius:6px; background:#eaf2ff; color:#2563eb; font-size:1.05rem; }
.capital-portfolio-kpi div { min-width:0; }.capital-portfolio-kpi span, .capital-portfolio-kpi small { display:block; color:#66758a; font-size:.72rem; }.capital-portfolio-kpi strong { display:block; overflow:hidden; margin-top:.2rem; color:#18212f; font-size:1.05rem; text-overflow:ellipsis; white-space:nowrap; }
.capital-portfolio-analytics { display:grid; grid-template-columns:1.3fr 1fr; gap:1rem; }
.capital-portfolio-secondary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.capital-portfolio-metric-list { display:grid; gap:.5rem; margin:0; }
.capital-portfolio-metric-list > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid #e7edf5; padding:.42rem 0; }
.capital-portfolio-metric-list dt { color:#526174; font-size:.76rem; }.capital-portfolio-metric-list dd { margin:0; color:#18212f; font-size:.8rem; font-weight:750; text-align:right; }.capital-portfolio-metric-list small { color:#7a889a; font-size:.64rem; }
.capital-portfolio-status-list { display:flex; flex-wrap:wrap; gap:.45rem; }.capital-portfolio-status-list span { display:inline-flex; align-items:center; gap:.45rem; border:1px solid #dce5ef; border-radius:999px; padding:.32rem .5rem; background:#f8fafc; color:#405068; font-size:.7rem; font-style:normal; }.capital-portfolio-status-list i { min-width:1.25rem; border-radius:999px; background:#e7edff; color:#244fbd; font-size:.65rem; font-style:normal; font-weight:800; text-align:center; }
.capital-portfolio-proposal-links { display:grid; gap:.35rem; margin-top:.75rem; }.capital-portfolio-proposal-links a { display:flex; justify-content:space-between; gap:.75rem; color:#2f5bd3; font-size:.73rem; }.capital-portfolio-proposal-links a b { color:#18212f; white-space:nowrap; }
.capital-portfolio-quality-list { display:grid; gap:.45rem; }.capital-portfolio-quality-list > div { display:grid; grid-template-columns:auto 1fr auto; gap:.5rem; align-items:start; border-radius:6px; padding:.48rem .55rem; background:#f8fafc; color:#526174; font-size:.72rem; }.capital-portfolio-quality-list .is-warning { background:#fff8e6; color:#8b5a00; }.capital-portfolio-quality-list .is-ok { background:#e9f8f1; color:#08775b; }
.capital-portfolio-panel, .capital-portfolio-table-panel, .capital-portfolio-alerts { min-width:0; padding:1rem; }
.capital-portfolio-panel-header { display:flex; align-items:flex-start; justify-content:space-between; gap:.75rem; margin-bottom:1rem; }.capital-portfolio-panel-header h2 { margin:0; color:#18212f; font-size:.93rem; font-weight:750; }.capital-portfolio-panel-header p { margin:.18rem 0 0; color:#718096; font-size:.75rem; }.capital-portfolio-rate { color:#08775b; font-size:1.1rem; font-weight:800; }
.capital-portfolio-trend { display:flex; min-height:9rem; align-items:end; gap:.65rem; }.capital-portfolio-trend-item { display:grid; min-width:2.5rem; flex:1; grid-template-rows:1fr auto auto; gap:.35rem; align-items:end; text-align:center; }.capital-portfolio-trend-bar { display:block; min-height:4px; height:var(--capital-trend); border-radius:4px 4px 0 0; background:#2b70d9; }.capital-portfolio-trend-item small { color:#66758a; font-size:.68rem; }.capital-portfolio-trend-item b { color:#334155; font-size:.7rem; }
.capital-portfolio-source-list { display:grid; gap:.75rem; }.capital-portfolio-source-list > div { display:grid; grid-template-columns:minmax(5rem, 1fr) minmax(4rem, 1.5fr) auto; gap:.55rem; align-items:center; color:#425066; font-size:.77rem; }.capital-portfolio-source-track, .capital-portfolio-progress { display:block; height:.45rem; overflow:hidden; border-radius:999px; background:#e7edf4; }.capital-portfolio-source-track i, .capital-portfolio-progress i { display:block; width:var(--capital-source, var(--capital-progress)); height:100%; border-radius:inherit; background:#0b8d68; }
.capital-portfolio-job { display:flex; align-items:center; gap:.55rem; border:1px solid #bcd5fb; border-radius:7px; background:#eff6ff; padding:.75rem .9rem; color:#23477b; font-size:.82rem; }.capital-portfolio-job a:not(.ui-btn) { color:#1d4ed8; font-weight:700; text-decoration:underline; }.capital-portfolio-job .ui-btn { margin-left:auto; }
.capital-portfolio-workspace { display:grid; grid-template-columns:minmax(0, 1fr) minmax(17rem, .38fr); gap:1rem; align-items:start; }.capital-portfolio-table th:not(:first-child), .capital-portfolio-table td:not(:first-child) { text-align:right; white-space:nowrap; }.capital-portfolio-table td:first-child strong, .capital-portfolio-table td:first-child span { display:block; }.capital-portfolio-table td:first-child span { margin-top:.15rem; color:#66758a; font-size:.72rem; }.capital-portfolio-progress { display:inline-block; width:3.6rem; margin-right:.35rem; vertical-align:middle; }.capital-portfolio-progress i { background:#2772d5; }.capital-portfolio-risk { display:inline-flex; border-radius:999px; padding:.22rem .48rem; font-size:.68rem; font-weight:750; }.capital-portfolio-risk.is-high { background:#fee2e2; color:#b42318; }.capital-portfolio-risk.is-medium { background:#fef3c7; color:#9a5b00; }.capital-portfolio-risk.is-low { background:#dff7ed; color:#08775b; }.capital-portfolio-pagination { margin-top:1rem; }
.capital-portfolio-alerts > div:last-child { display:grid; gap:.55rem; }.capital-portfolio-alert { display:flex; gap:.6rem; border-left:3px solid #e9a01b; border-radius:4px; background:#fff9eb; padding:.7rem; color:#3b4655; }.capital-portfolio-alert.is-high { border-color:#d43131; background:#fff4f4; }.capital-portfolio-alert i { color:inherit; }.capital-portfolio-alert strong, .capital-portfolio-alert small { display:block; }.capital-portfolio-alert strong { font-size:.78rem; }.capital-portfolio-alert small { margin-top:.2rem; color:#66758a; font-size:.72rem; }.capital-portfolio-empty { margin:auto; color:#8290a3; font-size:.8rem; text-align:center; }
html.dark .capital-portfolio-kpi, html.dark .capital-portfolio-filter-grid input, html.dark .capital-portfolio-filter-grid select { border-color:#3b495b; background:#141d27; color:#e5ebf3; } html.dark .capital-portfolio-kpi strong, html.dark .capital-portfolio-panel-header h2, html.dark .capital-portfolio-metric-list dd, html.dark .capital-portfolio-proposal-links a b { color:#e5ebf3; } html.dark .capital-portfolio-kpi > i { background:#1c315f; color:#bcd5ff; } html.dark .capital-portfolio-job { border-color:#31518e; background:#162849; color:#c3d4ff; } html.dark .capital-portfolio-alert { background:#2d2920; } html.dark .capital-portfolio-metric-list > div { border-color:#334155; } html.dark .capital-portfolio-status-list span, html.dark .capital-portfolio-quality-list > div { border-color:#3b495b; background:#18222f; color:#cbd5e1; }
@media (max-width:1180px) { .capital-portfolio-filter-grid { grid-template-columns:repeat(3, minmax(0,1fr)); }.capital-portfolio-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }.capital-portfolio-workspace { grid-template-columns:1fr; }.capital-portfolio-secondary { grid-template-columns:1fr 1fr; }.capital-portfolio-secondary > :last-child { grid-column:1 / -1; } }
@media (max-width:640px) { .capital-portfolio-header { align-items:flex-start; }.capital-portfolio-export, .capital-portfolio-export .ui-btn, .capital-portfolio-filter-actions, .capital-portfolio-filter-actions .ui-btn { width:100%; }.capital-portfolio-filter-grid, .capital-portfolio-analytics, .capital-portfolio-secondary { grid-template-columns:1fr; }.capital-portfolio-secondary > :last-child { grid-column:auto; }.capital-portfolio-search { grid-column:auto; }.capital-portfolio-kpis { grid-template-columns:1fr 1fr; gap:.55rem; }.capital-portfolio-kpi { min-height:5.8rem; padding:.75rem; }.capital-portfolio-kpi > i { display:none; }.capital-portfolio-kpi strong { font-size:.9rem; }.capital-portfolio-job { flex-wrap:wrap; }.capital-portfolio-job .ui-btn { margin-left:0; }.capital-portfolio-trend { gap:.35rem; }.capital-portfolio-table-panel, .capital-portfolio-alerts { padding:.75rem; } }

/* CAD index: compact operational summary and empty states */
.cad-page { display:grid; gap:.9rem; min-width:0; }
.cad-page-header { margin-bottom:0 !important; }
.cad-summary-grid,
.cad-engine-grid { margin-bottom:0 !important; }
.cad-summary-stat {
    display:flex;
    min-height:5.05rem !important;
    align-items:center;
    gap:.7rem;
    padding:.72rem .85rem !important;
    border:1px solid #dfe6ef;
    border-left:3px solid #64748b;
    border-radius:8px;
    background:#fff;
    box-shadow:var(--modern-shadow-sm);
}
.cad-summary-icon {
    display:inline-flex;
    width:2.25rem;
    height:2.25rem;
    flex:0 0 2.25rem;
    align-items:center;
    justify-content:center;
    border-radius:7px;
    background:#edf2ff;
    color:#315dc5;
    font-size:1rem;
}
.cad-summary-stat .ui-stat-label { line-height:1rem; }
.cad-summary-stat .ui-stat-value { margin-top:.15rem; font-size:1.45rem; line-height:1.65rem; }
.cad-summary-copy { display:grid; gap:.06rem; }
.cad-summary-note { overflow:hidden; color:#8a97a8; font-size:.64rem; line-height:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.cad-summary-stat-info { border-left-color:#2563eb; }
.cad-summary-stat-success { border-left-color:#059669; }
.cad-summary-stat-success .cad-summary-icon { background:#e7f8f0; color:#08775b; }
.cad-summary-stat-success .ui-stat-value { color:#08775b !important; }
.cad-summary-stat-warning { border-left-color:#d97706; }
.cad-summary-stat-warning .cad-summary-icon { background:#fff4df; color:#a35d08; }
.cad-summary-stat-warning .ui-stat-value { color:#b45309 !important; }
.cad-summary-stat-danger { border-left-color:#dc2626; }
.cad-summary-stat-danger .cad-summary-icon { background:#ffeded; color:#c52e2e; }
.cad-summary-stat-danger .ui-stat-value { color:#b91c1c !important; }
.cad-engine-card {
    min-height:4.35rem;
    align-items:center !important;
    padding:.7rem .85rem !important;
}
.cad-engine-copy { min-width:0; }
.cad-engine-heading { min-height:1.2rem; }
.cad-engine-icon { display:inline-flex; width:1.45rem; height:1.45rem; flex:0 0 1.45rem; align-items:center; justify-content:center; border-radius:5px; background:#e7f8f0; color:#08775b; font-size:.72rem; }
.cad-engine-icon.is-warning { background:#fff4df; color:#a35d08; }
.cad-engine-message {
    margin-top:.22rem;
    overflow-wrap:anywhere;
    color:#5f7085;
    font-size:.7rem;
    line-height:1.1rem;
}
.cad-upload-panel { margin-bottom:0 !important; }
.cad-revisions-section { min-width:0; }
.cad-revisions-toolbar { margin-bottom:.7rem !important; }
.cad-revisions-toolbar form { min-width:0; display:flex; flex-wrap:wrap; }
.cad-revisions-toolbar form input { min-width:12rem; }
.cad-revision-card { transition:border-color .16s ease, box-shadow .16s ease; }
.cad-revision-card:hover { border-color:#b7c7dc !important; box-shadow:var(--modern-shadow-md) !important; }
.cad-revision-preview { min-height:5rem; }
.cad-empty-state {
    display:flex;
    min-height:8rem;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:1.15rem;
    border-radius:var(--modern-radius);
    background:#f8fafb;
}
.cad-empty-icon { display:inline-flex; width:2.45rem; height:2.45rem; align-items:center; justify-content:center; border-radius:8px; background:#edf3ff; color:#4267c8; font-size:1.1rem; }
.cad-empty-action { margin-top:.75rem; min-height:2.15rem !important; }
.cad-revisions-heading { display:flex; min-width:0; align-items:flex-start; gap:.7rem; }
.cad-revisions-count { flex:0 0 auto; margin-top:.18rem; border:1px solid #dce5ef; border-radius:999px; background:#f8fafc; padding:.25rem .5rem; color:#68788e; font-size:.65rem; font-weight:720; white-space:nowrap; }
.cad-readiness { display:grid; grid-template-columns:auto minmax(8rem,1fr) auto; gap:.65rem; align-items:center; border:1px solid #dfe6ef; border-radius:7px; background:#fbfcfe; padding:.45rem .65rem; }
.cad-readiness-heading { display:flex; min-width:8.25rem; align-items:center; justify-content:space-between; gap:.55rem; color:#617086; font-size:.68rem; font-weight:720; }
.cad-readiness-heading i { margin-right:.2rem; color:#4267c8; }
.cad-readiness-heading strong { color:#263f8f; font-size:.72rem; }
.cad-readiness-track { height:.42rem; overflow:hidden; border-radius:999px; background:#e8edf4; }
.cad-readiness-track span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#4f73da,#18a77c); transition:width .25s ease; }
.cad-readiness-note { color:#8491a2; font-size:.64rem; text-align:right; white-space:nowrap; }
html.dark .cad-summary-icon { background:#1c315f; color:#bcd0ff; }
html.dark .cad-summary-stat-success .cad-summary-icon { background:#163c34; color:#8de0c1; }
html.dark .cad-summary-stat-warning .cad-summary-icon { background:#45351b; color:#f1c36d; }
html.dark .cad-summary-stat-danger .cad-summary-icon { background:#452329; color:#f2a5a5; }
html.dark .cad-engine-message { color:#aab7c8; }
html.dark .cad-empty-state { border-color:#465568; background:#141d27; color:#aab7c8; }
html.dark .cad-summary-stat { border-color:#334152; background:#1a2430; }
html.dark .cad-summary-note,
html.dark .cad-readiness-note { color:#9ba9bb; }
html.dark .cad-readiness { border-color:#334152; background:#141d27; }
html.dark .cad-readiness-heading { color:#b8c5d5; }
html.dark .cad-readiness-heading strong { color:#c3d4ff; }
html.dark .cad-readiness-track { background:#2a3645; }
html.dark .cad-revisions-count { border-color:#3b495b; background:#141d27; color:#aab7c8; }
html.dark .cad-empty-icon { background:#1c315f; color:#bcd0ff; }
html.dark .cad-engine-icon { background:#163c34; color:#8de0c1; }
html.dark .cad-engine-icon.is-warning { background:#45351b; color:#f1c36d; }
@media (max-width:640px) {
    .cad-page { gap:.7rem; }
    .cad-page .cad-summary-grid { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; gap:.55rem; }
    .cad-summary-stat { min-height:4.7rem !important; gap:.55rem; padding:.62rem .7rem !important; }
    .cad-summary-icon { width:2rem; height:2rem; flex-basis:2rem; font-size:.88rem; }
    .cad-summary-stat .ui-stat-value { font-size:1.22rem; line-height:1.45rem; }
    .cad-summary-note { font-size:.6rem; }
    .cad-readiness { grid-template-columns:1fr auto; gap:.4rem .55rem; }
    .cad-readiness-heading { min-width:0; }
    .cad-readiness-track { grid-column:1 / -1; grid-row:2; }
    .cad-readiness-note { font-size:.6rem; }
    .cad-engine-card { align-items:flex-start !important; padding:.65rem .7rem !important; }
    .cad-engine-card .ui-chip { margin-top:.05rem; }
    .cad-revisions-toolbar form { width:100%; gap:.45rem; }
    .cad-revisions-toolbar form input { min-width:0; flex:1 1 10rem; }
    .cad-revisions-toolbar form select { min-width:0; flex:1 1 9rem; }
    .cad-revisions-toolbar form .ui-btn { flex:0 0 2.4rem; }
    .cad-revision-card { gap:.7rem; padding:.8rem !important; }
    .cad-empty-state { min-height:6.5rem; padding:1rem; }
    .cad-revisions-heading { flex-direction:column; gap:.35rem; }
    .cad-revisions-count { margin-top:0; }
}
@media (max-width:360px) {
    .cad-page .cad-summary-grid { grid-template-columns:1fr !important; }
}
/* Portfolio management report: compact KPI strip */
.portfolio-kpi-strip {
    --portfolio-kpi-accent:#64748b;
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:1px;
    overflow:hidden;
    border:1px solid #dce4ed;
    border-radius:8px;
    background:#dce4ed;
    box-shadow:var(--modern-shadow-sm);
}
.portfolio-kpi-strip--compact { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.portfolio-kpi {
    position:relative;
    display:grid;
    min-width:0;
    min-height:5.7rem;
    align-content:center;
    gap:.16rem;
    padding:.68rem .82rem .68rem .95rem;
    background:#fff;
}
.portfolio-kpi::before {
    position:absolute;
    top:.68rem;
    bottom:.68rem;
    left:0;
    width:3px;
    border-radius:0 3px 3px 0;
    background:var(--portfolio-kpi-accent);
    content:"";
}
.portfolio-kpi-heading {
    display:flex;
    min-width:0;
    align-items:center;
    gap:.38rem;
    color:#68778a;
    font-size:.66rem;
    font-weight:760;
    letter-spacing:0;
    line-height:.95rem;
    text-transform:uppercase;
}
.portfolio-kpi-heading i {
    flex:0 0 auto;
    color:var(--portfolio-kpi-accent);
    font-size:.78rem;
}
.portfolio-kpi-heading span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.portfolio-kpi-value {
    overflow:hidden;
    color:var(--portfolio-kpi-accent);
    font-size:1.35rem;
    font-variant-numeric:tabular-nums;
    font-weight:800;
    line-height:1.55rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.portfolio-kpi-note {
    display:-webkit-box;
    min-height:.95rem;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    color:#8592a3;
    font-size:.67rem;
    line-height:.95rem;
}
.portfolio-kpi--investment { --portfolio-kpi-accent:#475569; }
.portfolio-kpi--allocation { --portfolio-kpi-accent:#0f766e; }
.portfolio-kpi--disbursement { --portfolio-kpi-accent:#2563eb; }
.portfolio-kpi--rate { --portfolio-kpi-accent:#6d4cc7; }
.portfolio-kpi--priority { --portfolio-kpi-accent:#b45309; }
html.dark .portfolio-kpi-strip { border-color:#344255; background:#344255; }
html.dark .portfolio-kpi { background:#18222e; }
html.dark .portfolio-kpi-heading { color:#aab6c5; }
html.dark .portfolio-kpi-note { color:#91a0b2; }
@media (max-width:1180px) {
    .portfolio-kpi-strip { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .portfolio-kpi-strip:not(.portfolio-kpi-strip--compact) > .portfolio-kpi:last-child { grid-column:1 / -1; }
}
@media (max-width:430px) {
    .portfolio-kpi-strip,
    .portfolio-kpi-strip--compact { grid-template-columns:1fr; }
    .portfolio-kpi-strip:not(.portfolio-kpi-strip--compact) > .portfolio-kpi:last-child { grid-column:auto; }
    .portfolio-kpi { min-height:4.95rem; }
}
@media print {
    .portfolio-kpi-strip { grid-template-columns:repeat(5, minmax(0, 1fr)); box-shadow:none; }
    .portfolio-kpi-strip--compact { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .portfolio-kpi-strip:not(.portfolio-kpi-strip--compact) > .portfolio-kpi:last-child { grid-column:auto; }
}

/* Disbursement report: annual and contract KPI bands */
.disbursement-kpi-strip {
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:1px;
    overflow:hidden;
    border:1px solid #d8e0e9;
    border-radius:8px;
    background:#d8e0e9;
    box-shadow:0 2px 8px rgba(15, 23, 42, .06);
}
.disbursement-kpi {
    --disbursement-kpi-accent:#475569;
    position:relative;
    display:flex;
    min-width:0;
    min-height:5.9rem;
    flex-direction:column;
    justify-content:center;
    gap:.16rem;
    padding:.68rem .9rem .68rem 1.02rem;
    background:#fff;
}
.disbursement-kpi::before {
    position:absolute;
    top:.68rem;
    bottom:.68rem;
    left:0;
    width:3px;
    border-radius:0 3px 3px 0;
    background:var(--disbursement-kpi-accent);
    content:"";
}
.disbursement-kpi-heading {
    display:flex;
    min-width:0;
    align-items:center;
    gap:.38rem;
    color:#68778a;
    font-size:.66rem;
    font-weight:760;
    letter-spacing:0;
    line-height:.95rem;
    text-transform:uppercase;
}
.disbursement-kpi-heading i {
    flex:0 0 auto;
    color:var(--disbursement-kpi-accent);
    font-size:.78rem;
}
.disbursement-kpi-heading span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.disbursement-kpi-value {
    overflow:hidden;
    color:var(--disbursement-kpi-accent);
    font-size:1.35rem;
    font-variant-numeric:tabular-nums;
    font-weight:800;
    line-height:1.55rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.disbursement-kpi-note {
    display:-webkit-box;
    min-height:.95rem;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    color:#8592a3;
    font-size:.67rem;
    line-height:.95rem;
}
.disbursement-kpi-progress {
    width:100%;
    height:.32rem;
    margin:.12rem 0 .08rem;
    overflow:hidden;
    border-radius:999px;
    background:#edf1f5;
}
.disbursement-kpi-progress > span {
    display:block;
    height:100%;
    border-radius:inherit;
    background:var(--disbursement-kpi-accent);
}
.disbursement-kpi--plan { --disbursement-kpi-accent:#475569; }
.disbursement-kpi--paid { --disbursement-kpi-accent:#059669; }
.disbursement-kpi--rate { --disbursement-kpi-accent:#d97706; }
.disbursement-kpi--contract-paid { --disbursement-kpi-accent:#0284c7; }
.disbursement-kpi--contract-value { --disbursement-kpi-accent:#334155; }
.disbursement-kpi--contract-rate { --disbursement-kpi-accent:#6d4cc7; }
.disbursement-contract-table-wrap {
    scrollbar-gutter:stable;
}
.disbursement-contract-table,
.disbursement-package-table {
    min-width:68rem;
    table-layout:fixed;
}
.disbursement-package-col--identity { width:18rem; }
.disbursement-package-col--project { width:14rem; }
.disbursement-contract-col--identity { width:19rem; }
.disbursement-contract-col--package { width:13rem; }
.disbursement-contract-col--count { width:4.75rem; }
.disbursement-contract-col--money { width:8.25rem; }
.disbursement-contract-col--rate { width:6.5rem; }
.disbursement-contract-table th,
.disbursement-contract-table td,
.disbursement-package-table th,
.disbursement-package-table td {
    vertical-align:middle;
}
.disbursement-contract-table th:nth-child(n+3),
.disbursement-contract-table td:nth-child(n+3),
.disbursement-package-table th:nth-child(n+3),
.disbursement-package-table td:nth-child(n+3),
.disbursement-contract-number,
.disbursement-contract-number > span {
    overflow-wrap:normal;
    white-space:nowrap;
    word-break:normal;
}
.disbursement-contract-number {
    font-variant-numeric:tabular-nums;
}
.disbursement-contract-number > span {
    display:inline-block;
}
html.dark .disbursement-kpi-strip { border-color:#344255; background:#344255; }
html.dark .disbursement-kpi { background:#18222e; }
html.dark .disbursement-kpi-heading { color:#aab6c5; }
html.dark .disbursement-kpi-note { color:#91a0b2; }
html.dark .disbursement-kpi-progress { background:#2a3746; }
@media (max-width:900px) {
    .disbursement-kpi-strip { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .disbursement-kpi-strip > .disbursement-kpi:last-child { grid-column:1 / -1; }
}
@media (max-width:520px) {
    .disbursement-kpi-strip { grid-template-columns:1fr; }
    .disbursement-kpi-strip > .disbursement-kpi:last-child { grid-column:auto; }
    .disbursement-kpi { min-height:5.15rem; }
}
@media print {
    .disbursement-kpi-strip { grid-template-columns:repeat(3, minmax(0, 1fr)); box-shadow:none; }
    .disbursement-kpi-strip > .disbursement-kpi:last-child { grid-column:auto; }
}

/* Risk report: compact portfolio status band */
.risk-kpi-strip {
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:1px;
    overflow:hidden;
    border:1px solid #d8e0e9;
    border-radius:8px;
    background:#d8e0e9;
    box-shadow:0 2px 8px rgba(15, 23, 42, .06);
}
.risk-kpi {
    --risk-kpi-accent:#475569;
    position:relative;
    display:flex;
    min-width:0;
    min-height:5.55rem;
    flex-direction:column;
    justify-content:center;
    gap:.16rem;
    padding:.65rem .78rem .65rem .95rem;
    background:#fff;
    color:inherit;
    text-decoration:none;
}
.risk-kpi::before {
    position:absolute;
    top:.65rem;
    bottom:.65rem;
    left:0;
    width:3px;
    border-radius:0 3px 3px 0;
    background:var(--risk-kpi-accent);
    content:"";
}
a.risk-kpi {
    transition:background-color .16s ease, box-shadow .16s ease;
}
a.risk-kpi:hover,
a.risk-kpi:focus-visible {
    z-index:1;
    background:#f8fafc;
    box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--risk-kpi-accent) 22%, transparent);
}
a.risk-kpi:focus-visible {
    outline:2px solid var(--risk-kpi-accent);
    outline-offset:-2px;
}
.risk-kpi-heading {
    display:flex;
    min-width:0;
    align-items:center;
    gap:.36rem;
    color:#68778a;
    font-size:.65rem;
    font-weight:760;
    letter-spacing:0;
    line-height:.92rem;
    text-transform:uppercase;
}
.risk-kpi-heading i {
    flex:0 0 auto;
    color:var(--risk-kpi-accent);
    font-size:.76rem;
}
.risk-kpi-heading span {
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.risk-kpi-value {
    overflow:hidden;
    color:var(--risk-kpi-accent);
    font-size:1.35rem;
    font-variant-numeric:tabular-nums;
    font-weight:800;
    line-height:1.5rem;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.risk-kpi-note {
    display:-webkit-box;
    min-height:.92rem;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    color:#8592a3;
    font-size:.65rem;
    line-height:.92rem;
}
.risk-kpi--scope { --risk-kpi-accent:#475569; }
.risk-kpi--high { --risk-kpi-accent:#c2410c; }
.risk-kpi--overdue { --risk-kpi-accent:#dc2626; }
.risk-kpi--open-risk { --risk-kpi-accent:#4f46e5; }
.risk-kpi--open-issue { --risk-kpi-accent:#0284c7; }
html.dark .risk-kpi-strip { border-color:#344255; background:#344255; }
html.dark .risk-kpi { background:#18222e; }
html.dark a.risk-kpi:hover,
html.dark a.risk-kpi:focus-visible { background:#1d2937; }
html.dark .risk-kpi-heading { color:#aab6c5; }
html.dark .risk-kpi-note { color:#91a0b2; }
@media (max-width:1180px) {
    .risk-kpi-strip { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .risk-kpi-strip > .risk-kpi:last-child { grid-column:1 / -1; }
}
@media (max-width:520px) {
    .risk-kpi-strip { grid-template-columns:1fr; }
    .risk-kpi-strip > .risk-kpi:last-child { grid-column:auto; }
    .risk-kpi { min-height:5rem; }
}
@media print {
    .risk-kpi-strip { grid-template-columns:repeat(5, minmax(0, 1fr)); box-shadow:none; }
    .risk-kpi-strip > .risk-kpi:last-child { grid-column:auto; }
}

/* Full-value money presentation on the capital workspace. */
.capital-index-money-table {
    min-width:58rem;
    table-layout:fixed;
}
.capital-index-money-table .capital-index-project-col { width:46%; }
.capital-index-money-table .capital-index-amount-col { width:18%; }
.capital-index-money-table th:not(:first-child),
.capital-index-money {
    overflow-wrap:normal;
    white-space:nowrap;
    word-break:normal;
    font-variant-numeric:tabular-nums;
}
.capital-index-total {
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    justify-content:space-between;
    gap:.25rem .75rem;
}
