:root {
    --navy: #15345b;
    --blue: #174ea6;
    --cyan: #12a4a6;
    --copper: #d16b45;

    --ink: #1f2b38;
    --muted: #69788a;
    --line: #d9e2ec;
    --wash: #f4f8fb;
    --paper: #ffffff;

    --good: #177a70;
    --danger: #b44b42;

    --shadow:
        0 20px 60px rgba(21, 52, 91, .08);
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    margin: 0;
    min-height: 100vh;
    background: var(--paper);
    color: var(--ink);
    font-family:
        Arial,
        Helvetica,
        sans-serif;
}

button,
input {
    font: inherit;
}

button {
    cursor: pointer;
}

a {
    color: inherit;
}

.topline {
    height: 6px;
    background:
        linear-gradient(
            90deg,
            var(--blue) 0 42%,
            var(--cyan) 42% 72%,
            var(--copper) 72%
        );
}

.meridian-brand {
    display: flex;
    align-items: center;
    gap: 12px;

    color: var(--navy);

    font-size: 14px;
    font-weight: 800;
    letter-spacing: .12em;
}

.meridian-mark {
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
}

.kicker {
    color: var(--blue);

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .18em;
    line-height: 1.4;

    text-transform: uppercase;
}

.serif {
    font-family:
        Georgia,
        "Times New Roman",
        serif;
}

.muted {
    color: var(--muted);
}

.screen {
    min-height:
        calc(100vh - 6px);
}


/* -----------------------------------------
   Login
   ----------------------------------------- */

.login-shell {
    display: grid;
    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(420px, .8fr);

    min-height:
        calc(100vh - 6px);
}

.login-story {
    display: flex;
    flex-direction: column;

    padding:
        36px
        clamp(34px, 5vw, 82px)
        46px;

    border-right:
        1px solid var(--line);
}

.login-story header {
    display: flex;
    justify-content: space-between;
    align-items: center;

    min-height: 74px;

    border-bottom:
        1px solid var(--line);
}

.environment {
    color: #718092;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.login-story-main {
    display: grid;
    grid-template-columns:
        190px
        minmax(0, 1fr);

    gap: clamp(34px, 5vw, 76px);

    flex: 1;

    align-items: center;

    padding: 66px 0;
}

.login-rail {
    align-self: stretch;

    padding-right: 28px;

    border-right:
        1px solid var(--line);
}

.login-rail .kicker {
    margin-bottom: 30px;
}

.rail-step {
    padding: 16px 0;

    border-top:
        1px solid var(--line);

    color: #5b6c7c;

    font-size: 12px;
    line-height: 1.45;
}

.rail-step strong {
    display: block;

    margin-bottom: 4px;

    color: var(--navy);

    font-size: 13px;
}

.login-copy h1 {
    max-width: 760px;

    margin:
        16px 0
        28px;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(56px, 6.3vw, 104px);

    font-weight: 500;

    letter-spacing: -.055em;
    line-height: .89;
}

.login-copy h1 em {
    color: var(--blue);
    font-style: normal;
}

.login-copy > p {
    max-width: 660px;

    color: #56687a;

    font-size: 17px;
    line-height: 1.7;
}

.login-proof {
    max-width: 660px;

    margin-top: 34px;
    padding:
        5px 0
        5px 20px;

    border-left:
        4px solid var(--cyan);

    color: var(--navy);

    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
}

.login-story footer {
    display: flex;
    justify-content: space-between;

    padding-top: 24px;

    border-top:
        1px solid var(--line);

    color: #728090;

    font-size: 11px;
    letter-spacing: .05em;
}

.login-panel {
    display: flex;
    align-items: center;

    padding:
        50px
        clamp(36px, 5vw, 76px);

    background: var(--wash);
}

.login-card {
    width: 100%;
    max-width: 520px;

    margin: 0 auto;

    padding:
        clamp(34px, 4vw, 54px);

    background: var(--paper);

    border:
        1px solid var(--line);
    border-top:
        4px solid var(--blue);

    box-shadow: var(--shadow);
}

.login-card h2 {
    margin:
        16px 0
        10px;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(36px, 4vw, 52px);

    font-weight: 500;

    letter-spacing: -.035em;
}

.login-card-intro {
    margin:
        0 0
        34px;

    color: #647588;

    font-size: 14px;
    line-height: 1.65;
}

.field {
    margin-bottom: 22px;
}

