:root {
    --ink: #071b2b;
    --ink-2: #12334a;
    --paper: #f3f7f7;
    --white: #ffffff;
    --muted: #60717d;
    --line: #d9e2e5;
    --line-dark: #244255;
    --green: #21b573;
    --green-dark: #087d4b;
    --green-soft: #ddf8eb;
    --red: #df5158;
    --red-dark: #a62932;
    --red-soft: #ffeaeb;
    --amber: #dc912f;
    --amber-dark: #8b550f;
    --amber-soft: #fff1d9;
    --blue: #2685df;
    --blue-soft: #e7f2ff;
    --radius: 18px;
    --shadow: 0 22px 70px rgba(7, 27, 43, .09);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
}

button,
input,
textarea,
select {
    font: inherit;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 3px solid rgba(38, 133, 223, .32);
    outline-offset: 3px;
}

img {
    display: block;
    max-width: 100%;
}

.shell {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
}

.public-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at 84% 6%, rgba(33, 181, 115, .12), transparent 26rem),
        var(--paper);
}

.public-header {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid rgba(217, 226, 229, .85);
    background: rgba(243, 247, 247, .9);
    backdrop-filter: blur(16px);
}

.header-inner {
    min-height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--ink);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -.025em;
    text-decoration: none;
}

.brand-mark {
    width: 38px;
    height: 38px;
    border-radius: 11px 11px 11px 3px;
    display: grid;
    place-items: center;
    color: var(--white);
    background: var(--ink);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: -.02em;
}

.public-nav {
    display: flex;
    align-items: center;
    gap: 24px;
}

.nav-link {
    color: var(--ink-2);
    font-size: .92rem;
    font-weight: 700;
    text-decoration: none;
}

.button {
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: var(--white);
    background: var(--ink);
    box-shadow: none;
    cursor: pointer;
    font-weight: 800;
    line-height: 1.1;
    text-decoration: none;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.button:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(7, 27, 43, .16);
}

.button--small {
    min-height: 40px;
    padding-inline: 16px;
    border-radius: 10px;
    font-size: .87rem;
}

.button--full {
    width: 100%;
}

.button--whatsapp {
    color: #052817;
    background: #5fe39e;
}

.button--whatsapp:hover {
    background: #4bd48e;
}

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

.button--secondary {
    border-color: var(--line);
    color: var(--ink);
    background: var(--white);
}

.button--danger-soft {
    border-color: #f4c7ca;
    color: var(--red-dark);
    background: var(--red-soft);
}

.button--disabled {
    color: var(--muted);
    background: #e3eaeb;
    cursor: default;
}

.button--disabled:hover {
    transform: none;
    box-shadow: none;
}

.hero {
    padding-block: clamp(64px, 9vw, 118px) clamp(72px, 9vw, 112px);
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr);
    align-items: center;
    gap: clamp(52px, 8vw, 112px);
}

.eyebrow {
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--green-dark);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .16em;
    line-height: 1.2;
    text-transform: uppercase;
}

.eyebrow span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 0 5px rgba(33, 181, 115, .12);
}

.hero h1 {
    max-width: 700px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(4rem, 8.8vw, 7.2rem);
    font-weight: 500;
    letter-spacing: -.075em;
    line-height: .84;
}

.hero-text {
    max-width: 610px;
    margin: 32px 0 30px;
    color: var(--muted);
    font-size: clamp(1.05rem, 2vw, 1.23rem);
    line-height: 1.7;
}

.process-card {
    position: relative;
    overflow: hidden;
    padding: 34px;
    border: 1px solid var(--line-dark);
    border-radius: 28px 28px 28px 8px;
    color: var(--white);
    background: var(--ink);
    box-shadow: 0 34px 80px rgba(7, 27, 43, .22);
}

.process-card::after {
    content: "";
    position: absolute;
    width: 190px;
    height: 190px;
    right: -90px;
    top: -90px;
    border: 34px solid rgba(95, 227, 158, .1);
    border-radius: 50%;
}

