:root {
    --forest: #173b32;
    --forest-dark: #102c25;
    --leaf: #7da58a;
    --lime: #d8e7b7;
    --ink: #1b2824;
    --muted: #65716c;
    --line: #e6eae5;
    --paper: #ffffff;
    --canvas: #f5f7f3;
    --amber: #c58c3c;
    --blue: #6388a3;
    --font-body: 'Segoe UI', Arial, sans-serif;
    --font-heading: 'Segoe UI', Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.container { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: absolute; top: -50px; left: 20px; z-index: 20; padding: 10px 16px; background: #fff; color: var(--forest); }
.skip-link:focus { top: 12px; }

.site-header { position: relative; z-index: 3; background: #fff; border-bottom: 1px solid #edf0eb; }
.header-inner { width: min(1216px, calc(100% - 48px)); height: 78px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; color: #173b32; background: var(--lime); border-radius: 12px 12px 12px 4px; font-family: var(--font-heading); font-size: 18px; font-weight: 800; }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { color: var(--forest); font-family: var(--font-heading); font-size: 11px; letter-spacing: .095em; }
.brand-copy small { color: #748078; font-size: 11px; }
.primary-nav { display: flex; align-items: center; gap: 30px; }
.primary-nav a { color: #56615b; font-size: 13px; font-weight: 600; text-decoration: none; transition: color .15s ease; }
.primary-nav a:hover, .primary-nav a.active { color: var(--forest); }
.primary-nav .nav-cta { padding: 10px 15px; color: #fff; background: var(--forest); border-radius: 6px; }
.primary-nav .nav-cta:hover, .primary-nav .nav-cta.active { color: #fff; background: #245445; }
.nav-cta span { margin-left: 8px; }
.menu-toggle { display: none; }
.system-notice { padding: 11px 0; color: #604318; background: #fff5df; border-bottom: 1px solid #f0dcac; font-size: 13px; }

.hero { overflow: hidden; color: #fff; background: var(--forest); }
.hero-grid { position: relative; min-height: 438px; display: grid; grid-template-columns: 1.2fr .8fr; align-items: center; gap: 75px; padding-top: 55px; padding-bottom: 55px; }
.hero-grid:after { position: absolute; right: 29%; bottom: -220px; width: 470px; height: 470px; border: 1px solid rgba(210,231,183,.1); border-radius: 50%; content: ''; pointer-events: none; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; color: #bed0c4; font-family: var(--font-heading); font-size: 10px; font-weight: 800; letter-spacing: .13em; }
.eyebrow-dark { color: #779183; }
.status-dot { width: 7px; height: 7px; display: inline-block; background: #c8df9e; border-radius: 50%; box-shadow: 0 0 0 4px rgba(200,223,158,.12); }
.hero h1, .page-intro h1 { margin: 18px 0 16px; font-family: var(--font-heading); font-size: clamp(40px, 5vw, 59px); font-weight: 600; letter-spacing: -.055em; line-height: 1.09; }
.hero h1 span { color: var(--lime); }
.hero-copy > p { max-width: 510px; margin: 0; color: #c4d2c9; font-size: 15px; line-height: 1.8; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.button { min-height: 45px; display: inline-flex; align-items: center; justify-content: center; gap: 11px; padding: 11px 17px; border: 1px solid transparent; border-radius: 5px; font-size: 13px; font-weight: 700; text-decoration: none; cursor: pointer; transition: background .15s ease, transform .15s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { color: #18382f; background: var(--lime); }
.button-primary:hover { background: #e4efcc; }
.button-outline { color: #fff; border-color: rgba(255,255,255,.33); background: transparent; }
.button-outline:hover { background: rgba(255,255,255,.08); }
.button-dark { color: #fff; background: var(--forest); }
.button-dark:hover { background: #245445; }
.button-full { width: 100%; }
.hero-assurance { display: flex; align-items: center; gap: 8px; margin-top: 17px !important; color: #b7c7bd !important; font-size: 11px !important; }
.hero-assurance span { color: var(--lime); font-weight: 700; }
.hero-card { position: relative; z-index: 1; padding: 25px 26px 19px; color: var(--ink); background: #fff; border-radius: 9px; box-shadow: 0 18px 60px rgba(0,0,0,.14); }
.hero-card-top { display: flex; align-items: center; justify-content: space-between; }
.mini-label { color: #849087; font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.live-pill { padding: 4px 8px; color: #356149; background: #eef5e5; border-radius: 20px; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.hero-card h2 { margin: 19px 0 3px; color: var(--forest); font-family: var(--font-heading); font-size: 25px; letter-spacing: -.045em; line-height: 1.28; }
.hero-card > p { margin: 0 0 15px; color: var(--muted); font-size: 12px; }
.district-row { display: flex; align-items: center; gap: 11px; padding: 12px 0; border-top: 1px solid #edf0ec; }
.district-icon { width: 32px; height: 32px; display: grid; place-items: center; color: #456d50; background: #e9f0e5; border-radius: 8px; font-family: var(--font-heading); font-size: 12px; font-weight: 800; }
.district-icon-light { color: #82633a; background: #f8f0df; }
.district-row > span:nth-child(2) { display: grid; gap: 0; }
.district-row strong { color: var(--ink); font-size: 12px; }
.district-row small { color: #8a948e; font-size: 10px; }
.district-arrow { margin-left: auto; color: #93a199; }
.hero-card-foot { display: flex; align-items: center; gap: 9px; margin: 11px -26px -19px; padding: 13px 26px; color: #718078; background: #f7f9f5; border-radius: 0 0 9px 9px; font-size: 9px; }
.card-foot-mark { padding: 3px 5px; color: var(--forest); background: #e5eddd; border-radius: 3px; font-size: 8px; font-weight: 800; }

.dashboard-section { padding-top: 49px; padding-bottom: 57px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-heading h2 { margin: 5px 0 0; font-family: var(--font-heading); font-size: 21px; letter-spacing: -.035em; }
.text-link { color: #315b48; font-size: 12px; font-weight: 700; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.text-link span { margin-left: 5px; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.stat-card { min-height: 130px; display: flex; flex-direction: column; align-items: flex-start; padding: 18px 21px; border: 1px solid var(--line); border-radius: 7px; }
.stat-label { color: #68746d; font-size: 11px; font-weight: 600; }
.stat-card strong { margin: 5px 0 0; color: var(--forest); font-family: var(--font-heading); font-size: 31px; font-weight: 700; letter-spacing: -.05em; line-height: 1.25; }
.stat-foot { color: #8a948e; font-size: 10px; }
.stat-card-accent { background: #f7f9f4; border-color: #edf0e6; }
.dashboard-columns { display: grid; grid-template-columns: 1.55fr 1fr; gap: 16px; margin-top: 17px; }
.panel { min-width: 0; padding: 20px 22px; border: 1px solid var(--line); border-radius: 7px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.panel h3 { margin: 4px 0 0; font-family: var(--font-heading); font-size: 16px; letter-spacing: -.025em; }
.panel-badge { padding: 5px 8px; color: #728078; background: #f5f7f4; border-radius: 3px; font-size: 9px; }
.empty-state { display: flex; align-items: flex-start; gap: 12px; margin-top: 19px; padding: 17px; background: #f8f9f7; border-radius: 5px; }
.empty-icon { width: 24px; height: 24px; flex: 0 0 24px; display: grid; place-items: center; color: #52715f; background: #e9f0e7; border-radius: 50%; font-size: 13px; font-weight: 700; }
.empty-state strong { color: #35423b; font-size: 12px; }
.empty-state p { margin: 3px 0 9px; color: #758078; font-size: 11px; }
.empty-state .text-link { font-size: 11px; }
.report-list { margin-top: 13px; }
.report-row { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-top: 1px solid #edf0eb; }
.report-type-mark { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; color: #40634d; background: #eef3e9; border-radius: 7px; font-size: 11px; font-weight: 700; }
.report-row-main { min-width: 0; display: grid; gap: 2px; }
.report-row-main strong { overflow: hidden; color: #35413b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.report-row-main small { color: #8b958f; font-size: 9px; }
.status-tag { flex: 0 0 auto; padding: 4px 7px; color: #84642f; background: #f7f0df; border-radius: 3px; font-size: 9px; font-weight: 700; }
.status-under-review { color: #466781; background: #ebf2f7; }
.status-assigned, .status-acknowledged { color: #466781; background: #ebf2f7; }
.status-investigating { color: #6b5b33; background: #f5f0df; }
.status-referred { color: #654f86; background: #f0ebf7; }
.status-action-in-progress { color: #426a4c; background: #eaf3e8; }
.status-in-progress { color: #426a4c; background: #eaf3e8; }
.status-awaiting-information { color: #79613d; background: #f8f0df; }
.status-rejected { color: #8a493e; background: #faece9; }
.status-closed { color: #64716a; background: #eef0ee; }
.status-reopened { color: #745489; background: #f1ebf7; }
.status-resolved { color: #356148; background: #e8f2e8; }
.quick-panel { background: #fafbf9; }
.quick-panel h3 { max-width: 270px; margin: 6px 0 10px; font-size: 18px; }
.issue-list { margin: 0 0 14px; padding: 0; list-style: none; }
.issue-list li { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid #e9ede7; }
.issue-icon { width: 26px; height: 26px; flex: 0 0 26px; display: grid; place-items: center; border-radius: 6px; font-size: 8px; font-weight: 800; }
.issue-icon.green { color: #456f50; background: #e8f0e4; }
.issue-icon.amber { color: #96703e; background: #f5eddd; }
.issue-icon.blue { color: #55768f; background: #e8f0f5; }
.issue-list li > span:last-child { display: grid; }
.issue-list strong { color: #38453e; font-size: 10px; }
.issue-list small { color: #87918b; font-size: 9px; }
.trust-strip { background: #f7f8f5; border-top: 1px solid #edf0eb; }
.trust-inner { min-height: 84px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.trust-label { color: #88928c; font-size: 9px; font-weight: 800; letter-spacing: .1em; }
.partner-names { display: flex; align-items: center; gap: 27px; color: #738078; font-family: var(--font-heading); font-size: 10px; font-weight: 800; }

.page-intro { padding: 36px 0 32px; background: #f7f9f5; border-bottom: 1px solid #edf0eb; }
.page-intro .container { position: relative; }
.back-link { display: inline-block; margin-bottom: 19px; color: #65736b; font-size: 11px; font-weight: 600; text-decoration: none; }
.back-link:hover { color: var(--forest); }
.page-intro h1 { margin: 8px 0 8px; color: var(--forest); font-size: clamp(34px, 4vw, 45px); }
.page-intro p { max-width: 690px; margin: 0; color: #68756d; font-size: 14px; }

.form-layout, .track-layout, .process-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; align-items: start; gap: 42px; padding-top: 37px; padding-bottom: 60px; }
.form-main { min-width: 0; }
.form-progress { display: flex; justify-content: space-between; gap: 15px; padding: 0 0 13px; color: #8a948d; border-bottom: 1px solid var(--line); font-size: 10px; }
.form-progress span:first-child { color: #486252; font-weight: 800; letter-spacing: .1em; }
.report-form fieldset { min-width: 0; margin: 0; padding: 23px 0 21px; border: 0; border-bottom: 1px solid var(--line); }
.report-form legend { width: 100%; display: flex; align-items: center; gap: 11px; margin-bottom: 16px; color: #23362d; font-family: var(--font-heading); font-size: 15px; font-weight: 700; }
.step-number { width: 27px; height: 27px; display: grid; place-items: center; color: #52735b; background: #edf3e8; border-radius: 50%; font-family: var(--font-body); font-size: 11px; }
.field { margin: 0 0 15px; }
.field:last-child { margin-bottom: 0; }
.field label { display: block; margin-bottom: 6px; color: #35443b; font-size: 11px; font-weight: 700; }
.field label span { color: #b45a43; }
.field input, .field textarea, .field select { width: 100%; min-height: 42px; padding: 10px 12px; color: #25342c; background: #fff; border: 1px solid #dce3dc; border-radius: 4px; outline: none; font-size: 12px; }
.field textarea { min-height: 120px; resize: vertical; line-height: 1.6; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: #73947c; box-shadow: 0 0 0 3px rgba(115,148,124,.13); }
.field input::placeholder, .field textarea::placeholder { color: #a3aca6; }
.field small { display: block; margin-top: 5px; color: #89938d; font-size: 10px; }
.password-policy { display: grid; gap: 5px; margin: 9px 0 0; padding: 10px 12px; background: #fff; border: 1px solid #e6eae5; border-radius: 4px; list-style: none; }
.password-policy li { display: flex; justify-content: space-between; gap: 12px; color: #78837c; font-size: 10px; }
.password-policy li strong { color: #a45b48; font-size: 9px; font-weight: 700; white-space: nowrap; }
.password-policy li.is-met { color: #385e43; }
.password-policy li.is-met strong { color: #2f7542; }
.form-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.privacy-callout { display: grid; gap: 3px; margin-bottom: 15px; padding: 12px 14px; color: #557060; background: #f1f6ee; border-left: 3px solid #a9c58d; font-size: 10px; }
.privacy-callout strong { font-size: 11px; }
.form-submit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 28px; padding-top: 19px; }
.form-submit p { max-width: 380px; margin: 0; color: #78837c; font-size: 10px; }
/* Step-by-step report form (report.php). Without JavaScript all steps show as one long form. */
.report-form [hidden] { display: none !important; }
.wizard-progress { display: flex; align-items: center; gap: 12px; padding-bottom: 6px; color: #5d6d63; font-size: 12px; font-weight: 700; white-space: nowrap; }
.wizard-progress-bar { flex: 1; height: 8px; overflow: hidden; background: #e6ece3; border-radius: 99px; }
.wizard-progress-bar span { display: block; width: 0; height: 100%; background: #4f8a5e; border-radius: inherit; transition: width .25s ease; }
.report-form.is-wizard fieldset { padding-bottom: 6px; border-bottom: 0; }
.report-form.is-wizard legend { font-size: 21px; }
.wizard-step:focus { outline: none; }
.step-hint { margin: -6px 0 16px; color: #66746b; font-size: 14px; line-height: 1.5; }
.choice-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.choice-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.choice-tile { position: relative; min-height: 124px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; padding: 16px 10px; text-align: center; background: #fff; border: 2px solid #dfe6dd; border-radius: 14px; cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .15s ease; -webkit-tap-highlight-color: transparent; }
.choice-tile:hover { border-color: #9dbb9f; }
.choice-tile:active { transform: scale(.97); }
.choice-tile input { position: absolute; opacity: 0; pointer-events: none; }
.choice-tile:focus-within { box-shadow: 0 0 0 3px rgba(79, 138, 94, .25); }
.choice-tile.is-selected { background: #eef6ea; border-color: #3f7a52; }
.choice-tile.is-selected::after { content: "✓"; position: absolute; top: 8px; right: 10px; width: 22px; height: 22px; display: grid; place-items: center; color: #fff; background: #3f7a52; border-radius: 50%; font-size: 12px; font-weight: 800; }
.choice-tile-danger.is-selected { background: #fff0eb; border-color: #c2412d; }
.choice-tile-danger.is-selected::after { background: #c2412d; }
.choice-icon { font-size: 40px; line-height: 1; }
.choice-label { color: #24362c; font-size: 14px; font-weight: 700; line-height: 1.35; }
.danger-alert { display: grid; gap: 4px; margin-top: 14px; padding: 14px 16px; color: #7a2e20; background: #fff0eb; border: 2px solid #f0b9a8; border-radius: 12px; font-size: 14px; line-height: 1.5; }
.danger-alert strong { font-size: 16px; }
.voice-recorder { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-bottom: 20px; padding: 18px; background: #f3f8f0; border: 2px dashed #b9d0b3; border-radius: 16px; }
.voice-record-button { width: 80px; height: 80px; flex: 0 0 auto; display: grid; place-items: center; color: #fff; background: #2f7d4f; border: 0; border-radius: 50%; box-shadow: 0 6px 16px rgba(47, 125, 79, .3); cursor: pointer; -webkit-tap-highlight-color: transparent; }
.voice-record-button svg { width: 36px; height: 36px; }
.voice-recorder.is-recording { background: #fff4f1; border-color: #f0b9a8; }
.voice-recorder.is-recording .voice-record-button { background: #c2412d; animation: voice-pulse 1.2s ease-in-out infinite; }
@keyframes voice-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(194, 65, 45, .45); } 50% { box-shadow: 0 0 0 16px rgba(194, 65, 45, 0); } }
.voice-status { flex: 1 1 200px; display: grid; gap: 4px; }
.voice-status strong { color: #23362d; font-size: 16px; }
.voice-status span { color: #66746b; font-size: 13px; line-height: 1.5; }
.voice-preview { flex: 1 1 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.voice-preview audio { flex: 1 1 240px; max-width: 100%; }
.voice-delete { min-height: 46px; padding: 8px 16px; color: #8a3a2b; background: #fff; border: 1px solid #efcfc6; border-radius: 10px; font-size: 14px; font-weight: 700; cursor: pointer; }
.photo-picker { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 28px 16px; text-align: center; background: #f6f9f4; border: 2px dashed #b9d0b3; border-radius: 16px; cursor: pointer; }
.photo-picker:hover { background: #eef6ea; }
.photo-picker-icon { font-size: 44px; line-height: 1; }
.photo-picker strong { color: #23362d; font-size: 16px; }
.photo-picker small { color: #6b786f; font-size: 13px; }
.report-form.is-wizard .evidence-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.photo-list { display: grid; gap: 6px; margin: 12px 0 0; padding: 0; color: #43554a; list-style: none; font-size: 13px; }
.photo-list li { padding: 9px 12px; overflow-wrap: anywhere; background: #fff; border: 1px solid #e3e9e1; border-radius: 10px; }
.photo-list .photo-list-problem { color: #8a3a2b; background: #fff2ef; border-color: #f1d4cc; }
.incident-date-field { margin-top: 20px; }
.location-selectors .location-optional-hint { grid-column: 1 / -1; margin: 6px 0 0; }
.report-form .location-picker select { width: 100%; min-height: 140px; padding: 6px; font-size: 16px; }
.report-form .location-picker select option { padding: 10px 8px; border-bottom: 1px solid #eef2ec; }
.report-form .other-location-fields { grid-template-columns: 1fr; }
.location-chosen { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 52px; padding: 8px 10px 8px 14px; background: #eef6ea; border: 2px solid #3f7a52; border-radius: 10px; }
.location-chosen-name { flex: 1 1 auto; min-width: 0; padding-right: 4px; overflow-wrap: anywhere; color: #23362d; font-size: 15px; font-weight: 700; }
.location-change { flex: 0 0 auto; margin-left: auto; min-height: 40px; padding: 6px 16px; color: #315b48; background: #fff; border: 1px solid #c9d9c6; border-radius: 8px; font-size: 14px; font-weight: 700; cursor: pointer; }
.report-form.is-wizard .choice-grid + .location-selectors, .report-form.is-wizard .choice-grid + .location-selectors + .other-location-fields, .report-form.is-wizard .choice-grid ~ .other-location-fields { margin-top: 16px; }
.recipient-choice { margin: 4px 0 16px; padding: 12px 14px; background: #f6f8f4; border: 1px solid #e3e9e1; border-radius: 12px; }
.recipient-choice summary { color: #35503f; font-size: 14px; font-weight: 700; cursor: pointer; }
.recipient-choice .field { margin: 12px 0 0; }
.step-error { margin: 14px 0 0; padding: 11px 14px; color: #8a3a2b; background: #fff2ef; border-radius: 10px; font-size: 14px; font-weight: 700; }
.wizard-nav { position: sticky; bottom: 0; z-index: 5; display: flex; justify-content: space-between; gap: 12px; margin-top: 16px; padding: 14px 0; background: linear-gradient(rgba(255, 255, 255, 0), #fff 35%); }
.wizard-nav .button { min-width: 130px; min-height: 54px; border-radius: 12px; font-size: 16px; }
.wizard-nav .wizard-next { margin-left: auto; }
.report-form.is-wizard .field label { font-size: 14px; }
.report-form.is-wizard .field input, .report-form.is-wizard .field textarea, .report-form.is-wizard .field select { min-height: 50px; border-radius: 10px; font-size: 16px; }
.report-form.is-wizard .field small, .report-form.is-wizard .privacy-callout { font-size: 13px; }
.report-form.is-wizard .form-submit-actions .button { min-height: 54px; border-radius: 12px; font-size: 15px; }
.form-submit-actions { display: flex; flex-wrap: wrap; gap: 16px; flex-shrink: 0; }
.form-submit-actions .button { min-width: 190px; padding: 12px 22px; gap: 10px; }
.form-submit-actions .button svg { flex-shrink: 0; }
.form-sidebar { display: grid; gap: 13px; }
.side-card { padding: 20px; border-radius: 6px; }
.side-card-dark { color: #fff; background: var(--forest); }
.side-card-dark h2 { margin: 15px 0 9px; font-family: var(--font-heading); font-size: 21px; letter-spacing: -.04em; line-height: 1.32; }
.side-card-dark p { margin: 0; color: #c2d0c6; font-size: 11px; }
.side-divider { margin: 17px 0 12px; border-top: 1px solid rgba(255,255,255,.18); }
.side-check { width: 21px; height: 21px; display: grid; place-items: center; margin-bottom: 7px; color: #18372e; background: var(--lime); border-radius: 50%; font-size: 11px; font-weight: 800; }
.side-card-dark > strong { display: block; font-size: 11px; }
.side-card-dark > small { display: block; margin-top: 2px; color: #bdcfc3; font-size: 10px; }
.side-card-light { color: #51482f; background: #faf5e9; }
.side-icon { width: 22px; height: 22px; display: grid; place-items: center; margin-bottom: 9px; color: #82612c; background: #eee2c4; border-radius: 50%; font-size: 12px; font-weight: 800; }
.side-card-light h3 { margin: 0 0 5px; font-family: var(--font-heading); font-size: 13px; }
.side-card-light p { margin: 0; color: #7a725e; font-size: 10px; line-height: 1.65; }
.form-errors { margin-bottom: 18px; padding: 14px 16px; color: #763e32; background: #fff2ef; border: 1px solid #f1d4cc; border-radius: 5px; font-size: 12px; }
.form-errors ul { margin: 5px 0 0; padding-left: 19px; }
.success-card { padding: 28px; border: 1px solid #e2e9df; border-radius: 7px; }
.success-mark { width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 16px; color: #315d40; background: #eaf2e5; border-radius: 50%; font-size: 18px; font-weight: 700; }
.success-card h2 { margin: 7px 0; color: var(--forest); font-family: var(--font-heading); font-size: 25px; letter-spacing: -.04em; }
.success-card > p { color: #69766e; font-size: 12px; }
.tracking-details { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 20px 0; }
.tracking-details div { display: grid; gap: 3px; padding: 13px; background: #f5f7f3; border-radius: 4px; }
.tracking-details span { color: #7d8981; font-size: 10px; }
.tracking-details strong { color: var(--forest); font-family: var(--font-heading); font-size: 17px; letter-spacing: .05em; }
.success-card .privacy-note { margin-bottom: 17px; padding: 12px; color: #69766e; background: #f7f8f5; font-size: 10px; }

.track-layout { grid-template-columns: minmax(0, 1fr) 275px; }
.track-form-card, .track-result { padding: 25px; border: 1px solid var(--line); border-radius: 7px; }
.track-lock { width: 33px; height: 33px; display: grid; place-items: center; margin-bottom: 13px; color: #52715d; background: #edf3e8; border-radius: 8px; font-family: var(--font-heading); font-weight: 800; }
.track-form-card h2, .track-result h2 { margin: 0; color: var(--forest); font-family: var(--font-heading); font-size: 21px; letter-spacing: -.035em; }
.track-form-card > p { margin: 5px 0 19px; color: #77827b; font-size: 11px; }
.track-form-card .report-form { max-width: 410px; }
.track-form-card .report-form .button { margin-top: 5px; }
.track-help { padding: 20px; background: #f7f9f5; border-radius: 6px; }
.track-help h3 { margin: 9px 0 6px; color: #30453a; font-family: var(--font-heading); font-size: 16px; }
.track-help p { margin: 0 0 13px; color: #718078; font-size: 10px; }
.track-help .text-link { font-size: 10px; }
.track-result-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.track-result-heading h2 { margin-top: 5px; }
.track-meta { margin: 7px 0 24px; color: #77837b; font-size: 11px; }
.track-meta span { margin: 0 5px; }
.track-result h3 { margin: 0 0 10px; color: #34463a; font-family: var(--font-heading); font-size: 13px; }
.empty-state.compact { margin-top: 0; }
.timeline { margin: 0; padding: 4px 0 0 8px; list-style: none; }
.timeline li { position: relative; display: flex; gap: 13px; padding: 0 0 19px; }
.timeline li:before { position: absolute; top: 11px; bottom: -1px; left: 5px; width: 1px; background: #dfe7dc; content: ''; }
.timeline li:last-child:before { display: none; }
.timeline-dot { position: relative; z-index: 1; width: 11px; height: 11px; flex: 0 0 11px; margin-top: 4px; background: #8eaa83; border: 2px solid #e9f0e5; border-radius: 50%; }
.timeline li > div { display: grid; }
.timeline-date { color: #859088; font-size: 9px; }
.timeline strong { color: #33463a; font-size: 11px; }
.timeline p { margin: 3px 0 0; color: #748079; font-size: 10px; }

.process-layout { grid-template-columns: minmax(0, 1fr) 305px; gap: 38px; }
.process-callout { display: flex; gap: 11px; padding: 14px; color: #536b59; background: #f0f5eb; border-radius: 5px; }
.callout-mark { width: 22px; height: 22px; flex: 0 0 22px; display: grid; place-items: center; color: #fff; background: #77946b; border-radius: 50%; font-size: 11px; font-weight: 800; }
.process-callout strong { font-size: 11px; }
.process-callout p { margin: 2px 0 0; color: #718071; font-size: 10px; }
.process-steps { margin: 24px 0 0; padding: 0; list-style: none; }
.process-steps li { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 14px; padding-bottom: 25px; }
.process-number { width: 35px; height: 35px; display: grid; place-items: center; color: #43664d; background: #edf3e8; border-radius: 9px; font-family: var(--font-heading); font-size: 12px; font-weight: 800; }
.process-steps h2 { margin: 4px 0 4px; color: #273a30; font-family: var(--font-heading); font-size: 17px; letter-spacing: -.03em; }
.process-steps p { margin: 0; color: #68766e; font-size: 11px; }
.step-example { display: inline-block; margin-top: 8px; padding: 5px 8px; color: #778178; background: #f7f8f5; border-radius: 3px; font-size: 9px; }
.process-cta { margin-left: 64px; }
.plain-list { margin: 14px 0 0; padding: 0; list-style: none; }
.plain-list li { padding: 8px 0; color: #d2ddd5; border-top: 1px solid rgba(255,255,255,.13); font-size: 10px; }

.site-footer { color: #ced8d1; background: #122e27; }
.footer-inner { min-height: 105px; display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-top: 18px; padding-bottom: 18px; }
.footer-inner strong { color: #eff3ed; font-family: var(--font-heading); font-size: 11px; }
.footer-inner p { margin: 3px 0 0; color: #aebdb3; font-size: 10px; }
.footer-note { display: grid; gap: 4px; color: #aebdb3; font-size: 9px; text-align: right; }
.footer-note a { color: #d7e5d9; font-weight: 700; text-decoration: none; }
.footer-note a:hover { text-decoration: underline; }

.public-documents-preview { padding-top: 38px; padding-bottom: 43px; }
.public-document-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.public-document-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 6px; }
.public-document-card h2, .public-document-card h3 { margin: 8px 0; color: var(--forest); font-family: var(--font-heading); font-size: 16px; line-height: 1.4; }
.public-document-card p { margin: 0 0 12px; color: #6d7971; font-size: 11px; }
.public-document-card .text-link { margin-top: auto; padding-top: 12px; font-size: 10px; }
.public-document-meta { display: grid; gap: 2px; margin-top: auto; color: #838e87; font-size: 9px; }
.public-document-card .button { margin-top: 12px; }
.public-documents { min-height: 360px; padding-top: 34px; padding-bottom: 60px; }
.miners-directory { padding-top: 24px; padding-bottom: 55px; }
.directory-notice { display: grid; gap: 4px; margin-bottom: 18px; padding: 13px 15px; color: #5c6b60; background: #f1f5ee; border-left: 3px solid #72936d; font-size: 10px; }
.directory-notice strong { color: #304a37; font-size: 11px; }
.miner-filter-form { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(150px, 220px) auto auto; align-items: end; gap: 12px; margin-bottom: 18px; padding: 15px; background: #f7f8f5; border: 1px solid var(--line); border-radius: 5px; }
.miner-filter-form .field { margin: 0; }
.miner-filter-form .button { min-height: 39px; white-space: nowrap; }
.miner-count { padding: 10px 0; color: #77837a; font-size: 9px; white-space: nowrap; }
.miner-register-table { overflow-x: auto; border: 1px solid var(--line); border-radius: 5px; }
.miner-table { width: 100%; min-width: 930px; border-collapse: collapse; background: #fff; text-align: left; }
.miner-table th { padding: 11px 12px; color: #758078; background: #f7f8f6; font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.miner-table td { padding: 12px; color: #4f5e54; border-top: 1px solid #edf0ec; font-size: 9px; vertical-align: top; }
.miner-table td strong, .miner-table td small { display: block; }
.miner-table td strong { color: #34483a; font-size: 10px; }
.miner-table td small { margin-top: 3px; color: #818c84; font-size: 8px; }
.miner-table td a { color: #426c4d; }
.miner-admin-form { max-width: 900px; }
.miner-admin-form .form-two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.quick-panel > .text-link { display: block; margin-top: 13px; }
.location-selectors { display: grid; grid-template-columns: 1fr; gap: 16px; }
.location-selectors .field { margin: 0; }
.location-selectors .field:last-of-type { grid-column: 1 / -1; }
.location-picker .location-search { margin-bottom: 6px; }
.location-picker select { min-height: 100px; }
.location-selectors > .location-result { grid-column: 1 / -1; margin: 0; }
.other-location-fields { grid-template-columns: 1fr 1fr; }
.other-location-fields .field:last-child { grid-column: 1 / -1; }
.check-control { display: flex; align-items: flex-start; gap: 10px; margin: 8px 0 12px; padding: 11px 12px; background: #f6f8f4; border: 1px solid #e8ede6; border-radius: 4px; cursor: pointer; }
.check-control input { flex: 0 0 auto; width: 15px; height: 15px; margin: 2px 0 0; accent-color: #426d4e; }
.check-control > span { display: grid; gap: 2px; }
.check-control strong { color: #405546; font-size: 10px; }
.check-control small { color: #7e8a82; font-size: 9px; font-weight: 400; }
.location-sharing { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 8px 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid #edf0ec; }
.location-sharing .check-control { flex: 1 1 100%; margin: 0; }
.location-button { min-height: 34px; }
.location-sharing .location-result { flex: 1 1 180px; align-self: center; margin: 0; }
.evidence-upload { margin-top: 18px; padding-top: 13px; border-top: 1px solid #edf0ec; }
.evidence-upload input { padding: 8px; }
.case-evidence { margin-top: 16px; padding-top: 13px; border-top: 1px solid #edf0ec; }
.case-evidence h3 { margin: 0 0 8px; color: #3b4e41; font-family: var(--font-heading); font-size: 12px; }
.case-evidence > p { margin: 5px 0; color: #7d8981; font-size: 9px; }
.case-evidence ul { margin: 0; padding: 0; list-style: none; }
.case-evidence li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-top: 1px solid #eff1ee; }
.case-evidence li > span { min-width: 0; display: grid; }
.case-evidence li strong { overflow-wrap: anywhere; color: #43564a; font-size: 10px; }
.case-evidence li small { color: #87918a; font-size: 8px; }
.evidence-audio { width: min(320px, 100%); height: 36px; margin-top: 6px; }

.admin-body { min-height: 100vh; background: #f4f6f3; font-size: 13px; }
.admin-header { position: sticky; top: 0; z-index: 10; height: 69px; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; background: #fff; border-bottom: 1px solid #e8ede8; }
.admin-brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.admin-brand > span:last-child { display: grid; gap: 1px; }
.admin-brand strong { color: var(--forest); font-family: var(--font-heading); font-size: 10px; letter-spacing: .1em; }
.admin-brand small { color: #7b8780; font-size: 9px; }
.admin-account { display: flex; align-items: center; gap: 17px; }
.admin-account > span { display: grid; color: #334239; font-size: 11px; font-weight: 700; text-align: right; }
.admin-account small { color: #838e86; font-size: 9px; font-weight: 400; }
.admin-account form { margin: 0; }
.admin-account button { padding: 7px 11px; color: #52675a; background: #f4f7f1; border: 0; border-radius: 4px; font-size: 10px; font-weight: 700; cursor: pointer; }
.admin-shell { min-height: calc(100vh - 69px); display: grid; grid-template-columns: 220px minmax(0, 1fr); }
.admin-sidebar { position: sticky; top: 69px; height: calc(100vh - 69px); display: flex; flex-direction: column; align-items: stretch; gap: 4px; padding: 24px 13px; background: #fff; border-right: 1px solid #e8ede8; }
.sidebar-label { padding: 0 10px 8px; color: #96a199; font-size: 8px; font-weight: 800; letter-spacing: .13em; }
.sidebar-label-spaced { margin-top: 18px; }
.admin-sidebar > a { display: block; padding: 10px 11px; color: #657169; border-radius: 4px; font-size: 11px; font-weight: 600; text-decoration: none; }
.admin-sidebar > a:hover { color: var(--forest); background: #f6f8f4; }
.admin-sidebar > a.active { color: var(--forest); background: #edf3e8; font-weight: 700; }
.admin-sidebar > a.sidebar-public-link { margin-top: auto; padding-top: 14px; border-top: 1px solid #edf0ec; }
.admin-content { width: min(1500px, 100%); min-width: 0; margin: 0 auto; padding: 29px 31px 50px; }
.admin-page-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 19px; }
.admin-page-heading h1 { margin: 4px 0 0; color: #21352b; font-family: var(--font-heading); font-size: clamp(22px, 2.5vw, 30px); letter-spacing: -.045em; }
.admin-clock { color: #819087; font-size: 10px; }
.admin-flash { margin-bottom: 16px; padding: 11px 14px; color: #365b43; background: #eaf2e6; border: 1px solid #dce9d6; border-radius: 4px; font-size: 11px; }
.flash-error { color: #813d35; background: #fff0ec; border-color: #f1d3cb; }
.admin-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.admin-stat { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 15px 17px; background: #fff; border: 1px solid #e6eae5; border-radius: 5px; }
.admin-stat > span { color: #738078; font-size: 10px; }
.admin-stat strong { margin: 3px 0; color: var(--forest); font-family: var(--font-heading); font-size: 25px; letter-spacing: -.04em; }
.admin-stat small { color: #89938d; font-size: 9px; }
.admin-grid-two { display: grid; grid-template-columns: 1.15fr .85fr; gap: 13px; margin-bottom: 14px; }
.admin-card { min-width: 0; margin-bottom: 14px; padding: 18px; background: #fff; border: 1px solid #e6eae5; border-radius: 5px; }
.admin-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.organization-heading-actions { display: flex; align-items: center; gap: 8px; }
.admin-card-heading h2 { margin: 4px 0 0; color: #2c3f33; font-family: var(--font-heading); font-size: 15px; letter-spacing: -.025em; }
.admin-card-heading .button { min-height: 36px; padding: 8px 12px; font-size: 10px; }
.admin-modal { position: fixed; inset: 0; z-index: 2000; display: none; }
.admin-modal[hidden] { display: none !important; }
.admin-modal.is-open { display: block; }
.admin-modal-backdrop { position: absolute; inset: 0; background: rgba(13, 20, 16, 0.45); }
.admin-modal-dialog { position: relative; z-index: 1; width: min(760px, calc(100% - 32px)); max-height: calc(100vh - 40px); margin: 24px auto; overflow: auto; padding: 18px; background: #f4f7f2; border: 1px solid #dfe8de; border-radius: 8px; box-shadow: 0 16px 32px rgba(17, 31, 26, 0.23); }
.admin-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin: -18px -18px 16px; padding: 16px 18px; background: #173b32; border-bottom: 1px solid #102c25; }
.admin-modal-header .eyebrow-dark { color: #c9ddb9; }
.admin-modal-header h2 { margin: 5px 0 0; color: #fff; font-family: var(--font-heading); font-size: 17px; }
.admin-modal-subtitle { max-width: 620px; margin: 5px 0 0; color: #d3e0d7; font-size: 11px; line-height: 1.6; }
.modal-close { width: 36px; height: 36px; border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .1); border-radius: 4px; color: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.modal-close:hover { background: rgba(255, 255, 255, .2); }
body.modal-open { overflow: hidden; }
.admin-table-wrap { width: 100%; overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; text-align: left; }
.admin-table tbody tr { transition: background-color .15s ease; }
.admin-table tbody tr:hover { background: #f3f7f1; }
.admin-table tbody tr.case-row-link { cursor: pointer; }
.admin-table tbody tr.case-row-link:focus-visible { outline: 2px solid #73947c; outline-offset: -2px; }
.admin-table th { padding: 8px 10px; color: #818c85; background: #f8f9f7; border-bottom: 1px solid #e8ece7; font-size: 8px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.admin-table td { padding: 10px; color: #536159; border-bottom: 1px solid #eef1ed; font-size: 10px; vertical-align: top; }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table td strong { color: #35463b; font-size: 10px; }
.admin-table td small { display: block; margin-top: 2px; color: #89938c; font-size: 9px; }
.admin-table td a:not(.text-link) { color: #38604a; text-decoration: none; }
.admin-table .status-tag { font-size: 8px; }
.admin-overdue { color: #a2483b; font-size: 9px; font-weight: 800; }
.admin-empty { margin: 0; padding: 17px; color: #79857d; background: #f7f9f6; border-radius: 4px; font-size: 10px; }
.district-bars { display: grid; gap: 11px; margin: 18px 0; }
.district-bar-row { display: grid; grid-template-columns: 74px minmax(40px, 1fr) 25px; align-items: center; gap: 9px; color: #657269; font-size: 9px; }
.district-bar-row > div { height: 7px; overflow: hidden; background: #edf1eb; border-radius: 10px; }
.district-bar-row i { height: 100%; display: block; background: #779a73; border-radius: 10px; }
.district-bar-row strong { color: #3e5345; text-align: right; }
.admin-mini-stats { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; padding-top: 12px; color: #758179; border-top: 1px solid #edf0ec; font-size: 9px; }
.admin-recent-card { margin-bottom: 14px; }
.admin-quick-links { padding: 16px 18px; background: #eef3e9; border-radius: 5px; }
.admin-quick-links > div { display: flex; flex-wrap: wrap; gap: 30px; margin-top: 12px; }
.admin-quick-links a { display: grid; gap: 1px; text-decoration: none; }
.admin-quick-links strong { color: #284b36; font-family: var(--font-heading); font-size: 19px; }
.admin-quick-links span { color: #748077; font-size: 9px; }
.case-filter-form { display: grid; grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(120px, 1fr)) auto; align-items: end; gap: 10px; padding: 0 0 15px; border-bottom: 1px solid #edf0ec; }
.case-filter-form .field { margin: 0; }
.case-filter-form .field label, .admin-form .field label { font-size: 10px; }
.case-filter-form .field input, .case-filter-form .field select, .admin-form .field input, .admin-form .field select, .admin-form .field textarea { min-height: 37px; font-size: 10px; }
.case-filter-form .button { min-height: 37px; padding: 8px 12px; font-size: 10px; }
.register-heading { margin-top: 19px; margin-bottom: 10px; }
.admin-hint { color: #79857e; font-size: 10px; line-height: 1.7; }
.case-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 275px; align-items: start; gap: 14px; }
.case-detail-main, .case-detail-side { min-width: 0; }
.case-detail-side .admin-card { padding: 15px; }
.case-detail-side h3 { margin: 7px 0 13px; color: #35483b; font-family: var(--font-heading); font-size: 13px; }
.admin-back-link { margin-bottom: 10px; }
.case-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.case-title-row h2 { margin: 6px 0 0; color: #26392e; font-family: var(--font-heading); font-size: 20px; letter-spacing: -.035em; }
.case-title-row .eyebrow { font-size: 8px; }
.case-description { margin: 17px 0; padding: 13px; color: #526056; background: #f8f9f7; border-radius: 4px; font-size: 11px; overflow-wrap: anywhere; }
.case-meta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.case-meta-grid > div, .reporter-details > div, .response-metrics > div { display: grid; gap: 2px; }
.case-meta-grid span, .reporter-details span, .response-metrics span { color: #89938d; font-size: 9px; }
.case-meta-grid strong, .reporter-details strong, .response-metrics strong { color: #3e5045; font-size: 10px; overflow-wrap: anywhere; }
.case-updates-card { padding-bottom: 8px; }
.timeline-heading { display: flex; align-items: center; gap: 7px; }
.visibility-label { padding: 2px 6px; border-radius: 3px; font-size: 8px; }
.visibility-public { color: #426a4c; background: #eaf3e8; }
.visibility-internal { color: #795f3a; background: #f7f0df; }
.admin-timeline { margin-top: 9px; }
.admin-timeline .timeline-date { margin-top: 2px; }
.admin-form .field textarea { min-height: 90px; }
.admin-form .button { margin-top: 4px; }
.compact-form { margin-top: 12px; }
.button-full { width: 100%; }
.button-outline-dark { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 7px 10px; color: #45644e; background: #fff; border: 1px solid #dce5db; border-radius: 4px; font-size: 10px; font-weight: 700; text-decoration: none; cursor: pointer; }
.button-outline-dark:hover { background: #f6f8f4; }
.response-metrics { display: grid; gap: 9px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #edf0ec; }
.reporter-details { display: grid; gap: 9px; margin-top: 12px; }
.review-note { margin: 0 0 15px; padding: 11px; color: #75453b; background: #fff2ef; border-radius: 4px; font-size: 10px; }
.review-note p { margin: 4px 0 0; }
.dark-list { padding: 0; list-style: none; }
.dark-list li { color: #66736a; border-top-color: #edf0ec; }
.district-bar-row > div { min-width: 0; }
.admin-map-layout { display: grid; grid-template-columns: minmax(0, 1fr); }
.map-card { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(260px, .8fr); gap: 0 23px; }
.map-card > .admin-card-heading, .map-card > .admin-hint, .map-card > .admin-empty, .map-card > .case-filter-form, .map-card > .list-pagination { grid-column: 1 / -1; }
.map-count { color: #66816c; font-size: 10px; }
.local-map { display: grid; place-items: center; min-height: 440px; background: #f5f8f4; border-radius: 5px; }
.local-map svg { width: min(100%, 380px); max-height: 560px; }
.map-lake { fill: #dcebf0; }
.map-malawi { fill: #d8e5cc; stroke: #8ba486; stroke-width: 2; }
.map-label { fill: #647766; font-size: 10px; font-weight: 700; letter-spacing: 1px; }
.map-point { fill: #b85945; stroke: #fff; stroke-width: 3; cursor: pointer; }
.map-point:hover { r: 9px; }
.map-case-list { display: flex; flex-direction: column; gap: 7px; padding-top: 10px; }
.map-case-list h3 { margin: 0 0 6px; color: #34463a; font-family: var(--font-heading); font-size: 12px; }
.map-case-list > a { display: flex; align-items: center; gap: 8px; padding: 8px; color: #47574d; background: #f9faf8; border-radius: 4px; text-decoration: none; }
.map-list-dot { width: 7px; height: 7px; flex: 0 0 7px; background: #b85945; border-radius: 50%; }
.map-case-list > a > span:nth-child(2) { min-width: 0; display: grid; margin-right: auto; }
.map-case-list strong { font-size: 9px; }
.map-case-list small { color: #808b84; font-size: 8px; }
.private-coordinate-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 10px; }
.private-coordinate-row > span, .private-coordinate-row > strong { grid-column: 1; }
.view-location-button { grid-column: 2; grid-row: 1 / span 2; min-height: 34px; padding: 7px 10px; font-size: 10px; }
.location-modal { position: fixed; inset: 0; width: min(944px, calc(100% - 44px)); max-width: none; max-height: calc(100% - 44px); padding: 18px; border: 1px solid #dfe8de; border-radius: 7px; background: #f4f7f2; box-shadow: 0 20px 70px rgba(0, 0, 0, .28); }
.location-modal::backdrop { background: rgba(12, 28, 22, .72); }
.location-modal-panel { width: min(900px, 100%); overflow: hidden; padding: 18px; background: #fff; border-radius: 7px; box-shadow: 0 20px 70px rgba(0, 0, 0, .28); }
.location-modal-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: -18px -18px 16px; padding: 16px 18px; background: #173b32; border-bottom: 1px solid #102c25; }
.location-modal-heading .eyebrow-dark { color: #c9ddb9; }
.location-modal-heading h2 { margin: 3px 0 0; color: #fff; font-family: var(--font-heading); font-size: 20px; }
.location-modal-subtitle { max-width: 760px; margin: 5px 0 0; color: #d3e0d7; font-size: 11px; line-height: 1.6; }
.location-modal-close { width: 36px; height: 36px; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .28); border-radius: 4px; font-size: 25px; line-height: 1; cursor: pointer; }
.location-modal-close:hover { background: rgba(255, 255, 255, .2); }
.location-modal iframe { width: 100%; height: min(65vh, 560px); display: block; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.location-modal-note { margin: 9px 0 0; color: #78847c; font-size: 9px; }
.location-modal-note a { color: #315b48; }
.organization-list { display: grid; }
.list-toolbar { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(135px, 190px) auto auto; align-items: end; gap: 10px; margin: 0 0 15px; padding: 13px; background: #f8f9f7; border: 1px solid var(--line); border-radius: 5px; }
.list-toolbar .field { min-width: 0; margin: 0; }
.list-toolbar .button { min-height: 38px; padding: 8px 12px; white-space: nowrap; }
.list-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; color: #758078; border-top: 1px solid #edf0ec; font-size: 10px; }
.list-pagination > div, .list-actions { display: flex; align-items: center; gap: 10px; }
.list-pagination a { padding: 6px 9px; color: #315b48; border: 1px solid #dfe7de; border-radius: 4px; font-weight: 700; text-decoration: none; }
.list-pagination a:hover { background: #f4f7f2; }
.list-page-indicator { padding: 0 3px; }
.list-actions .button { min-height: 34px; padding: 7px 10px; font-size: 9px; white-space: nowrap; }
.organization-table { min-width: 860px; }
.organization-table th, .organization-table td { vertical-align: middle; }
.organization-table th .organization-sort { display: inline-flex; align-items: center; gap: 5px; color: inherit; text-decoration: none; }
.organization-table th .organization-sort:hover { color: #315b48; }
.organization-sort span { color: #89938c; font-size: 11px; line-height: 1; }
.organization-table td:first-child { min-width: 250px; }
.organization-table td:first-child > strong { display: block; }
.organization-name-edit { display: block; padding: 0; color: #35463b; background: transparent; border: 0; font: inherit; font-size: 10px; font-weight: 700; text-align: left; cursor: pointer; }
.organization-name-edit:hover { color: #315b48; text-decoration: underline; }
.organization-name-edit:focus-visible { outline: 2px solid #73947c; outline-offset: 3px; }
.organization-name-edit s { color: #657269; text-decoration-color: #cf756b; text-decoration-thickness: 1px; }
.organization-table td small { display: block; }
.organization-actions-heading, .organization-table td:last-child { text-align: right; }
.organization-row-actions { display: flex; justify-content: flex-end; gap: 6px; }
.organization-row-actions form { margin: 0; }
.organization-row-actions .button { min-height: 32px; padding: 6px 9px; font-size: 9px; white-space: nowrap; }
.organization-confirm-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.organization-user-badges { display: flex; align-items: center; gap: 5px; margin-top: 6px; }
.organization-users-label, .organization-users-count { display: inline-flex; align-items: center; padding: 3px 7px; border-radius: 12px; line-height: 1.3; }
.organization-users-label { color: #fff; background: #315b48; border: 0; font: inherit; font-size: 9px; cursor: pointer; }
.organization-users-label:hover { background: #244b3a; }
.organization-users-count { color: #536357; background: #e8eee8; font-weight: 600; }
.organization-modal-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.organization-modal-toolbar p { margin: 0; color: #758179; font-size: 11px; }
.organization-modal-toolbar .button { min-height: 35px; padding: 7px 11px; font-size: 10px; white-space: nowrap; }
.organization-user-table { min-width: 580px; }
.organization-user-table td { vertical-align: middle; }
.organization-user-table td:nth-child(2) { overflow-wrap: anywhere; }
.organization-user-table .status-tag { white-space: nowrap; }
.organization-row-actions button:disabled { color: #a2aaa4; cursor: not-allowed; }
.organization-add-card { margin-top: 14px; }
.user-create-form { max-width: 760px; padding: 15px; background: #f8f9f7; border-radius: 4px; }
.category-editor-form { display: grid; gap: 12px; }
.category-form-actions { position: sticky; bottom: -18px; z-index: 2; margin: 0 -18px -18px; padding: 12px 18px 18px; background: #f4f7f2; border-top: 1px solid #dfe8de; }
.category-form-actions .button { width: 100%; }
.category-row-trigger { cursor: pointer; }
.category-row-trigger:focus-visible { outline: 2px solid #73947c; outline-offset: -2px; }
.category-search-toolbar { grid-template-columns: minmax(0, 1fr); align-items: end; }
.category-search-toolbar .field { position: relative; }
.category-search-toolbar .field small { position: absolute; top: 100%; left: 0; margin-top: 4px; }
.category-active-option, .category-organization-option { display: flex; align-items: flex-start; gap: 9px; color: #35443b; font-size: 11px; }
.category-organization-option { flex-direction: row-reverse; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; padding: 7px 9px; background: #fff; border: 1px solid #e8ece7; border-radius: 4px; cursor: pointer; }
.category-organization-option > span { flex: 1; }
.category-active-option input, .category-organization-option input { width: auto; min-height: 0; margin: 0; }
.category-editor-dialog { width: min(900px, calc(100% - 32px)); }
.organization-edit-dialog { width: min(760px, calc(100% - 32px)); }
.category-organization-picker { display: grid; grid-template-columns: 1fr; gap: 6px; max-height: min(70vh, 560px); overflow-y: auto; margin: 0; padding: 12px; border: 1px solid #e1e7e0; border-radius: 4px; }
.category-organization-picker legend { padding: 0 5px; color: #35443b; font-size: 11px; font-weight: 700; }
.category-organization-option small { display: block; margin-top: 3px; color: #89938d; font-size: 9px; }
.admin-muted { color: #89938d; font-size: 10px; }
.document-review-list { display: grid; }
.document-review-item { padding: 14px 0; border-top: 1px solid #edf0ec; }
.document-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.document-heading h3 { margin: 4px 0; color: #2c4134; font-family: var(--font-heading); font-size: 14px; }
.document-review-item > p { margin: 0 0 11px; color: #77827b; font-size: 9px; }
.document-review-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 10px; padding: 11px; background: #f8f9f7; border-radius: 4px; }
.document-review-form .field { margin: 0; }
.document-review-form .field textarea { min-height: 58px; }
.document-review-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.document-review-actions .button { min-height: 35px; padding: 7px 9px; font-size: 9px; }
.document-review-note { color: #8a5a3e !important; }
.portal-filter { grid-template-columns: minmax(200px, 300px) auto; justify-content: start; margin-bottom: 15px; }
.portal-privacy { margin-top: 15px; }

.login-body { min-height: 100vh; display: grid; place-items: center; padding: 25px; background: #f3f6f1; }
.login-shell { width: min(410px, 100%); }
.login-brand { margin-bottom: 21px; }
.login-card { padding: 27px; background: #fff; border: 1px solid #e6eae5; border-radius: 7px; box-shadow: 0 15px 45px rgba(24,54,39,.06); }
.login-card h1 { margin: 6px 0; color: #21392b; font-family: var(--font-heading); font-size: 25px; letter-spacing: -.04em; }
.login-card > p { margin: 0 0 18px; color: #748078; font-size: 11px; }
.login-card .form-errors { font-size: 10px; }
.login-card .button { margin-top: 8px; }
.login-back { display: block; margin-top: 17px; color: #728078; font-size: 10px; text-align: center; text-decoration: none; }
.change-password-logout { margin-top: 14px; text-align: center; }

@media (max-width: 820px) {
    .hero-grid { gap: 30px; }
    .form-layout, .track-layout, .process-layout { grid-template-columns: minmax(0, 1fr) 240px; gap: 23px; }
    .form-layout { grid-template-columns: 1fr; }
    .form-sidebar { grid-template-columns: 1fr 1fr; }
    .primary-nav { gap: 18px; }
    .partner-names { gap: 15px; }
    .miner-filter-form { grid-template-columns: minmax(0, 1fr) minmax(130px, 180px); }
    .miner-filter-form .button { width: 100%; }
    .miner-count { align-self: center; }
    .list-toolbar { grid-template-columns: minmax(0, 1fr) minmax(135px, 180px); }
    .list-toolbar .button { width: 100%; }
}
@media (max-width: 650px) {
    .container, .header-inner { width: min(100% - 34px, 520px); }
    .header-inner { height: 68px; }
    .brand-copy small { font-size: 9px; }
    .menu-toggle { display: block; padding: 7px 10px; color: var(--forest); background: #f2f5ef; border: 0; border-radius: 4px; font-size: 11px; font-weight: 700; }
    .primary-nav { position: absolute; top: 67px; right: 0; left: 0; display: none; align-items: stretch; gap: 0; padding: 8px 17px 15px; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 10px 15px rgba(18,46,39,.07); }
    .primary-nav.is-open { display: flex; flex-direction: column; }
    .primary-nav a { padding: 11px 5px; }
    .primary-nav .nav-cta { margin-top: 5px; padding: 10px 12px; text-align: center; }
    .hero-grid { grid-template-columns: 1fr; gap: 29px; padding-top: 38px; padding-bottom: 38px; }
    .hero-grid:after { right: -240px; bottom: 115px; width: 350px; height: 350px; }
    .hero h1 { font-size: 43px; }
    .hero-card { max-width: 440px; }
    .dashboard-section { padding-top: 35px; padding-bottom: 38px; }
    .section-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
    .stats-grid { grid-template-columns: 1fr; gap: 9px; }
    .stat-card { min-height: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 12px; padding: 13px 16px; }
    .stat-label { grid-column: 1; }
    .stat-card strong { grid-column: 2; grid-row: 1 / span 2; margin: 0; font-size: 26px; }
    .stat-foot { grid-column: 1; }
    .dashboard-columns { grid-template-columns: 1fr; }
    .panel { padding: 17px; }
    .trust-inner { align-items: flex-start; flex-direction: column; justify-content: center; gap: 11px; padding-top: 17px; padding-bottom: 17px; }
    .partner-names { flex-wrap: wrap; gap: 10px 18px; }
    .page-intro { padding-top: 25px; }
    .page-intro h1 { font-size: 35px; }
    .form-layout, .track-layout, .process-layout { grid-template-columns: 1fr; gap: 23px; padding-top: 25px; padding-bottom: 38px; }
    .form-sidebar { grid-template-columns: 1fr 1fr; }
    .form-two-col { grid-template-columns: 1fr; gap: 0; }
    .form-submit { align-items: flex-start; flex-direction: column; }
    .form-submit-actions { width: 100%; }
    .form-submit-actions { gap: 12px; }
    /* Report form on phones: every tile, card and button uses the full width. */
    .form-sidebar { grid-template-columns: 1fr; }
    .choice-grid, .choice-grid-3 { grid-template-columns: 1fr; gap: 10px; }
    .choice-tile { min-height: 68px; flex-direction: row; justify-content: flex-start; gap: 14px; padding: 12px 48px 12px 16px; text-align: left; }
    .choice-tile.is-selected::after { top: 50%; right: 14px; transform: translateY(-50%); }
    .choice-icon { width: 40px; flex: 0 0 40px; font-size: 32px; text-align: center; }
    .choice-label { font-size: 15px; }
    .report-form.is-wizard legend { font-size: 19px; }
    .voice-recorder { flex-direction: column; text-align: center; }
    .voice-status { flex: 0 0 auto; width: 100%; }
    .voice-preview { flex-direction: column; align-items: stretch; }
    .voice-preview audio { flex: 0 0 auto; width: 100%; }
    .voice-delete { width: 100%; }
    .location-sharing { flex-direction: column; align-items: stretch; }
    .location-sharing .location-result { flex: 0 0 auto; }
    .location-button { width: 100%; min-height: 50px; border-radius: 10px; font-size: 14px; }
    .photo-picker { width: 100%; }
    .form-submit p { max-width: none; }
    .form-submit-actions { flex-direction: column; }
    .form-submit-actions .button { width: 100%; min-width: 0; }
    .wizard-nav { flex-direction: column-reverse; gap: 10px; }
    .wizard-nav .button { width: 100%; min-width: 0; min-height: 52px; }
    .report-form.is-wizard .form-two-col { grid-template-columns: 1fr; }
    .success-card { padding: 20px; }
    .tracking-details { grid-template-columns: 1fr; }
    .track-help { order: -1; }
    .process-sidebar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .side-card { padding: 16px; }
    .side-card-dark h2 { font-size: 18px; }
    .process-cta { margin-left: 0; }
    .footer-inner { align-items: flex-start; flex-direction: column; justify-content: center; gap: 10px; padding-top: 18px; padding-bottom: 18px; }
    .footer-note { text-align: left; }
}
@media (max-width: 420px) {
    .form-sidebar, .process-sidebar { grid-template-columns: 1fr; }
    .panel-heading { align-items: flex-start; flex-direction: column; }
    .report-row { flex-wrap: wrap; }
    .report-row .status-tag { margin-left: 38px; }
    .track-result { padding: 18px; }
    .track-result-heading { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 1000px) {
    .admin-shell { grid-template-columns: 190px minmax(0, 1fr); }
    .admin-content { padding: 24px 20px 40px; }
    .case-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .case-filter-form .field:first-child { grid-column: span 2; }
    .map-card { grid-template-columns: 1fr; }
    .map-case-list { display: grid; grid-template-columns: 1fr 1fr; }
    .map-case-list h3 { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
    .admin-header { height: 62px; padding: 0 14px; }
    .admin-header .brand-mark { width: 33px; height: 33px; }
    .admin-account { gap: 8px; }
    .admin-account > span { max-width: 135px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
    .admin-account small { overflow: hidden; text-overflow: ellipsis; }
    .admin-shell { min-height: calc(100vh - 62px); grid-template-columns: 1fr; }
    .admin-sidebar { position: static; height: auto; flex-direction: row; flex-wrap: wrap; gap: 3px; padding: 8px 10px; border-right: 0; border-bottom: 1px solid #e8ede8; }
    .admin-sidebar .sidebar-label { display: none; }
    .admin-sidebar > a { padding: 7px 8px; font-size: 9px; }
    .admin-sidebar > a.sidebar-public-link { margin-top: 0; padding-top: 7px; border-top: 0; }
    .admin-content { padding: 18px 13px 30px; }
    .admin-page-heading { margin-bottom: 12px; }
    .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .admin-stat { padding: 11px; }
    .admin-stat strong { font-size: 21px; }
    .admin-grid-two { grid-template-columns: 1fr; gap: 0; }
    .admin-card { margin-bottom: 10px; padding: 13px; }
    .case-detail-grid { grid-template-columns: 1fr; gap: 0; }
    .case-detail-side { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
    .case-detail-side .admin-card { margin-bottom: 10px; }
    .admin-table { min-width: 720px; }
    .case-filter-form { grid-template-columns: 1fr 1fr; }
    .case-filter-form .field:first-child { grid-column: 1 / -1; }
    .case-filter-form .button { grid-column: 1 / -1; }
    .document-review-form { grid-template-columns: 1fr; }
    .document-review-actions { justify-content: flex-start; }
    .public-document-grid { grid-template-columns: 1fr; }
    .public-documents-preview { padding-top: 29px; padding-bottom: 32px; }
    .miner-filter-form { grid-template-columns: 1fr 1fr; }
    .miner-filter-form .field:first-child { grid-column: 1 / -1; }
    .miner-filter-form .button { width: 100%; }
    .miner-count { align-self: center; }
    .miner-admin-form .form-two-col { grid-template-columns: 1fr; }
    .list-toolbar { grid-template-columns: 1fr 1fr; }
    .list-toolbar .field:first-child { grid-column: 1 / -1; }
    .list-pagination { align-items: flex-start; flex-direction: column; }
    .list-actions { align-items: flex-start; flex-direction: column; }
    .map-case-list { grid-template-columns: 1fr; }
    .map-case-list h3 { grid-column: 1; }
}
@media (max-width: 450px) {
    .admin-account > span { display: none; }
    .admin-stat-grid { grid-template-columns: 1fr 1fr; }
    .case-detail-side { grid-template-columns: 1fr; gap: 0; }
    .case-filter-form { grid-template-columns: 1fr; }
    .case-filter-form .field:first-child, .case-filter-form .button { grid-column: 1; }
    .case-meta-grid { grid-template-columns: 1fr; }
    .organization-row-actions { align-items: flex-end; flex-direction: column; }
    .organization-heading-actions { align-items: stretch; flex-direction: column; }
    .category-organization-picker { max-height: 65vh; }
    .document-heading { align-items: flex-start; flex-direction: column; }
    .case-title-row { flex-direction: column; }
}
@media (min-width: 451px) and (max-width: 720px) {
    .category-organization-picker { max-height: 65vh; }
}