.field label {
    display: block;

    margin-bottom: 8px;

    color: var(--navy);

    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.field input {
    width: 100%;

    padding: 14px 14px;

    background: #fff;

    border:
        1px solid #cbd7e3;
    border-radius: 0;

    color: var(--ink);

    outline: none;
}

.field input:focus {
    border-color: var(--blue);

    box-shadow:
        0 0 0 3px
        rgba(23, 78, 166, .08);
}

.primary-button {
    width: 100%;

    margin-top: 4px;
    padding: 15px 18px;

    border: 0;

    background: var(--navy);
    color: #fff;

    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;

    text-transform: uppercase;
}

.primary-button:hover {
    background: var(--blue);
}

.primary-button:disabled {
    cursor: wait;
    opacity: .65;
}

.login-status {
    min-height: 22px;

    margin-top: 18px;

    color: var(--danger);

    font-size: 13px;
    line-height: 1.5;
}

.login-security {
    margin-top: 30px;
    padding-top: 18px;

    border-top:
        1px solid var(--line);

    color: #748291;

    font-size: 11px;
    line-height: 1.6;
}


/* -----------------------------------------
   Organization selector
   ----------------------------------------- */

.org-shell {
    display: none;

    min-height:
        calc(100vh - 6px);

    padding:
        34px
        clamp(24px, 6vw, 92px)
        70px;
}

.org-header {
    display: flex;
    justify-content: space-between;
    align-items: center;

    min-height: 74px;

    border-bottom:
        1px solid var(--line);
}

.org-main {
    max-width: 1100px;

    margin: 0 auto;
    padding: 76px 0;
}

.org-main h1 {
    max-width: 820px;

    margin:
        16px 0
        18px;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(48px, 6vw, 82px);

    font-weight: 500;

    letter-spacing: -.045em;
    line-height: .95;
}

.org-intro {
    max-width: 680px;

    margin-bottom: 44px;

    color: #5b6b7a;

    font-size: 16px;
    line-height: 1.65;
}

.org-list {
    border:
        1px solid var(--line);
    border-top:
        4px solid var(--blue);
}

.org-row {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 24px;

    padding: 25px 28px;

    background: #fff;

    border-bottom:
        1px solid var(--line);

    transition:
        background .15s ease;
}

.org-row:last-child {
    border-bottom: 0;
}

.org-row:hover {
    background: var(--wash);
}

.org-row h3 {
    margin:
        0 0 5px;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 26px;
    font-weight: 500;
}

.org-row p {
    margin: 0;

    color: #718092;

    font-size: 12px;
}

.org-select {
    align-self: center;

    padding:
        11px 15px;

    border:
        1px solid var(--blue);

    background: #fff;
    color: var(--blue);

    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;

    text-transform: uppercase;
}

.org-select:hover {
    background: var(--blue);
    color: #fff;
}


/* -----------------------------------------
   Application shell
   ----------------------------------------- */

.app-shell {
    display: none;

    min-height:
        calc(100vh - 6px);

    background: #fff;
}

.app-frame {
    display: grid;
    grid-template-columns:
        250px
        minmax(0, 1fr);

    min-height:
        calc(100vh - 6px);
}

.sidebar {
    display: flex;
    flex-direction: column;

    padding: 28px 24px;

    border-right:
        1px solid var(--line);

    background: #fff;
}

.sidebar-brand {
    min-height: 62px;

    border-bottom:
        1px solid var(--line);
}

.org-context {
    padding: 24px 0;

    border-bottom:
        1px solid var(--line);
}

.org-context small {
    display: block;

    margin-bottom: 8px;

    color: #7a8795;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.org-context strong {
    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 20px;
    font-weight: 500;
}

.sidebar-nav {
    display: grid;
    gap: 3px;

    padding: 22px 0;
}

.nav-section {
    margin:
        17px 0
        7px;

    color: #8a97a4;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.sidebar-nav a {
    padding: 10px 11px;

    color: #536779;

    font-size: 13px;

    text-decoration: none;

    border-left:
        3px solid transparent;
}

.sidebar-nav a:hover {
    color: var(--navy);
    background: var(--wash);
}

.sidebar-nav a.active {
    color: var(--navy);
    background: var(--wash);

    border-left-color:
        var(--blue);

    font-weight: 700;
}

.sidebar-footer {
    margin-top: auto;

    padding-top: 18px;

    border-top:
        1px solid var(--line);
}

.logout-button {
    padding: 0;

    border: 0;
    background: transparent;

    color: #68798a;

    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;

    text-transform: uppercase;
}

.logout-button:hover {
    color: var(--copper);
}

.workspace {
    min-width: 0;
}

.workspace-header {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 20px;

    align-items: center;

    min-height: 90px;

    padding:
        0
        clamp(24px, 4vw, 54px);

    border-bottom:
        1px solid var(--line);
}

.workspace-title {
    display: flex;
    align-items: center;
    gap: 18px;
}

.workspace-title h1 {
    margin: 0;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 28px;
    font-weight: 500;
}

.operating-state {
    padding:
        7px 10px;

    background:
        rgba(18, 164, 166, .08);

    color: var(--good);

    font-size: 9px;
    font-weight: 700;
    letter-spacing: .12em;

    text-transform: uppercase;
}

.user-chip {
    color: #657688;

    font-size: 12px;
}

.workspace-main {
    padding:
        clamp(34px, 4vw, 58px);
}

.dashboard-heading {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        280px;

    gap: 60px;

    align-items: end;

    padding-bottom: 42px;

    border-bottom:
        1px solid var(--line);
}

.dashboard-heading h2 {
    max-width: 800px;

    margin:
        12px 0 0;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(44px, 5vw, 72px);

    font-weight: 500;

    letter-spacing: -.045em;
    line-height: .95;
}

.dashboard-proof {
    padding:
        5px 0
        5px 18px;

    border-left:
        4px solid var(--cyan);

    color: #586a7c;

    font-size: 13px;
    line-height: 1.55;
}

.state-grid {
    display: grid;
    grid-template-columns:
        repeat(4, 1fr);

    margin-top: 34px;

    border:
        1px solid var(--line);
    border-top:
        4px solid var(--blue);
}

.state-card {
    min-height: 160px;

    padding: 24px;

    border-right:
        1px solid var(--line);
}

.state-card:last-child {
    border-right: 0;
}

.state-card small {
    display: block;

    color: #7b8998;

    font-size: 9px;
    font-weight: 700;
    letter-spacing: .13em;

    text-transform: uppercase;
}

.state-card strong {
    display: block;

    margin-top: 40px;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 30px;
    font-weight: 500;
}

.state-card strong.good {
    color: var(--good);
}

.state-card strong.attention {
    color: var(--copper);
}

.control-ledger {
    display: grid;
    grid-template-columns:
        .78fr
        1.22fr;

    gap: 60px;

    padding: 60px 0;
}

.control-ledger h3 {
    margin:
        14px 0
        0;

    color: var(--navy);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(36px, 4vw, 58px);

    font-weight: 500;

    letter-spacing: -.04em;
}

.ledger {
    border-top:
        2px solid var(--navy);
}

.ledger-row {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        120px;

    gap: 15px;

    padding: 17px 0;

    border-bottom:
        1px solid var(--line);

    font-size: 13px;
}

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

.status {
    text-align: right;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .08em;

    text-transform: uppercase;
}

.status.ok {
    color: var(--good);
}

.status.review {
    color: var(--copper);
}


/* -----------------------------------------
   General states
   ----------------------------------------- */

.loading-overlay {
    position: fixed;
    inset: 6px 0 0;

    display: flex;
    justify-content: center;
    align-items: center;

    z-index: 99;

    background:
        rgba(255, 255, 255, .94);

    color: var(--navy);

    font-size: 11px;
    font-weight: 700;
    letter-spacing: .13em;

    text-transform: uppercase;
}

.hidden {
    display: none !important;
}


/* -----------------------------------------
   Responsive
   ----------------------------------------- */

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

    .login-story {
        min-height: auto;

        border-right: 0;
        border-bottom:
            1px solid var(--line);
    }

    .login-story-main {
        grid-template-columns: 1fr;

        padding:
            48px 0;
    }

    .login-rail {
        display: none;
    }

    .login-copy h1 {
        max-width: 780px;
    }

    .login-panel {
        min-height: 620px;
    }

    .app-frame {
        grid-template-columns:
            210px
            minmax(0, 1fr);
    }

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

    .state-card:nth-child(2) {
        border-right: 0;
    }

    .state-card {
        border-bottom:
            1px solid var(--line);
    }

    .dashboard-heading,
    .control-ledger {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 720px) {
    .login-story {
        padding:
            24px 20px
            34px;
    }

    .login-story header {
        min-height: 60px;
    }

    .environment {
        display: none;
    }

    .login-copy h1 {
        font-size:
            clamp(48px, 16vw, 72px);
    }

    .login-story footer {
        gap: 20px;
        flex-direction: column;
    }

    .login-panel {
        min-height: auto;
        padding:
            42px 20px;
    }

    .login-card {
        padding:
            30px 24px;
    }

    .org-shell {
        padding:
            22px 20px
            50px;
    }

    .org-row {
        grid-template-columns: 1fr;
    }

    .org-select {
        justify-self: start;
    }

    .app-frame {
        display: block;
    }

    .sidebar {
        display: none;
    }

    .workspace-header {
        min-height: 76px;

        padding:
            0 20px;
    }

    .workspace-title h1 {
        font-size: 22px;
    }

    .operating-state {
        display: none;
    }

    .workspace-main {
        padding:
            32px 20px;
    }

    .dashboard-heading h2 {
        font-size:
            clamp(42px, 13vw, 60px);
    }

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

    .state-card,
    .state-card:nth-child(2) {
        border-right: 0;
    }
}

/* =================================================
   ARELIVO 11F-C3 — GOVERNED APPROVALS
   ================================================= */

.approvals-workspace {
    padding: 34px 38px 60px;
    max-width: 1440px;
    margin: 0 auto;
}

.approvals-heading {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
    margin-bottom: 28px;
}

.approvals-heading h1 {
    margin: 4px 0 8px;
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 34px;
    font-weight: 500;
}

.approvals-heading p {
    max-width: 720px;
    margin: 0;
    color: #5c6875;
    line-height: 1.6;
}

.approvals-kicker {
    color: #174ea6;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
}

.approvals-back {
    border: 1px solid #d9e0e7;
    background: #fff;
    color: #15345b;
    padding: 10px 14px;
    border-radius: 5px;
    cursor: pointer;
}

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

.approval-summary-card {
    background: #fff;
    border: 1px solid #e1e6eb;
    border-top: 3px solid #174ea6;
    padding: 18px;
}

.approval-summary-card small {
    display: block;
    color: #687482;
    margin-bottom: 9px;
}

.approval-summary-card strong {
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 27px;
    font-weight: 500;
}

.approval-toolbar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.approval-filter {
    border: 1px solid #d7dee6;
    background: #fff;
    color: #43566b;
    padding: 8px 13px;
    border-radius: 4px;
    cursor: pointer;
}

.approval-filter.active {
    border-color: #174ea6;
    background: #174ea6;
    color: #fff;
}

.approvals-list {
    display: grid;
    gap: 16px;
}

.approval-card {
    background: #fff;
    border: 1px solid #dfe5eb;
    border-left: 4px solid #174ea6;
    padding: 22px;
}

.approval-card-top {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: flex-start;
}

.approval-action-name {
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 21px;
}

.approval-resource {
    margin-top: 5px;
    color: #687482;
    font-size: 13px;
}

.approval-status {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    white-space: nowrap;
}

.approval-status-pending {
    background: #fff3e8;
    color: #9a4e30;
}

.approval-status-approved {
    background: #e9f6f3;
    color: #176a60;
}

.approval-status-rejected {
    background: #faece9;
    color: #963f35;
}

.approval-status-neutral {
    background: #eef1f4;
    color: #57636f;
}

.approval-meta-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 20px;
    padding: 20px 0;
    margin-top: 17px;
    border-top: 1px solid #edf0f3;
    border-bottom: 1px solid #edf0f3;
}