.process-label {
    margin: 0 0 22px;
    color: #91a8b6;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.process-list {
    position: relative;
    z-index: 1;
    margin: 0;
    padding: 0;
    list-style: none;
}

.process-list li {
    padding-block: 20px;
    display: grid;
    grid-template-columns: 46px 1fr;
    gap: 16px;
    border-top: 1px solid rgba(255, 255, 255, .13);
}

.process-list li:first-child {
    border-top: 0;
}

.process-list li > span {
    color: #5fe39e;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .78rem;
    font-weight: 800;
}

.process-list strong {
    display: block;
    font-size: 1rem;
}

.process-list p {
    margin: 4px 0 0;
    color: #a8bbc5;
    font-size: .92rem;
    line-height: 1.5;
}

.feed {
    padding-bottom: 110px;
}

.section-heading {
    margin-bottom: 30px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
}

.section-heading h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: 1;
}

.section-heading > p,
.section-heading > div > p:last-child {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
    font-weight: 700;
}

.section-heading--compact {
    margin-bottom: 18px;
}

.section-heading--compact h2 {
    font-family: inherit;
    font-size: 1.45rem;
    font-weight: 800;
    letter-spacing: -.03em;
}

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

.fact-card {
    min-height: 342px;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    background: var(--white);
    box-shadow: 0 8px 28px rgba(7, 27, 43, .04);
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.fact-card:hover {
    transform: translateY(-4px);
    border-color: #b7c7cc;
    box-shadow: var(--shadow);
}

.fact-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.fact-card-top time {
    color: var(--muted);
    font-size: .78rem;
    font-weight: 700;
}

.status {
    width: max-content;
    padding: 5px 10px;
    border-radius: 99px;
    display: inline-flex;
    align-items: center;
    color: var(--ink-2);
    background: #e7eef0;
    font-size: .71rem;
    font-weight: 900;
    letter-spacing: .07em;
    line-height: 1.3;
    text-transform: uppercase;
    white-space: nowrap;
}

.status--verified {
    color: var(--green-dark);
    background: var(--green-soft);
}

.status--false,
.status--failed {
    color: var(--red-dark);
    background: var(--red-soft);
}

.status--misleading,
.status--pending {
    color: var(--amber-dark);
    background: var(--amber-soft);
}

.status--processing {
    color: #185a93;
    background: var(--blue-soft);
}

.fact-card h3 {
    margin: 28px 0 12px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2rem);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: 1.2;
}

.fact-card h3 a {
    text-decoration: none;
}

.fact-card > p {
    margin: 0 0 24px;
    color: var(--muted);
}

.fact-card-bottom {
    margin-top: auto;
    padding-top: 19px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: 48px 1fr auto;
    align-items: center;
    gap: 12px;
}

.mini-score,
.score-ring {
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--green) calc(var(--score) * 1%), #dfe8e9 0);
}

.mini-score {
    width: 48px;
    height: 48px;
}

.mini-score::before {
    content: "";
    grid-area: 1 / 1;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--white);
}

.mini-score span {
    z-index: 1;
    grid-area: 1 / 1;
    font-size: .72rem;
    font-weight: 900;
}

.meta-label,
.source-count {
    display: block;
}

.meta-label {
    color: var(--muted);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.source-count {
    margin-top: 3px;
    color: var(--ink-2);
    font-size: .83rem;
    font-weight: 700;
}

.read-link {
    color: var(--ink);
    font-size: .87rem;
    font-weight: 800;
    text-decoration: none;
}

.read-link span {
    color: var(--green-dark);
}

.empty-state {
    padding: 70px 24px;
    border: 1px dashed #b9c8cc;
    border-radius: var(--radius);
    text-align: center;
    background: rgba(255, 255, 255, .52);
}

.empty-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 18px;
    border-radius: 20px 20px 20px 6px;
    display: grid;
    place-items: center;
    color: var(--green-dark);
    background: var(--green-soft);
    font-size: 1.4rem;
    font-weight: 900;
}

