@charset "UTF-8";
:root {
    --navy: #0b1f3a;
    --blue: #173b66;
    --bg: #f5f7fb;
    --card: #ffffff;
    --text: #172033;
    --muted: #667085;
    --border: #e5e7eb;
    --green: #13795b;
    --red: #b42318
}

* {
    box-sizing: border-box
}

body {
    margin: 0;
    font-family: Inter,Segoe UI,Arial,sans-serif;
    background: var(--bg);
    color: var(--text)
}

.topbar {
    background: linear-gradient(135deg,var(--navy),var(--blue));
    color: white;
    padding: 18px 48px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 8px 30px rgba(15,23,42,.18)
}

.brand {
    font-size: 21px;
    font-weight: 800;
    letter-spacing: .2px
}

.subbrand {
    font-size: 13px;
    color: #eef5ff;
    margin-top: 4px;
    font-weight: 600
}

.topbar nav {
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end
}

.topbar a {
    color: white;
    text-decoration: none;
    font-weight: 700;
    font-size: 13px;
    opacity: .94
}

.page {
    max-width: 1320px;
    margin: 0 auto;
    padding: 28px
}

.hero-card, .table-card, .form-card, .empty-state, .kpi-card {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 22px;
    box-shadow: 0 14px 40px rgba(15,23,42,.06)
}

.hero-card {
    padding: 26px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: 12px;
    color: #315a8b;
    font-weight: 800;
    margin: 0 0 8px
}

.hero-card h1 {
    margin: 0;
    font-size: 30px;
    color: var(--navy)
}

.muted {
    color: var(--muted);
    margin: 8px 0 0
}

.primary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--navy);
    color: white;
    text-decoration: none;
    border: 0;
    border-radius: 14px;
    padding: 12px 18px;
    font-weight: 800;
    cursor: pointer;
    white-space: nowrap
}

.kpi-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 16px;
    margin-bottom: 20px
}

.kpi-card {
    padding: 20px
}

    .kpi-card span {
        font-size: 13px;
        color: var(--muted);
        font-weight: 700
    }

    .kpi-card strong {
        display: block;
        font-size: 30px;
        color: var(--navy);
        margin: 8px 0
    }

    .kpi-card small {
        color: var(--muted)
    }

.table-card {
    padding: 22px;
    margin-top: 20px
}

    .table-card.small {
        max-width: 860px
    }

.table-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 14px
}

    .table-header h2, .table-card h2 {
        margin: 0 0 6px;
        color: var(--navy)
    }

    .table-header p {
        margin: 0;
        color: var(--muted)
    }

.table-scroll {
    overflow: auto;
    border-radius: 16px;
    border: 1px solid var(--border)
}

table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: white;
    font-size: 13px
}

th {
    position: sticky;
    top: 0;
    background: #eef3fb;
    color: #243b5a;
    text-align: right;
    padding: 13px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .03em
}

    th:first-child, td:first-child {
        text-align: left
    }

    th span {
        font-weight: 600;
        color: #667085;
        text-transform: none;
        letter-spacing: 0
    }

td {
    padding: 13px 12px;
    border-bottom: 1px solid var(--border);
    text-align: right;
    white-space: nowrap
}

.company-cell {
    font-weight: 800;
    color: var(--navy);
    line-height: 1.25
}

.company-name {
    font-weight: 800;
    margin-bottom: 4px
}

.stock-price-line {
    font-weight: 700;
    color: #111827;
    font-size: 13px;
    margin-top: 2px
}

.stock-change-line {
    font-weight: 800;
    font-size: 12px;
    margin-top: 2px
}

    .stock-change-line.up {
        color: #07833d
    }

    .stock-change-line.down {
        color: #c03131
    }

.report-top-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 18px;
}



.report-upload-text {
    margin: 0;
    color: #7f8ca3;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

.price-update-text {
    color: #7f8ca3;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    text-align: right;
    margin-top: 4px;
}

.total-row {
    background: #f8fafc;
    font-weight: 800
}

.pill {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800
}

    .pill.listed {
        background: #e8f5ef;
        color: #087443
    }

    .pill.unlisted {
        background: #eef2ff;
        color: #3446a5
    }

.negative {
    color: var(--red);
    font-weight: 800
}

.messages {
    margin-bottom: 16px
}

.message {
    padding: 12px 16px;
    border-radius: 14px;
    margin-bottom: 10px;
    font-weight: 700
}

    .message.success {
        background: #e8f5ef;
        color: #087443
    }

    .message.error {
        background: #fee4e2;
        color: #b42318
    }

.form-card {
    max-width: 620px;
    padding: 24px
}

    .form-card form {
        display: grid;
        gap: 12px
    }

    .form-card label {
        font-weight: 800;
        color: var(--navy)
    }

input[type=text], input[type=file] {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: white
}

.empty-state {
    text-align: center;
    padding: 46px;
    margin-top: 20px
}

    .empty-state h2 {
        margin-top: 0;
        color: var(--navy)
    }

.stock-inline-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
    flex-wrap: wrap;
}

.stock-price-main {
    font-size: 13px;
    font-weight: 800;
    color: #071f3f;
}

.stock-change-inline {
    font-size: 12px;
    font-weight: 800;
}

    .stock-change-inline.up {
        color: #0a8f4d;
    }

    .stock-change-inline.down {
        color: #cf2e2e;
    }

@media(max-width:820px) {
    .topbar {
        padding: 16px;
        align-items: flex-start;
        gap: 12px;
        flex-direction: column
    }

    .page {
        padding: 16px
    }

    .hero-card {
        display: block
    }

        .hero-card .primary-btn {
            margin-top: 16px
        }

    .kpi-grid {
        grid-template-columns: 1fr
    }

    .hero-card h1 {
        font-size: 24px
    }

    td, th {
        padding: 11px 10px
    }
}

.logout-form {
    display: inline;
    margin: 0;
}

    .logout-form button {
        border: 0;
        background: rgba(255,255,255,0.14);
        color: #fff;
        padding: 9px 14px;
        border-radius: 999px;
        font-weight: 700;
        cursor: pointer;
    }

.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef3fa;
}

.login-shell {
    width: min(980px, 92vw);
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    background: #fff;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(8, 31, 74, 0.18);
}

.login-brand-panel {
    background: linear-gradient(135deg, #061f5b, #143f8a);
    color: #fff;
    padding: 60px;
}

    .login-brand-panel h1 {
        font-size: 46px;
        margin: 16px 0;
    }

    .login-brand-panel p {
        color: rgba(255,255,255,0.82);
        font-size: 17px;
        line-height: 1.7;
    }

.brand-mark {
    width: 54px;
    height: 54px;
    border-radius: 14px;
    background: rgba(255,255,255,0.14);
    display: grid;
    place-items: center;
    font-size: 30px;
    font-weight: 900;
}

.eyebrow.light {
    color: rgba(255,255,255,0.75);
}

.login-card {
    padding: 60px;
}

    .login-card h2 {
        font-size: 34px;
        margin: 8px 0 26px;
        color: #061f5b;
    }

    .login-card input {
        width: 100%;
        box-sizing: border-box;
        border: 1px solid #d5dfef;
        border-radius: 14px;
        padding: 14px 16px;
        margin: 8px 0 18px;
        font-size: 15px;
    }

.primary-btn.full {
    width: 100%;
    text-align: center;
    margin-top: 8px;
}

@media (max-width: 800px) {
    .login-shell {
        grid-template-columns: 1fr;
    }

    .login-brand-panel, .login-card {
        padding: 34px;
    }

        .login-brand-panel h1 {
            font-size: 34px;
        }
}

.hero-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
}

.price-update-text {
    color: rgba(11, 31, 63, 0.45);
    font-size: 13px;
    font-weight: 600;
    text-align: right;
}

.live-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #18a957;
    margin-left: 5px;
    vertical-align: middle;
}

@media (max-width: 760px) {
    .hero-actions {
        align-items: flex-start;
    }

    .price-update-text {
        text-align: left;
    }
}


.top-kpis {
    margin-top: 6px;
}

.breadcrumb {
    display: flex;
    gap: 8px;
    align-items: center;
    color: #7a8aa0;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 14px;
}

    .breadcrumb a {
        color: #315a8b;
        text-decoration: none;
    }

    .breadcrumb strong {
        color: var(--navy);
    }

.report-card {
    margin-top: 10px;
}

.sheet-toolbar {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    margin: 12px 0 16px;
    padding-bottom: 4px;
}

.sheet-tab {
    white-space: nowrap;
    text-decoration: none;
    border: 1px solid #d7e1ef;
    color: #173b66;
    background: #f7faff;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 800;
}

    .sheet-tab.active {
        background: var(--navy);
        color: #fff;
        border-color: var(--navy);
    }

.workbook-scroll {
    max-height: calc(100vh - 250px);
}

.workbook-table {
    font-size: 12px;
    min-width: 1100px;
}

    .workbook-table td {
        padding: 7px 9px;
        border-bottom: 1px solid #e8edf5;
        text-align: left;
        white-space: nowrap;
    }

        .workbook-table td.num {
            text-align: right;
        }

        .workbook-table td.bold {
            font-weight: 800;
        }

    .workbook-table tr.section-row td {
        background: #1f2933;
        color: #fff;
        font-weight: 800;
        border-bottom-color: #1f2933;
    }

    .workbook-table tr.total-row td,
    .workbook-table tr.sub-total-row td {
        background: #eef2f6;
        font-weight: 800;
    }

    .workbook-table tr.blank-row td {
        height: 14px;
        background: #fff;
        border-bottom: 0;
    }

.empty-state.inner {
    box-shadow: none;
    margin: 10px 0 0;
    border-style: dashed;
}

@media(max-width: 1100px) {
    .topbar {
        align-items: flex-start;
        flex-direction: column;
        padding: 16px 24px;
    }

        .topbar nav {
            justify-content: flex-start;
        }
}

/* Left navigation shell */
.app-shell {
    max-width: 1480px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 24px;
    padding: 28px;
}

    .app-shell .page {
        max-width: none;
        margin: 0;
        padding: 0;
    }

.side-menu {
    position: sticky;
    top: 24px;
    align-self: start;
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 22px;
    box-shadow: 0 14px 40px rgba(15,23,42,.06);
    padding: 16px;
}

.side-menu-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: #7a8aa0;
    font-weight: 900;
    margin: 4px 8px 12px;
}

.side-link,
.side-dropdown summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    text-decoration: none;
    color: var(--navy);
    font-size: 13px;
    font-weight: 900;
    border-radius: 14px;
    padding: 11px 12px;
    cursor: pointer;
}

    .side-link:hover,
    .side-dropdown summary:hover,
    .side-sub-link:hover {
        background: #f2f6fc;
    }

    .side-link.active,
    .side-sub-link.active {
        background: var(--navy);
        color: #ffffff;
    }

.side-dropdown {
    margin: 4px 0;
}

    .side-dropdown summary::after {
        content: '\25BE';
        font-size: 11px;
        color: #7a8aa0;
    }

    .side-dropdown[open] summary::after {
        content: '\25B4';
    }

    .side-dropdown summary::-webkit-details-marker {
        display: none;
    }

.side-submenu {
    display: grid;
    gap: 4px;
    padding: 4px 0 8px 12px;
}

.side-sub-link {
    text-decoration: none;
    color: #315a8b;
    font-size: 12px;
    font-weight: 800;
    border-radius: 12px;
    padding: 9px 10px;
}

.dashboard-workbook {
    max-height: calc(100vh - 360px);
}

@media(max-width: 980px) {
    .app-shell {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .side-menu {
        position: static;
    }
}

/* Clean workbook report tables such as Exit Summary */
.workbook-table tr.header-row td {
    background: #eef3fb;
    color: #243b5a;
    font-weight: 900;
    text-transform: none;
    border-bottom: 1px solid var(--border);
}

    .workbook-table tr.header-row td.num {
        text-align: right;
    }

.report-card .workbook-table tr.total-row td {
    background: #eef2f6;
    color: var(--navy);
    font-weight: 900;
}

.report-card .workbook-table td:first-child {
    font-weight: 800;
    color: var(--navy);
}

.report-card .workbook-scroll {
    border-radius: 16px;
    border: 1px solid var(--border);
}


/* Exit Summary: clean Track Record-style table with Excel-like beige header */
.exit-summary-table {
    min-width: 1450px;
    border-collapse: separate;
    border-spacing: 0;
}

    .exit-summary-table tr td {
        background: #ffffff !important;
        color: var(--ink) !important;
        font-weight: 500;
        border-bottom: 1px solid var(--border);
        padding: 13px 12px;
        white-space: nowrap;
    }

    .exit-summary-table tr.header-row td,
    .exit-summary-table tbody tr:first-child td {
        background: #ddd8bf !important;
        color: var(--navy) !important;
        font-weight: 900 !important;
        text-transform: none;
        font-size: 12px;
        line-height: 1.25;
        border-bottom: 1px solid #c8c2a8;
    }

    .exit-summary-table tr.total-row td {
        background: #f2f6fb !important;
        color: var(--navy) !important;
        font-weight: 900 !important;
    }

    .exit-summary-table td:first-child {
        font-weight: 900 !important;
        color: var(--navy) !important;
    }

    .exit-summary-table tr.header-row td:first-child,
    .exit-summary-table tbody tr:first-child td:first-child {
        border-top-left-radius: 14px;
    }

    .exit-summary-table tr.header-row td:last-child,
    .exit-summary-table tbody tr:first-child td:last-child {
        border-top-right-radius: 14px;
    }

/* Clean Exit Summary table: no Excel title/date band, no brown/dark rows */
.exit-summary-table {
    min-width: 1750px;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
}

    .exit-summary-table tr.header-row td {
        background: #eef3fb !important;
        color: #243b5a !important;
        font-weight: 900 !important;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: .03em;
        padding: 13px 12px;
        border-bottom: 1px solid var(--border) !important;
        border-top: 0 !important;
        white-space: normal;
        vertical-align: middle;
    }

        .exit-summary-table tr.header-row td:first-child,
        .exit-summary-table tr.header-row td:nth-child(2),
        .exit-summary-table tr.header-row td:nth-child(3) {
            text-align: left !important;
        }

    .exit-summary-table tr:not(.header-row) td {
        background: #fff !important;
        color: var(--text) !important;
        padding: 13px 12px;
        border-bottom: 1px solid var(--border) !important;
        border-top: 0 !important;
        white-space: nowrap;
    }

        .exit-summary-table tr:not(.header-row) td:first-child,
        .exit-summary-table tr:not(.header-row) td:nth-child(2),
        .exit-summary-table tr:not(.header-row) td:nth-child(3) {
            text-align: left !important;
        }

    .exit-summary-table tr.total-row td {
        background: #f8fafc !important;
        color: var(--navy) !important;
        font-weight: 900 !important;
    }

    .exit-summary-table tr.section-row td,
    .exit-summary-table tr.sub-total-row td {
        background: #fff !important;
        color: var(--text) !important;
    }


/* Clean Track Record header */
.table-header-clean {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 16px;
}

    .table-header-clean .price-update-text,
    #priceLastUpdated.price-update-text {
        color: #8a96ab;
        font-size: 13px;
        font-weight: 600;
        text-align: right;
        white-space: nowrap;
    }

.brand {
    font-size: 22px;
    font-weight: 800;
}


/* ===== Full-width readable portal refresh ===== */
:root {
    --bg: #f3f6fb;
    --card: #ffffff;
    --text: #0f1f35;
    --muted: #667085;
    --border: #d9e2ef;
    --navy: #071f3f;
    --blue: #123b6d;
}

html, body {
    width: 100%;
    min-height: 100%;
}

body {
    font-family: "Inter", "Segoe UI", Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    line-height: 1.45;
    background: var(--bg) !important;
    color: var(--text) !important;
}

.topbar {
    padding: 16px 28px !important;
    min-height: 64px;
}

.brand {
    font-size: 24px !important;
    font-weight: 850 !important;
    letter-spacing: -0.2px;
}

.app-shell {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 22px 24px !important;
    display: grid !important;
    grid-template-columns: 220px minmax(0, 1fr) !important;
    gap: 22px !important;
}

    .app-shell .page,
    .page {
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        min-width: 0 !important;
    }

.side-menu {
    width: 220px !important;
    padding: 14px !important;
    border-radius: 18px !important;
    border: 1px solid var(--border) !important;
    box-shadow: 0 10px 28px rgba(15,23,42,.06) !important;
}

.side-link,
.side-dropdown summary {
    font-size: 13px !important;
    padding: 10px 11px !important;
    border-radius: 12px !important;
}

.side-sub-link {
    font-size: 12px !important;
    padding: 8px 10px !important;
}

.table-card {
    width: 100% !important;
    margin-top: 0 !important;
    padding: 18px !important;
    border-radius: 18px !important;
    border: 1px solid var(--border) !important;
    box-shadow: 0 10px 28px rgba(15,23,42,.06) !important;
}

.table-header-clean {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    min-height: 18px;
    margin-bottom: 12px !important;
}

.price-update-text,
#priceLastUpdated.price-update-text {
    color: #8a96ab !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    text-align: right !important;
}

.table-scroll {
    width: 100% !important;
    overflow: auto !important;
    border-radius: 14px !important;
    border: 1px solid var(--border) !important;
}

    .portfolio-table,
    .table-scroll > table {
        width: 100% !important;
        min-width: 1180px;
        table-layout: auto !important;
        border-collapse: separate !important;
        border-spacing: 0 !important;
        font-size: 13px !important;
    }

        .portfolio-table thead th,
        .table-scroll > table thead th {
            background: #eef4fb !important;
            color: #102a43 !important;
            
            font-size: 11px !important;
            line-height: 1.25 !important;
            font-weight: 800 !important;
            letter-spacing: .02em !important;
            border-bottom: 1px solid var(--border) !important;
            vertical-align: bottom !important;
        }

        .portfolio-table tbody td,
        .table-scroll > table tbody td {
            padding: 12px 9px !important;
            font-size: 13px !important;
            line-height: 1.35 !important;
            border-bottom: 1px solid #edf1f6 !important;
            vertical-align: middle !important;
        }

        .portfolio-table tbody tr:hover,
        .table-scroll > table tbody tr:hover {
            background: #f8fbff !important;
        }

.company-cell {
    min-width: 210px !important;
    max-width: 270px;
    white-space: normal !important;
}

    .company-name,
    .company-cell strong {
        font-size: 12px !important;
        line-height: 1.25 !important;
        font-weight: 800 !important;
        color: var(--navy) !important;
    }

.stock-price-line,
.live-price {
    margin-top: 5px !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: #26364a !important;
}

.stock-change-line,
.price-up,
.price-down {
    margin-top: 2px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}

    .stock-change-line.up,
    .price-up {
        color: #0b8f4d !important;
    }

    .stock-change-line.down,
    .price-down {
        color: #c62828 !important;
    }

.pill {
    padding: 4px 9px !important;
    border-radius: 999px !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
}