.approval-meta-grid small {
    display: block;
    color: #77818c;
    margin-bottom: 5px;
}

.approval-meta-grid strong {
    color: #273e58;
    font-size: 13px;
    font-weight: 600;
}

.approval-detail {
    margin-top: 17px;
}

.approval-detail summary {
    cursor: pointer;
    color: #174ea6;
    font-weight: 600;
}

.approval-detail pre {
    overflow: auto;
    margin-top: 12px;
    padding: 15px;
    background: #f6f8fa;
    border: 1px solid #e2e7ec;
    color: #34475a;
    font-size: 12px;
    line-height: 1.55;
}

.approval-decision {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #edf0f3;
}

.approval-decision label {
    display: block;
    color: #34475a;
    font-size: 13px;
    font-weight: 600;
}

.approval-decision label span {
    color: #8a939c;
    font-weight: 400;
}

.approval-decision textarea {
    width: 100%;
    min-height: 84px;
    box-sizing: border-box;
    margin-top: 9px;
    padding: 11px;
    resize: vertical;
    border: 1px solid #ccd5dd;
    border-radius: 4px;
    font: inherit;
}

.approval-actions {
    display: flex;
    gap: 9px;
    margin-top: 12px;
}

.approval-approve,
.approval-reject {
    border: 0;
    padding: 10px 18px;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    font-weight: 600;
}