.empty-state h3 {
    margin: 0 0 7px;
    font-size: 1.3rem;
}

.empty-state p {
    margin: 0;
    color: var(--muted);
}

.pagination {
    margin-top: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    color: var(--muted);
    font-size: .84rem;
    font-weight: 700;
}

.page-link {
    padding: 9px 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--ink);
    background: var(--white);
    text-decoration: none;
}

.page-link--disabled {
    opacity: .45;
}

.public-footer {
    padding-block: 48px;
    color: #bdd0da;
    background: var(--ink);
}

.footer-inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
}

.brand--footer {
    color: var(--white);
}

.brand--footer .brand-mark {
    color: var(--ink);
    background: #5fe39e;
}

.footer-inner p {
    margin: 13px 0 0;
    font-size: .87rem;
}

.footer-note {
    max-width: 460px;
    text-align: right;
}

.article {
    padding-block: 46px 110px;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: .86rem;
    font-weight: 800;
    text-decoration: none;
}

.back-link:hover {
    color: var(--ink);
}

.article-header {
    padding-block: clamp(48px, 7vw, 88px) 58px;
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 230px;
    align-items: end;
    gap: 70px;
}

.article-meta {
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 13px;
    color: var(--muted);
    font-size: .79rem;
    font-weight: 700;
}

.article-title-wrap h1 {
    max-width: 900px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.8rem, 6vw, 5.2rem);
    font-weight: 500;
    letter-spacing: -.06em;
    line-height: .99;
}

.article-summary {
    max-width: 760px;
    margin: 28px 0 0;
    color: var(--muted);
    font-size: 1.14rem;
    line-height: 1.75;
}

.score-panel {
    text-align: center;
}

.score-ring {
    width: 178px;
    height: 178px;
    margin-inline: auto;
}

.score-ring::before {
    content: "";
    grid-area: 1 / 1;
    width: 145px;
    height: 145px;
    border-radius: 50%;
    background: var(--paper);
}

.score-ring > div {
    z-index: 1;
    grid-area: 1 / 1;
}

.score-ring strong,
.score-ring span {
    display: block;
}

.score-ring strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.75rem;
    letter-spacing: -.05em;
    line-height: 1;
}

