:root { color-scheme: light; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: #182433; background: #f6f8fb; line-height: 1.6; }
body { margin: 0; }
a { color: #0054a6; overflow-wrap: anywhere; }
.site-header, main, footer { max-width: 1040px; margin: auto; padding: 1.5rem; }
main:has(> .public-case) { width: 95%; max-width: none; box-sizing: border-box; padding-inline: 0; }
.site-header { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; border-bottom: 1px solid #dce1e7; }
nav { display: flex; gap: 1rem; flex-wrap: wrap; }
h1 { font-size: 2rem; line-height: 1.2; }
h2 { font-size: 1.4rem; line-height: 1.3; }
article, .case-list li { background: white; border: 1px solid #dce1e7; border-radius: .5rem; padding: 1.5rem; margin-bottom: 1rem; }
.case-list { list-style: none; padding: 0; }
.case-list h2 { margin-top: 0; }
.case-description { white-space: pre-line; overflow-wrap: anywhere; }
.case-images-carousel { max-width: 900px; margin-inline: auto; }
.case-images-carousel .carousel-inner { background: #f6f8fb; border-radius: .5rem; }
.case-images-carousel .carousel-item img { width: 100%; max-height: 70vh; object-fit: contain; }
.case-carousel-caption { padding: .75rem 1rem; text-align: center; overflow-wrap: anywhere; }
.case-carousel-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem; margin-top: .75rem; }
.case-carousel-indicators { position: static; display: flex; gap: .35rem; width: auto; margin: 0; }
.case-carousel-indicators button { width: 2.25rem; height: 2.25rem; margin: 0; border: 1px solid #dce1e7; border-radius: .25rem; background: white; color: #0054a6; text-indent: 0; opacity: 1; }
.case-carousel-indicators button.active { background: #0054a6; color: white; }
.case-youtube-videos { max-width: 900px; margin: 1.25rem auto; }
.case-youtube-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.case-youtube-link { display: block; color: inherit; text-decoration: none; }
.case-youtube-link img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid #dce1e7; border-radius: .5rem; }
.case-youtube-link span { display: block; padding-top: .5rem; overflow-wrap: anywhere; }
.case-youtube-link:hover span, .case-youtube-link:focus-visible span { color: #0054a6; text-decoration: underline; }
.case-public-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }
.case-correction-link { display: inline-flex; align-items: center; gap: .5rem; color: #0054a6; text-decoration: none; }
.case-correction-link img { width: 24px; height: 24px; object-fit: contain; }
.case-correction-link:hover, .case-correction-link:focus-visible { text-decoration: underline; }
@media (max-width: 600px) { .case-carousel-controls { gap: .35rem; } .case-carousel-controls > .btn { padding-inline: .5rem; } }
figure { margin: 0; }
img { max-width: 100%; height: auto; border-radius: .25rem; }
dt { font-weight: 600; } dd { margin: 0 0 .75rem; }
footer, .case-date { color: #536477; }
.case-tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.case-tag { display: inline-flex; align-items: center; padding: .25rem .5rem; border: 1px solid #cbd5e1; border-radius: 999px; background: #f1f5f9; color: #475569; font: inherit; line-height: 1.2; }
.case-category-pill {
    --category-color: #64748b;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .25rem .6rem;
    border: 1px solid var(--category-color);
    border-radius: 999px;
    background: color-mix(in srgb, var(--category-color) 12%, white);
    color: var(--category-color);
    font: inherit;
    line-height: 1.2;
    text-align: left;
    cursor: pointer;
}
.case-category-pill:hover, .case-category-pill:focus-visible { background: var(--category-color); color: #fff; }
.category-icon-arson { --category-color: #f97316; }
.category-icon-assault { --category-color: #7c3aed; }
.category-icon-burglary { --category-color: #16a34a; }
.category-icon-disturbing-the-peace { --category-color: #16a34a; }
.category-icon-drugs-alcohol-violations { --category-color: #06b6d4; }
.category-icon-dui { --category-color: #e11d48; }
.category-icon-fraud { --category-color: #f97316; }
.category-icon-homicide { --category-color: #dc2626; }
.category-icon-motor-vehicle-theft { --category-color: #2563eb; }
.category-icon-road-accident { --category-color: #2563eb; }
.category-icon-robbery { --category-color: #eab308; }
.category-icon-sex-crimes { --category-color: #14b8a6; }
.category-icon-theft { --category-color: #d946ef; }
.category-icon-vandalism { --category-color: #c2410c; }
.category-icon-weapons { --category-color: #2563eb; }

/* Standalone public pages */
.public-info-page,
.public-form-page {
    margin: 0;
    min-height: 100vh;
    padding: 5vh 0;
    background: #e2e8f0;
    color: #1f2937;
    font: 16px/1.65 Arial, sans-serif;
}

.public-info-page *,
.public-form-page * { box-sizing: border-box; }

.public-info-page .about-card,
.public-info-page .support-card,
.public-form-page .card {
    position: relative;
    width: 90%;
    margin: 0 auto;
    padding: clamp(20px, 4vw, 48px);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 32px rgba(15, 23, 42, 0.18);
}

.public-info-page .banner,
.public-form-page .banner {
    display: block;
    width: min(600px, 100%);
    height: auto;
    margin: 24px auto 32px;
}

.public-info-page .about-copy,
.public-info-page .support-copy,
.public-form-page .content { max-width: 760px; margin: 0 auto; }

.public-info-page h1,
.public-info-page h2 { margin: 0 0 12px; font-size: 24px; line-height: 1.3; }
.public-form-page h1 { font-size: 24px; line-height: 1.3; }
.public-form-page h2 { font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.public-info-page p { margin: 0; }
.public-info-page section + section { margin-top: 28px; padding-top: 28px; border-top: 1px solid #e2e8f0; }
.public-info-page a,
.public-form-page a { color: #1d4ed8; }
.public-info-page a:focus-visible { outline: 2px solid #2563eb; outline-offset: 4px; }
.public-form-page :is(a, button, input, textarea):focus-visible { outline: 2px solid #2563eb; outline-offset: 3px; }

.public-info-page .close,
.public-form-page .close {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    color: #475569;
    font-size: 28px;
    text-decoration: none;
}
.public-info-page .close:hover,
.public-form-page .close:hover { background: #f1f5f9; }
.public-info-page .back-link,
.public-info-page .flag-counter { display: inline-block; margin-top: 28px; }
.public-form-page .back { display: inline-block; margin-top: 24px; }
.public-info-page .flag-counter { text-align: center; }
.public-info-page .flag-counter img { max-width: 100%; height: auto; border: 0; }

.public-form-page label { display: block; margin: 20px 0 6px; font-weight: 600; }
.public-form-page input,
.public-form-page textarea { display: block; width: 100%; border: 1px solid #94a3b8; border-radius: 6px; padding: 10px; font: inherit; color: inherit; background: #fff; }
.public-form-page textarea { height: 3.3em; min-height: 3.3em; resize: vertical; }
.public-form-page .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.public-form-page .action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 16px; border: 1px solid #cbd5e1; border-radius: 6px; background: #f1f5f9; color: #1f2937; text-decoration: none; font: inherit; cursor: pointer; }
.public-form-page .action img { width: 24px; height: 24px; }
.public-form-page .send { background: #dbeafe; border-color: #93c5fd; }
.public-form-page .action:hover { background: #e2e8f0; }
.public-form-page .notice { padding: 14px; border-radius: 6px; overflow-wrap: anywhere; }
.public-form-page .error { background: #fee2e2; color: #991b1b; }
.public-form-page .success { background: #dcfce7; color: #166534; }
.public-form-page .hint { font-size: 14px; color: #475569; }
.public-form-page .trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.public-form-page span[lang="en"] + span[lang="pl"]::before { content: ' / '; }

.ko-fi-frame { display: block; width: 100%; margin-top: 20px; padding: 4px; border: none; background: #f9f9f9; }