.approval-approve {
    background: #174ea6;
}

.approval-reject {
    background: #7b4b42;
}

.approval-evidence {
    margin-top: 18px;
    padding: 14px 16px;
    background: #f7f9fa;
    border-left: 3px solid #12a4a6;
}

.approval-evidence strong,
.approval-evidence span,
.approval-evidence small {
    display: block;
}

.approval-evidence span {
    margin-top: 5px;
    color: #15345b;
    font-weight: 700;
}

.approval-evidence p {
    margin: 8px 0;
    color: #566472;
}

.approval-evidence small {
    color: #7d8791;
}

.approvals-loading,
.approvals-empty {
    padding: 40px;
    text-align: center;
    background: #fff;
    border: 1px solid #e0e5ea;
    color: #687482;
}

.approvals-empty strong {
    display: block;
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 20px;
}

.approvals-empty p {
    margin-bottom: 0;
}

.approvals-message {
    margin-bottom: 16px;
    padding: 12px 14px;
    border-left: 4px solid #174ea6;
    background: #eef4fb;
    color: #27445f;
}

.approvals-message.success {
    border-color: #12a4a6;
    background: #ebf7f5;
}

.approvals-message.error {
    border-color: #d16b45;
    background: #fbefeb;
}

@media (max-width: 900px) {
    .approval-summary,
    .approval-meta-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .approvals-workspace {
        padding: 22px 16px 45px;
    }

    .approvals-heading {
        display: block;
    }

    .approvals-back {
        margin-top: 16px;
    }

    .approval-summary,
    .approval-meta-grid {
        grid-template-columns: 1fr;
    }

    .approval-card-top {
        display: block;
    }

    .approval-status {
        margin-top: 12px;
    }

    .approval-actions {
        flex-direction: column;
    }

    .approval-approve,
    .approval-reject {
        width: 100%;
    }
}


/* =================================================
   ARELIVO 11F-C3R3
   DETERMINISTIC WORKSPACE VIEW SWITCH
   ================================================= */

/*
 * The HTML hidden attribute alone is not used
 * for Meridian view switching because existing
 * component display rules may override it.
 */

.workspace-main
    .approvals-workspace[hidden] {
    display: none !important;
}


/*
 * When Approvals mode is active, every normal
 * Executive State child is suppressed.
 */

.workspace-main.arelivo-approvals-mode
    > :not(#approvalsWorkspace) {
    display: none !important;
}


/*
 * The governed Approvals workspace becomes the
 * only visible workspace-main child.
 */

.workspace-main.arelivo-approvals-mode
    > #approvalsWorkspace {
    display: block !important;
    width: 100%;
    box-sizing: border-box;
}


/*
 * Prevent stale layout state from extending
 * the main application area.
 */

.workspace-main.arelivo-approvals-mode {
    display: block;
}


/* =================================================
   ARELIVO OFFICIAL MARK + RESPONSIVE DISPLAY TYPE
   ================================================= */

.arelivo-official-mark {
    display: block;
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    object-fit: contain;
}


/*
 * Main Executive State display heading.
 */

