:root {
    --ink:#2b2a25;
    --muted:#726f64;
    --line:#e6e5df;
    --bg:#f5f5ef;
    --dark:#2e2d28;
    --green:#46443d;
    --brand-charcoal:#2e2d28;
    --brand-gold:#ceb363;
    --radius:20px;
    --shadow:0 10px 36px #2e2d2808
}
body {
    font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:var(--bg);
    color:var(--ink);
    -webkit-font-smoothing:antialiased
}
h1,h2,h3 {
    font-weight:650;
    letter-spacing:-.035em;
    line-height:1.18
}
p {
    line-height:1.65
}
a {
    text-underline-offset:4px
}
button,input,select,textarea {
    font-family:inherit
}
::selection {
    background:#eadcae;
    color:#2e2d28
}
:focus-visible {
    outline:3px solid #9b7622;
    outline-offset:4px
}
.page-eyebrow {
    color:#757266;
    font-size:10px;
    font-weight:750;
    letter-spacing:.13em
}
.btn {
    border-radius:12px;
    font-weight:650;
    min-height:46px;
    transition:background .18s,box-shadow .18s,transform .18s
}
.btn-primary {
    background:#2e2d28;
    color:#fff;
    box-shadow:0 4px 10px #2e2d2815
}
.btn-primary:hover {
    background:#42403a;
    filter:none;
    transform:translateY(-1px)
}
.btn-secondary {
    background:#fff;
    border:1px solid #e4e2db;
    color:#3d3b35
}
.btn-secondary:hover {
    background:#f2f2ef;
    border-color:#c9c5b8
}
.btn:disabled {
    opacity:.5;
    cursor:not-allowed;
    transform:none;
    box-shadow:none
}
.input {
    border:1px solid #e1e0d9;
    background:#fcfbfa;
    min-height:49px;
    border-radius:12px;
    padding:13px 15px;
    color:#33322d;
    box-shadow:none
}
.input:focus {
    background:#fff;
    border-color:#6c695e;
    box-shadow:0 0 0 4px #5f5c5312
}
.input::placeholder {
    color:#979489
}
.form-group label {
    font-size:12px;
    font-weight:650;
    letter-spacing:.01em
}
.form-group {
    min-width:0
}
input[type=checkbox] {
    accent-color:#46443d;
    width:18px;
    height:18px;
    flex-shrink:0
}
.panel,.user-card,.stat {
    border:1px solid #e6e4de;
    background:#fff;
    border-radius:20px;
    box-shadow:var(--shadow)
}
.panel {
    padding:26px
}
.panel h2 {
    font-size:20px
}
.section-bar {
    gap:14px
}
.section-bar h2 {
    margin:5px 0 10px
}
.badge {
    font-weight:650;
    padding:6px 10px;
    font-size:11px;
    letter-spacing:.015em
}
.badge.green {
    background:#f1f0ec;
    color:#4c4a43
}
.badge.orange {
    background:#fcf0d9;
    color:#805516
}
.badge.red {
    background:#fbe9e6;
    color:#923d35
}
.badge.gray {
    background:#f1f0ec;
    color:#69675d
}
.flash {
    padding:15px 18px;
    border:1px solid transparent;
    line-height:1.6
}
.flash.error {
    border-color:#efd3cb;
    background:#fff3ef;
    color:#873c30
}
.flash.success {
    border-color:#dedcd3;
    background:#f5f4f1;
    color:#46443d
}
.notice {
    border-left:3px solid #c2a451;
    background:#f6f3e9;
    border-radius:0 12px 12px 0;
    color:#645b42
}
.muted {
    color:#726f64
}
.admin-shell {
    background:#f4f3f0
}
.admin-grid {
    grid-template-columns:252px minmax(0,1fr)
}
.sidebar {
    background:#2e2d28;
    background-image:none;
    border-right:1px solid #2a2924;
    padding:28px 17px;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:#67645a transparent
}
.admin-logo-box {
    border-radius:12px;
    padding:13px 16px;
    background:#fcfcf6
}
.admin-brand {
    margin-bottom:24px
}
.admin-brand small {
    color:#cdcabd;
    font-size:10px;
    letter-spacing:.13em;
    text-transform:uppercase;
    margin-top:13px
}
.sidebar .menu {
    display:block
}
.menu-group {
    display:block;
    color:#c0bcad;
    font-size:9px;
    font-weight:650;
    letter-spacing:.16em;
    padding:20px 13px 7px
}
.sidebar .menu a {
    display:flex;
    align-items:center;
    gap:11px;
    color:#dedcd4;
    padding:11px 13px;
    font-size:12px;
    min-height:43px;
    margin:3px 0;
    border-radius:10px;
    line-height:1.3;
    border:1px solid transparent
}
.sidebar .menu a:before {
    display:none!important
}
.sidebar .menu a .ui-icon {
    width:18px;
    height:18px;
    flex-shrink:0;
    opacity:.75
}
.sidebar .menu a.active {
    background:#e8e7e1;
    color:#3b3933;
    border-color:#e8e7e1;
    font-weight:700;
    box-shadow:none
}
.sidebar .menu a.active .ui-icon {
    opacity:1
}
.sidebar .menu a:hover:not(.active) {
    background:#ffffff0b;
    color:#fff
}
.logout-form {
    margin-top:22px;
    padding-top:16px;
    border-top:1px solid #ffffff1a
}
.logout-form button {
    width:100%;
    min-height:44px;
    color:#dedcd4;
    border:1px solid #ffffff20;
    border-radius:10px;
    background:transparent;
    text-align:left;
    padding:10px 14px
}
.admin-main {
    padding:32px clamp(24px,3vw,48px);
    max-width:1720px;
    width:100%;
    min-width:0
}
.topbar {
    padding-bottom:24px;
    border-bottom:1px solid #e4e2db;
    margin-bottom:26px;
    gap:16px
}
.topbar h1 {
    font-size:30px;
    margin:6px 0 8px
}
.topbar .muted {
    font-size:12px
}
.overview-banner {
    background:#eae8e3;
    border:1px solid #dddbd2;
    border-radius:22px;
    padding:28px 32px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:24px;
    position:relative;
    overflow:hidden
}
.overview-banner h2 {
    font-size:clamp(25px,2.6vw,36px);
    margin:14px 0 10px;
    color:#373630
}
.overview-banner p {
    font-size:13px;
    color:#626056;
    margin:0
}
.story-kicker {
    font-size:10px;
    font-weight:700;
    letter-spacing:.15em
}
.banner-link {
    display:inline-flex;
    align-items:center;
    gap:12px;
    color:#3e3d37;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
    border-bottom:1px solid #a9a79d;
    padding-bottom:9px;
    white-space:nowrap
}
.banner-link svg {
    width:19px
}
.cards {
    grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
    gap:14px
}
.stat {
    padding:21px 22px;
    min-height:125px;
    position:relative;
    overflow:hidden
}
.stat:before {
    content:'';
    display:block;
    width:22px;
    height:3px;
    background:#c3ab67;
    border-radius:2px;
    margin-bottom:14px
}
.stat small {
    font-size:12px;
    color:#747166
}
.stat b {
    color:#373631;
    font-size:32px;
    font-weight:600;
    line-height:1.15;
    letter-spacing:-.04em;
    margin-top:10px;
    font-variant-numeric:tabular-nums
}
.cards>.stat:first-child {
    background:#2e2d28;
    border-color:#2e2d28
}
.cards>.stat:first-child b {
    color:#faf9eb
}
.cards>.stat:first-child small {
    color:#d0cec3
}
.cards>.stat:first-child:before {
    background:#d5bd76
}
.dashboard-charts {
    gap:20px;
    margin-top:22px
}
.chart-panel {
    background:#fff
}
.trend-legend {
    padding:13px 0;
    border-bottom:1px solid #eeedea;
    margin-top:8px
}
.trend-legend strong {
    font-size:20px;
    font-weight:600
}
.trend-chart text {
    font-size:11px;
    fill:#787569
}
.trend-grid {
    stroke:#e5e3dd;
    stroke-dasharray:2 5
}
.chart-data summary {
    font-size:12px;
    color:#5c5a51
}
.horizontal-stat {
    padding:3px 0;
    margin:20px 0
}
.horizontal-label {
    font-size:13px
}
.capacity-track {
    height:7px;
    background:#eeedea
}
.capacity-track>div {
    min-height:7px;
    background:#8e8b7e
}
.table {
    font-size:13px
}
.table th {
    font-size:11px!important;
    color:#706d62!important;
    background:#f4f3f0!important;
    font-weight:650;
    padding:15px 17px!important
}
.table td {
    padding:17px;
    border-bottom:1px solid #efeeea;
    line-height:1.5
}
.table tbody tr:last-child td {
    border-bottom:0
}
.table tbody tr:hover {
    background:#f8f8f7
}
.scroll-table {
    border:1px solid #eae9e4;
    border-radius:14px;
    scrollbar-color:#cecbc0 transparent;
    scrollbar-width:thin
}
.table .btn {
    font-size:12px;
    min-height:38px;
    padding:8px 12px
}
.user-card {
    padding:24px
}
.user-heading strong {
    font-weight:650
}
.edit-form {
    border-color:#eae9e4
}
.empty-row {
    padding:38px!important;
    color:#7f7c70;
    text-align:center!important
}
.site-header {
    background:#fcfcf8;
    border-color:#e7e6e0;
    backdrop-filter:none
}
.nav-wrap {
    min-height:86px
}
.brand-logo {
    width:176px
}
.site-header .btn {
    font-size:12px
}
.volunteer-app {
    background:#f5f5ef
}
.auth-layout {
    width:min(1080px,calc(100% - 48px));
    max-width:1080px;
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:stretch;
    gap:0;
    margin:48px auto 60px;
    padding:0;
    border:1px solid #e1dfd8;
    border-radius:26px;
    overflow:hidden;
    background:white;
    box-shadow:0 22px 70px #38373209
}
.auth-story {
    background:#35332e;
    color:#f7f7e8;
    padding:44px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    position:relative;
    overflow:hidden
}
.auth-story:after {
    content:'';
    position:absolute;
    width:340px;
    height:340px;
    border:1px solid #dad8cf19;
    border-radius:50%;
    right:-200px;
    top:70px;
    box-shadow:0 0 0 55px #dad8cf09,0 0 0 110px #dad8cf06;
    pointer-events:none
}
.auth-story .story-kicker {
    color:#d2cfc4;
    position:relative;
    z-index:1
}
.story-emblem {
    width:94px;
    height:94px;
    display:grid;
    place-items:center;
    border:1px solid #dbd9d037;
    border-radius:23px;
    color:#d7c383;
    margin:46px 0 28px;
    background:#ffffff05
}
.story-emblem svg {
    width:52px;
    height:52px;
    stroke-width:1
}
.auth-story h2 {
    font-size:clamp(30px,3.2vw,42px);
    line-height:1.15;
    margin:0 0 20px;
    position:relative;
    z-index:1;
    color:#f3f4df
}
.auth-story p {
    color:#d0cdc2;
    font-size:14px;
    max-width:340px;
    margin:0;
    position:relative;
    z-index:1
}
.story-bottom {
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:40px;
    padding-top:22px;
    border-top:1px solid #e5e3dd21;
    color:#cac7bb;
    font-size:11px;
    letter-spacing:.035em
}
.auth-layout>.panel,.auth-layout>.login-card {
    margin:0;
    border:0;
    box-shadow:none;
    border-radius:0;
    width:100%;
    max-width:none;
    padding:44px 42px;
    background:#fff;
    overflow:visible
}
.auth-form-panel .auth-mark {
    width:46px;
    height:46px;
    border-radius:13px;
    background:#f0efeb;
    margin-bottom:22px
}
.auth-layout h1 {
    font-size:35px;
    line-height:1.15;
    margin:10px 0 14px;
    color:#363530
}
.auth-intro {
    font-size:14px;
    color:#79766b;
    margin-bottom:26px;
    line-height:1.65
}
.auth-layout .form-group {
    margin-bottom:19px
}
.auth-layout .consent-line {
    font-size:12px!important;
    line-height:1.7!important;
    font-weight:400!important;
    align-items:flex-start!important
}
.auth-layout .consent-line input {
    margin-top:3px
}
.auth-layout .consent-line a {
    color:#4c4a42
}
.auth-layout #login-submit {
    width:100%
}
.login-geo-notice {
    font-size:11px;
    line-height:1.65;
    color:#7f7c6f
}
.auth-layout #login-status {
    font-size:12px;
    min-height:18px
}
.staff-login {
    display:block;
    background:#f2f1ed;
    padding:1px 0;
    min-height:100dvh
}
.staff-login .auth-layout {
    margin-top:max(40px,8vh)
}
.staff-login .login-logo {
    width:180px;
    margin:0 0 35px
}
.login-card {
    border-radius:24px;
    box-shadow:var(--shadow)
}
.login-card label {
    font-size:12px;
    font-weight:650
}
.login-card .input {
    margin:8px 0 22px
}
.site-footer {
    background:transparent;
    color:#615f56;
    border-top:1px solid #e3e1da;
    margin-top:28px;
    padding:28px 0
}
.site-footer strong {
    font-size:12px;
    font-weight:650
}
.footer-right {
    font-size:11px;
    color:#767367
}
.footer-right a {
    text-decoration:none
}
.footer-right a:hover {
    text-decoration:underline
}
.workspace-main {
    padding:60px 24px
}
.workspace-card {
    border-radius:26px;
    border:1px solid #e0ded6;
    box-shadow:0 24px 75px #3a383208;
    background:#fff;
    padding:44px;
    max-width:620px
}
.workspace-card h1 {
    font-size:49px;
    font-weight:600;
    line-height:1.05;
    letter-spacing:-.05em
}
.workspace-symbol {
    width:72px;
    height:72px;
    background:#ecebe6;
    border-radius:20px;
    color:#5b5950
}
.workspace-intro {
    font-size:15px;
    line-height:1.7
}
.workspace-form .btn {
    min-height:52px
}
.workspace-steps {
    display:flex;
    justify-content:space-between;
    gap:14px;
    border-top:1px solid #e6e5df;
    padding-top:23px;
    margin-top:28px;
    color:#716f64;
    font-size:11px
}
.workspace-steps b {
    display:block;
    color:#9a854b;
    margin-bottom:7px;
    font-size:12px;
    font-weight:600
}
.result-card {
    border-radius:24px;
    box-shadow:var(--shadow);
    border-color:#e3e1db
}
.result-head {
    padding:32px;
    background:#f6f5f3
}
.warn .result-head {
    background:#fff7e8
}
.bad .result-head {
    background:#fff1ed
}
.result-head h1 {
    font-weight:650
}
.detail {
    background:#f7f7f5;
    border:1px solid #ecebe7;
    border-radius:12px
}
.detail small {
    color:#747166
}
.detail strong {
    color:#3d3c36
}
.result-body {
    padding:28px
}
.result-body #geo-status {
    font-size:12px;
    color:#777468;
    margin-top:22px
}
.legal {
    max-width:820px
}
.legal h2 {
    font-size:22px;
    margin-top:32px
}
.legal p {
    color:#615f55;
    line-height:1.85
}
.print-shell {
    max-width:1200px;
    margin:auto;
    padding:36px 0 56px
}
.print-header {
    border-color:#e1e0d9;
    padding-bottom:28px
}
.brand-flag h1 {
    font-size:32px;
    font-weight:600
}
.brand-flag small {
    color:#6c695f
}
.print-shell #new-job {
    border-top:3px solid #bfa45e;
    background:#fff;
    padding:30px
}
.print-shell .read-only-input {
    background:#eeedea;
    color:#4b4942;
    border-color:#dad8cf;
    font-weight:650
}
.print-shell .full-row {
    display:flex;
    gap:15px;
    align-items:center;
    flex-wrap:wrap
}
.print-quotas .stat {
    background:#efeeeb;
    border-color:#e1dfd8
}
.generation-job progress {
    border:0;
    border-radius:12px;
    height:7px;
    overflow:hidden;
    accent-color:#5e5b52
}
.mobile-dock {
    border-color:#dfddd6
}
.mobile-dock a,.mobile-dock button {
    font-size:11px
}
.mobile-dock [aria-current=page] {
    background:#eae9e4;
    color:#4d4b44
}
.menu-toggle {
    border-radius:12px
}
.ui-icon {
    flex-shrink:0
}
@media(min-width:1500px) {
    .admin-main {
        padding:38px 48px
    }
    .cards {
        gap:18px
    }
}
@media(max-width:1100px) {
    .overview-banner {
        padding:24px;
        align-items:flex-start;
        flex-direction:column
    }
    .auth-story {
        padding:34px
    }
    .auth-layout>.panel,.auth-layout>.login-card {
        padding:36px 30px
    }
    .cards {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
}
@media(max-width:900px) {
    .admin-grid {
        display:block
    }
    .admin-main {
        padding:22px 18px
    }
    .sidebar {
        padding:30px 18px 40px
    }
    .topbar {
        padding-bottom:18px
    }
    .topbar h1 {
        font-size:27px!important
    }
    .overview-banner {
        margin-bottom:18px
    }
    .auth-layout {
        max-width:590px;
        display:block;
        margin:28px auto 36px
    }
    .auth-story {
        padding:28px 30px;
        min-height:0
    }
    .auth-story h2 {
        font-size:27px;
        margin:14px 0 10px
    }
    .auth-story h2 br {
        display:none
    }
    .auth-story p {
        font-size:13px;
        max-width:440px
    }
    .auth-story .story-emblem,.auth-story .story-bottom {
        display:none
    }
    .auth-layout>.panel,.auth-layout>.login-card {
        padding:32px
    }
    .staff-login .auth-layout {
        margin-top:28px
    }
    .staff-login .login-logo {
        width:150px;
        margin-bottom:24px
    }
    .print-shell {
        padding-top:22px
    }
    .table-scroll-hint {
        font-size:11px;
        color:#6f6c61
    }
    .mobile-dock {
        background:#fcfdf8f5;
        min-height:78px
    }
    .dashboard-charts {
        grid-template-columns:1fr
    }
}
@media(max-width:600px) {
    .site-header .nav-wrap {
        min-height:75px
    }
    .site-header .btn {
        font-size:11px;
        min-height:42px
    }
    .auth-layout {
        width:calc(100% - 28px);
        margin-top:22px;
        border-radius:22px
    }
    .volunteer-app main.auth-layout {
        padding:0!important
    }
    .auth-story {
        padding:25px
    }
    .auth-story h2 {
        font-size:25px
    }
    .auth-story .story-kicker {
        font-size:9px
    }
    .volunteer-app main.auth-layout>.panel,.auth-layout>.login-card {
        padding:28px 24px;
        border-radius:0
    }
    .auth-layout h1 {
        font-size:30px
    }
    .auth-layout .auth-intro {
        font-size:14px
    }
    .auth-form-panel .auth-mark {
        display:none
    }
    .input {
        font-size:16px;
        min-height:50px
    }
    .btn {
        min-height:46px
    }
    .cards {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:11px
    }
    .stat {
        padding:18px 16px;
        min-height:127px
    }
    .stat small {
        font-size:11px
    }
    .stat b,.cards .stat b {
        font-size:28px
    }
    .admin-main {
        padding:17px 13px
    }
    .topbar h1 {
        font-size:24px!important
    }
    .topbar .muted {
        font-size:11px;
        line-height:1.7
    }
    .overview-banner {
        padding:23px;
        border-radius:18px;
        gap:19px
    }
    .overview-banner h2 {
        font-size:27px
    }
    .overview-banner p {
        font-size:12px
    }
    .overview-banner .story-kicker {
        font-size:8px
    }
    .banner-link {
        font-size:12px
    }
    .panel {
        padding:22px 18px
    }
    .panel h2 {
        font-size:19px
    }
    .table th,.table td {
        padding:14px!important
    }
    .trend-legend {
        gap:12px;
        font-size:12px
    }
    .trend-legend strong {
        font-size:18px
    }
    .workspace-main {
        padding:26px 14px
    }
    .workspace-card {
        padding:30px 24px
    }
    .workspace-card h1 {
        font-size:39px
    }
    .workspace-steps {
        gap:9px;
        font-size:10px
    }
    .result-head {
        padding:25px 22px
    }
    .result-body {
        padding:21px
    }
    .detail {
        padding:14px
    }
    .print-shell #new-job {
        padding:24px 20px
    }
    .print-shell .section-bar h2 {
        font-size:22px;
        max-width:250px
    }
    .print-shell .full-row {
        display:block
    }
    .print-shell #producer-alert {
        display:block;
        margin-top:10px
    }
    .brand-flag h1 {
        font-size:26px
    }
    .site-footer {
        padding:23px 0
    }
    .footer-right {
        font-size:11px;
        gap:9px
    }
    .auth-layout+.site-footer {
        margin-top:0
    }
}
@media(prefers-reduced-motion:reduce) {
    .btn {
        transition:none;
        transform:none!important
    }
}
@media print {
    .overview-banner {
        background:white
    }
    .sidebar,.mobile-dock {
        display:none!important
    }
    .admin-grid {
        display:block
    }
    .admin-main {
        padding:0
    }
    .stat,.panel {
        box-shadow:none;
        break-inside:avoid
    }
}
:root {
    --ink:#292824;
    --dark:#292824;
    --bg:#f7f7f4;
    --muted:#68675f;
    --line:#deded8;
    --brand-charcoal:#292824;
    --brand-gold:#d8b241;
    --kt-accent:#d8b241;
    --kt-brown:#a46623
}
.btn-primary {
    background:#d8b241;
    color:#292824;
    box-shadow:0 4px 12px #2928240c
}
.btn-primary:hover {
    background:#c5a02f;
    color:#292824
}
.input:focus {
    border-color:#a46623;
    box-shadow:0 0 0 4px #d8b24122
}
input[type=checkbox] {
    accent-color:#94721a
}
.sidebar,.cards>.stat:first-child {
    background:#292824;
    border-color:#292824
}
.sidebar .menu a.active {
    background:#d8b241;
    color:#292824;
    border-color:#d8b241
}
.sidebar .menu a.active .ui-icon {
    color:#292824
}
.menu-group {
    color:#c7c5b7
}
.overview-banner {
    background:#f4eac6;
    border-color:#e4d396
}
.capacity-track>div {
    background:#d8b241
}
.badge.green {
    background:#eaf3eb;
    color:#2a6545
}
.badge.orange {
    background:#fcf0d9;
    color:#805516
}
.badge.red {
    background:#fbe9e6;
    color:#923d35
}
.ok .status-icon {
    color:#23604a;
    background:#eaf3eb
}
.campaign-story {
    background:#d8b241;
    color:#292824;
    padding:38px 34px 0;
    justify-content:flex-start
}
.campaign-story:after {
    display:none
}
.campaign-story .story-kicker {
    color:#51441c
}
.campaign-story h2 {
    color:#292824;
    font-size:clamp(29px,3.05vw,40px);
    line-height:1.18;
    margin:26px 0 16px;
    letter-spacing:-.04em
}
.campaign-story>p {
    color:#514723;
    font-size:14px;
    max-width:350px
}
.campaign-photo {
    margin:28px -34px 0;
    position:relative;
    flex:1;
    min-height:290px;
    overflow:hidden
}
.campaign-photo img {
    display:block;
    width:100%;
    height:100%;
    min-height:290px;
    object-fit:cover;
    object-position:68% center
}
.campaign-photo figcaption {
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    padding:35px 28px 20px;
    background:linear-gradient(transparent,#171713d9);
    color:#fff;
    font-size:12px;
    letter-spacing:.025em
}
.mobile-dock [aria-current=page] {
    background:#f5ebc9;
    color:#55451a
}
.generation-job progress {
    accent-color:#a46623
}
@media(max-width:900px) {
    .campaign-story {
        padding:26px 28px 0
    }
    .campaign-story h2 {
        font-size:29px;
        margin:16px 0 12px
    }
    .campaign-story h2 br {
        display:block
    }
    .campaign-story>p {
        max-width:100%
    }
    .campaign-photo {
        margin:22px -28px 0;
        height:210px;
        min-height:0
    }
    .campaign-photo img {
        height:210px;
        min-height:0;
        object-position:65% 48%
    }
    .campaign-photo figcaption {
        padding:25px 24px 14px
    }
}
@media(max-width:600px) {
    .campaign-story {
        padding:23px 24px 0
    }
    .campaign-story h2 {
        font-size:28px
    }
    .campaign-story>p {
        font-size:12px
    }
    .campaign-photo {
        margin:20px -24px 0;
        height:165px
    }
    .campaign-photo img {
        height:165px;
        object-position:66% 45%
    }
    .campaign-photo figcaption {
        font-size:10px;
        padding:24px 22px 12px
    }
}
.site-header .btn-donate {
    background:#bc2b1e;
    border:1px solid #bc2b1e;
    color:#fff;
    box-shadow:0 4px 12px #bc2b1e18
}
.site-header .btn-donate:hover {
    background:#a3261a;
    border-color:#a3261a;
    color:#fff
}
.campaign-header .btn:focus-visible {
    outline:3px solid #292824;
    outline-offset:3px
}
.campaign-header .nav-actions {
    display:flex;
    gap:10px;
    flex-wrap:wrap
}
@media(max-width:600px) {
    .site-header.campaign-header .nav-wrap {
        flex-wrap:wrap;
        justify-content:center;
        gap:14px;
        padding:16px 0
    }
    .site-header.campaign-header .nav-actions {
        width:100%;
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px
    }
    .site-header.campaign-header .btn {
        min-height:44px;
        padding:10px 5px;
        font-size:12px;
        white-space:nowrap
    }
}

.producer-chart-row{padding:20px 0;border-bottom:1px solid var(--line)}.producer-chart-row:last-child{border-bottom:0}.producer-chart-row h3{margin:0 0 15px;overflow-wrap:anywhere}.producer-bar{display:grid;grid-template-columns:110px minmax(0,1fr) 85px;gap:14px;align-items:center;margin:12px 0;font-size:13px}.producer-bar b{text-align:right;font-variant-numeric:tabular-nums}.producer-bar .capacity-track{height:12px;margin:0}.producer-bar .bar-generated{background:#238653}.producer-bar .bar-scanned{background:#2675c9}.producer-chart-row small{color:var(--muted)}.repeat-charts .capacity-track>div{background:#c74242}@media(max-width:600px){.producer-bar{grid-template-columns:85px minmax(0,1fr) 65px;gap:8px;font-size:11px}}
.market-chart{background:#101b2b;color:#d9e4ef;border-radius:20px;padding:20px;overflow:hidden}.market-chart .trend-chart{background:transparent;min-width:0;max-width:100%;width:100%;height:auto}.market-chart .trend-scroll{overflow-x:hidden;width:100%;min-width:0}.market-chart .trend-chart polyline{stroke-width:1.5;vector-effect:non-scaling-stroke}.market-chart .trend-chart text{fill:#9aacbd}.market-chart .trend-grid{stroke:#2a3a4e}.market-chart .trend-legend{color:#cbd9e5}.market-chart .trend-legend strong{color:white}.market-chart .trend-chart circle{display:none}.market-chart .chart-data{color:#cbd9e5}.market-chart .table{color:#d9e4ef}.market-chart .table th,.market-chart .table td{background:#142236;color:#d9e4ef}.market-readout{min-height:48px;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.market-slider{display:block;width:100%;accent-color:#35d38b;margin-top:12px}.market-slider-label{display:block;margin-top:16px;font-size:12px}.chart-filters{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin:20px 0}.chart-filters>label{min-width:220px;flex:1}.period-tabs{display:flex;gap:7px;flex-wrap:wrap}.map-readout{padding:15px;background:#e8f4ee;color:#165b3c;border-radius:12px;font-weight:700;margin:16px 0}.interactive-map{width:100%;height:auto}.interactive-map path{cursor:pointer;transition:fill .12s}.interactive-map path:hover,.interactive-map path:focus,.interactive-map .selected-city{fill:#d8b241;stroke:#765510;stroke-width:1.2;outline:none}.camera-video{width:100%;max-height:55vh;object-fit:cover;background:#15202d;border-radius:18px}.camera-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.camera-status{min-height:42px;line-height:1.5}.campaign-header .nav-actions form .btn{width:100%}@media(max-width:600px){.market-chart{padding:14px}.market-readout{font-size:12px}.period-tabs .btn{font-size:11px;min-height:42px;padding:10px}.chart-filters>label{width:100%}}

/* Shared navigation and responsive content */
.site-header .nav-actions {display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}
.site-header .nav-actions form {display:flex;margin:0;min-width:0}
.site-header .nav-actions .btn {display:inline-flex;align-items:center;justify-content:center;min-height:44px;line-height:1.25;text-align:center;margin:0}
.site-header .brand {flex-shrink:0}
.result-actions {display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}
.result-actions .btn {flex:1 1 180px;white-space:normal;text-align:center}
.detail,.detail strong,.stat,.topbar>div,.section-bar>div {min-width:0;overflow-wrap:anywhere}
.chart-filters>label {min-width:0;flex:1 1 220px}
.chart-filters .input {width:100%;max-width:100%;min-width:0}
.scroll-table {max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.report-form {display:grid;gap:20px;margin-top:24px}
.report-form>label:not(.consent-line) {display:grid;gap:8px}
.report-form textarea {resize:vertical;min-height:140px}
.report-form .consent-line {display:flex;gap:10px;align-items:flex-start;line-height:1.6}
.report-form .consent-line input {margin-top:4px}
@media(max-width:600px) {
    .site-header .nav-wrap {flex-wrap:wrap;justify-content:center;gap:14px;padding:16px 0}
    .site-header .nav-actions,.site-header.campaign-header .nav-actions {display:flex;width:100%;gap:8px;justify-content:center;flex-wrap:wrap}
    .site-header .nav-actions>a,.site-header .nav-actions>form {flex:1 1 80px;min-width:0}
    .site-header .nav-actions .btn {width:100%;min-height:44px;padding:10px 6px;font-size:12px;white-space:normal}
    .result-actions {flex-direction:column}
    .result-actions .btn {flex:auto;width:100%}
    .chart-filters {gap:12px}
    .chart-filters>label {flex-basis:100%;width:100%}
    .chart-filters>.btn {width:100%}
    .period-tabs {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
    .period-tabs .btn {white-space:normal;text-align:center}
    .stat b,.cards .stat b {font-size:clamp(20px,6vw,28px)}
    .topbar {align-items:center}
    .menu-toggle {flex-shrink:0}
}