.score-ring span {
    margin-top: 5px;
    color: var(--muted);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.score-panel > p {
    margin: 15px 0 0;
    color: var(--muted);
    font-size: .8rem;
}

.article-layout {
    padding-top: 58px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    align-items: start;
    gap: clamp(48px, 8vw, 96px);
}

.claim-box {
    margin-bottom: 46px;
    padding: 26px 30px;
    border-left: 5px solid var(--green);
    border-radius: 0 14px 14px 0;
    background: var(--white);
}

.claim-box > p {
    margin: 0 0 8px;
    color: var(--green-dark);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.claim-box blockquote {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.32rem;
    line-height: 1.55;
}

.article-copy {
    color: #263f50;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.16rem;
    line-height: 1.95;
}

.article-copy h2 {
    margin: 0 0 20px;
    color: var(--ink);
    font-family: Inter, ui-sans-serif, sans-serif;
    font-size: 1.55rem;
    letter-spacing: -.035em;
    line-height: 1.25;
}

.sources {
    margin-top: 60px;
}

.source-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.source-list li {
    padding-block: 20px;
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 14px;
}

.source-list li > span {
    color: var(--green-dark);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .77rem;
    font-weight: 900;
}

.source-list a {
    font-weight: 800;
    line-height: 1.4;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.source-list p,
.source-list small {
    display: block;
    margin: 6px 0 0;
    color: var(--muted);
    font-size: .81rem;
    line-height: 1.5;
}

.article-aside {
    position: sticky;
    top: 110px;
    display: grid;
    gap: 18px;
}

.verdict-note,
.aside-cta {
    padding: 28px;
    border-radius: var(--radius);
}

.verdict-note {
    border: 1px solid var(--line);
    background: var(--white);
}

.verdict-note h2,
.aside-cta h3 {
    margin: 8px 0 12px;
    font-size: 1.42rem;
    letter-spacing: -.035em;
    line-height: 1.2;
}

.verdict-note > p:last-child,
.aside-cta p {
    margin: 0;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.65;
}

.aside-cta {
    color: var(--white);
    background: var(--ink);
}

.aside-cta p {
    margin-bottom: 20px;
    color: #afc3cd;
}

.admin-body {
    min-height: 100vh;
    background: #edf2f3;
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
}

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    padding: 28px 20px 20px;
    display: flex;
    flex-direction: column;
    color: #c8d7de;
    background: var(--ink);
}

.brand--admin {
    padding-inline: 8px;
    color: var(--white);
}

.brand--admin .brand-mark {
    color: var(--ink);
    background: #5fe39e;
}

.sidebar-label {
    margin: 34px 12px 10px;
    color: #668295;
    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.sidebar-nav {
    display: grid;
    gap: 5px;
}

.sidebar-nav a {
    min-height: 46px;
    padding: 0 12px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 13px;
    color: #a9bec9;
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
    transition: color .15s ease, background .15s ease;
}

.sidebar-nav a:hover,
.sidebar-nav a.active {
    color: var(--white);
    background: rgba(255, 255, 255, .08);
}

.sidebar-nav a.active {
    box-shadow: inset 3px 0 #5fe39e;
}

.sidebar-nav a span {
    width: 20px;
    color: #6f9aad;
    text-align: center;
}

.sidebar-user {
    margin-top: auto;
    padding: 17px 10px 0;
    border-top: 1px solid rgba(255, 255, 255, .11);
    display: grid;
    grid-template-columns: 37px minmax(0, 1fr) 28px;
    align-items: center;
    gap: 10px;
}

.avatar {
    width: 37px;
    height: 37px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--ink);
    background: #5fe39e;
    font-size: .8rem;
    font-weight: 900;
}

.sidebar-user strong,
.sidebar-user span {
    overflow: hidden;
    display: block;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-user strong {
    color: var(--white);
    font-size: .78rem;
}

.sidebar-user span {
    color: #7994a4;
    font-size: .67rem;
}

.sidebar-user form,
.toolbar-actions form {
    margin: 0;
}

.sidebar-user button {
    width: 28px;
    height: 28px;
    border: 0;
    color: #90a8b5;
    background: transparent;
    cursor: pointer;
    font-size: 1rem;
}

.admin-main {
    width: 100%;
    max-width: 1560px;
    padding: 34px clamp(24px, 4vw, 58px) 70px;
    overflow: hidden;
}

.admin-topbar {
    margin-bottom: 30px;
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
}

.admin-topbar h1 {
    margin: 0;
    font-size: clamp(1.8rem, 3vw, 2.55rem);
    letter-spacing: -.05em;
    line-height: 1.1;
}

.system-live {
    padding: 7px 11px;
    border: 1px solid #c5ded2;
    border-radius: 99px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--green-dark);
    background: rgba(221, 248, 235, .7);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.system-live i,
.config-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    display: inline-block;
    background: var(--green);
}

.system-live--warning {
    border-color: #ead1a7;
    color: var(--amber-dark);
    background: var(--amber-soft);
}

.system-live--warning i {
    background: var(--amber);
}

.mobile-logout {
    display: none;
}

.alert {
    margin-bottom: 22px;
    padding: 14px 17px;
    border: 1px solid;
    border-radius: 12px;
    font-size: .88rem;
    animation: alert-in .28s ease-out both;
}

.alert ul {
    margin: 7px 0 0;
    padding-left: 20px;
}

.alert--success {
    border-color: #a9ddc3;
    color: var(--green-dark);
    background: var(--green-soft);
}

.alert--error {
    border-color: #efb6ba;
    color: var(--red-dark);
    background: var(--red-soft);
}

@keyframes alert-in {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

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

.metric-card {
    min-height: 176px;
    padding: 23px;
    border: 1px solid var(--line);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    background: var(--white);
}

.metric-card--accent {
    color: var(--white);
    background: var(--ink);
    border-color: var(--ink);
}

.metric-card p {
    margin: 0;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 800;
}

.metric-card--accent p,
.metric-card--accent a {
    color: #a9bec9;
}

.metric-card > strong {
    margin-top: 10px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.8rem;
    font-weight: 500;
    letter-spacing: -.06em;
    line-height: 1;
}

.metric-card a,
.metric-note {
    margin-top: auto;
    color: var(--green-dark);
    font-size: .76rem;
    font-weight: 800;
    text-decoration: none;
}

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

.dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(310px, .75fr);
    align-items: start;
    gap: 18px;
}

.panel {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--white);
    box-shadow: 0 6px 24px rgba(7, 27, 43, .035);
}

.panel-heading {
    padding: 23px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.panel-heading--bordered {
    border-bottom: 1px solid var(--line);
}

.panel-heading h2 {
    margin: 0;
    font-size: 1.22rem;
    letter-spacing: -.035em;
    line-height: 1.2;
}

.panel-heading .eyebrow {
    margin-bottom: 8px;
    font-size: .65rem;
}

.panel-heading > a,
.panel-heading > p {
    margin: 0;
    color: var(--muted);
    font-size: .77rem;
    font-weight: 800;
}

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

.record-row {
    min-height: 76px;
    padding: 13px 24px;
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    text-decoration: none;
}

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

.record-row:hover {
    background: #f8fafb;
}

.record-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    color: #185a93;
    background: var(--blue-soft);
    font-size: .78rem;
    font-weight: 900;
}

.record-icon--image {
    color: var(--amber-dark);
    background: var(--amber-soft);
    font-size: 1rem;
}

.record-main {
    min-width: 0;
}

.record-main strong,
.record-main span {
    overflow: hidden;
    display: block;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.record-main strong {
    font-size: .86rem;
}

.record-main span {
    margin-top: 3px;
    color: var(--muted);
    font-size: .7rem;
}

.queue-count {
    min-width: 30px;
    height: 30px;
    padding-inline: 8px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--amber-dark);
    background: var(--amber-soft);
    font-size: .77rem;
    font-weight: 900;
}

.queue-list {
    padding: 0 20px 18px;
}

.queue-list a {
    padding: 16px 4px;
    border-top: 1px solid var(--line);
    display: block;
    text-decoration: none;
}

.queue-list a:hover strong {
    color: var(--green-dark);
}

.queue-list span,
.queue-list small {
    display: block;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 750;
}

.queue-list strong {
    margin-block: 4px;
    display: block;
    font-size: .82rem;
    line-height: 1.45;
}

.panel-empty {
    min-height: 180px;
    padding: 30px;
    display: grid;
    place-items: center;
    color: var(--muted);
    text-align: center;
}

.panel-empty--success div {
    width: 44px;
    height: 44px;
    margin-inline: auto;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: var(--green-dark);
    background: var(--green-soft);
    font-weight: 900;
}

.panel-empty--success p {
    margin-top: -30px;
}

.filter-bar {
    padding: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.search-field {
    min-width: 260px;
    flex: 1;
    position: relative;
}

.search-field > span:not(.sr-only) {
    position: absolute;
    top: 50%;
    left: 13px;
    color: var(--muted);
    transform: translateY(-50%);
}

.search-field input {
    width: 100%;
    padding-left: 38px;
}

.select-field select {
    min-width: 145px;
}

input,
textarea,
select {
    width: 100%;
    border: 1px solid #cdd9dd;
    border-radius: 10px;
    color: var(--ink);
    background: var(--white);
    transition: border-color .15s ease, box-shadow .15s ease;
}

input,
select {
    min-height: 44px;
    padding: 9px 12px;
}

textarea {
    min-height: 100px;
    padding: 12px;
    line-height: 1.6;
    resize: vertical;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(38, 133, 223, .1);
    outline: none;
}

.text-button {
    padding-inline: 8px;
    color: var(--muted);
    font-size: .8rem;
    font-weight: 800;
}

.table-wrap {
    overflow-x: auto;
    border-top: 1px solid var(--line);
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

.data-table th {
    padding: 13px 18px;
    color: var(--muted);
    background: #f7f9f9;
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
    white-space: nowrap;
}

.data-table td {
    padding: 16px 18px;
    border-top: 1px solid var(--line);
    font-size: .8rem;
    vertical-align: middle;
}

.data-table tbody tr:hover {
    background: #fafcfc;
}

.table-title,
.table-meta {
    max-width: 520px;
    display: block;
}

.table-title {
    color: var(--ink);
    font-size: .84rem;
    font-weight: 800;
    text-decoration: none;
}

.table-meta {
    margin-top: 4px;
    color: var(--muted);
    font-size: .68rem;
}

.row-action {
    width: 34px;
    height: 34px;
    border: 1px solid var(--line);
    border-radius: 9px;
    display: grid;
    place-items: center;
    text-decoration: none;
}

.pagination--admin {
    margin: 0;
    padding: 18px;
    border-top: 1px solid var(--line);
}

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

.toolbar-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.review-layout {
    display: grid;
    grid-template-columns: minmax(290px, 360px) minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

.submission-column {
    min-width: 0;
    display: grid;
    gap: 18px;
}

.detail-list {
    margin: 0;
    padding: 7px 24px 17px;
}

.detail-list > div {
    padding-block: 10px;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.detail-list dt,
.detail-list dd {
    margin: 0;
    font-size: .75rem;
}

.detail-list dt {
    color: var(--muted);
    font-weight: 700;
}

.detail-list dd {
    text-align: right;
    font-weight: 800;
}

.submitted-copy,
.submitted-image,
.media-placeholder,
.error-note {
    margin: 0 24px 24px;
}

.submitted-copy > span {
    color: var(--muted);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.submitted-copy p {
    margin: 8px 0 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.03rem;
    line-height: 1.65;
    white-space: pre-wrap;
}

.submitted-image {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    display: block;
    text-decoration: none;
}

.submitted-image img {
    width: 100%;
    max-height: 420px;
    object-fit: contain;
    background: #eaf0f1;
}

.submitted-image span {
    padding: 10px 13px;
    display: block;
    color: var(--ink-2);
    background: var(--white);
    font-size: .72rem;
    font-weight: 800;
}

.media-placeholder,
.error-note {
    padding: 13px;
    border-radius: 10px;
    color: var(--muted);
    background: #f2f5f5;
    font-size: .78rem;
}

.error-note {
    color: var(--red-dark);
    background: var(--red-soft);
}

.error-note p {
    margin: 5px 0 0;
}

.score-summary {
    padding: 23px;
    display: grid;
    grid-template-columns: 96px 1fr;
    align-items: center;
    gap: 18px;
}

.score-ring--admin {
    width: 96px;
    height: 96px;
}

.score-ring--admin::before {
    width: 78px;
    height: 78px;
    background: var(--white);
}

.score-ring--admin strong {
    font-size: 1.55rem;
}

.score-ring--admin span {
    font-size: .55rem;
}

.score-summary > div:last-child > strong {
    margin-top: 5px;
    display: block;
    font-size: 1rem;
}

.score-summary > div:last-child p {
    margin: 3px 0 0;
    color: var(--muted);
    font-size: .76rem;
}

.review-form {
    padding: 24px;
    display: grid;
    gap: 20px;
}

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

.form-grid--three {
    grid-template-columns: 1.2fr .8fr .8fr;
}

.field {
    min-width: 0;
    display: grid;
    gap: 7px;
}

.field > span {
    color: var(--ink-2);
    font-size: .76rem;
    font-weight: 850;
}

.field > small {
    color: var(--muted);
    font-size: .7rem;
}

.sources-editor {
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: #f8fafa;
}

.sources-editor-heading {
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.sources-editor-heading span,
.sources-editor-heading small {
    display: block;
}

.sources-editor-heading span {
    font-size: .84rem;
    font-weight: 900;
}

.sources-editor-heading small {
    color: var(--muted);
    font-size: .7rem;
}

.source-editor-row {
    position: relative;
    margin-top: 12px;
    padding: 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    display: grid;
    gap: 12px;
    background: var(--white);
}

.source-editor-row:first-child {
    margin-top: 0;
}

.source-editor-row .field > span {
    font-size: .68rem;
}

.remove-source {
    width: max-content;
    padding: 0;
    border: 0;
    color: var(--red-dark);
    background: transparent;
    cursor: pointer;
    font-size: .7rem;
    font-weight: 850;
}

.form-actions {
    padding-top: 4px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.form-actions > span {
    max-width: 420px;
    color: var(--muted);
    font-size: .72rem;
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 18px;
}

.check-list {
    padding: 7px 24px 18px;
}

.check-list > div {
    padding-block: 13px;
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 12px 1fr auto;
    align-items: center;
    gap: 9px;
}

.check-list strong,
.check-list small {
    font-size: .78rem;
}

.check-list small {
    color: var(--muted);
}

.config-dot--missing {
    background: var(--red);
}

.config-note,
.help-text {
    margin: 0 24px 24px;
    color: var(--muted);
    font-size: .77rem;
    line-height: 1.6;
}

.config-note {
    padding: 15px;
    border-radius: 11px;
    background: var(--blue-soft);
}

.config-note strong {
    color: #185a93;
}

.config-note p {
    margin: 5px 0 0;
}

code {
    overflow-wrap: anywhere;
    color: #17577d;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .82em;
}

.settings-list {
    margin: 0;
    padding: 7px 24px 18px;
}

.settings-list > div {
    padding-block: 13px;
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 15px;
}

.settings-list dt,
.settings-list dd {
    margin: 0;
    font-size: .78rem;
}

.settings-list dt {
    color: var(--muted);
    font-weight: 750;
}

.settings-list dd {
    font-weight: 800;
    text-align: right;
}

.command-box {
    margin: 6px 24px 14px;
    padding: 15px;
    border-radius: 11px;
    color: #d9e8ee;
    background: var(--ink);
    line-height: 1.55;
}

.command-box code {
    color: #91edbb;
}

.login-body {
    min-height: 100vh;
    padding: 32px 20px;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 20% 15%, rgba(95, 227, 158, .18), transparent 25rem),
        var(--ink);
}

.login-card {
    width: min(470px, 100%);
    padding: clamp(30px, 7vw, 48px);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 26px 26px 26px 8px;
    background: var(--white);
    box-shadow: 0 40px 100px rgba(0, 0, 0, .28);
}

.brand--login {
    margin-bottom: 48px;
}

.login-heading {
    margin-bottom: 26px;
}

.login-heading h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.7rem;
    font-weight: 500;
    letter-spacing: -.055em;
    line-height: 1;
}

.login-heading > p:last-child {
    margin: 14px 0 0;
    color: var(--muted);
    font-size: .9rem;
}

.form-stack {
    display: grid;
    gap: 17px;
}

.check-field {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 700;
}

.check-field input {
    width: 17px;
    min-height: 17px;
    accent-color: var(--green-dark);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

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

    .dashboard-grid,
    .review-layout {
        grid-template-columns: 1fr;
    }

    .submission-column {
        grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr);
    }

    .score-summary {
        align-self: start;
    }
}

@media (max-width: 900px) {
    .hero {
        grid-template-columns: 1fr;
    }

    .process-card {
        max-width: 620px;
    }

    .article-header,
    .article-layout {
        grid-template-columns: 1fr;
    }

    .article-header {
        gap: 42px;
    }

    .score-panel {
        display: flex;
        align-items: center;
        gap: 20px;
        text-align: left;
    }

    .score-panel .score-ring {
        width: 130px;
        height: 130px;
        margin: 0;
    }

    .score-panel .score-ring::before {
        width: 108px;
        height: 108px;
    }

    .score-panel .score-ring strong {
        font-size: 2rem;
    }

    .article-aside {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-shell {
        grid-template-columns: 82px minmax(0, 1fr);
    }

    .sidebar {
        padding-inline: 13px;
    }

    .brand--admin,
    .sidebar-nav a {
        justify-content: center;
    }

    .brand--admin > span:last-child,
    .sidebar-label,
    .sidebar-nav a:not(.active) > span + *,
    .sidebar-nav a {
        font-size: 0;
    }

    .sidebar-nav a span {
        width: auto;
        font-size: 1.08rem;
    }

    .sidebar-user {
        padding-inline: 7px;
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .sidebar-user > div:nth-child(2) {
        display: none;
    }

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

@media (max-width: 720px) {
    .shell {
        width: min(100% - 28px, 1180px);
    }

    .public-nav .nav-link {
        display: none;
    }

    .public-nav .button {
        min-height: 38px;
        padding-inline: 12px;
        font-size: .75rem;
    }

    .hero {
        padding-top: 58px;
        gap: 48px;
    }

    .hero h1 {
        font-size: clamp(3.6rem, 19vw, 5.2rem);
    }

    .process-card {
        padding: 26px;
    }

    .fact-grid,
    .article-aside {
        grid-template-columns: 1fr;
    }

    .section-heading,
    .footer-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-note {
        text-align: left;
    }

    .article-title-wrap h1 {
        font-size: clamp(2.55rem, 13vw, 4rem);
    }

    .article-layout {
        padding-top: 42px;
    }

    .admin-shell {
        display: block;
    }

    .sidebar {
        position: sticky;
        z-index: 30;
        width: 100%;
        height: auto;
        min-height: 66px;
        padding: 10px 14px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .brand--admin {
        padding: 0;
    }

    .brand--admin .brand-mark {
        width: 38px;
        height: 38px;
    }

    .sidebar-nav {
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .sidebar-nav a {
        width: 38px;
        min-height: 38px;
        padding: 0;
    }

    .sidebar-nav a:last-child {
        display: none;
    }

    .sidebar-user {
        display: none;
    }

    .mobile-logout {
        display: block;
        margin: 0;
    }

    .mobile-logout button {
        width: 38px;
        height: 38px;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 9px;
        color: #a9bec9;
        background: transparent;
        cursor: pointer;
        font-size: 1rem;
    }

    .admin-main {
        padding: 25px 14px 60px;
    }

    .system-live {
        display: none;
    }

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

    .metric-card {
        min-height: 148px;
        padding: 18px;
    }

    .metric-card > strong {
        font-size: 2.3rem;
    }

    .submission-column,
    .form-grid,
    .form-grid--three {
        grid-template-columns: 1fr;
    }

    .detail-toolbar,
    .form-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .filter-bar {
        align-items: stretch;
        flex-direction: column;
    }

    .search-field,
    .select-field select {
        min-width: 0;
    }

    .data-table {
        min-width: 760px;
    }
}

@media (max-width: 480px) {
    .public-header .brand > span:last-child {
        display: none;
    }

    .fact-card {
        padding: 22px;
    }

    .fact-card-bottom {
        grid-template-columns: 48px 1fr;
    }

    .read-link {
        grid-column: 1 / -1;
        padding-top: 12px;
        border-top: 1px solid var(--line);
    }

    .score-panel {
        align-items: flex-start;
        flex-direction: column;
    }

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

    .pagination {
        gap: 8px;
        font-size: .7rem;
    }

    .page-link {
        padding: 7px 9px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}