.arelivo-display-title {
    font-size:
        clamp(
            2rem,
            3.15vw,
            3.3rem
        ) !important;

    line-height:
        1.02 !important;

    letter-spacing:
        -0.04em !important;

    max-width:
        850px;
}


/*
 * Executive Signal heading.
 */

.arelivo-signal-title {
    font-size:
        clamp(
            1.75rem,
            2.65vw,
            2.7rem
        ) !important;

    line-height:
        1.04 !important;

    letter-spacing:
        -0.035em !important;
}


@media (max-width: 900px) {

    .arelivo-official-mark {
        width: 38px;
        height: 38px;
    }

    .arelivo-display-title {
        font-size:
            clamp(
                2rem,
                5.4vw,
                2.7rem
            ) !important;

        line-height:
            1.04 !important;
    }

    .arelivo-signal-title {
        font-size:
            clamp(
                1.8rem,
                4.7vw,
                2.3rem
            ) !important;
    }
}


@media (max-width: 600px) {

    .arelivo-official-mark {
        width: 34px;
        height: 34px;
    }

    .arelivo-display-title {
        font-size:
            clamp(
                1.85rem,
                8vw,
                2.1rem
            ) !important;

        line-height:
            1.06 !important;

        max-width:
            100%;
    }

    .arelivo-signal-title {
        font-size:
            clamp(
                1.65rem,
                7vw,
                1.95rem
            ) !important;

        line-height:
            1.07 !important;
    }
}


@media (max-width: 380px) {

    .arelivo-display-title {
        font-size:
            1.8rem !important;
    }

    .arelivo-signal-title {
        font-size:
            1.62rem !important;
    }
}


/* =================================================
   ARELIVO — POLICIES WORKSPACE
   ================================================= */

.workspace-main
    .policies-workspace[hidden] {
    display: none !important;
}


.workspace-main.arelivo-policies-mode
    > :not(#policiesWorkspace) {
    display: none !important;
}


.workspace-main.arelivo-policies-mode
    > #policiesWorkspace {
    display: block !important;
    width: 100%;
    box-sizing: border-box;
}


.workspace-main.arelivo-policies-mode {
    display: block;
}


.policies-workspace {
    padding: 34px 38px 60px;
    max-width: 1440px;
    margin: 0 auto;
}


.policies-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 28px;
}


.policies-kicker {
    color: #174ea6;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
}


.policies-heading h1 {
    margin: 5px 0 8px;
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 34px;
    font-weight: 500;
}


.policies-heading p {
    max-width: 720px;
    margin: 0;
    color: #5c6875;
    line-height: 1.6;
}


.policies-back {
    border: 1px solid #d9e0e7;
    background: #fff;
    color: #15345b;
    padding: 10px 14px;
    border-radius: 5px;
    cursor: pointer;
}


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


.policy-summary-card {
    background: #fff;
    border: 1px solid #e1e6eb;
    border-top: 3px solid #174ea6;
    padding: 18px;
}


.policy-summary-card small {
    display: block;
    color: #687482;
    margin-bottom: 9px;
}


.policy-summary-card strong {
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 27px;
    font-weight: 500;
}


.policies-list {
    display: grid;
    gap: 16px;
}


.policy-card {
    background: #fff;
    border: 1px solid #dfe5eb;
    border-left: 4px solid #174ea6;
    padding: 22px;
}


.policy-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}


.policy-name {
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 22px;
}


.policy-key {
    margin-top: 5px;
    color: #687482;
    font-size: 12px;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Consolas,
        monospace;
}


.policy-description {
    margin: 15px 0 0;
    color: #58697a;
    line-height: 1.55;
}


.policy-status {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    white-space: nowrap;
}


.policy-status-active {
    background: #e9f6f3;
    color: #176a60;
}


.policy-status-draft {
    background: #eef4fb;
    color: #174ea6;
}


.policy-status-disabled {
    background: #fff3e8;
    color: #9a4e30;
}


.policy-status-archived {
    background: #eef1f4;
    color: #57636f;
}


.policy-control-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 20px;

    margin-top: 20px;
    padding: 20px 0;

    border-top: 1px solid #edf0f3;
    border-bottom: 1px solid #edf0f3;
}


.policy-control-grid small,
.policy-evidence-row small,
.policy-reason small {
    display: block;
    color: #77818c;
    margin-bottom: 5px;
}


.policy-control-grid strong,
.policy-evidence-row strong {
    color: #273e58;
    font-size: 13px;
}


.policy-effect {
    display: inline-block;
}


.policy-effect-allow {
    color: #177a70 !important;
}


.policy-effect-deny {
    color: #963f35 !important;
}


.policy-effect-approval {
    color: #d16b45 !important;
}


.policy-evidence-row {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 20px;
    padding: 18px 0;
}


.policy-reason {
    padding-top: 15px;
    border-top: 1px solid #edf0f3;
}


.policy-reason p {
    margin: 6px 0 0;
    color: #44596e;
    line-height: 1.55;
}


.policy-definition {
    margin-top: 18px;
}


.policy-definition summary {
    cursor: pointer;
    color: #174ea6;
    font-weight: 600;
}


.policy-definition pre {
    overflow: auto;
    margin-top: 12px;
    padding: 15px;

    background: #f6f8fa;
    border: 1px solid #e2e7ec;

    color: #34475a;

    font-size: 12px;
    line-height: 1.55;
}


