: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;
}

.activity-form-strip {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    margin: 0 0 14px;
    padding: 12px 14px;
    border: 1px solid color-mix(in srgb, var(--workspace-accent, #1b7658) 22%, #dfe8e2);
    background: linear-gradient(90deg, #fbfdfb, color-mix(in srgb, var(--workspace-soft, #eef6f0) 58%, #fff));
}

.activity-form-strip > header span,
.activity-form-strip > header small {
    display: block;
}

.activity-form-strip > header span {
    color: #23453b;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.activity-form-strip > header small {
    margin-top: 4px;
    color: #7a8d86;
    font-size: 11px;
}

.activity-form-strip nav {
    display: flex;
    gap: 8px;
    min-width: 0;
    overflow-x: auto;
    padding: 2px 0;
}

.activity-form-strip nav a {
    display: grid;
    grid-template-columns: 34px minmax(130px, auto);
    gap: 9px;
    align-items: center;
    flex: 0 0 auto;
    min-height: 48px;
    padding: 6px 12px 6px 7px;
    border: 1px solid #dce8e1;
    background: rgba(255, 255, 255, .92);
    color: #183d32;
    text-decoration: none;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.activity-form-strip nav a:hover {
    border-color: var(--workspace-accent, #1b7658);
    box-shadow: 0 7px 18px rgba(28, 76, 60, .09);
    transform: translateY(-1px);
}

.activity-form-strip nav i {
    display: grid;
    width: 32px;
    height: 32px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--workspace-accent, #1b7658) 20%, #dce8e1);
    background: var(--workspace-soft, #eef6f0);
    color: var(--workspace-accent, #1b7658);
    font-style: normal;
    font-size: 14px;
}

.activity-form-strip .survey-form-icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.dpv-support-questionnaire .questionnaire-sheet {
    border-top: 4px solid #3d7a36;
    background: linear-gradient(180deg, #fbfdf9 0, #fff 130px);
}

.dpv-support-questionnaire .questionnaire-letterhead__code {
    border-color: #bdd2b8;
    color: #315f2d;
}

.dpv-form-purpose {
    margin: 0;
    padding: 12px 18px;
    border-bottom: 1px solid #dce8d9;
    background: #f2f8f0;
    color: #566b52;
    font-size: 12px;
}

.dpa-operations-questionnaire .questionnaire-sheet {
    border-top: 4px solid #9a5a2a;
    background: linear-gradient(180deg, #fffaf6 0, #fff 130px);
}

.dpa-operations-questionnaire .questionnaire-letterhead__code {
    border-color: #dfc3ad;
    color: #75431f;
}

.dpaq-fisheries-questionnaire { --form-accent: #176b70; --form-accent-soft: #eaf7f4; }
.dpaq-fisheries-questionnaire .questionnaire-section { border-color: #b8d8d4; }
.dpaq-fisheries-questionnaire .questionnaire-section legend b { background: #176b70; }
.dpaq-repeatable__rows { display: grid; gap: 10px; margin-top: 14px; }
.dpaq-repeatable__row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) auto;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border-left: 3px solid #58a69d;
    background: #f4faf8;
}
.dpaq-repeatable__row label { display: grid; gap: 6px; color: #385a55; font-size: 11px; font-weight: 650; }
.dpaq-repeatable__row input { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #bdd2cd; background: #fff; }
.dpaq-repeatable__remove,
.dpaq-repeatable__add { border: 1px solid #73aaa3; color: #145f64; background: #fff; cursor: pointer; }
.dpaq-repeatable__remove { width: 38px; min-height: 42px; color: #a1372e; border-color: #dfb2ad; font-size: 22px; }
.dpaq-repeatable__add { margin-top: 12px; min-height: 40px; padding: 0 16px; font-weight: 700; }

@media (max-width: 680px) {
    .dpaq-repeatable__row { grid-template-columns: 1fr; }
    .dpaq-repeatable__remove { width: 100%; }
}

.dpa-form-purpose {
    margin: 0;
    padding: 12px 18px;
    border-bottom: 1px solid #ead9cc;
    background: #fff5ed;
    color: #765d4b;
    font-size: 12px;
}

.activity-form-strip nav span,
.activity-form-strip nav strong,
.activity-form-strip nav small {
    display: block;
}

.activity-form-strip nav strong {
    max-width: 210px;
    overflow: hidden;
    color: #193c32;
    font-size: 12px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.activity-form-strip nav small {
    margin-top: 2px;
    color: #84938e;
    font-size: 10px;
}

.sia-nav-icon--forms svg { fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.forms-workspace { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 22px; padding: 0 24px 28px; }
.forms-workspace__sidebar,
.forms-workspace__main { border: 1px solid #dce6e0; border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(31, 67, 54, .055); }
.forms-workspace__sidebar { align-self: start; padding: 22px; }
.forms-workspace__sidebar > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 4px 18px; border-bottom: 1px solid #e3ebe6; }
.forms-workspace__sidebar > header span { color: var(--theme-primary, #176b50); font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.forms-workspace__sidebar > header strong { display: grid; place-items: center; min-width: 28px; height: 28px; border-radius: 50%; background: var(--theme-soft, #edf7f0); color: var(--theme-primary, #176b50); font-size: 12px; }
.forms-workspace__sidebar nav { display: grid; gap: 16px; padding-top: 18px; }
.forms-workspace__sidebar nav a { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 82px; padding: 13px 16px; border: 1px solid #dce7e0; border-radius: 11px; background: #fff; color: #29463d; text-decoration: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.forms-workspace__sidebar nav a:hover { border-color: var(--theme-border, #bcdac9); transform: translateY(-1px); box-shadow: 0 8px 18px rgba(31, 67, 54, .07); }
.forms-workspace__sidebar nav a.active { border: 2px solid var(--theme-primary, #176b50); background: var(--theme-soft, #edf7f0); box-shadow: 0 8px 20px rgba(31, 90, 60, .1); }
.forms-workspace__sidebar nav a.active::after { position: absolute; z-index: 2; top: 50%; right: -16px; width: 0; height: 0; border-top: 14px solid transparent; border-bottom: 14px solid transparent; border-left: 16px solid var(--theme-primary, #176b50); content: ""; transform: translateY(-50%); }
.forms-workspace__sidebar nav i { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; background: var(--theme-pale, #f4faf6); color: var(--theme-primary, #176b50); }
.forms-workspace__sidebar nav span,
.forms-workspace__sidebar nav strong,
.forms-workspace__sidebar nav small { display: block; min-width: 0; }
.forms-workspace__sidebar nav strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.forms-workspace__sidebar nav small { margin-top: 4px; color: #7c8d87; font-size: 11px; }
.forms-workspace__sidebar nav em { display: inline-block; margin-top: 8px; padding: 4px 9px; border-radius: 999px; background: var(--theme-primary, #176b50); color: #fff; font-size: 9px; font-style: normal; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.forms-workspace__sidebar nav > p { margin: 6px; color: #7c8d87; font-size: 12px; line-height: 1.5; }
.forms-workspace__main { min-height: 430px; padding: clamp(28px, 3.2vw, 46px); }
.forms-workspace__main > header { max-width: 760px; }
.forms-workspace__main > header > span { color: var(--theme-primary, #176b50); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.forms-workspace__main h2 { margin: 0 0 8px; color: #17382e; font-size: clamp(26px, 3vw, 40px); font-weight: 600; }
.forms-workspace__main header p { margin: 0; color: #6b7f77; font-size: 13px; line-height: 1.65; }
.forms-workspace__summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 24px 0 32px; }
.forms-workspace__summary > div { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 90px; padding: 16px; border: 1px solid #dfe8e2; border-radius: 11px; background: #fbfcfb; }
.forms-workspace__summary > div > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--theme-soft, #edf7f0); color: var(--theme-primary, #176b50); }
.forms-workspace__summary svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.forms-workspace__summary span { display: grid; gap: 6px; min-width: 0; }
.forms-workspace__summary small { color: #7a8c85; font-size: 10px; text-transform: uppercase; }
.forms-workspace__summary strong { overflow: hidden; color: #203d34; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.forms-workspace__open { min-height: 46px; margin-top: 24px; padding: 10px 22px; border: 1px solid var(--theme-primary, #176b50); border-radius: 9px; background: var(--theme-primary, #176b50); box-shadow: 0 8px 18px rgba(31, 92, 57, .16); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.forms-workspace__open:hover { filter: brightness(.95); transform: translateY(-1px); }
.forms-workspace__recent { margin-top: 4px; }
.forms-workspace__recent header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 1px solid #dfe8e2; }
.forms-workspace__recent header span { color: var(--theme-primary, #176b50); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.forms-workspace__recent header a { color: var(--theme-primary, #176b50); font-size: 11px; font-weight: 600; text-decoration: none; }
.forms-workspace__recent p { margin: 14px 0 0; color: #788a84; font-size: 11px; }
@media (max-width: 850px) {
    .forms-workspace { grid-template-columns: 1fr; padding-inline: 14px; }
    .forms-workspace__sidebar nav { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
    .forms-workspace__sidebar nav a.active::after { top: auto; right: auto; bottom: -16px; left: 50%; border-top: 16px solid var(--theme-primary, #176b50); border-right: 14px solid transparent; border-bottom: 0; border-left: 14px solid transparent; transform: translateX(-50%); }
}
@media (max-width: 560px) {
    .forms-workspace__summary { grid-template-columns: 1fr; }
}

.sima-table-line > a:first-child {
    grid-template-columns: 30px minmax(0, 1fr) auto;
}

.sima-table-line.has-entry-form {
    border-left: 3px solid #aeb8b3;
}

.sima-table-line.has-entry-form.active {
    border-left-color: #7f8e87;
}

@media (max-width: 820px) {
    .activity-form-strip {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}

.account-module-profile-form input[type="checkbox"] {
    width: 14px;
    min-width: 14px;
    height: 14px;
    min-height: 14px;
    margin: 0 5px 0 0;
    padding: 0;
    border-radius: 3px;
    accent-color: #176b52;
    vertical-align: middle;
}

.account-module-photo-field {
    display: grid;
    gap: 7px;
    color: #53615e;
    font-size: 12px;
    font-weight: 500;
}

.account-profile-photo-control {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px;
    border: 1px solid #dfe8df;
    border-radius: 8px;
    background: #fff;
}

.account-profile-photo-preview {
    display: grid;
    flex: 0 0 64px;
    width: 64px;
    height: 64px;
    place-items: center;
    overflow: hidden;
    border: 1px solid #d8e5dc;
    border-radius: 50%;
    background: #eef6f1;
}

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

.account-profile-photo-preview i {
    color: #176b52;
    font-size: 17px;
    font-style: normal;
    font-weight: 600;
}

.account-profile-photo-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    min-width: 0;
}

.account-profile-photo-upload {
    display: inline-flex !important;
    align-items: center;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid #bed7c7;
    border-radius: 7px;
    background: #eff8f2;
    color: #176b52 !important;
    cursor: pointer;
    font-size: 11px !important;
}

.account-profile-photo-upload input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.account-profile-photo-remove {
    display: inline-flex !important;
    grid-template-columns: none !important;
    flex-direction: row;
    align-items: center;
    gap: 5px !important;
    color: #76534d !important;
    cursor: pointer;
    font-size: 10px !important;
}

.account-profile-photo-actions>small {
    flex-basis: 100%;
    color: #8d9a96;
    font-size: 10px;
    font-weight: 400;
}

.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-row.is-loading {
    cursor: progress;
    opacity: .68;
}

.map-layer-row.has-error {
    border-color: #e3b8ad;
    background: #fff8f5;
}

.map-layer-row.has-error .map-layer-title {
    color: #8a3b2a;
}

.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;
    cursor: pointer;
}

.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-error ul {
    margin: 0;
    padding-left: 18px;
}

.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: 28px;
    margin: 0 0 16px;
    padding: 18px 24px 30px;
    overflow-x: auto;
    border: 1px solid #dfe8e2;
    border-radius: 12px;
    background: #fff;
}

.activity-tabs__label { align-self: center; padding: 0 8px; color: var(--theme-primary, #176b50); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.activity-tab-item { position: relative; display: flex; min-width: 330px; min-height: 92px; border: 1px solid #dce7e0; border-radius: 10px; background: #fff; box-shadow: 0 5px 14px rgba(31, 67, 54, .045); }
.activity-tab-item > a { display: grid; flex: 1; grid-template-columns: 58px minmax(0, 1fr); column-gap: 14px; min-width: 0; padding: 15px 48px 14px 14px; color: #314642; text-decoration: none; }
.activity-tab-item > a i { display: grid; grid-row: 1 / 4; place-items: center; align-self: stretch; border-radius: 8px; background: var(--activity-tab-soft, #edf7f0); font-size: 18px; font-style: normal; color: #16804d; }
.activity-tab-item > a img { grid-row: 1 / 4; align-self: stretch; width: 58px; height: 58px; border-radius: 8px; object-fit: cover; object-position: center; }
.activity-tab-item > a span { font-size: 14px; font-weight: 600; }
.activity-tab-item > a small { max-width: 220px; overflow: hidden; color: #7b8d88; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.activity-tab-item > a em { justify-self: start; margin-top: 3px; padding: 3px 8px; border-radius: 999px; background: var(--activity-tab-color, var(--theme-primary, #176b50)); color: #fff; font-size: 8px; font-style: normal; font-weight: 700; line-height: 1; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.activity-tab-item.active { border: 2px solid var(--activity-tab-color, var(--theme-primary, #176b50)); background: var(--activity-tab-soft, var(--theme-soft, #edf7f0)); box-shadow: 0 8px 20px rgba(31, 90, 60, .12); }
.activity-tab-item.active::after { position: absolute; z-index: 2; bottom: -16px; left: 50%; width: 0; height: 0; border-right: 14px solid transparent; border-left: 14px solid transparent; border-top: 16px solid var(--activity-tab-color, var(--theme-primary, #176b50)); content: ""; transform: translateX(-50%); }
.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 76px; min-height: 92px; border: 1px dashed #b9cec1; border-radius: 10px; background: #f7faf7; color: #16804d; font-size: 26px; 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(4, minmax(0, 1fr)); gap: 8px 10px; padding: 2px 0 12px; }
.business-workflow-form__grid > div { display: grid; gap: 5px; }
.business-workflow-form__grid label { color: #40564f; font-size: 11px; font-weight: 400; }
.business-workflow-form__grid input:not([type="checkbox"]):not([type="radio"]),
.business-workflow-form__grid select,
.business-workflow-form__grid textarea { width: 100%; min-height: 34px; border: 1px solid #c9d6ce; border-radius: 2px; background: #fff; padding: 6px 8px; color: #273a36; font: inherit; font-size: 12px; font-weight: 400; }
.business-workflow-form__grid textarea { min-height: 62px; resize: vertical; }
.business-workflow-form__grid input[type="checkbox"],
.business-workflow-form__grid input[type="radio"] { width: 13px; height: 13px; min-height: 0; margin: 0 6px 0 0; padding: 0; accent-color: var(--theme-primary, #174b61); vertical-align: middle; }
.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: 1180px) { .business-workflow-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) { .business-workflow-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .business-workflow-form__grid { grid-template-columns: 1fr; } }

.portal-modal--data-entry { position: fixed; z-index: 1200; inset: 0; display: grid; place-items: center; padding: clamp(12px, 3vh, 30px); overflow: hidden; background: rgba(15, 42, 52, .48); backdrop-filter: blur(10px) saturate(.82); -webkit-backdrop-filter: blur(10px) saturate(.82); }
.portal-modal--data-entry[hidden] { display: none; }
body.data-entry-page-open { overflow: hidden; }
.portal-data-entry { width: 80vw; height: min(92vh, 980px); overflow-y: auto; border: 1px solid rgba(205, 222, 212, .95); border-radius: 16px; outline: 0; background: #f7f7f5; box-shadow: 0 28px 80px rgba(8, 31, 40, .34); color: #263a34; }
.portal-data-entry:focus-visible { box-shadow: 0 0 0 3px rgba(110, 186, 153, .65), 0 28px 80px rgba(8, 31, 40, .34); }
.portal-data-entry__bar { position: sticky; z-index: 5; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 68px; padding: 10px 18px; border-bottom: 1px solid #bfcfc5; background: rgba(255,255,255,.96); box-shadow: 0 5px 16px rgba(26, 61, 49, .06); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.portal-data-entry__heading { display: grid; grid-template-columns: auto minmax(0, auto); align-items: baseline; gap: 2px 12px; min-width: 0; }
.portal-data-entry__heading span { color: #6b7f77; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.portal-data-entry__bar strong { overflow: hidden; color: #1f3730; font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.portal-data-entry__heading small { grid-column: 1 / -1; color: #71837d; font-size: 10px; }
.portal-data-entry__tools { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.portal-data-entry__tools > span { padding: 5px 9px; border: 1px solid #c9e2d4; border-radius: 999px; background: #edf8f1; color: #24704d; font-size: 9px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.portal-data-entry__tools kbd { padding: 4px 7px; border: 1px solid #d7dfda; border-bottom-width: 2px; border-radius: 5px; background: #f8faf8; color: #6b7f77; font: 9px/1.1 inherit; }
.portal-data-entry__bar button { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid #c9d7cf; border-radius: 50%; background: #fff; color: #29473d; font-size: 21px; line-height: 1; cursor: pointer; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.portal-data-entry__bar button:hover { border-color: #7da891; background: #eef7f1; transform: rotate(4deg); }
.portal-data-entry__bar button:focus-visible { outline: 3px solid rgba(21, 128, 77, .2); border-color: #15804d; }
.portal-data-entry .business-workflow-form { width: 100%; margin: 0; padding: 14px 16px 0; }
.portal-data-entry .field-questionnaire { max-width: none; }
.portal-data-entry .questionnaire-sheet { padding: 0; border: 0; background: transparent; box-shadow: none; }
.portal-data-entry .questionnaire-letterhead { display: grid; }
.portal-data-entry .business-workflow-form > footer { position: sticky; z-index: 4; bottom: 0; margin: 12px -16px 0; padding: 9px 16px; border-top: 1px solid #bdcdc3; background: rgba(255,255,255,.98); }
.portal-data-entry .business-workflow-form > footer button { min-height: 32px; padding: 6px 13px; border-radius: 2px; font-size: 11px; }
.portal-data-entry .sima-collection-panel { gap: 7px; padding: 10px; border-color: #d3ddd7; background: #fff; }
.portal-data-entry .sima-collection-panel h4 { margin-bottom: 1px; font-size: 10px; }
.portal-data-entry .questionnaire-field { gap: 3px; }
.portal-data-entry .questionnaire-field label { font-size: 10px; }
.portal-data-entry .questionnaire-field input:not([type="checkbox"]):not([type="radio"]),
.portal-data-entry .questionnaire-field select,
.portal-data-entry .questionnaire-field textarea { min-height: 33px; padding: 5px 7px; border: 1px solid #174f3b; border-radius: 1px; background: #f7fcf8; font-size: 12px; }
.portal-data-entry .questionnaire-field input:disabled { border-color: #557a68; background: #eaf4ed; color: #52665d; opacity: 1; }
.portal-data-entry input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="color"]),
.portal-data-entry select,
.portal-data-entry textarea { border: 1px solid #174f3b !important; background: #f7fcf8 !important; }
.portal-data-entry input:disabled,
.portal-data-entry select:disabled,
.portal-data-entry textarea:disabled { background: #eaf4ed !important; color: #52665d; opacity: 1; }
.portal-data-entry .questionnaire-field textarea { min-height: 56px; }
.portal-data-entry input[type="checkbox"],
.portal-data-entry input[type="radio"] { width: 13px; height: 13px; min-height: 0; padding: 0; accent-color: var(--theme-primary, #174b61); }
.portal-data-entry .livestock-category input { width: 13px; height: 13px; margin: 0 0 4px; }

@media (max-width: 1100px) {
    .portal-data-entry { width: 92vw; height: 94vh; }
}
@media (max-width: 700px) {
    .portal-modal--data-entry { padding: 0; }
    .portal-data-entry { width: 100vw; height: 100vh; border: 0; border-radius: 0; }
    .portal-data-entry__bar { min-height: 62px; padding: 8px 12px; }
    .portal-data-entry__heading { grid-template-columns: 1fr; gap: 1px; }
    .portal-data-entry__heading small, .portal-data-entry__tools > span, .portal-data-entry__tools kbd { display: none; }
    .portal-data-entry .business-workflow-form { padding-inline: 10px; }
    .portal-data-entry .business-workflow-form > footer { margin-inline: -10px; padding-inline: 10px; }
}

.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: minmax(145px, 180px) 1fr 100px; gap: 18px; align-items: center; padding-bottom: 18px; border-bottom: 2px solid #174e5e; text-align: center; }
.questionnaire-letterhead__logos { display: flex; align-items: center; justify-content: flex-start; gap: 10px; min-width: 0; }
.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__logo--ministry { width: 78px; }
.questionnaire-letterhead__logo--entity { width: 62px; height: 62px; padding: 4px; border-left: 1px solid #dbe5df; }
.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--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.questionnaire-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.questionnaire-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.dsa-questionnaire .questionnaire-sheet {
    border-top: 4px solid #7f1d1d;
}

.dsa-questionnaire .questionnaire-section {
    border-color: #d8e2dc;
}

.dsa-questionnaire .questionnaire-section legend b {
    background: #7f1d1d;
    color: #fff;
}

.dsa-questionnaire .dsa-specific-section {
    border-color: #e5c7bd;
    background: #fffaf7;
}

.dsa-questionnaire input[type="checkbox"] {
    width: 14px;
    height: 14px;
}
.dsa-disease-guidance {
    margin: 14px 0;
    padding: 14px;
    border: 1px solid #d8c7c2;
    border-left: 4px solid #7f1d1d;
    background: #fffdfb;
}
.dsa-disease-guidance__head,
.dsa-disease-guidance footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.dsa-disease-guidance__head div { display: grid; gap: 3px; }
.dsa-disease-guidance__head small,
.dsa-disease-guidance__grid small {
    color: #7a8781;
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.dsa-disease-guidance__head strong { color: #283c35; font-size: 15px; }
.dsa-disease-guidance__head > span {
    padding: 5px 9px;
    border: 1px solid #e0c9c2;
    color: #7f1d1d;
    font-size: 11px;
}
.dsa-disease-guidance__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 12px 0;
    background: #e3e9e5;
}
.dsa-disease-guidance__grid > div { padding: 10px; background: #fff; }
.dsa-disease-guidance__grid p { margin: 4px 0 0; color: #40564e; font-size: 11px; line-height: 1.45; }
.dsa-disease-guidance footer { padding-top: 10px; border-top: 1px solid #e0e7e2; }
.dsa-disease-guidance footer span { color: #7f1d1d; font-size: 11px; }
.dsa-disease-guidance footer small { color: #74857f; font-size: 10px; }
@media (max-width: 900px) {
    .dsa-disease-guidance__grid { grid-template-columns: 1fr; }
}
.quarantine-questionnaire .questionnaire-sheet { border-top: 4px solid #9a6700; }
.quarantine-questionnaire .questionnaire-section { border-color: #dfd9c8; }
.quarantine-questionnaire .questionnaire-section legend b { background: #7a5200; }
.quarantine-letterhead { background: linear-gradient(90deg, #fffdf5, #f4f8f5); }
.quarantine-lots-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 10px; }
.quarantine-lots-toolbar p { margin: 0; color: #667b73; font-size: 11px; }
.quarantine-lots-toolbar button { min-height: 34px; padding: 6px 12px; border: 1px solid #cbbd93; background: #fffdf7; color: #654600; }
.quarantine-lots-table { max-width: 100%; overflow: auto; border: 1px solid #d8dfda; }
.quarantine-lots-table table { width: 100%; min-width: 1420px; border-collapse: collapse; }
.quarantine-lots-table th { padding: 8px; background: #eef3ef; color: #40564e; font-size: 10px; font-weight: 500; text-align: left; white-space: nowrap; }
.quarantine-lots-table td { padding: 4px; border-top: 1px solid #e3e9e5; background: #fff; }
.quarantine-lots-table input,
.quarantine-lots-table select { width: 100%; min-height: 34px; padding: 5px 7px; border: 1px solid #3f6d58; border-radius: 0; background: #f6fbf7; color: #263d34; }
.quarantine-remove-lot { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #dfc2ba; background: #fff8f5; color: #a4372d; }
.quarantine-decision-section { background: #fffdf7; border-left: 4px solid #9a6700 !important; }

.dina-questionnaire { --dina-deep: #6f1d1b; --dina-accent: #a44a3f; --dina-soft: #fff7f3; --dina-border: #e7c8be; }
.dina-letterhead { border-top: 4px solid var(--dina-deep); background: linear-gradient(105deg, #fff 0%, var(--dina-soft) 100%); }
.dina-letterhead .questionnaire-letterhead__logo { color: var(--dina-deep); border-color: var(--dina-border); background: #fff; }
.dina-questionnaire .questionnaire-section { border-color: var(--dina-border); }
.dina-questionnaire .questionnaire-section legend b { background: var(--dina-deep); }
.dina-questionnaire input:not([type="checkbox"]):not([type="radio"]),
.dina-questionnaire select,
.dina-questionnaire textarea { border-color: #7f302b; background: #fffaf8; }
.dina-grid-help { margin: 0 0 12px; color: #687a74; }
.dina-control-grid { max-height: 58vh; overflow: auto; border: 1px solid var(--dina-border); background: #fff; }
.dina-control-grid table { width: 100%; min-width: 1320px; border-collapse: collapse; }
.dina-control-grid th { position: sticky; top: 0; z-index: 2; padding: 10px; color: #fff; background: var(--dina-deep); text-align: left; font-size: 12px; font-weight: 600; }
.dina-control-grid td { padding: 9px 10px; border-bottom: 1px solid #eadbd5; vertical-align: top; }
.dina-control-grid td:nth-child(2) { min-width: 310px; }
.dina-control-grid td strong,
.dina-control-grid td small,
.dina-control-grid td em { display: block; }
.dina-control-grid td small { margin-top: 4px; color: #667a74; }
.dina-control-grid td em { margin-top: 5px; color: #8b5b50; font-size: 11px; }
.dina-control-grid select,
.dina-control-grid textarea,
.dina-control-grid input { min-width: 150px; width: 100%; padding: 7px 8px; }
.dina-control-grid tr[data-evaluation="non_conforme"] { background: #fff0ed; }
.dina-control-grid tr[data-evaluation="partiel"] { background: #fff9e9; }
.dina-control-grid tr[data-evaluation="conforme"] { background: #f7fcf8; }
.dina-section-tag,
.dina-criticality { display: inline-flex; padding: 4px 7px; border: 1px solid var(--dina-border); background: #fff; color: #60453e; font-size: 11px; }
.dina-criticality--critique { color: #9f1515; border-color: #e9b2ad; background: #fff0ee; }
.dina-criticality--majeur { color: #8b5b00; border-color: #ead6a0; background: #fff9e8; }
.dina-decision-section { background: linear-gradient(120deg, #fff 0%, #fff7f3 100%); }
.dpvps-questionnaire { --dpvps-deep: #31572c; --dpvps-accent: #4f772d; --dpvps-soft: #f5faef; --dpvps-border: #b8ceb1; }
.dpvps-letterhead,
.fruit-fly-letterhead { border-top: 4px solid var(--dpvps-deep, #31572c); background: linear-gradient(105deg, #fff, #f2f8ed); }
.dpvps-questionnaire .questionnaire-section,
.fruit-fly-questionnaire .questionnaire-section { border-color: var(--dpvps-border, #b8ceb1); }
.dpvps-questionnaire .questionnaire-section legend b,
.fruit-fly-questionnaire .questionnaire-section legend b { background: var(--dpvps-deep, #31572c); }
.dpvps-questionnaire input:not([type="checkbox"]):not([type="radio"]),
.dpvps-questionnaire select,
.dpvps-questionnaire textarea,
.fruit-fly-questionnaire input:not([type="checkbox"]):not([type="radio"]),
.fruit-fly-questionnaire select,
.fruit-fly-questionnaire textarea { border-color: #31572c; background: #f7fcf4; }
.dpvps-response-section { background: #f7fbf4; border-left: 4px solid #4f772d !important; }
.dpvps-guidance { margin: 14px 0; padding: 14px; border: 1px solid #b8ceb1; border-left: 4px solid #31572c; background: #fbfef9; }
.dpvps-guidance header,
.dpvps-guidance footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.dpvps-guidance header div { display: grid; gap: 2px; }
.dpvps-guidance small { color: #71816c; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.dpvps-guidance strong { color: #243d22; font-size: 15px; }
.dpvps-guidance em { color: #60715c; font-size: 11px; }
.dpvps-guidance header > span { padding: 5px 9px; border: 1px solid #b8ceb1; color: #31572c; font-size: 11px; }
.dpvps-guidance__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; margin: 12px 0; background: #d9e5d5; }
.dpvps-guidance__grid > div { padding: 10px; background: #fff; }
.dpvps-guidance__grid p { margin: 4px 0 0; color: #40533d; font-size: 11px; line-height: 1.45; }
.dpvps-guidance footer { padding-top: 10px; border-top: 1px solid #d9e5d5; }
.dpvps-guidance footer span { color: #8a3f17; font-size: 11px; }
.fruit-fly-grid-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.fruit-fly-grid-toolbar p { margin: 0; color: #647760; font-size: 11px; }
.fruit-fly-grid-toolbar button { min-height: 34px; padding: 6px 12px; border: 1px solid #78966f; background: #f7fcf4; color: #31572c; }
.fruit-fly-grid-table { max-width: 100%; overflow: visible; border: 0; background: transparent; }
.fruit-fly-grid-table table,
.fruit-fly-grid-table tbody { display: block; width: 100%; }
.fruit-fly-grid-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fruit-fly-grid-table tr { position: relative; display: grid; grid-template-columns: 36px repeat(12, minmax(0, 1fr)); gap: 8px; margin-top: 10px; padding: 14px; border: 1px solid #b8ceb1; border-radius: 12px; background: #fff; box-shadow: 0 7px 20px rgba(49, 87, 44, .06); }
.fruit-fly-grid-table tr:first-child { margin-top: 0; }
.fruit-fly-grid-table td { display: grid; align-content: end; gap: 5px; min-width: 0; padding: 0; background: #fff; }
.fruit-fly-grid-table td::before { content: attr(data-label); min-height: 13px; color: #587052; font-size: 9px; font-weight: 600; letter-spacing: .02em; }
.fruit-fly-grid-table .fruit-fly-cell--remove { grid-column: 1; grid-row: 1; align-content: center; }
.fruit-fly-grid-table .fruit-fly-cell--remove::before { display: none; }
.fruit-fly-cell--trap { grid-column: 2 / span 4; }
.fruit-fly-cell--state { grid-column: 6 / span 3; }
.fruit-fly-cell--exposure { grid-column: 9 / span 2; }
.fruit-fly-cell--species { grid-column: 11 / span 3; }
.fruit-fly-cell--male { grid-column: 2 / span 2; }
.fruit-fly-cell--female { grid-column: 4 / span 2; }
.fruit-fly-cell--undetermined { grid-column: 6 / span 2; }
.fruit-fly-cell--total { grid-column: 8; }
.fruit-fly-cell--ftd { grid-column: 9; }
.fruit-fly-cell--confirmed { grid-column: 10 / span 2; }
.fruit-fly-cell--lab { grid-column: 12 / span 2; }
.fruit-fly-cell--attractant { grid-column: 2 / span 2; }
.fruit-fly-cell--cleaned { grid-column: 4 / span 2; }
.fruit-fly-cell--observation { grid-column: 6 / span 8; }
.fruit-fly-grid-table output { display: flex; align-items: center; min-height: 34px; padding: 5px 7px; border: 1px solid #b8ceb1; background: #eef7eb; color: #31572c; font-weight: 700; }
.fruit-fly-grid-table input:not([type="checkbox"]),
.fruit-fly-grid-table select { width: 100%; min-height: 34px; padding: 5px 7px; border: 1px solid #31572c; border-radius: 0; background: #f7fcf4; }
.fruit-fly-grid-table input[type="checkbox"] { display: block; width: 13px; height: 13px; margin: auto; accent-color: #31572c; }
.fruit-fly-remove-row { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #d7bdb5; background: #fff7f4; color: #a33b2e; }
@media (max-width: 900px) {
    .dpvps-guidance__grid { grid-template-columns: 1fr; }
    .fruit-fly-grid-table tr { grid-template-columns: 32px repeat(2, minmax(0, 1fr)); }
    .fruit-fly-grid-table td:not(.fruit-fly-cell--remove) { grid-column: auto / span 1; }
    .fruit-fly-grid-table .fruit-fly-cell--trap,
    .fruit-fly-grid-table .fruit-fly-cell--species,
    .fruit-fly-grid-table .fruit-fly-cell--observation { grid-column: 2 / -1; }
}
.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; }

/* Questionnaire workspace: fast rendering, white sheets and clearer cells. */
.portal-data-entry { contain: layout paint; }
.portal-data-entry .field-questionnaire { --form-accent: var(--theme-primary, #176b50); --form-accent-soft: #edf7f1; padding: 18px clamp(14px, 2vw, 30px) 0; }
.portal-data-entry .questionnaire-sheet {
    overflow: hidden;
    padding: clamp(18px, 2.2vw, 32px);
    border: 1px solid #d7e1db;
    border-top: 4px solid var(--form-accent);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(29, 64, 52, .08);
}
.portal-data-entry .questionnaire-letterhead { padding: 0 0 18px; background: #fff; }
.portal-data-entry .questionnaire-title { padding: 20px 10px 8px; }
.portal-data-entry .questionnaire-section {
    content-visibility: auto;
    contain-intrinsic-block-size: auto 320px;
    margin-top: 18px;
    padding: clamp(15px, 1.5vw, 22px);
    border: 1px solid #d8e2dc;
    border-radius: 12px;
    background: #fbfcfb;
    box-shadow: 0 4px 14px rgba(31, 67, 54, .045);
}
.portal-data-entry .questionnaire-section legend { padding-right: 12px; color: #24463b; font-size: 12px; font-weight: 600; }
.portal-data-entry .questionnaire-section legend b { border-radius: 7px; background: var(--form-accent); }
.portal-data-entry .questionnaire-grid { gap: 12px; }
.portal-data-entry .questionnaire-grid--three { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.portal-data-entry .questionnaire-grid--four { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.portal-data-entry .questionnaire-grid > .questionnaire-field,
.portal-data-entry .business-workflow-form__grid > .questionnaire-field {
    min-width: 0;
    padding: 11px;
    border: 1px solid #e0e7e3;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(31, 67, 54, .035);
}
.portal-data-entry .questionnaire-field label { color: #34564b; font-size: 10px; font-weight: 600; letter-spacing: .015em; }
.portal-data-entry .questionnaire-field input:not([type="checkbox"]):not([type="radio"]),
.portal-data-entry .questionnaire-field select,
.portal-data-entry .questionnaire-field textarea,
.portal-data-entry .sima-measure-grid input {
    min-height: 38px;
    border-color: #bdd0c5 !important;
    border-radius: 7px;
    background: #fff !important;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.portal-data-entry .questionnaire-field input:focus,
.portal-data-entry .questionnaire-field select:focus,
.portal-data-entry .questionnaire-field textarea:focus,
.portal-data-entry .sima-measure-grid input:focus {
    outline: 0;
    border-color: var(--form-accent) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--form-accent) 15%, transparent);
}
.portal-data-entry .questionnaire-grid > .questionnaire-field:has(textarea),
.portal-data-entry .questionnaire-grid > .questionnaire-field:has(input[type="file"]),
.portal-data-entry .business-workflow-form__grid > .questionnaire-field:has(textarea),
.portal-data-entry .business-workflow-form__grid > .questionnaire-field:has(input[type="file"]) { grid-column: span 2; }
.portal-data-entry .sima-collection-panel {
    content-visibility: auto;
    padding: clamp(14px, 1.4vw, 20px);
    border: 1px solid #d8e2dc;
    border-top: 3px solid var(--form-accent);
    border-radius: 11px;
    background: #fff;
    box-shadow: 0 4px 14px rgba(31, 67, 54, .045);
}
.portal-data-entry .sima-collection-panel h4 { color: var(--form-accent); }
.portal-data-entry .sima-collection-panel .questionnaire-field { padding-bottom: 9px; border-bottom: 1px solid #edf1ee; }
.portal-data-entry .sima-collection-panel .questionnaire-field:last-child { padding-bottom: 0; border-bottom: 0; }
.portal-data-entry .sima-collection-layout { grid-template-columns: minmax(230px, 1fr) minmax(420px, 1.55fr) minmax(230px, 1fr); gap: 14px; }
.portal-data-entry .livestock-layout { grid-template-columns: minmax(240px, 1fr) minmax(400px, 1.45fr) minmax(240px, 1fr); gap: 14px; }
.portal-data-entry .livestock-category { border-radius: 11px; background: #fff; }
.portal-data-entry .livestock-category label { border-radius: 8px; background: #fff; }
.portal-data-entry .laboratory-questionnaire .business-workflow-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.portal-data-entry .dpv-support-questionnaire .business-workflow-form__grid,
.portal-data-entry .dpa-operations-questionnaire .business-workflow-form__grid,
.portal-data-entry .dia-questionnaire .business-workflow-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding-top: 18px; }
.portal-data-entry .livestock-questionnaire { --form-accent: #8a542f; --form-accent-soft: #fbf4ed; }
.portal-data-entry .laboratory-questionnaire { --form-accent: #4b5f91; --form-accent-soft: #f1f3fa; }
.portal-data-entry .dia-questionnaire { --form-accent: #247394; --form-accent-soft: #edf7fb; }
.portal-data-entry .dpv-support-questionnaire,
.portal-data-entry .dpvps-questionnaire,
.portal-data-entry .fruit-fly-questionnaire { --form-accent: #3d7a36; --form-accent-soft: #f1f8ef; }
.portal-data-entry .dpa-operations-questionnaire { --form-accent: #9a5a2a; --form-accent-soft: #fff5ed; }
.portal-data-entry .enepa-questionnaire { --form-accent: #2f6f52; --form-accent-soft: #eef7f1; }
.portal-data-entry .dsa-questionnaire,
.portal-data-entry .dina-questionnaire { --form-accent: #7f2926; --form-accent-soft: #fff5f3; }
.portal-data-entry .quarantine-questionnaire { --form-accent: #8a650d; --form-accent-soft: #fff9ea; }
.portal-data-entry .field-questionnaire > footer {
    margin: 16px calc(clamp(14px, 2vw, 30px) * -1) 0;
    padding: 12px clamp(14px, 2vw, 30px);
    border-top: 1px solid #d7e1db;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 -8px 22px rgba(27, 58, 47, .07);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.portal-data-entry .field-questionnaire > footer button { min-height: 38px; padding: 8px 16px; border-radius: 8px; }
.enepa-letterhead { border-top: 4px solid #2f6f52; background: linear-gradient(105deg, #fff, #eff8f2); }
.enepa-questionnaire .questionnaire-section { border-color: #b9d2c3; }
.enepa-questionnaire .questionnaire-section legend b { background: #2f6f52; }
.enepa-calculated-total { display: grid; align-content: end; gap: 5px; }
.enepa-calculated-total small { color: #4b625a; font-size: 11px; }
.enepa-calculated-total output { display: flex; align-items: center; min-height: 38px; padding: 8px 10px; border: 1px solid #9fc2ad; border-radius: 2px; background: #eaf5ed; color: #24583f; font-weight: 700; }

@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; }
    .portal-data-entry .laboratory-questionnaire .business-workflow-form__grid,
    .portal-data-entry .dpv-support-questionnaire .business-workflow-form__grid,
    .portal-data-entry .dpa-operations-questionnaire .business-workflow-form__grid,
    .portal-data-entry .dia-questionnaire .business-workflow-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .questionnaire-letterhead { grid-template-columns: 72px 1fr; gap: 10px; }
    .questionnaire-letterhead__logos { flex-direction: column; gap: 4px; }
    .questionnaire-letterhead__logo--ministry { width: 64px; height: 48px; }
    .questionnaire-letterhead__logo--entity { width: 48px; height: 38px; padding: 3px 0 0; border-top: 1px solid #dbe5df; border-left: 0; }
    .questionnaire-letterhead__code { display: none; }
    .questionnaire-grid--three, .questionnaire-grid--four, .questionnaire-signatures { grid-template-columns: 1fr; }
    .portal-data-entry .questionnaire-grid > .questionnaire-field:has(textarea),
    .portal-data-entry .questionnaire-grid > .questionnaire-field:has(input[type="file"]),
    .portal-data-entry .business-workflow-form__grid > .questionnaire-field:has(textarea),
    .portal-data-entry .business-workflow-form__grid > .questionnaire-field:has(input[type="file"]) { grid-column: auto; }
    .portal-data-entry .laboratory-questionnaire .business-workflow-form__grid,
    .portal-data-entry .dpv-support-questionnaire .business-workflow-form__grid,
    .portal-data-entry .dpa-operations-questionnaire .business-workflow-form__grid,
    .portal-data-entry .dia-questionnaire .business-workflow-form__grid { 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}

.sia-nav-icon--alert{background:linear-gradient(135deg,rgba(246,194,75,.2),rgba(191,65,54,.18));color:#b14f17}
.sima-alert-admin__date{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border:1px solid #dde9df;border-radius:999px;background:#f7fbf7;color:#49665d;font-size:.78rem;font-weight:600}
.sima-alert-admin__head-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px;align-items:center}.sima-alert-admin__create{min-height:38px;padding:0 14px;border:1px solid #176b52;border-radius:9px;background:#176b52;color:#fff;font:inherit;font-size:.78rem;cursor:pointer}.sima-alert-admin__create:hover{background:#125840}
.sima-alert-admin__layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:18px;padding:18px 22px 24px}
.sima-alert-admin__rules,.sima-alert-admin__today{display:grid;gap:14px;align-content:start}
.sima-alert-rule-form,.sima-alert-rule,.sima-alert-admin__today{border:1px solid #dfeae2;border-radius:18px;background:#fff;box-shadow:0 14px 32px rgba(36,68,50,.07)}
.sima-alert-rule-form{padding:18px}.sima-alert-rule-form h3{margin:0 0 14px;color:#173f35;font-size:1rem}
.sima-alert-rule-form footer,.sima-alert-rule footer{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.sima-alert-rule-form button,.sima-alert-rule footer button,.sima-alert-toggle button{min-height:36px;padding:0 14px;border:0;border-radius:10px;background:#176b52;color:#fff;font:inherit;font-size:.82rem;cursor:pointer}
.sima-alert-rule-form .sima-alert-rule-cancel{border:1px solid #d8e5dd;background:#fff;color:#49665d}
.sima-alert-rule-modal{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:22px;background:rgba(17,45,38,.48);backdrop-filter:blur(4px)}.sima-alert-rule-modal[hidden]{display:none}.sima-alert-rule-dialog{width:min(760px,100%);max-height:calc(100vh - 44px);overflow:auto;border:1px solid #d8e6dd;border-radius:12px;background:#fff;box-shadow:0 28px 80px rgba(16,45,37,.28)}.sima-alert-rule-dialog>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;border-bottom:1px solid #e3ece6;background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}.sima-alert-rule-dialog>header span{display:block;color:#176b52;font-size:.67rem;letter-spacing:.14em;text-transform:uppercase}.sima-alert-rule-dialog>header h3{margin:5px 0 0;color:#173f35;font-size:1.08rem}.sima-alert-rule-dialog>header button{display:grid;width:34px;height:34px;place-items:center;border:1px solid #d9e6de;border-radius:50%;background:#fff;color:#50675f;font-size:1.2rem;cursor:pointer}.sima-alert-rule-dialog .sima-alert-rule-form{border:0;border-radius:0;box-shadow:none}.sima-alert-rule-help{margin:0 0 14px;padding:10px 12px;border-left:3px solid #176b52;background:#f2f8f4;color:#526b62;font-size:.76rem;line-height:1.5}.sima-alert-rule-form label small{display:block;margin-top:4px;color:#7b8c86;font-size:.67rem;line-height:1.4}.sima-alert-interval-note{display:grid;grid-template-columns:36px minmax(0,1fr);gap:11px;align-items:center;padding:12px 14px;border:1px solid #dce8e0;background:linear-gradient(135deg,#f3f9f5,#fff)}.sima-alert-interval-note>span{display:grid;width:36px;height:36px;place-items:center;border-radius:8px;background:#176b52;color:#fff;font-weight:700}.sima-alert-interval-note p{margin:0;color:#61756d;font-size:.74rem;line-height:1.5}.sima-alert-interval-note strong{display:block;color:#24483d;font-size:.78rem}
.sima-alert-rules-list{display:grid;gap:10px}.sima-alert-rule{overflow:hidden}
.sima-alert-rule summary{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 16px;cursor:pointer}
.sima-alert-rule summary>span{display:inline-flex;justify-content:center;padding:5px 8px;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.sima-alert-rule summary strong{min-width:0;color:#163c33;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sima-alert-rule summary small{color:#708179;font-size:.75rem}
.sima-alert-rule--yellow summary>span,.sima-alert-today--yellow{background:#fff8df;color:#9a6a00}
.sima-alert-rule--orange summary>span,.sima-alert-today--orange{background:#fff0df;color:#a74d0a}
.sima-alert-rule--red summary>span,.sima-alert-today--red{background:#fff0ee;color:#a9362c}
.sima-alert-rule>form.document-form-grid{padding:0 16px 16px}.sima-alert-toggle,.sima-alert-delete{display:inline-flex;padding:0 0 16px 16px}.sima-alert-toggle button{background:#eef5f0;color:#2b574d}.sima-alert-delete{padding-left:8px}.sima-alert-delete button{min-height:36px;padding:0 13px;border:1px solid #edcbc6;border-radius:9px;background:#fff5f3;color:#a83e35;font:inherit;font-size:.76rem;cursor:pointer}.sima-alert-delete button:hover{background:#fde9e6}
.sima-alert-admin__today{padding:18px}.sima-alert-admin__today>header{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;align-items:center}
.sima-alert-admin__today>header>span{display:grid;width:54px;height:54px;place-items:center;border-radius:18px;background:#174b61;color:#fff;font-size:1.15rem;font-weight:700}
.sima-alert-admin__today h3,.sima-alert-admin__today p{margin:0}.sima-alert-admin__today h3{color:#153e35;font-size:1.05rem}.sima-alert-admin__today p{color:#7a8b84;font-size:.78rem}
.sima-alert-today-list{display:grid;gap:10px;max-height:720px;overflow:auto;padding-right:4px}
.sima-alert-today{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:13px;border:1px solid rgba(66,62,42,.1);border-radius:14px}
.sima-alert-today strong,.sima-alert-today small,.sima-alert-today p,.sima-alert-today em{display:block}.sima-alert-today strong{color:#173d35;font-size:.88rem}.sima-alert-today b{font-size:.95rem}.sima-alert-today small{color:#758780;font-size:.72rem}
.sima-alert-today p,.sima-alert-today em{grid-column:1/-1;margin:0;font-size:.78rem;line-height:1.45}.sima-alert-today em{color:#61736c;font-style:normal}
.uhm-alert-river-list{display:grid;gap:8px;margin-top:4px;padding-top:14px;border-top:1px solid #e7efe9}.uhm-alert-river-list h3,.uhm-alert-river-list p{margin:0}.uhm-alert-river-list h3{color:#153e35;font-size:.92rem}.uhm-alert-river-list p{color:#7a8b84;font-size:.74rem;line-height:1.45}.uhm-alert-river-list span{display:block;padding:8px 10px;border:1px solid #e2ece7;border-radius:11px;background:#f8fbf9;color:#214d42;font-size:.78rem}.uhm-alert-river-list small{display:block;margin-top:3px;color:#72867d;font-size:.68rem}.uhm-alert-river-list em{color:#7a8b84;font-size:.75rem;font-style:normal}
.uhm-alert-rule-card{--uhm-rule:#2f78a8;display:grid;gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--uhm-rule) 24%,#fff);border-radius:16px;background:linear-gradient(145deg,#fff 0%,color-mix(in srgb,var(--uhm-rule) 7%,#fff) 100%);box-shadow:0 12px 26px rgba(24,58,50,.06)}.uhm-alert-rule-card header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:center}.uhm-alert-rule-card header span{grid-row:1/3;display:grid;width:42px;height:42px;place-items:center;border-radius:13px;background:color-mix(in srgb,var(--uhm-rule) 14%,#fff);color:var(--uhm-rule);font-size:.72rem;font-weight:700}.uhm-alert-rule-card strong{color:#173d35;font-size:1rem;font-weight:650}.uhm-alert-rule-card small{color:#71847c;font-size:.72rem}.uhm-alert-rule-card p,.uhm-alert-rule-card em{margin:0;color:#294b42;font-size:.82rem;line-height:1.45}.uhm-alert-rule-card em{color:#64776f;font-style:normal}.uhm-alert-rule-card footer{display:flex;flex-wrap:wrap;gap:8px}.uhm-alert-rule-card footer form{margin:0}.uhm-alert-rule-card footer button{padding:7px 10px;border:1px solid #d9e6df;border-radius:10px;background:#fff;color:#285447;font:inherit;font-size:.74rem;cursor:pointer}.uhm-alert-rule-card--jaune{--uhm-rule:#c8942e}.uhm-alert-rule-card--orange{--uhm-rule:#c47724}.uhm-alert-rule-card--rouge{--uhm-rule:#b23b32}.uhm-alert-rule-card--vert{--uhm-rule:#257249}
.uhm-vigilance-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;padding:18px 22px 24px}.uhm-vigilance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.uhm-vigilance-card{--vigilance:#2f78a8;display:grid;gap:12px;padding:16px;border:1px solid color-mix(in srgb,var(--vigilance) 24%,#fff);border-radius:18px;background:linear-gradient(145deg,#fff 0%,color-mix(in srgb,var(--vigilance) 8%,#fff) 100%);box-shadow:0 14px 30px rgba(26,58,50,.06)}.uhm-vigilance-card header{display:grid;gap:5px}.uhm-vigilance-card header span{justify-self:start;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--vigilance) 16%,#fff);color:var(--vigilance);font-size:.72rem;font-weight:700}.uhm-vigilance-card header strong{color:#173d35;font-size:1.25rem}.uhm-vigilance-card header small{color:#70827b;font-size:.72rem}.uhm-vigilance-card label{display:grid;gap:5px}.uhm-vigilance-card label span{color:#71847c;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.uhm-vigilance-card input,.uhm-vigilance-card textarea{width:100%;border:1px solid #dce8e1;border-radius:10px;background:#fff;color:#1e3e35;font:inherit;font-size:.8rem}.uhm-vigilance-card input{height:36px;padding:0 10px}.uhm-vigilance-card textarea{padding:10px;resize:vertical}.uhm-vigilance-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.uhm-vigilance-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.uhm-vigilance-card footer button{padding:9px 12px;border:0;border-radius:11px;background:var(--vigilance);color:#fff;font:inherit;font-size:.78rem;cursor:pointer}.uhm-vigilance-card--jaune{--vigilance:#c8942e}.uhm-vigilance-card--orange{--vigilance:#c47724}.uhm-vigilance-card--rouge{--vigilance:#b23b32}.uhm-vigilance-card--vert{--vigilance:#257249}.uhm-vigilance-side{display:grid;gap:10px;align-content:start;padding:16px;border:1px solid #e1ece6;border-radius:18px;background:#fff;box-shadow:0 14px 30px rgba(26,58,50,.05)}.uhm-vigilance-side h3,.uhm-vigilance-side p{margin:0}.uhm-vigilance-side h3{color:#153e35;font-size:1rem}.uhm-vigilance-side p{color:#75877f;font-size:.78rem;line-height:1.5}@media(max-width:1300px){.uhm-vigilance-grid{grid-template-columns:1fr}.uhm-vigilance-layout{grid-template-columns:minmax(0,1fr) 300px}}@media(max-width:980px){.uhm-vigilance-layout{grid-template-columns:1fr}.uhm-vigilance-fields{grid-template-columns:1fr}}
.uhm-vigilance-main{display:grid;gap:16px}.uhm-vigilance-create-form{display:grid;gap:14px;padding:18px;border:1px solid #dfeae2;border-radius:18px;background:#fff;box-shadow:0 14px 32px rgba(36,68,50,.07)}.uhm-vigilance-create-form>header span{display:block;color:#2f78a8;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.uhm-vigilance-create-form>header h3{margin:.25rem 0 0;color:#153e35;font-size:1.05rem}.uhm-vigilance-create-form footer{display:flex;justify-content:flex-end}.uhm-vigilance-create-form footer button{padding:10px 14px;border:0;border-radius:12px;background:#174b61;color:#fff;font:inherit;font-size:.82rem;cursor:pointer}.uhm-vigilance-saved-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media(max-width:1300px){.uhm-vigilance-saved-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.uhm-vigilance-saved-grid{grid-template-columns:1fr}}
.uhm-alert-rule-dialog .uhm-vigilance-create-form{padding:20px;border:0;border-radius:0;box-shadow:none}.uhm-alert-rule-dialog .uhm-vigilance-create-form footer{gap:8px}.uhm-alert-rule-dialog .uhm-vigilance-create-form footer .sima-alert-rule-cancel{border:1px solid #d8e5dd;background:#fff;color:#49665d}.uhm-alert-interval-note>span{background:#2f78a8}.uhm-alert-admin__create{border-color:#246d91;background:#246d91}.uhm-alert-admin__create:hover{background:#1b5877}
.uhm-alert-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px 22px 0}.uhm-alert-kpis article{min-height:82px;padding:13px 15px;border:1px solid #dce8eb;border-top:2px solid #2f78a8;border-radius:8px;background:linear-gradient(145deg,#fff,#f7fbfc)}.uhm-alert-kpis article:nth-child(2){border-top-color:#257249}.uhm-alert-kpis article:nth-child(3){border-top-color:#6d5c9a}.uhm-alert-kpis article:nth-child(4){border-top-color:#c47724}.uhm-alert-kpis span,.uhm-alert-kpis small{display:block;color:#74878a;font-size:.68rem}.uhm-alert-kpis strong{display:block;margin:5px 0 3px;color:#173f46;font-size:1.4rem;font-weight:600}.uhm-alert-tabs{display:flex;gap:7px;padding:12px 22px 0}.uhm-alert-tabs a{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #d8e5e8;border-radius:8px;background:#fff;color:#31575f;font-size:.73rem;text-decoration:none}.uhm-alert-tabs a span{color:#2f78a8;font-size:.64rem}.uhm-alert-tabs a:hover{border-color:#9fc6d5;background:#f4fafc}.uhm-vigilance-layout{grid-template-columns:minmax(0,1fr) 360px}.uhm-alert-rules-list{display:grid;gap:9px}.uhm-alert-rule{--uhm-rule:#2f78a8;overflow:hidden;border:1px solid color-mix(in srgb,var(--uhm-rule) 25%,#dce7e1);border-left:3px solid var(--uhm-rule);border-radius:8px;background:#fff}.uhm-alert-rule--vert{--uhm-rule:#257249}.uhm-alert-rule--jaune{--uhm-rule:#c8942e}.uhm-alert-rule--orange{--uhm-rule:#c47724}.uhm-alert-rule--rouge{--uhm-rule:#b23b32}.uhm-alert-rule summary{display:grid;grid-template-columns:66px minmax(150px,1fr) minmax(190px,.8fr) auto;gap:9px;align-items:center;padding:12px 14px;cursor:pointer;list-style-position:outside}.uhm-alert-rule summary>span{display:inline-flex;justify-content:center;padding:5px 7px;border-radius:999px;background:color-mix(in srgb,var(--uhm-rule) 13%,#fff);color:var(--uhm-rule);font-size:.64rem;font-weight:700;text-transform:uppercase}.uhm-alert-rule summary strong{min-width:0;overflow:hidden;color:#183e37;font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.uhm-alert-rule summary small{color:#6b7f78;font-size:.68rem;line-height:1.4}.uhm-alert-rule summary em{color:var(--uhm-rule);font-size:.65rem;font-style:normal}.uhm-alert-edit-form{padding:14px;border-top:1px solid #e5ede8;background:#fbfdfc}.uhm-alert-edit-form footer{display:flex;justify-content:flex-end}.uhm-alert-edit-form footer button{min-height:36px;padding:0 13px;border:0;border-radius:8px;background:#246d91;color:#fff;font:inherit;font-size:.74rem}.uhm-alert-rule-actions{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 14px;background:#fbfdfc}.uhm-alert-rule-actions form{margin:0}.uhm-alert-rule-actions button{min-height:34px;padding:0 11px;border:1px solid #d7e4df;border-radius:8px;background:#fff;color:#315c50;font:inherit;font-size:.7rem;cursor:pointer}.uhm-alert-rule-actions .uhm-alert-delete-button{border-color:#edcbc6;background:#fff5f3;color:#a83e35}.uhm-vigilance-side{max-height:720px;overflow:hidden;border-radius:9px}.uhm-detected-header{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center}.uhm-detected-header>span{display:grid;width:46px;height:46px;place-items:center;border-radius:9px;background:#246d91;color:#fff;font-weight:700}.uhm-detected-header h3,.uhm-detected-header p{margin:0}.uhm-detected-header p{margin-top:3px;color:#77898a;font-size:.7rem}.uhm-detected-list{display:grid;gap:8px;max-height:620px;overflow:auto;padding-right:3px}.uhm-detected-alert{--uhm-rule:#2f78a8;padding:11px;border:1px solid color-mix(in srgb,var(--uhm-rule) 24%,#e0e8e3);border-left:3px solid var(--uhm-rule);background:#fff}.uhm-detected-alert--vert{--uhm-rule:#257249}.uhm-detected-alert--jaune{--uhm-rule:#c8942e}.uhm-detected-alert--orange{--uhm-rule:#c47724}.uhm-detected-alert--rouge{--uhm-rule:#b23b32}.uhm-detected-alert header,.uhm-detected-alert footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.uhm-detected-alert strong{color:#183f37;font-size:.78rem}.uhm-detected-alert b,.uhm-detected-alert em{color:var(--uhm-rule);font-size:.68rem;font-style:normal}.uhm-detected-alert p{margin:7px 0 5px;color:#4d665d;font-size:.72rem;line-height:1.4}.uhm-detected-alert small{display:block;margin-bottom:8px;color:#788a84;font-size:.64rem}.uhm-detected-alert footer span{color:#284f45;font-size:.72rem;font-weight:600}.uhm-rivers-panel{margin:0 22px 24px;padding:16px;border:1px solid #dfe9e4;border-radius:9px;background:#fff}.uhm-rivers-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.uhm-rivers-panel>header span{display:block;color:#2f78a8;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase}.uhm-rivers-panel h3{margin:4px 0 0;color:#183f37;font-size:1rem}.uhm-rivers-panel>header strong{padding:6px 9px;border:1px solid #d9e6e1;border-radius:999px;color:#49675e;font-size:.7rem}.uhm-rivers-panel>p{margin:10px 0;color:#6f827a;font-size:.73rem}.uhm-rivers-panel .uhm-alert-river-list{grid-template-columns:repeat(4,minmax(0,1fr));max-height:210px;overflow:auto}.uhm-alert-rule-modal-form .portal-check input,.uhm-alert-edit-form .portal-check input{width:13px;height:13px;min-width:13px;margin:0}.uhm-alert-rule-modal-form footer{gap:8px}
@media(max-width:1180px){.uhm-alert-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.uhm-vigilance-layout{grid-template-columns:1fr}.uhm-rivers-panel .uhm-alert-river-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.uhm-alert-kpis{grid-template-columns:1fr}.uhm-alert-tabs{flex-wrap:wrap}.uhm-alert-rule summary{grid-template-columns:58px minmax(0,1fr)}.uhm-alert-rule summary small,.uhm-alert-rule summary em{grid-column:2}.uhm-rivers-panel .uhm-alert-river-list{grid-template-columns:1fr}}
.uhm-detected-alert__type{display:inline-flex;margin-top:7px;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--uhm-rule) 10%,#fff);color:var(--uhm-rule);font-size:.6rem;font-style:normal;letter-spacing:.04em;text-transform:uppercase}
@media(max-width:1150px){.sima-alert-admin__layout{grid-template-columns:1fr}}

.activity-tab-item.locked{
    opacity:.42;
    filter:grayscale(.55);
    border-color:#dce7e1!important;
    background:#f4f8f5!important;
    cursor:not-allowed;
}

.sia-user-menu summary img.sia-user-avatar {
    display: block;
    object-fit: cover;
    background: #fff;
}

.sia-user-menu summary .sia-user-avatar--initials {
    background: #e2b33f;
    border-color: #d3a62f;
    color: #4c3810;
    font-size: 10px;
    font-weight: 700;
}

.row-action-buttons { display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.row-delete-button { display: inline-grid; width: 28px; height: 28px; place-items: center; padding: 0; border: 1px solid #e5c8c4; border-radius: 6px; background: #fff; color: #a53d34; cursor: pointer; }
.row-delete-button svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.row-delete-button:hover { border-color: #bd5147; background: #fff2f0; color: #8d261f; }

.sia-nav-icon--statistics svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.statistics-builder { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 16px; align-items: start; padding: 0 24px 28px; }
.statistics-builder__sidebar, .statistics-builder__main { border: 1px solid #d8e3dc; background: #fff; }
.statistics-builder__sidebar { position: sticky; top: 82px; max-height: calc(100vh - 105px); overflow: auto; padding: 12px; }
.statistics-builder__sidebar header { display: flex; align-items: center; justify-content: space-between; padding: 8px 6px; color: #5c746b; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.statistics-builder__sidebar header strong { display: grid; min-width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #edf5ef; color: #17664d; }
.statistics-builder__sidebar nav { display: grid; gap: 4px; margin-bottom: 12px; }
.statistics-builder__sidebar nav a { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 2px 8px; align-items: center; padding: 8px; border: 1px solid transparent; color: #29463d; text-decoration: none; }
.statistics-builder__sidebar nav a:hover, .statistics-builder__sidebar nav a.active { border-color: #bfd6c8; background: #f1f8f3; }
.statistics-builder__sidebar nav i { grid-row: 1/3; display: grid; width: 34px; height: 34px; place-items: center; background: #e8f3eb; color: #16724f; font-style: normal; }
.statistics-builder__sidebar nav span { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.statistics-builder__sidebar nav small { color: #7c8f87; font-size: 10px; }
.statistics-builder__empty { padding: 8px; color: #788b84; font-size: 11px; line-height: 1.5; }
.statistics-builder__main { min-width: 0; padding: 18px; }
.statistics-builder__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding-bottom: 16px; border-bottom: 1px solid #e0e9e3; }
.statistics-builder__heading span, .statistics-result header span { color: #267259; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.statistics-builder__heading h2, .statistics-builder__heading p, .statistics-result h3 { margin: 3px 0 0; }
.statistics-builder__heading h2 { color: #183d32; font-size: 22px; }
.statistics-builder__heading p { color: #71857d; font-size: 12px; }
.statistics-builder__heading b { padding: 8px 12px; border: 1px solid #cfe0d5; background: #f4f9f5; color: #2c6653; font-size: 11px; font-weight: 500; }
.statistics-builder__controls { display: grid; grid-template-columns: repeat(4,minmax(130px,1fr)) auto; gap: 10px; align-items: end; padding: 16px 0; }
.statistics-builder__controls label, .statistics-save-form label { display: grid; gap: 5px; color: #496359; font-size: 11px; }
.statistics-builder__controls select, .statistics-save-form input, .statistics-save-form select, .statistics-save-form textarea { width: 100%; min-height: 38px; border: 1px solid #174f3b; border-radius: 2px; background: #f7fcf8; padding: 7px 9px; color: #203a31; font: inherit; font-size: 12px; }
.statistics-builder__controls button, .statistics-save-form footer button { min-height: 38px; border: 1px solid #17664d; border-radius: 2px; background: #17664d; padding: 0 14px; color: #fff; cursor: pointer; }
.statistics-result { border: 1px solid #d7e3dc; }
.statistics-result > header { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; background: #fafcfb; }
.statistics-result h3 { color: #1c4035; font-size: 15px; }
.statistics-result header small { color: #8a6c28; font-size: 10px; }
.statistics-result__scroll { max-height: 52vh; overflow: auto; }
.statistics-result table { width: 100%; border-collapse: collapse; font-size: 12px; }
.statistics-result th, .statistics-result td { padding: 9px 11px; border-right: 1px solid #e0e8e3; border-bottom: 1px solid #e0e8e3; text-align: left; white-space: nowrap; }
.statistics-result th { position: sticky; top: 0; z-index: 1; background: #eaf3ed; color: #214b3d; font-weight: 500; }
.statistics-save-form { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 10px; margin-top: 14px; padding: 14px; border: 1px solid #d5e2da; background: #fff; }
.statistics-save-form .wide { grid-column: 1/-1; }
.statistics-save-form__check { display: flex !important; align-items: center; align-self: end; min-height: 38px; padding: 0 8px; border: 1px solid #d7e3dc; }
.statistics-save-form__check input { width: 13px; min-height: 13px; margin: 0 7px 0 0; padding: 0; }
.statistics-save-form footer { display: flex; align-items: end; justify-content: flex-end; }
.statistics-delete-form { display: flex; justify-content: flex-end; margin-top: 8px; }
.statistics-delete-form button { border: 0; background: transparent; color: #a23d35; font-size: 11px; cursor: pointer; }
@media (max-width: 1050px) { .statistics-builder { grid-template-columns: 1fr; } .statistics-builder__sidebar { position: static; max-height: 280px; } .statistics-builder__controls { grid-template-columns: repeat(2,1fr); } }

/* UHM national statistics cockpit */
.uhm-stats {
    --uhm-ink: #082d3b;
    --uhm-blue: #087e9c;
    --uhm-cyan: #17a8b8;
    --uhm-river: #1465a0;
    --uhm-gold: #e3a329;
    padding: 0 24px 42px;
    color: var(--uhm-ink);
}
.sima-stats { --uhm-blue: #9a5a1b; --uhm-cyan: #c87a29; }
.sima-stats .uhm-stats__filter-icon { background: #f9eee1; color: #a8601d; }
.sima-stats .uhm-stats__filters button { background: #9a5a1b; }
.sima-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(5,minmax(105px,1fr)) auto auto; }
.srea-stats { --uhm-blue: #5c4b89; --uhm-cyan: #8b75bd; }
.srea-stats .uhm-stats__filter-icon { background: #f0ecf8; color: #665294; }
.srea-stats .uhm-stats__filters button { background: #5c4b89; }
.srea-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(5,minmax(105px,1fr)) auto auto; }
.srea-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.cnsa-stats { --uhm-blue: #9d3d24; --uhm-cyan: #db7a2c; }
.cnsa-stats .uhm-stats__filter-icon { background: #fff0e7; color: #ad4828; }
.cnsa-stats .uhm-stats__filters button { background: #9d3d24; }
.cnsa-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(4,minmax(120px,1fr)) auto auto; }
.cnsa-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dina-stats { --uhm-blue: #6f1d1b; --uhm-cyan: #c45c32; }
.dina-stats .uhm-stats__filter-icon { background: #faebe5; color: #7a2923; }
.dina-stats .uhm-stats__filters button { background: #6f1d1b; }
.dina-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(6,minmax(100px,1fr)) auto auto; }
.dina-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dina-table-group { padding: 11px 8px 5px; color: #836f69; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dpv-stats { --uhm-blue: #287548; --uhm-cyan: #67a83f; }
.dpv-stats .uhm-stats__filter-icon { background: #eaf5df; color: #2f7849; }
.dpv-stats .uhm-stats__filters button { background: #287548; }
.dpv-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(5,minmax(105px,1fr)) auto auto; }
.dpv-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dpv-table-group { padding: 11px 8px 5px; color: #71847a; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dpvps-stats { --uhm-blue: #356a2b; --uhm-cyan: #7c9f36; }
.dpvps-stats .uhm-stats__filter-icon { background: #edf4e3; color: #406f2f; }
.dpvps-stats .uhm-stats__filters button { background: #356a2b; }
.dpvps-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(6,minmax(100px,1fr)) auto auto; }
.dpvps-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.quar-stats { --uhm-blue: #874f18; --uhm-cyan: #cf7a22; }
.quar-stats .uhm-stats__filter-icon { background: #fff0dc; color: #99571a; }
.quar-stats .uhm-stats__filters button { background: #874f18; }
.quar-stats__filters { grid-template-columns: minmax(205px,1.2fr) repeat(7,minmax(92px,1fr)) auto auto; }
.quar-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.quar-table-group { display:block; padding:14px 12px 6px; color:#8b551f; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.dia-stats { --uhm-blue: #176b78; --uhm-cyan: #2b9baa; }
.dia-stats .uhm-stats__filter-icon { background: #e2f5f5; color: #176b78; }
.dia-stats .uhm-stats__filters button { background: #176b78; }
.dia-stats__filters { grid-template-columns: minmax(205px,1.2fr) repeat(6,minmax(96px,1fr)) auto auto; }
.dia-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dia-table-group { display:block; padding:14px 12px 6px; color:#176b78; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.cnigs-stats { --uhm-blue: #293b72; --uhm-cyan: #4b70b8; }
.cnigs-stats .uhm-stats__filter-icon { background: #e9edfa; color: #334c87; }
.cnigs-stats .uhm-stats__filters button { background: #293b72; }
.cnigs-stats__filters { grid-template-columns: minmax(215px,1.3fr) repeat(5,minmax(105px,1fr)) auto auto; }
.cnigs-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.cnigs-table-group { display:block; padding:14px 12px 6px; color:#334c87; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.dpvps-table-group { padding: 11px 8px 5px; color: #748067; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dpa-stats { --uhm-blue: #7b4336; --uhm-cyan: #bb7145; }
.dpa-stats .uhm-stats__filter-icon { background: #f7eae4; color: #854839; }
.dpa-stats .uhm-stats__filters button { background: #7b4336; }
.dpa-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(5,minmax(105px,1fr)) auto auto; }
.dpa-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dpa-table-group { padding: 11px 8px 5px; color: #85746d; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dsa-stats { --uhm-blue: #8b2435; --uhm-cyan: #c94f5d; }
.dsa-stats .uhm-stats__filter-icon { background: #f9e9ec; color: #93283a; }
.dsa-stats .uhm-stats__filters button { background: #8b2435; }
.dsa-stats__filters { grid-template-columns: minmax(210px,1.3fr) repeat(6,minmax(100px,1fr)) auto auto; }
.dsa-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.dsa-table-group { padding: 11px 8px 5px; color: #886f73; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lab-stats { --uhm-blue: #174f6f; --uhm-cyan: #2f88a7; }
.lab-stats .uhm-stats__filter-icon { background: #e7f1f5; color: #1c5876; }
.lab-stats .uhm-stats__filters button { background: #174f6f; }
.lab-stats__filters { grid-template-columns: minmax(200px,1.2fr) repeat(7,minmax(94px,1fr)) auto auto; }
.lab-stats .uhm-stats__kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.lab-table-group { padding: 11px 8px 5px; color: #6d7d85; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.uhm-stats__hero {
    display: flex;
    justify-content: space-between;
    gap: 32px;
    padding: 24px 28px;
    border-top: 4px solid var(--uhm-blue);
    border-right: 1px solid #d2e0e2;
    border-left: 1px solid #d2e0e2;
    background: #fff;
    color: var(--uhm-ink);
}
.uhm-stats__hero-copy { max-width: 760px; }
.uhm-stats__eyebrow { display: block; margin-bottom: 8px; color: var(--uhm-blue); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.uhm-stats__hero h1 { max-width: 700px; margin: 0; font-size: clamp(25px, 2.5vw, 36px); line-height: 1.08; letter-spacing: -.025em; }
.uhm-stats__hero p { max-width: 680px; margin: 10px 0 0; color: #647b82; font-size: 13px; line-height: 1.55; }
.uhm-stats__stamp { display: grid; align-content: center; min-width: 220px; padding: 12px 18px; border-left: 1px solid #d5e2e4; }
.uhm-stats__stamp span, .uhm-stats__stamp small { color: #72878d; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.uhm-stats__stamp strong { margin: 5px 0 8px; font-size: 20px; }
.uhm-stats__filters { display: grid; grid-template-columns: minmax(230px,1.4fr) repeat(4,minmax(120px,1fr)) auto auto; gap: 12px; align-items: end; padding: 15px 20px; border: 1px solid #cbdde0; background: #f6f9f8; }
.uhm-stats__filter-heading { display: flex; gap: 10px; align-items: center; align-self: center; }
.uhm-stats__filter-heading div { display: grid; gap: 2px; }
.uhm-stats__filter-heading strong { font-size: 13px; }
.uhm-stats__filter-heading small { color: #688087; font-size: 10px; }
.uhm-stats__filter-icon { display: grid; width: 35px; height: 35px; place-items: center; background: #e1f2f1; color: #08778a; }
.uhm-stats__filter-icon svg, .uhm-stats__filters button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.uhm-stats__filters label { display: grid; gap: 5px; color: #587078; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.uhm-stats__filters input, .uhm-stats__filters select { width: 100%; height: 39px; border: 1px solid #c3d5d8; border-radius: 2px; background: #fff; padding: 0 9px; color: #153b47; font: inherit; font-size: 12px; }
.uhm-stats__filters button { display: flex; gap: 7px; align-items: center; justify-content: center; height: 39px; border: 0; border-radius: 2px; background: #087c8c; padding: 0 15px; color: #fff; font-weight: 700; cursor: pointer; }
.uhm-stats__filters > a { display: grid; height: 39px; place-items: center; color: #60767c; font-size: 11px; text-decoration: none; }
.uhm-stats__kpis { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1px; margin: 18px 0; border: 1px solid #d1e1e2; background: #d1e1e2; }
.uhm-kpi { --kpi: #07829b; --kpi-soft: #e9f7f8; display: flex; gap: 11px; min-width: 0; padding: 15px; border: 0; background: #fff; }
.uhm-kpi--storm { --kpi: #df9a18; --kpi-soft: #fff6df; }
.uhm-kpi--flow { --kpi: #176ca5; --kpi-soft: #eaf3fb; }
.uhm-kpi--station { --kpi: #16856d; --kpi-soft: #e9f7f1; }
.uhm-kpi--river { --kpi: #514da3; --kpi-soft: #efeffb; }
.uhm-kpi__icon { display: grid; flex: 0 0 39px; width: 39px; height: 39px; place-items: center; background: var(--kpi-soft); color: var(--kpi); }
.uhm-kpi__icon svg { width: 23px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.uhm-kpi > div { display: grid; min-width: 0; }
.uhm-kpi > div > span { overflow: hidden; color: #647c82; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.uhm-kpi strong { margin: 3px 0 2px; color: var(--kpi); font-size: 24px; line-height: 1; }
.uhm-kpi strong small { font-size: 10px; font-weight: 600; }
.uhm-kpi p { margin: 0; color: #849399; font-size: 10px; }
.uhm-table-browser { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 16px; align-items: start; margin-top: 18px; }
.uhm-table-catalog { position: sticky; top: 82px; overflow: hidden; border: 1px solid #cadbdd; background: #fff; }
.uhm-table-catalog > header { padding: 15px 16px 12px; border-bottom: 1px solid #e0e9ea; }
.uhm-table-catalog > header div { display: grid; gap: 3px; }
.uhm-table-catalog > header span { color: #62777d; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.uhm-table-catalog > header strong { color: #153d49; font-size: 15px; }
.uhm-table-catalog__search { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 7px; align-items: center; margin: 12px; border: 1px solid #cbdadd; background: #f8fbfa; padding: 0 10px; }
.uhm-table-catalog__search svg { width: 17px; fill: none; stroke: #688087; stroke-width: 1.8; stroke-linecap: round; }
.uhm-table-catalog__search input { width: 100%; height: 38px; border: 0; outline: 0; background: transparent; color: #173e49; font: inherit; font-size: 11px; }
.uhm-table-catalog nav { display: grid; max-height: 460px; overflow: auto; padding: 0 8px 10px; }
.uhm-table-catalog__item { --catalog-accent: #07869a; display: grid; grid-template-columns: 34px minmax(0,1fr) 12px; gap: 9px; align-items: center; min-height: 52px; border-bottom: 1px solid #e6eded; padding: 8px; color: #38545d; text-decoration: none; }
.uhm-table-catalog__item--territory { --catalog-accent: #19856d; }
.uhm-table-catalog__item--flow { --catalog-accent: #176ca5; }
.uhm-table-catalog__item--station { --catalog-accent: #d18b19; }
.uhm-table-catalog__item--storm { --catalog-accent: #b86528; }
.uhm-table-catalog__item--river { --catalog-accent: #514da3; }
.uhm-table-catalog__item > span { display: grid; width: 30px; height: 30px; place-items: center; background: #f0f5f5; color: var(--catalog-accent); font-size: 11px; font-weight: 800; }
.uhm-table-catalog__item > strong { font-size: 11px; line-height: 1.3; }
.uhm-table-catalog__item > i { color: #90a1a5; font-size: 20px; font-style: normal; }
.uhm-table-catalog__item:hover, .uhm-table-catalog__item.active { background: #f1f7f6; color: var(--catalog-accent); }
.uhm-table-catalog__item.active { box-shadow: inset 3px 0 0 var(--catalog-accent); }
.uhm-table-catalog__item.active > span { background: var(--catalog-accent); color: #fff; }
.uhm-table-catalog__empty { margin: 0; padding: 20px 14px; color: #74888d; font-size: 11px; text-align: center; }
.uhm-stats__tables { min-width: 0; }
.uhm-stat-table { --table-accent: #07869a; --table-soft: #eaf7f8; scroll-margin-top: 90px; border: 1px solid #cadbdd; border-top: 3px solid var(--table-accent); background: #fff; }
.uhm-stat-table--territory { --table-accent: #19856d; --table-soft: #eaf7f1; }
.uhm-stat-table--flow { --table-accent: #176ca5; --table-soft: #eaf3fb; }
.uhm-stat-table--station { --table-accent: #d18b19; --table-soft: #fff6e4; }
.uhm-stat-table--storm { --table-accent: #b86528; --table-soft: #fff1e9; }
.uhm-stat-table--river { --table-accent: #514da3; --table-soft: #f1effb; }
.uhm-stat-table > header { display: flex; justify-content: space-between; gap: 20px; padding: 16px 18px; border-bottom: 1px solid #dce7e8; background: #fff; }
.uhm-stat-table__identity { display: flex; gap: 14px; align-items: flex-start; }
.uhm-stat-table__number { display: grid; width: 34px; height: 34px; place-items: center; background: var(--table-soft); color: var(--table-accent); font-size: 14px; font-weight: 800; }
.uhm-stat-table__identity small { color: var(--table-accent); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.uhm-stat-table__identity h2 { margin: 3px 0; color: #143b47; font-size: 19px; }
.uhm-stat-table__identity p { margin: 0; color: #70848a; font-size: 11px; }
.uhm-stat-table__exports { display: flex; gap: 6px; align-items: center; }
.uhm-stat-table__exports a, .uhm-stat-table__exports button { display: grid; grid-template-columns: 20px auto; gap: 6px; align-items: center; min-height: 36px; border: 1px solid #c6d7d9; border-radius: 2px; background: #fff; padding: 0 10px; color: #37545d; font: inherit; font-size: 10px; font-weight: 700; text-decoration: none; cursor: pointer; }
.uhm-stat-table__exports a:hover, .uhm-stat-table__exports button:hover { border-color: var(--table-accent); color: var(--table-accent); }
.uhm-stat-table__exports svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.uhm-stat-table__scroll { max-height: 440px; overflow: auto; }
.uhm-stat-table table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 11px; }
.uhm-stat-table th, .uhm-stat-table td { min-width: 118px; padding: 11px 13px; border-right: 1px solid #e2e9ea; border-bottom: 1px solid #e2e9ea; text-align: right; white-space: nowrap; }
.uhm-stat-table th { position: sticky; top: 0; z-index: 2; background: #123f4d; color: #fff; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
.uhm-stat-table th:first-child, .uhm-stat-table td:first-child { position: sticky; left: 0; z-index: 1; min-width: 150px; text-align: left; }
.uhm-stat-table th:first-child { z-index: 3; background: #0c3441; }
.uhm-stat-table td:first-child { background: #f8fbfb; color: #194652; font-weight: 700; }
.uhm-stat-table tbody tr:nth-child(even) td:not(:first-child) { background: #f9fbfb; }
.uhm-stat-table tbody tr:hover td { background: var(--table-soft); }
.uhm-stat-table__empty { display: grid; gap: 4px; padding: 32px; text-align: center; }
.uhm-stat-table__empty strong { color: #49656c; }
.uhm-stat-table__empty span { color: #84969a; }
.uhm-stat-table > footer { display: flex; justify-content: space-between; padding: 10px 14px; background: #f8fbfb; color: #74878c; font-size: 9px; letter-spacing: .05em; text-transform: uppercase; }
@media (max-width: 1250px) {
    .uhm-stats__filters { grid-template-columns: repeat(4,1fr); }
    .uhm-stats__filter-heading { grid-column: 1/-1; }
    .uhm-stats__kpis { grid-template-columns: repeat(3,1fr); }
    .uhm-table-browser { grid-template-columns: 235px minmax(0,1fr); }
}
@media (max-width: 760px) {
    .uhm-stats { padding: 0 12px 28px; }
    .uhm-stats__hero { display: grid; padding: 26px 20px; }
    .uhm-stats__hero h1 { font-size: 29px; }
    .uhm-stats__stamp { min-width: 0; border-top: 1px solid rgba(255,255,255,.2); border-left: 0; padding: 15px 0 0; }
    .uhm-stats__filters { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 15px; }
    .uhm-stats__filter-heading, .uhm-stats__filters button { grid-column: 1/-1; }
    .uhm-stats__kpis { display: flex; margin-right: -12px; overflow-x: auto; scroll-snap-type: x mandatory; }
    .uhm-kpi { flex: 0 0 220px; scroll-snap-align: start; }
    .uhm-table-browser { grid-template-columns: 1fr; }
    .uhm-table-catalog { position: static; }
    .uhm-table-catalog nav { display: flex; max-height: none; overflow-x: auto; padding: 0 8px 10px; }
    .uhm-table-catalog__item { flex: 0 0 210px; border: 1px solid #e0e9ea; }
    .uhm-stat-table > header { display: grid; padding: 17px; }
    .uhm-stat-table__exports { overflow-x: auto; }
    .uhm-stat-table__exports a, .uhm-stat-table__exports button { flex: 0 0 auto; }
    .uhm-stat-table__scroll { max-height: 62vh; }
}
@media print {
    .sia-sidebar, .sia-topbar, .activity-tab-rail, .uhm-stats__filters, .uhm-stat-table__exports { display: none !important; }
    .sia-main, .sia-content, .uhm-stats { width: 100% !important; margin: 0 !important; padding: 0 !important; }
    .uhm-stats__hero { padding: 20px; print-color-adjust: exact; }
    .uhm-stats__kpis { grid-template-columns: repeat(5,1fr); }
    .uhm-stat-table { break-inside: avoid; box-shadow: none; }
    .uhm-stat-table__scroll { max-height: none; overflow: visible; }
    .uhm-stat-table th, .uhm-stat-table td { position: static !important; min-width: 0; padding: 6px; font-size: 8px; }
}
.activity-tab-item.locked.active{
    border-color:#dce7e1!important;
    background:#f4f8f5!important;
}
.activity-tab-item.locked > .activity-tab-locked{
    display:grid;
    flex:1;
    grid-template-columns:24px auto 18px;
    column-gap:7px;
    min-width:0;
    padding:7px 10px;
    color:#7d928b;
    cursor:not-allowed;
    text-decoration:none;
}
.activity-tab-item.locked > .activity-tab-locked i,
.activity-tab-item.locked > .activity-tab-locked img{
    grid-row:1 / 3;
    align-self:center;
}
.activity-tab-item.locked > .activity-tab-locked i{
    color:#91aaa2;
    font-style:normal;
}
.activity-tab-item.locked > .activity-tab-locked img{
    width:24px;
    height:24px;
    border-radius:6px;
    object-fit:cover;
    object-position:center;
}
.activity-tab-item.locked > .activity-tab-locked span{
    font-size:12px;
    font-weight:500;
}
.activity-tab-item.locked > .activity-tab-locked small{
    max-width:125px;
    overflow:hidden;
    color:#94a8a1;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.activity-tab-item.locked > .activity-tab-locked svg{
    grid-column:3;
    grid-row:1 / 3;
    align-self:center;
    width:15px;
    height:15px;
    fill:none;
    stroke:#829991;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.activity-tab-item.locked .activity-storage-badge{
    opacity:.7;
}
.activity-tab-item.locked > button{
    display:none;
}

.institution-bg-page .sia-main{
    position:relative;
    isolation:isolate;
    background:
        linear-gradient(135deg, rgba(248,251,248,.42), rgba(239,247,242,.36)),
        url("../img/auth/login-field.png") center/cover fixed no-repeat;
}

.institution-bg-page .sia-main::before{
    content:"";
    position:fixed;
    inset:0 0 0 var(--sidebar-width, 250px);
    z-index:-2;
    pointer-events:none;
    background:
        linear-gradient(115deg, rgba(255,255,255,.38), rgba(255,255,255,.16) 42%, rgba(244,250,246,.34)),
        radial-gradient(circle at 18% 16%, rgba(36, 116, 82, .04), transparent 28%),
        radial-gradient(circle at 82% 10%, rgba(12, 78, 99, .035), transparent 24%);
    backdrop-filter:saturate(.95) brightness(1.02);
}

.institution-bg-page .sia-main::after{
    content:"";
    position:fixed;
    right:-140px;
    bottom:-170px;
    z-index:-1;
    width:520px;
    height:520px;
    pointer-events:none;
    border-radius:50%;
    background:
        radial-gradient(circle, rgba(36, 116, 82, .12), rgba(36, 116, 82, .045) 38%, transparent 68%);
    filter:blur(1px);
}

.institution-bg-page .dashboard-card-grid,
.institution-bg-page .institution-card-grid{
    justify-content:center;
}

.institution-bg-page .dashboard-card-grid--institutions,
.institution-bg-page .dashboard-card-grid--services{
    grid-template-columns:repeat(auto-fit,minmax(230px,270px));
    justify-content:center;
    max-width:1160px;
    margin-right:auto;
    margin-left:auto;
}

.institution-bg-page .dashboard-card-grid--institutions .dashboard-square-card{
    border-radius:0;
    background:rgba(255,255,255,.96);
    box-shadow:0 18px 46px rgba(18, 67, 51, .10);
}

.institution-bg-page .dashboard-card-grid--institutions .dashboard-square-card:hover{
    background:#fff;
}

.institution-bg-page .dashboard-card-grid--institutions .dashboard-square-card--themed::after{
    opacity:.025;
}

.institution-bg-page .dashboard-card-grid--institutions .dashboard-card-logo,
.institution-bg-page .dashboard-card-grid--institutions .dashboard-square-card>i:not(.dashboard-edit-button){
    border-radius:0;
    background:#fff;
}

.dashboard-card-grid--single-entity{
    min-height:calc(100vh - 280px);
    align-content:center;
    grid-template-columns:minmax(300px,340px);
}

.dashboard-card-grid--single-entity .dashboard-square-card{
    min-height:300px;
    padding:28px;
}

.dashboard-card-grid--single-entity .dashboard-card-logo{
    width:84px;
    height:84px;
}

.dashboard-card-grid--single-entity .dashboard-square-card h2{
    font-size:20px;
}

.institution-bg-page .institution-card-grid{
    grid-template-columns:repeat(auto-fit,minmax(210px,245px));
}

.institution-bg-page .institution-card-grid--services{
    grid-template-columns:repeat(auto-fit,minmax(245px,285px));
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions{
    grid-template-columns:repeat(auto-fill,minmax(255px,1fr));
    gap:18px;
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card{
    min-height:250px;
    padding:22px;
    border:1px solid #d7e4dc;
    border-radius:0;
    background:#fff;
    box-shadow:0 10px 26px rgba(20, 54, 43, .06);
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card::before,
body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card::after{
    display:none;
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-card-logo,
body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card>i:not(.dashboard-edit-button){
    width:66px;
    height:66px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card>span{
    margin-top:18px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card h2{
    max-width:100%;
    margin-top:10px;
    font-size:18px;
    line-height:1.25;
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card p{
    display:block;
    overflow:visible;
    margin-top:12px;
    color:#61766e;
    font-size:12px;
    line-height:1.5;
    -webkit-line-clamp:unset;
}

body:not(.institution-bg-page) .dashboard-card-grid--institutions .dashboard-square-card small{
    align-self:flex-start;
    margin-top:auto;
    padding:8px 10px;
    border:1px solid var(--card-theme-border,#d7e4dc);
    background:var(--card-theme-soft,#f2f7f4);
    color:var(--card-theme,#315f4c);
}

.dashboard-card-grid--few-entities{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),360px));
    justify-content:center;
}

.dashboard-card-grid--few-entities .dashboard-square-card{
    min-height:300px;
    padding:28px;
}

.dashboard-card-grid--few-entities .dashboard-card-logo,
.dashboard-card-grid--few-entities .dashboard-square-card>i:not(.dashboard-edit-button){
    width:82px;
    height:82px;
}

.dashboard-card-grid--few-entities .dashboard-square-card h2{
    font-size:21px;
}

.dashboard-card-grid--few-entities .dashboard-square-card p{
    font-size:13px;
}

.institution-bg-page .dashboard-card-grid--few-entities{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),430px));
    justify-content:center;
}

.institution-bg-page .dashboard-card-grid--single-entity{
    min-height:calc(100vh - 260px);
}

.institution-bg-page .dashboard-card-grid--few-entities .dashboard-square-card{
    min-height:340px;
    padding:32px;
}

.institution-bg-page .dashboard-card-grid--few-entities .dashboard-card-logo,
.institution-bg-page .dashboard-card-grid--few-entities .dashboard-square-card>i:not(.dashboard-edit-button){
    width:92px;
    height:92px;
}

.institution-bg-page .dashboard-card-grid--few-entities .dashboard-square-card h2{
    font-size:23px;
    line-height:1.22;
}

.institution-bg-page .dashboard-card-grid--few-entities .dashboard-square-card p{
    font-size:14px;
}

.activity-tabs{
    flex-wrap:nowrap;
    justify-content:flex-start;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-behavior:smooth;
    scroll-padding-inline:24px;
    scroll-snap-type:x proximity;
    scrollbar-color:var(--theme-border,#bcdac9) transparent;
    scrollbar-width:thin;
    background:
        linear-gradient(120deg, rgba(255,255,255,.95), rgba(246,250,247,.92)),
        repeating-linear-gradient(135deg, rgba(31,95,70,.035) 0 1px, transparent 1px 14px);
}

.activity-tabs__label{
    order:-2;
    flex:0 0 auto;
}

.activity-tabs .activity-tab-item{
    flex:0 0 330px;
    scroll-snap-align:start;
}

.activity-tabs .activity-tab-item.active{
    order:-1;
}

.activity-tabs>button{
    flex:none;
    scroll-snap-align:start;
}

.sima-download-mini img{
    display:block;
    width:21px;
    height:21px;
    object-fit:contain;
}

.sima-action-download img{
    display:block;
    width:27px;
    height:27px;
    object-fit:contain;
}

/* Stable, compact cards for reports and documents */
.content-hub--reports .reports-manager__grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
}

.content-hub--reports .report-dossier-card,
.content-hub--reports .reports-manager__grid .report-dossier-card{
    position:relative;
    width:100%;
    max-width:100%;
    min-height:382px;
    overflow:visible;
    border:1px solid color-mix(in srgb,var(--theme-primary,#247253) 20%,#dce6df);
    border-top:3px solid color-mix(in srgb,var(--theme-primary,#247253) 72%,#fff);
    border-radius:7px;
    background:linear-gradient(160deg,#fff 0%,#fff 72%,color-mix(in srgb,var(--theme-pale,#eff7f2) 66%,#fff) 100%);
    box-shadow:0 7px 22px rgba(24,54,44,.075);
    transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}

.content-hub--reports .report-dossier-card:hover{
    z-index:3;
    border-color:color-mix(in srgb,var(--theme-primary,#247253) 42%,#dce6df);
    box-shadow:0 14px 32px rgba(24,54,44,.13);
    transform:translateY(-3px);
}

.content-hub--reports .report-dossier-card__cover{
    height:142px;
    min-height:142px;
    flex-basis:142px;
    border-radius:4px 4px 0 0;
    background:
        radial-gradient(circle at 88% 12%,color-mix(in srgb,var(--theme-primary,#247253) 12%,transparent) 0 18%,transparent 19%),
        linear-gradient(145deg,color-mix(in srgb,var(--theme-pale,#eff7f2) 78%,#fff),#fff);
}

.content-hub--reports .report-dossier-card__cover--fallback > img{
    width:70px;
    height:94px;
}

.content-hub--reports .report-dossier-card__content{
    min-width:0;
    padding:15px 16px 10px;
    overflow:hidden;
    background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(255,255,255,.82));
}

.content-hub--reports .report-dossier-card__meta{
    min-width:0;
    flex-wrap:wrap;
    gap:4px 7px;
    line-height:1.35;
}

.content-hub--reports .report-dossier-card__meta span{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
    white-space:normal;
}

.content-hub--reports .report-dossier-card h3{
    display:-webkit-box;
    min-width:0;
    min-height:43px;
    margin:9px 0 6px;
    overflow:hidden;
    overflow-wrap:anywhere;
    font-size:16px;
    line-height:1.34;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.content-hub--reports .report-dossier-card p{
    display:-webkit-box;
    min-width:0;
    margin:0 0 9px;
    overflow:hidden;
    overflow-wrap:anywhere;
    line-height:1.45;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.content-hub--reports .report-dossier-card__keywords{
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.content-hub--reports .report-dossier-card__actions{
    min-width:0;
    margin:0 16px 14px;
    padding-top:10px;
    border-color:color-mix(in srgb,var(--theme-primary,#247253) 14%,#edf2ef);
}

.content-hub--documents .documents-list .document-card{
    width:100%;
    max-width:100%;
    min-height:212px;
    gap:14px;
    padding:17px;
    border-color:color-mix(in srgb,var(--theme-primary,#247253) 19%,#dce6df);
    border-radius:7px;
    background:
        linear-gradient(135deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 70%,color-mix(in srgb,var(--theme-pale,#eff7f2) 62%,#fff) 100%);
    box-shadow:0 7px 20px rgba(28,61,49,.065);
}

.content-hub--documents .documents-list .document-card::before{
    width:4px;
    border-radius:6px 0 0 6px;
    background:linear-gradient(180deg,var(--theme-primary,#247253),color-mix(in srgb,var(--theme-primary,#247253) 42%,#fff));
}

.content-hub--documents .documents-list .document-card:hover{
    border-color:color-mix(in srgb,var(--theme-primary,#247253) 42%,#dce6df);
    box-shadow:0 14px 30px rgba(28,61,49,.12);
}

.content-hub--documents .document-card__body{
    width:100%;
    max-width:100%;
    min-height:178px;
    overflow:hidden;
}

.content-hub--documents .document-card__icon{
    width:60px;
    height:76px;
    border:1px solid color-mix(in srgb,var(--theme-primary,#247253) 20%,#dce6df);
    border-radius:6px;
    background:linear-gradient(155deg,#fff,color-mix(in srgb,var(--theme-pale,#eff7f2) 76%,#fff));
    box-shadow:0 6px 14px rgba(29,64,50,.07);
}

.content-hub--documents .document-card__icon svg{
    inset:7px;
    width:calc(100% - 14px);
    height:calc(100% - 14px);
}

.content-hub--documents .document-card__icon span{
    margin-top:17px;
    box-shadow:0 2px 5px rgba(24,54,44,.13);
}

.content-hub--documents .document-card__meta{
    min-width:0;
    max-width:100%;
    margin-bottom:7px;
}

.content-hub--documents .document-card__meta > span{
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
}

.content-hub--documents .document-card h3{
    display:-webkit-box;
    max-width:100%;
    overflow:hidden;
    overflow-wrap:anywhere;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.content-hub--documents .document-card h4,
.content-hub--documents .document-card small{
    display:-webkit-box;
    max-width:100%;
    overflow:hidden;
    overflow-wrap:anywhere;
    line-height:1.4;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.content-hub--documents .document-card__body > p{
    width:100%;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.content-hub--documents .document-card em{
    display:block;
    min-width:0;
}

@media (max-width:1180px){
    .content-hub--reports .reports-manager__grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:760px){
    .content-hub--reports .reports-manager__grid,
    .content-hub--documents .documents-list.content-library-list{
        grid-template-columns:1fr;
    }

    .content-hub--reports .report-dossier-card,
    .content-hub--reports .reports-manager__grid .report-dossier-card{
        min-height:360px;
    }
}
.cnsa-alert-admin {
    --cnsa-ink: #18372f;
    --cnsa-green: #19714f;
    --cnsa-soft: #edf7f1;
    color: var(--cnsa-ink);
}

.cnsa-alert-head {
    background:
        linear-gradient(115deg, rgba(25, 113, 79, .08), transparent 48%),
        #fff;
}

.cnsa-alert-head__actions,
.cnsa-alert-panel__head,
.cnsa-source-panel > header {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.cnsa-alert-kpis {
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 22px;
    overflow: hidden;
    border: 1px solid #d9e7df;
}

.cnsa-alert-kpis article {
    background: #fff;
    min-height: 112px;
    padding: 20px;
}

.cnsa-alert-kpis span,
.cnsa-alert-panel__head span,
.cnsa-source-panel header span,
.cnsa-method-panel > span {
    color: #71877f;
    display: block;
    font-size: 11px;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.cnsa-alert-kpis strong {
    display: block;
    font-size: 29px;
    font-weight: 500;
    margin: 8px 0 2px;
}

.cnsa-alert-kpis small { color: #72867f; }

.cnsa-alert-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 18px 22px 0;
    border: 1px solid #d9e7df;
}

.cnsa-alert-tabs a {
    align-items: center;
    color: var(--cnsa-ink);
    display: flex;
    gap: 10px;
    padding: 13px 16px;
    text-decoration: none;
    border-right: 1px solid #d9e7df;
}

.cnsa-alert-tabs a:last-child { border-right: 0; }
.cnsa-alert-tabs span { color: var(--cnsa-green); font-size: 11px; }

.cnsa-alert-layout {
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(0, 1.45fr) minmax(330px, .75fr);
    padding: 18px 22px;
}

.cnsa-alert-panel,
.cnsa-source-panel,
.cnsa-method-panel {
    background: #fff;
    border: 1px solid #d8e5de;
    padding: 20px;
}

.cnsa-alert-panel__head h3,
.cnsa-source-panel h3,
.cnsa-method-panel h3 { margin: 4px 0 0; }

.cnsa-alert-panel__head button,
.cnsa-alert-status-form button {
    background: #f5faf7;
    border: 1px solid #cfe0d6;
    color: #145f44;
    cursor: pointer;
    min-height: 38px;
    padding: 8px 13px;
}

.cnsa-alert-method-note {
    background: var(--cnsa-soft);
    border-left: 3px solid var(--cnsa-green);
    color: #536d64;
    margin: 17px 0;
    padding: 12px 14px;
}

.cnsa-alert-rule {
    border: 1px solid #dce8e1;
    margin-top: 9px;
}

.cnsa-alert-rule summary {
    align-items: center;
    cursor: pointer;
    display: grid;
    gap: 9px;
    grid-template-columns: 86px minmax(150px, .8fr) minmax(240px, 1.6fr) auto;
    list-style: none;
    padding: 13px 14px;
}

.cnsa-alert-rule summary::-webkit-details-marker { display: none; }
.cnsa-alert-rule summary > span,
.cnsa-alert-signal header span {
    background: #edf6f1;
    color: #196b4d;
    font-size: 11px;
    padding: 5px 8px;
    text-align: center;
    text-transform: uppercase;
}

.cnsa-alert-rule--alerte summary > span,
.cnsa-alert-signal--alerte header span { background: #fff1df; color: #a65313; }
.cnsa-alert-rule--urgence summary > span,
.cnsa-alert-signal--urgence header span { background: #fde7e4; color: #ad3129; }
.cnsa-alert-rule summary small,
.cnsa-alert-rule summary em { color: #6d817a; font-style: normal; }

.cnsa-alert-rule__body { background: #fbfdfc; border-top: 1px solid #e3ece7; padding: 14px; }
.cnsa-alert-rule__body p { margin: 0 0 6px; }
.cnsa-alert-rule__actions { display: flex; gap: 8px; padding: 0 14px 14px; }
.cnsa-alert-rule__actions button { background: #fff; border: 1px solid #d2e1d8; cursor: pointer; padding: 8px 12px; }
.cnsa-alert-rule__actions .cnsa-alert-delete { color: #a43b35; }

.cnsa-alert-signal-list { display: grid; gap: 10px; margin-top: 17px; max-height: 650px; overflow: auto; padding-right: 4px; }
.cnsa-alert-signal { border: 1px solid #dce8e1; border-left: 4px solid #57a47e; padding: 14px; }
.cnsa-alert-signal--alerte { border-left-color: #de8a31; }
.cnsa-alert-signal--urgence { border-left-color: #c6443c; }
.cnsa-alert-signal header { align-items: center; display: flex; justify-content: space-between; }
.cnsa-alert-signal header em { color: #75877f; font-size: 12px; font-style: normal; }
.cnsa-alert-signal h4 { margin: 12px 0 6px; }
.cnsa-alert-signal p { color: #566e65; margin: 0 0 8px; }
.cnsa-alert-signal > small { color: #7a8c85; display: block; }
.cnsa-alert-signal > strong { display: block; font-size: 22px; margin-top: 10px; }
.cnsa-alert-status-form { display: flex; gap: 7px; margin-top: 12px; }
.cnsa-alert-status-form select { border: 1px solid #d1e0d7; flex: 1; min-width: 0; padding: 7px; }

.cnsa-source-panel { margin: 0 22px 18px; }
.cnsa-source-grid { display: grid; gap: 9px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 16px; }
.cnsa-source-grid article { align-items: center; border: 1px solid #dde8e2; display: grid; gap: 9px; grid-template-columns: auto 1fr; padding: 13px; }
.cnsa-source-grid article > span { color: #a0afa9; font-size: 20px; grid-row: 1 / 3; }
.cnsa-source-grid article.is-ready > span { color: var(--cnsa-green); }
.cnsa-source-grid strong,
.cnsa-source-grid small { display: block; }
.cnsa-source-grid small { color: #7b8d86; margin-top: 3px; }
.cnsa-source-grid em { color: #87978f; font-size: 11px; font-style: normal; grid-column: 2; }
.cnsa-source-grid .is-ready em { color: var(--cnsa-green); }

.cnsa-method-panel { margin: 0 22px 22px; }
.cnsa-method-panel > div { display: grid; gap: 1px; grid-template-columns: repeat(4, 1fr); margin-top: 15px; }
.cnsa-method-panel p { background: #f5faf7; margin: 0; min-height: 92px; padding: 15px; }
.cnsa-method-panel p strong { display: block; margin-bottom: 6px; }
.cnsa-alert-dialog { max-width: 940px; }
.cnsa-alert-form { padding: 20px; }

@media (max-width: 1100px) {
    .cnsa-alert-layout { grid-template-columns: 1fr; }
    .cnsa-source-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
    .cnsa-alert-kpis,
    .cnsa-alert-tabs,
    .cnsa-method-panel > div { grid-template-columns: 1fr 1fr; }
    .cnsa-alert-rule summary { grid-template-columns: 1fr; }
    .cnsa-source-grid { grid-template-columns: 1fr; }
}
.sia-main {
    position: relative;
}

.sia-partial-loader {
    position: absolute;
    inset: 0 0 auto;
    z-index: 9000;
    height: 3px;
    pointer-events: none;
}

.sia-partial-loader[hidden] {
    display: none;
}

.sia-partial-progress {
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    overflow: hidden;
    background: rgba(20, 144, 75, 0.12);
}

.sia-partial-progress i {
    display: block;
    width: 38%;
    height: 100%;
    background: var(--theme-primary, var(--green));
    animation: sia-partial-progress 1s ease-in-out infinite;
}

@keyframes sia-partial-progress {
    from { transform: translateX(-110%); }
    to { transform: translateX(290%); }
}

@media (prefers-reduced-motion: reduce) {
    .sia-partial-progress i { animation: none; }
}

.partner-section-title {
    margin-top: 38px;
    color: #6d3da4;
    border-color: #d8c8ea;
    background: linear-gradient(90deg, #f6f0ff, #fff8ed);
}

.dashboard-card-grid--partners {
    padding: 20px;
    border: 1px solid #e1d5ef;
    border-radius: 20px;
    background: linear-gradient(135deg, rgb(246 240 255 / 82%), rgb(255 248 237 / 78%));
}

.dashboard-card-grid--partners .dashboard-square-card--partner {
    border-color: var(--card-theme-border, #d9c7ed);
    background: linear-gradient(150deg, #fff 15%, var(--card-theme-soft, #f4edff) 110%);
}

.dashboard-card-grid--partners .dashboard-square-card--partner::before { height: 7px; }

.dashboard-card-grid--partners .partner-admin-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    margin: 0;
    padding: 5px 8px;
    border: 1px solid var(--card-theme-border, #d9c7ed);
    border-radius: 999px;
    background: #fff;
    color: var(--card-theme, #6d3da4);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dashboard-card-grid--partners .dashboard-square-card--partner .dashboard-card-logo,
.dashboard-card-grid--partners .dashboard-square-card--partner > i { margin-top: 28px; }

.dashboard-card-grid--partners .dashboard-square-card--partner-create {
    border-color: #bda2dc;
    background: linear-gradient(150deg, #fbf8ff, #fff7ea);
    opacity: 1;
}

.dashboard-card-grid--partners .dashboard-square-card--partner-empty {
    border: 1px dashed #d8c6e9;
    background: rgb(255 255 255 / 55%);
}
