:root {
    --sidebar: #174b61;
    --sidebar-deep: #0d3448;
    --page: #f3f7f0;
    --card: #ffffff;
    --line: #dfe7dc;
    --text: #243233;
    --muted: #7a8b89;
    --green: #14904b;
    --gold: #d9a52e;
    --red: #c83535;
    --shadow: 0 1px 2px rgba(31, 48, 43, .05), 0 10px 30px rgba(31, 48, 43, .05);
}

* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--page);
    color: var(--text);
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    font-size: 14px;
    font-weight: 400;
}

.portal-shell { display: flex; min-height: 100vh; }

.portal-shell strong,
.portal-shell b,
.portal-shell h1,
.portal-shell h2 { font-weight: 500; }

.portal-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    width: 225px;
    overflow-y: auto;
    background: linear-gradient(180deg, var(--sidebar) 0%, var(--sidebar-deep) 100%);
    padding: 14px 10px 20px;
    color: #d7ecf0;
}

.portal-logo {
    display: grid;
    place-items: center;
    height: 86px;
    margin-bottom: 16px;
    border-radius: 8px;
    background: #fff;
}

.portal-logo img { width: 178px; max-height: 70px; object-fit: contain; }

.portal-search {
    display: flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    margin-bottom: 18px;
    padding: 0 9px;
    border-radius: 6px;
    background: rgba(255, 255, 255, .12);
    color: #aec9d0;
}

.portal-search input {
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: #fff;
    font-size: 12px;
}