.policies-loading,
.policies-empty {
    padding: 40px;
    text-align: center;

    background: #fff;
    border: 1px solid #e0e5ea;

    color: #687482;
}


.policies-empty strong {
    display: block;

    color: #15345b;

    font-family: Georgia, serif;
    font-size: 20px;
}


.policies-message {
    margin-bottom: 16px;
    padding: 12px 14px;

    border-left: 4px solid #174ea6;

    background: #eef4fb;
    color: #27445f;
}


.policies-message.error {
    border-color: #d16b45;
    background: #fbefeb;
}


@media (max-width: 900px) {

    .policies-summary,
    .policy-control-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .policy-evidence-row {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 600px) {

    .policies-workspace {
        padding: 22px 16px 45px;
    }

    .policies-heading {
        display: block;
    }

    .policies-back {
        margin-top: 16px;
    }

    .policies-summary,
    .policy-control-grid {
        grid-template-columns: 1fr;
    }

    .policy-card-top {
        display: block;
    }

    .policy-status {
        margin-top: 12px;
    }
}


/* =================================================
   ARELIVO — POLICY ADMINISTRATION
   ================================================= */

.policies-heading-actions {
    display: flex;
    gap: 10px;
    align-items: center;
}


.policy-primary-action,
.policy-secondary-action,
.policy-danger-action {
    padding: 10px 15px;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
}


.policy-primary-action {
    border: 1px solid #174ea6;
    background: #174ea6;
    color: #fff;
}


.policy-secondary-action {
    border: 1px solid #d5dde5;
    background: #fff;
    color: #15345b;
}


.policy-danger-action {
    border: 1px solid #d9b5aa;
    background: #fff;
    color: #963f35;
}


.policy-management-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #edf0f3;
}


.policy-editor {
    margin-bottom: 22px;
    padding: 22px;
    background: #f8fafc;
    border: 1px solid #dce3ea;
    border-left: 4px solid #12a4a6;
}


.policy-version-editor {
    margin-top: 20px;
    margin-bottom: 0;
}


.policy-editor[hidden] {
    display: none !important;
}


.policy-editor-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 20px;
}


.policy-editor-heading strong {
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 20px;
    font-weight: 500;
}


.policy-editor-heading p {
    margin: 6px 0 0;
    color: #647487;
    line-height: 1.5;
}


.policy-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
}


.policy-form-grid label {
    display: block;
    color: #41566d;
    font-size: 12px;
    font-weight: 600;
}


.policy-form-wide {
    grid-column: 1 / -1;
}


.policy-form-grid input,
.policy-form-grid select,
.policy-form-grid textarea {
    display: block;
    width: 100%;
    box-sizing: border-box;

    margin-top: 7px;
    padding: 10px 11px;

    border: 1px solid #cbd5df;
    border-radius: 4px;

    background: #fff;
    color: #263e57;

    font: inherit;
}


.policy-form-grid textarea {
    min-height: 90px;
    resize: vertical;
}


.policy-editor-actions {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}


.policies-message.success {
    border-color: #12a4a6;
    background: #ebf7f5;
    color: #176a60;
}


@media (max-width: 700px) {

    .policies-heading-actions {
        align-items: stretch;
        flex-direction: column;
        margin-top: 16px;
    }

    .policies-heading-actions button {
        width: 100%;
    }

    .policy-form-grid {
        grid-template-columns: 1fr;
    }

    .policy-form-wide {
        grid-column: auto;
    }

    .policy-management-actions {
        flex-direction: column;
    }

    .policy-management-actions button {
        width: 100%;
    }

    .policy-editor-heading {
        display: block;
    }

    .policy-editor-heading button {
        width: 100%;
        margin-top: 12px;
    }
}

/* ARELIVO AUDIT WORKSPACE START */

.workspace-main
    .audit-workspace[hidden] {
    display: none !important;
}

.workspace-main.arelivo-audit-mode
    > :not(#auditWorkspace) {
    display: none !important;
}

.workspace-main.arelivo-audit-mode
    > #auditWorkspace {
    display: block !important;
    width: 100%;
    box-sizing: border-box;
}

.workspace-main.arelivo-audit-mode {
    display: block;
}

.audit-workspace {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 34px 38px 60px;
    box-sizing: border-box;
}

.audit-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 26px;
}

.audit-kicker {
    color: #174ea6;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .15em;
}

.audit-heading h1 {
    margin: 5px 0 8px;
    color: #15345b;
    font-family: Georgia, serif;
    font-size: clamp(
        1.9rem,
        3vw,
        2.7rem
    );
    font-weight: 500;
}

.audit-heading p {
    max-width: 720px;
    margin: 0;
    color: #5c6875;
    line-height: 1.6;
}

.audit-back,
.audit-primary-action,
.audit-secondary-action {
    padding: 9px 14px;
    border-radius: 4px;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
}

.audit-back,
.audit-secondary-action {
    border: 1px solid #d5dde5;
    background: #fff;
    color: #15345b;
}

.audit-primary-action {
    border: 1px solid #174ea6;
    background: #174ea6;
    color: #fff;
}

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

.audit-summary-card {
    min-width: 0;
    padding: 17px;
    background: #fff;
    border: 1px solid #e1e6eb;
    border-top: 3px solid #174ea6;
}

.audit-summary-card small {
    display: block;
    margin-bottom: 7px;
    color: #687482;
}

