/* Font loading is centralized in App\Core\UiAssets::fontStyles() (Noto Sans system-wide). */

:root {
    --font-sans: var(--core-font-sans, "Noto Sans", "Noto Sans Thai", "Segoe UI", Tahoma, sans-serif);
    --rru-primary: #11385c;
    --rru-primary-strong: #0b2742;
    --rru-primary-soft: #e8f1f8;
    --rru-accent: #00a3a8;
    --rru-accent-strong: #087a82;
    --rru-gold: #f2b705;
    --rru-orange: #ee7c22;
    --surface: #ffffff;
    --surface-soft: #f5f8fb;
    --surface-muted: #edf3f8;
    --surface-blue: #eaf4fb;
    --text: #1f2937;
    --text-muted: #64748b;
    --border: #d6e1ea;
    --danger: #b42318;
    --warning: #b54708;
    --success: #067647;
    --info: #175cd3;
    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 18px;
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, .08);
    --shadow-md: 0 14px 34px rgba(17, 56, 92, .12);
    --container: 1180px;
    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-8: 2rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--text);
    font-family: var(--font-sans);
    font-size: 16px;
    line-height: 1.62;
    background: var(--surface-soft);
}
a { color: var(--rru-primary); text-decoration: none; }
a:hover { color: var(--rru-accent-strong); text-decoration: underline; }
img { max-width: 100%; display: block; }
.container { width: min(100% - 32px, var(--container)); margin-inline: auto; }
.skip-link { position: absolute; left: -999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.skip-link:focus { left: 16px; top: 12px; width: auto; height: auto; background: #fff; color: var(--rru-primary); padding: .5rem .75rem; border: 2px solid var(--rru-primary); z-index: 999; }

.topbar {
    background: #f7fafc;
    border-bottom: 1px solid var(--border);
    color: var(--text-muted);
    font-size: .9rem;
}
.topbar__inner { display: flex; align-items: center; gap: var(--space-5); min-height: 38px; }
.topbar__inner a { color: var(--text-muted); }
.topbar__inner a:last-child { margin-left: auto; }

.navbar {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid var(--border);
    box-shadow: 0 8px 22px rgba(17, 56, 92, .06);
    backdrop-filter: saturate(140%) blur(8px);
}
.navbar__inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); color: var(--text); min-width: 235px; }
.brand:hover { text-decoration: none; color: var(--text); }
.brand__mark {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, var(--rru-primary), var(--rru-accent));
    font-weight: 700;
    letter-spacing: .02em;
    box-shadow: inset 0 -10px 18px rgba(0,0,0,.14);
}
.brand__mark::after { content: ""; position: absolute; right: -5px; bottom: -5px; width: 18px; height: 18px; border-radius: 5px; background: var(--rru-gold); border: 3px solid #fff; }
.brand strong { display: block; font-size: 1.05rem; line-height: 1.2; color: var(--rru-primary); }
.brand small { display: block; color: var(--text-muted); font-size: .78rem; }
.nav-links { display: flex; align-items: center; gap: .15rem; }
.nav-links a { color: #263748; padding: .75rem .7rem; border-radius: var(--radius-sm); font-size: .94rem; font-weight: 600; white-space: nowrap; }
.nav-links a:hover { background: var(--rru-primary-soft); color: var(--rru-primary); text-decoration: none; }
.nav-login { border: 1px solid var(--rru-primary); color: var(--rru-primary) !important; margin-left: var(--space-2); }
.nav-login:hover { background: var(--rru-primary) !important; color: #fff !important; }
.nav-toggle, .icon-button { display: none; border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius-sm); padding: .45rem .65rem; font: inherit; color: var(--rru-primary); }

.hero {
    position: relative;
    min-height: 550px;
    overflow: hidden;
    background: linear-gradient(180deg, #f6fbff 0%, #e9f3fb 100%);
}
.hero::before { content: ""; position: absolute; inset: 0; background:
    radial-gradient(circle at 82% 18%, rgba(0,163,168,.16), transparent 30%),
    radial-gradient(circle at 18% 88%, rgba(242,183,5,.18), transparent 30%);
    pointer-events: none;
}
.hero__backdrop { position: absolute; inset: 0; overflow: hidden; }
.hero__backdrop::before {
    content: "";
    position: absolute;
    right: -13vw;
    top: -26vw;
    width: min(76vw, 900px);
    height: min(76vw, 900px);
    border-radius: 999px;
    background: conic-gradient(from 18deg, #e5243b, #dda63a, #4c9f38, #c5192d, #ff3a21, #26bde2, #fcc30b, #a21942, #fd6925, #dd1367, #fd9d24, #bf8b2e, #3f7e44, #0a97d9, #56c02b, #00689d, #19486a, #e5243b);
    opacity: .16;
    filter: saturate(1.1);
}
.hero__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(rgba(17,56,92,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(17,56,92,.06) 1px, transparent 1px);
    background-size: 48px 48px;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.35), transparent 80%);
}
.hero__content { position: relative; min-height: 550px; display: grid; grid-template-columns: minmax(0, .95fr) minmax(360px, .75fr); gap: clamp(2rem, 6vw, 4rem); align-items: center; }
.hero__panel { max-width: 680px; color: var(--text); background: transparent; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
.hero h1 { font-size: clamp(2.35rem, 6vw, 4.9rem); line-height: 1.03; margin: .1rem 0 var(--space-4); color: var(--rru-primary); letter-spacing: -.03em; }
.hero p { color: #475569; font-size: 1.05rem; max-width: 640px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
.eyebrow { margin: 0 0 var(--space-2); color: var(--rru-accent-strong); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .86rem; }
.hero .eyebrow { color: var(--rru-orange); }
.hero-kicker { display: inline-flex; align-items: center; gap: .45rem; min-height: 32px; padding: .2rem .65rem; border: 1px solid rgba(238,124,34,.28); border-radius: 999px; background: rgba(255,255,255,.75); color: #8a4b14; font-weight: 600; font-size: .9rem; margin-bottom: var(--space-4); }
.hero-visual { position: relative; min-width: 0; }
.sdg-tile-cloud { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; align-items: stretch; transform: rotate(-2deg); }
.sdg-tile { min-height: 76px; display: grid; place-items: center; border-radius: 16px; color: #fff; font-size: clamp(1rem, 2vw, 1.35rem); font-weight: 700; box-shadow: 0 12px 24px rgba(17,56,92,.14); border: 4px solid rgba(255,255,255,.92); }
.sdg-tile--wide { grid-column: span 2; background: var(--rru-primary) !important; text-align: center; padding: 1rem; font-size: 1rem; }
.hero-card { position: absolute; left: -28px; bottom: -32px; width: min(310px, 82%); background: rgba(255,255,255,.94); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: var(--space-5); box-shadow: var(--shadow-md); }
.hero-card strong { display: block; color: var(--rru-primary); font-size: 1.35rem; }
.hero-card p { margin: .2rem 0 0; font-size: .92rem; }

.section { padding: clamp(2.7rem, 6vw, 4.8rem) 0; background: var(--surface); }
.section--muted { background: var(--surface-soft); }
.section__head { display: flex; align-items: end; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-6); }
h1, h2, h3 { line-height: 1.28; margin: 0 0 var(--space-3); color: var(--text); }
h2 { font-size: clamp(1.45rem, 3vw, 2.1rem); color: var(--rru-primary); }
p { margin: 0 0 var(--space-4); }
.split { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: var(--space-8); align-items: center; }
.lead { font-size: 1.05rem; color: #475569; }

.goal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.goal-grid--compact { max-height: 520px; overflow: auto; padding-right: var(--space-2); }
.goal-pill, .check-card { display: flex; align-items: center; gap: var(--space-2); padding: .72rem .8rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; color: var(--text); font-size: .92rem; }
.goal-pill span, .check-card span, .goal-badges span { display: inline-grid; place-items: center; min-width: 26px; height: 26px; border-radius: 5px; background: var(--goal-color, var(--rru-primary)); color: #fff; font-weight: 700; font-size: .78rem; }
.goal-pill:hover, .check-card:hover { border-color: var(--goal-color, var(--rru-primary)); text-decoration: none; transform: translateY(-1px); }
.goal-strip { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: var(--space-5); }
.goal-chip { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 7px; background: var(--goal-color, var(--rru-primary)); color: #fff; font-weight: 700; box-shadow: var(--shadow-sm); }

.dashboard-band { background: linear-gradient(135deg, var(--rru-primary-strong), var(--rru-primary)); color: rgba(255,255,255,.88); position: relative; overflow: hidden; }
.dashboard-band::after { content: ""; position: absolute; right: -160px; top: -180px; width: 460px; height: 460px; border-radius: 999px; border: 70px solid rgba(0,163,168,.16); }
.dashboard-band h2, .dashboard-band .eyebrow { color: #fff; }
.dashboard-band .container { position: relative; z-index: 1; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .68fr); gap: var(--space-8); align-items: center; }
.metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.metric-card { padding: var(--space-5); border: 1px solid rgba(255,255,255,.18); border-radius: var(--radius-md); background: rgba(255,255,255,.08); }
.metric-card strong { display: block; color: #fff; font-size: 2.1rem; line-height: 1; }
.metric-card span { display: block; margin-top: .45rem; color: rgba(255,255,255,.78); }
.dashboard-panel { background: #fff; color: var(--text); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-md); }
.dashboard-panel h3 { color: var(--rru-primary); }
.progress-list { display: grid; gap: .8rem; }
.progress-row { display: grid; grid-template-columns: 92px 1fr auto; align-items: center; gap: .75rem; font-size: .9rem; }
.progress-track { height: 10px; border-radius: 999px; background: var(--surface-muted); overflow: hidden; }
.progress-bar { width: var(--progress, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--rru-accent), var(--rru-gold)); }

.cards-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.project-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; min-width: 0; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.project-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: rgba(0,163,168,.38); }
.project-card__image { aspect-ratio: 16 / 9; background: var(--surface-muted); color: var(--rru-primary); display: block; }
.project-card__image img { width: 100%; height: 100%; object-fit: cover; }
.image-placeholder { height: 100%; display: grid; place-items: center; font-weight: 700; color: var(--rru-primary); background: linear-gradient(135deg, #edf4f8, #d9e9f4); }
.project-card__body { padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-2); flex: 1; }
.project-card h3 { font-size: 1.08rem; margin-bottom: 0; }
.project-card p { color: var(--text-muted); margin: 0; }
.project-meta { font-size: .88rem; color: var(--text-muted); }
.goal-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.goal-badges--large span { min-width: auto; padding: 0 .6rem; }
.read-more { margin-top: auto; font-weight: 700; color: var(--rru-accent-strong); }

.button { appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 44px; padding: .62rem 1.05rem; border-radius: var(--radius-sm); border: 1px solid var(--rru-primary); background: var(--rru-primary); color: #fff; font: inherit; font-weight: 700; cursor: pointer; text-decoration: none; }
.button:hover { background: var(--rru-primary-strong); color: #fff; text-decoration: none; }
.button--secondary { background: #fff; color: var(--rru-primary); border-color: #fff; }
.button--secondary:hover { background: var(--surface-muted); color: var(--rru-primary); }
.button--outline, .button--ghost { background: transparent; color: var(--rru-primary); }
.dashboard-band .button--outline { border-color: rgba(255,255,255,.46); color: #fff; }
.dashboard-band .button--outline:hover { background: rgba(255,255,255,.12); color: #fff; }
.button--outline:hover, .button--ghost:hover { background: var(--surface-muted); color: var(--rru-primary); }
.button--small { min-height: 34px; padding: .35rem .7rem; font-size: .9rem; }
.button--block { width: 100%; }

.info-band, .report-placeholders { display: grid; grid-template-columns: 1fr auto; gap: var(--space-6); align-items: center; background: var(--surface); border: 1px solid var(--border); border-left: 5px solid var(--rru-gold); border-radius: var(--radius-md); padding: var(--space-8); }
.workflow-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.workflow-item { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-5); }
.workflow-item span { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--rru-primary); color: #fff; font-weight: 700; margin-bottom: var(--space-3); }
.report-placeholders { grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 0; background: transparent; padding: 0; border: 0; }
.report-placeholders article { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-6); }
.document-center { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .7fr); gap: var(--space-6); align-items: stretch; }
.document-card { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-6); }
.document-list { display: grid; gap: .75rem; }
.document-link { display: flex; justify-content: space-between; gap: var(--space-4); padding: .9rem 1rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; color: var(--text); }
.document-link:hover { border-color: var(--rru-accent); text-decoration: none; }
.footer { background: #0b2742; color: rgba(255,255,255,.82); padding: var(--space-10) 0; }
.footer a { color: rgba(255,255,255,.88); display: block; margin-top: var(--space-2); }
.footer__grid { display: grid; grid-template-columns: 1fr 280px; gap: var(--space-8); }
.footer strong { color: #fff; }

.page-hero { padding: var(--space-12) 0; background: linear-gradient(135deg, #f7fbff, #e8f3fb); border-bottom: 1px solid var(--border); position: relative; overflow: hidden; }
.page-hero::after { content: ""; position: absolute; right: -90px; top: -120px; width: 300px; height: 300px; border-radius: 999px; background: conic-gradient(from 20deg, #e5243b, #dda63a, #4c9f38, #c5192d, #26bde2, #a21942, #fd6925, #00689d, #e5243b); opacity: .12; }
.page-hero .container { position: relative; z-index: 1; }
.page-hero--detail { background: #f8fbfd; }
.filter-card, .panel, .detail-card, .side-card, .login-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.filter-card { padding: var(--space-5); margin-bottom: var(--space-6); }
.filter-form, .admin-filter { display: grid; grid-template-columns: 180px 220px 1fr auto; gap: var(--space-4); align-items: end; }
.filter-actions { display: flex; gap: var(--space-2); }
label, fieldset { display: grid; gap: .35rem; font-weight: 600; color: var(--text); }
input, select, textarea { width: 100%; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; min-height: 42px; padding: .55rem .7rem; font: inherit; color: var(--text); }
textarea { resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 3px solid rgba(0,163,168,.18); border-color: var(--rru-accent); }
small { color: var(--text-muted); font-weight: 400; }
.required { color: var(--danger); }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--space-6); align-items: start; }
.detail-card, .side-card { padding: var(--space-6); }
.detail-image { width: 100%; max-height: 420px; object-fit: cover; border-radius: var(--radius-sm); margin-bottom: var(--space-6); }
.side-card dl { margin: 0; }
.side-card dt { color: var(--text-muted); font-size: .9rem; margin-top: var(--space-4); }
.side-card dd { margin: 0; font-weight: 600; }
.rich-text { white-space: pre-wrap; }
.empty-state { grid-column: 1 / -1; padding: var(--space-8); border: 1px dashed var(--border); border-radius: var(--radius-md); background: #fff; color: var(--text-muted); text-align: center; }
.login-page { min-height: calc(100vh - 220px); display: grid; place-items: center; padding: var(--space-12) var(--space-4); background: radial-gradient(circle at top right, rgba(0,163,168,.12), transparent 36%), var(--surface-soft); }
.login-card { width: min(100%, 440px); padding: var(--space-8); }
.form-stack { display: grid; gap: var(--space-4); }

.admin-shell { display: grid; grid-template-columns: 280px minmax(0, 1fr); min-height: 100vh; }
.sidebar { background: #0b2742; color: #fff; padding: var(--space-5); position: sticky; top: 0; height: 100vh; overflow: auto; }
.brand--admin { color: #fff; margin-bottom: var(--space-6); }
.brand--admin .brand__mark { background: var(--rru-gold); color: #1d2939; }
.brand--admin small { color: rgba(255,255,255,.72); }
.sidebar__nav { display: grid; gap: .25rem; }
.sidebar__nav a { color: rgba(255,255,255,.88); padding: .75rem .85rem; border-radius: var(--radius-sm); }
.sidebar__nav a:hover { background: rgba(255,255,255,.1); text-decoration: none; }
.admin-main { min-width: 0; }
.admin-header { min-height: 80px; background: var(--surface); border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-6); position: sticky; top: 0; z-index: 30; }
.admin-header h1 { font-size: 1.35rem; margin: 0; }
.admin-header p { margin: 0; color: var(--text-muted); }
.admin-user { margin-left: auto; display: flex; align-items: center; gap: var(--space-3); }
.admin-content { padding: var(--space-6); display: grid; gap: var(--space-6); }
.stats-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--space-4); }
.stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-5); box-shadow: var(--shadow-sm); }
.stat-card span { color: var(--text-muted); }
.stat-card strong { display: block; font-size: 2rem; color: var(--rru-primary); }
.content-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .7fr); gap: var(--space-6); }
.panel { padding: var(--space-6); min-width: 0; }
.panel__head { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-bottom: var(--space-5); }
.panel__head h2 { margin: 0; }
.panel__head p { margin: .2rem 0 0; color: var(--text-muted); }
.panel__head--wrap { flex-wrap: wrap; }
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius-md); }
.data-table { width: 100%; border-collapse: collapse; background: #fff; min-width: 760px; }
.data-table th, .data-table td { padding: .8rem .9rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
.data-table th { background: var(--surface-soft); font-size: .9rem; color: var(--text-muted); white-space: nowrap; }
.data-table tr:last-child td { border-bottom: 0; }
.text-right { text-align: right !important; }
.status { display: inline-flex; align-items: center; min-height: 26px; padding: .15rem .55rem; border-radius: 999px; font-size: .84rem; font-weight: 700; background: var(--surface-muted); color: var(--text); white-space: nowrap; }
.status--draft { background: #eef2f6; color: #344054; }
.status--submitted, .status--in_review { background: #e0f2fe; color: #075985; }
.status--revision_required { background: #fff4e5; color: var(--warning); }
.status--approved { background: #dcfae6; color: var(--success); }
.status--rejected { background: #fee4e2; color: var(--danger); }
.status--archived { background: #f2f4f7; color: #667085; }
.alert { width: min(100% - 32px, var(--container)); margin: var(--space-4) auto 0; padding: .8rem 1rem; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface); }
.site-admin .alert { width: 100%; margin: 0 0 var(--space-4); }
.alert-success { border-color: #abefc6; background: #ecfdf3; color: var(--success); }
.alert-danger { border-color: #fecdca; background: #fef3f2; color: var(--danger); }
.alert-warning { border-color: #fedf89; background: #fffaeb; color: var(--warning); }
.notice-list { display: grid; gap: var(--space-3); }
.notice-item { display: grid; gap: .2rem; padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; color: var(--text); }
.notice-item:hover { text-decoration: none; border-color: var(--rru-accent); }
.notice-item span { color: var(--text-muted); }
.notice-item.is-unread { border-left: 4px solid var(--rru-accent); }
.admin-filter { grid-template-columns: 200px minmax(260px, 1fr) auto auto; margin-bottom: var(--space-5); }
.inline-filter { display: flex; align-items: end; gap: var(--space-3); }
.form-layout, .review-layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--space-6); align-items: start; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.span-2 { grid-column: 1 / -1; }
.checkbox-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-4); }
.checkbox-grid legend, .check-list legend { padding: 0 var(--space-2); font-weight: 700; }
.check-card { cursor: pointer; font-weight: 600; }
.check-card input { width: auto; min-height: auto; }
.current-image img { max-height: 220px; border-radius: var(--radius-sm); border: 1px solid var(--border); }
.form-actions { display: flex; justify-content: flex-end; }
.submit-box { margin-top: var(--space-6); border: 1px solid var(--border); border-left: 5px solid var(--rru-gold); border-radius: var(--radius-md); padding: var(--space-5); display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); background: var(--surface-soft); }
.submit-box p { margin: 0; color: var(--text-muted); }
.side-panel { position: sticky; top: 104px; }
.comment-list, .timeline { display: grid; gap: var(--space-3); }
.comment-item, .timeline__item { padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; }
.comment-item p, .timeline__item span { display: block; margin: .25rem 0; color: var(--text-muted); }
.timeline--row { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.review-content { margin-top: var(--space-5); }
.check-list { border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-4); }
.check-list label { display: flex; align-items: center; gap: var(--space-2); font-weight: 600; }
.check-list input { width: auto; min-height: auto; }

@media (max-width: 1180px) {
    .nav-links a { padding-inline: .55rem; font-size: .9rem; }
    .brand { min-width: auto; }
}
@media (max-width: 1100px) {
    .hero__content, .dashboard-grid, .document-center { grid-template-columns: 1fr; }
    .hero-visual { max-width: 620px; margin-inline: auto; }
    .cards-grid, .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .content-grid, .form-layout, .review-layout, .detail-grid, .split { grid-template-columns: 1fr; }
    .side-panel { position: static; }
    .filter-form { grid-template-columns: 1fr 1fr; }
    .admin-filter { grid-template-columns: 1fr 1fr auto auto; }
    .workflow-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .topbar__inner { flex-wrap: wrap; padding: .45rem 0; gap: var(--space-2) var(--space-4); }
    .topbar__inner a:last-child { margin-left: 0; }
    .nav-toggle, .icon-button { display: inline-flex; }
    .navbar__inner { min-height: 72px; }
    .nav-links { position: absolute; inset: 72px 16px auto 16px; display: none; flex-direction: column; align-items: stretch; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-3); box-shadow: var(--shadow-md); }
    .nav-links.is-open { display: flex; }
    .nav-login { margin-left: 0; }
    .hero, .hero__content { min-height: auto; }
    .hero__content { padding-block: var(--space-12); }
    .section__head, .info-band, .footer__grid, .report-placeholders, .submit-box, .metric-grid { grid-template-columns: 1fr; align-items: start; }
    .cards-grid { grid-template-columns: 1fr; }
    .filter-form, .admin-filter, .form-grid, .checkbox-grid, .workflow-list { grid-template-columns: 1fr; }
    .filter-actions { width: 100%; }
    .filter-actions .button { flex: 1; }
    .admin-shell { grid-template-columns: 1fr; }
    .sidebar { position: fixed; inset: 0 auto 0 0; width: min(86vw, 300px); transform: translateX(-105%); transition: transform .18s ease; z-index: 80; }
    .sidebar.is-open { transform: translateX(0); }
    .admin-header { padding: var(--space-4); }
    .admin-user { gap: var(--space-2); }
    .admin-user span { display: none; }
    .admin-content { padding: var(--space-4); }
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .data-table--responsive { min-width: 0; border: 0; }
    .data-table--responsive thead { display: none; }
    .data-table--responsive, .data-table--responsive tbody, .data-table--responsive tr, .data-table--responsive td { display: block; width: 100%; }
    .data-table--responsive tr { border: 1px solid var(--border); border-radius: var(--radius-md); margin-bottom: var(--space-3); background: #fff; padding: var(--space-2); }
    .data-table--responsive td { border: 0; padding: .45rem .55rem; }
    .data-table--responsive td::before { content: attr(data-label); display: block; color: var(--text-muted); font-size: .8rem; margin-bottom: .15rem; }
    .text-right { text-align: left !important; }
}
@media (max-width: 560px) {
    .container { width: min(100% - 24px, var(--container)); }
    .hero h1 { font-size: clamp(2.2rem, 12vw, 3.25rem); }
    .hero__panel, .login-card, .panel, .detail-card, .side-card, .dashboard-panel { padding: var(--space-5); }
    .hero__actions, .filter-actions { flex-direction: column; }
    .button { width: 100%; }
    .stats-grid { grid-template-columns: 1fr; }
    .brand small { max-width: 210px; }
    .sdg-tile-cloud { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
    .sdg-tile { min-height: 58px; border-radius: 12px; border-width: 3px; }
    .sdg-tile--wide { grid-column: span 3; }
    .hero-card { position: static; width: auto; margin-top: var(--space-4); }
    .progress-row { grid-template-columns: 72px 1fr; }
    .progress-row strong { grid-column: 1 / -1; }
}

/* --------------------------------------------------------------------------
   Public Theme Polish 2026-06-18
   Refines NESDC-inspired public pages without changing data/workflow logic.
   -------------------------------------------------------------------------- */
:root {
    --rru-primary: #0f3d62;
    --rru-primary-strong: #082238;
    --rru-primary-soft: #eaf4fb;
    --rru-accent: #00a6b2;
    --rru-accent-strong: #007984;
    --rru-gold: #f3b51b;
    --surface-soft: #f3f7fb;
    --surface-muted: #e8eef5;
    --border: #d7e3ed;
    --text: #1d2939;
    --text-muted: #667085;
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
    --shadow-md: 0 18px 44px rgba(15, 61, 98, .14);
    --shadow-lg: 0 30px 80px rgba(8, 34, 56, .18);
}

body.site-public {
    background:
        radial-gradient(circle at top left, rgba(0, 166, 178, .08), transparent 30rem),
        linear-gradient(180deg, #f8fbfd 0%, #f2f6fa 100%);
}

.topbar {
    background: var(--rru-primary-strong);
    border-bottom: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.78);
}
.topbar__inner { min-height: 40px; }
.topbar__inner a { color: rgba(255,255,255,.9); }
.topbar__inner span:first-child {
    color: #fff;
    font-weight: 700;
    letter-spacing: .02em;
}

.navbar {
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(215, 227, 237, .9);
    box-shadow: 0 12px 30px rgba(15, 61, 98, .08);
}
.brand__mark {
    border-radius: 18px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.18), transparent 45%),
        linear-gradient(135deg, #0f3d62, #008c99 72%, #00a6b2);
    box-shadow: 0 14px 28px rgba(15,61,98,.22), inset 0 -14px 24px rgba(0,0,0,.14);
}
.brand__mark::after {
    width: 20px;
    height: 20px;
    right: -6px;
    bottom: -6px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--rru-gold), #ffe08a);
}
.nav-links { gap: .25rem; }
.nav-links a {
    border-radius: 999px;
    color: #263f56;
    padding: .72rem .85rem;
}
.nav-links a:hover {
    background: #eef7fb;
    color: var(--rru-primary);
}
.nav-login {
    background: var(--rru-primary);
    color: #fff !important;
    border-color: var(--rru-primary);
    box-shadow: 0 12px 24px rgba(15,61,98,.18);
}
.nav-login:hover { transform: translateY(-1px); }

.hero--polished {
    min-height: 650px;
    background:
        linear-gradient(135deg, rgba(8,34,56,.96), rgba(15,61,98,.92) 48%, rgba(0,122,133,.86)),
        linear-gradient(180deg, #f6fbff 0%, #e9f3fb 100%);
    color: #fff;
}
.hero--polished::before {
    background:
        radial-gradient(circle at 80% 24%, rgba(255,255,255,.18), transparent 28rem),
        radial-gradient(circle at 18% 82%, rgba(243,181,27,.22), transparent 23rem);
}
.hero--polished .hero__backdrop::before {
    right: -12vw;
    top: -20vw;
    opacity: .32;
    mix-blend-mode: screen;
    filter: saturate(1.1) blur(.2px);
}
.hero--polished .hero__backdrop::after {
    background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
    mask-image: linear-gradient(180deg, rgba(0,0,0,.6), transparent 85%);
}
.hero--polished .hero__content { min-height: 650px; }
.hero--polished .hero__panel { max-width: 760px; }
.hero--polished h1 {
    color: #fff;
    font-size: clamp(2.45rem, 5.7vw, 4.75rem);
    letter-spacing: -.045em;
    text-wrap: balance;
}
.hero--polished p { color: rgba(255,255,255,.82); }
.hero--polished .eyebrow { color: #ffd87a; }
.hero-kicker {
    border-color: rgba(255,255,255,.22);
    background: rgba(255,255,255,.1);
    color: #fff;
    backdrop-filter: blur(10px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.hero-kicker span {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #6ee7b7;
    box-shadow: 0 0 0 5px rgba(110,231,183,.15);
}
.hero--polished .button {
    border-color: #fff;
    background: #fff;
    color: var(--rru-primary);
    box-shadow: 0 16px 34px rgba(0,0,0,.18);
}
.hero--polished .button:hover {
    background: #f3f8fc;
    color: var(--rru-primary-strong);
}
.hero--polished .button--outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,.42);
    box-shadow: none;
}
.hero--polished .button--outline:hover { background: rgba(255,255,255,.1); color: #fff; }
.hero-stat-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
    margin-top: var(--space-8);
    width: min(100%, 680px);
}
.hero-stat-row div {
    min-width: 0;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    padding: .95rem 1rem;
    background: rgba(255,255,255,.09);
    backdrop-filter: blur(10px);
}
.hero-stat-row strong { display: block; color: #fff; line-height: 1.15; font-size: clamp(1rem, 2vw, 1.35rem); }
.hero-stat-row span { display: block; margin-top: .22rem; color: rgba(255,255,255,.72); font-size: .86rem; }
.hero-lens {
    position: relative;
    padding: clamp(1rem, 3vw, 1.8rem);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 32px;
    background: linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.06));
    box-shadow: var(--shadow-lg);
    backdrop-filter: blur(14px);
}
.hero-lens::before {
    content: "";
    position: absolute;
    inset: 12px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 24px;
    pointer-events: none;
}
.hero-lens .sdg-tile-cloud {
    transform: none;
    position: relative;
    z-index: 1;
}
.hero-lens .sdg-tile {
    min-height: 82px;
    border-radius: 18px;
    border: 3px solid rgba(255,255,255,.94);
    box-shadow: 0 12px 26px rgba(0,0,0,.18);
    transition: transform .16s ease, box-shadow .16s ease;
}
.hero-lens .sdg-tile:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 18px 34px rgba(0,0,0,.24);
    text-decoration: none;
}
.hero-card--floating {
    background: rgba(255,255,255,.96);
    border: 0;
    left: -16px;
    bottom: -42px;
    box-shadow: 0 22px 54px rgba(8,34,56,.22);
}

.section--overview,
.section--workflow,
.section--documents { position: relative; overflow: hidden; }
.section--overview::before,
.section--workflow::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 12% 18%, rgba(0,166,178,.06), transparent 26rem), radial-gradient(circle at 88% 86%, rgba(243,181,27,.08), transparent 22rem);
    pointer-events: none;
}
.section--overview > .container,
.section--workflow > .container { position: relative; z-index: 1; }
.split--wide { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.section__head--center {
    justify-content: center;
    text-align: center;
    max-width: 760px;
    margin-inline: auto;
}

.goal-grid--compact {
    max-height: none;
    overflow: visible;
    padding-right: 0;
}
.goal-pill {
    min-height: 58px;
    border-color: rgba(215,227,237,.86);
    border-radius: 14px;
    box-shadow: 0 1px 0 rgba(16,24,40,.02);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.goal-pill:hover {
    box-shadow: 0 12px 28px rgba(15,61,98,.1);
    background: #fff;
}
.goal-pill span,
.goal-chip,
.goal-badges span {
    border-radius: 8px;
    box-shadow: inset 0 -8px 12px rgba(0,0,0,.12);
}
.trust-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin-top: var(--space-6);
}
.trust-card {
    padding: var(--space-5);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: #fff;
    box-shadow: var(--shadow-sm);
}
.trust-card span {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    padding-inline: .55rem;
    border-radius: 999px;
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
    font-size: .8rem;
    font-weight: 700;
}
.trust-card strong { display: block; margin-top: .75rem; color: var(--rru-primary); }
.trust-card p { margin: .25rem 0 0; color: var(--text-muted); font-size: .92rem; }

.dashboard-band--polished {
    background:
        radial-gradient(circle at 12% 22%, rgba(0,166,178,.22), transparent 26rem),
        linear-gradient(135deg, #082238, #0f3d62 54%, #0a6673);
}
.dashboard-band--polished::after {
    border-color: rgba(255,255,255,.09);
    right: -120px;
    top: -150px;
}
.metric-card {
    border-radius: 18px;
    background: rgba(255,255,255,.1);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.dashboard-panel--glass {
    border: 1px solid rgba(255,255,255,.16);
    background: rgba(255,255,255,.96);
    box-shadow: 0 28px 70px rgba(0,0,0,.2);
}
.panel-caption {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    border-radius: 999px;
    padding-inline: .65rem;
    background: var(--rru-primary-soft);
    color: var(--rru-accent-strong);
    font-weight: 700;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: var(--space-3);
}
.dashboard-note {
    margin-top: var(--space-5);
    padding: .85rem 1rem;
    border-radius: 12px;
    background: #f6fbfd;
    color: var(--text-muted);
    font-size: .92rem;
}
.progress-track { height: 12px; background: #e9f0f6; }
.progress-bar { background: linear-gradient(90deg, #00a6b2, #19c6a0 58%, #f3b51b); }

.section--projects { background: linear-gradient(180deg, #f3f7fb, #eef4f8); }
.cards-grid--featured .project-card:first-child:nth-last-child(n+2),
.cards-grid--featured .project-card:first-child:nth-last-child(n+2) ~ .project-card {
    min-height: 100%;
}
.project-card {
    border: 1px solid rgba(215,227,237,.9);
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 8px 22px rgba(15,61,98,.07);
}
.project-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 48px rgba(15,61,98,.14);
    border-color: rgba(0,166,178,.4);
}
.project-card__image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 9.5;
}
.project-card__image::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 42%;
    background: linear-gradient(180deg, transparent, rgba(8,34,56,.36));
    pointer-events: none;
}
.image-placeholder {
    background:
        radial-gradient(circle at 78% 20%, rgba(243,181,27,.34), transparent 9rem),
        radial-gradient(circle at 22% 80%, rgba(0,166,178,.28), transparent 10rem),
        linear-gradient(135deg, #eaf4fb, #dbeaf4);
    color: var(--rru-primary);
    text-align: center;
}
.image-placeholder span {
    display: block;
    font-size: .82rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.image-placeholder strong { display: block; font-size: 1.35rem; }
.project-card__body { padding: 1.35rem; }
.project-card h3,
.project-card__title {
    font-size: 1.12rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    margin: 0;
}
.project-card h3 a,
.project-card__title a {
    color: inherit;
    text-decoration: none;
}
.project-card h3 a:hover,
.project-card__title a:hover { text-decoration: underline; text-decoration-thickness: 2px; }
.project-card__summary {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    color: var(--text-muted);
    margin: 0;
}
.project-meta {
    display: inline-flex;
    width: fit-content;
    min-height: 26px;
    align-items: center;
    padding: .1rem .55rem;
    border-radius: 999px;
    background: #f2f7fb;
    color: #52677a;
    font-size: .83rem;
}
.read-more {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    width: fit-content;
}
.read-more::after { content: "→"; transition: transform .16s ease; }
.read-more:hover::after { transform: translateX(3px); }

.workflow-list--connected { position: relative; }
.workflow-list--connected::before {
    content: "";
    position: absolute;
    top: 2.1rem;
    left: 6%;
    right: 6%;
    height: 2px;
    background: linear-gradient(90deg, rgba(15,61,98,.16), rgba(0,166,178,.42), rgba(15,61,98,.16));
}
.workflow-item {
    position: relative;
    border: 1px solid rgba(215,227,237,.92);
    border-radius: 18px;
    box-shadow: var(--shadow-sm);
    transition: transform .16s ease, box-shadow .16s ease;
}
.workflow-item:hover { transform: translateY(-3px); box-shadow: 0 18px 42px rgba(15,61,98,.1); }
.workflow-item span {
    position: relative;
    z-index: 1;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--rru-primary), var(--rru-accent));
    box-shadow: 0 12px 24px rgba(15,61,98,.2);
}
.workflow-item h3 { color: var(--rru-primary); }
.workflow-item p { color: var(--text-muted); }

.document-center--polished { grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); }
.document-card--hero {
    border: 0;
    color: #fff;
    background:
        radial-gradient(circle at 88% 10%, rgba(255,255,255,.22), transparent 12rem),
        linear-gradient(135deg, #0f3d62, #008c99);
    box-shadow: var(--shadow-md);
}
.document-card--hero h2,
.document-card--hero .eyebrow { color: #fff; }
.document-card--hero p { color: rgba(255,255,255,.82); }
.document-card--hero .button--outline { border-color: rgba(255,255,255,.45); color: #fff; }
.document-card--hero .button--outline:hover { background: rgba(255,255,255,.1); color: #fff; }
.document-link {
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.document-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(15,61,98,.1);
}
.document-link strong {
    color: var(--rru-accent-strong);
    white-space: nowrap;
}
.footer {
    background:
        radial-gradient(circle at 12% 8%, rgba(0,166,178,.18), transparent 20rem),
        linear-gradient(135deg, #071f35, #0b2742 70%);
}

.page-hero--projects {
    padding: clamp(3rem, 6vw, 5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 88% 20%, rgba(255,255,255,.2), transparent 19rem),
        linear-gradient(135deg, #082238, #0f3d62 55%, #0b7180);
    border-bottom: 0;
}
.page-hero--projects h1 { color: #fff; font-size: clamp(2rem, 4vw, 3rem); }
.page-hero--projects p { color: rgba(255,255,255,.82); }
.page-hero--projects .eyebrow { color: #ffd87a; }
.page-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, .46fr);
    gap: var(--space-8);
    align-items: end;
}
.page-hero__summary {
    display: grid;
    gap: .75rem;
}
.page-hero__summary div {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
    background: rgba(255,255,255,.1);
    backdrop-filter: blur(10px);
}
.page-hero__summary strong { display: block; color: #fff; }
.page-hero__summary span { display: block; color: rgba(255,255,255,.72); font-size: .9rem; }
.filter-card--polished {
    margin-top: -2.25rem;
    position: relative;
    z-index: 2;
    padding: var(--space-6);
    border: 0;
    border-radius: 22px;
    box-shadow: 0 22px 54px rgba(15,61,98,.14);
}
.filter-card__head {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: var(--space-4);
    padding-bottom: var(--space-4);
    margin-bottom: var(--space-5);
    border-bottom: 1px solid var(--border);
}
.filter-card__head h2 { margin-bottom: 0; font-size: 1.35rem; }
.filter-card__head > span {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    padding-inline: .7rem;
    border-radius: 999px;
    background: #ecfdf3;
    color: var(--success);
    font-weight: 700;
    font-size: .84rem;
    white-space: nowrap;
}
.filter-form input,
.filter-form select {
    border-radius: 12px;
    border-color: #cddbe7;
    min-height: 46px;
}

@media (max-width: 1100px) {
    .hero--polished .hero__content,
    .page-hero__grid,
    .document-center--polished { grid-template-columns: 1fr; }
    .hero-lens { margin-bottom: var(--space-8); }
    .workflow-list--connected::before { display: none; }
}
@media (max-width: 900px) {
    .nav-links { border-radius: 18px; }
    .hero--polished .hero__content { padding-block: var(--space-12); }
    .hero-stat-row, .trust-grid { grid-template-columns: 1fr; }
    .filter-card__head { display: grid; }
}
@media (max-width: 560px) {
    .hero--polished h1 { font-size: clamp(2rem, 10vw, 3.05rem); }
    .hero--polished .hero__panel { padding: 0; }
    .hero-lens { padding: .8rem; border-radius: 22px; }
    .hero-lens::before { inset: 8px; border-radius: 16px; }
    .hero-lens .sdg-tile { min-height: 62px; border-radius: 13px; }
    .hero-card--floating { position: static; width: auto; margin-top: var(--space-4); }
    .page-hero__summary { grid-template-columns: 1fr; }
    .filter-card--polished { margin-top: -1rem; padding: var(--space-5); border-radius: 18px; }
}

/* --------------------------------------------------------------------------
   Mobile Production Pass 2026-06-18
   Improves public responsive behavior on 360px-480px screens without changing
   backend workflow, permissions, migrations, or public data rules.
   -------------------------------------------------------------------------- */
html,
body { max-width: 100%; overflow-x: hidden; }
body.nav-open { overflow: hidden; }

@media (max-width: 900px) {
    body { font-size: 15.5px; line-height: 1.62; }
    .container { width: min(100% - 28px, var(--container)); }

    .topbar__inner {
        min-height: 36px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .6rem;
        padding-block: .35rem;
    }
    .topbar__inner span:first-child {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .topbar__inner span:not(:first-child) { display: none; }
    .topbar__inner a:last-child {
        margin-left: 0;
        white-space: nowrap;
        font-size: .82rem;
    }

    .navbar { backdrop-filter: blur(10px); }
    .navbar__inner {
        min-height: 64px;
        gap: .75rem;
    }
    .brand {
        min-width: 0;
        flex: 1 1 auto;
        gap: .65rem;
    }
    .brand__mark {
        width: 42px;
        height: 42px;
        border-radius: 14px;
        flex: 0 0 auto;
        font-size: .86rem;
    }
    .brand__mark::after {
        width: 15px;
        height: 15px;
        right: -4px;
        bottom: -4px;
        border-radius: 6px;
        border-width: 2px;
    }
    .brand strong { font-size: .98rem; }
    .brand small {
        max-width: 52vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: .74rem;
    }
    .nav-toggle {
        align-items: center;
        justify-content: center;
        width: 44px;
        min-width: 44px;
        min-height: 44px;
        padding: 0;
        border-radius: 14px;
        font-size: 1.15rem;
        background: #fff;
        box-shadow: var(--shadow-sm);
    }
    .nav-links {
        position: fixed;
        top: 76px;
        left: 14px;
        right: 14px;
        z-index: 90;
        max-height: calc(100dvh - 92px);
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: 20px;
        padding: .65rem;
        box-shadow: 0 24px 70px rgba(8,34,56,.28);
    }
    .nav-links a {
        min-height: 46px;
        display: flex;
        align-items: center;
        padding: .78rem .95rem;
        border-radius: 14px;
        font-size: .96rem;
        white-space: normal;
    }
    .nav-login {
        margin-top: .35rem;
        justify-content: center;
        border-radius: 14px !important;
    }

    .hero--polished,
    .hero--polished .hero__content {
        min-height: auto;
    }
    .hero--polished .hero__content {
        padding-block: 2.25rem 2.75rem;
        gap: 1.8rem;
    }
    .hero--polished h1 {
        font-size: clamp(2rem, 9vw, 3rem);
        line-height: 1.13;
        letter-spacing: -.035em;
        margin-bottom: .9rem;
    }
    .hero--polished p { font-size: 1rem; }
    .hero-kicker {
        width: fit-content;
        max-width: 100%;
        min-height: 30px;
        font-size: .82rem;
        line-height: 1.35;
    }
    .hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: .7rem;
        margin-top: 1.2rem;
    }
    .hero__actions .button { width: 100%; }
    .hero-stat-row {
        gap: .65rem;
        margin-top: 1.35rem;
    }
    .hero-stat-row div {
        border-radius: 14px;
        padding: .85rem .9rem;
    }
    .hero-stat-row strong { font-size: 1.05rem; }
    .hero-stat-row span { font-size: .84rem; }
    .hero-lens {
        width: 100%;
        margin-inline: auto;
        margin-bottom: 0;
    }

    .section {
        padding: 2.35rem 0;
    }
    .section__head {
        display: grid;
        align-items: start;
        gap: .9rem;
        margin-bottom: 1.25rem;
    }
    .section__head .button { width: 100%; }
    h2 { font-size: clamp(1.35rem, 6vw, 1.8rem); }
    .lead { font-size: 1rem; }

    .split--wide,
    .split,
    .dashboard-grid,
    .document-center,
    .document-center--polished,
    .detail-grid,
    .content-grid,
    .form-layout,
    .review-layout {
        grid-template-columns: 1fr;
    }

    .goal-grid,
    .goal-grid--compact { grid-template-columns: 1fr; }
    .goal-pill {
        min-height: 52px;
        padding: .7rem .78rem;
        font-size: .94rem;
    }
    .goal-strip { gap: .32rem; }
    .goal-chip {
        width: 31px;
        height: 31px;
        border-radius: 8px;
        font-size: .82rem;
    }

    .dashboard-band .container { min-width: 0; }
    .metric-grid { gap: .75rem; }
    .metric-card { padding: 1rem; }
    .metric-card strong { font-size: 1.75rem; }
    .dashboard-panel,
    .dashboard-panel--glass { border-radius: 18px; }

    .cards-grid,
    .cards-grid--featured,
    .cards-grid--list { grid-template-columns: 1fr; }
    .project-card { border-radius: 18px; }
    .project-card__body { padding: 1.05rem; }
    .project-card h3 { font-size: 1.05rem; }
    .project-card p { font-size: .94rem; }

    .workflow-list,
    .workflow-list--connected { grid-template-columns: 1fr; }
    .workflow-item { padding: 1rem; }
    .workflow-item span {
        width: 38px;
        height: 38px;
        border-radius: 12px;
    }

    .document-card,
    .document-card--hero { padding: 1.15rem; border-radius: 18px; }
    .document-link {
        display: grid;
        grid-template-columns: 1fr;
        gap: .25rem;
        padding: .85rem .95rem;
    }
    .document-link strong { white-space: normal; }

    .footer { padding: 2.1rem 0; }
    .footer__grid { grid-template-columns: 1fr; gap: 1.2rem; }
    .footer p { font-size: .94rem; }

    .page-hero--projects { padding: 2.4rem 0 3.1rem; }
    .page-hero__grid { gap: 1.2rem; }
    .page-hero__summary { grid-template-columns: 1fr; gap: .6rem; }
    .page-hero__summary div {
        padding: .85rem .95rem;
        border-radius: 14px;
    }
    .filter-card--polished {
        margin-top: -1.45rem;
        padding: 1rem;
        border-radius: 18px;
    }
    .filter-card__head {
        gap: .7rem;
        padding-bottom: .85rem;
        margin-bottom: 1rem;
    }
    .filter-card__head h2 { font-size: 1.22rem; }
    .filter-card__head > span {
        width: fit-content;
        max-width: 100%;
        white-space: normal;
    }
    .filter-form,
    .admin-filter {
        grid-template-columns: 1fr;
        gap: .85rem;
    }
    .filter-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }
    .filter-actions .button { width: 100%; }
    input,
    select,
    textarea { min-height: 46px; font-size: 16px; }
}

@media (max-width: 640px) {
    .container { width: min(100% - 22px, var(--container)); }
    .hero--polished .hero__content { padding-block: 1.8rem 2.2rem; }
    .hero--polished h1 { font-size: clamp(1.82rem, 9.4vw, 2.55rem); }
    .hero--polished p { font-size: .96rem; }
    .eyebrow { font-size: .78rem; }
    .button { min-height: 46px; padding: .7rem .9rem; }

    .hero-lens {
        padding: .65rem;
        border-radius: 20px;
    }
    .hero-lens::before { display: none; }
    .sdg-tile-cloud {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .34rem;
    }
    .hero-lens .sdg-tile,
    .sdg-tile {
        min-height: 48px;
        border-width: 2px;
        border-radius: 11px;
        font-size: .95rem;
    }
    .sdg-tile--wide {
        grid-column: span 4;
        min-height: 54px;
        font-size: .82rem;
        line-height: 1.35;
    }
    .hero-card--floating,
    .hero-card {
        padding: .95rem;
        border-radius: 16px;
    }
    .hero-card strong { font-size: 1.05rem; }
    .hero-card p { font-size: .86rem; }

    .trust-grid,
    .metric-grid,
    .report-placeholders,
    .checkbox-grid,
    .form-grid { grid-template-columns: 1fr; }
    .trust-card { padding: 1rem; }
    .dashboard-panel { padding: 1rem; }
    .progress-row {
        grid-template-columns: 68px minmax(0, 1fr) 42px;
        gap: .55rem;
        font-size: .84rem;
    }
    .progress-track { height: 10px; }

    .project-card__image { aspect-ratio: 16 / 10; }
    .goal-badges span { min-width: 25px; height: 25px; }
    .image-placeholder strong { font-size: 1.1rem; }

    .page-hero--projects h1 { font-size: clamp(1.55rem, 8vw, 2.2rem); }
    .filter-actions { grid-template-columns: 1fr; }

    .panel,
    .detail-card,
    .side-card,
    .login-card { padding: 1rem; border-radius: 16px; }
    .panel__head { display: grid; align-items: start; }
    .panel__head .button { width: 100%; }
    .submit-box { display: grid; }
    .submit-box .button { width: 100%; }
}

@media (max-width: 420px) {
    .container { width: min(100% - 18px, var(--container)); }
    .topbar__inner { grid-template-columns: 1fr; }
    .topbar__inner a:last-child { display: none; }
    .navbar__inner { min-height: 60px; }
    .brand__mark { width: 39px; height: 39px; }
    .brand strong { font-size: .92rem; }
    .brand small { max-width: 58vw; font-size: .68rem; }
    .nav-links {
        top: 66px;
        left: 9px;
        right: 9px;
        max-height: calc(100dvh - 78px);
    }
    .hero-kicker { font-size: .76rem; }
    .hero--polished h1 { font-size: clamp(1.7rem, 9.8vw, 2.25rem); }
    .hero-stat-row div { padding: .75rem .82rem; }
    .section { padding: 2rem 0; }
    .sdg-tile-cloud { gap: .28rem; }
    .hero-lens .sdg-tile,
    .sdg-tile { min-height: 43px; font-size: .86rem; }
    .sdg-tile--wide { min-height: 50px; }
    .goal-pill { font-size: .9rem; }
    .project-card__body { padding: .95rem; }
    .document-link { font-size: .92rem; }
}

/* Starter admin modules: user / role / CMS / SDG master */
.admin-filter--wide { grid-template-columns: 180px minmax(220px,1fr) 160px minmax(220px,1fr) auto auto; }
.check-line { display: flex; align-items: center; gap: .55rem; font-weight: 600; }
.check-line input { width: auto; }
.permission-matrix { border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-4); }
.permission-group { padding: var(--space-3) 0; border-bottom: 1px solid var(--border); }
.permission-group:last-child { border-bottom: 0; }
.permission-group h3 { margin: 0 0 var(--space-2); color: var(--rru-primary); text-transform: uppercase; letter-spacing: .04em; font-size: .92rem; }
.permission-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.check-card--permission { align-items: flex-start; }
.check-card--permission span { min-width: 0; width: auto; height: auto; border-radius: 8px; padding: .1rem .35rem; font-size: .76rem; background: var(--surface-soft); color: var(--rru-primary); }
.soft-separator { border: 0; border-top: 1px solid var(--border); margin: var(--space-5) 0; }
.indicator-picker { border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-4); }
.indicator-picker > p { margin-top: 0; color: var(--text-muted); }
.indicator-group { border: 1px solid var(--border); border-radius: 14px; padding: var(--space-3); margin-bottom: var(--space-3); background: #fff; }
.indicator-group summary { cursor: pointer; font-weight: 700; color: var(--rru-primary); }
.indicator-review-list { display: grid; gap: var(--space-3); margin: var(--space-4) 0; }
.indicator-chip { border: 1px solid var(--border); border-radius: 16px; padding: var(--space-3); background: var(--surface-soft); display: grid; gap: .2rem; }
.indicator-chip strong { color: var(--rru-primary); }
.indicator-chip small { color: var(--text-muted); }
.meta-list { display: grid; gap: var(--space-3); }
.meta-list div { border: 1px solid var(--border); border-radius: 14px; padding: var(--space-3); background: var(--surface-soft); }
.meta-list dt { font-weight: 700; color: var(--rru-primary); }
.meta-list dd { margin: .2rem 0 0; }
.goal-master-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--space-3); }
.goal-master-card { border: 1px solid var(--border); border-left: 6px solid var(--goal-color); border-radius: 16px; padding: var(--space-3); background: #fff; min-height: 88px; display: grid; gap: .3rem; }
.goal-master-card strong { color: var(--goal-color); }
.goal-master-card span { font-weight: 600; }
.goal-dot { display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; color: var(--text); }
.goal-dot::before { content: ''; width: .8rem; height: .8rem; border-radius: 999px; background: var(--goal-color); display: inline-block; }
.document-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--space-4); }
.document-card { border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--space-5); background: #fff; box-shadow: var(--shadow-sm); display: grid; gap: var(--space-2); }
.document-card span { color: var(--rru-primary); font-weight: 700; }
.document-card h2 { margin: 0; font-size: 1.08rem; }
.document-card p { color: var(--text-muted); }
code { background: var(--surface-soft); border: 1px solid var(--border); border-radius: 8px; padding: .1rem .35rem; }

@media (max-width: 900px) {
  .admin-filter--wide, .permission-list, .goal-master-grid, .document-grid { grid-template-columns: 1fr; }
}

/* Multi-language controls */
.lang-switch {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .15rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--surface);
}
.lang-switch a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    min-height: 26px;
    padding: .2rem .55rem;
    border-radius: 999px;
    color: var(--text-muted);
    font-size: .82rem;
    font-weight: 600;
}
.lang-switch a:hover,
.lang-switch a.is-active {
    color: #fff;
    background: var(--rru-primary);
    text-decoration: none;
}
.lang-switch--admin {
    background: rgba(255,255,255,.72);
}
.site-admin .lang-switch--admin a {
    min-width: 2.6rem;
    min-height: 2rem;
    padding: 0 .75rem;
    overflow: visible;
    line-height: 1;
    letter-spacing: .05em;
    font-variant-caps: normal;
    text-transform: uppercase;
    box-sizing: border-box;
}
.site-admin .lang-switch--admin a .lang-switch__code {
    display: inline-block;
    transform: none;
    white-space: nowrap;
}
.site-admin .lang-switch--admin a.is-active {
    /* Pill wide enough for "EN" — tight circle was clipping the E into looking like I. */
    border-radius: 999px;
    min-width: 2.85rem;
    width: auto;
    height: auto;
    aspect-ratio: auto;
    padding-inline: .85rem;
}
.language-note {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1rem;
    border: 1px solid #b9d5ea;
    border-radius: var(--radius-md);
    background: #f0f7fc;
    color: var(--rru-primary);
}
.language-note strong { white-space: nowrap; }
.language-note span { color: var(--text-muted); font-size: .92rem; }
.lang-en .hero__panel h1 { max-width: 760px; }
.lang-en .nav-links a { font-size: .88rem; }

@media (max-width: 900px) {
    .topbar__inner .lang-switch { margin-left: 0; }
    .topbar__inner { flex-wrap: wrap; padding-block: .45rem; }
    .topbar__inner a:last-child { margin-left: 0; }
    .language-note { display: block; }
    .language-note span { display: block; margin-top: .25rem; }
}

/* Language management admin */
.notice { margin: var(--space-4) 0; padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface-soft); color: var(--text); }
.notice--info { border-color: #bae6fd; background: #f0f9ff; }
.notice--warning { border-color: #fed7aa; background: #fff7ed; }
.actions-inline { display: flex; gap: .45rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.inline-form { display: inline-flex; margin: 0; }
.form-grid small { display: block; margin-top: .35rem; color: var(--text-muted); font-size: .82rem; line-height: 1.45; }
@media (max-width: 640px) {
    .actions-inline { justify-content: flex-start; }
    .inline-form, .inline-form .button { width: 100%; }
}

/* Homepage/header refinement + CMS-managed public content */
.site-header { position: sticky; top: 0; z-index: 60; background: #fff; box-shadow: 0 10px 28px rgba(17, 56, 92, .06); }
.utilitybar { background: linear-gradient(90deg, #f8fbfd, #eef6fb); border-bottom: 1px solid rgba(214,225,234,.82); color: var(--text-muted); font-size: .88rem; }
.utilitybar__inner { display: flex; align-items: center; gap: var(--space-4); min-height: 38px; }
.utilitybar__label { font-weight: 700; color: var(--rru-primary); }
.utilitybar__item { white-space: nowrap; }
.utilitybar .lang-switch { margin-left: auto; background: rgba(255,255,255,.85); }
.navbar--clean { position: static; box-shadow: none; border-bottom: 1px solid rgba(214,225,234,.92); background: rgba(255,255,255,.96); }
.navbar--clean .navbar__inner {
    min-height: 74px;
    gap: clamp(.75rem, 1.5vw, 1.35rem);
    align-items: center;
}
.navbar--clean .brand {
    flex: 0 1 240px;
    min-width: 0;
    max-width: 260px;
    position: relative;
    z-index: 2;
}
.navbar--clean .brand > span:last-child {
    min-width: 0;
    overflow: hidden;
}
.navbar--clean .brand small {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.nav-menu { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-3); min-width: 0; flex: 1 1 auto; position: relative; z-index: 1; }
.nav-menu .nav-links { display: flex; align-items: center; justify-content: flex-end; flex-wrap: nowrap; gap: .08rem; min-width: 0; }
.nav-menu .nav-links a { font-size: .9rem; padding-inline: .55rem; }
.nav-actions { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.admin-portal-link { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: .52rem .9rem; border: 1px solid var(--rru-primary); border-radius: 999px; background: transparent; color: var(--rru-primary); font-weight: 700; font-size: .9rem; white-space: nowrap; }
.admin-portal-link:hover { color: var(--rru-primary-strong); background: var(--rru-primary-soft); border-color: var(--rru-primary-strong); text-decoration: none; transform: translateY(-1px); }

/* English labels are longer — keep brand from covering the first item */
.lang-en .navbar--clean .brand,
body.translated-ltr .navbar--clean .brand {
    flex-basis: 210px;
    max-width: 220px;
}
.lang-en .nav-menu .nav-links a,
body.translated-ltr .nav-menu .nav-links a {
    font-size: .8rem;
    padding-inline: .38rem;
}
.lang-en .admin-portal-link,
body.translated-ltr .admin-portal-link {
    font-size: .82rem;
    padding-inline: .7rem;
}

.hero__panel h1 { letter-spacing: -.04em; }
.hero__panel > p { max-width: 670px; }
.section-builder { display: grid; gap: var(--space-4); margin-top: var(--space-4); }
.builder-head h3 { margin-bottom: .2rem; color: var(--rru-primary); }
.builder-head p { margin: 0; color: var(--text-muted); }
.builder-item { display: grid; grid-template-columns: 120px minmax(0,1fr) minmax(0,1fr); gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-md); background: #fff; }
.builder-item textarea { min-height: 96px; }
.form-grid--wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid--wide .span-2 { grid-column: 1 / -1; }

@media (max-width: 1280px) {
    .lang-en .nav-menu .nav-links a,
    body.translated-ltr .nav-menu .nav-links a {
        font-size: .76rem;
        padding-inline: .3rem;
    }
    .lang-en .navbar--clean .brand,
    body.translated-ltr .navbar--clean .brand {
        max-width: 190px;
        flex-basis: 190px;
    }
}
@media (max-width: 1180px) {
    .nav-menu .nav-links a { padding-inline: .46rem; font-size: .86rem; }
    .admin-portal-link { padding-inline: .75rem; }
}
@media (max-width: 980px) {
    .utilitybar__inner { flex-wrap: wrap; padding-block: .45rem; min-height: auto; gap: .4rem .8rem; }
    .utilitybar .lang-switch { margin-left: 0; }
    .utilitybar__label { flex-basis: 100%; }
    .nav-toggle { display: inline-flex; }
    .navbar--clean .navbar__inner { min-height: 66px; }
    .nav-menu { position: absolute; top: calc(100% + 8px); left: 16px; right: 16px; display: none; flex-direction: column; align-items: stretch; gap: var(--space-3); padding: var(--space-3); background: rgba(255,255,255,.98); border: 1px solid var(--border); border-radius: 18px; box-shadow: var(--shadow-md); backdrop-filter: blur(10px); }
    .nav-menu.is-open { display: flex; }
    .nav-menu .nav-links { position: static; inset: auto; display: flex; flex-direction: column; align-items: stretch; border: 0; border-radius: 0; box-shadow: none; padding: 0; background: transparent; }
    .nav-menu .nav-links a { min-height: 44px; display: flex; align-items: center; border-radius: 12px; padding: .65rem .75rem; }
    .nav-actions { border-top: 1px solid var(--border); padding-top: var(--space-3); }
    .admin-portal-link { width: 100%; min-height: 46px; }
    .form-grid--wide, .builder-item { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .utilitybar__item { display: none; }
    .utilitybar__inner { justify-content: space-between; }
    .utilitybar__label { flex: 1 1 auto; }
    .navbar--clean .navbar__inner { min-height: 62px; }
    .nav-menu { left: 10px; right: 10px; top: calc(100% + 6px); max-height: calc(100dvh - 88px); overflow: auto; }
    .brand__mark { width: 42px; height: 42px; border-radius: 12px; }
    .brand small { max-width: 56vw; }
}

/* SDG official image polish: uses public/assets/img/sdg/SDG1.png ... SDG17.png */
.sdg-logo-cloud {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .62rem;
    align-items: stretch;
}
.sdg-logo-tile {
    position: relative;
    aspect-ratio: 1 / 1;
    display: block;
    overflow: hidden;
    border-radius: 16px;
    background: var(--goal-color, var(--rru-primary));
    border: 4px solid rgba(255,255,255,.92);
    box-shadow: 0 14px 28px rgba(8,34,56,.16);
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.sdg-logo-tile:hover {
    transform: translateY(-3px) scale(1.015);
    box-shadow: 0 20px 40px rgba(8,34,56,.24);
    border-color: #fff;
    text-decoration: none;
}
.sdg-logo-tile img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    background: var(--goal-color, var(--rru-primary));
}
.sdg-logo-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255,255,255,.18), transparent 38%),
        radial-gradient(circle at 16% 12%, rgba(255,255,255,.20), transparent 32%);
    opacity: .34;
    transition: opacity .16s ease;
}
.sdg-logo-tile:hover::after {
    opacity: .48;
}
.sdg-logo-tile span {
    display: none;
}
.sdg-logo-tile--portal {
    grid-column: span 2;
    aspect-ratio: auto;
    min-height: 84px;
    display: grid;
    place-items: center;
    padding: .85rem;
    color: #fff;
    text-align: center;
    background:
        radial-gradient(circle at 18% 15%, rgba(255,255,255,.25), transparent 28%),
        linear-gradient(135deg, var(--rru-primary), var(--rru-accent-strong));
}
.sdg-logo-tile--portal strong { display: block; font-size: 1.55rem; line-height: 1; letter-spacing: .02em; }
.sdg-logo-tile--portal small { display: block; margin-top: .15rem; font-weight: 600; opacity: .9; }
.sdg-logo-tile--portal > * { position: relative; z-index: 2; }

.goal-strip--logos {
    align-items: center;
    gap: .46rem;
}
.goal-chip--image {
    width: 42px;
    height: 42px;
    padding: 0;
    overflow: hidden;
    background: var(--goal-color, var(--rru-primary));
    border-radius: 9px;
    box-shadow: 0 8px 18px rgba(15,61,98,.12);
}
.goal-chip--image img,
.goal-pill__icon,
.goal-badges--images img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.goal-grid--image {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.goal-pill--image {
    min-height: 74px;
    padding: .55rem;
    align-items: center;
    border-left: 5px solid var(--goal-color, var(--rru-primary));
}
.goal-pill--image .goal-pill__icon {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    border-radius: 10px;
    background: var(--goal-color, var(--rru-primary));
    box-shadow: 0 6px 15px rgba(15,61,98,.13);
}
.goal-pill--image .goal-pill__text {
    display: grid;
    gap: .08rem;
    min-width: 0;
    height: auto;
    min-height: auto;
    border-radius: 0;
    background: transparent;
    color: var(--text);
    box-shadow: none;
    place-items: initial;
    font-size: inherit;
    font-weight: 600;
}
.goal-pill__text small {
    color: var(--goal-color, var(--rru-primary));
    font-weight: 700;
    font-size: .76rem;
    letter-spacing: .03em;
}
.goal-pill__text strong {
    color: var(--text);
    font-size: .9rem;
    line-height: 1.32;
    font-weight: 600;
}

.goal-badges--images {
    gap: .42rem;
}
.goal-badges--images span {
    width: 36px;
    height: 36px;
    min-width: 36px;
    padding: 0;
    overflow: hidden;
    border: 2px solid #fff;
    border-radius: 9px;
    background: var(--goal-color, var(--rru-primary));
    box-shadow: 0 8px 18px rgba(15,61,98,.16);
}
.goal-badges--large.goal-badges--images span {
    width: auto;
    min-width: 124px;
    height: 44px;
    padding: .28rem .65rem .28rem .28rem;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    border-radius: 12px;
    background: #fff;
    color: var(--text);
    border-color: rgba(255,255,255,.9);
}
.goal-badges--large.goal-badges--images img {
    width: 32px;
    height: 32px;
    border-radius: 7px;
    flex: 0 0 32px;
}
.goal-badges--large.goal-badges--images strong {
    color: var(--goal-color, var(--rru-primary));
    font-size: .86rem;
    white-space: nowrap;
}
.image-placeholder--sdg {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 100%;
    padding: 1rem;
    background:
        radial-gradient(circle at 10% 15%, rgba(255,255,255,.8), transparent 25%),
        linear-gradient(135deg, #eaf4fb, #d8ebf6);
}
.image-placeholder--sdg img {
    width: 58px;
    height: 58px;
    border-radius: 13px;
    object-fit: cover;
    box-shadow: 0 10px 22px rgba(15,61,98,.15);
}
.image-placeholder--sdg strong {
    color: var(--rru-primary);
    font-size: 1rem;
    white-space: nowrap;
}

.sdg-filter-strip {
    display: grid;
    grid-template-columns: repeat(17, minmax(58px, 1fr));
    gap: .48rem;
    padding: .85rem;
    margin: var(--space-4) 0 var(--space-5);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #fff, #f9fbfd);
    overflow-x: auto;
    overscroll-behavior-x: contain;
}
.sdg-filter-card {
    position: relative;
    display: grid;
    gap: .28rem;
    align-content: start;
    min-width: 58px;
    color: var(--text);
    text-align: center;
    font-size: .72rem;
    font-weight: 700;
}
.sdg-filter-card img {
    width: 58px;
    height: 58px;
    border-radius: 11px;
    object-fit: cover;
    background: var(--goal-color, var(--rru-primary));
    border: 2px solid transparent;
    box-shadow: 0 8px 18px rgba(15,61,98,.1);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.sdg-filter-card:hover { text-decoration: none; }
.sdg-filter-card:hover img,
.sdg-filter-card.is-active img {
    transform: translateY(-2px);
    border-color: var(--goal-color, var(--rru-primary));
    box-shadow: 0 12px 24px rgba(15,61,98,.18);
}
.sdg-filter-card.is-active span {
    color: var(--goal-color, var(--rru-primary));
}

@media (max-width: 960px) {
    .sdg-logo-cloud { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .sdg-logo-tile--portal { grid-column: span 3; }
    .goal-grid--image { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .sdg-logo-cloud {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .42rem;
    }
    .sdg-logo-tile {
        border-width: 2px;
        border-radius: 12px;
    }
    .sdg-logo-tile--portal {
        grid-column: span 2;
        min-height: 68px;
        border-radius: 12px;
    }
    .sdg-logo-tile--portal strong { font-size: 1.25rem; }
    .goal-chip--image {
        width: 36px;
        height: 36px;
        border-radius: 8px;
    }
    .goal-pill--image {
        min-height: 66px;
        padding: .48rem;
    }
    .goal-pill--image .goal-pill__icon {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
        border-radius: 9px;
    }
    .goal-badges--images span {
        width: 32px;
        height: 32px;
        min-width: 32px;
        border-radius: 8px;
    }
    .goal-badges--large.goal-badges--images span {
        min-width: 104px;
        height: 40px;
        border-radius: 10px;
    }
    .goal-badges--large.goal-badges--images img {
        width: 28px;
        height: 28px;
    }
    .image-placeholder--sdg img {
        width: 46px;
        height: 46px;
        border-radius: 10px;
    }
    .sdg-filter-strip {
        grid-template-columns: repeat(17, 54px);
        padding: .7rem;
        margin-top: .9rem;
    }
    .sdg-filter-card,
    .sdg-filter-card img { min-width: 54px; width: 54px; }
    .sdg-filter-card img { height: 54px; border-radius: 10px; }
}


/* --------------------------------------------------------------------------
   RRU Institutional Green-Yellow Theme 2026-06-18
   Uses Rajabhat Rajanagarindra University institutional colors: green-yellow.
   This is a non-destructive token/theme override; no workflow, route,
   permission, CMS, language, or database logic is changed.
   -------------------------------------------------------------------------- */
:root {
    --rru-primary: #0b5d3b;
    --rru-primary-strong: #073f29;
    --rru-primary-soft: #edf8ef;
    --rru-accent: #79a936;
    --rru-accent-strong: #3f7a2d;
    --rru-gold: #f2c230;
    --rru-gold-soft: #fff7d6;
    --rru-lime-soft: #f2f8e8;
    --surface-soft: #f7faf2;
    --surface-muted: #edf4e5;
    --surface-blue: #eef8ed;
    --border: #d8e5cf;
    --text: #1f2b24;
    --text-muted: #63705f;
    --shadow-md: 0 18px 44px rgba(11, 93, 59, .14);
    --shadow-lg: 0 30px 80px rgba(7, 63, 41, .18);
}

body.site-public {
    background:
        radial-gradient(circle at top left, rgba(121, 169, 54, .10), transparent 30rem),
        radial-gradient(circle at 86% 12%, rgba(242, 194, 48, .10), transparent 28rem),
        linear-gradient(180deg, #fbfdf7 0%, #f4f8ef 100%);
}

a { color: var(--rru-primary); }
a:hover { color: var(--rru-accent-strong); }

.topbar,
.site-public .topbar {
    background: linear-gradient(90deg, var(--rru-primary-strong), var(--rru-primary));
    border-bottom-color: rgba(242, 194, 48, .28);
}

.utilitybar {
    background: linear-gradient(90deg, #fbfff7, var(--rru-lime-soft));
    border-bottom-color: rgba(216, 229, 207, .9);
}
.utilitybar__label { color: var(--rru-primary); }
.utilitybar .lang-switch { border-color: rgba(216,229,207,.95); }

.site-header,
.navbar {
    box-shadow: 0 12px 30px rgba(11, 93, 59, .08);
}
.navbar,
.navbar--clean {
    border-bottom-color: rgba(216, 229, 207, .96);
    background: rgba(255,255,255,.96);
}
.brand__mark,
.mark {
    background:
        linear-gradient(135deg, rgba(255,255,255,.20), transparent 45%),
        linear-gradient(135deg, var(--rru-primary-strong), var(--rru-primary) 64%, var(--rru-accent));
    box-shadow: 0 14px 28px rgba(11,93,59,.22), inset 0 -14px 24px rgba(0,0,0,.13);
}
.brand__mark::after {
    background: linear-gradient(135deg, var(--rru-gold), #ffe990);
}
.brand strong { color: var(--rru-primary); }
.nav-links a { color: #294432; }
.nav-links a:hover {
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
}
.nav-login,
.admin-portal-link {
    border-color: var(--rru-primary);
    background: transparent;
    color: var(--rru-primary) !important;
    box-shadow: none;
}
.nav-login:hover,
.admin-portal-link:hover {
    background: var(--rru-primary-soft) !important;
    color: var(--rru-primary-strong) !important;
}
.nav-toggle,
.icon-button { color: var(--rru-primary); }

.hero,
.hero--polished {
    background:
        radial-gradient(circle at 78% 16%, rgba(242, 194, 48, .25), transparent 26rem),
        radial-gradient(circle at 18% 80%, rgba(121, 169, 54, .24), transparent 24rem),
        linear-gradient(135deg, #073f29 0%, #0b5d3b 50%, #467d2d 100%);
    color: #fff;
}
.hero::before,
.hero--polished::before {
    background:
        radial-gradient(circle at 80% 24%, rgba(255,255,255,.16), transparent 28rem),
        radial-gradient(circle at 18% 82%, rgba(242,194,48,.24), transparent 23rem);
}
.hero__backdrop::after,
.hero--polished .hero__backdrop::after {
    background-image:
        linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
}
.hero h1,
.hero--polished h1,
.hero--polished .eyebrow,
.hero .eyebrow { color: #fff; }
.hero p,
.hero--polished p { color: rgba(255,255,255,.84); }
.hero-kicker,
.kicker {
    border-color: rgba(242,194,48,.45);
    background: rgba(255,255,255,.12);
    color: #fff7d6;
}
.hero-kicker span { background: var(--rru-gold); box-shadow: 0 0 0 5px rgba(242,194,48,.18); }
.hero--polished .button,
.hero .button,
.button {
    border-color: var(--rru-primary);
    background: var(--rru-primary);
    color: #fff;
}
.hero--polished .button,
.hero .button {
    border-color: #fff;
    background: #fff;
    color: var(--rru-primary);
}
.hero--polished .button:hover,
.hero .button:hover { background: var(--rru-gold-soft); color: var(--rru-primary-strong); }
.hero--polished .button--outline,
.hero .button--outline,
.hero .button.outline {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,.48);
}
.hero--polished .button--outline:hover,
.hero .button--outline:hover,
.hero .button.outline:hover {
    background: rgba(255,255,255,.12);
    color: #fff;
}
.hero-stat-row div,
.stat-row div {
    border-color: rgba(242,194,48,.22);
    background: rgba(255,255,255,.10);
}
.hero-stat-row strong,
.stat-row strong { color: #fff; }
.hero-stat-row span,
.stat-row span { color: rgba(255,255,255,.72); }
.hero-lens,
.lens {
    border-color: rgba(242,194,48,.24);
    background: linear-gradient(145deg, rgba(255,255,255,.17), rgba(255,255,255,.07));
    box-shadow: 0 30px 80px rgba(7,63,41,.26);
}
.sdg-logo-tile--portal,
.portal {
    background:
        radial-gradient(circle at 20% 12%, rgba(255,255,255,.25), transparent 28%),
        linear-gradient(135deg, var(--rru-primary-strong), var(--rru-primary) 58%, var(--rru-accent));
}

.eyebrow,
.panel-caption,
.read-more,
.document-link strong { color: var(--rru-accent-strong); }
h2,
.trust-card strong,
.dashboard-panel h3,
.workflow-item h3,
.stat-card strong { color: var(--rru-primary); }
.trust-card span,
.panel-caption,
.project-meta {
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
}
.section--projects,
.section.muted {
    background: linear-gradient(180deg, #f8fbf1, #eef6e7);
}
.section--overview::before,
.section--workflow::before {
    background-image:
        radial-gradient(circle at 12% 18%, rgba(121,169,54,.08), transparent 26rem),
        radial-gradient(circle at 88% 86%, rgba(242,194,48,.10), transparent 22rem);
}

.dashboard-band,
.dashboard-band--polished {
    background:
        radial-gradient(circle at 12% 22%, rgba(242,194,48,.22), transparent 26rem),
        linear-gradient(135deg, var(--rru-primary-strong), var(--rru-primary) 58%, #4a812d);
}
.dashboard-band::after { border-color: rgba(242,194,48,.13); }
.metric-card { border-color: rgba(242,194,48,.2); }
.progress-bar { background: linear-gradient(90deg, var(--rru-primary), var(--rru-accent) 56%, var(--rru-gold)); }
.dashboard-note { background: #f7fbef; }

.project-card:hover {
    border-color: rgba(121,169,54,.44);
    box-shadow: 0 22px 48px rgba(11,93,59,.14);
}
.project-card__image::after { background: linear-gradient(180deg, transparent, rgba(7,63,41,.34)); }
.image-placeholder,
.image-placeholder--sdg,
.thumb {
    background:
        radial-gradient(circle at 78% 20%, rgba(242,194,48,.36), transparent 9rem),
        radial-gradient(circle at 22% 80%, rgba(121,169,54,.30), transparent 10rem),
        linear-gradient(135deg, #f7fbef, #e3f0d5);
    color: var(--rru-primary);
}

.workflow-list--connected::before {
    background: linear-gradient(90deg, rgba(11,93,59,.14), rgba(121,169,54,.42), rgba(242,194,48,.32));
}
.workflow-item span {
    background: linear-gradient(135deg, var(--rru-primary), var(--rru-accent));
    box-shadow: 0 12px 24px rgba(11,93,59,.20);
}
.info-band,
.submit-box { border-left-color: var(--rru-gold); }

.document-card--hero {
    background:
        radial-gradient(circle at 88% 10%, rgba(255,255,255,.22), transparent 12rem),
        linear-gradient(135deg, var(--rru-primary-strong), var(--rru-primary) 58%, var(--rru-accent));
}
.document-link:hover { border-color: var(--rru-accent); box-shadow: 0 16px 36px rgba(11,93,59,.10); }
.footer {
    background:
        radial-gradient(circle at 12% 8%, rgba(242,194,48,.18), transparent 20rem),
        linear-gradient(135deg, #04291a, var(--rru-primary-strong) 72%);
}

.page-hero,
.page-hero--projects {
    background:
        radial-gradient(circle at 88% 20%, rgba(255,255,255,.20), transparent 19rem),
        linear-gradient(135deg, var(--rru-primary-strong), var(--rru-primary) 58%, #4b842e);
    color: #fff;
}
.page-hero h1,
.page-hero--projects h1,
.page-hero--projects .eyebrow { color: #fff; }
.page-hero p,
.page-hero--projects p { color: rgba(255,255,255,.82); }
.filter-card--polished { box-shadow: 0 22px 54px rgba(11,93,59,.14); }
.filter-card__head > span { background: var(--rru-primary-soft); color: var(--rru-primary); }
input:focus,
select:focus,
textarea:focus {
    outline-color: rgba(121,169,54,.22);
    border-color: var(--rru-accent);
}

.lang-switch a:hover,
.lang-switch a.is-active,
.language-note strong { background: var(--rru-primary); color: #fff; }
.language-note {
    border-color: #cfe5bd;
    background: #f4faec;
    color: var(--rru-primary);
}
.notice--info { border-color: #cfe5bd; background: #f4faec; }

.sidebar {
    background:
        radial-gradient(circle at 10% 0%, rgba(242,194,48,.14), transparent 15rem),
        linear-gradient(180deg, var(--rru-primary-strong), #04291a);
}
.brand--admin .brand__mark { background: var(--rru-gold); color: #223015; }
.sidebar__nav a:hover { background: rgba(242,194,48,.12); }
.admin-header { border-bottom-color: var(--border); }

.goal-master-card { border-left-color: var(--goal-color); }
.goal-chip--image,
.goal-badges--images span,
.sdg-filter-card img { box-shadow: 0 8px 18px rgba(11,93,59,.12); }
.sdg-filter-card:hover img,
.sdg-filter-card.is-active img { box-shadow: 0 12px 24px rgba(11,93,59,.18); }

@media (max-width: 980px) {
    .nav-menu { box-shadow: 0 24px 70px rgba(7,63,41,.26); }
}


/* =========================================================
   RRU Landmark Background Theme Enhancement
   - Uses background art inspired by Rajabhat Rajanagarindra University,
     Dok Sares Phee, Wat Sothon, and Bang Pakong River
   ========================================================= */
.hero--polished {
    background: linear-gradient(135deg, #0a4d31 0%, #0b5d3b 48%, #5b7f22 100%);
}
.hero--polished .hero__backdrop {
    background:
        linear-gradient(90deg, rgba(6, 33, 21, .78) 0%, rgba(6, 33, 21, .55) 34%, rgba(8, 48, 29, .28) 60%, rgba(8, 48, 29, .22) 100%),
        linear-gradient(180deg, rgba(255, 215, 102, .10) 0%, rgba(255,255,255,0) 26%, rgba(6, 33, 21, .18) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
}
.hero--polished::before {
    background:
        radial-gradient(circle at 80% 18%, rgba(255,255,255,.16), transparent 26rem),
        radial-gradient(circle at 18% 82%, rgba(242,194,48,.18), transparent 24rem),
        linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0));
}
.hero--polished .hero__backdrop::before {
    right: auto;
    left: -10vw;
    top: -10vw;
    width: min(56vw, 620px);
    height: min(56vw, 620px);
    background: radial-gradient(circle, rgba(255, 223, 115, .42) 0%, rgba(255, 223, 115, .10) 35%, rgba(255,255,255,0) 68%);
    opacity: .85;
    mix-blend-mode: screen;
    filter: blur(2px);
}
.hero--polished .hero__backdrop::after {
    background-image:
        linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
    background-size: 56px 56px;
    opacity: .45;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 58%, transparent 90%);
}
.hero--polished .hero__panel {
    position: relative;
    z-index: 2;
}
.hero--polished .hero__panel > p,
.hero--polished .hero__panel .eyebrow {
    text-shadow: 0 1px 1px rgba(0,0,0,.16);
}
.hero--polished .hero-kicker {
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.28);
}
.hero-stat-row div,
.hero-lens {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.22);
}
.hero-card--floating {
    box-shadow: 0 22px 40px rgba(6, 33, 21, .24);
}
.page-hero--projects {
    background:
        linear-gradient(90deg, rgba(9, 60, 36, .92), rgba(9, 60, 36, .78) 44%, rgba(20, 70, 35, .52) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
}
.page-hero--detail {
    background:
        linear-gradient(180deg, rgba(255,255,255,.78), rgba(248, 251, 253, .96)),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
    background-blend-mode: normal, multiply;
}
@media (max-width: 991px) {
    .hero--polished .hero__backdrop {
        background-position: 64% center;
    }
}
@media (max-width: 767px) {
    .hero--polished .hero__backdrop {
        background:
            linear-gradient(180deg, rgba(6, 33, 21, .58) 0%, rgba(6, 33, 21, .72) 38%, rgba(6, 33, 21, .82) 100%),
            url("../img/theme/rru-hero-background.png") 62% center / cover no-repeat;
    }
    .page-hero--projects {
        background:
            linear-gradient(180deg, rgba(9, 60, 36, .82), rgba(9, 60, 36, .92)),
            url("../img/theme/rru-hero-background.png") 64% center / cover no-repeat;
    }
}


/* =========================================================
   Contrast hotfix for landmark background
   - stronger text/background separation for homepage hero and project hero
   ========================================================= */
.hero--polished .hero__backdrop {
    background:
        linear-gradient(90deg, rgba(4, 24, 15, .88) 0%, rgba(4, 24, 15, .74) 34%, rgba(5, 32, 18, .46) 58%, rgba(5, 32, 18, .34) 100%),
        linear-gradient(180deg, rgba(255, 215, 102, .08) 0%, rgba(255,255,255,0) 24%, rgba(4, 24, 15, .24) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
}
.hero--polished .hero__panel {
    max-width: 780px;
    padding: clamp(1.15rem, 2vw, 1.6rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(4, 24, 15, .34), rgba(4, 24, 15, .22));
    backdrop-filter: blur(8px);
    box-shadow: 0 20px 42px rgba(0,0,0,.22);
}
.hero--polished h1 {
    text-shadow: 0 3px 14px rgba(0,0,0,.24);
}
.hero--polished p,
.hero--polished .eyebrow,
.hero--polished .hero-kicker,
.hero--polished .hero-stat-row span,
.hero--polished .hero-stat-row strong {
    text-shadow: 0 2px 8px rgba(0,0,0,.24);
}
.hero--polished .hero-kicker {
    background: rgba(255,255,255,.16);
}
.hero-stat-row div {
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.24);
}
.hero-lens {
    background: linear-gradient(145deg, rgba(5, 32, 18, .30), rgba(255,255,255,.10));
    border-color: rgba(255,255,255,.18);
}
.page-hero--projects {
    background:
        linear-gradient(90deg, rgba(6, 42, 25, .94) 0%, rgba(6, 42, 25, .84) 46%, rgba(10, 54, 27, .62) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
}
.page-hero--projects h1,
.page-hero--projects p,
.page-hero--projects .eyebrow,
.page-hero__summary strong,
.page-hero__summary span {
    text-shadow: 0 2px 10px rgba(0,0,0,.28);
}
.page-hero__summary div {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.18);
    backdrop-filter: blur(6px);
}
@media (max-width: 767px) {
    .hero--polished .hero__backdrop {
        background:
            linear-gradient(180deg, rgba(4, 24, 15, .60) 0%, rgba(4, 24, 15, .78) 34%, rgba(4, 24, 15, .88) 100%),
            url("../img/theme/rru-hero-background.png") 62% center / cover no-repeat;
    }
    .hero--polished .hero__panel {
        padding: 1rem;
        border-radius: 22px;
    }
    .page-hero--projects {
        background:
            linear-gradient(180deg, rgba(6, 42, 25, .86), rgba(6, 42, 25, .94)),
            url("../img/theme/rru-hero-background.png") 64% center / cover no-repeat;
    }
}


/* =========================================================
   Final layout + contrast audit pass
   Scope: public header/navbar, homepage hero, projects hero, mobile menu
   Goal: remove top layout stacking issues and keep text readable over landmark background
   ========================================================= */
html,
body {
    overflow-x: clip;
}
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    isolation: isolate;
    background: #fff;
}
.utilitybar {
    position: relative;
    z-index: 2;
}
.utilitybar__inner {
    min-width: 0;
}
.utilitybar__label,
.utilitybar__item {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.navbar,
.navbar--clean {
    position: relative;
    z-index: 3;
}
.navbar__inner {
    min-width: 0;
}
.brand {
    flex: 0 0 auto;
    min-width: 225px;
}
.nav-menu {
    min-width: 0;
}
.nav-menu .nav-links {
    min-width: 0;
    overflow: hidden;
}
.nav-menu .nav-links a {
    line-height: 1.25;
}
.nav-actions {
    min-width: max-content;
}
.hero--polished {
    min-height: auto;
    background: #062116;
}
.hero--polished .hero__backdrop {
    background:
        linear-gradient(90deg, rgba(2, 18, 11, .92) 0%, rgba(2, 18, 11, .82) 34%, rgba(5, 31, 17, .58) 60%, rgba(5, 31, 17, .42) 100%),
        linear-gradient(180deg, rgba(242, 194, 48, .06) 0%, rgba(255,255,255,0) 22%, rgba(2, 18, 11, .34) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
}
.hero--polished .hero__content {
    min-height: min(720px, calc(100svh - 110px));
    padding-block: clamp(3.25rem, 7vw, 5rem);
    align-items: center;
}
.hero--polished .hero__panel {
    padding: clamp(1.35rem, 3vw, 2rem);
    border: 1px solid rgba(255,255,255,.20);
    border-radius: 30px;
    background:
        linear-gradient(180deg, rgba(2, 18, 11, .66), rgba(2, 18, 11, .46));
    box-shadow: 0 30px 70px rgba(0,0,0,.30);
    backdrop-filter: blur(10px) saturate(120%);
}
.hero--polished h1 {
    color: #fff;
    text-shadow: 0 4px 18px rgba(0,0,0,.36);
}
.hero--polished .hero__panel > p {
    color: #f4fbef;
    text-shadow: 0 2px 12px rgba(0,0,0,.32);
}
.hero--polished .eyebrow,
.hero--polished .hero-kicker {
    color: #fff6cf;
    text-shadow: 0 2px 10px rgba(0,0,0,.30);
}
.hero--polished .hero-kicker {
    background: rgba(2,18,11,.34);
    border-color: rgba(242,194,48,.36);
}
.hero--polished .button {
    border-color: #f2c230;
    background: #f2c230;
    color: #17351f;
    box-shadow: 0 18px 38px rgba(0,0,0,.28);
}
.hero--polished .button:hover {
    background: #ffd86a;
    border-color: #ffd86a;
    color: #102818;
}
.hero--polished .button--outline {
    border-color: rgba(255,255,255,.62);
    background: rgba(2,18,11,.20);
    color: #fff;
}
.hero--polished .button--outline:hover {
    background: rgba(255,255,255,.14);
    color: #fff;
}
.hero-stat-row div {
    background: rgba(2,18,11,.38);
    border-color: rgba(255,255,255,.24);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.hero-stat-row strong {
    color: #fff;
    text-shadow: 0 2px 12px rgba(0,0,0,.34);
}
.hero-stat-row span {
    color: rgba(255,255,255,.84);
    text-shadow: 0 2px 10px rgba(0,0,0,.30);
}
.hero-lens {
    background: linear-gradient(145deg, rgba(2,18,11,.34), rgba(255,255,255,.11));
    border-color: rgba(255,255,255,.24);
    box-shadow: 0 30px 74px rgba(0,0,0,.26);
}
.hero-card--floating {
    color: var(--text);
    background: rgba(255,255,255,.97);
}
.hero-card--floating p {
    color: var(--text-muted);
    text-shadow: none;
}
.page-hero--projects {
    background:
        linear-gradient(90deg, rgba(3, 31, 17, .96) 0%, rgba(3, 31, 17, .90) 46%, rgba(6, 45, 22, .70) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
}
.page-hero--projects h1,
.page-hero--projects p,
.page-hero--projects .eyebrow,
.page-hero__summary strong,
.page-hero__summary span {
    text-shadow: 0 3px 14px rgba(0,0,0,.36);
}
.page-hero--projects p {
    color: rgba(255,255,255,.90);
}
.page-hero__summary div {
    background: rgba(2,18,11,.34);
    border-color: rgba(255,255,255,.22);
}
@media (max-width: 1120px) {
    .brand { min-width: 0; }
    .brand small { max-width: 42vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .nav-toggle { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 42px; }
    .navbar--clean .navbar__inner { min-height: 66px; }
    .nav-menu {
        position: absolute;
        top: calc(100% + 10px);
        left: 16px;
        right: 16px;
        display: none;
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-3);
        padding: var(--space-3);
        background: rgba(255,255,255,.985);
        border: 1px solid var(--border);
        border-radius: 18px;
        box-shadow: 0 28px 80px rgba(7,63,41,.28);
        backdrop-filter: blur(12px);
        max-height: min(70dvh, 520px);
        overflow: auto;
    }
    .nav-menu.is-open { display: flex; }
    .nav-menu .nav-links {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: .2rem;
        overflow: visible;
    }
    .nav-menu .nav-links a {
        min-height: 44px;
        display: flex;
        align-items: center;
        border-radius: 12px;
        padding: .68rem .78rem;
        white-space: normal;
    }
    .nav-actions {
        border-top: 1px solid var(--border);
        padding-top: var(--space-3);
        min-width: 0;
    }
    .admin-portal-link {
        width: 100%;
        min-height: 46px;
    }
}
@media (min-width: 1121px) {
    .nav-toggle { display: none !important; }
    .nav-menu { display: flex !important; position: static; }
}
@media (max-width: 767px) {
    .utilitybar__inner {
        min-height: 34px;
        padding-block: .35rem;
        gap: .45rem;
    }
    .utilitybar__label {
        flex: 1 1 auto;
        flex-basis: auto;
        white-space: nowrap;
    }
    .utilitybar__item { display: none; }
    .utilitybar .lang-switch { flex: 0 0 auto; margin-left: 0; }
    .brand strong { font-size: .98rem; }
    .brand small { max-width: 48vw; }
    .nav-menu {
        left: 10px;
        right: 10px;
        top: calc(100% + 8px);
        max-height: calc(100dvh - 126px);
    }
    .hero--polished .hero__backdrop {
        background:
            linear-gradient(180deg, rgba(2, 18, 11, .68) 0%, rgba(2, 18, 11, .84) 40%, rgba(2, 18, 11, .93) 100%),
            url("../img/theme/rru-hero-background.png") 62% center / cover no-repeat;
    }
    .hero--polished .hero__content {
        min-height: auto;
        padding-block: 1.75rem 2.35rem;
    }
    .hero--polished .hero__panel {
        padding: 1.05rem;
        border-radius: 22px;
        background: linear-gradient(180deg, rgba(2,18,11,.72), rgba(2,18,11,.58));
    }
    .hero-stat-row {
        grid-template-columns: 1fr;
    }
    .page-hero--projects {
        background:
            linear-gradient(180deg, rgba(3,31,17,.90), rgba(3,31,17,.96)),
            url("../img/theme/rru-hero-background.png") 64% center / cover no-repeat;
    }
}
@media (max-width: 420px) {
    .brand small { display: none; }
    .brand__mark { width: 40px; height: 40px; }
    .hero--polished .hero__panel {
        padding: .95rem;
    }
    .hero--polished h1 {
        font-size: clamp(1.62rem, 9vw, 2.1rem);
    }
}

/* =========================================================
   Hotfix: remove ugly floating overlap + improve document hero contrast
   ========================================================= */

/* Convert the hero quality card from floating/overlapping to an inline card. */
.hero-card.hero-card--floating {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: clamp(.85rem, 1.8vw, 1.15rem) 0 0 !important;
    padding: clamp(.95rem, 1.8vw, 1.2rem) !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-left: 5px solid var(--rru-gold) !important;
    border-radius: 20px !important;
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,251,232,.96)) !important;
    box-shadow: 0 18px 36px rgba(2,18,11,.22) !important;
    color: #123326 !important;
    backdrop-filter: blur(8px);
}
.hero-card.hero-card--floating strong {
    color: var(--rru-primary-strong) !important;
    text-shadow: none !important;
}
.hero-card.hero-card--floating p,
.hero--polished .hero-card.hero-card--floating p {
    color: #475569 !important;
    text-shadow: none !important;
}
.hero-lens {
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: visible;
}

/* Make the document hero visibly separated from the muted page background. */
.document-card.document-card--hero {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, #ffffff 0%, #fff9df 58%, #edf7e9 100%) !important;
    border: 1px solid rgba(11,93,59,.18) !important;
    border-top: 5px solid var(--rru-gold) !important;
    color: #123326 !important;
    box-shadow: 0 20px 42px rgba(11,93,59,.14) !important;
}
.document-card.document-card--hero::before {
    content: "";
    position: absolute;
    right: -80px;
    bottom: -100px;
    width: 220px;
    height: 220px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(11,93,59,.14), transparent 68%);
    pointer-events: none;
}
.document-card.document-card--hero > * {
    position: relative;
    z-index: 1;
}
.document-card.document-card--hero h2,
.document-card.document-card--hero .eyebrow {
    color: var(--rru-primary-strong) !important;
    text-shadow: none !important;
}
.document-card.document-card--hero .eyebrow {
    color: #8a5f00 !important;
}
.document-card.document-card--hero p {
    color: #475569 !important;
    text-shadow: none !important;
}
.document-card.document-card--hero .button,
.document-card.document-card--hero .button--outline {
    border-color: var(--rru-primary) !important;
    background: var(--rru-primary) !important;
    color: #fff !important;
    box-shadow: 0 12px 24px rgba(11,93,59,.16) !important;
}
.document-card.document-card--hero .button:hover,
.document-card.document-card--hero .button--outline:hover {
    background: var(--rru-primary-strong) !important;
    color: #fff !important;
}

@media (max-width: 767px) {
    .hero-card.hero-card--floating {
        margin-top: .85rem !important;
        padding: .9rem !important;
        border-radius: 17px !important;
    }
    .document-card.document-card--hero {
        border-radius: 18px !important;
    }
}


/* =========================================================
   Favicon brand usage
   - Reuse SDGs favicon as compact visual identity in safe UI areas
   ========================================================= */
.brand__mark--image {
    overflow: hidden;
    background: #073f29;
    border: 2px solid rgba(242, 194, 48, .72);
    box-shadow: 0 12px 28px rgba(11,93,59,.20), inset 0 0 0 1px rgba(255,255,255,.12);
}
.brand__mark--image::after { display: none; }
.brand__mark--image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.brand--admin .brand__mark--image {
    background: #073f29;
    border-color: rgba(242, 194, 48, .80);
}
.footer-brand {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}
.footer-brand__icon {
    width: 58px;
    height: 58px;
    object-fit: cover;
    border-radius: 18px;
    border: 2px solid rgba(242, 194, 48, .72);
    box-shadow: 0 16px 34px rgba(0,0,0,.22);
    background: #073f29;
}
.login-logo {
    width: 72px;
    height: 72px;
    border-radius: 22px;
    overflow: hidden;
    border: 2px solid rgba(242, 194, 48, .74);
    background: #073f29;
    box-shadow: 0 18px 38px rgba(11, 93, 59, .22);
    margin-bottom: 1rem;
}
.login-logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.admin-titlebar {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: .85rem;
}
.admin-titlebar__icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    object-fit: cover;
    border-radius: 13px;
    border: 1px solid rgba(242, 194, 48, .62);
    box-shadow: 0 10px 22px rgba(11, 93, 59, .14);
    background: #073f29;
}
.admin-titlebar h1,
.admin-titlebar p { min-width: 0; }
@media (max-width: 767px) {
    .footer-brand {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: .75rem;
    }
    .footer-brand__icon {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }
    .admin-titlebar__icon { display: none; }
    .login-logo {
        width: 64px;
        height: 64px;
        border-radius: 20px;
    }
}


/* =========================================================
   Admin menu grouping + multilingual label cleanup
   ========================================================= */
.sidebar {
    padding: 1.15rem 1rem;
}
.brand--admin {
    padding: .2rem .2rem 1rem;
    margin-bottom: .8rem;
    border-bottom: 1px solid rgba(255,255,255,.14);
}
.admin-menu {
    display: grid;
    gap: 1rem;
}
.admin-menu__group {
    display: grid;
    gap: .35rem;
}
.admin-menu__group-title {
    padding: .1rem .75rem;
    color: rgba(255,255,255,.55);
    font-size: .73rem;
    font-weight: 600;
    letter-spacing: .055em;
    line-height: 1.3;
    text-transform: uppercase;
}
.lang-th .admin-menu__group-title {
    letter-spacing: .015em;
}
.admin-menu__items {
    display: grid;
    gap: .18rem;
}
.sidebar__nav .admin-menu__link,
.admin-menu__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-width: 0;
    padding: .68rem .75rem;
    border: 1px solid transparent;
    border-radius: 14px;
    color: rgba(255,255,255,.86);
    line-height: 1.25;
}
.sidebar__nav .admin-menu__link:hover,
.admin-menu__link:hover {
    background: rgba(242,194,48,.12);
    border-color: rgba(242,194,48,.16);
    color: #fff;
    text-decoration: none;
}
.sidebar__nav .admin-menu__link.is-active,
.admin-menu__link.is-active {
    background: linear-gradient(135deg, rgba(242,194,48,.24), rgba(255,255,255,.10));
    border-color: rgba(242,194,48,.34);
    color: #fff;
    box-shadow: inset 3px 0 0 var(--rru-gold);
}
.admin-menu__link-main {
    display: flex;
    align-items: center;
    gap: .65rem;
    min-width: 0;
}
.admin-menu__link-main span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}
.admin-menu__icon {
    flex: 0 0 1.85rem;
    width: 1.85rem;
    height: 1.85rem;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: rgba(255,255,255,.10);
    color: #ffe49a;
    font-size: .78rem;
    font-weight: 700;
}
.admin-menu__badge {
    flex: 0 0 auto;
    min-width: 1.5rem;
    height: 1.5rem;
    display: inline-grid;
    place-items: center;
    padding-inline: .35rem;
    border-radius: 999px;
    background: var(--rru-gold);
    color: #203015;
    font-size: .74rem;
    font-weight: 700;
}
@media (max-width: 980px) {
    .sidebar {
        padding: 1rem .8rem;
    }
    .admin-menu {
        gap: .85rem;
        padding-bottom: 2rem;
    }
    .admin-menu__group-title {
        padding-inline: .65rem;
    }
    .admin-menu__link {
        padding: .72rem .7rem;
    }
}


/* =========================================================
   Hero image focus + RRU favicon refresh
   - Let landmark background show more while preserving readable text
   ========================================================= */
.hero.hero--polished {
    background: #0a4d31;
}
.hero--polished .hero__backdrop {
    background:
        linear-gradient(90deg, rgba(4, 24, 15, .54) 0%, rgba(4, 24, 15, .34) 36%, rgba(5, 32, 18, .14) 64%, rgba(5, 32, 18, .08) 100%),
        linear-gradient(180deg, rgba(255, 215, 102, .06) 0%, rgba(255,255,255,0) 32%, rgba(4, 24, 15, .10) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat !important;
}
.hero--polished::before {
    background:
        radial-gradient(circle at 18% 20%, rgba(255,255,255,.14), transparent 22rem),
        radial-gradient(circle at 78% 18%, rgba(242,194,48,.12), transparent 28rem) !important;
    opacity: .75;
}
.hero--polished .hero__backdrop::before {
    opacity: .35 !important;
}
.hero--polished .hero__backdrop::after {
    opacity: .16 !important;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) !important;
}
.hero--polished .hero__panel {
    max-width: 780px;
    padding: clamp(1rem, 1.8vw, 1.45rem) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 28px !important;
    background:
        linear-gradient(90deg, rgba(4, 24, 15, .46), rgba(4, 24, 15, .26)) !important;
    backdrop-filter: blur(5px) saturate(1.03) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.18) !important;
}
.hero--polished h1 {
    text-shadow: 0 4px 16px rgba(0,0,0,.34), 0 1px 1px rgba(0,0,0,.32) !important;
}
.hero--polished p,
.hero--polished .eyebrow,
.hero--polished .hero-kicker,
.hero--polished .hero-stat-row span,
.hero--polished .hero-stat-row strong {
    text-shadow: 0 2px 10px rgba(0,0,0,.32) !important;
}
.hero--polished .hero-kicker {
    background: rgba(4, 24, 15, .32) !important;
    border-color: rgba(255,255,255,.20) !important;
}
.hero-stat-row div {
    background: rgba(4, 24, 15, .26) !important;
    border-color: rgba(255,255,255,.18) !important;
}
.hero-lens {
    background: linear-gradient(145deg, rgba(4, 24, 15, .18), rgba(255,255,255,.08)) !important;
    border-color: rgba(255,255,255,.14) !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.16) !important;
}
.hero-card.hero-card--floating {
    background: rgba(255,255,255,.92) !important;
}
.page-hero--projects {
    background:
        linear-gradient(90deg, rgba(6, 42, 25, .66) 0%, rgba(6, 42, 25, .46) 46%, rgba(10, 54, 27, .24) 100%),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat !important;
}
.page-hero--projects::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4,24,15,.28), rgba(4,24,15,.04));
    pointer-events: none;
}
.page-hero--projects .container {
    position: relative;
    z-index: 1;
}
@media (max-width: 991px) {
    .hero--polished .hero__backdrop {
        background:
            linear-gradient(180deg, rgba(4, 24, 15, .34) 0%, rgba(4, 24, 15, .46) 44%, rgba(4, 24, 15, .58) 100%),
            url("../img/theme/rru-hero-background.png") 62% center / cover no-repeat !important;
    }
}
@media (max-width: 767px) {
    .hero--polished .hero__backdrop {
        background:
            linear-gradient(180deg, rgba(4, 24, 15, .38) 0%, rgba(4, 24, 15, .58) 42%, rgba(4, 24, 15, .74) 100%),
            url("../img/theme/rru-hero-background.png") 62% center / cover no-repeat !important;
    }
    .hero--polished .hero__panel {
        background: rgba(4, 24, 15, .44) !important;
        backdrop-filter: blur(4px) !important;
    }
    .page-hero--projects {
        background:
            linear-gradient(180deg, rgba(6, 42, 25, .62), rgba(6, 42, 25, .82)),
            url("../img/theme/rru-hero-background.png") 64% center / cover no-repeat !important;
    }
}


/* =========================================================
   Admin Forms & Tables UX Audit
   - production layout pass for desktop/tablet/mobile
   ========================================================= */
.site-admin {
    background:
        radial-gradient(circle at top right, rgba(242, 194, 48, .10), transparent 32rem),
        linear-gradient(180deg, #f7faf7 0%, #eef4ef 100%);
}
.admin-shell {
    min-height: 100dvh;
    grid-template-columns: 292px minmax(0, 1fr);
    align-items: stretch;
}
.sidebar {
    max-height: 100dvh;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
}
.admin-main {
    min-width: 0;
    background: transparent;
}
.admin-header {
    position: sticky;
    top: 0;
    z-index: 50;
    min-width: 0;
    gap: 1rem;
    border-bottom: 1px solid rgba(11, 93, 59, .10);
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(12px);
}
.admin-titlebar {
    min-width: 0;
    flex: 1 1 auto;
}
.admin-titlebar h1 {
    max-width: min(68vw, 920px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-titlebar p {
    max-width: min(68vw, 920px);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-user {
    min-width: 0;
    flex: 0 0 auto;
}
.admin-user .button {
    white-space: nowrap;
}
.admin-content {
    width: 100%;
    max-width: 1480px;
    margin-inline: auto;
    padding: clamp(1rem, 2vw, 1.75rem);
}
.panel {
    border: 1px solid rgba(11, 93, 59, .10);
    background: rgba(255,255,255,.96);
    box-shadow: 0 16px 42px rgba(11, 93, 59, .075);
}
.panel__head {
    align-items: flex-start;
}
.panel__head > div {
    min-width: 0;
}
.panel__head h2 {
    color: var(--rru-primary);
    line-height: 1.25;
}
.panel__head p {
    max-width: 920px;
    line-height: 1.65;
}
.panel__head .button {
    flex: 0 0 auto;
}

/* Filters */
.admin-filter {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    align-items: end;
    gap: .9rem;
    margin: 0 0 var(--space-5);
    padding: 1rem;
    border: 1px solid rgba(11, 93, 59, .10);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #fbfdfb, #f4f8f4);
}
.admin-filter label {
    margin: 0;
}
.admin-filter .button,
.admin-filter button {
    min-height: 44px;
}
.admin-filter .button--secondary {
    justify-self: start;
}

/* Forms */
.form-grid,
.form-grid--wide {
    gap: 1.05rem 1.15rem;
    align-items: start;
}
.form-grid label:not(.check-line):not(.check-inline),
.admin-filter label {
    display: grid;
    gap: .38rem;
    color: #243b2b;
    font-weight: 600;
    line-height: 1.35;
}
.form-grid label small,
.admin-filter label small,
.form-grid small {
    color: var(--text-muted);
    font-weight: 500;
    line-height: 1.55;
}
.form-grid input,
.form-grid select,
.form-grid textarea,
.admin-filter input,
.admin-filter select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    border-color: rgba(11, 93, 59, .18);
    background: #fff;
    font: inherit;
}
.form-grid textarea {
    min-height: 112px;
    resize: vertical;
    line-height: 1.65;
}
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus,
.admin-filter input:focus,
.admin-filter select:focus {
    outline: 3px solid rgba(242, 194, 48, .24);
    border-color: var(--rru-primary);
    box-shadow: none;
}
.required {
    color: #b42318;
    font-weight: 700;
}
.language-note {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(242, 194, 48, .34);
    border-left: 5px solid var(--rru-gold);
    border-radius: var(--radius-md);
    background: #fff9e6;
    color: #2c3f17;
}
.language-note strong {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--rru-primary);
}
.language-note span {
    color: #5f6f3e;
    line-height: 1.55;
}
.check-line {
    display: flex !important;
    align-items: center;
    gap: .65rem !important;
    min-height: 44px;
    padding: .72rem .85rem;
    border: 1px solid rgba(11, 93, 59, .14);
    border-radius: var(--radius-sm);
    background: #fbfdfb;
    cursor: pointer;
}
.check-line input,
.form-grid input[type="checkbox"],
.checkbox-grid input[type="checkbox"] {
    width: 1.08rem;
    min-height: auto;
    height: 1.08rem;
    flex: 0 0 auto;
    accent-color: var(--rru-primary);
}
.form-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .75rem;
    padding-top: .35rem;
}
.form-actions .button {
    min-width: 130px;
}
.checkbox-grid,
.check-list {
    gap: .7rem;
    background: #fbfdfb;
    border-color: rgba(11, 93, 59, .14);
}
.check-card {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    padding: .65rem .75rem;
    border: 1px solid rgba(11, 93, 59, .10);
    border-radius: var(--radius-sm);
    background: #fff;
}
.check-card:hover {
    border-color: rgba(11, 93, 59, .28);
    background: #f8fbf8;
}

/* Tables */
.table-wrap {
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    border-color: rgba(11, 93, 59, .13);
    background:
        linear-gradient(90deg, rgba(255,255,255,.98), rgba(255,255,255,0)) left / 22px 100% no-repeat,
        linear-gradient(270deg, rgba(255,255,255,.98), rgba(255,255,255,0)) right / 22px 100% no-repeat,
        #fff;
    box-shadow: 0 12px 28px rgba(16, 24, 40, .045);
}
.table-wrap::after {
    content: "เลื่อนซ้าย/ขวาเพื่อดูข้อมูลทั้งหมด";
    display: none;
    padding: .55rem .8rem;
    color: var(--text-muted);
    font-size: .82rem;
    background: #fbfdfb;
    border-top: 1px solid var(--border);
}
.data-table {
    min-width: 880px;
    table-layout: auto;
}
.data-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f3f8f2;
    color: #36523b;
    font-weight: 700;
    border-bottom: 1px solid rgba(11, 93, 59, .15);
}
.data-table td {
    color: #27362a;
    line-height: 1.55;
}
.data-table td strong {
    color: #183c26;
}
.data-table small {
    color: var(--text-muted);
    line-height: 1.55;
}
.data-table code,
.panel code {
    display: inline-block;
    max-width: min(52vw, 520px);
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
    padding: .12rem .38rem;
    border-radius: .45rem;
    background: #f1f5f2;
    color: #20442b;
}
.data-table td:last-child {
    white-space: nowrap;
}
.actions-inline {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
    min-width: max-content;
}
.inline-form {
    display: inline-flex;
    margin: 0;
}
.empty-cell,
.empty-state {
    padding: 1.5rem !important;
    text-align: center;
    color: var(--text-muted);
    background: #fbfdfb;
}
.status {
    max-width: 100%;
    justify-content: center;
}

/* Admin dense modules */
.goal-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}
.goal-badges span {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.35);
}
.content-grid,
.detail-layout {
    min-width: 0;
}
.side-panel {
    max-width: 100%;
}

/* Responsive admin */
@media (max-width: 1180px) {
    .admin-shell {
        grid-template-columns: 260px minmax(0, 1fr);
    }
    .admin-header {
        flex-wrap: wrap;
    }
    .admin-titlebar h1,
    .admin-titlebar p {
        max-width: 60vw;
    }
    .stats-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 980px) {
    .admin-shell {
        display: block;
    }
    .sidebar {
        width: min(88vw, 324px);
        box-shadow: 18px 0 44px rgba(0,0,0,.22);
    }
    .admin-header {
        position: sticky;
        align-items: center;
        padding: .85rem 1rem;
    }
    .admin-titlebar__icon {
        display: none;
    }
    .admin-titlebar h1,
    .admin-titlebar p {
        max-width: calc(100vw - 140px);
    }
    .admin-user {
        width: 100%;
        justify-content: space-between;
        padding-left: 2.6rem;
    }
    .admin-content {
        padding: 1rem;
    }
    .panel {
        padding: 1rem;
        border-radius: 18px;
    }
    .panel__head {
        flex-direction: column;
        align-items: stretch;
    }
    .panel__head .button {
        align-self: flex-start;
    }
    .admin-filter {
        grid-template-columns: 1fr 1fr;
        padding: .85rem;
    }
    .table-wrap::after {
        display: block;
    }
    .data-table {
        min-width: 820px;
    }
}
@media (max-width: 767px) {
    .admin-header {
        gap: .6rem;
    }
    .admin-titlebar h1 {
        font-size: 1.02rem;
        max-width: calc(100vw - 96px);
    }
    .admin-titlebar p {
        font-size: .78rem;
        max-width: calc(100vw - 96px);
    }
    .admin-user {
        padding-left: 0;
        gap: .65rem;
    }
    .admin-user form {
        margin-left: auto;
    }
    .admin-content {
        padding: .8rem;
        gap: 1rem;
    }
    .stats-grid {
        grid-template-columns: 1fr 1fr;
        gap: .75rem;
    }
    .stat-card {
        padding: .95rem;
    }
    .stat-card strong {
        font-size: 1.45rem;
    }
    .content-grid,
    .detail-layout,
    .dashboard-grid {
        grid-template-columns: 1fr !important;
    }
    .form-grid,
    .form-grid--wide {
        grid-template-columns: 1fr !important;
        gap: .85rem;
    }
    .span-2 {
        grid-column: auto !important;
    }
    .admin-filter {
        grid-template-columns: 1fr;
    }
    .admin-filter .button,
    .admin-filter button,
    .form-actions .button,
    .panel__head .button {
        width: 100%;
    }
    .form-actions {
        justify-content: stretch;
    }
    .language-note {
        display: grid;
    }
    .checkbox-grid {
        grid-template-columns: 1fr !important;
    }
    .table-wrap {
        border: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }
    .table-wrap::after {
        display: none;
    }
    .data-table--responsive {
        min-width: 0 !important;
        border: 0;
        background: transparent;
    }
    .data-table--responsive thead {
        display: none;
    }
    .data-table--responsive,
    .data-table--responsive tbody,
    .data-table--responsive tr,
    .data-table--responsive td {
        display: block;
        width: 100%;
    }
    .data-table--responsive tr {
        position: relative;
        margin-bottom: .85rem;
        padding: .85rem;
        border: 1px solid rgba(11, 93, 59, .13);
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 10px 26px rgba(16, 24, 40, .055);
    }
    .data-table--responsive td {
        display: grid;
        grid-template-columns: minmax(110px, 35%) minmax(0, 1fr);
        gap: .75rem;
        align-items: start;
        padding: .48rem 0;
        border: 0;
        text-align: left !important;
        white-space: normal !important;
    }
    .data-table--responsive td::before {
        content: attr(data-label);
        display: block;
        min-width: 0;
        color: #52685a;
        font-size: .78rem;
        font-weight: 700;
        line-height: 1.35;
    }
    .data-table--responsive td[colspan] {
        display: block;
    }
    .data-table--responsive td[colspan]::before {
        display: none;
    }
    .data-table--responsive td:last-child {
        padding-top: .65rem;
        border-top: 1px dashed rgba(11, 93, 59, .13);
    }
    .actions-inline,
    .data-table--responsive td:last-child {
        justify-content: stretch;
        min-width: 0;
    }
    .actions-inline .button,
    .actions-inline button,
    .data-table--responsive td:last-child .button {
        width: 100%;
        justify-content: center;
    }
    .data-table code,
    .panel code {
        max-width: 100%;
    }
}
@media (max-width: 430px) {
    .admin-content {
        padding: .65rem;
    }
    .panel {
        padding: .85rem;
        border-radius: 16px;
    }
    .data-table--responsive td {
        grid-template-columns: 1fr;
        gap: .2rem;
    }
    .data-table--responsive td::before {
        font-size: .76rem;
    }
    .stats-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Admin project evidence links + review readability
   ========================================================= */
.evidence-builder {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,252,249,.96));
}
.evidence-builder legend {
    padding: 0 .35rem;
    font-weight: 600;
    color: var(--rru-primary);
}
.field-help {
    margin: -.25rem 0 var(--space-4);
    color: var(--muted);
    font-size: .92rem;
}
.evidence-builder__list {
    display: grid;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}
.evidence-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr) minmax(260px, 1.45fr) auto;
    gap: var(--space-3);
    align-items: end;
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: var(--radius-md);
    background: #fff;
    box-shadow: 0 10px 24px rgba(15,23,42,.05);
}
.evidence-row label {
    margin: 0;
}
.evidence-row__url input {
    overflow-wrap: anywhere;
}
.evidence-row__remove {
    min-height: 42px;
    white-space: nowrap;
}
.review-layout--readable {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 390px);
    align-items: start;
}
.review-main-panel {
    display: grid;
    gap: var(--space-5);
}
.admin-subtitle {
    margin: .25rem 0 .65rem;
    color: var(--muted);
}
.review-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
}
.review-summary-grid > div {
    min-width: 0;
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: var(--radius-md);
    background: #f8fcf9;
}
.review-summary-grid span {
    display: block;
    color: var(--muted);
    font-size: .86rem;
    margin-bottom: .35rem;
}
.review-summary-grid strong {
    display: block;
    color: var(--text);
    overflow-wrap: anywhere;
}
.review-section {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: var(--radius-lg);
    padding: var(--space-5);
    background: #fff;
    box-shadow: 0 10px 26px rgba(15,23,42,.045);
}
.review-section__head {
    margin-bottom: var(--space-4);
}
.review-section__head h3 {
    margin: 0;
    color: var(--rru-primary);
}
.review-section__head p {
    margin: .35rem 0 0;
    color: var(--muted);
}
.indicator-review-list--cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-4);
}
.review-text-block,
.review-content-grid article,
.meta-list--cards > div {
    border: 1px solid rgba(11,93,59,.10);
    border-radius: var(--radius-md);
    background: #fbfefb;
    padding: var(--space-4);
}
.review-content-grid {
    display: grid;
    gap: var(--space-4);
}
.review-content-grid h4 {
    margin: 0 0 .65rem;
    color: var(--rru-primary);
}
.meta-list--cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
}
.meta-list--cards dt {
    color: var(--rru-primary);
    font-weight: 600;
    margin-bottom: .45rem;
}
.meta-list--cards dd {
    margin: 0;
    color: var(--text);
    overflow-wrap: anywhere;
}
.evidence-link-list {
    display: grid;
    gap: var(--space-3);
}
.evidence-link-card {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.14);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #fff, #f7fbf2);
    color: var(--text);
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(15,23,42,.05);
}
.evidence-link-card:hover {
    transform: translateY(-1px);
    border-color: rgba(11,93,59,.28);
    text-decoration: none;
}
.evidence-link-card > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: var(--rru-primary);
    color: #fff;
    font-weight: 600;
}
.evidence-link-card strong {
    display: block;
    color: var(--rru-primary);
}
.evidence-link-card small {
    display: block;
    margin-top: .25rem;
    color: var(--muted);
    overflow-wrap: anywhere;
    word-break: break-word;
}
.review-decision-panel {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
}
.wrap-anywhere {
    overflow-wrap: anywhere;
}
@media (max-width: 1180px) {
    .evidence-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .evidence-row__url {
        grid-column: 1 / -1;
    }
    .evidence-row__remove {
        justify-self: start;
    }
    .review-layout--readable {
        grid-template-columns: 1fr;
    }
    .review-decision-panel {
        position: static;
    }
}
@media (max-width: 767px) {
    .evidence-builder {
        padding: var(--space-4);
    }
    .evidence-row,
    .review-summary-grid,
    .indicator-review-list--cards,
    .meta-list--cards {
        grid-template-columns: 1fr;
    }
    .evidence-row {
        padding: var(--space-3);
    }
    .evidence-link-card {
        grid-template-columns: 34px minmax(0, 1fr);
        padding: var(--space-3);
    }
    .evidence-link-card > span {
        width: 34px;
        height: 34px;
    }
    .review-section {
        padding: var(--space-4);
    }
}


/* =========================================================
   Admin project edit/create UX polish
   ========================================================= */
.project-editor-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: var(--space-6);
    align-items: start;
}
.project-editor-main {
    min-width: 0;
    padding: 0;
    overflow: hidden;
}
.project-editor-hero {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: flex-start;
    padding: clamp(1.25rem, 2vw, 1.75rem);
    background:
        linear-gradient(135deg, rgba(11,93,59,.96), rgba(55,111,43,.90)),
        radial-gradient(circle at 90% 10%, rgba(242,194,48,.28), transparent 20rem);
    color: #fff;
}
.project-editor-hero h2 {
    color: #fff;
    margin: .15rem 0 .35rem;
    font-size: clamp(1.35rem, 2.4vw, 2rem);
}
.project-editor-hero p {
    margin: 0;
    color: rgba(255,255,255,.82);
}
.project-editor-hero .eyebrow {
    color: #ffdf74;
}
.project-editor-hero__title,
.project-editor-hero__actions {
    min-width: 0;
}
.project-editor-hero__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .65rem;
}
.project-editor-nav {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: var(--space-4) clamp(1rem, 2vw, 1.35rem);
    border-bottom: 1px solid rgba(15,23,42,.08);
    background: #fbfefb;
}
.project-editor-nav a,
.project-side-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: .42rem .7rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 999px;
    color: var(--rru-primary);
    background: #fff;
    font-weight: 600;
    font-size: .9rem;
    text-decoration: none;
}
.project-editor-nav a:hover,
.project-side-nav a:hover {
    background: var(--rru-primary-soft);
    text-decoration: none;
}
.project-editor-form {
    display: grid;
    gap: var(--space-5);
    padding: clamp(1rem, 2vw, 1.35rem);
}
.project-form-section {
    scroll-margin-top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.045);
}
.project-form-section__head {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: var(--space-3);
    align-items: start;
    padding-bottom: var(--space-3);
    border-bottom: 1px solid rgba(15,23,42,.08);
}
.project-form-section__head > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--rru-primary);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(11,93,59,.16);
}
.project-form-section__head h3 {
    margin: 0;
    color: var(--rru-primary);
    font-size: 1.18rem;
}
.project-form-section__head p {
    margin: .25rem 0 0;
    color: var(--muted);
}
.project-field-grid,
.project-locale-grid {
    display: grid;
    gap: var(--space-4);
}
.project-field-grid--2,
.project-locale-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.project-field-grid--compact {
    gap: var(--space-3);
}
.project-field,
.project-field-grid label:not(.check-line):not(.check-inline),
.project-locale-grid label:not(.check-line):not(.check-inline) {
    display: grid;
    gap: .45rem;
    align-content: start;
    min-width: 0;
    margin: 0;
    color: var(--text);
    font-weight: 600;
}
.project-field--wide,
.project-locale-grid label:not(.check-line):not(.check-inline) {
    grid-column: auto;
}
.project-field small,
.project-field-grid small {
    color: var(--muted);
    font-weight: 500;
}
.project-field input,
.project-field textarea,
.project-field select,
.project-field-grid input,
.project-field-grid textarea,
.project-field-grid select,
.project-locale-grid input,
.project-locale-grid textarea,
.project-locale-grid select {
    width: 100%;
    min-width: 0;
}
.project-locale-grid label:nth-child(odd) {
    border-left: 4px solid var(--rru-primary);
    padding-left: .9rem;
}
.project-locale-grid label:nth-child(even) {
    border-left: 4px solid var(--rru-gold);
    padding-left: .9rem;
}
.project-goal-picker,
.project-indicator-picker {
    border: 1px solid rgba(11,93,59,.12);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    background: linear-gradient(180deg, #fff, #fbfefb);
}
.project-goal-picker legend,
.project-indicator-picker legend {
    padding: 0 .35rem;
    font-weight: 700;
    color: var(--rru-primary);
}
.project-indicator-picker > p {
    margin: 0 0 var(--space-3);
    color: var(--muted);
}
.project-cover-preview {
    align-self: end;
    max-width: 420px;
    border-radius: var(--radius-md);
    overflow: hidden;
}
.project-cover-preview img {
    width: 100%;
    display: block;
    max-height: 240px;
    object-fit: cover;
}
.project-editor-savebar {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    align-items: center;
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.15);
    border-radius: var(--radius-lg);
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
    box-shadow: 0 -10px 32px rgba(15,23,42,.08);
}
.project-editor-savebar strong {
    display: block;
    color: var(--rru-primary);
}
.project-editor-savebar span {
    color: var(--muted);
    font-size: .92rem;
}
.project-editor-side {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
    min-width: 0;
}
.project-status-card__status {
    margin: .7rem 0 var(--space-3);
}
.project-status-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin: 0 0 var(--space-4);
}
.project-status-metrics div {
    min-width: 0;
    padding: .75rem .65rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 14px;
    background: #fbfefb;
    text-align: center;
}
.project-status-metrics dt {
    color: var(--muted);
    font-size: .78rem;
}
.project-status-metrics dd {
    margin: .2rem 0 0;
    color: var(--rru-primary);
    font-weight: 700;
    font-size: 1.35rem;
}
.project-side-nav {
    display: grid;
    gap: .5rem;
}
.project-side-nav a {
    border-radius: 14px;
    justify-content: space-between;
}
.submit-box--side {
    display: grid;
    gap: var(--space-3);
}
.submit-box--side p {
    margin: .25rem 0 0;
    color: var(--muted);
}
@media (max-width: 1180px) {
    .project-editor-shell {
        grid-template-columns: 1fr;
    }
    .project-editor-side {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .project-status-card,
    .submit-box--side {
        grid-column: 1 / -1;
    }
}
@media (max-width: 860px) {
    .project-editor-hero {
        flex-direction: column;
    }
    .project-editor-hero__actions {
        justify-content: flex-start;
    }
    .project-field-grid--2,
    .project-locale-grid,
    .project-editor-side {
        grid-template-columns: 1fr;
    }
    .project-locale-grid label:nth-child(odd),
    .project-locale-grid label:nth-child(even) {
        padding-left: .75rem;
    }
    .project-editor-savebar {
        position: static;
        flex-direction: column;
        align-items: stretch;
    }
    .project-editor-savebar .button {
        width: 100%;
    }
}
@media (max-width: 520px) {
    .project-editor-form,
    .project-editor-nav {
        padding-inline: .75rem;
    }
    .project-form-section {
        padding: .95rem;
        border-radius: 18px;
    }
    .project-form-section__head {
        grid-template-columns: 34px minmax(0, 1fr);
    }
    .project-form-section__head > span {
        width: 34px;
        height: 34px;
        border-radius: 12px;
        font-size: .86rem;
    }
    .project-status-metrics {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Project Editor Rebuild v3
   ========================================================= */
.project-editor-v2 {
    display: grid;
    gap: var(--space-5);
}
.project-editor-v2__hero {
    display: flex;
    justify-content: space-between;
    gap: var(--space-5);
    align-items: stretch;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid rgba(11,93,59,.14);
    border-radius: 26px;
    background:
        radial-gradient(circle at 92% 10%, rgba(242,194,48,.22), transparent 18rem),
        linear-gradient(135deg, #f9fff7, #ffffff 52%, #fff9df);
    box-shadow: 0 18px 44px rgba(15,23,42,.08);
}
.project-editor-v2__title {
    min-width: 0;
}
.project-editor-v2__title h2 {
    margin: .1rem 0 .5rem;
    color: var(--rru-primary);
    font-size: clamp(1.65rem, 3vw, 2.35rem);
    letter-spacing: -.025em;
}
.project-editor-v2__title p {
    max-width: 820px;
    margin: 0;
    color: var(--muted);
}
.project-editor-v2__status {
    display: grid;
    gap: .4rem;
    justify-items: end;
    align-content: start;
    min-width: 180px;
}
.project-editor-v2__status small {
    color: var(--muted);
}
.project-editor-v2__steps {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + .35rem);
    z-index: 12;
    display: flex;
    gap: .55rem;
    overflow-x: auto;
    padding: .65rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(10px);
    box-shadow: 0 12px 30px rgba(15,23,42,.07);
}
.project-editor-v2__steps a {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    flex: 0 0 auto;
    padding: .65rem .85rem;
    border-radius: 999px;
    color: var(--text);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.project-editor-v2__steps a:hover {
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
}
.project-editor-v2__steps span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: var(--rru-primary);
    color: #fff;
    font-size: .78rem;
}
.project-editor-v2__steps--create{gap:.4rem;padding:.5rem .55rem;margin:0 0 .35rem;align-items:center;}
.project-editor-v2__steps--create a{padding:.48rem .7rem;font-size:.84rem;font-weight:650;border:1px solid transparent;}
.project-editor-v2__steps--create a.is-active{background:var(--rru-primary-soft,#ecfdf5);border-color:rgba(11,93,59,.18);color:var(--rru-primary);}
.project-editor-v2__steps--create a.is-active span{box-shadow:0 0 0 2px rgba(11,93,59,.18);}
.project-editor-v2__steps-guide{margin-left:auto;flex:0 0 auto;padding:.48rem .75rem;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#fff;color:#334155;font:inherit;font-size:.82rem;font-weight:650;cursor:pointer;}
.project-editor-v2__steps-guide:hover{border-color:rgba(11,93,59,.35);color:var(--rru-primary);background:#f8fffb;}
.project-create-organization__hint{display:block;margin-top:.35rem;color:#64748b;font-size:.8rem;line-height:1.4;}
.project-create-organization__locked{display:flex;align-items:center;min-height:2.75rem;padding:.65rem .9rem;border:1px solid rgba(15,23,42,.12);border-radius:12px;background:#f8fafc;color:#0f172a;}
.project-create-organization__locked strong{font-size:.98rem;font-weight:700;line-height:1.35;}
.project-create-organization.is-organization-locked .project-create-organization__locked.is-facebook-feed-ready,
.project-create-organization.is-facebook-feed-ready .project-create-organization__locked{background:#d1fae5;border-color:#34d399;color:#065f46;}
.project-create-organization.is-facebook-feed-configured .project-create-organization__locked{background:#dbeafe;border-color:#60a5fa;color:#1e40af;}
.project-create-organization.is-facebook-feed-failed .project-create-organization__locked{background:#fef3c7;border-color:#fbbf24;color:#92400e;}
.project-facebook-feed__title-row{display:flex;align-items:flex-start;gap:.7rem;min-width:0;}
.project-facebook-feed__step-mark{flex:0 0 auto;display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--rru-primary,#0b5d3b);color:#fff;font-size:.92rem;font-weight:750;}
#project-create-org,#project-facebook-feed,#project-basic,#project-sdgs,#project-content,#project-results,#project-evidence{scroll-margin-top:7.5rem;}
@media (max-width:720px){
    .project-editor-v2__steps--create{padding:.45rem;}
    .project-editor-v2__steps-guide{margin-left:0;width:100%;justify-content:center;}
}
.project-editor-v2__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: var(--space-5);
    align-items: start;
}
.project-editor-v2__main,
.project-editor-v2__form {
    min-width: 0;
}
.project-editor-v2__form {
    display: grid;
    gap: var(--space-5);
}
.editor-section {
    scroll-margin-top: 145px;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,.055);
    overflow: hidden;
}
.editor-section__head {
    padding: var(--space-5);
    border-bottom: 1px solid rgba(15,23,42,.075);
    background: linear-gradient(180deg, #fbfff8, #fff);
}
.editor-section__head > div {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: var(--space-3);
    align-items: start;
}
.editor-section__head span {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--rru-primary);
    color: #fff;
    font-weight: 700;
}
.editor-section__head h3 {
    margin: 0;
    color: var(--rru-primary);
    font-size: 1.18rem;
}
.editor-section__head p {
    margin: .35rem 0 0;
    color: var(--muted);
}
.editor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    padding: var(--space-5);
}
.editor-grid .span-2,
.editor-section .span-2 {
    grid-column: 1 / -1;
}
.editor-grid label:not(.check-line):not(.check-inline),
.project-editor-v2 fieldset {
    min-width: 0;
}
.editor-grid textarea {
    min-height: 132px;
}
.project-editor-v2 .language-note {
    margin: var(--space-5) var(--space-5) 0;
}
.goal-selector-v2,
.indicator-picker-v2,
.evidence-builder--v2,
.cover-upload-v2 {
    margin: var(--space-5);
}
.goal-selector-v2,
.indicator-picker-v2 {
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 20px;
    padding: var(--space-5);
    background: #fbfef9;
}
.goal-selector-v2 legend,
.indicator-picker-v2 legend,
.evidence-builder--v2 legend {
    padding: 0 .35rem;
    color: var(--rru-primary);
    font-weight: 700;
}
.goal-selector-v2__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .8rem;
}
.goal-check-v2 {
    position: relative;
    display: grid;
    gap: .35rem;
    min-height: 118px;
    padding: .9rem;
    border: 1px solid rgba(15,23,42,.1);
    border-left: 6px solid var(--goal-color, var(--rru-primary));
    border-radius: 18px;
    background: #fff;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(15,23,42,.045);
}
.goal-check-v2 input {
    position: absolute;
    top: .75rem;
    right: .75rem;
}
.goal-check-v2 span {
    color: var(--goal-color, var(--rru-primary));
    font-weight: 700;
}
.goal-check-v2 strong {
    padding-right: 1.4rem;
    color: var(--text);
    font-size: .92rem;
    line-height: 1.35;
}
.goal-check-v2:has(input:checked) {
    background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--goal-color, var(--rru-primary)) 8%, #fff));
    border-color: color-mix(in srgb, var(--goal-color, var(--rru-primary)) 34%, #fff);
    box-shadow: 0 12px 26px rgba(15,23,42,.085);
}
.indicator-picker-v2 > p {
    margin: 0 0 var(--space-4);
    color: var(--muted);
}
.indicator-picker-v2__list {
    display: grid;
    gap: var(--space-3);
}
.indicator-group-v2 {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.indicator-group-v2 summary {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    padding: .95rem 1rem;
    cursor: pointer;
    font-weight: 600;
    color: var(--rru-primary);
    background: #f8fcf8;
}
.indicator-group-v2__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    padding: var(--space-4);
}
.indicator-check-v2 {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .55rem .75rem;
    padding: .8rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #fff;
}
.indicator-check-v2 input {
    grid-row: span 3;
    margin-top: .15rem;
}
.indicator-check-v2 span {
    color: var(--rru-primary);
    font-weight: 700;
}
.indicator-check-v2 strong {
    color: var(--text);
    line-height: 1.35;
}
.indicator-check-v2 small {
    color: var(--muted);
}
.cover-upload-v2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: var(--space-4);
    align-items: start;
    padding: var(--space-5);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 20px;
    background: #fbfef9;
}
.current-image--v2 img {
    width: 100%;
    max-height: 210px;
    object-fit: cover;
    border-radius: 18px;
}
.project-editor-v2__savebar {
    position: sticky;
    bottom: .75rem;
    z-index: 14;
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: center;
    padding: .9rem 1rem;
    border: 1px solid rgba(11,93,59,.18);
    border-radius: 20px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(12px);
    box-shadow: 0 18px 38px rgba(15,23,42,.14);
}
.project-editor-v2__savebar strong,
.project-editor-v2__savebar span {
    display: block;
}
.project-editor-v2__savebar span {
    color: var(--muted);
    font-size: .9rem;
}
.project-editor-v2__side {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
    min-width: 0;
}
.editor-side-card {
    padding: var(--space-5);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(15,23,42,.06);
}
.editor-side-card h3 {
    margin: 0 0 var(--space-3);
    color: var(--rru-primary);
}
.editor-mini-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .55rem;
    margin: var(--space-4) 0;
}
.editor-mini-stats div {
    padding: .75rem .55rem;
    border-radius: 14px;
    background: #f8fcf8;
    text-align: center;
}
.editor-mini-stats strong {
    display: block;
    color: var(--rru-primary);
    font-size: 1.2rem;
}
.editor-mini-stats span {
    color: var(--muted);
    font-size: .8rem;
}
.submit-box--v2 {
    background: linear-gradient(180deg, #0b5d3b, #073f29);
    color: #fff;
}
.submit-box--v2 h3 {
    color: #fff;
}
.submit-box--v2 p {
    color: rgba(255,255,255,.78);
}

.submit-box--review-action {
    position: relative;
    display: grid;
    gap: .9rem;
    margin-top: 0;
    padding: 1.05rem;
    overflow: hidden;
    border: 0;
    border-radius: 20px;
    background:
        radial-gradient(circle at 100% 0%, rgba(255,255,255,.22), transparent 34%),
        linear-gradient(145deg, #0b6b45 0%, #075736 48%, #043821 100%);
    color: #fff;
    box-shadow: 0 18px 34px rgba(4, 56, 33, .24);
}
.submit-box--review-action::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: inherit;
    pointer-events: none;
}
.submit-box--review-action::after {
    content: "";
    position: absolute;
    right: -42px;
    bottom: -56px;
    width: 132px;
    height: 132px;
    border-radius: 999px;
    background: rgba(255,255,255,.09);
    pointer-events: none;
}
.submit-review-action__head,
.submit-review-action__rules,
.submit-review-action__button {
    position: relative;
    z-index: 1;
}
.submit-review-action__head {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}
.submit-review-action__icon {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 15px;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.28);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 800;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
}
.submit-review-action__kicker {
    display: block;
    margin-bottom: .12rem;
    color: rgba(255,255,255,.72);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.submit-box--review-action h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.02rem, 1.8vw, 1.18rem);
    line-height: 1.28;
    letter-spacing: 0;
    word-break: normal;
    overflow-wrap: break-word;
}
.submit-box--review-action p {
    position: relative;
    z-index: 1;
    margin: 0;
    color: rgba(255,255,255,.84);
    font-size: .88rem;
    line-height: 1.62;
}
.submit-review-action__rules {
    display: grid;
    gap: .42rem;
    margin: 0;
    padding: .72rem .78rem;
    list-style: none;
    border-radius: 15px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.14);
}
.submit-review-action__rules li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .48rem;
    align-items: start;
    color: rgba(255,255,255,.86);
    font-size: .8rem;
    line-height: 1.45;
}
.submit-review-action__rules li::before {
    content: "✓";
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
}
.submit-review-action__button {
    width: 100%;
    min-height: 46px;
    border: 0;
    border-radius: 15px;
    background: #fff;
    color: #075736;
    font-weight: 800;
    box-shadow: 0 14px 28px rgba(3, 32, 20, .25);
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.submit-review-action__button:hover,
.submit-review-action__button:focus-visible {
    transform: translateY(-1px);
    background: #f7fff8;
    color: #043821;
    box-shadow: 0 18px 34px rgba(3, 32, 20, .3);
}
.submit-review-action__button span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
}
.submit-review-action__button span::after {
    content: "›";
    font-size: 1.25rem;
    line-height: 1;
}
@media (max-width: 1180px) {
    .project-editor-v2__layout {
        grid-template-columns: 1fr;
    }
    .project-editor-v2__side {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .editor-side-card:first-child {
        grid-column: 1 / -1;
    }
    .goal-selector-v2__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .project-editor-v2__hero,
    .project-editor-v2__savebar {
        flex-direction: column;
        align-items: stretch;
    }
    .project-editor-v2__status {
        justify-items: start;
    }
    .project-editor-v2__steps {
        top: .4rem;
        border-radius: 16px;
    }
    .editor-grid,
    .indicator-group-v2__items,
    .cover-upload-v2,
    .project-editor-v2__side {
        grid-template-columns: 1fr;
    }
    .goal-selector-v2__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .editor-section__head,
    .editor-grid,
    .goal-selector-v2,
    .indicator-picker-v2,
    .evidence-builder--v2,
    .cover-upload-v2 {
        padding: var(--space-4);
        margin: 0;
    }
    .project-editor-v2 .language-note {
        margin: var(--space-4);
    }
    .editor-section {
        border-radius: 20px;
    }
    .project-editor-v2__savebar {
        bottom: .5rem;
    }
}
@media (max-width: 420px) {
    .goal-selector-v2__grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Phase 1 security UX
   ========================================================= */
.login-card--password small {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    line-height: 1.45;
}

/* =========================================================
   Phase 2 Workflow / Review / Audit UX hardening
   ========================================================= */
.review-readiness {
    background: linear-gradient(180deg, #ffffff, #fbfff8);
}
.readiness-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
}
.readiness-item {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: .35rem .7rem;
    align-items: start;
    padding: .9rem;
    border: 1px solid rgba(15,23,42,.09);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
}
.readiness-item > span {
    grid-row: span 2;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    font-weight: 700;
}
.readiness-item strong {
    color: var(--text);
    line-height: 1.3;
}
.readiness-item small {
    color: var(--muted);
}
.readiness-item.is-ok > span {
    background: rgba(16, 120, 80, .12);
    color: #08764f;
}
.readiness-item.is-missing {
    border-color: rgba(176, 70, 35, .22);
    background: #fff9f5;
}
.readiness-item.is-missing > span {
    background: rgba(176, 70, 35, .12);
    color: #b04623;
}
.review-decision-help {
    margin: 0 0 var(--space-4);
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 16px;
    background: #f8fcf8;
}
.review-decision-help strong {
    display: block;
    color: var(--rru-primary);
}
.review-decision-help p {
    margin: .35rem 0 0;
    color: var(--muted);
}
.audit-diff-panel {
    margin-top: var(--space-5);
}
.audit-diff-list,
.audit-mini-list {
    display: grid;
    gap: var(--space-3);
}
.audit-diff-card,
.audit-mini-item {
    padding: var(--space-4);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(15,23,42,.04);
}
.audit-diff-card > div {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    flex-wrap: wrap;
}
.audit-diff-card strong,
.audit-mini-item strong {
    color: var(--rru-primary);
}
.audit-diff-card span,
.audit-mini-item span {
    color: var(--muted);
}
.audit-diff-card ul {
    display: flex;
    gap: .45rem;
    flex-wrap: wrap;
    padding: 0;
    margin: .75rem 0 0;
    list-style: none;
}
.audit-diff-card li {
    padding: .25rem .55rem;
    border-radius: 999px;
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
    font-size: .82rem;
    font-weight: 600;
}
.audit-mini-item {
    display: grid;
    gap: .2rem;
    padding: .85rem;
}
@media (max-width: 1180px) {
    .readiness-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .readiness-grid {
        grid-template-columns: 1fr;
    }
    .audit-diff-card > div {
        display: grid;
    }
}


/* =========================================================
   Phase 3: admin/CMS/public regression polish
   ========================================================= */
:focus-visible {
    outline: 3px solid rgba(242, 183, 5, .88);
    outline-offset: 3px;
    border-radius: 8px;
}
.site-admin {
    background:
        radial-gradient(circle at 92% 4%, rgba(242,183,5,.10), transparent 28rem),
        linear-gradient(180deg, #f4f8fb 0%, #eef4f7 100%);
}
.admin-content {
    width: min(100%, 1480px);
    margin-inline: auto;
}
.admin-list-panel,
.panel {
    border-color: rgba(17,56,92,.10);
}
.panel__head--wrap {
    gap: var(--space-4);
}
.panel__head h2,
.panel h2 {
    letter-spacing: -.015em;
}
.admin-filter--card,
.admin-filter {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
    align-items: end;
    margin: var(--space-4) 0 var(--space-5);
    padding: var(--space-4);
    border: 1px solid rgba(17,56,92,.10);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, #fff, #f8fbfd);
}
.admin-filter__actions,
.filter-actions,
.actions-inline {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
    align-items: center;
}
.admin-filter input,
.admin-filter select,
.form-grid input,
.form-grid select,
.form-grid textarea,
.form-stack input,
.form-stack select,
.form-stack textarea,
.project-editor-v2 input,
.project-editor-v2 select,
.project-editor-v2 textarea {
    min-height: 44px;
}
textarea {
    resize: vertical;
}
input:disabled,
select:disabled,
textarea:disabled {
    background: #eef3f7;
    color: #64748b;
    cursor: not-allowed;
}
.table-wrap--polished,
.table-wrap {
    border: 1px solid rgba(17,56,92,.10);
    border-radius: var(--radius-lg);
    overflow: auto;
    background: #fff;
    box-shadow: 0 10px 28px rgba(17,56,92,.055);
}
.data-table {
    table-layout: auto;
}
.data-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f3f8fb;
    color: #475569;
    font-weight: 600;
    border-bottom: 1px solid rgba(17,56,92,.12);
}
.data-table td {
    overflow-wrap: anywhere;
    word-break: normal;
}
.data-table td .button,
.actions-inline .button {
    white-space: nowrap;
}
.data-table code,
.wrap-anywhere,
.evidence-link-card small,
.side-card dd,
.detail-card dd {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.empty-cell,
.empty-state {
    color: var(--text-muted);
    background: linear-gradient(180deg, #fbfdff, #f5f8fb);
    border-radius: var(--radius-md);
}
.empty-cell {
    padding: 2rem !important;
    text-align: center !important;
}
.content-grid--admin-regression {
    align-items: start;
}
.goal-master-grid--compact .goal-master-card {
    min-height: 112px;
}
.form-layout {
    align-items: start;
}
.check-line,
.check-card,
.goal-check-v2,
.indicator-check-v2 {
    touch-action: manipulation;
}
.notice,
.alert {
    overflow-wrap: anywhere;
}
.results-head {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: end;
    margin-bottom: var(--space-5);
}
.results-head h2 {
    margin: 0;
    color: var(--rru-primary);
    letter-spacing: -.02em;
}
.results-head > span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: .45rem .8rem;
    border-radius: 999px;
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
    font-weight: 600;
    white-space: nowrap;
}
.cards-grid--results {
    align-items: stretch;
}
.document-grid--publications {
    align-items: stretch;
}
.document-card--public {
    display: flex;
    flex-direction: column;
    min-height: 260px;
}
.document-card--public .button {
    margin-top: auto;
    align-self: flex-start;
}
.detail-card--cms {
    max-width: 980px;
    padding: clamp(1.25rem, 3vw, 2.25rem);
    border: 1px solid rgba(17,56,92,.10);
    box-shadow: 0 14px 34px rgba(17,56,92,.08);
}
.detail-card--cms .rich-text {
    font-size: 1.03rem;
    line-height: 1.85;
}
.page-hero--publication,
.page-hero--detail {
    isolation: isolate;
}
.page-hero__summary,
.filter-card--polished,
.project-card,
.document-card,
.side-card,
.detail-card {
    overflow-wrap: anywhere;
}
.lang-switch a {
    min-width: 38px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
@media (max-width: 1024px) {
    .admin-filter--card,
    .admin-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .admin-filter__actions {
        justify-content: flex-start;
    }
    .results-head {
        align-items: flex-start;
    }
}
@media (max-width: 767px) {
    .admin-content {
        padding-inline: .65rem;
    }
    .panel,
    .admin-list-panel {
        border-radius: 18px;
    }
    .panel__head--wrap,
    .results-head,
    .admin-filter__actions,
    .filter-actions,
    .actions-inline {
        flex-direction: column;
        align-items: stretch;
    }
    .admin-filter--card,
    .admin-filter {
        grid-template-columns: 1fr;
        padding: var(--space-3);
    }
    .table-wrap--polished,
    .table-wrap {
        border: 0;
        box-shadow: none;
        background: transparent;
        overflow: visible;
    }
    .data-table--responsive tr {
        box-shadow: 0 12px 26px rgba(17,56,92,.07);
    }
    .data-table--responsive td {
        display: grid;
        grid-template-columns: minmax(108px, 38%) minmax(0, 1fr);
        gap: .75rem;
        align-items: start;
    }
    .data-table--responsive td::before {
        margin: 0;
        font-weight: 600;
        color: #64748b;
    }
    .data-table--responsive td:last-child {
        display: block;
    }
    .data-table--responsive td:last-child .button,
    .actions-inline .button,
    .actions-inline form,
    .actions-inline button {
        width: 100%;
    }
    .results-head > span {
        align-self: flex-start;
    }
}
@media (max-width: 420px) {
    .container {
        width: min(100% - 22px, var(--container));
    }
    .data-table--responsive td {
        grid-template-columns: 1fr;
        gap: .2rem;
    }
    .button,
    button,
    input,
    select,
    textarea {
        max-width: 100%;
    }
}


/* =========================================================
   Project Editor compact language note + SDG selector polish
   ========================================================= */
.project-editor-v2 .language-note {
    margin: .9rem var(--space-5) 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: .5rem .75rem;
    padding: .55rem .75rem;
    border: 1px solid rgba(242, 194, 48, .24);
    border-left: 0;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 252, 237, .98), rgba(255, 255, 255, .96));
    color: var(--text);
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
}
.project-editor-v2 .language-note strong {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: rgba(11,93,59,.10);
    color: var(--rru-primary);
    font-size: .82rem;
    line-height: 1.15;
    white-space: nowrap;
}
.project-editor-v2 .language-note span {
    min-width: 0;
    color: #51613c;
    font-size: .84rem;
    line-height: 1.38;
}
.project-editor-v2 .goal-selector-v2 {
    margin: var(--space-4) var(--space-5);
    padding: .95rem;
    border-radius: 18px;
    background: linear-gradient(180deg, #fbfff8, #fff);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.project-editor-v2 .goal-selector-v2 legend {
    padding: 0 .4rem;
    font-size: .95rem;
    letter-spacing: -.01em;
}
.project-editor-v2 .goal-selector-v2__grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .55rem;
}
.project-editor-v2 .goal-check-v2 {
    min-height: 82px;
    gap: .18rem;
    padding: .62rem .62rem .6rem;
    border-radius: 14px;
    border-left-width: 4px;
    box-shadow: 0 6px 15px rgba(15,23,42,.04);
}
.project-editor-v2 .goal-check-v2:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--goal-color, var(--rru-primary)) 25%, #fff);
    box-shadow: 0 10px 22px rgba(15,23,42,.075);
}
.project-editor-v2 .goal-check-v2 input {
    top: .55rem;
    right: .55rem;
    width: 16px;
    height: 16px;
}
.project-editor-v2 .goal-check-v2 span {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: .18rem .45rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color, var(--rru-primary)) 10%, #fff);
    color: var(--goal-color, var(--rru-primary));
    font-size: .76rem;
    line-height: 1.15;
    font-weight: 700;
}
.project-editor-v2 .goal-check-v2 strong {
    padding-right: 1.15rem;
    color: #1f2937;
    font-size: .78rem;
    line-height: 1.28;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.project-editor-v2 .goal-check-v2:has(input:checked) {
    background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--goal-color, var(--rru-primary)) 7%, #fff));
    border-color: color-mix(in srgb, var(--goal-color, var(--rru-primary)) 38%, #fff);
    box-shadow: 0 10px 24px rgba(15,23,42,.08);
}
.project-editor-v2 .goal-check-v2:has(input:checked)::after {
    content: "เลือกแล้ว";
    position: absolute;
    right: .52rem;
    bottom: .46rem;
    color: var(--goal-color, var(--rru-primary));
    font-size: .66rem;
    font-weight: 600;
}
@media (max-width: 1320px) {
    .project-editor-v2 .goal-selector-v2__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
@media (max-width: 980px) {
    .project-editor-v2 .goal-selector-v2__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .project-editor-v2 .language-note {
        margin: var(--space-3);
        grid-template-columns: 1fr;
        gap: .35rem;
        padding: .65rem .7rem;
    }
    .project-editor-v2 .language-note strong {
        width: fit-content;
    }
    .project-editor-v2 .goal-selector-v2 {
        margin: 0;
        padding: .8rem;
    }
    .project-editor-v2 .goal-selector-v2__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
    }
    .project-editor-v2 .goal-check-v2 {
        min-height: 76px;
    }
}
@media (max-width: 420px) {
    .project-editor-v2 .goal-selector-v2__grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   Project Editor Lean Trim
   Reduce duplicate/verbose create-edit project UI
   ========================================================= */
.project-editor-v2--lean {
    gap: 1rem;
}
.project-editor-v2__hero--lean {
    padding: 1rem 1.15rem;
    border-radius: 18px;
    align-items: center;
}
.project-editor-v2__hero--lean .project-editor-v2__title h2 {
    margin: 0 0 .25rem;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
}
.project-editor-v2__hero--lean .project-editor-v2__title p {
    font-size: .92rem;
    max-width: 620px;
}
.project-editor-v2__hero--lean .project-editor-v2__status {
    min-width: 160px;
    align-content: center;
}
.project-editor-v2__layout--single {
    grid-template-columns: minmax(0, 1fr);
}
.project-editor-v2__form--lean {
    gap: 1rem;
}
.editor-section--lean {
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.editor-section__head--lean {
    padding: .85rem 1rem;
}
.editor-section__head--lean > div {
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
}
.editor-section__head--lean span {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    font-size: .92rem;
}
.editor-section__head--lean h3 {
    font-size: 1rem;
}
.editor-grid--lean {
    padding: 1rem;
    gap: .8rem 1rem;
}
.editor-grid--lean textarea {
    min-height: unset;
}
.language-note--lean {
    display: inline-flex;
    width: auto;
    max-width: calc(100% - 2rem);
    margin: .8rem 1rem 0 !important;
    padding: .48rem .72rem !important;
    border-radius: 999px !important;
    gap: .45rem;
    font-size: .85rem;
    background: #f7fbef !important;
    border-color: rgba(11,93,59,.12) !important;
}
.language-note--lean strong,
.language-note--lean span {
    line-height: 1.2;
}
.editor-compact-details {
    margin: 0 1rem 1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #fbfef9;
    overflow: hidden;
}
.editor-compact-details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem .9rem;
    cursor: pointer;
    color: var(--rru-primary);
    font-weight: 600;
    list-style-position: inside;
}
.editor-compact-details > summary small {
    color: var(--muted);
    font-weight: 500;
}
.editor-compact-details[open] > summary {
    border-bottom: 1px solid rgba(15,23,42,.07);
    background: #fff;
}
.goal-selector-v2--lean {
    margin: 1rem;
    padding: .85rem;
    border-radius: 16px;
}
.goal-selector-v2--lean legend {
    font-size: .92rem;
}
.goal-selector-v2--lean .goal-selector-v2__grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .55rem;
}
.goal-selector-v2--lean .goal-check-v2 {
    min-height: 78px;
    padding: .65rem .62rem;
    border-left-width: 4px;
    border-radius: 13px;
    gap: .2rem;
}
.goal-selector-v2--lean .goal-check-v2 input {
    top: .52rem;
    right: .52rem;
    transform: scale(.92);
}
.goal-selector-v2--lean .goal-check-v2 span {
    font-size: .78rem;
}
.goal-selector-v2--lean .goal-check-v2 strong {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    padding-right: 1rem;
    font-size: .78rem;
    line-height: 1.25;
}
.indicator-picker-v2--lean {
    margin: 0;
    padding: .85rem;
    border: 0;
    background: transparent;
}
.indicator-picker-v2--lean .indicator-group-v2 summary {
    padding: .72rem .85rem;
}
.indicator-picker-v2--lean .indicator-group-v2__items {
    padding: .8rem;
    gap: .6rem;
}
.indicator-picker-v2--lean .indicator-check-v2 {
    padding: .65rem;
    border-radius: 12px;
}
.evidence-builder--lean {
    margin: 1rem;
    padding: .85rem;
    border-radius: 16px;
}
.evidence-row--lean {
    grid-template-columns: minmax(180px, .95fr) minmax(260px, 1.45fr) auto;
    padding: .75rem;
    border-radius: 13px;
}
.cover-upload-v2--lean {
    margin: 1rem;
    padding: .85rem;
    border-radius: 16px;
}
.project-editor-v2__savebar--lean {
    padding: .7rem .85rem;
    border-radius: 16px;
}
.project-editor-v2__savebar--lean strong {
    font-size: .95rem;
}
.project-editor-v2__savebar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    justify-content: flex-end;
}
.project-editor-v2__side--lean {
    gap: .85rem;
}
.editor-side-card--lean {
    padding: 1rem;
    border-radius: 17px;
}
.editor-side-card--lean h3 {
    font-size: .98rem;
    margin-bottom: .65rem;
}
.editor-side-details > summary {
    cursor: pointer;
    color: var(--rru-primary);
    font-weight: 600;
}
@media (max-width: 1380px) {
    .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}
@media (max-width: 1180px) {
    .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .evidence-row--lean {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 767px) {
    .project-editor-v2__hero--lean {
        padding: .9rem;
    }
    .editor-grid--lean,
    .goal-selector-v2--lean,
    .indicator-picker-v2--lean,
    .evidence-builder--lean,
    .cover-upload-v2--lean {
        padding: .85rem;
    }
    .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .language-note--lean {
        display: flex;
        max-width: none;
        border-radius: 14px !important;
        align-items: flex-start;
    }
}
@media (max-width: 420px) {
    .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: 1fr;
    }
}


/* Notification read-state actions */
.notifications-head__actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-3);
    flex-wrap: wrap;
}
.notice-list--actionable {
    gap: var(--space-3);
}
.notice-item--row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: center;
}
.notice-item__link {
    display: grid;
    gap: .22rem;
    min-width: 0;
    color: inherit;
    text-decoration: none;
}
.notice-item__link:hover strong {
    text-decoration: underline;
}
.notice-item__link span,
.notice-item__link small {
    overflow-wrap: anywhere;
}
.notice-item__status {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2);
    flex-wrap: wrap;
}
.notice-read-state {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: .15rem .55rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}
.notice-read-state.is-unread {
    background: #e0f2fe;
    color: #075985;
}
.notice-read-state.is-read {
    background: #ecfdf3;
    color: var(--success);
}
.button--sm {
    min-height: 34px;
    padding: .38rem .65rem;
    font-size: .86rem;
}
.notice-item.is-read {
    background: #fbfbfb;
    opacity: .88;
}
.notice-item.is-read strong {
    font-weight: 600;
}
@media (max-width: 720px) {
    .notifications-head__actions,
    .notice-item__status {
        justify-content: flex-start;
    }
    .notice-item--row {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   Review detail layout readability + status timeline
   ========================================================= */
.review-page-v2 {
    display: grid;
    gap: var(--space-5);
}
.review-hero-v2 {
    display: flex;
    justify-content: space-between;
    gap: .85rem;
    align-items: flex-start;
    padding: .85rem 1rem;
    border: 1px solid rgba(11,93,59,.16);
    border-radius: 18px;
    background:
        radial-gradient(circle at 94% 10%, rgba(242,194,48,.24), transparent 16rem),
        linear-gradient(135deg, #f9fff7, #ffffff 58%, #fff9dd);
    box-shadow: 0 10px 24px rgba(15,23,42,.06);
}
.review-hero-v2 h2 {
    margin: .1rem 0 .2rem;
    color: var(--rru-primary);
    font-size: clamp(1.05rem, 1.5vw, 1.28rem);
    line-height: 1.35;
    font-weight: 700;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
}
.review-hero-v2__main {
    min-width: 0;
}
.review-hero-v2__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .45rem;
}
.review-hero-v2__chips > span:not(.status) {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .25rem .65rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.75);
    color: var(--text);
    font-size: .9rem;
    font-weight: 600;
}
.review-hero-v2__actions {
    flex: 0 0 auto;
}
.review-grid-v2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    gap: var(--space-5);
    align-items: start;
}
.review-main-v2 {
    display: grid;
    gap: var(--space-4);
    min-width: 0;
}
.review-card-v2 {
    display: grid;
    gap: var(--space-4);
    padding: clamp(1rem, 2vw, 1.25rem);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15,23,42,.055);
}
.review-card-v2__head {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: .8rem;
    align-items: start;
}
.review-card-v2__head > span {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 13px;
    background: var(--rru-primary);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 10px 20px rgba(11,93,59,.16);
}
.review-card-v2__head h3 {
    margin: 0;
    color: var(--rru-primary);
    font-size: 1.12rem;
}
.review-card-v2__head p {
    margin: .25rem 0 0;
    color: var(--muted);
}
.review-meta-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}
.review-meta-v2 > div {
    min-width: 0;
    padding: .85rem;
    border-radius: 16px;
    background: #f8fcf8;
    border: 1px solid rgba(11,93,59,.10);
}
.review-meta-v2 small {
    display: block;
    margin-bottom: .25rem;
    color: var(--muted);
    font-weight: 500;
}
.review-meta-v2 strong {
    display: block;
    color: var(--text);
    overflow-wrap: anywhere;
}
.readiness-compact-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}
.readiness-compact-item {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: .55rem;
    align-items: center;
    padding: .7rem;
    border-radius: 15px;
    border: 1px solid rgba(15,23,42,.08);
    background: #fff;
}
.readiness-compact-item > span {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    font-weight: 700;
}
.readiness-compact-item strong {
    color: var(--text);
    line-height: 1.25;
}
.readiness-compact-item.is-ok > span {
    background: rgba(16,120,80,.12);
    color: #08764f;
}
.readiness-compact-item.is-missing {
    background: #fff9f5;
    border-color: rgba(176,70,35,.20);
}
.readiness-compact-item.is-missing > span {
    background: rgba(176,70,35,.12);
    color: #b04623;
}
.goal-badges--review-v2 {
    gap: .5rem;
}
.goal-badges--review-v2 span {
    max-width: 100%;
}
.indicator-review-v2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.indicator-chip--review-v2 {
    min-width: 0;
}
.review-selected-indicator-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0 .8rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 18px;
    background: #f8fafc;
}
.review-selected-indicator-head h4 {
    margin: 0 0 .25rem;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}
.review-selected-indicator-head p {
    margin: 0;
    color: #64748b;
    font-size: .9rem;
    line-height: 1.45;
}
.review-selected-indicator-head > span {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: .35rem .75rem;
    border-radius: 999px;
    background: #fff;
    color: #0f766e;
    font-weight: 800;
    border: 1px solid rgba(15, 118, 110, .18);
}
.indicator-review-v2--selected .indicator-chip--review-v2.is-selected {
    border-color: rgba(15, 118, 110, .22);
    background: linear-gradient(180deg, #ffffff 0%, #f0fdfa 100%);
}
.review-all-indicators-panel {
    margin-top: 1rem;
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.review-all-indicators-panel summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    color: #0f172a;
    font-weight: 800;
}
.review-all-indicators-panel summary::-webkit-details-marker {
    display: none;
}
.review-all-indicators-panel summary::before {
    content: '+';
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #0f766e;
    font-weight: 900;
}
.review-all-indicators-panel[open] summary::before {
    content: '−';
}
.review-all-indicators-panel summary > span {
    flex: 1 1 auto;
}
.review-all-indicators-panel summary small {
    flex: 0 0 auto;
    color: #64748b;
    font-weight: 700;
}
.review-all-indicators-panel > p {
    margin: 0;
    padding: 0 1rem .9rem 3.25rem;
    color: #64748b;
    line-height: 1.55;
}
.review-all-indicators-panel .indicator-review-v2 {
    padding: 0 1rem 1rem;
}
.indicator-chip--review-v2.is-muted {
    background: #f8fafc;
    color: #64748b;
    border-color: rgba(15, 23, 42, .08);
    box-shadow: none;
}
.indicator-chip--review-v2.is-muted strong {
    color: #475569;
}
.review-content-edit-form {
    display: grid;
    gap: 1rem;
}
.review-content-edit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.review-content-edit-grid > label,
.review-content-edit-grid > .cms-rich-field {
    min-width: 0;
    display: grid;
    gap: .35rem;
    grid-column: 1 / -1;
}
.review-content-edit-en {
    margin-top: .85rem;
    padding: .85rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 14px;
    background: #fff;
}
.review-content-edit-en > summary {
    cursor: pointer;
    color: var(--rru-primary);
    font-weight: 600;
}
.review-content-edit-en[open] > summary {
    margin-bottom: .75rem;
}
.review-content-edit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    align-items: center;
    margin-top: 1rem;
}
.review-content-edit-actions small {
    color: var(--muted);
}
.review-content-v2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}
.review-content-v2 article,
.review-outcome-v2 > div {
    min-width: 0;
    padding: 1rem;
    border: 1px solid rgba(11,93,59,.10);
    border-radius: 16px;
    background: #fbfefb;
}
.review-content-v2 .span-2 {
    grid-column: 1 / -1;
}
.review-content-v2 h4,
.review-outcome-v2 dt {
    margin: 0 0 .5rem;
    color: var(--rru-primary);
    font-weight: 600;
}
.review-content-v2 p,
.review-outcome-v2 dd {
    margin: 0;
    overflow-wrap: anywhere;
}
.review-outcome-v2 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
    margin: 0;
}
.evidence-link-list--review-v2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.review-side-v2 {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
    min-width: 0;
}
.review-decision-panel-v2,
.review-comment-panel-v2 {
    min-width: 0;
}
.review-timeline-panel-v2 {
    margin-top: 0;
}
.review-status-timeline-v2 {
    position: relative;
    display: grid;
    gap: 0;
    padding: .25rem 0 .25rem 1.15rem;
}
.review-status-timeline-v2::before {
    content: "";
    position: absolute;
    top: .55rem;
    bottom: .55rem;
    left: 1.15rem;
    width: 2px;
    background: linear-gradient(180deg, rgba(11,93,59,.18), rgba(242,194,48,.40));
}
.review-timeline-item-v2 {
    position: relative;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: .8rem;
    padding: .35rem 0 .95rem;
}
.review-timeline-item-v2__dot {
    position: relative;
    z-index: 1;
    width: 18px;
    height: 18px;
    margin-top: .8rem;
    border: 4px solid #fff;
    border-radius: 999px;
    background: var(--rru-primary);
    box-shadow: 0 0 0 2px rgba(11,93,59,.18), 0 6px 14px rgba(15,23,42,.10);
}
.review-timeline-item-v2__body {
    padding: .9rem 1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.review-timeline-item-v2__head {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}
.review-timeline-item-v2__head strong {
    color: var(--rru-primary);
}
.review-timeline-item-v2__head small,
.review-timeline-item-v2 span {
    color: var(--muted);
}
.review-timeline-item-v2 p {
    margin: .45rem 0 .25rem;
    color: var(--text);
}
.audit-diff-panel--review-v2 {
    margin-top: 0;
}
@media (max-width: 1180px) {
    .review-grid-v2 {
        grid-template-columns: 1fr;
    }
    .review-side-v2 {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .review-decision-panel-v2 {
        grid-column: 1 / -1;
    }
    .review-meta-v2,
    .readiness-compact-list,
    .review-outcome-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .review-hero-v2,
    .review-hero-v2__actions {
        display: grid;
    }
    .review-meta-v2,
    .readiness-compact-list,
    .indicator-review-v2,
    .review-content-v2,
    .review-outcome-v2,
    .evidence-link-list--review-v2,
    .review-side-v2 {
        grid-template-columns: 1fr;
    }
    .review-card-v2 {
        border-radius: 18px;
    }
    .review-card-v2__head {
        grid-template-columns: 34px minmax(0, 1fr);
    }
    .review-card-v2__head > span {
        width: 34px;
        height: 34px;
    }
    .review-status-timeline-v2 {
        padding-left: .85rem;
    }
    .review-status-timeline-v2::before {
        left: .85rem;
    }
    .review-timeline-item-v2 {
        grid-template-columns: 22px minmax(0, 1fr);
        gap: .55rem;
    }
}

/* =========================================================
   Review timeline load more
   ========================================================= */
.review-timeline-item-v2[hidden] {
    display: none !important;
}
.review-timeline-item-v2.is-revealed {
    animation: reviewTimelineReveal .22s ease-out;
}
.review-timeline-actions-v2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-4);
    padding-top: var(--space-4);
    border-top: 1px solid rgba(15, 23, 42, .08);
}
.review-timeline-actions-v2 small {
    color: var(--text-muted);
    text-align: right;
}
@keyframes reviewTimelineReveal {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 640px) {
    .review-timeline-actions-v2 {
        align-items: stretch;
        flex-direction: column;
    }
    .review-timeline-actions-v2 small {
        text-align: left;
    }
}


/* =========================================================
   SDG Master Goal Management
   ========================================================= */
.sdg-admin-page { display: grid; gap: var(--space-5); }
.sdg-admin-hero { background: linear-gradient(135deg, #fbfff8, #fff 56%, #fff8dd); }
.sdg-goal-manage-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}
.sdg-goal-manage-card {
    display: grid;
    gap: var(--space-4);
    padding: var(--space-4);
    border: 1px solid rgba(15,23,42,.08);
    border-left: 7px solid var(--goal-color, var(--rru-primary));
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.055);
}
.sdg-goal-manage-card.is-inactive {
    background: #f8fafc;
    opacity: .84;
}
.sdg-goal-manage-card__preview {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: var(--space-3);
    align-items: center;
}
.sdg-goal-manage-card__preview img {
    width: 74px;
    height: 74px;
    object-fit: contain;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid rgba(15,23,42,.08);
}
.sdg-goal-manage-card__preview strong {
    display: block;
    color: var(--rru-primary);
    font-size: 1.15rem;
    margin-bottom: .4rem;
}
.sdg-goal-edit-form { display: grid; gap: var(--space-3); }
.sdg-goal-edit-form textarea { min-height: 72px; resize: vertical; }
.sdg-goal-edit-form__row {
    display: grid;
    grid-template-columns: minmax(120px, .6fr) minmax(160px, 1fr);
    gap: var(--space-3);
}
.sdg-goal-card-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2);
}
.sdg-goal-toggle-form { margin-top: calc(var(--space-3) * -1); }
.sdg-goal-readonly {
    padding: var(--space-3);
    border-radius: 16px;
    background: #f8fcf8;
}
.sdg-goal-readonly strong { color: var(--rru-primary); }
.sdg-goal-readonly p { margin: .5rem 0 0; color: var(--muted); }
@media (max-width: 1180px) {
    .sdg-goal-manage-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .sdg-goal-manage-card__preview,
    .sdg-goal-edit-form__row { grid-template-columns: 1fr; }
    .sdg-goal-card-actions { justify-content: stretch; }
    .sdg-goal-card-actions .button { width: 100%; }
}

/* =========================================================
   SDG Master Layout Rebuild v2
   ========================================================= */
.sdg-admin-page--rebuild {
    gap: var(--space-5);
}
.sdg-master-hero-v2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-5);
    align-items: center;
    padding: clamp(1.15rem, 2.5vw, 1.75rem);
    border: 1px solid rgba(11,93,59,.12);
    background:
        radial-gradient(circle at 100% 0%, rgba(242,194,48,.24), transparent 18rem),
        linear-gradient(135deg, #f7fff6, #ffffff 56%, #fff8dc);
    box-shadow: 0 14px 34px rgba(15,23,42,.07);
}
.sdg-master-hero-v2 h2 {
    margin: .12rem 0 .45rem;
    color: var(--rru-primary);
    letter-spacing: -.02em;
}
.sdg-master-hero-v2 p:last-child {
    max-width: 720px;
    margin: 0;
    color: var(--muted);
}
.sdg-master-stats-v2 {
    display: grid;
    grid-template-columns: repeat(4, minmax(74px, 1fr));
    gap: .65rem;
}
.sdg-master-stats-v2 div {
    min-width: 74px;
    padding: .72rem .8rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 16px;
    background: rgba(255,255,255,.82);
    text-align: center;
}
.sdg-master-stats-v2 strong {
    display: block;
    color: var(--rru-primary);
    font-size: 1.28rem;
    line-height: 1;
}
.sdg-master-stats-v2 span {
    display: block;
    margin-top: .28rem;
    color: var(--muted);
    font-size: .78rem;
    white-space: nowrap;
}
.sdg-master-panel-v2 {
    overflow: visible;
}
.sdg-master-panel-v2__head p {
    max-width: 760px;
}
.sdg-goal-board-v2 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
}
.sdg-goal-card-v2 {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid rgba(15,23,42,.08);
    border-top: 6px solid var(--goal-color, var(--rru-primary));
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.055);
    overflow: hidden;
}
.sdg-goal-card-v2.is-inactive {
    background: #f8fafc;
    opacity: .82;
}
.sdg-goal-card-v2__top {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: .8rem;
    align-items: start;
    padding: var(--space-4);
}
.sdg-goal-card-v2__top img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    border-radius: 14px;
    border: 1px solid rgba(15,23,42,.08);
    background: #f8fafc;
}
.sdg-goal-card-v2__code {
    color: var(--goal-color, var(--rru-primary));
    font-weight: 700;
    font-size: .8rem;
    letter-spacing: .02em;
}
.sdg-goal-card-v2 h3 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.7em;
    margin: .18rem 0 .55rem;
    color: var(--text);
    font-size: .98rem;
    line-height: 1.35;
}
.sdg-goal-card-v2__desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.55em;
    margin: 0 var(--space-4) var(--space-3);
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.5;
}
.sdg-goal-card-v2__desc.is-muted {
    color: #94a3b8;
}
.sdg-goal-edit-v2 {
    margin: auto var(--space-4) var(--space-3);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 16px;
    background: #fbfef9;
    overflow: hidden;
}
.sdg-goal-edit-v2 summary {
    cursor: pointer;
    padding: .72rem .85rem;
    color: var(--rru-primary);
    font-weight: 600;
    list-style-position: inside;
}
.sdg-goal-edit-v2[open] summary {
    border-bottom: 1px solid rgba(11,93,59,.1);
    background: rgba(11,93,59,.045);
}
.sdg-goal-edit-v2 form {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-3);
}
.sdg-goal-edit-v2__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
}
.sdg-goal-edit-v2__grid .span-2 {
    grid-column: 1 / -1;
}
.sdg-goal-edit-v2 textarea {
    min-height: 68px;
    resize: vertical;
}
.sdg-goal-card-v2__actions {
    display: flex;
    justify-content: flex-end;
}
.sdg-goal-toggle-v2 {
    padding: 0 var(--space-4) var(--space-4);
    margin-top: auto;
}
.sdg-indicator-panel-v2 .panel__head {
    align-items: end;
}
.sdg-indicator-filter-v2 {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(160px, .8fr) auto;
    gap: var(--space-3);
    align-items: end;
    min-width: min(100%, 620px);
}
.sdg-indicator-filter-v2 label {
    margin: 0;
}
@media (max-width: 1320px) {
    .sdg-goal-board-v2 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 1080px) {
    .sdg-master-hero-v2 {
        grid-template-columns: 1fr;
    }
    .sdg-master-stats-v2 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .sdg-indicator-filter-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }
    .sdg-indicator-filter-v2 .button {
        grid-column: 1 / -1;
    }
}
@media (max-width: 860px) {
    .sdg-goal-board-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sdg-master-stats-v2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 560px) {
    .sdg-goal-board-v2,
    .sdg-goal-edit-v2__grid,
    .sdg-indicator-filter-v2 {
        grid-template-columns: 1fr;
    }
    .sdg-goal-card-v2__top {
        grid-template-columns: 50px minmax(0, 1fr);
        padding: var(--space-3);
    }
    .sdg-goal-card-v2__top img {
        width: 50px;
        height: 50px;
    }
    .sdg-goal-card-v2__desc,
    .sdg-goal-edit-v2 {
        margin-left: var(--space-3);
        margin-right: var(--space-3);
    }
    .sdg-goal-toggle-v2 {
        padding-left: var(--space-3);
        padding-right: var(--space-3);
    }
}

/* =========================================================
   SDG Goal Edit Modal
   ========================================================= */
.sdg-goal-card-v2__actions--split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: center;
    margin: auto var(--space-4) var(--space-4);
}
.sdg-goal-card-v2__actions--split .button {
    min-height: 40px;
    white-space: nowrap;
}
.sdg-goal-card-v2__actions--split > .button:first-child {
    justify-self: stretch;
}
.sdg-goal-card-v2__actions--split .sdg-goal-toggle-v2 {
    padding: 0;
    margin: 0;
}
.sdg-modal[hidden] {
    display: none !important;
}
.sdg-modal {
    position: fixed;
    inset: 0;
    z-index: 2200;
    display: grid;
    place-items: center;
    padding: clamp(.75rem, 3vw, 2rem);
}
.sdg-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, .58);
    backdrop-filter: blur(5px);
}
.sdg-modal__dialog {
    position: relative;
    width: min(860px, 100%);
    max-height: min(88vh, 780px);
    display: flex;
    flex-direction: column;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,.42);
    background: #fff;
    box-shadow: 0 28px 80px rgba(2, 6, 23, .34);
    overflow: hidden;
    animation: sdgModalIn .18s ease-out;
}
.sdg-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-5);
    border-bottom: 1px solid rgba(15,23,42,.08);
    background: linear-gradient(135deg, #f8fff8, #fff9df);
}
.sdg-modal__title-wrap {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}
.sdg-modal__title-wrap img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    border-radius: 16px;
    border: 1px solid rgba(15,23,42,.08);
    background: #fff;
}
.sdg-modal__title-wrap h3 {
    margin: .1rem 0 0;
    color: var(--rru-primary);
}
.sdg-modal__close {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(15,23,42,.08);
    color: var(--text);
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
}
.sdg-modal__close:hover {
    background: rgba(11,93,59,.13);
    color: var(--rru-primary);
}
.sdg-modal__body {
    overflow: auto;
    padding: var(--space-5);
}
.sdg-goal-edit-v2__grid--modal {
    gap: var(--space-4);
}
.sdg-goal-edit-v2__grid--modal textarea {
    min-height: 92px;
}
.sdg-modal__actions {
    position: sticky;
    bottom: calc(var(--space-5) * -1);
    display: flex;
    justify-content: flex-end;
    gap: var(--space-3);
    margin: var(--space-5) calc(var(--space-5) * -1) calc(var(--space-5) * -1);
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid rgba(15,23,42,.08);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(8px);
}
body.sdg-modal-open {
    overflow: hidden;
}
@keyframes sdgModalIn {
    from { opacity: 0; transform: translateY(10px) scale(.985); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 760px) {
    .sdg-goal-card-v2__actions--split {
        grid-template-columns: 1fr;
        margin-left: var(--space-3);
        margin-right: var(--space-3);
    }
    .sdg-goal-card-v2__actions--split .button,
    .sdg-goal-card-v2__actions--split .sdg-goal-toggle-v2 {
        width: 100%;
    }
    .sdg-modal {
        align-items: end;
        padding: .65rem;
    }
    .sdg-modal__dialog {
        width: 100%;
        max-height: 92vh;
        border-radius: 22px 22px 18px 18px;
    }
    .sdg-modal__head,
    .sdg-modal__body {
        padding: var(--space-4);
    }
    .sdg-modal__title-wrap {
        grid-template-columns: 48px minmax(0, 1fr);
    }
    .sdg-modal__title-wrap img {
        width: 48px;
        height: 48px;
    }
    .sdg-goal-edit-v2__grid--modal {
        grid-template-columns: 1fr;
    }
    .sdg-modal__actions {
        flex-direction: column-reverse;
        margin: var(--space-4) calc(var(--space-4) * -1) calc(var(--space-4) * -1);
        padding: var(--space-3) var(--space-4);
    }
    .sdg-modal__actions .button {
        width: 100%;
    }
}


/* Language management delete action */
.button--danger {
    background: #b42318;
    border-color: #b42318;
    color: #fff;
}
.button--danger:hover {
    background: #912018;
    border-color: #912018;
    color: #fff;
}

/* =========================================================
   Core UI library integration: DataTables, Select2, Toast, Chart
   ========================================================= */
.dataTables_wrapper {
    width: 100%;
    color: var(--text);
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
    padding: .65rem .1rem;
    color: var(--muted) !important;
    font-size: .92rem;
}
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: .45rem .65rem;
    background: #fff;
    color: var(--text);
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border-radius: 999px !important;
    border: 1px solid transparent !important;
    padding: .38rem .75rem !important;
    margin: 0 .1rem !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--rru-primary) !important;
    border-color: var(--rru-primary) !important;
    color: #fff !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--rru-primary-soft) !important;
    border-color: rgba(11,93,59,.18) !important;
    color: var(--rru-primary) !important;
}
table.dataTable.no-footer,
table.dataTable thead th,
table.dataTable thead td {
    border-bottom-color: var(--border) !important;
}
.select2-container--default .select2-selection--single {
    min-height: 42px;
    border-color: var(--border) !important;
    border-radius: 12px !important;
    display: flex !important;
    align-items: center;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--text) !important;
    line-height: 42px !important;
    padding-left: .8rem !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 42px !important;
    right: .35rem !important;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--rru-primary) !important;
    box-shadow: 0 0 0 3px rgba(11,93,59,.12);
}
.select2-dropdown {
    border-color: var(--border) !important;
    border-radius: 14px !important;
    overflow: hidden;
    box-shadow: 0 16px 34px rgba(15,23,42,.12);
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background: var(--rru-primary) !important;
}
.core-toast-stack {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 9999;
    display: grid;
    gap: .65rem;
    width: min(360px, calc(100vw - 2rem));
}
.core-toast {
    padding: .9rem 1rem;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: 0 18px 38px rgba(15,23,42,.16);
    animation: coreToastIn .18s ease-out;
}
.core-toast--success { border-left: 5px solid #16a34a; }
.core-toast--warning { border-left: 5px solid #f59e0b; }
.core-toast--danger { border-left: 5px solid #dc2626; }
.core-toast.is-leaving { opacity: 0; transform: translateY(-8px); transition: .25s ease; }
@keyframes coreToastIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.core-chart-wrap {
    min-height: 260px;
    height: clamp(260px, 28vw, 360px);
}
.core-chart-wrap canvas {
    width: 100% !important;
    height: 100% !important;
}
.dashboard-chart-panel {
    margin-bottom: var(--space-5);
}
@media (max-width: 767px) {
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        float: none !important;
        text-align: left !important;
        width: 100%;
    }
    .dataTables_wrapper .dataTables_filter input {
        width: 100%;
        margin: .35rem 0 0;
    }
    .dataTables_wrapper .dataTables_paginate {
        display: flex;
        flex-wrap: wrap;
        gap: .25rem;
    }
}


/* =========================================================
   Core UI library polish: Noto Sans + DataTables/Select2/SweetAlert2
   ========================================================= */
.dataTables_wrapper,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_processing,
.dataTables_wrapper .dataTables_paginate,
.select2-container,
.swal2-popup {
    font-family: var(--font-sans);
}
.dataTables_wrapper {
    width: 100%;
    color: var(--text);
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin: 0 0 .75rem;
}
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label {
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--text-muted);
    font-size: .9rem;
}
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    min-height: 38px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    padding: .45rem .8rem;
    font-family: var(--font-sans);
}
.dataTables_wrapper .dataTables_filter input {
    width: min(280px, 100%);
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    border: 1px solid transparent !important;
    border-radius: 999px !important;
    padding: .35rem .7rem !important;
    margin-left: .2rem !important;
    color: var(--text) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--rru-primary) !important;
    border-color: var(--rru-primary) !important;
    color: #fff !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--rru-primary-soft) !important;
    border-color: rgba(17,56,92,.16) !important;
    color: var(--rru-primary) !important;
}
.dataTables_wrapper table.dataTable {
    border-collapse: collapse !important;
    margin: .25rem 0 .75rem !important;
}
.dataTables_wrapper table.dataTable thead th,
.dataTables_wrapper table.dataTable thead td {
    border-bottom: 1px solid var(--border) !important;
}
.dataTables_wrapper table.dataTable.no-footer {
    border-bottom: 0 !important;
}
.dataTables_wrapper .dataTables_info {
    color: var(--text-muted);
    font-size: .88rem;
}
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    min-height: 42px;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 40px;
    color: var(--text);
}
.select2-dropdown {
    border-color: var(--border);
    border-radius: var(--radius-md);
    box-shadow: 0 16px 34px rgba(15,23,42,.12);
    font-family: var(--font-sans);
}
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background: var(--rru-primary);
}
/* Shared RRU dialog (SweetAlert2) — used by RRUDialog / data-core-confirm */
.swal2-container {
    z-index: 12000;
}
.rru-swal.swal2-popup,
.swal2-popup.rru-swal {
    width: min(28rem, calc(100vw - 2rem));
    padding: 1.45rem 1.35rem 1.2rem;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
    background: var(--surface);
    color: var(--text);
    font-family: var(--font-sans);
}
.rru-swal .swal2-icon {
    margin: .15rem auto .85rem;
    border-width: 3px;
}
.rru-swal .rru-swal__title,
.rru-swal .swal2-title {
    margin: 0 0 .45rem;
    padding: 0;
    color: var(--text);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.35;
}
.rru-swal--danger .rru-swal__title,
.rru-swal--danger .swal2-title,
.rru-swal--warning .rru-swal__title,
.rru-swal--warning .swal2-title {
    color: var(--danger);
}
.rru-swal--question .rru-swal__title,
.rru-swal--question .swal2-title,
.rru-swal--info .rru-swal__title,
.rru-swal--info .swal2-title {
    color: var(--rru-primary);
}
.rru-swal--success .rru-swal__title,
.rru-swal--success .swal2-title {
    color: var(--success);
}
.rru-swal .rru-swal__body,
.rru-swal .swal2-html-container {
    margin: 0;
    padding: 0;
    color: var(--text-muted);
    font-size: .95rem;
    line-height: 1.55;
}
.rru-swal .rru-swal__actions,
.rru-swal .swal2-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .65rem;
    margin: 1.2rem 0 0;
    width: 100%;
}
.rru-swal .swal2-actions .button,
.rru-swal .swal2-styled {
    margin: 0 !important;
    min-width: 7.25rem;
    min-height: 42px;
    border-radius: var(--radius-md);
    font-weight: 700;
    box-shadow: none;
}
.rru-swal .button.button--outline {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
}
.rru-swal .button.button--outline:hover {
    background: var(--surface-muted);
    border-color: var(--border);
    color: var(--text);
}
.rru-swal .button.button--danger {
    background: var(--danger);
    border-color: var(--danger);
    color: #fff;
}
.rru-swal .button.button--danger:hover {
    background: #912018;
    border-color: #912018;
    color: #fff;
}
.rru-swal--toast.swal2-popup {
    width: auto;
    max-width: min(24rem, calc(100vw - 1.5rem));
    padding: .85rem 1rem;
    border-radius: var(--radius-md);
}
.rru-swal--toast .swal2-title {
    font-size: .92rem;
    font-weight: 600;
    color: var(--text);
}
/* Legacy unthemed Swal fallback (direct Swal.fire without RRUDialog) */
.swal2-popup:not(.rru-swal) {
    border-radius: var(--radius-lg);
    font-family: var(--font-sans);
}
.swal2-popup:not(.rru-swal) .swal2-title {
    color: var(--text);
}
.swal2-popup:not(.rru-swal) .swal2-styled.swal2-confirm {
    background: var(--rru-primary) !important;
}
.swal2-popup:not(.rru-swal) .swal2-styled.swal2-cancel {
    background: #64748b !important;
}
@media (max-width: 767px) {
    .dataTables_wrapper .dataTables_length label,
    .dataTables_wrapper .dataTables_filter label {
        align-items: stretch;
        flex-direction: column;
    }
    .dataTables_wrapper .dataTables_filter input,
    .dataTables_wrapper .dataTables_length select {
        width: 100%;
    }
    .dataTables_wrapper .dataTables_paginate {
        display: flex;
        flex-wrap: wrap;
        gap: .25rem;
        justify-content: flex-start;
    }
}


/* =========================================================
   DataTables row-line alignment hotfix
   =========================================================
   Root cause: some action cells reuse .actions-inline directly on <td>,
   which turns the cell into flex and makes row separators look broken
   when neighboring cells contain multi-line text. Keep table cells as
   table-cells on desktop and draw separators at row level.
*/
@media (min-width: 768px) {
    .dataTables_wrapper table.dataTable,
    .table-wrap table.data-table {
        border-collapse: collapse !important;
        border-spacing: 0 !important;
    }
    .dataTables_wrapper table.dataTable tbody tr,
    .table-wrap table.data-table tbody tr {
        border-bottom: 1px solid var(--border);
    }
    .dataTables_wrapper table.dataTable tbody tr:last-child,
    .table-wrap table.data-table tbody tr:last-child {
        border-bottom: 0;
    }
    .dataTables_wrapper table.dataTable tbody th,
    .dataTables_wrapper table.dataTable tbody td,
    .table-wrap table.data-table tbody th,
    .table-wrap table.data-table tbody td {
        border-bottom: 0 !important;
        vertical-align: middle;
    }
    .dataTables_wrapper table.dataTable tbody td.actions-inline,
    .table-wrap table.data-table tbody td.actions-inline,
    .dataTables_wrapper table.dataTable tbody td.text-right.actions-inline,
    .table-wrap table.data-table tbody td.text-right.actions-inline {
        display: table-cell !important;
        text-align: right !important;
        white-space: nowrap;
        min-width: 0;
    }
    .dataTables_wrapper table.dataTable tbody td.actions-inline > a,
    .dataTables_wrapper table.dataTable tbody td.actions-inline > form,
    .dataTables_wrapper table.dataTable tbody td.actions-inline > button,
    .table-wrap table.data-table tbody td.actions-inline > a,
    .table-wrap table.data-table tbody td.actions-inline > form,
    .table-wrap table.data-table tbody td.actions-inline > button {
        display: inline-flex;
        vertical-align: middle;
        margin-left: .35rem;
        margin-bottom: .15rem;
    }
    .dataTables_wrapper table.dataTable tbody td.actions-inline > :first-child,
    .table-wrap table.data-table tbody td.actions-inline > :first-child {
        margin-left: 0;
    }
}
@media (max-width: 767px) {
    .data-table--responsive td.actions-inline,
    .data-table--responsive td.text-right.actions-inline {
        display: block !important;
        text-align: left !important;
        white-space: normal !important;
    }
}


/* =========================================================
   I18N translation management
   ========================================================= */
.translation-admin {
    display: grid;
    gap: var(--space-5);
}
.translation-hero {
    background: linear-gradient(135deg, #f8fff7, #fff 60%, #fff8df);
}
.translation-stats,
.translation-tool-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
}
.translation-stats > div,
.tool-card {
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15,23,42,.05);
}
.translation-stats strong {
    display: block;
    color: var(--rru-primary);
    font-size: 1.55rem;
}
.translation-stats span,
.tool-card small,
.translation-source {
    color: var(--muted);
}
.translation-tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tool-card {
    display: grid;
    gap: var(--space-3);
    align-content: start;
}
.translation-add-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}
.translation-add-form .span-2 {
    grid-column: 1 / -1;
}
.translation-inline-form {
    display: grid;
    gap: .45rem;
    min-width: min(440px, 100%);
}
.translation-inline-form textarea {
    min-height: 68px;
    resize: vertical;
}
.translation-source {
    margin: .3rem 0;
    max-width: 520px;
    overflow-wrap: anywhere;
}
.check-inline {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: .38rem;
    width: auto !important;
    max-width: 100%;
    min-width: 0;
    min-height: 0 !important;
    padding: .34rem .52rem !important;
    border: 1px solid rgba(11, 93, 59, .18);
    border-radius: 999px;
    background: rgba(11, 93, 59, .045);
    color: #214334;
    font-size: .84rem;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
    box-sizing: border-box;
    white-space: normal;
    overflow-wrap: anywhere;
}
.check-inline::before {
    display: none !important;
    content: none !important;
}
.check-inline input[type="checkbox"],
.check-inline input[type="radio"] {
    flex: 0 0 auto;
    width: .96rem !important;
    height: .96rem !important;
    min-height: 0 !important;
    margin: 0;
    accent-color: var(--rru-primary);
}
.check-inline:focus-within {
    border-color: rgba(11, 93, 59, .38);
    box-shadow: 0 0 0 3px rgba(11, 93, 59, .10);
}
.translation-edit-form__actions .check-inline {
    flex: 0 1 auto;
}
.translation-add-form .check-inline {
    align-self: end;
    justify-self: start;
}
@media (max-width: 1024px) {
    .translation-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .translation-tool-grid,
    .translation-add-form {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 767px) {
    .translation-stats {
        grid-template-columns: 1fr 1fr;
    }
    .translation-inline-form {
        min-width: 0;
    }
}

/* =========================================================
   I18N Translation Center layout rebuild
   ========================================================= */
.translation-admin--workbench {
    display: grid;
    gap: var(--space-4);
}
.translation-hero--compact {
    padding: clamp(1rem, 2vw, 1.4rem);
    background:
        radial-gradient(circle at 95% 0%, rgba(242,194,48,.2), transparent 16rem),
        linear-gradient(135deg, #f8fff7, #fff 58%, #fff8df);
}
.translation-hero__content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-4);
}
.translation-hero__content h2 {
    margin: .1rem 0 .35rem;
    color: var(--rru-primary);
}
.translation-hero__content p {
    margin: 0;
    color: var(--muted);
    max-width: 780px;
}
.translation-stats--compact {
    margin-top: var(--space-4);
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.translation-stats--compact > div {
    padding: .85rem 1rem;
    border-radius: 16px;
}
.translation-stats--compact .is-warning strong {
    color: #b45309;
}
.translation-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 320px);
    gap: var(--space-4);
    align-items: start;
}
.translation-filter-grid {
    display: grid;
    grid-template-columns: minmax(130px, .8fr) minmax(140px, .85fr) minmax(140px, .85fr) minmax(220px, 1.5fr) auto;
    gap: var(--space-3);
    align-items: end;
}
.translation-filter-grid__actions {
    display: inline-flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.translation-toolbar__tools {
    display: grid;
    gap: var(--space-3);
}
.translation-mini-action {
    display: grid;
    gap: .65rem;
    padding: .8rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 16px;
    background: #fbfef9;
}
.translation-mini-action span {
    font-weight: 600;
    color: var(--rru-primary);
}
.translation-add-panel {
    padding: 0;
    overflow: hidden;
}
.translation-add-panel summary {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    cursor: pointer;
    font-weight: 700;
    color: var(--rru-primary);
    list-style: none;
}
.translation-add-panel summary::-webkit-details-marker { display: none; }
.translation-add-panel summary small {
    font-weight: 500;
    color: var(--muted);
}
.translation-add-form--compact {
    padding: 0 var(--space-5) var(--space-5);
}
.translation-list-head {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: flex-start;
    margin-bottom: var(--space-4);
}
.translation-list-head h2 {
    margin: 0 0 .25rem;
    color: var(--rru-primary);
}
.translation-list-head p {
    margin: 0;
    color: var(--muted);
}
.translation-card-list {
    display: grid;
    gap: var(--space-3);
}
.translation-card {
    border: 1px solid rgba(15,23,42,.09);
    border-left: 5px solid rgba(11,93,59,.35);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15,23,42,.045);
    overflow: hidden;
}
.translation-card.is-missing {
    border-left-color: #f59e0b;
}
.translation-card.is-complete {
    border-left-color: var(--rru-primary);
}
.translation-card__head {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    align-items: center;
    padding: .85rem 1rem;
    background: #f8fcf8;
    border-bottom: 1px solid rgba(15,23,42,.07);
}
.translation-card__meta {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
}
.translation-locale,
.translation-type {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-weight: 600;
    font-size: .82rem;
}
.translation-locale {
    background: var(--rru-primary);
    color: #fff;
}
.translation-type {
    background: #fff;
    color: var(--rru-primary);
    border: 1px solid rgba(11,93,59,.16);
}
.translation-card__body {
    display: grid;
    grid-template-columns: minmax(220px, .9fr) minmax(0, 1.45fr);
    gap: var(--space-4);
    padding: var(--space-4);
}
.translation-card__source {
    min-width: 0;
    display: grid;
    gap: .45rem;
    align-content: start;
}
.translation-card__source small {
    color: var(--muted);
    font-weight: 600;
}
.translation-card__source strong {
    color: var(--text);
    line-height: 1.35;
}
.translation-card__source p,
.translation-card__source em {
    margin: 0;
    color: var(--muted);
    overflow-wrap: anywhere;
}
.translation-edit-form {
    display: grid;
    gap: .75rem;
    min-width: 0;
}
.translation-edit-form textarea {
    min-height: 104px;
    resize: vertical;
}
.translation-edit-form__actions {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    align-items: center;
    flex-wrap: wrap;
}
@media (max-width: 1180px) {
    .translation-toolbar,
    .translation-filter-grid,
    .translation-card__body {
        grid-template-columns: 1fr;
    }
    .translation-filter-grid__actions {
        justify-content: flex-start;
    }
}
@media (max-width: 767px) {
    .translation-hero__content,
    .translation-list-head,
    .translation-add-panel summary {
        flex-direction: column;
        align-items: stretch;
    }
    .translation-stats--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .translation-card__head,
    .translation-edit-form__actions {
        align-items: stretch;
        flex-direction: column;
    }
    .translation-card__head .inline-form,
    .translation-card__head .button {
        width: 100%;
    }
    .translation-edit-form__actions .check-inline,
    .translation-add-form .check-inline {
        width: auto !important;
        max-width: 100%;
        align-self: flex-start;
    }
}

@media (max-width: 480px) {
    .check-inline {
        padding: .3rem .46rem !important;
        font-size: .8rem;
        gap: .32rem;
    }
    .check-inline input[type="checkbox"],
    .check-inline input[type="radio"] {
        width: .9rem !important;
        height: .9rem !important;
    }
}

/* CMS pages i18n UI workbench */
.cms-page-workbench,
.cms-editor {
    display: grid;
    gap: var(--space-5);
}
.cms-page-hero,
.cms-editor__hero {
    display: flex;
    justify-content: space-between;
    gap: var(--space-5);
    align-items: flex-start;
    padding: var(--space-6);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 26px;
    background: linear-gradient(135deg, #ffffff 0%, #fbfff8 58%, rgba(255,214,10,.16) 100%);
    box-shadow: 0 18px 42px rgba(15,23,42,.075);
}
.cms-page-hero h2,
.cms-editor__hero h2 {
    margin: .15rem 0 .35rem;
    color: var(--rru-primary);
    font-size: clamp(1.45rem, 2.2vw, 2.15rem);
    line-height: 1.18;
}
.cms-page-hero p,
.cms-editor__hero p {
    max-width: 760px;
    margin: 0;
    color: var(--muted);
}
.cms-page-hero__actions,
.cms-editor__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    justify-content: flex-end;
}
.cms-page-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
}
.cms-page-stats article {
    padding: var(--space-5);
    border: 1px solid rgba(11,93,59,.1);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.055);
}
.cms-page-stats strong {
    display: block;
    color: var(--rru-primary);
    font-size: 1.7rem;
    line-height: 1;
}
.cms-page-stats span {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    font-weight: 600;
}
.cms-page-toolbar {
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(260px, 1fr) auto;
    gap: var(--space-4);
    align-items: end;
    padding: var(--space-5);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.05);
}
.cms-page-toolbar__actions {
    display: flex;
    gap: .65rem;
    justify-content: flex-end;
}
.cms-page-list {
    overflow: hidden;
}
.cms-page-list__head {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: flex-start;
    padding: var(--space-5);
    border-bottom: 1px solid rgba(15,23,42,.075);
    background: #fbfff8;
}
.cms-page-list__head h3 {
    margin: 0;
    color: var(--rru-primary);
}
.cms-page-list__head p {
    margin: .35rem 0 0;
    color: var(--muted);
}
.cms-page-title-cell {
    display: grid;
    gap: .3rem;
    min-width: 0;
}
.cms-page-title-cell strong {
    color: var(--text);
    line-height: 1.35;
}
.cms-page-title-cell small {
    color: var(--muted);
    line-height: 1.45;
}
.cms-language-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .28rem .62rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}
.cms-language-pill.is-ready {
    color: #0b5d3b;
    background: rgba(11,93,59,.1);
}
.cms-language-pill.is-missing {
    color: #92400e;
    background: rgba(245,158,11,.15);
}
.cms-editor__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: var(--space-5);
    align-items: start;
}
.cms-editor__main,
.cms-editor__side {
    min-width: 0;
}
.cms-editor__main {
    display: grid;
    gap: var(--space-5);
}
.cms-editor-section textarea[name="body"],
.cms-editor-section textarea[name="body_en"] {
    min-height: 300px;
}
.cms-editor__savebar {
    position: sticky;
    bottom: .75rem;
    z-index: 14;
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: center;
    padding: .9rem 1rem;
    border: 1px solid rgba(11,93,59,.18);
    border-radius: 20px;
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 18px 38px rgba(15,23,42,.14);
}
.cms-editor__savebar strong,
.cms-editor__savebar span {
    display: block;
}
.cms-editor__savebar span {
    color: var(--muted);
    font-size: .9rem;
}
.cms-editor__side {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
}
.cms-side-status {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
    margin-bottom: var(--space-4);
}
.cms-side-meta {
    display: grid;
    gap: .85rem;
    margin: 0;
}
.cms-side-meta div {
    padding: .75rem;
    border-radius: 14px;
    background: #f8fcf8;
}
.cms-side-meta dt {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 600;
}
.cms-side-meta dd {
    margin: .2rem 0 0;
    color: var(--text);
    font-weight: 600;
}
.cms-side-note {
    margin: 0;
    color: var(--muted);
}
.cms-editor-nav {
    display: grid;
    gap: .55rem;
}
.cms-editor-nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    color: var(--text);
    background: #fbfff8;
    font-weight: 600;
    text-decoration: none;
}
.cms-editor-nav a:hover {
    border-color: rgba(11,93,59,.22);
    background: rgba(11,93,59,.06);
    color: var(--rru-primary);
}
@media (max-width: 1100px) {
    .cms-editor__layout {
        grid-template-columns: 1fr;
    }
    .cms-editor__side {
        position: static;
        order: -1;
    }
}
@media (max-width: 760px) {
    .cms-page-hero,
    .cms-editor__hero,
    .cms-editor__savebar {
        flex-direction: column;
        align-items: stretch;
    }
    .cms-page-stats,
    .cms-page-toolbar {
        grid-template-columns: 1fr;
    }
    .cms-page-toolbar__actions,
    .cms-page-hero__actions,
    .cms-editor__actions {
        justify-content: stretch;
    }
    .cms-page-toolbar__actions .button,
    .cms-page-hero__actions .button,
    .cms-editor__actions .button,
    .cms-editor__savebar .button {
        width: 100%;
    }
}

/* Batch admin i18n UI polish: publications, organizations, users, roles, languages */
.admin-workbench,
.content-editor-layout {
    display: grid;
    gap: var(--space-5);
}
.admin-hero--compact {
    display: flex;
    justify-content: space-between;
    gap: var(--space-5);
    align-items: flex-start;
    padding: var(--space-6);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 26px;
    background: linear-gradient(135deg, #ffffff 0%, #fbfff8 58%, rgba(255,214,10,.16) 100%);
    box-shadow: 0 18px 42px rgba(15,23,42,.075);
}
.admin-hero--compact h2 {
    margin: .15rem 0 .35rem;
    color: var(--rru-primary);
    font-size: clamp(1.45rem, 2.2vw, 2.15rem);
    line-height: 1.18;
}
.admin-hero--compact p {
    max-width: 820px;
    margin: 0;
    color: var(--muted);
}
.admin-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    justify-content: flex-end;
}
.admin-stat-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
}
.stat-card {
    padding: var(--space-5);
    border: 1px solid rgba(11,93,59,.1);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(15,23,42,.055);
}
.stat-card strong {
    display: block;
    color: var(--rru-primary);
    font-size: 1.75rem;
    line-height: 1;
}
.stat-card span {
    display: block;
    margin-top: .35rem;
    color: var(--muted);
    font-weight: 600;
}
.stat-card.is-warning strong { color: #92400e; }
.content-editor-layout {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    align-items: start;
}
.editor-main,
.editor-side {
    min-width: 0;
}
.editor-main {
    display: grid;
    gap: var(--space-5);
}
.editor-side {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
}
.editor-hero .panel__head {
    margin-bottom: 0;
}
.content-editor-form {
    display: grid;
    gap: var(--space-5);
}
.form-grid--inner {
    margin-top: var(--space-4);
}
.editor-section {
    padding: var(--space-5);
}
.editor-section__head h3 {
    margin: 0;
    color: var(--rru-primary);
}
.editor-section__head p {
    margin: .35rem 0 0;
    color: var(--muted);
}
.content-editor-form textarea {
    min-height: 130px;
}
.sticky-savebar {
    position: sticky;
    bottom: .75rem;
    z-index: 14;
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    align-items: center;
    padding: .9rem 1rem;
    border: 1px solid rgba(11,93,59,.18);
    border-radius: 20px;
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(12px);
    box-shadow: 0 18px 38px rgba(15,23,42,.14);
}
.sticky-savebar strong,
.sticky-savebar p {
    display: block;
    margin: 0;
}
.sticky-savebar p {
    color: var(--muted);
    font-size: .9rem;
}
.meta-list {
    display: grid;
    gap: .85rem;
    margin: 0;
}
.meta-list div {
    padding: .75rem;
    border-radius: 14px;
    background: #f8fcf8;
}
.meta-list dt {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 600;
}
.meta-list dd {
    margin: .2rem 0 0;
    color: var(--text);
    font-weight: 600;
}
.editor-anchor-list {
    display: grid;
    gap: .55rem;
}
.editor-anchor-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    color: var(--text);
    background: #fbfff8;
    font-weight: 600;
    text-decoration: none;
}
.editor-anchor-list a:hover {
    border-color: rgba(11,93,59,.22);
    background: rgba(11,93,59,.06);
    color: var(--rru-primary);
}
@media (max-width: 1100px) {
    .content-editor-layout {
        grid-template-columns: 1fr;
    }
    .editor-side {
        position: static;
        order: -1;
    }
}
@media (max-width: 760px) {
    .admin-hero--compact,
    .sticky-savebar {
        flex-direction: column;
        align-items: stretch;
    }
    .admin-stat-grid {
        grid-template-columns: 1fr;
    }
    .admin-hero__actions,
    .sticky-savebar .button {
        width: 100%;
        justify-content: stretch;
    }
    .admin-hero__actions .button,
    .sticky-savebar .button {
        width: 100%;
    }
}


/* Editor section head layout hotfix
   Default header content must not reserve the icon column when the markup has no icon span. */
.editor-section__head > div {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: .25rem;
    min-width: 0;
}
.editor-section__head > div:has(> span) {
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: var(--space-3);
    align-items: start;
}
.editor-section__head span {
    grid-row: 1 / span 2;
    flex: 0 0 auto;
}
.editor-section__head h3,
.editor-section__head p {
    min-width: 0;
    overflow-wrap: anywhere;
}
.editor-section__head--lean > div {
    grid-template-columns: minmax(0, 1fr);
}
.editor-section__head--lean > div:has(> span) {
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
}
@media (max-width: 520px) {
    .editor-section__head > div:has(> span),
    .editor-section__head--lean > div:has(> span) {
        grid-template-columns: minmax(0, 1fr);
        row-gap: .35rem;
    }
    .editor-section__head span {
        grid-row: auto;
    }
}

/* Form label visual hierarchy polish
   Labels should guide the user without making input values look bold or heavy. */
.admin-content form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline),
.admin-content form fieldset,
.form-grid label:not(.check-line):not(.check-inline),
.admin-filter label,
.editor-grid label:not(.check-line):not(.check-inline),
.editor-section label:not(.check-line):not(.check-inline),
.content-editor-form label:not(.check-line):not(.check-inline),
.project-editor-form label:not(.check-line):not(.check-inline),
.project-field,
.project-field-grid label:not(.check-line):not(.check-inline),
.project-locale-grid label:not(.check-line):not(.check-inline) {
    color: #475569;
    font-weight: 500;
    font-size: .93rem;
    line-height: 1.4;
    letter-spacing: .005em;
}
.admin-content form label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline),
.form-grid label:focus-within:not(.check-line):not(.check-inline),
.admin-filter label:focus-within,
.editor-grid label:focus-within:not(.check-line):not(.check-inline),
.editor-section label:focus-within:not(.check-line):not(.check-inline),
.content-editor-form label:focus-within:not(.check-line):not(.check-inline),
.project-editor-form label:focus-within:not(.check-line):not(.check-inline),
.project-field:focus-within,
.project-field-grid label:focus-within:not(.check-line):not(.check-inline),
.project-locale-grid label:focus-within:not(.check-line):not(.check-inline) {
    color: var(--rru-primary);
}
.admin-content form label small,
.admin-content form fieldset small,
.form-grid label small,
.admin-filter label small,
.editor-grid label small,
.editor-section label small,
.content-editor-form label small,
.project-editor-form label small,
.project-field small,
.project-field-grid small,
.project-locale-grid small,
.field-help {
    color: #64748b;
    font-size: .82rem;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0;
}
.admin-content input,
.admin-content select,
.admin-content textarea,
.form-grid input,
.form-grid select,
.form-grid textarea,
.admin-filter input,
.admin-filter select,
.admin-filter textarea,
.editor-grid input,
.editor-grid select,
.editor-grid textarea,
.content-editor-form input,
.content-editor-form select,
.content-editor-form textarea,
.project-editor-form input,
.project-editor-form select,
.project-editor-form textarea,
.project-field input,
.project-field select,
.project-field textarea,
.project-field-grid input,
.project-field-grid select,
.project-field-grid textarea,
.project-locale-grid input,
.project-locale-grid select,
.project-locale-grid textarea {
    color: #0f172a;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.48;
    background: #fff;
    border-color: #d9e2dc;
    box-shadow: inset 0 1px 0 rgba(15, 23, 42, .025);
}
.admin-content textarea,
.form-grid textarea,
.editor-grid textarea,
.content-editor-form textarea,
.project-editor-form textarea,
.project-field textarea,
.project-field-grid textarea,
.project-locale-grid textarea {
    font-weight: 400;
    line-height: 1.65;
}
.admin-content input::placeholder,
.admin-content textarea::placeholder,
.form-grid input::placeholder,
.form-grid textarea::placeholder,
.editor-grid input::placeholder,
.editor-grid textarea::placeholder,
.content-editor-form input::placeholder,
.content-editor-form textarea::placeholder,
.project-editor-form input::placeholder,
.project-editor-form textarea::placeholder {
    color: #94a3b8;
    font-weight: 400;
}
.admin-content input:focus,
.admin-content select:focus,
.admin-content textarea:focus,
.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus,
.editor-grid input:focus,
.editor-grid select:focus,
.editor-grid textarea:focus,
.content-editor-form input:focus,
.content-editor-form select:focus,
.content-editor-form textarea:focus,
.project-editor-form input:focus,
.project-editor-form select:focus,
.project-editor-form textarea:focus {
    border-color: rgba(11, 93, 59, .58);
    box-shadow: 0 0 0 4px rgba(11, 93, 59, .08), inset 0 1px 0 rgba(15, 23, 42, .025);
}
.admin-content fieldset legend,
.editor-section fieldset legend,
.project-editor-form fieldset legend,
.content-editor-form fieldset legend {
    color: #334155;
    font-weight: 600;
    font-size: .95rem;
    margin-bottom: .45rem;
}
.required,
.admin-content .required {
    color: #dc2626;
    font-weight: 600;
}
@media (max-width: 760px) {
    .admin-content form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline),
    .form-grid label:not(.check-line):not(.check-inline),
    .editor-grid label:not(.check-line):not(.check-inline),
    .content-editor-form label:not(.check-line):not(.check-inline),
    .project-editor-form label:not(.check-line):not(.check-inline),
    .project-field,
    .project-field-grid label:not(.check-line):not(.check-inline),
    .project-locale-grid label:not(.check-line):not(.check-inline) {
        font-size: .9rem;
    }
}

/* --------------------------------------------------------------------------
   Admin content width polish 2026-06-18
   Gives admin workbench/editor pages more horizontal breathing room while
   keeping a readable maximum line length on very wide monitors.
   -------------------------------------------------------------------------- */
.admin-main {
    min-width: 0;
    width: 100%;
}
.admin-content {
    width: min(96%, 1760px);
    max-width: 1760px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 1.8vw, 1.75rem);
}
.admin-content > .panel,
.admin-content > .admin-list-panel,
.admin-content > .workbench-hero,
.admin-content > .editor-layout,
.admin-content > .form-layout,
.admin-content > .review-layout,
.admin-content > .content-editor-layout,
.admin-content > .project-editor-layout,
.admin-content > .dashboard-grid,
.admin-content > .content-grid,
.admin-content > .stats-grid,
.admin-content > .toolbar,
.admin-content > .admin-filter,
.admin-content > .admin-filter--card {
    min-width: 0;
}
.admin-content .table-wrap,
.admin-content .dataTables_wrapper,
.admin-content .dt-container {
    width: 100%;
    max-width: 100%;
}
@media (min-width: 1600px) {
    .admin-content {
        width: min(97%, 1840px);
        max-width: 1840px;
    }
}
@media (max-width: 1024px) {
    .admin-content {
        width: min(100% - 1.5rem, 100%);
        padding-inline: .75rem;
    }
}
@media (max-width: 640px) {
    .admin-content {
        width: 100%;
        padding-inline: .75rem;
    }
}


/* --------------------------------------------------------------------------
   Form label accent polish 2026-06-18
   Adds a calm RRU green-gold cue to field labels so labels are visually
   different from input values without making long admin forms feel heavy.
   -------------------------------------------------------------------------- */
.admin-content form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.form-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.editor-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.editor-section label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.content-editor-form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.project-editor-form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.project-field-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
.project-locale-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])) {
    position: relative;
    padding-left: .82rem;
    color: #3f5366;
    font-weight: 500;
}
.admin-content form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.form-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.editor-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.editor-section label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.content-editor-form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.project-editor-form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.project-field-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.project-locale-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before {
    content: "";
    position: absolute;
    left: 0;
    top: .22rem;
    width: 3px;
    height: 1.05em;
    border-radius: 999px;
    background: linear-gradient(180deg, var(--rru-gold), var(--success));
    box-shadow: 0 0 0 3px rgba(242, 183, 5, .08);
    opacity: .92;
}
.admin-content form label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.form-grid label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.editor-grid label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.editor-section label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.content-editor-form label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.project-editor-form label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.project-field-grid label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before,
.project-locale-grid label:focus-within:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"]))::before {
    background: linear-gradient(180deg, var(--rru-gold), var(--rru-primary));
    box-shadow: 0 0 0 4px rgba(11, 93, 59, .10);
    opacity: 1;
}
.admin-content form label .required,
.form-grid label .required,
.editor-grid label .required,
.editor-section label .required,
.content-editor-form label .required,
.project-editor-form label .required,
.project-field-grid label .required,
.project-locale-grid label .required {
    margin-left: .12rem;
}
.admin-content fieldset legend,
.editor-section fieldset legend,
.project-editor-form fieldset legend,
.content-editor-form fieldset legend {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding-bottom: .25rem;
    border-bottom: 2px solid rgba(242, 183, 5, .46);
}
.admin-content fieldset legend::before,
.editor-section fieldset legend::before,
.project-editor-form fieldset legend::before,
.content-editor-form fieldset legend::before {
    content: "";
    width: .55rem;
    height: .55rem;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--rru-gold), var(--success));
    box-shadow: 0 0 0 4px rgba(242, 183, 5, .10);
}
@media (max-width: 640px) {
    .admin-content form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .form-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .editor-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .editor-section label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .content-editor-form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .project-editor-form label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .project-field-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])),
    .project-locale-grid label:not(.switch):not(.toggle-switch):not(.check-line):not(.check-inline):not(:has(> input[type="checkbox"])):not(:has(> input[type="radio"])) {
        padding-left: .7rem;
    }
}


/* =========================================================
   Public announcement popup image modal
   ========================================================= */
.announcement-popup[hidden] {
    display: none !important;
}
.announcement-popup {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 2rem);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease;
}
.announcement-popup.is-open {
    opacity: 1;
    pointer-events: auto;
}
.announcement-popup__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, .68);
    backdrop-filter: blur(8px);
}
.announcement-popup__dialog {
    position: relative;
    width: min(92vw, 820px);
    max-height: 88vh;
    display: grid;
    gap: .85rem;
    padding: .7rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 24px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 30px 80px rgba(0,0,0,.36);
    transform: translateY(10px) scale(.98);
    transition: transform .18s ease;
}
.announcement-popup.is-open .announcement-popup__dialog {
    transform: translateY(0) scale(1);
}
.announcement-popup__close {
    position: absolute;
    top: .65rem;
    right: .65rem;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(15,23,42,.82);
    color: #fff;
    font-size: 1.65rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(0,0,0,.26);
}
.announcement-popup__close:hover {
    background: #0f172a;
}
.announcement-popup__image-wrap {
    min-width: 0;
    overflow: hidden;
    border-radius: 18px;
    background: #0f172a;
}
.announcement-popup__image-wrap a,
.announcement-popup__image-wrap img {
    display: block;
}
.announcement-popup__image-wrap img {
    width: 100%;
    max-height: min(74vh, 760px);
    object-fit: contain;
    background: #0f172a;
}
.announcement-popup__actions {
    display: flex;
    justify-content: flex-end;
    gap: .65rem;
    flex-wrap: wrap;
}
.announcement-popup-open {
    overflow: hidden;
}
.popup-thumb {
    width: 86px;
    height: 58px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(15,23,42,.12);
    background: #f8fafc;
}
.popup-admin-layout {
    align-items: start;
}
.popup-preview-card {
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 18px;
    padding: .6rem;
    background: #fff;
    box-shadow: 0 14px 30px rgba(15,23,42,.06);
}
.popup-preview-card img {
    display: block;
    width: 100%;
    max-height: 480px;
    object-fit: contain;
    border-radius: 14px;
    background: #0f172a;
}
.hint-list {
    display: grid;
    gap: .75rem;
    color: var(--muted);
}
.hint-list p {
    margin: 0;
    padding: .85rem;
    border-radius: 14px;
    background: #f8fcf8;
}
.toggle-line {
    display: flex !important;
    align-items: center;
    gap: .6rem;
    min-height: 44px;
}
.toggle-line input {
    width: auto;
}
@media (max-width: 640px) {
    .announcement-popup {
        align-items: end;
        padding: .75rem;
    }
    .announcement-popup__dialog {
        width: 100%;
        max-height: 92vh;
        border-radius: 20px;
        padding: .5rem;
    }
    .announcement-popup__image-wrap {
        border-radius: 16px;
    }
    .announcement-popup__actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .announcement-popup__actions .button {
        width: 100%;
    }
}

/* Login hotfix: dedicated auth layout without public navigation/popup dependencies */
.site-auth .login-page {
    min-height: 100vh;
}
.site-auth .login-card {
    box-shadow: 0 24px 70px rgba(15, 23, 42, .16);
}


/* Cookie consent v2 hotfix: versioned, visible, and independent from public popup. */
.cookie-consent--v2 {
    z-index: 1300;
    border-width: 2px;
    border-color: rgba(11,93,59,.24);
}
.cookie-consent--v2 .cookie-consent__content h2 {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.cookie-consent-open .cookie-consent--v2.is-open {
    pointer-events: auto;
}
@media (max-width: 767px) {
    .cookie-consent--v2 {
        left: .65rem;
        right: .65rem;
        bottom: .65rem;
    }
}

/* =========================================================
   Admin Public Popups UI Rebuild
   ========================================================= */
.popup-admin-v2,
.popup-editor-v2 {
    display: grid;
    gap: var(--space-5);
}
.popup-admin-v2__hero,
.popup-editor-v2__hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-5);
    padding: clamp(1.25rem, 2.6vw, 2rem);
    border: 1px solid rgba(11,93,59,.14);
    border-radius: 26px;
    background:
        radial-gradient(circle at 92% 8%, rgba(242,194,48,.22), transparent 18rem),
        linear-gradient(135deg, #f8fff8, #fff 52%, #fff8dd);
    box-shadow: 0 18px 42px rgba(15,23,42,.075);
}
.popup-admin-v2__hero h2,
.popup-editor-v2__hero h2 {
    margin: .1rem 0 .45rem;
    color: var(--rru-primary);
    font-size: clamp(1.55rem, 2.8vw, 2.25rem);
    letter-spacing: -.025em;
}
.popup-admin-v2__hero p,
.popup-editor-v2__hero p {
    max-width: 840px;
    margin: 0;
    color: var(--muted);
}
.popup-admin-v2__actions {
    flex: 0 0 auto;
}
.popup-stat-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-3);
}
.popup-stat-grid article {
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.11);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15,23,42,.055);
}
.popup-stat-grid span,
.popup-stat-grid small {
    display: block;
    color: var(--muted);
}
.popup-stat-grid strong {
    display: block;
    margin: .15rem 0;
    color: var(--rru-primary);
    font-size: 2rem;
    line-height: 1;
}
.popup-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
}
.popup-manage-card {
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr auto;
    overflow: hidden;
    border: 1px solid rgba(15,23,42,.09);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(15,23,42,.07);
}
.popup-manage-card.is-inactive {
    opacity: .84;
}
.popup-manage-card__image {
    position: relative;
    aspect-ratio: 16 / 9;
    background: #0f172a;
    overflow: hidden;
}
.popup-manage-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.popup-manage-card__badges {
    position: absolute;
    left: .85rem;
    right: .85rem;
    bottom: .85rem;
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.popup-mode-badge {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .28rem .65rem;
    border-radius: 999px;
    background: rgba(255,255,255,.94);
    color: var(--rru-primary);
    font-size: .82rem;
    font-weight: 600;
    box-shadow: 0 8px 18px rgba(15,23,42,.15);
}
.popup-mode-badge--always {
    color: #854d0e;
}
.popup-manage-card__body {
    display: grid;
    gap: var(--space-3);
    padding: var(--space-4);
}
.popup-manage-card__title small {
    color: var(--muted);
}
.popup-manage-card__title h3 {
    margin: .15rem 0 .25rem;
    color: var(--rru-primary);
    font-size: 1.16rem;
    line-height: 1.35;
}
.popup-manage-card__title p {
    margin: 0;
    color: var(--muted);
}
.popup-meta-list {
    display: grid;
    gap: .75rem;
    margin: 0;
}
.popup-meta-list div {
    min-width: 0;
    padding: .75rem;
    border: 1px solid rgba(11,93,59,.09);
    border-radius: 14px;
    background: #f8fcf8;
}
.popup-meta-list dt {
    color: var(--rru-primary);
    font-weight: 600;
    font-size: .86rem;
}
.popup-meta-list dd {
    margin: .2rem 0 0;
    color: var(--text);
    font-size: .91rem;
}
.popup-meta-list dd span {
    color: var(--muted);
}
.popup-manage-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    padding: var(--space-4);
    border-top: 1px solid rgba(15,23,42,.07);
    background: #fbfef9;
}
.popup-manage-card__actions form {
    margin: 0;
}
.button--danger {
    color: #b91c1c !important;
}
.button--danger:hover {
    background: #fee2e2 !important;
}
.popup-empty-panel .empty-state {
    min-height: 260px;
}
.popup-editor-v2__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(310px, 390px);
    gap: var(--space-5);
    align-items: start;
}
.popup-editor-v2__main {
    display: grid;
    gap: var(--space-5);
    min-width: 0;
}
.popup-editor-section {
    overflow: hidden;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,.055);
}
.popup-editor-section__head {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: var(--space-3);
    align-items: start;
    padding: var(--space-5);
    border-bottom: 1px solid rgba(15,23,42,.07);
    background: linear-gradient(180deg, #fbfff8, #fff);
}
.popup-editor-section__head > span {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--rru-primary);
    color: #fff;
    font-weight: 700;
}
.popup-editor-section__head h3 {
    margin: 0;
    color: var(--rru-primary);
}
.popup-editor-section__head p {
    margin: .25rem 0 0;
    color: var(--muted);
}
.popup-editor-grid,
.popup-source-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    padding: var(--space-5);
}
.popup-editor-grid .span-2,
.popup-source-panel label:last-child {
    grid-column: 1 / -1;
}
.popup-upload-box {
    min-height: 132px;
    display: grid !important;
    align-content: center;
    gap: .45rem;
    padding: var(--space-4);
    border: 1px dashed rgba(11,93,59,.28);
    border-radius: 18px;
    background: #f8fcf8;
}
.popup-switch-line {
    display: flex !important;
    align-items: center;
    gap: .65rem;
    min-height: 48px;
    align-self: end;
    padding: .7rem .8rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 16px;
    background: #f8fcf8;
}
.popup-switch-line input {
    width: auto;
}
.popup-mode-explainer {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3);
    padding: 0 var(--space-5) var(--space-5);
}
.popup-mode-explainer article {
    padding: var(--space-4);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #f8fafc;
}
.popup-mode-explainer article.is-selected {
    border-color: rgba(11,93,59,.25);
    background: #f8fcf8;
    box-shadow: inset 0 0 0 1px rgba(11,93,59,.08);
}
.popup-mode-explainer strong,
.popup-mode-explainer span {
    display: block;
}
.popup-mode-explainer strong {
    color: var(--rru-primary);
}
.popup-mode-explainer span {
    margin-top: .35rem;
    color: var(--muted);
}
.popup-editor-savebar {
    position: sticky;
    bottom: .75rem;
    z-index: 14;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-4);
    padding: .9rem 1rem;
    border: 1px solid rgba(11,93,59,.18);
    border-radius: 20px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(12px);
    box-shadow: 0 18px 38px rgba(15,23,42,.14);
}
.popup-editor-savebar strong,
.popup-editor-savebar span {
    display: block;
}
.popup-editor-savebar span {
    color: var(--muted);
    font-size: .9rem;
}
.popup-editor-v2__side {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + 1rem);
    display: grid;
    gap: var(--space-4);
    min-width: 0;
}
.popup-preview-panel,
.popup-help-card {
    padding: var(--space-5);
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,.06);
}
.popup-preview-panel__head {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3);
    align-items: center;
    margin-bottom: var(--space-3);
}
.popup-preview-panel__head h3,
.popup-help-card h3 {
    margin: 0;
    color: var(--rru-primary);
}
.popup-preview-frame {
    display: grid;
    place-items: center;
    min-height: 260px;
    border-radius: 22px;
    background:
        linear-gradient(45deg, rgba(148,163,184,.18) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(148,163,184,.18) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(148,163,184,.18) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(148,163,184,.18) 75%),
        #0f172a;
    background-size: 22px 22px;
    background-position: 0 0, 0 11px, 11px -11px, -11px 0;
    overflow: hidden;
}
.popup-preview-frame img {
    width: 100%;
    max-height: 520px;
    object-fit: contain;
    display: block;
}
.popup-preview-empty {
    color: rgba(255,255,255,.76);
    text-align: center;
    padding: var(--space-5);
}
.popup-preview-note {
    margin: var(--space-3) 0 0;
    color: var(--muted);
    font-size: .9rem;
}
.popup-help-card ul {
    margin: 0;
    padding-left: 1.15rem;
    color: var(--muted);
}
.popup-help-card li + li {
    margin-top: .45rem;
}
.popup-help-card code {
    padding: .08rem .28rem;
    border-radius: 6px;
    background: #f1f5f9;
    color: var(--rru-primary);
}
@media (max-width: 1180px) {
    .popup-card-grid,
    .popup-editor-v2__layout {
        grid-template-columns: 1fr;
    }
    .popup-editor-v2__side {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .popup-preview-panel {
        grid-column: 1 / -1;
    }
}
@media (max-width: 767px) {
    .popup-admin-v2__hero,
    .popup-editor-v2__hero,
    .popup-editor-savebar {
        flex-direction: column;
        align-items: stretch;
    }
    .popup-stat-grid,
    .popup-editor-grid,
    .popup-source-panel,
    .popup-mode-explainer,
    .popup-editor-v2__side {
        grid-template-columns: 1fr;
    }
    .popup-editor-section__head,
    .popup-editor-grid,
    .popup-source-panel {
        padding: var(--space-4);
    }
    .popup-mode-explainer {
        padding: 0 var(--space-4) var(--space-4);
    }
    .popup-manage-card__actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .popup-manage-card__actions .button,
    .popup-manage-card__actions form {
        width: 100%;
    }
    .popup-preview-frame {
        min-height: 210px;
    }
}



/* Public popup admin button standard from latest requested baseline */
.popup-admin-v2 .button,
.popup-editor-v2 .button,
.popup-manage-card__actions .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    white-space: nowrap;
}
.popup-manage-card__actions form { margin: 0; }
.announcement-popup__actions [data-announcement-close] { display: none !important; }

/* Minimal PDPA privacy notice v27 */
.privacy-strip {
    position: fixed;
    left: 50%;
    bottom: 1rem;
    z-index: 1290;
    width: min(760px, calc(100vw - 2rem));
    transform: translate(-50%, 18px);
    opacity: 0;
    pointer-events: none;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .95rem;
    padding: .95rem 1rem;
    border: 1px solid rgba(11, 93, 59, .14);
    border-radius: 18px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 18px 45px rgba(15,23,42,.16);
    backdrop-filter: blur(10px);
    transition: opacity .16s ease, transform .16s ease;
}
.privacy-strip.is-open {
    opacity: 1;
    transform: translate(-50%, 0);
    pointer-events: auto;
}
.privacy-strip__copy {
    display: flex;
    flex-direction: column;
    gap: .28rem;
    min-width: 0;
    flex: 1 1 auto;
}
.privacy-strip__copy strong {
    color: var(--rru-primary);
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.3;
}
.privacy-strip__copy p {
    margin: 0;
    color: var(--muted);
    font-size: .86rem;
    line-height: 1.5;
}
.privacy-strip__actions {
    display: flex;
    gap: .5rem;
    flex: 0 0 auto;
    align-self: center;
}
@media (max-width: 640px) {
    .privacy-strip {
        align-items: stretch;
        flex-direction: column;
        bottom: .75rem;
        padding: .85rem;
    }
    .privacy-strip__actions {
        align-self: stretch;
        justify-content: stretch;
    }
    .privacy-strip__actions .button {
        flex: 1 1 0;
    }
}


/* =========================================================
   Hotfix rs16: popup admin buttons, popup scope, project detail SDG modal
   ========================================================= */
.popup-admin-v2 .button,
.popup-editor-v2 .button,
.popup-manage-card__actions .button {
    border-radius: 12px;
    box-shadow: none;
}
.popup-admin-v2 .button--outline,
.popup-editor-v2 .button--outline,
.popup-manage-card__actions .button--outline {
    background: #fff;
    border-color: rgba(11, 93, 59, .22);
    color: var(--rru-primary);
}
.popup-admin-v2 .button--outline:hover,
.popup-editor-v2 .button--outline:hover,
.popup-manage-card__actions .button--outline:hover {
    background: var(--rru-primary-soft);
    border-color: rgba(11, 93, 59, .34);
    color: var(--rru-primary);
}
.popup-admin-v2 .button--danger,
.popup-editor-v2 .button--danger,
.popup-manage-card__actions .button--danger {
    background: #fff !important;
    border-color: rgba(180, 35, 24, .26) !important;
    color: #b42318 !important;
}
.popup-admin-v2 .button--danger:hover,
.popup-editor-v2 .button--danger:hover,
.popup-manage-card__actions .button--danger:hover {
    background: #fff5f5 !important;
    border-color: rgba(180, 35, 24, .42) !important;
    color: #912018 !important;
}
.popup-editor-grid [data-popup-scope] {
    border-color: rgba(11, 93, 59, .2);
}
.popup-preview-frame img[hidden],
.popup-preview-empty[hidden] {
    display: none !important;
}
.popup-preview-empty {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 220px;
    border-radius: 18px;
    color: rgba(255,255,255,.82);
    font-weight: 600;
    text-align: center;
}
.project-detail-hero-v2 {
    position: relative;
    min-height: clamp(460px, 58vh, 680px);
    display: grid;
    align-items: end;
    overflow: hidden;
    background: linear-gradient(135deg, #063a28, #0b5d3b);
    color: #fff;
}
.project-detail-hero-v2__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.02);
    filter: saturate(1.05);
}
.project-detail-hero-v2__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(3, 24, 18, .26), rgba(3, 24, 18, .72)),
        radial-gradient(circle at 80% 12%, rgba(242, 194, 48, .22), transparent 22rem);
}
.project-detail-hero-v2__inner {
    position: relative;
    z-index: 1;
    display: grid;
    gap: var(--space-5);
    padding-top: clamp(4rem, 9vh, 7rem);
    padding-bottom: clamp(2.5rem, 6vh, 5rem);
}
.breadcrumb-lite {
    display: flex;
    gap: .55rem;
    align-items: center;
    flex-wrap: wrap;
    color: rgba(255,255,255,.78);
    font-size: .92rem;
}
.breadcrumb-lite a {
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}
.project-detail-hero-v2__content {
    max-width: 980px;
    padding: clamp(1.2rem, 3vw, 2rem);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 28px;
    background: rgba(5, 34, 25, .52);
    backdrop-filter: blur(10px);
    box-shadow: 0 24px 58px rgba(0,0,0,.22);
}
.project-detail-hero-v2 h1 {
    margin: .2rem 0 .8rem;
    color: #fff;
    font-size: clamp(2rem, 5vw, 4.1rem);
    line-height: 1.08;
    letter-spacing: -.035em;
    text-shadow: 0 4px 18px rgba(0,0,0,.22);
}
.project-detail-hero-v2__summary {
    max-width: 860px;
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: clamp(1rem, 2vw, 1.18rem);
}
.project-detail-hero-v2__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: var(--space-4);
}
.project-detail-hero-v2__meta span {
    padding: .45rem .7rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: rgba(255,255,255,.9);
    font-weight: 600;
    font-size: .9rem;
}
.project-goal-clicks {
    gap: .65rem;
}
.project-goal-button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    min-height: 58px;
    padding: .45rem .8rem .45rem .45rem;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    color: var(--goal-color, var(--rru-primary));
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    box-shadow: 0 12px 30px rgba(0,0,0,.16);
    transition: transform .16s ease, box-shadow .16s ease;
}
.project-goal-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(0,0,0,.2);
}
.project-goal-button img {
    width: 46px;
    height: 46px;
    border-radius: 10px;
    object-fit: cover;
}
.project-detail-v2-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
    gap: var(--space-6);
    align-items: start;
}
.project-detail-v2-main,
.project-detail-v2-side {
    display: grid;
    gap: var(--space-5);
    min-width: 0;
}
.project-detail-v2-side {
    position: sticky;
    top: calc(var(--header-height, 80px) + 1rem);
}
.project-detail-v2-card,
.project-reference-v2,
.project-evidence-v2 {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(15,23,42,.06);
}
.project-detail-v2-card {
    padding: clamp(1.25rem, 3vw, 2rem);
}
.project-detail-v2-card--highlight {
    border-left: 6px solid var(--rru-gold);
    background: linear-gradient(180deg, #fffdf3, #fff);
}
.project-detail-v2-card h2 {
    color: var(--rru-primary);
    margin-top: 0;
}
.project-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-4);
}
.project-result-grid article {
    padding: var(--space-4);
    border: 1px solid rgba(11,93,59,.1);
    border-radius: 18px;
    background: #f8fcf8;
}
.project-result-grid h3 {
    margin: 0 0 .55rem;
    color: var(--rru-primary);
}
.project-reference-v2 dl {
    display: grid;
    gap: .75rem;
    margin: 0;
}
.project-reference-v2 dl > div {
    padding: .8rem;
    border-radius: 14px;
    background: #f8fcf8;
}
.project-reference-v2 dt {
    color: var(--rru-primary);
    font-weight: 600;
}
.project-reference-v2 dd {
    margin: .2rem 0 0;
    overflow-wrap: anywhere;
}
.sdg-public-modal[hidden] { display: none !important; }
.sdg-public-modal {
    position: fixed;
    inset: 0;
    z-index: 1400;
    display: grid;
    place-items: center;
    padding: 1rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease;
}
.sdg-public-modal.is-open {
    opacity: 1;
    pointer-events: auto;
}
.sdg-public-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 15, 11, .7);
    backdrop-filter: blur(5px);
}
.sdg-public-modal__dialog {
    position: relative;
    width: min(720px, 100%);
    max-height: min(82vh, 760px);
    overflow: auto;
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 28px 72px rgba(0,0,0,.35);
    transform: translateY(14px) scale(.98);
    transition: transform .16s ease;
}
.sdg-public-modal.is-open .sdg-public-modal__dialog {
    transform: translateY(0) scale(1);
}
.sdg-public-modal__close {
    position: absolute;
    top: .8rem;
    right: .8rem;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: var(--rru-primary);
    font-size: 1.6rem;
    cursor: pointer;
}
.sdg-public-modal__head {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: var(--space-4);
    align-items: center;
    padding: clamp(1.4rem, 4vw, 2rem);
    background: linear-gradient(135deg, var(--goal-color, var(--rru-primary)), color-mix(in srgb, var(--goal-color, var(--rru-primary)) 62%, #063a28));
    color: #fff;
}
.sdg-public-modal__head img {
    width: 96px;
    height: 96px;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(0,0,0,.25);
}
.sdg-public-modal__head p,
.sdg-public-modal__head h2 {
    margin: 0;
    color: #fff;
}
.sdg-public-modal__head p {
    font-weight: 700;
    opacity: .85;
}
.sdg-public-modal__body {
    display: grid;
    gap: 1rem;
    padding: clamp(1.2rem, 4vw, 2rem);
    color: var(--text);
}
.sdg-public-modal__desc{margin:0;line-height:1.55;color:#334155}
.sdg-public-modal__empty{margin:0;color:#64748b;line-height:1.5}
.sdg-public-modal__targets h3{margin:0 0 .55rem;font-size:.95rem;color:#0f172a}
.sdg-public-modal__targets ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.sdg-public-modal__targets li{display:grid;grid-template-columns:auto 1fr;gap:.55rem;align-items:start;padding:.55rem .65rem;border-radius:12px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);line-height:1.4}
.sdg-public-modal__targets code{font-weight:700;color:var(--goal-color, #0f766e);background:transparent}
.sdg-public-modal__targets span{color:#334155}
.sdg-public-modal__actions{display:flex;flex-wrap:wrap;gap:.5rem;padding-top:.15rem}
.sdg-public-modal-open { overflow: hidden; }
@media (max-width: 980px) {
    .project-detail-v2-layout,
    .project-result-grid {
        grid-template-columns: 1fr;
    }
    .project-detail-v2-side {
        position: static;
    }
}
@media (max-width: 640px) {
    .project-detail-hero-v2 {
        min-height: 520px;
    }
    .project-detail-hero-v2__content {
        padding: var(--space-4);
        border-radius: 22px;
    }
    .project-goal-button {
        min-height: 52px;
    }
    .project-goal-button img {
        width: 40px;
        height: 40px;
    }
    .sdg-public-modal__head {
        grid-template-columns: 64px minmax(0, 1fr);
    }
    .sdg-public-modal__head img {
        width: 64px;
        height: 64px;
    }
}


/* =========================================================
   RS18: Footer responsive polish + SDG public detail pages
   ========================================================= */
.footer {
    background: linear-gradient(135deg, #062b1d, #0b3d2b 56%, #123f24);
    color: rgba(255,255,255,.86);
}
.footer__grid {
    align-items: start;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
}
.footer a {
    color: rgba(255,255,255,.88);
    overflow-wrap: anywhere;
}
.footer a:hover { color: #fff; }
.footer-brand {
    min-width: 0;
    align-items: flex-start;
}
.footer-brand p {
    max-width: 780px;
    overflow-wrap: anywhere;
}
@media (max-width: 900px) {
    .footer { padding: 2.1rem 0; }
    .footer__grid { grid-template-columns: 1fr; gap: 1.35rem; }
    .footer__grid > div:last-child {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem .9rem;
        width: 100%;
    }
    .footer__grid > div:last-child strong { grid-column: 1 / -1; }
    .footer a { margin-top: 0; padding: .35rem 0; }
}
@media (max-width: 560px) {
    .footer { padding: 1.65rem 0 calc(1.65rem + env(safe-area-inset-bottom)); }
    .footer-brand { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: .85rem; }
    .footer-brand__icon { width: 52px; height: 52px; }
    .footer-brand p { font-size: .92rem; line-height: 1.55; }
    .footer__grid > div:last-child { grid-template-columns: 1fr; }
}
.sdg-logo-tile--portal {
    color: #ffffff;
    text-shadow: 0 2px 8px rgba(0,0,0,.24);
    border-color: rgba(255,255,255,.72);
    box-shadow: 0 18px 38px rgba(5,43,29,.28), inset 0 0 0 1px rgba(255,255,255,.22);
}
.sdg-logo-tile--portal strong { color: #fff; }
.sdg-logo-tile--portal small { color: rgba(255,255,255,.92); }
.brand--admin { color: #fff; }
.brand--admin > span:last-child strong {
    color: #ffffff;
    text-shadow: 0 1px 2px rgba(0,0,0,.28);
}
.brand--admin > span:last-child small {
    color: rgba(255,255,255,.86);
}
.brand--admin .brand__mark--image {
    background: #fff7d7;
    border: 1px solid rgba(255,255,255,.58);
    box-shadow: 0 12px 26px rgba(0,0,0,.24);
}
.sdg-detail-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(3rem, 7vw, 5.5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 86% 20%, color-mix(in srgb, var(--goal-color) 42%, transparent), transparent 24rem),
        linear-gradient(135deg, #06331f, #0b5d3b 54%, color-mix(in srgb, var(--goal-color) 54%, #0b5d3b));
}
.sdg-detail-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 12% 92%, rgba(255,255,255,.18), transparent 24rem);
    pointer-events: none;
}
.sdg-detail-hero__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: center;
}
.sdg-detail-hero .eyebrow { color: rgba(255,255,255,.82); }
.sdg-detail-hero h1 {
    margin: .1rem 0;
    font-size: clamp(2.6rem, 8vw, 5.4rem);
    line-height: .9;
    color: #fff;
}
.sdg-detail-hero h2 {
    margin: .3rem 0 1rem;
    max-width: 860px;
    color: #fff;
    font-size: clamp(1.45rem, 3vw, 2.4rem);
}
.sdg-detail-hero .lead {
    max-width: 820px;
    color: rgba(255,255,255,.88);
}
.sdg-detail-hero__actions,
.sdg-detail-hero__stats {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: 1.2rem;
}
.sdg-detail-hero__visual {
    display: grid;
    gap: 1rem;
    justify-items: center;
}
.sdg-detail-hero__visual > img {
    width: min(100%, 320px);
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 32px;
    box-shadow: 0 30px 70px rgba(0,0,0,.30);
    border: 8px solid rgba(255,255,255,.86);
}
.sdg-detail-hero__stats { width: 100%; justify-content: center; }
.sdg-detail-hero__stats div {
    min-width: 102px;
    padding: .75rem;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 18px;
    text-align: center;
    background: rgba(255,255,255,.12);
    backdrop-filter: blur(10px);
}
.sdg-detail-hero__stats strong { display: block; font-size: 1.45rem; color: #fff; }
.sdg-detail-hero__stats span { color: rgba(255,255,255,.78); font-size: .86rem; }
.sdg-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: var(--space-5);
    align-items: start;
}
.sdg-detail-main { display: grid; gap: var(--space-5); min-width: 0; }
.sdg-detail-side { position: sticky; top: 94px; display: grid; gap: var(--space-4); min-width: 0; }
.sdg-target-list,
.sdg-indicator-public-list,
.sdg-related-projects { display: grid; gap: .85rem; }
.sdg-target-item,
.sdg-indicator-public-item,
.sdg-related-projects a {
    display: grid;
    gap: .35rem;
    padding: 1rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15,23,42,.045);
    text-decoration: none;
}
.sdg-target-item { grid-template-columns: 78px minmax(0, 1fr); }
.sdg-target-item > span,
.sdg-indicator-public-item > div strong {
    display: inline-grid;
    place-items: center;
    min-height: 34px;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
    font-weight: 700;
}
.sdg-target-item h3,
.sdg-indicator-public-item p { margin: 0; color: var(--text); }
.sdg-indicator-public-item > div { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.sdg-indicator-public-item > div span,
.sdg-indicator-public-item small,
.sdg-related-projects small { color: var(--muted); }
.sdg-related-projects a:hover { border-color: rgba(11,93,59,.28); transform: translateY(-1px); }
.sdg-side-goal-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
.sdg-side-goal-grid a { border-radius: 12px; border: 2px solid transparent; padding: .12rem; background: #fff; }
.sdg-side-goal-grid a.is-active { border-color: var(--goal-color, var(--rru-primary)); box-shadow: 0 0 0 3px rgba(11,93,59,.10); }
.sdg-side-goal-grid img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 9px; }
@media (max-width: 980px) {
    .sdg-detail-hero__grid,
    .sdg-detail-layout { grid-template-columns: 1fr; }
    .sdg-detail-side { position: static; }
    .sdg-detail-hero__visual { order: -1; }
    .sdg-detail-hero__visual > img { width: min(72vw, 260px); border-radius: 26px; }
}
@media (max-width: 560px) {
    .sdg-detail-hero { padding: 2.4rem 0; }
    .sdg-detail-hero__actions .button { width: 100%; }
    .sdg-detail-hero__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .sdg-detail-hero__stats div { min-width: 0; padding: .65rem .4rem; }
    .sdg-target-item { grid-template-columns: 1fr; }
    .sdg-side-goal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* =========================================================
   RS19: Mobile footer and admin header layout polish
   ========================================================= */
.footer {
    overflow: hidden;
}
.footer .container {
    min-width: 0;
}
.footer__grid > div,
.footer-brand,
.footer-brand > div {
    min-width: 0;
}
.footer__grid > div:last-child {
    min-width: 0;
}
.footer__grid > div:last-child strong {
    display: block;
    margin-bottom: .65rem;
    letter-spacing: .01em;
}
.footer__grid > div:last-child a {
    border-radius: 12px;
    transition: background .16s ease, color .16s ease, transform .16s ease;
}
.footer__grid > div:last-child a:hover {
    background: rgba(255,255,255,.08);
    transform: translateX(2px);
    text-decoration: none;
}
@media (max-width: 900px) {
    .footer {
        padding: 2rem 0 calc(2rem + env(safe-area-inset-bottom));
    }
    .footer__grid {
        display: grid;
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    .footer-brand {
        padding: 1rem;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 20px;
        background: rgba(255,255,255,.055);
        backdrop-filter: blur(8px);
    }
    .footer__grid > div:last-child {
        padding: 1rem;
        border: 1px solid rgba(255,255,255,.12);
        border-radius: 20px;
        background: rgba(255,255,255,.045);
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem;
    }
    .footer__grid > div:last-child strong {
        grid-column: 1 / -1;
        margin-bottom: .15rem;
    }
    .footer__grid > div:last-child a {
        display: flex;
        align-items: center;
        min-height: 42px;
        margin: 0;
        padding: .55rem .65rem;
        color: rgba(255,255,255,.92);
        background: rgba(255,255,255,.045);
        overflow-wrap: anywhere;
        word-break: break-word;
    }
}
@media (max-width: 560px) {
    .footer {
        padding-top: 1.25rem;
        text-align: left;
    }
    .footer__grid {
        gap: .85rem;
    }
    .footer-brand {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: .75rem;
        padding: .9rem;
        border-radius: 18px;
    }
    .footer-brand__icon {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }
    .footer-brand strong {
        font-size: 1rem;
        line-height: 1.3;
    }
    .footer-brand p {
        margin-bottom: .45rem;
        font-size: .88rem;
        line-height: 1.5;
    }
    .footer__grid > div:last-child {
        grid-template-columns: 1fr;
        padding: .85rem;
        border-radius: 18px;
    }
    .footer__grid > div:last-child a {
        min-height: 40px;
        padding: .55rem .7rem;
        font-size: .92rem;
    }
}
@media (max-width: 380px) {
    .footer-brand {
        grid-template-columns: 1fr;
        justify-items: start;
    }
    .footer-brand__icon {
        width: 44px;
        height: 44px;
    }
}

/* Admin header mobile polish */
.admin-header,
.admin-titlebar,
.admin-titlebar > div,
.admin-user {
    min-width: 0;
}
.admin-titlebar {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.admin-user .lang-switch--admin {
    flex: 0 0 auto;
}
@media (max-width: 980px) {
    .admin-header {
        display: grid;
        grid-template-columns: 42px minmax(0, 1fr);
        gap: .65rem .75rem;
        align-items: center;
        padding: .75rem .85rem;
    }
    .admin-header .icon-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        padding: 0;
        border-radius: 14px;
        background: #fff;
        border-color: rgba(11,93,59,.16);
        box-shadow: 0 8px 20px rgba(15,23,42,.055);
    }
    .admin-titlebar {
        grid-column: 2;
        gap: .55rem;
        overflow: hidden;
    }
    .admin-titlebar__icon {
        display: none !important;
    }
    .admin-titlebar h1 {
        max-width: 100%;
        font-size: clamp(1rem, 3.8vw, 1.18rem);
        line-height: 1.25;
    }
    .admin-titlebar p {
        max-width: 100%;
        font-size: .78rem;
        line-height: 1.35;
    }
    .admin-user {
        grid-column: 1 / -1;
        width: 100%;
        margin-left: 0;
        padding: .55rem .6rem;
        border: 1px solid rgba(11,93,59,.10);
        border-radius: 16px;
        background: rgba(248,252,248,.86);
        justify-content: space-between;
        gap: .55rem;
    }
    .admin-user > span {
        display: inline-block;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: var(--text-muted);
        font-size: .86rem;
    }
    .admin-user form {
        margin-left: 0;
        flex: 0 0 auto;
    }
    .admin-user .button {
        min-height: 34px;
        padding: .35rem .65rem;
        border-radius: 999px;
        font-size: .86rem;
    }
    .lang-switch--admin {
        display: inline-flex;
        flex-wrap: nowrap;
        gap: .25rem;
        padding: .18rem;
        border-radius: 999px;
        background: #fff;
        border: 1px solid rgba(11,93,59,.10);
    }
    .lang-switch--admin a {
        min-width: 36px;
        min-height: 30px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: .25rem .45rem;
        border-radius: 999px;
        font-size: .78rem;
        font-weight: 700;
    }
}
@media (max-width: 560px) {
    .admin-header {
        grid-template-columns: 38px minmax(0, 1fr);
        padding: .65rem .7rem;
        gap: .55rem .65rem;
    }
    .admin-header .icon-button {
        width: 38px;
        height: 38px;
        border-radius: 12px;
    }
    .admin-titlebar h1 {
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .admin-titlebar p {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .admin-user {
        padding: .48rem;
        border-radius: 14px;
    }
    .admin-user > span {
        display: none;
    }
    .admin-user .button {
        min-height: 32px;
        padding: .32rem .6rem;
        font-size: .82rem;
    }
    .lang-switch--admin a {
        min-width: 32px;
        min-height: 28px;
        font-size: .76rem;
    }
}


/* =========================================================
   SDG detail hero background alignment with homepage hero
   ========================================================= */
.sdg-detail-hero {
    isolation: isolate;
    background: #052b1d;
}
.sdg-detail-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(3,26,17,.88) 0%, rgba(5,43,29,.74) 42%, rgba(5,43,29,.46) 100%),
        linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.32)),
        image-set(url("../img/theme/rru-hero-background.webp") type("image/webp"), url("../img/theme/rru-hero-background.png") type("image/png")) center center / cover no-repeat;
    filter: saturate(1.05) contrast(1.02);
    pointer-events: none;
}
.sdg-detail-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--goal-color) 34%, transparent), transparent 24rem),
        radial-gradient(circle at 12% 92%, rgba(255,255,255,.13), transparent 23rem);
    pointer-events: none;
}
.sdg-detail-hero__grid {
    z-index: 1;
}
.sdg-detail-hero__content {
    padding: clamp(1rem, 2vw, 1.4rem);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(5,43,29,.72), rgba(5,43,29,.42));
    box-shadow: 0 22px 60px rgba(0,0,0,.24);
    backdrop-filter: blur(7px);
}
.sdg-detail-hero h1,
.sdg-detail-hero h2,
.sdg-detail-hero .lead,
.sdg-detail-hero .eyebrow {
    text-shadow: 0 2px 12px rgba(0,0,0,.36);
}
@media (max-width: 900px) {
    .sdg-detail-hero::before {
        background:
            linear-gradient(180deg, rgba(3,26,17,.84), rgba(5,43,29,.62)),
            url("../img/theme/rru-hero-background.png") 62% center / cover no-repeat;
    }
    .sdg-detail-hero__content {
        padding: 1rem;
    }
}
@media (max-width: 560px) {
    .sdg-detail-hero::before {
        background:
            linear-gradient(180deg, rgba(3,26,17,.88), rgba(5,43,29,.68)),
            url("../img/theme/rru-hero-background.png") 64% center / cover no-repeat;
    }
    .sdg-detail-hero__content {
        border-radius: 20px;
    }
}

/* =========================================================
   RS21 SDG Master Targets / Indicators CRUD
   ========================================================= */
.sdg-admin-page--crud {
    display: grid;
    gap: var(--space-5);
}
.sdg-admin-tabs {
    position: sticky;
    top: calc(var(--admin-header-height, 76px) + .5rem);
    z-index: 11;
    display: flex;
    gap: .6rem;
    overflow-x: auto;
    padding: .65rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
    box-shadow: 0 12px 28px rgba(15,23,42,.07);
}
.sdg-admin-tabs a {
    flex: 0 0 auto;
    padding: .7rem 1rem;
    border-radius: 999px;
    background: #f7fbf6;
    color: var(--rru-primary);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}
.sdg-admin-tabs a:hover {
    background: var(--rru-primary);
    color: #fff;
}
.sdg-crud-panel {
    scroll-margin-top: 132px;
}
.sdg-crud-form {
    margin: var(--space-5);
    padding: var(--space-5);
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 22px;
    background: linear-gradient(180deg, #fbfff8, #fff);
    box-shadow: 0 12px 28px rgba(15,23,42,.055);
}
.sdg-crud-form h3 {
    margin: 0 0 var(--space-4);
    color: var(--rru-primary);
}
.sdg-master-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-4);
}
.sdg-master-form-grid .span-2 {
    grid-column: 1 / -1;
}
.sdg-master-form-grid label {
    min-width: 0;
}
.sdg-master-form-grid textarea {
    min-height: 92px;
    resize: vertical;
}
.sdg-target-list-v3 {
    display: grid;
    gap: var(--space-3);
    padding: 0 var(--space-5) var(--space-5);
}
.sdg-master-row-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-4);
    border: 1px solid rgba(15,23,42,.08);
    border-left: 6px solid var(--goal-color, var(--rru-primary));
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.sdg-master-row-card h3 {
    margin: .45rem 0 .35rem;
    color: var(--text);
    font-size: 1.05rem;
}
.sdg-master-row-card p {
    margin: 0;
    color: var(--muted);
    overflow-wrap: anywhere;
}
.sdg-master-row-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    justify-content: flex-end;
    align-items: center;
}
.sdg-master-row-card__actions form,
.table-actions form {
    display: inline-flex;
    margin: 0;
}
.table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
}
.sr-only-row > td {
    height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    line-height: 0 !important;
    background: transparent !important;
}
.sr-only-row .sdg-modal {
    line-height: normal;
}
@media (max-width: 980px) {
    .sdg-admin-tabs {
        top: .5rem;
    }
    .sdg-master-row-card {
        grid-template-columns: 1fr;
    }
    .sdg-master-row-card__actions {
        justify-content: flex-start;
    }
}
@media (max-width: 640px) {
    .sdg-crud-form,
    .sdg-target-list-v3 {
        margin: 0;
        padding: var(--space-4);
    }
    .sdg-master-form-grid {
        grid-template-columns: 1fr;
    }
    .sdg-crud-panel .panel__head {
        gap: var(--space-3);
    }
    .sdg-indicator-filter-v2 {
        grid-template-columns: 1fr;
    }
    .table-actions {
        justify-content: flex-start;
    }
}


/* =========================================================
   SDG Master grouped workspace by Goal (RS23)
   ========================================================= */
.sdg-workspace .panel__head {
    align-items: center;
}
.sdg-workspace-goals {
    display: grid;
    gap: 1rem;
}
.sdg-workspace-card {
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(15,23,42,.055);
    overflow: hidden;
}
.sdg-workspace-card[open] {
    border-color: color-mix(in srgb, var(--goal-color, #006B3F) 30%, #ffffff);
}
.sdg-workspace-card__summary {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem 1.1rem;
    cursor: pointer;
    list-style: none;
    background: linear-gradient(135deg, rgba(255,255,255,.98), color-mix(in srgb, var(--goal-color, #006B3F) 8%, #ffffff));
}
.sdg-workspace-card__summary::-webkit-details-marker {
    display: none;
}
.sdg-workspace-card__summary::after {
    content: "⌄";
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.86);
    color: var(--goal-color, #006B3F);
    font-weight: 700;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.10);
}
.sdg-workspace-card[open] > .sdg-workspace-card__summary::after {
    content: "⌃";
}
.sdg-workspace-card__logo {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15,23,42,.10);
}
.sdg-workspace-card__logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.sdg-workspace-card__title {
    min-width: 0;
    display: grid;
    gap: .15rem;
}
.sdg-workspace-card__title strong {
    color: var(--goal-color, #006B3F);
    font-size: 1.05rem;
    font-weight: 700;
}
.sdg-workspace-card__title em {
    color: #102018;
    font-style: normal;
    font-weight: 600;
    line-height: 1.28;
    overflow-wrap: anywhere;
}
.sdg-workspace-card__counts {
    white-space: nowrap;
    color: #35443d;
    font-weight: 600;
}
.sdg-workspace-card__counts b {
    color: var(--goal-color, #006B3F);
}
.sdg-workspace-card__body {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    background: #f8fbf7;
}
.sdg-inline-create {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border: 1px dashed color-mix(in srgb, var(--goal-color, #006B3F) 28%, #ffffff);
    border-radius: 18px;
    background: rgba(255,255,255,.92);
}
.sdg-inline-create__head h3,
.sdg-inline-create__head h4 {
    margin: 0;
    color: var(--goal-color, #006B3F);
}
.sdg-inline-create__head small {
    display: block;
    margin-top: .25rem;
    color: var(--muted);
}
.sdg-master-form-grid--compact {
    gap: .75rem;
}
.sdg-master-form-grid--compact textarea {
    min-height: 78px;
}
.sdg-target-group-list,
.sdg-indicator-chip-list {
    display: grid;
    gap: .75rem;
}
.sdg-target-group-card,
.sdg-indicator-target-card {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15,23,42,.045);
}
.sdg-target-group-card {
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
}
.sdg-target-group-card__main {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
    min-width: 0;
}
.sdg-target-group-card__main h3,
.sdg-indicator-target-card__head h3 {
    margin: 0;
    color: #102018;
    overflow-wrap: anywhere;
}
.sdg-target-group-card__main p {
    margin: .25rem 0 0;
    color: var(--muted);
    overflow-wrap: anywhere;
}
.sdg-target-group-card__meta {
    display: grid;
    gap: .35rem;
    justify-items: end;
    color: var(--muted);
    white-space: nowrap;
}
.sdg-target-group-card__actions,
.sdg-indicator-chip-card__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .45rem;
}
.sdg-indicator-target-card__head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding-bottom: .75rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
}
.sdg-indicator-target-card__head > div {
    min-width: 0;
    display: grid;
    gap: .5rem;
}
.sdg-indicator-target-card__head > strong {
    color: var(--goal-color, #006B3F);
    white-space: nowrap;
}
.sdg-inline-create--indicator {
    border-style: solid;
    background: #fbfef9;
}
.sdg-indicator-chip-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: center;
    padding: .85rem;
    border: 1px solid rgba(15,23,42,.075);
    border-radius: 14px;
    background: #fff;
}
.sdg-indicator-chip-card strong,
.sdg-indicator-chip-card span,
.sdg-indicator-chip-card small {
    display: block;
}
.sdg-indicator-chip-card strong {
    color: var(--goal-color, #006B3F);
    font-weight: 700;
}
.sdg-indicator-chip-card span {
    color: #102018;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.sdg-indicator-chip-card small {
    margin-top: .2rem;
    color: var(--muted);
}
@media (max-width: 980px) {
    .sdg-workspace-card__summary {
        grid-template-columns: 52px minmax(0, 1fr) auto;
    }
    .sdg-workspace-card__summary > .status {
        grid-column: 2 / -1;
        justify-self: start;
    }
    .sdg-workspace-card__counts {
        white-space: normal;
        text-align: right;
    }
    .sdg-target-group-card,
    .sdg-indicator-chip-card {
        grid-template-columns: 1fr;
    }
    .sdg-target-group-card__meta,
    .sdg-target-group-card__actions,
    .sdg-indicator-chip-card__actions {
        justify-items: start;
        justify-content: flex-start;
    }
}
@media (max-width: 560px) {
    .sdg-workspace-card__summary {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: .75rem;
        padding: .85rem;
    }
    .sdg-workspace-card__summary::after {
        grid-column: 1 / -1;
        justify-self: start;
    }
    .sdg-workspace-card__logo {
        width: 46px;
        height: 46px;
        border-radius: 14px;
    }
    .sdg-workspace-card__counts,
    .sdg-workspace-card__summary > .status {
        grid-column: 1 / -1;
        justify-self: start;
        text-align: left;
    }
    .sdg-workspace-card__body,
    .sdg-inline-create,
    .sdg-target-group-card,
    .sdg-indicator-target-card {
        padding: .85rem;
    }
    .sdg-target-group-card__main {
        grid-template-columns: 1fr;
    }
    .sdg-indicator-target-card__head {
        flex-direction: column;
    }
}

/* =========================================================
   RS29 SDG Master target/indicator readability polish
   ========================================================= */
.sdg-workspace {
    --sdg-panel-bg: #f6faf6;
}
.sdg-workspace .panel__head {
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    padding-bottom: 1rem;
}
.sdg-workspace .panel__head h2 {
    color: var(--rru-primary);
    letter-spacing: -.01em;
}
.sdg-workspace .panel__head p {
    max-width: 880px;
}
.sdg-workspace-goals {
    gap: 1.1rem;
}
.sdg-workspace-card {
    border: 1px solid rgba(15, 23, 42, .085);
    border-radius: 26px;
    background: #fff;
    box-shadow: 0 16px 42px rgba(15,23,42,.065);
}
.sdg-workspace-card[open] {
    border-color: color-mix(in srgb, var(--goal-color, #006B3F) 42%, #fff);
    box-shadow: 0 18px 48px rgba(15,23,42,.09);
}
.sdg-workspace-card__summary {
    grid-template-columns: 64px minmax(0, 1fr) auto auto;
    padding: 1.1rem 1.25rem;
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--goal-color, #006B3F) 18%, transparent), transparent 18rem),
        linear-gradient(135deg, #fff, color-mix(in srgb, var(--goal-color, #006B3F) 7%, #fff));
}
.sdg-workspace-card__logo {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    box-shadow: 0 10px 26px rgba(15,23,42,.12);
}
.sdg-workspace-card__title strong {
    display: inline-flex;
    width: fit-content;
    padding: .18rem .58rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color, #006B3F) 14%, #fff);
    color: color-mix(in srgb, var(--goal-color, #006B3F) 86%, #111827);
    font-size: .92rem;
}
.sdg-workspace-card__title em {
    margin-top: .18rem;
    color: #0f1f18;
    font-size: 1.03rem;
}
.sdg-workspace-card__counts {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    background: rgba(255,255,255,.78);
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.08);
}
.sdg-workspace-card__body {
    gap: 1.15rem;
    padding: 1.15rem;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--goal-color, #006B3F) 4%, #fff), #f8fbf7 38%, #f7fbf8);
}
.sdg-inline-create {
    border: 1px solid color-mix(in srgb, var(--goal-color, #006B3F) 20%, #dfe7df);
    border-left: 6px solid var(--goal-color, #006B3F);
    border-radius: 22px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 10px 26px rgba(15,23,42,.045);
}
.sdg-inline-create__head h3,
.sdg-inline-create__head h4 {
    font-size: 1.02rem;
}
.sdg-target-group-list,
.sdg-indicator-chip-list {
    gap: .95rem;
}
.sdg-target-group-card {
    grid-template-columns: minmax(0, 1fr) minmax(145px, auto) auto;
    border: 1px solid rgba(15,23,42,.08);
    border-left: 6px solid var(--goal-color, #006B3F);
    border-radius: 22px;
    background:
        linear-gradient(180deg, #fff, color-mix(in srgb, var(--goal-color, #006B3F) 3%, #fff));
    box-shadow: 0 12px 30px rgba(15,23,42,.06);
}
.sdg-target-group-card__main {
    gap: 1rem;
}
.sdg-target-group-card__main .goal-dot,
.sdg-indicator-target-card__head .goal-dot {
    min-width: 64px;
    text-align: center;
    border-radius: 999px;
    background: var(--goal-color, #006B3F);
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--goal-color, #006B3F) 30%, transparent);
}
.sdg-target-group-card__main h3,
.sdg-indicator-target-card__head h3 {
    color: #0d2017;
    font-size: 1.02rem;
    line-height: 1.35;
}
.sdg-target-group-card__main p {
    max-width: 980px;
    line-height: 1.55;
}
.sdg-target-group-card__meta {
    align-self: stretch;
    justify-content: center;
    padding: .65rem .8rem;
    border-radius: 16px;
    background: #f7fbf8;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
    color: #33443d;
    font-weight: 600;
}
.sdg-target-group-card__actions,
.sdg-indicator-chip-card__actions {
    align-items: center;
}
.sdg-indicator-target-card {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,.06);
    overflow: hidden;
}
.sdg-indicator-target-card__head {
    margin: -1rem -1rem 0;
    padding: 1rem;
    background: linear-gradient(135deg, color-mix(in srgb, var(--goal-color, #006B3F) 10%, #fff), #fff);
    border-bottom: 1px solid color-mix(in srgb, var(--goal-color, #006B3F) 18%, #e5e7eb);
}
.sdg-indicator-target-card__head > div {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
}
.sdg-indicator-target-card__head > strong {
    padding: .45rem .7rem;
    border-radius: 999px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.08);
}
.sdg-indicator-chip-list {
    padding-top: .1rem;
}
.sdg-indicator-chip-card {
    grid-template-columns: minmax(0, 1fr) auto;
    border: 1px solid rgba(15,23,42,.075);
    border-radius: 18px;
    background: #fcfffc;
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
}
.sdg-indicator-chip-card:hover {
    border-color: color-mix(in srgb, var(--goal-color, #006B3F) 24%, #fff);
    box-shadow: 0 12px 26px rgba(15,23,42,.07);
}
.sdg-indicator-chip-card > div:first-child {
    display: grid;
    gap: .18rem;
}
.sdg-indicator-chip-card strong {
    width: fit-content;
    padding: .16rem .52rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color, #006B3F) 12%, #fff);
    color: var(--goal-color, #006B3F);
    line-height: 1.3;
}
.sdg-indicator-chip-card span {
    font-size: .98rem;
    line-height: 1.45;
}
.sdg-indicator-chip-card small {
    width: fit-content;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: #f1f5f2;
    color: #4b5e54;
}
.sdg-indicator-chip-card__actions .status {
    min-width: 66px;
    justify-content: center;
}
@media (max-width: 1180px) {
    .sdg-workspace-card__summary {
        grid-template-columns: 58px minmax(0, 1fr) auto;
    }
    .sdg-target-group-card {
        grid-template-columns: 1fr;
    }
    .sdg-target-group-card__meta,
    .sdg-target-group-card__actions {
        justify-self: start;
    }
}
@media (max-width: 640px) {
    .sdg-workspace-goals {
        gap: .85rem;
    }
    .sdg-workspace-card {
        border-radius: 20px;
    }
    .sdg-workspace-card__summary {
        grid-template-columns: 50px minmax(0, 1fr);
        padding: .85rem;
    }
    .sdg-workspace-card__logo {
        width: 50px;
        height: 50px;
        border-radius: 15px;
    }
    .sdg-workspace-card__title em {
        font-size: .95rem;
    }
    .sdg-workspace-card__counts {
        grid-column: 1 / -1;
        width: 100%;
        justify-content: center;
        white-space: normal;
    }
    .sdg-workspace-card__summary::after {
        width: 100%;
        height: 34px;
    }
    .sdg-target-group-card__main .goal-dot,
    .sdg-indicator-target-card__head .goal-dot {
        min-width: 0;
        width: fit-content;
    }
    .sdg-indicator-target-card__head > div {
        grid-template-columns: 1fr;
    }
    .sdg-indicator-chip-card,
    .sdg-indicator-chip-card__actions {
        grid-template-columns: 1fr;
        justify-content: stretch;
    }
    .sdg-indicator-chip-card__actions .button,
    .sdg-target-group-card__actions .button,
    .sdg-target-group-card__actions form,
    .sdg-indicator-chip-card__actions form {
        width: 100%;
    }
}

/* =========================================================
   RS30: SDG workspace summary chevron polish
   ========================================================= */
.sdg-workspace-card__summary {
    position: relative;
    padding-right: 4.75rem;
}
.sdg-workspace-card__summary::after {
    content: "›";
    position: absolute;
    right: 1.1rem;
    top: 50%;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: rgba(255,255,255,.92);
    color: color-mix(in srgb, var(--goal-color, #006B3F) 88%, #102018);
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    transform: translateY(-50%) rotate(90deg);
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.10), 0 8px 18px rgba(15,23,42,.08);
    transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.sdg-workspace-card[open] > .sdg-workspace-card__summary::after {
    content: "›";
    transform: translateY(-50%) rotate(-90deg);
    background: color-mix(in srgb, var(--goal-color, #006B3F) 12%, #fff);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--goal-color, #006B3F) 22%, #fff), 0 10px 22px rgba(15,23,42,.10);
}
.sdg-workspace-card__summary:hover::after {
    background: #fff;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--goal-color, #006B3F) 24%, #fff), 0 10px 24px rgba(15,23,42,.11);
}
@media (max-width: 640px) {
    .sdg-workspace-card__summary {
        padding-right: 3.85rem;
    }
    .sdg-workspace-card__summary::after {
        grid-column: auto;
        justify-self: auto;
        right: .85rem;
        top: .92rem;
        width: 34px;
        height: 34px;
        font-size: 1.35rem;
        transform: rotate(90deg);
    }
    .sdg-workspace-card[open] > .sdg-workspace-card__summary::after {
        transform: rotate(-90deg);
    }
    .sdg-workspace-card__counts {
        padding-right: 0;
    }
}

/* =========================================================
   RS31.4 Admin mobile audit pass
   - all admin modules: dashboard, projects, review, SDG master,
     organizations, users, roles, languages, homepage, navigation,
     CMS, notifications, department activity
   ========================================================= */
html {
    max-width: 100%;
}
body.site-admin {
    min-width: 0;
    overflow-x: hidden;
    --admin-safe-gap: clamp(.75rem, 2vw, 1.25rem);
}
body.site-admin.admin-sidebar-open {
    overflow: hidden;
}
body.site-admin.admin-sidebar-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 70;
    background: rgba(8, 34, 56, .48);
    backdrop-filter: blur(2px);
}
.admin-shell,
.admin-main,
.admin-content,
.panel,
.admin-workbench,
.content-editor-layout,
.project-editor-v2,
.project-editor-v2__layout,
.cms-editor,
.cms-editor__layout,
.review-page-v2,
.review-grid-v2,
.sdg-admin-page,
.sdg-workspace,
.translation-admin,
.notifications-panel {
    min-width: 0;
}
.admin-content > * {
    max-width: 100%;
}
.admin-header {
    min-height: var(--admin-header-height, 76px);
}
.icon-button[data-sidebar-toggle] {
    flex: 0 0 auto;
}
.sidebar {
    z-index: 90;
}
.sidebar__nav,
.admin-menu,
.admin-menu__items {
    min-width: 0;
}
.admin-menu__link,
.admin-menu__link-main {
    min-width: 0;
}
.admin-menu__link-main span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.admin-user {
    min-width: 0;
}
.admin-user .lang-switch--admin,
.lang-switch--admin {
    flex: 0 0 auto;
    flex-shrink: 0;
    flex-wrap: nowrap;
    min-width: max-content;
    overflow: visible;
}
.admin-hero,
.admin-hero--compact,
.panel__head,
.cms-page-hero,
.cms-editor__hero,
.project-editor-v2__hero,
.review-hero-v2,
.notifications-head,
.sdg-master-hero-v2,
.da-hero {
    min-width: 0;
}
.admin-hero > div,
.panel__head > div,
.cms-page-hero > div,
.cms-editor__title,
.project-editor-v2__title,
.review-hero-v2__main,
.notifications-head > div,
.sdg-master-hero-v2 > div,
.da-hero > div {
    min-width: 0;
}
.admin-hero h2,
.panel__head h2,
.cms-page-hero h2,
.cms-editor__hero h2,
.project-editor-v2__hero h2,
.review-hero-v2 h2,
.sdg-master-hero-v2 h2,
.da-hero h2 {
    overflow-wrap: anywhere;
    text-wrap: balance;
}
.admin-hero p,
.panel__head p,
.cms-page-hero p,
.cms-editor__hero p,
.project-editor-v2__hero p,
.review-hero-v2 p,
.sdg-master-hero-v2 p,
.da-hero p {
    overflow-wrap: anywhere;
}
.admin-hero__actions,
.cms-page-hero__actions,
.cms-editor__actions,
.project-editor-v2__status,
.review-hero-v2__actions,
.notifications-head__actions,
.da-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    min-width: 0;
}
.admin-filter,
.admin-filter--wide,
.cms-page-toolbar,
.translation-filter-grid,
.inline-filter {
    max-width: 100%;
    min-width: 0;
}
.admin-filter__actions,
.filter-actions,
.translation-filter-grid__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    align-items: center;
    min-width: 0;
}
.admin-filter label,
.cms-page-toolbar label,
.translation-filter-grid label,
.inline-filter label,
.form-grid label:not(.check-line):not(.check-inline),
.editor-grid label:not(.check-line):not(.check-inline),
.popup-editor-grid label,
.sdg-master-form-grid label {
    min-width: 0;
}
input,
select,
textarea,
.select2-container {
    max-width: 100%;
}
.editor-grid,
.editor-grid--lean,
.popup-editor-grid,
.sdg-master-form-grid,
.form-grid,
.form-grid--inner,
.form-grid--wide {
    min-width: 0;
}
.editor-side,
.project-editor-v2__side,
.cms-editor__side,
.review-side-v2 {
    min-width: 0;
}
.sticky-savebar,
.project-editor-v2__savebar,
.cms-editor__savebar {
    min-width: 0;
    gap: .75rem;
}
.sticky-savebar > div,
.project-editor-v2__savebar > strong,
.cms-editor__savebar > div {
    min-width: 0;
}
.wrap-anywhere,
.data-table td,
.status,
.notice-item,
.audit-diff-card,
.comment-item,
.timeline__item,
.review-timeline-item-v2__body,
.editor-side-card,
.cms-side-meta dd,
.evidence-link-card {
    overflow-wrap: anywhere;
}
.table-wrap,
.dataTables_wrapper,
.core-datatable,
.dataTables_scroll,
.dataTables_scrollBody {
    max-width: 100%;
}
.table-wrap--scroll,
.table-wrap:not(:has(.data-table--responsive)) {
    -webkit-overflow-scrolling: touch;
}
body.site-admin.lang-en .table-wrap::after {
    content: "Swipe horizontally to view all columns";
}
.actions-inline {
    vertical-align: middle;
}
.actions-inline > form,
.actions-inline > a,
.actions-inline > button {
    max-width: 100%;
}
.status,
.da-score,
.goal-badges span,
.cms-language-pill {
    white-space: normal;
}
.permission-list {
    min-width: 0;
}
.check-card--permission span {
    word-break: break-word;
}
.sdg-modal__dialog {
    max-width: min(960px, calc(100vw - 1.5rem));
    max-height: calc(100dvh - 1.5rem);
}
.sdg-modal__body {
    min-width: 0;
    overflow-x: hidden;
}

@media (max-width: 1180px) {
    .content-editor-layout,
    .project-editor-v2__layout,
    .cms-editor__layout,
    .review-grid-v2 {
        grid-template-columns: 1fr !important;
    }
    .editor-side,
    .project-editor-v2__side,
    .cms-editor__side,
    .review-side-v2,
    .side-panel {
        position: static !important;
        width: 100%;
    }
    .sdg-master-stats-v2,
    .admin-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .sidebar {
        position: fixed !important;
        inset: 0 auto 0 0;
        height: 100dvh;
        max-height: 100dvh;
        transform: translateX(-108%);
        transition: transform .22s ease, visibility .22s ease;
        visibility: hidden;
    }
    .sidebar.is-open {
        transform: translateX(0);
        visibility: visible;
    }
    [dir="rtl"] .sidebar {
        inset: 0 0 0 auto;
        transform: translateX(108%);
    }
    [dir="rtl"] .sidebar.is-open {
        transform: translateX(0);
    }
    .admin-header {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: .7rem .85rem;
    }
    .admin-titlebar {
        grid-column: 2;
    }
    .admin-user {
        grid-column: 1 / -1;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: .65rem;
        padding-left: 0 !important;
    }
    .admin-user form {
        margin-left: auto;
    }
    .admin-content {
        width: 100%;
        max-width: 100%;
    }
    .cms-page-toolbar,
    .translation-filter-grid {
        grid-template-columns: 1fr 1fr;
    }
    .review-hero-v2,
    .project-editor-v2__hero,
    .cms-editor__hero,
    .cms-page-hero,
    .sdg-master-hero-v2,
    .notifications-head {
        display: grid;
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    body.site-admin {
        background: #f4f8f4;
    }
    .admin-header {
        grid-template-columns: 44px minmax(0, 1fr);
        padding: max(.65rem, env(safe-area-inset-top)) .75rem .7rem;
        min-height: auto;
    }
    .icon-button[data-sidebar-toggle] {
        width: 44px;
        min-width: 44px;
        height: 44px;
    }
    .admin-titlebar h1,
    .admin-titlebar p {
        max-width: 100% !important;
    }
    .admin-user {
        padding-top: .6rem;
        border-top: 1px solid rgba(11, 93, 59, .10);
    }
    .admin-user .lang-switch--admin {
        flex: 1 1 auto;
    }
    .admin-user .button,
    .admin-user form .button {
        width: auto;
        min-height: 38px;
        padding-inline: .75rem;
    }
    .admin-content {
        padding: .75rem;
    }
    .panel,
    .admin-hero,
    .admin-list-panel,
    .editor-section,
    .editor-side-card,
    .review-card-v2,
    .popup-help-card,
    .da-card {
        border-radius: 16px;
    }
    .admin-hero,
    .admin-hero--compact,
    .panel__head,
    .cms-page-hero,
    .cms-editor__hero,
    .project-editor-v2__hero,
    .review-hero-v2,
    .notifications-head,
    .sdg-master-hero-v2,
    .da-hero,
    .da-card-head {
        display: grid !important;
        grid-template-columns: 1fr;
        align-items: start;
    }
    .admin-hero__actions,
    .cms-page-hero__actions,
    .cms-editor__actions,
    .project-editor-v2__status,
    .review-hero-v2__actions,
    .notifications-head__actions,
    .da-actions,
    .admin-filter__actions,
    .filter-actions,
    .translation-filter-grid__actions,
    .form-actions {
        width: 100%;
    }
    .admin-hero__actions .button,
    .cms-page-hero__actions .button,
    .cms-editor__actions .button,
    .project-editor-v2__status .button,
    .review-hero-v2__actions .button,
    .notifications-head__actions .button,
    .da-actions .button,
    .admin-filter__actions .button,
    .filter-actions .button,
    .translation-filter-grid__actions .button,
    .form-actions .button,
    .translation-mini-action .button,
    .cms-editor__savebar .button,
    .project-editor-v2__savebar .button,
    .sticky-savebar .button {
        width: 100%;
    }
    .admin-filter,
    .admin-filter--wide,
    .cms-page-toolbar,
    .translation-filter-grid,
    .inline-filter,
    .editor-grid,
    .editor-grid--lean,
    .popup-editor-grid,
    .sdg-master-form-grid,
    .form-grid,
    .form-grid--inner,
    .form-grid--wide,
    .evidence-row,
    .evidence-row--lean,
    .sdg-goal-edit-v2__grid,
    .sdg-goal-edit-v2__grid--modal {
        grid-template-columns: 1fr !important;
    }
    .span-2,
    .evidence-row__url {
        grid-column: auto !important;
    }
    .sticky-savebar,
    .project-editor-v2__savebar,
    .cms-editor__savebar {
        position: sticky;
        bottom: max(.5rem, env(safe-area-inset-bottom));
        z-index: 18;
        display: grid;
        grid-template-columns: 1fr;
        padding: .85rem;
        border-radius: 16px;
        box-shadow: 0 18px 44px rgba(15, 23, 42, .18);
    }
    .admin-stat-grid,
    .admin-stat-grid--compact,
    .cms-page-stats,
    .sdg-master-stats-v2,
    .stats-grid,
    .da-kpis {
        grid-template-columns: 1fr !important;
    }
    .data-table--responsive,
    .data-table--responsive tbody,
    .data-table--responsive tr,
    .data-table--responsive td {
        width: 100% !important;
    }
    .data-table--responsive tr {
        overflow: hidden;
    }
    .data-table--responsive td {
        min-width: 0;
    }
    .data-table--responsive td > *,
    .data-table--responsive td small,
    .data-table--responsive td code {
        max-width: 100%;
    }
    .data-table--responsive .actions-inline,
    .data-table--responsive td.actions-inline,
    .data-table--responsive td:last-child {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: .45rem;
    }
    .data-table--responsive td.actions-inline::before,
    .data-table--responsive td:last-child::before {
        margin-bottom: .15rem;
    }
    .inline-form,
    .data-table--responsive .inline-form {
        display: grid;
        width: 100%;
    }
    .core-datatable .dataTables_length label,
    .core-datatable .dataTables_filter label,
    .dataTables_wrapper .dataTables_length label,
    .dataTables_wrapper .dataTables_filter label {
        width: 100%;
    }
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        padding-inline: 0;
    }
    .select2-dropdown {
        max-width: calc(100vw - 1rem) !important;
    }
    .permission-list {
        grid-template-columns: 1fr !important;
    }
    .check-card--permission {
        align-items: flex-start;
    }
    .sdg-workspace-goals,
    .sdg-goal-board-v2,
    .sdg-target-group-list,
    .indicator-group-v2__items,
    .readiness-compact-list,
    .review-meta-v2,
    .editor-mini-stats {
        grid-template-columns: 1fr !important;
    }
    .sdg-workspace-card__summary,
    .sdg-target-group-card__main,
    .review-timeline-item-v2__head,
    .notice-item--row {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: .55rem;
    }
    .sdg-goal-card-v2__actions,
    .sdg-goal-card-v2__actions--split,
    .sdg-modal__actions,
    .review-outcome-v2,
    .review-timeline-actions-v2 {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: .55rem;
    }
    .sdg-goal-card-v2__actions .button,
    .sdg-modal__actions .button,
    .review-outcome-v2 .button,
    .review-timeline-actions-v2 .button {
        width: 100%;
    }
    .goal-selector-v2__grid,
    .indicator-picker-v2__list {
        max-height: none;
        overflow: visible;
    }
    .goal-check-v2,
    .indicator-check-v2 {
        min-width: 0;
    }
    .cms-editor-nav {
        display: grid;
        grid-template-columns: 1fr;
    }
    .core-toast-stack {
        inset: auto .75rem max(.75rem, env(safe-area-inset-bottom)) .75rem;
        top: auto;
        right: .75rem;
        width: auto;
    }
}

@media (max-width: 430px) {
    .admin-content {
        padding: .55rem;
    }
    .panel,
    .admin-hero,
    .editor-section,
    .editor-side-card,
    .review-card-v2,
    .da-card {
        padding: .85rem;
    }
    .admin-titlebar h1 {
        font-size: .98rem;
    }
    .admin-titlebar p {
        font-size: .74rem;
    }
    .admin-user {
        gap: .45rem;
    }
    .lang-switch--admin a {
        min-width: 40px;
        text-align: center;
    }
    .button,
    input,
    select,
    textarea,
    .select2-container--default .select2-selection--single {
        border-radius: 12px;
    }
    .data-table--responsive tr {
        padding: .75rem;
    }
}

/* =========================================================
   RS31.5 targeted mobile hotfix
   Scope: /admin/review, /admin/homepage, /admin/navigation
   Keeps desktop behavior intact while preventing mobile overflow, cramped
   headers, multi-column builders, long URL/code bleed, and action stacking bugs.
   ========================================================= */
.review-mobile-queue,
.review-mobile-detail-page,
.homepage-admin-page,
.navigation-admin-page {
    min-width: 0;
    max-width: 100%;
}
.review-mobile-queue *,
.review-mobile-detail-page *,
.homepage-admin-page *,
.navigation-admin-page * {
    min-width: 0;
}
.review-queue-filter {
    width: min(100%, 560px);
    grid-template-columns: minmax(180px, 1fr) auto;
    justify-content: end;
}
.review-queue-filter label,
.navigation-admin-filter label,
.homepage-editor-form label,
.navigation-editor-form label {
    min-width: 0;
}
.review-mobile-queue .goal-badges {
    justify-content: flex-start;
}
.review-mobile-queue .goal-badges span,
.review-mobile-queue .status,
.navigation-admin-page code,
.homepage-admin-page code {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.review-mobile-detail-page {
    overflow-x: clip;
}
.review-mobile-detail-page .review-hero-v2__chips > span,
.review-mobile-detail-page .status,
.review-mobile-detail-page .goal-badges--review-v2 span,
.review-mobile-detail-page .indicator-chip--review-v2,
.review-mobile-detail-page .evidence-link-card,
.review-mobile-detail-page .comment-item,
.review-mobile-detail-page .review-timeline-item-v2__body,
.review-mobile-detail-page .audit-diff-card {
    max-width: 100%;
    overflow-wrap: anywhere;
}
.review-mobile-detail-page .rich-text,
.review-mobile-detail-page .review-content-v2,
.review-mobile-detail-page .review-content-v2 article,
.review-mobile-detail-page .review-outcome-v2,
.review-mobile-detail-page .review-outcome-v2 dd,
.review-mobile-detail-page .review-decision-panel-v2,
.review-mobile-detail-page .review-comment-panel-v2 {
    overflow-wrap: anywhere;
}
.review-mobile-detail-page .evidence-link-card small {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.homepage-section-builder {
    width: 100%;
}
.homepage-builder-item {
    min-width: 0;
    grid-template-columns: 120px minmax(0, 1fr) minmax(0, 1fr);
}
.homepage-builder-item input,
.homepage-builder-item textarea,
.navigation-editor-form input,
.navigation-editor-form textarea,
.navigation-editor-form select,
.homepage-editor-form input,
.homepage-editor-form textarea,
.homepage-editor-form select {
    max-width: 100%;
}
.homepage-table-wrap .data-table td,
.navigation-table-wrap .data-table td {
    overflow-wrap: anywhere;
}
.navigation-admin-index .actions-inline,
.homepage-admin-index .actions-inline {
    gap: .4rem;
}
.navigation-admin-index .inline-form,
.homepage-admin-index .inline-form {
    min-width: fit-content;
}

@media (max-width: 980px) {
    .review-queue-filter {
        width: 100%;
        justify-content: stretch;
    }
    .homepage-builder-item {
        grid-template-columns: 1fr 1fr;
    }
    .homepage-builder-item label:nth-of-type(1),
    .homepage-builder-item label:nth-of-type(6),
    .homepage-builder-item label:nth-of-type(7),
    .homepage-builder-item label:nth-of-type(8),
    .homepage-builder-item .check-line {
        grid-column: 1 / -1;
    }
    .navigation-admin-filter {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto auto !important;
    }
}

@media (max-width: 767px) {
    .review-mobile-queue .panel__head,
    .homepage-admin-page .panel__head,
    .navigation-admin-page .panel__head {
        gap: .85rem;
    }
    .review-mobile-queue .panel__head > *,
    .homepage-admin-page .panel__head > *,
    .navigation-admin-page .panel__head > * {
        width: 100%;
    }
    .review-queue-filter,
    .navigation-admin-filter,
    .homepage-editor-form,
    .navigation-editor-form {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: .75rem !important;
        width: 100%;
    }
    .review-queue-filter label,
    .review-queue-filter select,
    .review-queue-filter .button,
    .navigation-admin-filter label,
    .navigation-admin-filter select,
    .navigation-admin-filter .button,
    .homepage-admin-page .panel__head .button,
    .navigation-admin-page .panel__head .button {
        width: 100%;
    }
    .review-mobile-queue .table-wrap,
    .homepage-table-wrap,
    .navigation-table-wrap {
        overflow-x: hidden;
        border: 0;
        background: transparent;
    }
    .review-mobile-queue .data-table--responsive tr,
    .homepage-table-wrap .data-table--responsive tr,
    .navigation-table-wrap .data-table--responsive tr {
        padding: .85rem;
        border-radius: 18px;
        box-shadow: 0 10px 24px rgba(15, 23, 42, .055);
    }
    .review-mobile-queue .data-table--responsive td,
    .homepage-table-wrap .data-table--responsive td,
    .navigation-table-wrap .data-table--responsive td {
        padding: .5rem .15rem;
    }
    .review-mobile-queue .data-table--responsive td::before,
    .homepage-table-wrap .data-table--responsive td::before,
    .navigation-table-wrap .data-table--responsive td::before {
        margin-bottom: .18rem;
        font-size: .76rem;
        font-weight: 600;
        letter-spacing: .01em;
    }
    .review-mobile-queue .actions-inline,
    .homepage-admin-index .actions-inline,
    .navigation-admin-index .actions-inline,
    .review-mobile-queue .data-table--responsive td:last-child,
    .homepage-table-wrap .data-table--responsive td:last-child,
    .navigation-table-wrap .data-table--responsive td:last-child {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: stretch;
        text-align: left !important;
        gap: .5rem;
        width: 100%;
    }
    .review-mobile-queue .actions-inline .button,
    .homepage-admin-index .actions-inline .button,
    .navigation-admin-index .actions-inline .button,
    .homepage-admin-index .inline-form,
    .navigation-admin-index .inline-form,
    .homepage-admin-index .inline-form .button,
    .navigation-admin-index .inline-form .button {
        width: 100%;
        justify-content: center;
    }
    .review-mobile-detail-page .review-hero-v2 {
        padding: .75rem .85rem;
    }
    .review-mobile-detail-page .review-hero-v2 h2 {
        font-size: clamp(1rem, 4.2vw, 1.18rem);
    }
    .review-mobile-detail-page .review-hero-v2__chips {
        display: grid;
        grid-template-columns: 1fr;
        gap: .45rem;
    }
    .review-mobile-detail-page .review-hero-v2__chips > span,
    .review-mobile-detail-page .review-hero-v2__actions .button {
        width: 100%;
        justify-content: center;
        border-radius: 14px;
    }
    .review-mobile-detail-page .review-card-v2,
    .review-mobile-detail-page .review-decision-panel-v2,
    .review-mobile-detail-page .review-comment-panel-v2,
    .review-mobile-detail-page .review-timeline-panel-v2,
    .review-mobile-detail-page .audit-diff-panel--review-v2 {
        padding: .9rem;
        border-radius: 18px;
    }
    .review-mobile-detail-page .review-card-v2__head {
        grid-template-columns: 32px minmax(0, 1fr);
        gap: .65rem;
    }
    .review-mobile-detail-page .review-card-v2__head > span {
        width: 32px;
        height: 32px;
        border-radius: 12px;
        font-size: .84rem;
    }
    .review-mobile-detail-page .review-meta-v2,
    .review-mobile-detail-page .readiness-compact-list,
    .review-mobile-detail-page .indicator-review-v2,
    .review-mobile-detail-page .review-content-v2,
    .review-mobile-detail-page .review-outcome-v2,
    .review-mobile-detail-page .evidence-link-list--review-v2,
    .review-mobile-detail-page .review-side-v2 {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .review-mobile-detail-page .review-content-v2 article,
    .review-mobile-detail-page .review-outcome-v2 > div,
    .review-mobile-detail-page .review-meta-v2 > div {
        padding: .8rem;
        border-radius: 14px;
    }
    .review-mobile-detail-page .evidence-link-card {
        grid-template-columns: 34px minmax(0, 1fr);
        padding: .8rem;
    }
    .review-mobile-detail-page .review-status-timeline-v2 {
        padding-left: 0;
    }
    .review-mobile-detail-page .review-status-timeline-v2::before {
        display: none;
    }
    .review-mobile-detail-page .review-timeline-item-v2 {
        grid-template-columns: 1fr;
        gap: .45rem;
        padding: 0 0 .75rem;
    }
    .review-mobile-detail-page .review-timeline-item-v2__dot {
        display: none;
    }
    .review-mobile-detail-page .review-timeline-item-v2__body {
        padding: .8rem;
        border-radius: 14px;
    }
    .review-mobile-detail-page .check-list,
    .review-mobile-detail-page .form-stack,
    .review-mobile-detail-page .comment-list {
        width: 100%;
    }
    .review-mobile-detail-page .check-list label {
        display: flex;
        align-items: flex-start;
        gap: .5rem;
        min-width: 0;
    }
    .review-mobile-detail-page .form-stack .button,
    .review-mobile-detail-page select,
    .review-mobile-detail-page textarea {
        width: 100%;
    }
    .homepage-admin-form .form-grid--wide,
    .homepage-editor-form,
    .homepage-builder-item,
    .navigation-editor-form {
        grid-template-columns: 1fr !important;
    }
    .homepage-section-builder,
    .homepage-builder-item {
        width: 100%;
    }
    .homepage-builder-item {
        padding: .85rem;
        border-radius: 16px;
        gap: .75rem;
    }
    .homepage-builder-head h3 {
        font-size: 1.04rem;
    }
    .homepage-builder-item textarea {
        min-height: 86px;
    }
    .homepage-admin-form .form-actions,
    .navigation-admin-form .form-actions {
        display: grid;
        width: 100%;
    }
    .homepage-admin-form .form-actions .button,
    .navigation-admin-form .form-actions .button {
        width: 100%;
    }
    .navigation-admin-index code,
    .homepage-admin-index code {
        white-space: normal;
        display: inline-block;
        max-width: 100%;
    }
    .navigation-admin-index .status,
    .homepage-admin-index .status {
        width: fit-content;
        max-width: 100%;
    }
}

@media (max-width: 430px) {
    .review-mobile-queue,
    .homepage-admin-page,
    .navigation-admin-page {
        border-radius: 14px;
        padding: .8rem;
    }
    .review-mobile-detail-page {
        gap: .75rem;
    }
    .review-mobile-detail-page .review-card-v2,
    .review-mobile-detail-page .review-decision-panel-v2,
    .review-mobile-detail-page .review-comment-panel-v2,
    .review-mobile-detail-page .review-timeline-panel-v2,
    .review-mobile-detail-page .audit-diff-panel--review-v2 {
        padding: .78rem;
    }
    .review-mobile-detail-page .review-card-v2__head h3,
    .review-mobile-detail-page .panel__head h2,
    .homepage-admin-page .panel__head h2,
    .navigation-admin-page .panel__head h2 {
        font-size: 1.02rem;
        line-height: 1.35;
    }
    .review-mobile-detail-page .review-card-v2__head p,
    .homepage-admin-page .panel__head p,
    .navigation-admin-page .panel__head p {
        font-size: .84rem;
    }
    .review-mobile-detail-page .review-meta-v2 small,
    .review-mobile-detail-page .readiness-compact-item strong,
    .homepage-builder-item label,
    .navigation-editor-form label,
    .homepage-editor-form label {
        font-size: .86rem;
    }
    .review-mobile-detail-page .evidence-link-card {
        grid-template-columns: 1fr;
    }
    .review-mobile-detail-page .evidence-link-card > span {
        width: 32px;
        height: 32px;
    }
}

/* =========================================================
   RS31.6 real mobile hotfix from device screenshots
   Scope: /admin/review, /admin/homepage, /admin/navigation
   Fixes the real issues seen on mobile: review filter button overlapping,
   homepage/navigation cards becoming too tall, and action buttons expanding
   into oversized blocks.
   ========================================================= */
.review-mobile-queue .panel__head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
    align-items: end;
    gap: 1rem;
}
.review-status-filter {
    display: grid !important;
    grid-template-columns: minmax(190px, 1fr) auto;
    align-items: end;
    gap: .7rem;
    width: 100%;
    margin: 0;
}
.review-status-filter__field {
    display: grid !important;
    gap: .38rem;
    min-width: 0;
    padding-left: 0 !important;
}
.review-status-filter__field::before,
.review-status-filter__field::after {
    display: none !important;
}
.review-status-filter__field > span {
    color: #52685a;
    font-weight: 600;
    font-size: .9rem;
    line-height: 1.35;
}
.review-status-filter select {
    width: 100%;
    min-width: 0;
}
.review-status-filter__button {
    width: auto !important;
    min-width: 96px;
    min-height: 44px;
    padding-inline: 1rem;
    white-space: nowrap;
}
.admin-card-actions {
    display: inline-grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    align-items: center;
    justify-content: end;
    gap: .45rem;
    width: auto;
    max-width: 100%;
}
.admin-card-actions .inline-form {
    display: inline-grid;
    width: auto;
}
.admin-card-actions .button,
.admin-card-actions button {
    min-height: 38px;
    border-radius: 13px;
    padding: .46rem .78rem;
    width: auto;
    white-space: nowrap;
}
.homepage-admin-index .actions-inline,
.navigation-admin-index .actions-inline {
    white-space: normal !important;
}
.homepage-table-wrap .data-table code,
.navigation-table-wrap .data-table code {
    display: inline-flex;
    width: auto;
    max-width: 100%;
    min-height: 0;
    align-items: center;
    padding: .24rem .55rem;
    border-radius: 10px;
    line-height: 1.35;
    font-size: .96rem;
    background: #f8fbf8;
    border-color: #d9e7dc;
}

@media (max-width: 767px) {
    .review-mobile-queue .panel__head,
    .homepage-admin-page .panel__head,
    .navigation-admin-page .panel__head {
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
    }
    .review-mobile-queue .panel__head > div,
    .homepage-admin-page .panel__head > div,
    .navigation-admin-page .panel__head > div {
        min-width: 0;
    }
    .review-status-filter {
        grid-template-columns: 1fr !important;
        padding: .78rem;
        border: 1px solid rgba(11, 93, 59, .12);
        border-radius: 18px;
        background: linear-gradient(180deg, #ffffff 0%, #f7fbf8 100%);
        box-shadow: 0 8px 18px rgba(15, 23, 42, .045);
    }
    .review-status-filter__button {
        width: 100% !important;
        min-width: 0;
        min-height: 46px;
        border-radius: 15px;
        transform: none !important;
    }
    .review-mobile-queue .table-wrap,
    .homepage-table-wrap,
    .navigation-table-wrap {
        overflow: visible !important;
        padding: 0 !important;
    }
    .review-mobile-queue .data-table--responsive tr,
    .homepage-table-wrap .data-table--responsive tr,
    .navigation-table-wrap .data-table--responsive tr {
        display: grid !important;
        gap: .28rem;
        width: 100% !important;
        margin-bottom: .9rem;
        padding: .9rem !important;
        border-radius: 20px;
        border: 1px solid rgba(15, 23, 42, .08);
        background: #fff;
        box-shadow: 0 12px 26px rgba(15, 23, 42, .055);
        overflow: hidden;
    }
    .review-mobile-queue .data-table--responsive td,
    .homepage-table-wrap .data-table--responsive td,
    .navigation-table-wrap .data-table--responsive td {
        display: grid !important;
        grid-template-columns: 84px minmax(0, 1fr) !important;
        align-items: start;
        gap: .58rem;
        width: 100% !important;
        padding: .36rem 0 !important;
        border: 0 !important;
        text-align: left !important;
        white-space: normal !important;
    }
    .review-mobile-queue .data-table--responsive td::before,
    .homepage-table-wrap .data-table--responsive td::before,
    .navigation-table-wrap .data-table--responsive td::before {
        display: block !important;
        margin: 0 !important;
        padding-top: .12rem;
        color: #607083;
        font-size: .76rem;
        font-weight: 600;
        line-height: 1.35;
        letter-spacing: .01em;
        word-break: keep-all;
    }
    .review-mobile-queue .data-table--responsive td > *,
    .homepage-table-wrap .data-table--responsive td > *,
    .navigation-table-wrap .data-table--responsive td > *,
    .review-mobile-queue .data-table--responsive td small,
    .homepage-table-wrap .data-table--responsive td small,
    .navigation-table-wrap .data-table--responsive td small,
    .homepage-table-wrap .data-table--responsive td code,
    .navigation-table-wrap .data-table--responsive td code {
        min-width: 0;
        max-width: 100%;
    }
    .homepage-table-wrap .data-table--responsive td strong,
    .navigation-table-wrap .data-table--responsive td strong,
    .review-mobile-queue .data-table--responsive td strong {
        line-height: 1.35;
    }
    .review-mobile-queue .data-table--responsive td[colspan],
    .homepage-table-wrap .data-table--responsive td[colspan],
    .navigation-table-wrap .data-table--responsive td[colspan] {
        display: block !important;
        grid-template-columns: 1fr !important;
        padding: 1rem !important;
    }
    .review-mobile-queue .data-table--responsive td[colspan]::before,
    .homepage-table-wrap .data-table--responsive td[colspan]::before,
    .navigation-table-wrap .data-table--responsive td[colspan]::before {
        display: none !important;
    }
    .review-mobile-queue .empty-cell,
    .homepage-table-wrap .empty-cell,
    .navigation-table-wrap .empty-cell {
        border-radius: 16px;
        background: #f8fbfd;
        color: #233529;
        font-weight: 600;
        text-align: center !important;
    }
    .homepage-table-wrap .data-table--responsive td.actions-inline,
    .navigation-table-wrap .data-table--responsive td.actions-inline,
    .review-mobile-queue .data-table--responsive td.actions-inline,
    .homepage-table-wrap .data-table--responsive td:last-child,
    .navigation-table-wrap .data-table--responsive td:last-child,
    .review-mobile-queue .data-table--responsive td:last-child {
        display: grid !important;
        grid-template-columns: 84px minmax(0, 1fr) !important;
        gap: .58rem;
        padding-top: .65rem !important;
        margin-top: .15rem;
        border-top: 1px dashed rgba(11, 93, 59, .14) !important;
    }
    .admin-card-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .45rem;
        width: 100%;
        justify-content: stretch;
    }
    .admin-card-actions .inline-form,
    .admin-card-actions .button,
    .admin-card-actions button {
        width: 100% !important;
        min-width: 0;
    }
    .admin-card-actions .button,
    .admin-card-actions button,
    .review-mobile-queue .actions-inline .button {
        min-height: 42px;
        padding: .48rem .65rem;
        border-radius: 14px;
        justify-content: center;
        font-size: .94rem;
        line-height: 1.25;
    }
    .homepage-table-wrap .status,
    .navigation-table-wrap .status,
    .review-mobile-queue .status {
        width: fit-content !important;
        max-width: 100%;
        min-height: 32px;
        padding: .34rem .65rem;
        border-radius: 999px;
        line-height: 1.25;
    }
    .homepage-table-wrap .data-table code,
    .navigation-table-wrap .data-table code {
        font-size: .95rem;
        word-break: break-word;
        overflow-wrap: anywhere;
    }
    .homepage-admin-page .notice {
        line-height: 1.55;
        padding: .9rem;
        border-radius: 16px;
    }
}

@media (max-width: 430px) {
    .review-mobile-queue,
    .homepage-admin-page,
    .navigation-admin-page {
        padding: .9rem !important;
        border-radius: 18px !important;
    }
    .review-mobile-queue .panel__head h2,
    .homepage-admin-page .panel__head h2,
    .navigation-admin-page .panel__head h2 {
        font-size: clamp(1.22rem, 7vw, 1.55rem) !important;
        line-height: 1.24;
    }
    .review-mobile-queue .panel__head p,
    .homepage-admin-page .panel__head p,
    .navigation-admin-page .panel__head p {
        font-size: .9rem;
        line-height: 1.55;
    }
    .review-mobile-queue .data-table--responsive td,
    .homepage-table-wrap .data-table--responsive td,
    .navigation-table-wrap .data-table--responsive td,
    .homepage-table-wrap .data-table--responsive td.actions-inline,
    .navigation-table-wrap .data-table--responsive td.actions-inline,
    .review-mobile-queue .data-table--responsive td.actions-inline,
    .homepage-table-wrap .data-table--responsive td:last-child,
    .navigation-table-wrap .data-table--responsive td:last-child,
    .review-mobile-queue .data-table--responsive td:last-child {
        grid-template-columns: 76px minmax(0, 1fr) !important;
        gap: .5rem;
    }
    .admin-card-actions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .admin-card-actions .button,
    .admin-card-actions button,
    .review-mobile-queue .actions-inline .button {
        min-height: 40px;
        padding: .45rem .55rem;
        font-size: .9rem;
    }
}

@media (max-width: 360px) {
    .admin-card-actions {
        grid-template-columns: 1fr;
    }
}

/* RS31.7 permission/settings management polish */
.settings-list{display:flex;flex-direction:column;gap:1rem}.setting-row{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,1.25fr);gap:1rem;padding:1rem;border:1px solid var(--border,#dbe5dc);border-radius:20px;background:rgba(255,255,255,.78)}.setting-row__label{display:flex;flex-direction:column;gap:.35rem;min-width:0}.setting-row__label code{display:inline-block;max-width:100%;overflow-wrap:anywhere;color:var(--muted,#667085);background:rgba(6,95,70,.07);border-radius:999px;padding:.25rem .55rem;font-size:.82rem}.setting-row__label small{color:var(--muted,#667085);line-height:1.55}.setting-row__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;align-items:start}.setting-row__fields .check-line{grid-column:1/-1}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-grid label,.setting-row__fields label{min-width:0}.settings-grid input,.setting-row__fields input,.setting-row__fields textarea{width:100%;max-width:100%}
@media (max-width: 720px){.setting-row{grid-template-columns:1fr;padding:.85rem;border-radius:18px}.setting-row__fields,.settings-grid{grid-template-columns:1fr}.setting-row__label code{border-radius:12px}.department-activity-settings .sticky-savebar,.site-settings-admin .sticky-savebar{align-items:stretch}}

/* =========================================================
   RS31.10 Admin sidebar real-height rework + popup mobile centering
   - Replaces the RS31.8 background-stripe workaround.
   - Sidebar is a real stretched grid column on desktop.
   - Only sidebar__inner is sticky/scrollable, so the dark column continues
     to the full height of long admin pages without fake backgrounds.
   - Mobile keeps the existing off-canvas behavior.
   ========================================================= */
@media (min-width: 981px) {
    .site-admin .admin-shell {
        display: grid;
        grid-template-columns: 292px minmax(0, 1fr);
        align-items: stretch;
        min-height: 100dvh;
        background: transparent;
    }
    .site-admin .sidebar {
        position: relative !important;
        inset: auto !important;
        transform: none !important;
        visibility: visible !important;
        align-self: stretch;
        width: auto;
        height: auto;
        min-height: 100%;
        max-height: none;
        overflow: visible;
        padding: 0;
        background: #0b2742;
        box-shadow: none;
        z-index: 40;
    }
    .site-admin .sidebar__inner {
        position: sticky;
        top: 0;
        height: 100dvh;
        max-height: 100dvh;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 1.15rem 1rem;
        scrollbar-width: thin;
        overscroll-behavior: contain;
    }
    .site-admin .admin-main {
        align-self: stretch;
        min-height: 100dvh;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    .site-admin .admin-shell {
        grid-template-columns: 260px minmax(0, 1fr);
    }
}

@media (max-width: 980px) {
    .site-admin .admin-shell {
        display: block;
        min-height: 100dvh;
        background:
            radial-gradient(circle at top right, rgba(242, 194, 48, .10), transparent 32rem),
            linear-gradient(180deg, #f7faf7 0%, #eef4ef 100%);
    }
    .site-admin .sidebar {
        position: fixed !important;
        inset: 0 auto 0 0;
        width: min(88vw, 324px);
        height: 100dvh;
        max-height: 100dvh;
        min-height: 0;
        overflow: hidden;
        padding: 0;
        background: #0b2742;
        box-shadow: 18px 0 44px rgba(0,0,0,.22);
        transform: translateX(-108%);
        transition: transform .22s ease, visibility .22s ease;
        visibility: hidden;
        z-index: 90;
    }
    .site-admin .sidebar.is-open {
        transform: translateX(0);
        visibility: visible;
    }
    .site-admin .sidebar__inner {
        position: relative;
        height: 100%;
        max-height: 100dvh;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 1rem .8rem calc(2rem + env(safe-area-inset-bottom));
        overscroll-behavior: contain;
        scrollbar-width: thin;
    }
    [dir="rtl"] .site-admin .sidebar {
        inset: 0 0 0 auto;
        transform: translateX(108%);
    }
    [dir="rtl"] .site-admin .sidebar.is-open {
        transform: translateX(0);
    }
}

@media (max-width: 640px) {
    .announcement-popup {
        display: grid;
        place-items: center;
        align-items: center;
        justify-items: center;
        min-height: 100dvh;
        padding: max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    .announcement-popup__dialog {
        width: min(100%, calc(100vw - 1.5rem));
        max-width: 520px;
        max-height: calc(100dvh - 1.5rem);
        margin: auto;
        align-self: center;
        justify-self: center;
        border-radius: 20px;
        padding: .5rem;
    }
    .announcement-popup__image-wrap img {
        width: 100%;
        max-height: min(76dvh, calc(100dvh - 8.5rem));
        object-fit: contain;
    }
    .announcement-popup__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: .5rem;
    }
    .announcement-popup__actions .button {
        width: 100%;
        justify-content: center;
    }
}

/* --------------------------------------------------------------------------
   RS31.11 Admin action button UI audit
   Make edit/delete/toggle/view actions visually distinct across admin pages.
   This block intentionally lives last to override older duplicated button rules.
   -------------------------------------------------------------------------- */
.site-admin .button {
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
}
.site-admin .button:hover {
    transform: translateY(-1px);
    text-decoration: none;
}
.site-admin .button:focus-visible {
    outline: 3px solid rgba(0, 163, 168, .28);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(255,255,255,.95), 0 0 0 7px rgba(0, 163, 168, .28);
}
.site-admin .button[disabled],
.site-admin .button.is-disabled {
    opacity: .58;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
.site-admin .button--secondary {
    background: #ffffff !important;
    color: var(--rru-primary) !important;
    border-color: #a9bfd1 !important;
}
.site-admin .button--secondary:hover {
    background: #eaf4fb !important;
    color: var(--rru-primary-strong) !important;
    border-color: var(--rru-primary) !important;
}
.site-admin .button--outline,
.site-admin .button--ghost {
    background: #ffffff !important;
    color: var(--rru-primary) !important;
    border-color: #b8ccd9 !important;
}
.site-admin .button--outline:hover,
.site-admin .button--ghost:hover {
    background: #e8f1f8 !important;
    color: var(--rru-primary-strong) !important;
    border-color: var(--rru-primary) !important;
}
.site-admin .button--view,
.site-admin .button--review {
    background: #175cd3 !important;
    border-color: #175cd3 !important;
    color: #ffffff !important;
}
.site-admin .button--view:hover,
.site-admin .button--review:hover {
    background: #123f91 !important;
    border-color: #123f91 !important;
    color: #ffffff !important;
}
.site-admin .button--edit {
    background: #b54708 !important;
    border-color: #b54708 !important;
    color: #ffffff !important;
}
.site-admin .button--edit:hover {
    background: #8a3505 !important;
    border-color: #8a3505 !important;
    color: #ffffff !important;
}
.site-admin .button--toggle,
.site-admin .button--set-default {
    background: #0f766e !important;
    border-color: #0f766e !important;
    color: #ffffff !important;
}
.site-admin .button--toggle:hover,
.site-admin .button--set-default:hover {
    background: #115e59 !important;
    border-color: #115e59 !important;
    color: #ffffff !important;
}
.site-admin .button--danger,
.site-admin .button--delete,
.site-admin .button.button--danger,
.site-admin .button.button--danger.button--outline,
.site-admin .button.button--danger.button--ghost {
    background: #b42318 !important;
    border-color: #b42318 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(180, 35, 24, .18), 0 0 0 1px rgba(180, 35, 24, .08);
}
.site-admin .button--danger:hover,
.site-admin .button--delete:hover,
.site-admin .button.button--danger:hover,
.site-admin .button.button--danger.button--outline:hover,
.site-admin .button.button--danger.button--ghost:hover {
    background: #912018 !important;
    border-color: #912018 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(180, 35, 24, .20);
}
.site-admin .button--small,
.site-admin .button--sm {
    min-height: 38px;
    border-radius: 12px;
    padding: .44rem .78rem;
    font-size: .88rem;
    line-height: 1.25;
}
.site-admin .actions-inline,
.site-admin .admin-card-actions,
.site-admin .popup-manage-card__actions,
.site-admin .cms-publication-actions {
    gap: .5rem;
}
.site-admin .actions-inline .button,
.site-admin .admin-card-actions .button,
.site-admin .popup-manage-card__actions .button,
.site-admin .cms-publication-actions .button {
    white-space: nowrap;
    font-weight: 700;
}
.site-admin .actions-inline .inline-form,
.site-admin .popup-manage-card__actions form,
.site-admin .cms-publication-actions form {
    margin: 0;
}
.site-admin .actions-inline .button--danger,
.site-admin .admin-card-actions .button--danger,
.site-admin .popup-manage-card__actions .button--danger,
.site-admin .cms-publication-actions .button--danger {
    min-width: 74px;
}
.site-admin .actions-inline .button--edit,
.site-admin .admin-card-actions .button--edit,
.site-admin .popup-manage-card__actions .button--edit,
.site-admin .cms-publication-actions .button--edit {
    min-width: 78px;
}
.site-admin .translation-card__head .button--delete {
    min-width: 86px;
}

@media (max-width: 640px) {
    .site-admin .actions-inline,
    .site-admin .cms-publication-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
        width: 100%;
    }
    .site-admin .actions-inline > a,
    .site-admin .actions-inline > form,
    .site-admin .actions-inline > button,
    .site-admin .cms-publication-actions > a,
    .site-admin .cms-publication-actions > form,
    .site-admin .cms-publication-actions > button {
        width: 100% !important;
    }
    .site-admin .actions-inline .button,
    .site-admin .actions-inline button,
    .site-admin .cms-publication-actions .button,
    .site-admin .cms-publication-actions button {
        width: 100% !important;
        min-width: 0;
        min-height: 42px;
        padding-inline: .65rem;
        white-space: normal;
    }
    .site-admin .translation-card__head .inline-form,
    .site-admin .translation-card__head .button--delete {
        width: 100% !important;
    }
}

/* =========================================================
   RS31.12 Admin sidebar scrollbar polish
   - Fixes the native white scrollbar showing inside the dark admin menu.
   - Keeps the real-height sidebar layout from RS31.10.
   - Scroll remains available for long permission/menu sets.
   ========================================================= */
@media (min-width: 981px) {
    .site-admin .sidebar {
        background: #0b2742;
        border-right: 1px solid rgba(255, 255, 255, .06);
    }

    .site-admin .sidebar__inner {
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, .34) transparent;
        scrollbar-gutter: stable;
        background: #0b2742;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar {
        width: 8px;
        height: 8px;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-track {
        background: #0b2742;
        border-radius: 999px;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, .24);
        border: 2px solid #0b2742;
        border-radius: 999px;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-thumb:hover {
        background: rgba(242, 194, 48, .58);
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-corner {
        background: #0b2742;
    }

    .site-admin .admin-menu__link {
        margin-right: .15rem;
    }
}

@media (max-width: 980px) {
    .site-admin .sidebar__inner {
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 255, 255, .32) transparent;
        background: #0b2742;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar {
        width: 6px;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-track {
        background: #0b2742;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, .26);
        border-radius: 999px;
    }
}

/* =========================================================
   RS31.13 Admin semantic action color rework
   - Replaces the RS31.11 orange edit color because it was too close to delete/danger.
   - Uses a clearer action palette: edit=violet, delete=red, view=blue,
     review=cyan, toggle=teal, default=emerald, neutral=slate.
   - Kept at the end of the file to override older duplicated button rules.
   ========================================================= */
.site-admin .button--secondary {
    background: #ffffff !important;
    color: #334155 !important;
    border-color: #cbd5e1 !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06) !important;
}
.site-admin .button--secondary:hover {
    background: #f1f5f9 !important;
    color: #0f172a !important;
    border-color: #94a3b8 !important;
    box-shadow: 0 6px 16px rgba(15, 23, 42, .10) !important;
}
.site-admin .button--outline,
.site-admin .button--ghost {
    background: #ffffff !important;
    color: #0f3b5c !important;
    border-color: #b6c7d6 !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05) !important;
}
.site-admin .button--outline:hover,
.site-admin .button--ghost:hover {
    background: #eef6fb !important;
    color: #082f49 !important;
    border-color: #2b6c91 !important;
    box-shadow: 0 6px 16px rgba(15, 82, 120, .12) !important;
}
.site-admin .button--view {
    background: #2563eb !important;
    border-color: #2563eb !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(37, 99, 235, .16), 0 0 0 1px rgba(37, 99, 235, .08) !important;
}
.site-admin .button--view:hover {
    background: #1d4ed8 !important;
    border-color: #1d4ed8 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(37, 99, 235, .20) !important;
}
.site-admin .button--review {
    background: #0e7490 !important;
    border-color: #0e7490 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(14, 116, 144, .16), 0 0 0 1px rgba(14, 116, 144, .08) !important;
}
.site-admin .button--review:hover {
    background: #155e75 !important;
    border-color: #155e75 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(14, 116, 144, .20) !important;
}
.site-admin .button--edit {
    background: #7c3aed !important;
    border-color: #7c3aed !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(124, 58, 237, .16), 0 0 0 1px rgba(124, 58, 237, .08) !important;
}
.site-admin .button--edit:hover {
    background: #6d28d9 !important;
    border-color: #6d28d9 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(124, 58, 237, .22) !important;
}
.site-admin .button--toggle {
    background: #0f766e !important;
    border-color: #0f766e !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(15, 118, 110, .16), 0 0 0 1px rgba(15, 118, 110, .08) !important;
}
.site-admin .button--toggle:hover {
    background: #115e59 !important;
    border-color: #115e59 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(15, 118, 110, .20) !important;
}
.site-admin .button--set-default {
    background: #047857 !important;
    border-color: #047857 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(4, 120, 87, .16), 0 0 0 1px rgba(4, 120, 87, .08) !important;
}
.site-admin .button--set-default:hover {
    background: #065f46 !important;
    border-color: #065f46 !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(4, 120, 87, .20) !important;
}
.site-admin .button--danger,
.site-admin .button--delete,
.site-admin .button.button--danger,
.site-admin .button.button--delete,
.site-admin .button.button--danger.button--outline,
.site-admin .button.button--danger.button--ghost {
    background: #dc2626 !important;
    border-color: #dc2626 !important;
    color: #ffffff !important;
    box-shadow: 0 1px 2px rgba(220, 38, 38, .18), 0 0 0 1px rgba(220, 38, 38, .08) !important;
}
.site-admin .button--danger:hover,
.site-admin .button--delete:hover,
.site-admin .button.button--danger:hover,
.site-admin .button.button--delete:hover,
.site-admin .button.button--danger.button--outline:hover,
.site-admin .button.button--danger.button--ghost:hover {
    background: #b91c1c !important;
    border-color: #b91c1c !important;
    color: #ffffff !important;
    box-shadow: 0 8px 20px rgba(220, 38, 38, .22) !important;
}
.site-admin .button--edit:focus-visible {
    outline-color: rgba(124, 58, 237, .32) !important;
    box-shadow: 0 0 0 4px rgba(255,255,255,.96), 0 0 0 7px rgba(124, 58, 237, .32) !important;
}
.site-admin .button--danger:focus-visible,
.site-admin .button--delete:focus-visible {
    outline-color: rgba(220, 38, 38, .32) !important;
    box-shadow: 0 0 0 4px rgba(255,255,255,.96), 0 0 0 7px rgba(220, 38, 38, .32) !important;
}
.site-admin .button--view:focus-visible,
.site-admin .button--review:focus-visible {
    outline-color: rgba(37, 99, 235, .30) !important;
    box-shadow: 0 0 0 4px rgba(255,255,255,.96), 0 0 0 7px rgba(37, 99, 235, .30) !important;
}
.site-admin .button--toggle:focus-visible,
.site-admin .button--set-default:focus-visible {
    outline-color: rgba(15, 118, 110, .30) !important;
    box-shadow: 0 0 0 4px rgba(255,255,255,.96), 0 0 0 7px rgba(15, 118, 110, .30) !important;
}

/* =========================================================
   RS31.14 Admin sidebar height + solid RRU green/gold theme
   - Desktop sidebar is part of the page flow, not an internal 100dvh scroller.
   - Shell height becomes the greater of admin-main content and sidebar menu content.
   - Sidebar uses solid green/gold colors only; no gradients.
   ========================================================= */
.site-admin {
    --admin-sidebar-bg: #064e3b;
    --admin-sidebar-bg-soft: #0b5d3b;
    --admin-sidebar-bg-hover: #0f6b49;
    --admin-sidebar-gold: #f2c230;
    --admin-sidebar-gold-soft: #ffe8a3;
    --admin-sidebar-text: #f8fff8;
    --admin-sidebar-muted: rgba(248, 255, 248, .68);
}

@media (min-width: 981px) {
    .site-admin .admin-shell {
        display: grid;
        grid-template-columns: 292px minmax(0, 1fr);
        align-items: stretch;
        min-height: 100dvh;
        height: auto;
        background: transparent;
    }

    .site-admin .sidebar {
        position: relative !important;
        inset: auto !important;
        transform: none !important;
        visibility: visible !important;
        align-self: stretch;
        width: auto;
        height: auto !important;
        min-height: 100%;
        max-height: none !important;
        overflow: visible !important;
        padding: 0 !important;
        background: var(--admin-sidebar-bg) !important;
        border-right: 1px solid rgba(242, 194, 48, .22);
        box-shadow: none !important;
        z-index: 40;
    }

    .site-admin .sidebar__inner {
        position: static !important;
        top: auto !important;
        height: auto !important;
        min-height: 100dvh;
        max-height: none !important;
        overflow: visible !important;
        padding: 1.15rem 1rem 1.4rem;
        background: var(--admin-sidebar-bg) !important;
        scrollbar-width: auto;
        scrollbar-gutter: auto;
        overscroll-behavior: auto;
    }

    .site-admin .admin-main {
        align-self: stretch;
        min-height: 100dvh;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar,
    .site-admin .sidebar__inner::-webkit-scrollbar-track,
    .site-admin .sidebar__inner::-webkit-scrollbar-thumb,
    .site-admin .sidebar__inner::-webkit-scrollbar-corner {
        background: transparent;
        width: auto;
        height: auto;
        border: 0;
    }
}

@media (min-width: 981px) and (max-width: 1180px) {
    .site-admin .admin-shell {
        grid-template-columns: 260px minmax(0, 1fr);
    }
}

.site-admin .sidebar,
.site-admin .sidebar__inner {
    background: var(--admin-sidebar-bg) !important;
    color: var(--admin-sidebar-text);
}

.site-admin .brand--admin {
    color: var(--admin-sidebar-text);
    border-bottom-color: rgba(242, 194, 48, .28);
}

.site-admin .brand--admin .brand__mark {
    background: var(--admin-sidebar-gold) !important;
    color: #17351f !important;
}

.site-admin .brand--admin small,
.site-admin .admin-menu__group-title {
    color: var(--admin-sidebar-muted) !important;
}

.site-admin .sidebar__nav .admin-menu__link,
.site-admin .admin-menu__link {
    color: rgba(248, 255, 248, .92) !important;
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

.site-admin .sidebar__nav .admin-menu__link:hover,
.site-admin .admin-menu__link:hover {
    color: #ffffff !important;
    background: var(--admin-sidebar-bg-hover) !important;
    border-color: rgba(242, 194, 48, .24) !important;
    text-decoration: none;
}

.site-admin .sidebar__nav .admin-menu__link.is-active,
.site-admin .admin-menu__link.is-active {
    color: #17351f !important;
    background: var(--admin-sidebar-gold) !important;
    border-color: var(--admin-sidebar-gold) !important;
    box-shadow: inset 4px 0 0 #ffffff !important;
}

.site-admin .admin-menu__icon {
    background: rgba(242, 194, 48, .16) !important;
    color: var(--admin-sidebar-gold-soft) !important;
}

.site-admin .admin-menu__link.is-active .admin-menu__icon {
    background: #17351f !important;
    color: var(--admin-sidebar-gold) !important;
}

.site-admin .admin-menu__badge {
    background: var(--admin-sidebar-gold) !important;
    color: #17351f !important;
}

@media (max-width: 980px) {
    .site-admin .sidebar {
        background: var(--admin-sidebar-bg) !important;
    }

    .site-admin .sidebar__inner {
        background: var(--admin-sidebar-bg) !important;
        scrollbar-color: rgba(242, 194, 48, .45) transparent;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-track {
        background: var(--admin-sidebar-bg) !important;
    }

    .site-admin .sidebar__inner::-webkit-scrollbar-thumb {
        background: rgba(242, 194, 48, .42) !important;
    }
}

/* =========================================================
   RS31.16 Admin soft outline action buttons
   - Reworks admin action buttons to use colored borders with white/soft fills.
   - Keeps semantic colors while avoiding heavy solid buttons in tables/cards.
   - Hover remains soft, not full-solid, so delete/edit/toggle/view are distinct and calm.
   ========================================================= */
.site-admin .button {
    --button-accent: #0f5132;
    --button-accent-rgb: 15, 81, 50;
    background: #ffffff !important;
    border: 1.5px solid var(--button-accent) !important;
    color: var(--button-accent) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05) !important;
}
.site-admin .button:hover {
    background: rgba(var(--button-accent-rgb), .10) !important;
    border-color: var(--button-accent) !important;
    color: var(--button-accent) !important;
    box-shadow: 0 6px 16px rgba(var(--button-accent-rgb), .14) !important;
    transform: translateY(-1px);
}
.site-admin .button:active {
    transform: translateY(0);
    box-shadow: 0 1px 2px rgba(var(--button-accent-rgb), .12) inset !important;
}
.site-admin .button:focus-visible {
    outline: 3px solid rgba(var(--button-accent-rgb), .22) !important;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .96), 0 0 0 7px rgba(var(--button-accent-rgb), .22) !important;
}
.site-admin .button[disabled],
.site-admin .button.is-disabled {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #94a3b8 !important;
    box-shadow: none !important;
    opacity: .72;
}
.site-admin .button--secondary,
.site-admin .button--outline,
.site-admin .button--ghost {
    --button-accent: #475569;
    --button-accent-rgb: 71, 85, 105;
    background: #ffffff !important;
    border-color: #94a3b8 !important;
    color: #334155 !important;
}
.site-admin .button--secondary:hover,
.site-admin .button--outline:hover,
.site-admin .button--ghost:hover {
    background: #f1f5f9 !important;
    border-color: #64748b !important;
    color: #0f172a !important;
}
.site-admin .button--view {
    --button-accent: #2563eb;
    --button-accent-rgb: 37, 99, 235;
    background: #eff6ff !important;
    border-color: #2563eb !important;
    color: #1d4ed8 !important;
}
.site-admin .button--view:hover {
    background: #dbeafe !important;
    border-color: #1d4ed8 !important;
    color: #1e40af !important;
}
.site-admin .button--review {
    --button-accent: #0891b2;
    --button-accent-rgb: 8, 145, 178;
    background: #ecfeff !important;
    border-color: #0891b2 !important;
    color: #0e7490 !important;
}
.site-admin .button--review:hover {
    background: #cffafe !important;
    border-color: #0e7490 !important;
    color: #155e75 !important;
}
.site-admin .button--edit {
    --button-accent: #7c3aed;
    --button-accent-rgb: 124, 58, 237;
    background: #f5f3ff !important;
    border-color: #7c3aed !important;
    color: #6d28d9 !important;
}
.site-admin .button--edit:hover {
    background: #ede9fe !important;
    border-color: #6d28d9 !important;
    color: #5b21b6 !important;
}
.site-admin .button--toggle {
    --button-accent: #0f766e;
    --button-accent-rgb: 15, 118, 110;
    background: #f0fdfa !important;
    border-color: #0f766e !important;
    color: #0f766e !important;
}
.site-admin .button--toggle:hover {
    background: #ccfbf1 !important;
    border-color: #115e59 !important;
    color: #115e59 !important;
}
.site-admin .button--set-default {
    --button-accent: #047857;
    --button-accent-rgb: 4, 120, 87;
    background: #ecfdf5 !important;
    border-color: #047857 !important;
    color: #047857 !important;
}
.site-admin .button--set-default:hover {
    background: #d1fae5 !important;
    border-color: #065f46 !important;
    color: #065f46 !important;
}
.site-admin .button--danger,
.site-admin .button--delete,
.site-admin .button.button--danger,
.site-admin .button.button--delete,
.site-admin .button.button--danger.button--outline,
.site-admin .button.button--danger.button--ghost {
    --button-accent: #dc2626;
    --button-accent-rgb: 220, 38, 38;
    background: #fef2f2 !important;
    border-color: #dc2626 !important;
    color: #b91c1c !important;
    box-shadow: 0 1px 2px rgba(220, 38, 38, .08) !important;
}
.site-admin .button--danger:hover,
.site-admin .button--delete:hover,
.site-admin .button.button--danger:hover,
.site-admin .button.button--delete:hover,
.site-admin .button.button--danger.button--outline:hover,
.site-admin .button.button--danger.button--ghost:hover {
    background: #fee2e2 !important;
    border-color: #b91c1c !important;
    color: #991b1b !important;
    box-shadow: 0 6px 16px rgba(220, 38, 38, .16) !important;
}
.site-admin .button--block {
    width: 100%;
    justify-content: center;
}
.site-admin .admin-card-actions .button,
.site-admin .actions-inline .button,
.site-admin .cms-publication-actions .button,
.site-admin .popup-manage-card__actions .button {
    background-clip: padding-box;
}
@media (max-width: 640px) {
    .site-admin .actions-inline .button,
    .site-admin .actions-inline button,
    .site-admin .cms-publication-actions .button,
    .site-admin .cms-publication-actions button {
        border-width: 1.5px !important;
    }
}


/* RS31.18 compact inline checkbox/radio guard
   Keep inline checks small and prevent admin form label rules from turning them into large blocks. */
.site-admin .check-inline,
.check-inline {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .36rem !important;
    width: fit-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: .3rem .5rem !important;
    border: 1px solid rgba(11, 93, 59, .18) !important;
    border-radius: 999px !important;
    background: rgba(11, 93, 59, .045) !important;
    color: #214334 !important;
    font-size: .82rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
.site-admin .check-inline::before,
.check-inline::before {
    content: none !important;
    display: none !important;
}
.site-admin .check-inline input[type="checkbox"],
.site-admin .check-inline input[type="radio"],
.check-inline input[type="checkbox"],
.check-inline input[type="radio"] {
    flex: 0 0 auto !important;
    width: .92rem !important;
    height: .92rem !important;
    min-height: 0 !important;
    margin: 0 !important;
}
.site-admin .check-inline:focus-within,
.check-inline:focus-within {
    border-color: rgba(11, 93, 59, .38) !important;
    box-shadow: 0 0 0 3px rgba(11, 93, 59, .10) !important;
}
@media (max-width: 640px) {
    .site-admin .check-inline,
    .check-inline {
        padding: .28rem .44rem !important;
        font-size: .78rem !important;
        gap: .3rem !important;
    }
}

/* =========================================================
   RS31.19 Error / Not Found page layout polish
   - Production layout for 404/403 in both public and admin shells.
   - Uses calm RRU green/gold cards, clear actions, and mobile-safe spacing.
   ========================================================= */
.not-found-page {
    width: min(100%, 1120px);
    margin: 0 auto;
    padding: clamp(2rem, 5vw, 4.5rem) clamp(1rem, 3vw, 1.5rem);
}
.site-admin .not-found-page {
    width: 100%;
    padding: clamp(1rem, 2.5vw, 2rem) 0;
}
.not-found-card {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
    gap: clamp(1.25rem, 4vw, 2.75rem);
    align-items: center;
    min-height: clamp(360px, 54vh, 560px);
    padding: clamp(1.25rem, 4vw, 3rem);
    border: 1px solid rgba(216, 229, 207, .95);
    border-radius: clamp(22px, 4vw, 34px);
    background:
        radial-gradient(circle at 8% 8%, rgba(242, 194, 48, .16), transparent 18rem),
        radial-gradient(circle at 96% 12%, rgba(121, 169, 54, .14), transparent 20rem),
        #ffffff;
    box-shadow: 0 22px 60px rgba(11, 93, 59, .12);
}
.site-admin .not-found-card {
    min-height: clamp(340px, 52vh, 520px);
    box-shadow: 0 18px 44px rgba(16, 24, 40, .08);
}
.not-found-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 7px;
    background: var(--rru-gold, #f2c230);
}
.not-found-card__visual {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 260px;
    isolation: isolate;
}
.not-found-card__code {
    position: relative;
    z-index: 2;
    display: inline-grid;
    place-items: center;
    width: clamp(150px, 22vw, 230px);
    height: clamp(150px, 22vw, 230px);
    border: 6px solid var(--rru-gold, #f2c230);
    border-radius: 999px;
    background: var(--rru-primary, #0b5d3b);
    color: #ffffff;
    font-size: clamp(2.4rem, 7vw, 4.6rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.08em;
    box-shadow: 0 20px 44px rgba(11, 93, 59, .24);
}
.not-found-card__icon {
    position: absolute;
    z-index: 3;
    right: clamp(1.4rem, 4vw, 3rem);
    bottom: clamp(1rem, 3vw, 2.2rem);
    display: inline-grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 999px;
    border: 3px solid #ffffff;
    background: var(--rru-gold, #f2c230);
    color: #17351f;
    font-size: 1.45rem;
    font-weight: 700;
    box-shadow: 0 14px 28px rgba(16, 24, 40, .16);
}
.not-found-card--forbidden .not-found-card__icon {
    background: #fee4e2;
    color: #b42318;
}
.not-found-card__ring {
    position: absolute;
    border-radius: 999px;
    border: 1px solid rgba(11, 93, 59, .15);
    background: rgba(242, 194, 48, .08);
}
.not-found-card__ring--one {
    width: min(92%, 320px);
    aspect-ratio: 1;
}
.not-found-card__ring--two {
    width: min(72%, 250px);
    aspect-ratio: 1;
    border-color: rgba(242, 194, 48, .45);
    background: rgba(121, 169, 54, .09);
}
.not-found-card__body {
    position: relative;
    z-index: 2;
    min-width: 0;
    display: grid;
    gap: .9rem;
    justify-items: start;
}
.not-found-card__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 32px;
    margin: 0;
    padding: .25rem .72rem;
    border: 1px solid rgba(242, 194, 48, .55);
    border-radius: 999px;
    background: var(--rru-gold-soft, #fff7d6);
    color: var(--rru-primary-strong, #073f29);
    font-size: .86rem;
    font-weight: 700;
}
.not-found-card h1 {
    margin: 0;
    max-width: 780px;
    color: var(--rru-primary-strong, #073f29);
    font-size: clamp(1.85rem, 4.8vw, 3.35rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}
.not-found-card__lead {
    margin: 0;
    max-width: 720px;
    color: var(--text-muted, #63705f);
    font-size: clamp(1rem, 1.9vw, 1.16rem);
    line-height: 1.75;
}
.not-found-card__path {
    display: grid;
    gap: .35rem;
    width: min(100%, 720px);
    margin-top: .25rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(216, 229, 207, .96);
    border-left: 5px solid var(--rru-gold, #f2c230);
    border-radius: 16px;
    background: #fbfff7;
}
.not-found-card__path span {
    color: var(--text-muted, #63705f);
    font-size: .82rem;
    font-weight: 700;
}
.not-found-card__path code {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    color: var(--rru-primary-strong, #073f29);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: .9rem;
    font-weight: 600;
}
.not-found-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: .45rem;
}
.not-found-card__actions .button {
    width: auto;
}
.not-found-card__help {
    margin: .25rem 0 0;
    color: var(--text-muted, #63705f);
    font-size: .92rem;
    line-height: 1.65;
}
.site-admin .not-found-card__actions .button {
    min-width: 0;
}
@media (max-width: 780px) {
    .not-found-page,
    .site-admin .not-found-page {
        padding: 1rem 0;
    }
    .not-found-card {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: 1.1rem;
        border-radius: 24px;
    }
    .not-found-card__visual {
        min-height: 180px;
    }
    .not-found-card__code {
        width: 148px;
        height: 148px;
        font-size: 2.55rem;
    }
    .not-found-card__icon {
        right: calc(50% - 92px);
        bottom: .6rem;
        width: 44px;
        height: 44px;
        font-size: 1.15rem;
    }
    .not-found-card__body {
        justify-items: stretch;
        text-align: left;
    }
    .not-found-card__eyebrow {
        width: fit-content;
    }
    .not-found-card__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: .6rem;
    }
    .not-found-card__actions .button {
        width: 100%;
    }
}

/* =========================================================
   RS31.21 Global status badge polish
   - Compact, clear status pills for every .status.status--* badge.
   - Keeps badges readable in tables, admin cards, mobile cards, and public pages.
   ========================================================= */
.status,
.site-admin .status {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .34rem !important;
    width: fit-content !important;
    max-width: min(100%, 18rem) !important;
    min-width: 0 !important;
    min-height: 1.72rem !important;
    padding: .22rem .58rem !important;
    border: 1px solid rgba(148, 163, 184, .58) !important;
    border-radius: 999px !important;
    background: #f8fafc !important;
    color: #475569 !important;
    font-size: .78rem !important;
    font-weight: 600 !important;
    line-height: 1.14 !important;
    letter-spacing: .002em !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-shadow: inset 0 -1px 0 rgba(15, 23, 42, .035) !important;
}
.status::before,
.site-admin .status::before {
    content: "" !important;
    flex: 0 0 .43rem !important;
    width: .43rem !important;
    height: .43rem !important;
    border-radius: 999px !important;
    background: currentColor !important;
    opacity: .9 !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .72) !important;
}
.status:empty::before,
.site-admin .status:empty::before {
    display: none !important;
}
.status--draft,
.site-admin .status--draft,
.status--archived,
.site-admin .status--archived {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #475569 !important;
}
.status--submitted,
.site-admin .status--submitted,
.status--in_review,
.site-admin .status--in_review,
.status--current,
.site-admin .status--current {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: #1d4ed8 !important;
}
.status--revision_required,
.site-admin .status--revision_required {
    background: #fffbeb !important;
    border-color: #fcd34d !important;
    color: #92400e !important;
}
.status--approved,
.site-admin .status--approved {
    background: #ecfdf3 !important;
    border-color: #86efac !important;
    color: #047857 !important;
}
.status--rejected,
.site-admin .status--rejected {
    background: #fef2f2 !important;
    border-color: #fecaca !important;
    color: #b91c1c !important;
}
.site-admin .data-table .status,
.site-admin .panel .status,
.site-admin .side-panel .status,
.site-admin .admin-card-actions + .status,
.site-admin .homepage-table-wrap .status,
.site-admin .navigation-table-wrap .status,
.site-admin .review-mobile-queue .status {
    min-height: 1.72rem !important;
    padding: .22rem .58rem !important;
    font-size: .78rem !important;
    width: fit-content !important;
    max-width: 100% !important;
}
@media (max-width: 780px) {
    .status,
    .site-admin .status,
    .site-admin .data-table .status,
    .site-admin .panel .status,
    .site-admin .side-panel .status,
    .site-admin .homepage-table-wrap .status,
    .site-admin .navigation-table-wrap .status,
    .site-admin .review-mobile-queue .status {
        min-height: 1.58rem !important;
        padding: .18rem .48rem !important;
        gap: .28rem !important;
        font-size: .72rem !important;
        line-height: 1.15 !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        text-overflow: clip !important;
    }
    .status::before,
    .site-admin .status::before {
        flex-basis: .36rem !important;
        width: .36rem !important;
        height: .36rem !important;
        box-shadow: 0 0 0 1.5px rgba(255, 255, 255, .72) !important;
    }
}

/* =========================================================
   RS31.22 Core friendly error page
   - Shared full-page error presentation for save/action failures.
   - Does not expose technical details unless APP_DEBUG=true.
   ========================================================= */
.site-error {
    min-height: 100dvh;
    margin: 0;
    background: #f4faf2;
    color: var(--text-main, #17351f);
}
.app-error-page {
    min-height: 100dvh;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 4vw, 2.5rem);
    background:
        radial-gradient(circle at 12% 10%, rgba(242, 194, 48, .18), transparent 18rem),
        radial-gradient(circle at 88% 18%, rgba(11, 93, 59, .12), transparent 22rem),
        #f4faf2;
}
.app-error-card {
    width: min(100%, 1040px);
    display: grid;
    grid-template-columns: minmax(160px, .38fr) minmax(0, 1fr);
    gap: clamp(1rem, 3vw, 2rem);
    align-items: stretch;
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid rgba(216, 229, 207, .98);
    border-radius: clamp(22px, 4vw, 34px);
    background: #ffffff;
    box-shadow: 0 24px 60px rgba(16, 24, 40, .12);
}
.app-error-card__status {
    min-height: 100%;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .75rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid rgba(242, 194, 48, .6);
    border-radius: 26px;
    background: #fff9e6;
    color: #17351f;
}
.app-error-page--save .app-error-card__status {
    border-color: rgba(245, 158, 11, .45);
    background: #fff7ed;
}
.app-error-card__status-code {
    display: inline-grid;
    place-items: center;
    width: clamp(112px, 16vw, 160px);
    height: clamp(112px, 16vw, 160px);
    border: 4px solid #f2c230;
    border-radius: 999px;
    background: #0b5d3b;
    color: #ffffff;
    font-size: clamp(2.1rem, 5.8vw, 3.8rem);
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.06em;
    box-shadow: 0 18px 36px rgba(11, 93, 59, .2);
}
.app-error-card__status-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: .22rem .7rem;
    border: 1px solid rgba(11, 93, 59, .2);
    border-radius: 999px;
    background: #ffffff;
    color: #0b5d3b;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.app-error-card__body {
    min-width: 0;
    display: grid;
    align-content: center;
    gap: .9rem;
    padding: clamp(.25rem, 1vw, .75rem);
}
.app-error-card__eyebrow {
    width: fit-content;
    margin: 0;
    padding: .24rem .72rem;
    border: 1px solid rgba(242, 194, 48, .58);
    border-radius: 999px;
    background: #fff7d6;
    color: #073f29;
    font-size: .84rem;
    font-weight: 700;
}
.app-error-card h1 {
    margin: 0;
    color: #073f29;
    font-size: clamp(1.7rem, 4vw, 2.85rem);
    line-height: 1.12;
    letter-spacing: -.035em;
}
.app-error-card__lead {
    max-width: 760px;
    margin: 0;
    color: #56645a;
    font-size: clamp(.98rem, 1.65vw, 1.12rem);
    line-height: 1.75;
}
.app-error-card__hints {
    display: grid;
    gap: .4rem;
    margin: .1rem 0 0;
    padding: .85rem 1rem .85rem 2.2rem;
    border: 1px solid rgba(216, 229, 207, .96);
    border-radius: 18px;
    background: #fbfff7;
    color: #415144;
    line-height: 1.65;
}
.app-error-card__hints li::marker {
    color: #0b5d3b;
}
.app-error-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: .1rem 0 0;
}
.app-error-meta > div {
    min-width: 0;
    padding: .72rem .82rem;
    border: 1px solid rgba(226, 232, 240, .98);
    border-radius: 16px;
    background: #f8fafc;
}
.app-error-meta dt {
    margin: 0 0 .25rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}
.app-error-meta dd {
    margin: 0;
    min-width: 0;
}
.app-error-meta code {
    display: block;
    overflow-wrap: anywhere;
    color: #0f172a;
    font-size: .86rem;
    font-weight: 600;
}
.app-error-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: .25rem;
}
.app-error-card__actions .button {
    width: auto;
}
.app-error-card__help {
    margin: .1rem 0 0;
    color: #64748b;
    font-size: .9rem;
    line-height: 1.65;
}
.app-error-debug {
    margin-top: .4rem;
    border: 1px solid rgba(148, 163, 184, .45);
    border-radius: 18px;
    background: #f8fafc;
    overflow: hidden;
}
.app-error-debug summary {
    cursor: pointer;
    padding: .75rem .95rem;
    color: #334155;
    font-weight: 700;
}
.app-error-debug__grid {
    display: grid;
    gap: .75rem;
    padding: 0 .95rem .95rem;
}
.app-error-debug pre {
    max-width: 100%;
    max-height: 260px;
    overflow: auto;
    margin: .35rem 0 0;
    padding: .72rem;
    border: 1px solid rgba(203, 213, 225, .86);
    border-radius: 12px;
    background: #0f172a;
    color: #e2e8f0;
    font-size: .78rem;
    line-height: 1.55;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
@media (max-width: 760px) {
    .app-error-page {
        align-items: start;
        padding: .8rem;
    }
    .app-error-card {
        grid-template-columns: 1fr;
        padding: .9rem;
        border-radius: 24px;
    }
    .app-error-card__status {
        min-height: auto;
        display: flex;
        justify-content: flex-start;
        padding: .8rem;
        border-radius: 20px;
    }
    .app-error-card__status-code {
        width: 76px;
        height: 76px;
        border-width: 3px;
        font-size: 1.55rem;
    }
    .app-error-meta {
        grid-template-columns: 1fr;
    }
    .app-error-card__actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .app-error-card__actions .button {
        width: 100%;
    }
}


/* =========================================================
   RS31.24 - Page top contrast audit
   Make page-level headers readable and visually separated from pale admin backgrounds.
   ========================================================= */
.site-admin .admin-content > .panel > .panel__head:first-child,
.site-admin .admin-hero,
.site-admin .admin-hero--compact,
.site-admin .editor-hero > .panel__head:first-child,
.site-admin .cms-page-hero,
.site-admin .cms-editor__hero,
.site-admin .project-editor-v2__hero,
.site-admin .project-editor-v2__hero--lean,
.site-admin .review-hero-v2,
.site-admin .notifications-head,
.site-admin .sdg-master-hero-v2,
.site-admin .translation-hero,
.site-admin .translation-hero--compact,
.site-admin .popup-admin-v2__hero,
.site-admin .popup-editor-v2__hero,
.site-admin .da-hero,
.site-admin .da-hero--executive,
.site-admin .homepage-admin-page > .panel__head:first-child,
.site-admin .navigation-admin-page > .panel__head:first-child {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: clamp(.9rem, 2vw, 1.35rem);
    padding: clamp(1rem, 2.2vw, 1.45rem) clamp(1rem, 2.5vw, 1.65rem) !important;
    border: 1px solid rgba(11, 93, 59, .18) !important;
    border-left: 6px solid #0b5d3b !important;
    border-radius: 24px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    box-shadow: 0 16px 36px rgba(15, 23, 42, .075) !important;
}
.site-admin .admin-content > .panel > .panel__head:first-child::after,
.site-admin .admin-hero::after,
.site-admin .admin-hero--compact::after,
.site-admin .editor-hero > .panel__head:first-child::after,
.site-admin .cms-page-hero::after,
.site-admin .cms-editor__hero::after,
.site-admin .project-editor-v2__hero::after,
.site-admin .review-hero-v2::after,
.site-admin .notifications-head::after,
.site-admin .sdg-master-hero-v2::after,
.site-admin .translation-hero::after,
.site-admin .popup-admin-v2__hero::after,
.site-admin .popup-editor-v2__hero::after,
.site-admin .da-hero::after,
.site-admin .homepage-admin-page > .panel__head:first-child::after,
.site-admin .navigation-admin-page > .panel__head:first-child::after {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 4px;
    border-radius: 24px 24px 0 0;
    background: #ffd60a;
    opacity: .95;
    pointer-events: none;
    z-index: -1;
}
.site-admin .admin-content > .panel > .panel__head:first-child h1,
.site-admin .admin-content > .panel > .panel__head:first-child h2,
.site-admin .admin-hero h1,
.site-admin .admin-hero h2,
.site-admin .admin-hero--compact h1,
.site-admin .admin-hero--compact h2,
.site-admin .editor-hero > .panel__head:first-child h1,
.site-admin .editor-hero > .panel__head:first-child h2,
.site-admin .cms-page-hero h1,
.site-admin .cms-page-hero h2,
.site-admin .cms-editor__hero h1,
.site-admin .cms-editor__hero h2,
.site-admin .project-editor-v2__hero h1,
.site-admin .project-editor-v2__hero h2,
.site-admin .notifications-head h1,
.site-admin .notifications-head h2,
.site-admin .sdg-master-hero-v2 h1,
.site-admin .sdg-master-hero-v2 h2,
.site-admin .translation-hero h1,
.site-admin .translation-hero h2,
.site-admin .popup-admin-v2__hero h1,
.site-admin .popup-admin-v2__hero h2,
.site-admin .popup-editor-v2__hero h1,
.site-admin .popup-editor-v2__hero h2,
.site-admin .da-hero h1,
.site-admin .da-hero h2,
.site-admin .homepage-admin-page > .panel__head:first-child h1,
.site-admin .homepage-admin-page > .panel__head:first-child h2,
.site-admin .navigation-admin-page > .panel__head:first-child h1,
.site-admin .navigation-admin-page > .panel__head:first-child h2 {
    margin-top: .12rem;
    color: #0b3d2a !important;
    font-weight: 700;
    letter-spacing: -.018em;
    line-height: 1.18;
    text-shadow: none !important;
}
.site-admin .review-hero-v2 {
    gap: .75rem !important;
    padding: .75rem .95rem !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .055) !important;
}
.site-admin .review-hero-v2 h1,
.site-admin .review-hero-v2 h2 {
    margin-top: .05rem;
    color: #0b3d2a !important;
    font-size: clamp(1.05rem, 1.45vw, 1.25rem) !important;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.35 !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    text-shadow: none !important;
}
.site-admin .review-hero-v2__chips {
    margin-top: .35rem;
}
.site-admin .admin-content > .panel > .panel__head:first-child p,
.site-admin .admin-hero p,
.site-admin .admin-hero--compact p,
.site-admin .editor-hero > .panel__head:first-child p,
.site-admin .cms-page-hero p,
.site-admin .cms-editor__hero p,
.site-admin .project-editor-v2__hero p,
.site-admin .review-hero-v2 p,
.site-admin .notifications-head p,
.site-admin .sdg-master-hero-v2 p,
.site-admin .translation-hero p,
.site-admin .popup-admin-v2__hero p,
.site-admin .popup-editor-v2__hero p,
.site-admin .da-hero p,
.site-admin .homepage-admin-page > .panel__head:first-child p,
.site-admin .navigation-admin-page > .panel__head:first-child p {
    color: #334155 !important;
    font-weight: 500;
    line-height: 1.65;
    text-shadow: none !important;
}
.site-admin .admin-content > .panel > .panel__head:first-child .eyebrow,
.site-admin .admin-hero .eyebrow,
.site-admin .admin-hero--compact .eyebrow,
.site-admin .editor-hero > .panel__head:first-child .eyebrow,
.site-admin .cms-page-hero .eyebrow,
.site-admin .cms-editor__hero .eyebrow,
.site-admin .project-editor-v2__hero .eyebrow,
.site-admin .review-hero-v2 .eyebrow,
.site-admin .notifications-head .eyebrow,
.site-admin .sdg-master-hero-v2 .eyebrow,
.site-admin .translation-hero .eyebrow,
.site-admin .popup-admin-v2__hero .eyebrow,
.site-admin .popup-editor-v2__hero .eyebrow,
.site-admin .da-hero .eyebrow,
.site-admin .homepage-admin-page > .panel__head:first-child .eyebrow,
.site-admin .navigation-admin-page > .panel__head:first-child .eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: .25rem .62rem;
    border: 1px solid rgba(11, 93, 59, .2);
    border-radius: 999px;
    background: #f3fbef;
    color: #0b5d3b !important;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.25;
}
.site-admin .admin-content > .panel > .panel__head:first-child > div,
.site-admin .admin-hero > div,
.site-admin .admin-hero--compact > div,
.site-admin .editor-hero > .panel__head:first-child > div,
.site-admin .cms-page-hero > div,
.site-admin .cms-editor__hero > div,
.site-admin .project-editor-v2__hero > div,
.site-admin .review-hero-v2__main,
.site-admin .notifications-head > div,
.site-admin .sdg-master-hero-v2 > div,
.site-admin .translation-hero__content,
.site-admin .popup-admin-v2__hero > div,
.site-admin .popup-editor-v2__hero > div,
.site-admin .da-hero__copy,
.site-admin .homepage-admin-page > .panel__head:first-child > div,
.site-admin .navigation-admin-page > .panel__head:first-child > div {
    min-width: 0;
    max-width: 960px;
}
.site-admin .admin-content > .panel > .panel__head:first-child .button,
.site-admin .admin-hero .button,
.site-admin .admin-hero--compact .button,
.site-admin .editor-hero > .panel__head:first-child .button,
.site-admin .cms-page-hero .button,
.site-admin .cms-editor__hero .button,
.site-admin .project-editor-v2__hero .button,
.site-admin .review-hero-v2 .button,
.site-admin .notifications-head .button,
.site-admin .sdg-master-hero-v2 .button,
.site-admin .translation-hero .button,
.site-admin .popup-admin-v2__hero .button,
.site-admin .popup-editor-v2__hero .button,
.site-admin .da-hero .button,
.site-admin .homepage-admin-page > .panel__head:first-child .button,
.site-admin .navigation-admin-page > .panel__head:first-child .button {
    box-shadow: none;
}
.site-admin .project-editor-v2__hero--lean .project-editor-v2__status,
.site-admin .review-hero-v2__actions,
.site-admin .admin-hero__actions,
.site-admin .cms-page-hero__actions,
.site-admin .cms-editor__actions,
.site-admin .notifications-head__actions,
.site-admin .da-actions {
    align-self: flex-start;
    justify-content: flex-end;
}
/* Public content headers: ensure detail pages also keep readable foreground text on pale backgrounds. */
.page-hero--detail {
    background: #f7fbf4 !important;
}
.page-hero--detail .container {
    padding: clamp(1.05rem, 2.4vw, 1.65rem);
    border: 1px solid rgba(11, 93, 59, .14);
    border-left: 6px solid #0b5d3b;
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .07);
}
.page-hero--detail h1,
.page-hero--detail h2 {
    color: #0b3d2a !important;
    font-weight: 700;
    text-shadow: none !important;
}
.page-hero--detail p {
    color: #334155 !important;
    font-weight: 500;
    text-shadow: none !important;
}
@media (max-width: 760px) {
    .site-admin .admin-content > .panel > .panel__head:first-child,
    .site-admin .admin-hero,
    .site-admin .admin-hero--compact,
    .site-admin .editor-hero > .panel__head:first-child,
    .site-admin .cms-page-hero,
    .site-admin .cms-editor__hero,
    .site-admin .project-editor-v2__hero,
    .site-admin .review-hero-v2,
    .site-admin .notifications-head,
    .site-admin .sdg-master-hero-v2,
    .site-admin .translation-hero,
    .site-admin .popup-admin-v2__hero,
    .site-admin .popup-editor-v2__hero,
    .site-admin .da-hero,
    .site-admin .homepage-admin-page > .panel__head:first-child,
    .site-admin .navigation-admin-page > .panel__head:first-child {
        display: grid !important;
        grid-template-columns: 1fr;
        padding: .95rem !important;
        border-left-width: 4px !important;
        border-radius: 18px !important;
    }
    .site-admin .admin-content > .panel > .panel__head:first-child h1,
    .site-admin .admin-content > .panel > .panel__head:first-child h2,
    .site-admin .admin-hero h1,
    .site-admin .admin-hero h2,
    .site-admin .admin-hero--compact h1,
    .site-admin .admin-hero--compact h2,
    .site-admin .editor-hero > .panel__head:first-child h1,
    .site-admin .editor-hero > .panel__head:first-child h2,
    .site-admin .cms-page-hero h1,
    .site-admin .cms-page-hero h2,
    .site-admin .cms-editor__hero h1,
    .site-admin .cms-editor__hero h2,
    .site-admin .project-editor-v2__hero h1,
    .site-admin .project-editor-v2__hero h2,
    .site-admin .notifications-head h1,
    .site-admin .notifications-head h2,
    .site-admin .sdg-master-hero-v2 h1,
    .site-admin .sdg-master-hero-v2 h2,
    .site-admin .translation-hero h1,
    .site-admin .translation-hero h2,
    .site-admin .popup-admin-v2__hero h1,
    .site-admin .popup-admin-v2__hero h2,
    .site-admin .popup-editor-v2__hero h1,
    .site-admin .popup-editor-v2__hero h2,
    .site-admin .da-hero h1,
    .site-admin .da-hero h2,
    .site-admin .homepage-admin-page > .panel__head:first-child h1,
    .site-admin .homepage-admin-page > .panel__head:first-child h2,
    .site-admin .navigation-admin-page > .panel__head:first-child h1,
    .site-admin .navigation-admin-page > .panel__head:first-child h2 {
        font-size: clamp(1.22rem, 6vw, 1.62rem);
    }
    .site-admin .admin-hero__actions,
    .site-admin .cms-page-hero__actions,
    .site-admin .cms-editor__actions,
    .site-admin .project-editor-v2__status,
    .site-admin .review-hero-v2__actions,
    .site-admin .notifications-head__actions,
    .site-admin .da-actions {
        justify-content: stretch;
        width: 100%;
    }
    .page-hero--detail .container {
        border-left-width: 4px;
        border-radius: 18px;
    }
}
/* RS31.24 accent strip paint order guard */
.site-admin .admin-content > .panel > .panel__head:first-child::after,
.site-admin .admin-hero::after,
.site-admin .admin-hero--compact::after,
.site-admin .editor-hero > .panel__head:first-child::after,
.site-admin .cms-page-hero::after,
.site-admin .cms-editor__hero::after,
.site-admin .project-editor-v2__hero::after,
.site-admin .review-hero-v2::after,
.site-admin .notifications-head::after,
.site-admin .sdg-master-hero-v2::after,
.site-admin .translation-hero::after,
.site-admin .popup-admin-v2__hero::after,
.site-admin .popup-editor-v2__hero::after,
.site-admin .da-hero::after,
.site-admin .homepage-admin-page > .panel__head:first-child::after,
.site-admin .navigation-admin-page > .panel__head:first-child::after {
    z-index: 0;
}
.site-admin .admin-content > .panel > .panel__head:first-child > *,
.site-admin .admin-hero > *,
.site-admin .admin-hero--compact > *,
.site-admin .editor-hero > .panel__head:first-child > *,
.site-admin .cms-page-hero > *,
.site-admin .cms-editor__hero > *,
.site-admin .project-editor-v2__hero > *,
.site-admin .review-hero-v2 > *,
.site-admin .notifications-head > *,
.site-admin .sdg-master-hero-v2 > *,
.site-admin .translation-hero > *,
.site-admin .popup-admin-v2__hero > *,
.site-admin .popup-editor-v2__hero > *,
.site-admin .da-hero > *,
.site-admin .homepage-admin-page > .panel__head:first-child > *,
.site-admin .navigation-admin-page > .panel__head:first-child > * {
    position: relative;
    z-index: 1;
}

/* =========================================================
   RS31.27 Admin public cache control
   ========================================================= */
.public-cache-admin .public-cache-hero .panel__head {
    align-items: flex-start;
}
.public-cache-stats .stat-card strong {
    overflow-wrap: anywhere;
}
.public-cache-panel .panel__head form {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    min-width: min(100%, 220px);
}
.public-cache-panel .panel__head form .button {
    width: auto;
    min-width: 180px;
}
.public-cache-details {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    padding: 1rem;
    border-top: 1px solid rgba(15, 23, 42, .08);
}
.public-cache-details article {
    min-width: 0;
    padding: .9rem 1rem;
    border: 1px solid rgba(11, 93, 59, .12);
    border-radius: 18px;
    background: #f8fbf8;
}
.public-cache-details span {
    display: block;
    margin-bottom: .35rem;
    color: #64748b;
    font-size: .82rem;
    font-weight: 700;
}
.public-cache-details strong,
.public-cache-details code {
    color: #0f3f2a;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.public-cache-details code {
    display: block;
    padding: .35rem .5rem;
    border: 1px solid #dbe7dc;
    border-radius: 12px;
    background: #ffffff;
    font-size: .88rem;
    line-height: 1.45;
}
.side-checklist {
    display: grid;
    gap: .5rem;
    margin: .85rem 0 0;
    padding-left: 1.15rem;
    color: #334155;
    line-height: 1.6;
}
.side-checklist li::marker {
    color: #0b5d3b;
}
@media (max-width: 760px) {
    .public-cache-panel .panel__head form,
    .public-cache-panel .panel__head form .button {
        width: 100%;
        min-width: 0;
    }
    .public-cache-details {
        grid-template-columns: 1fr;
        padding: .85rem;
    }
}

/* =========================================================
   RS31.28 Secure CMS rich text editor
   ========================================================= */
.cms-rich-field {
    display: grid;
    gap: .45rem;
}
.cms-rich-field__label {
    display: inline-flex;
    gap: .25rem;
    align-items: center;
    font-weight: 700;
    color: var(--text, #1f2937);
}
.cms-rich-editor {
    display: none;
    border: 1px solid rgba(11, 93, 59, .22);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .045);
    overflow: hidden;
}
.cms-rich-field.is-enhanced .cms-rich-editor {
    display: grid;
}
.cms-rich-field.is-enhanced .cms-rich-editor__source {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.cms-rich-editor__toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    padding: .55rem;
    border-bottom: 1px solid rgba(11, 93, 59, .12);
    background: #f8fcf6;
}
.cms-rich-editor__toolbar button {
    min-height: 34px;
    padding: .35rem .62rem;
    border: 1px solid rgba(11, 93, 59, .24);
    border-radius: 10px;
    background: #fff;
    color: #0b5d3b;
    font: inherit;
    font-size: .88rem;
    font-weight: 600;
    cursor: pointer;
}
.cms-rich-editor__toolbar button:hover,
.cms-rich-editor__toolbar button:focus-visible {
    border-color: #0b5d3b;
    background: #ecf8ef;
    outline: none;
}
.cms-rich-editor__surface {
    min-height: 320px;
    padding: 1rem 1.05rem;
    color: #172033;
    font-size: 1rem;
    line-height: 1.75;
    outline: none;
    overflow-wrap: anywhere;
}
.cms-rich-editor__surface:focus {
    box-shadow: inset 0 0 0 3px rgba(11, 93, 59, .12);
}
.cms-rich-editor__surface:empty::before {
    content: attr(data-placeholder);
    color: #94a3b8;
    pointer-events: none;
}
.cms-rich-editor__surface h2,
.cms-rich-editor__surface h3,
.cms-rich-editor__surface h4 {
    margin: 1rem 0 .45rem;
    color: #0b3d2a;
    line-height: 1.35;
}
.cms-rich-editor__surface p,
.cms-rich-editor__surface ul,
.cms-rich-editor__surface ol,
.cms-rich-editor__surface blockquote,
.cms-rich-editor__surface pre {
    margin: 0 0 .85rem;
}
.cms-rich-editor__surface ul,
.cms-rich-editor__surface ol {
    padding-left: 1.5rem;
}
.cms-rich-editor__surface blockquote {
    padding: .75rem 1rem;
    border-left: 4px solid #f2c230;
    background: #fff9e6;
    border-radius: 0 12px 12px 0;
}
.cms-rich-editor__source {
    min-height: 260px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.rich-text--cms {
    white-space: normal;
}
.rich-text--cms h2,
.rich-text--cms h3,
.rich-text--cms h4 {
    margin: 1.35rem 0 .55rem;
    color: var(--rru-primary, #11385c);
    line-height: 1.35;
}
.rich-text--cms p,
.rich-text--cms ul,
.rich-text--cms ol,
.rich-text--cms blockquote,
.rich-text--cms pre,
.rich-text--cms table {
    margin: 0 0 1rem;
}
.rich-text--cms ul,
.rich-text--cms ol {
    padding-left: 1.55rem;
}
.rich-text--cms blockquote {
    padding: .85rem 1rem;
    border-left: 4px solid var(--rru-gold, #f2b705);
    background: #fff9e6;
    border-radius: 0 14px 14px 0;
}
.rich-text--cms a {
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: .18em;
}
.rich-text--cms table {
    width: 100%;
    border-collapse: collapse;
    display: block;
    overflow-x: auto;
}
.rich-text--cms th,
.rich-text--cms td {
    border: 1px solid var(--border, #d6e1ea);
    padding: .55rem .65rem;
    text-align: left;
}
.rich-text--cms th {
    background: #f8fafc;
    font-weight: 700;
}
@media (max-width: 760px) {
    .cms-rich-editor__toolbar {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .cms-rich-editor__toolbar button {
        width: 100%;
        min-width: 0;
        padding-inline: .45rem;
    }
    .cms-rich-editor__surface {
        min-height: 260px;
        padding: .85rem;
    }
}

/* =========================================================
   RS31.29 Advanced secure CMS rich text editor
   ========================================================= */
.cms-rich-editor--advanced {
    border-color: rgba(11, 93, 59, .28);
    box-shadow: 0 16px 34px rgba(15, 23, 42, .075);
}
.cms-rich-editor__toolbar--advanced {
    display: grid;
    grid-template-columns: 210px repeat(5, max-content);
    align-items: start;
    gap: .45rem;
    padding: .62rem;
    background: #f7fbf4;
    overflow-x: auto;
}
.cms-rich-editor__group {
    display: inline-flex;
    flex-wrap: nowrap;
    gap: .28rem;
    align-items: center;
    padding: .24rem;
    border: 1px solid rgba(11, 93, 59, .12);
    border-radius: 14px;
    background: #ffffff;
}
.cms-rich-editor__group--mode {
    background: #fff9e6;
    border-color: rgba(242, 194, 48, .4);
}
.cms-rich-editor__select {
    width: 100%;
    min-height: 38px;
    border: 1px solid rgba(11, 93, 59, .28);
    border-radius: 12px;
    background: #fff;
    color: #0b3d2a;
    font: inherit;
    font-weight: 700;
    padding: .42rem .58rem;
}
.cms-rich-editor__toolbar--advanced button {
    min-width: 38px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: rgba(11, 93, 59, .24);
    background: #fff;
    color: #0b5d3b;
    white-space: nowrap;
}
.cms-rich-editor__toolbar--advanced button.is-active,
.cms-rich-editor__toolbar--advanced button[aria-pressed="true"] {
    border-color: #0b5d3b;
    background: #e7f6e9;
    color: #073f29;
    box-shadow: inset 0 0 0 1px rgba(11, 93, 59, .18);
}
.cms-rich-editor__surface,
.cms-rich-editor__preview,
.cms-rich-editor__code {
    min-height: 360px;
}
.cms-rich-editor__surface table,
.cms-rich-editor__preview table,
.rich-text--cms table {
    width: 100%;
    border-collapse: collapse;
    margin: 1rem 0;
}
.cms-rich-editor__surface th,
.cms-rich-editor__surface td,
.cms-rich-editor__preview th,
.cms-rich-editor__preview td {
    border: 1px solid #d6e1ea;
    padding: .55rem .65rem;
    min-width: 80px;
}
.cms-rich-editor__surface th,
.cms-rich-editor__preview th {
    background: #f8fafc;
    font-weight: 700;
}
.cms-rich-editor__surface mark,
.cms-rich-editor__preview mark,
.rich-text--cms mark {
    padding: .06rem .18rem;
    border-radius: .3rem;
    background: #fff3bf;
    color: inherit;
}
.cms-rich-editor__surface [align="center"],
.cms-rich-editor__preview [align="center"],
.rich-text--cms [align="center"] { text-align: center; }
.cms-rich-editor__surface [align="right"],
.cms-rich-editor__preview [align="right"],
.rich-text--cms [align="right"] { text-align: right; }
.cms-rich-editor__surface [align="justify"],
.cms-rich-editor__preview [align="justify"],
.rich-text--cms [align="justify"] { text-align: justify; }
.cms-rich-editor__code,
.cms-rich-editor__preview,
.cms-rich-editor__source-help {
    display: none;
}
.cms-rich-editor__code {
    width: 100%;
    border: 0;
    border-top: 1px solid rgba(11, 93, 59, .12);
    border-radius: 0;
    padding: 1rem;
    background: #0f172a;
    color: #e2e8f0;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .9rem;
    line-height: 1.65;
    resize: vertical;
}
.cms-rich-editor__preview {
    padding: 1rem 1.05rem;
    border-top: 1px solid rgba(11, 93, 59, .12);
    background: #fff;
    overflow: auto;
}
.cms-rich-editor__source-help {
    padding: .7rem 1rem;
    border-top: 1px solid rgba(226, 232, 240, .9);
    background: #f8fafc;
    color: #64748b;
    font-size: .88rem;
    font-weight: 600;
}
.cms-rich-editor__status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    padding: .55rem .85rem;
    border-top: 1px solid rgba(11, 93, 59, .12);
    background: #fbfff7;
    color: #52685a;
    font-size: .84rem;
    font-weight: 600;
}
.cms-rich-field.is-source-mode .cms-rich-editor__surface,
.cms-rich-field.is-source-mode .cms-rich-editor__preview,
.cms-rich-field.is-preview-mode .cms-rich-editor__surface,
.cms-rich-field.is-preview-mode .cms-rich-editor__code {
    display: none;
}
.cms-rich-field.is-source-mode .cms-rich-editor__code,
.cms-rich-field.is-source-mode .cms-rich-editor__source-help,
.cms-rich-field.is-preview-mode .cms-rich-editor__preview {
    display: block;
}
.cms-rich-editor--advanced.is-fullscreen {
    position: fixed;
    inset: max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
    z-index: 1300;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    background: #fff;
    box-shadow: 0 30px 80px rgba(15, 23, 42, .28);
}
.cms-rich-editor--advanced.is-fullscreen .cms-rich-editor__surface,
.cms-rich-editor--advanced.is-fullscreen .cms-rich-editor__preview,
.cms-rich-editor--advanced.is-fullscreen .cms-rich-editor__code {
    min-height: 0;
    height: 100%;
    overflow: auto;
}
@media (max-width: 1120px) {
    .cms-rich-editor__toolbar--advanced {
        grid-template-columns: 1fr;
    }
    .cms-rich-editor__group {
        flex-wrap: wrap;
    }
}
@media (max-width: 760px) {
    .cms-rich-editor__toolbar--advanced {
        display: grid;
        grid-template-columns: 1fr;
        overflow: visible;
    }
    .cms-rich-editor__group {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
    }
    .cms-rich-editor__group:first-child,
    .cms-rich-editor__group--mode {
        grid-template-columns: 1fr;
    }
    .cms-rich-editor__toolbar--advanced button,
    .cms-rich-editor__select {
        width: 100%;
        min-width: 0;
    }
    .cms-rich-editor__surface,
    .cms-rich-editor__preview,
    .cms-rich-editor__code {
        min-height: 300px;
    }
}

/* =========================================================
   RS31.30 - Public mobile menu anti-bounce hotfix
   Keep the public menu as a fixed overlay on mobile so it does not jump when
   the sticky header, font loading, or mobile browser chrome changes height.
   ========================================================= */
@media (max-width: 980px) {
    html:has(body.nav-open) {
        overscroll-behavior: none;
    }
    body.site-public.nav-open {
        overflow: hidden;
        touch-action: none;
    }
    .site-public .site-header {
        z-index: 1200;
    }
    .site-public .navbar--clean,
    .site-public .navbar--clean .navbar__inner {
        position: relative;
    }
    .site-public .nav-toggle {
        position: relative;
        z-index: 1220;
        display: inline-grid;
        place-items: center;
        width: 44px;
        height: 44px;
        padding: 0;
        border-radius: 14px;
        border-color: rgba(17, 56, 92, .22);
        background: #ffffff;
        color: var(--rru-primary);
        box-shadow: 0 8px 18px rgba(17, 56, 92, .08);
    }
    .site-public .nav-toggle.is-active {
        background: var(--rru-primary);
        color: #ffffff;
        border-color: var(--rru-primary);
        box-shadow: 0 12px 26px rgba(17, 56, 92, .22);
    }
    .site-public .nav-menu {
        position: fixed !important;
        top: var(--public-menu-top, 84px) !important;
        left: max(10px, env(safe-area-inset-left)) !important;
        right: max(10px, env(safe-area-inset-right)) !important;
        z-index: 1210;
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-3);
        width: auto;
        max-height: var(--public-menu-max-height, calc(100dvh - 96px));
        overflow: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        padding: .82rem;
        padding-bottom: calc(.82rem + env(safe-area-inset-bottom));
        border: 1px solid rgba(17, 56, 92, .16);
        border-radius: 18px;
        background: rgba(255, 255, 255, .985);
        box-shadow: 0 24px 56px rgba(15, 23, 42, .24);
        backdrop-filter: blur(12px) saturate(140%);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate3d(0, -10px, 0) scale(.985);
        transform-origin: top center;
        transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
        will-change: opacity, transform;
    }
    .site-public .nav-menu.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate3d(0, 0, 0) scale(1);
        transition-delay: 0s;
    }
    .site-public .nav-menu .nav-links {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: .38rem;
        align-items: stretch;
        width: 100%;
    }
    .site-public .nav-menu .nav-links a {
        min-height: 46px;
        display: flex;
        align-items: center;
        width: 100%;
        padding: .72rem .86rem;
        border: 1px solid rgba(214, 225, 234, .9);
        border-radius: 14px;
        background: #ffffff;
        color: #1f2937;
        white-space: normal;
        overflow-wrap: anywhere;
        line-height: 1.35;
    }
    .site-public .nav-menu .nav-links a:hover,
    .site-public .nav-menu .nav-links a:focus-visible {
        background: var(--rru-primary-soft);
        border-color: rgba(17, 56, 92, .22);
        color: var(--rru-primary);
        text-decoration: none;
    }
    .site-public .nav-actions {
        border-top: 1px solid rgba(214, 225, 234, .9);
        padding-top: .8rem;
    }
    .site-public .admin-portal-link {
        width: 100%;
        min-height: 46px;
    }
}
@media (max-width: 560px) {
    .site-public .nav-menu {
        left: max(8px, env(safe-area-inset-left)) !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        border-radius: 16px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .site-public .nav-menu {
        transition: none !important;
        transform: none !important;
    }
}
/* RS31.30 iOS touch guard: keep drawer scrollable while page behind stays locked. */
@media (max-width:980px){.site-public .nav-menu{touch-action:pan-y}.site-public .nav-menu *{touch-action:auto}}

/* =========================================================
   RS31.31 - CMS editor toolbar polish
   Make the advanced editor toolbar read like a clean ribbon instead of a dense button wall.
   ========================================================= */
.cms-rich-editor--advanced {
    border: 1px solid rgba(11, 93, 59, .24);
    border-radius: 24px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfef8 100%);
    box-shadow: 0 18px 44px rgba(15, 23, 42, .09);
}
.cms-rich-editor__toolbar--advanced {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    gap: .72rem;
    padding: .82rem .9rem .9rem;
    border-bottom: 1px solid rgba(11, 93, 59, .14);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(248, 252, 246, .98)),
        radial-gradient(circle at top left, rgba(255, 214, 10, .18), transparent 32%);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .055);
    overflow-x: visible;
}
.cms-rich-editor__group {
    position: relative;
    display: inline-flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: center;
    gap: .32rem;
    min-height: 68px;
    padding: 1.45rem .52rem .52rem;
    border: 1px solid rgba(11, 93, 59, .13);
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 8px 18px rgba(15, 23, 42, .045);
}
.cms-rich-editor__group::before {
    content: attr(data-group-label);
    position: absolute;
    top: .36rem;
    left: .58rem;
    max-width: calc(100% - 1.16rem);
    overflow: hidden;
    color: #64748b;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .045em;
    line-height: 1;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.cms-rich-editor__group--block {
    width: min(250px, 100%);
    min-width: 220px;
    border-color: rgba(11, 93, 59, .2);
    background: linear-gradient(180deg, #ffffff, #f4fbef);
}
.cms-rich-editor__group--mode {
    margin-left: auto;
    border-color: rgba(242, 194, 48, .46);
    background: linear-gradient(180deg, #fffdf4, #fff8dc);
}
.cms-rich-editor__select {
    width: 100%;
    min-height: 42px;
    padding: .5rem 2rem .5rem .72rem;
    border: 1px solid rgba(11, 93, 59, .26);
    border-radius: 14px;
    background-color: #ffffff;
    color: #0b3d2a;
    font-size: .92rem;
    font-weight: 700;
    box-shadow: 0 1px 0 rgba(255, 255, 255, .9), inset 0 0 0 1px rgba(255, 255, 255, .62);
}
.cms-rich-editor__toolbar--advanced button {
    position: relative;
    min-width: 40px;
    min-height: 40px;
    padding: .42rem .56rem;
    border: 1px solid rgba(11, 93, 59, .2);
    border-radius: 13px;
    background: #ffffff;
    color: #0b5d3b;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 3px 8px rgba(15, 23, 42, .045);
    transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background-color .14s ease, color .14s ease;
}
.cms-rich-editor__toolbar--advanced button:hover,
.cms-rich-editor__toolbar--advanced button:focus-visible {
    border-color: #0b5d3b;
    background: #eff9ed;
    color: #073f29;
    box-shadow: 0 7px 16px rgba(11, 93, 59, .12);
    transform: translateY(-1px);
    outline: none;
}
.cms-rich-editor__toolbar--advanced button:active {
    transform: translateY(0);
    box-shadow: inset 0 2px 5px rgba(15, 23, 42, .08);
}
.cms-rich-editor__toolbar--advanced button.is-active,
.cms-rich-editor__toolbar--advanced button[aria-pressed="true"] {
    border-color: #0b5d3b;
    background: linear-gradient(180deg, #e9f8e8, #dcf2dd);
    color: #063c27;
    box-shadow: inset 0 0 0 1px rgba(11, 93, 59, .18), 0 7px 16px rgba(11, 93, 59, .1);
}
.cms-rich-editor__button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.1rem;
    font-weight: 700;
    line-height: 1;
}
.cms-rich-editor__button-label {
    display: none;
}
.cms-rich-editor__group--mode button {
    min-width: auto;
    padding-inline: .72rem;
    border-color: rgba(242, 194, 48, .5);
    color: #6b4e00;
}
.cms-rich-editor__group--mode button[data-rich-command="fullscreen"] {
    min-width: 42px;
    padding-inline: .55rem;
}
.cms-rich-editor__group--insert button[data-rich-command="createLink"],
.cms-rich-editor__group--insert button[data-rich-command="insertTable"] {
    border-color: rgba(37, 99, 235, .22);
    color: #1d4ed8;
}
.cms-rich-editor__group--insert button[data-rich-command="createLink"]:hover,
.cms-rich-editor__group--insert button[data-rich-command="insertTable"]:hover,
.cms-rich-editor__group--insert button[data-rich-command="createLink"]:focus-visible,
.cms-rich-editor__group--insert button[data-rich-command="insertTable"]:focus-visible {
    border-color: #2563eb;
    background: #eff6ff;
    color: #1e40af;
}
.cms-rich-editor__group--inline button[data-rich-command="hiliteColor"] {
    color: #8a5a00;
    background: #fff9db;
    border-color: rgba(245, 158, 11, .25);
}
.cms-rich-editor__surface,
.cms-rich-editor__preview,
.cms-rich-editor__code {
    border-top: 0;
}
.cms-rich-editor__surface {
    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        radial-gradient(circle at top right, rgba(11, 93, 59, .05), transparent 34%) border-box;
}
.cms-rich-editor__status {
    padding: .68rem 1rem;
    background: linear-gradient(180deg, #ffffff, #f8fcf4);
    color: #475569;
}
.cms-rich-editor__status [data-rich-count] {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: .22rem .58rem;
    border: 1px solid rgba(11, 93, 59, .14);
    border-radius: 999px;
    background: #ffffff;
    color: #0b5d3b;
    font-weight: 700;
}
.cms-rich-editor--advanced.is-fullscreen .cms-rich-editor__toolbar--advanced {
    border-radius: 24px 24px 0 0;
}
@media (max-width: 1180px) {
    .cms-rich-editor__toolbar--advanced {
        display: flex !important;
        overflow-x: auto;
        flex-wrap: nowrap;
        align-items: stretch;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }
    .cms-rich-editor__group {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }
    .cms-rich-editor__group--mode {
        margin-left: 0;
    }
}
@media (max-width: 760px) {
    .cms-rich-editor--advanced {
        border-radius: 18px;
    }
    .cms-rich-editor__toolbar--advanced {
        gap: .58rem;
        padding: .68rem;
    }
    .cms-rich-editor__group {
        display: flex;
        flex-wrap: wrap;
        width: auto;
        min-width: 190px;
        min-height: 66px;
        padding: 1.35rem .45rem .45rem;
    }
    .cms-rich-editor__group--block {
        min-width: 230px;
    }
    .cms-rich-editor__group--inline {
        min-width: 286px;
    }
    .cms-rich-editor__group--mode {
        min-width: 246px;
    }
    .cms-rich-editor__toolbar--advanced button {
        width: auto;
        min-width: 39px;
        min-height: 39px;
        padding-inline: .52rem;
    }
    .cms-rich-editor__select {
        width: 100%;
    }
}

/* =========================================================
   RS31.32 - Public SDG 17-color top strip
   Add a stable 17-segment SDG color band above the public website header.
   ========================================================= */
.site-public .sdg-color-strip.border-box,
.site-public .sdg-color-strip.border-box-width-50 {
    display: grid;
    grid-template-columns: repeat(17, minmax(0, 1fr));
    width: 100%;
    max-width: none;
    height: 8px;
    min-height: 8px;
    overflow: hidden;
    border: 0;
    background: #ffffff;
    box-shadow: inset 0 -1px 0 rgba(15, 23, 42, .08);
}
.site-public .sdg-color-strip .border-bg {
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
}
.site-public .sdg-color-strip .border-bg--sdg-1 { background: #e5243b; }
.site-public .sdg-color-strip .border-bg--sdg-2 { background: #dda63a; }
.site-public .sdg-color-strip .border-bg--sdg-3 { background: #4c9f38; }
.site-public .sdg-color-strip .border-bg--sdg-4 { background: #c5192d; }
.site-public .sdg-color-strip .border-bg--sdg-5 { background: #ff3a21; }
.site-public .sdg-color-strip .border-bg--sdg-6 { background: #26bde2; }
.site-public .sdg-color-strip .border-bg--sdg-7 { background: #fcc30b; }
.site-public .sdg-color-strip .border-bg--sdg-8 { background: #a21942; }
.site-public .sdg-color-strip .border-bg--sdg-9 { background: #fd6925; }
.site-public .sdg-color-strip .border-bg--sdg-10 { background: #dd1367; }
.site-public .sdg-color-strip .border-bg--sdg-11 { background: #fd9d24; }
.site-public .sdg-color-strip .border-bg--sdg-12 { background: #bf8b2e; }
.site-public .sdg-color-strip .border-bg--sdg-13 { background: #3f7e44; }
.site-public .sdg-color-strip .border-bg--sdg-14 { background: #0a97d9; }
.site-public .sdg-color-strip .border-bg--sdg-15 { background: #56c02b; }
.site-public .sdg-color-strip .border-bg--sdg-16 { background: #00689d; }
.site-public .sdg-color-strip .border-bg--sdg-17 { background: #19486a; }
@media (max-width: 760px) {
    .site-public .sdg-color-strip.border-box,
    .site-public .sdg-color-strip.border-box-width-50 {
        height: 6px;
        min-height: 6px;
    }
}


/* =========================================================
   RS31.33 - Public announcement popup true full-image modal
   Make the announcement image own the modal surface with no white frame/padding.
   ========================================================= */
.announcement-popup {
    padding: max(.5rem, env(safe-area-inset-top)) max(.5rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left)) !important;
    place-items: center !important;
    overflow: auto;
    overscroll-behavior: contain;
}
.announcement-popup__dialog {
    width: fit-content !important;
    max-width: calc(100vw - max(1rem, env(safe-area-inset-left) + env(safe-area-inset-right))) !important;
    max-height: calc(100dvh - max(1rem, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
    display: block !important;
    gap: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: clamp(14px, 2.3vw, 26px) !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}
.announcement-popup__image-wrap {
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    max-height: inherit !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    line-height: 0 !important;
    box-shadow: 0 28px 86px rgba(0,0,0,.42) !important;
}
.announcement-popup__image-wrap a {
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    max-height: inherit !important;
    line-height: 0 !important;
}
.announcement-popup__image-wrap img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: calc(100vw - max(1rem, env(safe-area-inset-left) + env(safe-area-inset-right))) !important;
    max-height: calc(100dvh - max(1rem, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
    object-fit: contain !important;
    background: transparent !important;
    border: 0 !important;
}
.announcement-popup__close {
    top: clamp(.45rem, 1.8vw, .8rem) !important;
    right: clamp(.45rem, 1.8vw, .8rem) !important;
    z-index: 5 !important;
    border: 1px solid rgba(255,255,255,.26) !important;
    background: rgba(15,23,42,.72) !important;
    backdrop-filter: blur(10px);
}
.announcement-popup__actions {
    position: absolute !important;
    left: 50% !important;
    bottom: clamp(.55rem, 2vw, .9rem) !important;
    z-index: 4 !important;
    display: flex !important;
    width: auto !important;
    max-width: calc(100% - 1rem) !important;
    margin: 0 !important;
    transform: translateX(-50%) !important;
    justify-content: center !important;
    pointer-events: auto !important;
}
.announcement-popup__actions .button {
    min-height: 40px !important;
    border-color: rgba(255,255,255,.34) !important;
    background: rgba(15,23,42,.72) !important;
    color: #fff !important;
    box-shadow: 0 14px 38px rgba(0,0,0,.28) !important;
    backdrop-filter: blur(10px);
}
.announcement-popup__actions .button:hover,
.announcement-popup__actions .button:focus-visible {
    background: rgba(15,23,42,.9) !important;
    color: #fff !important;
}
@supports not (height: 100dvh) {
    .announcement-popup__dialog {
        max-height: calc(100vh - 1rem) !important;
    }
    .announcement-popup__image-wrap img {
        max-height: calc(100vh - 1rem) !important;
    }
}
@media (max-width: 640px) {
    .announcement-popup {
        padding: max(.35rem, env(safe-area-inset-top)) max(.35rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left)) !important;
        align-items: center !important;
        justify-items: center !important;
    }
    .announcement-popup__dialog {
        max-width: calc(100vw - max(.7rem, env(safe-area-inset-left) + env(safe-area-inset-right))) !important;
        max-height: calc(100dvh - max(.7rem, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
        margin: auto !important;
        border-radius: clamp(12px, 4vw, 20px) !important;
    }
    .announcement-popup__image-wrap img {
        max-width: calc(100vw - max(.7rem, env(safe-area-inset-left) + env(safe-area-inset-right))) !important;
        max-height: calc(100dvh - max(.7rem, env(safe-area-inset-top) + env(safe-area-inset-bottom))) !important;
    }
    .announcement-popup__close {
        width: 38px !important;
        height: 38px !important;
        font-size: 1.4rem !important;
    }
    .announcement-popup__actions {
        bottom: .45rem !important;
        max-width: calc(100% - .7rem) !important;
    }
    .announcement-popup__actions .button {
        width: auto !important;
        max-width: 100% !important;
        padding-inline: .85rem !important;
        font-size: .86rem !important;
        white-space: nowrap !important;
    }
}
/* RS31.37: Thai helper text for English labels in project editor */
.project-editor-v2 .admin-bilingual-label {
    display: inline-flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .28rem .45rem;
    max-width: 100%;
    line-height: 1.25;
    vertical-align: baseline;
}
.project-editor-v2 .admin-bilingual-label small {
    display: inline-block;
    color: var(--muted, #667085);
    font-size: .76rem;
    font-weight: 500;
    line-height: 1.25;
    letter-spacing: 0;
}
.project-editor-v2 label > .admin-bilingual-label,
.project-editor-v2 legend > .admin-bilingual-label,
.project-editor-v2 summary > .admin-bilingual-label,
.project-editor-v2__savebar strong > .admin-bilingual-label {
    margin-bottom: .28rem;
}
.editor-compact-details > summary .admin-bilingual-label {
    align-items: center;
}
@media (max-width: 560px) {
    .project-editor-v2 .admin-bilingual-label {
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        gap: .1rem;
    }
    .editor-compact-details > summary .admin-bilingual-label {
        align-items: flex-start;
    }
}


/* RS31.45 Facebook import for SDGs announcements */
.project-master-picker {
    margin: .95rem 0 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(13,127,168,.08), rgba(255,255,255,.92));
}
.project-master-picker .editor-grid { align-items: end; }
.project-master-picker__current { margin: .55rem 0 0; color: var(--text-muted); }
.project-master-picker select { width: 100%; }
@media (max-width: 720px) {
    .project-master-picker .button { width: 100%; }
}

/* RS31.51 Project form: title comes directly from Project Master */
.project-master-title-field select { width: 100%; }
.project-master-title-field small {
    display: block;
    margin-top: .35rem;
    color: var(--text-muted);
    font-weight: 600;
    line-height: 1.45;
}

/* RS31.52 Public Projects Multi-goal Filter */
.filter-form--projects {
    grid-template-columns: 190px minmax(260px, 1fr) auto;
}
.filter-form--projects .sdg-filter-field {
    grid-column: 1 / -1;
    display: grid;
    gap: .45rem;
    margin: 0;
    padding: 0;
    border: 0;
    min-width: 0;
}
.filter-form--projects .sdg-filter-field legend {
    padding: 0;
    font-weight: 700;
    color: var(--text);
}
.filter-help {
    margin: 0;
    color: var(--text-muted);
    font-size: .92rem;
    font-weight: 500;
}
.filter-form--projects .sdg-filter-strip {
    margin: .35rem 0 .25rem;
}
.sdg-filter-card {
    cursor: pointer;
    user-select: none;
}
.sdg-filter-card input {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    opacity: 0;
    pointer-events: none;
}
.sdg-filter-card__visual {
    display: grid;
    gap: .28rem;
    justify-items: center;
}
.sdg-filter-card input:focus-visible + .sdg-filter-card__visual img {
    outline: 3px solid rgba(0,163,168,.28);
    outline-offset: 3px;
}
.sdg-filter-card input:checked + .sdg-filter-card__visual img {
    transform: translateY(-2px);
    border-color: var(--goal-color, var(--rru-primary));
    box-shadow: 0 12px 24px rgba(15,61,98,.18);
}
.sdg-filter-card input:checked + .sdg-filter-card__visual span {
    color: var(--goal-color, var(--rru-primary));
}
@media (max-width: 760px) {
    .filter-form--projects {
        grid-template-columns: 1fr;
    }
    .filter-form--projects .sdg-filter-field {
        grid-column: auto;
    }
}

/* RS31.53 Admin projects: restore project-style view */
.admin-projects-panel {
    display: grid;
    gap: var(--space-4);
}
.admin-projects-panel--compact { gap: .85rem; }
.admin-projects-head .eyebrow {
    color: var(--rru-primary);
    margin-bottom: .2rem;
}
.admin-projects-head__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    align-items: center;
    justify-content: flex-end;
}
.admin-projects-view-toggle {
    display: inline-flex;
    gap: .2rem;
    padding: .18rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 10px;
    background: #f8fafc;
}
.admin-projects-view-toggle__btn {
    width: 2.1rem;
    height: 2.1rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    display: inline-grid;
    place-items: center;
    cursor: pointer;
}
.admin-projects-view-toggle__btn:hover { color: #0f766e; background: #fff; }
.admin-projects-view-toggle__btn.is-active {
    background: #0f766e;
    color: #fff;
}
.admin-projects-view-toggle__btn:focus-visible {
    outline: 2px solid #0f766e;
    outline-offset: 1px;
}
.admin-projects-panel--compact .admin-projects-head h2 { margin: 0 0 .15rem; font-size: 1.25rem; }
.admin-projects-panel--compact .admin-projects-head p { margin: 0; font-size: .9rem; line-height: 1.4; color: var(--text-muted); }
.admin-project-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}
.admin-project-card {
    background: #fff;
    border: 1px solid rgba(16, 83, 55, .14);
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.admin-project-card__media {
    position: relative;
    aspect-ratio: 16 / 9;
    background: linear-gradient(135deg, #edf7f1 0%, #fff7d6 100%);
    overflow: hidden;
}
.admin-project-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.admin-project-card__placeholder {
    height: 100%;
    display: grid;
    place-content: center;
    gap: .3rem;
    text-align: center;
    padding: .8rem;
    color: var(--rru-primary);
}
.admin-project-card__placeholder span {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    margin: 0 auto;
    color: #fff;
    background: linear-gradient(135deg, #0a6b4c, #17a275);
    font-weight: 700;
    font-size: .75rem;
}
.admin-project-card__placeholder strong { font-size: .82rem; }
.admin-project-card__status {
    position: absolute;
    z-index: 2;
    right: .65rem;
    top: .65rem;
}
.admin-project-card__check {
    position: absolute;
    z-index: 2;
    left: .65rem;
    top: .65rem;
    margin: 0;
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 8px;
    background: rgba(255,255,255,.92);
    display: grid;
    place-items: center;
    box-shadow: 0 6px 16px rgba(15, 23, 42, .12);
}
.admin-project-card__check input {
    width: 1rem !important;
    height: 1rem !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
}
.admin-project-card__body {
    padding: .8rem .85rem;
    display: grid;
    gap: .5rem;
    flex: 1;
}
.admin-project-card__goals { min-height: 24px; }
.admin-project-card__goals em {
    font-style: normal;
    color: var(--text-muted);
    font-size: .8rem;
}
.admin-project-card h3 {
    margin: 0;
    color: var(--text);
    font-size: .98rem;
    line-height: 1.4;
}
.admin-project-card p {
    margin: 0;
    color: var(--text-muted);
    font-size: .86rem;
    line-height: 1.45;
}
.admin-project-card__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .4rem;
    margin: 0;
}
.admin-project-card__meta div {
    min-width: 0;
    padding: .45rem .5rem;
    border: 1px solid rgba(16, 83, 55, .1);
    border-radius: 10px;
    background: #fbfdfb;
}
.admin-project-card__meta dt {
    margin: 0 0 .1rem;
    color: var(--text-muted);
    font-size: .72rem;
    font-weight: 600;
}
.admin-project-card__meta dd {
    margin: 0;
    color: var(--text);
    font-size: .8rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.admin-project-card__metrics {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.admin-project-card__metrics span {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    border-radius: 999px;
    background: rgba(12, 112, 75, .08);
    color: var(--rru-primary);
    padding: .22rem .55rem;
    font-size: .78rem;
    font-weight: 600;
}
.admin-project-card__actions {
    border-top: 1px solid rgba(16, 83, 55, .1);
    padding: .65rem .85rem;
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
    flex-wrap: wrap;
}
.admin-projects-panel[data-view="list"] [data-admin-projects-grid] { display: none !important; }
.admin-projects-panel[data-view="grid"] [data-admin-projects-list] { display: none !important; }
.admin-projects-panel[data-view="grid"] [data-admin-projects-grid] { display: grid; }
.admin-projects-filter {
    margin: 0;
    align-items: end;
}
.admin-projects-filter--compact {
    gap: .55rem .75rem;
    padding: .7rem .85rem;
}
.admin-projects-filter--compact label { font-size: .84rem; gap: .25rem; }
.admin-projects-batch { display: grid; gap: .55rem; }
.admin-projects-batch__bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .85rem;
    padding: .55rem .75rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 12px;
    background: #f8fafc;
}
.admin-projects-batch__select-all {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin: 0;
    font-size: .86rem;
    font-weight: 600;
    color: #334155;
    cursor: pointer;
}
.admin-projects-batch__select-all::before { display: none !important; content: none !important; }
.admin-projects-batch__select-all input[type="checkbox"] {
    width: 1rem !important;
    height: 1rem !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
}
.admin-projects-batch__meta {
    display: inline-flex;
    align-items: baseline;
    gap: .3rem;
    font-size: .84rem;
    color: #64748b;
}
.admin-projects-batch__meta [data-admin-projects-selected-count] {
    font-weight: 700;
    color: #0f766e;
}
.admin-projects-batch__bar .button { margin-left: 0; }
.admin-projects-batch__status,
.admin-projects-batch__bar form[data-admin-projects-batch-delete-form] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-left: auto;
}
.admin-projects-batch__status-field {
    margin: 0;
    min-width: 0;
}
.admin-projects-batch__status-field select,
.admin-projects-batch__status-field input[type="text"] {
    min-height: 2rem;
    min-width: 10rem;
    max-width: 14rem;
    margin: 0;
    font-size: .86rem;
}
.admin-projects-batch__status-field--comment input {
    min-width: 11rem;
    max-width: 16rem;
}
.admin-projects-batch .visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.admin-projects-table-wrap { margin: 0; }
.admin-projects-table { width: 100%; }
.admin-projects-table th,
.admin-projects-table td {
    padding: .55rem .65rem;
    vertical-align: middle;
    font-size: .9rem;
}
.admin-projects-table__check { width: 2.4rem; text-align: center; }
.admin-projects-table__check input {
    width: 1rem !important;
    height: 1rem !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0;
}
.admin-projects-row__title {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: .55rem;
    align-items: start;
    min-width: 0;
}
.admin-projects-row__title strong {
    display: block;
    color: #0f172a;
    font-size: .92rem;
    line-height: 1.35;
}
.admin-projects-row__title small {
    display: block;
    color: #64748b;
    line-height: 1.35;
    margin-top: .12rem;
}
.admin-projects-row__counts { color: #0f766e !important; font-weight: 600; }
.admin-projects-row__thumb {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    object-fit: cover;
    display: block;
    background: #e2e8f0;
}
.admin-projects-row__thumb--empty {
    display: grid;
    place-items: center;
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .04em;
    color: #fff;
    background: linear-gradient(135deg, #0a6b4c, #17a275);
}
.admin-projects-row__goals {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem;
    min-width: 4.5rem;
}
.admin-projects-row__goals em {
    font-style: normal;
    color: #94a3b8;
}
.admin-projects-row.is-locked { opacity: .92; }
.admin-projects-empty {
    border: 1px dashed rgba(16, 83, 55, .24);
    border-radius: 14px;
    background: #fbfdfb;
    padding: 1.25rem;
}
@media (max-width: 1180px) {
    .admin-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .admin-projects-batch__bar { display: grid; gap: .5rem; }
    .admin-projects-batch__bar .button { margin-left: 0; width: 100%; }
    .admin-projects-row__title { grid-template-columns: 36px minmax(0, 1fr); }
    .admin-projects-head__actions { width: 100%; justify-content: stretch; }
    .admin-projects-view-toggle { margin-right: auto; }
    .admin-project-grid { grid-template-columns: 1fr; }
    .admin-project-card__meta { grid-template-columns: 1fr; }
    .admin-project-card__actions { justify-content: stretch; }
    .admin-project-card__actions .button,
    .admin-project-card__actions .inline-form,
    .admin-project-card__actions .inline-form .button { width: 100%; }
}

/* =========================================================
   RS31.54 Project Create Compact Master + SDG Tooltip
   ========================================================= */
.project-editor-v2 .project-master-title-field {
    display: grid;
    gap: .45rem;
    min-width: 0;
    color: #475569;
    font-weight: 500;
    font-size: .93rem;
    line-height: 1.4;
    letter-spacing: .005em;
}
.project-editor-v2 .project-master-title-field > label {
    color: inherit;
    font: inherit;
    margin: 0;
}
.project-editor-v2 .project-master-title-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .75rem;
    margin-top: .15rem;
}
.project-editor-v2 .project-master-title-actions .check-line {
    width: fit-content;
    margin: 0;
    padding: .42rem .65rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: .84rem;
    font-weight: 500;
}
.project-editor-v2 .project-master-title-actions .button {
    min-height: 34px;
    padding: .42rem .8rem;
    border-radius: 999px;
    font-size: .86rem;
}
.project-editor-v2 .project-master-picker__current {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .25rem;
    width: fit-content;
    max-width: 100%;
    margin: .1rem 0 0;
    padding: .38rem .6rem;
    border: 1px solid rgba(11,93,59,.12);
    border-radius: 999px;
    background: #f7fbef;
    color: var(--text-muted);
    font-size: .82rem;
    font-weight: 500;
}
.project-editor-v2 #project-sdgs .editor-compact-details,
.project-editor-v2 #project-sdgs .indicator-group-v2,
.project-editor-v2 #project-sdgs .indicator-group-v2__items,
.project-editor-v2 #project-sdgs .goal-selector-v2__grid {
    overflow: visible;
}
.project-editor-v2 .goal-selector-v2--lean .goal-selector-v2__grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}
.project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact {
    min-height: 58px;
    padding: .5rem .55rem .48rem;
    gap: .12rem;
}
.project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact span {
    padding: .14rem .4rem;
    font-size: .73rem;
}
.project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact strong {
    display: block;
    min-width: 0;
    padding-right: 1.05rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .76rem;
    line-height: 1.22;
}
.project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact:has(input:checked)::after {
    content: "✓";
    right: .5rem;
    bottom: .35rem;
    font-size: .8rem;
    line-height: 1;
}
.project-editor-v2 .indicator-check-v2--compact {
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
    gap: .45rem .6rem;
    padding: .55rem .65rem;
}
.project-editor-v2 .indicator-check-v2--compact input {
    grid-row: auto;
    margin-top: 0;
}
.project-editor-v2 .indicator-check-v2--compact span {
    white-space: nowrap;
}
.project-editor-v2 .indicator-check-v2--compact strong {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .86rem;
}
.project-editor-v2 .indicator-check-v2--compact small {
    grid-column: 3;
    margin-top: -.25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .74rem;
}
.project-editor-v2 .goal-check-v2--compact[data-sdg-tooltip],
.project-editor-v2 .indicator-check-v2--compact[data-sdg-tooltip] {
    cursor: help;
}
.admin-sdg-hover-tooltip {
    position: fixed;
    z-index: 9999;
    padding: .65rem .8rem;
    border: 1px solid rgba(15,23,42,.12);
    border-radius: 12px;
    background: #0f172a;
    color: #fff;
    box-shadow: 0 18px 40px rgba(15,23,42,.24);
    font-size: .84rem;
    font-weight: 600;
    line-height: 1.48;
    white-space: normal;
    pointer-events: none;
}
.admin-sdg-hover-tooltip::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -.38rem;
    transform: translateX(-50%);
    border: .4rem solid transparent;
    border-top-color: #0f172a;
}
.admin-sdg-hover-tooltip.is-below::after {
    top: -.38rem;
    bottom: auto;
    border-top-color: transparent;
    border-bottom-color: #0f172a;
}
@media (max-width: 1320px) {
    .project-editor-v2 .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}
@media (max-width: 980px) {
    .project-editor-v2 .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    .project-editor-v2 .indicator-check-v2--compact {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .project-editor-v2 .indicator-check-v2--compact span,
    .project-editor-v2 .indicator-check-v2--compact small {
        grid-column: 2;
    }
}
@media (max-width: 767px) {
    .project-editor-v2 .project-master-title-actions {
        display: grid;
        grid-template-columns: 1fr;
    }
    .project-editor-v2 .project-master-title-actions .check-line,
    .project-editor-v2 .project-master-title-actions .button {
        width: 100%;
        justify-content: center;
    }
    .project-editor-v2 .goal-selector-v2--lean .goal-selector-v2__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
}

/* RS31.55 Facebook import rule rebuild */
.project-master-title-field__custom {
    margin-top: .65rem;
}
.project-master-title-field__facebook-help {
    display: block;
    margin-top: .35rem;
    color: var(--text-muted);
    font-weight: 600;
}
.project-master-title-field__custom-label {
    display: block;
    margin-top: .65rem;
    font-weight: 600;
    color: var(--text-strong);
}
.project-master-title-field__custom-label .project-master-title-field__custom {
    margin-top: .35rem;
}


/* RS31.56 Save pre-validation + SDG tooltip stability */
.project-validation-summary {
    margin: 0 0 var(--space-4);
    padding: .9rem 1rem;
    border: 1px solid rgba(185,28,28,.18);
    border-left: 5px solid #b91c1c;
    border-radius: 16px;
    background: #fef2f2;
    color: #7f1d1d;
    box-shadow: 0 12px 26px rgba(185,28,28,.08);
}
.project-validation-summary[hidden] {
    display: none !important;
}
.project-validation-summary strong {
    display: block;
    margin-bottom: .4rem;
    color: #7f1d1d;
    font-size: .96rem;
}
.project-validation-summary ul {
    margin: 0;
    padding-left: 1.15rem;
}
.project-validation-summary li + li {
    margin-top: .22rem;
}
.project-editor-v2 input.is-project-invalid,
.project-editor-v2 textarea.is-project-invalid,
.project-editor-v2 select.is-project-invalid {
    border-color: #dc2626 !important;
    background: #fff7f7 !important;
    box-shadow: 0 0 0 3px rgba(220,38,38,.12) !important;
}
.project-editor-v2 .goal-selector-v2.is-project-invalid {
    border: 1px solid rgba(220,38,38,.34);
    border-radius: 18px;
    padding: .75rem;
    background: #fff7f7;
    box-shadow: 0 0 0 3px rgba(220,38,38,.08);
}

/* RS31.57 Admin menu + permission usability polish */
.site-admin .admin-menu__link[data-menu-permission] {
    position: relative;
}
.site-admin .admin-menu__link[data-menu-permission]::after {
    content: attr(data-menu-permission);
    display: none;
    max-width: 12.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .66rem;
    font-weight: 600;
    color: rgba(255,255,255,.56);
}
.site-admin .admin-menu__link[data-menu-permission]:hover::after,
.site-admin .admin-menu__link[data-menu-permission]:focus-visible::after,
.site-admin .admin-menu__link.is-active[data-menu-permission]::after {
    display: inline-block;
}
.site-admin .admin-menu__link[data-menu-permission=""]::after {
    display: none !important;
}
.permission-matrix__head {
    align-items: flex-start;
    gap: 1rem;
}
.permission-matrix__summary {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    min-width: 6.25rem;
    padding: .72rem .9rem;
    border: 1px solid rgba(17,56,92,.14);
    border-radius: 18px;
    background: linear-gradient(180deg,#ffffff 0%,#f4f9fd 100%);
    color: var(--rru-primary);
    box-shadow: var(--shadow-sm);
}
.permission-matrix__summary strong {
    font-size: 1.55rem;
    line-height: 1;
}
.permission-matrix__summary span {
    color: var(--text-muted);
    font-size: .76rem;
    font-weight: 600;
}
.permission-toolbar {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto;
    gap: .75rem;
    align-items: end;
    margin: .95rem 0 1rem;
    padding: .9rem;
    border: 1px solid rgba(17,56,92,.12);
    border-radius: 18px;
    background: #f8fbfd;
}
.permission-toolbar__search {
    display: grid;
    gap: .35rem;
    font-weight: 700;
    color: var(--rru-primary);
}
.permission-toolbar__search input {
    min-height: 42px;
}
.permission-toolbar__selected {
    min-height: 42px;
    padding: .58rem .8rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
}
.permission-group-list {
    display: grid;
    gap: 1rem;
}
.permission-group {
    padding: 1rem;
    border: 1px solid rgba(17,56,92,.12);
    border-radius: 20px;
    background: #fff;
}
.permission-group:last-child {
    border-bottom: 1px solid rgba(17,56,92,.12);
}
.permission-group__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .85rem;
}
.permission-group__head h3 {
    margin: 0;
    color: var(--rru-primary);
    text-transform: none;
    letter-spacing: 0;
    font-size: 1.03rem;
}
.permission-group__head p {
    margin: .25rem 0 0;
    color: var(--text-muted);
    font-size: .88rem;
}
.permission-group__count {
    flex: 0 0 auto;
    padding: .28rem .6rem;
    border-radius: 999px;
    background: var(--rru-primary-soft);
    color: var(--rru-primary);
    font-size: .75rem;
    font-weight: 700;
}
.check-card--permission {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: start;
    gap: .7rem;
    min-height: 76px;
    padding: .82rem .9rem;
    border-radius: 16px;
    border: 1px solid rgba(17,56,92,.12);
    background: linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
.check-card--permission:hover {
    border-color: rgba(8,122,130,.34);
    box-shadow: 0 10px 24px rgba(17,56,92,.08);
}
.check-card--permission input[type="checkbox"] {
    margin-top: .15rem;
}
.check-card--permission .permission-card__body {
    min-width: 0;
    display: grid;
    gap: .22rem;
    width: auto;
    height: auto;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
}
.check-card--permission .permission-card__body strong {
    display: block;
    color: var(--text);
    font-size: .92rem;
    line-height: 1.35;
}
.check-card--permission .permission-card__body small {
    display: block;
    width: fit-content;
    max-width: 100%;
    padding: .12rem .45rem;
    border-radius: 999px;
    background: var(--surface-soft);
    color: var(--rru-primary);
    font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
    font-size: .72rem;
    font-weight: 600;
    overflow-wrap: anywhere;
}
.permission-card__action {
    align-self: start;
    padding: .18rem .48rem;
    border-radius: 999px;
    background: #eef7f7;
    color: var(--rru-accent-strong);
    font-size: .72rem;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}
.permission-empty {
    margin: 1rem 0 0;
    padding: 1rem;
    border: 1px dashed var(--border);
    border-radius: 16px;
    background: var(--surface-soft);
    color: var(--text-muted);
    text-align: center;
    font-weight: 600;
}
@media (max-width: 760px) {
    .permission-toolbar,
    .permission-group__head,
    .check-card--permission {
        grid-template-columns: 1fr;
    }
    .permission-toolbar__selected,
    .permission-group__count,
    .permission-card__action {
        justify-self: start;
    }
    .permission-matrix__summary {
        width: 100%;
        justify-items: start;
    }
    .site-admin .admin-menu__link[data-menu-permission]::after {
        display: none !important;
    }
}

/* RS31.58 Facebook preview image validation */

/* RS31.59 Compact SDG workspace for project create/edit */
.project-editor-v2 #project-sdgs .goal-selector-v2--workspace {
    padding: .8rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 20px;
    background: linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
}
.project-editor-v2 #project-sdgs .goal-selector-v2--workspace legend {
    display: grid;
    gap: .18rem;
    margin-bottom: .75rem;
    color: #0f172a;
}
.project-editor-v2 #project-sdgs .goal-selector-v2--workspace legend small {
    display: block;
    color: #64748b;
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.45;
}
.project-editor-v2 #project-sdgs .goal-selector-v2__grid--workspace {
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
    gap: .55rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace {
    min-height: 76px;
    padding: .58rem .6rem .55rem;
    border-radius: 16px;
    border-color: rgba(15,23,42,.09);
    background: #fff;
    box-shadow: 0 10px 24px rgba(15,23,42,.04);
    cursor: pointer;
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace:hover,
.project-editor-v2 #project-sdgs .goal-check-v2--workspace.is-active {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--goal-color) 45%, #ffffff 55%);
    box-shadow: 0 14px 30px rgba(15,23,42,.08);
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace.is-selected {
    background: color-mix(in srgb, var(--goal-color) 10%, #ffffff 90%);
    border-color: color-mix(in srgb, var(--goal-color) 58%, #ffffff 42%);
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace span {
    width: fit-content;
    background: color-mix(in srgb, var(--goal-color) 14%, #ffffff 86%);
    color: color-mix(in srgb, var(--goal-color) 72%, #0f172a 28%);
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace strong {
    padding-right: 0;
    font-size: .78rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace em {
    display: block;
    min-width: 0;
    color: #64748b;
    font-size: .7rem;
    font-style: normal;
    font-weight: 600;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace.is-selected em,
.project-editor-v2 #project-sdgs .goal-check-v2--workspace.has-indicators em {
    color: color-mix(in srgb, var(--goal-color) 70%, #0f172a 30%);
}
.project-editor-v2 #project-sdgs .goal-check-v2--workspace:has(input:checked)::after {
    right: .54rem;
    bottom: .48rem;
}
.sdg-workspace-v3 {
    display: grid;
    gap: .85rem;
}
.sdg-workspace-v3__body {
    display: grid;
    grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
}
.sdg-workspace-v3__side,
.sdg-target-workspace {
    min-width: 0;
}
.sdg-workspace-v3__side {
    position: sticky;
    top: 82px;
    display: grid;
    gap: .7rem;
    padding: .8rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15,23,42,.05);
}
.sdg-workspace-v3__side-head {
    display: flex;
    justify-content: space-between;
    gap: .55rem;
    align-items: center;
}
.sdg-workspace-v3__side-head strong {
    color: #0f172a;
    font-size: .93rem;
}
.sdg-workspace-v3__side-head small {
    padding: .2rem .5rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
}
.sdg-selected-goal-tabs {
    display: grid;
    gap: .45rem;
}
.sdg-selected-goal-tab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    width: 100%;
    padding: .5rem .58rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #f8fafc;
    color: #334155;
    font: inherit;
    font-size: .82rem;
    font-weight: 600;
    cursor: pointer;
}
.sdg-selected-goal-tab:hover,
.sdg-selected-goal-tab.is-active {
    border-color: rgba(11,93,59,.22);
    background: #edf7ef;
    color: #0b5d3b;
}
.sdg-selected-goal-tab small {
    display: inline-grid;
    place-items: center;
    min-width: 1.45rem;
    height: 1.45rem;
    padding: 0 .35rem;
    border-radius: 999px;
    background: #fff;
    color: inherit;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
}
.sdg-workspace-empty {
    padding: .7rem;
    border: 1px dashed rgba(11,93,59,.22);
    border-radius: 14px;
    background: #f7fbef;
    color: #475569;
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.55;
}
.sdg-goal-workspace-panel {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 32px rgba(15,23,42,.055);
    overflow: hidden;
}
.sdg-goal-workspace-panel[hidden] {
    display: none !important;
}
.sdg-goal-workspace-panel__head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding: .95rem 1rem;
    border-bottom: 1px solid rgba(15,23,42,.07);
    background: linear-gradient(135deg, color-mix(in srgb, var(--goal-color) 13%, #ffffff 87%), #ffffff 70%);
}
.sdg-goal-workspace-panel__head span {
    display: inline-flex;
    width: fit-content;
    margin-bottom: .2rem;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color) 18%, #ffffff 82%);
    color: color-mix(in srgb, var(--goal-color) 74%, #0f172a 26%);
    font-size: .74rem;
    font-weight: 700;
}
.sdg-goal-workspace-panel__head h4 {
    margin: 0;
    color: #0f172a;
    font-size: .98rem;
    line-height: 1.35;
}
.sdg-goal-workspace-panel__head strong {
    flex: 0 0 auto;
    padding: .34rem .65rem;
    border-radius: 999px;
    background: rgba(255,255,255,.82);
    color: #334155;
    font-size: .78rem;
    font-weight: 700;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
}
.sdg-target-picker-list {
    display: grid;
    gap: .7rem;
    padding: .85rem;
}
.sdg-target-picker {
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #f8fafc;
    overflow: hidden;
}
.sdg-target-picker.has-selected {
    border-color: rgba(11,93,59,.2);
    background: #f7fbef;
}
.sdg-target-picker summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    padding: .72rem .82rem;
    cursor: pointer;
    list-style: none;
}
.sdg-target-picker summary::-webkit-details-marker {
    display: none;
}
.sdg-target-picker summary::after {
    content: "⌄";
    grid-column: 3;
    grid-row: 1;
    margin-left: .35rem;
    color: #64748b;
    font-weight: 700;
    transition: transform .18s ease;
}
.sdg-target-picker[open] summary::after {
    transform: rotate(180deg);
}
.sdg-target-picker__code {
    padding: .22rem .52rem;
    border-radius: 999px;
    background: #fff;
    color: #0b5d3b;
    font-size: .78rem;
    font-weight: 700;
    box-shadow: inset 0 0 0 1px rgba(11,93,59,.12);
}
.sdg-target-picker summary strong {
    min-width: 0;
    color: #1e293b;
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sdg-target-picker summary em {
    grid-column: 3;
    grid-row: 1;
    margin-right: 1.15rem;
    padding: .2rem .48rem;
    border-radius: 999px;
    background: #fff;
    color: #475569;
    font-size: .72rem;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}
.sdg-target-picker__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    padding: 0 .82rem .65rem;
}
.sdg-target-picker__actions .button {
    min-height: 32px;
    border-radius: 999px;
    padding: .34rem .62rem;
    font-size: .78rem;
}
.sdg-target-picker__items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    padding: 0 .82rem .82rem;
}
.indicator-check-v2--chip {
    grid-template-columns: auto minmax(4rem, auto) minmax(0, 1fr);
    min-height: 48px;
    border-radius: 14px;
    background: #fff;
}
.indicator-check-v2--chip:hover {
    border-color: rgba(11,93,59,.18);
    box-shadow: 0 10px 22px rgba(15,23,42,.05);
}
.indicator-check-v2--chip:has(input:checked) {
    border-color: rgba(11,93,59,.35);
    background: #f0f9f1;
}
.indicator-check-v2--chip span {
    padding: .16rem .45rem;
    border-radius: 999px;
    background: #eef6ef;
    color: #0b5d3b;
    font-size: .76rem;
    font-weight: 700;
}
.indicator-check-v2--chip strong {
    font-size: .82rem;
    line-height: 1.32;
}
@media (max-width: 1180px) {
    .sdg-workspace-v3__body {
        grid-template-columns: 1fr;
    }
    .sdg-workspace-v3__side {
        position: static;
    }
    .sdg-selected-goal-tabs {
        display: flex;
        flex-wrap: wrap;
    }
    .sdg-selected-goal-tab {
        width: auto;
    }
}
@media (max-width: 860px) {
    .sdg-target-picker__items {
        grid-template-columns: 1fr;
    }
    .sdg-goal-workspace-panel__head {
        display: grid;
    }
    .sdg-goal-workspace-panel__head strong {
        width: fit-content;
    }
}
@media (max-width: 640px) {
    .project-editor-v2 #project-sdgs .goal-selector-v2__grid--workspace {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sdg-target-picker summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .sdg-target-picker__code,
    .sdg-target-picker summary strong {
        grid-column: 1;
    }
    .sdg-target-picker summary em,
    .sdg-target-picker summary::after {
        grid-column: 2;
    }
    .sdg-target-picker summary strong {
        white-space: normal;
    }
}

/* RS31.60 Simple SDG picker: visible selected-goal panels, no hidden tab workspace */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.sdg-picker-simple {
    display: grid;
    gap: .85rem;
}
.sdg-picker-simple__intro {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35rem .75rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.sdg-picker-simple__intro strong {
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}
.sdg-picker-simple__intro small {
    color: #64748b;
    font-size: .88rem;
    font-weight: 500;
    line-height: 1.4;
}
.project-editor-v2 #project-sdgs .goal-selector-v2--simple {
    padding: .85rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
}
.project-editor-v2 #project-sdgs .goal-selector-v2__grid--simple {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: .65rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple {
    position: relative;
    min-height: 92px;
    padding: .75rem .8rem;
    border-radius: 16px;
    border-color: rgba(15,23,42,.1);
    background: #fff;
    box-shadow: none;
    cursor: pointer;
    gap: .4rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple:hover {
    transform: none;
    border-color: color-mix(in srgb, var(--goal-color) 55%, #cbd5e1 45%);
    box-shadow: 0 8px 18px rgba(15,23,42,.06);
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple.is-selected,
.project-editor-v2 #project-sdgs .goal-check-v2--simple:has(input:checked) {
    background: color-mix(in srgb, var(--goal-color) 10%, #ffffff 90%);
    border-color: color-mix(in srgb, var(--goal-color) 70%, #94a3b8 30%);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--goal-color) 35%, transparent);
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
    width: 1px;
    height: 1px;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple span {
    width: fit-content;
    padding: .18rem .5rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color) 18%, #ffffff 82%);
    color: color-mix(in srgb, var(--goal-color) 82%, #0f172a 18%);
    font-size: .78rem;
    font-weight: 700;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple strong {
    padding-right: 0;
    color: #0f172a;
    font-size: .92rem;
    font-weight: 650;
    line-height: 1.4;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    display: block;
    -webkit-line-clamp: unset;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple em {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    margin-top: .15rem;
    padding: .16rem .45rem;
    border-radius: 999px;
    background: #fff;
    color: color-mix(in srgb, var(--goal-color) 78%, #0f172a 22%);
    font-size: .74rem;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple em[hidden] {
    display: none !important;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple.is-selected em,
.project-editor-v2 #project-sdgs .goal-check-v2--simple.has-indicators em,
.project-editor-v2 #project-sdgs .goal-check-v2--simple:has(input:checked) em {
    background: #fff;
    color: color-mix(in srgb, var(--goal-color) 78%, #0f172a 22%);
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple:has(input:checked)::after {
    content: "✓";
    position: absolute;
    top: .7rem;
    right: .7rem;
    bottom: auto;
    display: grid;
    place-items: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color) 88%, #0f172a 12%);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1;
}
.sdg-inline-toolbar {
    display: flex;
    justify-content: space-between;
    gap: .55rem .75rem;
    align-items: center;
    flex-wrap: wrap;
    padding: .45rem .65rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #f8fafc;
}
.sdg-inline-toolbar__copy {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .2rem .55rem;
    min-width: 0;
}
.sdg-inline-toolbar > div:not(.sdg-inline-toolbar__actions):not(.sdg-inline-toolbar__copy) {
    display: grid;
    gap: .12rem;
}
.sdg-inline-toolbar strong {
    color: #0f172a;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.25;
}
.sdg-inline-toolbar small {
    color: #64748b;
    font-size: .8rem;
    font-weight: 600;
    line-height: 1.25;
}
.sdg-inline-toolbar__actions {
    display: inline-flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: flex-end;
    align-items: center;
    margin-left: auto;
}
.sdg-inline-toolbar__actions .button {
    min-height: 32px;
    padding: .28rem .7rem;
    white-space: nowrap;
}
.sdg-inline-target-panels {
    display: grid;
    gap: .72rem;
}
.sdg-goal-workspace-panel--inline {
    border-radius: 18px;
    box-shadow: 0 10px 24px rgba(15,23,42,.045);
}
.sdg-goal-workspace-panel--inline .sdg-goal-workspace-panel__head {
    padding: .78rem .88rem;
}
.sdg-goal-workspace-panel--inline .sdg-goal-workspace-panel__head h4 {
    font-size: .92rem;
}
.sdg-goal-workspace-panel--inline .sdg-goal-workspace-panel__head strong {
    font-size: .74rem;
}
.sdg-target-picker-list--inline {
    padding: .65rem;
    gap: .55rem;
}
.sdg-target-picker-list--inline .sdg-target-picker {
    border-radius: 15px;
}
.sdg-target-picker-list--inline .sdg-target-picker summary {
    padding: .62rem .72rem;
}
.sdg-target-picker-list--inline .sdg-target-picker__actions {
    padding: 0 .72rem .55rem;
}
.sdg-target-picker-list--inline .sdg-target-picker__items {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    padding: 0 .72rem .72rem;
}
@media (max-width: 760px) {
    .sdg-inline-toolbar {
        display: flex;
        align-items: center;
    }
    .sdg-inline-toolbar__actions {
        width: auto;
    }
    .sdg-inline-toolbar__actions .button {
        width: auto;
    }
    .sdg-goal-workspace-panel--inline .sdg-goal-workspace-panel__head {
        display: grid;
    }
    .sdg-target-picker-list--inline .sdg-target-picker__items {
        grid-template-columns: 1fr;
    }
}

/* RS31.61 Flat indicator picker: Target is a label, not an extra step */
.project-editor-v2 #project-sdgs .sdg-target-picker--flat {
    display: grid;
    gap: .58rem;
    padding: .7rem;
    border-radius: 16px;
    background: linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);
}
.project-editor-v2 #project-sdgs .sdg-target-picker--flat.has-selected {
    background: #f7fbef;
}
.project-editor-v2 #project-sdgs .sdg-target-picker__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    min-height: 34px;
}
.project-editor-v2 #project-sdgs .sdg-target-picker__head strong {
    min-width: 0;
    color: #1e293b;
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.project-editor-v2 #project-sdgs .sdg-target-picker__head em {
    padding: .2rem .48rem;
    border-radius: 999px;
    background: #fff;
    color: #475569;
    font-size: .72rem;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
}
.project-editor-v2 #project-sdgs .sdg-target-picker--flat .sdg-target-picker__items {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    padding: 0;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--flat .sdg-target-picker__actions {
    justify-content: flex-end;
    padding: .08rem 0 0;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--flat .indicator-check-v2--chip {
    min-height: 44px;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--flat .indicator-check-v2--chip strong {
    white-space: normal;
}
@media (max-width: 640px) {
    .project-editor-v2 #project-sdgs .sdg-target-picker__head {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .project-editor-v2 #project-sdgs .sdg-target-picker__head .sdg-target-picker__code,
    .project-editor-v2 #project-sdgs .sdg-target-picker__head strong {
        grid-column: 1;
    }
    .project-editor-v2 #project-sdgs .sdg-target-picker__head strong {
        white-space: normal;
    }
    .project-editor-v2 #project-sdgs .sdg-target-picker__head em {
        grid-column: 2;
        grid-row: 1 / span 2;
    }
    .project-editor-v2 #project-sdgs .sdg-target-picker--flat .sdg-target-picker__items {
        grid-template-columns: 1fr;
    }
    .project-editor-v2 #project-sdgs .sdg-target-picker--flat .sdg-target-picker__actions {
        justify-content: flex-start;
    }
}

/* RS31.62 Target-only SDG picker + readable goal layout */
.project-editor-v2 #project-sdgs .goal-selector-v2--simple {
    padding: .9rem;
    border-radius: 18px;
    background: #fff;
}
.project-editor-v2 #project-sdgs .goal-selector-v2__grid--simple {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: .65rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple,
.project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact.goal-check-v2--simple {
    min-height: 96px;
    padding: .8rem .85rem;
    border-radius: 16px;
    gap: .4rem;
    align-content: start;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple span {
    padding: .18rem .52rem;
    font-size: .8rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple strong,
.project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact.goal-check-v2--simple strong {
    display: block;
    padding-right: 1.6rem;
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    -webkit-line-clamp: unset;
    font-size: .92rem;
    line-height: 1.4;
    color: #0f172a;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple em {
    margin-top: .1rem;
    padding: .16rem .45rem;
    font-size: .74rem;
}
.project-editor-v2 #project-sdgs .goal-check-v2--simple:has(input:checked)::after {
    content: "✓";
    top: .72rem;
    right: .72rem;
    bottom: auto;
    font-size: .78rem;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--target-only {
    padding: 0;
    border-radius: 16px;
    background: #fff;
    overflow: visible;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--target-only.has-selected {
    background: #f0f9f1;
    border-color: rgba(11,93,59,.32);
    box-shadow: 0 10px 22px rgba(11,93,59,.07);
}
.project-editor-v2 #project-sdgs .sdg-target-option {
    display: grid;
    grid-template-columns: auto auto minmax(0,1fr) auto;
    gap: .72rem;
    align-items: center;
    min-height: 62px;
    padding: .82rem .9rem;
    cursor: pointer;
    color: #1e293b;
    font-weight: 600;
}
.project-editor-v2 #project-sdgs .sdg-target-option input[type="checkbox"] {
    width: 1.15rem;
    height: 1.15rem;
    margin: 0;
    accent-color: var(--rru-primary);
}
.project-editor-v2 #project-sdgs .sdg-target-option strong {
    min-width: 0;
    color: #1e293b;
    font-size: .94rem;
    line-height: 1.45;
    white-space: normal;
    overflow-wrap: anywhere;
}
.project-editor-v2 #project-sdgs .sdg-target-option em {
    padding: .24rem .56rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: .75rem;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--target-only.has-selected .sdg-target-option em {
    background: #fff;
    color: #0b5d3b;
}
.project-editor-v2 #project-sdgs .sdg-target-hidden-inputs {
    display: none !important;
}
@media (max-width: 1100px) {
    .project-editor-v2 #project-sdgs .goal-selector-v2__grid--simple {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }
}
@media (max-width: 760px) {
    .project-editor-v2 #project-sdgs .goal-selector-v2__grid--simple {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .55rem;
    }
    .project-editor-v2 #project-sdgs .goal-check-v2--simple,
    .project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact.goal-check-v2--simple {
        min-height: 88px;
        padding: .7rem .72rem;
    }
    .project-editor-v2 #project-sdgs .goal-check-v2--simple strong,
    .project-editor-v2 .goal-selector-v2--lean .goal-check-v2--compact.goal-check-v2--simple strong {
        display: block;
        font-size: .86rem;
        -webkit-line-clamp: unset;
    }
    .project-editor-v2 #project-sdgs .sdg-target-option {
        grid-template-columns: auto minmax(0,1fr) auto;
        gap: .58rem;
    }
    .project-editor-v2 #project-sdgs .sdg-target-option .sdg-target-picker__code {
        grid-column: 2;
        width: fit-content;
    }
    .project-editor-v2 #project-sdgs .sdg-target-option strong {
        grid-column: 2;
    }
    .project-editor-v2 #project-sdgs .sdg-target-option em {
        grid-column: 3;
        grid-row: 1 / span 2;
    }
}
@media (max-width: 440px) {
    .project-editor-v2 #project-sdgs .goal-selector-v2__grid--simple {
        grid-template-columns: 1fr;
    }
}

/* RS31.69 Organization API source sync */
.organization-sync-panel{margin-top:1rem;}
.api-source-sync-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem;margin-top:1rem;}
.api-source-sync-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border:1px solid rgba(15,23,42,.1);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(248,250,252,.98));padding:1rem;box-shadow:0 10px 24px rgba(15,23,42,.06);}
.api-source-sync-card strong{display:block;color:#0f172a;font-size:1rem;line-height:1.35;}
.api-source-sync-card code{display:inline-flex;margin:.35rem 0;padding:.18rem .45rem;border-radius:999px;background:rgba(20,83,45,.08);color:#14532d;font-size:.8rem;}
.api-source-sync-card p{margin:.2rem 0 0;color:#64748b;font-size:.88rem;line-height:1.45;}
.api-source-sync-card form{flex:0 0 auto;margin-top:.1rem;}
.organization-import-log-wrap{margin-top:1rem;}
.badge-soft{display:inline-flex;align-items:center;gap:.25rem;margin-top:.35rem;padding:.18rem .5rem;border-radius:999px;background:#eef6ff;color:#075985;font-size:.78rem;font-weight:600;}
.text-danger{color:#b91c1c;}
@media (max-width:720px){.api-source-sync-card{flex-direction:column;}.api-source-sync-card form,.api-source-sync-card .button{width:100%;}.api-source-sync-card .button{justify-content:center;}}

/* RS31.75 Organization sync history collapsed by default */
.organization-import-log-panel{margin-top:1rem;border:1px solid rgba(15,23,42,.1);border-radius:18px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.05);overflow:hidden;}
.organization-import-log-panel summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;cursor:pointer;list-style:none;background:linear-gradient(180deg,rgba(248,250,252,.98),rgba(255,255,255,.98));}
.organization-import-log-panel summary::-webkit-details-marker{display:none;}
.organization-import-log-panel summary::after{content:'▾';flex:0 0 auto;width:1.9rem;height:1.9rem;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(20,83,45,.08);color:#14532d;font-weight:700;transition:transform .18s ease;}
.organization-import-log-panel[open] summary::after{transform:rotate(180deg);}
.organization-import-log-panel summary strong{display:block;color:#0f172a;font-size:.98rem;line-height:1.35;}
.organization-import-log-panel summary small{display:block;margin-top:.18rem;color:#64748b;font-size:.82rem;line-height:1.45;}
.organization-import-log-panel__hint{flex:0 0 auto;color:#0f766e;font-size:.86rem;font-weight:600;white-space:nowrap;}
.organization-import-log-panel .organization-import-log-wrap{margin-top:0;border-top:1px solid rgba(15,23,42,.08);border-radius:0;}
.organization-import-log-panel .data-table{margin:0;}
@media (max-width:720px){.organization-import-log-panel summary{align-items:flex-start;}.organization-import-log-panel__hint{display:none;}.organization-import-log-panel summary::after{margin-top:.15rem;}}

/* RS31.77 Project create 3DGF live lookup */

.project-facebook-feed{
    margin:0 0 1rem;
    padding:1rem;
    border:1px solid rgba(22,163,74,.24);
    border-radius:20px;
    background:linear-gradient(135deg,rgba(240,253,244,.96),rgba(255,255,255,.98));
    box-shadow:0 14px 32px rgba(15,23,42,.07);
}
.project-facebook-feed__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start;}
.project-facebook-feed__eyebrow{display:inline-flex;align-items:center;width:max-content;margin-bottom:.3rem;padding:.22rem .55rem;border-radius:999px;background:#dcfce7;color:#166534;font-size:.76rem;font-weight:600;letter-spacing:.01em;}
.project-facebook-feed__head h3{margin:0;color:#0f172a;font-size:1.05rem;font-weight:650;line-height:1.35;}
.project-facebook-feed__head p{margin:.3rem 0 0;max-width:62rem;color:#475569;font-size:.9rem;line-height:1.6;}
.project-facebook-feed__source{display:grid;gap:.15rem;min-width:180px;padding:.65rem .8rem;border-radius:14px;background:#fff;border:1px solid rgba(22,163,74,.16);text-align:right;}
.project-facebook-feed__source span{color:#64748b;font-size:.78rem;}
.project-facebook-feed__source strong{color:#14532d;font-size:.9rem;font-weight:650;}
.project-facebook-feed__rules{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem;}
.project-facebook-feed__rules span{display:inline-flex;align-items:center;gap:.35rem;padding:.34rem .6rem;border-radius:999px;background:#fff;color:#334155;border:1px solid rgba(15,23,42,.1);font-size:.8rem;line-height:1.35;}
.project-facebook-feed__rules span::before{content:'✓';display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#16a34a;color:#fff;font-size:.64rem;font-weight:700;}
.project-facebook-feed__filters{display:flex;flex-wrap:wrap;gap:.65rem;align-items:end;margin:0;padding:0;border:0;border-radius:0;background:transparent;}
.project-facebook-feed__filters label{display:grid;gap:.28rem;margin:0;min-width:148px;color:#334155;font-size:.86rem;font-weight:600;}
.project-facebook-feed__filters .date-input-dmy{position:relative;display:block;width:100%;}
.project-facebook-feed__filters .date-input-dmy__text{width:100%;min-height:36px;padding:.4rem 2.45rem .4rem .6rem;border:1px solid rgba(15,23,42,.16);border-radius:10px;background:#fff;color:#0f172a;font:inherit;font-size:.88rem;letter-spacing:.02em;}
.project-facebook-feed__filters .date-input-dmy__text:focus{outline:2px solid rgba(22,163,74,.28);outline-offset:1px;border-color:rgba(22,163,74,.45);}
.project-facebook-feed__filters .date-input-dmy__text.is-invalid{border-color:#dc2626;box-shadow:0 0 0 2px rgba(220,38,38,.12);}
.project-facebook-feed__filters .date-input-dmy__native{position:absolute;right:0;top:0;width:2.45rem;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;z-index:2;}
.project-facebook-feed__filters .date-input-dmy::after{content:"";position:absolute;right:.55rem;top:50%;width:.85rem;height:.85rem;transform:translateY(-50%);pointer-events:none;z-index:1;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");}
.project-facebook-feed__filters input[type="date"]{width:100%;min-height:36px;padding:.4rem .6rem;border:1px solid rgba(15,23,42,.16);border-radius:10px;background:#fff;color:#0f172a;font:inherit;font-size:.88rem;}
.project-facebook-feed__filters p{margin:0;color:#64748b;font-size:.82rem;line-height:1.5;}
.project-facebook-feed__actions{display:flex;align-items:center;gap:.4rem;margin:0;flex-wrap:wrap;}
.project-facebook-feed__actions small{color:#64748b;font-size:.82rem;line-height:1.5;}
.project-facebook-feed__cancel{border-color:#fda4af;color:#be123c;background:#fff;}
.project-facebook-feed__cancel:hover{border-color:#fb7185;color:#9f1239;background:#fff1f2;}
.project-facebook-feed__cancel[hidden]{display:none !important;}
.project-facebook-feed.is-facebook-feed-fetching .project-facebook-feed__cancel,
.project-facebook-feed.is-facebook-feed-ai-busy .project-facebook-feed__cancel,
.project-facebook-feed.is-facebook-feed-batching .project-facebook-feed__cancel{display:inline-flex;}
.project-facebook-feed.is-facebook-feed-fetching [data-facebook-feed-fetch]{opacity:.72;}
.project-facebook-feed__status-stop{
    flex:0 0 auto;
    margin-left:auto;
    min-height:2rem;
    padding:.28rem .7rem;
    border-color:rgba(185,28,28,.28);
    color:#9f1239;
    background:#fff;
}
.project-facebook-feed__status-stop:hover{
    border-color:#fb7185;
    color:#9f1239;
    background:#fff1f2;
}
.project-facebook-feed__status--loading .project-facebook-feed__status-stop{
    position:relative;
    z-index:1;
}
.project-facebook-feed__status{margin-top:.8rem;padding:.78rem .9rem;border-radius:14px;font-size:.88rem;font-weight:600;line-height:1.62;border:1px solid transparent;display:flex;flex-wrap:wrap;align-items:flex-start;gap:.45rem .65rem;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word;}
.project-facebook-feed__status[hidden]{display:none !important;}
.project-facebook-feed__status::before{content:attr(data-status-label);flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:1.55rem;padding:.12rem .52rem;border-radius:999px;background:rgba(15,23,42,.08);color:currentColor;font-size:.74rem;font-weight:700;line-height:1.2;}
.project-facebook-feed__status-text{flex:1 1 260px;min-width:0;display:block;}
.project-facebook-feed__status-metrics{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.08rem;}
.project-facebook-feed__status-metric{display:inline-flex;align-items:center;min-height:1.75rem;max-width:min(100%,18rem);padding:.22rem .58rem;border-radius:999px;background:rgba(255,255,255,.72);border:1px solid currentColor;color:inherit;font-size:.8rem;font-weight:650;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.project-facebook-feed__status-metric[title]{cursor:help;}
.project-facebook-feed__status--loading{
    position:relative;
    padding-bottom:1.15rem;
    background:#eff6ff;
    color:#1d4ed8;
    border-color:#bfdbfe;
}
.project-facebook-feed__status--loading .project-facebook-feed__status-text{
    display:inline-flex;
    align-items:flex-start;
    gap:.55rem;
}
.project-facebook-feed__status--loading .project-facebook-feed__status-text::before{
    content:'';
    width:1rem;
    height:1rem;
    margin-top:.2rem;
    border-radius:999px;
    border:2px solid rgba(37,99,235,.25);
    border-top-color:#2563eb;
    animation:projectFacebookFeedSpin .7s linear infinite;
    flex:0 0 auto;
}
.project-facebook-feed__status--loading::after{
    content:'';
    position:absolute;
    left:.9rem;
    right:.9rem;
    bottom:.42rem;
    height:.35rem;
    border-radius:999px;
    overflow:hidden;
    background:rgba(191,219,254,.85);
    background-image:linear-gradient(90deg,transparent 0%,#60a5fa 35%,#2563eb 55%,transparent 100%);
    background-size:45% 100%;
    background-repeat:no-repeat;
    animation:projectFacebookFeedProgress 1.2s ease-in-out infinite;
}
@keyframes projectFacebookFeedSpin{to{transform:rotate(360deg);}}
@keyframes projectFacebookFeedProgress{
    0%{background-position:-40% 0;}
    100%{background-position:140% 0;}
}
.project-facebook-feed__status--success{background:#ecfdf5;color:#047857;border-color:#bbf7d0;}
.project-facebook-feed__status--warning{background:#fffbeb;color:#92400e;border-color:#fde68a;}
.project-facebook-feed__status--danger{background:#fef2f2;color:#b91c1c;border-color:#fecaca;}
.project-facebook-feed__status--neutral{background:#f8fafc;color:#475569;border-color:#e2e8f0;}
.project-facebook-feed__status:not([data-status-label])::before,.project-facebook-feed__status[data-status-label='']::before{display:none;}
@media (max-width:640px){.project-facebook-feed__status{gap:.4rem;padding:.72rem .76rem;}.project-facebook-feed__status::before{min-height:1.45rem;}.project-facebook-feed__status-text,.project-facebook-feed__status-metrics{flex-basis:100%;}.project-facebook-feed__status-metric{width:100%;justify-content:flex-start;border-radius:12px;}}
.project-facebook-feed__results{margin-top:.85rem;display:grid;gap:.75rem;max-height:520px;overflow:auto;padding-right:.2rem;}
.project-facebook-feed-result{display:grid;grid-template-columns:auto 112px minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.75rem;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.045);}
.project-facebook-feed-result__pick{display:inline-flex;align-items:center;justify-content:center;position:relative;margin:0;cursor:pointer;user-select:none;}
.project-facebook-feed-result__pick input{width:1.15rem;height:1.15rem;margin:0;accent-color:#15803d;cursor:pointer;}
.project-facebook-feed-result.is-duplicate .project-facebook-feed-result__pick{opacity:.45;cursor:not-allowed;}
.project-facebook-feed-result.is-ai-loading{outline:2px solid #3b82f6;outline-offset:1px;background:#eff6ff;}
.project-facebook-feed-result__pick.is-ai-loading input{opacity:.25;}
.project-facebook-feed-result__ai-spin{position:absolute;inset:0;margin:auto;width:.95rem;height:.95rem;border-radius:50%;border:2px solid #93c5fd;border-top-color:#1d4ed8;animation:facebook-feed-ai-spin .7s linear infinite;pointer-events:none;}
@keyframes facebook-feed-ai-spin{to{transform:rotate(360deg)}}
.project-facebook-feed-result.is-ai-ready{box-shadow:inset 3px 0 0 #16a34a;}
.project-facebook-feed-result.is-ai-failed{box-shadow:inset 3px 0 0 #dc2626;}
.project-facebook-feed-result__media{width:112px;height:78px;border-radius:12px;overflow:hidden;background:#f1f5f9;border:1px solid rgba(15,23,42,.08);}
.project-facebook-feed-result__media img{width:100%;height:100%;object-fit:cover;display:block;}
.project-facebook-feed-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;width:100%;height:100%;}
.project-facebook-feed-gallery__item{position:relative;display:block;min-width:0;min-height:0;overflow:hidden;background:#e2e8f0;border:0;padding:0;}
.project-facebook-feed-gallery__item--button{cursor:pointer;text-align:inherit;}
.project-facebook-feed-gallery__item--button:focus-visible{outline:3px solid rgba(34,197,94,.45);outline-offset:-3px;}
.project-facebook-feed-gallery__item.is-cover{box-shadow:inset 0 0 0 3px #22c55e;}
.project-facebook-feed-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;}
.project-facebook-feed-gallery__more{position:absolute;inset:0;display:grid;place-items:center;background:rgba(15,23,42,.58);color:#fff;font-size:.78rem;font-weight:700;}
.project-facebook-feed-gallery__cover{position:absolute;right:.25rem;top:.25rem;z-index:2;padding:.14rem .42rem;border-radius:999px;background:#16a34a;color:#fff;font-size:.68rem;font-weight:650;line-height:1.2;box-shadow:0 6px 14px rgba(22,163,74,.25);}
.project-facebook-feed-result__meta{color:#64748b;font-size:.76rem;line-height:1.35;}
.project-facebook-feed-result__noimage{display:grid;place-items:center;width:100%;height:100%;color:#64748b;font-size:.76rem;}
.project-facebook-feed-result__body{display:grid;gap:.3rem;min-width:0;overflow:visible;}
.project-facebook-feed-result__body strong{color:#0f172a;font-size:.95rem;font-weight:650;line-height:1.48;padding-inline-start:.08rem;overflow:visible;}
.project-facebook-feed-result__body p{margin:0;color:#475569;font-size:.84rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.project-facebook-feed-result__relevance,.project-facebook-feed-result__sdg-sources{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .45rem;margin:.05rem 0;}
.project-facebook-feed-result__sdg-sources{flex-direction:column;align-items:flex-start;gap:.28rem;width:100%;}
.project-facebook-feed-result__score{display:inline-flex;align-items:center;padding:.14rem .48rem;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:.72rem;font-weight:700;letter-spacing:.01em;}
.project-facebook-feed-result__source-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .4rem;width:100%;}
.project-facebook-feed-result__source-label{display:inline-flex;align-items:center;min-width:7.5rem;padding:.1rem .35rem;border-radius:6px;font-size:.68rem;font-weight:700;letter-spacing:.01em;line-height:1.3;color:#334155;background:#f1f5f9;}
.project-facebook-feed-result__source-row.is-hashtag .project-facebook-feed-result__source-label{background:#ecfdf5;color:#047857;}
.project-facebook-feed-result__source-row.is-system .project-facebook-feed-result__source-label{background:#eff6ff;color:#1d4ed8;}
.project-facebook-feed-result__goals{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem;padding:0;background:transparent;color:inherit;font-size:.72rem;font-weight:650;}
.project-facebook-feed-result__goal-chip{display:inline-flex;align-items:center;padding:.16rem .52rem;border-radius:999px;background:color-mix(in srgb, var(--goal-color,#047857) 14%, #ffffff);color:color-mix(in srgb, var(--goal-color,#047857) 68%, #0f172a);border:1px solid color-mix(in srgb, var(--goal-color,#047857) 32%, transparent);font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--goal-color,#047857) 8%, transparent);}
.project-facebook-feed-result__goal-chip.is-from-hashtag{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--goal-color,#047857) 18%, transparent),0 0 0 1px color-mix(in srgb, #059669 35%, transparent);}
.project-facebook-feed-result__goal-chip.is-from-system{border-style:dashed;opacity:.95;}
.project-facebook-feed-result__targets{display:inline-flex;align-items:center;padding:.12rem .4rem;border-radius:6px;background:#f8fafc;color:#475569;font-size:.68rem;font-weight:600;line-height:1.3;}
.project-facebook-feed-result__source-reasons,.project-facebook-feed-result__relevance small{color:#64748b;font-size:.72rem;line-height:1.35;max-width:100%;}
.project-facebook-feed-result__tags{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;gap:.3rem;}
.project-facebook-feed-result__tags span,.project-facebook-feed-result__tag{display:inline-flex;align-items:center;align-self:flex-start;height:auto;line-height:1.3;padding:.18rem .45rem;border-radius:999px;background:#dcfce7;color:#166534;font-size:.72rem;font-weight:600;white-space:nowrap;}
.project-facebook-feed-result__tags span.is-sdg,.project-facebook-feed-result__tag.is-sdg{background:color-mix(in srgb, var(--goal-color,#166534) 14%, #ffffff);color:color-mix(in srgb, var(--goal-color,#166534) 68%, #0f172a);border:1px solid color-mix(in srgb, var(--goal-color,#166534) 32%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--goal-color,#166534) 8%, transparent);}
.project-facebook-feed-result__ai{display:inline-flex;align-items:center;width:fit-content;max-width:100%;margin-top:.35rem;padding:.28rem .7rem;border-radius:999px;font-size:.78rem;font-weight:750;line-height:1.3;box-shadow:0 1px 2px rgba(15,23,42,.08);}
.project-facebook-feed-result__ai[hidden]{display:none!important;}
.project-facebook-feed-result__ai.is-loading{background:#dbeafe;color:#1e40af;}
.project-facebook-feed-result__ai.is-ready{background:#bbf7d0;color:#166534;}
.project-facebook-feed-result__ai.is-failed{background:#fecaca;color:#991b1b;}
.project-facebook-feed-result__duplicate{color:#b45309;font-size:.78rem;font-style:normal;}
.project-facebook-feed-result__actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end;}
.project-facebook-feed-include__chips-panel{margin-top:.45rem;border:1px solid rgba(15,23,42,.1);border-radius:12px;background:#f8fafc;}
.project-facebook-feed-include__chips-panel>summary{cursor:pointer;list-style:none;padding:.55rem .7rem;font-size:.82rem;color:#334155;}
.project-facebook-feed-include__chips-panel>summary::-webkit-details-marker{display:none;}
.project-facebook-feed-include__chips-panel[open]>summary{border-bottom:1px solid rgba(15,23,42,.08);}
.project-facebook-feed-include__chips-panel .project-facebook-feed-include__suggest{padding:.55rem .7rem .7rem;}
.project-facebook-feed-result.is-duplicate{background:#fffbeb;border-color:#fde68a;}
.project-facebook-feed-result.is-duplicate .button:disabled{opacity:.7;cursor:not-allowed;}
.project-facebook-feed-result.is-picked{border-color:rgba(22,163,74,.45);box-shadow:0 0 0 2px rgba(34,197,94,.12);}
.project-facebook-feed-result__actions .button.is-picked{background:#16a34a;border-color:#16a34a;color:#fff;}
.project-facebook-feed-preview-modal__dialog{width:min(720px,calc(100vw - 1.5rem));max-height:min(92vh,920px);}
.project-facebook-feed-preview-modal .sdg-modal__head{align-items:flex-start;}
.project-facebook-feed-preview-modal .sdg-modal__title-wrap{display:block;grid-template-columns:none;min-width:0;flex:1 1 auto;width:100%;}
.project-facebook-feed-preview-modal .sdg-modal__title-wrap > div{min-width:0;max-width:100%;}
.project-facebook-feed-preview-modal .sdg-modal__title-wrap h3{margin:0;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal;}
.project-facebook-feed-preview-modal__body{display:grid;gap:1rem;}
.project-facebook-feed-preview-post{display:grid;gap:.85rem;padding:1rem 1.05rem;border:1px solid rgba(15,23,42,.1);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(15,23,42,.06);}
.project-facebook-feed-preview-post__head{display:flex;align-items:center;gap:.7rem;}
.project-facebook-feed-preview-post__avatar{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:999px;background:linear-gradient(145deg,#0866ff,#1877f2);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35);}
.project-facebook-feed-preview-post__who{display:grid;gap:.1rem;min-width:0;}
.project-facebook-feed-preview-post__who strong{color:#0f172a;font-size:.95rem;font-weight:700;line-height:1.35;}
.project-facebook-feed-preview-post__who span{color:#64748b;font-size:.78rem;line-height:1.35;}
.project-facebook-feed-preview-post__message{margin:0;color:#1e293b;font-size:.95rem;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;}
.project-facebook-feed-preview-post__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.45rem;}
.project-facebook-feed-preview-post__shot{display:block;aspect-ratio:1;border-radius:12px;overflow:hidden;border:1px solid rgba(15,23,42,.08);background:#f1f5f9;}
.project-facebook-feed-preview-post__shot img{width:100%;height:100%;object-fit:cover;display:block;}
.project-facebook-feed-preview-post__noimage{display:grid;place-items:center;min-height:4.5rem;border-radius:12px;background:#f8fafc;color:#64748b;font-size:.84rem;border:1px dashed rgba(15,23,42,.12);}
.project-facebook-feed-preview-post__tags{display:flex;flex-wrap:wrap;gap:.35rem;}
.project-facebook-feed-preview-post__tags span{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;background:#dcfce7;color:#166534;font-size:.74rem;font-weight:650;}
.project-facebook-feed-preview-post__tags span.is-sdg{background:color-mix(in srgb, var(--goal-color,#166534) 14%, #ffffff);color:color-mix(in srgb, var(--goal-color,#166534) 68%, #0f172a);border:1px solid color-mix(in srgb, var(--goal-color,#166534) 32%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--goal-color,#166534) 8%, transparent);}
.project-facebook-feed-preview-post__fb-link{justify-self:start;color:#0866ff;font-size:.86rem;font-weight:650;text-decoration:none;}
.project-facebook-feed-preview-post__fb-link:hover{text-decoration:underline;}
.project-facebook-feed-preview-modal__actions{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-end;margin-top:.15rem;}
.project-facebook-feed-preview-modal__actions .button.is-picked{background:#16a34a;border-color:#16a34a;color:#fff;}
@media (max-width:560px){
    .project-facebook-feed-preview-modal__actions{justify-content:stretch;}
    .project-facebook-feed-preview-modal__actions .button{flex:1 1 auto;justify-content:center;}
    .project-facebook-feed-preview-post__gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
}
.project-facebook-feed-empty{padding:1rem;border:1px dashed rgba(15,23,42,.18);border-radius:16px;background:#fff;color:#64748b;line-height:1.55;}
.project-facebook-feed__tip{margin:.25rem 0 0;color:#64748b;font-size:.9rem;line-height:1.45;}
/* Org Facebook Feed status: never style native <option> backgrounds — Windows/Chrome
   ignore them and the OS green hover would clash. Status = badge under select + option text. */
.project-create-organization.is-facebook-feed-ready{border-color:rgba(16,185,129,.35)!important;background:linear-gradient(180deg,#ecfdf5 0%,#f8fffb 72%,#fff 100%)!important;box-shadow:0 10px 24px rgba(16,185,129,.08);}
.project-create-organization.is-facebook-feed-configured{border-color:rgba(59,130,246,.35)!important;background:linear-gradient(180deg,#eff6ff 0%,#f8fbff 72%,#fff 100%)!important;box-shadow:0 10px 24px rgba(59,130,246,.08);}
.project-create-organization.is-facebook-feed-failed{border-color:rgba(245,158,11,.4)!important;background:linear-gradient(180deg,#fffbeb 0%,#fffdf5 72%,#fff 100%)!important;box-shadow:0 10px 24px rgba(245,158,11,.08);}
.editor-grid select.project-create-organization__select{transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;}
.editor-grid select.project-create-organization__select.is-facebook-feed-ready,
.project-create-organization.is-facebook-feed-ready .editor-grid select.project-create-organization__select{background:#d1fae5!important;border-color:#34d399!important;color:#065f46!important;font-weight:650!important;box-shadow:inset 0 0 0 1px rgba(16,185,129,.18)!important;}
.editor-grid select.project-create-organization__select.is-facebook-feed-configured,
.project-create-organization.is-facebook-feed-configured .editor-grid select.project-create-organization__select{background:#dbeafe!important;border-color:#60a5fa!important;color:#1e40af!important;font-weight:650!important;box-shadow:inset 0 0 0 1px rgba(59,130,246,.18)!important;}
.editor-grid select.project-create-organization__select.is-facebook-feed-failed,
.project-create-organization.is-facebook-feed-failed .editor-grid select.project-create-organization__select{background:#fef3c7!important;border-color:#fbbf24!important;color:#92400e!important;font-weight:650!important;box-shadow:inset 0 0 0 1px rgba(245,158,11,.18)!important;}
.project-create-organization__feed-status{display:inline-flex;align-items:center;align-self:flex-start;width:fit-content;max-width:100%;margin:.55rem 0 .2rem;padding:.32rem .72rem;border-radius:999px;font-size:.8rem;font-weight:700;line-height:1.35;color:inherit;}
.project-create-organization__feed-status.badge-soft--success{background:#d1fae5!important;color:#065f46!important;}
.project-create-organization__feed-status.badge-soft--info{background:#dbeafe!important;color:#1e40af!important;}
.project-create-organization__feed-status.badge-soft--warning{background:#fef3c7!important;color:#92400e!important;}
.project-create-organization__feed-status.badge-soft--muted{background:#f1f5f9!important;color:#64748b!important;}
.project-create-organization__feed-status.badge-soft--neutral{background:#fff7ed!important;color:#9a3412!important;}
.project-create-organization__feed-status[hidden]{display:none!important;}
.badge-soft--info{background:#eff6ff;color:#1d4ed8;}
.badge-soft--warning{background:#fffbeb;color:#b45309;}
.project-create-guide-launch{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;margin:0 0 1rem;padding:.9rem 1rem;border:1px solid rgba(22,163,74,.2);border-radius:16px;background:linear-gradient(135deg,#f0fdf4,#fff9df);}
.project-create-guide-launch strong{display:block;color:#14532d;font-size:.98rem;font-weight:750;line-height:1.35;}
.project-create-guide-launch span{display:block;margin-top:.2rem;color:#475569;font-size:.84rem;line-height:1.45;}
.project-create-guide-modal{padding:0;}
.project-create-guide-modal .sdg-modal__backdrop{background:rgba(2,6,23,.72);}
.project-create-guide-modal__dialog{width:100%;max-width:none;height:100%;max-height:none;border-radius:0;display:flex;flex-direction:column;}
.project-create-guide-modal__head{align-items:flex-start;flex:0 0 auto;}
.project-create-guide-modal__head .sdg-modal__title-wrap{display:block;grid-template-columns:none;min-width:0;flex:1 1 auto;width:100%;}
.project-create-guide-modal__head .sdg-modal__title-wrap h3{margin:0 0 .35rem;line-height:1.35;}
.project-create-guide-modal__head .sdg-modal__title-wrap p{margin:0;color:#475569;font-size:.9rem;line-height:1.5;font-weight:500;}
.project-create-guide-modal__body{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:1rem;flex:1 1 auto;min-height:0;overflow:hidden;padding:1rem 1.1rem;}
.project-create-guide-modal__nav{display:grid;align-content:start;gap:.4rem;overflow:auto;padding-right:.2rem;}
.project-create-guide-modal__nav-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.55rem;align-items:center;margin:0;padding:.65rem .75rem;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#fff;color:#334155;text-align:left;cursor:pointer;font:inherit;}
.project-create-guide-modal__nav-item em{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:.78rem;font-weight:750;font-style:normal;}
.project-create-guide-modal__nav-item span{font-size:.84rem;font-weight:650;line-height:1.35;}
.project-create-guide-modal__nav-item.is-active{border-color:rgba(22,163,74,.35);background:#ecfdf5;color:#14532d;box-shadow:0 0 0 1px rgba(22,163,74,.12);}
.project-create-guide-modal__nav-item.is-active em{background:#166534;color:#fff;}
.project-create-guide-modal__panels{min-width:0;min-height:0;overflow:auto;}
.project-create-guide-modal__panel{display:none;grid-template-columns:1fr;gap:.85rem;align-items:start;}
.project-create-guide-modal__panel.is-active{display:grid;}
.project-create-guide-modal__panel[hidden]{display:none !important;}
.project-create-guide-modal__figure{margin:0;border-radius:18px;overflow:auto;border:1px solid rgba(15,23,42,.08);background:#f1f5f9;max-height:min(56vh,620px);}
.project-create-guide-modal__figure img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:top center;background:#fff;}
.project-create-guide-modal__copy{display:grid;gap:.55rem;padding:.15rem .1rem;max-width:52rem;}
.project-create-guide-modal__copy h4{margin:0;color:#0f172a;font-size:1.05rem;font-weight:750;line-height:1.35;}
.project-create-guide-modal__copy ol{margin:0;padding-left:1.15rem;display:grid;gap:.35rem;color:#334155;font-size:.9rem;line-height:1.55;}
.project-create-guide-modal__tip{display:grid;gap:.4rem;padding:.75rem .85rem;border-radius:14px;border:1px solid rgba(217,119,6,.28);background:#fffbeb;color:#92400e;}
.project-create-guide-modal__tip strong{color:#9a3412;font-size:.88rem;font-weight:750;}
.project-create-guide-modal__tip p{margin:0;font-size:.86rem;line-height:1.5;}
.project-create-guide-modal__tip ul{margin:0;padding-left:1.1rem;display:grid;gap:.28rem;font-size:.86rem;line-height:1.5;}
.project-create-guide-modal__tip-link{justify-self:start;color:#166534;font-size:.84rem;font-weight:700;}
.project-create-guide-modal__jumps{display:flex;flex-wrap:wrap;gap:.4rem;}
.project-create-guide-modal__jumps a{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:999px;background:#ecfdf5;border:1px solid rgba(22,163,74,.22);color:#166534;font-size:.8rem;font-weight:700;text-decoration:none;}
.project-create-guide-modal__jumps a:hover{background:#dcfce7;}
.project-create-guide-modal__footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem;flex:0 0 auto;padding:.85rem 1.1rem;border-top:1px solid rgba(15,23,42,.08);background:#fff;}
.project-create-guide-modal__dots{display:inline-flex;align-items:center;gap:.35rem;margin-right:auto;}
.project-create-guide-modal__dots span{width:.55rem;height:.55rem;border-radius:999px;background:#cbd5e1;}
.project-create-guide-modal__dots span.is-active{background:#166534;width:.85rem;}
@media (max-width:960px){
    .project-create-guide-modal__body{grid-template-columns:1fr;overflow:auto;}
    .project-create-guide-modal__nav{display:flex;gap:.35rem;overflow:auto;padding-bottom:.2rem;}
    .project-create-guide-modal__nav-item{min-width:max-content;}
    .project-create-guide-modal__figure{max-height:min(42vh,420px);}
}
.project-fb-news-template{margin-top:.9rem;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#fff;overflow:hidden;}
.project-fb-news-template > summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem .9rem;list-style:none;cursor:pointer;padding:.75rem 1rem;color:#0f172a;}
.project-fb-news-template > summary::-webkit-details-marker{display:none;}
.project-fb-news-template > summary::after{content:'▾';margin-left:auto;color:#64748b;transition:transform .15s ease;}
.project-fb-news-template[open] > summary::after{transform:rotate(180deg);}
.project-fb-news-template > summary span{font-weight:700;font-size:.95rem;line-height:1.35;}
.project-fb-news-template > summary small{color:#64748b;font-size:.8rem;font-weight:500;line-height:1.4;}
.project-fb-news-template__body{display:grid;gap:.7rem;padding:0 1rem 1rem;}
.project-fb-news-template__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.55rem .75rem;}
.project-fb-news-template__mode{display:inline-flex;flex-wrap:wrap;gap:.2rem;padding:.22rem;border-radius:999px;background:#eef2f7;border:1px solid rgba(15,23,42,.06);}
.project-fb-news-template__mode-option{position:relative;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:.42rem .9rem;border-radius:999px;color:#475569;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease;}
.project-fb-news-template__mode-option input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;}
.project-fb-news-template__mode-option span{color:inherit;font-size:.86rem;font-weight:650;line-height:1.2;white-space:nowrap;}
.project-fb-news-template__mode-option strong{color:inherit;font-size:.86rem;font-weight:700;line-height:1.2;}
.project-fb-news-template__mode-option:hover{color:#0f172a;background:rgba(255,255,255,.55);}
.project-fb-news-template__mode-option.is-active,
.project-fb-news-template__mode-option:has(input:checked){background:#fff;color:#0f172a;box-shadow:0 1px 2px rgba(15,23,42,.08),0 3px 10px rgba(15,23,42,.08);}
.project-fb-news-template__mode--modal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;border-radius:14px;margin-bottom:.75rem;}
.project-fb-news-template__mode--modal .project-fb-news-template__mode-option{justify-content:center;border-radius:11px;padding:.55rem .75rem;}
.project-fb-news-template__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;}
.project-fb-news-template__flow{list-style:none;margin:0;padding:.55rem .65rem;display:flex;flex-wrap:wrap;align-items:stretch;gap:.35rem;border:1px solid rgba(15,23,42,.06);border-radius:14px;background:#f8fafc;}
.project-fb-news-template__flow[hidden]{display:none !important;}
.project-fb-news-template__flow > li{display:inline-flex;align-items:center;gap:.4rem;min-width:0;padding:.35rem .55rem;border-radius:999px;background:#fff;border:1px solid rgba(15,23,42,.08);color:#0f172a;font-size:.8rem;font-weight:650;line-height:1.25;}
.project-fb-news-template__flow > li + li{position:relative;}
.project-fb-news-template__n{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:999px;background:#166534;color:#fff;font-size:.72rem;font-weight:750;line-height:1;flex:0 0 auto;}
.project-fb-news-template__flow--full .project-fb-news-template__n{background:#0f766e;}
.project-fb-news-template__tagbar{display:grid;gap:.45rem;padding:.65rem .75rem;border:1px solid rgba(22,163,74,.16);border-radius:14px;background:linear-gradient(180deg,#f0fdf4,#fff);}
.project-fb-news-template__tagbar-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .55rem;min-width:0;}
.project-fb-news-template__tagbar-head strong{color:#14532d;font-size:.86rem;font-weight:750;}
.project-fb-news-template__tagbar-head small{color:#64748b;font-size:.76rem;font-weight:500;}
.project-fb-news-template__info-link{margin:0;margin-left:auto;padding:0;border:0;background:transparent;color:#166534;font:inherit;font-size:.8rem;font-weight:700;line-height:1.3;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.project-fb-news-template__info-link:hover{color:#14532d;}
.project-fb-news-template__info-link:focus-visible{outline:2px solid rgba(22,163,74,.45);outline-offset:2px;border-radius:4px;}
.project-fb-news-template__rules{display:flex;flex-wrap:wrap;gap:.35rem;}
.project-fb-news-template__rules span{display:inline-flex;align-items:center;padding:.22rem .55rem;border-radius:999px;background:#fff;border:1px solid rgba(22,163,74,.22);color:#166534;font-size:.76rem;font-weight:650;line-height:1.25;}
.project-fb-sdg-info__tag.is-copied{background:var(--goal-color,#16a34a);border-color:var(--goal-color,#16a34a);color:var(--goal-on-color,#fff);}
.project-fb-news-template__textarea{width:100%;min-height:22rem;resize:vertical;margin:0;padding:.85rem 1rem;border:1px solid rgba(15,23,42,.12);border-radius:14px;background:#f8fafc;color:#0f172a;font:inherit;font-size:.88rem;line-height:1.55;white-space:pre-wrap;}
.project-fb-news-template__textarea:focus{outline:2px solid rgba(22,163,74,.35);outline-offset:1px;}
.project-fb-news-template__actions .button.is-copied,
.project-fb-news-template-modal .button.is-copied{background:#16a34a;border-color:#16a34a;color:#fff;}
.project-fb-news-template-modal .sdg-modal__dialog{
    width:min(720px,100%);
    max-height:min(92dvh,900px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.project-fb-news-template-modal__title{grid-template-columns:minmax(0,1fr);}
.project-fb-news-template-modal .sdg-modal__head{flex:0 0 auto;}
.project-fb-news-template-modal .sdg-modal__body{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    overflow:hidden;
    gap:.75rem;
}
.project-fb-news-template-modal .project-fb-news-template__mode--modal{
    flex:0 0 auto;
    margin-bottom:0;
}
.project-fb-news-template-modal .project-fb-news-template__textarea{
    flex:1 1 auto;
    width:100%;
    min-height:10rem;
    height:auto;
    max-height:none;
    resize:none;
    overflow:auto;
}
.project-fb-news-template-modal[data-mode="minimal"] .project-fb-news-template__textarea{
    min-height:8rem;
}
.project-fb-news-template-modal .sdg-modal__actions,
.project-fb-news-template-modal__actions{
    position:static;
    flex:0 0 auto;
    margin:0;
    padding:.85rem 1.25rem 1.1rem;
    border-top:1px solid rgba(15,23,42,.08);
    background:#fff;
    backdrop-filter:none;
    z-index:1;
}
@media (max-width:760px){
    .project-fb-news-template-modal .sdg-modal__actions,
    .project-fb-news-template-modal__actions{
        flex-direction:column-reverse;
        padding:.75rem 1rem 1rem;
    }
    .project-fb-news-template-modal .sdg-modal__actions .button,
    .project-fb-news-template-modal__actions .button{
        width:100%;
    }
}
.project-fb-sdg-info-modal .sdg-modal__dialog,
.project-fb-sdg-info-modal .sdg-modal__dialog--wide{width:min(860px,100%);max-height:min(92vh,920px);}
.project-fb-sdg-info-modal .sdg-modal__head{align-items:flex-start;}
.project-fb-sdg-info-modal .sdg-modal__title-wrap{display:block;grid-template-columns:none;min-width:0;flex:1 1 auto;width:100%;}
.project-fb-sdg-info-modal .sdg-modal__title-wrap > div{min-width:0;max-width:100%;}
.project-fb-sdg-info-modal .sdg-modal__title-wrap h3{margin:0 0 .35rem;line-height:1.35;word-break:normal;overflow-wrap:anywhere;}
.project-fb-sdg-info-modal .sdg-modal__title-wrap p{margin:0;color:#475569;font-size:.9rem;line-height:1.5;font-weight:500;}
.project-fb-sdg-info-modal .sdg-modal__close{flex:0 0 auto;}
.project-fb-sdg-info-modal .sdg-modal__body{display:grid;gap:.85rem;}
.project-fb-sdg-info-modal .sdg-modal__actions{position:static;margin:0;padding:0;border-top:0;background:transparent;backdrop-filter:none;}
.project-fb-sdg-info__search{display:grid;gap:.35rem;margin:0;color:#334155;font-size:.86rem;font-weight:650;}
.project-fb-sdg-info__search input{width:100%;min-height:42px;padding:.55rem .8rem;border:1px solid rgba(15,23,42,.12);border-radius:12px;background:#fff;color:#0f172a;font:inherit;font-size:.9rem;}
.project-fb-sdg-info__search input:focus{outline:2px solid rgba(22,163,74,.35);outline-offset:1px;}
.project-fb-sdg-info__list{display:grid;gap:.55rem;max-height:min(58vh,520px);overflow:auto;padding-right:.15rem;}
.project-fb-sdg-info__item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:start;padding:.75rem .85rem;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#fff;border-left:4px solid var(--goal-color,#16a34a);}
.project-fb-sdg-info__item[hidden]{display:none !important;}
.project-fb-sdg-info__mark{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:var(--goal-color,#16a34a);color:var(--goal-on-color,#fff);font-size:.82rem;font-weight:750;line-height:1;}
.project-fb-sdg-info__copy{display:grid;gap:.3rem;min-width:0;}
.project-fb-sdg-info__head{display:flex;flex-wrap:wrap;gap:.35rem .55rem;align-items:baseline;}
.project-fb-sdg-info__tag{display:inline-flex;align-items:center;margin:0;padding:.12rem .45rem;border:1px solid color-mix(in srgb, var(--goal-color,#16a34a) 32%, transparent);border-radius:999px;background:color-mix(in srgb, var(--goal-color,#16a34a) 14%, #ffffff);color:color-mix(in srgb, var(--goal-color,#16a34a) 68%, #0f172a);font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;}
.project-fb-sdg-info__tag:hover{background:color-mix(in srgb, var(--goal-color,#16a34a) 22%, #ffffff);}
.project-fb-sdg-info__head strong{color:#0f172a;font-size:.92rem;line-height:1.35;}
.project-fb-sdg-info__copy p{margin:0;color:#475569;font-size:.84rem;line-height:1.5;}
.project-fb-sdg-info__targets{margin-top:.35rem;border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#f8fafc;}
.project-fb-sdg-info__targets>summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.35rem .7rem;cursor:pointer;list-style:none;padding:.45rem .65rem;color:#334155;font-size:.8rem;font-weight:650;}
.project-fb-sdg-info__targets>summary::-webkit-details-marker{display:none;}
.project-fb-sdg-info__targets>summary em{color:#64748b;font-style:normal;font-weight:600;}
.project-fb-sdg-info__targets[open]>summary{border-bottom:1px solid rgba(15,23,42,.08);}
.project-fb-sdg-info__targets-empty{margin:0;padding:.55rem .65rem .65rem;color:#94a3b8;font-size:.8rem;}
.project-fb-sdg-info__target-list{margin:0;padding:.45rem .65rem .65rem;display:grid;gap:.35rem;list-style:none;}
.project-fb-sdg-info__target-list li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.45rem;align-items:start;color:#334155;font-size:.8rem;line-height:1.45;}
.project-fb-sdg-info__target-list code{display:inline-flex;align-items:center;padding:.08rem .35rem;border-radius:6px;background:color-mix(in srgb, var(--goal-color,#16a34a) 12%, #ffffff);color:color-mix(in srgb, var(--goal-color,#16a34a) 72%, #0f172a);font-size:.72rem;font-weight:700;letter-spacing:.01em;white-space:nowrap;}
.project-fb-sdg-info__empty{margin:0;color:#64748b;font-size:.88rem;}
@media (max-width:720px){
    .project-fb-news-template__toolbar{align-items:stretch;}
    .project-fb-news-template__mode{width:100%;display:grid;grid-template-columns:1fr 1fr;border-radius:14px;}
    .project-fb-news-template__mode-option{justify-content:center;border-radius:11px;}
    .project-fb-news-template__actions{width:100%;}
    .project-fb-news-template__info-link{margin-left:0;width:100%;text-align:left;}
}
.project-facebook-feed__toolbar{display:flex;flex-wrap:wrap;gap:.65rem .85rem;align-items:end;justify-content:space-between;margin-top:.85rem;padding:.75rem .9rem;border:1px solid rgba(22,163,74,.16);border-radius:14px;background:rgba(255,255,255,.88);}
.project-facebook-feed__actions .button,
.project-facebook-feed__multi-actions .button,
.project-facebook-feed-result__actions .button{
    min-height:34px;
    padding:.32rem .72rem;
    border-radius:10px;
    font-size:.86rem;
    font-weight:700;
    line-height:1.25;
}
.project-facebook-feed__multi{margin-top:.85rem;display:flex;justify-content:space-between;gap:.7rem;align-items:center;padding:.7rem .85rem;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:#fff;}
.project-facebook-feed__multi[hidden]{display:none !important;}
.project-facebook-feed__multi-copy{display:flex;flex-wrap:wrap;gap:.45rem .7rem;align-items:center;min-width:0;}
.project-facebook-feed__multi-copy strong{color:#0f172a;font-size:.88rem;font-weight:700;}
.project-facebook-feed__mode{display:inline-flex;flex-wrap:wrap;gap:.2rem;padding:.18rem;border-radius:12px;background:#eef2f7;border:1px solid rgba(15,23,42,.06);}
.project-facebook-feed__mode-option{position:relative;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:.32rem .7rem;border-radius:9px;color:#475569;font-size:.82rem;font-weight:650;line-height:1.25;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease;}
.project-facebook-feed__mode-option span{color:inherit;}
.project-facebook-feed__mode-option input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;}
.project-facebook-feed__mode-option:hover{color:#0f172a;background:rgba(255,255,255,.55);}
.project-facebook-feed__mode-option.is-active,
.project-facebook-feed__mode-option:has(input:checked){background:#fff;color:#0f172a;box-shadow:0 1px 2px rgba(15,23,42,.08),0 3px 8px rgba(15,23,42,.08);}
.project-facebook-feed__mode-option.is-active span,
.project-facebook-feed__mode-option:has(input:checked) span{color:#0f172a;font-weight:700;}
.project-facebook-feed__multi-actions{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end;}
.project-facebook-feed__batch{margin-top:.8rem;display:grid;gap:.55rem;padding:.9rem 1rem;border:1px solid rgba(22,163,74,.22);border-radius:16px;background:#f0fdf4;width:fit-content;max-width:70%;box-sizing:border-box;}
.project-facebook-feed__batch[hidden]{display:none !important;}
.project-facebook-feed__batch-title{color:#166534;font-weight:750;font-size:.92rem;line-height:1.35;}
.project-facebook-feed__batch-list,.project-facebook-feed__batch-failed{margin:0;padding:0;list-style:none;display:grid;gap:.55rem;}
.project-facebook-feed__batch-list li{
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    gap:.35rem .55rem;
    align-items:start;
    padding:.55rem .7rem;
    border:1px solid rgba(15,23,42,.06);
    border-radius:12px;
    background:rgba(255,255,255,.72);
    color:#64748b;
    font-size:.86rem;
    font-weight:500;
    line-height:1.5;
}
.project-facebook-feed__batch-list li::before{
    content:'•';
    color:#86efac;
    font-weight:700;
    line-height:1.5;
}
.project-facebook-feed__batch-item-body{min-width:0;display:inline;color:#64748b;}
.project-facebook-feed__batch-item-title{color:#64748b;font-weight:500;}
.project-facebook-feed__batch-open{
    display:inline;
    margin-left:.35rem;
    color:#16a34a;
    font-weight:750;
    text-decoration:underline;
    text-underline-offset:2px;
    white-space:nowrap;
}
.project-facebook-feed__batch-open:hover{color:#15803d;}
.project-facebook-feed__batch-open:focus-visible{outline:2px solid rgba(22,163,74,.45);outline-offset:2px;border-radius:4px;}
.project-facebook-feed__batch-failed{color:#b45309;padding-left:1.1rem;list-style:disc;}
.project-facebook-feed__batch-failed li{display:list-item;}
.project-facebook-feed-result__actions .button--ghost{border-color:rgba(15,23,42,.12);}
.project-facebook-feed__selected{margin-top:.8rem;}
.project-facebook-feed-selected-list{display:grid;gap:.7rem;}
.project-facebook-feed-selected-list__help{margin:0;color:#166534;font-size:.86rem;line-height:1.5;}
.project-facebook-feed-selected-card{display:grid;gap:.25rem;padding:.85rem;border:1px solid rgba(22,163,74,.25);border-radius:16px;background:#ecfdf5;color:#14532d;}
.project-facebook-feed-selected-card__top{display:grid;grid-template-columns:132px minmax(0,1fr);gap:.75rem;align-items:start;}
.project-facebook-feed-selected-card__top .project-facebook-feed-gallery{height:92px;border-radius:12px;overflow:hidden;border:1px solid rgba(22,163,74,.18);background:#d1fae5;}
.project-facebook-feed-selected-card__copy{display:grid;gap:.25rem;min-width:0;overflow:visible;}
.project-facebook-feed-selected-card strong{color:#0f172a;font-size:.96rem;font-weight:650;line-height:1.5;padding-inline-start:.08rem;overflow:visible;}
.project-facebook-feed-selected-card span{color:#166534;font-size:.82rem;}
.project-facebook-feed-selected-card small{color:#3f6212;font-size:.8rem;line-height:1.45;}
.project-facebook-feed-selected-card .button{justify-self:start;margin-top:.35rem;}
@media (max-width:900px){
    .project-facebook-feed__head{grid-template-columns:1fr;}
    .project-facebook-feed__source{text-align:left;min-width:0;}
    .project-facebook-feed__multi{flex-direction:column;align-items:stretch;}
    .project-facebook-feed__multi-actions{justify-content:stretch;}
    .project-facebook-feed__multi-actions .button{flex:1 1 auto;justify-content:center;}
    .project-facebook-feed-result{grid-template-columns:auto 92px minmax(0,1fr);}
    .project-facebook-feed-result__actions{grid-column:1/-1;justify-content:stretch;}
    .project-facebook-feed-result__actions .button{flex:1 1 auto;justify-content:center;}
    .project-facebook-feed-result__media{width:92px;height:72px;}
    .project-facebook-feed-selected-card__top{grid-template-columns:110px minmax(0,1fr);}
    .project-facebook-feed-selected-card__top .project-facebook-feed-gallery{height:82px;}
}
@media (max-width:560px){
    .project-facebook-feed{padding:.85rem;border-radius:16px;}
    .project-facebook-feed__actions .button{width:100%;justify-content:center;}
    .project-facebook-feed-result{grid-template-columns:auto minmax(0,1fr);}
    .project-facebook-feed-result__media{grid-column:1/-1;width:100%;height:150px;}
    .project-facebook-feed-result__body{grid-column:2 / -1;}
    .project-facebook-feed-selected-card__top{grid-template-columns:1fr;}
    .project-facebook-feed-selected-card__top .project-facebook-feed-gallery{height:150px;}
}

.project-facebook-feed-include{display:grid;gap:.45rem;}
.project-facebook-feed-include__actions{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;}
.project-facebook-feed-include__actions .button{min-height:34px;padding:.32rem .7rem;font-size:.86rem;border-radius:10px;}
.project-facebook-feed-include__help,
.project-facebook-feed-include__hint{margin:0;color:#64748b;font-size:.8rem;line-height:1.45;font-weight:500;}
.project-facebook-feed-include__suggest{display:grid;gap:.45rem;padding:.7rem .75rem;border:1px solid rgba(22,163,74,.18);border-radius:14px;background:rgba(236,253,245,.55);}
.project-facebook-feed-include__suggest-head{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;justify-content:space-between;}
.project-facebook-feed-include__suggest-head strong{color:#14532d;font-size:.84rem;font-weight:700;}
.project-facebook-feed-include__suggest-head input[type="search"]{min-width:min(100%,220px);flex:1 1 180px;min-height:36px;padding:.35rem .65rem;border:1px solid rgba(15,23,42,.14);border-radius:10px;background:#fff;color:#0f172a;font:inherit;font-size:.84rem;}
.project-facebook-feed-include__chips{display:flex;flex-wrap:wrap;gap:.35rem;max-height:9.5rem;overflow:auto;padding:.1rem;}
.project-facebook-feed-include__chip{display:inline-flex;align-items:center;gap:.3rem;margin:0;padding:.28rem .55rem;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#fff;color:#334155;font:inherit;font-size:.76rem;font-weight:600;line-height:1.25;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;}
.project-facebook-feed-include__chip em{font-style:normal;color:#166534;font-size:.68rem;font-weight:700;opacity:.85;}
.project-facebook-feed-include__chip:hover{border-color:rgba(22,163,74,.35);color:#14532d;background:#f0fdf4;}
.project-facebook-feed-include__chip.is-active{background:#16a34a;border-color:#16a34a;color:#fff;box-shadow:0 4px 12px rgba(22,163,74,.22);}
.project-facebook-feed-include__chip.is-active em{color:rgba(255,255,255,.92);}
.project-facebook-feed-include__chip:disabled{opacity:.55;cursor:not-allowed;}
.project-facebook-feed-include__chip:focus-visible{outline:3px solid rgba(34,197,94,.4);outline-offset:2px;}

.rru-3dgf-project-lookup{
    margin-top:1rem;
    padding:1rem;
    border:1px solid rgba(14,116,144,.18);
    border-radius:18px;
    background:linear-gradient(180deg,rgba(236,254,255,.75),rgba(255,255,255,.98));
    box-shadow:0 10px 22px rgba(8,47,73,.06);
}
.rru-3dgf-project-lookup__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.8rem;}
.rru-3dgf-project-lookup__head strong{display:block;color:#0f172a;font-size:1rem;line-height:1.35;}
.rru-3dgf-project-lookup__head small{display:block;max-width:46rem;color:#475569;font-size:.86rem;line-height:1.55;text-align:right;}
.rru-3dgf-project-lookup__search{display:grid;grid-template-columns:minmax(220px,1.35fr) minmax(135px,.55fr) minmax(220px,1fr) auto;gap:.6rem;align-items:end;}
.rru-3dgf-project-lookup__query-field,.rru-3dgf-project-lookup__year-field,.rru-3dgf-project-lookup__dept-field{display:grid;gap:.32rem;margin:0;min-width:0;}
.rru-3dgf-project-lookup__year-field span,.rru-3dgf-project-lookup__dept-field span{font-size:.78rem;font-weight:700;color:#334155;line-height:1.25;}
.rru-3dgf-project-lookup__search input[type="search"],.rru-3dgf-project-lookup__search select{width:100%;min-height:42px;border:1px solid rgba(15,23,42,.16);border-radius:12px;padding:.65rem .8rem;background:#fff;color:#0f172a;}
.rru-3dgf-project-lookup__search select{font-weight:700;cursor:pointer;}
.rru-3dgf-project-lookup__status{margin-top:.7rem;padding:.65rem .8rem;border-radius:12px;font-size:.88rem;font-weight:600;line-height:1.45;}
.rru-3dgf-project-lookup__status--loading{background:#eff6ff;color:#1d4ed8;}
.rru-3dgf-project-lookup__status--success{background:#ecfdf5;color:#047857;}
.rru-3dgf-project-lookup__status--warning{background:#fffbeb;color:#92400e;}
.rru-3dgf-project-lookup__status--danger{background:#fef2f2;color:#b91c1c;}
.rru-3dgf-project-lookup__status--neutral{background:#f8fafc;color:#475569;}
.rru-3dgf-project-results{margin-top:.8rem;display:grid;gap:.55rem;max-height:320px;overflow:auto;padding-right:.15rem;}
.rru-3dgf-project-result{width:100%;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:#fff;padding:.75rem .85rem;text-align:left;cursor:pointer;box-shadow:0 6px 14px rgba(15,23,42,.04);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.rru-3dgf-project-result:hover,.rru-3dgf-project-result:focus{outline:none;transform:translateY(-1px);border-color:rgba(14,116,144,.38);box-shadow:0 10px 22px rgba(14,116,144,.12);}
.rru-3dgf-project-result strong{display:block;color:#0f172a;font-size:.94rem;line-height:1.45;}
.rru-3dgf-project-result span{display:block;margin-top:.25rem;color:#64748b;font-size:.82rem;line-height:1.45;}
.rru-3dgf-project-results__empty{padding:.8rem;border-radius:14px;background:#fff;color:#64748b;border:1px dashed rgba(15,23,42,.16);}
.rru-3dgf-project-results__limit{padding:.7rem .85rem;border-radius:12px;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;font-size:.84rem;font-weight:700;line-height:1.45;text-align:center;}
.rru-3dgf-project-selected{margin-top:.85rem;}
.rru-3dgf-project-selected__card{display:grid;gap:.25rem;padding:.85rem;border:1px solid rgba(22,163,74,.22);border-radius:14px;background:#f0fdf4;color:#14532d;}
.rru-3dgf-project-selected__card strong{color:#0f172a;font-size:.95rem;line-height:1.45;}
.rru-3dgf-project-selected__card span{font-size:.84rem;color:#166534;}
.rru-3dgf-project-selected__card small{font-size:.8rem;color:#3f6212;line-height:1.45;}
.rru-3dgf-project-selected__card .button{justify-self:start;margin-top:.35rem;}
@media (max-width:1080px){
    .rru-3dgf-project-lookup__search{grid-template-columns:minmax(0,1fr) minmax(150px,190px);}
    .rru-3dgf-project-lookup__search .button{min-height:42px;}
}
@media (max-width:760px){
    .rru-3dgf-project-lookup__head{display:block;}
    .rru-3dgf-project-lookup__head small{text-align:left;margin-top:.25rem;}
    .rru-3dgf-project-lookup__search{grid-template-columns:1fr;}
    .rru-3dgf-project-lookup__search .button{width:100%;justify-content:center;}
    .rru-3dgf-project-lookup__year-field span,.rru-3dgf-project-lookup__dept-field span{font-size:.82rem;}
}


/* RS31.78 LDAP user lookup on admin user create form */
.ldap-user-lookup { border-color: rgba(0, 163, 168, .28); background: linear-gradient(180deg, #ffffff 0%, #f7fbfc 100%); }
.editor-section__head--with-action { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); }
.ldap-lookup-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-4); align-items: end; }
.ldap-lookup-field { min-width: 0; }
.ldap-lookup-button { min-height: 44px; white-space: nowrap; }
.ldap-lookup-status { margin-top: .85rem; color: var(--text-muted); font-size: .92rem; }
.ldap-lookup-status--success { color: var(--success); font-weight: 600; }
.ldap-lookup-status--warning { color: var(--warning); font-weight: 600; }
.ldap-lookup-status--danger { color: var(--danger); font-weight: 600; }
.ldap-lookup-status--loading { color: var(--info); font-weight: 600; }
.ldap-result-list { display: grid; gap: .75rem; margin-top: .85rem; }
.ldap-result-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-4); align-items: center; padding: 1rem; border: 1px solid var(--border); border-radius: var(--radius-md); background: #fff; box-shadow: var(--shadow-sm); }
.ldap-result-card--exists { background: #fff7ed; border-color: rgba(181, 71, 8, .35); }
.ldap-result-card__body { display: grid; gap: .18rem; min-width: 0; }
.ldap-result-card__body strong { color: var(--rru-primary); line-height: 1.25; }
.ldap-result-card__body span,
.ldap-result-card__body small { color: var(--text-muted); overflow-wrap: anywhere; }
.ldap-result-card__body em { color: var(--warning); font-style: normal; font-weight: 600; }
.ldap-result-card__actions { display: flex; justify-content: flex-end; }
.ldap-empty { padding: .9rem 1rem; border: 1px dashed var(--border); border-radius: var(--radius-md); background: var(--surface-soft); color: var(--text-muted); }
@media (max-width: 760px) {
    .editor-section__head--with-action,
    .ldap-lookup-grid,
    .ldap-result-card { grid-template-columns: 1fr; }
    .ldap-result-card__actions,
    .ldap-lookup-button { width: 100%; }
    .ldap-result-card__actions .button { width: 100%; }
}

/* RS31.81 AD/LDAP login provider for user accounts */
.auth-provider-fieldset { border: 1px solid rgba(15, 23, 42, .12); border-radius: var(--radius-md); padding: 1rem; background: linear-gradient(180deg, #fff 0%, #f8fafc 100%); }
.auth-provider-fieldset legend { padding: 0 .35rem; color: var(--rru-primary); font-weight: 600; }
.auth-provider-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; margin-top: .35rem; }
.auth-provider-option { display: flex; align-items: flex-start; gap: .7rem; min-height: 86px; padding: .9rem; border: 1px solid rgba(15, 23, 42, .12); border-radius: 16px; background: #fff; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.auth-provider-option:hover { transform: translateY(-1px); border-color: rgba(0, 97, 74, .28); box-shadow: 0 10px 22px rgba(15, 23, 42, .07); }
.auth-provider-option.is-selected { border-color: rgba(0, 97, 74, .42); background: #f0fdf4; box-shadow: 0 12px 24px rgba(0, 97, 74, .09); }
.auth-provider-option input { margin-top: .25rem; }
.auth-provider-option strong { display: block; color: var(--text); line-height: 1.35; }
.auth-provider-option small { display: block; margin-top: .25rem; color: var(--text-muted); line-height: 1.45; }
.check-line.is-muted { opacity: .58; }
.check-line.is-muted input { cursor: not-allowed; }
.muted-text { color: var(--text-muted); line-height: 1.55; margin: .25rem 0 0; }
@media (max-width: 760px) { .auth-provider-grid { grid-template-columns: 1fr; } }

/* RS31.84 Admin batch action framework */
.batch-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) repeat(3,minmax(180px,auto));gap:.8rem;align-items:end;margin:1rem 0;padding:1rem;border:1px solid rgba(15,23,42,.12);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,252,.98));box-shadow:0 12px 28px rgba(15,23,42,.06);}
.batch-toolbar__summary{display:grid;gap:.2rem;align-self:center;min-width:0;}
.batch-toolbar__summary strong{color:#0f172a;font-size:1rem;line-height:1.35;}
.batch-toolbar__summary span{color:#64748b;font-size:.88rem;line-height:1.45;}
.batch-toolbar__field{display:grid;gap:.35rem;color:#334155;font-size:.86rem;font-weight:600;min-width:0;}
.batch-toolbar__field select,.batch-toolbar__field textarea{width:100%;border:1px solid rgba(15,23,42,.16);border-radius:12px;background:#fff;color:#0f172a;padding:.65rem .8rem;font:inherit;font-weight:500;}
.batch-toolbar__field textarea{min-height:44px;resize:vertical;font-weight:500;line-height:1.45;}
.batch-toolbar__reason{grid-column:1 / -2;}
.batch-select-col{width:1%;white-space:nowrap;text-align:center!important;}
.batch-check{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:36px;cursor:pointer;color:#475569;font-size:.82rem;font-weight:600;}
.batch-check input{width:18px;height:18px;accent-color:#0f766e;cursor:pointer;}
.batch-check input:disabled{cursor:not-allowed;opacity:.35;}
.batch-check--all{padding:.1rem .25rem;}
.batch-modal[hidden]{display:none!important;}
.batch-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:1rem;}
.batch-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.54);backdrop-filter:blur(4px);}
.batch-modal__dialog{position:relative;z-index:1;width:min(920px,calc(100vw - 2rem));max-height:min(86vh,860px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.28);overflow:hidden;}
.batch-modal__head,.batch-modal__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border-bottom:1px solid rgba(15,23,42,.08);background:linear-gradient(180deg,#fff,#f8fafc);}
.batch-modal__foot{border-top:1px solid rgba(15,23,42,.08);border-bottom:0;justify-content:flex-end;}
.batch-modal__head h3{margin:.15rem 0 0;color:#0f172a;font-size:1.2rem;line-height:1.35;}
.batch-modal__close{width:38px;height:38px;border:0;border-radius:999px;background:#f1f5f9;color:#334155;font-size:1.4rem;line-height:1;cursor:pointer;}
.batch-modal__close:hover{background:#e2e8f0;color:#0f172a;}
.batch-modal__body{padding:1rem;overflow:auto;background:#f8fafc;}
.batch-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;}
.batch-summary-card{padding:.8rem;border:1px solid rgba(15,23,42,.1);border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.04);}
.batch-summary-card span{display:block;color:#64748b;font-size:.82rem;font-weight:600;line-height:1.35;}
.batch-summary-card strong{display:block;margin-top:.15rem;color:#0f172a;font-size:1.45rem;line-height:1;}
.batch-preview-list{display:grid;gap:.55rem;}
.batch-preview-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.85rem;border:1px solid rgba(15,23,42,.1);border-left-width:5px;border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(15,23,42,.04);}
.batch-preview-item strong{display:block;color:#0f172a;line-height:1.35;}
.batch-preview-item small{display:block;margin-top:.18rem;color:#64748b;line-height:1.45;overflow-wrap:anywhere;}
.batch-preview-item--ready{border-left-color:#0f766e;}
.batch-preview-item--success{border-left-color:#16a34a;}
.batch-preview-item--skipped{border-left-color:#f59e0b;}
.batch-preview-item--blocked,.batch-preview-item--failed{border-left-color:#dc2626;}
.batch-preview-badge{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:.28rem .6rem;border-radius:999px;background:#f1f5f9;color:#334155;font-size:.78rem;font-weight:700;white-space:nowrap;}
.batch-preview-item--ready .batch-preview-badge{background:#ecfdf5;color:#047857;}
.batch-preview-item--success .batch-preview-badge{background:#dcfce7;color:#166534;}
.batch-preview-item--skipped .batch-preview-badge{background:#fffbeb;color:#92400e;}
.batch-preview-item--blocked .batch-preview-badge,.batch-preview-item--failed .batch-preview-badge{background:#fef2f2;color:#b91c1c;}
@media (max-width:980px){.batch-toolbar{grid-template-columns:1fr 1fr;}.batch-toolbar__summary,.batch-toolbar__reason{grid-column:1 / -1;}.batch-toolbar .button{width:100%;justify-content:center;}}
@media (max-width:720px){.batch-toolbar{grid-template-columns:1fr;padding:.85rem;border-radius:16px;}.batch-toolbar__field,.batch-toolbar .button{width:100%;}.batch-select-col{text-align:left!important;}.batch-check{justify-content:flex-start;}.batch-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.batch-preview-item{grid-template-columns:1fr;}.batch-preview-badge{justify-self:start;}.batch-modal{padding:.65rem;}.batch-modal__dialog{width:100%;max-height:92vh;border-radius:20px;}.batch-modal__head,.batch-modal__foot{padding:.85rem;}.batch-modal__foot{display:grid;grid-template-columns:1fr;}.batch-modal__foot .button{width:100%;justify-content:center;}}

/* RS31.85 Admin content full-width gutter polish
   Make admin work area follow the full width of .admin-main while retaining
   consistent production gutters on desktop, tablet, and mobile. */
.site-admin .admin-main {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.site-admin .admin-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box;
    padding: clamp(1rem, 1.45vw, 1.75rem) !important;
    display: grid;
    gap: clamp(1rem, 1.35vw, 1.5rem);
    align-content: start;
}
.site-admin .admin-content > * {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.site-admin .admin-content > .panel,
.site-admin .admin-content > .admin-list-panel,
.site-admin .admin-content > .workbench-hero,
.site-admin .admin-content > .editor-layout,
.site-admin .admin-content > .form-layout,
.site-admin .admin-content > .review-layout,
.site-admin .admin-content > .content-editor-layout,
.site-admin .admin-content > .project-editor-layout,
.site-admin .admin-content > .dashboard-grid,
.site-admin .admin-content > .content-grid,
.site-admin .admin-content > .stats-grid,
.site-admin .admin-content > .toolbar,
.site-admin .admin-content > .admin-filter,
.site-admin .admin-content > .admin-filter--card {
    margin-inline: 0;
}
.site-admin .admin-content .table-wrap,
.site-admin .admin-content .dataTables_wrapper,
.site-admin .admin-content .dt-container {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
@media (min-width: 1440px) {
    .site-admin .admin-content {
        padding-inline: clamp(1.25rem, 1.35vw, 2rem) !important;
    }
}
@media (max-width: 980px) {
    .site-admin .admin-content {
        padding: 1rem !important;
        gap: 1rem;
    }
}
@media (max-width: 640px) {
    .site-admin .admin-content {
        padding: .75rem !important;
        gap: .75rem;
    }
}


/* RS31.92 Organization Facebook Graph API Source */
.organization-facebook-source-guide{
    margin: 0 0 1rem;
    border: 1px solid rgba(17, 56, 92, .12);
    border-radius: 18px;
    background: linear-gradient(180deg, #f3f8fc 0%, #ffffff 42%);
    overflow: hidden;
}
.organization-facebook-source-guide__summary{
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem 1.1rem;
}
.organization-facebook-source-guide__summary::-webkit-details-marker{display:none;}
.organization-facebook-source-guide__summary::after{
    content: '▾';
    margin-left: auto;
    color: #64748b;
    transition: transform .15s ease;
}
.organization-facebook-source-guide[open] > .organization-facebook-source-guide__summary::after{
    transform: rotate(180deg);
}
.organization-facebook-source-guide__summary span{
    display: grid;
    gap: .25rem;
    min-width: 0;
}
.organization-facebook-source-guide__summary strong{
    color: var(--rru-primary, #11385c);
    font-size: 1rem;
    font-weight: 700;
}
.organization-facebook-source-guide__summary small{
    color: #64748b;
    font-size: .88rem;
    line-height: 1.45;
    font-weight: 500;
}
.organization-facebook-source-guide__body{
    display: grid;
    gap: 1rem;
    padding: 0 1.1rem 1.15rem;
}
.organization-facebook-source-guide__need{
    display: grid;
    gap: .4rem;
    padding: .85rem .95rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
}
.organization-facebook-source-guide__need strong{
    color: #0f172a;
    font-size: .92rem;
}
.organization-facebook-source-guide__need ul,
.organization-facebook-source-guide__steps ul{
    margin: 0;
    padding-left: 1.15rem;
    color: #334155;
    font-size: .88rem;
    line-height: 1.5;
}
.organization-facebook-source-guide__need li + li,
.organization-facebook-source-guide__steps li + li{
    margin-top: .2rem;
}
.organization-facebook-source-guide__steps{
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .75rem;
    counter-reset: fb-source-step;
}
.organization-facebook-source-guide__steps > li{
    position: relative;
    display: grid;
    gap: .35rem;
    padding: .9rem .95rem .9rem 3.1rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    counter-increment: fb-source-step;
}
.organization-facebook-source-guide__steps > li::before{
    content: counter(fb-source-step);
    position: absolute;
    left: .85rem;
    top: .9rem;
    width: 1.7rem;
    height: 1.7rem;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: var(--rru-primary, #11385c);
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
}
.organization-facebook-source-guide__steps strong{
    color: #0f172a;
    font-size: .95rem;
}
.organization-facebook-source-guide__steps p{
    margin: 0;
    color: #475569;
    font-size: .88rem;
    line-height: 1.55;
}
.organization-facebook-source-guide__example,
.organization-facebook-source-guide__note{
    padding: .55rem .7rem;
    border-radius: 10px;
    background: #f8fafc;
    color: #334155 !important;
    font-size: .84rem !important;
}
.organization-facebook-source-guide__example code{
    display:inline-block;
    padding:.12rem .35rem;
    border-radius:6px;
    background:#e2e8f0;
    color:#0f172a;
    font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
    font-size:.82rem;
    word-break:break-all;
}
.organization-facebook-source-guide__advanced-badge{
    margin:0;
    justify-self:start;
    padding:.28rem .6rem;
    border-radius:999px;
    background:#ecfdf5;
    border:1px solid rgba(22,163,74,.25);
    color:#166534;
    font-size:.78rem;
    font-weight:700;
}
.organization-facebook-source-guide__note{
    background: #fff7ed;
    color: #9a3412 !important;
}
.organization-facebook-source-guide__map{
    margin: .15rem 0 0;
    display: grid;
    gap: .45rem;
}
.organization-facebook-source-guide__map > div{
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
    gap: .45rem .75rem;
    padding: .55rem .65rem;
    border-radius: 10px;
    background: #f8fafc;
}
.organization-facebook-source-guide__map dt{
    margin: 0;
    color: #0f172a;
    font-size: .82rem;
    font-weight: 700;
}
.organization-facebook-source-guide__map dd{
    margin: 0;
    color: #475569;
    font-size: .84rem;
    line-height: 1.45;
}
.organization-facebook-source-guide__extra{
    border-radius: 14px;
    border: 1px dashed rgba(15, 23, 42, .14);
    background: rgba(255, 255, 255, .7);
    padding: .7rem .85rem;
}
.organization-facebook-source-guide__extra summary{
    cursor: pointer;
    color: var(--rru-primary, #11385c);
    font-weight: 700;
    font-size: .9rem;
}
.organization-facebook-source-guide__extra p,
.organization-facebook-source-guide__extra ul{
    margin: .55rem 0 0;
    color: #475569;
    font-size: .86rem;
    line-height: 1.5;
}
.organization-facebook-source-guide__extra ul{padding-left: 1.15rem;}
.organization-facebook-source-guide__links{
    display:grid;
    gap:.4rem;
    margin-top:.2rem;
    padding:.65rem .75rem;
    border-radius:12px;
    background:#eef6fb;
    border:1px solid rgba(17,56,92,.12);
}
.organization-facebook-source-guide__links-label{
    color:#11385c;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.01em;
}
.organization-facebook-source-guide__link-row{
    display:flex;
    flex-wrap:wrap;
    gap:.4rem;
}
.organization-facebook-source-guide__link{
    display:inline-flex;
    align-items:center;
    gap:.2rem;
    padding:.35rem .65rem;
    border-radius:999px;
    border:1px solid rgba(17,56,92,.18);
    background:#fff;
    color:#0b5d3b;
    font-size:.8rem;
    font-weight:700;
    line-height:1.3;
    text-decoration:none;
}
.organization-facebook-source-guide__link:hover{
    border-color:rgba(11,93,59,.35);
    background:#f0fdf4;
    color:#166534;
}
.organization-facebook-source-guide__extra .organization-facebook-source-guide__links{
    margin-top:.7rem;
}
@media (max-width: 720px){
    .organization-facebook-source-guide__map > div{
        grid-template-columns: 1fr;
    }
    .organization-facebook-source-guide__steps > li{
        padding-left: 2.9rem;
    }
}
.organization-facebook-source-editor .editor-section textarea[spellcheck="false"]{
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace);
    font-size: .9rem;
}
.organization-facebook-source-card .meta-list{
    display:grid;
    gap:.75rem;
    margin:1rem 0 0;
}
.organization-facebook-source-card .meta-list dt{
    margin:0;
    color:#475569;
    font-size:.8rem;
    font-weight:600;
}
.organization-facebook-source-card .meta-list dd{
    margin:.15rem 0 .6rem;
    color:#0f172a;
    font-size:.9rem;
    line-height:1.45;
}
.organization-facebook-source-card .code-wrap{
    display:block;
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
    padding:.45rem .55rem;
    border-radius:12px;
    background:rgba(15,23,42,.05);
    color:#334155;
}
.badge-soft--success{
    background:#ecfdf5;
    color:#047857;
}
.badge-soft--muted{
    background:#f1f5f9;
    color:#64748b;
}
.badge-soft--neutral{
    background:#fff7ed;
    color:#9a3412;
}
@media (max-width:720px){
    .organization-facebook-source-editor .sticky-savebar{
        align-items:stretch;
    }
    .organization-facebook-source-editor .sticky-savebar .button{
        width:100%;
        justify-content:center;
    }
}

/* RS31.94: make the project-create Facebook Feed entry point visible even when the source is not ready. */
.project-facebook-feed.is-unavailable{
    background:linear-gradient(180deg,#fff7ed 0%,#ffffff 100%);
    border-color:rgba(234,88,12,.24);
}
.project-facebook-feed__source.is-unavailable{
    border-color:rgba(234,88,12,.22);
    background:#fff7ed;
}
.project-facebook-feed__source small{
    color:#9a3412;
    font-size:.76rem;
    line-height:1.35;
}
.project-facebook-feed__guide{
    display:grid;
    gap:.35rem;
    margin-top:.75rem;
    padding:.75rem .85rem;
    border:1px solid rgba(15,23,42,.1);
    border-radius:16px;
    background:rgba(255,255,255,.74);
}
.project-facebook-feed__guide strong{
    color:#0f172a;
    font-size:.9rem;
    font-weight:600;
}
.project-facebook-feed__guide ol{
    margin:0;
    padding-left:1.15rem;
    color:#475569;
    font-size:.84rem;
    line-height:1.55;
}
.project-facebook-feed__guide li+li{margin-top:.15rem;}
.project-facebook-feed__actions .button[disabled]{
    opacity:.55;
    cursor:not-allowed;
    filter:grayscale(.25);
}
@media (max-width:760px){
    .project-facebook-feed__toolbar{align-items:stretch;}
    .project-facebook-feed__filters{width:100%;}
    .project-facebook-feed__filters label{flex:1 1 140px;}
    .project-facebook-feed__actions{width:100%;}
}
@media (max-width:640px){
    .project-facebook-feed__guide{padding:.65rem .72rem;}
    .project-facebook-feed__guide ol{font-size:.8rem;}
    .project-facebook-feed__toolbar{padding:.75rem .8rem;}
}

/* RS31.95 Security Center */
.site-admin .security-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin: 0 0 1rem;
    padding: .55rem;
    border: 1px solid rgba(15, 118, 110, .12);
    border-radius: 18px;
    background: rgba(255, 255, 255, .86);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}
.site-admin .security-tabs__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: .55rem .85rem;
    border-radius: 999px;
    color: #24515c;
    font-weight: 500;
    text-decoration: none;
    border: 1px solid transparent;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.site-admin .security-tabs__item:hover,
.site-admin .security-tabs__item:focus-visible {
    background: rgba(20, 184, 166, .1);
    border-color: rgba(20, 184, 166, .22);
    color: #0f766e;
}
.site-admin .security-tabs__item.is-active {
    background: linear-gradient(135deg, #0f766e, #16a34a);
    color: #fff;
    border-color: transparent;
}
.site-admin .security-hero {
    border-left: 5px solid #0f766e;
}
.site-admin .security-stat-grid .stat-card strong {
    color: #0f766e;
}
.site-admin .security-summary-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 1rem;
    margin-bottom: 1rem;
}
.site-admin .security-card {
    min-width: 0;
}
.site-admin .security-check-list,
.site-admin .security-risk-stack {
    display: grid;
    gap: .7rem;
    margin: 0;
    padding: 0;
}
.site-admin .security-check-list {
    padding-left: 1.2rem;
}
.site-admin .security-check-list li {
    color: #34515c;
    line-height: 1.65;
}
.site-admin .security-risk-row {
    display: grid;
    gap: .25rem;
    padding: .8rem .9rem;
    border-radius: 16px;
    border: 1px solid rgba(245, 158, 11, .26);
    background: rgba(255, 251, 235, .86);
    color: #7c4a03;
}
.site-admin .security-risk-row strong,
.site-admin .security-risk-row span {
    font-weight: 500;
}
.site-admin .security-risk-row--action {
    border-color: rgba(220, 38, 38, .22);
    background: rgba(254, 242, 242, .9);
    color: #991b1b;
}
.site-admin .security-pill,
.site-admin .security-code,
.site-admin .security-level {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    border-radius: 999px;
    padding: .25rem .55rem;
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.15;
    border: 1px solid rgba(15, 118, 110, .16);
    background: rgba(240, 253, 250, .9);
    color: #0f766e;
}
.site-admin .security-pill--danger {
    border-color: rgba(220, 38, 38, .2);
    background: rgba(254, 242, 242, .95);
    color: #b91c1c;
}
.site-admin .security-result-head,
.site-admin .security-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: .85rem 0;
    color: #47616b;
}
.site-admin .security-result-head strong,
.site-admin .security-result-head span {
    font-weight: 500;
}
.site-admin .security-detail summary {
    cursor: pointer;
    color: #0f766e;
    font-weight: 500;
}
.site-admin .security-payload-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .65rem;
}
.site-admin .security-payload-grid pre {
    max-height: 260px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    margin: .4rem 0 0;
    padding: .8rem;
    border-radius: 14px;
    background: #0f172a;
    color: #e2e8f0;
    font-size: .82rem;
    line-height: 1.55;
}
.site-admin .security-owasp-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.site-admin .security-owasp-card {
    position: relative;
    overflow: hidden;
    border-top: 4px solid #0f766e;
}
.site-admin .security-owasp-card--watch {
    border-top-color: #f59e0b;
}
.site-admin .security-owasp-card--action {
    border-top-color: #dc2626;
}
.site-admin .security-owasp-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .55rem;
}
.site-admin .security-owasp-card h3 {
    margin: 0 0 .8rem;
    color: #12363d;
    font-size: 1.08rem;
    font-weight: 600;
}
.site-admin .security-owasp-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 0 0 1rem;
}
.site-admin .security-owasp-summary__card {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .9rem 1rem;
    border: 1px solid var(--border, #d6e1ea);
    border-radius: 14px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--shadow-sm, 0 1px 2px rgba(16,24,40,.08));
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.site-admin .security-owasp-summary__card:hover {
    text-decoration: none;
    transform: translateY(-1px);
    box-shadow: var(--shadow-md, 0 14px 34px rgba(17,56,92,.12));
}
.site-admin .security-owasp-summary__card span {
    color: #64748b;
    font-size: .86rem;
    font-weight: 600;
}
.site-admin .security-owasp-summary__card strong {
    font-size: 1.6rem;
    line-height: 1;
    color: #0f172a;
}
.site-admin .security-owasp-summary__card--action { border-top: 4px solid #dc2626; }
.site-admin .security-owasp-summary__card--watch { border-top: 4px solid #f59e0b; }
.site-admin .security-owasp-summary__card--ok { border-top: 4px solid #0f766e; }
.site-admin .security-owasp-summary__card--all { border-top: 4px solid #11385c; }
.site-admin .security-owasp-summary__card.is-active {
    outline: 2px solid rgba(17, 56, 92, .28);
    outline-offset: 1px;
}
.site-admin .security-owasp-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0 0 1rem;
}
.site-admin .security-owasp-toolbar__hint {
    margin: 0;
}
.site-admin .security-owasp-grid--simple {
    margin-bottom: 1rem;
}
.site-admin .security-owasp-card--simple h3 {
    margin-bottom: .45rem;
}
.site-admin .security-owasp-card__summary {
    margin: 0 0 .85rem;
    color: #405b65;
    line-height: 1.55;
}
.site-admin .security-owasp-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .65rem;
    margin-bottom: .55rem;
}
.site-admin .security-owasp-badge {
    display: inline-flex;
    align-items: center;
    min-height: 1.7rem;
    padding: .15rem .55rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
}
.site-admin .security-owasp-badge--action {
    background: #fee2e2;
    color: #991b1b;
}
.site-admin .security-owasp-badge--watch {
    background: #fef3c7;
    color: #92400e;
}
.site-admin .security-owasp-badge--ok {
    background: #ccfbf1;
    color: #115e59;
}
.site-admin .security-owasp-details {
    margin-top: .35rem;
    border-top: 1px solid #e2e8f0;
    padding-top: .55rem;
}
.site-admin .security-owasp-details summary {
    cursor: pointer;
    color: #174d57;
    font-weight: 600;
    list-style: none;
}
.site-admin .security-owasp-details summary::-webkit-details-marker {
    display: none;
}
.site-admin .security-owasp-details[open] summary {
    margin-bottom: .55rem;
}
.site-admin .security-owasp-empty {
    grid-column: 1 / -1;
    display: grid;
    gap: .75rem;
    justify-items: start;
}
.site-admin .security-public-artifacts--collapsible {
    padding: 0;
}
.site-admin .security-public-artifacts__summary {
    cursor: pointer;
    list-style: none;
    padding: 1rem 1.15rem;
}
.site-admin .security-public-artifacts__summary::-webkit-details-marker {
    display: none;
}
.site-admin .security-public-artifacts__summary span {
    display: grid;
    gap: .2rem;
}
.site-admin .security-public-artifacts__summary strong {
    color: #12363d;
}
.site-admin .security-public-artifacts__body {
    padding: 0 1.15rem 1.15rem;
    display: grid;
    gap: .85rem;
}
@media (max-width: 1080px) {
    .site-admin .security-owasp-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 640px) {
    .site-admin .security-owasp-summary,
    .site-admin .security-owasp-toolbar {
        grid-template-columns: 1fr;
    }
    .site-admin .security-owasp-summary {
        display: grid;
    }
    .site-admin .security-owasp-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
}
.site-admin .security-dl {
    display: grid;
    gap: .35rem;
    margin: 0;
}
.site-admin .security-dl dt {
    margin-top: .45rem;
    color: #174d57;
    font-weight: 600;
}
.site-admin .security-dl dd {
    margin: 0;
    color: #405b65;
    line-height: 1.6;
}
.site-admin .security-log-table td {
    vertical-align: top;
}
.site-admin .security-sort-link {
    color: inherit;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    white-space: nowrap;
}
.site-admin .security-sort-link:hover {
    color: var(--rru-primary, #0a5c3a);
    text-decoration: underline;
}
.site-admin .security-sort-th.is-sorted .security-sort-link {
    color: var(--rru-primary, #0a5c3a);
    font-weight: 700;
}
@media (max-width: 1080px) {
    .site-admin .security-summary-grid,
    .site-admin .security-owasp-grid,
    .site-admin .security-payload-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .site-admin .security-tabs {
        display: grid;
        grid-template-columns: 1fr;
    }
    .site-admin .security-tabs__item {
        width: 100%;
        justify-content: flex-start;
    }
    .site-admin .security-result-head,
    .site-admin .security-pagination {
        align-items: stretch;
        flex-direction: column;
    }
}

.site-admin .security-ip-defense-form {
    margin-top: .35rem;
}
.site-admin .security-ip-defense-form .button {
    margin-top: .35rem;
}

/* RS31.96 Security OWASP AI Prompt Export */
.site-admin .security-hero__actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: flex-end;
}

.site-admin .security-summary-grid--prompt {
  align-items: stretch;
}

.site-admin .security-check-list--ordered {
  counter-reset: security-steps;
  list-style: decimal;
  padding-inline-start: 1.25rem;
}

.site-admin .security-card--guardrails .security-check-list li {
  border-left: 3px solid rgba(22, 163, 74, .35);
  padding-left: .75rem;
}

.site-admin .security-prompt-panel {
  overflow: hidden;
}

.site-admin .security-prompt-head {
  align-items: flex-start;
  gap: 1rem;
}

.site-admin .security-prompt-head .muted {
  color: var(--muted, #64748b);
  font-size: .92rem;
  margin: .25rem 0 0;
}

.site-admin .security-prompt-textarea {
  background: #0f172a;
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 18px;
  color: #e5e7eb;
  display: block;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: .92rem;
  font-weight: 400;
  line-height: 1.65;
  min-height: 520px;
  padding: 1rem;
  resize: vertical;
  white-space: pre;
  width: 100%;
}

.site-admin .security-prompt-textarea:focus {
  border-color: rgba(34, 197, 94, .65);
  box-shadow: 0 0 0 3px rgba(34, 197, 94, .18);
  outline: none;
}

@media (max-width: 767px) {
  .site-admin .security-hero__actions {
    justify-content: stretch;
    width: 100%;
  }
  .site-admin .security-hero__actions .button {
    justify-content: center;
    width: 100%;
  }
  .site-admin .security-prompt-head {
    align-items: stretch;
    flex-direction: column;
  }
  .site-admin .security-prompt-textarea {
    font-size: .86rem;
    min-height: 430px;
  }
}

/* RS31.98 Security Secret Re-encrypt Center */
.site-admin .security-callout {
  margin-top: .9rem;
}
.site-admin .security-action-form {
  display: grid;
  gap: .65rem;
  margin-top: .75rem;
}
.site-admin .security-action-form .button[disabled] {
  cursor: not-allowed;
  opacity: .55;
  filter: grayscale(.25);
}
.site-admin .security-card code,
.site-admin .security-check-list code {
  background: rgba(15, 23, 42, .06);
  border: 1px solid rgba(148, 163, 184, .28);
  border-radius: 8px;
  color: #0f3f46;
  display: inline-block;
  font-size: .9em;
  max-width: 100%;
  overflow-wrap: anywhere;
  padding: .1rem .35rem;
}

/* RS31.100 Security public artifact cleanup */
.site-admin .security-action-form--inline {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 0;
}
.site-admin .security-public-artifacts .panel__head {
  gap: 1rem;
}
.site-admin .security-public-artifacts code {
  white-space: normal;
}
@media (max-width: 767px) {
  .site-admin .security-action-form--inline,
  .site-admin .security-action-form--inline .button {
    justify-content: center;
    width: 100%;
  }
}

/* RS31.101 Security Web Tools */
.site-admin .security-tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch}
.site-admin .security-tool-card{display:flex;flex-direction:column;gap:.85rem;min-width:0}
.site-admin .security-tool-card__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.site-admin .security-tool-card h3{margin:0;font-weight:600;color:var(--text-strong,#123028)}
.site-admin .security-tool-card p{margin:0}
.site-admin .security-tool-card--primary{border-color:rgba(21,128,61,.22);background:linear-gradient(180deg,rgba(236,253,245,.82),#fff)}
.site-admin .security-tool-card--danger{border-color:rgba(185,28,28,.22);background:linear-gradient(180deg,rgba(254,242,242,.9),#fff)}
.site-admin .security-tool-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:auto}
.site-admin .security-tool-actions--stacked{align-items:stretch;flex-direction:column}
.site-admin .security-action-form--tool-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:end;width:100%}
.site-admin .security-action-form--tool-input label{display:grid;gap:.35rem;font-weight:500;color:var(--text,#20352e)}
.site-admin .security-tool-result{border-left:4px solid rgba(37,99,235,.42)}
.site-admin .security-tool-result--ok{border-left-color:rgba(21,128,61,.58)}
.site-admin .security-tool-result--attention{border-left-color:rgba(185,28,28,.55)}
.site-admin .security-tool-output{margin:0;white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e2e8f0;border-radius:14px;padding:1rem;max-height:460px;overflow:auto;font-size:.88rem;line-height:1.65}
.site-admin .security-prompt-textarea--compact{min-height:96px;font-size:.9rem}
@media (max-width: 1024px){.site-admin .security-tools-grid{grid-template-columns:1fr}}
@media (max-width: 640px){.site-admin .security-action-form--tool-input{grid-template-columns:1fr}.site-admin .security-tool-actions{align-items:stretch}.site-admin .security-tool-actions .button{width:100%;justify-content:center}.site-admin .security-tool-card__head{align-items:flex-start}}

/* RS31.104 Project Create AI Translation Plugin */
.site-admin .project-ai-translate{
    display:grid;
    gap:1rem;
    padding:1.1rem;
    border:1px solid rgba(15,118,110,.18);
    border-radius:22px;
    background:linear-gradient(135deg,rgba(240,253,250,.96),rgba(255,255,255,.98));
    box-shadow:0 16px 40px rgba(15,23,42,.08);
}
.site-admin .project-ai-translate.is-unavailable{
    border-color:rgba(245,158,11,.28);
    background:linear-gradient(135deg,rgba(255,251,235,.96),rgba(255,255,255,.98));
}
.site-admin .project-ai-translate__head{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:1rem;
    align-items:start;
}
.site-admin .project-ai-translate__eyebrow{
    display:inline-flex;
    width:max-content;
    padding:.28rem .65rem;
    border-radius:999px;
    background:rgba(20,184,166,.14);
    color:#0f766e;
    font-size:.78rem;
    font-weight:600;
    letter-spacing:.02em;
}
.site-admin .project-ai-translate h3{
    margin:.45rem 0 .25rem;
    font-size:1.08rem;
    font-weight:600;
    color:#0f172a;
}
.site-admin .project-ai-translate p,
.site-admin .project-ai-translate small{
    margin:0;
    color:#475569;
    font-weight:400;
}
.site-admin .project-ai-translate__meta{
    min-width:190px;
    padding:.8rem .9rem;
    border:1px solid rgba(15,118,110,.18);
    border-radius:16px;
    background:#fff;
    text-align:right;
}
.site-admin .project-ai-translate__meta span,
.site-admin .project-ai-translate__meta small{
    display:block;
    font-size:.82rem;
}
.site-admin .project-ai-translate__meta strong{
    display:block;
    color:#0f172a;
    font-weight:600;
}
.site-admin .project-ai-translate__meta.is-unavailable{
    border-color:rgba(245,158,11,.28);
}
.site-admin .project-ai-translate__rules{
    display:flex;
    flex-wrap:wrap;
    gap:.55rem;
}
.site-admin .project-ai-translate__rules span{
    padding:.38rem .7rem;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    color:#334155;
    font-size:.85rem;
    font-weight:500;
}
.site-admin .project-ai-translate__tip{
    margin:.2rem 0 0;
    color:#64748b;
    font-size:.9rem;
    line-height:1.45;
}
.site-admin .project-ai-translate--smart h3{margin:.1rem 0 .2rem;}
.site-admin .project-ai-translate__actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.7rem;
}
.site-admin .project-ai-translate__actions small{
    flex:1 1 260px;
}
.site-admin .project-ai-translate__advanced{
    border:1px solid rgba(15,23,42,.08);
    border-radius:14px;
    background:#fff;
    padding:0;
}
.site-admin .project-ai-translate__advanced > summary{
    cursor:pointer;
    list-style:none;
    padding:.65rem .85rem;
    color:#64748b;
    font-size:.88rem;
    font-weight:600;
}
.site-admin .project-ai-translate__advanced > summary::-webkit-details-marker{display:none;}
.site-admin .project-ai-translate__advanced[open] > summary{
    border-bottom:1px solid rgba(15,23,42,.06);
    color:#334155;
}
.site-admin .project-ai-translate__advanced .check-line,
.site-admin .project-ai-translate__advanced small{
    display:block;
    padding:.55rem .85rem .75rem;
}
.site-admin .project-ai-translate__advanced small{padding-top:0;color:#64748b;}
.site-admin .project-ai-translate__status{
    padding:.75rem .9rem;
    border-radius:14px;
    background:#eef2ff;
    color:#334155;
    font-weight:500;
}
.site-admin .project-ai-translate__status--success{background:#ecfdf5;color:#065f46;}
.site-admin .project-ai-translate__status--warning{background:#fffbeb;color:#92400e;}
.site-admin .project-ai-translate__status--error{background:#fef2f2;color:#991b1b;}
.site-admin .project-ai-translate__status--loading{background:#eff6ff;color:#1d4ed8;}
.site-admin .project-ai-translate__preview{
    display:grid;
    gap:.85rem;
}
.site-admin .project-ai-translate-preview__head{
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.75rem .9rem;
    border-radius:14px;
    background:#fff;
    border:1px solid rgba(15,118,110,.14);
}
.site-admin .project-ai-translate-preview__head strong{font-weight:600;color:#0f172a;}
.site-admin .project-ai-translate-preview__head span{color:#64748b;font-size:.86rem;}
.site-admin .project-ai-translate-preview__list{
    display:grid;
    gap:.8rem;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.site-admin .project-ai-translate-preview__row{
    display:grid;
    gap:.45rem;
    margin:0;
}
.site-admin .project-ai-translate-preview__row span{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:.8rem;
}
.site-admin .project-ai-translate-preview__row strong{font-weight:600;color:#0f172a;}
.site-admin .project-ai-translate-preview__row small{color:#64748b;font-weight:400;}
.site-admin .project-ai-translate-preview__row textarea{
    width:100%;
    min-height:96px;
    resize:vertical;
    border:1px solid rgba(15,23,42,.14);
    border-radius:14px;
    padding:.75rem .85rem;
    background:#fff;
    color:#0f172a;
    font:inherit;
    font-weight:400;
}
.site-admin .project-ai-translate-preview__actions{
    display:flex;
    justify-content:flex-end;
}
@media (max-width: 820px){
    .site-admin .project-ai-translate__head{grid-template-columns:1fr;}
    .site-admin .project-ai-translate__meta{text-align:left;}
    .site-admin .project-ai-translate-preview__list{grid-template-columns:1fr;}
    .site-admin .project-ai-translate-preview__head{display:grid;}
}

/* RS31.118 Project image manager */
.project-image-manager {
    display: grid;
    gap: .9rem;
    width: 100%;
    max-width: 100%;
}
.project-image-manager--v2 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1rem;
    margin: 1rem 0 0;
    padding: 1rem 1.05rem 1.1rem;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
}
.project-image-manager legend {
    padding: 0 .35rem;
    color: var(--rru-primary);
    font-weight: 700;
}
.project-image-manager__help {
    margin: 0;
    color: #64748b;
    font-size: .9rem;
    line-height: 1.4;
}
.project-image-manager__upload-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    width: 100%;
}
.project-image-manager__upload-grid--single {
    grid-template-columns: 1fr;
}
.project-image-dropzone {
    position: relative;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: .85rem;
    align-items: center;
    min-height: 118px;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 1rem 1.05rem;
    border: 1.5px dashed rgba(15,23,42,.18);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.project-image-dropzone:hover,
.project-image-dropzone.is-dragover {
    border-color: rgba(22,163,74,.55);
    background: linear-gradient(180deg, #f0fdf4 0%, #ffffff 100%);
    box-shadow: 0 10px 22px rgba(15,23,42,.06);
}
.project-image-dropzone__input {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}
.project-image-dropzone__visual {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: #ecfdf5;
    color: #15803d;
    box-shadow: inset 0 0 0 1px rgba(22,163,74,.16);
    pointer-events: none;
}
.project-image-dropzone__visual::before {
    content: "";
    width: 26px;
    height: 22px;
    background:
        linear-gradient(#16a34a,#16a34a) center 4px / 14px 2px no-repeat,
        linear-gradient(#16a34a,#16a34a) center / 2px 14px no-repeat,
        radial-gradient(circle at 50% 58%, transparent 0 5px, #16a34a 5.5px 7px, transparent 7.5px),
        linear-gradient(#bbf7d0,#bbf7d0);
    border: 2px solid #16a34a;
    border-radius: 6px;
}
.project-image-dropzone__copy {
    display: grid;
    gap: .22rem;
    min-width: 0;
    z-index: 1;
    pointer-events: none;
}
.project-image-dropzone__copy strong {
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}
.project-image-dropzone__copy em {
    color: #166534;
    font-size: .92rem;
    font-style: normal;
    font-weight: 650;
    line-height: 1.35;
}
.project-image-dropzone__copy small {
    color: #64748b;
    font-size: .82rem;
    line-height: 1.4;
}
.project-image-dropzone__filename {
    margin-top: .15rem;
    color: #475569;
    font-size: .84rem;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-image-dropzone.has-file .project-image-dropzone__filename {
    color: #0f172a;
}
.project-image-manager__current-cover {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    align-items: center;
    gap: .9rem;
    max-width: 420px;
    padding: .65rem;
    border: 1px solid rgba(22,163,74,.22);
    border-radius: 16px;
    background: #f0fdf4;
}
.project-image-manager__current-cover-thumb {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 12px;
    background: #dcfce7;
}
.project-image-manager__current-cover-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.project-image-manager__current-cover-meta {
    display: grid;
    gap: .3rem;
    min-width: 0;
}
.project-image-manager__current-cover-badge {
    display: inline-flex;
    width: fit-content;
    padding: .16rem .5rem;
    border-radius: 999px;
    background: #16a34a;
    color: #fff;
    font-size: .74rem;
    font-weight: 700;
}
.project-image-manager__current-cover-meta strong {
    color: #14532d;
    font-size: .95rem;
}
.project-image-manager__section-title {
    display: block;
    color: #0f172a;
    font-size: .95rem;
}
.project-image-manager__current,
.project-image-manager__preview {
    display: grid;
    gap: .7rem;
}
.project-image-manager__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .85rem;
}
.project-image-manager__preview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: .75rem;
}
.project-image-card,
.project-image-upload-preview {
    display: grid;
    gap: .55rem;
    min-width: 0;
    padding: .5rem;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 22px rgba(15,23,42,.045);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, opacity .18s ease;
}
.project-image-upload-preview {
    align-content: start;
    grid-template-rows: auto auto auto auto;
}
.project-image-card.is-cover {
    border-color: rgba(22,163,74,.4);
    background: linear-gradient(180deg, #ffffff 0%, #f3fbf6 100%);
    box-shadow: 0 12px 24px rgba(22,163,74,.1);
}
.project-image-card.is-delete-marked {
    border-color: rgba(185,28,28,.35);
    background: linear-gradient(180deg, #fff 0%, #fff5f5 100%);
    opacity: .78;
}
.project-image-card.is-delete-marked .project-image-card__thumb img {
    filter: grayscale(.35) brightness(.92);
}
.project-image-card__media,
.project-image-upload-preview__media {
    position: relative;
    min-width: 0;
}
.project-image-card__thumb,
.project-image-upload-preview__thumb {
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border: 0;
    border-radius: 12px;
    padding: 0;
    background: #edf2f7;
    cursor: zoom-in;
}
.project-image-upload-preview__thumb {
    aspect-ratio: 1 / 1;
}
.project-image-card__thumb img,
.project-image-upload-preview__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
    transition: transform .25s ease, filter .18s ease;
}
.project-image-card__thumb:hover img,
.project-image-upload-preview__thumb:hover img {
    transform: scale(1.03);
}
.project-image-card__badge,
.project-image-card__thumb > span {
    position: absolute;
    top: .5rem;
    left: .5rem;
    z-index: 1;
    padding: .22rem .58rem;
    border-radius: 999px;
    background: rgba(11,93,59,.94);
    color: #fff;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .01em;
    box-shadow: 0 6px 14px rgba(11,93,59,.28);
}
.project-image-card__toolbar {
    position: absolute;
    left: .45rem;
    right: .45rem;
    bottom: .45rem;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    align-items: center;
    justify-content: space-between;
    padding: .3rem;
    border-radius: 12px;
    background: rgba(15,23,42,.42);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 8px 18px rgba(15,23,42,.18);
}
.project-image-chip {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    margin: 0;
    min-height: 30px;
    padding: .28rem .58rem;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: #f8fafc;
    font-size: .74rem;
    font-weight: 650;
    line-height: 1.1;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.project-image-chip:hover {
    background: rgba(255,255,255,.24);
    border-color: rgba(255,255,255,.4);
}
.project-image-chip:focus-within {
    outline: 2px solid rgba(255,255,255,.7);
    outline-offset: 1px;
}
.project-image-chip input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}
.project-image-chip__icon {
    display: inline-flex;
    flex: 0 0 auto;
    opacity: .92;
}
.project-image-chip__icon svg {
    display: block;
}
.project-image-chip__label {
    white-space: nowrap;
}
.project-image-chip--cover.is-active,
.project-image-chip--cover:has(input:checked) {
    background: rgba(22,163,74,.95);
    border-color: rgba(220,252,231,.55);
    color: #fff;
    box-shadow: 0 4px 12px rgba(22,163,74,.35);
}
.project-image-chip--delete {
    border-color: transparent;
    background: #fff;
    color: #be123c;
    box-shadow: 0 2px 8px rgba(15,23,42,.18);
}
.project-image-chip--delete:hover {
    background: #fff1f2;
    border-color: transparent;
    color: #9f1239;
    box-shadow: 0 3px 10px rgba(15,23,42,.22);
}
.project-image-chip--delete:has(input:checked),
.project-image-chip--delete.is-active {
    background: #e11d48;
    border-color: transparent;
    color: #fff;
    box-shadow: 0 3px 10px rgba(225,29,72,.35);
}
.project-image-chip--delete:has(input:checked) .project-image-chip__label::after,
.project-image-chip--delete.is-active .project-image-chip__label::after {
    content: ' ✓';
    font-weight: 700;
}
.project-image-chip:has(input:disabled) {
    opacity: .55;
    cursor: not-allowed;
}
/* Legacy below-image delete pill (remove ugly red oval if old markup still cached). */
.project-image-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .7rem;
    align-items: center;
}
.project-image-card__cover,
.project-image-card__delete {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #475569;
    font-size: .8rem;
    font-weight: 650;
    white-space: nowrap;
    cursor: pointer;
}
.project-image-card__delete {
    color: #64748b;
}
.project-image-card__delete:has(input:checked) {
    color: #b91c1c;
}
.project-image-card__field {
    display: grid;
    gap: .28rem;
    margin: 0;
    color: #334155;
    font-size: .84rem;
    font-weight: 600;
}
.project-image-card__field--order {
    max-width: 120px;
}
.project-image-card input[type="text"],
.project-image-card input[type="number"] {
    min-height: 38px;
    width: 100%;
    border: 1px solid rgba(15,23,42,.14);
    border-radius: 10px;
    padding: .45rem .6rem;
    font: inherit;
}
.project-image-upload-preview__cover {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin: 0;
    min-height: 32px;
    padding: .3rem .65rem;
    border-radius: 999px;
    border: 1px solid rgba(15,23,42,.1);
    background: #f8fafc;
    color: #334155;
    font-size: .78rem;
    font-weight: 650;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.project-image-upload-preview__cover input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.project-image-upload-preview__cover span {
    white-space: nowrap;
}
.project-image-upload-preview__media {
    position: relative;
}
.project-image-upload-preview__name {
    min-width: 0;
    overflow: hidden;
    color: var(--text);
    font-size: .8rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.project-image-upload-preview__meta,
.project-image-upload-preview em {
    color: var(--muted);
    font-size: .74rem;
    font-style: normal;
    white-space: nowrap;
}
.project-image-upload-preview__cover:has(input:checked) {
    background: #ecfdf5;
    border-color: rgba(22,163,74,.32);
    color: #166534;
    box-shadow: inset 0 0 0 1px rgba(22,163,74,.08);
}
.project-image-upload-preview.is-duplicate {
    border-color: rgba(180,35,24,.32);
    background: #fff8f7;
}
.project-image-manager__preview-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}
.project-image-upload-preview__remove {
    position: absolute;
    top: .4rem;
    right: .4rem;
    z-index: 2;
    min-height: 28px;
    padding: .18rem .55rem;
    border: 0;
    border-radius: 999px;
    background: rgba(185,28,28,.94);
    color: #fff;
    font: inherit;
    font-size: .72rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    box-shadow: 0 6px 14px rgba(127,29,29,.28);
}
.project-image-upload-preview__remove:hover {
    background: #991b1b;
}
@media (max-width: 640px) {
    .project-image-card__toolbar {
        left: .35rem;
        right: .35rem;
        bottom: .35rem;
        gap: .28rem;
        padding: .24rem;
    }
    .project-image-chip {
        flex: 1 1 auto;
        justify-content: center;
        min-height: 32px;
        font-size: .72rem;
    }
}
.project-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 1.25rem;
}
.project-image-viewer[hidden] {
    display: none !important;
}
.project-image-viewer__backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(15,23,42,.72);
    cursor: zoom-out;
}
.project-image-viewer__dialog {
    position: relative;
    z-index: 1;
    display: grid;
    gap: .75rem;
    width: min(920px, 100%);
    max-height: min(88vh, 920px);
}
.project-image-viewer__img {
    width: 100%;
    max-height: min(80vh, 860px);
    object-fit: contain;
    border-radius: 14px;
    background: #0f172a;
    box-shadow: 0 24px 60px rgba(0,0,0,.35);
}
.project-image-viewer__close {
    justify-self: end;
    min-height: 36px;
    padding: .4rem .8rem;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #0f172a;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
body.is-project-image-viewer-open {
    overflow: hidden;
}
@media (max-width: 1180px) {
    .project-image-manager__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .project-image-manager__preview-grid {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
}
@media (max-width: 767px) {
    .project-image-manager__upload-grid,
    .project-image-manager__grid {
        grid-template-columns: 1fr;
    }
    .project-image-manager__preview-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .project-image-manager__current-cover {
        max-width: none;
        width: 100%;
        grid-template-columns: 110px minmax(0, 1fr);
    }
    .project-image-dropzone {
        min-height: 120px;
    }
}

/* RS31.119 Homepage public order alignment */
.homepage-public-order-notice {
    margin-top: .75rem;
}
.homepage-order-form {
    display: none;
}
.homepage-order-cell {
    min-width: 120px;
}
.homepage-order-input-label {
    display: inline-flex;
    align-items: center;
    margin: 0;
}
.homepage-order-input {
    width: 96px;
    min-height: 38px;
    padding: .45rem .55rem;
    text-align: center;
    border: 1px solid var(--border, #d6e1ea);
    border-radius: 10px;
    background: #fff;
    font: inherit;
    font-weight: 700;
    color: var(--rru-primary, #11385c);
}
.homepage-order-input:focus {
    outline: 3px solid rgba(0, 163, 168, .18);
    border-color: var(--rru-accent, #00a3a8);
}
.homepage-order-actions {
    margin-top: 1rem;
    gap: .75rem;
    flex-wrap: wrap;
}
@media (max-width: 720px) {
    .homepage-order-cell {
        min-width: 0;
    }
    .homepage-order-input,
    .homepage-order-actions .button {
        width: 100%;
    }
}

/* RS31.120: public homepage dynamic section order stabilizer */
.site-public .public-home-section {
    scroll-margin-top: 96px;
    isolation: isolate;
}
.site-public .public-home-section + .public-home-section {
    margin-top: 0;
}
.site-public .public-home-section--hero-inline {
    border-top: 1px solid rgba(255,255,255,.12);
}
.site-public .public-home-section--hero-inline .hero__content {
    min-height: clamp(520px, 62vh, 640px);
}
.site-public .public-home-section--cms .trust-grid {
    margin-top: var(--space-8);
}
.site-public .public-home-section--cms .section__head {
    align-items: flex-start;
}
@media (max-width: 760px) {
    .site-public .public-home-section {
        scroll-margin-top: 78px;
    }
    .site-public .public-home-section--hero-inline .hero__content {
        min-height: auto;
    }
}

/* RS31.124 Transaction reset Facebook Feed config preservation */
.site-admin .transaction-reset-workbench .chip-list--wrap {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .65rem;
}
.site-admin .transaction-reset-workbench .code-chip {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: .25rem .55rem;
    border: 1px solid rgba(17, 56, 92, .14);
    border-radius: 999px;
    background: #f8fafc;
    color: #11385c;
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
}

/* RS31.130 Organization Facebook App credentials */
.admin-form-divider {
    border-top: 1px solid rgba(15, 23, 42, 0.10);
    margin: .25rem 0 .1rem;
    min-height: 1px;
}

/* RS31.132 Back-to-top, collapsible SDG target picker, Facebook message preserve, and detail hero polish */
.back-to-top {
    position: fixed;
    right: clamp(1rem, 2.4vw, 1.75rem);
    bottom: clamp(1rem, 2.4vw, 1.75rem);
    z-index: 1050;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 999px;
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(135deg, #0b5d3b, #0a97d9);
    box-shadow: 0 18px 38px rgba(15, 23, 42, .24);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px) scale(.96);
    transition: opacity .18s ease, transform .18s ease, box-shadow .18s ease;
    font: 800 1.35rem/1 var(--font-sans, system-ui, sans-serif);
}
.back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.back-to-top:hover,
.back-to-top:focus-visible {
    box-shadow: 0 22px 44px rgba(15, 23, 42, .32);
    transform: translateY(-2px) scale(1.02);
    outline: 3px solid rgba(14, 165, 233, .24);
    outline-offset: 3px;
}
.site-admin .back-to-top {
    right: clamp(1rem, 2vw, 1.5rem);
    bottom: clamp(1rem, 2vw, 1.5rem);
    background: rgba(11, 93, 59, .48) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, .35);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .14);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.site-admin .back-to-top:hover,
.site-admin .back-to-top:focus-visible {
    background: rgba(11, 93, 59, .72) !important;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .2);
}
@media (max-width: 640px) {
    .back-to-top {
        width: 44px;
        height: 44px;
        right: .85rem;
        bottom: .85rem;
    }
}
.sdg-inline-toolbar {
    align-items: center;
}
.sdg-inline-toolbar__actions {
    display: inline-flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .35rem;
    justify-content: flex-end;
}
.sdg-goal-workspace-panel__head {
    padding: 0;
}
.sdg-goal-workspace-panel__toggle {
    appearance: none;
    width: 100%;
    border: 0;
    background: transparent;
    color: inherit;
    padding: clamp(.85rem, 1.8vw, 1.1rem);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    text-align: left;
    cursor: pointer;
    font: inherit;
}
.sdg-goal-workspace-panel__toggle:hover,
.sdg-goal-workspace-panel__toggle:focus-visible {
    background: rgba(255, 255, 255, .16);
    outline: none;
}
.sdg-goal-workspace-panel__toggle-main {
    display: grid;
    gap: .18rem;
    min-width: 0;
}
.sdg-goal-workspace-panel__toggle-main > span {
    color: rgba(255, 255, 255, .78);
    font-weight: 800;
    letter-spacing: .02em;
}
.sdg-goal-workspace-panel__toggle-main h4 {
    margin: 0;
}
.sdg-goal-workspace-panel__toggle-meta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.sdg-goal-workspace-panel__toggle-meta em {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: .22rem .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    font-size: .82rem;
    font-style: normal;
    font-weight: 800;
}
.sdg-goal-workspace-panel__body[hidden] {
    display: none !important;
}
.sdg-goal-workspace-panel.is-collapsed {
    overflow: hidden;
}
.sdg-goal-workspace-panel.is-collapsed .sdg-goal-workspace-panel__toggle-meta em::after {
    content: " ↓";
}
.project-facebook-feed-result__message {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.68;
}
.project-detail-hero-v2 {
    min-height: clamp(420px, min(68vh, 760px), 760px);
}
.project-detail-hero-v2__inner {
    width: min(100% - clamp(1.25rem, 4vw, 3rem), var(--container, 1180px));
    padding-top: clamp(3.25rem, 8vh, 6.2rem);
    padding-bottom: clamp(2rem, 5.2vh, 4.2rem);
}
.project-detail-hero-v2__content {
    width: min(100%, 1040px);
    padding: clamp(1.15rem, 2.8vw, 2.25rem);
    border-radius: clamp(20px, 3vw, 30px);
    background: linear-gradient(135deg, rgba(5, 34, 25, .72), rgba(4, 28, 48, .52));
}
.project-detail-hero-v2 .eyebrow {
    font-size: clamp(.82rem, 1.5vw, .96rem);
    font-weight: 800;
    letter-spacing: .035em;
}
.project-detail-hero-v2 h1 {
    max-width: 100%;
    font-size: clamp(1.8rem, 4.9vw, 4.35rem);
    font-weight: 800;
    line-height: 1.1;
    text-wrap: wrap;
    overflow-wrap: anywhere;
    word-break: normal;
}
.project-detail-hero-v2__summary {
    max-width: min(940px, 100%);
    font-size: clamp(1rem, 1.65vw, 1.2rem);
    font-weight: 500;
    line-height: 1.72;
}
.project-detail-hero-v2__meta span {
    font-size: clamp(.84rem, 1.25vw, .94rem);
    font-weight: 700;
}
@media (min-width: 1280px) {
    .project-detail-hero-v2__content {
        max-width: min(72vw, 1080px);
    }
}
@media (max-width: 760px) {
    .sdg-inline-toolbar {
        align-items: center;
    }
    .sdg-inline-toolbar__actions {
        width: auto;
        max-width: 100%;
    }
    .sdg-inline-toolbar__actions .button {
        width: auto;
        flex: 0 0 auto;
    }
    .sdg-goal-workspace-panel__toggle {
        align-items: flex-start;
        flex-direction: column;
    }
    .sdg-goal-workspace-panel__toggle-meta {
        justify-content: flex-start;
        width: 100%;
    }
    .project-detail-hero-v2 {
        min-height: auto;
    }
    .project-detail-hero-v2__inner {
        padding-top: 2.7rem;
        padding-bottom: 2rem;
    }
    .project-detail-hero-v2__content {
        border-radius: 20px;
    }
}

/* RS31.133 UI contrast + detail hero hotfix
   - Public back-to-top stays solid; admin uses translucent style above.
   - Clearer target collapse controls, wider project detail hero container. */
.back-to-top {
    background: #0b5d3b !important;
    color: #ffffff !important;
}
.back-to-top:hover,
.back-to-top:focus-visible {
    background: #08492f !important;
    outline-color: rgba(11, 93, 59, .24) !important;
}
.site-admin .back-to-top:hover,
.site-admin .back-to-top:focus-visible {
    outline-color: rgba(11, 93, 59, .28) !important;
}
.sdg-inline-toolbar__actions .button[data-sdg-expand-targets],
.sdg-inline-toolbar__actions .button[data-sdg-collapse-targets] {
    border: 1px solid rgba(180, 83, 9, .45) !important;
    background: #fff7ed !important;
    color: #7c2d12 !important;
    font-weight: 700 !important;
    box-shadow: none;
}
.sdg-inline-toolbar__actions .button[data-sdg-expand-targets]:hover,
.sdg-inline-toolbar__actions .button[data-sdg-expand-targets]:focus-visible,
.sdg-inline-toolbar__actions .button[data-sdg-collapse-targets]:hover,
.sdg-inline-toolbar__actions .button[data-sdg-collapse-targets]:focus-visible {
    background: #fed7aa !important;
    border-color: rgba(154, 52, 18, .72) !important;
    color: #431407 !important;
    text-decoration: none !important;
}
.sdg-goal-workspace-panel__toggle-meta em {
    background: #ffffff !important;
    color: #0b3d2a !important;
    border: 1px solid rgba(11, 61, 42, .22);
    box-shadow: 0 4px 12px rgba(15, 23, 42, .12);
    min-width: 74px;
}
.sdg-goal-workspace-panel__toggle:hover .sdg-goal-workspace-panel__toggle-meta em,
.sdg-goal-workspace-panel__toggle:focus-visible .sdg-goal-workspace-panel__toggle-meta em {
    background: #fef3c7 !important;
    color: #431407 !important;
    border-color: rgba(180, 83, 9, .45);
}
.project-detail-hero-v2__inner {
    width: min(100% - clamp(1rem, 2.5vw, 2rem), 1440px) !important;
    max-width: 1440px !important;
}
.project-detail-hero-v2__content {
    width: min(100%, 1220px) !important;
    max-width: none !important;
    padding: clamp(1rem, 2.2vw, 1.85rem) !important;
}
.project-detail-hero-v2 h1 {
    width: 100% !important;
    max-width: none !important;
    font-size: clamp(1.45rem, 3.1vw, 2.75rem) !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    letter-spacing: -.012em;
    text-wrap: wrap !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: none !important;
}
.project-detail-hero-v2__summary {
    width: 100% !important;
    max-width: none !important;
    font-size: clamp(.98rem, 1.35vw, 1.12rem) !important;
    line-height: 1.68 !important;
    text-align: left !important;
}
.project-detail-hero-v2 a,
.project-detail-hero-v2 a:hover,
.project-detail-hero-v2 a:focus,
.project-detail-v2-section a,
.project-detail-v2-section a:hover,
.project-detail-v2-section a:focus {
    text-decoration: none !important;
}
@media (max-width: 760px) {
    .project-detail-hero-v2__inner {
        width: min(100% - 1rem, 100%) !important;
    }
    .project-detail-hero-v2 h1 {
        font-size: clamp(1.32rem, 7.2vw, 2rem) !important;
        line-height: 1.22 !important;
    }
}


/* RS31.134 global link underline removal + project detail large-screen spacing */
.site-admin a,
.site-admin a:hover,
.site-admin a:focus,
.site-admin a:focus-visible,
.site-public a,
.site-public a:hover,
.site-public a:focus,
.site-public a:focus-visible,
a,
a:hover,
a:focus,
a:focus-visible {
    text-decoration: none !important;
}
.rich-text--cms a,
.rich-text--cms a:hover,
.project-card h3 a,
.project-card h3 a:hover,
.footer a,
.footer a:hover {
    text-decoration: none !important;
}
@media (min-width: 1280px) {
    .project-detail-hero-v2__inner {
        padding-top: clamp(1.35rem, 3.2vh, 2.55rem) !important;
    }
}
@media (min-width: 1600px) {
    .project-detail-hero-v2__inner {
        padding-top: clamp(1.1rem, 2.6vh, 2.1rem) !important;
    }
}

/* RS31.136 Project detail hero cover clarity */
.project-detail-hero-v2--has-cover {
    background: linear-gradient(135deg, #041f18 0%, #063a28 52%, #0b2742 100%);
}
.project-detail-hero-v2__bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: linear-gradient(135deg, #041f18, #0b2742);
}
.project-detail-hero-v2__bg::before {
    content: "";
    position: absolute;
    inset: -32px;
    background-image: var(--project-cover-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: blur(22px) saturate(1.08) contrast(1.02);
    transform: scale(1.08);
    opacity: .52;
}
.project-detail-hero-v2__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(4, 24, 18, .28), rgba(4, 24, 18, .1) 48%, rgba(4, 24, 18, .3)),
        linear-gradient(180deg, rgba(4, 24, 18, .06), rgba(4, 24, 18, .46));
    pointer-events: none;
}
.project-detail-hero-v2__bg-image {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: none !important;
    filter: saturate(1.04) contrast(1.035);
    image-rendering: auto;
    backface-visibility: hidden;
}
.project-detail-hero-v2--has-cover .project-detail-hero-v2__overlay {
    background:
        linear-gradient(180deg, rgba(3, 24, 18, .18), rgba(3, 24, 18, .72)),
        radial-gradient(circle at 78% 12%, rgba(242, 194, 48, .18), transparent 22rem);
}
@media (min-width: 1180px) {
    .project-detail-hero-v2__bg-image {
        inset: auto;
        left: 50%;
        top: 50%;
        width: min(88vw, 1360px);
        height: calc(100% - clamp(1.5rem, 4vh, 3.25rem));
        max-height: 720px;
        object-fit: contain;
        transform: translate(-50%, -50%) !important;
        border-radius: clamp(18px, 2vw, 30px);
        box-shadow: 0 32px 90px rgba(0, 0, 0, .2);
    }
}
@media (min-width: 1600px) {
    .project-detail-hero-v2__bg-image {
        width: min(78vw, 1440px);
    }
}
@media (max-width: 760px) {
    .project-detail-hero-v2__bg::before {
        opacity: .34;
        filter: blur(18px) saturate(1.06);
    }
    .project-detail-hero-v2__bg-image {
        object-fit: cover;
        filter: saturate(1.03) contrast(1.02);
    }
}


/* RS31.137 Project detail hero legacy cover restore + clarity guard
   Revert RS31.136 foreground/blur image treatment. Keep the original full-bleed cover behavior,
   but avoid extra scale-up that made low-resolution Facebook images look worse. */
.project-detail-hero-v2__bg {
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    transform: none !important;
    filter: saturate(1.03) contrast(1.02) !important;
}
.project-detail-hero-v2__bg::before,
.project-detail-hero-v2__bg::after {
    content: none !important;
    display: none !important;
}
.project-detail-hero-v2__bg-image {
    display: none !important;
}
.project-detail-hero-v2__overlay {
    background:
        linear-gradient(180deg, rgba(3, 24, 18, .26), rgba(3, 24, 18, .72)),
        radial-gradient(circle at 80% 12%, rgba(242, 194, 48, .22), transparent 22rem) !important;
}

/* RS31.138 SDG-level review workflow */
.goal-review-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--goal-color,#0f766e);color:#fff;font-weight:800;padding:.35rem .65rem;margin-right:.45rem;box-shadow:0 8px 18px rgba(15,23,42,.12)}
.goal-review-state-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1rem 0}
.goal-review-state-card{display:flex;flex-direction:column;gap:.2rem;padding:.85rem 1rem;border:1px solid rgba(15,23,42,.12);border-left:5px solid var(--goal-color,#0f766e);border-radius:18px;background:#fff;text-decoration:none!important;color:#1f2937;box-shadow:0 8px 20px rgba(15,23,42,.08)}
.goal-review-state-card:hover,.goal-review-state-card:focus{border-color:var(--goal-color,#0f766e);box-shadow:0 14px 30px rgba(15,23,42,.14);transform:translateY(-1px)}
.goal-review-state-card.is-active{background:linear-gradient(180deg,#fff,#f8fafc);outline:3px solid color-mix(in srgb,var(--goal-color,#0f766e) 28%,transparent)}
.goal-review-state-card strong{font-size:1rem;color:#111827}.goal-review-state-card span{font-weight:700}.goal-review-state-card small{color:#64748b}
.goal-review-current-card{display:grid;gap:.25rem;border-radius:18px;border:1px solid color-mix(in srgb,var(--goal-color,#0f766e) 35%,#e5e7eb);border-left:6px solid var(--goal-color,#0f766e);padding:1rem;margin:0 0 1rem;background:#fff}.goal-review-current-card span{font-size:.78rem;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.goal-review-current-card strong{font-size:1.05rem}.goal-review-current-card small{font-weight:800;color:var(--goal-color,#0f766e)}
.goal-reviewer-matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.goal-reviewer-card{border:1px solid rgba(15,23,42,.1);border-top:5px solid var(--goal-color,#0f766e);border-radius:20px;background:#fff;padding:1rem;box-shadow:0 10px 24px rgba(15,23,42,.08)}.goal-reviewer-card header{display:grid;gap:.25rem;margin-bottom:.75rem}.goal-reviewer-card header strong{font-size:1.05rem;color:var(--goal-color,#0f766e)}.goal-reviewer-users{display:grid;gap:.55rem}.goal-reviewer-users .check-line{align-items:flex-start}.goal-reviewer-users small{display:block;color:#64748b;font-size:.78rem}.project-revision-callout{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-left:6px solid #f59e0b;background:#fffbeb}.project-revision-callout h3{margin:0 0 .25rem}.project-revision-callout p{margin:0;color:#6b7280}@media(max-width:760px){.project-revision-callout{display:grid}.goal-reviewer-matrix{grid-template-columns:1fr}.goal-review-state-grid{grid-template-columns:1fr}}

/* RS31.139 Role UX + SDG reviewer assignment polish */
.roles-workbench--cards .roles-hero .admin-hero__actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.roles-directory__head{align-items:flex-end}.roles-directory__search{display:grid;gap:.35rem;min-width:min(360px,100%);font-weight:700;color:#334155}.roles-directory__search input{min-height:42px;border-radius:14px}.role-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.role-card{display:grid;gap:.9rem;border:1px solid rgba(15,23,42,.1);border-radius:22px;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%);box-shadow:0 14px 34px rgba(15,23,42,.08);padding:1.05rem;min-width:0}.role-card.is-inactive{opacity:.78}.role-card.is-system{border-color:rgba(14,116,144,.24)}.role-card__top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.role-card h3{margin:0 0 .3rem;font-size:1.08rem;line-height:1.25;color:#0f172a}.role-card code{display:inline-flex;border-radius:999px;background:#e2e8f0;color:#334155;padding:.18rem .55rem;font-size:.78rem}.role-card p{margin:0;color:#475569;line-height:1.55}.role-card__meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.role-card__meta span{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;background:#f1f5f9;color:#334155;padding:.35rem .65rem;font-size:.84rem}.role-card__actions{display:flex;justify-content:flex-end;gap:.5rem;align-items:center;flex-wrap:wrap;border-top:1px solid rgba(15,23,42,.08);padding-top:.85rem}.role-editor--polished .permission-matrix{overflow:visible}.permission-matrix__summary-stack{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.permission-matrix__summary--muted{background:#f8fafc;color:#475569}.permission-toolbar--sticky{position:sticky;top:calc(var(--admin-topbar-height,64px) + .5rem);z-index:9;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border:1px solid rgba(15,23,42,.08);border-radius:18px;padding:.75rem;box-shadow:0 14px 34px rgba(15,23,42,.08)}.permission-toolbar__actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.permission-group-list{display:grid;gap:1rem}.permission-group{border:1px solid rgba(15,23,42,.1);border-radius:20px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.06);overflow:hidden}.permission-group__head{cursor:pointer;list-style:none;padding:1rem 1.1rem;background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.permission-group__head::-webkit-details-marker{display:none}.permission-group__head::after{content:'▾';font-weight:900;color:#0f766e;transition:transform .18s ease}.permission-group:not([open]) .permission-group__head::after{transform:rotate(-90deg)}.permission-group__head h3{margin:0;color:#0f172a}.permission-group__head p{margin:.28rem 0 0;color:#64748b}.permission-group__tools{display:flex;gap:.5rem;flex-wrap:wrap;padding:.75rem 1.1rem;border-top:1px solid rgba(15,23,42,.06);background:#f8fafc}.permission-group .permission-list{padding:1rem}.check-card--permission{border-radius:16px}.goal-reviewer-hero{border-left:6px solid #0f766e}.goal-reviewer-guide{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#f8fafc;border:1px solid rgba(15,23,42,.08)}.goal-reviewer-guide strong{color:#0f172a}.goal-reviewer-guide p{margin:.2rem 0 0;color:#475569}.goal-reviewer-guide__badges{display:flex;gap:.5rem;flex-wrap:wrap}.goal-reviewer-toolbar{display:flex;align-items:end;justify-content:space-between;gap:.75rem;margin:1rem 0;flex-wrap:wrap}.goal-reviewer-search{display:grid;gap:.35rem;min-width:min(460px,100%);font-weight:700;color:#334155}.goal-reviewer-search input{min-height:42px;border-radius:14px}.goal-reviewer-card{padding:0;overflow:hidden}.goal-reviewer-card__header{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;padding:1rem;border-bottom:1px solid rgba(15,23,42,.08);background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}.goal-reviewer-card__header strong{display:block;font-size:1.08rem;color:var(--goal-color,#0f766e)}.goal-reviewer-card__header span{display:block;color:#334155;line-height:1.45}.goal-reviewer-card__count{white-space:nowrap;border-radius:999px;background:rgba(15,118,110,.1);color:#0f766e;padding:.25rem .6rem;font-size:.8rem;font-weight:800}.goal-reviewer-card .alert{margin:.85rem 1rem 0}.goal-reviewer-assignment-grid{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(260px,1.15fr);gap:1rem;padding:1rem}.goal-reviewer-assignment-box{border:1px solid rgba(15,23,42,.08);border-radius:18px;background:#fff;padding:.85rem;min-width:0}.goal-reviewer-assignment-box__head{display:grid;gap:.15rem;margin-bottom:.75rem}.goal-reviewer-assignment-box__head strong{color:#0f172a}.goal-reviewer-assignment-box__head small{color:#64748b;line-height:1.45}.goal-reviewer-role-list{display:grid;gap:.55rem}.check-card--reviewer-role{display:flex;align-items:flex-start;gap:.65rem;border:1px solid rgba(15,23,42,.1);border-radius:16px;padding:.75rem;background:#f8fafc}.check-card--reviewer-role.is-core-team{border-color:rgba(15,118,110,.28);background:#ecfdf5}.check-card--reviewer-role strong{display:block;color:#0f172a}.check-card--reviewer-role small{display:block;color:#64748b}.goal-reviewer-user-line{padding:.55rem .6rem;border-radius:14px;background:#f8fafc;border:1px solid rgba(15,23,42,.06)}.goal-reviewer-user-line span{min-width:0}.goal-reviewer-user-line strong{display:block;color:#0f172a}.goal-reviewer-user-line small{display:block;color:#64748b;overflow:hidden;text-overflow:ellipsis}.goal-reviewer-users{max-height:360px;overflow:auto;padding-right:.25rem}@media(max-width:980px){.goal-reviewer-assignment-grid{grid-template-columns:1fr}.permission-toolbar--sticky{position:static}.roles-directory__head{align-items:flex-start}.roles-directory__search{width:100%}}@media(max-width:640px){.role-card-grid{grid-template-columns:1fr}.role-card__top,.goal-reviewer-card__header,.goal-reviewer-guide{display:grid}.goal-reviewer-card__count{width:max-content}.permission-matrix__summary-stack{width:100%}.permission-toolbar__actions{width:100%}.permission-toolbar__actions .button{flex:1 1 auto}}

/* RS31.140 Popular admin assignment UX hotfix */
.role-editor-modern,
.goal-reviewer-admin-modern {
    display: grid;
    gap: 1rem;
}
.role-editor-modern__hero,
.goal-reviewer-admin-modern__hero {
    border-left: 6px solid #0f766e;
}
.role-editor-modern__form,
.reviewer-assignment-form {
    display: grid;
    gap: 1rem;
}
.role-settings-panel,
.permission-admin-panel,
.reviewer-rule-strip,
.reviewer-board {
    border: 1px solid rgba(15,23,42,.08);
    box-shadow: 0 18px 46px rgba(15,23,42,.07);
}
.role-settings-panel__head,
.permission-admin-panel__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
}
.role-settings-panel__head h3,
.permission-admin-panel__head h3 {
    margin: 0 0 .25rem;
    color: #0f172a;
}
.role-settings-panel__head p,
.permission-admin-panel__head p {
    margin: 0;
    color: #475569;
    line-height: 1.55;
}
.role-settings-panel__metric,
.permission-admin-panel__stats span,
.reviewer-rule-strip__stats span {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 7.5rem;
    border: 1px solid rgba(15,118,110,.18);
    border-radius: 18px;
    background: #f0fdfa;
    color: #115e59;
    padding: .65rem .85rem;
    font-weight: 800;
    text-align: center;
}
.role-settings-panel__metric strong,
.permission-admin-panel__stats strong,
.reviewer-rule-strip__stats strong {
    font-size: 1.35rem;
    line-height: 1;
    color: #0f766e;
}
.role-settings-panel__metric span,
.permission-admin-panel__stats span span,
.reviewer-rule-strip__stats span span {
    font-size: .78rem;
}
.role-settings-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .9rem 1rem;
    margin-top: 1rem;
}
.role-settings-grid label {
    min-width: 0;
}
.role-settings-grid__wide {
    grid-column: span 2;
}
.role-active-toggle {
    align-self: end;
    min-height: 44px;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 14px;
    background: #f8fafc;
    padding: .65rem .8rem;
}
.permission-admin-panel__stats,
.reviewer-rule-strip__stats {
    display: flex;
    gap: .6rem;
    align-items: stretch;
    flex-wrap: wrap;
}
.permission-commandbar,
.reviewer-commandbar {
    position: sticky;
    top: calc(var(--admin-topbar-height,64px) + .5rem);
    z-index: 12;
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: .85rem;
    margin: 1rem 0;
    padding: .85rem;
    border: 1px solid rgba(15,23,42,.09);
    border-radius: 18px;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(14px);
    box-shadow: 0 16px 36px rgba(15,23,42,.09);
}
.permission-commandbar__search,
.reviewer-commandbar__search {
    display: grid;
    gap: .35rem;
    width: min(520px, 100%);
    font-weight: 800;
    color: #334155;
}
.permission-commandbar__search input,
.reviewer-commandbar__search input {
    min-height: 44px;
    border-radius: 14px;
}
.permission-commandbar__actions,
.reviewer-commandbar__actions {
    display: flex;
    gap: .5rem;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
}
.permission-commandbar__toggle {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 38px;
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    padding: .4rem .7rem;
    font-weight: 800;
}
.permission-module-stack {
    display: grid;
    gap: .85rem;
}
.permission-module {
    border: 1px solid rgba(15,23,42,.1);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 10px 26px rgba(15,23,42,.055);
}
.permission-module__summary {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: .85rem;
    align-items: center;
    list-style: none;
    cursor: pointer;
    padding: 1rem;
    background: #f8fafc;
}
.permission-module__summary::-webkit-details-marker { display: none; }
.permission-module__summary::after {
    content: '⌄';
    grid-column: 4;
    width: 1.8rem;
    height: 1.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #e2e8f0;
    color: #0f172a;
    font-weight: 900;
    transition: transform .18s ease;
}
.permission-module:not([open]) .permission-module__summary::after { transform: rotate(-90deg); }
.permission-module__icon {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #0f766e;
    color: #fff;
    font-weight: 900;
    box-shadow: 0 10px 18px rgba(15,118,110,.22);
}
.permission-module__title {
    display: grid;
    gap: .18rem;
    min-width: 0;
}
.permission-module__title strong {
    color: #0f172a;
    font-size: 1rem;
}
.permission-module__title small {
    color: #64748b;
    line-height: 1.45;
}
.permission-module__count {
    border-radius: 999px;
    background: #ecfdf5;
    color: #047857;
    padding: .35rem .65rem;
    font-size: .82rem;
    font-weight: 900;
    white-space: nowrap;
}
.permission-module__body {
    padding: .9rem;
}
.permission-module__tools {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: .75rem;
}
.permission-row-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
    gap: .6rem;
}
.permission-row {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: .7rem;
    align-items: center;
    min-width: 0;
    border: 1px solid rgba(15,23,42,.09);
    border-radius: 15px;
    background: #fff;
    padding: .72rem .8rem;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.permission-row:has(input:checked) {
    border-color: rgba(15,118,110,.32);
    background: #f0fdfa;
    box-shadow: inset 0 0 0 1px rgba(15,118,110,.08);
}
.permission-row__check input,
.reviewer-chip input,
.reviewer-user-option input {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: #0f766e;
}
.permission-row__main {
    display: grid;
    gap: .16rem;
    min-width: 0;
}
.permission-row__main strong {
    color: #0f172a;
    line-height: 1.28;
}
.permission-row__main code {
    display: block;
    width: max-content;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    padding: .16rem .48rem;
    font-size: .74rem;
}
.permission-row__action {
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    padding: .25rem .55rem;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}
.reviewer-rule-strip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    border-radius: 22px;
    background: #fff;
    padding: 1rem 1.1rem;
}
.reviewer-rule-strip__item strong {
    color: #0f172a;
}
.reviewer-rule-strip__item p {
    margin: .2rem 0 0;
    color: #475569;
    line-height: 1.55;
}
.reviewer-board {
    border-radius: 22px;
    background: #fff;
    overflow: hidden;
}
.reviewer-board__header,
.reviewer-row {
    display: grid;
    grid-template-columns: minmax(210px,.95fr) minmax(240px,1.05fr) minmax(300px,1.35fr) minmax(92px,.35fr);
    gap: 0;
}
.reviewer-board__header {
    position: sticky;
    top: calc(var(--admin-topbar-height,64px) + 5.3rem);
    z-index: 8;
    background: #0f172a;
    color: #fff;
    font-weight: 900;
    font-size: .82rem;
}
.reviewer-board__header span,
.reviewer-row > div {
    padding: .9rem 1rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
}
.reviewer-row {
    background: #fff;
}
.reviewer-row:nth-child(even) {
    background: #f8fafc;
}
.reviewer-row__goal {
    border-left: 6px solid var(--goal-color,#0f766e);
    display: grid;
    align-content: start;
    gap: .35rem;
}
.reviewer-row__goal-badge {
    width: max-content;
    border-radius: 999px;
    background: var(--goal-color,#0f766e);
    color: #fff;
    padding: .28rem .62rem;
    font-weight: 900;
    font-size: .78rem;
}
.reviewer-row__goal strong {
    color: #0f172a;
    line-height: 1.35;
}
.reviewer-row__goal small {
    color: #64748b;
    line-height: 1.45;
}
.reviewer-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.reviewer-chip {
    display: inline-grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: .38rem .45rem;
    align-items: center;
    max-width: 100%;
    border: 1px solid rgba(15,23,42,.12);
    border-radius: 999px;
    background: #fff;
    color: #334155;
    padding: .42rem .62rem;
    cursor: pointer;
}
.reviewer-chip:has(input:checked) {
    border-color: rgba(15,118,110,.34);
    background: #ecfdf5;
    color: #065f46;
}
.reviewer-chip.is-core-team {
    border-color: rgba(14,116,144,.24);
}
.reviewer-chip span {
    font-weight: 900;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.reviewer-chip small {
    grid-column: 2;
    color: #64748b;
    font-size: .72rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.reviewer-user-picker {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .45rem;
    max-height: 220px;
    overflow: auto;
    padding-right: .25rem;
}
.reviewer-user-option {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: .55rem;
    align-items: start;
    border: 1px solid rgba(15,23,42,.08);
    border-radius: 14px;
    background: #fff;
    padding: .55rem .65rem;
}
.reviewer-user-option:has(input:checked) {
    border-color: rgba(15,118,110,.3);
    background: #f0fdfa;
}
.reviewer-user-option strong,
.reviewer-user-option small {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.reviewer-user-option strong {
    color: #0f172a;
    line-height: 1.25;
}
.reviewer-user-option small {
    color: #64748b;
    font-size: .76rem;
}
.reviewer-row__summary {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.reviewer-count-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    padding: .35rem .65rem;
    font-weight: 900;
    white-space: nowrap;
}
.reviewer-row:has([data-goal-reviewer-input]:checked) .reviewer-count-pill {
    background: #dcfce7;
    color: #166534;
}
.reviewer-savebar,
.role-editor-savebar {
    z-index: 20;
}
@media (max-width: 1180px) {
    .role-settings-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .reviewer-board__header { display: none; }
    .reviewer-board__body { display: grid; gap: .85rem; padding: .85rem; background: #f8fafc; }
    .reviewer-row {
        grid-template-columns: 1fr;
        border: 1px solid rgba(15,23,42,.1);
        border-radius: 18px;
        overflow: hidden;
        box-shadow: 0 10px 24px rgba(15,23,42,.06);
    }
    .reviewer-row > div { border-bottom: 1px solid rgba(15,23,42,.08); }
    .reviewer-row > div:last-child { border-bottom: 0; }
    .reviewer-row > div::before {
        content: attr(data-column-label);
        display: block;
        margin-bottom: .45rem;
        font-size: .75rem;
        font-weight: 900;
        color: #64748b;
        text-transform: uppercase;
        letter-spacing: .04em;
    }
    .reviewer-row__goal::before { display: none !important; }
    .reviewer-row__summary { justify-content: flex-start; }
}
@media (max-width: 760px) {
    .role-settings-panel__head,
    .permission-admin-panel__head,
    .permission-commandbar,
    .reviewer-commandbar,
    .reviewer-rule-strip {
        display: grid;
        align-items: stretch;
    }
    .role-settings-grid { grid-template-columns: 1fr; }
    .role-settings-grid__wide { grid-column: auto; }
    .permission-commandbar,
    .reviewer-commandbar { position: static; }
    .permission-commandbar__actions,
    .reviewer-commandbar__actions { justify-content: stretch; }
    .permission-commandbar__actions .button,
    .reviewer-commandbar__actions .button { flex: 1 1 auto; }
    .permission-row-list { grid-template-columns: 1fr; }
    .permission-row { grid-template-columns: auto minmax(0,1fr); }
    .permission-row__action { grid-column: 2; width: max-content; }
    .permission-module__summary { grid-template-columns: auto minmax(0,1fr); }
    .permission-module__summary::after { grid-column: 1 / -1; justify-self: end; margin-top: -.2rem; }
    .permission-module__count { grid-column: 2; width: max-content; }
    .reviewer-user-picker { grid-template-columns: 1fr; max-height: 260px; }
}

/* RS31.141 Elegant reviewer assignment: calm table + searchable chips. */
.goal-reviewer-minimal{display:grid;gap:1rem;color:#0f172a}.goal-reviewer-minimal .panel{border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 34px rgba(15,23,42,.055);border-radius:22px;background:#fff}.goal-reviewer-minimal__hero{border-left:0;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}.goal-reviewer-minimal__hero h2{font-size:clamp(1.35rem,1vw + 1.1rem,2rem);letter-spacing:-.02em}.goal-reviewer-minimal__hero p{max-width:72ch;color:#475569}.goal-reviewer-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem}.goal-reviewer-summary strong{color:#0f172a;font-size:1rem}.goal-reviewer-summary p{margin:.2rem 0 0;color:#64748b;line-height:1.55}.goal-reviewer-summary__stats{display:flex;gap:.55rem;flex-wrap:wrap}.goal-reviewer-summary__stats span{display:inline-flex;flex-direction:column;align-items:center;min-width:7rem;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:.62rem .8rem;color:#475569;font-weight:700}.goal-reviewer-summary__stats strong{font-size:1.35rem;line-height:1;color:#0f766e}.goal-reviewer-minimal__form{display:grid;gap:1rem}.goal-reviewer-commandbar{position:sticky;top:calc(var(--admin-topbar-height,64px) + .5rem);z-index:14;display:flex;align-items:end;justify-content:space-between;gap:1rem;border:1px solid rgba(15,23,42,.08);border-radius:20px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);box-shadow:0 12px 28px rgba(15,23,42,.07);padding:.85rem}.goal-reviewer-search-main{display:grid;gap:.35rem;width:min(480px,100%);font-weight:800;color:#334155}.goal-reviewer-search-main input{min-height:44px;border-radius:14px;border-color:#cbd5e1}.goal-reviewer-commandbar__hint{max-width:52ch;color:#64748b;line-height:1.5;font-size:.92rem}.goal-reviewer-table{overflow:visible}.goal-reviewer-table__head,.goal-reviewer-line{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(260px,1fr) minmax(260px,1fr) minmax(260px,1.05fr);gap:0}.goal-reviewer-table__head{position:sticky;top:calc(var(--admin-topbar-height,64px) + 5.15rem);z-index:9;border-bottom:1px solid rgba(15,23,42,.08);background:#f8fafc;color:#475569;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.045em}.goal-reviewer-table__head span,.goal-reviewer-line>div{padding:.9rem 1rem}.goal-reviewer-line{border-bottom:1px solid rgba(15,23,42,.07);background:#fff}.goal-reviewer-line:last-child{border-bottom:0}.goal-reviewer-line:hover{background:#fcfcfd}.goal-reviewer-line__goal{display:grid;align-content:start;gap:.35rem;border-left:4px solid var(--goal-color,#0f766e)}.goal-reviewer-line__badge{display:inline-flex;width:max-content;border-radius:999px;background:#f1f5f9;color:#0f172a;border:1px solid #e2e8f0;padding:.25rem .58rem;font-weight:900;font-size:.78rem}.goal-reviewer-line__goal strong{line-height:1.35;color:#0f172a}.goal-reviewer-line__goal small{line-height:1.45;color:#64748b}.goal-reviewer-line__picker{min-width:0;border-left:1px solid rgba(15,23,42,.055)}.reviewer-typeahead{position:relative;display:grid;gap:.4rem}.reviewer-typeahead label{display:grid;gap:.32rem;font-weight:800;color:#334155}.reviewer-typeahead label span{font-size:.82rem}.reviewer-typeahead input{min-height:40px;border-radius:12px;border:1px solid #cbd5e1;background:#fff}.reviewer-typeahead input:focus{border-color:#0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.12)}.reviewer-typeahead__results{position:absolute;top:calc(100% + .35rem);left:0;right:0;z-index:30;display:grid;max-height:285px;overflow:auto;border:1px solid rgba(15,23,42,.12);border-radius:16px;background:#fff;box-shadow:0 22px 44px rgba(15,23,42,.14);padding:.35rem}.reviewer-typeahead__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;border:0;border-radius:12px;background:#fff;color:#0f172a;padding:.62rem .72rem;text-align:left;cursor:pointer}.reviewer-typeahead__item:hover:not(:disabled),.reviewer-typeahead__item:focus-visible:not(:disabled){background:#f0fdfa;outline:none}.reviewer-typeahead__item:disabled{cursor:not-allowed;opacity:.64;background:#f8fafc}.reviewer-typeahead__item strong,.reviewer-typeahead__item small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reviewer-typeahead__item strong{font-size:.92rem}.reviewer-typeahead__item small{font-size:.76rem;color:#64748b}.reviewer-typeahead__item em{flex:0 0 auto;border-radius:999px;background:#f1f5f9;color:#475569;padding:.22rem .48rem;font-size:.72rem;font-style:normal;font-weight:800}.reviewer-typeahead__empty{padding:.75rem;color:#64748b;text-align:center;font-weight:700}.goal-reviewer-line__selected{display:grid;gap:.55rem;border-left:1px solid rgba(15,23,42,.055);align-content:start}.reviewer-selected-list{display:flex;gap:.42rem;flex-wrap:wrap;min-height:2.25rem}.reviewer-selected-list.is-empty::before{content:attr(data-empty-label);display:inline-flex;align-items:center;border:1px dashed #cbd5e1;border-radius:999px;color:#94a3b8;padding:.36rem .7rem;font-weight:700;font-size:.82rem}.reviewer-selected-chip{display:inline-flex;align-items:center;gap:.5rem;max-width:100%;border:1px solid #dbe4ee;border-radius:999px;background:#fff;color:#0f172a;padding:.28rem .34rem .28rem .62rem;box-shadow:0 4px 10px rgba(15,23,42,.04)}.reviewer-selected-chip span{min-width:0;display:grid;line-height:1.1}.reviewer-selected-chip strong{font-size:.84rem;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reviewer-selected-chip small{font-size:.7rem;color:#64748b;max-width:10rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reviewer-selected-chip button{display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border:0;border-radius:999px;background:#f1f5f9;color:#475569;font-size:1rem;font-weight:900;cursor:pointer}.reviewer-selected-chip button:hover,.reviewer-selected-chip button:focus-visible{background:#fee2e2;color:#991b1b;outline:none}.goal-reviewer-line .reviewer-count-pill{width:max-content;min-width:0;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;padding:.28rem .62rem;font-size:.78rem}.goal-reviewer-line:has([data-reviewer-chip]) .reviewer-count-pill{border-color:#bbf7d0;background:#f0fdf4;color:#166534}.goal-reviewer-minimal .reviewer-savebar{border:1px solid rgba(15,23,42,.08);box-shadow:0 -12px 32px rgba(15,23,42,.08)}
@media(max-width:1180px){.goal-reviewer-table__head{display:none}.goal-reviewer-table__body{display:grid;gap:.85rem;background:#f8fafc;padding:.85rem}.goal-reviewer-line{grid-template-columns:1fr;border:1px solid rgba(15,23,42,.08);border-radius:18px;overflow:visible;box-shadow:0 10px 24px rgba(15,23,42,.055)}.goal-reviewer-line>div{border-left:0;border-bottom:1px solid rgba(15,23,42,.07)}.goal-reviewer-line>div:last-child{border-bottom:0}.goal-reviewer-line>div::before{content:attr(data-column-label);display:block;margin-bottom:.45rem;color:#64748b;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.goal-reviewer-line__goal::before{display:none!important}.reviewer-typeahead__results{position:static;margin-top:.25rem}.goal-reviewer-commandbar{position:static}.goal-reviewer-summary,.goal-reviewer-commandbar{display:grid;align-items:stretch}.goal-reviewer-commandbar__hint{max-width:none}}@media(max-width:640px){.goal-reviewer-summary__stats{display:grid;grid-template-columns:1fr 1fr}.goal-reviewer-summary__stats span{min-width:0}.reviewer-selected-chip strong,.reviewer-selected-chip small{max-width:13rem}}

/* RS31.141 Elegant role permission editor: quieter SaaS admin surface. */
.role-editor-modern{display:grid;gap:1rem;color:#0f172a}.role-editor-modern .panel{border:1px solid rgba(15,23,42,.08);border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(15,23,42,.055)}.role-editor-modern__hero{border-left:0;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}.role-editor-modern__hero h2{font-size:clamp(1.35rem,1vw + 1.1rem,2rem);letter-spacing:-.02em}.role-settings-panel__head,.permission-admin-panel__head{padding-bottom:.9rem}.role-settings-panel__metric,.permission-admin-panel__stats span{border-color:#e2e8f0;background:#f8fafc;color:#475569;box-shadow:none}.role-settings-panel__metric strong,.permission-admin-panel__stats strong{color:#0f766e}.role-settings-grid{gap:.85rem 1rem}.role-settings-grid input,.role-settings-grid textarea{border-color:#cbd5e1;border-radius:13px}.role-active-toggle{border-color:#e2e8f0;background:#f8fafc}.permission-commandbar{box-shadow:0 12px 28px rgba(15,23,42,.07);border-radius:20px}.permission-module-stack{gap:.75rem}.permission-module{border-color:rgba(15,23,42,.08);box-shadow:0 8px 20px rgba(15,23,42,.045);border-radius:18px}.permission-module__summary{background:#fff;border-bottom:1px solid rgba(15,23,42,.06)}.permission-module:not([open]) .permission-module__summary{border-bottom:0}.permission-module__icon{background:#f1f5f9;color:#0f172a;box-shadow:none}.permission-module__summary::after{background:#f8fafc;border:1px solid #e2e8f0;color:#334155}.permission-module__count{background:#f8fafc;color:#334155;border:1px solid #e2e8f0}.permission-module__body{background:#fcfcfd}.permission-module__tools{margin-bottom:.65rem}.permission-row-list{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.55rem}.permission-row{border-color:#e2e8f0;background:#fff;border-radius:14px;box-shadow:none}.permission-row:hover{border-color:#cbd5e1;background:#f8fafc}.permission-row:has(input:checked){border-color:#99f6e4;background:#f0fdfa;box-shadow:none}.permission-row__main strong{font-size:.92rem}.permission-row__main code{background:#f8fafc;border:1px solid #e2e8f0}.permission-row__action{background:#f8fafc;border:1px solid #e2e8f0;color:#475569}.role-editor-savebar{border:1px solid rgba(15,23,42,.08);box-shadow:0 -12px 32px rgba(15,23,42,.08)}

/* RS31.142 Goal reviewer core-team visible picker hotfix */
.reviewer-typeahead__results[hidden]{display:none!important;visibility:hidden!important}
.reviewer-core-pool{display:grid;gap:.55rem;min-width:0}.reviewer-core-pool__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;color:#334155}.reviewer-core-pool__head strong{font-size:.86rem;font-weight:900}.reviewer-core-pool__head span{font-size:.74rem;font-weight:800;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;padding:.2rem .52rem;white-space:nowrap}.reviewer-core-pool__list{display:grid;gap:.42rem;max-height:260px;overflow:auto;padding:.25rem;border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc}.reviewer-core-pool__item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;border:1px solid transparent;border-radius:13px;background:#fff;color:#0f172a;padding:.58rem .68rem;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.reviewer-core-pool__item:hover:not(:disabled),.reviewer-core-pool__item:focus-visible:not(:disabled){border-color:#99f6e4;background:#f0fdfa;box-shadow:0 8px 18px rgba(15,118,110,.08);outline:none}.reviewer-core-pool__item:disabled{cursor:not-allowed;border-color:#dbeafe;background:#eff6ff;color:#1e3a8a}.reviewer-core-pool__item span{display:grid;min-width:0;line-height:1.18}.reviewer-core-pool__item strong,.reviewer-core-pool__item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reviewer-core-pool__item strong{font-size:.88rem;font-weight:850}.reviewer-core-pool__item small{font-size:.72rem;color:#64748b}.reviewer-core-pool__item em{flex:0 0 auto;border-radius:999px;background:#ecfdf5;color:#047857;padding:.22rem .5rem;font-size:.72rem;font-style:normal;font-weight:900}.reviewer-core-pool__item:disabled em{background:#dbeafe;color:#1d4ed8}.reviewer-core-pool__empty{display:flex;align-items:center;justify-content:center;min-height:3rem;color:#64748b;font-weight:750;font-size:.86rem}.reviewer-typeahead[data-pool="optional"] .reviewer-typeahead__results:empty{display:none!important}
@media(max-width:1180px){.reviewer-core-pool__list{max-height:220px}}

@media (max-width: 760px) {
    .review-selected-indicator-head,
    .review-all-indicators-panel summary {
        display: grid;
        grid-template-columns: 1fr;
    }
    .review-all-indicators-panel summary::before {
        order: -1;
    }
    .review-all-indicators-panel > p {
        padding-left: 1rem;
    }
}


/* RS31.144 Review workflow lock + full approval public rule UI */
.sdg-approved-lock-notice{display:grid;gap:.25rem;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:16px;padding:.8rem 1rem;margin:.75rem 0 1rem;line-height:1.5}.sdg-approved-lock-notice strong{font-weight:900;color:#1e40af}.sdg-approved-lock-notice span{font-size:.92rem}.goal-check-v2.is-locked{border-color:#bfdbfe!important;background:#eff6ff!important;box-shadow:none!important}.goal-check-v2.is-locked input{cursor:not-allowed}.goal-check-v2.is-locked em{background:#dbeafe!important;color:#1d4ed8!important;border-color:#bfdbfe!important}.sdg-goal-workspace-panel.is-locked{border-color:#bfdbfe;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}.sdg-goal-workspace-panel.is-locked .sdg-target-picker{opacity:.88}.sdg-goal-workspace-panel.is-locked .sdg-target-option{cursor:not-allowed}.sdg-approved-lock-badge{display:inline-flex;align-items:center;width:max-content;border-radius:999px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;padding:.2rem .55rem;font-size:.74rem;font-weight:900;white-space:nowrap}

/* RS31.149 Facebook Feed flexible core rules + quick local result search */
.project-facebook-feed__active-rules{
    margin-top:.85rem;
    padding:.85rem 1rem;
    border:1px solid rgba(22,163,74,.28);
    border-radius:16px;
    background:linear-gradient(180deg,#ecfdf5 0%,#f8fffb 100%);
    box-shadow:0 8px 18px rgba(22,163,74,.06);
}
.project-facebook-feed__active-rules-head{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:.45rem .75rem;
    margin-bottom:.55rem;
}
.project-facebook-feed__active-rules-head strong{
    color:#14532d;
    font-size:.95rem;
    font-weight:750;
    line-height:1.35;
}
.project-facebook-feed__active-rules-badge{
    display:inline-flex;
    align-items:center;
    min-height:1.6rem;
    padding:.18rem .55rem;
    border-radius:999px;
    background:#16a34a;
    color:#fff;
    font-size:.74rem;
    font-weight:700;
    line-height:1.2;
}
.project-facebook-feed__active-rules-list{
    margin:0;
    padding-left:1.15rem;
    display:grid;
    gap:.28rem;
    color:#166534;
    font-size:.88rem;
    font-weight:600;
    line-height:1.5;
}
.project-facebook-feed__active-rules-note{
    margin:.55rem 0 0;
    color:#3f6212;
    font-size:.82rem;
    font-weight:600;
    line-height:1.45;
}
.project-facebook-feed-core{
    margin-top:.65rem;
    border:1px solid rgba(15,23,42,.1);
    border-radius:14px;
    background:#fff;
    overflow:hidden;
}
.project-facebook-feed-core summary{
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
    padding:.7rem .9rem;
    color:#0f172a;
    background:linear-gradient(180deg,#f8fafc 0%,#f1f5f9 100%);
    border-bottom:1px solid transparent;
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.project-facebook-feed-core summary:hover{
    background:linear-gradient(180deg,#eef6ff 0%,#e8f0fe 100%);
    box-shadow:inset 0 0 0 1px rgba(37,99,235,.12);
}
.project-facebook-feed-core summary:focus-visible{
    outline:2px solid #2563eb;
    outline-offset:2px;
}
.project-facebook-feed-core[open] summary{
    background:#fff;
    border-bottom-color:rgba(15,23,42,.08);
}
.project-facebook-feed-core summary::-webkit-details-marker{display:none;}
.project-facebook-feed-core summary::marker{content:'';}
.project-facebook-feed-core__toggle-main{
    display:inline-flex;
    align-items:center;
    gap:.65rem;
    min-width:0;
}
.project-facebook-feed-core__chevron{
    flex:0 0 auto;
    width:1.55rem;
    height:1.55rem;
    border-radius:9px;
    border:1px solid rgba(37,99,235,.28);
    background:#eff6ff;
    color:#1d4ed8;
    box-shadow:0 1px 0 rgba(15,23,42,.04);
    position:relative;
    transition:transform .18s ease,background .16s ease,border-color .16s ease;
}
.project-facebook-feed-core__chevron::before{
    content:'';
    position:absolute;
    left:50%;
    top:44%;
    width:.42rem;
    height:.42rem;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:translate(-50%,-60%) rotate(45deg);
}
.project-facebook-feed-core[open] .project-facebook-feed-core__chevron{
    transform:rotate(180deg);
    background:#dbeafe;
    border-color:rgba(37,99,235,.4);
}
.project-facebook-feed-core__toggle-copy{
    display:grid;
    gap:.12rem;
    min-width:0;
}
.project-facebook-feed-core__toggle-copy strong{
    font-size:.92rem;
    font-weight:700;
    color:#0f172a;
    line-height:1.3;
}
.project-facebook-feed-core__toggle-copy em{
    font-style:normal;
    font-size:.74rem;
    font-weight:600;
    color:#2563eb;
    line-height:1.25;
}
.project-facebook-feed-core[open] .project-facebook-feed-core__toggle-copy em{color:#1d4ed8;}
.project-facebook-feed-core__state{display:none;}
.project-facebook-feed-core summary small{
    display:inline-flex;
    align-items:center;
    margin-left:auto;
    padding:.2rem .55rem;
    border-radius:999px;
    background:#ecfdf5;
    color:#166534;
    border:1px solid rgba(22,163,74,.22);
    font-size:.74rem;
    font-weight:700;
    line-height:1.2;
    white-space:nowrap;
}
.project-facebook-feed-core__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.7rem;
    padding:.85rem .9rem 1rem;
    border-top:1px solid rgba(15,23,42,.08);
}
.project-facebook-feed-core__grid label{display:grid;gap:.28rem;margin:0;color:#334155;font-size:.84rem;font-weight:600;line-height:1.35;}
.project-facebook-feed-core__grid label[hidden],
.project-facebook-feed-core__grid [hidden],
.project-facebook-feed-core__grid .span-2[hidden],
.project-facebook-feed-include[hidden]{display:none !important;}
.project-facebook-feed-core__grid label.span-2,.project-facebook-feed-core__grid .span-2{grid-column:1/-1;}
.project-facebook-feed-core__pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;align-items:start;}
.project-facebook-feed-core__pair:has(> [hidden]:only-of-type),
.project-facebook-feed-core__pair:has(> label[hidden]:first-child:last-child),
.project-facebook-feed-core__pair:not(:has(> :not([hidden]))){grid-template-columns:1fr;}
.project-facebook-feed-core__pair:has(> [data-facebook-feed-keywords-only][hidden]){grid-template-columns:1fr;}
@media (max-width:560px){.project-facebook-feed-core__pair{grid-template-columns:1fr;}}
.project-facebook-feed-core__grid input,
.project-facebook-feed-core__grid select,
.project-facebook-feed-core__grid textarea{width:100%;min-height:40px;padding:.52rem .65rem;border:1px solid rgba(15,23,42,.15);border-radius:12px;background:#fff;color:#0f172a;font:inherit;font-weight:500;}
.project-facebook-feed-core__grid textarea{min-height:72px;resize:vertical;line-height:1.5;}
.project-facebook-feed-result-search{
    margin-top:.75rem;
    display:flex;
    align-items:end;
    gap:.5rem .75rem;
    flex-wrap:wrap;
}
.project-facebook-feed-result-search__query{display:grid;gap:.28rem;flex:1 1 240px;margin:0;color:#334155;font-size:.86rem;font-weight:600;}
.project-facebook-feed-result-search__meta{
    display:inline-flex;
    flex-wrap:wrap;
    align-items:center;
    gap:.45rem .65rem;
    flex:0 0 auto;
    min-height:40px;
}
.project-facebook-feed-result-search__select-all{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    margin:0;
    padding:0;
    border:0;
    background:transparent;
    color:#334155;
    font-size:.8rem;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
    cursor:pointer;
    width:auto;
    flex:0 0 auto;
}
.project-facebook-feed-result-search__select-all input{width:1rem;height:1rem;margin:0;accent-color:#15803d;cursor:pointer;flex:0 0 auto;}
.project-facebook-feed-result-search input[type="search"]{width:100%;min-height:40px;padding:.5rem .65rem;border:1px solid rgba(15,23,42,.16);border-radius:12px;background:#fff;color:#0f172a;font:inherit;}
.project-facebook-feed-result-search small{color:#64748b;font-weight:600;font-size:.8rem;line-height:1.2;}
.project-facebook-feed-result-search [data-facebook-feed-clear-visible]{min-height:32px;padding:.28rem .55rem;font-size:.8rem;}
.project-facebook-feed-result[hidden]{display:none!important;}
@media (max-width:900px){.project-facebook-feed-core__grid{grid-template-columns:repeat(2,minmax(0,1fr));}.project-facebook-feed-core__grid label.span-2{grid-column:1/-1;}}
@media (max-width:560px){.project-facebook-feed-core summary{align-items:flex-start;padding:.72rem .78rem;}.project-facebook-feed-core__grid{grid-template-columns:1fr;padding:.75rem .78rem;}.project-facebook-feed-core__grid label.span-2{grid-column:auto;}.project-facebook-feed-result-search{padding:.72rem .78rem;align-items:stretch;}.project-facebook-feed-result-search__meta{width:100%;min-height:0;}}

/* RS31.149 Review NotebookLM prompt + friendlier secondary panels */
.review-notebooklm-panel-v2{
    border-left:5px solid var(--goal-color,#0f766e);
    background:linear-gradient(180deg,#ffffff 0%,#f8fffb 100%);
}
.review-notebooklm-panel-v2__head h2{margin:0 0 .25rem;color:#0f172a;font-size:1.08rem;line-height:1.35;}
.review-notebooklm-panel-v2__head p{margin:0;color:#475569;font-size:.88rem;line-height:1.55;}
.review-notebooklm-panel-v2__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0 .7rem;}
.review-notebooklm-prompt{
    width:100%;
    min-height:240px;
    resize:vertical;
    border:1px solid rgba(15,23,42,.14);
    border-radius:14px;
    background:#f8fafc;
    color:#0f172a;
    padding:.8rem .9rem;
    font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
    font-size:.82rem;
    line-height:1.65;
    white-space:pre-wrap;
}
.review-notebooklm-panel-v2 .button.is-copied{box-shadow:0 0 0 3px rgba(16,185,129,.24);}
.review-selected-indicator-head{border-left:5px solid var(--goal-color,#0f766e);}
.review-selected-indicator-head > span{border-color:var(--goal-color,#0f766e);color:var(--goal-color,#0f766e);background:#fff;}
.indicator-chip--review-v2.is-selected{
    border-color:var(--goal-color,#0f766e);
    box-shadow:inset 5px 0 0 var(--goal-color,#0f766e),0 10px 26px rgba(15,23,42,.07);
}
.indicator-chip--review-v2.is-selected strong{color:var(--goal-color,#0f766e);}
.review-all-indicators-panel{border-color:var(--goal-color,#0f766e);}
.review-all-indicators-panel summary::before{background:var(--goal-color,#0f766e);color:#fff;border-color:transparent;}
.review-all-indicators-panel[open] summary::before{background:var(--goal-color,#0f766e);color:#fff;}
.review-card-v2--secondary{background:linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);border-style:dashed;box-shadow:0 8px 22px rgba(15,23,42,.05);}
.review-card-v2--secondary .review-card-v2__head > span{background:#e2e8f0;color:#334155;}
.review-disclosure-v2{overflow:hidden;background:#fff;}
.review-disclosure-v2__summary{
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    min-height:48px;
    color:#0f172a;
}
.review-disclosure-v2__summary::-webkit-details-marker{display:none;}
.review-disclosure-v2__summary span{font-weight:900;line-height:1.35;}
.review-disclosure-v2__summary small{color:#64748b;font-size:.8rem;line-height:1.45;text-align:right;}
.review-disclosure-v2__summary::after{
    content:'▾';
    flex:0 0 auto;
    display:grid;
    place-items:center;
    width:1.75rem;
    height:1.75rem;
    border-radius:999px;
    background:#f1f5f9;
    color:#334155;
    font-weight:900;
    transition:transform .18s ease,background .18s ease;
}
.review-disclosure-v2[open] .review-disclosure-v2__summary::after{transform:rotate(180deg);background:#dcfce7;color:#166534;}
.review-disclosure-v2 > .comment-list,
.review-disclosure-v2 > .review-status-timeline-v2,
.review-disclosure-v2 > .audit-diff-list{margin-top:.85rem;}
@media (max-width:900px){
    .review-notebooklm-prompt{min-height:200px;font-size:.78rem;}
    .review-disclosure-v2__summary{align-items:flex-start;}
    .review-disclosure-v2__summary small{text-align:left;}
}
@media (max-width:560px){
    .review-notebooklm-panel-v2__actions{display:grid;grid-template-columns:1fr;}
    .review-notebooklm-panel-v2__actions .button{width:100%;justify-content:center;}
    .review-disclosure-v2__summary{display:grid;grid-template-columns:1fr auto;}
    .review-disclosure-v2__summary small{grid-column:1/-1;}
}


/* =========================================================
   RS31.155 Project submit review button hover contrast
   Keep the submit-review CTA readable inside the dark review card.
   This lives after the global admin button audit rules because those rules
   use !important and otherwise turn the hover state into a low-contrast fill.
   ========================================================= */
.site-admin .submit-box--review-action .submit-review-action__button {
    --button-accent: #075736;
    --button-accent-rgb: 7, 87, 54;
    background: #ffffff !important;
    border: 1px solid rgba(255,255,255,.94) !important;
    color: #043821 !important;
    box-shadow: 0 14px 28px rgba(3, 32, 20, .25), inset 0 1px 0 rgba(255,255,255,.86) !important;
}
.site-admin .submit-box--review-action .submit-review-action__button:hover,
.site-admin .submit-box--review-action .submit-review-action__button:focus-visible {
    background: #f5fff3 !important;
    border-color: #ffffff !important;
    color: #032718 !important;
    box-shadow: 0 18px 36px rgba(3, 32, 20, .32), 0 0 0 3px rgba(255,255,255,.24) !important;
    transform: translateY(-1px);
}
.site-admin .submit-box--review-action .submit-review-action__button:active {
    background: #e8fbe8 !important;
    color: #032718 !important;
    box-shadow: 0 8px 18px rgba(3, 32, 20, .24) inset !important;
    transform: translateY(0);
}
.site-admin .submit-box--review-action .submit-review-action__button span,
.site-admin .submit-box--review-action .submit-review-action__button span::after {
    color: inherit !important;
}

/* =========================================================
   RS31.156 Project SDG target color contrast
   Make selected SDG/Target panels readable on light SDG-tinted cards.
   ========================================================= */
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel--inline {
    border-color: color-mix(in srgb, var(--goal-color, #0f766e) 44%, #e2e8f0 56%) !important;
    border-left: 6px solid var(--goal-color, #0f766e) !important;
    background: #ffffff !important;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .07) !important;
}
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel--inline .sdg-goal-workspace-panel__head {
    border-bottom: 1px solid color-mix(in srgb, var(--goal-color, #0f766e) 22%, #e2e8f0 78%) !important;
    background:
        linear-gradient(135deg,
            #ffffff 0%,
            color-mix(in srgb, var(--goal-color, #0f766e) 8%, #ffffff 92%) 100%) !important;
}
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel__toggle:hover,
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel__toggle:focus-visible {
    background: color-mix(in srgb, var(--goal-color, #0f766e) 7%, #ffffff 93%) !important;
}
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel__toggle-main > span,
.project-editor-v2 #project-sdgs .sdg-target-option .sdg-target-picker__code {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 1.65rem;
    padding: .24rem .62rem !important;
    border: 1px solid color-mix(in srgb, var(--goal-color, #0f766e) 72%, #0f172a 28%) !important;
    border-radius: 999px !important;
    background: var(--goal-color, #0f766e) !important;
    color: var(--goal-on-color, #ffffff) !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
    letter-spacing: .01em !important;
    line-height: 1.1 !important;
    text-shadow: none !important;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--goal-color, #0f766e) 18%, transparent) !important;
}
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel__toggle-main h4 {
    color: #0f172a !important;
    font-weight: 900 !important;
    line-height: 1.42 !important;
}
.project-editor-v2 #project-sdgs .sdg-goal-workspace-panel__toggle-meta strong {
    background: #ffffff !important;
    border: 1px solid rgba(15, 23, 42, .1) !important;
    color: #1e293b !important;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--target-only.has-selected {
    border-color: color-mix(in srgb, var(--goal-color, #0f766e) 46%, #dbe4ee 54%) !important;
    border-left: 5px solid var(--goal-color, #0f766e) !important;
    background: linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, var(--goal-color, #0f766e) 5%, #ffffff 95%) 100%) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .07) !important;
}
.project-editor-v2 #project-sdgs .sdg-target-option strong {
    color: #0f172a !important;
    font-weight: 850 !important;
}
.project-editor-v2 #project-sdgs .sdg-target-picker--target-only.has-selected .sdg-target-option em {
    border: 1px solid color-mix(in srgb, var(--goal-color, #0f766e) 30%, #e2e8f0 70%) !important;
    background: #ffffff !important;
    color: color-mix(in srgb, var(--goal-color, #0f766e) 68%, #0f172a 32%) !important;
    font-weight: 900 !important;
}
@media (max-width: 760px) {
    .project-editor-v2 #project-sdgs .sdg-goal-workspace-panel--inline {
        border-left-width: 4px !important;
    }
    .project-editor-v2 #project-sdgs .sdg-goal-workspace-panel__toggle-main > span,
    .project-editor-v2 #project-sdgs .sdg-target-option .sdg-target-picker__code {
        min-height: 1.5rem;
        padding: .2rem .52rem !important;
        font-size: .72rem !important;
    }
}


/* RS31.158 Core Team AI prompt readability */
.review-notebooklm-panel-v2__head h2{font-size:1.12rem;}
.review-notebooklm-prompt{min-height:360px;}
@media (max-width:720px){.review-notebooklm-prompt{min-height:260px;font-size:.78rem;}}

/* =========================================================
   RS31.159 Project rich text editor for create/edit
   ========================================================= */
.site-admin .project-rich-field {
    min-width: 0;
}
.site-admin .project-rich-field .cms-rich-field__label {
    align-items: flex-start;
    line-height: 1.45;
}
.site-admin .project-rich-editor {
    border-radius: 20px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}
.site-admin .project-rich-editor__surface {
    min-height: 190px;
    font-size: .98rem;
    line-height: 1.78;
}
.site-admin .project-rich-field--detail .project-rich-editor__surface,
.site-admin .project-rich-field--detail_en .project-rich-editor__surface {
    min-height: 300px;
}
.site-admin .project-rich-field--beneficiary_group .project-rich-editor__surface,
.site-admin .project-rich-field--beneficiary_group_en .project-rich-editor__surface {
    min-height: 160px;
}
.site-admin .project-rich-field__help {
    color: #64748b;
    font-size: .82rem;
    line-height: 1.45;
}
.site-admin .project-rich-field:not(.is-enhanced) .cms-rich-editor {
    display: none;
}
.site-admin .project-rich-field:not(.is-enhanced) .cms-rich-editor__source {
    width: 100%;
    min-height: 170px;
    font-family: var(--font-sans, sans-serif);
    line-height: 1.65;
}
.site-admin .review-content-v2 .rich-text--cms,
.site-admin .review-outcome-v2 .rich-text--cms {
    color: #172033;
    line-height: 1.7;
}
.site-admin .review-content-v2 .rich-text--cms p:last-child,
.site-admin .review-outcome-v2 .rich-text--cms p:last-child,
.site-admin .project-detail-v2-card .rich-text--cms p:last-child {
    margin-bottom: 0;
}
@media (max-width: 760px) {
    .site-admin .project-rich-editor__surface {
        min-height: 170px;
        padding: .9rem;
    }
    .site-admin .project-rich-field--detail .project-rich-editor__surface,
    .site-admin .project-rich-field--detail_en .project-rich-editor__surface {
        min-height: 240px;
    }
}

/* =========================================================
   RS31.162 Project Title Workspace Simplification
   ========================================================= */
.site-admin .project-editor-v2 .project-title-workspace {
    display: grid;
    gap: .9rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .045);
}
.site-admin .project-editor-v2 .project-title-workspace__head {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .7rem;
    align-items: start;
}
.site-admin .project-editor-v2 .project-title-workspace__step {
    display: inline-grid;
    place-items: center;
    min-width: 2.1rem;
    min-height: 2.1rem;
    padding: .2rem .42rem;
    border-radius: 999px;
    background: #0f766e;
    color: #fff;
    font-weight: 800;
    font-size: .82rem;
    line-height: 1;
    box-shadow: 0 10px 18px rgba(15, 118, 110, .18);
}
.site-admin .project-editor-v2 .project-title-workspace__title {
    display: block;
    margin: 0 0 .15rem;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
}
.site-admin .project-editor-v2 .project-title-workspace__head small {
    display: block;
    color: #64748b;
    font-size: .88rem;
    font-weight: 500;
    line-height: 1.55;
}
.site-admin .project-editor-v2 .project-title-workspace__primary {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #334155;
    font-size: .88rem;
    font-weight: 800;
    line-height: 1.35;
}
.site-admin .project-editor-v2 .project-title-workspace__primary .project-master-title-field__custom {
    margin-top: 0;
    min-height: 46px;
    border-color: rgba(15, 23, 42, .16);
    border-radius: 14px;
    background: #fff;
    color: #0f172a;
    font-size: .98rem;
    font-weight: 650;
}
.site-admin .project-editor-v2 .project-title-workspace .project-master-picker__current {
    margin: -.25rem 0 0;
}
.site-admin .project-editor-v2 .project-title-workspace__tools {
    border: 1px dashed rgba(15, 23, 42, .16);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
.site-admin .project-editor-v2 .project-title-workspace__tools summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .45rem .75rem;
    align-items: center;
    padding: .75rem .85rem;
    cursor: pointer;
    color: #334155;
    font-weight: 800;
    line-height: 1.35;
    list-style: none;
}
.site-admin .project-editor-v2 .project-title-workspace__tools summary::-webkit-details-marker { display: none; }
.site-admin .project-editor-v2 .project-title-workspace__tools summary::after {
    content: "▾";
    display: inline-grid;
    place-items: center;
    width: 1.7rem;
    height: 1.7rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: .8rem;
    transition: transform .16s ease;
}
.site-admin .project-editor-v2 .project-title-workspace__tools[open] summary::after {
    transform: rotate(180deg);
}
.site-admin .project-editor-v2 .project-title-workspace__tools summary small {
    grid-column: 1;
    color: #64748b;
    font-size: .8rem;
    font-weight: 500;
    line-height: 1.45;
}
.site-admin .project-editor-v2 .project-title-workspace__master-grid {
    display: grid;
    gap: .65rem;
    padding: .85rem;
    border-top: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
}
.site-admin .project-editor-v2 .project-title-workspace__master-grid label {
    display: grid;
    gap: .35rem;
    margin: 0;
    color: #334155;
    font-size: .86rem;
    font-weight: 800;
}
.site-admin .project-editor-v2 .project-title-workspace__master-grid small {
    color: #64748b;
    font-size: .82rem;
    font-weight: 500;
    line-height: 1.5;
}
.site-admin .project-editor-v2 .project-title-workspace .project-master-title-actions {
    margin-top: 0;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact {
    margin-top: 0;
    padding: .85rem;
    border-color: rgba(14, 116, 144, .15);
    border-radius: 16px;
    background: #ecfeff;
    box-shadow: none;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact .rru-3dgf-project-lookup__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .18rem;
    margin-bottom: .65rem;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact .rru-3dgf-project-lookup__head strong {
    color: #164e63;
    font-size: .95rem;
    font-weight: 850;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact .rru-3dgf-project-lookup__head small {
    max-width: none;
    color: #475569;
    font-size: .82rem;
    text-align: left;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact .rru-3dgf-project-lookup__search {
    grid-template-columns: minmax(220px, 1.2fr) minmax(120px, .55fr) minmax(180px, .95fr) auto;
    gap: .5rem;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup__query-field span,
.site-admin .project-editor-v2 .rru-3dgf-project-lookup__year-field span,
.site-admin .project-editor-v2 .rru-3dgf-project-lookup__dept-field span {
    color: #334155;
    font-size: .78rem;
    font-weight: 800;
    line-height: 1.25;
}
@media (max-width: 1180px) {
    .site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact .rru-3dgf-project-lookup__search {
        grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
    }
}
@media (max-width: 760px) {
    .site-admin .project-editor-v2 .project-title-workspace {
        padding: .85rem;
        border-radius: 16px;
    }
    .site-admin .project-editor-v2 .project-title-workspace__head {
        grid-template-columns: 1fr;
        gap: .45rem;
    }
    .site-admin .project-editor-v2 .project-title-workspace__step {
        width: fit-content;
    }
    .site-admin .project-editor-v2 .project-title-workspace__tools summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .site-admin .project-editor-v2 .rru-3dgf-project-lookup--compact .rru-3dgf-project-lookup__search {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   RS31.164 Project form cleanup: remove legacy Project Master fill UI
   ========================================================= */
.site-admin .project-editor-v2 .project-title-workspace--simple {
    display: grid;
    gap: .9rem;
}
.site-admin .project-editor-v2 .project-title-workspace--simple .project-title-workspace__title-input {
    min-height: 46px;
    border-color: rgba(15, 23, 42, .16);
    border-radius: 14px;
    background: #fff;
    color: #0f172a;
    font-size: .98rem;
    font-weight: 650;
}
.site-admin .project-editor-v2 .project-title-workspace--simple .project-title-workspace__title-input:focus {
    border-color: rgba(14, 116, 144, .48);
    box-shadow: 0 0 0 4px rgba(14, 116, 144, .12);
}
.site-admin .project-editor-v2 .project-title-workspace--simple .rru-3dgf-project-lookup__head small {
    max-width: 68rem;
}


/* =========================================================
   RS31.174 SDG Goal Keywords Management
   ========================================================= */
.site-admin .sdg-master-stats-v2 {
    grid-template-columns: repeat(5, minmax(74px, 1fr));
}
.site-admin .sdg-keyword-workspace {
    display: grid;
    gap: 1rem;
    min-width: 0;
}
.site-admin .sdg-keyword-workspace__head {
    align-items: start;
}
.site-admin .sdg-keyword-workspace__head p:last-child {
    max-width: 860px;
}
.site-admin .sdg-keyword-workspace__summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(88px, 1fr));
    gap: .55rem;
    min-width: min(100%, 300px);
}
.site-admin .sdg-keyword-workspace__summary span {
    display: grid;
    gap: .2rem;
    padding: .68rem .75rem;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 14px;
    background: #f8fafc;
    color: #475569;
    font-size: .76rem;
    font-weight: 700;
    text-align: center;
}
.site-admin .sdg-keyword-workspace__summary strong {
    color: #0b5d3b;
    font-size: 1.16rem;
    line-height: 1;
}
.site-admin .sdg-keyword-schema-alert {
    display: grid;
    gap: .25rem;
}
.site-admin .sdg-keyword-filter {
    display: grid;
    grid-template-columns: minmax(230px, 1.35fr) minmax(180px, .9fr) minmax(145px, .58fr) minmax(145px, .58fr) auto;
    gap: .7rem;
    align-items: end;
    padding: .9rem;
    border: 1px solid rgba(11, 93, 59, .15);
    border-radius: 18px;
    background: #f7fbf8;
}
.site-admin .sdg-keyword-filter label,
.site-admin .sdg-keyword-form-grid label {
    display: grid;
    gap: .38rem;
    color: #24364b;
    font-size: .82rem;
    font-weight: 750;
}
.site-admin .sdg-keyword-filter input,
.site-admin .sdg-keyword-filter select,
.site-admin .sdg-keyword-form-grid input,
.site-admin .sdg-keyword-form-grid select {
    min-height: 44px;
    border-color: #c9d7cf;
    background: #fff;
    color: #0f172a;
}
.site-admin .sdg-keyword-filter input::placeholder,
.site-admin .sdg-keyword-form-grid input::placeholder {
    color: #64748b;
    opacity: 1;
}
.site-admin .sdg-keyword-filter input:focus,
.site-admin .sdg-keyword-filter select:focus,
.site-admin .sdg-keyword-form-grid input:focus,
.site-admin .sdg-keyword-form-grid select:focus {
    border-color: #168052;
    outline: 0;
    box-shadow: 0 0 0 4px rgba(22, 128, 82, .13);
}
.site-admin .sdg-keyword-filter__actions,
.site-admin .sdg-keyword-create__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.site-admin .sdg-keyword-create {
    overflow: hidden;
    border: 1px solid rgba(11, 93, 59, .16);
    border-radius: 18px;
    background: #fff;
}
.site-admin .sdg-keyword-create > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem 1rem;
    cursor: pointer;
    list-style: none;
    background: linear-gradient(135deg, #f2fbf5, #fffdf3);
}
.site-admin .sdg-keyword-create > summary::-webkit-details-marker {
    display: none;
}
.site-admin .sdg-keyword-create > summary::after {
    content: '+';
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: #0b5d3b;
    color: #fff;
    font-size: 1.15rem;
    font-weight: 800;
}
.site-admin .sdg-keyword-create[open] > summary::after {
    content: '−';
}
.site-admin .sdg-keyword-create > summary span {
    display: grid;
    gap: .15rem;
}
.site-admin .sdg-keyword-create > summary strong {
    color: #0b3d2a;
}
.site-admin .sdg-keyword-create > summary small {
    color: #475569;
}
.site-admin .sdg-keyword-create__form {
    display: grid;
    gap: .85rem;
    padding: 1rem;
    border-top: 1px solid rgba(15, 23, 42, .1);
}
.site-admin .sdg-keyword-form-grid small {
    color: #5b6b7f;
    font-weight: 550;
}
.site-admin .sdg-keyword-goals {
    display: grid;
    gap: .8rem;
    min-width: 0;
}
.site-admin .sdg-keyword-goal-card {
    overflow: hidden;
    min-width: 0;
    border: 1px solid #d8e1dc;
    border-color: color-mix(in srgb, var(--goal-color) 34%, #d8e1dc);
    border-left: 5px solid var(--goal-color);
    border-radius: 18px;
    background: #fff;
}
.site-admin .sdg-keyword-goal-card[open] {
    box-shadow: 0 12px 28px rgba(15, 23, 42, .07);
}
.site-admin .sdg-keyword-goal-card > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .85rem;
    align-items: center;
    padding: .72rem .85rem;
    cursor: pointer;
    list-style: none;
    background: color-mix(in srgb, var(--goal-color) 6%, #fff);
}
.site-admin .sdg-keyword-goal-card > summary::-webkit-details-marker {
    display: none;
}
.site-admin .sdg-keyword-goal-card > summary::after {
    content: '›';
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--goal-color) 34%, #cad5ce);
    border-radius: 999px;
    background: #fff;
    color: #183c2c;
    font-size: 1.35rem;
    font-weight: 850;
    transition: transform .18s ease;
}
.site-admin .sdg-keyword-goal-card[open] > summary::after {
    transform: rotate(90deg);
}
.site-admin .sdg-keyword-goal-card__identity {
    display: flex;
    gap: .7rem;
    align-items: center;
    min-width: 0;
}
.site-admin .sdg-keyword-goal-card__identity img {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 10px;
    object-fit: cover;
}
.site-admin .sdg-keyword-goal-card__identity > span {
    display: grid;
    min-width: 0;
}
.site-admin .sdg-keyword-goal-card__identity strong {
    color: #0f172a;
    font-size: .94rem;
}
.site-admin .sdg-keyword-goal-card__identity em {
    overflow: hidden;
    color: #475569;
    font-size: .82rem;
    font-style: normal;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-admin .sdg-keyword-goal-card__count {
    color: #425466;
    font-size: .8rem;
    font-weight: 700;
    white-space: nowrap;
}
.site-admin .sdg-keyword-goal-card__count b {
    color: #0b5d3b;
}
.site-admin .sdg-keyword-goal-card__body {
    padding: .85rem;
    border-top: 1px solid rgba(15, 23, 42, .09);
}
.site-admin .sdg-keyword-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.site-admin .sdg-keyword-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    min-width: 0;
    padding: .72rem;
    border: 1px solid #d8e2dc;
    border-radius: 15px;
    background: #fff;
}
.site-admin .sdg-keyword-card.is-inactive {
    background: #f8fafc;
    opacity: .82;
}
.site-admin .sdg-keyword-card__main {
    display: grid;
    gap: .35rem;
    min-width: 0;
}
.site-admin .sdg-keyword-card__title {
    display: flex;
    flex-wrap: wrap;
    gap: .42rem;
    align-items: center;
    min-width: 0;
}
.site-admin .sdg-keyword-card__title strong {
    color: #132b20;
    overflow-wrap: anywhere;
}
.site-admin .sdg-keyword-locale {
    display: inline-flex;
    padding: .18rem .42rem;
    border: 1px solid #b8ccc0;
    border-radius: 999px;
    background: #edf8f1;
    color: #0b5d3b;
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .04em;
}
.site-admin .sdg-keyword-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    color: #45566b;
    font-size: .75rem;
}
.site-admin .sdg-keyword-card__main small {
    overflow: hidden;
    color: #64748b;
    font-size: .72rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-admin .sdg-keyword-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .42rem;
    justify-content: flex-end;
    align-items: center;
}
.site-admin .sdg-keyword-card__actions form {
    margin: 0;
}
@media (max-width: 1240px) {
    .site-admin .sdg-master-stats-v2 {
        grid-template-columns: repeat(3, minmax(74px, 1fr));
    }
    .site-admin .sdg-keyword-filter {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .site-admin .sdg-keyword-filter__search,
    .site-admin .sdg-keyword-filter__actions {
        grid-column: 1 / -1;
    }
}
@media (max-width: 900px) {
    .site-admin .sdg-keyword-list {
        grid-template-columns: 1fr;
    }
    .site-admin .sdg-keyword-card {
        grid-template-columns: 1fr;
    }
    .site-admin .sdg-keyword-card__actions {
        justify-content: flex-start;
    }
}
@media (max-width: 760px) {
    .site-admin .sdg-master-stats-v2,
    .site-admin .sdg-keyword-workspace__summary,
    .site-admin .sdg-keyword-filter {
        grid-template-columns: 1fr;
    }
    .site-admin .sdg-keyword-filter__search,
    .site-admin .sdg-keyword-filter__actions {
        grid-column: auto;
    }
    .site-admin .sdg-keyword-filter__actions .button,
    .site-admin .sdg-keyword-create__actions .button {
        width: 100%;
    }
    .site-admin .sdg-keyword-goal-card > summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .site-admin .sdg-keyword-goal-card__count {
        grid-column: 1 / -1;
        white-space: normal;
    }
}
@media (max-width: 430px) {
    .site-admin .sdg-keyword-workspace,
    .site-admin .sdg-keyword-goal-card__body,
    .site-admin .sdg-keyword-create__form,
    .site-admin .sdg-keyword-filter {
        padding-left: .7rem;
        padding-right: .7rem;
    }
    .site-admin .sdg-keyword-goal-card__identity img {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }
    .site-admin .sdg-keyword-card__actions .button,
    .site-admin .sdg-keyword-card__actions form {
        width: 100%;
    }
    .site-admin .sdg-keyword-card__actions form .button {
        width: 100%;
    }
}

/* =========================================================
   RS31.175 SDG Master Tree Workspace + Keyword Seed Hotfix
   ========================================================= */
.site-admin .sdg-admin-page--tree {
    display: grid;
    gap: 1rem;
    min-width: 0;
}
.site-admin .sdg-tree-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(420px, .9fr);
    gap: 1rem;
    align-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 92% 10%, rgba(250, 204, 21, .16), transparent 32%),
        linear-gradient(135deg, #ffffff 0%, #f3faf6 100%);
}
.site-admin .sdg-tree-hero__copy {
    min-width: 0;
}
.site-admin .sdg-tree-hero__copy h2 {
    margin: .12rem 0 .45rem;
    color: #10271c;
    font-size: clamp(1.35rem, 2vw, 2rem);
    line-height: 1.2;
}
.site-admin .sdg-tree-hero__copy p:last-child {
    max-width: 850px;
    margin: 0;
    color: #4b5f53;
    line-height: 1.7;
}
.site-admin .sdg-tree-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(88px, 1fr));
    gap: .58rem;
}
.site-admin .sdg-tree-stats > span {
    display: grid;
    gap: .16rem;
    min-width: 0;
    padding: .76rem .7rem;
    border: 1px solid rgba(11, 93, 59, .14);
    border-radius: 16px;
    background: rgba(255, 255, 255, .9);
    text-align: center;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .045);
}
.site-admin .sdg-tree-stats strong {
    color: #0b5d3b;
    font-size: 1.36rem;
    line-height: 1;
}
.site-admin .sdg-tree-stats small {
    color: #24364b;
    font-size: .76rem;
    font-weight: 850;
}
.site-admin .sdg-tree-stats em {
    color: #64748b;
    font-size: .68rem;
    font-style: normal;
}
.site-admin .sdg-tree-workspace {
    display: grid;
    gap: .95rem;
    min-width: 0;
}
.site-admin .sdg-tree-workspace__head {
    align-items: flex-start;
}
.site-admin .sdg-tree-workspace__head p {
    max-width: 930px;
}
.site-admin .sdg-tree-schema-alert {
    display: grid;
    gap: .2rem;
}
.site-admin .sdg-tree-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) minmax(180px, .8fr) repeat(4, minmax(145px, .58fr));
    gap: .68rem;
    align-items: end;
    padding: .9rem;
    border: 1px solid #d2dfd7;
    border-radius: 18px;
    background: #f7faf8;
}
.site-admin .sdg-tree-toolbar label {
    display: grid;
    gap: .36rem;
    min-width: 0;
    margin: 0;
    color: #263a4e;
    font-size: .79rem;
    font-weight: 800;
}
.site-admin .sdg-tree-toolbar input,
.site-admin .sdg-tree-toolbar select {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    border: 1px solid #c7d4cc;
    border-radius: 12px;
    background: #fff;
    color: #0f172a;
}
.site-admin .sdg-tree-toolbar input::placeholder {
    color: #68778b;
    opacity: 1;
}
.site-admin .sdg-tree-toolbar input:focus,
.site-admin .sdg-tree-toolbar select:focus {
    border-color: #168052;
    outline: none;
    box-shadow: 0 0 0 4px rgba(22, 128, 82, .13);
}
.site-admin .sdg-tree-toolbar__actions {
    display: flex;
    grid-column: 1 / -1;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}
.site-admin .sdg-tree-resultbar {
    display: flex;
    gap: .8rem;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    padding: .65rem .8rem;
    border: 1px solid #e0e7e2;
    border-radius: 14px;
    background: #fff;
}
.site-admin .sdg-tree-resultbar span {
    color: #0b5d3b;
    font-size: .84rem;
    font-weight: 850;
}
.site-admin .sdg-tree-resultbar small {
    color: #64748b;
    font-size: .74rem;
    text-align: right;
}
.site-admin .sdg-master-tree {
    display: grid;
    gap: .82rem;
    min-width: 0;
}
.site-admin .sdg-tree-goal,
.site-admin .sdg-tree-target,
.site-admin .sdg-tree-branch--keywords {
    min-width: 0;
}
.site-admin .sdg-tree-goal {
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--goal-color) 38%, #d4dfd8 62%);
    border-left: 6px solid var(--goal-color);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 9px 25px rgba(15, 23, 42, .045);
}
.site-admin .sdg-tree-goal[open] {
    box-shadow: 0 16px 36px rgba(15, 23, 42, .085);
}
.site-admin .sdg-tree-goal.is-inactive,
.site-admin .sdg-tree-target.is-inactive,
.site-admin .sdg-tree-indicator.is-inactive,
.site-admin .sdg-tree-keyword.is-inactive {
    background-color: #f8fafc;
}
.site-admin .sdg-tree-goal > summary,
.site-admin .sdg-tree-target > summary,
.site-admin .sdg-tree-branch--keywords > summary {
    list-style: none;
}
.site-admin .sdg-tree-goal > summary::-webkit-details-marker,
.site-admin .sdg-tree-target > summary::-webkit-details-marker,
.site-admin .sdg-tree-branch--keywords > summary::-webkit-details-marker {
    display: none;
}
.site-admin .sdg-tree-goal__summary {
    display: grid;
    grid-template-columns: auto minmax(220px, 1fr) auto auto auto;
    gap: .78rem;
    align-items: center;
    min-height: 76px;
    padding: .7rem .86rem;
    cursor: pointer;
    background: linear-gradient(90deg, color-mix(in srgb, var(--goal-color) 10%, #fff 90%), #fff 72%);
}
.site-admin .sdg-tree-node-icon {
    position: relative;
    z-index: 1;
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 12px;
    font-weight: 900;
    line-height: 1;
}
.site-admin .sdg-tree-node-icon--goal {
    width: 52px;
    height: 52px;
    overflow: hidden;
    border: 2px solid color-mix(in srgb, var(--goal-color) 45%, #fff 55%);
    background: #fff;
    box-shadow: 0 8px 16px color-mix(in srgb, var(--goal-color) 14%, transparent);
}
.site-admin .sdg-tree-node-icon--goal img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.site-admin .sdg-tree-goal__identity,
.site-admin .sdg-tree-target__identity {
    display: grid;
    gap: .14rem;
    min-width: 0;
}
.site-admin .sdg-tree-goal__identity strong {
    color: color-mix(in srgb, var(--goal-color) 68%, #0f172a 32%);
    font-size: .79rem;
    letter-spacing: .04em;
}
.site-admin .sdg-tree-goal__identity em {
    overflow: hidden;
    color: #111827;
    font-size: 1rem;
    font-style: normal;
    font-weight: 850;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-admin .sdg-tree-counts {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .24rem .38rem;
    align-items: center;
    color: #536273;
    font-size: .74rem;
    font-weight: 720;
    white-space: nowrap;
}
.site-admin .sdg-tree-counts b {
    color: #0b5d3b;
    font-size: .82rem;
}
.site-admin .sdg-tree-chevron {
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border: 1px solid #ccd8d1;
    border-radius: 999px;
    background: #fff;
    color: #264235;
    transition: transform .18s ease;
}
.site-admin .sdg-tree-chevron::before {
    content: "›";
    font-size: 1.28rem;
    font-weight: 900;
    line-height: 1;
}
.site-admin details[open] > summary > .sdg-tree-chevron {
    transform: rotate(90deg);
}
.site-admin .sdg-tree-goal__body {
    display: grid;
    gap: .9rem;
    padding: .9rem;
    border-top: 1px solid color-mix(in srgb, var(--goal-color) 20%, #e5ebe7 80%);
}
.site-admin .sdg-tree-goal__overview,
.site-admin .sdg-tree-target__overview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: start;
    min-width: 0;
    padding: .72rem .8rem;
    border: 1px solid #e1e7e3;
    border-radius: 15px;
    background: #fbfdfc;
}
.site-admin .sdg-tree-goal__overview p,
.site-admin .sdg-tree-target__overview p {
    margin: 0;
    color: #405365;
    line-height: 1.62;
}
.site-admin .sdg-tree-goal__overview small {
    display: block;
    margin-top: .25rem;
    color: #66768a;
    font-size: .73rem;
    line-height: 1.5;
}
.site-admin .sdg-tree-node-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .38rem;
    align-items: center;
    justify-content: flex-end;
}
.site-admin .sdg-tree-node-actions form {
    margin: 0;
}
.site-admin .sdg-tree-branch {
    position: relative;
    display: grid;
    gap: .7rem;
    min-width: 0;
    margin-left: 1.15rem;
    padding-left: 1.45rem;
}
.site-admin .sdg-tree-branch::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: .9rem;
    left: .32rem;
    width: 2px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--goal-color) 32%, #dbe4de 68%);
}
.site-admin .sdg-tree-branch__head,
.site-admin .sdg-tree-branch__summary {
    position: relative;
    display: flex;
    gap: .7rem;
    align-items: center;
    justify-content: space-between;
    min-width: 0;
    padding: .64rem .72rem;
    border: 1px solid #dce5df;
    border-radius: 15px;
    background: #f8fbf9;
}
.site-admin .sdg-tree-branch__head::before,
.site-admin .sdg-tree-branch__summary::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    width: 1.47rem;
    height: 2px;
    background: color-mix(in srgb, var(--goal-color) 32%, #dbe4de 68%);
}
.site-admin .sdg-tree-branch__title {
    display: flex;
    gap: .62rem;
    align-items: center;
    min-width: 0;
}
.site-admin .sdg-tree-branch__title > div,
.site-admin .sdg-tree-branch__title > span:last-child {
    display: grid;
    gap: .1rem;
    min-width: 0;
}
.site-admin .sdg-tree-branch__title h3,
.site-admin .sdg-tree-branch__title strong {
    margin: 0;
    color: #172b21;
    font-size: .92rem;
    font-weight: 850;
}
.site-admin .sdg-tree-branch__title p,
.site-admin .sdg-tree-branch__title small {
    margin: 0;
    color: #64748b;
    font-size: .72rem;
    font-weight: 550;
    line-height: 1.4;
}
.site-admin .sdg-tree-node-icon--branch {
    width: 34px;
    height: 34px;
    border: 1px solid color-mix(in srgb, var(--goal-color) 36%, #cbd8d0 64%);
    background: color-mix(in srgb, var(--goal-color) 10%, #fff 90%);
    color: color-mix(in srgb, var(--goal-color) 72%, #0f172a 28%);
    font-size: .8rem;
}
.site-admin .sdg-tree-target-list {
    display: grid;
    gap: .62rem;
    min-width: 0;
}
.site-admin .sdg-tree-target {
    position: relative;
    overflow: hidden;
    border: 1px solid #dce4df;
    border-radius: 16px;
    background: #fff;
}
.site-admin .sdg-tree-target::before {
    content: "";
    position: absolute;
    top: 28px;
    right: 100%;
    width: 1.45rem;
    height: 2px;
    background: color-mix(in srgb, var(--goal-color) 26%, #dbe4de 74%);
}
.site-admin .sdg-tree-target__summary {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto auto auto;
    gap: .65rem;
    align-items: center;
    min-height: 58px;
    padding: .56rem .68rem;
    cursor: pointer;
    background: #fff;
}
.site-admin .sdg-tree-target[open] > .sdg-tree-target__summary {
    background: color-mix(in srgb, var(--goal-color) 4%, #fff 96%);
}
.site-admin .sdg-tree-node-icon--target {
    min-width: 46px;
    min-height: 32px;
    padding: .28rem .48rem;
    border: 1px solid color-mix(in srgb, var(--goal-color) 42%, #cad5ce 58%);
    background: color-mix(in srgb, var(--goal-color) 10%, #fff 90%);
    color: color-mix(in srgb, var(--goal-color) 72%, #0f172a 28%);
    font-size: .72rem;
}
.site-admin .sdg-tree-target__identity strong {
    overflow: hidden;
    color: #1b2938;
    font-size: .86rem;
    line-height: 1.42;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-admin .sdg-tree-target__identity small {
    color: #64748b;
    font-size: .68rem;
}
.site-admin .sdg-tree-target__body {
    display: grid;
    gap: .72rem;
    padding: .72rem;
    border-top: 1px solid #e2e8e4;
    background: #fcfdfc;
}
.site-admin .sdg-tree-indicator-list,
.site-admin .sdg-tree-keyword-list {
    position: relative;
    display: grid;
    gap: .5rem;
    min-width: 0;
    margin-left: 1rem;
    padding-left: 1.25rem;
}
.site-admin .sdg-tree-indicator-list::before,
.site-admin .sdg-tree-keyword-list::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: .75rem;
    left: .25rem;
    width: 2px;
    background: color-mix(in srgb, var(--goal-color) 22%, #dbe4de 78%);
}
.site-admin .sdg-tree-indicator,
.site-admin .sdg-tree-keyword {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    gap: .58rem;
    align-items: center;
    min-width: 0;
    padding: .58rem .62rem;
    border: 1px solid #dde5e0;
    border-radius: 14px;
    background: #fff;
}
.site-admin .sdg-tree-indicator::before,
.site-admin .sdg-tree-keyword::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    width: 1.27rem;
    height: 2px;
    background: color-mix(in srgb, var(--goal-color) 22%, #dbe4de 78%);
}
.site-admin .sdg-tree-node-icon--indicator,
.site-admin .sdg-tree-node-icon--keyword {
    width: 30px;
    height: 30px;
    border: 1px solid #cbd8d0;
    background: #f4f8f5;
    color: #315844;
    font-size: .72rem;
}
.site-admin .sdg-tree-node-icon--keyword {
    border-color: #d9cfae;
    background: #fff9e7;
    color: #765a05;
}
.site-admin .sdg-tree-indicator__content,
.site-admin .sdg-tree-keyword__content {
    display: grid;
    gap: .22rem;
    min-width: 0;
}
.site-admin .sdg-tree-indicator__content > div,
.site-admin .sdg-tree-keyword__content > div {
    display: flex;
    flex-wrap: wrap;
    gap: .38rem;
    align-items: baseline;
    min-width: 0;
}
.site-admin .sdg-tree-indicator__content strong,
.site-admin .sdg-tree-keyword__content strong {
    color: #172b21;
    font-size: .79rem;
    overflow-wrap: anywhere;
}
.site-admin .sdg-tree-indicator__content span:not(.sdg-keyword-locale) {
    min-width: 0;
    color: #32465a;
    font-size: .79rem;
    line-height: 1.42;
    overflow-wrap: anywhere;
}
.site-admin .sdg-tree-indicator__content small,
.site-admin .sdg-tree-keyword__content small {
    overflow: hidden;
    color: #6b7789;
    font-size: .68rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-admin .sdg-tree-branch--keywords {
    gap: 0;
    overflow: visible;
}
.site-admin .sdg-tree-branch--keywords > .sdg-tree-branch__summary {
    cursor: pointer;
    list-style: none;
}
.site-admin .sdg-tree-keyword-branch__body {
    display: grid;
    gap: .6rem;
    min-width: 0;
    padding: .68rem 0 .1rem;
}
.site-admin .sdg-tree-branch-actions {
    display: flex;
    justify-content: flex-end;
}
.site-admin .sdg-tree-modal-bank {
    display: contents;
}
.site-admin .sdg-tree-no-results {
    margin: .5rem 0 0;
}
.site-admin [data-sdg-tree-goal].is-filtered-out,
.site-admin [data-sdg-tree-target].is-filtered-out,
.site-admin [data-sdg-tree-indicator].is-filtered-out,
.site-admin [data-sdg-tree-keyword].is-filtered-out,
.site-admin [data-sdg-tree-target-branch].is-filtered-out,
.site-admin [data-sdg-tree-keyword-branch].is-filtered-out {
    display: none !important;
}
.site-admin .sdg-tree-node-actions .button {
    white-space: nowrap;
}
.site-admin .sdg-tree-node-actions .button--small {
    min-height: 32px;
    padding: .35rem .58rem;
    font-size: .7rem;
}
.site-admin .sdg-tree-goal:target,
.site-admin .sdg-tree-target:target,
.site-admin .sdg-tree-indicator:target,
.site-admin .sdg-tree-keyword:target {
    scroll-margin-top: 92px;
    outline: 4px solid color-mix(in srgb, var(--goal-color, #0b5d3b) 28%, transparent);
    outline-offset: 3px;
}
@media (max-width: 1320px) {
    .site-admin .sdg-tree-hero {
        grid-template-columns: 1fr;
    }
    .site-admin .sdg-tree-toolbar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .site-admin .sdg-tree-toolbar__search {
        grid-column: span 2;
    }
}
@media (max-width: 1020px) {
    .site-admin .sdg-tree-goal__summary {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }
    .site-admin .sdg-tree-goal__summary > .sdg-tree-counts {
        grid-column: 2 / -1;
        grid-row: 2;
        white-space: normal;
    }
    .site-admin .sdg-tree-target__summary {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }
    .site-admin .sdg-tree-target__summary > .sdg-tree-counts {
        display: none;
    }
    .site-admin .sdg-tree-indicator,
    .site-admin .sdg-tree-keyword {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .site-admin .sdg-tree-indicator > .sdg-tree-node-actions,
    .site-admin .sdg-tree-keyword > .sdg-tree-node-actions {
        grid-column: 2 / -1;
        justify-content: flex-start;
    }
}
@media (max-width: 780px) {
    .site-admin .sdg-tree-stats,
    .site-admin .sdg-tree-toolbar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .site-admin .sdg-tree-toolbar__search {
        grid-column: 1 / -1;
    }
    .site-admin .sdg-tree-resultbar {
        display: grid;
    }
    .site-admin .sdg-tree-resultbar small {
        text-align: left;
    }
    .site-admin .sdg-tree-goal__summary {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .site-admin .sdg-tree-goal__summary > .status {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
    }
    .site-admin .sdg-tree-goal__summary > .sdg-tree-counts {
        grid-column: 1 / -1;
        grid-row: 3;
    }
    .site-admin .sdg-tree-goal__overview,
    .site-admin .sdg-tree-target__overview {
        grid-template-columns: 1fr;
    }
    .site-admin .sdg-tree-goal__overview .sdg-tree-node-actions,
    .site-admin .sdg-tree-target__overview .sdg-tree-node-actions {
        justify-content: flex-start;
    }
    .site-admin .sdg-tree-branch {
        margin-left: .45rem;
        padding-left: 1rem;
    }
    .site-admin .sdg-tree-branch__head,
    .site-admin .sdg-tree-branch__summary {
        align-items: flex-start;
    }
    .site-admin .sdg-tree-target__summary {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }
    .site-admin .sdg-tree-target__summary > .status {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
    }
    .site-admin .sdg-tree-indicator,
    .site-admin .sdg-tree-keyword {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .site-admin .sdg-tree-indicator > .status,
    .site-admin .sdg-tree-keyword > .status,
    .site-admin .sdg-tree-indicator > .sdg-tree-node-actions,
    .site-admin .sdg-tree-keyword > .sdg-tree-node-actions {
        grid-column: 2;
        justify-self: start;
    }
}
@media (max-width: 520px) {
    .site-admin .sdg-tree-hero,
    .site-admin .sdg-tree-workspace,
    .site-admin .sdg-tree-goal__body {
        padding-left: .7rem;
        padding-right: .7rem;
    }
    .site-admin .sdg-tree-stats,
    .site-admin .sdg-tree-toolbar {
        grid-template-columns: 1fr;
    }
    .site-admin .sdg-tree-toolbar__search,
    .site-admin .sdg-tree-toolbar__actions {
        grid-column: auto;
    }
    .site-admin .sdg-tree-toolbar__actions {
        display: grid;
    }
    .site-admin .sdg-tree-toolbar__actions .button {
        width: 100%;
    }
    .site-admin .sdg-tree-goal__summary {
        gap: .5rem;
        padding: .62rem;
    }
    .site-admin .sdg-tree-node-icon--goal {
        width: 44px;
        height: 44px;
    }
    .site-admin .sdg-tree-goal__identity em {
        font-size: .88rem;
        white-space: normal;
    }
    .site-admin .sdg-tree-branch {
        margin-left: 0;
        padding-left: .72rem;
    }
    .site-admin .sdg-tree-branch::before {
        left: .1rem;
    }
    .site-admin .sdg-tree-branch__head,
    .site-admin .sdg-tree-branch__summary {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }
    .site-admin .sdg-tree-branch__head > .button {
        width: 100%;
        grid-column: 1 / -1;
    }
    .site-admin .sdg-tree-target__summary {
        padding: .52rem;
    }
    .site-admin .sdg-tree-target__identity strong {
        white-space: normal;
    }
    .site-admin .sdg-tree-indicator-list,
    .site-admin .sdg-tree-keyword-list {
        margin-left: .15rem;
        padding-left: .68rem;
    }
    .site-admin .sdg-tree-node-actions,
    .site-admin .sdg-tree-node-actions form,
    .site-admin .sdg-tree-node-actions .button {
        width: 100%;
    }
    .site-admin .sdg-tree-indicator__content small,
    .site-admin .sdg-tree-keyword__content small {
        white-space: normal;
    }
}

/* RS31.176: CMS publication attachment upload */
.site-admin .publication-attachment-section .editor-section__head {
    align-items: flex-start;
    gap: 1rem;
}
.site-admin .publication-upload-limit {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: .35rem .7rem;
    border: 1px solid color-mix(in srgb, var(--rru-primary, #11385c) 20%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--rru-primary, #11385c) 7%, #fff);
    color: var(--rru-primary, #11385c);
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}
.site-admin .publication-attachment-grid {
    display: grid;
    gap: .85rem;
}
.site-admin .publication-upload-card {
    position: relative;
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    align-items: center;
    gap: .9rem;
    min-height: 7rem;
    padding: 1rem 1.1rem;
    border: 1.5px dashed color-mix(in srgb, var(--rru-primary, #11385c) 35%, #cbd5e1);
    border-radius: 18px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--rru-primary, #11385c) 5%, #fff), #fff);
    cursor: pointer;
    overflow: hidden;
}
.site-admin .publication-upload-card:hover,
.site-admin .publication-upload-card:focus-within {
    border-color: var(--rru-primary, #11385c);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--rru-primary, #11385c) 10%, transparent);
}
.site-admin .publication-upload-card__icon {
    display: grid;
    place-items: center;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 14px;
    background: var(--rru-primary, #11385c);
    color: #fff;
    font-size: 1.4rem;
    font-weight: 800;
}
.site-admin .publication-upload-card__copy {
    display: grid;
    gap: .25rem;
    min-width: 0;
}
.site-admin .publication-upload-card__copy strong {
    color: var(--rru-primary, #11385c);
    font-size: 1rem;
}
.site-admin .publication-upload-card__copy small,
.site-admin .publication-upload-help,
.site-admin .publication-link-grid small {
    color: var(--muted, #64748b);
    line-height: 1.55;
}
.site-admin .publication-upload-card input[type="file"] {
    grid-column: 1 / -1;
    width: 100%;
    margin: .15rem 0 0;
    padding: .65rem;
    border: 1px solid var(--border, #d6e1ea);
    border-radius: 12px;
    background: #fff;
}
.site-admin .publication-current-file {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .9rem;
    padding: .9rem 1rem;
    border: 1px solid var(--border, #d6e1ea);
    border-radius: 16px;
    background: #fff;
}
.site-admin .publication-current-file.is-managed {
    border-color: color-mix(in srgb, #15803d 28%, var(--border, #d6e1ea));
    background: color-mix(in srgb, #15803d 4%, #fff);
}
.site-admin .publication-current-file__icon {
    display: grid;
    place-items: center;
    min-width: 3rem;
    height: 2.6rem;
    padding: 0 .45rem;
    border-radius: 10px;
    background: color-mix(in srgb, var(--rru-primary, #11385c) 10%, #fff);
    color: var(--rru-primary, #11385c);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .05em;
}
.site-admin .publication-current-file__body {
    display: grid;
    gap: .2rem;
    min-width: 0;
}
.site-admin .publication-current-file__body > span {
    color: var(--muted, #64748b);
    font-size: .78rem;
}
.site-admin .publication-current-file__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    color: var(--muted, #64748b);
    font-size: .75rem;
}
.site-admin .publication-remove-file {
    align-items: flex-start;
    padding: .75rem .85rem;
    border: 1px solid color-mix(in srgb, #b42318 18%, var(--border, #d6e1ea));
    border-radius: 13px;
    background: color-mix(in srgb, #b42318 3%, #fff);
}
.site-admin .publication-remove-file span {
    display: grid;
    gap: .15rem;
}
.site-admin .publication-remove-file small {
    color: var(--muted, #64748b);
    line-height: 1.45;
}
.site-admin .publication-link-grid {
    margin-top: 1rem;
}
.site-admin .publication-link-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.65rem;
    margin: .12rem .4rem .12rem 0;
    padding: .18rem .42rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .04em;
}
.site-admin .publication-link-badge--file {
    background: #e7f6ec;
    color: #166534;
}
.site-admin .publication-link-badge--external {
    background: #e8f1fb;
    color: #1d4f91;
}
.site-admin .publication-link-badge + small,
.site-admin .publication-link-badge--external ~ small {
    display: inline;
}
.publication-file-meta {
    display: grid;
    gap: .2rem;
    margin-top: .75rem;
    padding: .65rem .75rem;
    border-radius: 12px;
    background: color-mix(in srgb, var(--rru-primary, #11385c) 5%, #fff);
    color: var(--rru-primary, #11385c);
}
.publication-file-meta small {
    color: var(--muted, #64748b);
}
.publication-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    margin-top: .85rem;
}

@media (max-width: 767px) {
    .site-admin .publication-current-file {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .site-admin .publication-current-file > .button {
        grid-column: 1 / -1;
        width: 100%;
    }
    .site-admin .publication-upload-limit {
        white-space: normal;
    }
}

@media (max-width: 479px) {
    .site-admin .publication-upload-card {
        grid-template-columns: 2.7rem minmax(0, 1fr);
        padding: .85rem;
    }
    .site-admin .publication-upload-card__icon {
        width: 2.7rem;
        height: 2.7rem;
    }
    .publication-card-actions .button {
        width: 100%;
    }
}

/* RS31.178: Security backup layout and elements */
.site-admin .security-backup-page {
    gap: 1rem;
}

.site-admin .security-backup-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: .45rem .75rem;
    border: 1px solid rgba(15, 118, 110, .2);
    border-radius: 999px;
    background: #ecfdf5;
    color: #0f766e;
    font-size: .82rem;
    font-weight: 800;
    white-space: nowrap;
}

.site-admin .security-backup-stat {
    display: grid;
    gap: .18rem;
}

.site-admin .security-backup-stat small {
    display: block;
    color: var(--muted, #64748b);
    font-size: .74rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.site-admin .security-backup-console {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 1rem;
    align-items: start;
}

.site-admin .security-backup-settings,
.site-admin .security-backup-download-card,
.site-admin .security-backup-preview-card {
    border-color: rgba(15, 118, 110, .12);
    box-shadow: 0 14px 34px rgba(15, 23, 42, .055);
}

.site-admin .security-backup-head {
    align-items: flex-start;
    gap: .8rem;
}

.site-admin .security-backup-head h2,
.site-admin .security-backup-download-card h2 {
    margin: 0;
    color: #0f172a;
    font-size: 1.08rem;
    line-height: 1.35;
}

.site-admin .security-backup-scope-group {
    display: grid;
    gap: .65rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.site-admin .security-backup-scope-group legend {
    margin: 0;
    padding: 0;
    color: #334155;
    font-weight: 800;
}

.site-admin .security-backup-scope-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.site-admin .security-backup-scope-card {
    position: relative;
    display: grid;
    grid-template-columns: 2.8rem minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    min-height: 6.4rem;
    padding: .85rem;
    border: 1px solid #dbe4ee;
    border-radius: 16px;
    background: #fff;
    color: #0f172a;
    cursor: pointer;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.site-admin .security-backup-scope-card:hover,
.site-admin .security-backup-scope-card:focus-within,
.site-admin .security-backup-scope-card.is-active,
.site-admin .security-backup-scope-card:has(input:checked) {
    border-color: rgba(15, 118, 110, .45);
    background: linear-gradient(180deg, #f0fdfa 0%, #fff 100%);
    box-shadow: 0 0 0 3px rgba(20, 184, 166, .12);
}

.site-admin .security-backup-scope-card input {
    position: absolute;
    inset: auto auto .65rem .65rem;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.site-admin .security-backup-scope-card__icon,
.site-admin .security-backup-download-card__icon {
    display: grid;
    place-items: center;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 13px;
    background: #0f766e;
    color: #fff;
    font-size: .78rem;
    font-weight: 900;
}

.site-admin .security-backup-scope-card__copy {
    display: grid;
    gap: .22rem;
    min-width: 0;
}

.site-admin .security-backup-scope-card__copy strong {
    color: #0f172a;
    line-height: 1.3;
}

.site-admin .security-backup-scope-card__copy small {
    color: var(--muted, #64748b);
    font-size: .78rem;
    line-height: 1.45;
}

.site-admin .security-backup-field-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .58fr);
    gap: .85rem;
    align-items: stretch;
}

.site-admin .security-backup-prefix-field {
    display: grid;
    gap: .35rem;
    color: #334155;
    font-weight: 800;
}

.site-admin .security-backup-prefix-field input {
    min-height: 46px;
    border-radius: 13px;
}

.site-admin .security-backup-switch {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .7rem;
    align-items: center;
    min-height: 100%;
    padding: .85rem;
    border: 1px solid #dbe4ee;
    border-radius: 16px;
    background: #f8fafc;
    color: #0f172a;
    cursor: pointer;
}

.site-admin .security-backup-switch input {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: #0f766e;
}

.site-admin .security-backup-switch span {
    display: grid;
    gap: .15rem;
}

.site-admin .security-backup-switch strong {
    line-height: 1.35;
}

.site-admin .security-backup-switch small {
    color: var(--muted, #64748b);
    font-size: .78rem;
    line-height: 1.45;
}

.site-admin .security-backup-form-actions {
    gap: .6rem;
}

.site-admin .security-backup-download-card {
    position: sticky;
    top: calc(var(--admin-topbar-height, 64px) + 1rem);
    display: grid;
    gap: .95rem;
}

.site-admin .security-backup-download-card__head {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: .8rem;
    align-items: start;
}

.site-admin .security-backup-download-card p,
.site-admin .security-backup-safety li {
    color: var(--muted, #64748b);
    line-height: 1.55;
}

.site-admin .security-backup-summary-list {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.site-admin .security-backup-summary-list div,
.site-admin .security-backup-web-metrics div {
    display: grid;
    gap: .18rem;
    padding: .65rem .75rem;
    border: 1px solid #e2e8f0;
    border-radius: 13px;
    background: #f8fafc;
}

.site-admin .security-backup-summary-list dt,
.site-admin .security-backup-web-metrics dt {
    color: #64748b;
    font-size: .76rem;
    font-weight: 800;
}

.site-admin .security-backup-summary-list dd,
.site-admin .security-backup-web-metrics dd {
    margin: 0;
    color: #0f172a;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.site-admin .security-backup-generate-form {
    justify-content: stretch;
}

.site-admin .security-backup-generate-form .button {
    width: 100%;
    justify-content: center;
}

.site-admin .security-backup-generate-form .form-hint {
    width: 100%;
    margin: 0;
    text-align: center;
}

.site-admin .security-backup-safety {
    display: grid;
    gap: .45rem;
    padding-top: .85rem;
    border-top: 1px solid #e2e8f0;
}

.site-admin .security-backup-safety h3 {
    margin: 0;
    color: #0f172a;
    font-size: .94rem;
}

.site-admin .security-backup-safety ul {
    display: grid;
    gap: .42rem;
    margin: 0;
    padding-left: 1.1rem;
}

.site-admin .security-backup-preview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 1rem;
    align-items: start;
}

.site-admin .security-backup-table-wrap {
    max-height: 520px;
    overflow: auto;
}

.site-admin .security-backup-table-wrap table {
    min-width: 100%;
}

.site-admin .security-backup-web-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin: 0;
}

.site-admin .security-backup-excluded {
    display: grid;
    gap: .55rem;
    margin-top: .9rem;
    padding-top: .85rem;
    border-top: 1px solid #e2e8f0;
}

.site-admin .security-backup-excluded strong {
    color: #334155;
}

.site-admin .security-backup-excluded div {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.site-admin .security-backup-excluded code {
    background: #f1f5f9;
    color: #334155;
}

@media (max-width: 1180px) {
    .site-admin .security-backup-console,
    .site-admin .security-backup-preview-grid {
        grid-template-columns: 1fr;
    }

    .site-admin .security-backup-download-card {
        position: static;
    }
}

@media (max-width: 860px) {
    .site-admin .security-backup-scope-grid,
    .site-admin .security-backup-field-grid,
    .site-admin .security-backup-web-metrics {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .site-admin .security-backup-page .security-hero {
        align-items: stretch;
    }

    .site-admin .security-backup-badge,
    .site-admin .security-backup-form-actions .button {
        width: 100%;
        justify-content: center;
    }

    .site-admin .security-backup-scope-card,
    .site-admin .security-backup-download-card__head {
        grid-template-columns: 1fr;
    }

    .site-admin .security-backup-scope-card__icon,
    .site-admin .security-backup-download-card__icon {
        width: 2.55rem;
        height: 2.55rem;
    }
}

/* RS31.179 Telegram Notification Channel */
.site-admin .security-notification-page {
    gap: 1rem;
}

.site-admin .security-notification-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
    gap: 1rem;
    align-items: start;
}

.site-admin .security-notification-card,
.site-admin .security-notification-side {
    display: grid;
    gap: 1rem;
}

.site-admin .security-notification-form {
    display: grid;
    gap: 1rem;
}

.site-admin .security-notification-fields {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr);
    gap: .9rem;
}

.site-admin .security-notification-fields label:first-child {
    grid-column: 1 / -1;
}

.site-admin .security-notification-fields input {
    min-height: 46px;
    border-radius: 13px;
}

.site-admin .security-notification-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.site-admin .security-notification-actions {
    justify-content: flex-start;
}

.site-admin .security-notification-side .security-action-form {
    display: grid;
    gap: .45rem;
}

.site-admin .security-notification-side .button {
    width: 100%;
    justify-content: center;
}

.site-admin .security-notification-page .data-table small {
    color: var(--muted, #64748b);
    overflow-wrap: anywhere;
}

@media (max-width: 1180px) {
    .site-admin .security-notification-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .site-admin .security-notification-fields,
    .site-admin .security-notification-options {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .site-admin .security-notification-page .security-hero {
        align-items: stretch;
    }

    .site-admin .security-notification-page .security-hero .button,
    .site-admin .security-notification-actions .button {
        width: 100%;
        justify-content: center;
    }
}


/* RS31.180 My Work Dashboard */
.my-work-hero{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:clamp(1.25rem,2.5vw,2rem);background:linear-gradient(135deg,var(--surface,#fff),color-mix(in srgb,var(--primary,#176b4d) 8%,var(--surface,#fff)));overflow:hidden}.my-work-hero h1{margin:.2rem 0 .35rem;font-size:clamp(1.65rem,3vw,2.35rem)}.my-work-hero p{margin:0;max-width:70ch;color:var(--text-muted,#64748b)}.my-work-hero__actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end}.button__count{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:currentColor;color:var(--surface,#fff);font-size:.75rem}.my-work-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.my-work-metric{display:grid;grid-template-columns:1fr auto;gap:.1rem .75rem;align-items:center;padding:1rem 1.1rem;border:1px solid var(--border,#dbe3e8);border-radius:1rem;background:var(--surface,#fff);text-decoration:none;color:inherit;box-shadow:0 8px 24px rgba(15,23,42,.04)}.my-work-metric strong{grid-row:1/3;grid-column:2;font-size:2rem;line-height:1;color:var(--primary,#176b4d)}.my-work-metric small{color:var(--text-muted,#64748b)}.my-work-metric:hover{transform:translateY(-2px);border-color:var(--primary,#176b4d)}.my-work-metric--warning{border-inline-start:4px solid #d97706}.my-work-metric--accent{border-inline-start:4px solid var(--primary,#176b4d)}.my-work-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(290px,.75fr);gap:1rem;align-items:start}.my-work-main,.my-work-sidebar{display:grid;gap:1rem;min-width:0}.my-work-panel{min-width:0}.my-work-list{display:grid;gap:.7rem}.my-work-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--border,#dbe3e8);border-radius:.85rem;background:color-mix(in srgb,var(--surface,#fff) 96%,var(--primary,#176b4d))}.my-work-item--warning{border-inline-start:4px solid #d97706}.my-work-item__body{min-width:0}.my-work-item__body h3{margin:.35rem 0;font-size:1rem}.my-work-item__body h3 a{color:inherit;text-decoration:none}.my-work-item__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;color:var(--text-muted,#64748b);font-size:.82rem}.sdg-mini-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .55rem;background:color-mix(in srgb,var(--sdg-color) 16%,transparent);border:1px solid color-mix(in srgb,var(--sdg-color) 45%,transparent);font-weight:600}.my-work-secondary-grid{align-items:stretch}.my-work-compact-list{display:grid;gap:.5rem}.my-work-compact-list>a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border-radius:.7rem;border:1px solid var(--border,#dbe3e8);color:inherit;text-decoration:none}.my-work-compact-list>a:hover{border-color:var(--primary,#176b4d);background:color-mix(in srgb,var(--primary,#176b4d) 5%,var(--surface,#fff))}.my-work-compact-list strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-work-compact-list span{flex:0 0 auto;color:var(--text-muted,#64748b)}
@media(max-width:1100px){.my-work-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.my-work-layout{grid-template-columns:1fr}.my-work-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.my-work-hero{align-items:flex-start;flex-direction:column}.my-work-hero__actions{width:100%;justify-content:stretch}.my-work-hero__actions .button{flex:1}.my-work-metrics,.my-work-sidebar{grid-template-columns:1fr}.my-work-item{align-items:stretch;flex-direction:column}.my-work-item>.button{width:100%}.my-work-secondary-grid{grid-template-columns:1fr}.my-work-compact-list>a{align-items:flex-start;flex-direction:column}.my-work-compact-list strong{white-space:normal}}

/* RS31.181 My Work Priority and Scalability */
.my-work-item__timing{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.work-age{display:inline-flex;align-items:center;min-height:1.55rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border,#dbe3e8);font-size:.75rem;font-weight:650;line-height:1.2;background:color-mix(in srgb,var(--surface,#fff) 92%,var(--primary,#176b4d));color:var(--text-muted,#64748b)}.work-age--warning{border-color:#f59e0b;background:color-mix(in srgb,#f59e0b 13%,var(--surface,#fff));color:#92400e}.work-age--danger{border-color:#dc2626;background:color-mix(in srgb,#dc2626 11%,var(--surface,#fff));color:#991b1b}.my-work-compact-list__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.35rem}.my-work-compact-list__meta .work-age{flex:0 0 auto}@media(max-width:720px){.my-work-compact-list__meta{justify-content:flex-start}.my-work-item__timing{align-items:flex-start;flex-direction:column}}

/* =========================================================
   RS31.183 Role-aware collapsible admin navigation
   - Shows only permission-approved groups and items.
   - Keeps the active group open and collapses unrelated groups.
   - Reduces visual density while preserving mobile drawer behavior.
   ========================================================= */
.site-admin .admin-menu {
    display: grid;
    gap: .38rem;
    margin-top: .7rem;
}
.site-admin .admin-menu__group {
    margin: 0;
    border: 1px solid transparent;
    border-radius: 12px;
}
.site-admin .admin-menu__group.is-open {
    background: rgba(255,255,255,.035);
    border-color: rgba(242,194,48,.10);
}
.site-admin .admin-menu__group-toggle {
    width: 100%;
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    padding: .48rem .62rem;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--admin-sidebar-muted);
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.site-admin .admin-menu__group-toggle:hover,
.site-admin .admin-menu__group-toggle:focus-visible {
    color: #fff;
    background: rgba(255,255,255,.07);
    outline: none;
}
.site-admin .admin-menu__group-toggle:focus-visible {
    box-shadow: 0 0 0 3px rgba(242,194,48,.28);
}
.site-admin .admin-menu__group-title {
    margin: 0 !important;
    font-size: .76rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: .01em;
}
.site-admin .admin-menu__group-meta {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex: 0 0 auto;
}
.site-admin .admin-menu__group-count {
    min-width: 21px;
    height: 21px;
    display: inline-grid;
    place-items: center;
    padding: 0 .3rem;
    border-radius: 999px;
    background: rgba(242,194,48,.13);
    color: var(--admin-sidebar-gold-soft);
    font-size: .68rem;
    font-weight: 700;
}
.site-admin .admin-menu__group-chevron {
    display: inline-block;
    transform: rotate(-90deg);
    transition: transform .18s ease;
    color: var(--admin-sidebar-gold-soft);
    font-size: .9rem;
}
.site-admin .admin-menu__group.is-open .admin-menu__group-chevron {
    transform: rotate(0deg);
}
.site-admin .admin-menu__items {
    display: grid;
    gap: .16rem;
    padding: .1rem .35rem .45rem;
}
.site-admin .admin-menu__items[hidden] {
    display: none !important;
}
.site-admin .admin-menu__link {
    min-height: 42px !important;
    padding: .42rem .5rem !important;
    border-radius: 10px !important;
    font-size: .92rem;
}
.site-admin .admin-menu__link-main {
    min-width: 0;
    gap: .62rem !important;
}
.site-admin .admin-menu__link-main > span:last-child {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.site-admin .admin-menu__icon {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 9px !important;
    font-size: .72rem !important;
}
.site-admin .sidebar__inner {
    padding-inline: .8rem !important;
}
.site-admin .brand--admin {
    margin-inline: .2rem;
    padding-bottom: .9rem;
}
.site-admin .sidebar__nav .admin-menu__link.is-active,
.site-admin .admin-menu__link.is-active {
    background: rgba(242,194,48,.14) !important;
    color: #fff !important;
    border-color: rgba(242,194,48,.36) !important;
    box-shadow: inset 3px 0 0 var(--admin-sidebar-gold) !important;
}
.site-admin .admin-menu__link.is-active .admin-menu__icon {
    background: var(--admin-sidebar-gold) !important;
    color: #17351f !important;
}
.site-admin .admin-menu__link.is-active .admin-menu__badge {
    background: var(--admin-sidebar-gold) !important;
    color: #17351f !important;
}
@media (max-width: 980px) {
    .site-admin .admin-menu__group-toggle { min-height: 42px; }
    .site-admin .admin-menu__link { min-height: 44px !important; }
}


/* =========================================================
   RS31.184 Admin navigation typography + topbar public shortcut
   ========================================================= */
.site-admin .admin-menu {
    gap: .44rem;
}
.site-admin .admin-menu__group {
    border-radius: 14px;
}
.site-admin .admin-menu__group-toggle {
    min-height: 42px;
    padding: .55rem .72rem;
}
.site-admin .admin-menu__group-title {
    font-size: .81rem;
    font-weight: 750;
    line-height: 1.35;
    letter-spacing: 0;
    color: rgba(248,255,248,.82);
}
.site-admin .admin-menu__group.is-open .admin-menu__group-title {
    color: #fff;
}
.site-admin .admin-menu__group-count {
    min-width: 22px;
    height: 22px;
    font-size: .7rem;
}
.site-admin .admin-menu__group-chevron {
    width: 1rem;
    text-align: center;
    font-size: .82rem;
}
.site-admin .admin-menu__items {
    gap: .2rem;
    padding: .12rem .38rem .52rem;
}
.site-admin .admin-menu__link {
    min-height: 44px !important;
    padding: .46rem .56rem !important;
    font-size: .94rem;
    line-height: 1.35;
}
.site-admin .admin-menu__link-main {
    gap: .66rem !important;
}
.site-admin .admin-menu__icon {
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    font-size: .73rem !important;
}
.site-admin .admin-menu__link[data-menu-permission]::after {
    display: none;
}
.site-admin .admin-menu__link[data-menu-permission]:hover::after,
.site-admin .admin-menu__link[data-menu-permission]:focus-visible::after,
.site-admin .admin-menu__link.is-active[data-menu-permission]::after {
    display: none;
}
.site-admin .admin-public-link {
    display: inline-flex;
    align-items: center;
    gap: .42rem;
    min-height: 38px;
    padding: .42rem .72rem;
    border: 1px solid rgba(6,78,59,.16);
    border-radius: 12px;
    background: #fff;
    color: #065f46;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 6px 16px rgba(15,23,42,.05);
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.site-admin .admin-public-link:hover,
.site-admin .admin-public-link:focus-visible {
    border-color: rgba(6,95,70,.34);
    background: #ecfdf5;
    color: #064e3b;
    transform: translateY(-1px);
    outline: none;
}
.site-admin .admin-public-link:focus-visible {
    box-shadow: 0 0 0 3px rgba(16,185,129,.18);
}
.site-admin .admin-public-link > span {
    display: inline-grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: #ecfdf5;
    color: #047857;
    font-size: .86rem;
    font-weight: 900;
}
.site-admin .admin-public-link strong {
    font-size: .84rem;
    font-weight: 750;
}
@media (max-width: 1180px) {
    .site-admin .admin-public-link strong { display: none; }
    .site-admin .admin-public-link { width: 38px; padding: .4rem; justify-content: center; }
}
@media (max-width: 980px) {
    .site-admin .admin-user {
        display: flex;
        align-items: center;
    }
    .site-admin .admin-public-link {
        width: auto;
        min-height: 34px;
        padding: .3rem .55rem;
        border-radius: 999px;
    }
    .site-admin .admin-public-link strong { display: inline; font-size: .8rem; }
    .site-admin .admin-public-link > span { width: 20px; height: 20px; border-radius: 999px; }
}
@media (max-width: 640px) {
    .site-admin .admin-user { flex-wrap: wrap; }
    .site-admin .admin-public-link { order: -2; }
    .site-admin .lang-switch--admin { order: -1; }
}

/* =========================================================
   RS31.185 Premium glass admin sidebar visual system
   - Matches the approved green glass-card reference while preserving
     permission-driven groups, single-active resolution, and topbar shortcut.
   ========================================================= */
.site-admin {
    --admin-sidebar-bg: #064f3d;
    --admin-sidebar-bg-deep: #043d31;
    --admin-sidebar-panel: rgba(255,255,255,.065);
    --admin-sidebar-panel-border: rgba(255,255,255,.11);
    --admin-sidebar-gold: #f4c84a;
    --admin-sidebar-gold-soft: #ffe79a;
    --admin-sidebar-text: #f7fbf8;
    --admin-sidebar-muted: rgba(247,251,248,.73);
}
.site-admin .sidebar {
    position: relative;
    background:
        radial-gradient(circle at 84% 5%, rgba(255,255,255,.10), transparent 21%),
        radial-gradient(circle at 15% 62%, rgba(255,255,255,.045), transparent 28%),
        linear-gradient(180deg, #07513f 0%, #064837 55%, #043d31 100%) !important;
    overflow: hidden;
}
.site-admin .sidebar::before,
.site-admin .sidebar::after {
    content: "";
    position: absolute;
    pointer-events: none;
    opacity: .12;
    filter: blur(.2px);
}
.site-admin .sidebar::before {
    inset: 0 0 auto auto;
    width: 190px;
    height: 260px;
    background:
      linear-gradient(45deg, transparent 47%, rgba(255,255,255,.42) 48% 52%, transparent 53%) 0 0/52px 52px,
      linear-gradient(-45deg, transparent 47%, rgba(255,255,255,.20) 48% 52%, transparent 53%) 12px 20px/72px 72px;
    transform: rotate(8deg) translate(26px,-34px);
}
.site-admin .sidebar::after {
    right: -55px;
    bottom: 110px;
    width: 240px;
    height: 440px;
    border: 22px solid rgba(255,255,255,.22);
    border-radius: 38% 62% 44% 56%;
    transform: rotate(-18deg);
}
.site-admin .sidebar__inner {
    position: relative;
    z-index: 1;
    padding: 1.1rem .72rem 1.5rem !important;
    background: transparent !important;
}
.site-admin .brand--admin {
    min-height: 0;
    margin: 0 .35rem .7rem;
    padding: .1rem .1rem .75rem;
    border-bottom: 1px solid rgba(244,200,74,.30);
    gap: .6rem;
}
.site-admin .brand--admin .brand__mark {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 50%;
    box-shadow: 0 0 0 2px rgba(244,200,74,.24), 0 8px 24px rgba(0,0,0,.18);
}
.site-admin .brand--admin strong {
    font-size: 1rem;
    font-weight: 750;
    letter-spacing: -.01em;
}
.site-admin .brand--admin small {
    margin-top: .12rem;
    color: #ffe8a0 !important;
    font-size: .74rem;
    font-weight: 700;
    line-height: 1.25;
    max-width: 11.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.site-admin .admin-menu {
    gap: .46rem;
    margin-top: 0;
}
.site-admin .admin-menu__group {
    padding: .22rem;
    border: 1px solid transparent;
    border-radius: 14px;
    transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.site-admin .admin-menu__group.is-open {
    background: linear-gradient(180deg, rgba(255,255,255,.072), rgba(255,255,255,.042));
    border-color: var(--admin-sidebar-panel-border);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.035), 0 10px 24px rgba(1,29,22,.08);
    backdrop-filter: blur(8px);
}
.site-admin .admin-menu__group-toggle {
    min-height: 45px;
    padding: .56rem .62rem;
    color: var(--admin-sidebar-text);
}
.site-admin .admin-menu__group-toggle:hover,
.site-admin .admin-menu__group-toggle:focus-visible {
    background: rgba(255,255,255,.055);
}
.site-admin .admin-menu__group-title {
    position: relative;
    padding-left: 2.35rem;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.25;
    color: #fff;
}
.site-admin .admin-menu__group-label {
    white-space: normal;
}
.site-admin .admin-menu__group-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 28px;
    height: 28px;
    transform: translateY(-50%);
    border: 1px solid rgba(255,255,255,.20);
    border-radius: 9px;
    background: rgba(255,255,255,.075);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.site-admin .admin-menu__group-title::after {
    content: "✦";
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-52%);
    color: var(--admin-sidebar-gold-soft);
    font-size: .72rem;
}
.site-admin .admin-menu__group:nth-child(2) .admin-menu__group-title::after { content: "↗"; font-size: .78rem; }
.site-admin .admin-menu__group:nth-child(3) .admin-menu__group-title::after { content: "□"; }
.site-admin .admin-menu__group:nth-child(4) .admin-menu__group-title::after { content: "♙"; }
.site-admin .admin-menu__group:nth-child(5) .admin-menu__group-title::after { content: "◎"; }
.site-admin .admin-menu__group:nth-child(6) .admin-menu__group-title::after { content: "◈"; }
.site-admin .admin-menu__group-count {
    min-width: 24px;
    height: 24px;
    padding: 0 .38rem;
    background: rgba(255,255,255,.13);
    color: #fff;
    font-size: .72rem;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.site-admin .admin-menu__group-chevron {
    color: rgba(255,255,255,.76);
    font-size: .88rem;
}
.site-admin .admin-menu__items {
    gap: .16rem;
    padding: .12rem .18rem .3rem;
}
.site-admin .admin-menu__link {
    min-height: 0 !important;
    align-items: flex-start !important;
    padding: .48rem .5rem !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    color: rgba(255,255,255,.90) !important;
    font-size: .9rem;
    font-weight: 500;
    line-height: 1.25;
    transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}
.site-admin .admin-menu__link:hover,
.site-admin .admin-menu__link:focus-visible {
    background: rgba(255,255,255,.075) !important;
    border-color: rgba(255,255,255,.08) !important;
    color: #fff !important;
    transform: translateX(2px);
}
.site-admin .admin-menu__link-main {
    gap: .55rem !important;
    align-items: flex-start !important;
    min-width: 0;
    flex: 1 1 auto;
}
.site-admin .admin-menu__copy {
    display: grid;
    gap: .12rem;
    min-width: 0;
}
.site-admin .admin-menu__label {
    display: block;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.25;
}
.site-admin .admin-menu__hint {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: rgba(255,255,255,.58);
    font-size: .7rem;
    font-weight: 500;
    line-height: 1.3;
}
.site-admin .admin-menu__link.is-active .admin-menu__hint,
.site-admin .admin-menu__link:hover .admin-menu__hint {
    color: rgba(255,255,255,.82);
    -webkit-line-clamp: 2;
}
.site-admin .admin-menu__icon {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 10px !important;
    background: rgba(255,255,255,.10) !important;
    color: rgba(255,255,255,.88) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.site-admin .admin-menu__icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.site-admin .admin-menu__icon svg .accent { stroke: var(--admin-sidebar-gold); }
.site-admin .admin-menu__icon svg .accent-fill { fill: var(--admin-sidebar-gold); stroke: var(--admin-sidebar-bg-deep); }
.site-admin .admin-menu__link.is-active,
.site-admin .sidebar__nav .admin-menu__link.is-active {
    background: linear-gradient(90deg, rgba(244,200,74,.34), rgba(244,200,74,.18)) !important;
    border-color: rgba(255,220,112,.82) !important;
    color: #fff !important;
    box-shadow: inset 3px 0 0 var(--admin-sidebar-gold), inset 0 1px 0 rgba(255,255,255,.18), 0 6px 18px rgba(0,0,0,.10) !important;
}
.site-admin .admin-menu__link.is-active .admin-menu__icon {
    background: rgba(255,255,255,.18) !important;
    border-color: rgba(255,232,164,.55) !important;
    color: #fff !important;
}
.site-admin .admin-menu__badge {
    min-width: 24px;
    height: 24px;
    border-radius: 999px;
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
    font-size: .7rem;
}
.site-admin .admin-menu__link.is-active .admin-menu__badge {
    background: rgba(255,255,255,.17) !important;
    color: #fff !important;
}
@media (min-width: 981px) {
    .site-admin .sidebar { width: 300px; }
    .site-admin .admin-shell { grid-template-columns: 300px minmax(0,1fr); }
}
@media (max-width: 980px) {
    .site-admin .sidebar { width: min(88vw, 310px); }
    .site-admin .sidebar__inner { padding-inline: .65rem !important; }
    .site-admin .admin-menu__group-toggle { min-height: 48px; }
    .site-admin .admin-menu__link { min-height: 50px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .site-admin .admin-menu__link,
    .site-admin .admin-menu__group { transition: none; }
}


/* =========================================================
   RS31.186 Refined outline icon family
   ========================================================= */
.site-admin .admin-menu__group-title {
    display: inline-flex;
    align-items: center;
    gap: .58rem;
    padding-left: 0;
}
.site-admin .admin-menu__group-title::before,
.site-admin .admin-menu__group-title::after { content: none !important; display: none !important; }
.site-admin .admin-menu__group-icon {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 9px;
    color: rgba(255,255,255,.93);
    background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 4px 12px rgba(0,0,0,.08);
}
.site-admin .admin-menu__group-icon svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.site-admin .admin-menu__group-icon .accent { stroke: var(--admin-sidebar-gold); }
.site-admin .admin-menu__group-icon .accent-fill { fill: var(--admin-sidebar-gold); stroke: var(--admin-sidebar-bg-deep); }
.site-admin .admin-menu__icon {
    border-radius: 9px !important;
    background: linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.07)) !important;
    border-color: rgba(255,255,255,.10) !important;
}
.site-admin .admin-menu__icon svg {
    width: 20px;
    height: 20px;
    stroke-width: 1.65;
}
.site-admin .admin-menu__link:hover .admin-menu__icon,
.site-admin .admin-menu__link:focus-visible .admin-menu__icon {
    background: linear-gradient(145deg, rgba(255,255,255,.19), rgba(255,255,255,.10)) !important;
    border-color: rgba(255,255,255,.17) !important;
}
.site-admin .admin-menu__link.is-active .admin-menu__icon {
    color: #123f34 !important;
    background: linear-gradient(145deg, #ffe184, #efbd37) !important;
    border-color: rgba(255,239,178,.95) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.48), 0 5px 14px rgba(0,0,0,.16) !important;
}
.site-admin .admin-menu__link.is-active .admin-menu__icon svg .accent {
    stroke: #0c5541;
}
.site-admin .admin-menu__link.is-active .admin-menu__icon svg .accent-fill {
    fill: #0c5541;
    stroke: #f7ca50;
}

/* =========================================================
   RS31.187 Sidebar heading ellipsis + refined disclosure icon
   ========================================================= */
.site-admin .admin-menu__group-toggle {
    min-width: 0;
}
.site-admin .admin-menu__group-title {
    display: flex;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
    padding-left: 0;
}
.site-admin .admin-menu__group-title::before,
.site-admin .admin-menu__group-title::after {
    content: none !important;
    display: none !important;
}
.site-admin .admin-menu__group-icon {
    flex: 0 0 auto;
}
.site-admin .admin-menu__group-label {
    display: block;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.site-admin .admin-menu__group-meta {
    margin-left: .45rem;
}
.site-admin .admin-menu__group-chevron {
    width: 26px;
    height: 26px;
    display: inline-grid;
    place-items: center;
    flex: 0 0 26px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.055);
    color: rgba(255,255,255,.86);
    transform: none;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.site-admin .admin-menu__group-chevron svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: rotate(-90deg);
    transition: transform .2s ease;
}
.site-admin .admin-menu__group.is-open .admin-menu__group-chevron {
    background: rgba(242,194,48,.13);
    border-color: rgba(242,194,48,.28);
    color: var(--admin-sidebar-gold-soft);
    transform: none;
}
.site-admin .admin-menu__group.is-open .admin-menu__group-chevron svg {
    transform: rotate(0deg);
}
.site-admin .admin-menu__group-toggle:hover .admin-menu__group-chevron,
.site-admin .admin-menu__group-toggle:focus-visible .admin-menu__group-chevron {
    border-color: rgba(242,194,48,.34);
    background: rgba(242,194,48,.12);
    color: #fff4bd;
}
@media (max-width: 420px) {
    .site-admin .admin-menu__group-toggle { padding-inline: .52rem; }
    .site-admin .admin-menu__group-meta { gap: .26rem; margin-left: .3rem; }
    .site-admin .admin-menu__group-chevron { width: 24px; height: 24px; flex-basis: 24px; }
}

/* RS31 Role studio editor (full replace of roles form UX) */
.role-studio {
    --rs-ink: #0f172a;
    --rs-muted: #475569;
    --rs-line: rgba(15, 23, 42, .1);
    --rs-green: #0b5d3b;
    --rs-green-soft: #ecf7f1;
    --rs-gold: #c9a227;
    display: grid;
    gap: 1.1rem;
    color: var(--rs-ink);
}
.role-studio__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(220px, .7fr);
    gap: 1rem;
    align-items: stretch;
    padding: 1.15rem 1.25rem;
    border: 1px solid var(--rs-line);
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0%, rgba(11, 93, 59, .12), transparent 42%),
        linear-gradient(135deg, #f7fbf8 0%, #fff 48%, #f4f7f5 100%);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .06);
}
.role-studio__back {
    display: inline-flex;
    margin-bottom: .55rem;
    color: var(--rs-green);
    font-weight: 700;
    font-size: .9rem;
    text-decoration: none;
}
.role-studio__back:hover { text-decoration: underline; }
.role-studio__eyebrow {
    margin: 0 0 .35rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.role-studio__hero h1 {
    margin: 0;
    font-size: clamp(1.45rem, 1.1vw + 1.1rem, 2rem);
    line-height: 1.2;
    letter-spacing: -.02em;
}
.role-studio__lead {
    margin: .55rem 0 0;
    max-width: 58ch;
    color: var(--rs-muted);
    line-height: 1.55;
}
.role-studio__identity-chip {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: .85rem;
    padding: .4rem .7rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .85);
    border: 1px solid var(--rs-line);
}
.role-studio__identity-chip strong { font-size: .95rem; }
.role-studio__identity-chip code {
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    padding: .15rem .5rem;
    font-size: .78rem;
}
.role-studio__hero-aside {
    display: grid;
    gap: .65rem;
    align-content: start;
    justify-items: stretch;
}
.role-studio__stat {
    display: grid;
    gap: .2rem;
    padding: .75rem .85rem;
    border-radius: 18px;
    border: 1px solid rgba(11, 93, 59, .16);
    background: rgba(255, 255, 255, .92);
}
.role-studio__stat span {
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}
.role-studio__stat strong {
    color: var(--rs-green);
    font-size: 1.45rem;
    line-height: 1;
}
.role-studio__stat--muted {
    border-color: var(--rs-line);
}
.role-studio__stat--muted strong { color: #0f172a; }
.role-studio__status {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 36px;
    border-radius: 999px;
    font-size: .84rem;
    font-weight: 800;
}
.role-studio__status.is-on {
    background: var(--rs-green-soft);
    color: var(--rs-green);
}
.role-studio__status.is-off {
    background: #f1f5f9;
    color: #64748b;
}
.role-studio__form { display: grid; gap: 1rem; }
.role-studio__layout {
    display: grid;
    grid-template-columns: minmax(280px, .92fr) minmax(0, 1.4fr);
    gap: 1rem;
    align-items: start;
}
.role-studio__identity,
.role-studio__permissions {
    border: 1px solid var(--rs-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(15, 23, 42, .055);
    padding: 1.1rem 1.15rem 1.2rem;
}
.role-studio__identity {
    position: sticky;
    top: calc(var(--admin-topbar-height, 64px) + .65rem);
}
.role-studio__panel-head h2 {
    margin: 0 0 .3rem;
    font-size: 1.12rem;
}
.role-studio__panel-head p {
    margin: 0;
    color: var(--rs-muted);
    line-height: 1.5;
    font-size: .92rem;
}
.role-studio__panel-head--perm {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    padding-bottom: .9rem;
    border-bottom: 1px solid var(--rs-line);
}
.role-studio__perm-stats {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}
.role-studio__perm-stats span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--rs-line);
    color: #475569;
    font-size: .82rem;
    font-weight: 700;
    white-space: nowrap;
}
.role-studio__perm-stats strong { color: var(--rs-green); }
.role-studio__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
}
.role-studio__field {
    display: grid;
    gap: .35rem;
    min-width: 0;
    font-weight: 700;
    color: #334155;
}
.role-studio__field em {
    color: #b45309;
    font-style: normal;
}
.role-studio__field input,
.role-studio__field textarea {
    width: 100%;
    border: 1px solid #cbd5e1;
    border-radius: 14px;
    min-height: 44px;
    padding: .65rem .8rem;
    font: inherit;
    font-weight: 500;
    color: var(--rs-ink);
    background: #fff;
}
.role-studio__field textarea { min-height: 96px; resize: vertical; }
.role-studio__field small {
    color: #64748b;
    font-weight: 500;
    line-height: 1.4;
}
.role-studio__field--wide { grid-column: 1 / -1; }
.role-studio__switch {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    margin-top: 1rem;
    padding: .85rem .9rem;
    border-radius: 16px;
    border: 1px solid rgba(11, 93, 59, .14);
    background: var(--rs-green-soft);
    cursor: pointer;
}
.role-studio__switch input {
    width: 1.15rem;
    height: 1.15rem;
    margin-top: .15rem;
    accent-color: var(--rs-green);
}
.role-studio__switch strong {
    display: block;
    color: var(--rs-ink);
}
.role-studio__switch small {
    display: block;
    margin-top: .25rem;
    color: var(--rs-muted);
    font-weight: 500;
    line-height: 1.45;
}
.role-studio__command {
    position: sticky;
    top: calc(var(--admin-topbar-height, 64px) + .5rem);
    z-index: 8;
    display: flex;
    justify-content: space-between;
    gap: .85rem;
    align-items: end;
    margin: 1rem 0;
    padding: .8rem;
    border: 1px solid var(--rs-line);
    border-radius: 18px;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(12px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .07);
}
.role-studio__search {
    display: grid;
    gap: .3rem;
    min-width: min(360px, 100%);
    font-weight: 700;
    color: #334155;
}
.role-studio__search input {
    min-height: 42px;
    border-radius: 14px;
    border: 1px solid #cbd5e1;
    padding: .55rem .75rem;
}
.role-studio__command-actions {
    display: flex;
    gap: .45rem;
    align-items: center;
    flex-wrap: wrap;
}
.role-studio__filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .65rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid var(--rs-line);
    font-weight: 700;
    color: #334155;
    cursor: pointer;
}
.role-studio__perm-shell {
    display: grid;
    grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
}
.role-studio__rail {
    position: sticky;
    top: calc(var(--admin-topbar-height, 64px) + 5.5rem);
    display: grid;
    gap: .4rem;
    max-height: calc(100vh - 12rem);
    overflow: auto;
    padding-right: .15rem;
}
.role-studio__rail-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .55rem;
    align-items: center;
    padding: .55rem .6rem;
    border-radius: 14px;
    border: 1px solid transparent;
    color: inherit;
    text-decoration: none;
    background: #f8fafc;
}
.role-studio__rail-item:hover,
.role-studio__rail-item.is-active {
    border-color: rgba(11, 93, 59, .22);
    background: var(--rs-green-soft);
}
.role-studio__rail-mark,
.role-studio__module-mark {
    display: inline-grid;
    place-items: center;
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 10px;
    background: #0b5d3b;
    color: #fff;
    font-weight: 800;
    font-size: .85rem;
}
.role-studio__rail-copy {
    min-width: 0;
    display: grid;
    gap: .1rem;
}
.role-studio__rail-copy strong {
    font-size: .86rem;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.role-studio__rail-copy small {
    color: #64748b;
    font-size: .75rem;
}
.role-studio__modules {
    display: grid;
    gap: .7rem;
}
.role-studio__module {
    border: 1px solid var(--rs-line);
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
}
.role-studio__module-summary {
    list-style: none;
    cursor: pointer;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    padding: .85rem .95rem;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}
.role-studio__module-summary::-webkit-details-marker { display: none; }
.role-studio__module-title {
    display: grid;
    gap: .15rem;
    min-width: 0;
}
.role-studio__module-title strong {
    font-size: .98rem;
}
.role-studio__module-title small {
    color: #64748b;
    line-height: 1.4;
}
.role-studio__module-count {
    border-radius: 999px;
    background: rgba(11, 93, 59, .1);
    color: var(--rs-green);
    padding: .3rem .65rem;
    font-size: .8rem;
    font-weight: 800;
    white-space: nowrap;
}
.role-studio__module-body {
    border-top: 1px solid var(--rs-line);
    padding: .75rem .85rem 1rem;
}
.role-studio__module-tools {
    display: flex;
    gap: .45rem;
    flex-wrap: wrap;
    margin-bottom: .7rem;
}
.role-studio__rows {
    display: grid;
    gap: .45rem;
}
.role-studio__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .7rem;
    align-items: center;
    padding: .7rem .75rem;
    border: 1px solid var(--rs-line);
    border-radius: 14px;
    background: #f8fafc;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.role-studio__row:hover {
    border-color: rgba(11, 93, 59, .25);
}
.role-studio__row.is-on {
    background: #f0fdf7;
    border-color: rgba(11, 93, 59, .28);
}
.role-studio__row-check input {
    width: 1.1rem;
    height: 1.1rem;
    accent-color: var(--rs-green);
}
.role-studio__row-main {
    min-width: 0;
    display: grid;
    gap: .2rem;
}
.role-studio__row-main strong {
    font-size: .92rem;
    line-height: 1.3;
}
.role-studio__row-main code {
    width: max-content;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 999px;
    background: #e2e8f0;
    color: #334155;
    padding: .12rem .45rem;
    font-size: .74rem;
}
.role-studio__row-action {
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--rs-line);
    color: #475569;
    padding: .28rem .55rem;
    font-size: .76rem;
    font-weight: 800;
    white-space: nowrap;
}
.role-studio__empty {
    margin: 0;
    padding: 1rem;
    border-radius: 14px;
    background: #f8fafc;
    color: #64748b;
    text-align: center;
}
.role-studio__savebar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .95rem 1.1rem;
    border: 1px solid rgba(11, 93, 59, .18);
    border-radius: 20px;
    background: linear-gradient(135deg, #0b5d3b 0%, #0f766e 100%);
    color: #fff;
    box-shadow: 0 18px 40px rgba(11, 93, 59, .28);
}
.role-studio__savebar strong { display: block; }
.role-studio__savebar p {
    margin: .2rem 0 0;
    color: rgba(255, 255, 255, .86);
}
.role-studio__savebar .button {
    background: #fff;
    color: #0b5d3b;
    border-color: transparent;
    font-weight: 800;
}
@media (max-width: 1100px) {
    .role-studio__layout { grid-template-columns: 1fr; }
    .role-studio__identity { position: static; }
    .role-studio__perm-shell { grid-template-columns: 1fr; }
    .role-studio__rail {
        position: static;
        max-height: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(160px, 200px);
        overflow-x: auto;
        padding-bottom: .25rem;
    }
}
@media (max-width: 760px) {
    .role-studio__hero,
    .role-studio__panel-head--perm,
    .role-studio__command,
    .role-studio__savebar,
    .role-studio__fields {
        grid-template-columns: 1fr;
        display: grid;
    }
    .role-studio__command { align-items: stretch; }
    .role-studio__command-actions .button { flex: 1 1 auto; }
    .role-studio__row {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .role-studio__row-action {
        grid-column: 2;
        width: max-content;
    }
}

/* Role edit — 1A compact list (sticky tools/save, id strip, switches) */
.role-edit { display: grid; gap: .85rem; max-width: 1040px; }
.role-edit__hero {
    margin: 0;
}
.role-edit__hero .admin-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}
.role-edit__hero code {
    display: inline-flex;
    padding: .1rem .45rem;
    border-radius: 999px;
    background: rgba(11, 93, 59, .08);
    color: #0b5d3b;
    font-size: .85em;
}
.role-edit__count {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: #e7f4ec;
    color: #0b5d3b;
    font-size: .88rem;
    font-weight: 800;
}
.role-edit__count strong { color: #0b5d3b; }
.role-edit__badge {
    display: inline-flex;
    padding: .35rem .7rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #64748b;
    font-size: .84rem;
    font-weight: 700;
}
.role-edit__badge.is-on {
    background: #ecf7f1;
    color: #0b5d3b;
}
.role-edit__form { display: grid; gap: .85rem; }
.role-edit__id {
    display: grid;
    grid-template-columns: .9fr 1.3fr 1.3fr .7fr;
    gap: .55rem;
    padding: .75rem .85rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.role-edit__id label {
    display: grid;
    gap: .2rem;
    min-width: 0;
    font-size: .78rem;
    font-weight: 700;
    color: #475569;
}
.role-edit__id input {
    width: 100%;
    min-height: 36px;
    border: 1px solid #c9d5cd;
    border-radius: 9px;
    padding: .35rem .55rem;
    font: inherit;
    font-weight: 500;
}
.role-edit__id input:disabled {
    background: #f1f5f3;
    color: #64748b;
}
.role-edit__id-active .role-edit__chk,
.role-edit__chk {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 36px;
    font-weight: 600;
    color: #0f172a;
    font-size: .9rem;
}
.role-edit__chk input { accent-color: #0b5d3b; width: 1.05rem; height: 1.05rem; }
.role-edit__more {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 12px;
    background: #fff;
    padding: .35rem .85rem .7rem;
}
.role-edit__more summary {
    cursor: pointer;
    font-weight: 700;
    color: #334155;
    padding: .45rem 0;
    list-style: none;
}
.role-edit__more summary::-webkit-details-marker { display: none; }
.role-edit__more-grid {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: .65rem;
    padding-bottom: .35rem;
}
.role-edit__more-grid label {
    display: grid;
    gap: .25rem;
    font-weight: 700;
    font-size: .86rem;
    color: #334155;
}
.role-edit__more-grid input,
.role-edit__more-grid textarea {
    width: 100%;
    min-height: 38px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: .45rem .65rem;
    font: inherit;
}
.role-edit__wide { grid-column: 1 / -1; }
.role-edit__card {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 14px;
    background: #fff;
    padding: .85rem;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .06);
}
.role-edit__tools {
    position: sticky;
    top: .65rem;
    z-index: 12;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    margin: -.2rem -.2rem .7rem;
    padding: .55rem .65rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 12px;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: blur(6px);
}
.role-edit__tools input[type="search"] {
    flex: 1 1 220px;
    min-height: 40px;
    border: 1px solid #c9d5cd;
    border-radius: 10px;
    padding: .45rem .7rem;
}
.role-edit__check {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: 600;
    color: #334155;
    white-space: nowrap;
}
.role-edit__groups { display: grid; gap: .2rem; }
.role-edit__group {
    border-top: 1px solid rgba(15, 23, 42, .08);
    padding-top: .5rem;
    margin-top: .35rem;
}
.role-edit__group:first-child {
    border-top: 0;
    margin-top: 0;
    padding-top: 0;
}
.role-edit__ghead {
    display: flex;
    justify-content: space-between;
    gap: .65rem;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: .25rem;
}
.role-edit__gtitle strong {
    display: block;
    font-size: .92rem;
    color: #0f172a;
}
.role-edit__gbar {
    margin-top: .3rem;
    height: 4px;
    max-width: 180px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}
.role-edit__gbar i {
    display: block;
    height: 100%;
    background: #0b5d3b;
}
.role-edit__gmeta {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .3rem;
    align-items: center;
}
.role-edit__gcount {
    font-size: .78rem;
    font-weight: 800;
    color: #0b5d3b;
    background: #e7f4ec;
    padding: .15rem .45rem;
    border-radius: 999px;
}
.role-edit__list { display: grid; gap: 0; }
.role-edit__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .55rem;
    align-items: center;
    padding: .38rem .45rem;
    border-radius: 8px;
    border-bottom: 1px solid rgba(15, 23, 42, .05);
    cursor: pointer;
}
.role-edit__item:last-child { border-bottom: 0; }
.role-edit__item:hover { background: rgba(11, 93, 59, .04); }
.role-edit__item.is-on { background: rgba(11, 93, 59, .06); }
.role-edit__item-text strong {
    display: block;
    color: #0f172a;
    font-size: .88rem;
    line-height: 1.25;
}
.role-edit__item-text small {
    display: block;
    margin-top: .1rem;
    color: #64748b;
    font-size: .72rem;
}
.role-edit__switch {
    position: relative;
    width: 40px;
    height: 22px;
    flex: 0 0 auto;
}
.role-edit__switch input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}
.role-edit__switch i {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: #cbd5e1;
    transition: .15s ease;
}
.role-edit__switch i::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    transition: .15s ease;
}
.role-edit__switch input:checked + i { background: #0b5d3b; }
.role-edit__switch input:checked + i::after { transform: translateX(18px); }
.role-edit__switch input:focus-visible + i { outline: 2px solid #7dd3a0; outline-offset: 2px; }
.role-edit__empty {
    margin: .5rem 0 0;
    color: #64748b;
    text-align: center;
}
.role-edit__save {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    position: sticky;
    bottom: .65rem;
    z-index: 20;
    padding: .65rem .8rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 14px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}
.role-edit__save .role-edit__count { margin-right: auto; }
@media (max-width: 900px) {
    .role-edit__id { grid-template-columns: 1fr 1fr; }
    .role-edit__more-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .role-edit__id { grid-template-columns: 1fr; }
}

/* RS31 project-level Core Team review + batch approve */
.review-goal-queue--project-level .review-project-batch{display:grid;gap:.85rem}
.review-project-batch__bar{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:flex-start;
  gap:.75rem 1rem;
  padding:.7rem .85rem;
  border:1px solid rgba(15,23,42,.1);
  border-radius:14px;
  background:#fff;
}
.review-project-batch__select-all{
  display:inline-flex !important;
  align-items:center;
  gap:.45rem;
  margin:0;
  padding:.35rem .55rem .35rem .4rem !important;
  min-height:34px;
  border:1px solid rgba(15,23,42,.1);
  border-radius:10px;
  background:#f8fafc;
  font-size:.88rem;
  font-weight:700;
  color:#334155;
  white-space:nowrap;
  cursor:pointer;
}
.review-project-batch__select-all::before{display:none !important;content:none !important}
.review-project-batch__select-all input[type="checkbox"],
.review-goal-queue--project-level .data-table input[type="checkbox"]{
  flex:0 0 auto !important;
  width:1rem !important;
  height:1rem !important;
  min-width:1rem !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  accent-color:var(--rru-primary,#0f766e);
}
.review-project-batch__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:.55rem .7rem;
  flex:1 1 auto;
  min-width:0;
}
.review-project-batch__field{
  display:grid !important;
  gap:.2rem;
  margin:0;
  padding:0 !important;
  font-size:.78rem;
  font-weight:700;
  color:#64748b;
}
.review-project-batch__field::before{display:none !important;content:none !important}
.review-project-batch__field select,
.review-project-batch__comment input{
  width:auto;
  min-width:9.5rem;
  max-width:100%;
  min-height:34px !important;
  height:34px;
  padding:.3rem .55rem;
  border-radius:10px;
  font-size:.9rem;
  font-weight:600;
  color:#1f2937;
}
.review-project-batch__comment{flex:1 1 14rem;min-width:min(14rem,100%)}
.review-project-batch__comment input{width:100%;min-width:0}
.review-project-batch__actions .button{
  min-height:34px;
  white-space:nowrap;
  align-self:flex-end;
}
.review-project-goal-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .3rem}
.goal-review-badge--stack,
.review-project-goal-chips .goal-review-badge{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.08rem;
  border-radius:12px;
  padding:.32rem .55rem;
  line-height:1.2;
  margin:0;
}
.goal-review-badge em{font-style:normal;font-size:.7rem;font-weight:700;opacity:.92}
.review-project-all-summary{display:grid;gap:.65rem;margin:0 0 1rem;padding:.85rem;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:#fff}
.review-project-all-summary__meta{display:grid;gap:.15rem}
.review-project-all-summary__meta strong{color:#0f172a}
.review-project-all-summary__meta small{color:#64748b;line-height:1.4}
.review-decision-panel-v2--project-level .button--review{font-weight:800}
.review-goal-queue--project-level .data-table th:first-child,
.review-goal-queue--project-level .data-table td:first-child{width:2.5rem;text-align:center;vertical-align:middle}
@media(max-width:760px){
  .review-project-batch__bar{display:grid;gap:.65rem}
  .review-project-batch__select-all{width:max-content;white-space:normal}
  .review-project-batch__actions{width:100%}
  .review-project-batch__field,
  .review-project-batch__actions .button{width:100%}
  .review-project-batch__field select,
  .review-project-batch__comment input{width:100%;min-width:0}
}

/* AI-assisted SDG tag recommendation panel */
.project-ai-sdg{display:grid;gap:.65rem;margin:0 0 1rem;padding:.85rem .95rem;border:1px solid rgba(15,23,42,.1);border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc);transition:border-color .2s ease,box-shadow .2s ease}
.project-ai-sdg.is-analyzing{border-color:rgba(37,99,235,.35);box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.project-ai-sdg__head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.project-ai-sdg__head h4{margin:0 0 .2rem;font-size:1rem;color:#0f172a}
.project-ai-sdg__head p{margin:0;color:#64748b;font-size:.9rem;line-height:1.45}
.project-ai-sdg__meta{display:grid;gap:.1rem;font-size:.78rem;color:#64748b;text-align:right}
.project-ai-sdg__meta strong{color:#0f766e}
.project-ai-sdg__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.project-ai-sdg__btn{font-weight:700}
.project-ai-sdg__btn--analyze{background:#2563eb;border-color:#2563eb;color:#fff}
.project-ai-sdg__btn--analyze:hover{background:#1d4ed8;border-color:#1d4ed8;color:#fff}
.project-ai-sdg__btn--analyze:disabled{opacity:.7;cursor:wait}
.project-ai-sdg__btn--cancel{background:#fff;border-color:#f59e0b;color:#b45309}
.project-ai-sdg__btn--cancel:hover{background:#fffbeb;border-color:#d97706;color:#92400e}
.project-ai-sdg__btn--apply{background:#059669;border-color:#059669;color:#fff}
.project-ai-sdg__btn--apply:hover{background:#047857;border-color:#047857;color:#fff}
.project-ai-sdg__btn--reject{background:#fff;border-color:#cbd5e1;color:#64748b}
.project-ai-sdg__btn--reject:hover{background:#f8fafc;border-color:#94a3b8;color:#334155}
.project-ai-sdg__hint{color:#64748b;line-height:1.4}
.project-ai-sdg__status{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border-radius:10px;font-size:.9rem;font-weight:600}
.project-ai-sdg__status--neutral{background:#f1f5f9;color:#334155}
.project-ai-sdg__status--success{background:#ecfdf5;color:#047857}
.project-ai-sdg__status--warning{background:#fffbeb;color:#b45309}
.project-ai-sdg__status--danger{background:#fef2f2;color:#b91c1c}
.project-ai-sdg__status.is-loading{background:linear-gradient(90deg,#eff6ff,#dbeafe,#eff6ff);background-size:200% 100%;animation:project-ai-sdg-shimmer 1.2s linear infinite;color:#1d4ed8}
.project-ai-sdg__spinner{flex:0 0 auto;width:1rem;height:1rem;border:2px solid rgba(37,99,235,.25);border-top-color:#2563eb;border-radius:999px;animation:project-ai-sdg-spin .7s linear infinite}
.project-ai-sdg__status-text{min-width:0}
@keyframes project-ai-sdg-spin{to{transform:rotate(360deg)}}
@keyframes project-ai-sdg-shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.project-ai-sdg__results{display:grid;gap:.65rem}
.project-ai-sdg__card{display:grid;gap:.55rem;padding:.75rem .8rem;border:1px solid rgba(15,23,42,.1);border-left:5px solid var(--goal-color,#0f766e);border-radius:12px;background:#fff}
.project-ai-sdg__card input{width:1rem!important;height:1rem!important;min-height:0!important;margin:.15rem 0 0;padding:0;flex:0 0 auto}
.project-ai-sdg__goalcheck{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:flex-start;cursor:pointer}
.project-ai-sdg__card strong{display:block;color:#0f172a}
.project-ai-sdg__score{display:block;margin:.2rem 0;font-size:.84rem;font-weight:700;color:#0f766e}
.project-ai-sdg__card small{display:block;color:#64748b;line-height:1.4;margin-top:.15rem}
.project-ai-sdg__targets{margin-top:.15rem;padding-left:1.65rem}
.project-ai-sdg__targets em{display:block;font-style:normal;font-size:.78rem;font-weight:700;color:#475569;margin-bottom:.25rem}
.project-ai-sdg__targets code{font-weight:700;color:#0f766e}
.project-ai-sdg__subcheck{display:grid;grid-template-columns:auto 1fr;gap:.45rem;align-items:flex-start;margin:0 0 .28rem;padding:.28rem .4rem;border-radius:8px;background:#f8fafc;cursor:pointer;font-size:.86rem;color:#334155;line-height:1.35}
.project-ai-sdg__subcheck:hover{background:#f1f5f9}
.project-ai-sdg__subcheck input:disabled+span{opacity:.45}
@media(max-width:640px){
  .project-ai-sdg__meta{text-align:left}
  .project-ai-sdg__actions .button{flex:1 1 auto}
}
/* =========================================================
   Flat layout — project editor (ui-layout-structure.mdc)
   Page → Section → one Card → content (gap/dividers, no nested cards).
   Exception: feed result/selected/preview items, SDG goal panels, image tiles.
   Prefix .site-admin so these beat earlier component cards.
   ========================================================= */

.site-admin .project-editor-v2 .project-facebook-feed{
    display:grid;
    gap:.85rem;
    min-width:0;
}
.site-admin .project-editor-v2 .project-facebook-feed__head{margin:0;}
.site-admin .project-editor-v2 .project-facebook-feed__source{
    min-width:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    text-align:right;
}
.site-admin .project-editor-v2 .project-facebook-feed__rules{margin:0;}
.site-admin .project-editor-v2 .project-facebook-feed__active-rules{
    margin:0;
    padding:.35rem 0 0;
    border:0;
    border-top:1px solid rgba(22,163,74,.2);
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .project-facebook-feed__toolbar{
    margin:0;
    padding:.35rem 0 0;
    border:0;
    border-top:1px solid rgba(22,163,74,.16);
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .project-fb-news-template{
    margin:0;
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
    overflow:visible;
}
.site-admin .project-editor-v2 .project-fb-news-template > summary{padding:.55rem 0;}
.site-admin .project-editor-v2 .project-fb-news-template__body{padding:0 0 .15rem;}
.site-admin .project-editor-v2 .project-fb-news-template__flow{
    padding:.15rem 0;
    border:0;
    border-radius:0;
    background:transparent;
}
.site-admin .project-editor-v2 .project-fb-news-template__tagbar{
    padding:.35rem 0 0;
    border:0;
    border-top:1px dashed rgba(22,163,74,.22);
    border-radius:0;
    background:transparent;
}
.site-admin .project-editor-v2 .project-facebook-feed-core{
    margin:.55rem 0 0;
    border:1px solid rgba(15,23,42,.1);
    border-radius:12px;
    background:#fff;
    overflow:hidden;
}
.site-admin .project-editor-v2 .project-facebook-feed-core summary{
    padding:.72rem .85rem;
}
.site-admin .project-editor-v2 .project-facebook-feed-include__suggest{
    padding:.35rem 0 0;
    border:0;
    border-radius:0;
    background:transparent;
}
.site-admin .project-editor-v2 .project-facebook-feed__multi{
    margin:0;
    padding:.55rem 0 0;
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .project-facebook-feed__batch{margin:0;}
.site-admin .project-editor-v2 .project-facebook-feed__status{margin:0;}
.site-admin .project-editor-v2 .project-facebook-feed__results{margin:0;min-width:0;}

.site-admin .project-editor-v2 .editor-section{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    min-width:0;
}
.site-admin .project-editor-v2 .editor-compact-details{
    margin:0;
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
    overflow:visible;
}
.site-admin .project-editor-v2 .editor-compact-details[open] > summary{background:transparent;}
.site-admin .project-editor-v2 .language-note--lean{margin:.75rem 1rem 0 !important;}
.site-admin .project-editor-v2 .goal-selector-v2--lean{
    margin:0;
    padding:1rem;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 #project-sdgs .goal-selector-v2--simple{
    margin:0;
    padding:1rem;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .project-title-workspace,
.site-admin .project-editor-v2 .project-title-workspace--simple{
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .project-title-workspace__tools{
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
    overflow:visible;
}
.site-admin .project-editor-v2 .project-title-workspace__master-grid{
    background:transparent;
}
.site-admin .project-editor-v2 .rru-3dgf-project-lookup{
    margin-top:.35rem;
    padding:.65rem 0 0;
    border:0;
    border-top:1px solid rgba(14,116,144,.16);
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .evidence-builder--lean{
    margin:0;
    padding:1rem;
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .cover-upload-v2--lean{
    margin:0;
    padding:1rem;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
}
.site-admin .project-editor-v2 .project-image-manager--v2{
    margin:0;
    padding:1rem;
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
    box-shadow:none !important;
}

.site-admin .project-ai-translate__meta{
    min-width:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    text-align:right;
}
.site-admin .project-ai-translate__advanced{
    border:0;
    border-top:1px solid rgba(15,23,42,.08);
    border-radius:0;
    background:transparent;
}

.site-admin .project-editor-v2 .editor-mini-stats{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(0,1fr));
    gap:.65rem;
}
.site-admin .project-editor-v2 .editor-mini-stats > div{
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    padding:.15rem 0;
}

@media (max-width:1024px){
    .site-admin .project-editor-v2 .project-facebook-feed__head{grid-template-columns:1fr;}
    .site-admin .project-editor-v2 .project-facebook-feed__source{text-align:left;}
    .site-admin .project-ai-translate__head{grid-template-columns:1fr;}
    .site-admin .project-ai-translate__meta{text-align:left;}
}
@media (max-width:768px){
    .site-admin .project-editor-v2 .project-facebook-feed__toolbar{align-items:stretch;}
    .site-admin .project-editor-v2 .project-facebook-feed__multi{flex-direction:column;align-items:stretch;}
    .site-admin .project-editor-v2 .project-facebook-feed__multi-actions{justify-content:stretch;}
    .site-admin .project-editor-v2 .project-facebook-feed__multi-actions .button{flex:1 1 auto;justify-content:center;}
    .site-admin .project-editor-v2 .project-facebook-feed__filters label{min-width:0;flex:1 1 140px;}
}
@media (max-width:390px){
    .site-admin .project-editor-v2 .project-facebook-feed{padding:.85rem;border-radius:16px;}
    .site-admin .project-editor-v2 .editor-grid--lean{padding:.85rem;}
    .site-admin .project-editor-v2 .project-facebook-feed-result{grid-template-columns:1fr;align-items:stretch;}
    .site-admin .project-editor-v2 .project-facebook-feed-result__media{width:100%;height:140px;}
    .site-admin .project-editor-v2 .project-facebook-feed-result__actions{justify-content:stretch;}
    .site-admin .project-editor-v2 .project-facebook-feed-result__actions .button{flex:1 1 auto;}
}

/* Project detail hero — full-width title band (no glass card, no truncated h1) */
.project-detail-hero-v2--band{
    min-height:clamp(360px,48vh,580px)!important;
    align-items:end;
}
.project-detail-hero-v2--band .project-detail-hero-v2__overlay{
    background:
        linear-gradient(180deg,rgba(3,18,14,.18) 0%,rgba(3,18,14,.22) 38%,rgba(3,18,14,.78) 72%,rgba(3,18,14,.92) 100%),
        radial-gradient(circle at 78% 10%,rgba(242,194,48,.16),transparent 20rem)!important;
}
.project-detail-hero-v2--band .project-detail-hero-v2__inner{
    width:min(100% - clamp(1rem,3vw,2rem),1180px)!important;
    max-width:1180px!important;
    margin-inline:auto;
    display:grid;
    gap:1rem;
    padding-top:clamp(3.5rem,10vh,6rem)!important;
    padding-bottom:clamp(1.5rem,4vh,2.75rem)!important;
}
.project-detail-hero-v2--band .project-detail-hero-v2__content{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    backdrop-filter:none!important;
    box-shadow:none!important;
    display:grid;
    gap:.7rem;
}
.project-detail-hero-v2--band .eyebrow{
    margin:0;
    color:#86efac;
    font-size:.88rem;
    font-weight:750;
    letter-spacing:.02em;
}
.project-detail-hero-v2--band h1{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    color:#fff!important;
    font-size:clamp(1.28rem,1.1rem + 1.4vw,2.15rem)!important;
    font-weight:750!important;
    line-height:1.38!important;
    letter-spacing:0!important;
    text-align:left!important;
    text-wrap:wrap!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    -webkit-line-clamp:unset!important;
    line-clamp:unset!important;
    -webkit-box-orient:initial!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    hyphens:none!important;
    text-shadow:0 2px 18px rgba(0,0,0,.35);
}
.project-detail-hero-v2--band .project-detail-hero-v2__summary{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    color:rgba(255,255,255,.9)!important;
    font-size:clamp(.95rem,1.1vw,1.08rem)!important;
    font-weight:500!important;
    line-height:1.65!important;
    text-align:left!important;
}
.project-detail-hero-v2--band .project-detail-hero-v2__meta{
    margin-top:.15rem;
    gap:.5rem;
}
.project-detail-hero-v2--band .project-detail-hero-v2__meta span{
    background:rgba(0,0,0,.28);
    border-color:rgba(255,255,255,.22);
}
.project-detail-hero-v2--band .project-goal-clicks{
    margin-top:.15rem;
}
@media (max-width:760px){
    .project-detail-hero-v2--band{
        min-height:auto!important;
    }
    .project-detail-hero-v2--band .project-detail-hero-v2__inner{
        padding-top:2.6rem!important;
        padding-bottom:1.35rem!important;
        gap:.85rem;
    }
    .project-detail-hero-v2--band h1{
        font-size:clamp(1.2rem,5.4vw,1.55rem)!important;
        line-height:1.4!important;
    }
}