.portal-search input::placeholder { color: #a8c1c8; }

.institution-list p {
    margin: 18px 8px 8px;
    color: #9db8bf;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.institution-list a,
.institution-locked {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 10px;
    align-items: center;
    min-height: 42px;
    padding: 7px 8px;
    border-radius: 6px;
    color: #e9f4f6;
    text-decoration: none;
}

.institution-list a.active,
.institution-list a:hover { background: rgba(255, 255, 255, .13); }

.institution-submenu {
    display: grid;
    gap: 3px;
    margin: -2px 0 6px 38px;
    padding-left: 8px;
    border-left: 1px solid rgba(255, 255, 255, .14);
}

.institution-submenu a,
.institution-submenu-locked {
    display: grid;
    grid-template-columns: 1fr auto;
    min-height: 28px;
    padding: 5px 7px;
    border-radius: 5px;
    color: #d7ecf0;
    text-decoration: none;
}

.institution-submenu a.active,
.institution-submenu a:hover { background: rgba(255, 255, 255, .12); }

.institution-submenu span { font-size: 11px; }
.institution-submenu small { color: #9db8bf; font-size: 9px; }
.institution-submenu-locked { opacity: .5; cursor: not-allowed; }

.institution-list a > span,
.institution-locked > span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    background: rgba(255, 255, 255, .12);
    color: #f4d675;
    font-size: 10px;
}

.institution-list a > span.has-logo,
.institution-locked > span.has-logo {
    overflow: hidden;
    background: #fff;
}

.institution-list a > span img,
.institution-locked > span img {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.institution-list strong,
.institution-list small,
.institution-locked strong,
.institution-locked small { display: block; }
.institution-list strong { font-size: 12px; }
.institution-list small,
.institution-locked small { margin-top: 2px; color: #a8c1c8; font-size: 10px; }

.institution-locked {
    position: relative;
    color: #e9f4f6;
    opacity: .58;
    cursor: not-allowed;
}

.institution-locked > span,
.institution-locked div {
    filter: blur(1.6px);
}

.institution-locked i {
    color: #f4d675;
    font-style: normal;
    font-size: 12px;
    filter: none;
}

.portal-main {
    width: calc(100% - 225px);
    margin-left: 225px;
    padding: 0 22px 34px;
    transition: background .18s ease;
}

.portal-main--institution-usai {
    --context-color: #14904b;
    --context-soft: #edf8f2;
    --context-border: #bfe4ce;
    --context-ink: #0f6d3a;
}

.portal-main--service-sima {
    background:
        linear-gradient(180deg, rgba(20, 144, 75, .08) 0, rgba(20, 144, 75, .08) 250px, transparent 250px),
        #f8fbf8;
}

.portal-main--service-sima .portal-topbar,
.portal-main--service-sima .institution-hero,
.portal-main--service-sima .services-card {
    border-color: var(--context-border);
}

.portal-main--service-sima .active-service-badge,
.portal-main--service-sima .service-grid a.active span,
.portal-main--service-sima .institution-hero h1 em {
    background: #e3f6ea;
    color: var(--context-ink);
}

.portal-main--service-sima .service-grid a.active {
    border-color: var(--context-color);
    background:
        linear-gradient(135deg, rgba(20, 144, 75, .13), rgba(255, 255, 255, .9)),
        #fff;
    box-shadow: 0 14px 32px rgba(20, 144, 75, .12);
}

.portal-main--service-sima .portal-kpis {
    position: relative;
    margin: -1px -10px 18px;
    padding: 14px 10px;
    border: 1px solid var(--context-border);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(20, 144, 75, .16), rgba(227, 246, 234, .76)),
        var(--context-soft);
}

.services-card:has(.service-grid a.active) {
    border-bottom-color: transparent;
    border-radius: 9px 9px 0 0;
    box-shadow: none;
}

.services-card:has(.service-grid a.active) + .portal-kpis {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.portal-main--service-sima .portal-kpis::before {
    content: "SIMA";
    position: absolute;
    top: -10px;
    left: 18px;
    padding: 3px 10px;
    border: 1px solid var(--context-border);
    border-radius: 999px;
    background: #fff;
    color: var(--context-ink);
    font-size: 10px;
    letter-spacing: .7px;
}

.portal-main--service-sima .users-card {
    border-color: var(--context-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(247, 252, 249, .96)),
        #fff;
}

.portal-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 66px;
    margin: 0 -22px 22px;
    padding: 0 34px;
    background: rgba(255, 255, 255, .92);
    border-bottom: 1px solid #e4ebe2;
}

.portal-topbar div:first-child { color: #7c8985; font-size: 13px; }
.portal-topbar strong { color: #1f2f31; }
.portal-topbar em { margin-left: 15px; color: #86a493; font-size: 12px; font-style: normal; }

.active-service-badge {
    display: inline-flex;
    align-items: center;
    height: 22px;
    margin-left: 8px;
    padding: 0 9px;
    border-radius: 999px;
    background: #fff8cf;
    color: #77621d;
    font-size: 11px;
    font-weight: 500;
}

.portal-user {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #e2b33f;
    color: #4c3810;
    font-size: 11px;
}

.access-denied-card {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 16px 18px;
    border: 1px solid #efb7b6;
    border-radius: 9px;
    background: #fff0f0;
    color: #7e2929;
    box-shadow: var(--shadow);
}

.access-denied-card > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #fff;
}

.access-denied-card h2 {
    margin: 0;
    font-size: 14px;
}

.access-denied-card p {
    margin: 4px 0 0;
    color: #8d4d4d;
    font-size: 12px;
}

.content-locked {
    pointer-events: none;
    filter: blur(2px);
    opacity: .45;
    user-select: none;
}

.institution-hero,
.portal-kpis article,
.portal-kpis a,
.portal-card {
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--card);
    box-shadow: var(--shadow);
}

.institution-hero {
    display: grid;
    grid-template-columns: 1fr minmax(240px, 340px);
    gap: 20px;
    margin-bottom: 18px;
    padding: 22px;
}

.institution-hero span,
.portal-kpis span {
    color: #8d9a96;
    font-size: 11px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.institution-hero h1 {
    margin: 8px 0;
    font-size: 28px;
}

.institution-hero h1 em {
    display: inline-flex;
    align-items: center;
    margin-left: 10px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e7f4ec;
    color: #176940;
    font-size: 13px;
    font-style: normal;
    vertical-align: middle;
}

.institution-hero p,
.institution-hero small,
.institution-hero aside strong {
    display: block;
    color: #73817d;
}

.institution-hero aside {
    padding: 16px;
    border-radius: 7px;
    background: #f6f9f4;
}

.institution-hero aside strong { margin-top: 9px; color: #253333; line-height: 1.45; }

.portal-kpis {
    display: grid;
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    gap: 9px;
    margin-bottom: 14px;
}

.portal-kpis article,
.portal-kpis a {
    position: relative;
    min-height: 78px;
    overflow: hidden;
    padding: 10px 11px;
    background: linear-gradient(180deg, #fff 0%, #fbfdf9 100%);
    color: inherit;
    text-decoration: none;
}

.portal-kpis article::before,
.portal-kpis a::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: #9aa8a4;
}

.portal-kpis a:hover { transform: translateY(-1px); }
.portal-kpis strong { display: block; margin-top: 6px; font-size: 22px; line-height: 1; }
.portal-kpis span { color: #5b6a66; font-size: 10px; letter-spacing: .2px; }
.portal-kpis small { display: block; margin-top: 5px; color: #798985; font-size: 9.5px; line-height: 1.25; }

.portal-kpis i {
    display: grid;
    place-items: center;
    float: right;
    width: 24px;
    height: 24px;
    margin-left: 8px;
    border-radius: 8px;
    background: #eef5f1;
    color: #5d706b;
    font-style: normal;
    font-size: 10px;
}

.portal-kpi--green::before { background: #14904b; }
.portal-kpi--blue::before { background: #2e79b9; }
.portal-kpi--gold::before { background: #d9a52e; }
.portal-kpi--red::before { background: #c83535; }
.portal-kpi--gray::before { background: #7a8b89; }
.portal-kpi--teal::before { background: #247d87; }
.portal-kpi--purple::before { background: #7e5aa7; }
.portal-kpi--slate::before { background: #516270; }

.portal-kpi--green i { background: #e9f6ee; color: #14904b; }
.portal-kpi--blue i { background: #eaf2fa; color: #2e79b9; }
.portal-kpi--gold i { background: #fbf4df; color: #a87912; }
.portal-kpi--teal i { background: #e6f3f4; color: #247d87; }
.portal-kpi--purple i { background: #f1ebf7; color: #7e5aa7; }
.portal-kpi--red i { background: #faecec; color: #c83535; }
.portal-kpi--gray i { background: #eef1f0; color: #7a8b89; }
.portal-kpi--slate i { background: #edf1f3; color: #516270; }

.portal-kpi--green { background: linear-gradient(135deg, #ffffff 0%, #eef9f2 100%) !important; }
.portal-kpi--blue { background: linear-gradient(135deg, #ffffff 0%, #eef6fd 100%) !important; }
.portal-kpi--gold { background: linear-gradient(135deg, #ffffff 0%, #fff7df 100%) !important; }
.portal-kpi--teal { background: linear-gradient(135deg, #ffffff 0%, #eaf7f7 100%) !important; }
.portal-kpi--purple { background: linear-gradient(135deg, #ffffff 0%, #f5effa 100%) !important; }
.portal-kpi--slate { background: linear-gradient(135deg, #ffffff 0%, #f0f4f6 100%) !important; }

.portal-grid {
    display: grid;
    grid-template-columns: minmax(560px, 1.45fr) minmax(330px, .9fr);
    gap: 18px;
}

.users-card {
    margin-bottom: 18px;
}

.services-card {
    margin-bottom: 18px;
}

.portal-card header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px 10px;
}

.portal-card h2 { margin: 0; font-size: 14px; }
.portal-card p { margin: 4px 0 0; color: #82908d; font-size: 11px; }

.portal-card header b {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 9px;
    border-radius: 4px;
    background: #fff8cf;
    color: #77621d;
    font-size: 10px;
}

.create-access-button {
    height: 30px;
    padding: 0 12px;
    border: 1px solid #174b61;
    border-radius: 6px;
    background: #174b61;
    color: #fff;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}

.global-institution-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    padding: 12px 18px 18px;
}

.global-institution-grid a {
    min-height: 92px;
    padding: 14px;
    border: 1px solid #e1ebe5;
    border-radius: 7px;
    background: #fbfdf9;
    color: #263434;
    text-decoration: none;
}

.global-institution-grid span,
.global-institution-grid strong,
.global-institution-grid small {
    display: block;
}

.service-grid {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding: 12px 18px 0;
    overflow-x: auto;
    scrollbar-width: thin;
}

.service-grid article,
.service-grid a {
    display: block;
    flex: 0 0 min(310px, 78vw);
    min-height: 112px;
    margin-right: 8px;
    padding: 14px 15px;
    border: 1px solid #e1ebe5;
    border-bottom-color: #dfe8e3;
    border-radius: 10px 10px 0 0;
    background: #fbfdf9;
    color: #263434;
    text-decoration: none;
}

.service-grid a.active {
    position: relative;
    z-index: 2;
    border-color: var(--context-color, #d9a52e);
    border-bottom-color: transparent;
    background: linear-gradient(180deg, #fff 0%, var(--context-soft, #fffaf0) 100%);
    box-shadow: inset 0 3px 0 var(--context-color, #d9a52e);
}

.service-grid .service-locked {
    opacity: .55;
    filter: grayscale(.4);
    cursor: not-allowed;
}

.service-grid span {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #e7f4ec;
    color: #176940;
    font-size: 10px;
}

.service-grid h3 {
    margin: 10px 0 6px;
    font-size: 13px;
    font-weight: 500;
}

.service-grid p {
    margin: 0;
    color: #73817d;
    font-size: 11px;
    line-height: 1.45;
}

.service-grid small {
    display: block;
    margin-top: 9px;
    color: #82908d;
    font-size: 10px;
}

.service-inline-note {
    margin: 0 18px 18px;
    padding: 10px 12px;
    border: 1px solid #e9dfbb;
    border-radius: 7px;
    background: #fffaf0;
    color: #7f6c32;
    font-size: 11px;
}

.global-institution-grid span {
    color: #7a8b89;
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.global-institution-grid strong {
    margin-top: 10px;
    font-size: 24px;
}

.global-institution-grid small {
    margin-top: 4px;
    color: #82908d;
    font-size: 11px;
}

.portal-users-search {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 18px 14px;
}

.portal-users-search input,
.portal-users-search select {
    width: min(380px, 100%);
    height: 36px;
    padding: 0 12px;
    border: 1px solid #dfe7dc;
    border-radius: 7px;
    background: #fbfdf9;
    outline: 0;
    font: inherit;
    font-size: 12px;
}

.portal-users-search select {
    width: min(230px, 100%);
}

.portal-users-search input:focus,
.portal-users-search select:focus {
    border-color: #174b61;
}

.portal-users-search span {
    color: #82908d;
    font-size: 11px;
}

.portal-users-table-wrap {
    overflow-x: auto;
    padding: 0 18px 18px;
}

.portal-users-table {
    width: 100%;
    min-width: 780px;
    border-collapse: collapse;
    font-size: 12px;
}

.portal-users-table th {
    padding: 12px 10px;
    border-top: 1px solid #edf2ef;
    border-bottom: 1px solid #edf2ef;
    color: #94a09d;
    text-align: left;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.portal-users-table td {
    padding: 12px 10px;
    border-bottom: 1px solid #edf2ef;
    color: #4c5a58;
}

.mini-inst {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #e7f4ec;
    color: #176940;
    font-size: 10px;
}

.mini-service {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #fff3d7;
    color: #8a6417;
    font-size: 10px;
}

.user-access-button {
    border: 0;
    background: transparent;
    color: #174b61;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.user-access-button:hover {
    text-decoration: underline;
}

.rights-button {
    height: 28px;
    padding: 0 10px;
    border: 1px solid #d9e6df;
    border-radius: 6px;
    background: #fff;
    color: #174b61;
    font-size: 11px;
    cursor: pointer;
}

.rights-button:hover {
    background: #f1f7f4;
}

.module-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 12px;
    padding: 12px 18px 18px;
}

.module-actions a {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 12px;
    align-items: center;
    min-height: 76px;
    padding: 14px;
    border: 1px solid #e1ebe5;
    border-radius: 7px;
    background: #fbfdf9;
    color: #263434;
    text-decoration: none;
}

.module-actions a > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #e7f4ec;
    color: var(--green);
    font-size: 18px;
}

.module-actions strong,
.module-actions small { display: block; }
.module-actions small { margin-top: 5px; color: #84928e; font-size: 11px; }
.portal-stack { display: grid; gap: 18px; }

.rights-list { padding: 10px 18px 18px; }
.rights-list div {
    display: grid;
    grid-template-columns: 14px 1fr;
    gap: 9px;
    padding: 11px 0;
    border-bottom: 1px solid #edf2ef;
}

.rights-list span {
    width: 10px;
    height: 10px;
    margin-top: 4px;
    border-radius: 50%;
    background: var(--green);
}

.rights-list strong,
.rights-list small { display: block; }
.rights-list small { grid-column: 2; margin-top: -7px; color: #899792; font-size: 11px; }

.workflow {
    margin: 0;
    padding: 8px 22px 22px 42px;
    color: #53615e;
    line-height: 2;
}

.portal-modal[hidden] {
    display: none;
}

.portal-modal {
    position: fixed;
    inset: 0;
    z-index: 30;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(13, 52, 72, .48);
    backdrop-filter: blur(5px);
}

.portal-modal__dialog {
    position: relative;
    width: min(820px, 100%);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    padding: 24px;
    border: 1px solid #dfe7dc;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(13, 52, 72, .24);
}

.portal-modal__dialog--compact {
    width: min(620px, 100%);
}

.portal-modal__close {
    position: absolute;
    top: 10px;
    right: 14px;
    border: 0;
    background: transparent;
    color: #7a8b89;
    font-size: 24px;
    cursor: pointer;
}

.portal-modal header {
    margin-bottom: 18px;
}

.portal-modal header span {
    color: #8d9a96;
    font-size: 11px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.portal-modal h2 {
    margin: 8px 0 6px;
    font-size: 22px;
}

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

.user-access-list article {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 10px 14px;
    padding: 13px;
    border: 1px solid #e1ebe5;
    border-radius: 8px;
    background: #fbfdf9;
}

.user-access-list span {
    color: #176940;
    font-size: 11px;
}

.user-access-list h3 {
    margin: 0;
    color: #263434;
    font-size: 13px;
    font-weight: 500;
}

.user-access-list p {
    grid-column: 2;
    margin: -4px 0 0;
    color: #73817d;
    font-size: 11px;
}

.access-user-search {
    margin-bottom: 16px;
    padding: 14px;
    border: 1px solid #e1ebe5;
    border-radius: 9px;
    background: #fbfdf9;
}

.access-user-search label,
.access-user-search span {
    display: block;
}

.access-user-search span {
    margin-bottom: 7px;
    color: #66736f;
    font-size: 11px;
}

.access-user-search input {
    width: 100%;
    height: 34px;
    padding: 0 10px;
    border: 1px solid #d9e6df;
    border-radius: 6px;
    background: #fff;
    color: #263434;
    font: inherit;
}

.access-user-results {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.access-user-results button {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid #e1ebe5;
    border-radius: 7px;
    background: #fff;
    color: #263434;
    text-align: left;
    font: inherit;
    cursor: pointer;
}

.access-user-results button:hover {
    background: #f1f7f4;
}

.access-user-results small,
.access-user-search p {
    color: #7f8c89;
    font-size: 11px;
}

.access-user-search [data-selected-user-summary] {
    margin: 10px 0 0;
    padding: 9px 10px;
    border-radius: 7px;
    background: #e7f4ec;
    color: #176940;
}

.applied-rights-summary {
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #e9dfbb;
    border-radius: 7px;
    background: #fffaf0;
    color: #7f6c32;
    font-size: 11px;
}

.portal-user-page {
    max-width: 1120px;
    margin: 0 auto;
    padding: 28px;
}

.portal-back-link {
    display: inline-flex;
    margin-bottom: 14px;
    color: #174b61;
    font-size: 12px;
    text-decoration: none;
}

.user-detail-hero {
    margin-bottom: 18px;
    padding: 22px;
}

.user-detail-hero span {
    color: #8d9a96;
    font-size: 11px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.user-detail-hero h1 {
    margin: 8px 0 4px;
    color: #263434;
    font-size: 26px;
    font-weight: 500;
}

.user-detail-hero p {
    margin: 0;
    color: #73817d;
}

.access-history-list {
    display: grid;
    gap: 10px;
    padding: 12px 18px 18px;
}

.access-history-list article {
    padding: 13px;
    border: 1px solid #e1ebe5;
    border-radius: 8px;
    background: #fbfdf9;
}

.access-history-list span {
    color: #176940;
    font-size: 11px;
}

.access-history-list h3 {
    margin: 6px 0;
    color: #263434;
    font-size: 13px;
    font-weight: 500;
}

.access-history-list p {
    margin: 0;
    color: #73817d;
    font-size: 11px;
}

.portal-modal p {
    margin: 0;
    color: #73817d;
}

.portal-modal__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 12px;
}

.portal-modal label {
    display: grid;
    gap: 6px;
    color: #53615e;
    font-size: 12px;
}

.portal-modal label.wide {
    grid-column: 1 / -1;
}

.portal-modal input[type="text"],
.portal-modal input[type="email"],
.portal-modal input[type="url"],
.portal-modal input[type="number"],
.portal-modal input[type="file"],
.portal-modal select {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #dfe7dc;
    border-radius: 7px;
    background: #fbfdf9;
    outline: 0;
    font: inherit;
}

.portal-modal input:focus,
.portal-modal select:focus,
.portal-modal textarea:focus {
    border-color: #174b61;
}

.portal-modal textarea {
    width: 100%;
    min-height: 92px;
    padding: 10px;
    border: 1px solid #dfe7dc;
    border-radius: 7px;
    background: #fbfdf9;
    color: #243233;
    font: inherit;
    resize: vertical;
    outline: 0;
}

.portal-modal label small {
    color: #8a9894;
    font-size: 11px;
    line-height: 1.35;
}

.portal-modal label.field-with-help {
    gap: 7px;
}

.portal-modal .switch {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
}

.portal-rights-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 10px 18px;
    margin: 18px 0 0;
    padding: 16px;
    border: 1px solid #edf2ef;
    border-radius: 9px;
}

.portal-rights-grid legend {
    padding: 0 6px;
    color: #82908d;
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.portal-rights-grid label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 34px;
    padding: 8px 10px;
    border-radius: 7px;
    background: #fbfdf9;
}

.portal-modal__error {
    margin-top: 12px !important;
    color: #c83535 !important;
}

.portal-modal footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.portal-modal footer button {
    height: 38px;
    padding: 0 16px;
    border: 1px solid #d9e6df;
    border-radius: 7px;
    background: #fff;
    color: #42514f;
    font: inherit;
    cursor: pointer;
}

.portal-modal footer button[type="submit"] {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

@media (max-width: 1180px) {
    .portal-grid,
    .institution-hero { grid-template-columns: 1fr; }
    .portal-kpis { grid-template-columns: repeat(3, minmax(140px, 1fr)); }
    .module-actions { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .portal-sidebar { position: static; width: 100%; }
    .portal-shell { display: block; }
    .portal-main { width: 100%; margin-left: 0; }
    .portal-kpis { grid-template-columns: 1fr; }
    .portal-modal__grid,
    .portal-rights-grid { grid-template-columns: 1fr; }
}

.dashboard-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}

.dashboard-card-grid--services {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.dashboard-square-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 230px;
    aspect-ratio: 1 / 1;
    padding: 20px;
    border: 1px solid var(--line, #dfe7dc);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--shadow, 0 10px 30px rgba(31, 48, 43, .05));
    color: var(--text, #243233);
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.dashboard-edit-button {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid #dce7e1;
    border-radius: 999px;
    background: rgba(255, 255, 255, .94);
    color: #174b61;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 8px 18px rgba(31, 48, 43, .08);
    cursor: pointer;
}

.dashboard-edit-button:hover {
    background: #174b61;
    border-color: #174b61;
    color: #fff;
}

.dashboard-square-card:hover {
    transform: translateY(-3px);
    border-color: #b9d1c6;
    box-shadow: 0 14px 36px rgba(31, 48, 43, .1);
}

.dashboard-square-card i {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: #eef6f2;
    color: #174b61;
    font-style: normal;
    font-size: 20px;
    font-weight: 600;
}

.dashboard-card-logo {
    width: 64px;
    height: 64px;
    padding: 7px;
    border: 1px solid #e1ebe5;
    border-radius: 16px;
    background: #fff;
    object-fit: contain;
    box-shadow: 0 8px 20px rgba(31, 48, 43, .06);
}

.dashboard-square-card span {
    color: #8d9a96;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

.dashboard-square-card h2 {
    margin: 8px 0 0;
    color: #263434;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.22;
}

.dashboard-square-card p {
    margin: 10px 0;
    color: #82908d;
    font-size: 12px;
    line-height: 1.45;
}

.dashboard-square-card small {
    color: #14904b;
    font-size: 12px;
    font-weight: 600;
}

.dashboard-square-card--disabled {
    opacity: .62;
    filter: grayscale(.25);
}

.dashboard-square-card--disabled small {
    color: #9a7a2f;
}

.dashboard-access-lock {
    position: absolute;
    top: 15px;
    right: 15px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border: 1px solid rgba(95, 117, 108, .22);
    border-radius: 50%;
    background: rgba(255, 255, 255, .7);
    color: rgba(31, 73, 59, .58);
    backdrop-filter: blur(5px);
}

.dashboard-access-lock svg,
.sia-nav-locked svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.sia-nav .sia-nav-locked {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    color: rgba(255, 255, 255, .5);
    cursor: not-allowed;
}

.sia-nav .sia-nav-locked > svg {
    margin-left: auto;
    opacity: .72;
}

.dashboard-square-card--create {
    border-style: dashed;
    border-width: 2px;
    border-color: #d9e7df;
    background: rgba(255, 255, 255, .42);
    text-align: left;
    cursor: pointer;
    opacity: .48;
    box-shadow: none;
}

.dashboard-square-card--create i {
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: #edf5f1;
    color: #7a918a;
    font-size: 30px;
    line-height: 1;
}

.dashboard-square-card--create:hover {
    opacity: .82;
    background: #fff;
}

.sia-user-menu {
    position: relative;
    z-index: 20;
}

.institution-login-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 12px 0 6px;
    border: 1px solid #dfe7dc;
    border-radius: 999px;
    background: #fff;
    color: #243233;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(31, 48, 43, .06);
}

.institution-login-trigger span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e2b33f;
    color: #4c3810;
    font-size: 10px;
    font-weight: 700;
}

.institution-login-card {
    border-radius: 14px;
}

.sia-user-menu summary {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 132px;
    height: 38px;
    padding: 0 9px 0 6px;
    border: 1px solid #dfe7dc;
    border-radius: 999px;
    background: #fff;
    color: #243233;
    list-style: none;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(31, 48, 43, .06);
}

.sia-user-menu summary::-webkit-details-marker {
    display: none;
}

.sia-user-menu summary span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e2b33f;
    color: #4c3810;
    font-size: 13px;
}

.sia-user-menu summary .sia-user-avatar {
    background: linear-gradient(135deg, #e8f1ed, #ffffff);
    border: 1px solid #d8e5df;
    color: #174b61;
}

.sia-user-menu summary .sia-user-avatar svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

.sia-user-menu summary strong {
    max-width: 84px;
    overflow: hidden;
    color: #243233;
    font-size: 12px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sia-user-menu nav {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    display: grid;
    min-width: 210px;
    padding: 8px;
    border: 1px solid #dfe7dc;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 46px rgba(31, 48, 43, .14);
}

.sia-user-menu:not([open]) nav {
    display: none;
}

.sia-user-menu nav a,
.sia-user-menu nav button {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 36px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: #40504d;
    font: inherit;
    font-size: 13px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.sia-user-menu nav a:hover,
.sia-user-menu nav button:hover {
    background: #f1f7f3;
    color: #174b61;
}

.sia-user-menu nav form {
    margin: 4px 0 0;
    padding-top: 4px;
    border-top: 1px solid #edf2ee;
}

.sia-user-menu nav button {
    color: #b23535;
    font-weight: 600;
}

.portal-check {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #556762;
    font-size: 13px;
}

.portal-check input {
    width: auto;
}

.empty-dashboard-card {
    padding: 22px;
}

.module-kpis {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
}

.module-grid--single {
    grid-template-columns: 1fr;
}

.reports-manager {
    padding-bottom: 18px;
}

.reports-manager__actions,
.table-inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
}

.reports-manager__actions button,
.reports-manager__actions a,
.table-inline-actions button,
.table-inline-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid #dce7e1;
    border-radius: 999px;
    background: #fff;
    color: #174b61;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    cursor: pointer;
}

.reports-manager__actions form {
    margin: 0;
}

.reports-manager__actions form button {
    background: #174b61;
    border-color: #174b61;
    color: #fff;
}

.reports-manager__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 14px;
    padding: 10px 18px 0;
}

.report-management-card {
    min-height: 230px;
    padding: 17px;
    border: 1px solid #dfe7dc;
    border-radius: 9px;
    background: #fbfdfb;
}

.report-management-card > span {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef6f2;
    color: #174b61;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.report-management-card h3 {
    margin: 14px 0 6px;
    color: #263434;
    font-size: 15px;
    font-weight: 500;
}

.report-management-card p {
    color: #82908d;
    font-size: 12px;
    line-height: 1.45;
}

.report-management-card dl {
    display: grid;
    gap: 8px;
    margin: 14px 0;
}

.report-management-card dl div {
    display: grid;
    grid-template-columns: 86px 1fr;
    gap: 8px;
}

.report-management-card dt {
    color: #8d9a96;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
}

.report-management-card dd {
    margin: 0;
    color: #354545;
    font-size: 12px;
}

.report-management-card a {
    color: #14904b;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.publication-list {
    display: grid;
    gap: 14px;
    padding: 10px 18px 18px;
}

.documents-head {
    align-items: center;
}

.documents-filter-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) minmax(150px, .8fr) minmax(150px, .8fr) auto;
    gap: 10px;
    align-items: end;
    margin: 0 18px 16px;
    padding: 12px;
    border: 1px solid #e1e9de;
    border-radius: 9px;
    background: #f8fbf6;
}

.documents-filter-bar label,
.document-form-grid label {
    display: grid;
    gap: 6px;
    color: #52615c;
    font-size: 12px;
}

.documents-filter-bar input,
.documents-filter-bar select,
.document-form-grid input,
.document-form-grid select,
.document-form-grid textarea {
    width: 100%;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    color: #253434;
    font: inherit;
    font-size: 13px;
    outline: none;
}

.documents-filter-bar input,
.documents-filter-bar select,
.document-form-grid input,
.document-form-grid select {
    min-height: 36px;
    padding: 0 10px;
}

.document-form-grid textarea {
    min-height: 88px;
    padding: 10px;
    resize: vertical;
}

.documents-filter-bar button,
.document-inline-form footer button,
.document-card__actions button,
.document-card__actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #d9e3d7;
    border-radius: 999px;
    background: #fff;
    color: #52615c;
    font: inherit;
    font-size: 12px;
    text-decoration: none;
    cursor: pointer;
}

.documents-filter-bar button,
.document-inline-form footer button[type="submit"],
.document-card__actions a:first-child {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

.document-inline-form {
    margin: 0 18px 18px;
    overflow: hidden;
    border: 2px solid #719985;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 48, 43, .1);
}

.document-inline-form[hidden] {
    display: none;
}

.document-inline-form > header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px 18px;
    border-bottom: 1px solid #dbe9df;
    background: #f3f8f4;
}

.document-inline-form > header > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid #d9e6d5;
    border-radius: 10px;
    background: #fff;
    color: #719985;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.document-inline-form h3 {
    margin: 0 0 4px;
    color: #233330;
    font-size: 17px;
}

.document-inline-form p {
    margin: 0;
    color: #73817d;
    font-size: 13px;
}

.document-inline-form > header button {
    margin-left: auto;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: #eef4f0;
    color: #64746f;
    font-size: 22px;
}

.document-inline-form form {
    padding: 16px 18px 18px;
}

.document-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 12px;
}

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

.document-form-grid small {
    color: #8a9894;
    font-size: 11px;
}

.document-inline-form footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
}

.documents-list {
    display: grid;
    gap: 12px;
    padding: 0 18px 18px;
}

.document-card {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 14px;
    padding: 14px;
    border: 1px solid #dfe7dc;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(31, 48, 43, .04), 0 10px 24px rgba(31, 48, 43, .045);
}

.document-card__icon {
    display: grid;
    place-items: center;
    width: 62px;
    height: 78px;
    border: 1px solid #dfe7dc;
    border-radius: 9px;
    background: linear-gradient(180deg, #fff, #f4f8f1);
}

.document-card__icon span {
    color: #174b61;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .7px;
}

.document-card__meta,
.document-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.document-card__meta > span:not(.publication-status) {
    color: #81908b;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

.document-card h3 {
    margin: 7px 0 3px;
    color: #263434;
    font-size: 16px;
    font-weight: 500;
}

.document-card h4 {
    margin: 0 0 7px;
    color: #60706b;
    font-size: 13px;
    font-weight: 500;
}

.document-card p,
.document-card small,
.document-card em {
    display: block;
    color: #7b8a86;
    font-size: 12px;
    line-height: 1.5;
}

.document-card em {
    margin-top: 5px;
    color: #719985;
    font-style: normal;
}

.document-card__actions {
    margin-top: 12px;
}

.document-card__actions form {
    margin: 0;
}

.document-card__actions .is-danger {
    border-color: #efd4cf;
    background: #fff7f5;
    color: #b23535;
}

.publication-card {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 16px;
    padding: 14px;
    border: 1px solid #dfe7dc;
    border-radius: 10px;
    background: #fbfdfb;
}

.publication-card > img {
    width: 100%;
    height: 132px;
    border-radius: 9px;
    object-fit: cover;
    background: #eef4f1;
}

.publication-card span {
    color: #81908b;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

.publication-card h3 {
    margin: 5px 0 3px;
    color: #263434;
    font-size: 16px;
    font-weight: 500;
}

.publication-card h4 {
    margin: 0 0 7px;
    color: #60706b;
    font-size: 13px;
    font-weight: 500;
}

.publication-card p,
.publication-card small {
    color: #7b8a86;
    font-size: 12px;
    line-height: 1.5;
}

.publication-details summary {
    margin-top: 10px;
    color: #174b61;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.publication-body {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #e5ede1;
    border-radius: 9px;
    background: #fff;
    color: #2a3a3a;
    font-size: 13px;
    line-height: 1.6;
}

.publication-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 10px;
    margin: 12px 0;
}

.publication-gallery figure {
    margin: 0;
}

.publication-gallery img {
    width: 100%;
    height: 96px;
    border-radius: 8px;
    object-fit: cover;
}

.publication-gallery figcaption {
    margin-top: 4px;
    color: #77847f;
    font-size: 11px;
}

.publication-media-form {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.publication-media-form input,
.publication-media-form button {
    min-height: 34px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    padding: 0 9px;
    font: inherit;
    font-size: 12px;
}

.publication-media-form button {
    background: #719985;
    color: #fff;
    cursor: pointer;
}

.module-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    padding: 0 18px 18px;
}

.module-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: 32px;
    padding: 0 10px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    color: #52615c;
    font-size: 12px;
    text-decoration: none;
}

.module-pagination a.is-active {
    border-color: #719985;
    background: #719985;
    color: #fff;
}

.publication-inline-editor {
    margin: 0 0 18px;
    padding: 16px;
    border: 1px solid #dfe8db;
    border-radius: 12px;
    background: #fbfdf8;
}

.publication-inline-editor > header {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}

.publication-inline-editor > header > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid #d9e6d5;
    border-radius: 10px;
    background: #fff;
    color: #719985;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.publication-inline-editor h3 {
    margin: 0 0 4px;
    color: #233330;
    font-size: 18px;
}

.publication-inline-editor p {
    margin: 0;
    color: #73817d;
    font-size: 13px;
}

.publication-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(180px, 1fr));
    gap: 12px;
}

.publication-inline-editor label {
    display: grid;
    gap: 6px;
    color: #52615c;
    font-size: 12px;
}

.publication-inline-editor label.wide {
    grid-column: 1 / -1;
}

.publication-inline-editor input[type="text"],
.publication-inline-editor input[type="date"],
.publication-inline-editor input[type="file"],
.publication-inline-editor select,
.publication-inline-editor textarea {
    width: 100%;
    border: 1px solid #d9e3d7;
    border-radius: 8px;
    background: #fff;
    color: #253434;
    font-size: 13px;
}

.publication-inline-editor input[type="text"],
.publication-inline-editor input[type="date"],
.publication-inline-editor input[type="file"],
.publication-inline-editor select {
    min-height: 38px;
    padding: 0 10px;
}

.publication-inline-editor textarea {
    min-height: 78px;
    padding: 10px;
    resize: vertical;
}

.publication-inline-editor small {
    color: #8a9894;
    font-size: 11px;
}

.publication-inline-editor__footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 12px;
}

.publication-inline-editor__footer button {
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid #174b61;
    border-radius: 8px;
    background: #174b61;
    color: #fff;
    font-size: 13px;
}

.rich-editor-panel {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.rich-editor-panel > span {
    color: #52615c;
    font-size: 12px;
}

.rich-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 8px;
    border: 1px solid #e2eadf;
    border-radius: 8px;
    background: #f8fbf6;
}

.rich-editor-toolbar--advanced {
    align-items: center;
    gap: 8px;
    padding: 10px;
    border-radius: 10px;
    background: linear-gradient(135deg, #f8fbf6 0%, #ffffff 100%);
}

.rich-editor-group {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding: 5px;
    border: 1px solid #e1e9de;
    border-radius: 9px;
    background: #fff;
}

.rich-editor-toolbar button,
.rich-editor-toolbar label,
.rich-editor-toolbar select {
    min-height: 30px;
    padding: 0 9px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    color: #52615c;
    font-size: 12px;
}

.rich-editor-toolbar button {
    min-width: 34px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

.rich-editor-toolbar button:hover,
.rich-editor-toolbar select:hover,
.rich-editor-toolbar label:hover {
    border-color: #b9d1c6;
    background: #f3f8f4;
    color: #174b61;
}

.rich-editor-toolbar select {
    height: 30px;
    min-width: 58px;
    font-weight: 600;
    outline: 0;
}

.rich-editor-toolbar button[title*="Aligner"],
.rich-editor-toolbar button[title="Centrer"],
.rich-editor-toolbar button[title="Justifier"] {
    font-size: 16px;
}

.align-icon {
    display: grid;
    gap: 3px;
    width: 17px;
}

.align-icon i {
    display: block;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}

.align-icon--left i:nth-child(1),
.align-icon--left i:nth-child(3) {
    width: 17px;
}

.align-icon--left i:nth-child(2),
.align-icon--left i:nth-child(4) {
    width: 11px;
}

.align-icon--center i:nth-child(1),
.align-icon--center i:nth-child(3) {
    width: 17px;
}

.align-icon--center i:nth-child(2),
.align-icon--center i:nth-child(4) {
    width: 11px;
    margin-inline: auto;
}

.align-icon--right i:nth-child(1),
.align-icon--right i:nth-child(3) {
    width: 17px;
}

.align-icon--right i:nth-child(2),
.align-icon--right i:nth-child(4) {
    width: 11px;
    margin-left: auto;
}

.align-icon--justify i {
    width: 17px;
}

.tool-icon {
    position: relative;
    display: inline-block;
    width: 18px;
    height: 18px;
}

.tool-icon--link::before,
.tool-icon--link::after,
.tool-icon--unlink::before,
.tool-icon--unlink::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 6px;
    border: 2px solid currentColor;
    border-radius: 999px;
    transform: rotate(-32deg);
}

.tool-icon--link::before,
.tool-icon--unlink::before {
    left: 1px;
    top: 6px;
}

.tool-icon--link::after,
.tool-icon--unlink::after {
    right: 1px;
    top: 6px;
}

.tool-icon--unlink {
    overflow: visible;
}

.tool-icon--unlink::after {
    opacity: .45;
}

.tool-icon--unlink + span,
.tool-icon--clean + span {
    display: none;
}

.tool-icon--unlink {
    background: linear-gradient(135deg, transparent 43%, currentColor 45%, currentColor 55%, transparent 57%);
}

.tool-icon--clean::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 2px;
    width: 12px;
    height: 13px;
    border: 2px solid currentColor;
    border-top-width: 4px;
    border-radius: 3px 3px 5px 5px;
    transform: rotate(-12deg);
}

.tool-icon--clean::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 1px;
    width: 14px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    opacity: .65;
}

.rich-editor-group--colors label {
    gap: 6px;
    align-items: center;
}

.rich-editor-toolbar input[type="color"] {
    width: 30px;
    height: 22px;
    padding: 0;
    border: 0;
    background: transparent;
}

.rich-editor {
    min-height: 220px;
    padding: 14px;
    border: 1px solid #d9e3d7;
    border-radius: 9px;
    background: #fff;
    color: #253434;
    line-height: 1.6;
    outline: none;
}

.rich-editor h2 {
    margin: 10px 0 6px;
    color: #174b61;
    font-size: 22px;
    line-height: 1.25;
}

.rich-editor h3 {
    margin: 8px 0 5px;
    color: #3d5f5b;
    font-size: 17px;
    line-height: 1.3;
}

.rich-editor a {
    color: #174b61;
    font-weight: 600;
    text-decoration: underline;
}

.rich-editor:focus {
    border-color: #719985;
}

.rich-editor:empty::before {
    content: attr(data-placeholder);
    color: #9aa8a3;
    pointer-events: none;
}

.publication-card {
    grid-template-columns: 150px minmax(0, 1fr);
    align-items: start;
    padding: 18px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(31, 48, 43, .04), 0 12px 32px rgba(31, 48, 43, .06);
}

.publication-card__media {
    width: 150px;
}

.publication-card__media img,
.publication-card__placeholder {
    width: 150px;
    aspect-ratio: 1 / 1;
    height: auto;
    border-radius: 10px;
}

.publication-card__media img {
    display: block;
    object-fit: contain;
    background: #fff;
    border: 1px solid #e2eadf;
}

.publication-card__placeholder {
    display: grid;
    place-items: center;
    border: 1px dashed #d7e4dd;
    background: #f6faf4;
    color: #719985;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 1px;
}

.publication-card__content {
    min-width: 0;
}

.publication-card__meta,
.publication-card__footer,
.publication-status-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.publication-card__meta {
    margin-bottom: 7px;
}

.publication-card__meta > span {
    color: #7f8d88;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.publication-status {
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef3f0;
}

.publication-status--draft {
    color: #7a6a32 !important;
    background: #fff5d8;
}

.publication-status--review {
    color: #7e5aa7 !important;
    background: #f1ebf7;
}

.publication-status--published {
    color: #176c42 !important;
    background: #e7f4ec;
}

.publication-status--archived {
    color: #6f7a78 !important;
    background: #edf1ef;
}

.publication-card__footer {
    justify-content: space-between;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #edf2ea;
}

.publication-status-actions form {
    margin: 0;
}

.publication-status-actions button {
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid #d9e3d7;
    border-radius: 999px;
    background: #fff;
    color: #52615c;
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
}

.publication-status-actions form:nth-child(2) button {
    border-color: #719985;
    background: #719985;
    color: #fff;
}

.publication-details {
    margin-top: 12px;
}

.publication-details summary {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 10px;
    border-radius: 999px;
    background: #eef6f2;
    color: #174b61;
}

.publication-media-form {
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    align-items: end;
    padding: 12px;
    border: 1px solid #e3ece7;
    border-radius: 10px;
    background: #fbfdf9;
}

.publication-media-form label {
    display: grid;
    gap: 5px;
    color: #66756f;
    font-size: 11px;
}

.publication-media-form label span {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .8px;
    text-transform: uppercase;
}

.publication-media-form input {
    width: 100%;
}

.publication-media-form button {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .publication-card,
    .publication-media-form {
        grid-template-columns: 1fr;
    }

    .publication-card__media img,
    .publication-card__placeholder {
        width: 100%;
    }

    .publication-card__media {
        width: 100%;
    }

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

@media (max-width: 980px) {
    .module-kpis {
        grid-template-columns: repeat(2, minmax(160px, 1fr));
    }
}

@media (max-width: 760px) {
    .dashboard-card-grid,
    .dashboard-card-grid--services,
    .reports-manager__grid {
        grid-template-columns: 1fr;
    }

    .publication-card,
    .publication-media-form {
        grid-template-columns: 1fr;
    }

    .dashboard-square-card {
        aspect-ratio: auto;
        min-height: 190px;
    }
}

.tables-page {
    min-height: 100vh;
    padding: 26px;
    background: var(--page);
}

.tables-topbar {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 18px;
    align-items: start;
    max-width: 1180px;
    margin: 0 auto 18px;
}

.tables-topbar > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #fff;
    color: #35505a;
    text-decoration: none;
    font-size: 12px;
    box-shadow: var(--shadow);
}

.tables-topbar span,
.table-preview-card__head span {
    color: #8d9a96;
    font-size: 11px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.tables-topbar h1 {
    margin: 3px 0 6px;
    font-size: 28px;
    font-weight: 500;
}

.tables-topbar p,
.table-preview-card__head p {
    margin: 0;
    color: #73817d;
    font-size: 13px;
}

.global-reference-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    max-width: 1180px;
    margin: 0 auto 12px;
    padding: 11px 12px;
    border: 1px solid #dce9e4;
    border-radius: 10px;
    background:
        linear-gradient(135deg, rgba(126, 90, 167, .12), rgba(255, 247, 223, .68)),
        #fffdf8;
    box-shadow: var(--shadow);
}

.global-reference-strip > div span {
    color: #7e5aa7;
    font-size: 10px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.global-reference-strip > div p {
    margin: 4px 0 0;
    color: #7f8f8b;
    font-size: 11px;
}

.global-reference-strip nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.global-reference-strip a {
    display: grid;
    grid-template-columns: 26px 1fr;
    column-gap: 8px;
    align-items: center;
    min-width: 126px;
    padding: 7px 9px;
    border: 1px solid #eadff3;
    border-radius: 8px;
    background: rgba(255, 255, 255, .82);
    color: #263434;
    text-decoration: none;
}

.global-reference-strip a:hover {
    border-color: #d6c2e6;
    background: #fbf7ff;
}

.global-reference-strip a.active {
    border-color: #7e5aa7;
    background:
        linear-gradient(135deg, rgba(126, 90, 167, .16), rgba(255, 255, 255, .92)),
        #fff;
    box-shadow: inset 0 3px 0 #7e5aa7;
}

.global-reference-strip i {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: #f1ebf7;
    color: #7e5aa7;
    font-size: 10px;
    font-style: normal;
}

.global-reference-strip strong {
    font-size: 11px;
    font-weight: 500;
}

.global-reference-strip small {
    color: #83918d;
    font-size: 9px;
}

.institution-module-shell {
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    max-width: 1440px;
    margin: 18px auto 0;
}

.institution-module-sidebar {
    position: sticky;
    top: 18px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f7fbf8 100%);
    box-shadow: 0 14px 35px rgba(17, 67, 53, 0.07);
}

.institution-module-sidebar__head {
    padding: 4px 4px 14px;
    border-bottom: 1px solid #e4eee8;
}

.institution-module-sidebar__head span {
    display: block;
    color: #7d8d89;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.institution-module-sidebar__head strong {
    display: block;
    margin-top: 4px;
    color: #183f36;
    font-size: 22px;
}

.institution-module-sidebar nav {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.institution-module-sidebar a {
    display: grid;
    grid-template-columns: 34px 1fr;
    column-gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid transparent;
    border-radius: 13px;
    color: #35514a;
    text-decoration: none;
}

.institution-module-sidebar a i {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: #edf6ef;
    font-style: normal;
}

.institution-module-sidebar a span {
    font-size: 14px;
    font-weight: 600;
}

.institution-module-sidebar a small {
    grid-column: 2;
    color: #7d8d89;
    font-size: 11px;
}

.institution-module-sidebar a.active {
    border-color: #bfe3cb;
    background: #f1fbf4;
    color: #0b7f3a;
}

.institution-module-sidebar a.active i {
    background: #14904b;
    color: #fff;
}

.institution-module-sidebar a[aria-disabled="true"] {
    opacity: .68;
}

.institution-module-main {
    min-width: 0;
}

.institution-cards-page {
    min-height: 100vh;
    padding: 34px;
    background:
        radial-gradient(circle at 14% 12%, rgba(20, 144, 75, .13), transparent 26%),
        linear-gradient(135deg, #f4faf6 0%, #eef6f2 48%, #f8fbf8 100%);
}

.institution-cards-hero {
    max-width: 1180px;
    margin: 0 auto 22px;
    padding: 28px;
    border: 1px solid #dfece5;
    border-radius: 24px;
    background: rgba(255, 255, 255, .84);
    box-shadow: 0 22px 55px rgba(22, 74, 58, .08);
}

.institution-cards-hero a {
    display: inline-flex;
    margin-bottom: 18px;
    color: #2f6f52;
    text-decoration: none;
    font-size: 13px;
}

.institution-cards-hero span {
    display: block;
    color: #14904b;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.institution-cards-hero h1 {
    margin: 8px 0;
    color: #173f35;
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1;
}

.institution-cards-hero p {
    max-width: 720px;
    margin: 0;
    color: #63756f;
    font-size: 15px;
}

.institution-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 16px;
    max-width: 1180px;
    margin: 0 auto;
}

.institution-card-grid--services {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.institution-card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    aspect-ratio: 1 / 1;
    min-height: 210px;
    padding: 20px;
    border: 1px solid #dceae3;
    border-radius: 22px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 16px 40px rgba(18, 67, 51, .07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.institution-card:hover {
    transform: translateY(-3px);
    border-color: #a9dcc0;
    box-shadow: 0 24px 54px rgba(18, 67, 51, .11);
}

.institution-card > i {
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin-bottom: 18px;
    border-radius: 22px;
    background: linear-gradient(135deg, #14904b, #0b6a62);
    color: #fff;
    font-style: normal;
    font-size: 30px;
    font-weight: 800;
}

.institution-card span {
    display: block;
    color: #14904b;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
}

.institution-card h2 {
    margin: 5px 0 8px;
    color: #173f35;
    font-size: 17px;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.institution-card p {
    margin: 0;
    color: #687a74;
    font-size: 13px;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.institution-card small {
    align-self: flex-start;
    margin-top: 16px;
    padding: 7px 11px;
    border-radius: 999px;
    background: #edf7f1;
    color: #14904b;
    font-size: 12px;
    font-weight: 700;
}

.institution-card--disabled {
    opacity: .62;
}

.institution-card--disabled:hover {
    transform: none;
    border-color: #dceae3;
    box-shadow: 0 16px 40px rgba(18, 67, 51, .07);
}

.institution-module-main .global-reference-strip,
.institution-module-main .data-table-tabs,
.institution-module-main .tables-layout {
    max-width: none;
}

.data-table-tabs {
    display: flex;
    gap: 0;
    max-width: 1180px;
    margin: 0 auto 12px;
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--shadow);
    scrollbar-width: thin;
}

.data-table-tabs a {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 9px 13px;
    border-right: 1px solid var(--line);
    background: transparent;
    color: var(--text);
    text-decoration: none;
    flex: 0 0 auto;
}

.data-table-tabs a small {
    white-space: nowrap;
}

.data-table-tabs a:last-child { border-right: 0; }

.data-table-tabs a.active,
.data-table-tabs a:hover {
    background: #edf7f1;
}

.data-table-tabs i {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #e9f6ee;
    color: #14904b;
    font-style: normal;
    font-size: 12px;
}

.data-table-tabs span,
.data-table-tabs small { display: block; }
.data-table-tabs span { font-size: 12px; }
.data-table-tabs small { margin-top: 1px; color: #7f8f8b; font-size: 10px; }

.tables-layout {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 18px;
    max-width: 1180px;
    margin: 0 auto;
}

.years-timeline,
.table-preview-card {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--shadow);
}

.years-timeline { padding: 16px; }

.years-timeline h2 {
    margin: 0 0 14px;
    color: #6f807c;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.global-reference-note {
    margin: 0;
    padding: 10px;
    border: 1px solid #eadff3;
    border-radius: 8px;
    background: #fbf7ff;
    color: #6f5d79;
    font-size: 11px;
    line-height: 1.45;
}

.years-timeline a {
    position: relative;
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 9px;
    margin-bottom: 10px;
    padding: 9px 9px 9px 0;
    border: 1px solid transparent;
    border-radius: 9px;
    color: #758581;
    text-decoration: none;
}

.years-timeline a:hover {
    border-color: #e3ece7;
    background: #fbfdf9;
}

.years-timeline a::before {
    content: "";
    position: absolute;
    top: 21px;
    bottom: -16px;
    left: 7px;
    width: 1px;
    background: #dce5e1;
}

.years-timeline a:last-child {
    margin-bottom: 0;
}

.years-timeline a:last-child::before { display: none; }

.years-timeline a > span {
    position: relative;
    z-index: 1;
    width: 15px;
    height: 15px;
    margin-top: 4px;
    border: 2px solid #c8d4d0;
    border-radius: 999px;
    background: #fff;
}

.years-timeline a.active {
    border-color: #d9ebe0;
    background: #f6fbf8;
}

.years-timeline a.active > span {
    border-color: #14904b;
    background: #14904b;
    box-shadow: 0 0 0 4px #e7f4ec;
}

.year-card-body {
    min-width: 0;
}

.year-card-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 5px;
}

.years-timeline strong,
.years-timeline small { display: block; }
.years-timeline strong { color: #4f5f5b; font-size: 13px; font-weight: 500; }
.years-timeline small { margin-top: 3px; color: #899894; font-size: 10.5px; line-height: 1.35; }
.years-timeline a.active strong { color: #14904b; }

.year-badge {
    flex: 0 0 auto;
    padding: 2px 6px;
    border-radius: 999px;
    background: #eef4f1;
    color: #71807c;
    font-size: 9px;
    font-style: normal;
    letter-spacing: .2px;
}

.year-badge--recent {
    background: #e7f4ec;
    color: #14904b;
}

.year-badge--check {
    background: #fff3d7;
    color: #8a6417;
}

.year-badge--history {
    background: #eef3f6;
    color: #607680;
}

.table-preview-card {
    min-height: 330px;
    padding: 20px;
}

.table-preview-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.table-preview-card__head h2 {
    margin: 6px 0;
    font-size: 26px;
    font-weight: 500;
}

.table-preview-card__head strong {
    min-width: 80px;
    padding: 12px;
    border-radius: 10px;
    background: #e9f6ee;
    color: #14904b;
    font-size: 28px;
    font-weight: 500;
    text-align: center;
}

.table-empty-action {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-top: 22px;
    padding: 16px;
    border: 1px dashed #cfdcd7;
    border-radius: 10px;
    background: #fbfdf9;
}

.table-empty-action > span {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 999px;
    background: #174b61;
    color: #fff;
}

.table-empty-action h3 {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 500;
}

.table-empty-action p {
    margin: 0;
    color: #7d8d89;
    font-size: 12px;
}

.table-inline-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.table-inline-actions a,
.table-inline-actions button {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 12px;
    border: 1px solid #cfded7;
    border-radius: 999px;
    background: #fff;
    color: #35514a;
    font: inherit;
    font-size: 12px;
    text-decoration: none;
    cursor: pointer;
}

.table-inline-actions form {
    margin: 0;
}

.table-inline-actions a:hover,
.table-inline-actions button:hover {
    border-color: #14904b;
    color: #14904b;
}

.api-import-card {
    margin-top: 18px;
    padding: 15px;
    border: 1px solid #dce7e2;
    border-radius: 10px;
    background: linear-gradient(135deg, #f8fbf9 0%, #ffffff 100%);
}

.api-import-card--active {
    border-color: #b8dcc9;
    background: linear-gradient(135deg, #f1faf4 0%, #ffffff 100%);
}

.api-import-card--error {
    border-color: #efc0c0;
    background: linear-gradient(135deg, #fff4f4 0%, #ffffff 100%);
}

.api-import-card--error header b {
    background: #faecec;
    color: #c83535;
}

.api-import-card header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 13px;
}

.api-import-card header > div {
    display: flex;
    align-items: center;
    gap: 10px;
}

.api-import-card header span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #e9f6ee;
    color: #14904b;
}

.api-import-card h3 {
    margin: 0 0 3px;
    font-size: 14px;
    font-weight: 500;
}

.api-import-card p {
    margin: 0;
    color: #7d8d89;
    font-size: 11px;
}

.api-import-card header b {
    padding: 5px 9px;
    border-radius: 999px;
    background: #e9f6ee;
    color: #14904b;
    font-size: 11px;
    font-weight: 500;
}

.api-import-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 7px;
}

.api-import-actions form {
    margin: 0;
}

.api-import-actions button {
    height: 28px;
    padding: 0 10px;
    border: 1px solid #cfded7;
    border-radius: 999px;
    background: #fff;
    color: #35514a;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
}

.api-import-actions button:hover {
    border-color: #14904b;
    color: #14904b;
}

.api-import-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(90px, 1fr));
    gap: 8px;
}

.api-import-grid article {
    padding: 10px;
    border: 1px solid #edf2ef;
    border-radius: 8px;
    background: rgba(255, 255, 255, .72);
}

.api-import-grid small,
.api-import-grid strong { display: block; }
.api-import-grid small { color: #7f8f8b; font-size: 10px; }
.api-import-grid strong { margin-top: 4px; color: #344541; font-size: 14px; font-weight: 500; }

.api-import-card footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 12px;
    color: #7d8d89;
    font-size: 11px;
}

.api-countdown {
    color: #176940 !important;
}

.api-countdown strong {
    font-weight: 500;
}

.csv-required-columns {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #e2ebe7;
    border-radius: 8px;
    background: #f8fbf9;
}

.csv-required-columns h3 {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 500;
}

.csv-required-columns p {
    margin: 0;
    color: #687975;
    font-family: Consolas, "Courier New", monospace;
    font-size: 11px;
    line-height: 1.5;
}

.sima-table-group + .sima-table-group {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #e2ebe6;
}

.sima-table-group > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 8px 7px;
    color: #71817c;
    font-size: 10px;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.sima-table-group > header small {
    display: grid;
    place-items: center;
    min-width: 22px;
    height: 20px;
    border-radius: 10px;
    background: #edf5f0;
    color: #176940;
    letter-spacing: 0;
}

.sima-table-sidebar {
    max-height: calc(100vh - 104px) !important;
    overflow: hidden !important;
}

.sima-table-lines {
    max-height: calc(100vh - 164px) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    padding-right: 4px;
    scrollbar-width: thin;
    scrollbar-color: #b9cfc4 transparent;
}

.sima-table-lines::-webkit-scrollbar {
    width: 6px;
}

.sima-table-lines::-webkit-scrollbar-thumb {
    border-radius: 6px;
    background: #b9cfc4;
}

.sima-table-group > header {
    position: sticky;
    top: 0;
    z-index: 2;
    margin-bottom: 2px;
    padding: 5px 7px;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(4px);
}

.sima-table-group--scroll {
    max-height: 270px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 3px;
    scrollbar-width: thin;
    scrollbar-color: #b9cfc4 transparent;
}

.sima-table-group--scroll::-webkit-scrollbar {
    width: 5px;
}

.sima-table-group--scroll::-webkit-scrollbar-thumb {
    border-radius: 5px;
    background: #b9cfc4;
}

.sima-table-line {
    min-height: 30px !important;
}

.sima-table-line > a:first-child {
    padding-block: 3px !important;
}

.sima-table-line i {
    width: 20px !important;
    height: 20px !important;
    font-size: 9px !important;
}

@media (max-width: 980px) {
    .sima-table-sidebar {
        position: static !important;
        max-height: none !important;
    }

    .sima-table-lines {
        max-height: 42vh !important;
    }
}

.rnpa-sql-import-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .7fr) auto;
    align-items: end;
    gap: 14px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid #dfe8e3;
}

.rnpa-sql-import-form div span,
.rnpa-sql-import-form label span {
    display: block;
    margin-bottom: 5px;
    color: #71817d;
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.rnpa-sql-import-form strong {
    color: #183f35;
    font-size: 14px;
    font-weight: 500;
}

.rnpa-sql-import-form p {
    margin: 5px 0 0;
    color: #71817d;
    font-size: 11px;
    line-height: 1.45;
}

.rnpa-sql-import-form input,
.rnpa-sql-import-form button {
    min-height: 42px;
    border: 1px solid #d3e1da;
    border-radius: 8px;
    background: #fff;
}

.rnpa-sql-import-form button {
    padding: 0 16px;
    background: #174b3d;
    color: #fff;
    cursor: pointer;
}

@media (max-width: 760px) {
    .rnpa-sql-import-form {
        grid-template-columns: 1fr;
    }
}

.csv-required-columns__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 6px;
}

.csv-required-columns__title h3 {
    margin: 0;
}

.csv-column-info-button {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 1px solid #bfd7cc;
    border-radius: 50%;
    background: #fff;
    color: #174b61;
    font: 600 12px/1 Georgia, serif;
    cursor: pointer;
}

.csv-column-info-button:hover,
.csv-column-info-button[aria-expanded="true"] {
    border-color: #2f8062;
    background: #eaf5ef;
    color: #176940;
}

.csv-column-help {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    max-height: 300px;
    margin-top: 12px;
    padding-top: 10px;
    overflow-y: auto;
    border-top: 1px solid #dce9e2;
}

.csv-column-help[hidden] {
    display: none;
}

.csv-column-help article {
    padding: 9px 10px;
    border: 1px solid #dce9e2;
    border-radius: 7px;
    background: #fff;
}

.csv-column-help article header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px;
}

.csv-column-help article code {
    color: #174b61;
    font-size: 11px;
}

.csv-column-help article header span {
    color: #698079;
    font-size: 9px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.csv-column-help dl,
.csv-column-help dl div {
    margin: 0;
}

.csv-column-help dl div {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 6px;
    padding: 2px 0;
    font-size: 10.5px;
}

.csv-column-help dt {
    color: #82918c;
}

.csv-column-help dd {
    margin: 0;
    color: #344b44;
}

@media (max-width: 720px) {
    .csv-column-help {
        grid-template-columns: 1fr;
    }
}

.portal-modal__success {
    margin-top: 12px !important;
    color: #14904b !important;
}

.portal-modal footer button:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.institution-sima-reports {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #dfece5;
    border-radius: 14px;
    background:
        radial-gradient(circle at 100% 0%, rgba(241, 165, 31, .16), transparent 28%),
        linear-gradient(135deg, #f7fbf8 0%, #ffffff 100%);
}

.institution-sima-reports header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.institution-sima-reports header span {
    color: #14904b;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.institution-sima-reports h3,
.institution-sima-reports p {
    margin: 0;
}

.institution-sima-reports h3 {
    margin-top: 3px;
    color: #203a32;
    font-size: 16px;
    font-weight: 600;
}

.institution-sima-reports p {
    margin-top: 5px;
    color: #758883;
    font-size: 12px;
}

.institution-sima-reports header strong {
    flex: 0 0 auto;
    align-self: flex-start;
    padding: 6px 10px;
    border-radius: 999px;
    background: #e9f6ee;
    color: #14904b;
    font-size: 12px;
    font-weight: 600;
}

.institution-sima-reports__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

.institution-sima-report {
    position: relative;
    min-height: 118px;
    padding: 14px;
    border: 1px solid #e4ece8;
    border-radius: 12px;
    background: #fff;
    color: #203a32;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(19, 78, 54, .07);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.institution-sima-report:hover {
    transform: translateY(-2px);
    border-color: #14904b;
    box-shadow: 0 16px 30px rgba(19, 78, 54, .12);
}

.institution-sima-report::after {
    content: "";
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 46px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(20, 144, 75, .14), rgba(241, 165, 31, .24));
}

.institution-sima-report__badge,
.institution-sima-report strong,
.institution-sima-report small,
.institution-sima-report em {
    position: relative;
    z-index: 1;
    display: block;
}

.institution-sima-report__badge {
    width: max-content;
    padding: 4px 7px;
    border-radius: 999px;
    background: #fff1e2;
    color: #c46a00;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
}

.institution-sima-report strong {
    margin-top: 14px;
    font-size: 14px;
    font-weight: 700;
}

.institution-sima-report small {
    margin-top: 4px;
    color: #778a84;
    font-size: 11px;
}

.institution-sima-report em {
    margin-top: 14px;
    color: #14904b;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
}

.data-entry-page {
    max-width: 1180px;
}

.data-entry-warning,
.data-entry-next {
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid #dfece5;
    border-radius: 16px;
    background: #fff;
}

.data-entry-warning {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: linear-gradient(135deg, #fffaf0, #ffffff);
}

.data-entry-warning > span {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: #fff1d8;
    color: #b26700;
    font-weight: 800;
}

.data-entry-warning h2,
.data-entry-warning p,
.data-entry-next h2 {
    margin: 0;
}

.data-entry-warning h2,
.data-entry-next h2 {
    color: #203a32;
    font-size: 18px;
}

.data-entry-warning p {
    margin-top: 5px;
    color: #687975;
    line-height: 1.55;
}

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

.data-entry-card {
    min-height: 190px;
    padding: 18px;
    border: 1px solid #dfece5;
    border-radius: 16px;
    background: #fff;
    color: #203a32;
    text-decoration: none;
    box-shadow: 0 14px 30px rgba(19, 78, 54, .07);
}

.data-entry-card[href]:hover {
    transform: translateY(-2px);
    border-color: #14904b;
}

.data-entry-card > span,
.data-entry-card strong,
.data-entry-card p,
.data-entry-card small {
    display: block;
}

.data-entry-card > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #e9f6ee;
    color: #14904b;
    font-weight: 800;
}

.data-entry-card strong {
    margin-top: 16px;
    font-size: 17px;
}

.data-entry-card p {
    margin: 8px 0 0;
    color: #6f817c;
    line-height: 1.5;
}

.data-entry-card small {
    margin-top: 16px;
    color: #14904b;
    font-weight: 700;
}

.data-entry-card--disabled {
    opacity: .68;
    background: #f8fbf9;
}

.data-entry-card--disabled small {
    color: #a16a00;
}

.data-entry-next ol {
    margin: 12px 0 0;
    padding-left: 20px;
    color: #5e716c;
    line-height: 1.75;
}

@media (max-width: 980px) {
    .data-entry-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .data-entry-grid {
        grid-template-columns: 1fr;
    }
}

.raw-table-block {
    margin-top: 20px;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    background: #fff;
}

.raw-table-block header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--line);
    background: #f7faf6;
}

.raw-table-block h3 {
    margin: 0 0 3px;
    font-size: 14px;
    font-weight: 500;
}

.raw-table-block p {
    margin: 0;
    color: #7d8d89;
    font-size: 11px;
}

.raw-table-block b {
    color: #52615e;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

.raw-table-scroll {
    max-height: 460px;
    overflow: auto;
}

.raw-table-scroll table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 11px;
}

.raw-table-scroll th,
.raw-table-scroll td {
    max-width: 180px;
    padding: 8px 10px;
    border-bottom: 1px solid #edf2ef;
    border-right: 1px solid #edf2ef;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.raw-table-scroll th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #eef4f1;
    color: #6f807c;
    font-weight: 500;
}

.raw-table-scroll td {
    color: #465552;
}

.raw-table-scroll tr:nth-child(even) td {
    background: #fbfdf9;
}

@media (max-width: 760px) {
    .tables-topbar,
    .tables-layout,
    .institution-module-shell { grid-template-columns: 1fr; }
    .institution-module-sidebar { position: static; }
    .institution-cards-page { padding: 18px; }
    .institution-card-grid,
    .institution-card-grid--services { grid-template-columns: 1fr; }
    .data-table-tabs { overflow-x: auto; }
    .api-import-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
}

.login-redesign-body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 18% 15%, rgba(217, 165, 46, .18), transparent 28%),
        radial-gradient(circle at 84% 12%, rgba(20, 144, 75, .15), transparent 26%),
        linear-gradient(135deg, #eef6f2 0%, #f7faf4 52%, #e8f0ee 100%);
    color: #243233;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.login-redesign-page {
    display: grid;
    place-items: center;
    min-height: 100vh;
    padding: 34px;
}

.login-redesign-card {
    display: grid;
    grid-template-columns: minmax(320px, .95fr) minmax(360px, 1.05fr);
    width: min(1040px, 100%);
    min-height: 640px;
    overflow: hidden;
    border: 1px solid rgba(223, 231, 220, .9);
    border-radius: 28px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 34px 90px rgba(13, 52, 72, .18);
}

.login-redesign-visual {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 34px;
    overflow: hidden;
    background: linear-gradient(155deg, #174b61 0%, #0d3448 72%);
    color: #fff;
}

.login-redesign-visual::after {
    content: "";
    position: absolute;
    right: -110px;
    bottom: -120px;
    width: 330px;
    height: 330px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .08);
}

.login-redesign-logo {
    display: grid;
    place-items: center;
    width: 190px;
    height: 92px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 18px 34px rgba(0, 0, 0, .12);
}

.login-redesign-logo img {
    width: 160px;
    max-height: 70px;
    object-fit: contain;
}

.login-redesign-visual span,
.login-redesign-kicker {
    display: inline-flex;
    width: fit-content;
    padding: 7px 11px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.login-redesign-visual span {
    border: 1px solid rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .1);
    color: #d7ecf0;
}

.login-redesign-visual h1 {
    max-width: 360px;
    margin: 18px 0 12px;
    color: #fff;
    font-size: 34px;
    line-height: 1.08;
    letter-spacing: -.7px;
}

.login-redesign-visual p,
.login-redesign-form-panel p {
    line-height: 1.6;
}

.login-redesign-visual p {
    max-width: 360px;
    margin: 0;
    color: #cfe2e5;
    font-size: 14px;
}

.login-redesign-visual ul {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.login-redesign-visual li {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #eaf5f5;
    font-size: 13px;
}

.login-redesign-visual li::before {
    content: "✓";
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #d9a52e;
    color: #173a45;
    font-size: 12px;
    font-weight: 800;
}

.login-redesign-form-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 54px;
}

.login-redesign-back {
    align-self: flex-start;
    margin-bottom: 34px;
    color: #174b61;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.login-redesign-kicker {
    background: #eef6f2;
    color: #174b61;
}

.login-redesign-form-panel h2 {
    margin: 16px 0 8px;
    color: #1f2f31;
    font-size: 32px;
    letter-spacing: -.5px;
}

.login-redesign-form-panel p {
    max-width: 430px;
    margin: 0 0 26px;
    color: #73817d;
    font-size: 14px;
}

.login-redesign-error {
    margin-bottom: 18px;
    padding: 12px 14px;
    border: 1px solid #efb7b6;
    border-radius: 12px;
    background: #fff0f0;
    color: #8f3030;
    font-size: 13px;
}

.login-redesign-form {
    display: grid;
    gap: 15px;
}

.login-redesign-form label {
    display: grid;
    gap: 7px;
    color: #53615e;
    font-size: 12px;
    font-weight: 600;
}

.login-redesign-form label span {
    letter-spacing: .7px;
    text-transform: uppercase;
}

.login-redesign-form input {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    border: 1px solid #dfe7dc;
    border-radius: 13px;
    background: #fbfdf9;
    color: #243233;
    font: inherit;
    outline: 0;
}

.login-redesign-form input:focus {
    border-color: #174b61;
    box-shadow: 0 0 0 3px rgba(23, 75, 97, .12);
}

.login-redesign-form button {
    height: 50px;
    margin-top: 6px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #174b61, #0d3448);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.login-redesign-form-panel footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 28px;
    color: #91a09c;
    font-size: 12px;
}

.login-redesign-form-panel footer a {
    color: #14904b;
    font-weight: 700;
    text-decoration: none;
}

.account-module-body {
    min-height: 100vh;
    margin: 0;
    background:
        radial-gradient(circle at 12% 10%, rgba(217, 165, 46, .16), transparent 26%),
        radial-gradient(circle at 88% 8%, rgba(20, 144, 75, .13), transparent 28%),
        #f3f7f0;
    color: #243233;
    font-family: Inter, "Segoe UI", Arial, sans-serif;
}

.account-module-page {
    width: min(1180px, calc(100% - 40px));
    margin: 0 auto;
    padding: 22px 0 44px;
}

.account-module-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 72px;
    margin-bottom: 24px;
    padding: 12px 16px;
    border: 1px solid #dfe7dc;
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 12px 32px rgba(31, 48, 43, .06);
}

.account-module-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #174b61;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.account-module-brand img {
    width: 112px;
    height: 44px;
    object-fit: contain;
}

.account-module-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.account-module-actions a,
.account-module-actions button {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid #dce7e1;
    border-radius: 999px;
    background: #fff;
    color: #40504d;
    font: inherit;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.account-module-actions button {
    border-color: #efd4d4;
    color: #b23535;
}

.account-module-actions form {
    margin: 0;
}

.account-module-messages {
    margin-bottom: 18px;
}

.account-module-hero {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-bottom: 22px;
    padding: 28px;
    border-radius: 22px;
    background: linear-gradient(135deg, #174b61 0%, #0d3448 72%);
    color: #fff;
    box-shadow: 0 22px 48px rgba(13, 52, 72, .18);
}

.account-module-avatar {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 86px;
    height: 86px;
    border-radius: 24px;
    background: #e2b33f;
    color: #4c3810;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: -1px;
}

.account-module-hero span,
.account-module-card header span {
    color: #91a7a8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1.6px;
    text-transform: uppercase;
}

.account-module-hero span {
    color: #d7ecf0;
}

.account-module-hero h1 {
    margin: 8px 0 6px;
    color: #fff;
    font-size: 34px;
    line-height: 1.1;
}

.account-module-hero p {
    max-width: 680px;
    margin: 0;
    color: #cfe2e5;
    font-size: 14px;
    line-height: 1.6;
}

.account-module-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.account-module-kpis article,
.account-module-card {
    border: 1px solid #dfe7dc;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(31, 48, 43, .05);
}

.account-module-kpis article {
    min-height: 116px;
    padding: 18px;
}

.account-module-kpis span {
    display: block;
    color: #8d9a96;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.account-module-kpis strong {
    display: block;
    margin-top: 16px;
    overflow: hidden;
    color: #1f2f31;
    font-size: 19px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.account-module-kpis small {
    display: block;
    margin-top: 8px;
    color: #92a09b;
    font-size: 11px;
}

.account-module-grid {
    display: grid;
    grid-template-columns: minmax(320px, .8fr) minmax(520px, 1.2fr);
    gap: 18px;
}

.account-module-card {
    padding: 20px;
}

.account-module-card header {
    margin-bottom: 18px;
}

.account-module-card h2 {
    margin: 7px 0 5px;
    color: #263434;
    font-size: 18px;
}

.account-module-card p {
    margin: 0;
    color: #73817d;
    font-size: 13px;
    line-height: 1.5;
}

.account-module-form {
    display: grid;
    gap: 13px;
}

.account-module-form label {
    display: grid;
    gap: 7px;
    color: #53615e;
    font-size: 12px;
    font-weight: 700;
}

.account-module-form input {
    height: 42px;
    padding: 0 12px;
    border: 1px solid #dfe7dc;
    border-radius: 10px;
    background: #fbfdf9;
    color: #243233;
    font: inherit;
    outline: 0;
}

.account-module-form input:focus {
    border-color: #174b61;
    box-shadow: 0 0 0 3px rgba(23, 75, 97, .11);
}

.account-module-form button {
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: #174b61;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.account-module-access-list {
    display: grid;
    gap: 12px;
}

.account-module-access-card {
    padding: 15px;
    border: 1px solid #e4ebe2;
    border-radius: 14px;
    background: #fbfdf9;
}

.account-module-access-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.account-module-access-head i {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #eef6f2;
    color: #174b61;
    font-style: normal;
    font-size: 13px;
    font-weight: 800;
}

.account-module-access-head span {
    display: block;
    color: #8d9a96;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.account-module-access-head strong {
    display: block;
    margin-top: 4px;
    color: #263434;
    font-size: 14px;
}

.account-module-access-head small {
    display: block;
    margin-top: 4px;
    color: #7e8d89;
    font-size: 12px;
}

.account-module-access-card > p {
    margin: 12px 0;
    color: #73817d;
}

.account-module-rights {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.account-module-rights span {
    padding: 6px 9px;
    border-radius: 999px;
    background: #edf2ee;
    color: #92a09b;
    font-size: 11px;
    font-weight: 700;
}

.account-module-rights .is-on {
    background: #e8f6ee;
    color: #14904b;
}

.account-module-empty {
    padding: 22px;
    border: 1px dashed #dce7e1;
    border-radius: 14px;
    background: #fbfdf9;
}

.account-module-empty h3 {
    margin: 0 0 8px;
    color: #263434;
}

@media (max-width: 900px) {
    .account-module-topbar,
    .account-module-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .account-module-kpis,
    .account-module-grid {
        grid-template-columns: 1fr;
    }
}

/* Compte: alignement strict avec le design du dashboard national */
.account-module-body {
    background: #f3f7f0;
    font-size: 14px;
}

.account-module-page {
    width: calc(100% - 44px);
    max-width: none;
    margin: 0 auto;
    padding: 0 0 34px;
}

.account-module-topbar {
    height: 66px;
    min-height: 66px;
    margin: 0 -22px 22px;
    padding: 0 34px;
    border: 0;
    border-bottom: 1px solid #e4ebe2;
    border-radius: 0;
    background: rgba(255, 255, 255, .92);
    box-shadow: none;
}

.account-module-topbar.sia-topbar {
    margin: 0 -22px 22px;
}

.account-module-brand {
    gap: 10px;
    color: #7c8985;
    font-size: 13px;
    font-weight: 500;
}

.account-module-brand img {
    width: 84px;
    height: 34px;
}

.account-module-actions a,
.account-module-actions button {
    min-height: 30px;
    padding: 0 10px;
    font-size: 11px;
    font-weight: 400;
}

.account-module-hero {
    gap: 18px;
    padding: 18px;
    border: 1px solid #dfe7dc;
    border-radius: 9px;
    background: #fff;
    color: #243233;
    box-shadow: 0 1px 2px rgba(31, 48, 43, .05), 0 10px 30px rgba(31, 48, 43, .05);
}

.account-module-avatar {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    font-size: 17px;
    font-weight: 500;
    letter-spacing: 0;
}

.account-module-photo {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    overflow: hidden;
    border: 1px solid #dfe7dc;
    border-radius: 50%;
    background: linear-gradient(135deg, #e8f1ed, #ffffff);
    color: #174b61;
    font-size: 18px;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(31, 48, 43, .08);
    flex: 0 0 auto;
}

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

.account-module-hero span,
.account-module-card header span,
.account-module-kpis span,
.account-module-access-head span {
    font-weight: 500;
    letter-spacing: 1.4px;
}

.account-module-hero span {
    color: #8d9a96;
}

.account-module-hero h1 {
    color: #1f2f31;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.15;
}

.account-module-hero p {
    color: #73817d;
    font-size: 13px;
}

.account-module-kpis {
    gap: 16px;
    margin-bottom: 22px;
}

.account-module-kpis article,
.account-module-card {
    border-radius: 9px;
    box-shadow: 0 1px 2px rgba(31, 48, 43, .05), 0 10px 30px rgba(31, 48, 43, .05);
}

.account-module-kpis article {
    min-height: 122px;
}

.account-module-kpis strong {
    font-size: 22px;
    font-weight: 500;
}

.account-module-card {
    padding: 18px;
}

.account-module-card h2 {
    font-size: 14px;
    font-weight: 500;
}

.account-module-form label {
    font-weight: 500;
}

.account-module-form input {
    height: 38px;
    border-radius: 7px;
}

.account-module-profile-form {
    gap: 16px;
}

.account-module-form-section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 14px;
    border: 1px solid #e2eadf;
    border-radius: 9px;
    background: #fbfdf9;
}

.account-module-form-section h3 {
    grid-column: 1 / -1;
    margin: 0 0 2px;
    color: #75847f;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.account-module-form-wide,
.account-module-photo-field {
    grid-column: 1 / -1;
}

.account-module-form label small {
    color: #8d9a96;
    font-size: 11px;
}

.account-module-form button {
    height: 38px;
    border-radius: 7px;
    font-weight: 500;
}

.account-module-access-card {
    padding: 14px;
    border-radius: 9px;
}

.account-module-access-head i {
    border-radius: 8px;
    font-weight: 500;
}

.account-module-access-head strong {
    font-size: 13px;
    font-weight: 500;
}

.account-module-rights span {
    font-weight: 500;
}

@media (max-width: 860px) {
    .login-redesign-card {
        grid-template-columns: 1fr;
    }

    .login-redesign-visual {
        min-height: 330px;
    }

    .login-redesign-form-panel {
        padding: 34px 24px;
    }
}

.account-module-hero--compact {
    margin-bottom: 16px;
}

.account-module-grid--single {
    grid-template-columns: minmax(0, 760px);
}

.account-module-form--wide {
    max-width: 560px;
}

.account-module-form select,
.account-module-form textarea,
.account-module-form input[type="file"] {
    width: 100%;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fbfdfa;
    color: #233132;
    font: inherit;
}

.account-module-form select,
.account-module-form input[type="file"] {
    min-height: 38px;
}

.account-module-form input[type="file"] {
    padding: 8px 10px;
}

.account-module-form textarea {
    min-height: 96px;
    padding: 10px;
    resize: vertical;
}

.account-module-form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 12px;
}

.account-module-form-actions a,
.account-module-form-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    color: #50605b;
    font-size: 12px;
    text-decoration: none;
}

.account-module-form-actions button,
.account-module-form-actions .is-primary {
    border-color: #719985;
    background: #719985;
    color: #fff;
}

.account-module-alert {
    margin: 14px 0;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 12px;
}

.account-module-alert--error {
    border: 1px solid #f0c9c3;
    background: #fff6f4;
    color: #964239;
}

.rights-module-card {
    margin-top: 16px;
}

.rights-module-header,
.rights-module-search {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.rights-module-header {
    margin-bottom: 14px;
}

.rights-module-create,
.rights-module-search button,
.rights-pagination button,
.rights-modal footer button {
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    color: #52615c;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
}

.rights-module-create,
.rights-modal footer button[type="submit"] {
    border-color: #719985;
    background: #719985;
    color: #fff;
}

.rights-module-search {
    margin-bottom: 14px;
    padding: 10px;
    border: 1px solid #e3eadf;
    border-radius: 9px;
    background: #f8fbf6;
}

.rights-module-search label {
    color: #7f8c87;
    font-size: 11px;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.rights-module-search input {
    flex: 1;
    min-height: 34px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    padding: 0 11px;
    font-size: 13px;
}

.rights-table-wrap {
    overflow-x: auto;
    border: 1px solid #e1e9de;
    border-radius: 9px;
}

.rights-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    color: #263536;
    font-size: 12px;
}

.rights-table th,
.rights-table td {
    padding: 10px 11px;
    border-bottom: 1px solid #edf2ea;
    text-align: left;
    white-space: nowrap;
}

.rights-table th {
    background: #f5f8f2;
    color: #77847f;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.rights-row--inactive {
    opacity: .56;
}

.rights-row--super td:first-child {
    box-shadow: inset 3px 0 0 #719985;
}

.rights-inst {
    display: inline-flex;
    min-width: 42px;
    justify-content: center;
    padding: 4px 8px;
    border-radius: 999px;
    background: #ecf3e9;
    color: #526f60;
    font-size: 11px;
    font-weight: 600;
}

.rights-edit {
    width: 30px;
    height: 30px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fff;
    color: #5d7069;
    cursor: pointer;
}

.rights-pagination {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 12px;
}

.rights-pagination .is-active {
    border-color: #719985;
    background: #719985;
    color: #fff;
}

.rights-modal[hidden] {
    display: none;
}

.rights-modal {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(25, 38, 36, .28);
}

.rights-modal__dialog {
    position: relative;
    width: min(760px, 100%);
    max-height: calc(100vh - 48px);
    overflow: auto;
    padding: 20px;
    border: 1px solid #dfe7dc;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 20px 70px rgba(28, 43, 39, .18);
}

.rights-modal__dialog--large {
    width: min(980px, 100%);
}

.rights-modal__close {
    position: absolute;
    top: 12px;
    right: 14px;
    border: 0;
    background: transparent;
    color: #71807b;
    font-size: 24px;
    cursor: pointer;
}

.rights-modal header {
    margin-bottom: 14px;
}

.rights-modal header span,
.rights-modal__rights legend {
    color: #87938e;
    font-size: 11px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
}

.rights-modal header h2 {
    margin: 4px 0;
    color: #223132;
    font-size: 18px;
    font-weight: 500;
}

.rights-modal header p {
    margin: 0;
    color: #73817d;
    font-size: 13px;
}

.rights-modal__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.rights-modal__wide {
    grid-column: 1 / -1;
}

.rights-modal label {
    display: grid;
    gap: 6px;
    color: #52615c;
    font-size: 12px;
}

.rights-modal input,
.rights-modal select {
    min-height: 36px;
    border: 1px solid #d9e3d7;
    border-radius: 7px;
    background: #fbfdfa;
    padding: 0 10px;
    font: inherit;
}

.rights-switch {
    display: flex !important;
    align-items: center;
    grid-template-columns: auto 1fr;
}

.rights-switch input {
    min-height: auto;
}

.rights-modal__rights {
    margin: 16px 0;
    padding: 12px;
    border: 1px solid #e1e9de;
    border-radius: 9px;
}

.rights-modal__rights-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.rights-modal__rights-table td {
    padding: 7px 6px;
    border-bottom: 1px solid #edf2ea;
}

.rights-modal__rights-table input {
    width: 16px;
    height: 16px;
    min-height: 0;
}

.rights-modal__error {
    color: #964239;
    font-size: 12px;
}

.rights-modal footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

@media (max-width: 760px) {
    .rights-module-header,
    .rights-module-search,
    .rights-modal__grid {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: stretch;
    }

    .account-module-form-section {
        grid-template-columns: 1fr;
    }
}


/* Publications: panneau compact, cartes et lecture finale */
.publications-manager--polished {
    overflow: visible;
    transition: background .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.publications-manager--polished.publication-panel-active {
    border-color: #d6e5d9;
    background: #f7fbf6;
    box-shadow: 0 10px 32px rgba(31, 48, 43, .07);
}

.publications-head {
    align-items: center;
    padding-bottom: 16px;
}

.module-eyebrow {
    display: block;
    margin-bottom: 6px;
    color: #8d9a96;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.publication-inline-editor--panel {
    margin: 0 18px 18px;
    padding: 0;
    overflow: hidden;
    border: 2px solid #719985;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(31, 48, 43, .11);
}

.publication-inline-editor--panel[hidden] {
    display: none;
}

.publication-inline-editor--panel > header {
    position: relative;
    align-items: center;
    margin: 0;
    padding: 16px 18px;
    border-bottom: 1px solid #dbe9df;
    background: #f3f8f4;
}

.publication-inline-editor--panel > header > span {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #edf6f1;
}

.publication-inline-editor--panel > header button {
    margin-left: auto;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 999px;
    background: #eef4f0;
    color: #64746f;
    font-size: 22px;
    cursor: pointer;
}

.publication-inline-editor--panel form {
    padding: 16px 18px 18px;
    background: #fff;
}

.publication-inline-editor--panel .rich-editor {
    min-height: 170px;
}

.publication-inline-editor__footer button[type="button"] {
    border-color: #d9e3d7;
    background: #fff;
    color: #52615c;
}

.publication-inline-editor__footer {
    gap: 10px;
}

.publication-list--polished {
    padding-top: 0;
}

.publication-card--polished {
    position: relative;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 16px;
    padding: 14px;
    border: 1px solid #dfe8db;
    background: linear-gradient(135deg, #fff 0%, #fbfdf9 100%);
    box-shadow: 0 1px 2px rgba(31, 48, 43, .04), 0 12px 28px rgba(31, 48, 43, .055);
}

.publication-card--polished:hover {
    border-color: #bfd6ca;
    box-shadow: 0 12px 36px rgba(31, 48, 43, .09);
}

.publication-card--polished .publication-card__media {
    position: relative;
    width: 132px;
}

.publication-card--polished .publication-card__media img,
.publication-card--polished .publication-card__placeholder {
    width: 132px;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
}

.publication-card--polished .publication-card__media img {
    object-fit: contain;
    padding: 6px;
    background: #fff;
}

.publication-card--polished .publication-status {
    position: absolute;
    left: 8px;
    bottom: 8px;
    box-shadow: 0 6px 14px rgba(31, 48, 43, .16);
}

.publication-card--polished h3 {
    margin-top: 7px;
    color: #203030;
    font-size: 18px;
}

.publication-card--polished h4 {
    color: #5f706b;
}

.publication-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 13px;
}

.publication-card__actions form {
    margin: 0;
}

.publication-card__actions button,
.publication-status-actions button {
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid #d9e3d7;
    border-radius: 999px;
    background: #fff;
    color: #52615c;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.publication-card__actions > button:first-child {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

.publication-card__actions .is-danger {
    border-color: #efd4cf;
    background: #fff7f5;
    color: #b23535;
}

.publication-status-actions {
    gap: 6px;
}

.publication-reader-modal[hidden] {
    display: none;
}

.publication-reader-modal {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: grid;
    place-items: center;
    padding: 28px;
    background: rgba(19, 31, 29, .42);
    backdrop-filter: blur(4px);
}

.publication-reader-modal__dialog {
    position: relative;
    width: min(980px, 100%);
    max-height: calc(100vh - 56px);
    overflow: auto;
    border: 1px solid #dfe8db;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 28px 90px rgba(18, 31, 28, .28);
}

.publication-reader-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    color: #586864;
    font-size: 24px;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(31, 48, 43, .12);
}

.publication-reader-hero {
    display: grid;
    grid-template-columns: minmax(220px, 34%) 1fr;
    gap: 24px;
    align-items: center;
    padding: 28px;
    background: linear-gradient(135deg, #f2f8ef 0%, #ffffff 72%);
}

.publication-reader-hero > img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    padding: 10px;
    border: 1px solid #dfe8db;
    border-radius: 16px;
    background: #fff;
}

.publication-reader-hero h2 {
    margin: 14px 0 8px;
    color: #203030;
    font-size: clamp(25px, 3vw, 40px);
    line-height: 1.12;
}

.publication-reader-hero p {
    margin: 0 0 10px;
    color: #60706b;
    font-size: 16px;
}

.publication-reader-hero small {
    color: #7d8d89;
    font-size: 12px;
}

.publication-reader-summary {
    margin: 0;
    padding: 20px 28px;
    border-top: 1px solid #edf3ea;
    border-bottom: 1px solid #edf3ea;
    background: #fbfdf9;
    color: #52615c;
    font-size: 16px;
    line-height: 1.65;
}

.publication-reader-body {
    padding: 26px 28px;
    color: #263636;
    font-size: 15px;
    line-height: 1.78;
}

.publication-reader-body h2,
.publication-reader-body h3 {
    color: #174b61;
}

.publication-reader-body ul {
    padding-left: 22px;
}

.publication-reader-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 14px;
    padding: 0 28px 24px;
}

.publication-reader-gallery figure {
    margin: 0;
}

.publication-reader-gallery img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border: 1px solid #dfe8db;
    border-radius: 12px;
    background: #fff;
}

.publication-reader-gallery figcaption {
    margin-top: 6px;
    color: #70807b;
    font-size: 12px;
}

.publication-media-form--reader {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin: 0 28px 28px;
    padding: 14px;
    border: 1px solid #e4ece1;
    border-radius: 12px;
    background: #fbfdf9;
}

@media (max-width: 900px) {
    .publication-card--polished,
    .publication-reader-hero,
    .publication-media-form--reader {
        grid-template-columns: 1fr;
    }

    .publication-card--polished .publication-card__media,
    .publication-card--polished .publication-card__media img,
    .publication-card--polished .publication-card__placeholder {
        width: 100%;
    }
}


/* SIMA table console */
.sima-table-console {
    display: grid;
    grid-template-columns: 255px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    max-width: none;
}

.sima-table-sidebar,
.sima-table-workspace {
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(46, 68, 61, .05);
}

.sima-table-sidebar {
    position: sticky;
    top: 84px;
    padding: 16px;
}

.sima-table-sidebar header span,
.sima-table-hero span,
.sima-year-mini > span {
    color: #7c8d88;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.sima-table-sidebar h2,
.sima-table-hero h2 {
    margin: 7px 0 5px;
    color: #213330;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -.02em;
}

.sima-table-sidebar p,
.sima-table-hero p {
    margin: 0;
    color: #6f807c;
    font-size: 12px;
    line-height: 1.45;
}

.sima-table-sidebar nav {
    display: grid;
    gap: 8px;
    margin-top: 15px;
}

.sima-table-sidebar nav a {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    padding: 10px;
    border: 1px solid #e2ede7;
    border-radius: 9px;
    background: #fbfdf9;
    color: #273936;
    text-decoration: none;
    transition: .18s ease;
}

.sima-table-sidebar nav a:hover,
.sima-table-sidebar nav a.active {
    border-color: #b9dbc9;
    background: #f0faf4;
    transform: translateY(-1px);
}

.sima-table-sidebar nav i {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #edf6ef;
    color: #128447;
    font-size: 13px;
    font-style: normal;
}

.sima-table-sidebar nav strong,
.sima-table-sidebar nav small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sima-table-sidebar nav strong {
    font-size: 12px;
    font-weight: 500;
}

.sima-table-sidebar nav small {
    margin-top: 2px;
    color: #83928e;
    font-size: 10.5px;
}

.sima-year-mini {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #e7eee9;
}

.sima-year-mini div {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 9px;
}

.sima-year-mini a {
    padding: 8px;
    border: 1px solid #e2ede7;
    border-radius: 8px;
    background: #fbfdf9;
    color: #566761;
    text-decoration: none;
}

.sima-year-mini a.active {
    border-color: #9ed0b6;
    background: #edf8f2;
    color: #128447;
}

.sima-year-mini strong,
.sima-year-mini small {
    display: block;
}

.sima-year-mini strong {
    font-size: 12px;
    font-weight: 500;
}

.sima-year-mini small {
    margin-top: 3px;
    font-size: 10px;
}

.sima-table-workspace {
    padding: 18px;
}

.sima-table-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 4px 2px 18px;
    border-bottom: 1px solid #e7eee9;
}

.sima-table-hero strong {
    display: grid;
    place-items: center;
    min-width: 92px;
    height: 68px;
    border: 1px solid #dce9e2;
    border-radius: 10px;
    background: #f7fbf8;
    color: #184a60;
    font-size: 22px;
    font-weight: 500;
}

.sima-table-hero strong small {
    color: #7c8d88;
    font-size: 10px;
    font-weight: 500;
}

.sima-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(160px, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.sima-action-card {
    min-height: 118px;
    padding: 15px;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdf9 100%);
    color: #253632;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: .18s ease;
}

.sima-action-card:hover,
.sima-action-card--primary {
    border-color: #b5d8c5;
    background: linear-gradient(180deg, #f2faf5 0%, #ffffff 100%);
    transform: translateY(-1px);
}

.sima-action-card.is-disabled {
    opacity: .55;
    cursor: not-allowed;
}

.sima-action-card i {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 9px;
    background: #edf6ef;
    color: #128447;
    font-size: 14px;
    font-style: normal;
}

.sima-action-card strong,
.sima-action-card span {
    display: block;
}

.sima-action-card strong {
    margin-bottom: 5px;
    font-size: 14px;
    font-weight: 600;
}

.sima-action-card span {
    color: #6f807c;
    font-size: 11.5px;
    line-height: 1.45;
}

.sima-api-panel {
    margin-top: 16px;
}

.sima-api-code {
    margin-top: 12px;
    padding: 10px 12px;
    border: 1px dashed #cadbd1;
    border-radius: 8px;
    background: #fbfdf9;
}

.sima-api-code code {
    color: #184a60;
    font-size: 12px;
    white-space: normal;
}

.sima-raw-table {
    border-color: #dfe9e3;
}

.table-search-bar {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto auto;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border-top: 1px solid #edf2ee;
    background: #fbfdf9;
}

.table-search-bar label span {
    display: block;
    margin-bottom: 5px;
    color: #6f807c;
    font-size: 11px;
    font-weight: 500;
}

.table-search-bar input {
    width: 100%;
    height: 38px;
    padding: 0 12px;
    border: 1px solid #d9e6df;
    border-radius: 8px;
    background: #fff;
    color: #263733;
}

.table-search-bar button,
.table-search-bar a,
.table-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 13px;
    border: 1px solid #cfe1d7;
    border-radius: 8px;
    background: #f2faf5;
    color: #116c3b;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}

.table-pagination {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 9px;
    padding: 12px;
    border-top: 1px solid #edf2ee;
}

.table-pagination span {
    color: #6f807c;
    font-size: 12px;
}

@media (max-width: 980px) {
    .sima-table-console {
        grid-template-columns: 1fr;
    }
    .sima-table-sidebar {
        position: static;
    }
    .sima-action-grid {
        grid-template-columns: repeat(2, minmax(150px, 1fr));
    }
}

@media (max-width: 680px) {
    .sima-action-grid,
    .table-search-bar {
        grid-template-columns: 1fr;
    }
    .sima-table-hero {
        display: block;
    }
    .sima-table-hero strong {
        margin-top: 12px;
    }
}


/* SIMA compact table console refinements */
.sima-table-sidebar {
    padding: 10px;
}

.sima-table-sidebar__compact-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px;
}

.sima-table-sidebar__compact-head span {
    color: #7c8d88;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.3px;
    text-transform: uppercase;
}

.sima-table-sidebar__compact-head strong {
    display: grid;
    place-items: center;
    min-width: 26px;
    height: 22px;
    border-radius: 999px;
    background: #eef6f2;
    color: #128447;
    font-size: 11px;
}

.sima-table-lines {
    display: grid;
    gap: 3px;
    margin-top: 0;
}

.sima-table-line {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 42px;
    align-items: center;
    min-height: 34px;
    border: 1px solid transparent;
    border-radius: 7px;
    background: transparent;
}

.sima-table-line:hover,
.sima-table-line.active {
    border-color: #d8e9df;
    background: #f5fbf7;
}

.sima-table-line > a:first-child {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    gap: 7px;
    align-items: center;
    min-width: 0;
    padding: 5px 4px 5px 7px;
    color: #293a36;
    text-decoration: none;
}

.sima-table-line i {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: #edf6ef;
    color: #128447;
    font-size: 10px;
    font-style: normal;
}

.sima-table-line span {
    min-width: 0;
    overflow: hidden;
    font-size: 11.5px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sima-table-line small {
    color: #7f908b;
    font-size: 10px;
    white-space: nowrap;
}

.sima-download-mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    min-height: 24px;
    margin-right: 4px;
    border: 1px solid #d5e4dc;
    border-radius: 6px;
    background: #fff;
    color: #174b61;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
}

.sima-year-mini {
    margin-top: 10px;
    padding-top: 9px;
}

.sima-year-mini div {
    gap: 5px;
}

.sima-year-mini a {
    padding: 6px 7px;
}

.sima-table-hero {
    padding-bottom: 12px;
}

.sima-table-hero h2 {
    font-size: 20px;
}

.sima-action-grid--compact {
    grid-template-columns: repeat(auto-fit, minmax(86px, 104px));
    gap: 9px;
    margin-top: 13px;
}

.sima-action-grid--compact .sima-action-card {
    display: grid;
    place-items: center;
    min-height: 92px;
    padding: 10px;
    border-radius: 9px;
    text-align: center;
}

.sima-action-grid--compact .sima-action-card:nth-child(1) { background: #f1f8ff; border-color: #d6e8f8; }
.sima-action-grid--compact .sima-action-card:nth-child(2) { background: #f5fbf7; border-color: #d8eadf; }
.sima-action-grid--compact .sima-action-card:nth-child(3) { background: #fff9ed; border-color: #f0dfb8; }
.sima-action-grid--compact .sima-action-card:nth-child(4) { background: #f7f2ff; border-color: #ded0f3; }
.sima-action-grid--compact .sima-action-card:nth-child(5) { background: #fff5f2; border-color: #f0d0c8; }
.sima-action-grid--compact .sima-action-card:nth-child(6) { background: #f2fbfb; border-color: #cfe8e6; }

.sima-action-grid--compact .sima-action-card i {
    width: 30px;
    height: 30px;
    margin: 0 0 7px;
    background: rgba(255, 255, 255, .74);
    font-size: 11px;
}

.sima-action-grid--compact .sima-action-card strong {
    margin: 0;
    font-size: 11.5px;
}

.sima-action-grid--compact .sima-action-card span {
    display: none;
}

.sima-row-editor {
    margin: 12px;
    border: 1px solid #b9d9c7;
    border-radius: 10px;
    background: #fbfefb;
    box-shadow: 0 12px 28px rgba(31, 48, 43, .08);
}

.sima-row-editor[hidden] {
    display: none;
}

.sima-row-editor header,
.sima-row-editor footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 13px;
    border-bottom: 1px solid #e2eee6;
}

.sima-row-editor footer {
    justify-content: flex-end;
    border-top: 1px solid #e2eee6;
    border-bottom: 0;
}

.sima-row-editor header span {
    color: #719985;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.1px;
    text-transform: uppercase;
}

.sima-row-editor h3 {
    margin: 3px 0 0;
    font-size: 15px;
    font-weight: 600;
}

.sima-row-editor header button,
.sima-row-editor footer button {
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid #d7e5dc;
    border-radius: 999px;
    background: #fff;
    color: #46605a;
    cursor: pointer;
}

.sima-row-editor footer button[type="submit"] {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

.sima-row-editor__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 10px;
    padding: 13px;
}

.sima-row-editor__grid label {
    display: grid;
    gap: 5px;
    color: #52615c;
    font-size: 11px;
}

.sima-row-editor__grid input {
    width: 100%;
    min-height: 34px;
    padding: 0 9px;
    border: 1px solid #d9e5dc;
    border-radius: 7px;
    background: #fff;
    font: inherit;
    font-size: 12px;
}

.sima-row-editor__grid label.is-readonly input {
    background: #f2f5f2;
    color: #87938f;
}

.raw-table-block th.edit-col,
.raw-table-block td.edit-col {
    position: sticky;
    left: 0;
    z-index: 2;
    width: 58px;
    min-width: 58px;
    text-align: center;
    background: #fbfdf9;
}

.row-edit-button {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: 1px solid #d6e4dc;
    border-radius: 999px;
    background: #fff;
    color: #174b61;
    cursor: pointer;
}

.row-edit-button:hover {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

.api-import-grid--modal {
    margin: 8px 0 12px;
}


.csv-required-columns[data-csv-preview] {
    margin-top: 10px;
    border-style: dashed;
}

.portal-modal__error,
.portal-modal__success {
    margin: 10px 0 0;
    padding: 9px 11px;
    border-radius: 8px;
    font-size: 12px;
}

.portal-modal__error {
    border: 1px solid #efc9c0;
    background: #fff6f3;
    color: #a93b2f;
}

.portal-modal__success {
    border: 1px solid #c9e2d1;
    background: #f2faf5;
    color: #1f7b45;
}


/* SIMA lean actions + modal row editor */
.sima-table-line {
    grid-template-columns: minmax(0, 1fr) 48px;
}

.sima-download-mini {
    width: 38px;
    height: 30px;
    min-height: 30px;
    margin-right: 5px;
    border-radius: 8px;
    background: #f5faf7;
    color: #174b61;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}

.sima-download-mini:hover {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

.sima-action-grid--lean {
    grid-template-columns: repeat(auto-fit, minmax(92px, 108px));
}

.sima-action-grid--lean .sima-action-card:nth-child(1) { background: #f5fbf7; border-color: #d8eadf; }
.sima-action-grid--lean .sima-action-card:nth-child(2) { background: #fff9ed; border-color: #f0dfb8; }
.sima-action-grid--lean .sima-action-card:nth-child(3) { background: #f7f2ff; border-color: #ded0f3; }
.sima-action-grid--lean .sima-action-card:nth-child(4) { background: #f2fbfb; border-color: #cfe8e6; }

.sima-action-card.is-active {
    outline: 2px solid #174b61;
    outline-offset: 2px;
}

.sima-raw-table.is-editing {
    border-color: #b7d8c6;
    box-shadow: 0 0 0 3px rgba(18, 132, 71, .08);
}

.sima-raw-table.is-editing td[data-editable-cell="1"] {
    background: #f5fbf7;
    cursor: cell;
}

.sima-raw-table.is-editing td[data-editable-cell="1"]:hover {
    background: #e8f5ee;
    box-shadow: inset 0 0 0 1px #9ac8ad;
}

.sima-raw-table.is-editing td[data-locked-cell="1"] {
    color: #8a9894;
    background: #fafcf9;
}

.raw-table-scroll td.is-column-highlighted {
    background: #fff7dc !important;
    box-shadow: inset 0 0 0 1px #e2be55;
}

.table-structure-panel,
.table-structure-add {
    display: grid;
    gap: 14px;
    margin-top: 16px;
}

.table-structure-panel__head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #fbfdf9;
}

.table-structure-panel__head strong,
.table-structure-add header strong {
    display: block;
    color: #213330;
    font-size: 14px;
}

.table-structure-panel__head small,
.table-structure-panel__head span,
.table-structure-add p {
    color: #7c8d88;
    font-size: 12px;
}

.table-structure-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 9px;
    max-height: 300px;
    overflow: auto;
}

.table-structure-list article {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 9px;
    align-items: center;
    padding: 9px;
    border: 1px solid #dfe9e3;
    border-radius: 9px;
    background: #fff;
}

.table-structure-list i {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: #edf6ef;
    color: #128447;
    font-style: normal;
    font-size: 11px;
    font-weight: 800;
}

.table-structure-list strong,
.table-structure-list small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.table-structure-list strong {
    color: #213330;
    font-size: 12px;
}

.table-structure-list small {
    color: #7c8d88;
    font-size: 11px;
}

.table-structure-list button {
    border: 1px solid #d8e5dc;
    border-radius: 7px;
    background: #fbfdf9;
    color: #174b61;
    font-size: 11px;
    font-weight: 800;
    padding: 6px 9px;
    cursor: pointer;
}

.table-structure-add {
    padding: 14px;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #fbfdf9;
}

.table-structure-add header span {
    display: block;
    color: #7c8d88;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.portal-modal__dialog--wide {
    width: min(1040px, calc(100vw - 36px));
}

.sima-row-editor--modal {
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.sima-row-editor--modal header {
    padding: 18px 20px;
    background: #f7fbf8;
}

.sima-row-editor--modal .sima-row-editor__grid {
    max-height: min(58vh, 560px);
    overflow: auto;
    padding: 18px 20px;
}

.sima-row-editor--modal footer {
    padding: 14px 20px 18px;
    background: #fff;
}


/* Cleaner table download icon */
.sima-table-line {
    grid-template-columns: minmax(0, 1fr) 34px;
}

.sima-download-mini {
    width: 28px;
    height: 28px;
    min-height: 28px;
    margin: 0 4px 0 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #174b61;
    box-shadow: none;
}

.sima-download-mini svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    display: block;
}

.sima-download-mini:hover {
    background: #eaf5ef;
    color: #0f6f3c;
    border-color: transparent;
}


/* Push table download icon to the right */
.sima-table-line {
    grid-template-columns: minmax(0, 1fr) 42px;
}

.sima-download-mini {
    justify-self: end;
    margin-right: 0;
    transform: translateX(5px);
}

.sima-download-mini:hover {
    transform: translateX(5px) translateY(-1px);
}

.sima-action-grid--compact .sima-action-card small {
    display: block;
    min-height: 11px;
    margin-top: 3px;
    color: #71827d;
    font-size: 9px;
    font-weight: 500;
    line-height: 1;
}

.sima-action-download svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

.other-data-create {
    margin: 0 18px 18px;
    border: 1px solid #dce7e1;
    border-radius: 10px;
    background: #f8fbf9;
}

.other-data-create > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 14px;
    color: #174b61;
    font-size: 12px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}

.other-data-create > summary span {
    font-size: 20px;
}

.other-data-create > form {
    padding: 15px;
    border-top: 1px solid #dce7e1;
    background: #fff;
}

.other-data-create footer {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.other-data-create footer button,
.other-data-card footer a,
.other-data-card footer button {
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid #d9e3dd;
    border-radius: 8px;
    background: #fff;
    color: #174b61;
    font: inherit;
    font-size: 11px;
    text-decoration: none;
    cursor: pointer;
}

.other-data-create footer button {
    border-color: #174b61;
    background: #174b61;
    color: #fff;
}

.other-data-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 12px;
    padding: 0 18px 18px;
}

.other-data-card {
    padding: 15px;
    border: 1px solid #dfe8e2;
    border-radius: 10px;
    background: #fff;
}

.other-data-card > header,
.other-data-card > footer,
.other-data-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.other-data-card > header {
    justify-content: space-between;
    color: #71817c;
    font-size: 10px;
}

.other-data-card h3 {
    margin: 12px 0 7px;
    font-size: 15px;
    font-weight: 500;
}

.other-data-card p {
    min-height: 48px;
    margin: 0 0 12px;
    color: #71817c;
    font-size: 12px;
    line-height: 1.5;
}

.other-data-meta {
    padding: 9px 0;
    border-top: 1px solid #edf2ee;
    color: #84938e;
    font-size: 10px;
}

.other-data-card > footer {
    margin-top: 10px;
}

.other-data-card > footer form {
    margin-left: auto;
}

.other-data-card > footer button {
    color: #a33b3b;
}

.other-data-card {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: start;
    gap: 13px;
    min-height: 210px;
    padding: 16px;
    border-radius: 8px;
}

.other-data-file-icon {
    position: relative;
    display: grid;
    width: 56px;
    height: 68px;
    place-items: center;
    border: 1px solid #d7e2dc;
    border-radius: 7px;
    background: #f4f8f5;
    color: #315b4d;
}

.other-data-file-icon svg {
    width: 31px;
    height: 31px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.45;
}

.other-data-file-icon span {
    position: absolute;
    right: 5px;
    bottom: 5px;
    left: 5px;
    overflow: hidden;
    color: inherit;
    font-size: .55rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.other-data-card--archive .other-data-file-icon { border-color: #e3d5b8; background: #fff8e9; color: #9a6a14; }
.other-data-card--spreadsheet .other-data-file-icon { border-color: #cce2d4; background: #eff9f2; color: #24724b; }
.other-data-card--document .other-data-file-icon { border-color: #d5dfeb; background: #f3f7fb; color: #315f86; }
.other-data-card--data .other-data-file-icon { border-color: #d9d5eb; background: #f7f4fc; color: #655299; }
.other-data-card--image .other-data-file-icon { border-color: #e5d3dc; background: #fcf4f7; color: #94526e; }
.other-data-card--media .other-data-file-icon { border-color: #d6d8e8; background: #f5f5fb; color: #515d96; }
.other-data-card--link .other-data-file-icon { border-color: #cbe1e4; background: #f0f9fa; color: #24717b; }

.other-data-card__content {
    min-width: 0;
}

.other-data-card__content > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #71817c;
    font-size: .62rem;
}

.other-data-card__content h3 {
    margin-top: 10px;
}

.other-data-card__content p {
    min-height: 44px;
}

.other-data-card > footer {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    margin-top: auto;
    padding-top: 11px;
    border-top: 1px solid #e7ede9;
}

.other-data-card > footer form {
    margin-left: auto;
}

.other-data-card > footer a,
.other-data-card > footer button {
    min-height: 32px;
    padding: 0 10px;
    border-radius: 5px;
    color: #344f45;
}

.other-data-card > footer button.is-danger {
    color: #a33b3b;
}

.other-data-modal-box {
    width: min(720px, calc(100vw - 36px));
    max-height: calc(100vh - 44px);
    overflow-y: auto;
    border: 1px solid #dbe5df;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(27, 43, 38, .22);
}

.other-data-modal-box > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    border-bottom: 1px solid #e4ebe7;
    background: #fafcfb;
}

.other-data-modal-box > header span {
    display: block;
    margin-bottom: 4px;
    color: #74857f;
    font-size: .63rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.other-data-modal-box > header h3 {
    margin: 0;
    color: #213c33;
    font-size: 1.05rem;
}

.other-data-modal-box > header button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid #d8e2dc;
    border-radius: 50%;
    background: #fff;
    color: #52685f;
    cursor: pointer;
}

.other-data-modal-box > .document-form-grid {
    padding: 19px 20px;
}

.other-data-modal-box > footer {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 20px;
    border-top: 1px solid #e4ebe7;
}

.other-data-modal-box > footer a,
.other-data-modal-box > footer button {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 13px;
    border: 1px solid #d5e1d9;
    border-radius: 5px;
    background: #fff;
    color: #294a3f;
    font-size: .75rem;
    text-decoration: none;
    cursor: pointer;
}

.other-data-modal-box > footer button[type="submit"] {
    border-color: #245f4c;
    background: #245f4c;
    color: #fff;
}

.other-data-view-body {
    padding: 18px 20px;
}

.other-data-view-body dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 18px;
    border: 1px solid #e3eae6;
    background: #e3eae6;
}

.other-data-view-body dl > div {
    padding: 11px 12px;
    background: #fff;
}

.other-data-view-body dt,
.other-data-view-body dd {
    margin: 0;
    font-size: .74rem;
}

.other-data-view-body dt { margin-bottom: 4px; color: #7a8984; }
.other-data-view-body dd { color: #2d463d; font-weight: 600; }
.other-data-view-body article span { color: #75857f; font-size: .65rem; letter-spacing: .07em; text-transform: uppercase; }
.other-data-view-body article p { margin: 7px 0 0; color: #475d55; font-size: .78rem; line-height: 1.6; }

/* Publication-style report library */
.report-bulk-modal .portal-modal__dialog {
    display: flex;
    flex-direction: column;
    height: min(820px, calc(100vh - 40px));
    max-height: calc(100vh - 40px);
    overflow: hidden;
}

.report-bulk-modal .portal-modal__dialog > header {
    flex: 0 0 auto;
}

.report-bulk-modal form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.report-bulk-toolbar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid #dce8df;
    color: #5d716b;
    font-size: 13px;
}

.report-bulk-select-all {
    display: inline-flex !important;
    grid-template-columns: none !important;
    flex-direction: row !important;
    align-items: center;
    gap: 9px !important;
}

.report-bulk-list {
    flex: 1 1 auto;
    min-height: 120px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 8px 3px 8px 0;
}

.report-bulk-modal form > footer {
    flex: 0 0 auto;
    margin-top: 0;
    padding-top: 16px;
    border-top: 1px solid #dce8df;
    background: #fff;
}

.report-bulk-row {
    display: grid !important;
    grid-template-columns: 22px minmax(220px, 1fr) 100px 110px 70px;
    align-items: center;
    gap: 12px !important;
    min-height: 52px;
    padding: 8px 12px;
    border-bottom: 1px solid #e5ece7;
    color: #536761 !important;
    cursor: pointer;
}

.report-bulk-row:hover {
    background: #f4f8f5;
}

.report-bulk-row__title {
    color: #183b32;
}

.report-bulk-status {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: row !important;
    align-items: center;
    gap: 10px !important;
    margin-left: auto;
}

.report-bulk-status select {
    min-width: 150px;
}

.report-bulk-empty {
    padding: 28px 12px;
    text-align: center;
    color: #71837e;
}

@media (max-width: 760px) {
    .report-bulk-modal {
        padding: 10px;
    }
    .report-bulk-modal .portal-modal__dialog {
        height: calc(100vh - 20px);
        max-height: calc(100vh - 20px);
        padding: 18px;
    }
    .report-bulk-row {
        grid-template-columns: 22px 1fr auto;
    }
    .report-bulk-row > span:nth-of-type(2),
    .report-bulk-row > span:nth-of-type(4) {
        display: none;
    }
}

.content-hub--reports .reports-manager__grid {
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 20px;
}

.content-hub--reports .report-dossier-card,
.content-hub--reports .reports-manager__grid .report-dossier-card {
    display: flex;
    min-width: 0;
    min-height: 455px;
    padding: 0;
    flex-direction: column;
    gap: 0;
    border: 1px solid #dbe5df;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(24, 54, 44, .075);
}

.content-hub--reports .report-dossier-card::before {
    display: none;
}

.content-hub--reports .report-dossier-card__cover {
    position: relative;
    width: 100%;
    height: 190px;
    flex: 0 0 190px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-bottom: 1px solid #e0e8e3;
    border-radius: 9px 9px 0 0;
    background: #eef3f0;
    box-shadow: none;
}

.content-hub--reports .report-dossier-card__cover > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.content-hub--reports .report-dossier-card__cover--fallback {
    display: grid;
    place-items: center;
    background:
        linear-gradient(135deg, rgba(255, 255, 255, .88), rgba(245, 249, 246, .96)),
        repeating-linear-gradient(135deg, #edf3ef 0 12px, #f7faf8 12px 24px);
}

.content-hub--reports .report-dossier-card__cover--fallback > img {
    width: 88px;
    height: 116px;
    object-fit: contain;
    filter: drop-shadow(0 8px 12px rgba(41, 54, 47, .12));
}

.report-dossier-card__cover-meta {
    position: absolute;
    right: 10px;
    bottom: 10px;
    left: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.report-dossier-card__cover-meta time {
    padding: 5px 8px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    background: rgba(25, 48, 40, .78);
    color: #fff;
    font-size: 10px;
    backdrop-filter: blur(6px);
}

.content-hub--reports .report-dossier-card__content {
    display: flex;
    min-height: 0;
    padding: 17px 18px 12px;
    flex: 1 1 auto;
    flex-direction: column;
}

.content-hub--reports .report-dossier-card__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #75847f;
    font-size: 10px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.content-hub--reports .report-dossier-card__meta span {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.content-hub--reports .report-dossier-card__meta span + span::before {
    margin-right: 6px;
    color: #b1beb8;
    content: "•";
}

.content-hub--reports .report-dossier-card h3 {
    margin: 10px 0 8px;
    color: #20352e;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
}

.content-hub--reports .report-dossier-card p {
    margin: 0 0 12px;
    color: #687a74;
    font-size: 12px;
    line-height: 1.55;
}

.content-hub--reports .report-dossier-card__keywords {
    display: block;
    margin-top: auto;
    padding-top: 8px;
    color: var(--theme-primary, #247253);
    font-size: 10px;
    line-height: 1.45;
}

.content-hub--reports .report-dossier-card__actions {
    width: auto;
    margin: 0 18px 16px;
    padding-top: 12px;
    flex: 0 0 auto;
    border-top: 1px solid #edf2ef;
}

@media (max-width: 720px) {
    .content-hub--reports .reports-manager__grid {
        grid-template-columns: 1fr;
    }

    .content-hub--reports .report-dossier-card,
    .content-hub--reports .reports-manager__grid .report-dossier-card {
        min-height: 420px;
    }
}

/* Shared filters for articles, documents and reports */
.content-hub .content-toolbar.institution-content-filter {
    align-items: end;
    gap: 14px;
    padding: 15px 24px 17px;
    border: 0;
    border-bottom: 1px solid #e2e9e4;
    border-radius: 0;
    background: #fff;
}

.content-hub .content-toolbar.institution-content-filter label {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-width: 0;
    gap: 6px;
    color: #70817b;
    font-size: .66rem;
    font-weight: 500;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.content-hub .content-toolbar.institution-content-filter input,
.content-hub .content-toolbar.institution-content-filter select {
    width: 100%;
    height: 42px;
    min-width: 0;
    padding-inline: 12px;
    border: 1px solid #d2dfd7;
    border-radius: 4px;
    background: #fff;
    color: #263e36;
    box-shadow: none;
    font-size: .84rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.content-hub .content-toolbar.institution-content-filter input:hover,
.content-hub .content-toolbar.institution-content-filter select:hover { border-color: #afc4b8; }

.content-hub .content-toolbar.institution-content-filter input:focus,
.content-hub .content-toolbar.institution-content-filter select:focus {
    outline: none;
    border-color: var(--theme-primary, #2d7b5d);
    box-shadow: 0 0 0 2px rgba(45, 123, 93, .08);
}

.content-hub .content-toolbar.institution-content-filter .content-toolbar__search input { font-size: .9rem; }

.content-hub .content-toolbar.institution-content-filter .content-toolbar__count {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    align-self: end;
    padding-left: 15px;
    border-left: 1px solid #e1e9e4;
    color: #60736d;
    font-size: .78rem;
    white-space: nowrap;
}

/* Centre réellement le pictogramme dans sa zone, sans déplacer le bouton. */
.sima-table-line .sima-download-mini,
.sima-table-line .sima-download-mini:hover {
    display: grid;
    place-items: center;
    justify-self: center;
    width: 34px;
    height: 34px;
    min-height: 34px;
    margin: 0;
    padding: 0;
    transform: none;
}

.sima-table-line .sima-download-mini svg {
    display: block;
    width: 17px;
    height: 17px;
    margin: 0;
}

.sima-api-trace {
    display: grid;
    gap: 8px;
    margin: 12px 0 14px;
    padding: 12px;
    border: 1px solid #d8e7df;
    border-radius: 10px;
    background: #fbfdf9;
}

.sima-api-trace header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
}

.sima-api-trace header span,
.sima-api-trace label {
    color: #719985;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.sima-api-trace header strong {
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef6f2;
    color: #174b61;
    font-size: 11px;
}

.sima-api-trace code {
    display: block;
    padding: 9px 10px;
    border: 1px solid #e2ece6;
    border-radius: 8px;
    background: #fff;
    color: #184a60;
    font-size: 11.5px;
    white-space: normal;
    word-break: break-word;
}

.sima-api-trace p {
    margin: 0;
    color: #7a8985;
    font-size: 12px;
}

.sima-api-run-form {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 0 14px;
}

.sima-api-run-form button {
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid #174b61;
    border-radius: 999px;
    background: #174b61;
    color: #fff;
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.sima-api-run-form span {
    color: #174b61;
    font-size: 12px;
    font-weight: 700;
}


/* Maps / layers module */
.maps-manager {
    overflow: hidden;
}

.maps-head {
    align-items: center;
    margin: 0 18px 14px;
    padding: 14px 18px;
    border: 1px solid #dfe9e3;
    border-radius: 12px;
    background:
        radial-gradient(circle at top left, rgba(18, 132, 71, .10), transparent 35%),
        linear-gradient(180deg, #ffffff 0%, #fbfdf9 100%);
}

.form-association-form {
    display: grid;
    gap: 18px;
    margin-top: 20px;
}

.form-association-current {
    display: grid;
    gap: 4px;
    padding: 13px 15px;
    border: 1px solid #d9e7de;
    background: #f5faf6;
}

.form-association-current span,
.form-association-empty {
    color: #6f837c;
    font-size: 12px;
}

.form-association-current strong {
    color: #173f4f;
    font-size: 14px;
    font-weight: 500;
}

.maps-head div {
    display: grid;
    gap: 4px;
}

.maps-head span {
    color: #78908a;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.8px;
    text-transform: uppercase;
}

.maps-head h2 {
    margin: 0;
    color: #213330;
    font-size: 22px;
    line-height: 1.1;
}

.maps-head p {
    margin: 0;
    color: #6d807a;
    font-size: 12.5px;
}

.maps-console {
    display: grid;
    grid-template-columns: 238px minmax(0, 1fr);
    gap: 16px;
    padding: 0 18px 18px;
}

.map-layer-list {
    display: grid;
    align-content: start;
    gap: 3px;
    padding: 8px;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #fbfdf9;
}

.map-add-layer-card {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    min-height: 48px;
    margin-bottom: 8px;
    padding: 8px;
    border: 1px dashed #cfe3d8;
    border-radius: 10px;
    background: #f7fbf8;
    color: #174b61;
    text-align: left;
    cursor: pointer;
}

.map-add-layer-card:hover {
    border-color: #128447;
    background: #eef8f2;
}

.map-add-layer-card span {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    grid-row: 1 / 3;
    border-radius: 9px;
    background: #e4f2ea;
    color: #128447;
    font-size: 22px;
    font-weight: 800;
}

.map-add-layer-card strong,
.map-add-layer-card small {
    display: block;
    min-width: 0;
}

.map-add-layer-card strong {
    font-size: 12px;
}

.map-add-layer-card small {
    color: #82918d;
    font-size: 10.5px;
}

.sia-nav-icon {
    display: inline-grid !important;
    place-items: center;
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px;
    border-radius: 7px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    text-align: center;
}

.sia-nav-icon svg {
    display: block;
    width: 17px !important;
    height: 17px !important;
    fill: currentColor !important;
    stroke: none;
}

.sia-nav .sia-nav-label {
    flex: 1 1 auto;
    width: auto;
    min-width: max-content;
    text-align: left;
    white-space: nowrap;
}

.sia-nav .sia-nav-count {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: auto;
    min-width: 22px;
    height: 20px;
    margin-left: auto;
    padding: 0 6px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 10px;
    background: rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .88);
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
}

.sia-nav a.active .sia-nav-count {
    background: rgba(255, 255, 255, .2);
    color: #fff;
}

.map-layer-empty {
    display: grid;
    gap: 4px;
    padding: 16px 10px;
    border-top: 1px solid #e4ebe6;
    color: #60736d;
}

.map-layer-empty strong {
    font-size: 12px;
    font-weight: 500;
}

.map-layer-empty small {
    color: #81908c;
    font-size: 10.5px;
    line-height: 1.45;
}

.sia-nav a[data-nav-table] .sia-nav-icon {
    background: #128447;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .22), 0 6px 14px rgba(18, 132, 71, .28);
}

.sia-nav a[data-nav-table] .sia-nav-icon svg {
    width: 18px !important;
    height: 18px !important;
}

.map-layer-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 24px 24px;
    gap: 6px;
    align-items: center;
    min-height: 42px;
    padding: 5px 6px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: #263733;
}

.map-layer-row:hover,
.map-layer-row.active {
    border-color: #cfe3d8;
    background: #fff;
    box-shadow: 0 6px 16px rgba(31, 48, 43, .04);
}

.map-layer-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
    align-items: center;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.map-layer-icon {
    display: none;
}

.map-layer-title {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: #132f28;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-layer-main small {
    display: block;
    min-width: 0;
    overflow: hidden;
    color: #82918d;
    font-size: 11px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-layer-check {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
}

.map-layer-list input[type="checkbox"] {
    width: 13px;
    height: 13px;
    accent-color: #128447;
    cursor: pointer;
}

.map-layer-menu-button {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border: 1px solid #d8e5dc;
    border-radius: 8px;
    background: #fbfdf9;
    color: #56706a;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
}

.map-layer-menu-button:hover {
    border-color: #128447;
    color: #128447;
}

.map-layer-context-menu {
    position: fixed;
    z-index: 1300;
    display: grid;
    gap: 4px;
    width: 210px;
    padding: 7px;
    border: 1px solid #d8e5dc;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(31, 48, 43, .18);
}

.map-layer-context-menu[hidden] {
    display: none;
}

.map-layer-context-menu button {
    display: flex;
    gap: 9px;
    align-items: center;
    width: 100%;
    padding: 9px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #213330;
    font-size: 12px;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.map-layer-context-menu button:hover {
    background: #f2f8f4;
    color: #128447;
}

.map-layer-context-menu span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: #e8f5ee;
    color: #128447;
}

.map-attribute-box {
    width: min(1120px, calc(100vw - 48px));
    height: min(780px, calc(100vh - 56px));
    max-height: calc(100vh - 54px);
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid rgba(223, 233, 227, .96);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #f9fcfa 100%);
    box-shadow: 0 28px 90px rgba(18, 42, 36, .28);
}

body.modal-scroll-locked {
    overflow: hidden;
}

.map-attribute-box header {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: start;
    padding: 22px 24px 18px;
    border-bottom: 1px solid #e7eee9;
    background:
        radial-gradient(circle at top left, rgba(18, 132, 71, .12), transparent 32%),
        linear-gradient(180deg, #fbfdf9 0%, #ffffff 100%);
}

.map-attribute-box header span {
    display: block;
    margin-bottom: 4px;
    color: #7c8d88;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.map-attribute-box h3 {
    margin: 0;
    color: #213330;
    font-size: 25px;
    line-height: 1.1;
}

.map-attribute-box header p {
    margin: 7px 0 0;
    color: #6b7e78;
    font-size: 13px;
}

.map-attribute-box header button {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #dfe9e3;
    border-radius: 50%;
    background: #fff;
    color: #5e706b;
    cursor: pointer;
    font-size: 18px;
    box-shadow: 0 8px 20px rgba(31, 48, 43, .06);
}

.map-attribute-summary {
    margin: 0 24px;
    padding: 10px 0 12px;
    border-bottom: 1px solid #edf3ef;
    color: #60736e;
    font-size: 12px;
}

.map-attribute-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto auto;
    gap: 10px;
    align-items: end;
    padding: 16px 24px;
    border-bottom: 1px solid #edf3ef;
    background: #fff;
}

.map-attribute-toolbar label {
    display: grid;
    gap: 5px;
}

.map-attribute-toolbar label span {
    color: #7c8d88;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.map-attribute-toolbar input {
    height: 44px;
    border: 1px solid #d8e5dc;
    border-radius: 12px;
    padding: 0 14px;
    color: #213330;
    background: #fbfdf9;
    font-size: 14px;
}

.map-attribute-toolbar button {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    height: 44px;
    border: 1px solid #d8e5dc;
    border-radius: 12px;
    background: #fbfdf9;
    color: #174b61;
    font-size: 12px;
    font-weight: 800;
    padding: 0 16px;
    cursor: pointer;
    white-space: nowrap;
}

.map-attribute-toolbar button:hover,
.map-attribute-toolbar button.is-active {
    border-color: #128447;
    background: #eaf6ef;
    color: #128447;
}

.map-attribute-scroll {
    overflow: auto;
    max-width: 100%;
    min-height: 0;
    margin: 14px 24px 24px;
    border: 1px solid #edf3ef;
    border-radius: 14px;
    background: #fff;
    overscroll-behavior: contain;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85);
}

.map-attribute-scroll table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.map-attribute-scroll th,
.map-attribute-scroll td {
    max-width: 220px;
    padding: 11px 12px;
    border-bottom: 1px solid #edf3ef;
    color: #2d403b;
    text-align: left;
    white-space: nowrap;
}

.map-attribute-scroll th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f0f7f3;
    color: #174b61;
    font-weight: 800;
}

.map-attribute-scroll tbody tr:nth-child(even) td {
    background: #fcfefd;
}

.map-attribute-scroll tbody tr:hover td {
    background: #f2faf5;
}

.map-attribute-scroll th.row-index,
.map-attribute-scroll td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    min-width: 46px;
    background: #f5faf7;
    color: #174b61;
    font-weight: 800;
}

.map-attribute-scroll th button {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    width: 100%;
    min-width: 120px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #174b61;
    font: inherit;
    font-weight: 800;
    text-align: left;
    cursor: pointer;
}

.map-attribute-scroll th button span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.map-attribute-scroll th button i {
    margin-left: auto;
    color: #7c8d88;
    font-style: normal;
    font-size: 10px;
}

.map-attribute-scroll th button:hover i {
    color: #128447;
}

.map-attribute-scroll table.is-editing td[contenteditable="true"] {
    background: #f5fbf7;
    cursor: text;
}

.map-attribute-scroll table.is-editing td[contenteditable="true"]:focus {
    outline: 2px solid #128447;
    outline-offset: -2px;
    background: #fff;
}

@media (max-width: 820px) {
    .map-attribute-toolbar {
        grid-template-columns: 1fr;
    }
}

.haiti-map-panel {
    overflow: hidden;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(46, 68, 61, .05);
}

.map-status-bar {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border-bottom: 1px solid #e7eee9;
    background: #fbfdf9;
}

.map-status-bar span {
    display: block;
    color: #7c8d88;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.map-status-bar strong {
    color: #213330;
    font-size: 15px;
}

.map-status-bar small {
    padding: 5px 9px;
    border-radius: 999px;
    background: #eef6f2;
    color: #174b61;
    font-size: 11px;
    font-weight: 700;
}

.haiti-map-wrap {
    position: relative;
}

.haiti-map-canvas {
    height: 560px;
    min-height: 420px;
    background: #eef4f1;
}

.map-legend {
    position: absolute;
    left: 16px;
    bottom: 16px;
    z-index: 460;
    width: min(230px, calc(100% - 32px));
    padding: 14px 16px;
    border: 1px solid rgba(223, 233, 227, .95);
    border-radius: 9px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 12px 30px rgba(34, 52, 47, .14);
    backdrop-filter: blur(6px);
}

.map-legend span {
    display: block;
    margin-bottom: 7px;
    color: #8a9894;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.map-legend h3 {
    margin: 0 0 9px;
    color: #213330;
    font-size: 14px;
    font-weight: 800;
}

.map-legend ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.map-legend li {
    display: flex;
    gap: 9px;
    align-items: center;
    color: #40524d;
    font-size: 12px;
    line-height: 1.25;
}

.map-legend i {
    width: 18px;
    height: 13px;
    flex: 0 0 auto;
    border: 2px solid var(--legend-border);
    border-radius: 3px;
    background: var(--legend-color);
    opacity: .9;
}

.map-legend i.is-line {
    height: 0;
    border-width: 0;
    border-top: 3px solid var(--legend-border);
    border-radius: 0;
    background: transparent;
}

.map-legend i.is-point {
    width: 13px;
    height: 13px;
    border-radius: 50%;
}

.map-legend-marker {
    display: grid;
    flex: 0 0 auto;
    width: 19px;
    height: 19px;
    place-items: center;
    border: var(--legend-marker-border, 1px) solid #fff;
    border-radius: 50% 50% 50% 5px;
    background: var(--legend-marker-color, #176b52);
    box-shadow: 0 1px 3px rgba(18, 46, 37, .24);
    color: #fff;
    transform: rotate(-45deg);
}

.map-legend-marker svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    transform: rotate(45deg);
}

.map-legend-marker--circle {
    border-radius: 50%;
    transform: none;
}

.map-legend-marker--circle svg {
    display: none;
}

.map-legend-marker--custom {
    overflow: hidden;
    border-radius: 4px;
    background: transparent;
    transform: none;
}

.map-legend-marker--custom img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.haiti-map-panel .leaflet-tooltip.map-feature-label {
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 2px 8px rgba(31, 48, 43, .12);
    color: #213330;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .01em;
    padding: 2px 7px;
    pointer-events: none;
    text-shadow: 0 1px 0 rgba(255, 255, 255, .9);
}

.haiti-map-panel .leaflet-tooltip.map-feature-label::before {
    display: none;
}

.haiti-map-panel .leaflet-tooltip.map-feature-label--line,
.haiti-map-panel .leaflet-tooltip.map-feature-label--river {
    background: rgba(255, 255, 255, .7);
    color: #245b83;
    font-size: 10px;
}

.haiti-map-panel .leaflet-tooltip.map-feature-label--point {
    background: rgba(255, 255, 255, .9);
    color: #174b61;
}

.haiti-map-panel .leaflet-tooltip.map-label-size-8 { font-size: 8px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-9 { font-size: 9px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-10 { font-size: 10px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-11 { font-size: 11px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-12 { font-size: 12px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-13 { font-size: 13px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-14 { font-size: 14px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-15 { font-size: 15px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-16 { font-size: 16px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-17 { font-size: 17px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-18 { font-size: 18px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-19 { font-size: 19px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-20 { font-size: 20px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-21 { font-size: 21px; }
.haiti-map-panel .leaflet-tooltip.map-label-size-22 { font-size: 22px; }

.map-options-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(24, 37, 33, .26);
    backdrop-filter: blur(3px);
}

.map-options-modal[hidden] {
    display: none;
}

.map-options-box {
    width: min(560px, 100%);
    overflow: hidden;
    border: 1px solid #dfe9e3;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(27, 43, 38, .22);
}

.map-options-box--wide {
    width: min(820px, calc(100vw - 36px));
    max-height: calc(100vh - 44px);
    overflow-y: auto;
}

.map-options-box--layer-style {
    width: min(900px, calc(100vw - 36px));
    max-height: calc(100vh - 44px);
    overflow-y: auto;
}

.map-options-box header {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: start;
    padding: 18px 20px;
    border-bottom: 1px solid #e7eee9;
    background: #fbfdf9;
}

.map-options-box header span {
    display: block;
    margin-bottom: 5px;
    color: #7c8d88;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.map-options-box h3 {
    margin: 0;
    color: #213330;
    font-size: 20px;
}

.map-layer-help {
    display: grid;
    gap: 8px;
    margin: 0 20px 14px;
}

.map-layer-help article {
    border: 1px solid #dbe9e0;
    border-radius: 12px;
    background: #f7fbf7;
    padding: 10px 12px;
}

.map-layer-help strong {
    display: block;
    color: #184b3e;
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.map-layer-help p {
    margin: 4px 0 0;
    color: #5f726c;
    font-size: 12px;
    line-height: 1.45;
}

.map-options-box header button {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid #dfe9e3;
    border-radius: 50%;
    background: #fff;
    color: #5e706b;
    cursor: pointer;
}

.map-options-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 18px 20px;
}

.map-options-grid label {
    display: grid;
    gap: 7px;
    color: #40524d;
    font-size: 12px;
    font-weight: 700;
}

.map-options-grid input,
.map-options-grid select {
    min-height: 36px;
    border: 1px solid #d8e5dc;
    border-radius: 8px;
    background: #fff;
    color: #213330;
    padding: 0 9px;
    font-size: 12px;
}

.map-options-grid input[type="file"] {
    padding: 7px 9px;
    height: auto;
}

.map-option-check {
    align-content: end;
}

.map-options-grid input[type="checkbox"] {
    width: 18px;
    min-height: 18px;
    accent-color: #128447;
    padding: 0;
}

.map-options-grid input[type="color"] {
    padding: 4px;
}

.map-options-grid input[type="range"] {
    padding: 0;
}

.map-options-description {
    display: grid;
    gap: 7px;
    margin: 0 20px 16px;
    color: #40524d;
    font-size: 12px;
    font-weight: 700;
}

.map-options-description textarea {
    resize: vertical;
    min-height: 78px;
    border: 1px solid #d8e5dc;
    border-radius: 8px;
    background: #fff;
    color: #213330;
    padding: 10px;
    font: inherit;
    font-weight: 500;
}

.map-options-box footer {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 14px 20px;
    border-top: 1px solid #e7eee9;
    background: #fbfdf9;
}

.map-options-box footer small {
    color: #7c8d88;
    font-size: 11px;
}

.map-options-box footer button {
    border: 0;
    border-radius: 8px;
    background: #174b61;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    padding: 10px 16px;
    cursor: pointer;
}

.haiti-map-panel footer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 14px;
    border-top: 1px solid #e7eee9;
    color: #798984;
    font-size: 11px;
}

.haiti-map-panel code {
    color: #174b61;
    font-size: 11px;
}

.haiti-map-panel footer a {
    color: #174b61;
    font-weight: 700;
    text-decoration: none;
}

.haiti-map-panel footer a:hover {
    text-decoration: underline;
}

@media (max-width: 980px) {
    .maps-console {
        grid-template-columns: 1fr;
    }
    .haiti-map-canvas {
        height: 460px;
    }
}

/* Standalone authentication pages */
.auth-standalone-body {
    min-height: 100vh;
    margin: 0;
    background: radial-gradient(circle at top left, rgba(18, 132, 71, .12), transparent 32%), radial-gradient(circle at bottom right, rgba(23, 75, 97, .10), transparent 34%), #f4f8f4;
    color: #23352f;
    font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
}

.auth-standalone-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 28px;
}

.auth-standalone-card {
    width: min(480px, 100%);
    border: 1px solid #dfe9e3;
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 24px 70px rgba(27, 43, 38, .14);
    overflow: hidden;
}

.auth-standalone-card--wide {
    width: min(620px, 100%);
}

.auth-standalone-card__top {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 22px 24px 16px;
    border-bottom: 1px solid #edf3ee;
    background: linear-gradient(180deg, #fbfdf9 0%, #fff 100%);
}

.auth-standalone-card__top img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.auth-standalone-kicker {
    display: block;
    margin-bottom: 4px;
    color: #78908a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.auth-standalone-card h1 {
    margin: 0;
    color: #1f332d;
    font-size: 24px;
    line-height: 1.15;
}

.auth-standalone-content {
    display: grid;
    gap: 16px;
    padding: 22px 24px 24px;
}

.auth-standalone-content p {
    margin: 0;
    color: #637a72;
    font-size: 14px;
    line-height: 1.55;
}

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

.auth-standalone-form label {
    color: #3c5049;
    font-size: 12px;
    font-weight: 800;
}

.auth-standalone-form input {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid #d8e5dc;
    border-radius: 10px;
    background: #fbfdfb;
    color: #213330;
    padding: 0 12px;
    font: inherit;
}

.auth-standalone-form input:focus {
    outline: 2px solid rgba(18, 132, 71, .16);
    border-color: #128447;
    background: #fff;
}

.auth-standalone-button {
    min-height: 44px;
    border: 0;
    border-radius: 10px;
    background: #128447;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 10px 22px rgba(18, 132, 71, .18);
}

.auth-standalone-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    justify-content: space-between;
    align-items: center;
    padding-top: 4px;
}

.auth-standalone-links a {
    color: #0f6b3d;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}

.auth-standalone-error {
    border: 1px solid #f1c8c8;
    border-radius: 10px;
    background: #fff6f6;
    color: #9b2b2b;
    padding: 10px 12px;
    font-size: 13px;
}

.auth-standalone-list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.auth-standalone-list li {
    position: relative;
    padding-left: 18px;
    color: #526861;
    font-size: 13px;
    line-height: 1.45;
}

.auth-standalone-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #128447;
}

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

.auth-standalone-form label span {
    display: block;
    margin-bottom: 6px;
}

.auth-standalone-form select,
.auth-standalone-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d8e5dc;
    border-radius: 10px;
    background: #fbfdfb;
    color: #213330;
    padding: 10px 12px;
    font: inherit;
}

.auth-standalone-form select {
    min-height: 44px;
}

.auth-standalone-form textarea {
    resize: vertical;
}

.auth-standalone-form select:focus,
.auth-standalone-form textarea:focus {
    outline: 2px solid rgba(18, 132, 71, .16);
    border-color: #128447;
    background: #fff;
}

.auth-standalone-field-wide {
    grid-column: 1 / -1;
}

@media (max-width: 720px) {
    .auth-standalone-form--grid {
        grid-template-columns: 1fr;
    }
}

.registration-scope-picker {
    display: grid;
    gap: 10px;
    border: 1px solid #dfe9e3;
    border-radius: 14px;
    background: #fbfdf9;
    padding: 14px;
}

.registration-scope-picker > header {
    display: grid;
    gap: 3px;
}

.registration-scope-picker > header span {
    color: #1f332d;
    font-size: 13px;
    font-weight: 900;
}

.registration-scope-picker > header small {
    color: #6b7e78;
    font-size: 12px;
}

.registration-scope-item {
    display: grid;
    gap: 8px;
    border: 1px solid #e0ebe4;
    border-radius: 12px;
    background: #fff;
    padding: 10px;
}

.registration-check {
    display: grid !important;
    grid-template-columns: 18px minmax(70px, auto) minmax(0, 1fr);
    gap: 8px;
    align-items: center;
    color: #314740;
    font-size: 12px;
    font-weight: 700;
}

.registration-check input {
    width: 16px !important;
    min-height: 16px !important;
    accent-color: #128447;
}

.registration-check strong {
    color: #0f6b3d;
    font-size: 12px;
    font-weight: 900;
}

.registration-check span {
    color: #63766f;
    font-weight: 600;
}

.registration-services {
    display: grid;
    gap: 7px;
    margin-left: 26px;
    padding: 9px 0 0 10px;
    border-left: 2px solid #e1eee7;
}

.registration-services[hidden] {
    display: none;
}

.registration-check--all {
    border-radius: 10px;
    background: #eef8f2;
    padding: 8px;
}

.auth-standalone-card--request {
    width: min(1040px, calc(100vw - 36px));
    max-height: calc(100vh - 34px);
    overflow: hidden;
}

.auth-standalone-card--request .auth-standalone-card__top {
    padding: 16px 22px 12px;
}

.auth-standalone-card--request .auth-standalone-card__top img {
    width: 42px;
    height: 42px;
}

.auth-standalone-card--request .auth-standalone-card h1 {
    font-size: 21px;
}

.auth-standalone-card--request .auth-standalone-content {
    max-height: calc(100vh - 132px);
    overflow-y: auto;
    gap: 12px;
    padding: 16px 22px 20px;
}

.auth-standalone-intro {
    font-size: 13px !important;
}

.registration-form-section {
    display: grid;
    gap: 11px;
    border: 1px solid #dfe9e3;
    border-radius: 14px;
    background: #fff;
    padding: 12px;
}

.registration-form-section > header,
.registration-scope-picker > header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: end;
}

.registration-form-section > header span,
.registration-scope-picker > header span {
    color: #1f332d;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.registration-form-section > header small,
.registration-scope-picker > header small {
    color: #73877f;
    font-size: 11px;
}

.registration-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 12px;
}

.registration-mini-grid label,
.auth-standalone-card--request .auth-standalone-form label {
    font-size: 11px;
}

.auth-standalone-card--request .auth-standalone-form input,
.auth-standalone-card--request .auth-standalone-form select {
    min-height: 38px;
    border-radius: 9px;
    font-size: 13px;
}

.auth-standalone-card--request .auth-standalone-form textarea {
    min-height: 70px;
    border-radius: 9px;
    font-size: 13px;
}

.auth-standalone-card--request .registration-scope-picker {
    max-height: 310px;
    overflow-y: auto;
    padding: 12px;
    background: #fbfdf9;
}

.auth-standalone-card--request .registration-scope-item {
    gap: 6px;
    padding: 7px 9px;
    border-radius: 10px;
}

.registration-institution-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.registration-institution-row button {
    min-height: 28px;
    border: 1px solid #d8e5dc;
    border-radius: 999px;
    background: #f7fbf8;
    color: #0f6b3d;
    padding: 0 10px;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
}

.map-options-box footer button:disabled {
    cursor: wait;
    opacity: .6;
}

.map-marker-settings,
.map-popup-settings {
    margin: 0 20px 18px;
    padding: 16px;
    border: 1px solid #dce7e0;
    border-radius: 9px;
    background: #fafcfb;
}

.map-marker-settings[hidden] {
    display: none;
}

.map-option-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 13px;
}

.map-option-section-head span,
.map-option-section-head strong {
    display: block;
}

.map-option-section-head span {
    margin-bottom: 3px;
    color: #73867f;
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.map-option-section-head strong {
    color: #233d34;
    font-size: .9rem;
    font-weight: 650;
}

.map-option-section-head small {
    max-width: 430px;
    color: #71817b;
    font-size: .72rem;
    line-height: 1.4;
    text-align: right;
}

.map-marker-library {
    display: grid;
    grid-template-columns: repeat(10, 42px);
    gap: 6px;
}

.map-marker-library button {
    display: grid;
    width: 42px;
    min-height: 42px;
    place-items: center;
    padding: 5px;
    border: 1px solid #d9e4dd;
    border-radius: 7px;
    background: #fff;
    color: #35564b;
    cursor: pointer;
}

.map-marker-library button:hover,
.map-marker-library button.is-active {
    border-color: var(--theme-primary, #247253);
    background: var(--theme-soft, #edf6f1);
    color: var(--theme-deep, #174b3a);
}

.map-marker-library button.is-active {
    box-shadow: inset 0 0 0 1px var(--theme-primary, #247253);
}

.map-marker-library button span {
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
}

.map-marker-library svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.map-marker-controls {
    display: grid;
    grid-template-columns: 1.1fr .55fr .85fr 1.7fr 1fr;
    gap: 12px;
    margin-top: 13px;
}

.map-marker-controls label,
.map-popup-title-field {
    display: grid;
    align-content: start;
    gap: 6px;
    color: #40524d;
    font-size: .72rem;
}

.map-marker-controls input,
.map-popup-title-field select {
    min-height: 36px;
    padding: 6px 9px;
    border: 1px solid #d8e5dc;
    border-radius: 6px;
    background: #fff;
}

.map-marker-controls input[type="range"] {
    padding: 0;
}

.map-marker-controls input[type="color"] {
    padding: 4px;
}

.map-marker-controls output,
.map-marker-controls small {
    color: #73847e;
    font-size: .65rem;
}

.map-marker-controls .map-option-check {
    display: flex;
    align-items: center;
    gap: 8px;
}

.map-marker-controls .map-option-check input {
    width: 17px;
    min-height: 17px;
}

.map-popup-title-field {
    max-width: 360px;
    margin-bottom: 11px;
}

.map-popup-field-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 9px;
}

.map-popup-field-actions button {
    min-height: 30px;
    padding: 0 10px;
    border: 1px solid #d7e2db;
    border-radius: 5px;
    background: #fff;
    color: #38564c;
    cursor: pointer;
    font-size: .68rem;
}

.map-popup-field-actions span {
    margin-left: auto;
    color: #70817b;
    font-size: .68rem;
}

.map-popup-field-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    max-height: 190px;
    overflow-y: auto;
    padding: 2px 5px 2px 2px;
}

.map-popup-field-list label {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: center;
    gap: 0 7px;
    min-height: 44px;
    padding: 7px 8px;
    border: 1px solid #e1e9e4;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;
}

.map-popup-field-list input {
    grid-row: 1 / 3;
    width: 16px;
    height: 16px;
    accent-color: var(--theme-primary, #247253);
}

.map-popup-field-list span {
    overflow: hidden;
    color: #344e45;
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.map-popup-field-list small {
    overflow: hidden;
    color: #899791;
    font-size: .59rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sia-map-marker-shell {
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
}

.sia-map-marker {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    border: var(--marker-border, 2px) solid #fff;
    border-radius: 50% 50% 50% 9px;
    background: var(--marker-color, #176b52);
    box-shadow: 0 3px 9px rgba(18, 46, 37, .28);
    color: #fff;
    transform: rotate(-45deg);
}

.sia-map-marker svg {
    width: 62%;
    height: 62%;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    transform: rotate(45deg);
}

.sia-map-marker--circle {
    border-radius: 50%;
    transform: none;
}

.sia-map-marker--circle svg {
    display: none;
}

.sia-map-custom-marker {
    object-fit: contain;
    filter: drop-shadow(0 3px 5px rgba(18, 46, 37, .28));
}

.map-reset-national-view {
    position: absolute;
    top: 76px;
    left: 10px;
    z-index: 500;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    padding: 0;
    border: 1px solid #b8c8c0;
    border-radius: 4px;
    background: #fff;
    color: #244a3d;
    box-shadow: 0 1px 5px rgba(25, 52, 43, .18);
    cursor: pointer;
}

.map-reset-national-view:hover {
    background: #f2f7f4;
}

.map-reset-national-view svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.map-feature-detail-box {
    width: min(620px, calc(100vw - 36px));
    max-height: calc(100vh - 48px);
    overflow: hidden;
    border: 1px solid #dbe5df;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(27, 43, 38, .22);
}

.map-feature-detail-box > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 17px 19px;
    border-bottom: 1px solid #e3ebe6;
    background: #fafcfb;
}

.map-feature-detail-box > header span {
    display: block;
    margin-bottom: 4px;
    color: #75857f;
    font-size: .62rem;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.map-feature-detail-box h3 {
    margin: 0;
    color: #203b32;
    font-size: 1.05rem;
}

.map-feature-detail-box > header button {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid #d9e3dd;
    border-radius: 50%;
    background: #fff;
    color: #536b62;
    cursor: pointer;
}

.map-feature-detail-body {
    max-height: calc(100vh - 145px);
    overflow-y: auto;
    padding: 14px 19px 19px;
}

.map-feature-detail-body dl {
    display: grid;
    gap: 0;
    margin: 0;
}

.map-feature-gallery {
    margin-bottom: 16px;
    padding-bottom: 15px;
    border-bottom: 1px solid #e4ebe7;
}

.map-feature-gallery > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 9px;
}

.map-feature-gallery > div:first-child span {
    color: #70817a;
    font-size: .67rem;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.map-feature-gallery > div:first-child strong {
    color: #345248;
    font-size: .7rem;
    font-weight: 600;
}

.map-feature-gallery > div:last-child {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.map-feature-gallery a {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border: 1px solid #dce5df;
    border-radius: 5px;
    background: #f3f6f4;
}

.map-feature-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .18s ease;
}

.map-feature-gallery a:hover img {
    transform: scale(1.035);
}

.map-feature-gallery--compact {
    margin: 0;
    padding: 0;
    border: 0;
}

.map-feature-gallery--compact > div {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}

.map-feature-gallery--compact a {
    aspect-ratio: 1 / 1;
}

.map-feature-detail-body dl > div {
    display: grid;
    grid-template-columns: minmax(95px, .8fr) minmax(110px, 1.2fr);
    gap: 12px;
    padding: 7px 3px;
    border-bottom: 1px solid #edf1ee;
}

.map-feature-detail-body dt,
.map-feature-detail-body dd {
    margin: 0;
    font-size: .72rem;
    line-height: 1.35;
}

.map-feature-detail-body dt {
    color: #71827c;
}

.map-feature-detail-body dd {
    color: #283f37;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.map-feature-detail-empty {
    padding: 28px 12px;
    text-align: center;
}

.map-feature-detail-empty strong {
    display: block;
    color: #344f45;
    font-size: .9rem;
}

.map-feature-detail-empty p {
    max-width: 420px;
    margin: 7px auto 0;
    color: #74857f;
    font-size: .75rem;
    line-height: 1.5;
}

@media (max-width: 760px) {
    .map-marker-library { grid-template-columns: repeat(6, 40px); }
    .map-marker-controls { grid-template-columns: 1fr 1fr; }
    .map-popup-field-list { grid-template-columns: 1fr; }
    .map-option-section-head { align-items: start; flex-direction: column; gap: 5px; }
    .map-option-section-head small { text-align: left; }
}

.registration-institution-row button[aria-expanded="true"] {
    border-color: #128447;
    background: #eaf7ef;
}

.auth-standalone-card--request .registration-check {
    grid-template-columns: 16px 62px minmax(0, 1fr);
    gap: 7px;
    font-size: 11px;
}

.auth-standalone-card--request .registration-check input {
    width: 14px !important;
    min-height: 14px !important;
}

.auth-standalone-card--request .registration-check strong {
    font-size: 11px;
}

.auth-standalone-card--request .registration-services {
    max-height: 150px;
    overflow-y: auto;
    gap: 5px;
    margin-left: 17px;
    padding: 7px 0 0 9px;
}

.auth-standalone-card--request .auth-standalone-button {
    min-height: 40px;
}

@media (max-width: 860px) {
    .registration-mini-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 620px) {
    .auth-standalone-card--request {
        width: min(100%, calc(100vw - 18px));
        max-height: none;
    }

    .auth-standalone-card--request .auth-standalone-content {
        max-height: none;
    }

    .registration-mini-grid {
        grid-template-columns: 1fr;
    }
}

/* System tables settings page */
.system-table-shell .sia-main {
    background: #f4f8f4;
}

.rights-admin-shell .sia-main.account-module-page {
    width: calc(100% - 205px);
    margin: 0 0 0 205px;
    padding: 0 22px 34px;
}

.user-access-panel__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border: 1px solid #dfe9e3;
    border-radius: 10px;
    background: #f7faf7;
}

.user-access-panel__toolbar button,
.user-access-actions button {
    border: 1px solid #d6e4dc;
    border-radius: 8px;
    background: #fff;
    color: #174b61;
    cursor: pointer;
}

.user-access-panel__toolbar button {
    min-height: 34px;
    padding: 0 13px;
}

.user-access-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

.user-access-actions form { margin: 0; }
.user-access-actions button { width: 30px; height: 30px; }

.user-access-feedback {
    margin: 14px 20px 0;
    padding: 10px 12px;
    border: 1px solid #cfe3d7;
    background: #f1f8f3;
    color: #17633f;
    font-size: 12px;
}

.user-access-feedback.is-error {
    border-color: #ebc9c5;
    background: #fff4f2;
    color: #a13f35;
}

.access-permission-list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    min-width: 220px;
}

.access-permission-list span {
    padding: 3px 7px;
    border: 1px solid #dce8e1;
    border-radius: 999px;
    background: #f3f8f4;
    color: #526d65;
    font-size: 10px;
    white-space: nowrap;
}

.registration-review-modal .rights-modal__dialog { max-width: 1120px; }
.registration-review-identity textarea { min-height: 70px; }
.registration-review-scopes { display: grid; gap: 10px; margin: 16px 0; }
.registration-review-scopes > h3 { margin: 0; font-size: 16px; font-weight: 500; }
.registration-review-scopes > article { padding: 12px; border: 1px solid #dfe9e3; border-radius: 12px; background: #f9fbf8; }
.registration-review-scopes > article > header,
.registration-review-service { display: grid; grid-template-columns: minmax(220px, 1fr) 190px minmax(200px, 1fr); gap: 10px; align-items: center; }
.registration-review-scopes > article > header { margin-bottom: 9px; }
.registration-review-scopes label { display: flex; align-items: center; gap: 8px; }
.registration-review-scopes select,
.registration-review-scopes input,
.registration-review-notes textarea { width: 100%; min-height: 36px; border: 1px solid #d9e4dc; border-radius: 8px; background: #fff; padding: 7px 9px; }
.registration-review-service { padding: 8px 0; border-top: 1px solid #e4ece6; }
.registration-review-notes { display: grid; gap: 6px; }
.registration-review-notes textarea { min-height: 75px; }
.registration-review-actions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.registration-review-actions .is-danger { color: #a83030; border-color: #eccaca; }
.registration-review-actions .is-primary { background: #176d47; color: #fff; border-color: #176d47; }

@media (max-width: 900px) {
    .registration-review-scopes > article > header,
    .registration-review-service { grid-template-columns: 1fr; }
}

.auth-standalone-card--request .registration-check strong,
.auth-standalone-card--request .registration-check span,
.auth-standalone-card--request select,
.auth-standalone-card--request option,
.registration-review-scopes select,
.registration-review-scopes option {
    font-weight: 400 !important;
}

.registration-history {
    display: grid;
    gap: 7px;
    margin: 16px 0;
    padding: 12px;
    border: 1px solid #dfe9e3;
    border-radius: 12px;
    background: #f7faf7;
}

.registration-history h3 { margin: 0 0 4px; font-size: 15px; font-weight: 500; }
.registration-history article { display: grid; grid-template-columns: 125px 170px 1fr; gap: 10px; align-items: start; padding: 7px 0; border-top: 1px solid #e2ebe5; }
.registration-history article span,
.registration-history article strong,
.registration-history article p { margin: 0; font-size: 12px; font-weight: 400; }
.registration-history article span { color: #7a8b89; }

.activity-card { position: relative; }
.activity-card > a { display: grid; color: inherit; text-decoration: none; }
.activity-card > form { position: absolute; right: 10px; bottom: 10px; margin: 0; }
.activity-card > form button,
.organisation-promotion-bar button { border: 1px solid #d9e5dd; border-radius: 8px; background: #fff; color: #315d50; padding: 7px 10px; cursor: pointer; font-size: 11px; }
.organisation-promotion-bar { display: flex; justify-content: flex-end; gap: 8px; margin: 18px 0; padding: 12px; border: 1px solid #dfe9e3; border-radius: 12px; background: #f8fbf8; }
.organisation-promotion-bar input { min-width: 280px; border: 1px solid #d9e5dd; border-radius: 8px; padding: 7px 10px; }

.activity-tabs {
    display: flex;
    align-items: stretch;
    gap: 6px;
    margin: 0 0 16px;
    padding: 8px;
    overflow-x: auto;
    border: 1px solid #dfe8e2;
    border-radius: 12px;
    background: #fff;
}

.activity-tabs__label { align-self: center; padding: 0 8px; color: #7b8d88; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.activity-tab-item { position: relative; display: flex; min-width: 175px; border: 1px solid transparent; border-radius: 9px; }
.activity-tab-item > a { display: grid; flex: 1; grid-template-columns: 24px auto; column-gap: 7px; min-width: 0; padding: 7px 32px 7px 10px; color: #314642; text-decoration: none; }
.activity-tab-item > a i { grid-row: 1 / 3; align-self: center; font-style: normal; color: #16804d; }
.activity-tab-item > a img { grid-row: 1 / 3; align-self: center; width: 24px; height: 24px; border-radius: 6px; object-fit: cover; object-position: center; }
.activity-tab-item > a span { font-size: 12px; font-weight: 500; }
.activity-tab-item > a small { max-width: 125px; overflow: hidden; color: #7b8d88; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.activity-tab-item.active { border-color: #bcdac9; background: #edf7f0; }
.activity-tab-item.inactive { opacity: .58; }
.activity-tab-item > button { position: absolute; top: 50%; right: 6px; width: 25px; height: 25px; padding: 0; transform: translateY(-50%); border: 0; border-radius: 6px; background: rgba(255,255,255,.8); color: #55776b; cursor: pointer; }
.activity-tab-item > button:hover { background: #dceee3; color: #176d47; }
.activity-tabs > button { flex: 0 0 38px; border: 1px dashed #b9cec1; border-radius: 9px; background: #f7faf7; color: #16804d; font-size: 22px; cursor: pointer; }

/* Institutional color families */
body .sia-sidebar {
    background: linear-gradient(180deg, var(--sidebar, #174b61) 0%, var(--sidebar-deep, #0d3448) 100%);
}

body .sia-nav a.active {
    background: rgba(255, 255, 255, .16);
    box-shadow: inset 3px 0 0 rgba(255, 255, 255, .72);
}

.dashboard-square-card--themed {
    overflow: hidden;
    border-color: var(--card-theme-border, #dfe7dc);
}

.dashboard-square-card--themed::before {
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: var(--card-theme, #174b61);
    content: "";
}

.dashboard-square-card--themed:hover {
    border-color: var(--card-theme, #174b61);
    background: linear-gradient(180deg, var(--card-theme-soft, #f3f8f5) 0%, #fff 42%);
}

.dashboard-square-card--themed > i {
    background: var(--card-theme-soft, #eef6f2);
    color: var(--card-theme, #174b61);
}

.dashboard-square-card--themed > span,
.dashboard-square-card--themed > small {
    color: var(--card-theme, #174b61);
}

.dashboard-square-card--themed .dashboard-edit-button:hover {
    border-color: var(--card-theme, #174b61);
    background: var(--card-theme, #174b61);
}

/* Premium institution cards */
.dashboard-card-grid--institutions{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px}.dashboard-card-grid--institutions .dashboard-square-card{isolation:isolate;justify-content:flex-start;gap:0;min-height:238px;padding:23px;border-radius:17px;background:linear-gradient(150deg,#fff 35%,var(--card-theme-soft,#f2f7f4) 135%);box-shadow:0 10px 28px rgba(32,57,48,.075)}.dashboard-card-grid--institutions .dashboard-square-card--themed::before{inset:0 auto auto 0;width:100%;height:5px;background:linear-gradient(90deg,var(--card-theme,#174b61),color-mix(in srgb,var(--card-theme,#174b61) 35%,white));z-index:2}.dashboard-card-grid--institutions .dashboard-square-card--themed::after{content:"";position:absolute;z-index:-1;right:-52px;top:-48px;width:145px;height:145px;border-radius:50%;background:var(--card-theme,#174b61);opacity:.055;transition:transform .25s ease,opacity .25s ease}.dashboard-card-grid--institutions .dashboard-card-logo{width:72px;height:72px;padding:9px;border-color:var(--card-theme-border,#d8e5de);border-radius:19px;box-shadow:0 10px 24px rgba(31,55,46,.09);transition:transform .2s ease,box-shadow .2s ease}.dashboard-card-grid--institutions .dashboard-square-card>i:not(.dashboard-edit-button){width:64px;height:64px;border:1px solid var(--card-theme-border,#d8e5de);border-radius:17px;font-size:18px}.dashboard-card-grid--institutions .dashboard-square-card>span{align-self:flex-start;margin-top:20px;padding:5px 8px;border:1px solid var(--card-theme-border,#d8e5de);border-radius:999px;background:var(--card-theme-soft,#f1f6f3);font-size:9px;line-height:1;letter-spacing:.14em}.dashboard-card-grid--institutions .dashboard-square-card h2{max-width:92%;margin:11px 0 0;color:#203a32;font-size:17px;font-weight:500;line-height:1.25}.dashboard-card-grid--institutions .dashboard-square-card p{display:-webkit-box;overflow:hidden;margin:9px 0 14px;color:#71837c;font-size:11px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:3}.dashboard-card-grid--institutions .dashboard-square-card small{display:flex;align-items:center;gap:7px;margin-top:auto;padding-top:12px;border-top:1px solid var(--card-theme-border,#e1e9e4);font-size:10px;font-weight:500}.dashboard-card-grid--institutions .dashboard-square-card small::after{content:"→";font-size:13px;transition:transform .18s ease}.dashboard-card-grid--institutions .dashboard-square-card:hover{transform:translateY(-5px);background:linear-gradient(150deg,#fff 20%,var(--card-theme-soft,#f2f7f4) 115%);box-shadow:0 18px 38px rgba(32,57,48,.13)}.dashboard-card-grid--institutions .dashboard-square-card:hover::after{transform:scale(1.12);opacity:.09}.dashboard-card-grid--institutions .dashboard-square-card:hover .dashboard-card-logo{transform:translateY(-2px) scale(1.025);box-shadow:0 14px 28px rgba(31,55,46,.13)}.dashboard-card-grid--institutions .dashboard-square-card:hover small::after{transform:translateX(3px)}.dashboard-card-grid--institutions .dashboard-edit-button{top:15px;right:15px;width:30px;height:30px;border-color:var(--card-theme-border,#dce7e1);box-shadow:0 6px 16px rgba(31,48,43,.07)}.dashboard-card-grid--institutions .dashboard-square-card--create{border:1px dashed #cfded5;background:rgba(255,255,255,.38);box-shadow:none;opacity:.58}.dashboard-card-grid--institutions .dashboard-square-card--create::before{content:"";position:absolute;inset:8px;border:1px solid rgba(185,207,194,.35);border-radius:12px;pointer-events:none}.dashboard-card-grid--institutions .dashboard-square-card--create>i{width:62px;height:62px;border:1px solid #d6e4dc;border-radius:18px;background:#f1f6f2;color:#7c9589}.dashboard-card-grid--institutions .dashboard-square-card--create>span{background:#f4f7f4;border-color:#dbe6df;color:#80928a}.dashboard-card-grid--institutions .dashboard-square-card--create small::after{content:"+"}.dashboard-card-grid--institutions .dashboard-square-card--create:hover{opacity:.9;background:#fbfdfb;border-color:#9dbbac}@media(max-width:720px){.dashboard-card-grid--institutions{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:13px}}

.activity-tab-item > a i {
    color: var(--activity-tab-color, var(--theme-primary, #16804d));
}

.activity-tab-item.active {
    border-color: var(--activity-tab-border, var(--theme-border, #bcdac9));
    background: var(--activity-tab-soft, var(--theme-soft, #edf7f0));
}

.activity-tab-item.active > a span {
    color: var(--activity-tab-color, var(--theme-primary, #174b61));
}

.sia-section-title,
.module-eyebrow,
.sima-table-hero > div > span,
.documents-head > div > span {
    color: var(--theme-primary, #174b61);
}

.sima-table-line:hover,
.sima-table-line.active {
    border-color: var(--theme-border, #d8e9df);
    background: var(--theme-soft, #f5fbf7);
}

.sima-table-line.active i,
.sima-table-line.active span,
.sima-year-mini a.active strong {
    color: var(--theme-primary, #174b61);
}

.sima-action-card:hover,
.sima-action-card--primary,
.sima-action-card.is-active,
.portal-modal footer button[type="submit"] {
    border-color: var(--theme-primary, #174b61);
    background: var(--theme-primary, #174b61);
    color: #fff;
}

.portal-modal input[type="color"] {
    min-height: 42px;
    padding: 4px;
    cursor: pointer;
}

[data-activity-tab-modal] .portal-modal__dialog { max-width: 850px; }
[data-activity-tab-modal] form > label:not(.portal-check),
[data-activity-tab-modal] .portal-modal__grid label { display: grid; gap: 6px; color: #4d625d; font-size: 12px; }
[data-activity-tab-modal] input:not([type="checkbox"]),
[data-activity-tab-modal] select,
[data-activity-tab-modal] textarea { width: 100%; min-height: 40px; border: 1px solid #d7e3db; border-radius: 9px; background: #fff; padding: 8px 10px; color: #273a36; font: inherit; font-weight: 400; outline: none; }
[data-activity-tab-modal] input[type="file"] { padding: 7px; }
[data-activity-tab-modal] textarea { min-height: 95px; resize: vertical; }
[data-activity-tab-modal] input:focus,
[data-activity-tab-modal] select:focus,
[data-activity-tab-modal] textarea:focus { border-color: #77b18e; box-shadow: 0 0 0 3px rgba(31,139,79,.1); }
[data-activity-tab-modal] .portal-check { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-weight: 400; }
[data-activity-tab-modal] footer { align-items: center; }
[data-activity-tab-modal] .activity-delete-button { margin-right: auto; border-color: #e8c4c4; background: #fff5f5; color: #a12f2f; }
[data-activity-tab-modal] .activity-delete-note { margin-right: auto; color: #9a6b5f; font-size: 11px; }

.business-workflow-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; max-height: 62vh; overflow-y: auto; padding: 4px 2px 12px; }
.business-workflow-form__grid > div { display: grid; gap: 5px; }
.business-workflow-form__grid label { color: #49615a; font-size: 12px; font-weight: 400; }
.business-workflow-form__grid input,
.business-workflow-form__grid select,
.business-workflow-form__grid textarea { width: 100%; min-height: 40px; border: 1px solid #d7e3db; border-radius: 9px; background: #fff; padding: 8px 10px; color: #273a36; font: inherit; font-weight: 400; }
.business-workflow-form__grid .errorlist { margin: 0; padding: 0; list-style: none; color: #a53333; font-size: 11px; }
.business-workflow-form > footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
@media (max-width: 760px) { .business-workflow-form__grid { grid-template-columns: 1fr; } }

.portal-modal__dialog--questionnaire { width: min(1120px, calc(100vw - 36px)); max-width: 1120px; max-height: 94vh; overflow-y: auto; background: #edf2ee; }
.portal-modal__dialog--questionnaire > header { max-width: 960px; margin-inline: auto; }
.field-questionnaire { max-width: 960px; margin: 18px auto 0; }
.questionnaire-sheet { padding: 28px 34px 34px; border: 1px solid #cad8ce; background: #fff; box-shadow: 0 8px 24px rgba(18, 55, 43, .08); color: #263a34; }
.questionnaire-letterhead { display: grid; grid-template-columns: 90px 1fr 90px; gap: 18px; align-items: center; padding-bottom: 18px; border-bottom: 2px solid #174e5e; text-align: center; }
.questionnaire-letterhead__logo { display: grid; place-items: center; width: 76px; height: 76px; }
.questionnaire-letterhead__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.questionnaire-letterhead__logo span { color: #174e5e; font-size: 16px; }
.questionnaire-letterhead > div:nth-child(2) { display: grid; gap: 4px; }
.questionnaire-letterhead small { color: #6d817a; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.questionnaire-letterhead strong { color: #173f4f; font-size: 14px; font-weight: 600; line-height: 1.35; }
.questionnaire-letterhead span { color: #526b63; font-size: 11px; }
.questionnaire-letterhead__code { display: grid; place-items: center; min-height: 62px; border: 1px solid #b8cec0; color: #15804d; font-size: 17px; font-weight: 600; }
.questionnaire-letterhead__code--logo img { width: 82px; height: 62px; padding: 4px; object-fit: contain; }
.questionnaire-title { padding: 22px 0 10px; text-align: center; }
.questionnaire-title span { color: #15804d; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.questionnaire-title h3 { margin: 5px 0 3px; color: #173f4f; font-size: 22px; font-weight: 500; }
.questionnaire-title p { margin: 0; color: #73857f; font-size: 12px; }
.questionnaire-section { margin: 16px 0 0; padding: 18px; border: 1px solid #cfddd3; }
.questionnaire-section legend { display: flex; align-items: center; gap: 9px; padding: 0 8px 0 0; color: #173f4f; font-size: 13px; }
.questionnaire-section legend b { display: grid; place-items: center; width: 30px; height: 26px; background: #174e5e; color: #fff; font-size: 11px; font-weight: 500; }
.questionnaire-grid { display: grid; grid-template-columns: 1fr; gap: 13px; }
.questionnaire-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.questionnaire-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.questionnaire-field { display: grid; align-content: start; gap: 5px; }
.questionnaire-field label { color: #4b625a; font-size: 11px; font-weight: 400; }
.questionnaire-field label em { margin-left: 3px; color: #b43d36; font-style: normal; }
.questionnaire-field input, .questionnaire-field select, .questionnaire-field textarea { width: 100%; min-height: 38px; padding: 8px 9px; border: 1px solid #cbd9d0; border-radius: 2px; background: #fcfdfc; color: #243a33; font: inherit; }
.questionnaire-field textarea { min-height: 74px; resize: vertical; }
.questionnaire-field input:focus, .questionnaire-field select:focus, .questionnaire-field textarea:focus { outline: 2px solid rgba(21, 128, 77, .13); border-color: #15804d; }
.questionnaire-field.has-error input, .questionnaire-field.has-error select { border-color: #b43d36; }
.questionnaire-field .errorlist, .questionnaire-errors .errorlist { margin: 0; padding: 0; list-style: none; color: #a93631; font-size: 10px; }
.questionnaire-hint { margin: 10px 0 0; color: #768a82; font-size: 10px; }
.questionnaire-signatures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 26px; }
.questionnaire-signatures span { padding-top: 8px; border-top: 1px solid #8ea098; color: #71827c; font-size: 10px; text-align: center; }
.field-questionnaire > footer { position: sticky; bottom: -1px; padding: 14px 0 2px; background: #edf2ee; }
.questionnaire-section--sima { padding: 12px; }
.sima-collection-layout { display: grid; grid-template-columns: minmax(210px, .85fr) minmax(420px, 1.8fr) minmax(200px, .8fr); gap: 10px; align-items: stretch; }
.sima-collection-panel { display: grid; align-content: start; gap: 10px; padding: 14px; border: 1px solid #c9ddd0; background: #f9fbf9; }
.sima-collection-panel h4 { margin: 0 0 2px; color: #173f4f; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sima-collection-panel--identity { border-color: #ead483; background: #fffbed; }
.sima-collection-panel--identity input, .sima-collection-panel--identity select { border-color: #dfbd3f; background: #fffdf4; }
.sima-collection-panel--measures { border-color: #b8ddc5; background: #eaf7ee; }
.sima-collection-panel--context { border-color: #a9d6ca; background: #effaf7; }
.sima-collection-secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sima-measure-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.sima-measure-grid > div { display: grid; gap: 5px; }
.sima-measure-grid span { color: #31584b; font-size: 11px; }
.sima-measure-grid input { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid #7bcfa7; border-radius: 2px; background: #fff; color: #263a34; font: inherit; }
.sima-measure-grid input:focus { outline: 2px solid rgba(21, 128, 77, .13); border-color: #15804d; }
.sima-measure-grid .errorlist { margin: 0; padding: 0; list-style: none; color: #a93631; font-size: 10px; }
.sima-new-references { margin-top: 10px; border: 1px dashed #c9d8ce; background: #fafcfb; }
.sima-new-references summary { padding: 10px 12px; color: #587068; font-size: 11px; cursor: pointer; }
.sima-new-references[open] summary { border-bottom: 1px solid #dbe6df; }
.sima-new-references .questionnaire-grid { padding: 12px; }
.livestock-layout { display: grid; grid-template-columns: minmax(210px, .85fr) minmax(430px, 1.75fr) minmax(210px, .8fr); gap: 12px; margin-top: 20px; align-items: start; }
.livestock-main { display: grid; gap: 12px; }
.livestock-category { padding: 12px; border: 1px solid #d8c4b4; background: #fbf6f1; }
.livestock-category legend { padding: 0 7px; color: #70452d; font-size: 11px; }
.livestock-category > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.livestock-category label { display: grid; place-items: center; min-height: 72px; padding: 10px; border: 1px solid #d7a27d; background: #fffaf6; color: #70452d; font-size: 12px; cursor: pointer; }
.livestock-category label:has(input:checked) { border-color: #8a542f; box-shadow: inset 0 0 0 1px #8a542f; background: #f5e8dc; }
.livestock-category label.is-disabled { opacity: .35; cursor: not-allowed; }
.livestock-category input { margin: 0 0 5px; accent-color: #87552f; }
.livestock-category p { margin: 8px 0 0; color: #826a5a; font-size: 10px; }
.livestock-category .errorlist { margin: 6px 0 0; padding: 0; list-style: none; color: #a93631; font-size: 10px; }
.livestock-questionnaire .sima-collection-panel--measures { border-color: #ddc5b2; background: #fbf4ed; }
.livestock-questionnaire .sima-measure-grid input { border-color: #d99b70; }
.livestock-questionnaire .sima-collection-panel--context { border-color: #d8c4b4; background: #fbf8f5; }

@media (max-width: 850px) {
    .questionnaire-grid--three, .questionnaire-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .questionnaire-sheet { padding: 20px; }
    .sima-collection-layout { grid-template-columns: 1fr; }
    .livestock-layout { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .questionnaire-letterhead { grid-template-columns: 58px 1fr; }
    .questionnaire-letterhead__code { display: none; }
    .questionnaire-grid--three, .questionnaire-grid--four, .questionnaire-signatures { grid-template-columns: 1fr; }
}
@media print {
    .portal-modal__dialog--questionnaire { width: 100%; max-width: none; max-height: none; overflow: visible; background: #fff; }
    .portal-modal__dialog--questionnaire > header, .portal-modal__close, .field-questionnaire > footer { display: none !important; }
    .questionnaire-sheet { border: 0; box-shadow: none; }
    .questionnaire-section { break-inside: avoid; }
}

@media (max-width: 860px) {
    .rights-admin-shell .sia-main.account-module-page {
        width: 100%;
        margin: 0;
    }
}

.system-table-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin: 20px 24px 14px;
    padding: 20px 22px;
    border: 1px solid #dfe9e3;
    border-radius: 18px;
    background: radial-gradient(circle at top left, rgba(18,132,71,.12), transparent 34%), #fff;
    box-shadow: 0 14px 36px rgba(30, 47, 42, .06);
}

.system-table-hero span {
    color: #78908a;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.system-table-hero h1 {
    margin: 4px 0;
    color: #20342e;
    font-size: 28px;
}

.system-table-hero p {
    margin: 0;
    color: #6a8078;
}

.system-table-hero > strong {
    display: grid;
    place-items: center;
    min-width: 108px;
    height: 58px;
    border-radius: 14px;
    background: #eaf7ef;
    color: #0f6b3d;
    font-size: 18px;
}

.system-table-filters {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) 220px 110px;
    gap: 12px;
    margin: 0 24px 16px;
    padding: 14px;
    border: 1px solid #dfe9e3;
    border-radius: 16px;
    background: #fff;
}

.system-table-filters label {
    display: grid;
    gap: 6px;
    color: #4d625b;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
}

.system-table-filters input,
.system-table-filters select {
    min-height: 40px;
    border: 1px solid #d8e5dc;
    border-radius: 10px;
    background: #fbfdfb;
    color: #213330;
    padding: 0 12px;
    font: inherit;
    text-transform: none;
}

.system-table-filters button {
    align-self: end;
    min-height: 40px;
    border: 0;
    border-radius: 10px;
    background: #128447;
    color: #fff;
    font-weight: 900;
    cursor: pointer;
}

.system-table-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0 24px 28px;
}

.system-table-card {
    display: grid;
    gap: 14px;
    min-height: 142px;
    padding: 15px;
    border: 1px solid #dfe9e3;
    border-left: 5px solid #8ba59b;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(30, 47, 42, .05);
}

.system-table-card--system { border-left-color: #174b61; }
.system-table-card--institution { border-left-color: #128447; }
.system-table-card--global { border-left-color: #b98022; }

.system-table-card span {
    color: #78908a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.system-table-card h2 {
    margin: 5px 0 4px;
    color: #20342e;
    font-size: 16px;
    line-height: 1.2;
}

.system-table-card p {
    margin: 0;
    color: #6d807a;
    font-size: 12px;
    word-break: break-word;
}

.system-table-card footer {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
    margin-top: auto;
}

.system-table-card small {
    color: #81918c;
    font-size: 11px;
}

.system-table-card a,
.system-table-modal footer a {
    border-radius: 999px;
    background: #eaf7ef;
    color: #0f6b3d;
    padding: 7px 12px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.system-table-empty {
    grid-column: 1 / -1;
    padding: 22px;
    border: 1px dashed #cfe3d8;
    border-radius: 16px;
    background: #fff;
    color: #6a8078;
}

.system-table-modal {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 28px;
    background: rgba(12, 32, 30, .46);
    backdrop-filter: blur(4px);
}

.system-table-modal__dialog {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    width: min(1180px, 100%);
    max-height: min(760px, calc(100vh - 48px));
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(0, 0, 0, .24);
    overflow: hidden;
}

.system-table-modal header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    padding: 18px 20px;
    border-bottom: 1px solid #e5eee8;
    background: #fbfdf9;
}

.system-table-modal header span {
    color: #78908a;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.system-table-modal header h2 {
    margin: 4px 0;
    color: #20342e;
}

.system-table-modal header p {
    margin: 0;
    color: #6a8078;
}

.system-table-modal header > a {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 1px solid #d8e5dc;
    border-radius: 50%;
    color: #334740;
    text-decoration: none;
    font-size: 24px;
}

.system-table-preview-scroll {
    overflow: auto;
}

.system-table-preview-scroll table {
    width: max-content;
    min-width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.system-table-preview-scroll th,
.system-table-preview-scroll td {
    max-width: 260px;
    border-bottom: 1px solid #edf3ee;
    border-right: 1px solid #edf3ee;
    padding: 9px 10px;
    text-align: left;
    vertical-align: top;
}

.system-table-preview-scroll th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f2f8f4;
    color: #174b61;
    font-weight: 900;
}

.system-table-modal footer {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 12px;
    align-items: center;
    padding: 14px 18px;
    border-top: 1px solid #e5eee8;
    background: #fbfdf9;
}

.system-table-modal footer a:last-child {
    justify-self: end;
}

.system-table-modal footer strong {
    color: #6a8078;
    font-size: 12px;
}

@media (max-width: 1100px) {
    .system-table-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .system-table-filters { grid-template-columns: 1fr; }
    .system-table-grid { grid-template-columns: 1fr; }
    .system-table-hero { align-items: start; flex-direction: column; }
}

.system-table-list-card {
    margin: 0 24px 28px;
    border: 1px solid #dfe9e3;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(30, 47, 42, .06);
    overflow: auto;
}

.system-table-list {
    width: 100%;
    min-width: 1180px;
    border-collapse: collapse;
    font-size: 13px;
}

.system-table-list th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f2f8f4;
    color: #174b61;
    padding: 12px 14px;
    border-bottom: 1px solid #dfe9e3;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .09em;
    text-align: left;
    text-transform: uppercase;
}

.system-table-list td {
    padding: 11px 14px;
    border-bottom: 1px solid #edf3ee;
    color: #344841;
    vertical-align: middle;
}

.system-table-list tr:hover td {
    background: #fbfdf9;
}

.system-table-list td:nth-child(5),
.system-table-list td:nth-child(6) {
    color: #174b61;
    font-weight: 900;
    text-align: right;
}

.system-table-list td:last-child {
    text-align: right;
}

.system-table-list code {
    border-radius: 7px;
    background: #f3f7f4;
    color: #50645d;
    padding: 4px 7px;
    font-size: 12px;
}

.system-table-list a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    border-radius: 999px;
    background: #eaf7ef;
    color: #0f6b3d;
    padding: 0 13px;
    font-size: 12px;
    font-weight: 900;
    text-decoration: none;
}

.system-table-scope {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    border-radius: 999px;
    padding: 0 9px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.system-table-scope--system {
    background: #e8f0f3;
    color: #174b61;
}

.system-table-scope--institution {
    background: #eaf7ef;
    color: #0f6b3d;
}

.system-table-scope--global {
    background: #fff4df;
    color: #8a5a0d;
}

.system-table-list th,
.system-table-list td,
.system-table-list a,
.system-table-list code,
.system-table-scope {
    font-weight: 500 !important;
}

.system-table-list th {
    letter-spacing: .06em;
}

.system-table-list td:nth-child(5),
.system-table-list td:nth-child(6),
.system-table-list td:nth-child(7),
.system-table-list td:nth-child(8) {
    font-weight: 500 !important;
}

.system-table-filters {
    grid-template-columns: minmax(260px, 1fr) 220px;
}

.system-table-filters label,
.system-table-filters input,
.system-table-filters select {
    font-weight: 500 !important;
}

/* Unified content center: documents, reports and articles */
.content-hub {
    overflow: visible;
    padding: 0;
    border: 1px solid #dbe7df;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(20, 62, 47, .05);
}

.content-hub__head {
    min-height: 104px;
    padding: 24px 26px 20px;
    border-bottom: 1px solid #e3ebe6;
    background: linear-gradient(100deg, var(--theme-pale, #f4f8f5), #fff 62%);
}

.content-hub__head h2 {
    margin: 3px 0 5px;
    color: #1f3530;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    font-weight: 600;
    letter-spacing: -.025em;
}

.content-hub__head p {
    max-width: 720px;
    margin: 0;
    color: #6d8079;
    font-size: .91rem;
}

.content-hub .module-eyebrow {
    color: var(--theme-primary, #247253);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.content-primary-action,
.reports-manager__actions .content-primary-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 15px;
    border: 1px solid var(--theme-primary, #247253);
    border-radius: 7px;
    background: var(--theme-primary, #247253);
    color: #fff;
    font-size: .84rem;
    font-weight: 600;
    box-shadow: 0 5px 14px color-mix(in srgb, var(--theme-primary, #247253) 20%, transparent);
}

.content-primary-action span {
    font-size: 1.15rem;
    font-weight: 400;
    line-height: 1;
}

.reports-manager__actions .content-secondary-action button {
    min-height: 40px;
    border-color: var(--theme-border, #cbded4);
    border-radius: 7px;
    background: #fff;
    color: var(--theme-deep, #174b3a);
    box-shadow: none;
}

.content-toolbar,
.documents-filter-bar.content-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) minmax(150px, .5fr) minmax(150px, .5fr) auto auto;
    align-items: end;
    gap: 12px;
    margin: 0;
    padding: 16px 24px;
    border: 0;
    border-bottom: 1px solid #e7eee9;
    border-radius: 0;
    background: #fbfdfb;
}

.reports-toolbar {
    grid-template-columns: minmax(460px, 2.4fr) 170px 150px 150px auto;
    gap: 14px;
    padding: 15px 24px 17px;
    background: #fff;
}

[data-report-results] {
    position: relative;
    min-height: 180px;
    transition: opacity .16s ease;
}

[data-report-results].is-loading {
    opacity: .48;
    pointer-events: none;
}

[data-report-results].is-loading::after {
    content: "Mise à jour…";
    position: absolute;
    top: 20px;
    left: 50%;
    z-index: 4;
    transform: translateX(-50%);
    padding: 8px 14px;
    border: 1px solid #d5e3da;
    background: #fff;
    color: #315d50;
    box-shadow: 0 8px 24px rgba(25, 70, 56, .12);
}

.content-toolbar label,
.documents-filter-bar.content-toolbar label {
    gap: 5px;
    color: #70817b;
    font-size: .69rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.content-toolbar input,
.content-toolbar select,
.documents-filter-bar.content-toolbar input,
.documents-filter-bar.content-toolbar select {
    height: 39px;
    border: 1px solid #d6e2da;
    border-radius: 7px;
    background: #fff;
    color: #243b34;
    font-size: .84rem;
    font-weight: 400;
}

.content-toolbar button,
.documents-filter-bar.content-toolbar button {
    height: 39px;
    padding: 0 14px;
    border: 1px solid #cadbd1;
    border-radius: 7px;
    background: #fff;
    color: var(--theme-deep, #174b3a);
    font-size: .82rem;
    font-weight: 600;
}

.content-toolbar__count {
    align-self: center;
    justify-self: end;
    color: #7a8c85;
    font-size: .79rem;
    white-space: nowrap;
}

.content-toolbar.reports-toolbar label {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    gap: 6px;
    color: #74847f;
    font-size: .65rem;
    font-weight: 500;
    letter-spacing: .09em;
}

.content-toolbar.reports-toolbar input,
.content-toolbar.reports-toolbar select {
    width: 100%;
    height: 42px;
    padding-inline: 12px;
    border: 1px solid #d8e3dc;
    border-radius: 3px;
    background: #f9fbfa;
    color: #243c35;
    box-shadow: none;
    transition: border-color .15s ease, background-color .15s ease;
}

.content-toolbar.reports-toolbar input:hover,
.content-toolbar.reports-toolbar select:hover {
    border-color: #b9cec2;
    background: #fff;
}

.content-toolbar.reports-toolbar input:focus,
.content-toolbar.reports-toolbar select:focus {
    outline: none;
    border-color: var(--theme-primary, #2d7b5d);
    background: #fff;
    box-shadow: 0 0 0 2px rgba(45, 123, 93, .08);
}

.content-toolbar.reports-toolbar .content-toolbar__search input {
    padding-left: 16px;
    font-size: .9rem;
}

.reports-toolbar .content-toolbar__count {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding-left: 16px;
    border-left: 1px solid #e1e9e4;
    color: #60736d;
    font-size: .78rem;
}

.content-library-list,
.documents-list.content-library-list {
    display: grid;
    gap: 0;
    padding: 0 24px 14px;
}

.content-library-row,
.documents-list .content-library-row {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    min-height: 112px;
    margin: 0;
    padding: 16px 2px;
    border: 0;
    border-bottom: 1px solid #e7eee9;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
}

.content-library-row:hover {
    background: var(--theme-pale, #f7faf8);
}

.content-library-row .document-card__icon {
    position: relative;
    width: 48px;
    height: 58px;
    border: 1px solid var(--theme-border, #cfe0d6);
    border-radius: 7px;
    background: var(--theme-soft, #edf6f1);
    color: var(--theme-deep, #174b3a);
}

.content-library-row .document-card__icon::after {
    content: "";
    position: absolute;
    top: -1px;
    right: -1px;
    width: 13px;
    height: 13px;
    border-left: 1px solid var(--theme-border, #cfe0d6);
    border-bottom: 1px solid var(--theme-border, #cfe0d6);
    background: #fff;
}

.content-library-row .document-card__icon span {
    font-size: .69rem;
    font-weight: 700;
}

.content-library-row .document-card__meta {
    margin-bottom: 5px;
}

.content-library-row h3 {
    margin: 0 0 3px;
    color: #243a34;
    font-size: .97rem;
    font-weight: 600;
}

.content-library-row h4,
.content-library-row p {
    margin: 0 0 4px;
    color: #71827c;
    font-size: .81rem;
    font-weight: 400;
}

.content-library-row p {
    max-width: 760px;
}

.content-library-row em {
    display: inline-block;
    margin-top: 4px;
    color: var(--theme-primary, #247253);
    font-size: .74rem;
    font-style: normal;
}

.content-row-actions {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
    margin: 0;
}

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

.content-action-main,
.content-icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 35px;
    border: 1px solid #d4e1d9;
    border-radius: 6px;
    background: #fff;
    color: #27463b;
    font-size: .79rem;
    font-weight: 600;
    text-decoration: none;
}

.content-action-main { padding: 0 12px; }
.content-icon-action { width: 35px; padding: 0; font-size: 1rem; }

.content-more-menu {
    position: relative;
}

.content-more-menu summary {
    display: grid;
    width: 35px;
    height: 35px;
    place-items: center;
    border: 1px solid #d4e1d9;
    border-radius: 6px;
    background: #fff;
    color: #50665e;
    cursor: pointer;
    font-size: 1.15rem;
    list-style: none;
}

.content-more-menu summary::-webkit-details-marker { display: none; }

.content-more-menu > div {
    position: absolute;
    z-index: 40;
    top: 41px;
    right: 0;
    display: grid;
    width: 210px;
    padding: 6px;
    border: 1px solid #d9e4dd;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(21, 52, 42, .16);
}

.content-more-menu button {
    width: 100%;
    min-height: 35px;
    padding: 0 10px;
    border: 0;
    border-radius: 5px;
    background: transparent;
    color: #344a43;
    cursor: pointer;
    font-size: .79rem;
    font-weight: 500;
    text-align: left;
}

.content-more-menu button:hover { background: #f1f6f3; }
.content-more-menu button.is-danger { color: #a23f3f; }

.content-hub .document-inline-form {
    margin: 20px 24px;
    border: 1px solid var(--theme-border, #cadfd3);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(24, 60, 47, .13);
}

.reports-manager__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(260px, 1fr));
    gap: 16px;
    padding: 22px 24px 24px;
}

.report-dossier-card,
.reports-manager__grid .report-dossier-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    align-items: start;
    gap: 14px;
    min-height: 220px;
    padding: 18px;
    border: 1px solid #dce7e0;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(22, 58, 44, .06);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.reports-manager__grid .report-dossier-card:hover {
    border-color: var(--theme-border, #bdd7c8);
    box-shadow: 0 12px 26px rgba(22, 58, 44, .10);
    transform: translateY(-2px);
}

.report-dossier-card__cover {
    display: flex;
    width: 60px;
    height: 78px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 0;
    border-radius: 7px;
    background: transparent;
}

.report-dossier-card__cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.report-dossier-card__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px 12px;
    color: #7a8a84;
    font-size: .74rem;
}

.report-dossier-card__content {
    min-width: 0;
}

.report-dossier-card h3 {
    margin: 7px 0 3px;
    color: #223a32;
    font-size: 1.04rem;
    font-weight: 600;
    line-height: 1.35;
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.report-dossier-card h4,
.report-dossier-card p {
    margin: 0 0 5px;
    color: #6d7f78;
    font-size: .82rem;
    font-weight: 400;
}

.report-dossier-card p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.report-dossier-card__keywords {
    color: var(--theme-primary, #247253);
    font-size: .72rem;
}

.report-edit-panel {
    grid-column: 1 / -1;
}

.report-dossier-card__actions {
    grid-column: 1 / -1;
    align-self: end;
    justify-content: flex-start;
    padding-top: 12px;
    border-top: 1px solid #edf2ef;
}

.content-editorial-grid,
.publication-list.content-editorial-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    padding: 24px;
}

.content-editorial-grid .publication-card--polished {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #dce7e0;
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(22, 58, 44, .06);
}

.content-editorial-grid .publication-card--polished:hover {
    border-color: var(--theme-border, #bdd7c8);
    box-shadow: 0 12px 28px rgba(22, 58, 44, .11);
    transform: translateY(-2px);
}

.content-editorial-grid .publication-card__media,
.content-editorial-grid .publication-card__media img,
.content-editorial-grid .publication-card__placeholder {
    width: 100%;
    height: 190px;
    min-height: 190px;
    border-radius: 0;
}

.content-editorial-grid .publication-card__media img { object-fit: cover; }

.content-editorial-grid .publication-card__placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, var(--theme-soft, #edf6f1), #f9fbfa);
    color: var(--theme-deep, #174b3a);
    font-family: Georgia, serif;
    font-size: 1.2rem;
}

.content-editorial-grid .publication-card__content {
    display: flex;
    min-height: 280px;
    flex: 1;
    flex-direction: column;
    padding: 18px;
}

.content-editorial-grid .publication-card--polished h3 {
    margin: 9px 0 5px;
    color: #213831;
    font-size: 1.06rem;
    font-weight: 600;
    line-height: 1.35;
}

.content-editorial-grid .publication-card--polished h4,
.content-editorial-grid .publication-card--polished p {
    color: #71817b;
    font-size: .82rem;
    font-weight: 400;
}

.content-editorial-grid .publication-card__footer { margin-top: auto; }

.content-editorial-grid .publication-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 12px;
    border-top: 1px solid #edf2ef;
}

.content-editorial-grid .publication-card__actions button {
    min-height: 34px;
    border-radius: 6px;
    font-size: .76rem;
}

.content-hub .module-pagination { margin: 2px 24px 22px; }

@media (max-width: 1120px) {
    .content-editorial-grid,
    .publication-list.content-editorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-toolbar,
    .documents-filter-bar.content-toolbar { grid-template-columns: minmax(220px, 1fr) 150px 150px auto; }
    .content-toolbar__count { display: none; }
    .reports-toolbar { grid-template-columns: minmax(280px, 1fr) repeat(3, 145px); }
    .reports-manager__grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
}

@media (max-width: 760px) {
    .content-hub__head { align-items: flex-start; padding: 20px; }
    .content-hub__head, .content-hub__head > div { display: grid; gap: 12px; }
    .content-toolbar,
    .documents-filter-bar.content-toolbar,
    .reports-toolbar { grid-template-columns: 1fr; padding: 14px 18px; }
    .content-library-list,
    .documents-list.content-library-list,
    .reports-manager__grid { padding-inline: 18px; }
    .content-library-row,
    .documents-list .content-library-row { grid-template-columns: 54px minmax(0, 1fr); }
    .reports-manager__grid { grid-template-columns: 1fr; }
    .report-dossier-card,
    .reports-manager__grid .report-dossier-card { grid-template-columns: 54px minmax(0, 1fr); }
    .content-row-actions,
    .report-dossier-card__actions { grid-column: 1 / -1; justify-content: flex-start; }
    .report-dossier-card__cover { width: 52px; height: 70px; }
    .content-editorial-grid,
    .publication-list.content-editorial-grid { grid-template-columns: 1fr; padding: 18px; }
    .content-more-menu > div { right: auto; left: 0; }
}

/* Warm natural institutional finish */
.content-hub {
    border: 2px solid color-mix(in srgb, var(--theme-primary, #247253) 22%, #d9dfd7);
    background:
        linear-gradient(rgba(255, 255, 255, .82), rgba(255, 255, 255, .82)),
        repeating-linear-gradient(0deg, #fffdf8 0, #fffdf8 3px, #f8f4ea 4px);
    box-shadow: 0 10px 28px rgba(55, 69, 51, .08);
}

.content-hub__head {
    position: relative;
    overflow: hidden;
    border-bottom: 2px solid color-mix(in srgb, var(--theme-primary, #247253) 18%, #e2e5dc);
    background:
        radial-gradient(circle at 92% 22%, rgba(239, 188, 91, .18) 0 34px, transparent 35px),
        radial-gradient(ellipse at 82% 115%, color-mix(in srgb, var(--theme-primary, #247253) 11%, transparent) 0 130px, transparent 132px),
        linear-gradient(105deg, #fffdf7, var(--theme-pale, #f4f8f5) 72%, #fffaf0);
}

.content-hub__head::after {
    content: "";
    position: absolute;
    right: 34px;
    bottom: 17px;
    width: 50px;
    height: 17px;
    border-top: 2px solid color-mix(in srgb, var(--theme-primary, #247253) 36%, transparent);
    border-radius: 50%;
    opacity: .65;
    transform: rotate(-9deg);
}

.content-toolbar,
.documents-filter-bar.content-toolbar {
    border-bottom: 1px solid #dddcd2;
    background: rgba(255, 253, 247, .88);
}

.content-toolbar input,
.content-toolbar select,
.documents-filter-bar.content-toolbar input,
.documents-filter-bar.content-toolbar select {
    border: 1px solid color-mix(in srgb, var(--theme-primary, #247253) 20%, #d9ddd6);
    background: #fffefb;
}

.content-library-row,
.documents-list .content-library-row {
    position: relative;
    margin: 8px 0;
    padding: 15px 14px;
    border: 1px solid #dedfd7;
    border-left: 4px solid color-mix(in srgb, var(--theme-primary, #247253) 68%, #8eaa82);
    border-radius: 7px;
    background: rgba(255, 254, 249, .96);
    box-shadow: 0 3px 10px rgba(63, 76, 57, .045);
}

.content-library-row:hover,
.documents-list .content-library-row:hover {
    border-color: color-mix(in srgb, var(--theme-primary, #247253) 34%, #d7dcd5);
    background: #fffef9;
    box-shadow: 0 8px 18px rgba(63, 76, 57, .08);
}

.content-library-row .document-card__icon {
    border: 2px solid color-mix(in srgb, var(--theme-primary, #247253) 28%, #d5ddd6);
    background: linear-gradient(145deg, #fffef8, var(--theme-soft, #edf6f1));
}

.report-dossier-card,
.reports-manager__grid .report-dossier-card {
    position: relative;
    border: 2px solid color-mix(in srgb, var(--theme-primary, #247253) 20%, #dadfd8);
    background:
        radial-gradient(circle at 92% 9%, rgba(239, 188, 91, .10) 0 26px, transparent 27px),
        linear-gradient(150deg, #fffef9, #fff 58%, var(--theme-pale, #f5f9f6));
}

.report-dossier-card::before {
    content: "";
    position: absolute;
    top: -2px;
    right: 18px;
    left: 18px;
    height: 3px;
    border-radius: 0 0 4px 4px;
    background: linear-gradient(90deg, transparent, var(--theme-primary, #247253), #d7a64d, transparent);
    opacity: .68;
}

.report-dossier-card__cover {
    padding: 3px;
    border: 1px solid #dedbd0;
    background: #fffdf7;
    box-shadow: 0 4px 10px rgba(59, 67, 48, .08);
}

.report-dossier-card__actions {
    border-top: 1px solid #e5e2d8;
}

.content-editorial-grid .publication-card--polished {
    position: relative;
    border: 2px solid color-mix(in srgb, var(--theme-primary, #247253) 18%, #dcded7);
    background: #fffef9;
}

.content-editorial-grid .publication-card--polished::before {
    content: "";
    position: absolute;
    z-index: 2;
    top: 12px;
    left: 12px;
    width: 22px;
    height: 8px;
    border: 2px solid rgba(255, 255, 255, .88);
    border-width: 2px 0 0 2px;
    border-radius: 80% 0 0;
    transform: rotate(-18deg);
}

.content-editorial-grid .publication-card__media {
    padding: 7px 7px 0;
    background: #f7f1e4;
}

.content-editorial-grid .publication-card__media img,
.content-editorial-grid .publication-card__placeholder {
    border: 1px solid rgba(49, 77, 63, .15);
    border-radius: 5px;
}

.content-editorial-grid .publication-card__content {
    background:
        linear-gradient(rgba(255, 254, 249, .96), rgba(255, 254, 249, .96)),
        repeating-linear-gradient(0deg, transparent 0 25px, rgba(79, 103, 87, .045) 26px);
}

.content-action-main,
.content-icon-action,
.content-more-menu summary {
    border-color: color-mix(in srgb, var(--theme-primary, #247253) 24%, #d8ddd7);
    background: #fffef9;
}

.content-action-main:hover,
.content-icon-action:hover,
.content-more-menu summary:hover {
    border-color: var(--theme-primary, #247253);
    background: var(--theme-soft, #edf6f1);
}

/* Neutral actions and menus above neighboring cards */
.content-row-actions .content-action-main,
.content-row-actions .content-icon-action,
.content-more-menu button,
.publication-card__actions button,
.publication-status-actions button,
.reports-manager__actions .content-secondary-action button {
    border-color: #d5ddd7 !important;
    background: #fffefb !important;
    color: #344a43 !important;
    box-shadow: none !important;
}

.content-row-actions .content-action-main:hover,
.content-row-actions .content-icon-action:hover,
.content-more-menu button:hover,
.publication-card__actions button:hover,
.publication-status-actions button:hover,
.reports-manager__actions .content-secondary-action button:hover {
    border-color: #aebcb4 !important;
    background: #f3f5f2 !important;
    color: #263c35 !important;
}

.content-more-menu[open] {
    z-index: 300;
}

.content-more-menu[open] > div {
    z-index: 310;
}

.report-dossier-card:has(.content-more-menu[open]),
.content-library-row:has(.content-more-menu[open]) {
    z-index: 250;
}

.reports-manager__grid,
.report-dossier-card,
.content-library-list,
.content-library-row {
    overflow: visible;
}

/* Flat institutional document library */
.documents-filter-bar.content-toolbar {
    grid-template-columns: minmax(360px, 2.2fr) 135px 135px 135px 145px 145px auto;
    gap: 12px;
    padding: 15px 24px 17px;
    border-bottom: 1px solid #e2e9e4;
    background: #fff;
}

.documents-filter-bar.content-toolbar label {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    gap: 6px;
    color: #74847f;
    font-size: .64rem;
    font-weight: 500;
    letter-spacing: .08em;
}

.documents-filter-bar.content-toolbar input,
.documents-filter-bar.content-toolbar select {
    width: 100%;
    height: 42px;
    padding-inline: 11px;
    border: 1px solid #d8e3dc;
    border-radius: 3px;
    background: #f9fbfa;
    color: #243c35;
    box-shadow: none;
    font-size: .82rem;
    font-weight: 400;
}

.documents-filter-bar.content-toolbar input:focus,
.documents-filter-bar.content-toolbar select:focus {
    outline: none;
    border-color: var(--theme-primary, #2d7b5d);
    background: #fff;
    box-shadow: 0 0 0 2px rgba(45, 123, 93, .08);
}

.documents-filter-bar .content-toolbar__count {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding-left: 14px;
    border-left: 1px solid #e1e9e4;
    color: #60736d;
}

[data-document-results] {
    position: relative;
    min-height: 160px;
    transition: opacity .16s ease;
}

[data-document-results].is-loading {
    opacity: .46;
    pointer-events: none;
}

[data-document-results].is-loading::after {
    content: "Mise à jour…";
    position: absolute;
    top: 18px;
    left: 50%;
    z-index: 5;
    transform: translateX(-50%);
    padding: 8px 14px;
    border: 1px solid #d5e3da;
    background: #fff;
    color: #315d50;
    box-shadow: 0 8px 24px rgba(25, 70, 56, .12);
}

.content-hub--documents .documents-list.content-library-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 22px 24px 24px;
}

.content-hub--documents .documents-list .document-card {
    position: relative;
    grid-template-columns: 62px minmax(0, 1fr);
    align-items: start;
    gap: 15px;
    min-height: 230px;
    margin: 0;
    padding: 18px;
    overflow: visible;
    border: 1px solid #dce6df;
    border-radius: 9px;
    background: linear-gradient(145deg, #ffffff 0%, #ffffff 72%, #f7faf8 100%);
    box-shadow: 0 6px 18px rgba(31, 65, 52, .055);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.content-hub--documents .documents-list .document-card::before {
    content: "";
    position: absolute;
    inset: -1px auto -1px -1px;
    width: 3px;
    border-radius: 9px 0 0 9px;
    background: color-mix(in srgb, var(--theme-primary, #247253) 68%, #fff);
}

.content-hub--documents .documents-list .document-card:hover {
    z-index: 2;
    border-color: color-mix(in srgb, var(--theme-primary, #247253) 32%, #dce6df);
    background: #fff;
    box-shadow: 0 13px 30px rgba(31, 65, 52, .1);
    transform: translateY(-2px);
}

.content-hub--documents .document-card__body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 192px;
    padding: 0;
}

.content-hub--documents .document-card__body > p {
    display: -webkit-box;
    min-height: 38px;
    margin: 5px 0 7px;
    overflow: hidden;
    color: #667871;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.content-hub--documents .document-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 10px;
    min-height: 26px;
    margin: 0 0 9px;
}

.content-hub--documents .document-card__meta > span:not(.publication-status) {
    position: relative;
    padding: 0;
    border: 0;
    background: transparent;
    color: #71817b;
    font-size: .68rem;
    letter-spacing: .025em;
}

.content-hub--documents .document-card__meta > span:not(.publication-status):not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -6px;
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: #9cac9f;
}

.content-hub--documents .document-card h3 {
    margin: 0 0 4px;
    color: #203b32;
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.3;
}

.content-hub--documents .document-card h4 {
    margin: 0;
    color: #74847e;
    font-size: .75rem;
    font-weight: 500;
}

.content-hub--documents .document-card small {
    color: #667a72;
    font-size: .73rem;
}

.content-hub--documents .document-card em {
    max-width: 100%;
    margin-top: 7px;
    overflow: hidden;
    color: var(--theme-primary, #247253);
    font-size: .7rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.content-hub--documents .document-card__actions {
    position: static;
    justify-content: flex-start;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #e7ede9;
    transform: none;
}

.content-hub--documents .document-card__icon {
    position: relative;
    display: grid;
    width: 58px;
    height: 72px;
    place-items: center;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--theme-deep, #174b3a);
}

.content-hub--documents .document-card__icon::after {
    display: none;
}

.content-hub--documents .document-card__icon svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    fill: color-mix(in srgb, var(--theme-soft, #edf6f1) 72%, #fff);
    stroke: color-mix(in srgb, var(--theme-primary, #247253) 57%, #8ca59a);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.35;
}

.content-hub--documents .document-card__icon span {
    position: relative;
    z-index: 1;
    margin-top: 18px;
    padding: 3px 5px;
    border-radius: 3px;
    background: var(--theme-primary, #247253);
    color: #fff;
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .05em;
}

.document-file-drop {
    padding: 17px !important;
    border: 1px dashed #b8cdc1;
    border-radius: 4px;
    background: #f8fbf9;
    transition: border-color .15s ease, background-color .15s ease;
}

.document-file-drop.is-dragging {
    border-color: var(--theme-primary, #2d7b5d);
    background: var(--theme-pale, #eff7f2);
}

.document-version-history {
    margin: 0 18px 18px;
    border-top: 1px solid #e2ebe5;
}

.document-version-history summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 13px 2px;
    color: #36584d;
    cursor: pointer;
    font-size: .8rem;
}

.document-version-history summary span {
    display: grid;
    min-width: 25px;
    height: 25px;
    place-items: center;
    border: 1px solid #d7e3dc;
    border-radius: 50%;
}

.document-version-history > div {
    display: grid;
    padding-bottom: 10px;
}

.document-version-history a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 10px 4px;
    border-top: 1px solid #edf1ee;
    color: #254b3e;
    text-decoration: none;
}

.document-version-history a small {
    color: #71847d;
}

.reports-manager__actions > button.content-secondary-action {
    min-height: 38px;
    padding: 0 14px;
    border: 1px solid #d5ddd7;
    border-radius: 4px;
    background: #fff;
    color: #344a43;
    cursor: pointer;
}

@media (max-width: 1360px) {
    .documents-filter-bar.content-toolbar {
        grid-template-columns: minmax(300px, 1.8fr) repeat(3, 130px) repeat(2, 140px);
    }
    .documents-filter-bar .content-toolbar__count { display: none; }
}

@media (max-width: 900px) {
    .documents-filter-bar.content-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .documents-filter-bar .content-toolbar__search { grid-column: 1 / -1; }
    .content-hub--documents .documents-list.content-library-list { grid-template-columns: 1fr; }
    .document-bulk-modal form > footer { flex-wrap: wrap; }
}

@media (max-width: 620px) {
    .documents-filter-bar.content-toolbar { grid-template-columns: 1fr; padding-inline: 16px; }
    .documents-filter-bar .content-toolbar__search { grid-column: auto; }
    .content-hub--documents .documents-list.content-library-list { padding: 16px; }
    .content-hub--documents .documents-list .document-card { grid-template-columns: 48px minmax(0, 1fr); min-height: 210px; padding: 15px; }
    .content-hub--documents .document-card__icon { width: 46px; height: 58px; }
    .content-hub--documents .document-card__body { min-height: 178px; }
}

/* Institutional editorial newsroom */
.content-hub--articles {
    background: #fff;
}

.editorial-status-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    border-top: 1px solid #e5ebe7;
    border-bottom: 1px solid #e5ebe7;
    background: #f8faf9;
}

.editorial-status-strip > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 64px;
    padding: 12px 22px;
    border-right: 1px solid #e1e8e3;
}

.editorial-status-strip > div:last-child { border-right: 0; }
.editorial-status-strip span { color: #667a73; font-size: .76rem; }
.editorial-status-strip strong { color: #1d4539; font-size: 1.4rem; font-weight: 500; }

.publications-toolbar.content-toolbar {
    grid-template-columns: minmax(460px, 2.5fr) 170px 150px 150px auto;
    gap: 14px;
    padding: 15px 24px 17px;
    border-bottom: 1px solid #e2e9e4;
    background: #fff;
}

.publications-toolbar.content-toolbar label {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
    gap: 6px;
    color: #74847f;
    font-size: .64rem;
    font-weight: 500;
    letter-spacing: .08em;
}

.publications-toolbar.content-toolbar input,
.publications-toolbar.content-toolbar select {
    width: 100%;
    height: 42px;
    padding-inline: 12px;
    border: 1px solid #d8e3dc;
    border-radius: 3px;
    background: #f9fbfa;
    color: #243c35;
    box-shadow: none;
    font-size: .84rem;
    font-weight: 400;
}

.publications-toolbar.content-toolbar input:focus,
.publications-toolbar.content-toolbar select:focus {
    outline: none;
    border-color: var(--theme-primary, #2d7b5d);
    background: #fff;
    box-shadow: 0 0 0 2px rgba(45, 123, 93, .08);
}

.publications-toolbar .content-toolbar__count {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    padding-left: 15px;
    border-left: 1px solid #e1e9e4;
}

[data-publication-results] {
    position: relative;
    min-height: 220px;
    transition: opacity .16s ease;
}

[data-publication-results].is-loading { opacity: .45; pointer-events: none; }
[data-publication-results].is-loading::after {
    content: "Mise à jour de la rédaction…";
    position: absolute;
    top: 20px;
    left: 50%;
    z-index: 8;
    transform: translateX(-50%);
    padding: 9px 15px;
    border: 1px solid #d5e3da;
    background: #fff;
    color: #315d50;
    box-shadow: 0 8px 24px rgba(25, 70, 56, .12);
}

.content-hub--articles .content-editorial-grid {
    grid-template-columns: repeat(3, minmax(260px, 1fr));
    gap: 18px;
    padding: 22px 24px 26px;
}

.content-hub--articles .publication-card,
.content-hub--articles .publication-card--polished {
    position: relative;
    display: flex;
    min-height: 480px;
    flex-direction: column;
    overflow: visible;
    border: 1px solid #dce5df;
    border-radius: 5px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(28, 59, 49, .07);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.content-hub--articles .publication-card::before,
.content-hub--articles .publication-card::after { display: none; }

.content-hub--articles .publication-card:hover {
    z-index: 5;
    transform: translateY(-3px);
    border-color: #bfd1c6;
    box-shadow: 0 15px 36px rgba(28, 59, 49, .12);
}

.content-hub--articles .publication-card__media {
    position: relative;
    height: 205px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 4px 4px 0 0;
    background: #edf3ef;
}

.content-hub--articles .publication-card__media img,
.content-hub--articles .publication-card__placeholder {
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 0;
    object-fit: cover;
}

.content-hub--articles .publication-card__placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #eef4f0, #dde9e2);
    color: #5f756d;
    font-size: .8rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.content-hub--articles .publication-card__media .publication-status {
    position: absolute;
    top: 13px;
    left: 13px;
    backdrop-filter: blur(8px);
}

.content-hub--articles .publication-card__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 19px;
    background: #fff;
}

.content-hub--articles .publication-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
    margin-bottom: 11px;
    color: #71837d;
    font-size: .69rem;
}

.content-hub--articles .publication-card h3 {
    margin: 0 0 7px;
    color: #183d32;
    font-size: 1.12rem;
    font-weight: 600;
    line-height: 1.32;
}

.content-hub--articles .publication-card h4 {
    margin: 0 0 9px;
    color: #587068;
    font-size: .82rem;
    font-weight: 500;
}

.content-hub--articles .publication-card__content > p {
    display: -webkit-box;
    margin: 0 0 14px;
    overflow: hidden;
    color: #657871;
    font-size: .81rem;
    line-height: 1.58;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.content-hub--articles .publication-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #edf1ee;
    color: #71827c;
    font-size: .7rem;
}

.content-hub--articles .publication-card__footer small {
    max-width: 65%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.content-hub--articles .publication-card__actions {
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid #edf1ee;
}

.content-action-secondary {
    display: inline-flex;
    min-height: 35px;
    align-items: center;
    justify-content: center;
    padding: 0 12px;
    border: 1px solid #d6e1da;
    border-radius: 4px;
    background: #f8faf9;
    color: #3d574e;
    cursor: pointer;
    font-size: .79rem;
}

.content-hub--articles .publication-inline-editor {
    margin: 22px 24px;
    overflow: visible;
    border: 1px solid #ccdcd2;
    border-radius: 5px;
    background: #f7faf8;
    box-shadow: 0 20px 55px rgba(27, 63, 50, .14);
}

.content-hub--articles .publication-inline-editor > header {
    padding: 20px 24px;
    border-bottom: 1px solid #dce7e0;
    background: #fff;
}

.content-hub--articles .publication-form-grid {
    gap: 14px;
    padding: 22px 24px;
}

.content-hub--articles .publication-form-grid input,
.content-hub--articles .publication-form-grid select,
.content-hub--articles .publication-form-grid textarea {
    border-radius: 3px;
    background: #fff;
}

.content-hub--articles .rich-editor-panel {
    margin: 0 24px 22px;
    overflow: hidden;
    border: 1px solid #cfdcd4;
    border-radius: 4px;
    background: #fff;
}

.content-hub--articles .rich-editor-toolbar {
    position: sticky;
    top: 0;
    z-index: 8;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 9px;
    border-bottom: 1px solid #dfe8e2;
    background: #f5f8f6;
}

.content-hub--articles .rich-editor-group {
    display: inline-flex;
    gap: 3px;
    padding-right: 7px;
    border-right: 1px solid #d9e3dc;
}

.content-hub--articles .rich-editor-group:last-child { border-right: 0; }
.content-hub--articles .rich-editor-toolbar button,
.content-hub--articles .rich-editor-toolbar select {
    min-width: 34px;
    height: 34px;
    padding: 0 8px;
    border: 1px solid transparent;
    border-radius: 3px;
    background: transparent;
    color: #29463c;
}

.content-hub--articles .rich-editor-toolbar button:hover,
.content-hub--articles .rich-editor-toolbar select:hover {
    border-color: #cad8cf;
    background: #fff;
}

.content-hub--articles .rich-editor {
    min-height: 360px;
    padding: 30px min(7vw, 72px);
    outline: 0;
    color: #253d35;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
    line-height: 1.75;
}

.content-hub--articles .rich-editor blockquote,
.publication-reader-body blockquote {
    margin: 22px 0;
    padding: 13px 20px;
    border-left: 3px solid var(--theme-primary, #2d7b5d);
    background: #f3f7f4;
    color: #405a51;
    font-style: italic;
}

.rich-editor-status {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 9px 12px;
    border-top: 1px solid #e1e9e4;
    background: #f8faf9;
    color: #6b7e77;
    font-size: .72rem;
}

.rich-editor-status span:nth-child(2) { margin-left: auto; }
.rich-editor-status button { border: 0; background: transparent; color: #245b49; cursor: pointer; font-size: .72rem; }

.content-hub--articles .rich-editor-panel.is-fullscreen {
    position: fixed;
    inset: 16px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    margin: 0;
    box-shadow: 0 25px 80px rgba(15, 44, 35, .3);
}

.content-hub--articles .rich-editor-panel.is-fullscreen .rich-editor {
    flex: 1;
    overflow-y: auto;
}

.publication-reader-modal__dialog {
    width: min(980px, calc(100vw - 36px));
    max-height: calc(100vh - 36px);
    border-radius: 5px;
}

.publication-reader-body {
    max-width: 760px;
    margin-inline: auto;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
    line-height: 1.8;
}

@media (max-width: 1180px) {
    .publications-toolbar.content-toolbar { grid-template-columns: minmax(300px, 1.7fr) 160px 145px 145px; }
    .publications-toolbar .content-toolbar__count { display: none; }
    .content-hub--articles .content-editorial-grid { grid-template-columns: repeat(2, minmax(260px, 1fr)); }
}

@media (max-width: 720px) {
    .editorial-status-strip { grid-template-columns: repeat(2, 1fr); }
    .editorial-status-strip > div:nth-child(2) { border-right: 0; }
    .publications-toolbar.content-toolbar { grid-template-columns: 1fr; padding-inline: 16px; }
    .content-hub--articles .content-editorial-grid { grid-template-columns: 1fr; padding-inline: 16px; }
    .content-hub--articles .publication-inline-editor { margin-inline: 12px; }
    .content-hub--articles .publication-form-grid { grid-template-columns: 1fr; padding-inline: 16px; }
    .content-hub--articles .rich-editor-panel { margin-inline: 16px; }
    .content-hub--articles .rich-editor { padding: 22px 18px; }
}

.content-view-count {
    display: inline-flex !important;
    width: auto !important;
    height: auto !important;
    align-items: center;
    gap: 5px;
    color: #587169 !important;
    white-space: nowrap;
}

.content-view-count svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.publication-card__audience {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
}

.content-hub--articles .publication-card__media > .publication-status {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: 28px !important;
    min-height: 28px !important;
    align-items: center;
    padding: 0 10px !important;
    border-radius: 14px !important;
    writing-mode: horizontal-tb !important;
    white-space: nowrap;
}

.content-hub--articles .publication-card__meta > .publication-status {
    display: inline-flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: 24px !important;
    min-height: 24px !important;
    align-items: center;
    padding: 0 9px !important;
    border-radius: 12px !important;
    writing-mode: horizontal-tb !important;
    white-space: nowrap;
}

.content-hub--articles .content-editorial-grid > .publication-inline-editor {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
}

.publications-manager.publication-panel-active .publication-list > .publication-card {
    display: none;
}

.publications-manager.publication-panel-active .publication-list {
    grid-template-columns: minmax(0, 1fr);
}

.publications-manager.publication-panel-active .publication-inline-editor:not([hidden]) {
    display: block;
    width: auto;
    margin: 22px 24px;
}

.publications-manager.publication-panel-active .publication-inline-editor:not([hidden]) form {
    width: 100%;
}

.publications-manager.publication-panel-active .publication-inline-editor:not([hidden]) .publication-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 720px) {
    .publications-manager.publication-panel-active .publication-inline-editor:not([hidden]) {
        margin-inline: 12px;
    }
    .publications-manager.publication-panel-active .publication-inline-editor:not([hidden]) .publication-form-grid {
        grid-template-columns: 1fr;
    }
}
.institution-stat-strip{display:grid;grid-template-columns:repeat(7,minmax(108px,1fr));gap:10px;margin:0 0 22px;overflow-x:auto;scrollbar-width:thin}.institution-stat-strip article{min-width:108px;min-height:104px;padding:13px 14px;border:1px solid var(--theme-border,#d8e4dc);border-radius:10px;background:#fff;box-sizing:border-box;display:grid;grid-template-columns:28px 1fr;grid-template-rows:30px 1fr;align-items:center;box-shadow:0 5px 16px rgba(31,55,46,.035)}.institution-stat-strip article i{display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--theme-border,#d8e4dc);border-radius:7px;background:var(--theme-pale,#f1f6f2);color:var(--theme-primary,#28684e);font-size:12px;font-style:normal}.institution-stat-strip article span{padding-left:7px;color:#70827b;font-size:10px;line-height:1.15}.institution-stat-strip article strong{grid-column:1/3;align-self:end;color:#203b33;font-size:27px;line-height:1;font-weight:400;letter-spacing:-.035em}.institution-stat-strip article:hover{border-color:var(--theme-primary,#6d9c84);box-shadow:0 8px 20px rgba(31,55,46,.07)}@media(max-width:1100px){.institution-stat-strip{grid-template-columns:repeat(7,118px);padding-bottom:6px}}

.institution-stat-strip{grid-template-columns:repeat(7,minmax(82px,96px));gap:8px;justify-content:start}.institution-stat-strip article{position:relative;display:block;width:100%;min-width:82px;min-height:82px;aspect-ratio:1;padding:10px;border-radius:9px}.institution-stat-strip article i{width:25px;height:25px;border:0;border-radius:6px}.institution-stat-strip article i svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.institution-stat-strip article strong{position:absolute;right:10px;top:11px;font-size:20px}.institution-stat-strip article span{position:absolute;left:10px;right:8px;bottom:10px;padding:0;font-size:9px;line-height:1.15;white-space:normal}.institution-stat-strip article:hover{transform:translateY(-1px)}@media(max-width:1100px){.institution-stat-strip{grid-template-columns:repeat(7,88px)}}

.institution-stat-strip article{--tile-color:#27785a;--tile-soft:#edf7f1;--tile-border:#cce4d6;border-color:var(--tile-border);background:linear-gradient(145deg,#fff 20%,var(--tile-soft) 100%);box-shadow:0 7px 18px rgba(38,65,55,.07);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.institution-stat-strip article::after{content:"";position:absolute;width:42px;height:42px;right:-17px;bottom:-18px;border-radius:50%;background:var(--tile-color);opacity:.08}.institution-stat-strip article i{position:absolute;left:9px;top:9px;background:var(--tile-soft);color:var(--tile-color);box-shadow:inset 0 0 0 1px var(--tile-border)}.institution-stat-strip article strong{left:8px;right:8px;top:34px;text-align:center;color:var(--tile-color);font-size:25px;font-weight:500;letter-spacing:-.045em}.institution-stat-strip article span{left:5px;right:5px;bottom:8px;text-align:center;color:#536a61;font-size:8.5px;font-weight:500}.institution-stat-strip article:hover{transform:translateY(-3px);border-color:var(--tile-color);box-shadow:0 12px 24px rgba(38,65,55,.12)}.institution-stat-strip article:nth-child(1){--tile-color:#187653;--tile-soft:#e9f6ef;--tile-border:#c9e5d7}.institution-stat-strip article:nth-child(2){--tile-color:#286f9e;--tile-soft:#eaf3f9;--tile-border:#cadfea}.institution-stat-strip article:nth-child(3){--tile-color:#986523;--tile-soft:#fbf2e4;--tile-border:#ead7b8}.institution-stat-strip article:nth-child(4){--tile-color:#7557a5;--tile-soft:#f2edf8;--tile-border:#ddd1eb}.institution-stat-strip article:nth-child(5){--tile-color:#b34f61;--tile-soft:#faecef;--tile-border:#edcfd5}.institution-stat-strip article:nth-child(6){--tile-color:#157a82;--tile-soft:#e7f5f5;--tile-border:#c6e3e3}.institution-stat-strip article:nth-child(7){--tile-color:#596b78;--tile-soft:#edf1f3;--tile-border:#d5dee3}.institution-stat-strip article:nth-child(8){--tile-color:#416987;--tile-soft:#edf4f8;--tile-border:#cfdee8}.institution-stat-strip .institution-stat-storage strong{font-size:17px;letter-spacing:-.025em;top:38px;white-space:nowrap}
.institution-stat-strip{grid-template-columns:repeat(8,minmax(82px,96px))}@media(max-width:1100px){.institution-stat-strip{grid-template-columns:repeat(8,88px)}}

/* Stockage organisationnel */
.institution-services-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.institution-services-heading form{margin:0}
.storage-recalculate-button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid var(--theme-border,#cfe0d6);border-radius:8px;background:#fff;color:var(--theme-deep,#174c3a);font:inherit;font-size:12px;cursor:pointer}
.storage-recalculate-button:hover{background:var(--theme-pale,#f2f8f4);border-color:var(--theme-primary,#287658)}
.storage-recalculate-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service-card-storage{display:inline-flex!important;align-items:center;align-self:flex-start;margin-top:auto;padding:4px 8px;border:1px solid var(--card-theme-border,#d8e5dc);border-radius:999px;background:var(--card-theme-soft,#f3f8f5);color:var(--card-theme,#315f4c);font-size:10px!important;line-height:1.2}
.activity-storage-badge{margin-left:auto;padding:3px 6px;border:1px solid var(--theme-border,#d5e3d9);border-radius:999px;color:#60756d;font-size:9px;font-weight:500;white-space:nowrap}

/* Connexion publique compacte */
.login-compact-body{background:linear-gradient(135deg,rgba(7,38,30,.66),rgba(19,66,49,.42)),var(--login-background) center/cover fixed no-repeat}
.login-compact-page{padding:24px}
.login-compact-card{position:relative;width:min(430px,100%);padding:30px;border:1px solid rgba(255,255,255,.72);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 28px 80px rgba(5,30,22,.34);backdrop-filter:blur(8px)}
.login-compact-close{position:absolute;top:14px;right:14px;display:grid;width:32px;height:32px;place-items:center;border:1px solid #dce6e0;border-radius:50%;background:#f8fbf9;color:#64756f;font-size:22px;line-height:1;text-decoration:none}
.login-compact-close:hover{border-color:#bfcfc6;background:#eef5f1;color:#244a3d}
.login-compact-header{text-align:center}
.login-compact-header img{display:block;width:152px;max-height:72px;margin:0 auto 20px;object-fit:contain}
.login-compact-header span{display:inline-block;color:#71827c;font-size:10px;letter-spacing:1.6px;text-transform:uppercase}
.login-compact-header h1{margin:7px 0 6px;color:#243431;font-size:25px;font-weight:550;letter-spacing:-.35px}
.login-compact-header p{margin:0 0 23px;color:#778680;font-size:13px}
.login-compact-form{gap:13px}
.login-compact-form input{height:44px;border-radius:8px;background:#fff}
.login-compact-form button{height:44px;border-radius:8px;background:#174b61;font-weight:600}
.login-compact-form button:hover{background:#0f3c50}
.login-compact-footer{display:flex;justify-content:space-between;gap:14px;margin-top:20px;padding-top:16px;border-top:1px solid #e8eeea;font-size:12px}
.login-compact-footer a{color:#315f50;text-decoration:none}
.login-compact-footer a:hover{text-decoration:underline}
@media(max-width:520px){.login-compact-page{padding:14px}.login-compact-card{padding:26px 20px 22px}.login-compact-footer{align-items:flex-start;flex-direction:column}}
.password-visibility-field{position:relative;display:block;width:100%;padding:0!important;background:transparent!important;letter-spacing:normal!important;text-transform:none!important}
.password-visibility-field input{padding-right:48px!important}
.password-visibility-field button{position:absolute!important;top:50%;right:7px;display:grid!important;width:34px!important;height:34px!important;min-height:0!important;margin:0!important;padding:0!important;place-items:center;border:0!important;border-radius:7px!important;background:transparent!important;color:#61736c!important;box-shadow:none!important;transform:translateY(-50%);cursor:pointer}
.password-visibility-field button:hover{background:#eef4f0!important;color:#174b61!important}
.password-visibility-field svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.password-visibility-field .password-eye-closed{display:none}
.password-visibility-field button[aria-pressed="true"] .password-eye-open{display:none}
.password-visibility-field button[aria-pressed="true"] .password-eye-closed{display:block}