.audit-summary-card strong {
    display: block;
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 18px;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.audit-filter-panel {
    display: grid;
    grid-template-columns:
        1fr 1fr auto;
    align-items: end;
    gap: 14px;
    margin-bottom: 20px;
    padding: 17px;
    background: #f8fafc;
    border: 1px solid #dde4eb;
}

.audit-filter-panel label {
    color: #41566d;
    font-size: 12px;
    font-weight: 600;
}

.audit-filter-panel input {
    width: 100%;
    box-sizing: border-box;
    margin-top: 7px;
    padding: 10px 11px;
    border: 1px solid #cbd5df;
    border-radius: 4px;
    background: #fff;
    color: #263e57;
    font: inherit;
}

.audit-filter-actions {
    display: flex;
    gap: 8px;
}

.audit-list {
    display: grid;
    gap: 15px;
}

.audit-card {
    padding: 21px;
    background: #fff;
    border: 1px solid #dfe5eb;
    border-left: 4px solid #12a4a6;
}

.audit-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

.audit-action {
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 20px;
}

.audit-action-key {
    margin-top: 5px;
    color: #687482;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Consolas,
        monospace;
    font-size: 11px;
}

.audit-verified {
    padding: 5px 9px;
    border-radius: 3px;
    background: #e9f6f3;
    color: #176a60;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
}

.audit-meta-grid {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: 17px;
    padding: 17px 0;
    border-top: 1px solid #edf0f3;
    border-bottom: 1px solid #edf0f3;
}

.audit-meta-grid small,
.audit-linkage small,
.audit-correlation small,
.audit-state-grid small,
.audit-technical-grid small {
    display: block;
    margin-bottom: 5px;
    color: #77818c;
}

.audit-meta-grid strong,
.audit-linkage strong {
    color: #273e58;
    font-size: 12px;
}

.audit-linkage {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 18px;
    padding: 15px 0;
}

.audit-correlation {
    padding: 14px 0;
    border-top: 1px solid #edf0f3;
}

.audit-correlation code,
.audit-monospace,
.audit-technical-grid code {
    overflow-wrap: anywhere;
    font-family:
        ui-monospace,
        SFMono-Regular,
        Consolas,
        monospace;
}

.audit-correlation code {
    color: #174ea6;
    font-size: 11px;
}

.audit-evidence-detail {
    margin-top: 10px;
}

.audit-evidence-detail summary {
    cursor: pointer;
    color: #174ea6;
    font-size: 13px;
    font-weight: 600;
}

.audit-state-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 15px;
}

.audit-state-grid pre {
    min-height: 90px;
    max-height: 320px;
    overflow: auto;
    padding: 13px;
    background: #f6f8fa;
    border: 1px solid #e2e7ec;
    color: #34475a;
    font-size: 11px;
    line-height: 1.5;
}

.audit-technical-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 14px;
    padding-top: 15px;
}

.audit-technical-grid code {
    color: #425970;
    font-size: 10px;
}

.audit-message {
    margin-bottom: 15px;
    padding: 12px 14px;
    border-left: 4px solid #174ea6;
    background: #eef4fb;
    color: #27445f;
}

.audit-message.error {
    border-color: #d16b45;
    background: #fbefeb;
}

.audit-loading,
.audit-empty {
    padding: 38px;
    text-align: center;
    background: #fff;
    border: 1px solid #e0e5ea;
    color: #687482;
}

.audit-empty strong {
    display: block;
    color: #15345b;
    font-family: Georgia, serif;
    font-size: 19px;
}

.audit-pagination {
    margin-top: 20px;
    text-align: center;
}

@media (max-width: 1000px) {

    .audit-summary,
    .audit-meta-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .audit-filter-panel {
        grid-template-columns:
            1fr 1fr;
    }

    .audit-filter-actions {
        grid-column: 1 / -1;
    }
}

@media (max-width: 650px) {

    .audit-workspace {
        padding: 22px 16px 44px;
    }

    .audit-heading {
        display: block;
    }

    .audit-back {
        width: 100%;
        margin-top: 15px;
    }

    .audit-summary,
    .audit-meta-grid,
    .audit-filter-panel,
    .audit-linkage,
    .audit-state-grid,
    .audit-technical-grid {
        grid-template-columns: 1fr;
    }

    .audit-filter-actions {
        display: grid;
        grid-template-columns: 1fr;
        grid-column: auto;
    }

    .audit-filter-actions button {
        width: 100%;
    }

    .audit-card-top {
        display: block;
    }

    .audit-verified {
        display: inline-block;
        margin-top: 10px;
    }
}

/* ARELIVO AUDIT WORKSPACE END */

/* ARELIVO EVIDENCE CHAIN START */

body.arelivo-evidence-open {
    overflow: hidden;
}

.audit-evidence-chain-action {
    padding: 14px 0 2px;
}

.audit-evidence-chain-button {
    padding: 9px 13px;
    border: 1px solid #174ea6;
    border-radius: 4px;
    background: #fff;
    color: #174ea6;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
}

.audit-evidence-chain-button:hover,
.audit-evidence-chain-button:focus-visible {
    background: #f1f6fc;
}

.evidence-chain-overlay[hidden] {
    display: none !important;
}

