:root {
    --green-900: #1b5e20;
    --green-800: #2e7d32;
    --green-700: #43a047;
    --green-100: #a5d6a7;
    --white: #fff;
    --paper: #f5f5f5;
    --text: #202b24;
    --muted: #68756c;
    --border: #e1e8e2;
    --danger: #c62828;
    --warning: #f9a825;
    --success: #2e7d32;
    --shadow: 0 12px 32px rgba(21, 55, 27, 0.07);
    --radius: 14px;
}

* { box-sizing: border-box; }
html { font-size: 16px; }
body {
    margin: 0;
    font-family: "Segoe UI", "Aptos", "Helvetica Neue", Arial, sans-serif;
    font-size: 0.9375rem;
    line-height: 1.55;
    background: #f4f7f4;
    color: var(--text);
}
body.app-body { height: 100vh; height: 100dvh; overflow: hidden; }

a { color: var(--green-800); text-decoration: none; }
button, input, select, textarea { font: inherit; }

.app-shell {
    display: flex;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
}

.sidebar {
    position: relative;
    isolation: isolate;
    width: 276px;
    flex: 0 0 276px;
    background:
        linear-gradient(165deg, #123f1c 0%, #174d22 46%, #1a5427 100%);
    color: #fff;
    padding: 25px 16px;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    box-shadow: 7px 0 28px rgba(13, 39, 19, .14);
}
.sidebar-art {
    position: absolute;
    z-index: -1;
    inset: 0 0 auto;
    height: 100%;
    min-height: 760px;
    pointer-events: none;
}
.sidebar-art svg { display: block; width: 100%; height: 100%; }
.sidebar > :not(.sidebar-art) { position: relative; z-index: 1; }
.sidebar::after {
    position: absolute;
    z-index: 0;
    inset: 0 auto 0 0;
    width: 3px;
    content: "";
    pointer-events: none;
    background: linear-gradient(180deg, rgba(169, 207, 133, .72), rgba(169, 207, 133, .06) 32%, rgba(169, 207, 133, .12));
}

.brand-box {
    display: block;
    margin-bottom: 20px;
    padding: 0 5px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.12);
}
.brand-lockup { display: flex; align-items: center; gap: 12px; color: #fff; }
.brand-lockup:hover { color: #fff; }
.brand-logo-frame { display: grid; place-items: center; flex: 0 0 49px; width: 49px; height: 49px; border: 0; border-radius: 50%; background: transparent; overflow: visible; box-shadow: none; }
.brand-logo-frame img { display: block; width: 49px; height: 49px; object-fit: contain; filter: drop-shadow(0 2px 5px rgba(0,0,0,.24)); }
.brand-copy { min-width: 0; }
.brand-copy strong { display: block; color: #fff; font-size: 1rem; letter-spacing: .06em; }
.brand-copy small { display: block; margin-top: 3px; color: rgba(255,255,255,.77); font-size: .67rem; line-height: 1.4; }
.brand-rule { height: 1px; margin: 15px 0 12px; background: rgba(255,255,255,.13); }
.brand-system { display: flex; align-items: center; gap: 9px; padding: 0 2px; }
.brand-system-mark { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; color: #d9efdc; background: rgba(255,255,255,.11); font-size: .75rem; font-weight: 800; }
.brand-system strong, .brand-system small { display: block; }
.brand-system strong { color: rgba(255,255,255,.91); font-size: .65rem; font-weight: 650; }
.brand-system small { color: rgba(255,255,255,.58); font-size: .62rem; }
.brand-mark {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,0.15);
    font-weight: 700;
}
.brand-mark.large {
    width: 72px;
    height: 72px;
    font-size: 24px;
    margin-bottom: 10px;
}
.brand-box strong, .brand-box small { display: block; }
.brand-box small { color: rgba(255,255,255,0.72); font-size: .72rem; margin-top: 2px; }
.user-card {
    display: flex;
    align-items: center;
    gap: 11px;
    background: rgba(255,255,255,0.09);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 23px;
}
.user-avatar { display: grid; place-items: center; width: 37px; height: 37px; flex: 0 0 37px; overflow: hidden; border-radius: 50%; background: #d7ead8; color: var(--green-900); font-weight: 700; }
.user-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.user-info { min-width: 0; }
.user-info strong, .user-info span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-info strong { font-size: .86rem; }
.user-info span { color: rgba(255,255,255,0.72); font-size: .76rem; }

.sidebar-nav { display: flex; flex-direction: column; gap: 17px; padding-bottom: 8px; }
.nav-section { display: flex; flex-direction: column; gap: 3px; }
.nav-section-label { padding: 0 11px; margin: 0 0 4px; color: rgba(255,255,255,.51); font-size: .59rem; font-weight: 750; letter-spacing: .13em; }
.nav-account-section { padding-top: 14px; border-top: 1px solid rgba(255,255,255,.12); }
.nav-item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    color: #fff;
    background: transparent;
    padding: 9px 11px;
    border: 1px solid transparent;
    border-radius: 8px;
    min-height: 41px;
    font-size: .81rem;
    font-weight: 500;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.nav-item:hover { color: #fff; background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,.07); }
.nav-item.active { color: #164d20; background: #fff; font-weight: 650; box-shadow: 0 3px 9px rgba(0,0,0,.08); }
.nav-item.danger { color: rgba(255,255,255,.77); }
.nav-item.danger:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-item-label { min-width: 0; }
.nav-icon { display: block; flex: 0 0 18px; width: 18px; height: 18px; color: rgba(255,255,255,.73); }
.nav-item.active .nav-icon { color: var(--green-800); }
.nav-item.danger .nav-icon { color: #f0b7b7; }

.main-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    flex: 1;
    min-width: 0;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    overflow: hidden;
}
.topbar {
    position: sticky; top: 0; z-index: 5;
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    min-height: 92px; padding: 17px 34px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--border);
    backdrop-filter: blur(10px);
}
.topbar-title { display: flex; align-items: center; gap: 14px; min-width: 0; }
.topbar h1 { margin: 0; font-size: 1.5rem; line-height: 1.2; font-weight: 650; letter-spacing: -.025em; color: #1d3022; }
.eyebrow { display: block; margin-bottom: 5px; color: var(--muted); font-size: .62rem; font-weight: 700; letter-spacing: .12em; }
.topbar-actions { display: flex; gap: 12px; align-items: center; }
.workspace-chip { display: inline-flex; align-items: center; gap: 11px; border: 1px solid var(--border); padding: 8px 14px; border-radius: 11px; color: #405247; background: #fbfdfb; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.workspace-chip strong, .workspace-chip small { display: block; }
.workspace-chip strong { font-size: .72rem; color: #263b2d; letter-spacing: .04em; }
.workspace-chip small { margin-top: 1px; color: var(--muted); font-size: .66rem; font-weight: 500; }
.status-dot { display: inline-block; width: 7px; height: 7px; background: #3c9a50; border-radius: 50%; box-shadow: 0 0 0 3px #e6f3e8; }
.profile-menu { position: relative; }
.profile-trigger { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 4px 10px 4px 5px; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: var(--text); text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease; }
.profile-trigger:hover, .profile-trigger[aria-expanded="true"] { border-color: #b9d2bc; box-shadow: 0 3px 12px rgba(26,76,34,.09); }
.profile-avatar { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; overflow: hidden; border-radius: 50%; background: #e8f2e9; color: var(--green-900); font-size: .9rem; font-weight: 700; }
.profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-trigger-copy { min-width: 0; max-width: 170px; }
.profile-trigger-copy strong, .profile-trigger-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-trigger-copy strong { color: #304238; font-size: .74rem; font-weight: 650; }
.profile-trigger-copy small { margin-top: 2px; color: #7b887e; font-size: .65rem; }
.profile-chevron { width: 16px; height: 16px; margin-left: 2px; color: #738176; transition: transform .16s ease; }
.profile-trigger[aria-expanded="true"] .profile-chevron { transform: rotate(180deg); }
.profile-dropdown { position: absolute; top: calc(100% + 9px); right: 0; z-index: 30; width: 250px; padding: 7px; border: 1px solid #e1e8e2; border-radius: 12px; background: #fff; box-shadow: 0 14px 38px rgba(18,49,23,.16); }
.profile-dropdown[hidden] { display: none; }
.profile-dropdown-heading { padding: 11px 11px 12px; border-bottom: 1px solid #edf1ed; }
.profile-dropdown-heading strong, .profile-dropdown-heading small, .profile-dropdown-title { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-dropdown-title { margin-bottom: 4px; color: #859087; font-size: .63rem; font-weight: 650; letter-spacing: .05em; text-transform: uppercase; }
.profile-dropdown-heading strong { color: #2e4033; font-size: .78rem; }
.profile-dropdown-heading small { margin-top: 2px; color: #839087; font-size: .68rem; }
.profile-dropdown-link { display: flex; align-items: center; gap: 10px; min-height: 41px; padding: 8px 11px; border-radius: 8px; color: #435248; font-size: .77rem; font-weight: 550; }
.profile-dropdown-link:hover { color: #1d5d2a; background: #f2f7f2; }
.profile-dropdown-link svg { width: 17px; height: 17px; color: #718176; }
.profile-dropdown-link.profile-signout { margin-top: 4px; border-top: 1px solid #edf1ed; border-radius: 0 0 8px 8px; padding-top: 11px; color: #a44545; }
.profile-dropdown-link.profile-signout svg { color: #b65b5b; }
.profile-layout { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.8fr); gap: 18px; align-items: start; }
.profile-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 28px 20px; }
.profile-photo-large { display: grid; place-items: center; width: 112px; height: 112px; overflow: hidden; border: 4px solid #f0f6f1; border-radius: 50%; background: #e7f2e8; color: var(--green-900); font-size: 2.4rem; font-weight: 700; box-shadow: 0 0 0 1px #dce8dd; }
.profile-photo-large img { width: 100%; height: 100%; object-fit: cover; }
.profile-card h3 { margin: 17px 0 2px; color: #2a3f30; font-size: 1rem; }
.profile-card p { margin: 0; color: var(--muted); font-size: .79rem; }
.profile-account-id { margin-top: 11px; padding: 4px 9px; border-radius: 999px; color: #516458; background: #f1f5f1; font-size: .7rem; }
.profile-help { margin: -2px 0 16px; color: var(--muted); font-size: .81rem; }
.profile-upload-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; align-items: end; padding-bottom: 22px; border-bottom: 1px solid #e9eee9; }
.profile-upload-form label { grid-column: 1 / -1; }
.profile-upload-form input { min-width: 0; font-size: .77rem; }
.profile-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; padding-top: 8px; }
.profile-detail-grid > div { padding: 12px 0; border-bottom: 1px solid #eef2ee; }
.profile-detail-grid span, .profile-detail-grid strong { display: block; }
.profile-detail-grid span { margin-bottom: 3px; color: #829087; font-size: .68rem; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.profile-detail-grid strong { color: #35483a; font-size: .8rem; font-weight: 600; overflow-wrap: anywhere; }
.sidebar-toggle { display: none; border: 1px solid var(--border); background: #fff; border-radius: 9px; width: 42px; height: 42px; font-size: 1.2rem; color: var(--green-900); }

.content-wrap { width: 100%; height: 100%; min-height: 0; padding: 29px 34px 32px; max-width: 1680px; margin: 0 auto; overflow-y: auto; overscroll-behavior: contain; }
.page-header {
    display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 21px;
}
.page-header h2 { margin: 0; font-size: 1.3rem; font-weight: 650; letter-spacing: -.018em; color: #23372a; }
.page-header p { margin: 4px 0 0; color: var(--muted); font-size: .86rem; }

.stats-grid {
    display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 16px; margin-bottom: 24px;
}
.stats-grid.staff-summary-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.stats-grid.admin-summary-grid { grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 9px; }
.stat-card {
    background: #fff; border-radius: var(--radius); padding: 21px; box-shadow: var(--shadow);
    border: 1px solid var(--border);
}
.stat-card span { display: block; color: var(--muted); font-size: .8rem; font-weight: 600; }
.stat-card strong { display: block; font-size: 2.15rem; line-height: 1.15; letter-spacing: -.045em; margin: 12px 0 7px; color: #203c27; }
.stat-card small { color: var(--muted); font-size: .75rem; }
.stat-card.accent { background: linear-gradient(135deg, #effaf0, #fff); }
.admin-summary-grid .stat-card { min-width: 0; padding: 12px 11px; border-top: 3px solid #d9e3dc; overflow-wrap: anywhere; }
.admin-summary-grid .stat-card span { min-height: 2.4em; font-size: .68rem; line-height: 1.2; }
.admin-summary-grid .stat-card strong { margin: 7px 0 4px; font-size: 1.55rem; line-height: 1.1; overflow-wrap: anywhere; }
.admin-summary-grid .stat-card small { display: block; font-size: .62rem; line-height: 1.3; overflow-wrap: anywhere; }
.admin-summary-grid .stat-card-info { border-top-color: #3472a5; }
.admin-summary-grid .stat-card-warning { border-top-color: #b27a12; }
.admin-summary-grid .stat-card-danger { border-top-color: #b33f3f; }
.admin-summary-grid .stat-card-success { border-top-color: #34804a; }
.admin-summary-grid .stat-card-warning strong { color: #795600; }
.admin-summary-grid .stat-card-danger strong { color: #a3312a; }
.admin-summary-grid .stat-card-success strong { color: #21643b; }
.admin-summary-grid .stat-card-info strong { color: #245d96; }

.registry-search-row { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; padding: 13px 15px; }
.registry-search-row input[type="search"] { min-width: 160px; flex: 1 1 auto; }
.registry-result-count { flex: 0 0 auto; color: var(--muted); font-size: .78rem; white-space: nowrap; }

.dashboard-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 320px); gap: 18px; align-items: start; }
.dashboard-main { min-width: 0; }
.dashboard-main > .panel { margin-bottom: 18px; }
.dashboard-main > .content-grid { margin-bottom: 18px; }
.dashboard-sidebar { position: sticky; top: 16px; display: grid; gap: 14px; min-width: 0; }
.dashboard-sidebar .panel { padding: 17px; }
.dashboard-sidebar .panel-heading { align-items: flex-start; gap: 8px; margin-bottom: 12px; }
.dashboard-sidebar .panel-heading h3 { font-size: .98rem; }
.dashboard-sidebar .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: .73rem; }
.priority-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.priority-list li > a { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: 9px; padding: 9px 7px; border: 1px solid #e9eee9; border-radius: 9px; color: inherit; text-decoration: none; background: #fff; }
.priority-list li > a:hover { border-color: #b9d2bc; background: #f8fbf8; }
.priority-count { display: grid; place-items: center; min-width: 30px; height: 30px; border-radius: 8px; color: #80521a; background: #fff3df; font-size: .83rem; font-weight: 750; }
.priority-list strong, .priority-list small { display: block; }
.priority-list strong { color: #304336; font-size: .75rem; line-height: 1.35; }
.priority-list small { margin-top: 3px; color: var(--muted); font-size: .67rem; line-height: 1.4; }
.priority-empty { padding: 12px; border-radius: 8px; color: #52675a; background: #f2f7f2; font-size: .75rem; line-height: 1.5; }
.progress-group { padding: 9px 0; border-bottom: 1px solid #edf0ed; }
.progress-group:last-child { border-bottom: 0; }
.progress-group summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; color: #34473a; cursor: pointer; font-size: .78rem; font-weight: 700; }
.progress-group summary strong { color: #244b2d; font-size: .83rem; }
.progress-group ul { display: grid; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
.progress-group li { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: .7rem; }
.progress-group li strong { color: #3c4d40; font-weight: 700; }
.dashboard-sidebar-link { justify-content: center; }

.content-grid { display: grid; gap: 18px; }
.content-grid.two-column { grid-template-columns: repeat(2, minmax(0,1fr)); }
.content-grid.dashboard-queue-grid { grid-template-columns: minmax(0, 1fr); }
.dashboard-table-wrap { min-width: 0; overflow-x: hidden; }
.dashboard-table { width: 100%; min-width: 0; table-layout: fixed; }
.dashboard-table th, .dashboard-table td { overflow-wrap: anywhere; word-break: normal; }
.dashboard-recent-table th:nth-child(1) { width: 22%; }
.dashboard-recent-table th:nth-child(2) { width: 39%; }
.dashboard-recent-table th:nth-child(3) { width: 23%; }
.dashboard-recent-table th:nth-child(4) { width: 16%; }
.dashboard-action-table th:nth-child(1) { width: 31%; }
.dashboard-action-table th:nth-child(2) { width: 12%; }
.dashboard-action-table th:nth-child(3) { width: 14%; }
.dashboard-action-table th:nth-child(4) { width: 11%; }
.dashboard-action-table th:nth-child(5) { width: 15%; }
.dashboard-action-table th:nth-child(6) { width: 17%; }
.dashboard-table .badge { white-space: normal; }
.dashboard-table td .priority-badge { white-space: normal; }
.dashboard-action-table td[data-label="Deadline / delay"] .field-help { display: block; margin-top: 3px; }
.dashboard-highpriority-table th:nth-child(1) { width: 35%; }
.dashboard-highpriority-table th:nth-child(2) { width: 17%; }
.dashboard-highpriority-table th:nth-child(3) { width: 17%; }
.dashboard-highpriority-table th:nth-child(4) { width: 14%; }
.dashboard-highpriority-table th:nth-child(5) { width: 17%; }
.dashboard-compliance-table th:nth-child(1) { width: 45%; }
.dashboard-compliance-table th:nth-child(2) { width: 20%; }
.dashboard-compliance-table th:nth-child(3) { width: 17%; }
.dashboard-compliance-table th:nth-child(4) { width: 18%; }
.dashboard-decision-table th:nth-child(1) { width: 34%; }
.dashboard-decision-table th:nth-child(2) { width: 20%; }
.dashboard-decision-table th:nth-child(3) { width: 14%; }
.dashboard-decision-table th:nth-child(4) { width: 18%; }
.dashboard-decision-table th:nth-child(5) { width: 14%; }
.dashboard-table a { overflow-wrap: anywhere; }
.dashboard-empty-state { margin: 0; padding: 14px 16px; border: 1px dashed #d7e2d9; border-radius: 9px; color: #53665a; background: #f7faf7; font-size: .78rem; line-height: 1.45; overflow-wrap: anywhere; }
.dashboard-accomplishment-list { display: grid; gap: 12px; }
.dashboard-accomplishment-card { min-width: 0; padding: 16px; border: 1px solid #e3eae4; border-radius: 11px; background: #fff; }
.dashboard-accomplishment-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid #edf1ed; }
.dashboard-accomplishment-heading > div { min-width: 0; }
.dashboard-accomplishment-heading > div > span { display: block; color: #68776c; font-size: .69rem; line-height: 1.4; overflow-wrap: anywhere; }
.dashboard-accomplishment-heading h4 { margin: 4px 0 0; color: #304537; font-size: .91rem; line-height: 1.4; overflow-wrap: anywhere; }
.dashboard-accomplishment-heading .badge { flex: 0 0 auto; }
.dashboard-accomplishment-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.dashboard-accomplishment-metrics > div { min-width: 0; padding: 9px 10px; border-radius: 8px; background: #f7faf7; }
.dashboard-accomplishment-metrics dt, .dashboard-field-label { display: block; color: #718076; font-size: .64rem; font-weight: 700; line-height: 1.35; text-transform: uppercase; letter-spacing: .035em; overflow-wrap: anywhere; }
.dashboard-accomplishment-metrics dd { margin: 4px 0 0; color: #304537; font-size: .82rem; font-weight: 700; overflow-wrap: anywhere; }
.dashboard-accomplishment-footer { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px 20px; }
.dashboard-accomplishment-footer > div { display: grid; gap: 5px; min-width: 0; }
.dashboard-timing { font-size: .75rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.dashboard-timing-success { color: #21643b; }
.dashboard-timing-warning { color: #795600; }
.dashboard-timing-danger { color: #a3312a; }
.dashboard-timing-neutral { color: #56616d; }
.dashboard-accomplishment-remarks { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #edf1ed; color: #53665a; font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.dashboard-accomplishment-remarks strong { color: #34473a; }
.summary-period { overflow-wrap: anywhere; }
.report-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.decision-brief-filter { display: grid; grid-template-columns: minmax(220px, 1.5fr) repeat(2, minmax(140px, 1fr)) auto; align-items: end; gap: 12px; margin-bottom: 15px; }
.decision-brief-filter .form-group { min-width: 0; }
.decision-brief-filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.decision-brief-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 9px; margin: 0 0 15px; }
.decision-brief-meta > div { min-width: 0; padding: 10px 12px; border: 1px solid #e3eae4; border-radius: 9px; background: #f8fbf8; }
.decision-brief-meta span, .decision-brief-meta strong { display: block; overflow-wrap: anywhere; }
.decision-brief-meta span { color: #718076; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.decision-brief-meta strong { margin-top: 4px; color: #304537; font-size: .78rem; }
.decision-brief-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.decision-brief-kpis .stat-card { min-width: 0; padding: 14px; overflow-wrap: anywhere; }
.decision-brief-kpis .stat-card span { min-height: 2.4em; font-size: .72rem; line-height: 1.3; }
.decision-brief-kpis .stat-card strong { margin: 8px 0 4px; font-size: 1.7rem; overflow-wrap: anywhere; }
.decision-brief-kpis .stat-card small { font-size: .68rem; line-height: 1.4; overflow-wrap: anywhere; }
.decision-brief-panel { margin-bottom: 16px; }
.decision-brief-panel > .panel-heading { align-items: flex-start; gap: 12px; }
.decision-brief-panel > .panel-heading > div { min-width: 0; }
.decision-brief-panel > .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: .74rem; line-height: 1.45; overflow-wrap: anywhere; }
.decision-findings, .decision-brief-list { display: grid; gap: 9px; }
.decision-finding { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid #e5ebe6; border-left: 4px solid #7b8791; border-radius: 9px; background: #fbfcfb; }
.decision-finding > div { min-width: 0; }
.decision-finding strong { color: #34473a; font-size: .8rem; overflow-wrap: anywhere; }
.decision-finding p { margin: 3px 0 0; color: #68776c; font-size: .73rem; line-height: 1.45; overflow-wrap: anywhere; }
.decision-finding-warning { border-left-color: #b27a12; }
.decision-finding-danger { border-left-color: #b33f3f; }
.decision-finding-success { border-left-color: #34804a; }
.decision-brief-panel > .field-help { display: block; margin-top: 11px; }
.decision-brief-record { display: grid; grid-template-columns: minmax(0, 2fr) minmax(95px, .75fr) minmax(105px, .8fr) minmax(0, 1fr); align-items: center; gap: 10px; min-width: 0; padding: 11px 13px; border: 1px solid #e5ebe6; border-radius: 9px; background: #fff; }
.decision-brief-request { grid-template-columns: minmax(0, 2fr) minmax(95px, .75fr) minmax(105px, .8fr) minmax(0, 1fr) minmax(0, 1.15fr); }
.decision-brief-record > div { min-width: 0; }
.decision-brief-record > div:first-child a { color: #255d32; font-size: .78rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
.decision-brief-record small { display: block; margin-top: 3px; color: #78857b; font-size: .67rem; line-height: 1.4; overflow-wrap: anywhere; }
.decision-brief-record > div > span { display: block; color: #718076; font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .035em; }
.decision-brief-record > div > strong { display: block; margin-top: 3px; color: #34473a; font-size: .72rem; line-height: 1.4; overflow-wrap: anywhere; }
.decision-brief-subheading { margin: 18px 0 9px; color: #34473a; font-size: .82rem; }
.decision-brief-deadline-counts, .brief-status-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.decision-brief-deadline-counts span, .brief-status-summary span { padding: 5px 9px; border: 1px solid #e2e8e3; border-radius: 999px; color: #56616d; background: #f5f7f6; font-size: .68rem; font-weight: 700; overflow-wrap: anywhere; }
.decision-brief-deadline-counts .deadline-danger, .deadline-danger { color: #a3312a; }
.decision-brief-deadline-counts .deadline-warning, .deadline-warning { color: #795600; }
.decision-brief-deadline-counts .deadline-neutral { color: #56616d; }
.decision-brief-accomplishment { grid-template-columns: minmax(0, 1.6fr) minmax(100px, .7fr) minmax(105px, .8fr) minmax(80px, .6fr) minmax(135px, 1fr); align-items: start; }
.decision-brief-accomplishment p { grid-column: 1 / -1; margin: 0; padding-top: 8px; border-top: 1px solid #edf1ed; color: #68776c; font-size: .7rem; line-height: 1.45; overflow-wrap: anywhere; }
.timing-success { color: #21643b !important; }
.timing-warning { color: #795600 !important; }
.timing-danger { color: #a3312a !important; }
.timing-neutral { color: #56616d !important; }
.decision-brief-decision { min-width: 0; padding: 13px; border: 1px solid #e5ebe6; border-radius: 9px; }
.decision-brief-decision-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.decision-brief-decision-heading > div { min-width: 0; }
.decision-brief-decision-heading a { color: #255d32; font-size: .8rem; font-weight: 750; overflow-wrap: anywhere; }
.decision-brief-decision > p { margin: 9px 0; color: #4f6053; font-size: .74rem; line-height: 1.5; overflow-wrap: anywhere; }
.decision-source-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 7px; }
.decision-source-links a { min-width: 0; padding: 8px 10px; border: 1px solid #e7ede8; border-radius: 7px; color: #34473a; background: #f8fbf8; font-size: .69rem; line-height: 1.4; overflow-wrap: anywhere; }
.decision-source-links a span { display: block; margin-bottom: 2px; color: #718076; font-size: .58rem; font-weight: 750; text-transform: uppercase; }
.decision-source-links .field-help { grid-column: 1 / -1; }
[id^="request-"], [id^="action-"], [id^="accomplishment-"], [id^="decision-"] { scroll-margin-top: 24px; }
.decision-status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 9px; }
.decision-status-grid > article { min-width: 0; padding: 11px; border: 1px solid #e5ebe6; border-radius: 9px; background: #fbfcfb; }
.decision-status-grid h4 { margin: 0 0 8px; color: #34473a; font-size: .76rem; }
.decision-status-grid > article > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.decision-status-total { display: inline-flex; align-items: center; gap: 5px; }
.decision-status-total > strong { color: #34473a; font-size: .72rem; }
.audit-table { min-width: 0; table-layout: fixed; }
.audit-table th, .audit-table td { overflow-wrap: anywhere; }
.audit-table th:nth-child(1) { width: 17%; }
.audit-table th:nth-child(2) { width: 17%; }
.audit-table th:nth-child(3) { width: 14%; }
.audit-table th:nth-child(4) { width: 16%; }
.audit-table th:nth-child(5) { width: 36%; }
.audit-filter { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; margin-bottom: 16px; }
.audit-filter .section-actions { align-items: end; gap: 8px; margin: 0; }
.audit-values summary { color: #245d96; cursor: pointer; font-size: .72rem; font-weight: 700; }
.audit-values > strong { display: block; margin-top: 8px; color: #53665a; font-size: .66rem; }
.audit-values pre { max-width: 100%; margin: 4px 0 8px; padding: 9px; border-radius: 7px; color: #34473a; background: #f4f7f4; font: .67rem/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
[id^="request-"], [id^="action-"], [id^="accomplishment-"], [id^="decision-"] { scroll-margin-top: 24px; }
.panel {
    background: #fff; border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow); padding: 21px;
}
.panel-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.panel-heading h3 { margin: 0; font-size: 1rem; font-weight: 650; color: #26392c; }
.crud-form { margin-bottom: 18px; }
.crud-form > summary { display: flex; align-items: center; justify-content: space-between; min-height: 28px; color: #304537; cursor: pointer; font-size: .91rem; font-weight: 650; list-style: none; }
.crud-form > summary::-webkit-details-marker { display: none; }
.crud-form > summary::after { content: "+"; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 7px; color: var(--green-800); background: #eef6ef; font-size: 1.05rem; }
.crud-form[open] > summary { margin-bottom: 18px; padding-bottom: 12px; border-bottom: 1px solid #e9eee9; }
.crud-form[open] > summary::after { content: "−"; }
.crud-form form { padding-top: 2px; }
.crud-form .section-actions { grid-column: 1 / -1; gap: 8px; margin: 0; }
.inline-form, .table-actions { display: inline-flex; align-items: center; gap: 6px; }
.table-actions { min-width: 160px; flex-wrap: wrap; }
.registry-actions-cell { white-space: nowrap; }
.registry-table { min-width: 1260px; table-layout: fixed; }
.registry-table th:nth-child(1), .registry-table td:nth-child(1) { width: 125px; }
.registry-table th:nth-child(2), .registry-table td:nth-child(2) { width: 190px; }
.registry-table th:nth-child(3), .registry-table td:nth-child(3) { width: 85px; }
.registry-table th:nth-child(4), .registry-table td:nth-child(4) { width: 90px; }
.registry-table th:nth-child(5), .registry-table td:nth-child(5) { width: 125px; }
.registry-table th:nth-child(6), .registry-table td:nth-child(6) { width: 135px; }
.registry-table th:nth-child(7), .registry-table td:nth-child(7) { width: 180px; }
.registry-table th:nth-child(8), .registry-table td:nth-child(8) { width: 100px; }
.registry-table th:nth-child(9), .registry-table td:nth-child(9) { width: 230px; }
.registry-actions { display: flex; width: 100%; flex-wrap: nowrap; align-items: center; gap: 4px; white-space: nowrap; }
.registry-actions .inline-form { margin: 0; }
.registry-actions .button.small { flex: 0 0 auto; gap: 4px; padding-right: 6px; padding-left: 6px; }
.registry-actions .registry-action-view { border: 1px solid #c9def5; color: #205b91; background: #edf5ff; }
.registry-actions .registry-action-view:hover { color: #174773; background: #dfeeff; box-shadow: 0 3px 8px rgba(32,91,145,.12); }
.registry-actions .registry-action-edit { border: 1px solid #cce4d4; color: #27633e; background: #eef7f0; }
.registry-actions .registry-action-edit:hover { color: #1d4e30; background: #e0f0e4; box-shadow: 0 3px 8px rgba(39,99,62,.12); }
.registry-actions .registry-action-cancel { border: 1px solid #edc9c6; color: #a3312a; background: #fff3f1; }
.registry-actions .registry-action-cancel:hover { color: #842720; background: #ffe6e2; box-shadow: 0 3px 8px rgba(163,49,42,.12); }
.document-detail-page { display: grid; gap: 16px; min-width: 0; }
.document-detail-header { align-items: flex-start; gap: 20px; margin-bottom: 0; padding: 21px 23px; border: 1px solid #e2eae3; border-radius: 13px; background: linear-gradient(120deg, #fff 45%, #f3f8f3); box-shadow: 0 5px 18px rgba(25,55,31,.035); }
.document-detail-header > div:first-child { min-width: 0; }
.document-detail-header h2 { margin: 5px 0 11px; color: #26392c; font-size: 1.38rem; line-height: 1.35; overflow-wrap: anywhere; }
.document-detail-identifiers { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: #68786d; font-size: .73rem; }
.document-detail-identifiers > span:first-child { padding-right: 8px; border-right: 1px solid #dce5dd; }
.document-detail-identifiers strong { color: #34473a; font-weight: 750; }
.document-detail-direction { padding: 4px 9px; border: 1px solid #dceade; border-radius: 999px; color: #347642; background: #eff7f0; font-size: .67rem; font-weight: 700; text-transform: capitalize; }
.document-detail-toolbar { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.document-detail-toolbar .button { min-height: 37px; padding: 8px 11px; font-size: .74rem; }
.document-next-step { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 19px; border: 1px solid #cfe2d2; border-left: 4px solid #34804a; border-radius: 11px; background: #f2f8f3; }
.document-next-step-label { display: block; margin-bottom: 4px; color: #27633e; font-size: .67rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
.document-next-step p { margin: 0; color: #405247; font-size: .81rem; line-height: 1.5; }
.document-next-step .button { flex: 0 0 auto; }
.document-detail-tabs { display: flex; gap: 5px; min-width: 0; padding: 5px; overflow-x: auto; border: 1px solid #e1e9e2; border-radius: 11px; background: #f4f7f4; scrollbar-width: thin; }
.document-detail-tab { position: relative; flex: 0 0 auto; min-height: 42px; padding: 10px 16px; border: 1px solid transparent; border-radius: 8px; color: #647268; background: transparent; font: inherit; font-size: .78rem; font-weight: 700; white-space: nowrap; cursor: pointer; transition: color .15s ease, background .15s ease, box-shadow .15s ease; }
.document-detail-tab:hover { color: #285b36; background: #eaf2eb; }
.document-detail-tab.is-active { border-color: #d3e4d5; color: #205b31; background: #fff; box-shadow: 0 2px 7px rgba(31,75,40,.09); }
.document-detail-tab:focus-visible { outline: 3px solid #78a9ff; outline-offset: 2px; }
.document-detail-section { min-width: 0; margin: 0; padding: 19px 21px; }
.document-detail-section-heading { align-items: flex-start; gap: 12px; margin-bottom: 15px; }
.document-detail-section-heading p { margin: 4px 0 0; color: #77847a; font-size: .73rem; line-height: 1.45; }
.document-record-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 22px; }
.document-record-item { min-width: 0; padding: 11px 0; border-bottom: 1px solid #edf1ed; }
.document-record-item > span, .document-record-item > strong { display: block; }
.document-record-item > span { margin-bottom: 4px; color: #829087; font-size: .65rem; font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.document-record-item > strong { color: #35483a; font-size: .79rem; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.document-record-item-wide { grid-column: 1 / -1; }
.document-detail-section .panel-heading h3 { font-size: .96rem; }
.document-detail-section .table-wrap { min-width: 0; border: 1px solid #edf1ed; border-radius: 9px; }
.document-detail-section table { margin: 0; }
.document-detail-section > p { color: #69786e; font-size: .77rem; line-height: 1.55; }
.document-detail-section .workflow-form { margin-top: 14px; padding: 16px; border: 1px solid #e6eee7; border-radius: 10px; background: #f8fbf8; }
.document-detail-section .workflow-form .section-actions { grid-column: 1 / -1; margin: 0; }
.button-icon { display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; }
.action-icon { display: block; width: 19px; height: 19px; flex: 0 0 19px; }
.button.small .action-icon { width: 19px; height: 19px; flex-basis: 19px; }
.inline-form select { min-width: 115px; min-height: 36px; padding: 6px 8px; font-size: .74rem; }
.checkbox-field { display: flex; align-items: center; gap: 8px; font-size: .81rem; }
.checkbox-field input { width: 17px; min-height: 17px; }
.pagination { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-top: 16px; color: var(--muted); font-size: .78rem; }

.table-wrap { overflow-x: auto; }
.ocr-text { max-height: 360px; overflow: auto; padding: 14px; border-radius: 8px; background: #f7f9f7; white-space: pre-wrap; overflow-wrap: anywhere; font: .78rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }
table {
    width: 100%; border-collapse: collapse; min-width: 600px; font-size: .83rem;
}
th, td { padding: 13px 12px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
th { background: #f7faf7; color: #59685d; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .065em; }
tbody tr:hover { background: #f8fbf8; }

.button {
    display: inline-flex; align-items: center; justify-content: center; border: none; border-radius: 8px; min-height: 42px; padding: 10px 15px; cursor: pointer; font-size: .82rem; font-weight: 650; transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.button:hover { transform: translateY(-1px); }
.button:focus-visible, a:focus-visible { outline: 3px solid #78a9ff; outline-offset: 2px; }
.button:disabled, .button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.button-primary { background: var(--green-800); color: #fff; box-shadow: 0 4px 9px rgba(46,125,50,.15); }
.button-primary:hover { background: var(--green-900); box-shadow: 0 6px 14px rgba(46,125,50,.22); }
.button-ghost { background: #f3f4f6; color: var(--text); }
.button-danger { background: var(--danger); color: #fff; }
.button.small { min-height: 36px; padding: 7px 11px; font-size: .76rem; }
.button-icon svg, .button svg { width: 16px; height: 16px; flex: 0 0 auto; }

.badge {
    display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid transparent; border-radius: 999px; font-size: .7rem; line-height: 1.2; font-weight: 750; text-transform: uppercase; letter-spacing: .025em; white-space: nowrap;
}
.badge::before { content: ""; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: currentColor; }
.badge-info { background: #edf5ff; border-color: #d5e6fc; color: #245d96; }
.badge-progress { background: #eaf2ff; border-color: #cdddf7; color: #234f91; }
.badge-warning { background: #fff6df; border-color: #f4df9e; color: #795600; }
.badge-success { background: #eaf7ef; border-color: #cce8d5; color: #21643b; }
.badge-neutral { background: #f2f4f6; border-color: #e0e4e8; color: #56616d; }
.badge-danger { background: #fff0ef; border-color: #f3d0cd; color: #a3312a; }
.priority-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid transparent; border-radius: 6px; font-size: .72rem; line-height: 1.25; font-weight: 750; white-space: nowrap; }
.priority-badge::before { content: ""; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 2px; background: currentColor; }
.priority-low { background: #f1f4f2; border-color: #dfe6e1; color: #53665a; }
.priority-normal { background: #edf5ff; border-color: #d5e6fc; color: #245d96; }
.priority-high { background: #fff4df; border-color: #f1deb1; color: #795600; }
.priority-urgent { background: #fff0ef; border-color: #f3d0cd; color: #a3312a; }

.form-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px;
}
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-group[hidden] { display: none; }
label { font-size: .82rem; font-weight: 650; color: #34473a; }
input, select, textarea {
    width: 100%; min-height: 43px; border: 1px solid #d7e0d8; border-radius: 8px; padding: 10px 12px; background: #fff; color: var(--text); font-size: .86rem;
}
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(67,160,71,.18); border-color: #62a86a; }
textarea { min-height: 100px; resize: vertical; }

.alert {
    padding: 12px 14px; border-radius: 8px; margin-bottom: 16px; border: 1px solid transparent;
}
.alert-danger { background: #fdf1f1; border-color: #f5c2c7; color: #842029; }
.alert-success { background: #edf7ed; border-color: #bfe5bf; color: #0f5132; }

.document-register-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 2px 0 22px; }
.document-register-heading h2 { margin: 5px 0 4px; color: #23372a; font-size: 1.55rem; font-weight: 700; letter-spacing: -.035em; }
.document-register-heading p { margin: 0; color: var(--muted); font-size: .84rem; }
.document-register-kicker { color: #4a8552; font-size: .63rem; font-weight: 800; letter-spacing: .11em; }
.document-register-heading > .button { flex: 0 0 auto; }
.document-form-errors { padding: 15px 18px; }
.document-form-errors strong { display: block; margin-bottom: 5px; font-size: .84rem; }
.document-form-errors ul { margin: 0; padding-left: 19px; font-size: .8rem; }
.document-register-form { display: flex; flex-direction: column; gap: 17px; }
.document-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 275px; align-items: start; gap: 17px; }
.document-form-main { display: grid; gap: 16px; min-width: 0; }
.document-form-section, .document-summary-card, .document-register-tip { border: 1px solid #e2eae3; border-radius: 13px; background: #fff; box-shadow: 0 5px 18px rgba(25,55,31,.035); }
.document-form-section { padding: 21px 22px 23px; transition: border-color .18s ease, box-shadow .18s ease; }
.document-form-section:focus-within { border-color: #bbd7bf; box-shadow: 0 7px 21px rgba(34,93,46,.07); }
.document-section-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #edf1ed; }
.document-section-number { display: grid; place-items: center; flex: 0 0 37px; width: 37px; height: 37px; border: 1px solid #dceade; border-radius: 11px; color: #347642; background: #f0f7f1; font-size: .72rem; font-weight: 800; letter-spacing: .04em; }
.document-section-heading h3 { margin: 0; color: #293d30; font-size: .97rem; font-weight: 700; }
.document-section-heading p { margin: 3px 0 0; color: #77847a; font-size: .73rem; }
.document-form-section .form-grid { column-gap: 17px; row-gap: 16px; }
.document-form-section .document-workflow-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.document-form-section .document-workflow-status { grid-column: span 2; }
.document-form-section .form-group { min-width: 0; gap: 6px; }
.document-field-wide { grid-column: 1 / -1; }
.document-form-section label { display: flex; align-items: baseline; gap: 4px; font-size: .76rem; }
.required-mark { color: #b54747; font-size: .8rem; }
.document-form-section input, .document-form-section select, .document-form-section textarea { min-height: 42px; border-color: #dce5dd; border-radius: 8px; font-size: .82rem; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.document-form-section textarea { min-height: 88px; }
.document-form-section input:focus, .document-form-section select:focus, .document-form-section textarea:focus { outline: 3px solid rgba(67,160,71,.13); border-color: #6ba875; }
.document-form-section input[type="file"] { min-height: auto; padding: 9px; background: #fbfdfb; }
.document-scan-panel { display: grid; gap: 13px; padding: 16px; border: 1px dashed #cdddcf; border-radius: 10px; background: #f9fcf9; }
.document-scan-panel .form-group { max-width: 680px; }
.document-scan-divider { display: flex; align-items: center; gap: 12px; color: #879389; font-size: .68rem; }
.document-scan-divider::before, .document-scan-divider::after { content: ""; flex: 1; height: 1px; background: #e3ebe4; }
.document-scan-capture { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.document-scan-capture strong, .document-scan-capture small { display: block; }
.document-scan-capture strong { color: #35483a; font-size: .76rem; }
.document-scan-capture small { margin-top: 3px; color: #849087; font-size: .67rem; }
.document-scan-panel > .field-help { margin: 0; }
.document-scan-panel > [data-upload-filename] { padding-top: 9px; border-top: 1px solid #e5ede6; }
.document-attachment-list { display: grid; gap: 10px; }
.document-attachment-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid #e5ebe6; border-radius: 9px; }
.document-attachment-row strong, .document-attachment-row small { display: block; overflow-wrap: anywhere; }
.document-attachment-row strong { color: #304537; font-size: .82rem; }
.document-attachment-row small { margin-top: 3px; color: var(--muted); font-size: .68rem; }
.field-help { color: #849087; font-size: .67rem; line-height: 1.45; }
.field-help-warning { color: #a54c35; }
.record-autocomplete { position: relative; width: 100%; }
.record-autocomplete-list { position: absolute; z-index: 12; top: calc(100% + 5px); left: 0; right: 0; max-height: 230px; overflow: auto; padding: 5px; border: 1px solid #dce6dd; border-radius: 9px; background: #fff; box-shadow: 0 12px 28px rgba(21,55,27,.14); }
.record-autocomplete-list[hidden] { display: none; }
.record-autocomplete-option { display: block; width: 100%; border: 0; border-radius: 6px; padding: 9px 10px; color: #35483a; background: transparent; font: inherit; font-size: .77rem; line-height: 1.4; text-align: left; overflow-wrap: anywhere; cursor: pointer; }
.record-autocomplete-option:hover, .record-autocomplete-option.is-active { color: #245c30; background: #eef6ef; }
.record-autocomplete-option:focus-visible { outline: 2px solid #6ba875; outline-offset: -2px; }
.field-count { text-align: right; font-variant-numeric: tabular-nums; }
.document-register-aside { position: sticky; top: 18px; display: grid; gap: 12px; }
.document-summary-card { overflow: hidden; padding: 18px; background: linear-gradient(155deg, #fff 20%, #f7fbf7); }
.document-summary-label { color: #65806a; font-size: .6rem; font-weight: 800; letter-spacing: .1em; }
.document-preview-direction { display: inline-flex; margin-top: 15px; padding: 4px 9px; border: 1px solid #dceade; border-radius: 999px; color: #347642; background: #eff7f0; font-size: .65rem; font-weight: 700; }
.document-summary-card h3 { min-height: 45px; margin: 11px 0 18px; color: #263a2d; font-size: .96rem; line-height: 1.45; overflow-wrap: anywhere; }
.document-preview-tracking, .document-preview-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 10px 0; border-top: 1px solid #e8eee8; font-size: .69rem; }
.document-preview-tracking span, .document-preview-row span { color: #77847a; }
.document-preview-tracking strong, .document-preview-row strong { color: #35483a; text-align: right; overflow-wrap: anywhere; }
.document-preview-tracking strong { max-width: 145px; font-size: .68rem; }
.document-preview-row strong { font-size: .68rem; }
.document-register-tip { display: flex; align-items: flex-start; gap: 10px; padding: 14px; background: #f8fbf8; }
.document-tip-mark { display: grid; place-items: center; flex: 0 0 21px; width: 21px; height: 21px; border-radius: 50%; color: #387746; background: #e6f2e8; font-size: .72rem; font-weight: 800; }
.document-register-tip p { margin: 0; color: #6d7c70; font-size: .68rem; line-height: 1.55; }
.document-register-tip p strong { display: block; margin-bottom: 2px; color: #3a5140; font-size: .72rem; }
.document-form-actions { position: sticky; bottom: 0; z-index: 3; display: flex; justify-content: flex-end; gap: 9px; margin: 0 -2px; padding: 13px 15px; border: 1px solid #e2eae3; border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 -5px 20px rgba(23,47,28,.07); backdrop-filter: blur(12px); }
.document-form-actions .button { min-height: 42px; }
.document-form-actions .button-primary { min-width: 178px; }
.document-form-actions .button:disabled { cursor: wait; opacity: .78; transform: none; }
.document-form-actions .is-submitting .action-icon { animation: document-save-pulse .8s ease-in-out infinite alternate; }
@keyframes document-save-pulse { to { opacity: .45; transform: scale(.88); } }

.login-body {
    position: relative; display: grid; place-items: center; min-height: 100vh; padding: 40px 16px 24px; overflow-x: hidden;
    background: radial-gradient(ellipse at 15% 10%, #f1f8f1 0, transparent 38%), linear-gradient(135deg, #f4f8f4, #edf3ee);
}
.login-ambient { position: fixed; inset: 0; pointer-events: none; }
.login-ambient svg { width: 100%; height: 100%; }
.login-shell { position: relative; z-index: 1; width: min(510px, 100%); }
.login-card {
    position: relative; overflow: hidden; background: rgba(255,255,255,.96); padding: 32px 36px 27px; border-radius: 18px; box-shadow: 0 24px 64px rgba(24,66,32,.12); border: 1px solid #e0e9e1;
}
.login-card::before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 4px; background: linear-gradient(90deg, #1b5e20, #43a047 58%, #a5d6a7); }
.login-institution { display: flex; align-items: center; gap: 14px; }
.login-seal { width: 58px; height: 58px; object-fit: contain; }
.institution-label span, .institution-label small { display: block; }
.institution-label span { color: #26432d; font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.institution-label small { margin-top: 4px; color: #738076; font-size: .58rem; font-weight: 650; letter-spacing: .055em; line-height: 1.5; }
.login-rule { height: 1px; margin: 20px 0 23px; background: linear-gradient(90deg, #dce8de, transparent); }
.login-brand { margin-bottom: 21px; }
.login-kicker { color: #398047; font-size: .61rem; font-weight: 750; letter-spacing: .12em; }
.login-brand h1 { margin: 7px 0 4px; color: #203c27; font-size: 1.8rem; line-height: 1.2; letter-spacing: -.045em; }
.login-brand p { max-width: 390px; margin: 0; color: var(--muted); font-size: .85rem; }
.login-form { display: flex; flex-direction: column; gap: 16px; }
.login-form label { display: flex; flex-direction: column; gap: 7px; }
.login-form input { min-height: 47px; }
.login-form .button { min-height: 47px; margin-top: 3px; }
.login-security { display: flex; align-items: center; gap: 9px; margin-top: 22px; padding-top: 17px; border-top: 1px solid #e8eee8; color: #738076; font-size: .72rem; }
.security-icon { display: grid; place-items: center; flex: 0 0 21px; width: 21px; height: 21px; border-radius: 50%; color: #28733a; background: #e7f3e9; font-size: .68rem; font-weight: 800; }
.login-copyright { margin: 17px 0 0; color: #738076; text-align: center; font-size: .69rem; }
.login-copyright span { padding: 0 5px; color: #9cac9e; }

.site-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 74px; margin-top: 0; padding: 12px 34px; border-top: 1px solid #e2e9e3; color: #56665a; background: #fff; }
.footer-main, .footer-meta { position: relative; }
.footer-main { display: flex; align-items: center; gap: 11px; }
.footer-seal { display: block; width: 37px; height: 37px; padding: 2px; border: 1px solid #e7ece7; border-radius: 50%; background: #fff; object-fit: contain; }
.footer-identity strong, .footer-identity span, .footer-identity small { display: block; }
.footer-identity strong { color: #33453a; font-size: .74rem; font-weight: 700; }
.footer-identity span { margin-top: 2px; color: #78857b; font-size: .66rem; }
.footer-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; color: #718076; font-size: .66rem; }
.footer-meta small { color: #97a199; font-size: .62rem; }

.management-heading { align-items: flex-start; margin-bottom: 19px; }
.management-heading h3 { margin-top: 3px; font-size: 1.15rem; }
.management-heading p { margin: 5px 0 0; color: var(--muted); font-size: .79rem; }
.summary-kicker { color: #4a8552; font-size: .61rem; font-weight: 800; letter-spacing: .11em; }
.summary-filter { grid-template-columns: repeat(2, minmax(150px, 1fr)) auto; align-items: end; gap: 13px; margin: 0; padding: 15px 16px; border: 1px solid #e6ece7; border-radius: 11px; background: linear-gradient(110deg, #fafcfb, #f7faf7); }
.summary-filter .form-group { margin: 0; }
.summary-filter-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.summary-filter-actions .button { min-height: 38px; }
.summary-period { margin: 12px 2px 16px; color: #78857b; font-size: .72rem; }
.summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 13px; margin-bottom: 19px; }
.summary-card { position: relative; min-height: 113px; overflow: hidden; padding: 16px 17px; border: 1px solid #e5ebe6; border-radius: 11px; background: linear-gradient(145deg, #fff 28%, #f8fbf8); box-shadow: 0 3px 12px rgba(21,55,27,.035); }
.summary-card span, .summary-card small { display: block; color: var(--muted); }
.summary-card span { font-size: .75rem; font-weight: 650; }
.summary-card strong { display: block; margin: 8px 0 3px; color: #203c27; font-size: 1.9rem; line-height: 1.05; letter-spacing: -.045em; }
.summary-card small { font-size: .67rem; }
.summary-card-mark { position: absolute; right: 14px; top: 15px; display: grid !important; place-items: center; width: 34px; height: 34px; border-radius: 10px; color: #397a45 !important; background: #edf5ee; }
.summary-card-mark .action-icon { width: 19px; height: 19px; }
.summary-card-actions .summary-card-mark { color: #547a9b !important; background: #eef3f7; }
.summary-card-accomplishments .summary-card-mark { color: #88713e !important; background: #f7f3e9; }
.summary-card-decisions .summary-card-mark { color: #72649a !important; background: #f1eff7; }
.summary-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.summary-status-group { min-width: 0; padding: 16px 17px 8px; border: 1px solid #e6ece7; border-radius: 11px; background: #fff; }
.summary-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; padding-bottom: 11px; border-bottom: 1px solid #edf1ed; }
.summary-group-heading h4 { margin: 0; color: #304537; font-size: .82rem; font-weight: 700; }
.summary-group-heading > span { flex: 0 0 auto; padding: 3px 8px; border-radius: 999px; color: #52675a; background: #f0f5f1; font-size: .63rem; font-weight: 700; }
.summary-status-row { margin: 0 0 13px; }
.summary-status-row > div:first-child { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 6px; color: #56665a; font-size: .72rem; }
.summary-status-row strong { display: inline-flex; align-items: baseline; gap: 7px; color: #293b2e; font-size: .72rem; }
.summary-status-row strong small { color: #879389; font-size: .62rem; font-weight: 550; }
.summary-track { height: 7px; overflow: hidden; border-radius: 9px; background: #edf2ee; }
.summary-track > span { display: block; height: 100%; min-width: 3px; border-radius: inherit; background: linear-gradient(90deg, #368047, #76b77e); transition: width .25s ease; }
.summary-status-completed > span, .summary-status-verified > span, .summary-status-implemented > span, .summary-status-closed > span { background: linear-gradient(90deg, #2e7d32, #69ad70); }
.summary-status-cancelled > span, .summary-status-overdue > span, .summary-status-incomplete > span, .summary-status-missing > span { background: linear-gradient(90deg, #bd5252, #e08b7b); }
.summary-status-under_review > span, .summary-status-awaiting_compliance > span, .summary-status-under_verification > span, .summary-status-in_progress > span { background: linear-gradient(90deg, #4d7796, #83a9c1); }
.summary-group-empty { margin: 0 0 9px; padding: 13px 10px; border-radius: 8px; color: #849087; background: #f8faf8; font-size: .71rem; text-align: center; }
.summary-empty { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 15px; padding: 13px 15px; border: 1px dashed #d7e2d9; border-radius: 9px; color: #718076; background: #fafcfb; font-size: .78rem; text-align: center; }

.section-actions { display: flex; justify-content: flex-end; margin-bottom: 16px; }
.mobile-scrim { display: none; }
@media (min-width: 769px) and (max-width: 1199px) {
    .sidebar { width: 246px; flex-basis: 246px; }
    .content-wrap { padding-left: 26px; padding-right: 26px; }
    .topbar { padding-left: 26px; padding-right: 26px; }
}

@media (max-width: 991px) {
    .sidebar {
       position: fixed; left: 0; top: 0; z-index: 20; width: min(290px, 84vw); height: 100vh;
       transform: translateX(-105%); transition: transform .24s ease; visibility: hidden;
    }
    body.sidebar-open .sidebar { transform: translateX(0); visibility: visible; }
    body.sidebar-open .mobile-scrim { display: block; position: fixed; inset: 0; z-index: 15; background: rgba(16,33,20,.46); }
    .sidebar-toggle { display: inline-grid; place-items: center; flex: 0 0 42px; }
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .stats-grid, .content-grid.two-column, .form-grid, .profile-layout, .summary-status-grid { grid-template-columns: 1fr; }
    .topbar { position: sticky; min-height: 76px; padding: 12px 16px; gap: 10px; }
    .topbar h1 { font-size: 1.1rem; }
    .eyebrow { font-size: .52rem; }
    .topbar-actions { display: flex; flex: 0 0 auto; }
    .workspace-chip { display: none; }
    .profile-trigger { min-height: 42px; padding: 3px 7px 3px 3px; gap: 6px; }
    .profile-avatar { width: 34px; height: 34px; flex-basis: 34px; }
    .profile-trigger-copy { display: none; }
    .profile-chevron { width: 14px; height: 14px; }
    .profile-dropdown { position: fixed; top: 68px; right: 12px; width: min(270px, calc(100vw - 24px)); }
    .content-wrap { padding: 21px 16px 30px; }
    .page-header { align-items: flex-start; flex-direction: column; }
    .page-header > .button, .page-header > a.button { width: 100%; }
    .panel { padding: 15px; }
    .section-actions { justify-content: stretch; flex-wrap: wrap; }
    .section-actions .button { flex: 1; }
    .summary-filter { grid-template-columns: 1fr 1fr; }
    .summary-filter-actions { grid-column: 1 / -1; justify-content: stretch; }
    .summary-filter-actions .button { flex: 1; }
    .summary-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .login-card { padding: 22px; }
    .site-footer { align-items: flex-start; flex-direction: column; gap: 10px; padding: 15px 18px; }
    .footer-meta { align-items: flex-start; padding-left: 48px; }
}

@media (max-width: 420px) {
    .stats-grid { gap: 11px; }
    .stat-card { padding: 16px; }
    .stat-card strong { font-size: 1.8rem; }
    .login-card { padding: 27px 22px 22px; }
    .login-seal { width: 49px; height: 49px; }
    .institution-label span { font-size: .61rem; }
    .institution-label small { font-size: .52rem; }
    .login-brand h1 { font-size: 1.55rem; }
    .login-copyright { font-size: .63rem; }
    .profile-detail-grid { grid-template-columns: 1fr; }
    .profile-upload-form { grid-template-columns: 1fr; }
    .profile-upload-form label { grid-column: auto; }
    .profile-upload-form .button { width: 100%; }
}

@media (min-width: 768px) and (max-width: 1050px) {
    .workspace-chip { display: none; }
    .profile-trigger-copy { max-width: 130px; }
}