.total-row td {
    background: #f4f7fb !important;
    font-weight: 900 !important;
    color: var(--navy) !important;
}

/* Workbook / exit summary pages also use more space */
.workbook-table {
    min-width: 1200px !important;
    font-size: 12.5px !important;
}

    .workbook-table td {
        padding: 9px 10px !important;
        line-height: 1.35 !important;
    }

.exit-summary-table {
    min-width: 1500px !important;
}

@media(max-width:980px) {
    .app-shell {
        grid-template-columns: 1fr !important;
        padding: 16px !important;
    }

    .side-menu {
        width: 100% !important;
        position: static !important;
    }

    .portfolio-table,
    .table-scroll > table {
        min-width: 1100px;
    }
}


/* upload date */
.report-upload-text {
    
    color: #7f8ca3;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
}

/* ===== Portal responsive polish across dashboard/report/upload pages ===== */
html { overflow-x: hidden; }
.topbar {
    gap: 16px !important;
    flex-wrap: wrap !important;
}
.topbar nav a, .logout-form button, .primary-btn {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.1;
}
.hero-card, .table-header, .report-top-row {
    gap: 16px !important;
    flex-wrap: wrap !important;
}
.kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
}
.kpi-card { min-width: 0; }
.kpi-card strong { word-break: break-word; }
.table-card, .hero-card, .form-card, .empty-state { max-width: 100%; }
.table-scroll, .workbook-scroll { -webkit-overflow-scrolling: touch; }
.side-menu { z-index: 2; }
.side-link, .side-dropdown summary { min-height: 40px; }

@media(max-width: 1180px) {
    .topbar { padding: 16px 20px !important; }
    .app-shell { grid-template-columns: 200px minmax(0, 1fr) !important; gap: 16px !important; padding: 18px !important; }
    .side-menu { width: 200px !important; }
}

@media(max-width: 900px) {
    .topbar { align-items: flex-start !important; flex-direction: column !important; }
    .topbar nav { justify-content: flex-start !important; width: 100%; }
    .app-shell { grid-template-columns: 1fr !important; padding: 14px !important; }
    .side-menu { width: 100% !important; position: static !important; }
    .hero-card { align-items: flex-start !important; flex-direction: column !important; }
    .hero-actions { align-items: flex-start !important; width: 100%; }
    .primary-btn { width: auto; }
    .report-top-row { flex-direction: column; align-items: flex-start !important; }
    .price-update-text { text-align: left !important; white-space: normal !important; }
}

@media(max-width: 560px) {
    body { font-size: 13px !important; }
    .brand { font-size: 21px !important; }
    .topbar nav { gap: 8px !important; }
    .topbar nav a, .logout-form button { padding: 8px 10px !important; font-size: 12px !important; }
    .table-card, .hero-card, .form-card { padding: 14px !important; border-radius: 16px !important; }
    .hero-card h1 { font-size: 22px !important; }
    .kpi-card strong { font-size: 24px !important; }
    .empty-state { padding: 28px 16px !important; }
    .sheet-toolbar { gap: 8px; }
    .sheet-tab { padding: 8px 10px; }
    .login-brand-panel, .login-card { padding: 24px !important; }
}


/* ===== Inter font final enforcement ===== */
html, body, button, input, select, textarea, table, div, span, a, p, label, th, td, h1, h2, h3, h4, h5, h6, summary {
    font-family: "Inter", "Segoe UI", Arial, Helvetica, sans-serif !important;
}
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
button, .btn, input[type="submit"], input[type="button"] {
    font-weight: 700 !important;
}


/* Board of Directors / Management Team */
.board-page{
    padding:22px;
}

.board-top-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    margin-bottom:18px;
}

.company-select-form{
    display:flex;
    align-items:center;
    gap:10px;
}

.company-select-form label{
    font-size:12px;
    font-weight:800;
    color:#64748b;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.company-select-form select{
    min-width:280px;
    border:1px solid var(--border);
    border-radius:12px;
    padding:11px 14px;
    font-weight:700;
    color:var(--navy);
    background:#fff;
}

.board-company-bar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    background:#f8fbff;
    border:1px solid #e2e8f0;
    border-radius:16px;
    padding:16px 18px;
    margin-bottom:24px;
}

.board-company-name{
    font-size:18px;
    font-weight:900;
    color:var(--navy);
    margin-bottom:4px;
}

.source-link{
    color:#315a8b;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
}

.source-muted{
    color:#94a3b8;
    font-size:13px;
    font-weight:700;
}

.small-btn{
    padding:10px 14px;
    font-size:13px;
}

.people-section{
    margin-top:24px;
}

.people-section-header{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    border-bottom:1px solid #e2e8f0;
    padding-bottom:10px;
    margin-bottom:12px;
}

.people-section-header h2{
    margin:0;
    font-size:20px;
    color:var(--navy);
    font-weight:900;
}

.people-section-header span{
    color:#94a3b8;
    font-size:13px;
    font-weight:800;
}

.people-list{
    display:grid;
    gap:10px;
}

.person-row{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) 28px;
    gap:16px;
    align-items:center;
    background:#fff;
    border:1px solid #e7edf5;
    border-radius:16px;
    padding:12px 14px;
    box-shadow:0 6px 18px rgba(15,23,42,.04);
}

.person-photo{
    width:58px;
    height:58px;
    border-radius:12px;
    overflow:hidden;
    background:#eef3fb;
    display:grid;
    place-items:center;
}

.person-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.person-initials{
    font-size:22px;
    font-weight:900;
    color:#315a8b;
}

.person-name{
    font-size:16px;
    font-weight:900;
    color:var(--navy);
}

.person-designation{
    font-size:13px;
    color:#334155;
    font-weight:700;
    margin-top:2px;
}

.person-bio{
    margin:7px 0 0;
    color:#64748b;
    font-size:13px;
    line-height:1.45;
}

.person-arrow{
    color:#94a3b8;
    font-size:28px;
    text-decoration:none;
    text-align:center;
}

.muted-arrow{
    opacity:.45;
}

@media(max-width:820px){
    .board-top-row,
    .board-company-bar{
        display:block;
    }

    .company-select-form{
        margin-top:14px;
        align-items:flex-start;
        flex-direction:column;
    }

    .company-select-form select{
        width:100%;
        min-width:0;
    }

    .board-company-bar .primary-btn{
        margin-top:14px;
    }
}


/* ===== Board of Directors clean card layout ===== */
.board-page-clean{
    padding:26px !important;
}

.board-hero{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:24px;
    margin-bottom:18px;
}

.board-company-picker{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.board-company-picker label{
    font-size:12px;
    font-weight:900;
    color:#64748b;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.board-company-picker select{
    min-width:280px;
    height:42px;
    border:1px solid var(--border);
    border-radius:12px;
    padding:0 12px;
    color:var(--navy);
    font-weight:800;
    background:#fff;
}

.board-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    background:#f8fbff;
    border:1px solid #dbe6f4;
    border-radius:16px;
    padding:16px 18px;
    margin-bottom:26px;
}

.board-company-title{
    font-size:18px;
    font-weight:900;
    color:var(--navy);
    margin-bottom:4px;
}

.board-source-link{
    color:#315a8b;
    text-decoration:none;
    font-size:13px;
    font-weight:800;
}

.board-source-link:hover{
    text-decoration:underline;
}

.board-source-muted{
    color:#94a3b8;
    font-size:13px;
    font-weight:700;
}

.board-refresh-btn{
    padding:10px 16px !important;
    font-size:13px !important;
}

.board-section{
    margin-top:28px;
}

.board-section-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    margin-bottom:18px;
}

.board-section-header h2{
    margin:0;
    color:var(--navy);
    font-size:24px;
    font-weight:900;
    letter-spacing:-.02em;
}

.board-section-header p{
    margin:4px 0 0;
    color:#94a3b8;
    font-size:13px;
    font-weight:800;
}

.director-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
    gap:20px;
}

.director-card{
    background:#fff;
    border:1px solid #e3eaf3;
    border-radius:20px;
    overflow:hidden;
    box-shadow:0 10px 24px rgba(15,23,42,.05);
    transition:transform .18s ease, box-shadow .18s ease;
}

.director-card:hover{
    transform:translateY(-3px);
    box-shadow:0 18px 38px rgba(15,23,42,.10);
}

.director-photo{
    height:255px;
    background:#eef4fb;
    display:grid;
    place-items:center;
    overflow:hidden;
}

.director-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}

.director-initial{
    width:84px;
    height:84px;
    display:grid;
    place-items:center;
    border-radius:22px;
    background:#dbe8f7;
    color:var(--navy);
    font-size:36px;
    font-weight:900;
}

.director-card-body{
    padding:18px;
}

.director-card-body h3{
    margin:0;
    color:var(--navy);
    font-size:20px;
    font-weight:900;
    letter-spacing:-.02em;
    line-height:1.15;
}

.director-designation{
    margin-top:6px;
    color:#315a8b;
    font-weight:800;
    font-size:13px;
    line-height:1.35;
}

.director-bio{
    margin:12px 0 0;
    color:#526174;
    font-size:13px;
    line-height:1.55;
}

.profile-details{
    margin-top:14px;
}

.profile-details summary{
    list-style:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--navy);
    color:#fff;
    border-radius:12px;
    padding:9px 13px;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}

.profile-details summary::-webkit-details-marker{
    display:none;
}

.profile-detail-body{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid #e3eaf3;
}

.profile-detail-body h4{
    margin:12px 0 6px;
    color:var(--navy);
    font-size:13px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.profile-detail-body p{
    margin:0;
    color:#475569;
    font-size:13px;
    line-height:1.6;
}

.management-grid-clean{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
    gap:14px;
}

.management-card-clean{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:16px;
    border:1px solid #e3eaf3;
    border-radius:18px;
    background:#fff;
    box-shadow:0 8px 20px rgba(15,23,42,.04);
}

.management-avatar{
    width:54px;
    height:54px;
    flex:0 0 54px;
    border-radius:14px;
    overflow:hidden;
    background:#eef4fb;
    display:grid;
    place-items:center;
    color:var(--navy);
    font-weight:900;
    font-size:22px;
}

.management-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}

.management-info h3{
    margin:0;
    color:var(--navy);
    font-size:16px;
    font-weight:900;
    line-height:1.2;
}

.management-info p{
    margin:8px 0 0;
    color:#64748b;
    font-size:13px;
    line-height:1.45;
}

.management-tag{
    display:inline-flex;
    margin-top:9px;
    padding:5px 9px;
    background:#eef4fb;
    border-radius:999px;
    color:#315a8b;
    font-size:11px;
    font-weight:900;
}

@media(max-width:820px){
    .board-hero,
    .board-toolbar{
        display:block;
    }

    .board-company-picker{
        margin-top:14px;
        align-items:flex-start;
        flex-direction:column;
    }

    .board-company-picker select{
        width:100%;
        min-width:0;
    }

    .board-refresh-btn{
        margin-top:12px;
    }

    .director-grid{
        grid-template-columns:1fr;
    }
}

/* BOD: cards stay compact; full profile text appears only after View profile is clicked. */
.director-card > .director-bio,
.director-card-body > .director-bio{
    display:none !important;
}
.profile-details:not([open]) .profile-detail-body{
    display:none;
}
.profile-details[open] summary{
    margin-bottom:10px;
}
.profile-detail-body{
    max-height:none;
}

/* ===== Auditor front-end page ===== */
.auditor-panel {
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(15,23,42,.06);
    overflow: hidden;
}

.auditor-titlebar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    background: linear-gradient(90deg, #061f5b 0%, #071f3f 100%);
    border-top: 5px solid #7b2f84;
    color: #ffffff;
    padding: 14px 18px 12px;
}

.auditor-titlebar h1 {
    margin: 0;
    font-size: 18px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: -0.2px;
}

.auditor-titlebar p {
    margin: 3px 0 0;
    font-size: 12px;
    font-weight: 800;
    font-style: italic;
    color: rgba(255,255,255,0.92);
}

.auditor-table-card {
    background: #ffffff;
}

.auditor-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.auditor-table {
    width: 100%;
    min-width: 980px;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 13px;
}

.auditor-table thead th {
    position: static !important;
    background: #b9c7e1 !important;
    color: #000000 !important;
    text-align: left !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 900 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    padding: 15px 18px !important;
    border-bottom: 1px solid #aebdd7 !important;
    white-space: nowrap;
}

.auditor-table thead th:first-child { width: 52%; }
.auditor-table thead th:nth-child(2) { width: 30%; }
.auditor-table thead th:nth-child(3) { width: 18%; }

.auditor-table tbody td {
    background: #ffffff;
    color: #050b18;
    text-align: left !important;
    padding: 19px 18px !important;
    border-bottom: 4px solid #f0f0f0 !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
    vertical-align: middle !important;
    white-space: normal !important;
}

.auditor-table tbody tr:hover td {
    background: #f8fbff !important;
}

.auditor-company {
    font-weight: 600;
    border-left: 3px solid transparent;
}

.auditor-table tbody tr:first-child .auditor-company {
    border-left-color: #061f8f;
}

.auditor-empty {
    text-align: center !important;
    color: var(--muted) !important;
    padding: 34px 18px !important;
}

@media(max-width: 900px) {
    .auditor-titlebar {
        align-items: flex-start;
        flex-direction: column;
    }

    .auditor-table {
        min-width: 780px;
    }
}

/* ===== Professional auditors page refresh ===== */
.auditor-page-pro {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.auditor-hero-pro {
    position: relative;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 22px;
    padding: 28px 30px;
    margin-bottom: 18px;
    overflow: hidden;
    background:
        radial-gradient(circle at 88% 12%, rgba(73, 119, 190, .20), transparent 28%),
        linear-gradient(135deg, #071f3f 0%, #0b315e 58%, #0f4b72 100%);
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 24px;
    box-shadow: 0 18px 42px rgba(7, 31, 63, .18);
    color: #ffffff;
}

.auditor-hero-pro:before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 6px;
    background: linear-gradient(180deg, #7b2f84 0%, #b480c0 100%);
}

.auditor-hero-copy,
.auditor-hero-meta {
    position: relative;
    z-index: 1;
}

.auditor-kicker {
    width: fit-content;
    margin-bottom: 10px;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: rgba(255,255,255,.10);
    color: rgba(255,255,255,.88);
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.auditor-hero-pro h1 {
    margin: 0;
    color: #ffffff;
    font-size: 34px;
    font-weight: 850;
    letter-spacing: -0.04em;
    line-height: 1.05;
}

.auditor-hero-pro p {
    max-width: 760px;
    margin: 10px 0 0;
    color: rgba(255,255,255,.82);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.55;
}

.auditor-hero-pro p strong {
    color: #ffffff;
    font-weight: 800;
}

.auditor-hero-meta {
    min-width: 180px;
    padding: 18px 20px;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px;
    background: rgba(255,255,255,.10);
    backdrop-filter: blur(8px);
}

.auditor-meta-label,
.auditor-meta-caption {
    color: rgba(255,255,255,.76);
    font-size: 12px;
    font-weight: 750;
}

.auditor-hero-meta strong {
    margin: 4px 0 2px;
    color: #ffffff;
    font-size: 34px;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
}

.auditor-card-pro {
    background: #ffffff !important;
    border: 1px solid #dce5f2 !important;
    border-radius: 22px !important;
    box-shadow: 0 14px 36px rgba(15, 35, 65, .08) !important;
    overflow: hidden !important;
}

.auditor-card-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 1px solid #e5ebf4;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.auditor-card-heading h2 {
    margin: 0;
    color: #071f3f;
    font-size: 18px;
    font-weight: 850;
    letter-spacing: -0.02em;
}

.auditor-card-heading p {
    margin: 4px 0 0;
    color: #667085;
    font-size: 13px;
    font-weight: 500;
}

.auditor-date-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border: 1px solid #d7e1ef;
    border-radius: 999px;
    background: #ffffff;
    color: #244264;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}

.auditor-table-wrap-pro {
    border-radius: 0 !important;
    background: #ffffff;
}

.auditor-table-pro {
    min-width: 1040px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    font-size: 13px !important;
}

.auditor-table-pro thead th {
    position: sticky !important;
    top: 0 !important;
    z-index: 1;
    background: #eef4fb !important;
    color: #0b2748 !important;
    text-align: left !important;
    padding: 14px 24px !important;
    border-bottom: 1px solid #d7e2ef !important;
    font-size: 11.5px !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    white-space: nowrap !important;
}

.auditor-table-pro thead th:first-child { width: 47% !important; }
.auditor-table-pro thead th:nth-child(2) { width: 34% !important; }
.auditor-table-pro thead th:nth-child(3) { width: 19% !important; }

.auditor-table-pro tbody td {
    background: #ffffff !important;
    color: #142033 !important;
    text-align: left !important;
    padding: 17px 24px !important;
    border-bottom: 1px solid #e8edf5 !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    vertical-align: middle !important;
    white-space: normal !important;
}

.auditor-table-pro tbody tr:nth-child(even) td {
    background: #fbfdff !important;
}

.auditor-table-pro tbody tr:hover td {
    background: #f4f8fe !important;
}

.auditor-table-pro tbody tr:last-child td {
    border-bottom: 0 !important;
}

.auditor-table-pro .auditor-company {
    position: relative;
    color: #071f3f !important;
    font-weight: 800 !important;
    border-left: 0 !important;
}

.auditor-table-pro .auditor-company:before {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    width: 5px;
    height: 24px;
    border-radius: 99px;
    background: #d6e2f2;
    transform: translateY(-50%);
}

.auditor-table-pro tbody tr:hover .auditor-company:before {
    background: #315a8b;
}

.auditor-table-pro tbody tr:first-child .auditor-company {
    border-left: 0 !important;
}

.auditor-empty {
    text-align: center !important;
    color: #667085 !important;
    padding: 34px 18px !important;
}

@media(max-width: 900px) {
    .auditor-hero-pro,
    .auditor-card-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .auditor-hero-meta {
        width: 100%;
        min-width: 0;
    }

    .auditor-hero-pro {
        padding: 24px 22px;
    }

    .auditor-hero-pro h1 {
        font-size: 24px;
    }

    .auditor-table-pro {
        min-width: 820px !important;
    }
}

/* ===== Auditors final alignment / clean layout overrides ===== */
table.auditors-table th,
table.auditors-table td,
.auditor-table th,
.auditor-table td,
.auditor-table-pro th,
.auditor-table-pro td {
    text-align: left !important;
}

/* ===== Investor-wise NAV page ===== */
.investor-nav-page {
    display: grid;
    gap: 20px;
}

.investor-hero {
    background: linear-gradient(135deg, #071f3f 0%, #123b6d 60%, #244f84 100%);
    color: #fff;
    border-radius: 22px;
    padding: 26px 28px;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    box-shadow: 0 18px 42px rgba(7, 31, 63, .16);
}

.investor-hero .eyebrow {
    color: #b9d7ff !important;
}

.investor-hero h1 {
    margin: 0 0 10px;
    font-size: 30px;
    letter-spacing: -0.4px;
}

.investor-hero p {
    margin: 0;
    max-width: 760px;
    color: rgba(255,255,255,.84);
}

.investor-hero-meta {
    min-width: 230px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    padding: 16px 18px;
    text-align: right;
}

.investor-hero-meta span,
.investor-hero-meta small {
    display: block;
    color: rgba(255,255,255,.74);
    font-weight: 700;
    font-size: 12px;
}

.investor-hero-meta strong {
    display: block;
    margin: 6px 0 4px;
    font-size: 24px;
    font-weight: 900;
}

.fund-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.fund-tab {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 16px 18px;
    text-decoration: none;
    color: var(--navy);
    box-shadow: 0 10px 28px rgba(15,23,42,.05);
    transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}

.fund-tab:hover {
    transform: translateY(-1px);
    border-color: #9ab3d0;
    box-shadow: 0 16px 36px rgba(15,23,42,.08);
}

.fund-tab.active {
    border-color: #071f3f;
    box-shadow: inset 0 0 0 2px #071f3f, 0 16px 36px rgba(15,23,42,.08);
}

.fund-tab.empty {
    opacity: .58;
}

.fund-tab span,
.fund-tab small {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: #667085;
}

.fund-tab strong {
    display: block;
    margin: 8px 0 2px;
    font-size: 22px;
    font-weight: 900;
    color: var(--navy);
}

.investor-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.investor-kpi-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 18px;
    box-shadow: 0 10px 28px rgba(15,23,42,.05);
}

.investor-kpi-card.primary {
    background: #071f3f;
    color: #fff;
    border-color: #071f3f;
}

.investor-kpi-card span,
.investor-kpi-card small {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: #667085;
}

.investor-kpi-card.primary span,
.investor-kpi-card.primary small {
    color: rgba(255,255,255,.72);
}

.investor-kpi-card strong {
    display: block;
    margin: 8px 0 4px;
    font-size: 28px;
    line-height: 1;
    font-weight: 900;
    color: var(--navy);
}

.investor-kpi-card.primary strong {
    color: #fff;
}

.investor-table-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 20px;
    box-shadow: 0 14px 40px rgba(15,23,42,.06);
}

.investor-table-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.investor-table-heading h2 {
    margin: 0 0 6px;
    color: var(--navy);
    font-size: 22px;
}

.investor-table-heading p {
    margin: 0;
    color: var(--muted);
}

.investor-count-badge {
    background: #eef4fb;
    color: #123b6d;
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 900;
    white-space: nowrap;
}

.investor-list {
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
}

.investor-list-header,
.investor-accordion > summary {
    display: grid;
    grid-template-columns: minmax(320px, 1.6fr) minmax(170px, .7fr) minmax(170px, .7fr) minmax(110px, .45fr);
    gap: 16px;
    align-items: center;
}

.investor-list-header {
    background: #eef4fb;
    color: #102a43;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 13px 16px;
}

.investor-accordion {
    background: #fff;
    border-top: 1px solid #edf1f6;
}

.investor-accordion > summary {
    list-style: none;
    cursor: pointer;
    padding: 15px 16px;
    font-weight: 800;
    color: var(--navy);
}

.investor-accordion > summary::-webkit-details-marker {
    display: none;
}

.investor-accordion > summary:hover {
    background: #f8fbff;
}

.investor-name-cell strong,
.investor-name-cell span {
    display: block;
}

.investor-name-cell span {
    margin-top: 4px;
    font-size: 12px;
    font-weight: 700;
    color: #667085;
}

.nav-strong {
    color: #071f3f;
    font-weight: 900;
}

.tranche-table-wrap {
    padding: 0 16px 16px;
    background: #fbfdff;
}

.tranche-table {
    width: 100% !important;
    min-width: 760px !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    overflow: hidden;
}

.tranche-table th,
.tranche-table td {
    text-align: left !important;
    white-space: nowrap !important;
}

.tranche-table th {
    background: #f1f5f9 !important;
    color: #334155 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    padding: 11px 12px !important;
}

.tranche-table td {
    background: #fff !important;
    padding: 11px 12px !important;
    border-bottom: 1px solid #eef2f7 !important;
    font-size: 12.5px !important;
}

.tranche-name {
    font-weight: 850;
    color: var(--navy);
}

@media(max-width: 1180px) {
    .fund-tabs,
    .investor-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .investor-list-header,
    .investor-accordion > summary {
        grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(120px, .7fr));
    }
}