.evidence-chain-overlay {
    position: fixed;
    z-index: 10000;
    inset: 0;

    display: flex;
    justify-content: flex-end;

    background:
        rgba(10, 27, 45, .44);

    backdrop-filter:
        blur(2px);
}

.evidence-chain-panel {
    width: min(760px, 92vw);
    height: 100vh;

    overflow-y: auto;

    background: #fff;

    box-shadow:
        -12px 0 36px
        rgba(18, 43, 69, .18);
}

.evidence-chain-header {
    position: sticky;
    z-index: 2;
    top: 0;

    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;

    padding: 24px 28px;

    background:
        rgba(255, 255, 255, .97);

    border-bottom:
        1px solid #dfe5eb;
}

.evidence-chain-kicker {
    color: #174ea6;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .15em;
}

.evidence-chain-header h2 {
    margin: 5px 0 0;

    color: #15345b;

    font-family: Georgia, serif;
    font-size: 27px;
    font-weight: 500;
}

.evidence-chain-close {
    width: 38px;
    height: 38px;

    padding: 0;

    border: 1px solid #d7dee5;
    border-radius: 4px;

    background: #fff;
    color: #15345b;

    cursor: pointer;

    font-size: 25px;
    line-height: 1;
}

.evidence-chain-body {
    padding:
        24px
        28px
        50px;
}

.evidence-chain-loading,
.evidence-chain-error {
    padding: 40px 20px;

    border: 1px solid #e1e6eb;

    background: #f8fafc;
    color: #5d6b79;

    text-align: center;
}

.evidence-chain-error {
    border-left:
        4px solid #d16b45;

    background: #fbf0ec;
}

.evidence-chain-summary {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;

    margin-bottom: 28px;
}

.evidence-chain-summary > div {
    min-width: 0;

    padding: 15px;

    border: 1px solid #e1e6eb;
    border-top:
        3px solid #174ea6;

    background: #fff;
}

.evidence-chain-summary small {
    display: block;

    margin-bottom: 6px;

    color: #77818c;
    font-size: 11px;
}

.evidence-chain-summary strong {
    display: block;

    color: #15345b;

    font-family: Georgia, serif;
    font-size: 16px;
    font-weight: 500;

    overflow-wrap: anywhere;
}

.evidence-chain-summary code {
    display: block;

    color: #174ea6;

    font-size: 11px;

    overflow-wrap: anywhere;
}

.evidence-chain-timeline {
    position: relative;

    margin-left: 7px;
}

.evidence-chain-timeline::before {
    content: "";

    position: absolute;

    top: 17px;
    bottom: 17px;
    left: 17px;

    width: 1px;

    background: #ccd9e5;
}

.evidence-chain-step {
    position: relative;

    display: grid;

    grid-template-columns:
        35px minmax(0, 1fr);

    gap: 17px;

    padding-bottom: 23px;
}

.evidence-chain-marker {
    position: relative;
    z-index: 1;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 35px;
    height: 35px;

    border:
        2px solid #174ea6;
    border-radius: 50%;

    box-sizing: border-box;

    background: #fff;
    color: #174ea6;

    font-size: 12px;
    font-weight: 700;
}

.evidence-chain-step-body {
    min-width: 0;

    padding:
        2px
        0
        18px;

    border-bottom:
        1px solid #edf0f3;
}

.evidence-chain-step-body small {
    display: block;

    margin-bottom: 5px;

    color: #12a4a6;

    font-size: 10px;
    font-weight: 700;
    letter-spacing: .09em;
}

.evidence-chain-step-body h3 {
    margin: 0 0 7px;

    color: #15345b;

    font-family: Georgia, serif;
    font-size: 19px;
    font-weight: 500;
}

.evidence-chain-step-body p {
    margin: 5px 0;

    color: #536272;

    font-size: 13px;
    line-height: 1.55;
}

.evidence-chain-step-body time {
    display: block;

    margin-top: 8px;

    color: #7b8793;
    font-size: 11px;
}

.evidence-chain-technical {
    margin-top: 8px;

    border-top:
        1px solid #dfe5eb;

    padding-top: 18px;
}

.evidence-chain-technical > summary {
    cursor: pointer;

    color: #174ea6;

    font-size: 13px;
    font-weight: 700;
}

.evidence-chain-json-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 13px;

    margin-top: 16px;
}

.evidence-chain-json-grid > div {
    min-width: 0;
}

.evidence-chain-json-grid small {
    display: block;

    margin-bottom: 6px;

    color: #687482;
}

.evidence-chain-json-grid pre {
    max-height: 320px;

    overflow: auto;

    margin: 0;
    padding: 13px;

    border: 1px solid #e1e6eb;

    background: #f6f8fa;
    color: #34475a;

    font-size: 10px;
    line-height: 1.55;

    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

@media (max-width: 650px) {

    .evidence-chain-panel {
        width: 100%;
    }

    .evidence-chain-header {
        padding:
            19px
            17px;
    }

    .evidence-chain-header h2 {
        font-size: 22px;
    }

    .evidence-chain-body {
        padding:
            19px
            17px
            40px;
    }

    .evidence-chain-summary,
    .evidence-chain-json-grid {
        grid-template-columns: 1fr;
    }

    .audit-evidence-chain-button {
        width: 100%;
    }
}

/* ARELIVO EVIDENCE CHAIN END */