@media(max-width: 780px) {
    .investor-hero {
        flex-direction: column;
    }
    .investor-hero-meta {
        width: 100%;
        text-align: left;
    }
    .fund-tabs,
    .investor-kpi-grid {
        grid-template-columns: 1fr;
    }
    .investor-list {
        overflow-x: auto;
    }
    .investor-list-header,
    .investor-accordion > summary {
        min-width: 820px;
    }
}

/* ===== Investor-wise NAV professional refresh v3 ===== */
.inv-nav-pro {
    display: grid;
    gap: 20px;
}

.inv-hero-pro {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 18px;
    padding: 20px 28px;
    border-radius: 22px;
    color: #ffffff;
    background:
        radial-gradient(circle at 8% 0%, rgba(255,255,255,.14), transparent 30%),
        linear-gradient(135deg, #071b35 0%, #0d315d 55%, #174f83 100%);
    box-shadow: 0 20px 52px rgba(7, 27, 53, .18);
    overflow: hidden;
}

.inv-hero-copy {
    max-width: 780px;
}

.inv-kicker {
    margin: 0 0 9px;
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: 11px;
    font-weight: 900;
    color: #315a8b;
}

.inv-hero-pro .inv-kicker {
    color: rgba(219, 234, 254, .86);
}

.inv-hero-pro h1 {
    margin: 0 0 10px;
    font-size: 34px;
    line-height: 1.05;
    letter-spacing: -.04em;
}

.inv-hero-pro p {
    margin: 0;
    color: rgba(255,255,255,.82);
    font-size: 13px;
    line-height: 1.45;
}

.inv-hero-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
}

.inv-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
    color: rgba(255,255,255,.82);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.inv-hero-badge strong {
    color: #ffffff;
    font-weight: 900;
}

.inv-fund-switcher {
    min-width: 340px;
    align-self: center;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(8px);
}

.inv-fund-switcher label {
    display: block;
    margin-bottom: 8px;
    color: rgba(255,255,255,.72);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inv-fund-switcher select {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 14px;
    padding: 0 42px 0 14px;
    color: #071b35;
    background: #ffffff;
    font-size: 14px;
    font-weight: 900;
    outline: none;
    cursor: pointer;
}

.inv-kpi-grid-pro {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.inv-kpi-pro {
    position: relative;
    overflow: hidden;
    padding: 20px;
    min-height: 128px;
    background: #ffffff;
    border: 1px solid #dfe7f2;
    border-radius: 20px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .055);
}

.inv-kpi-pro::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: #315a8b;
}

.inv-kpi-pro.featured {
    color: #ffffff;
    border-color: #071b35;
    background: linear-gradient(135deg, #071b35, #133e6d);
}

.inv-kpi-pro.featured::before {
    background: rgba(255,255,255,.45);
}

.inv-kpi-pro span,
.inv-kpi-pro small {
    display: block;
    color: #64748b;
    font-size: 12px;
    font-weight: 850;
}

.inv-kpi-pro.featured span,
.inv-kpi-pro.featured small {
    color: rgba(255,255,255,.74);
}

.inv-kpi-pro strong {
    display: block;
    margin: 10px 0 8px;
    color: #0b1f3a;
    font-size: 28px;
    font-weight: 950;
    line-height: 1.05;
    letter-spacing: -.03em;
}

.inv-kpi-pro.featured strong {
    color: #ffffff;
}

.inv-table-card-pro {
    background: #ffffff;
    border: 1px solid #dfe7f2;
    border-radius: 24px;
    padding: 22px;
    box-shadow: 0 18px 46px rgba(15, 23, 42, .06);
}

.inv-table-toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.inv-table-toolbar h2 {
    margin: 0 0 7px;
    color: #0b1f3a;
    font-size: 24px;
    letter-spacing: -.03em;
}

.inv-table-toolbar p {
    margin: 0;
    color: #64748b;
    font-size: 13.5px;
}

.inv-toolbar-actions {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.inv-search-box {
    display: grid;
    gap: 6px;
}

.inv-search-box span {
    color: #64748b;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.inv-search-box input {
    width: 260px;
    min-height: 40px;
    border: 1px solid #d9e3ef;
    border-radius: 999px;
    padding: 0 14px;
    color: #0b1f3a;
    background: #f8fbff;
    font-size: 13px;
    outline: none;
}

.inv-search-box input:focus {
    border-color: #315a8b;
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(49, 90, 139, .10);
}

.inv-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    background: #eef4fb;
    color: #123b6d;
    font-size: 12px;
    font-weight: 950;
    white-space: nowrap;
}

.inv-investor-list {
    overflow: hidden;
    border: 1px solid #dfe7f2;
    border-radius: 18px;
}

.inv-list-header,
.inv-accordion > summary {
    display: grid;
    grid-template-columns: minmax(360px, 1.6fr) minmax(170px, .62fr) minmax(170px, .62fr) minmax(100px, .36fr);
    gap: 16px;
    align-items: center;
}

.inv-list-header {
    padding: 13px 16px;
    color: #315a8b;
    background: #f1f6fc;
    border-bottom: 1px solid #dfe7f2;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.inv-list-header > div:not(:first-child) {
    text-align: right;
}

.inv-accordion {
    background: #ffffff;
    border-top: 1px solid #eef2f7;
}

.inv-accordion:first-of-type {
    border-top: 0;
}

.inv-accordion > summary {
    list-style: none;
    cursor: pointer;
    padding: 16px;
    color: #0b1f3a;
    transition: background .16s ease;
}

.inv-accordion > summary::-webkit-details-marker {
    display: none;
}

.inv-accordion > summary:hover {
    background: #f8fbff;
}

.inv-investor-name {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.inv-chevron {
    position: relative;
    display: inline-block;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border-radius: 50%;
    background: #eef4fb;
    transition: background .16s ease;
}

.inv-chevron::after {
    content: "";
    position: absolute;
    left: 9px;
    top: 7px;
    width: 6px;
    height: 9px;
    border-right: 2px solid #123b6d;
    border-bottom: 2px solid #123b6d;
    transform: rotate(-45deg);
    transition: transform .16s ease, border-color .16s ease;
}

.inv-accordion[open] .inv-chevron {
    background: #0b1f3a;
}

.inv-accordion[open] .inv-chevron::after {
    border-color: #ffffff;
    transform: translateY(-1px) rotate(45deg);
}

.inv-investor-name strong,
.inv-investor-name small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.inv-investor-name strong {
    font-size: 13.5px;
    font-weight: 950;
}

.inv-investor-name small {
    margin-top: 3px;
    color: #64748b;
    font-size: 12px;
    font-weight: 750;
}

.inv-number {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
}

.inv-nav-number {
    color: #0b1f3a;
    font-weight: 950;
}

.inv-tranche-wrap {
    padding: 0 16px 16px 54px;
    background: #fbfdff;
}

.inv-tranche-table {
    width: 100%;
    min-width: 760px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid #dfe7f2;
    border-radius: 14px;
    background: #ffffff;
}

.inv-tranche-table th,
.inv-tranche-table td {
    padding: 12px 13px;
    border-bottom: 1px solid #eef2f7;
    text-align: left;
    white-space: nowrap;
}

.inv-tranche-table th {
    background: #f8fbff;
    color: #315a8b;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.inv-tranche-table th:nth-child(n+3),
.inv-tranche-table td:nth-child(n+3) {
    text-align: right;
}

.inv-tranche-table tbody tr:last-child td {
    border-bottom: 0;
}

.inv-tranche-name {
    color: #0b1f3a;
    font-weight: 900;
}

.inv-empty-pro {
    padding: 40px;
}

@media (max-width: 1200px) {
    .inv-kpi-grid-pro,
    .inv-source-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .inv-source-strip > div:nth-child(2) {
        border-right: 0;
    }

    .inv-source-strip > div:nth-child(n+3) {
        border-top: 1px solid #e8eef7;
    }
}

@media (max-width: 980px) {
    .inv-hero-pro,
    .inv-table-toolbar {
        flex-direction: column;
    }

    .inv-fund-switcher,
    .inv-search-box input {
        width: 100%;
        min-width: 0;
    }

    .inv-toolbar-actions {
        width: 100%;
        justify-content: stretch;
    }

    .inv-investor-list {
        overflow-x: auto;
    }

    .inv-list-header,
    .inv-accordion > summary {
        min-width: 900px;
    }

    .inv-tranche-wrap {
        min-width: 900px;
    }
}

@media (max-width: 720px) {
    .inv-kpi-grid-pro,
    .inv-source-strip {
        grid-template-columns: 1fr;
    }

    .inv-source-strip > div {
        border-right: 0;
        border-top: 1px solid #e8eef7;
    }

    .inv-source-strip > div:first-child {
        border-top: 0;
    }
}


/* ===== Unified professional page headers ===== */
.page-hero-pro {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 22px;
    padding: 28px;
    border-radius: 24px;
    color: #ffffff;
    background:
        radial-gradient(circle at 8% 0%, rgba(255,255,255,.14), transparent 30%),
        linear-gradient(135deg, #071b35 0%, #0d315d 55%, #174f83 100%);
    box-shadow: 0 20px 52px rgba(7, 27, 53, .18);
    overflow: hidden;
    margin-bottom: 16px;
}

.page-hero-copy {
    max-width: 780px;
    min-width: 0;
}

.page-kicker {
    margin: 0 0 5px;
    color: rgba(219, 234, 254, .86);
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: 10px;
    font-weight: 900;
}

.page-hero-pro h1 {
    margin: 0 0 7px;
    color: #ffffff;
    font-size: 28px;
    line-height: 1.05;
    font-weight: 900;
    letter-spacing: -.04em;
}

.page-hero-pro p {
    margin: 0;
    color: rgba(255,255,255,.82);
    font-size: 14px;
    line-height: 1.65;
}

.page-hero-pro p strong {
    color: #ffffff;
    font-weight: 900;
}

.page-hero-panel {
    min-width: 300px;
    align-self: center;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 20px;
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(8px);
}

.page-hero-panel.compact {
    min-width: 260px;
}

.page-hero-panel span,
.page-hero-panel label,
.page-hero-panel small {
    display: block;
    color: rgba(255,255,255,.72);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.page-hero-panel strong {
    display: block;
    margin-top: 5px;
    color: #ffffff;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.35;
}

.page-hero-panel small {
    margin-top: 8px;
    letter-spacing: 0;
    text-transform: none;
    font-size: 12px;
    font-weight: 750;
}

.page-hero-panel select {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 14px;
    padding: 0 42px 0 14px;
    color: #071b35;
    background: #ffffff;
    font-size: 14px;
    font-weight: 900;
    outline: none;
    cursor: pointer;
}

.page-hero-panel label + select {
    margin-top: 8px;
}

.hero-primary-btn {
    margin-top: 10px;
    padding: 9px 16px;
    border-radius: 12px;
    background: #ffffff !important;
    color: #071b35 !important;
    border: 1px solid rgba(255,255,255,.28);
    box-shadow: 0 10px 28px rgba(0,0,0,.12);
}

.page-hero-metric strong {
    margin: 4px 0 2px;
    font-size: 34px;
    line-height: 1;
    letter-spacing: -.04em;
}

.board-page-clean .page-hero-pro {
    margin-bottom: 18px;
}

.page-hero-panel.board-company-picker {
    display: block;
    min-width: 340px;
}

.page-hero-panel.board-company-picker label {
    margin: 0 0 8px;
    color: rgba(255,255,255,.72);
}

.page-hero-panel.board-company-picker select {
    height: 46px;
    min-width: 0;
}

.table-card.report-card {
    margin-top: 0;
}

@media (max-width: 980px) {
    .page-hero-pro {
        flex-direction: column;
    }

    .page-hero-panel,
    .page-hero-panel.compact,
    .page-hero-panel.board-company-picker {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 720px) {
    .page-hero-pro {
        padding: 18px;
        border-radius: 18px;
    }

    .page-hero-pro h1 {
        font-size: 28px;
    }
}


/* Corporate announcements */
.corporate-announcements-hero .page-hero-panel form { margin: 0; }
.announcement-card { padding: 24px; }
.announcement-controls {
    display: grid;
    grid-template-columns: minmax(240px, 360px) minmax(240px, 1fr) auto;
    gap: 14px;
    align-items: end;
    margin-bottom: 22px;
}
.announcement-controls label { display: flex; flex-direction: column; gap: 6px; }
.announcement-controls span {
    font-size: 12px;
    font-weight: 800;
    color: #475467;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.announcement-controls select,
.announcement-controls input {
    width: 100%;
    min-height: 44px;
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    padding: 10px 12px;
    font: inherit;
    background: white;
}
.secondary-btn {
    min-height: 44px;
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    background: #fff;
    color: var(--navy);
    font-weight: 800;
    padding: 10px 18px;
    cursor: pointer;
}
.announcement-title-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    margin-bottom: 12px;
}
.announcement-title-row h2 { margin: 0; color: var(--navy); font-size: 20px; }
.announcement-title-row p { margin: 0; color: var(--muted); font-weight: 700; }
.announcement-table th,
.announcement-table td { text-align: left; vertical-align: top; }
.announcement-table .sn-col { width: 58px; text-align: center; }
.announcement-table .date-col { width: 130px; white-space: nowrap; }
.announcement-table .category-col { width: 220px; }
.announcement-table .link-col { width: 230px; min-width: 230px; text-align: center; }
.announcement-table .headline-col { white-space: normal; line-height: 1.45; }
.announcement-table .headline-col strong { display: block; color: var(--navy); font-weight: 800; }
.announcement-table .headline-col small { display: block; color: var(--muted); margin-top: 4px; }
.announcement-table a { color: #0b5cab; font-weight: 800; text-decoration: none; }
.announcement-table a:hover { text-decoration: underline; }
@media (max-width: 900px) {
    .announcement-controls { grid-template-columns: 1fr; }
    .announcement-title-row { display: block; }
}

/* Filing summary modal */
.announcement-links {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 8px;
    white-space: nowrap;
}
.announcement-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 34px;
    min-width: 88px;
    border-radius: 999px;
    border: 1px solid #d0d5dd;
    padding: 7px 11px;
    font-size: 12px;
    font-weight: 900;
    line-height: 1;
    text-decoration: none !important;
    white-space: nowrap;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.announcement-action:hover,
.announcement-action:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
    text-decoration: none !important;
}
.announcement-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .7);
    font-size: 12px;
}
.pdf-action {
    color: #0b4a88 !important;
    background: #eef6ff;
    border-color: #b9dcff;
}
.summary-link,
.summary-action {
    cursor: pointer;
    font: inherit;
    color: #713f12 !important;
    background: #fff7ed;
    border-color: #fed7aa;
}
.summary-link:hover,
.summary-link:focus-visible {
    background: #ffedd5;
}
.external-arrow { font-size: 11px; opacity: .75; }
body.modal-open { overflow: hidden; }
.filing-summary-modal[hidden] { display: none; }
.filing-summary-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 24px;
}
.filing-summary-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(3px);
}
.filing-summary-dialog {
    position: relative;
    z-index: 1;
    width: min(820px, 100%);
    max-height: min(820px, calc(100vh - 48px));
    overflow-y: auto;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid rgba(208, 213, 221, .9);
    border-radius: 24px;
    box-shadow: 0 30px 90px rgba(15, 23, 42, .38);
    padding: 32px;
}
.filing-summary-dialog h2 {
    margin: 2px 42px 6px 0;
    color: var(--navy);
    font-size: 26px;
    line-height: 1.22;
    letter-spacing: -.02em;
}
.filing-summary-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 38px;
    height: 38px;
    border: 1px solid #d0d5dd;
    border-radius: 50%;
    color: #344054;
    background: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .08);
}
.filing-summary-close:hover { background: #f2f4f7; }
.filing-summary-meta {
    margin: 0;
    color: #667085;
    font-weight: 800;
}
.filing-summary-status {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 20px 0 16px;
    color: #475467;
    background: #f2f4f7;
    border: 1px solid #e4e7ec;
    border-radius: 999px;
    padding: 7px 12px;
    font-size: 13px;
    font-weight: 900;
}
.filing-summary-status.success {
    color: #05603a;
    background: #ecfdf3;
    border-color: #abefc6;
}
.filing-summary-status.error {
    color: #b42318;
    background: #fef3f2;
    border-color: #fecdca;
}
.filing-summary-status.pending {
    color: #854a0e;
    background: #fffaeb;
    border-color: #fedf89;
}
.summary-spinner {
    width: 15px;
    height: 15px;
    border: 2px solid #d0d5dd;
    border-top-color: #0b5cab;
    border-radius: 50%;
    animation: filing-summary-spin .8s linear infinite;
}
@keyframes filing-summary-spin { to { transform: rotate(360deg); } }
.filing-summary-content {
    min-height: 150px;
    color: #1d2939;
    line-height: 1.62;
    background: transparent;
    border: 0;
    padding: 0;
}
.summary-section-card,
.summary-message-card {
    background: #fff;
    border: 1px solid #e4e7ec;
    border-radius: 18px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
    padding: 18px 20px;
    margin-bottom: 14px;
}
.summary-section-card h3 {
    margin: 0 0 10px;
    color: var(--navy);
    font-size: 14px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .07em;
}
.summary-section-card p {
    margin: 0;
    color: #344054;
}
.summary-section-card ul {
    margin: 0;
    padding-left: 0;
    list-style: none;
}
.summary-section-card li {
    position: relative;
    margin: 8px 0 0;
    padding-left: 20px;
    color: #344054;
}
.summary-section-card li::before {
    content: '';
    position: absolute;
    left: 0;
    top: .7em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #0b5cab;
}
.summary-message-card {
    color: #475467;
    font-weight: 700;
}
.filing-summary-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 18px;
}
.filing-summary-pdf {
    text-decoration: none;
    display: inline-flex;
    gap: 8px;
    align-items: center;
}
.filing-summary-disclaimer {
    margin: 18px 0 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.5;
}
@media (max-width: 640px) {
    .filing-summary-modal { padding: 12px; }
    .filing-summary-dialog { padding: 24px 18px; }
    .filing-summary-dialog h2 { font-size: 21px; }
    .announcement-table .link-col { width: 190px; min-width: 190px; }
    .announcement-action { min-height: 32px; min-width: 78px; padding: 6px 9px; }
}

/* BRS-only finance uploader */
/* This shell has no left navigation. It must therefore span the full app width. */
.app-shell.brs-upload-shell {
  display: block !important;
  min-height: calc(100vh - 64px);
  padding: 34px 28px 42px !important;
}
.app-shell.brs-upload-shell .page {
  width: min(1120px, 100%) !important;
  max-width: 1120px !important;
  margin: 0 auto !important;
}

.brs-uploader-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 285px;
  gap: 28px;
  align-items: center;
  padding: 34px 38px;
  border-radius: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 6% 0%, rgba(255,255,255,.14), transparent 28%),
    linear-gradient(135deg, #071b35 0%, #0d315d 56%, #174f83 100%);
  box-shadow: 0 20px 52px rgba(7, 27, 53, .16);
  margin-bottom: 22px;
}
.brs-uploader-hero-copy { min-width: 0; max-width: 720px; }
.brs-uploader-hero .page-kicker { margin: 0 0 7px; }
.brs-uploader-hero h1 {
  margin: 0 0 10px;
  color: #fff;
  font-size: clamp(28px, 4vw, 38px);
  line-height: 1.06;
  letter-spacing: -.045em;
  font-weight: 900;
}
.brs-uploader-hero p:not(.page-kicker) {
  margin: 0;
  color: rgba(255,255,255,.83);
  font-size: 15px;
  line-height: 1.65;
}
.brs-uploader-status {
  padding: 18px 19px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 18px;
  background: rgba(255,255,255,.11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.brs-uploader-status span,
.brs-uploader-status small {
  display: block;
  color: rgba(235,244,255,.78);
}
.brs-uploader-status span {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 10px;
  font-weight: 900;
}
.brs-uploader-status strong {
  display: block;
  margin: 6px 0;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 900;
}
.brs-uploader-status small { font-size: 12px; line-height: 1.5; }

.brs-upload-card {
  max-width: none !important;
  padding: 28px !important;
}
.brs-upload-card-heading { margin-bottom: 22px; }
.section-kicker {
  margin: 0 0 5px;
  color: #52749b;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .13em;
}
.brs-upload-card-heading h2,
.brs-upload-help h2 {
  margin: 0;
  color: #0a2850;
  font-size: 21px;
  letter-spacing: -.02em;
}
.brs-upload-card-heading p:last-child {
  margin: 7px 0 0;
  color: #66758b;
  line-height: 1.55;
}
.brs-upload-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 22px;
  padding: 15px 16px;
  border: 1px solid #cfe0f6;
  border-radius: 14px;
  background: #f5f9ff;
  color: #24415f;
  line-height: 1.5;
}
.brs-upload-note-icon {
  display: grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  background: #e5f0ff;
  color: #0c4a8c;
  font-size: 15px;
}
.brs-upload-note strong,
.brs-upload-note span { display: block; }
.brs-upload-note strong { color: #0c2e5c; margin-bottom: 2px; }
.brs-upload-note span { color: #49647f; font-size: 13px; }
.brs-upload-note b { color: #173b69; }
.brs-upload-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.brs-file-field {
  position: relative;
  min-width: 0;
  padding: 22px;
  border: 1px solid #dbe5f1;
  border-radius: 16px;
  background: #fbfdff;
}
.brs-file-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-bottom: 15px;
  border-radius: 50%;
  background: #e8f1fc;
  color: #174f83;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
}
.brs-file-field label {
  display: block;
  margin: 0;
  color: #173b69;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
}
.brs-file-caption {
  min-height: 38px;
  margin: 7px 0 16px;
  color: #66758b;
  font-size: 13px;
  line-height: 1.45;
}
.brs-file-field input[type="file"] {
  width: 100%;
  max-width: 100%;
  padding: 10px;
  border: 1px dashed #9fb8d5;
  border-radius: 10px;
  background: #fff;
  color: #294a70;
  font-size: 12px;
  cursor: pointer;
}
.brs-file-field small {
  display: block;
  margin-top: 9px;
  color: #66758b;
  font-size: 12px;
  line-height: 1.45;
}
.brs-upload-submit-row {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #e5edf6;
}
.brs-upload-submit-row .primary-btn {
  min-height: 44px;
  padding: 12px 18px;
  border-radius: 12px;
}
.brs-upload-submit-row p {
  margin: 0;
  color: #66758b;
  font-size: 13px;
  line-height: 1.45;
}
.brs-upload-help {
  margin-top: 22px;
  padding: 24px 28px;
  border: 1px solid #dce7f4;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15,23,42,.04);
}
.brs-upload-help-heading { margin-bottom: 18px; }
.brs-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.brs-step {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}
.brs-step span {
  display: inline-grid;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  background: #e8f1fc;
  color: #174f83;
  font-size: 12px;
  font-weight: 900;
}
.brs-step p {
  margin: 2px 0 0;
  color: #4d6075;
  font-size: 13px;
  line-height: 1.55;
}
.form-error { color: #b42318; margin-top: 8px; font-size: 13px; }

@media (max-width: 800px) {
  .app-shell.brs-upload-shell { padding: 20px 16px 28px !important; }
  .brs-uploader-hero { grid-template-columns: 1fr; gap: 18px; padding: 28px 24px; }
  .brs-uploader-status { max-width: none; }
  .brs-upload-card, .brs-upload-help { padding: 22px !important; }
  .brs-upload-grid, .brs-steps { grid-template-columns: 1fr; }
  .brs-file-caption { min-height: 0; }
}
@media (max-width: 520px) {
  .brs-uploader-hero { padding: 24px 20px; border-radius: 18px; }
  .brs-uploader-hero h1 { font-size: 29px; }
  .brs-upload-card, .brs-upload-help { padding: 18px !important; border-radius: 16px !important; }
  .brs-file-field { padding: 18px; }
  .brs-upload-submit-row .primary-btn { width: 100%; }
}



/* Portfolio Status upload and email-batch workflow */
.portfolio-upload-hero { margin-bottom: 20px; }
.portfolio-upload-layout { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr); gap:20px; align-items:stretch; }
.portfolio-upload-card { max-width:none; margin:0; padding:28px; }
.upload-card-heading h2 { margin:2px 0 8px; color:var(--navy); font-size:23px; }
.upload-card-heading > p:last-child { margin:0 0 20px; line-height:1.55; color:var(--muted); }
.portfolio-status-form { display:grid; gap:10px; }
.portfolio-status-form input[type=file] { padding:13px; border:1px dashed #9eb5d2; background:#f8fbff; }
.field-help { color:var(--muted); font-size:13px; line-height:1.45; margin:0 0 8px; }
.field-error { margin:0; color:var(--red); font-size:13px; font-weight:700; }
.workflow-card { background:linear-gradient(145deg,#0b1f3a,#173b66); color:#fff; border-radius:22px; padding:28px; box-shadow:0 14px 40px rgba(15,23,42,.13); }
.workflow-card .page-kicker { color:#bdd4f5; }
.workflow-list { list-style:none; padding:0; margin:16px 0 20px; display:grid; gap:15px; }
.workflow-list li { display:flex; align-items:flex-start; gap:12px; }
.workflow-list li > span { display:grid; place-items:center; flex:0 0 26px; height:26px; border-radius:50%; background:rgba(255,255,255,.17); color:#fff; font-weight:800; font-size:12px; }
.workflow-list strong { display:block; font-size:14px; margin:1px 0 3px; }
.workflow-list small { display:block; color:#d7e4f5; font-size:12px; line-height:1.45; }
.recipient-note { border-top:1px solid rgba(255,255,255,.2); padding-top:16px; font-size:13px; line-height:1.55; }
.recipient-note p { margin:6px 0 0; color:#dce9f8; }
.portfolio-batches-card { margin-top:20px; }
.batch-file-cell { text-align:left; white-space:normal; min-width:230px; }
.batch-file-cell strong,.batch-file-cell small { display:block; }
.batch-file-cell small,.portfolio-batch-table td small { color:var(--muted); margin-top:4px; font-size:11px; line-height:1.35; white-space:normal; }
.batch-status { display:inline-flex; align-items:center; padding:5px 9px; border-radius:999px; font-size:11px; font-weight:800; white-space:nowrap; }
.status-ready { background:#e9f1ff; color:#174a88; }
.status-awaiting_approval { background:#fff6df; color:#8a5a00; }
.status-sent { background:#e8f5ef; color:#087443; }
.status-failed { background:#fee4e2; color:#b42318; }
.batch-warning { display:block; color:#b54708 !important; font-weight:700; }
.secondary-btn { border:1px solid #b9cce5; border-radius:10px; padding:8px 11px; background:#fff; color:var(--navy); font-weight:800; cursor:pointer; white-space:nowrap; }
.inline-action-form { margin:0; }
.muted-status { color:var(--muted); font-size:12px; font-weight:700; white-space:nowrap; }
.empty-batch-row { text-align:left; color:var(--muted); padding:24px; }
@media(max-width:860px) { .portfolio-upload-layout { grid-template-columns:1fr; } .portfolio-upload-card,.workflow-card { padding:22px; } }

/* --------------------------------------------------------------------------
   Internal To-do List portal
   -------------------------------------------------------------------------- */
.todo-hero,
.todo-detail-hero {
    background: linear-gradient(135deg, #0b1f3a, #1a4b80);
    color: #fff;
    border-radius: 22px;
    padding: 28px 30px;
    box-shadow: 0 14px 40px rgba(15, 31, 58, .18);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.todo-hero.compact {
    padding: 24px 28px;
}

.todo-hero .eyebrow,
.todo-detail-hero .eyebrow {
    color: #b9d6fb;
}

.todo-hero h1,
.todo-detail-hero h1 {
    color: #fff;
    margin: 0;
    font-size: 30px;
}

.todo-hero .muted,
.todo-detail-hero p {
    color: rgba(255,255,255,.86);
}

.todo-hero .primary-btn {
    background: #fff;
    color: var(--navy);
}

.todo-detail-heading {
    max-width: 900px;
}

.todo-detail-heading h1 {
    margin: 11px 0 8px;
}

.back-link {
    color: #d6e8ff;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.todo-alert {
    background: #fff4d6;
    color: #6f5200;
    border: 1px solid #f2d894;
    border-radius: 16px;
    padding: 15px 18px;
    margin-bottom: 20px;
    font-size: 14px;
}

.todo-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.todo-stat-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 10px 26px rgba(15,23,42,.05);
    padding: 18px;
}

.todo-stat-card span,
.todo-stat-card small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.todo-stat-card strong {
    display: block;
    color: var(--navy);
    font-size: 28px;
    margin: 7px 0 5px;
}

.todo-section-card,
.todo-form-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: 0 12px 32px rgba(15,23,42,.05);
    padding: 22px;
    margin-bottom: 20px;
}

.todo-section-head,
.todo-list-card-top,
.todo-list-card-footer,
.todo-meta,
.todo-task-mini,
.todo-comment-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.todo-section-head {
    margin-bottom: 18px;
}

.todo-section-head h2,
.todo-section-card h2,
.todo-inline-form h3 {
    margin: 0;
    color: var(--navy);
}

.secondary-btn,
.small-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid #b7c6d9;
    color: var(--navy);
    background: #fff;
    border-radius: 12px;
    padding: 10px 14px;
    font-weight: 800;
    font-size: 13px;
}

.small-btn {
    padding: 8px 10px;
    font-size: 12px;
}

.full-width {
    width: 100%;
}

.todo-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.todo-list-card {
    border: 1px solid var(--border);
    background: #fff;
    border-radius: 16px;
    padding: 17px;
    min-width: 0;
}

.todo-list-card.supervisor-card {
    border-color: #b9cce4;
    background: linear-gradient(180deg, #fff, #f7fbff);
}

.todo-list-card h3 {
    margin: 14px 0 8px;
    font-size: 17px;
    line-height: 1.28;
}

.todo-list-card h3 a {
    color: var(--navy);
    text-decoration: none;
}

.todo-list-card h3 a:hover {
    text-decoration: underline;
}

.todo-description {
    color: #556276;
    font-size: 13px;
    line-height: 1.5;
    min-height: 40px;
    margin: 0 0 14px;
}

.todo-owner {
    color: #315a8b;
    font-size: 12px;
    font-weight: 800;
    margin: 6px 0 10px;
}

.todo-meta {
    color: #687489;
    font-size: 12px;
    line-height: 1.35;
    flex-wrap: wrap;
}

.todo-list-card-footer {
    border-top: 1px solid var(--border);
    margin-top: 14px;
    padding-top: 12px;
    font-size: 12px;
    color: #5d6877;
}

.todo-priority,
.todo-status,
.todo-review {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 11px;
    font-weight: 900;
    white-space: nowrap;
}

.todo-priority-low { color: #415871; background: #edf3f8; }
.todo-priority-medium { color: #315a8b; background: #eaf2fb; }
.todo-priority-high { color: #9a5600; background: #fff0d7; }
.todo-priority-urgent { color: #9b1c1c; background: #ffe1e1; }

.todo-status-active,
.todo-status-in_progress { color: #0c5a91; background: #e5f3ff; }
.todo-status-on_hold,
.todo-status-blocked { color: #8f5700; background: #fff0d8; }
.todo-status-completed { color: #166534; background: #dcfce7; }
.todo-status-not_started { color: #56667d; background: #eef2f7; }

.todo-review-pending { color: #8d5600; background: #fff1d8; }
.todo-review-reviewed { color: #15643c; background: #ddf6e7; }
.todo-review-needs_update { color: #9e1f1f; background: #ffe2e2; }

.todo-empty {
    background: #f8fbff;
    border: 1px dashed #b9cce4;
    border-radius: 16px;
    padding: 26px;
    text-align: center;
    color: var(--navy);
}

.todo-empty p {
    color: var(--muted);
    margin: 7px 0 16px;
}

.compact-empty {
    padding: 18px;
}

.todo-task-mini-list {
    display: grid;
    gap: 9px;
}

.todo-task-mini {
    text-decoration: none;
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 13px;
    padding: 12px 14px;
}

.todo-task-mini:hover {
    border-color: #9fb9d5;
    background: #f8fbff;
}

.todo-task-mini strong,
.todo-task-mini span {
    display: block;
}

.todo-task-mini span {
    font-size: 12px;
    color: var(--muted);
    margin-top: 3px;
}

.todo-mini-right {
    display: flex;
    align-items: center;
    gap: 10px;
    text-align: right;
}

.todo-mini-right small { color: var(--muted); }

.todo-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.8fr) minmax(300px, .9fr);
    gap: 20px;
}

.todo-side-stack {
    display: grid;
    align-content: start;
    gap: 0;
}

.todo-progress {
    background: #eef3fb;
    color: #315a8b;
    border-radius: 999px;
    padding: 7px 10px;
    font-size: 12px;
    font-weight: 900;
}

.detail-meta {
    color: #d8e8f9;
    margin-top: 16px;
}

.detail-meta strong {
    color: #fff;
}

.todo-task-list {
    display: grid;
    gap: 10px;
}

.todo-task-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid var(--border);
    border-radius: 15px;
    padding: 15px;
    background: #fff;
}

.todo-task-row.is-complete {
    background: #f6fdf8;
}

.todo-task-main {
    min-width: 0;
}

.todo-task-main h3 {
    margin: 0 0 6px;
    font-size: 15px;
    color: var(--navy);
}

.todo-task-main p {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.45;
    color: #5a6677;
}

.todo-task-actions {
    min-width: 285px;
    display: grid;
    align-content: start;
    justify-items: stretch;
    gap: 9px;
}

.todo-task-actions > .todo-status {
    justify-self: end;
}

.todo-task-update-form {
    display: grid;
    gap: 8px;
}

.todo-task-update-controls {
    display: flex;
    gap: 7px;
    justify-content: flex-end;
}

.todo-task-actions select,
.todo-task-actions button {
    font-size: 12px;
}

.todo-task-update-note {
    display: grid;
    gap: 5px;
}

.todo-task-update-note label {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #5c6f8a;
}

.todo-task-update-note textarea {
    width: 100%;
    min-height: 58px;
    resize: vertical;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 8px 9px;
    font: inherit;
    font-size: 12px;
    line-height: 1.35;
    color: var(--navy);
    background: #fbfdff;
}

.todo-task-update-note textarea:focus {
    outline: 2px solid rgba(49, 90, 139, 0.16);
    border-color: #8fb0d4;
    background: #fff;
}

.todo-task-update-note small {
    color: #718096;
    font-size: 11px;
}

.todo-task-updates {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px solid #dbe8f5;
    border-radius: 12px;
    background: #f7faff;
}

.todo-task-updates strong {
    display: block;
    margin-bottom: 6px;
    color: #315a8b;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.todo-task-updates p {
    margin: 0 0 7px;
    font-size: 12px;
    line-height: 1.4;
    color: #334155;
}

.todo-task-updates p:last-child {
    margin-bottom: 0;
}

.todo-task-updates span {
    display: block;
    color: #64748b;
    font-size: 11px;
    margin-bottom: 2px;
}

.todo-inline-form {
    border-top: 1px solid var(--border);
    margin-top: 22px;
    padding-top: 20px;
}

.todo-inline-form h3 {
    margin-bottom: 14px;
}

.todo-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.todo-field {
    display: grid;
    gap: 6px;
}

.todo-field.full {
    grid-column: 1 / -1;
}

.todo-field label {
    color: var(--navy);
    font-size: 12px;
    font-weight: 900;
}

.todo-field small {
    color: var(--muted);
    font-size: 11px;
}

.todo-field input,
.todo-field select,
.todo-field textarea {
    width: 100%;
    font: inherit;
    color: var(--text);
    background: #fff;
    border: 1px solid #c9d5e3;
    border-radius: 10px;
    padding: 10px 11px;
}

.todo-field textarea { resize: vertical; }

.todo-field ul.errorlist,
.form-error {
    color: var(--red);
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 12px;
    font-weight: 700;
}

.todo-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    border-top: 1px solid var(--border);
    margin-top: 22px;
    padding-top: 18px;
}

.todo-review-note {
    background: #f7faff;
    border-left: 3px solid #315a8b;
    padding: 12px;
    color: #40516a;
    line-height: 1.5;
    border-radius: 0 9px 9px 0;
}

.todo-comments {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.todo-comment {
    background: #f8fafc;
    border: 1px solid #e6edf5;
    border-radius: 12px;
    padding: 11px 12px;
}

.todo-comment-head {
    font-size: 12px;
    color: var(--navy);
}

.todo-comment-head span {
    color: var(--muted);
    font-weight: 600;
}

.todo-comment small {
    color: #60708a;
    display: block;
    margin-top: 4px;
}

.todo-comment p {
    font-size: 13px;
    color: #4d5b70;
    line-height: 1.45;
    margin: 8px 0 0;
}

@media(max-width: 1050px) {
    .todo-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .todo-list-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .todo-detail-grid { grid-template-columns: 1fr; }
}

@media(max-width: 680px) {
    .todo-hero,
    .todo-detail-hero,
    .todo-section-head,
    .todo-task-row {
        align-items: flex-start;
        flex-direction: column;
    }
    .todo-stat-grid,
    .todo-list-grid,
    .todo-form-grid { grid-template-columns: 1fr; }
    .todo-task-actions { justify-items: stretch; min-width: 0; width: 100%; }
    .todo-task-actions > .todo-status { justify-self: start; }
    .todo-task-update-controls { justify-content: flex-start; flex-wrap: wrap; }
    .todo-form-actions { justify-content: stretch; }
    .todo-form-actions > * { flex: 1; }
}

/* ===== To-do workboard: partner assignment, supervisor visibility and filters ===== */
.todo-workboard-hero {
    align-items: center;
    position: relative;
    overflow: hidden;
    min-height: 152px;
    padding: 30px 32px;
    border: 1px solid #d8e5f4;
    background:
        radial-gradient(circle at 90% 15%, rgba(179, 210, 242, .48) 0, rgba(179, 210, 242, 0) 34%),
        linear-gradient(135deg, #f9fcff 0%, #eff6fd 58%, #f7f7ef 100%);
    box-shadow: 0 14px 32px rgba(15, 31, 58, .08);
}
.todo-workboard-hero::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 6px;
    height: 100%;
    background: linear-gradient(180deg, #0b2d57, #3975ad);
}
.todo-workboard-hero > * { position: relative; z-index: 1; }
.todo-workboard-hero .eyebrow { color: #547aa4; }
.todo-workboard-hero h1 { color: #0b1f3a; letter-spacing: -.6px; }
.todo-workboard-hero .muted { color: #4b627d; max-width: 720px; }
.todo-workboard-hero .primary-btn {
    min-width: 126px;
    padding: 12px 18px;
    border: 1px solid #0b2d57;
    background: #0b2d57;
    color: #fff;
    box-shadow: 0 8px 18px rgba(11, 45, 87, .18);
}
.todo-workboard-hero .primary-btn:hover { background: #174b7c; border-color: #174b7c; }
@media (max-width: 680px) {
    .todo-workboard-hero { min-height: 0; padding: 24px 25px; }
    .todo-workboard-hero .primary-btn { width: 100%; }
}
.todo-filter-card {
    margin: 20px 0;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.todo-filter-heading,
.todo-filter-actions,
.todo-scope-tabs,
.todo-list-access-details {
    display: flex;
    align-items: center;
    gap: 12px;
}
.todo-filter-heading { justify-content: space-between; margin-bottom: 16px; }
.todo-filter-heading h2 { margin: 1px 0 0; color: var(--navy); }
.todo-result-count { font-size: 12px; font-weight: 800; color: #52657d; background: #edf3f8; border-radius: 999px; padding: 7px 10px; white-space: nowrap; }
.todo-scope-tabs { flex-wrap: wrap; margin-bottom: 16px; }
.todo-scope-tab {
    appearance: none;
    border: 1px solid #d7e0eb;
    background: #fff;
    color: #53677f;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    padding: 8px 13px;
    border-radius: 999px;
    cursor: pointer;
}
.todo-scope-tab:hover { background: #f4f8fc; color: #102a43; }
.todo-scope-tab.is-active { background: #153e66; color: #fff; border-color: #153e66; }
.todo-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 1fr));
    gap: 12px;
}
.todo-search-field { grid-column: span 2; }
.todo-filter-actions { justify-content: flex-end; margin-top: 16px; }
.todo-workboard-results { margin-top: 20px; }
.todo-workboard-grid .todo-list-card { min-height: 340px; display: flex; flex-direction: column; }
.todo-list-card.is-overdue { border-color: #f3c5c5; box-shadow: 0 8px 20px rgba(185, 28, 28, .08); }
.todo-metadata-stack { display: grid; gap: 7px; margin: 13px 0 15px; font-size: 12px; line-height: 1.4; color: #46576b; }
.todo-metadata-stack > div { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 8px; }
.todo-meta-label { color: #8190a3; font-weight: 800; font-size: 10.5px; text-transform: uppercase; letter-spacing: .035em; }
.todo-list-card-footer-secondary { margin-top: 8px; padding-top: 9px; border-top: 1px solid #eef2f6; color: #66768a; }
.todo-overdue-flag { color: #b42318; font-weight: 900; }
.todo-partner-selection { border: 1px dashed #cbd8e7; background: #f8fbff; padding: 14px; border-radius: 12px; }
.todo-field-help { margin: 0 0 9px; font-size: 12px; line-height: 1.4; color: #64748b; }
.todo-partner-options ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.todo-partner-options li { margin: 0; }
.todo-partner-options label { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #d7e0eb; border-radius: 999px; padding: 7px 10px; background: #fff; font-size: 12px; font-weight: 750; color: #33485f; cursor: pointer; }
.todo-partner-options input { width: auto; min-height: 0; margin: 0; accent-color: #153e66; }
.todo-list-access-details { margin-top: 13px; flex-wrap: wrap; align-items: stretch; }
.todo-list-access-details > div { min-width: min(100%, 210px); flex: 1 1 210px; padding: 10px 12px; border-radius: 10px; background: rgba(255,255,255,.55); border: 1px solid rgba(214,225,237,.9); }
.todo-list-access-details span { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; color: #8090a4; font-weight: 800; margin-bottom: 3px; }
.todo-list-access-details strong { display: block; color: #263e57; font-size: 12px; line-height: 1.35; }

@media (max-width: 1100px) {
    .todo-filter-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
}
@media (max-width: 760px) {
    .todo-filter-heading { align-items: flex-start; flex-direction: column; }
    .todo-filter-grid { grid-template-columns: 1fr; }
    .todo-search-field { grid-column: auto; }
    .todo-filter-actions { justify-content: stretch; }
    .todo-filter-actions > * { flex: 1; }
    .todo-metadata-stack > div { grid-template-columns: 1fr; gap: 2px; }
}

/* ===== Attendance tracker: private Partner / Office Admin screens ===== */
.attendance-admin-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 30px 32px;
    border: 1px solid #d7e4f3;
    border-radius: 20px;
    background:
        radial-gradient(circle at 92% 14%, rgba(126, 165, 212, .32), transparent 25rem),
        linear-gradient(135deg, #fbfdff 0%, #eff6fc 100%);
    box-shadow: 0 14px 32px rgba(15, 31, 58, .07);
}
.attendance-admin-hero h1 { margin: 1px 0 8px; color: #0d2b52; font-size: 31px; letter-spacing: -.045em; }
.attendance-admin-hero p:not(.eyebrow) { max-width: 720px; margin: 0; color: #52667e; line-height: 1.55; }
.attendance-admin-hero-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.attendance-roster-hero { align-items: flex-start; }
.attendance-admin-filter-card,
.attendance-admin-table-card,
.attendance-roster-card,
.attendance-note-card {
    border: 1px solid var(--border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .055);
}
.attendance-admin-filter-card { margin: 20px 0; padding: 18px 20px; }
.attendance-date-filter { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.attendance-date-filter > div { display: grid; gap: 6px; }
.attendance-date-filter label { color: #40536b; font-size: 12px; font-weight: 850; }
.attendance-date-filter input,
.attendance-order-input { min-height: 41px; border: 1px solid #c9d5e3; border-radius: 10px; padding: 8px 10px; color: #24384f; background: #fff; font: inherit; }
.text-link-btn { color: #1e5187; font-size: 12px; font-weight: 850; text-decoration: none; }
.text-link-btn:hover { color: #0d2d57; text-decoration: underline; }
.attendance-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin-bottom: 20px; }
.attendance-stat-card { min-height: 141px; padding: 21px; border: 1px solid #dfe7f0; border-radius: 17px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.045); }
.attendance-stat-card span { display: block; color: #6e7d92; font-size: 12px; font-weight: 800; }
.attendance-stat-card strong { display: block; margin: 8px 0 5px; color: #173a68; font-size: 35px; letter-spacing: -.045em; }
.attendance-stat-card small { color: #7b8798; font-size: 11px; }
.attendance-stat-card.is-positive { border-color: #cce9dc; background: linear-gradient(145deg, #fff 0%, #f2fbf6 100%); }
.attendance-stat-card.is-positive strong { color: #197352; }
.attendance-stat-card.is-pending { border-color: #f0dfbd; background: linear-gradient(145deg, #fff 0%, #fffaf0 100%); }
.attendance-stat-card.is-pending strong { color: #a05b08; }
.attendance-stat-card.is-wfh { border-color: #c7dff2; background: linear-gradient(145deg, #fff 0%, #edf7ff 100%); }
.attendance-stat-card.is-wfh strong { color: #1c6a9d; }
.attendance-stat-card.is-movement { border-color: #cbd7ff; background: linear-gradient(145deg, #fff 0%, #f0f4ff 100%); }
.attendance-stat-card.is-movement strong { color: #304f99; }
.attendance-admin-table-card,
.attendance-roster-card { padding: 22px; }
.attendance-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.attendance-section-heading h2 { margin: 1px 0 0; color: #193759; font-size: 21px; }
.attendance-record-count { white-space: nowrap; padding: 7px 10px; border-radius: 999px; color: #48627f; background: #eef4fa; font-size: 12px; font-weight: 850; }
.attendance-admin-table-scroll,
.attendance-roster-table-scroll { overflow: auto; border: 1px solid #e2e9f1; border-radius: 13px; }
.attendance-admin-table,
.attendance-roster-table { width: 100%; min-width: 750px; border-collapse: collapse; }
.attendance-admin-table th,
.attendance-roster-table th { padding: 12px 13px; color: #65758b; background: #f8fafc; border-bottom: 1px solid #e2e9f1; font-size: 10.5px; font-weight: 900; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
.attendance-admin-table td,
.attendance-roster-table td { padding: 13px; border-bottom: 1px solid #edf1f5; color: #45586f; font-size: 13px; vertical-align: middle; }
.attendance-admin-table tbody tr:last-child td,
.attendance-roster-table tbody tr:last-child td { border-bottom: 0; }
.attendance-person-cell { display: flex; align-items: center; gap: 10px; min-width: 215px; }
.attendance-person-cell strong { display: block; color: #203b5c; font-size: 13px; }
.attendance-person-cell small { display: block; max-width: 180px; overflow: hidden; color: #8a98a9; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.attendance-avatar { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 10px; color: #31558a; background: #eaf1fb; font-size: 11px; font-weight: 900; letter-spacing: .04em; }
.attendance-status { display: inline-flex; align-items: center; padding: 6px 9px; border-radius: 999px; font-size: 11px; font-weight: 850; }
.attendance-status-present { color: #176347; background: #e2f5eb; }
.attendance-status-pending { color: #945f08; background: #fff2d9; }
.attendance-admin-empty { padding: 26px; text-align: center; border: 1px dashed #bfccdb; border-radius: 14px; color: #40556e; }
.attendance-admin-empty p { margin: 8px 0 16px; color: #718096; }
.attendance-admin-note-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.attendance-note-card { padding: 20px; }
.attendance-note-card h2 { margin: 1px 0 8px; color: #203d61; font-size: 18px; }
.attendance-note-card p:not(.eyebrow) { margin: 0 0 13px; color: #607087; font-size: 13px; line-height: 1.55; }
.attendance-admin-tags { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 13px; }
.attendance-admin-tags span { padding: 6px 9px; border-radius: 999px; color: #34547a; background: #eef4fa; font-size: 11px; font-weight: 800; }
.attendance-admin-tags span.is-empty { color: #8a5d10; background: #fff4de; }
.attendance-toggle-label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; color: #53677e; font-size: 12px; font-weight: 750; }
.attendance-toggle-label input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.attendance-toggle { width: 37px; height: 22px; display: inline-block; position: relative; border-radius: 999px; background: #cbd5e1; transition: background .16s ease; }
.attendance-toggle::after { content: ""; width: 16px; height: 16px; position: absolute; left: 3px; top: 3px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(15,23,42,.25); transition: transform .16s ease; }
.attendance-toggle-label input:checked + .attendance-toggle { background: #277758; }
.attendance-toggle-label input:checked + .attendance-toggle::after { transform: translateX(15px); }
.attendance-toggle-label input:focus-visible + .attendance-toggle { outline: 3px solid #bdd5f2; outline-offset: 2px; }
.attendance-order-input { width: 96px; }
.attendance-roster-card { margin-top: 20px; }
.attendance-roster-card-footer { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: 16px; color: #718096; font-size: 12px; }
.attendance-no-users { padding: 25px !important; text-align: center; color: #718096 !important; }
@media (max-width: 980px) { .attendance-stat-grid { grid-template-columns: 1fr; } .attendance-admin-note-grid { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .attendance-admin-hero, .attendance-section-heading, .attendance-roster-card-footer { align-items: flex-start; flex-direction: column; } .attendance-admin-hero { padding: 23px; } .attendance-admin-hero-actions, .attendance-date-filter { width: 100%; } .attendance-admin-hero-actions > *, .attendance-date-filter .primary-btn, .attendance-date-filter .secondary-btn { flex: 1; } .attendance-record-count { white-space: normal; } }

/* ===== Attendance team management (Convergent admin panel) ===== */
.attendance-section-actions,
.attendance-team-filter,
.attendance-team-form-footer,
.attendance-access-tags {
    display: flex;
    align-items: center;
    gap: 10px;
}
.attendance-section-actions { flex-wrap: wrap; justify-content: flex-end; }
.compact-btn { min-height: 36px; padding: 8px 12px; font-size: 12px; }
.attendance-team-summary-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(300px, 1.2fr);
    gap: 16px;
    margin: 20px 0;
}
.attendance-team-summary-grid .attendance-stat-card { min-height: 128px; }
.attendance-team-summary-note {
    padding: 21px;
    border: 1px solid #d9e6f4;
    border-radius: 17px;
    background: linear-gradient(135deg, #fbfdff 0%, #eef6ff 100%);
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.attendance-team-summary-note strong { display: block; color: #173a68; font-size: 14px; }
.attendance-team-summary-note p { margin: 8px 0 0; color: #607087; font-size: 12px; line-height: 1.55; }
.attendance-team-filter-card { margin-top: 0; }
.attendance-team-filter { align-items: flex-end; flex-wrap: wrap; }
.attendance-team-filter label { display: grid; gap: 6px; color: #40536b; font-size: 12px; font-weight: 850; }
.attendance-team-filter input,
.attendance-team-filter select,
.attendance-team-form-shell input:not([type="checkbox"]),
.attendance-team-form-shell select {
    width: 100%;
    min-height: 42px;
    box-sizing: border-box;
    border: 1px solid #c9d5e3;
    border-radius: 10px;
    padding: 9px 11px;
    color: #24384f;
    background: #fff;
    font: inherit;
}
.attendance-team-filter .attendance-filter-search { width: min(100%, 360px); flex: 1 1 300px; }
.attendance-team-filter > label:not(.attendance-filter-search) { width: 175px; }
.attendance-team-table { width: 100%; min-width: 1020px; border-collapse: collapse; }
.attendance-team-table th { padding: 12px 13px; color: #65758b; background: #f8fafc; border-bottom: 1px solid #e2e9f1; font-size: 10.5px; font-weight: 900; letter-spacing: .04em; text-align: left; text-transform: uppercase; }
.attendance-team-table td { padding: 13px; border-bottom: 1px solid #edf1f5; color: #45586f; font-size: 13px; vertical-align: middle; }
.attendance-team-table tbody tr:last-child td { border-bottom: 0; }
.attendance-table-primary { display: block; color: #385270; font-size: 12px; }
.attendance-table-secondary { display: block; margin-top: 4px; color: #8190a1; font-size: 11px; }
.attendance-table-action { white-space: nowrap; text-align: right; }
.attendance-access-tags { flex-wrap: wrap; gap: 6px; }
.attendance-access-tag { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: #1e5187; background: #eaf3fd; font-size: 10.5px; font-weight: 850; white-space: nowrap; }
.attendance-access-tag.is-muted { color: #65758b; background: #eff3f7; }
.attendance-access-tag.is-admin { color: #6c4a99; background: #f0e9fb; }
.attendance-status-muted { color: #627285; background: #eff3f7; }
.attendance-status-inactive { color: #7f4c4c; background: #f7e9e9; }
.attendance-team-form-shell { display: grid; gap: 16px; margin-top: 20px; }
.attendance-team-form-card {
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .055);
}
.attendance-team-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.attendance-form-field { min-width: 0; display: grid; gap: 7px; }
.attendance-form-field-wide { grid-column: 1 / -1; }
.attendance-form-field > label { color: #40536b; font-size: 12px; font-weight: 850; }
.attendance-form-field small,
.attendance-choice-card small { color: #718096; font-size: 11px; line-height: 1.45; }
.attendance-form-field ul.errorlist { margin: 0; padding: 0; list-style: none; color: #b42318; font-size: 11px; font-weight: 750; }
.attendance-team-form-shell input:focus,
.attendance-team-form-shell select:focus,
.attendance-team-filter input:focus,
.attendance-team-filter select:focus { outline: 3px solid #c9def4; outline-offset: 1px; border-color: #5d89ba; }
.attendance-team-form-shell input:disabled,
.attendance-team-form-shell select:disabled { color: #8a98a9; background: #f5f7fa; cursor: not-allowed; }
.attendance-choice-card {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 14px;
    border: 1px solid #dce6f1;
    border-radius: 12px;
    background: #fbfdff;
    color: #445b76;
    cursor: pointer;
}
.attendance-choice-card input[type="checkbox"] { width: 17px; height: 17px; flex: 0 0 17px; margin: 1px 0 0; accent-color: #1d5b96; }
.attendance-choice-card:has(input:disabled) { background: #f7f9fb; color: #8a98a9; cursor: not-allowed; }
.attendance-choice-card strong { display: block; color: #304b6d; font-size: 12px; }
.attendance-choice-card small { display: block; margin-top: 3px; }
.attendance-team-form-footer { justify-content: flex-end; padding: 2px 0 12px; }
.attendance-form-errors { padding: 13px 15px; border: 1px solid #efc0c0; border-radius: 12px; color: #9b2525; background: #fff7f7; font-size: 12px; }
.attendance-form-errors ul { margin: 0; padding-left: 18px; }
@media (max-width: 980px) {
    .attendance-team-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
    .attendance-team-form-grid { grid-template-columns: 1fr; }
    .attendance-form-field-wide { grid-column: auto; }
    .attendance-team-filter { align-items: stretch; }
    .attendance-team-filter .attendance-filter-search,
    .attendance-team-filter > label:not(.attendance-filter-search) { width: 100%; flex: 1 1 100%; }
    .attendance-team-filter .primary-btn { width: 100%; }
    .attendance-team-form-footer { justify-content: stretch; flex-direction: column-reverse; }
    .attendance-team-form-footer > * { width: 100%; text-align: center; }
}

/* Monthly attendance tracker and calendar control room */
.attendance-tracker-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 20px 0;
}
.attendance-tracker-action-card {
  background: #fff;
  border: 1px solid #dfe6f1;
  border-radius: 18px;
  padding: 24px;
  box-shadow: 0 8px 22px rgba(17, 39, 78, .06);
}
.attendance-tracker-action-card h2 { margin: 3px 0 8px; color: #132a52; }
.attendance-tracker-action-card p { color: #52627b; line-height: 1.55; margin: 0 0 16px; }
.attendance-tracker-action-card small { display: block; color: #68758d; margin-top: 12px; line-height: 1.45; }
.attendance-inline-form { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.attendance-inline-form label { display: grid; gap: 6px; min-width: 180px; color: #182d53; font-weight: 700; font-size: 13px; }
.attendance-inline-form input { min-height: 42px; border: 1px solid #cfd9e7; border-radius: 9px; padding: 8px 10px; font: inherit; }
.attendance-error-row td { background: #fff3f2; color: #9b2420; font-size: 12px; padding: 11px 14px; }
@media (max-width: 780px) {
  .attendance-tracker-action-grid { grid-template-columns: 1fr; }
  .attendance-inline-form { align-items: stretch; }
  .attendance-inline-form label { min-width: 100%; }
}

/* ===== Self-service leave applications ===== */
.leave-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 31px 32px;
  border: 1px solid #d7e4f3;
  border-radius: 20px;
  background:
    radial-gradient(circle at 94% 12%, rgba(117, 161, 214, .30), transparent 25rem),
    linear-gradient(135deg, #fbfdff 0%, #eff6fc 100%);
  box-shadow: 0 14px 32px rgba(15, 31, 58, .07);
}
.leave-hero h1 { margin: 1px 0 8px; color: #0d2b52; font-size: 31px; letter-spacing: -.045em; }
.leave-hero p:not(.eyebrow) { max-width: 710px; margin: 0; color: #52667e; line-height: 1.55; }
.leave-hero-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.leave-review-alert,
.leave-route-card,
.leave-approval-summary,
.leave-form-notice {
  margin-top: 20px;
  border-radius: 18px;
  border: 1px solid #d7e4f3;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .055);
}
.leave-review-alert { display: flex; justify-content: space-between; gap: 24px; padding: 21px 23px; background: linear-gradient(135deg, #f7fbff 0%, #eef7f3 100%); }
.leave-review-alert h2 { margin: 2px 0 6px; color: #173a68; font-size: 20px; }
.leave-review-alert p { margin: 0; color: #5e7189; font-size: 13px; line-height: 1.5; }
.leave-review-list { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.leave-review-list a { min-width: 175px; padding: 10px 12px; border: 1px solid #d4e2ef; border-radius: 11px; background: #fff; color: #315477; text-decoration: none; }
.leave-review-list a:hover { border-color: #7da4cb; box-shadow: 0 5px 14px rgba(25, 60, 99, .1); }
.leave-review-list strong, .leave-review-list span { display: block; }
.leave-review-list strong { color: #193b61; font-size: 12px; }
.leave-review-list span { margin-top: 3px; color: #7b8da1; font-size: 11px; }
.leave-history-card { margin-top: 20px; }
.leave-history-table { min-width: 950px; }
.leave-note-preview { color: #4e6078; font-size: 12px; line-height: 1.45; }
.attendance-status-leave { color: #8a5a03; background: #fff1cf; }
.attendance-status-wfh { color: #17618f; background: #e2f1fb; }
.attendance-status-movement { color: #274d97; background: #e7edff; }
.attendance-table-secondary.is-warning { color: #a65d09; }
.leave-form-hero { align-items: flex-start; }
.leave-route-card { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 14px; padding: 18px 20px; background: #f7fbff; }
.leave-route-icon { width: 38px; height: 38px; display: grid; place-items: center; color: #1c568d; background: #e7f1fb; border-radius: 12px; font-size: 20px; font-weight: 900; }
.leave-route-card h2 { margin: 2px 0 6px; color: #173a68; font-size: 18px; }
.leave-route-card p:not(.eyebrow) { margin: 0; color: #5f7188; font-size: 12.5px; line-height: 1.55; }
.leave-form-shell { display: grid; gap: 16px; margin-top: 20px; }
.leave-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.leave-form-shell select,
.leave-form-shell input:not([type="checkbox"]),
.leave-form-shell textarea,
.leave-decision-form textarea {
  width: 100%; min-height: 42px; box-sizing: border-box; border: 1px solid #c9d5e3; border-radius: 10px; padding: 9px 11px; color: #24384f; background: #fff; font: inherit;
}
.leave-form-shell textarea, .leave-decision-form textarea { min-height: 96px; resize: vertical; }
.leave-form-shell select:focus,
.leave-form-shell input:focus,
.leave-form-shell textarea:focus,
.leave-decision-form textarea:focus { outline: 3px solid #c9def4; outline-offset: 1px; border-color: #5d89ba; }
.leave-form-notice { display: grid; gap: 4px; padding: 15px 17px; background: #fffaf0; border-color: #f0dfbd; color: #795619; }
.leave-form-notice strong { font-size: 12px; }
.leave-form-notice span { font-size: 12px; line-height: 1.5; }
.leave-approval-summary { display: grid; grid-template-columns: 50px minmax(170px, .8fr) minmax(0, 2.2fr); align-items: center; gap: 16px; padding: 20px 22px; background: #fff; }
.leave-applicant-badge { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 14px; color: #31558a; background: #eaf1fb; font-size: 14px; font-weight: 900; letter-spacing: .04em; }
.leave-approval-summary h2 { margin: 1px 0 4px; color: #173a68; font-size: 19px; }
.leave-approval-summary p:not(.eyebrow) { margin: 0; color: #718096; font-size: 12px; }
.leave-summary-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.leave-summary-metrics > div { min-width: 0; padding: 11px 12px; border: 1px solid #e5ebf2; border-radius: 11px; background: #fafcff; }
.leave-summary-metrics span, .leave-summary-metrics strong { display: block; }
.leave-summary-metrics span { color: #8693a4; font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .035em; }
.leave-summary-metrics strong { margin-top: 4px; color: #345171; font-size: 12px; line-height: 1.4; }
.leave-review-card { display: grid; gap: 20px; margin-top: 20px; }
.leave-review-notes { padding: 15px 16px; border: 1px solid #e2e9f1; border-radius: 12px; background: #fbfdff; }
.leave-review-notes > p:not(.eyebrow) { margin: 6px 0 0; color: #4e6078; font-size: 13px; line-height: 1.55; }
.leave-decision-form { display: grid; gap: 16px; }
.leave-decision-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.leave-decision-option { display: flex; align-items: center; gap: 9px; padding: 14px; border: 1px solid #dce6f1; border-radius: 12px; background: #fff; color: #40566f; font-size: 13px; font-weight: 800; cursor: pointer; }
.leave-decision-option input { width: 16px; height: 16px; margin: 0; accent-color: #1d6d4e; }
.leave-decision-option.is-approve { background: #f6fbf8; border-color: #cfe8db; color: #176347; }
.leave-decision-option.is-decline { background: #fff9f9; border-color: #f0d7d7; color: #9a4848; }
.leave-final-decision { padding: 14px 16px; border: 1px solid #e2e9f1; border-radius: 12px; background: #fbfdff; }
.leave-final-decision p { margin: 8px 0 0; color: #5f7188; font-size: 13px; line-height: 1.5; }
@media (max-width: 900px) {
  .leave-hero, .leave-review-alert { align-items: flex-start; flex-direction: column; }
  .leave-review-list { justify-content: flex-start; }
  .leave-approval-summary { grid-template-columns: 50px minmax(0, 1fr); }
  .leave-summary-metrics { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .leave-hero { padding: 23px; }
  .leave-hero-actions, .leave-hero-actions > * { width: 100%; }
  .leave-form-grid, .leave-decision-options, .leave-summary-metrics { grid-template-columns: 1fr; }
  .leave-form-spacer { display: none; }
  .leave-approval-summary { grid-template-columns: 46px minmax(0, 1fr); padding: 17px; }
  .leave-summary-metrics { grid-column: 1 / -1; }
}

/* ===== Leave approver assignment ===== */
.attendance-approver-field {
  gap: 12px;
}
.attendance-approver-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid #dce7f3;
  border-radius: 13px;
  background: linear-gradient(135deg, #fbfdff, #f2f7fd);
}
.attendance-approver-heading label {
  display: block;
  color: #183c68;
  font-size: 13px;
  font-weight: 900;
}
.attendance-approver-heading p {
  margin: 5px 0 0;
  color: #64748b;
  font-size: 12px;
  line-height: 1.45;
}
.attendance-approver-selection {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: #e8f0fb;
  color: #245485;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}
.attendance-approver-options {
  padding: 4px;
  border: 1px solid #dbe6f1;
  border-radius: 14px;
  background: #ffffff;
}
.attendance-approver-options > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}
.attendance-approver-options > div > div {
  min-width: 0;
  margin: 0;
}
.attendance-approver-options label {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
  box-sizing: border-box;
  padding: 12px 14px;
  border: 1px solid #e0e8f1;
  border-radius: 11px;
  background: #fbfdff;
  color: #183c68;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.attendance-approver-options label:hover {
  border-color: #8eafcf;
  background: #f2f7fd;
}
.attendance-approver-options label:has(input:checked) {
  border-color: #3d78b2;
  background: #edf5ff;
  box-shadow: inset 0 0 0 1px rgba(61, 120, 178, .08);
}
.attendance-approver-options input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 0;
  accent-color: #1d5b96;
}
.attendance-approver-help {
  display: block;
  padding: 0 2px;
}
@media (max-width: 680px) {
  .attendance-approver-heading { flex-direction: column; }
  .attendance-approver-options > div { grid-template-columns: 1fr; }
}


/* ===== Convergent Finance login branding ===== */
.login-body.convergent-login {
    min-height: 100vh;
    background:
        radial-gradient(circle at 18% 14%, rgba(24, 117, 177, 0.14), transparent 28%),
        radial-gradient(circle at 84% 80%, rgba(15, 35, 75, 0.10), transparent 34%),
        #eef2f7;
    padding: 36px;
}

.convergent-login-shell {
    width: min(1530px, calc(100vw - 88px));
    min-height: 646px;
    grid-template-columns: 1fr 1fr;
    border-radius: 30px;
    overflow: hidden;
    box-shadow: 0 28px 80px rgba(18, 44, 92, 0.12);
    background: #ffffff;
}

.convergent-login-brand-panel {
    position: relative;
    overflow: hidden;
    padding: 82px 72px;
    background: linear-gradient(145deg, #07154c 0%, #10326c 44%, #1f72c4 100%);
}

.convergent-brand-copy {
    position: relative;
    z-index: 2;
    max-width: 540px;
}

.convergent-login-brand-panel .eyebrow,
.convergent-login-brand-panel h1,
.convergent-login-brand-panel p {
    position: relative;
    z-index: 2;
}

.convergent-login-brand-panel .eyebrow {
    color: #58adff;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    font-weight: 800;
}

.convergent-login-brand-panel h1 {
    margin: 18px 0 24px;
    font-size: clamp(44px, 4.15vw, 66px);
    line-height: 1.04;
    color: #ffffff;
    white-space: nowrap;
}

.convergent-login-brand-panel p:not(.eyebrow) {
    max-width: 520px;
    font-size: 18px;
    line-height: 1.65;
    color: rgba(255, 255, 255, 0.94);
}

.brand-wave {
    position: absolute;
    pointer-events: none;
    border-radius: 999px;
    z-index: 1;
}

.brand-wave-one {
    left: -48px;
    bottom: -118px;
    width: 470px;
    height: 250px;
    border: 1px solid rgba(255,255,255,0.14);
    background: linear-gradient(180deg, rgba(141, 189, 255, 0.16), rgba(141, 189, 255, 0.04));
    transform: rotate(8deg);
}

.brand-wave-two {
    right: -118px;
    bottom: -102px;
    width: 560px;
    height: 330px;
    background: radial-gradient(circle at 42% 38%, rgba(95, 190, 255, 0.58), rgba(70, 143, 218, 0.30) 42%, rgba(52, 104, 178, 0.08) 72%, rgba(52, 104, 178, 0.00) 76%);
}

.convergent-login-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #ffffff;
    padding: 50px 72px 56px;
}

.login-logo-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 124px;
    margin: 0 0 38px;
}

.login-card-logo {
    display: block;
    width: min(260px, 64%);
    max-height: 128px;
    object-fit: contain;
    filter: drop-shadow(0 8px 22px rgba(16, 44, 99, 0.08));
}

.convergent-login-card .eyebrow {
    margin-bottom: 10px;
    color: #1d6bbe;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    font-weight: 800;
}

.convergent-login-card h2 {
    margin: 0 0 24px;
    color: #0d1b56;
    font-size: clamp(40px, 3vw, 52px);
    line-height: 1.04;
}

.convergent-login-card .message.error {
    margin-bottom: 18px;
}

.convergent-login-form label {
    display: block;
    color: #0d1b56;
    font-size: 15px;
    font-weight: 700;
    margin: 18px 0 10px;
}

.convergent-login-card input {
    width: 100%;
    height: 68px;
    border-radius: 16px;
    border: 1px solid #d3deef;
    background: #ffffff;
    padding: 0 22px;
    font-size: 16px;
    color: #1b2b52;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.convergent-login-card input::placeholder {
    color: #8b98b7;
}

.password-field-wrap {
    position: relative;
}

.password-field-wrap input {
    padding-right: 60px;
}

.password-toggle {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    background: transparent;
    color: #7382a8;
    width: 28px;
    height: 28px;
    padding: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.password-toggle:hover {
    color: #123c76;
}

.password-toggle svg {
    width: 22px;
    height: 22px;
}

.convergent-login-card input:focus {
    border-color: #2e84d6;
    outline: none;
    box-shadow: 0 0 0 4px rgba(46, 132, 214, 0.12);
}

.convergent-login-card .primary-btn.full {
    width: 100%;
    height: 68px;
    margin-top: 30px;
    border-radius: 16px;
    padding: 0 20px;
    font-size: 17px;
    font-weight: 800;
    background: linear-gradient(135deg, #07154c 0%, #123c9c 100%);
    box-shadow: 0 16px 30px rgba(18, 60, 156, 0.18);
}

.convergent-login-card .primary-btn.full:hover {
    transform: translateY(-1px);
    box-shadow: 0 18px 36px rgba(18, 60, 156, 0.22);
}

@media (max-width: 980px) {
    .convergent-login-shell {
        width: min(100%, calc(100vw - 36px));
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .convergent-login-brand-panel,
    .convergent-login-card {
        padding: 34px 28px;
    }
    .convergent-login-brand-panel h1 {
        white-space: normal;
    }
    .brand-wave-one {
        width: 330px;
        height: 185px;
        left: -26px;
        bottom: -92px;
    }
    .brand-wave-two {
        width: 360px;
        height: 240px;
        right: -74px;
        bottom: -84px;
    }
    .login-logo-wrap {
        justify-content: flex-start;
        min-height: 88px;
        margin-bottom: 24px;
    }
    .login-card-logo {
        width: min(230px, 70%);
    }
}

@media (max-width: 1180px) and (min-width: 981px) {
    .convergent-login-brand-panel {
        padding-left: 60px;
        padding-right: 50px;
    }
    .convergent-login-card {
        padding-left: 58px;
        padding-right: 58px;
    }
    .convergent-login-brand-panel h1 {
        font-size: 48px;
    }
    .convergent-login-brand-panel p:not(.eyebrow) {
        font-size: 16px;
    }
}


/* Owner-only task edit/delete controls */
.todo-task-edit-panel {
    margin-top: 4px;
    border: 1px solid #dbe8f5;
    border-radius: 14px;
    background: #f8fbff;
    overflow: hidden;
}

.todo-task-edit-panel summary {
    list-style: none;
    cursor: pointer;
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 900;
    color: #315a8b;
    letter-spacing: 0.03em;
}

.todo-task-edit-panel summary::-webkit-details-marker {
    display: none;
}

.todo-task-edit-panel summary::before {
    content: "+";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-right: 7px;
    border-radius: 999px;
    background: #e8f0fb;
    color: #315a8b;
    font-weight: 900;
}

.todo-task-edit-panel[open] summary::before {
    content: "\2212";
}

.todo-task-edit-form,
.todo-task-delete-form {
    padding: 0 12px 12px;
}

.todo-task-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.todo-task-edit-grid .full {
    grid-column: 1 / -1;
}

.todo-task-owner-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}

.todo-task-delete-form {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-top: 1px solid #dbe8f5;
    padding-top: 12px;
}

.danger-btn {
    border-color: #fecaca;
    color: #991b1b;
    background: #fff7f7;
}

.danger-btn:hover {
    background: #fee2e2;
}

.todo-task-delete-form small {
    color: #718096;
    font-size: 11px;
    line-height: 1.35;
}

@media (max-width: 900px) {
    .todo-task-edit-grid {
        grid-template-columns: 1fr;
    }
    .todo-task-delete-form {
        align-items: stretch;
        flex-direction: column;
    }
}

/* ========================================================================== */
/* Board & Management portal + backend                                        */
/* ========================================================================== */
.bod-hero,
.bod-admin-hero,
.bod-form-hero {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:28px 30px;
  border-radius:22px;
  background:linear-gradient(135deg,#112a52 0%,#244b82 100%);
  color:#fff;
  box-shadow:0 18px 42px rgba(13,35,72,.16);
}
.bod-hero h1,.bod-admin-hero h1,.bod-form-hero h1{margin:5px 0 7px;font-size:34px;line-height:1.05;color:#fff;letter-spacing:-.7px}
.bod-hero p,.bod-admin-hero p,.bod-form-hero p{margin:0;max-width:760px;color:#d9e6f8;line-height:1.55}
.bod-eyebrow{font-size:11px;font-weight:800;letter-spacing:1.55px;text-transform:uppercase;color:#6e86a8}
.bod-hero .bod-eyebrow,.bod-admin-hero .bod-eyebrow,.bod-form-hero .bod-eyebrow{color:#b9d1ef}
.bod-hero-actions,.bod-admin-actions,.bod-admin-company-actions,.bod-admin-people-actions,.bod-summary-actions,.bod-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bod-hero-actions form,.bod-admin-actions form,.bod-admin-company-actions form,.bod-summary-actions form{margin:0}
.bod-company-picker{min-width:290px;padding:13px 14px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.1)}
.bod-company-picker label{display:block;margin-bottom:6px;font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#d7e5f7}
.bod-company-picker select{width:100%;height:43px;border:0;border-radius:10px;padding:0 12px;font-weight:750;color:#102b56;background:#fff}
.bod-manage-btn{background:#fff!important}

.bod-company-summary{margin-top:18px;display:grid;grid-template-columns:minmax(250px,1.2fr) minmax(360px,1.6fr) auto;align-items:center;gap:24px;padding:20px 22px;background:#fff;border:1px solid #d9e4f2;border-radius:18px;box-shadow:0 10px 30px rgba(24,52,94,.08)}
.bod-company-identity{display:flex;align-items:center;gap:14px}.bod-company-identity img,.bod-company-initial{width:58px;height:58px;border-radius:14px;object-fit:contain;background:#f4f7fc;border:1px solid #dce6f3;padding:7px}.bod-company-initial{display:grid;place-items:center;padding:0;font-size:24px;font-weight:850;color:#214a82}
.bod-company-identity h2{margin:3px 0 2px;font-size:23px;color:#092451}.bod-company-identity p{margin:0;color:#687e9a}
.bod-summary-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bod-summary-metrics>div{padding:13px 15px;background:#f6f9fd;border:1px solid #e0e8f3;border-radius:13px}.bod-summary-metrics strong{display:block;color:#092451;font-size:18px}.bod-summary-metrics span{display:block;margin-top:3px;color:#71839c;font-size:11px;font-weight:650}

.bod-content-section{margin-top:18px;padding:23px;background:#fff;border:1px solid #d9e4f2;border-radius:18px;box-shadow:0 10px 30px rgba(24,52,94,.06)}
.bod-section-heading,.bod-admin-people-heading,.bod-admin-company-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.bod-section-heading{margin-bottom:18px}.bod-section-heading h2,.bod-admin-people-heading h2,.bod-admin-company-header h2{margin:4px 0 0;color:#082452;font-size:24px}.bod-section-heading>span{padding:7px 11px;border-radius:999px;background:#edf3fb;color:#28568d;font-size:12px;font-weight:800}
.bod-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bod-profile-card{overflow:hidden;border:1px solid #dbe5f2;border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(16,48,89,.06);transition:transform .18s ease,box-shadow .18s ease}.bod-profile-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(16,48,89,.11)}
.bod-profile-top{display:flex;align-items:center;gap:14px;padding:17px}.bod-profile-photo{flex:0 0 72px;width:72px;height:72px;border-radius:15px;overflow:hidden;background:linear-gradient(145deg,#e9f1fb,#d8e6f6);display:grid;place-items:center;color:#214f88;font-size:27px;font-weight:850}.bod-profile-photo img{width:100%;height:100%;object-fit:cover}
.bod-profile-copy{min-width:0}.bod-profile-copy h3{margin:0 0 4px;color:#082452;font-size:17px;line-height:1.25}.bod-profile-copy p{margin:0 0 7px;color:#5f7592;font-size:12px;line-height:1.35}.bod-source-badge{display:inline-flex;padding:4px 7px;border-radius:999px;background:#e8f3ff;color:#2c649e;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}.bod-source-badge.manual{background:#e8f7ef;color:#277754}
.bod-profile-details{border-top:1px solid #e4ebf4}.bod-profile-details summary{padding:12px 16px;cursor:pointer;list-style:none;font-size:12px;font-weight:800;color:#214f88}.bod-profile-details summary::-webkit-details-marker{display:none}.bod-profile-details summary:after{content:'+';float:right;font-size:16px}.bod-profile-details[open] summary:after{content:'\2212'}.bod-profile-detail-body{max-height:390px;overflow:auto;padding:0 16px 16px;color:#465e7a}.bod-profile-detail-body h4{margin:14px 0 5px;color:#102f5d;font-size:11px;text-transform:uppercase;letter-spacing:.7px}.bod-profile-detail-body p{margin:0;font-size:12px;line-height:1.55}.bod-profile-detail-body a{display:inline-block;margin-top:14px;font-size:12px;font-weight:800;color:#1e5b98}
.bod-management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.bod-management-card{display:flex;gap:13px;padding:15px;border:1px solid #dbe5f2;border-radius:15px;background:#fbfdff}.bod-management-avatar{flex:0 0 54px;width:54px;height:54px;display:grid;place-items:center;border-radius:13px;overflow:hidden;background:#e8f0fb;color:#214f88;font-weight:850}.bod-management-avatar img{width:100%;height:100%;object-fit:cover}.bod-management-card h3{margin:0 0 3px;color:#082452;font-size:15px}.bod-management-role{margin:0;color:#58718f;font-size:11px;font-weight:700}.bod-management-bio{margin:8px 0 0;color:#647a94;font-size:11px;line-height:1.5}.bod-management-card a{display:inline-block;margin-top:8px;font-size:11px;font-weight:800;color:#1e5b98}
.bod-empty{padding:32px;text-align:center;border:1px dashed #cbd9ea;border-radius:15px;background:#f8fbff}.bod-empty.large{margin-top:18px;padding:60px}.bod-empty.compact{padding:20px}.bod-empty h2,.bod-empty h3{margin:0 0 7px;color:#0d2b58}.bod-empty p{margin:0 0 14px;color:#6d8099}

.bod-admin-hero,.bod-form-hero{margin-bottom:18px}.bod-admin-layout{display:grid;grid-template-columns:285px minmax(0,1fr);gap:18px}.bod-company-list-panel,.bod-admin-company-card,.bod-admin-people-card,.bod-form-card{background:#fff;border:1px solid #d9e4f2;border-radius:18px;box-shadow:0 10px 30px rgba(24,52,94,.06)}.bod-company-list-panel{overflow:hidden;align-self:start;position:sticky;top:16px}.bod-admin-panel-title{padding:16px 17px;border-bottom:1px solid #e0e8f3}.bod-admin-panel-title>div{display:flex;align-items:center;justify-content:space-between}.bod-admin-panel-title span{font-size:11px;text-transform:uppercase;letter-spacing:1px;font-weight:800;color:#6b809b}.bod-admin-panel-title strong{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#eef4fb;color:#214f88;font-size:12px}.bod-company-list{padding:8px}.bod-company-list-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:10px;border-radius:12px;color:inherit;text-decoration:none}.bod-company-list-item:hover{background:#f3f7fc}.bod-company-list-item.active{background:#eaf2fd;box-shadow:inset 3px 0 #315f99}.bod-company-list-logo{width:42px;height:42px;border:1px solid #dbe5f2;border-radius:11px;display:grid;place-items:center;overflow:hidden;background:#fff;color:#214f88;font-weight:850}.bod-company-list-logo img{width:100%;height:100%;object-fit:contain;padding:4px}.bod-company-list-item strong{display:block;color:#0b2b58;font-size:13px}.bod-company-list-item span{display:block;margin-top:2px;color:#74869d;font-size:10px}.bod-company-list-item i{font-style:normal;color:#6181a7;font-size:20px}.bod-admin-empty-small{padding:25px 15px;text-align:center;color:#71849b;font-size:12px}
.bod-admin-main{min-width:0}.bod-admin-company-card,.bod-admin-people-card{padding:21px}.bod-admin-people-card{margin-top:18px}.bod-admin-company-header p,.bod-admin-people-heading p{margin:5px 0 0;color:#71849b}.bod-source-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.bod-source-grid>div{padding:12px 13px;border-radius:12px;background:#f7faff;border:1px solid #e0e8f3;min-width:0}.bod-source-grid span{display:block;margin-bottom:5px;color:#71849b;font-size:9px;text-transform:uppercase;letter-spacing:.7px;font-weight:800}.bod-source-grid strong,.bod-source-grid a{display:block;color:#163c6c;font-size:11px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bod-sync-status{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 13px;border-radius:11px;background:#eef5ff;color:#315f91;font-size:11px}.bod-sync-status.success{background:#edf8f2;color:#26714f}.bod-sync-status.failed{background:#fff1f1;color:#9b3939}.bod-sync-status.disabled{background:#f3f4f7;color:#687386}.bod-sync-status strong{text-transform:uppercase;font-size:9px;letter-spacing:.6px}
.bod-admin-people-heading{margin-bottom:17px}.bod-admin-table-wrap{overflow:auto;border:1px solid #dce6f2;border-radius:14px}.bod-admin-table{width:100%;border-collapse:collapse;min-width:850px}.bod-admin-table th{padding:11px 13px;background:#f1f5fb;text-align:left;color:#5d7290;font-size:9px;text-transform:uppercase;letter-spacing:.75px}.bod-admin-table td{padding:12px 13px;border-top:1px solid #e2eaf4;color:#3f5876;font-size:11px}.bod-admin-table tr.inactive{opacity:.58}.bod-admin-person{display:flex;align-items:center;gap:10px}.bod-admin-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:10px;overflow:hidden;display:grid;place-items:center;background:#e8f0fb;color:#214f88;font-weight:850}.bod-admin-avatar img{width:100%;height:100%;object-fit:cover}.bod-admin-person strong{display:block;color:#0a2b58;font-size:12px}.bod-admin-person span{display:block;margin-top:2px;color:#7b8ca2;font-size:10px}.bod-admin-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.bod-admin-row-actions a,.bod-admin-row-actions button{border:0;background:none;padding:0;color:#1d5c99;font-size:11px;font-weight:800;cursor:pointer}.bod-admin-row-actions button{color:#a53c3c}.status-pill{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}.status-pill.success{background:#e6f5ec;color:#277553}.status-pill.muted{background:#edf0f4;color:#6a7687}

.bod-form-card{padding:0;overflow:hidden}.bod-form-section{padding:22px 24px;border-bottom:1px solid #e1e9f3}.bod-form-section h2{margin:0 0 14px;color:#0a2b58;font-size:18px}.bod-form-section .section-help{margin:-7px 0 15px;color:#71849b;font-size:12px}.bod-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.bod-form-grid .field{min-width:0}.bod-form-grid .span-2{grid-column:span 2}.bod-form-grid label{display:block;margin-bottom:6px;color:#18385f;font-size:11px;font-weight:800}.bod-form-grid input[type=text],.bod-form-grid input[type=url],.bod-form-grid input[type=number],.bod-form-grid input[type=email],.bod-form-grid select,.bod-form-grid textarea{width:100%;box-sizing:border-box;border:1px solid #cddbea;border-radius:11px;padding:11px 12px;color:#123258;background:#fff;font:inherit;font-size:12px}.bod-form-grid textarea{resize:vertical;line-height:1.5}.bod-form-grid input:focus,.bod-form-grid select:focus,.bod-form-grid textarea:focus{outline:3px solid rgba(48,99,158,.12);border-color:#4f7eb5}.bod-form-grid small{display:block;margin-top:5px;color:#7a8ba1;font-size:10px;line-height:1.4}.bod-form-grid .errorlist{margin:5px 0 0;padding:0;list-style:none;color:#b23d3d;font-size:10px}.check-field{display:flex;align-items:center}.check-field label{display:flex!important;align-items:center;gap:8px;margin:24px 0 0!important}.bod-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bod-check-grid.single{grid-template-columns:minmax(0,520px)}.bod-check-grid>label{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid #d7e2f0;border-radius:12px;background:#f9fbfe;cursor:pointer}.bod-check-grid input{margin-top:3px}.bod-check-grid strong{display:block;color:#15365f;font-size:12px}.bod-check-grid small{display:block;margin-top:3px;color:#74869d;font-size:10px;line-height:1.4}.bod-form-actions{justify-content:flex-end;padding:17px 24px;background:#f7f9fc}

@media (max-width:1200px){.bod-profile-grid,.bod-management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bod-company-summary{grid-template-columns:1fr}.bod-summary-actions{justify-content:flex-start}.bod-source-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.bod-hero,.bod-admin-hero,.bod-form-hero{align-items:flex-start;flex-direction:column}.bod-hero-actions,.bod-admin-actions{width:100%}.bod-company-picker{flex:1;min-width:220px}.bod-admin-layout{grid-template-columns:1fr}.bod-company-list-panel{position:static}.bod-company-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.bod-admin-company-header,.bod-admin-people-heading{flex-direction:column}.bod-form-grid{grid-template-columns:1fr}.bod-form-grid .span-2{grid-column:span 1}}
@media (max-width:650px){.bod-hero,.bod-admin-hero,.bod-form-hero{padding:22px}.bod-hero h1,.bod-admin-hero h1,.bod-form-hero h1{font-size:28px}.bod-profile-grid,.bod-management-grid,.bod-summary-metrics,.bod-source-grid,.bod-company-list,.bod-check-grid{grid-template-columns:1fr}.bod-content-section,.bod-admin-company-card,.bod-admin-people-card{padding:16px}.bod-company-summary{padding:16px}.bod-hero-actions>*{width:100%}.bod-company-picker{width:100%}.bod-admin-actions .primary-btn,.bod-admin-actions .secondary-btn,.bod-admin-actions form,.bod-admin-actions form button{width:100%}}


/* ===== Leave form visual alignment refresh ===== */
.leave-form-hero-pro {
  position: relative;
  overflow: hidden;
  min-height: 150px;
  padding: 28px 30px;
  color: #fff;
  border-color: #27487d;
  background: linear-gradient(120deg, #112b54 0%, #24477f 72%, #315b98 100%);
  box-shadow: 0 16px 34px rgba(17, 43, 84, .16);
}
.leave-form-hero-pro::after {
  content: "";
  position: absolute;
  right: -70px;
  bottom: -110px;
  width: 340px;
  height: 340px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
}
.leave-form-hero-copy { position: relative; z-index: 1; max-width: 800px; }
.leave-form-hero-pro .back-link { color: #d9e7ff; }
.leave-form-hero-pro .eyebrow { color: #bcd1f3; }
.leave-form-hero-pro h1 { color: #fff; font-size: 34px; margin: 5px 0 9px; }
.leave-form-hero-pro p:not(.eyebrow) { color: #e1ebfa; max-width: 760px; }
.leave-form-hero-badge {
  position: relative;
  z-index: 1;
  min-width: 170px;
  padding: 18px 20px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 16px;
  background: rgba(255,255,255,.11);
  backdrop-filter: blur(5px);
}
.leave-form-hero-badge span, .leave-form-hero-badge strong { display: block; }
.leave-form-hero-badge span { color: #c6d8f3; font-size: 10px; font-weight: 850; letter-spacing: .12em; }
.leave-form-hero-badge strong { margin-top: 6px; color: #fff; font-size: 18px; line-height: 1.2; }
.leave-request-type-field select { max-width: 100%; }
.leave-form-grid { align-items: start; }
.leave-form-grid .attendance-form-field { min-width: 0; }
.leave-form-grid .attendance-form-field > small { min-height: 34px; display: block; margin-top: 7px; }
.attendance-status-leave {
  color: #7a244d;
  background: #f8e4ef;
  border: 1px solid #efc5da;
}
@media (max-width: 900px) {
  .leave-form-hero-badge { display: none; }
}
@media (max-width: 680px) {
  .leave-form-hero-pro { min-height: 0; padding: 22px; }
  .leave-form-hero-pro h1 { font-size: 27px; }
}

/* ===== Refined daily attendance roster ===== */
.attendance-admin-table-card { padding: 20px; }
.attendance-admin-table-scroll {
  max-height: min(68vh, 760px);
  overflow: auto;
  border-color: #dce5ef;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.attendance-admin-table { min-width: 980px; table-layout: fixed; }
.attendance-admin-table th {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: 11px 14px;
  color: #526985;
  background: #f3f7fb;
  box-shadow: 0 1px 0 #dce5ef;
}
.attendance-admin-table th:nth-child(1) { width: 31%; }
.attendance-admin-table th:nth-child(2) { width: 14%; }
.attendance-admin-table th:nth-child(3) { width: 13%; }
.attendance-admin-table th:nth-child(4) { width: 15%; }
.attendance-admin-table th:nth-child(5) { width: 16%; }
.attendance-admin-table th:nth-child(6) { width: 11%; }
.attendance-admin-table td { padding: 10px 14px; line-height: 1.35; }
.attendance-admin-table tbody tr:nth-child(even) td { background: #fbfdff; }
.attendance-admin-table tbody tr:hover td { background: #f3f8fd; }
.attendance-admin-table tbody tr.has-approved-status td:first-child { box-shadow: inset 3px 0 0 #b55a7a; }
.attendance-admin-table tbody tr.has-checkin td:first-child { box-shadow: inset 3px 0 0 #3c916d; }
.attendance-admin-table tbody tr.is-pending td:first-child { box-shadow: inset 3px 0 0 #e2b35f; }
.attendance-person-cell { min-width: 0; gap: 11px; }
.attendance-person-cell > div { min-width: 0; }
.attendance-person-cell strong { font-size: 12.5px; line-height: 1.25; }
.attendance-person-cell small { max-width: 100%; margin-top: 2px; font-size: 10.5px; }
.attendance-avatar { width: 32px; height: 32px; flex-basis: 32px; border-radius: 9px; }
.attendance-role-label { color: #435a74; font-size: 12px; font-weight: 700; }
.attendance-status-column, .attendance-source-column, .attendance-recorded-column { white-space: nowrap; }
.attendance-status { min-width: 74px; justify-content: center; padding: 5px 9px; font-size: 10.5px; }
.attendance-status-leave { color: #8c2851; background: #fbe4ee; border: 1px solid #efbed2; }
.attendance-status-wfh { color: #125f8e; background: #e2f2fc; border: 1px solid #bddff3; }
.attendance-status-movement { color: #4c3c91; background: #ece9ff; border: 1px solid #d3cdf8; }
.attendance-status-present { border: 1px solid #c4e9d7; }
.attendance-status-pending { border: 1px solid #f2dfb4; }
.attendance-detail-primary { display: block; color: #344e69; font-size: 11.5px; font-weight: 750; }
.attendance-checkin-time { color: #173a68; font-size: 12.5px; }
.attendance-table-secondary { margin-top: 2px; font-size: 10px; line-height: 1.35; }
.attendance-source-badge {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 5px 8px;
  overflow: hidden;
  border-radius: 999px;
  color: #4e6278;
  background: #eef3f7;
  font-size: 10px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attendance-source-badge.is-checkin { color: #27634d; background: #e9f6ef; }
.attendance-source-badge.is-leave { color: #8c2851; background: #faeaf1; }
.attendance-source-badge.is-wfh { color: #125f8e; background: #e8f5fc; }
.attendance-source-badge.is-travel { color: #503e91; background: #efedff; }
.attendance-source-badge.is-office { color: #176d70; background: #e5f6f5; }
.attendance-empty-value { color: #9aa8b6; }
.attendance-recorded-column { color: #425a73; font-size: 11.5px; font-weight: 650; }
@media (max-width: 1050px) {
  .attendance-admin-table { min-width: 760px; }
  .attendance-admin-table th:nth-child(2), .attendance-role-column { display: none; }
  .attendance-admin-table th:nth-child(1) { width: 34%; }
  .attendance-admin-table th:nth-child(3) { width: 17%; }
  .attendance-admin-table th:nth-child(4) { width: 19%; }
  .attendance-admin-table th:nth-child(5) { width: 18%; }
  .attendance-admin-table th:nth-child(6) { width: 12%; }
}
@media (max-width: 720px) {
  .attendance-admin-table-card { padding: 14px; }
  .attendance-admin-table { min-width: 620px; }
  .attendance-admin-table th:nth-child(5), .attendance-source-column { display: none; }
  .attendance-admin-table td { padding: 9px 10px; }
}


/* Company holiday edit/delete controls */
.attendance-row-actions {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.attendance-row-actions form {
    margin: 0;
}

.attendance-form-footer-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

@media (max-width: 720px) {
    .attendance-row-actions,
    .attendance-form-footer-left {
        flex-wrap: wrap;
    }
}

/* Company holiday form: compact professional header */
.holiday-form-hero {
    position: relative;
    overflow: hidden;
    align-items: center;
    margin-bottom: 20px;
    padding: 28px 30px;
    border: 0;
    background:
        radial-gradient(circle at 88% 8%, rgba(113, 162, 224, .34), transparent 25rem),
        linear-gradient(135deg, #10284f 0%, #24477d 100%);
    box-shadow: 0 16px 38px rgba(12, 32, 65, .19);
}
.holiday-form-hero::after {
    content: "";
    position: absolute;
    right: -72px;
    bottom: -105px;
    width: 270px;
    height: 270px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    pointer-events: none;
}
.holiday-form-hero-copy {
    position: relative;
    z-index: 1;
    min-width: 0;
    max-width: 790px;
}
.holiday-form-hero .holiday-hero-back {
    display: inline-flex;
    align-items: center;
    margin-bottom: 10px;
    color: #cfe2ff;
    font-size: 12px;
    letter-spacing: .01em;
}
.holiday-form-hero .holiday-hero-back:hover { color: #fff; }
.holiday-form-hero .eyebrow {
    margin-bottom: 5px;
    color: #aecdFA;
}
.holiday-form-hero h1 {
    margin: 0 0 8px;
    color: #fff;
    font-size: clamp(28px, 3vw, 38px);
    letter-spacing: -.045em;
}
.holiday-form-hero p.holiday-hero-summary {
    max-width: 720px;
    color: rgba(255,255,255,.86);
    font-size: 14px;
    line-height: 1.55;
}
.holiday-form-hero p.holiday-hero-summary strong { color: #fff; }
.holiday-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
}
.holiday-hero-meta span {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border: 1px solid rgba(255,255,255,.19);
    border-radius: 999px;
    color: #eaf3ff;
    background: rgba(255,255,255,.08);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .015em;
}
.holiday-form-hero-actions {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(170px, 1fr));
    width: min(430px, 100%);
    gap: 10px;
}
.holiday-hero-action {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 66px;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 14px;
    color: #fff;
    background: rgba(255,255,255,.10);
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(7, 23, 50, .10);
    transition: transform .16s ease, background .16s ease, border-color .16s ease;
}
.holiday-hero-action:hover {
    color: #fff;
    border-color: rgba(255,255,255,.48);
    background: rgba(255,255,255,.16);
    transform: translateY(-1px);
}
.holiday-hero-action-primary {
    color: #10284f;
    border-color: #fff;
    background: #fff;
}
.holiday-hero-action-primary:hover {
    color: #10284f;
    border-color: #fff;
    background: #f5f9ff;
}
.holiday-hero-action-icon {
    display: grid;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 10px;
    background: rgba(255,255,255,.15);
    font-size: 19px;
    font-weight: 900;
}
.holiday-hero-action-primary .holiday-hero-action-icon { background: #eaf2ff; }
.holiday-hero-action strong,
.holiday-hero-action small { display: block; }
.holiday-hero-action strong { font-size: 12.5px; line-height: 1.25; }
.holiday-hero-action small {
    margin-top: 3px;
    color: rgba(255,255,255,.72);
    font-size: 10px;
    line-height: 1.25;
}
.holiday-hero-action-primary small { color: #647892; }

@media (max-width: 980px) {
    .holiday-form-hero { align-items: flex-start; flex-direction: column; }
    .holiday-form-hero-actions { width: 100%; max-width: 500px; justify-content: stretch; }
}
@media (max-width: 580px) {
    .holiday-form-hero { padding: 23px 20px; border-radius: 18px; }
    .holiday-form-hero-actions { grid-template-columns: 1fr; }
    .holiday-hero-action { min-height: 58px; }
    .holiday-hero-meta { gap: 6px; }
}

/* Top navigation dropdowns */
.top-navigation {
    position: relative;
}

.top-nav-dropdown {
    position: relative;
}

.top-nav-dropdown > summary {
    list-style: none;
    cursor: pointer;
    color: #fff;
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    padding: 10px 12px;
    border-radius: 12px;
    transition: background .18s ease, transform .18s ease;
    user-select: none;
    white-space: nowrap;
}

.top-nav-dropdown > summary::-webkit-details-marker {
    display: none;
}

.top-nav-dropdown > summary::after {
    content: "\25BE";
    display: inline-block;
    margin-left: 7px;
    font-size: 10px;
    transition: transform .18s ease;
}

.top-nav-dropdown[open] > summary::after {
    transform: rotate(180deg);
}

.top-nav-dropdown > summary:hover,
.top-nav-dropdown[open] > summary {
    background: rgba(255,255,255,.14);
}

.top-nav-menu {
    position: absolute;
    z-index: 1000;
    top: calc(100% + 9px);
    left: 0;
    min-width: 230px;
    padding: 8px;
    border: 1px solid rgba(15, 42, 80, .12);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(7, 26, 55, .22);
}

.top-nav-menu-right {
    left: auto;
    right: 0;
}

.topbar .top-nav-menu a {
    display: flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 10px;
    color: #102a52;
    font-size: 13px;
    font-weight: 700;
    opacity: 1;
}

.topbar .top-nav-menu a:hover {
    background: #eef4fc;
    color: #0b1f3a;
}

@media (max-width: 900px) {
    .top-navigation {
        width: 100%;
        justify-content: flex-start !important;
    }

    .top-nav-menu {
        min-width: 210px;
    }
}

@media (max-width: 620px) {
    .top-nav-dropdown {
        flex: 1 1 auto;
    }

    .top-nav-dropdown > summary {
        text-align: center;
    }

    .top-nav-menu,
    .top-nav-menu-right {
        position: fixed;
        left: 14px;
        right: 14px;
        top: 104px;
        min-width: 0;
    }
}

/* Refined two-menu top navigation */
.top-navigation {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.top-nav-dropdown > summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 38px;
    padding: 9px 14px;
    border: 1px solid rgba(255,255,255,.13);
    background: rgba(255,255,255,.10);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.top-nav-summary-icon {
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    font-size: 13px;
    opacity: .92;
}

.top-nav-dropdown > summary:hover,
.top-nav-dropdown[open] > summary {
    background: rgba(255,255,255,.18);
    border-color: rgba(255,255,255,.28);
    transform: translateY(-1px);
}

.top-nav-menu {
    width: min(430px, calc(100vw - 28px));
    min-width: 330px;
    padding: 10px;
    border-radius: 18px;
    border-color: rgba(16, 42, 82, .14);
    box-shadow: 0 22px 54px rgba(6, 24, 51, .26);
}

.top-nav-menu-admin {
    width: min(340px, calc(100vw - 28px));
    min-width: 300px;
}

.top-nav-section + .top-nav-section {
    margin-top: 8px;
    padding-top: 9px;
    border-top: 1px solid #e6edf7;
}

.top-nav-section-title {
    padding: 4px 10px 7px;
    color: #6b7f9b;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.topbar .top-nav-menu a {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 10px;
    min-height: 54px;
    padding: 9px 10px;
    border: 1px solid transparent;
}

.topbar .top-nav-menu a:hover {
    border-color: #dbe6f5;
    background: #f3f7fc;
}

.top-nav-link-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: #eaf1fb;
    color: #244f91;
    font-size: 11px;
    font-weight: 850;
}

.topbar .top-nav-menu a strong,
.topbar .top-nav-menu a small {
    display: block;
}

.topbar .top-nav-menu a strong {
    color: #102a52;
    font-size: 13px;
    line-height: 1.3;
}

.topbar .top-nav-menu a small {
    margin-top: 2px;
    color: #72829a;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.35;
}

@media (max-width: 900px) {
    .top-navigation {
        gap: 7px;
    }

    .top-nav-dropdown > summary {
        min-height: 36px;
        padding: 8px 11px;
    }
}

@media (max-width: 620px) {
    .top-navigation {
        display: grid;
        grid-template-columns: 1fr 1fr auto;
        width: 100%;
    }

    .top-nav-dropdown {
        min-width: 0;
    }

    .top-nav-dropdown > summary {
        justify-content: center;
        width: 100%;
    }

    .top-nav-menu,
    .top-nav-menu-right,
    .top-nav-menu-admin {
        top: 102px;
        width: auto;
        min-width: 0;
    }
}

/* Desktop sidebar grouping: Fund and Portfolio */
.side-menu-title-secondary {
    margin-top: 18px !important;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}


/* -------------------------------------------------------------------------
   Grounded portal AI search and question panel
   ------------------------------------------------------------------------- */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.ai-assistant-launcher {
  position: fixed;
  z-index: 1200;
  right: max(22px, env(safe-area-inset-right));
  bottom: max(22px, env(safe-area-inset-bottom));
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 50px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: linear-gradient(135deg, #10294f 0%, #1e5f94 100%);
  box-shadow: 0 16px 40px rgba(8, 29, 61, 0.28);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.ai-assistant-launcher:hover,
.ai-assistant-launcher:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 20px 44px rgba(8, 29, 61, 0.34);
}

.ai-launcher-mark {
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
  font-size: 16px;
}

.ai-assistant-panel[hidden] {
  display: none !important;
}

.ai-assistant-panel {
  position: fixed;
  z-index: 1199;
  right: max(22px, env(safe-area-inset-right));
  bottom: calc(max(22px, env(safe-area-inset-bottom)) + 64px);
  display: grid;
  grid-template-rows: auto auto minmax(160px, 1fr) auto auto auto;
  width: min(440px, calc(100vw - 32px));
  height: min(650px, calc(100dvh - 120px));
  overflow: hidden;
  border: 1px solid #dce5f2;
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(7, 27, 55, 0.3);
}

.ai-assistant-header {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 22px 22px 18px;
  background: linear-gradient(135deg, #10294f 0%, #174b7e 100%);
  color: #fff;
}

.ai-assistant-eyebrow {
  margin-bottom: 5px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.13em;
}

.ai-assistant-header h2 {
  margin: 0;
  color: #fff;
  font-size: 21px;
  line-height: 1.15;
}

.ai-assistant-header p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 12px;
}

.ai-icon-button {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 25px;
  line-height: 1;
  cursor: pointer;
}

.ai-assistant-suggestions {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding: 12px 16px;
  border-bottom: 1px solid #e5ebf3;
  background: #f7f9fc;
  scrollbar-width: none;
}

.ai-assistant-suggestions::-webkit-scrollbar { display: none; }

.ai-assistant-suggestions button {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid #d8e2ef;
  border-radius: 999px;
  background: #fff;
  color: #294568;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.ai-assistant-messages {
  overflow-y: auto;
  padding: 17px;
  background: #f4f7fb;
  overscroll-behavior: contain;
}

.ai-message {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 13px;
}

.ai-message-user { align-items: flex-end; }

.ai-message-bubble {
  max-width: 91%;
  padding: 11px 13px;
  border: 1px solid #dce5f1;
  border-radius: 16px 16px 16px 5px;
  background: #fff;
  color: #172b48;
  font-size: 12.5px;
  line-height: 1.52;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.ai-message-user .ai-message-bubble {
  border-color: #173b68;
  border-radius: 16px 16px 5px 16px;
  background: #173b68;
  color: #fff;
}

.ai-message-sources {
  width: min(91%, 370px);
  margin-top: 7px;
  padding: 9px 11px;
  border: 1px solid #dce5f1;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
}

.ai-message-sources-label {
  margin-bottom: 5px;
  color: #728198;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ai-source-list {
  display: grid;
  gap: 4px;
}

.ai-source-link {
  color: #1d5788;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
}

.ai-source-link:hover { text-decoration: underline; }

.ai-search-mode-note {
  margin-top: 6px;
  color: #8a5b16;
  font-size: 10px;
}

.ai-assistant-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px;
  padding: 13px 15px 10px;
  border-top: 1px solid #e0e7f0;
  background: #fff;
}

.ai-assistant-form textarea {
  width: 100%;
  min-height: 48px;
  max-height: 120px;
  resize: vertical;
  padding: 10px 12px;
  border: 1px solid #ced9e7;
  border-radius: 13px;
  background: #f9fbfd;
  color: #162b48;
  font: inherit;
  font-size: 12px;
  line-height: 1.4;
}

.ai-assistant-form textarea:focus {
  outline: 2px solid rgba(36, 102, 158, 0.18);
  border-color: #27679e;
}

.ai-send-button {
  align-self: stretch;
  min-width: 62px;
  padding: 0 14px;
  border: 0;
  border-radius: 13px;
  background: #173b68;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.ai-send-button:disabled { opacity: 0.55; cursor: wait; }

.ai-assistant-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 0 17px 8px;
  color: #738198;
  font-size: 10px;
}

.ai-assistant-footer button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #315b85;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.ai-assistant-disclaimer {
  padding: 0 17px 12px;
  color: #919bad;
  font-size: 9px;
  line-height: 1.35;
}

@media (max-width: 700px) {
  .ai-assistant-launcher {
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(max(76px, env(safe-area-inset-bottom) + 58px));
    width: 52px;
    min-height: 52px;
    padding: 0;
    justify-content: center;
  }

  .ai-launcher-label { display: none; }

  .ai-assistant-panel {
    right: max(8px, env(safe-area-inset-right));
    bottom: calc(max(72px, env(safe-area-inset-bottom) + 54px));
    width: calc(100vw - max(16px, env(safe-area-inset-left) + env(safe-area-inset-right)));
    height: min(620px, calc(100dvh - 105px - env(safe-area-inset-top)));
    border-radius: 20px;
  }

  .ai-assistant-header { padding: 17px 17px 14px; }
  .ai-assistant-header h2 { font-size: 18px; }
  .ai-assistant-suggestions { padding: 9px 12px; }
  .ai-assistant-messages { padding: 13px; }
  .ai-message-bubble { font-size: 12px; }
}

@media (max-height: 520px) and (orientation: landscape) {
  .ai-assistant-panel {
    top: max(8px, env(safe-area-inset-top));
    bottom: max(8px, env(safe-area-inset-bottom));
    height: auto;
  }
  .ai-assistant-launcher { bottom: max(12px, env(safe-area-inset-bottom)); }
  .ai-assistant-suggestions { display: none; }
}


/* AI assistant inside the native mobile WebView */
html.convergent-mobile-app .ai-assistant-launcher {
  right: max(12px, env(safe-area-inset-right));
  bottom: max(12px, env(safe-area-inset-bottom));
}

html.convergent-mobile-app .ai-assistant-panel {
  right: max(6px, env(safe-area-inset-right));
  bottom: max(6px, env(safe-area-inset-bottom));
  width: calc(100vw - max(12px, env(safe-area-inset-left) + env(safe-area-inset-right)));
  height: calc(100dvh - max(12px, env(safe-area-inset-top) + env(safe-area-inset-bottom)));
  max-height: none;
  border-radius: 18px;
}

@media (orientation: landscape) {
  html.convergent-mobile-app .ai-assistant-panel {
    top: max(6px, env(safe-area-inset-top));
    bottom: max(6px, env(safe-area-inset-bottom));
    height: auto;
  }
}
