:root {
    --tm-dark: #17202a;
    --tm-red: #b91c1c;
    --tm-soft: #f4f6f8;
}

body {
    background: #fff;
    color: #1f2937;
}

.tm-navbar {
    background: linear-gradient(135deg, var(--tm-dark), #263445);
}

.tm-hero {
    background: radial-gradient(circle at top right, rgba(185, 28, 28, .35), transparent 32%), linear-gradient(135deg, #17202a, #334155);
    color: #fff;
    padding: 5rem 0;
}

.tm-card {
    border: 0;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .08);
    border-radius: 1rem;
}

.tm-badge {
    background: rgba(185, 28, 28, .12);
    color: var(--tm-red);
    border-radius: 999px;
    padding: .35rem .75rem;
    font-weight: 700;
}

.tm-status {
    border-radius: 999px;
    padding: .25rem .65rem;
    font-weight: 700;
    font-size: .8rem;
    display: inline-flex;
}

.tm-status-reported { background: #eef2ff; color: #3730a3; }
.tm-status-in_review { background: #fff7ed; color: #9a3412; }
.tm-status-confirmed { background: #ecfdf5; color: #047857; }
.tm-status-rejected { background: #fef2f2; color: #b91c1c; }
.tm-status-archive { background: #f3f4f6; color: #374151; }

.tm-map {
    min-height: 520px;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .08);
}

.tm-map-small {
    min-height: 280px;
}

.table > :not(caption) > * > * {
    vertical-align: middle;
}

.tm-admin-actions {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}


.tm-media-admin-card {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    height: 100%;
}

.tm-media-admin-card img {
    width: 100%;
    height: 210px;
    object-fit: cover;
    display: block;
    background: #f3f4f6;
}

.tm-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1rem;
}

.tm-gallery-item {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: .9rem;
    overflow: hidden;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
}

.tm-gallery-item img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    display: block;
}

.tm-gallery-item span {
    display: block;
    padding: .65rem .75rem;
    font-size: .9rem;
    color: #4b5563;
}


.tm-stat-row {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) 2fr;
    gap: 1rem;
    align-items: center;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

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

.tm-stat-row strong,
.tm-stat-row span {
    display: block;
}

.tm-stat-row span {
    color: #6b7280;
    font-size: .9rem;
}

.tm-stat-bar {
    height: .7rem;
    border-radius: 999px;
    overflow: hidden;
    background: #e5e7eb;
}

.tm-stat-bar span {
    height: 100%;
    display: block;
    background: linear-gradient(90deg, var(--tm-red), #334155);
}

@media (max-width: 575.98px) {
    .tm-stat-row {
        grid-template-columns: 1fr;
        gap: .5rem;
    }
}

.tm-keyfacts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
}

.tm-keyfact {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.tm-keyfact span {
    display: block;
    color: #6b7280;
    font-size: .85rem;
    margin-bottom: .25rem;
}

.tm-keyfact strong {
    display: block;
    color: #111827;
    font-size: 1.05rem;
}

.tm-detail-accordion .accordion-item {
    border-color: rgba(15, 23, 42, .08);
}

.tm-detail-accordion .accordion-button {
    font-weight: 700;
}

.tm-detail-list > div {
    display: grid;
    grid-template-columns: minmax(150px, 220px) 1fr;
    gap: 1rem;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-detail-list > div:last-child {
    border-bottom: 0;
}

.tm-detail-list dt {
    color: #4b5563;
    font-weight: 700;
}

.tm-detail-list dd {
    margin-bottom: 0;
}

@media (max-width: 575.98px) {
    .tm-detail-list > div {
        grid-template-columns: 1fr;
        gap: .25rem;
    }
}

.tm-filter-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tm-filter-chips span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: .85rem;
    font-weight: 700;
    padding: .35rem .75rem;
}

.tm-map-summary h3 {
    font-size: .9rem;
    color: #6b7280;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .75rem;
}

.tm-map-summary > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-map-summary > div:last-child {
    border-bottom: 0;
}

.tm-map-summary span {
    color: #374151;
}

.tm-map-summary strong {
    min-width: 2.2rem;
    text-align: right;
}

.tm-map-popup {
    min-width: 220px;
}

.tm-map-popup strong {
    display: block;
    font-size: 1rem;
    margin-bottom: .25rem;
}

.tm-popup-muted {
    color: #6b7280;
    font-size: .85rem;
    margin-bottom: .35rem;
}

.tm-popup-tags {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin-top: .5rem;
}

.tm-popup-tags span {
    display: inline-flex;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: .75rem;
    font-weight: 700;
    padding: .2rem .5rem;
}

.leaflet-interactive.tm-marker-tornado {
    stroke: #7f1d1d;
    fill: #b91c1c;
}

.leaflet-interactive.tm-marker-waterspout {
    stroke: #075985;
    fill: #0284c7;
}

.leaflet-interactive.tm-marker-funnel {
    stroke: #581c87;
    fill: #9333ea;
}

.leaflet-interactive.tm-marker-landspout {
    stroke: #854d0e;
    fill: #d97706;
}

.leaflet-interactive.tm-marker-dust {
    stroke: #78350f;
    fill: #f59e0b;
}

.leaflet-interactive.tm-marker-downburst {
    stroke: #312e81;
    fill: #4f46e5;
}

.leaflet-interactive.tm-marker-hail {
    stroke: #0f766e;
    fill: #14b8a6;
}

.leaflet-interactive.tm-marker-storm {
    stroke: #713f12;
    fill: #ca8a04;
}

.leaflet-interactive.tm-marker-rain {
    stroke: #1e40af;
    fill: #3b82f6;
}

.leaflet-interactive.tm-marker-other {
    stroke: #374151;
    fill: #6b7280;
}


.tm-events-table th {
    white-space: nowrap;
    color: #6b7280;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.tm-type-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: .8rem;
    font-weight: 800;
    padding: .25rem .65rem;
    white-space: nowrap;
}

.tm-event-list-mobile {
    display: grid;
    gap: 1rem;
}

.tm-event-card {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
}

.tm-event-card h2 {
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0 0 .25rem;
}

.tm-event-card p {
    margin: 0;
    color: #6b7280;
}

.tm-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .85rem;
}

.tm-event-meta span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: .78rem;
    font-weight: 700;
    padding: .25rem .6rem;
}

.tm-home-hero {
    background: radial-gradient(circle at 85% 15%, rgba(185, 28, 28, .35), transparent 32%), linear-gradient(135deg, #17202a, #334155);
    color: #fff;
    padding: 5rem 0;
}

.tm-hero-panel {
    background: rgba(255, 255, 255, .10);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 1.25rem;
    padding: 1.5rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .18);
    backdrop-filter: blur(10px);
}

.tm-home-mini-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.tm-home-mini-grid > div {
    background: rgba(255, 255, 255, .10);
    border-radius: 1rem;
    padding: .85rem;
}

.tm-home-mini-grid span {
    display: block;
    color: rgba(255, 255, 255, .68);
    font-size: .82rem;
}

.tm-home-mini-grid strong {
    display: block;
    color: #fff;
    font-size: 1.4rem;
}

.tm-progress-light {
    height: .6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    overflow: hidden;
}

.tm-progress-light span {
    display: block;
    height: 100%;
    background: #fff;
    border-radius: inherit;
}

.tm-event-teaser-list {
    display: grid;
    gap: .75rem;
}

.tm-event-teaser {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    color: inherit;
    text-decoration: none;
    background: #fff;
    transition: transform .15s ease, box-shadow .15s ease;
}

.tm-event-teaser:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}

.tm-event-teaser strong,
.tm-event-teaser span,
.tm-event-teaser small {
    display: block;
}

.tm-event-teaser span,
.tm-event-teaser small {
    color: #6b7280;
}

.tm-home-statline {
    display: grid;
    grid-template-columns: minmax(105px, 1fr) 1.4fr;
    gap: 1rem;
    align-items: center;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-home-statline:last-child {
    border-bottom: 0;
}

.tm-home-statline strong,
.tm-home-statline span {
    display: block;
}

.tm-home-statline span {
    color: #6b7280;
    font-size: .85rem;
}

.tm-home-statline-link {
    color: inherit;
    text-decoration: none;
}

.tm-home-statline-link:hover strong {
    color: var(--tm-red);
}

@media (max-width: 575.98px) {
    .tm-home-hero {
        padding: 3.5rem 0;
    }

    .tm-event-teaser,
    .tm-home-statline {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: flex-start;
    }

    .tm-event-teaser .text-end {
        text-align: left !important;
    }
}

.tm-report-hero {
    background: radial-gradient(circle at top right, rgba(185, 28, 28, .28), transparent 32%), linear-gradient(135deg, #17202a, #334155);
    color: #fff;
    border-radius: 1.25rem;
    padding: 2rem;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .16);
}

.tm-report-form h2 {
    color: #111827;
}

.tm-report-steps {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tm-report-steps span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-weight: 700;
    font-size: .85rem;
    padding: .4rem .8rem;
}

.tm-report-panel {
    border: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
    border-radius: 1rem;
    padding: 1.25rem;
}

.tm-coordinate-box {
    border: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
    border-radius: 1rem;
    padding: 1rem;
}

.tm-coordinate-map {
    min-height: 320px;
    border-radius: .85rem;
    overflow: hidden;
    background: #e5e7eb;
}

.tm-hp-field {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

@media (max-width: 575.98px) {
    .tm-report-hero {
        padding: 1.5rem;
    }

    .tm-coordinate-map {
        min-height: 260px;
    }
}

.tm-admin-page {
    background: linear-gradient(180deg, #f8fafc 0, #ffffff 42%);
    min-height: 70vh;
}

.tm-admin-hero {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 1.5rem;
    flex-wrap: wrap;
    background: radial-gradient(circle at top right, rgba(185, 28, 28, .22), transparent 32%), linear-gradient(135deg, #17202a, #334155);
    color: #fff;
    border-radius: 1.25rem;
    padding: 1.5rem;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
}

.tm-admin-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: rgba(255, 255, 255, .9);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .35rem .75rem;
    margin-bottom: .85rem;
}

.tm-admin-version {
    min-width: 150px;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .18);
    padding: 1rem;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.tm-admin-version span,
.tm-admin-version strong {
    display: block;
}

.tm-admin-version span {
    color: rgba(255, 255, 255, .72);
    font-size: .85rem;
}

.tm-admin-version strong {
    font-size: 1.45rem;
}

.tm-admin-stat-card {
    display: block;
    height: 100%;
    padding: 1.15rem;
    border-radius: 1.05rem;
    background: #fff;
    color: inherit;
    text-decoration: none;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
    transition: transform .15s ease, box-shadow .15s ease;
}

.tm-admin-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(15, 23, 42, .10);
}

.tm-admin-stat-card span,
.tm-admin-stat-card strong,
.tm-admin-stat-card small {
    display: block;
}

.tm-admin-stat-card span {
    color: #6b7280;
    font-size: .85rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.tm-admin-stat-card strong {
    color: #111827;
    font-size: 2rem;
    line-height: 1.1;
    margin: .35rem 0;
}

.tm-admin-stat-card small {
    color: #6b7280;
}

.tm-admin-stat-card-warning {
    border-color: rgba(202, 138, 4, .28);
    background: #fffbeb;
}

.tm-admin-task-list,
.tm-admin-mini-list {
    display: grid;
    gap: .75rem;
}

.tm-admin-task-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
}

.tm-admin-task-item strong,
.tm-admin-task-item span,
.tm-admin-task-item small {
    display: block;
}

.tm-admin-task-item span,
.tm-admin-task-item small {
    color: #6b7280;
}

.tm-admin-task-actions {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.tm-admin-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.tm-admin-quick-grid a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: .75rem .85rem;
    border-radius: .85rem;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
    color: #111827;
    text-decoration: none;
    font-weight: 800;
    font-size: .9rem;
}

.tm-admin-quick-grid a:hover {
    background: #fff;
    color: var(--tm-red);
}

.tm-admin-checklist {
    display: grid;
    gap: .45rem;
    color: #4b5563;
}

.tm-admin-mini-list a {
    display: block;
    padding: .85rem;
    border-radius: .9rem;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
    color: inherit;
    text-decoration: none;
}

.tm-admin-mini-list a:hover {
    background: #fff;
    color: var(--tm-red);
}

.tm-admin-mini-list strong,
.tm-admin-mini-list span {
    display: block;
}

.tm-admin-mini-list span {
    color: #6b7280;
    font-size: .9rem;
}

.tm-empty-state {
    border-radius: 1rem;
    background: #f8fafc;
    border: 1px dashed rgba(15, 23, 42, .18);
    padding: 1.25rem;
}

.tm-empty-state strong,
.tm-empty-state span {
    display: block;
}

.tm-empty-state span {
    color: #6b7280;
}

.tm-admin-table th {
    color: #6b7280;
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
}

.tm-admin-dropdown {
    min-width: 230px;
}

.tm-user-pill {
    border-radius: 999px;
    background: rgba(255, 255, 255, .10);
    padding-left: .85rem !important;
    padding-right: .85rem !important;
}

@media (max-width: 767.98px) {
    .tm-admin-hero,
    .tm-admin-task-item {
        flex-direction: column;
        align-items: flex-start;
    }

    .tm-admin-version {
        width: 100%;
    }

    .tm-admin-task-actions {
        justify-content: flex-start;
    }

    .tm-admin-quick-grid {
        grid-template-columns: 1fr;
    }
}

.tm-admin-edit-hero {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 1.5rem;
    flex-wrap: wrap;
    background: radial-gradient(circle at top right, rgba(185, 28, 28, .25), transparent 34%), linear-gradient(135deg, #17202a, #334155);
    color: #fff;
    border-radius: 1.25rem;
    padding: 1.5rem;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
}

.tm-admin-edit-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    flex-wrap: wrap;
}

.tm-admin-edit-alert {
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.tm-admin-edit-sidebar {
    position: sticky;
    top: 1rem;
}

.tm-admin-edit-summary {
    display: grid;
    gap: .7rem;
}

.tm-admin-edit-summary > div,
.tm-admin-edit-meta > div {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding-bottom: .7rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-admin-edit-summary > div:last-child,
.tm-admin-edit-meta > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.tm-admin-edit-summary span,
.tm-admin-edit-meta dt {
    color: #6b7280;
    font-size: .85rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.tm-admin-edit-summary strong,
.tm-admin-edit-meta dd {
    color: #111827;
    font-weight: 800;
    text-align: right;
    margin: 0;
}

.tm-legacy-edit-accordion .accordion-item {
    border-color: rgba(15, 23, 42, .08);
    overflow: hidden;
}

.tm-legacy-edit-accordion .accordion-button {
    font-weight: 800;
}

.tm-legacy-edit-accordion .accordion-button:not(.collapsed) {
    background: #f8fafc;
    color: #111827;
    box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 rgba(15, 23, 42, .08);
}

.tm-legacy-raw-box {
    border: 1px dashed rgba(15, 23, 42, .18);
    border-radius: 1rem;
    padding: 1rem;
    background: #f8fafc;
}

.tm-legacy-raw-box summary {
    cursor: pointer;
    font-weight: 800;
}

@media (max-width: 1199.98px) {
    .tm-admin-edit-sidebar {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .tm-admin-edit-hero {
        flex-direction: column;
        align-items: flex-start;
    }

    .tm-admin-edit-actions {
        justify-content: flex-start;
    }

    .tm-admin-edit-summary > div,
    .tm-admin-edit-meta > div {
        flex-direction: column;
        gap: .2rem;
    }

    .tm-admin-edit-summary strong,
    .tm-admin-edit-meta dd {
        text-align: left;
    }
}


.tm-admin-kpi {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
    height: 100%;
}

.tm-admin-kpi span {
    display: block;
    color: #6b7280;
    font-size: .85rem;
    font-weight: 700;
    margin-bottom: .25rem;
}

.tm-admin-kpi strong {
    display: block;
    color: #111827;
    font-size: 1.35rem;
    line-height: 1.2;
}

.tm-admin-kpi-warning {
    border-color: rgba(185, 28, 28, .25);
    background: #fff7f7;
}

.tm-upload-drop {
    display: flex;
    min-height: 180px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    border: 2px dashed rgba(15, 23, 42, .18);
    border-radius: 1rem;
    background: #f8fafc;
    text-align: center;
    cursor: pointer;
    padding: 1.5rem;
    transition: border-color .15s ease, background-color .15s ease;
}

.tm-upload-drop:hover {
    border-color: rgba(185, 28, 28, .5);
    background: #fff;
}

.tm-upload-drop input {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    opacity: 0;
    pointer-events: none;
}

.tm-upload-icon {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(185, 28, 28, .12);
    color: var(--tm-red);
    font-size: 1.5rem;
    font-weight: 900;
}

.tm-upload-drop strong,
.tm-upload-drop small {
    display: block;
}

.tm-upload-drop small {
    color: #6b7280;
}

.tm-admin-note-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.tm-admin-note-grid > div {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .9rem;
    padding: .85rem;
    background: #f8fafc;
}

.tm-admin-note-grid strong,
.tm-admin-note-grid span {
    display: block;
}

.tm-admin-note-grid span {
    color: #6b7280;
    font-size: .9rem;
    margin-top: .2rem;
}

.tm-empty-state {
    border: 1px dashed rgba(15, 23, 42, .2);
    border-radius: 1rem;
    background: #f8fafc;
    padding: 2rem;
    text-align: center;
}

.tm-empty-state strong,
.tm-empty-state span {
    display: block;
}

.tm-empty-state span {
    color: #6b7280;
    margin-top: .25rem;
}

.tm-media-admin-image-wrap {
    position: relative;
    background: #f3f4f6;
}

.tm-media-admin-card-primary {
    border-color: rgba(185, 28, 28, .35);
    box-shadow: 0 14px 34px rgba(185, 28, 28, .12);
}

.tm-media-admin-card-missing {
    border-color: rgba(185, 28, 28, .35);
}

.tm-media-primary-badge {
    position: absolute;
    top: .75rem;
    left: .75rem;
    display: inline-flex;
    border-radius: 999px;
    background: var(--tm-red);
    color: #fff;
    font-size: .75rem;
    font-weight: 800;
    padding: .3rem .65rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .18);
}

.tm-media-missing-preview {
    display: flex;
    height: 210px;
    align-items: center;
    justify-content: center;
    background: #fff1f2;
    color: #b91c1c;
    font-weight: 800;
}

.tm-media-meta {
    display: grid;
    gap: .35rem;
    color: #4b5563;
    font-size: .82rem;
}

.tm-media-meta > div {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: .5rem;
}

.tm-media-meta dt {
    color: #6b7280;
    font-weight: 800;
}

.tm-media-meta dd {
    min-width: 0;
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .tm-admin-note-grid {
        grid-template-columns: 1fr;
    }
}

.tm-resource-list {
    display: grid;
    gap: 1rem;
}

.tm-resource-item {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    padding: 1rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .04);
}

.tm-resource-topline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.tm-resource-actions {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

.tm-resource-type,
.tm-resource-origin {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    padding: .28rem .65rem;
    background: #f3f4f6;
    color: #374151;
}

.tm-resource-type-source { background: #ecfdf5; color: #047857; }
.tm-resource-type-link { background: #eef2ff; color: #3730a3; }
.tm-resource-type-video { background: #fef2f2; color: #b91c1c; }
.tm-resource-type-image_link { background: #fff7ed; color: #9a3412; }
.tm-resource-type-map_file { background: #eff6ff; color: #1d4ed8; }
.tm-resource-type-weather_map { background: #f0fdfa; color: #0f766e; }
.tm-resource-type-eyewitness { background: #faf5ff; color: #7e22ce; }
.tm-resource-type-info { background: #f3f4f6; color: #374151; }

.tm-resource-origin {
    background: #f8fafc;
    color: #6b7280;
    border: 1px solid rgba(15, 23, 42, .08);
}

.tm-resource-domain {
    min-height: 31px;
    border-radius: .45rem;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
    color: #4b5563;
    padding: .35rem .55rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .85rem;
}

.tm-resource-summary {
    display: grid;
    gap: .6rem;
}

.tm-resource-summary > div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding-bottom: .6rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-resource-summary > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.tm-resource-summary span {
    color: #6b7280;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tm-resource-summary strong {
    color: #111827;
    font-weight: 900;
}

.tm-resource-suggestion-list {
    display: grid;
    gap: .75rem;
    max-height: 480px;
    overflow: auto;
    padding-right: .25rem;
}

.tm-resource-suggestion {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .9rem;
    background: #fff;
    padding: .85rem;
}

.tm-resource-suggestion-done {
    background: #f8fafc;
    opacity: .75;
}

.tm-resource-suggestion strong,
.tm-resource-suggestion small,
.tm-resource-suggestion code {
    display: block;
}

.tm-resource-suggestion small {
    color: #6b7280;
    margin: .25rem 0;
}

.tm-resource-suggestion span {
    display: inline-flex;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    font-size: .72rem;
    font-weight: 800;
    padding: .18rem .5rem;
    white-space: nowrap;
}

.tm-resource-suggestion code {
    color: #4b5563;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: .78rem;
}

@media (max-width: 767.98px) {
    .tm-resource-topline {
        flex-direction: column;
    }

    .tm-resource-actions {
        justify-content: flex-start;
    }
}

.tm-public-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
}

.tm-public-summary-item {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.tm-public-summary-item span {
    display: block;
    color: #6b7280;
    font-size: .85rem;
    margin-bottom: .25rem;
}

.tm-public-summary-item strong {
    display: block;
    color: #111827;
    font-size: 1.05rem;
}

.tm-feature-media {
    position: relative;
    overflow: hidden;
    border-radius: 1.25rem;
    background: #111827;
    box-shadow: 0 16px 42px rgba(15, 23, 42, .18);
}

.tm-feature-media img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    display: block;
    opacity: .92;
}

.tm-feature-media > div {
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1.25rem;
    color: #fff;
    text-shadow: 0 2px 16px rgba(0, 0, 0, .45);
}

.tm-feature-media span {
    display: inline-flex;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    padding: .2rem .65rem;
    font-size: .78rem;
    font-weight: 800;
    margin-bottom: .45rem;
}

.tm-feature-media strong {
    display: block;
    font-size: 1.1rem;
}

.tm-public-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 1rem;
}

.tm-public-gallery-item {
    display: block;
    text-decoration: none;
    color: inherit;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
}

.tm-public-gallery-primary {
    border-color: rgba(185, 28, 28, .35);
}

.tm-public-gallery-item img {
    width: 100%;
    height: 170px;
    object-fit: cover;
    display: block;
    background: #f3f4f6;
}

.tm-public-gallery-item span {
    display: block;
    padding: .75rem;
}

.tm-public-gallery-item em {
    display: inline-flex;
    border-radius: 999px;
    background: rgba(185, 28, 28, .1);
    color: var(--tm-red);
    font-style: normal;
    font-size: .72rem;
    font-weight: 800;
    padding: .15rem .5rem;
    margin-bottom: .35rem;
}

.tm-public-gallery-item strong {
    display: block;
    color: #111827;
    font-size: .9rem;
}

.tm-public-resource-groups {
    display: grid;
    gap: 1rem;
}

.tm-public-resource-group {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #f8fafc;
    padding: 1rem;
}

.tm-public-resource-group-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: .75rem;
}

.tm-public-resource-group-head strong {
    color: #111827;
}

.tm-public-resource-group-head span {
    border-radius: 999px;
    background: #fff;
    color: #4b5563;
    font-size: .78rem;
    font-weight: 800;
    padding: .2rem .55rem;
}

.tm-public-resource-list {
    display: grid;
    gap: .75rem;
}

.tm-public-resource-card {
    display: grid;
    gap: .25rem;
    text-decoration: none;
    color: inherit;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .9rem;
    padding: .85rem;
    transition: transform .15s ease, box-shadow .15s ease;
}

.tm-public-resource-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.tm-public-resource-type {
    display: inline-flex;
    width: fit-content;
    border-radius: 999px;
    background: rgba(185, 28, 28, .1);
    color: var(--tm-red);
    font-size: .72rem;
    font-weight: 800;
    padding: .15rem .5rem;
}

.tm-public-resource-card strong {
    color: #111827;
    overflow-wrap: anywhere;
}

.tm-public-resource-card small {
    color: #6b7280;
    overflow-wrap: anywhere;
}

.tm-public-resource-card em {
    color: #4b5563;
    font-size: .8rem;
    font-style: normal;
    font-weight: 700;
}

@media (max-width: 575.98px) {
    .tm-feature-media > div {
        position: static;
        padding: 1rem;
        text-shadow: none;
        background: #111827;
    }

    .tm-feature-media img {
        max-height: 280px;
    }
}

.tm-stat-hero {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    align-items: stretch;
    color: #fff;
    background: radial-gradient(circle at top right, rgba(239, 68, 68, .35), transparent 28rem), linear-gradient(135deg, #111827, #7f1d1d);
    border-radius: 1.5rem;
    padding: 2rem;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
}

.tm-stat-hero p {
    color: rgba(255, 255, 255, .78);
    max-width: 58rem;
}

.tm-stat-hero-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: flex-end;
}

.tm-stat-kpi span,
.tm-stat-kpi small {
    display: block;
    color: #6b7280;
    font-weight: 700;
}

.tm-stat-kpi strong {
    display: block;
    color: #111827;
    font-size: clamp(1.8rem, 4vw, 2.75rem);
    line-height: 1.05;
    margin: .4rem 0;
}

.tm-section-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.tm-section-head p {
    color: #6b7280;
    margin: 0;
    font-size: .9rem;
}

.tm-active-filters {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tm-active-filters span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(185, 28, 28, .1);
    color: var(--tm-red);
    font-size: .78rem;
    font-weight: 800;
    padding: .25rem .65rem;
}

.tm-stat-row-link {
    color: inherit;
    text-decoration: none;
    border-radius: .85rem;
    padding: .55rem;
    margin-inline: -.55rem;
    transition: background .15s ease, transform .15s ease;
}

.tm-stat-row-link:hover {
    background: #f8fafc;
    transform: translateX(2px);
}

.tm-month-chart {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(3.2rem, 1fr));
    gap: .75rem;
    align-items: end;
    min-height: 15rem;
}

.tm-month-bar {
    display: grid;
    gap: .4rem;
    text-align: center;
    align-items: end;
}

.tm-month-bar > div {
    display: flex;
    align-items: end;
    justify-content: center;
    height: 8.5rem;
    border-radius: .9rem;
    background: #f3f4f6;
    overflow: hidden;
}

.tm-month-bar > div span {
    display: block;
    width: 100%;
    border-radius: .9rem .9rem 0 0;
    background: linear-gradient(180deg, #dc2626, #991b1b);
}

.tm-month-bar strong {
    color: #111827;
    font-size: .78rem;
}

.tm-month-bar small {
    color: #6b7280;
    font-weight: 800;
}

@media (max-width: 767.98px) {
    .tm-stat-hero {
        flex-direction: column;
        padding: 1.4rem;
    }

    .tm-stat-hero-actions {
        justify-content: stretch;
    }

    .tm-stat-hero-actions .btn {
        flex: 1 1 auto;
    }
}

.tm-map-shell {
    background: #fff;
    border-radius: 1rem;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .08);
    overflow: hidden;
}

.tm-map-shell .tm-map {
    border-radius: 0;
    box-shadow: none;
}

.tm-map-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
}

.tm-map-toolbar strong,
.tm-map-toolbar span {
    display: block;
}

.tm-map-toolbar span {
    color: #6b7280;
    font-size: .9rem;
}

.tm-map-legend {
    display: grid;
    gap: .5rem;
}

.tm-map-legend a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: .65rem;
    align-items: center;
    color: inherit;
    text-decoration: none;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
    padding: .6rem .75rem;
    background: #fff;
}

.tm-map-legend a:hover,
.tm-map-legend a.is-active {
    background: #f8fafc;
    border-color: rgba(185, 28, 28, .35);
}

.tm-map-legend span {
    color: #374151;
    font-weight: 700;
}

.tm-map-legend strong {
    color: #111827;
}

.tm-legend-dot {
    width: .9rem;
    height: .9rem;
    border-radius: 999px;
    display: inline-block;
    background: #6b7280;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .65);
}

.tm-legend-tornado { background: #b91c1c; }
.tm-legend-waterspout { background: #0284c7; }
.tm-legend-downburst,
.tm-legend-microburst { background: #4f46e5; }
.tm-legend-hail { background: #14b8a6; }
.tm-legend-storm { background: #ca8a04; }
.tm-legend-heavy_rain { background: #3b82f6; }
.tm-legend-other { background: #6b7280; }

.tm-map-summary > a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    color: inherit;
    text-decoration: none;
}

.tm-map-summary > a:hover span {
    color: var(--tm-red);
}

.tm-map-event-list {
    display: grid;
    gap: .65rem;
}

.tm-map-event-list a {
    display: block;
    color: inherit;
    text-decoration: none;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
    padding: .75rem;
    background: #fff;
}

.tm-map-event-list a:hover {
    background: #f8fafc;
}

.tm-map-event-list strong,
.tm-map-event-list span {
    display: block;
}

.tm-map-event-list span {
    color: #6b7280;
    font-size: .85rem;
    margin-top: .15rem;
}

@media (max-width: 575.98px) {
    .tm-map-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* v3.4.0 Mobile-Optimierung */
html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}

img,
svg,
video,
canvas {
    max-width: 100%;
    height: auto;
}

.tm-skip-link {
    position: absolute;
    left: 1rem;
    top: -4rem;
    z-index: 1100;
    border-radius: .75rem;
    background: #fff;
    color: #111827;
    padding: .65rem .9rem;
    font-weight: 800;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .18);
    transition: top .15s ease;
}

.tm-skip-link:focus {
    top: 1rem;
}

.tm-mobile-quicknav {
    display: none;
}

.tm-mobile-section-stack {
    display: none;
}

.tm-table-scroll-hint {
    display: none;
}

@media (max-width: 991.98px) {
    .navbar .container {
        align-items: center;
    }

    .navbar-collapse {
        margin-top: .85rem;
        border-radius: 1rem;
        background: rgba(255, 255, 255, .08);
        padding: .75rem;
    }

    .navbar-nav {
        gap: .2rem;
    }

    .navbar-nav .nav-link,
    .navbar-nav .dropdown-item {
        border-radius: .75rem;
        padding: .72rem .85rem;
    }

    .navbar-nav .dropdown-menu {
        border: 0;
        border-radius: 1rem;
        margin-top: .35rem;
        box-shadow: 0 14px 34px rgba(15, 23, 42, .14);
    }

    .tm-user-pill {
        display: inline-flex;
        width: auto;
        margin-top: .25rem;
    }

    .tm-hero,
    .tm-home-hero {
        padding: 3.25rem 0;
    }

    .tm-stat-hero,
    .tm-admin-hero,
    .tm-admin-edit-hero,
    .tm-report-hero {
        border-radius: 1rem;
    }

    .tm-map-shell {
        border-radius: 1rem;
    }

    .tm-map {
        min-height: 62vh;
    }

    .tm-map-small,
    .tm-coordinate-map {
        min-height: 320px;
    }

    .tm-admin-edit-sidebar {
        position: static;
    }
}

@media (max-width: 767.98px) {
    body {
        padding-bottom: 4.35rem;
    }

    main > .container,
    main > section > .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .tm-mobile-quicknav {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1040;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: .25rem;
        padding: .45rem .55rem calc(.45rem + env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, .96);
        border-top: 1px solid rgba(15, 23, 42, .10);
        box-shadow: 0 -12px 30px rgba(15, 23, 42, .12);
        backdrop-filter: blur(12px);
    }

    .tm-mobile-quicknav a {
        display: grid;
        gap: .12rem;
        justify-items: center;
        align-items: center;
        min-height: 3.2rem;
        border-radius: .85rem;
        color: #374151;
        text-decoration: none;
        font-size: .73rem;
        font-weight: 800;
    }

    .tm-mobile-quicknav a:active,
    .tm-mobile-quicknav a:hover,
    .tm-mobile-quicknav a.is-active {
        background: rgba(185, 28, 28, .10);
        color: var(--tm-red);
    }

    .tm-mobile-quicknav span:first-child {
        font-size: 1.05rem;
        line-height: 1;
    }

    .tm-mobile-section-stack {
        display: grid;
        gap: .6rem;
        margin-bottom: 1rem;
    }

    .tm-mobile-section-stack a,
    .tm-mobile-section-stack button {
        width: 100%;
    }

    h1,
    .h1 {
        font-size: clamp(1.75rem, 8vw, 2.3rem);
        line-height: 1.12;
    }

    h2,
    .h2 {
        font-size: clamp(1.35rem, 6vw, 1.75rem);
    }

    .lead {
        font-size: 1.02rem;
    }

    .tm-card,
    .card {
        border-radius: 1rem;
    }

    .card-body {
        padding: 1rem;
    }

    .btn {
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .35rem;
    }

    .btn-sm {
        min-height: 36px;
    }

    .form-control,
    .form-select {
        min-height: 44px;
        font-size: 1rem;
    }

    textarea.form-control {
        min-height: 120px;
    }

    .table-responsive {
        border-radius: 1rem;
        border: 1px solid rgba(15, 23, 42, .08);
    }

    .tm-table-scroll-hint {
        display: block;
        color: #6b7280;
        font-size: .82rem;
        margin-bottom: .5rem;
    }

    .tm-keyfacts,
    .tm-public-summary,
    .tm-home-mini-grid,
    .tm-admin-quick-grid,
    .tm-month-chart {
        grid-template-columns: 1fr;
    }

    .tm-stat-row,
    .tm-home-statline {
        grid-template-columns: 1fr;
    }

    .tm-section-head,
    .tm-map-toolbar,
    .tm-public-resource-group-head,
    .tm-resource-topline,
    .tm-admin-task-item,
    .tm-event-teaser {
        flex-direction: column;
        align-items: flex-start;
    }

    .tm-section-head .btn,
    .tm-map-toolbar .btn,
    .tm-admin-task-actions .btn,
    .tm-resource-actions .btn,
    .tm-admin-edit-actions .btn {
        width: 100%;
    }

    .tm-admin-actions,
    .tm-admin-edit-actions,
    .tm-admin-task-actions,
    .tm-resource-actions,
    .tm-stat-hero-actions {
        width: 100%;
        justify-content: stretch;
    }

    .tm-admin-actions > *,
    .tm-admin-edit-actions > *,
    .tm-admin-task-actions > *,
    .tm-resource-actions > *,
    .tm-stat-hero-actions > * {
        flex: 1 1 100%;
    }

    .tm-map {
        min-height: 68vh;
        border-radius: .85rem;
    }

    .tm-map-shell .tm-map {
        min-height: 70vh;
    }

    .tm-map-popup {
        min-width: 0;
        max-width: 74vw;
    }

    .leaflet-popup-content {
        margin: .85rem;
    }

    .tm-map-summary > div,
    .tm-map-summary > a,
    .tm-resource-summary > div {
        align-items: flex-start;
        flex-direction: column;
        gap: .25rem;
    }

    .tm-gallery,
    .tm-public-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem;
    }

    .tm-gallery-item img,
    .tm-public-gallery-item img {
        height: 135px;
    }

    .tm-feature-media {
        border-radius: 1rem;
    }

    .tm-feature-media img {
        max-height: 240px;
    }

    .tm-public-resource-card,
    .tm-resource-item,
    .tm-event-card {
        border-radius: .9rem;
    }

    .tm-report-panel,
    .tm-coordinate-box {
        padding: 1rem;
    }

    .tm-coordinate-map {
        min-height: 300px;
    }

    .tm-month-chart {
        min-height: 0;
    }

    .tm-month-bar {
        grid-template-columns: 3rem 1fr 2.5rem;
        align-items: center;
        text-align: left;
    }

    .tm-month-bar > div {
        height: .85rem;
        justify-content: flex-start;
        border-radius: 999px;
    }

    .tm-month-bar > div span {
        width: auto;
        min-width: .35rem;
        height: 100% !important;
        border-radius: 999px;
    }

    .tm-month-bar small {
        text-align: right;
    }

    footer .container {
        padding-bottom: .5rem;
    }
}

@media (max-width: 420px) {
    .tm-gallery,
    .tm-public-gallery {
        grid-template-columns: 1fr;
    }

    .tm-map {
        min-height: 72vh;
    }

    .tm-public-summary,
    .tm-keyfacts {
        gap: .75rem;
    }

    .tm-mobile-quicknav a {
        font-size: .68rem;
    }
}

@media (hover: none) and (pointer: coarse) {
    .tm-event-teaser:hover,
    .tm-public-resource-card:hover,
    .tm-gallery-item:hover,
    .tm-admin-stat-card:hover,
    .tm-resource-item:hover {
        transform: none;
        box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
    }
}

/* PWA-Grundlagen */
.tm-pwa-install-banner {
    position: fixed;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 1100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    max-width: 760px;
    margin: 0 auto;
    padding: 1rem;
    border-radius: 1rem;
    background: #0f172a;
    color: #fff;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .28);
}

.tm-pwa-install-banner[hidden] {
    display: none !important;
}

.tm-pwa-install-banner span {
    display: block;
    color: rgba(255, 255, 255, .78);
    font-size: .9rem;
}

.tm-offline-icon {
    display: inline-flex;
    width: 4.5rem;
    height: 4.5rem;
    align-items: center;
    justify-content: center;
    border-radius: 1.5rem;
    background: #0f172a;
    color: #fff;
    font-size: 2.3rem;
    line-height: 1;
}

@media (max-width: 575.98px) {
    .tm-pwa-install-banner {
        bottom: 5.3rem;
        align-items: stretch;
        flex-direction: column;
    }

    .tm-pwa-install-banner .d-flex {
        justify-content: stretch;
    }

    .tm-pwa-install-banner .btn {
        flex: 1 1 auto;
    }
}

/* System-Health */
.tm-health-list {
    display: grid;
    gap: .75rem;
}

.tm-health-item {
    border: 1px solid rgba(15, 23, 42, .08);
    border-left-width: 5px;
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
}

.tm-health-ok {
    border-left-color: #198754;
}

.tm-health-warning {
    border-left-color: #ffc107;
}

.tm-health-danger {
    border-left-color: #dc3545;
}

.tm-health-info {
    border-left-color: #6c757d;
}

.tm-health-main span,
.tm-health-main small {
    display: block;
    color: #64748b;
    margin-top: .25rem;
}

.tm-admin-stat-card-danger {
    border-color: rgba(220, 53, 69, .25) !important;
    background: linear-gradient(135deg, rgba(220, 53, 69, .09), rgba(255, 255, 255, .95)) !important;
}

/* Cronjobs & Wartung */
.tm-maintenance-task {
    display: flex;
    gap: .85rem;
    height: 100%;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 1rem;
    background: rgba(248, 250, 252, .9);
    cursor: pointer;
    transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.tm-maintenance-task:hover {
    border-color: rgba(13, 110, 253, .35);
    transform: translateY(-1px);
    box-shadow: 0 .5rem 1.25rem rgba(15, 23, 42, .07);
}

.tm-maintenance-task input {
    margin-top: .25rem;
}

.tm-maintenance-task span {
    display: grid;
    gap: .25rem;
}

.tm-maintenance-task small {
    color: #64748b;
    line-height: 1.35;
}

.tm-admin-mini-list-static {
    display: block;
    padding: .85rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-admin-mini-list-static:last-child {
    border-bottom: 0;
}

.tm-admin-mini-list-static strong,
.tm-admin-mini-list-static span {
    display: block;
}

.tm-admin-mini-list-static span {
    color: #64748b;
    font-size: .92rem;
    margin-top: .15rem;
}
.tm-code-pill {
    display: inline-flex;
    align-items: center;
    padding: .35rem .55rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .82rem;
}

/* Benachrichtigungszentrale */
.tm-notification-card {
    border-left-width: .35rem;
}

.tm-notification-danger {
    border-left-color: #dc3545;
}

.tm-notification-warning {
    border-left-color: #ffc107;
}

.tm-notification-info {
    border-left-color: #0d6efd;
}

.tm-notification-success {
    border-left-color: #198754;
}

.tm-notification-action {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    min-width: 11rem;
}

@media (min-width: 992px) {
    .tm-notification-action {
        justify-content: flex-end;
    }
}


/* Öffentliche Suche */
.tm-search-hero {
    background: linear-gradient(135deg, rgba(15, 23, 42, .04), rgba(14, 165, 233, .08));
}

.tm-search-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tm-search-chips a {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .45rem .7rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
    color: #0f172a;
    text-decoration: none;
    font-size: .9rem;
}

.tm-search-chips a:hover {
    background: #e2e8f0;
}

.tm-search-results {
    display: grid;
    gap: 1rem;
}

.tm-search-result-card {
    padding: 1.15rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .05);
}

.tm-search-result-card h3 a {
    color: #0f172a;
    text-decoration: none;
}

.tm-search-result-card h3 a:hover {
    text-decoration: underline;
}

.tm-search-score span,
.tm-search-score small {
    display: block;
}

.tm-search-score span {
    font-weight: 700;
    color: #0f172a;
}

.tm-search-score small {
    color: #64748b;
}

.tm-search-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.tm-search-meta span {
    display: inline-flex;
    padding: .3rem .55rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #475569;
    font-size: .82rem;
}

@media (max-width: 767.98px) {
    .tm-search-result-card {
        padding: 1rem;
    }

    .tm-search-score {
        text-align: left !important;
    }
}

/* Öffentliche Chronik */
.tm-chronology-hero {
    background: linear-gradient(135deg, rgba(15, 23, 42, .06), rgba(14, 165, 233, .11));
}

.tm-chronology-summary {
    padding: 1.4rem;
    border-radius: 1.25rem;
    background: #0f172a;
    color: #fff;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, .18);
}

.tm-chronology-summary span,
.tm-chronology-summary small {
    display: block;
    color: rgba(255, 255, 255, .72);
}

.tm-chronology-summary strong {
    display: block;
    font-size: 1.85rem;
    line-height: 1.15;
    margin: .25rem 0;
}

.tm-year-bars {
    display: grid;
    gap: .65rem;
}

.tm-year-bar {
    display: grid;
    grid-template-columns: 4.25rem 1fr 3rem;
    align-items: center;
    gap: .85rem;
    padding: .55rem .65rem;
    border-radius: .85rem;
    color: #0f172a;
    text-decoration: none;
}

.tm-year-bar:hover {
    background: #f8fafc;
}

.tm-year-bar-label,
.tm-year-bar-total {
    font-weight: 700;
}

.tm-year-bar-track {
    height: .7rem;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.tm-year-bar-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #0f172a;
}

.tm-timeline {
    position: relative;
    display: grid;
    gap: 1rem;
}

.tm-timeline-item {
    display: grid;
    grid-template-columns: 7.5rem 1fr;
    gap: 1rem;
}

.tm-timeline-date {
    font-weight: 700;
    color: #475569;
    padding-top: .75rem;
}

.tm-timeline-content {
    position: relative;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 .35rem 1rem rgba(15, 23, 42, .05);
}

.tm-timeline-content::before {
    content: '';
    position: absolute;
    left: -1.42rem;
    top: 1.1rem;
    width: .75rem;
    height: .75rem;
    border-radius: 999px;
    background: #0f172a;
    box-shadow: 0 0 0 .25rem #e2e8f0;
}

.tm-timeline-content h2 a {
    color: #0f172a;
    text-decoration: none;
}

.tm-timeline-content h2 a:hover {
    text-decoration: underline;
}

.tm-month-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: end;
    gap: .65rem;
    min-height: 13rem;
}

.tm-month-column {
    min-height: 11rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    gap: .25rem;
    color: #0f172a;
    text-decoration: none;
}

.tm-month-column-bar {
    width: 1.2rem;
    min-height: .5rem;
    border-radius: 999px 999px .25rem .25rem;
    background: #0f172a;
}

.tm-month-column strong {
    font-size: .9rem;
}

.tm-month-column small {
    color: #64748b;
}

@media (max-width: 767.98px) {
    .tm-year-bar {
        grid-template-columns: 3.3rem 1fr 2.4rem;
        gap: .55rem;
    }

    .tm-timeline-item {
        grid-template-columns: 1fr;
        gap: .4rem;
    }

    .tm-timeline-date {
        padding-top: 0;
    }

    .tm-timeline-content::before {
        display: none;
    }

    .tm-month-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}


/* v4.9.0 Zeitraum-Detailseiten */
.tm-period-hero {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 54%, #7f1d1d 100%);
    color: #fff;
}
.tm-period-months {
    display: grid;
    gap: .75rem;
}
.tm-period-bar {
    display: grid;
    grid-template-columns: minmax(90px, 150px) 1fr 56px;
    align-items: center;
    gap: .85rem;
    padding: .65rem .75rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
    text-decoration: none;
    color: inherit;
    background: #fff;
}
.tm-period-bar:hover {
    border-color: rgba(15, 23, 42, .22);
    box-shadow: 0 .5rem 1.25rem rgba(15, 23, 42, .08);
}
.tm-period-bar-track {
    display: block;
    height: .65rem;
    border-radius: 999px;
    overflow: hidden;
    background: #e5e7eb;
}
.tm-period-bar-track span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #991b1b, #0f172a);
}
.tm-period-event {
    padding: 1rem 1.25rem;
}
@media (max-width: 575.98px) {
    .tm-period-bar {
        grid-template-columns: 1fr 42px;
    }
    .tm-period-bar-track {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

/* v5.0.0 Ähnliche Ereignisse / Ereignisse in der Nähe */
.tm-related-grid,
.tm-nearby-list {
    display: grid;
    gap: .8rem;
}

.tm-related-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.tm-related-event-card {
    display: block;
    padding: .95rem 1rem;
    border: 1px solid rgba(15, 23, 42, .09);
    border-radius: 1rem;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.tm-related-event-card:hover {
    border-color: rgba(127, 29, 29, .28);
    box-shadow: 0 .6rem 1.4rem rgba(15, 23, 42, .08);
    transform: translateY(-1px);
}

.tm-related-event-card span {
    display: block;
    margin-bottom: .25rem;
    color: #991b1b;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.tm-related-event-card strong {
    display: block;
    line-height: 1.25;
}

.tm-related-event-card small {
    display: block;
    margin-top: .3rem;
    color: #64748b;
    line-height: 1.35;
}


/* v5.1.0 Chronik-Zeitraum mit Kartenansicht */
.tm-period-map-card {
    overflow: hidden;
}

.tm-period-map {
    min-height: 460px;
    border-radius: 0;
}

.tm-period-map-card .card-header {
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

@media (max-width: 767.98px) {
    .tm-period-map {
        min-height: 360px;
    }
}

.tm-event-history {
    display: grid;
    gap: 0.9rem;
}

.tm-event-history-item {
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 1rem;
    padding: 0.95rem;
    background: rgba(248, 250, 252, 0.75);
}

.tm-event-history-changes {
    display: grid;
    gap: 0.45rem;
}

.tm-event-history-changes > div {
    display: grid;
    gap: 0.15rem;
    padding: 0.55rem 0.65rem;
    border-radius: 0.75rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.tm-event-history-changes span {
    font-weight: 700;
    font-size: 0.82rem;
}

.tm-event-history-changes small {
    color: #64748b;
    line-height: 1.35;
}

.tm-stat-canvas {
    width: 100%;
    min-height: 260px;
    display: block;
}

.tm-record-list {
    display: grid;
    gap: .75rem;
}

.tm-record-event {
    display: block;
    text-decoration: none;
    color: inherit;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .85rem;
    padding: .9rem 1rem;
    background: #f8fafc;
    transition: transform .15s ease, box-shadow .15s ease;
}

.tm-record-event:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.tm-record-event strong,
.tm-record-event span,
.tm-record-event small {
    display: block;
}

.tm-record-event span,
.tm-record-event small {
    color: #64748b;
}

.tm-footer-links {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 1.25rem;
}

.tm-footer-links strong,
.tm-footer-links a {
    display: block;
}

.tm-footer-links strong {
    color: #111827;
    margin-bottom: .4rem;
}

.tm-footer-links a {
    color: #6b7280;
    text-decoration: none;
    margin: .2rem 0;
}

.tm-footer-links a:hover {
    color: var(--tm-red);
}

/* v8.2.0 Öffentliche Seiten vereinheitlicht */
.tm-public-page {
    --tm-page-muted: #64748b;
}

.tm-page-hero {
    display: flex;
    justify-content: space-between;
    align-items: stretch;
    gap: 1.5rem;
    color: #fff;
    background: radial-gradient(circle at top right, rgba(239, 68, 68, .32), transparent 28rem), linear-gradient(135deg, #111827, #334155 58%, #7f1d1d);
    border-radius: 1.5rem;
    padding: clamp(1.35rem, 3vw, 2rem);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
    overflow: hidden;
}

.tm-page-hero > div:first-child {
    max-width: 62rem;
}

.tm-page-hero p {
    color: rgba(255, 255, 255, .78) !important;
    font-size: 1.02rem;
}

.tm-kicker,
.tm-eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: .32rem .75rem;
    margin-bottom: .85rem;
}

.tm-page-hero-actions {
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
    min-width: min(100%, 15rem);
}

.tm-page-hero .btn-outline-light {
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
}

.tm-page-hero .btn-outline-light:hover {
    background: #fff;
    color: #111827;
}

.tm-public-page .tm-card,
.tm-public-page .card.tm-card,
.tm-public-page .tm-keyfact,
.tm-public-page .tm-public-summary-item {
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .07);
}

.tm-public-page .form-label {
    color: #334155;
    font-weight: 700;
}

.tm-public-page .table thead th {
    background: #f8fafc;
}

.tm-public-page .alert-info,
.tm-empty-state {
    border: 1px solid rgba(14, 116, 144, .16);
    border-radius: 1rem;
    background: #ecfeff;
    color: #155e75;
    padding: 1rem 1.15rem;
}

.tm-public-page .tm-map-shell,
.tm-public-page .table-responsive {
    box-shadow: 0 12px 32px rgba(15, 23, 42, .07);
}

.tm-public-page .tm-badge:not(.bg-white) {
    background: rgba(185, 28, 28, .1);
    color: var(--tm-red);
}

@media (max-width: 767.98px) {
    .tm-page-hero {
        flex-direction: column;
        border-radius: 1.1rem;
    }

    .tm-page-hero-actions {
        justify-content: stretch;
        width: 100%;
    }

    .tm-page-hero-actions > * {
        flex: 1 1 100%;
    }
}

/* v8.3.0 Mobile Detailseiten und Kartenansicht */
.tm-event-detail-page {
    scroll-behavior: smooth;
}

.tm-event-detail-hero {
    color: #fff;
    background: radial-gradient(circle at 85% 10%, rgba(239, 68, 68, .30), transparent 26rem), linear-gradient(135deg, #111827, #334155 62%, #7f1d1d);
    border-radius: 1.5rem;
    padding: clamp(1.25rem, 3vw, 2rem);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .18);
}

.tm-event-detail-hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;
    align-items: end;
}

.tm-event-detail-main {
    min-width: 0;
}

.tm-event-detail-hero h1 {
    max-width: 68rem;
}

.tm-event-detail-actions,
.tm-event-detail-side-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    align-items: center;
}

.tm-event-detail-side-actions {
    justify-content: flex-end;
    padding-bottom: .05rem;
}

.tm-detail-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 2.55rem;
    padding: .62rem 1rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    color: #fff;
    background: rgba(255, 255, 255, .10);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .16);
    font-weight: 800;
    font-size: .92rem;
    line-height: 1;
    text-decoration: none;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.tm-detail-btn:hover,
.tm-detail-btn:focus {
    color: #fff;
    background: rgba(255, 255, 255, .18);
    border-color: rgba(255, 255, 255, .45);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .24);
    transform: translateY(-1px);
}

.tm-detail-btn-primary {
    background: rgba(239, 68, 68, .92);
    border-color: rgba(248, 113, 113, .95);
}

.tm-detail-btn-primary:hover,
.tm-detail-btn-primary:focus {
    background: #dc2626;
    border-color: #fecaca;
}

.tm-detail-btn-favorite {
    background: rgba(255, 255, 255, .95);
    color: #111827;
    border-color: rgba(255, 255, 255, .95);
}

.tm-detail-btn-favorite:hover,
.tm-detail-btn-favorite:focus,
.tm-detail-btn-favorite.is-active {
    color: #111827;
    background: #fff;
    border-color: #fff;
}

.tm-detail-btn-favorite span:first-child {
    color: #dc2626;
    font-size: 1.05rem;
}

.tm-event-detail-badges .tm-badge,
.tm-event-detail-badges .tm-status {
    background: rgba(255, 255, 255, .14);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .18);
}


.tm-detail-jumpnav {
    display: flex;
    gap: .55rem;
    overflow-x: auto;
    padding-bottom: .25rem;
    scrollbar-width: thin;
}

.tm-detail-jumpnav a {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    min-height: 2.45rem;
    border-radius: 999px;
    background: #f3f4f6;
    color: #374151;
    text-decoration: none;
    font-weight: 800;
    font-size: .85rem;
    padding: .45rem .85rem;
}

.tm-detail-jumpnav a:hover,
.tm-detail-jumpnav a:focus {
    background: rgba(185, 28, 28, .1);
    color: var(--tm-red);
}

.tm-map-shell-compact .tm-map-small {
    min-height: 360px;
}

@media (max-width: 767.98px) {
    .tm-event-detail-hero {
        border-radius: 1.1rem;
    }

    .tm-event-detail-hero-layout {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .tm-event-detail-actions,
    .tm-event-detail-side-actions,
    .tm-event-detail-actions form,
    .tm-event-detail-actions .tm-detail-btn,
    .tm-event-detail-side-actions .tm-detail-btn {
        width: 100%;
    }

    .tm-event-detail-side-actions {
        order: -1;
        justify-content: stretch;
        padding-bottom: 0;
    }

    .tm-event-detail-actions .tm-detail-btn,
    .tm-event-detail-side-actions .tm-detail-btn {
        flex: 1 1 100%;
    }

    .tm-event-detail-badges {
        gap: .4rem !important;
    }

    .tm-event-detail-badges .tm-badge,
    .tm-event-detail-badges .tm-status {
        font-size: .78rem;
        padding: .28rem .58rem;
    }

    .tm-detail-jumpnav {
        position: sticky;
        top: .5rem;
        z-index: 1010;
        margin-left: -1rem;
        margin-right: -1rem;
        padding: .55rem 1rem;
        background: rgba(255, 255, 255, .96);
        border-top: 1px solid rgba(15, 23, 42, .06);
        border-bottom: 1px solid rgba(15, 23, 42, .08);
        backdrop-filter: blur(12px);
    }

    .tm-public-summary-item {
        padding: .85rem;
    }

    .tm-feature-media {
        border-radius: 1rem;
    }

    .tm-feature-media img {
        max-height: 54vh;
        object-fit: cover;
    }

    .tm-public-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .7rem;
    }

    .tm-map-filter-card {
        position: relative;
        z-index: 2;
    }

    .tm-map-shell {
        margin-left: -1rem;
        margin-right: -1rem;
        border-radius: 0;
    }

    .tm-map-shell .tm-map {
        min-height: calc(100vh - 10rem);
        border-radius: 0;
    }

    .tm-map-shell-compact {
        margin-left: 0;
        margin-right: 0;
        border-radius: 1rem;
    }

    .tm-map-shell-compact .tm-map-small {
        min-height: 360px;
        border-radius: 0 0 1rem 1rem;
    }

    .leaflet-control-zoom a {
        width: 38px;
        height: 38px;
        line-height: 38px;
    }
}

.tm-quality-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 1rem;
}

.tm-quality-card {
    position: relative;
    padding: 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .05);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.tm-quality-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .09);
    border-color: rgba(185, 28, 28, .22);
}

.tm-quality-card-ok { border-left: 4px solid #16a34a; }
.tm-quality-card-info { border-left: 4px solid #2563eb; }
.tm-quality-card-warning { border-left: 4px solid #f59e0b; }
.tm-quality-card-danger { border-left: 4px solid #dc2626; }

.tm-quality-number {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1.1;
    color: #111827;
}

.tm-quality-progress {
    height: .45rem;
    border-radius: 999px;
    background: #eef2f7;
}

.tm-quality-progress .progress-bar {
    background: linear-gradient(90deg, var(--tm-red), #334155);
}

.tm-quality-list {
    display: grid;
    gap: .65rem;
}

.tm-quality-list-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: .75rem;
    align-items: center;
    padding: .75rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-quality-list-row:last-child {
    border-bottom: 0;
}

.tm-quality-list-row span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.tm-quality-list-row small {
    color: #6b7280;
}


.tm-quality-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    min-width: 10rem;
}

/* Admin event edit quality assistant */
.tm-quality-edit-alert {
    border: 0;
    border-left: 4px solid #f59e0b;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.08);
}

.tm-quality-field-warning {
    border-color: #f59e0b !important;
    background: #fffbeb;
}

.tm-quality-field-warning:focus {
    border-color: #d97706 !important;
    box-shadow: 0 0 0 .25rem rgba(245, 158, 11, .18);
}

.tm-quality-edit-card .tm-quality-progress {
    height: 9px;
    border-radius: 999px;
    background: #e5e7eb;
}

.tm-quality-edit-list {
    display: grid;
    gap: .55rem;
}

.tm-quality-edit-row {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: .65rem;
    align-items: start;
    padding: .72rem .8rem;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    color: inherit;
    text-decoration: none;
    background: #fff;
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.tm-quality-edit-row:hover {
    transform: translateY(-1px);
    border-color: #cbd5e1;
    background: #f8fafc;
}

.tm-quality-edit-row strong {
    display: block;
    font-size: .92rem;
}

.tm-quality-edit-row small {
    display: block;
    color: #64748b;
    line-height: 1.35;
}

.tm-quality-edit-icon {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: .85rem;
}

.tm-quality-edit-row.is-ok .tm-quality-edit-icon {
    background: #dcfce7;
    color: #166534;
}

.tm-quality-edit-row.is-open {
    border-color: #fde68a;
    background: #fffbeb;
}

.tm-quality-edit-row.is-open .tm-quality-edit-icon {
    background: #fef3c7;
    color: #92400e;
}

.tm-stat-subnav {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
}

.tm-stat-subnav a {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 999px;
    padding: .5rem .85rem;
    color: #334155;
    background: #fff;
    text-decoration: none;
    font-size: .9rem;
    font-weight: 800;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
}

.tm-stat-subnav a:hover,
.tm-stat-subnav a.is-active {
    color: #fff;
    background: #991b1b;
    border-color: #991b1b;
}

.tm-stat-table th {
    color: #64748b;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
}

.tm-stat-table td {
    vertical-align: middle;
}

.tm-stat-mini-bar {
    height: .45rem;
    width: 100%;
    min-width: 7rem;
    border-radius: 999px;
    background: #f1f5f9;
    overflow: hidden;
    margin-top: .25rem;
}

.tm-stat-mini-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #dc2626, #7f1d1d);
}

.tm-stat-detail-card {
    overflow: hidden;
}

.tm-stat-big-number {
    color: #991b1b;
    font-size: clamp(2rem, 5vw, 3.2rem);
    line-height: 1;
}

.tm-stat-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
}

.tm-stat-meta-grid span {
    display: block;
    border-radius: .9rem;
    background: #f8fafc;
    color: #64748b;
    padding: .75rem;
    font-size: .82rem;
    font-weight: 700;
}

.tm-stat-meta-grid strong {
    display: block;
    color: #111827;
    font-size: 1.1rem;
}

.tm-stat-rank-row {
    display: grid;
    grid-template-columns: minmax(12rem, 1fr) minmax(11rem, 1.2fr) auto;
    gap: 1rem;
    align-items: center;
    padding: .9rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-stat-rank-row:last-child {
    border-bottom: 0;
}

.tm-stat-rank-row span {
    display: block;
    color: #64748b;
    font-size: .86rem;
}

.tm-stat-rank-main {
    display: flex;
    gap: .8rem;
    align-items: center;
}

.tm-stat-rank-main strong {
    min-width: 3rem;
    text-align: right;
    color: #991b1b;
    font-size: 1.35rem;
}

.tm-stat-rank-actions {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.tm-stat-rank-actions a {
    border-radius: 999px;
    background: #f8fafc;
    color: #334155;
    padding: .35rem .7rem;
    text-decoration: none;
    font-size: .8rem;
    font-weight: 800;
}

.tm-stat-rank-actions a:hover {
    background: #991b1b;
    color: #fff;
}

@media (max-width: 767.98px) {
    .tm-stat-rank-row {
        grid-template-columns: 1fr;
    }

    .tm-stat-rank-actions {
        justify-content: flex-start;
    }

    .tm-stat-meta-grid {
        grid-template-columns: 1fr;
    }
}

/* Marker-Clustering für öffentliche Karten */
.tm-marker-cluster {
    background: rgba(33, 37, 41, 0.16);
    border-radius: 999px;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.2);
}

.tm-marker-cluster span {
    align-items: center;
    background: linear-gradient(135deg, #2b2f36, #111827);
    border: 3px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;
    color: #fff;
    display: flex;
    font-size: 0.88rem;
    font-weight: 800;
    height: 42px;
    justify-content: center;
    letter-spacing: -0.02em;
    line-height: 1;
    width: 42px;
}

.tm-marker-cluster.tm-cluster-medium span {
    background: linear-gradient(135deg, #8a2d2d, #c2410c);
}

.tm-marker-cluster.tm-cluster-large span {
    background: linear-gradient(135deg, #7f1d1d, #991b1b);
}

.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large {
    background: transparent;
}

.marker-cluster-small div,
.marker-cluster-medium div,
.marker-cluster-large div {
    background: transparent;
}

/* v8.7.1 Karten-Feinheiten */
.tm-map-quickfilters {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.tm-map-quickfilters a {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 999px;
    background: #fff;
    color: #374151;
    font-size: .9rem;
    font-weight: 800;
    padding: .45rem .85rem;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
}

.tm-map-quickfilters a:hover,
.tm-map-quickfilters a.is-active {
    border-color: rgba(185, 28, 28, .38);
    background: #fff7f7;
    color: var(--tm-red);
}

.tm-map-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

@media (max-width: 575.98px) {
    .tm-map-toolbar-actions {
        justify-content: flex-start;
        width: 100%;
    }
}

/* v8.7.3 Karten-Ladeanzeige */
.tm-map {
    position: relative;
}

.tm-map.is-loading {
    cursor: progress;
}

.tm-map-loading {
    position: absolute;
    z-index: 650;
    left: 50%;
    top: 1rem;
    transform: translate(-50%, -8px);
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: .65rem;
    row-gap: .1rem;
    align-items: center;
    min-width: min(340px, calc(100% - 2rem));
    max-width: calc(100% - 2rem);
    padding: .75rem .9rem;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: .9rem;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 16px 38px rgba(15, 23, 42, .16);
    color: #111827;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}

.tm-map-loading.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.tm-map-loading-spinner {
    grid-row: 1 / span 2;
    width: 1.15rem;
    height: 1.15rem;
    border: 3px solid rgba(185, 28, 28, .18);
    border-top-color: var(--tm-red);
    border-radius: 999px;
    animation: tm-map-spin .85s linear infinite;
}

.tm-map-loading strong {
    font-size: .9rem;
    line-height: 1.2;
}

.tm-map-loading small {
    color: #6b7280;
    font-size: .78rem;
    line-height: 1.2;
}

@keyframes tm-map-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 575.98px) {
    .tm-map-loading {
        top: .75rem;
        min-width: calc(100% - 1.5rem);
    }
}

/* v8.7.4 Infoseiten-Abschnittseditor */
.tm-info-section-editor {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: 1rem;
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    overflow: hidden;
}

.tm-info-section-editor-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255, 255, 255, .9);
}

.tm-info-section-editor-toolbar strong {
    display: block;
    color: #111827;
    font-size: .95rem;
}

.tm-info-section-editor-toolbar small {
    display: block;
    color: #6b7280;
    font-size: .78rem;
}

.tm-info-section-editor-list {
    display: grid;
    gap: .9rem;
    padding: 1rem;
}

.tm-info-section-card {
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
    overflow: hidden;
}

.tm-info-section-card-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .75rem;
    align-items: end;
    padding: .9rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #fff7f7;
}

.tm-info-section-card-actions,
.tm-info-paragraph-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}

.tm-info-section-card-body {
    display: grid;
    gap: .75rem;
    padding: .9rem;
}

.tm-info-paragraph-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .6rem;
    align-items: start;
}

.tm-info-paragraph-row textarea {
    min-height: 92px;
    resize: vertical;
}

.tm-info-section-empty {
    padding: 1.25rem;
    text-align: center;
    color: #6b7280;
}

@media (max-width: 767.98px) {
    .tm-info-section-card-header,
    .tm-info-paragraph-row {
        grid-template-columns: 1fr;
    }

    .tm-info-section-card-actions,
    .tm-info-paragraph-actions {
        justify-content: flex-start;
    }
}

/* v8.7.7 Rich-Text-Editor für Infoseiten */
.tm-info-section-rich-editor .tm-info-section-editor-toolbar {
    background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(248, 250, 252, .96));
}

.tm-info-rich-paragraph-row {
    grid-template-columns: minmax(0, 1fr) auto;
}

.tm-rich-text-wrap {
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: .75rem;
    background: #fff;
    overflow: hidden;
}

.tm-rich-text-toolbar {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
    padding: .45rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
}

.tm-rich-text-toolbar .btn {
    min-width: 2.15rem;
    font-weight: 800;
}

.tm-rich-text-area {
    min-height: 120px;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: auto;
    line-height: 1.6;
}

.tm-rich-text-area:focus {
    box-shadow: inset 0 0 0 .16rem rgba(185, 28, 28, .12);
}

.tm-rich-text-area:empty::before {
    content: attr(data-placeholder);
    color: #9ca3af;
    pointer-events: none;
}

.tm-rich-text-area a {
    color: var(--tm-red);
    font-weight: 700;
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .tm-info-rich-paragraph-row {
        grid-template-columns: 1fr;
    }
}

/* Info pages: simple rich text editor */
.tm-info-simple-editor {
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 1rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.tm-info-simple-editor-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .75rem;
    background: linear-gradient(180deg, rgba(248, 250, 252, .95), rgba(241, 245, 249, .95));
    border-bottom: 1px solid rgba(15, 23, 42, .1);
}

.tm-info-simple-editor-area {
    min-height: 360px;
    border: 0;
    border-radius: 0;
    padding: 1.1rem;
    line-height: 1.65;
    overflow: auto;
}

.tm-info-simple-editor-area:focus {
    outline: 0;
    box-shadow: inset 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.tm-info-simple-editor-area h3 {
    margin: 1.25rem 0 .55rem;
    font-size: 1.08rem;
    font-weight: 800;
}

.tm-info-simple-editor-area p {
    margin: 0 0 .9rem;
}

.tm-info-simple-editor-area:empty::before {
    content: attr(data-placeholder);
    color: #94a3b8;
    pointer-events: none;
}

/* Info pages: Quill rich text editor */
.tm-info-quill-editor {
    border: 1px solid rgba(15, 23, 42, .12);
    border-radius: 1rem;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.tm-info-quill-toolbar.ql-toolbar.ql-snow {
    border: 0;
    border-bottom: 1px solid rgba(15, 23, 42, .1);
    background: linear-gradient(180deg, rgba(248, 250, 252, .95), rgba(241, 245, 249, .95));
}

.tm-info-quill-area.ql-container.ql-snow {
    border: 0;
    min-height: 380px;
    font-size: 1rem;
}

.tm-info-quill-area .ql-editor {
    min-height: 380px;
    line-height: 1.65;
    padding: 1.1rem;
}

.tm-info-quill-area .ql-editor h3 {
    margin: 1.25rem 0 .55rem;
    font-size: 1.08rem;
    font-weight: 800;
}

.tm-info-quill-area .ql-editor p {
    margin-bottom: .9rem;
}

.tm-info-quill-area .ql-editor a {
    color: var(--tm-red);
    font-weight: 700;
    text-decoration: underline;
}


.tm-language-switch .dropdown-menu {
    min-width: 11rem;
}

.tm-footer-language {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .75rem;
    align-items: center;
}

.tm-footer-language a {
    color: inherit;
    text-decoration: none;
}

.tm-footer-language a:hover,
.tm-footer-language a:focus {
    text-decoration: underline;
}

.tm-section-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: rgba(185, 28, 28, .08);
    color: var(--tm-red);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .06em;
    padding: .35rem .7rem;
    text-transform: uppercase;
}

.tm-old-home-highlight {
    background: linear-gradient(145deg, #ffffff, #f8fafc);
}

.tm-old-home-number-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.tm-old-home-number-grid > div {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: #fff;
    padding: 1rem;
}

.tm-old-home-number-grid strong,
.tm-old-home-number-grid span {
    display: block;
}

.tm-old-home-number-grid strong {
    color: #111827;
    font-size: 1.8rem;
    line-height: 1.1;
}

.tm-old-home-number-grid span {
    color: #6b7280;
    font-size: .88rem;
    margin-top: .25rem;
}

.tm-stat-nav-card {
    display: block;
    min-height: 100%;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.1rem;
    background: #fff;
    color: inherit;
    padding: 1.25rem;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.tm-stat-nav-card:hover {
    border-color: rgba(185, 28, 28, .28);
    box-shadow: 0 16px 35px rgba(15, 23, 42, .09);
    color: inherit;
    transform: translateY(-2px);
}

.tm-stat-nav-card strong,
.tm-stat-nav-card span {
    display: block;
}

.tm-stat-nav-card strong {
    color: #111827;
    font-size: 1.05rem;
    margin-bottom: .5rem;
}

.tm-stat-nav-card span {
    color: #6b7280;
    font-size: .92rem;
}

.tm-type-chip-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.tm-type-chip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 999px;
    color: inherit;
    padding: .75rem 1rem;
    text-decoration: none;
    transition: background .15s ease, border-color .15s ease;
}

.tm-type-chip:hover {
    background: #f9fafb;
    border-color: rgba(185, 28, 28, .24);
    color: inherit;
}

.tm-type-chip span {
    color: #374151;
    font-weight: 700;
}

.tm-type-chip strong {
    background: #f3f4f6;
    border-radius: 999px;
    color: #111827;
    min-width: 2.4rem;
    padding: .25rem .55rem;
    text-align: center;
}

@media (max-width: 767.98px) {
    .tm-type-chip-grid,
    .tm-old-home-number-grid {
        grid-template-columns: 1fr;
    }
}

.tm-anniversary-card {
    display: block;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.25rem;
    background: #fff;
    color: inherit;
    padding: 1.2rem;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.tm-anniversary-card:hover {
    border-color: rgba(185, 28, 28, .25);
    box-shadow: 0 18px 38px rgba(15, 23, 42, .1);
    color: inherit;
    transform: translateY(-2px);
}

.tm-anniversary-card strong,
.tm-anniversary-card span,
.tm-anniversary-card em {
    display: block;
}

.tm-anniversary-date {
    color: var(--tm-red);
    font-size: .82rem;
    font-weight: 800;
    letter-spacing: .03em;
    margin-bottom: .45rem;
    text-transform: uppercase;
}

.tm-anniversary-card strong {
    color: #111827;
    font-size: 1.35rem;
    line-height: 1.2;
    margin-bottom: .55rem;
}

.tm-anniversary-meta {
    color: #6b7280;
    font-size: .92rem;
    margin-bottom: .8rem;
}

.tm-anniversary-card em {
    color: #4b5563;
    font-style: normal;
    margin-bottom: 1rem;
}

.tm-anniversary-more {
    align-items: center;
    color: var(--tm-red);
    display: inline-flex !important;
    font-weight: 800;
}


/* Tornado-Pfade */
.tm-tornado-track {
    stroke: #8b1a1a;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .28));
}

.tm-event-track-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
}

.tm-event-track-summary span {
    display: flex;
    flex-direction: column;
    min-width: 120px;
    padding: .7rem .85rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: .8rem;
    background: rgba(0, 0, 0, .025);
    font-size: .78rem;
    color: var(--bs-secondary-color);
}

.tm-event-track-summary strong {
    color: var(--bs-body-color);
    font-size: 1rem;
}

.tm-event-track-list {
    display: grid;
    gap: .75rem;
}

.tm-event-track-segment {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: center;
    padding: .9rem 1rem;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: .9rem;
}

.tm-event-track-segment > div {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.tm-event-track-segment small {
    color: var(--bs-secondary-color);
}

.tm-event-track-arrow {
    font-size: 1.25rem;
    font-weight: 700;
}

.tm-event-track-meta {
    text-align: right;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    .tm-event-track-segment {
        grid-template-columns: 1fr;
        gap: .35rem;
    }

    .tm-event-track-arrow {
        transform: rotate(90deg);
        width: fit-content;
    }

    .tm-event-track-meta {
        text-align: left;
        white-space: normal;
        margin-top: .25rem;
    }
}


/* Public branding and primary navigation – v8.40 */
.tm-navbar {
    position: sticky;
    top: 0;
    z-index: 1040;
    min-height: 72px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 8px 30px rgba(15, 23, 42, .14);
}

.tm-navbar .container {
    max-width: 1440px;
}

.tm-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    min-width: max-content;
    padding-top: .4rem;
    padding-bottom: .4rem;
    text-decoration: none;
}

.tm-brand-logo {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .2), 0 6px 18px rgba(0, 0, 0, .2);
}

.tm-brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.tm-brand-copy strong {
    color: #fff;
    font-size: 1.08rem;
    letter-spacing: -.015em;
}

.tm-brand-copy small {
    margin-top: .28rem;
    color: rgba(255, 255, 255, .62);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.tm-main-nav {
    gap: .08rem;
}

.tm-main-nav > .nav-item > .nav-link {
    position: relative;
    border-radius: .65rem;
    color: rgba(255, 255, 255, .78);
    font-size: .91rem;
    font-weight: 650;
    padding: .64rem .62rem;
    transition: background-color .16s ease, color .16s ease;
}

.tm-main-nav > .nav-item > .nav-link:hover,
.tm-main-nav > .nav-item > .nav-link:focus-visible {
    background: rgba(255, 255, 255, .08);
    color: #fff;
}

.tm-main-nav > .nav-item > .nav-link.active {
    background: rgba(255, 255, 255, .11);
    color: #fff;
}

.tm-main-nav > .nav-item > .nav-link.active::after {
    content: '';
    position: absolute;
    right: .65rem;
    bottom: .28rem;
    left: .65rem;
    height: 2px;
    border-radius: 999px;
    background: #ef4444;
}

.tm-main-nav .dropdown-menu {
    min-width: 15rem;
    padding: .5rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .9rem;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .16);
}

.tm-main-nav .dropdown-item {
    border-radius: .58rem;
    padding: .58rem .7rem;
    font-size: .92rem;
}

.tm-main-nav .dropdown-item.active,
.tm-main-nav .dropdown-item:active {
    background: var(--tm-red);
    color: #fff;
}

.tm-nav-report-item {
    display: flex;
    align-items: center;
    margin-left: .35rem;
    margin-right: .2rem;
}

.tm-nav-report {
    white-space: nowrap;
    border-radius: .7rem;
    font-size: .88rem;
    font-weight: 750;
    padding: .55rem .78rem;
    box-shadow: 0 8px 18px rgba(185, 28, 28, .18);
}

.tm-home-hero h1 {
    max-width: 760px;
    letter-spacing: -.035em;
}

.tm-home-hero .lead {
    max-width: 760px;
    color: rgba(255, 255, 255, .8);
}

@media (max-width: 1199.98px) {
    .tm-navbar .navbar-collapse {
        max-height: calc(100vh - 92px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .tm-main-nav > .nav-item > .nav-link.active::after {
        top: .72rem;
        right: auto;
        bottom: .72rem;
        left: .2rem;
        width: 3px;
        height: auto;
    }

    .tm-nav-report-item {
        margin: .5rem 0 .2rem;
    }

    .tm-nav-report {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .tm-navbar {
        min-height: 64px;
    }

    .tm-brand {
        gap: .55rem;
    }

    .tm-brand-logo {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
    }

    .tm-brand-copy strong {
        font-size: 1rem;
    }

    .tm-brand-copy small {
        font-size: .57rem;
        letter-spacing: .02em;
    }
}

/* Homepage portal design v8.41.0 */
.tm-portal-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 12%, rgba(185, 28, 28, .42), transparent 30%),
        radial-gradient(circle at 15% 92%, rgba(71, 85, 105, .32), transparent 28%),
        linear-gradient(132deg, #111827 0%, #1f2937 52%, #334155 100%);
    color: #fff;
    padding: 5.75rem 0 5.25rem;
}

.tm-portal-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .24;
    background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.7), transparent 92%);
}

.tm-portal-hero .container { z-index: 1; }

.tm-portal-eyebrow {
    color: rgba(255, 255, 255, .68);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tm-portal-hero h1 {
    max-width: 780px;
    margin: 1rem 0 1.15rem;
    font-size: clamp(2.45rem, 5vw, 4.75rem);
    line-height: .98;
    letter-spacing: -.052em;
    font-weight: 800;
}

.tm-portal-lead {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, .78);
    font-size: 1.16rem;
    line-height: 1.75;
}

.tm-portal-trustline {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1.2rem;
    margin-top: 2rem;
    color: rgba(255, 255, 255, .62);
    font-size: .82rem;
    font-weight: 650;
}

.tm-portal-trustline span::before {
    content: "";
    display: inline-block;
    width: .42rem;
    height: .42rem;
    margin-right: .5rem;
    border-radius: 50%;
    background: #ef4444;
    vertical-align: .08rem;
}

.tm-portal-dataset {
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 1.5rem;
    padding: 1.55rem;
    background: rgba(17, 24, 39, .46);
    box-shadow: 0 28px 70px rgba(0, 0, 0, .28);
    backdrop-filter: blur(14px);
}

.tm-portal-dataset-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.tm-portal-dataset-head span,
.tm-portal-dataset-head small { display: block; color: rgba(255,255,255,.62); }
.tm-portal-dataset-head strong { display: block; margin: .15rem 0; font-size: 3rem; line-height: 1; color: #fff; }
.tm-portal-dataset-head .tm-status { color: #047857; }

.tm-portal-stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}

.tm-portal-stat-grid > div {
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 1rem;
    padding: .85rem 1rem;
    background: rgba(255, 255, 255, .055);
}

.tm-portal-stat-grid strong,
.tm-portal-stat-grid span { display: block; }
.tm-portal-stat-grid strong { color: #fff; font-size: 1.45rem; }
.tm-portal-stat-grid span { color: rgba(255,255,255,.58); font-size: .82rem; }
.tm-portal-coordinate-row { margin-top: 1.15rem; color: rgba(255,255,255,.66); }
.tm-portal-coordinate-row strong { color: #fff; }
.tm-portal-updated { margin-top: 1rem; color: rgba(255,255,255,.56); font-size: .8rem; }
.tm-portal-updated strong { color: rgba(255,255,255,.84); }

.tm-portal-main { background: #f6f7f9; }
.tm-portal-section-head,
.tm-portal-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1.25rem;
    flex-wrap: wrap;
    margin-bottom: 1.35rem;
}

.tm-portal-section-head h2,
.tm-portal-panel-head h2,
.tm-portal-archive-callout h2 {
    margin: .65rem 0 .35rem;
    color: #111827;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    font-weight: 800;
    letter-spacing: -.035em;
}
.tm-portal-section-head p,
.tm-portal-panel-head p,
.tm-portal-archive-callout p { margin: 0; color: #6b7280; }

.tm-portal-entry {
    display: flex;
    min-height: 230px;
    height: 100%;
    flex-direction: column;
    padding: 1.35rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.25rem;
    background: #fff;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .045);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.tm-portal-entry:hover { color: inherit; transform: translateY(-4px); border-color: rgba(185,28,28,.28); box-shadow: 0 20px 45px rgba(15,23,42,.09); }
.tm-portal-entry-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .85rem; background: rgba(185,28,28,.08); color: var(--tm-red); font-weight: 800; font-size: .78rem; }
.tm-portal-entry strong { margin: 1.25rem 0 .45rem; color: #111827; font-size: 1.1rem; }
.tm-portal-entry small { color: #6b7280; line-height: 1.55; }
.tm-portal-entry em { margin-top: auto; padding-top: 1.25rem; color: var(--tm-red); font-style: normal; font-size: .85rem; font-weight: 800; }

.tm-portal-panel {
    padding: 1.5rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 14px 34px rgba(15,23,42,.055);
}
.tm-portal-panel h3 { color: #111827; font-size: 1.15rem; font-weight: 800; margin-bottom: 1rem; }

.tm-portal-event-list { display: grid; }
.tm-portal-event-row {
    display: grid;
    grid-template-columns: 105px minmax(0, 1fr) auto;
    align-items: center;
    gap: 1rem;
    padding: 1rem .2rem;
    border-bottom: 1px solid rgba(15,23,42,.08);
    color: inherit;
    text-decoration: none;
}
.tm-portal-event-row:last-child { border-bottom: 0; }
.tm-portal-event-row:hover strong { color: var(--tm-red); }
.tm-portal-event-row time { color: #6b7280; font-size: .84rem; font-weight: 700; }
.tm-portal-event-row div > strong,
.tm-portal-event-row div > span { display: block; }
.tm-portal-event-row div > strong { color: #111827; transition: color .15s ease; }
.tm-portal-event-row div > span { margin-top: .2rem; color: #6b7280; font-size: .86rem; }
.tm-portal-event-state { display: flex; flex-direction: column; align-items: flex-end; gap: .3rem; }
.tm-portal-event-state small { color: #6b7280; font-size: .76rem; }

.tm-portal-anniversary { display: flex; flex-direction: column; position: relative; overflow: hidden; }
.tm-portal-anniversary::after { content: ""; position: absolute; right: -4rem; bottom: -5rem; width: 13rem; height: 13rem; border-radius: 50%; background: rgba(185,28,28,.06); }
.tm-portal-anniversary > * { position: relative; z-index: 1; }
.tm-portal-anniversary h2 { margin: .7rem 0 1.4rem; color: #111827; font-size: 1.75rem; font-weight: 800; letter-spacing: -.035em; }
.tm-portal-anniversary-date { color: var(--tm-red); font-size: .8rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.tm-portal-anniversary h3 { margin: .55rem 0; font-size: 1.35rem; }
.tm-portal-anniversary p { color: #6b7280; }
.tm-portal-anniversary .btn { align-self: flex-start; }

.tm-portal-archive-callout {
    padding: 2.25rem;
    border-radius: 1.5rem;
    background: linear-gradient(130deg, #fff 0%, #fff 58%, #fef2f2 100%);
    border: 1px solid rgba(185,28,28,.13);
    box-shadow: 0 18px 42px rgba(15,23,42,.06);
}
.tm-portal-archive-callout p { max-width: 780px; line-height: 1.7; }

.tm-portal-region-list { display: grid; }
.tm-portal-region-list a { display: flex; justify-content: space-between; gap: 1rem; padding: .82rem 0; border-bottom: 1px solid rgba(15,23,42,.08); color: #374151; text-decoration: none; }
.tm-portal-region-list a:last-child { border-bottom: 0; }
.tm-portal-region-list a:hover span { color: var(--tm-red); }
.tm-portal-region-list strong { display: grid; min-width: 2.2rem; height: 1.8rem; place-items: center; border-radius: 999px; background: #f3f4f6; color: #111827; font-size: .8rem; }

@media (max-width: 991.98px) {
    .tm-portal-hero { padding: 4.25rem 0; }
    .tm-portal-event-row { grid-template-columns: 90px minmax(0, 1fr); }
    .tm-portal-event-state { grid-column: 2; align-items: flex-start; flex-direction: row; }
}

@media (max-width: 575.98px) {
    .tm-portal-hero { padding: 3.4rem 0; }
    .tm-portal-hero h1 { font-size: 2.45rem; }
    .tm-portal-lead { font-size: 1rem; }
    .tm-portal-dataset { padding: 1.1rem; }
    .tm-portal-dataset-head strong { font-size: 2.4rem; }
    .tm-portal-entry { min-height: 205px; }
    .tm-portal-panel, .tm-portal-archive-callout { padding: 1.2rem; }
    .tm-portal-event-row { grid-template-columns: 1fr; gap: .45rem; }
    .tm-portal-event-state { grid-column: auto; }
}


/* Map workspace redesign v8.42.0 */
.tm-map-page { background: #f5f6f8; min-height: 100vh; }
.tm-map-hero {
    background:
        radial-gradient(circle at 88% 18%, rgba(185, 28, 28, .36), transparent 28%),
        linear-gradient(132deg, #111827 0%, #1f2937 56%, #334155 100%);
    color: #fff;
}
.tm-map-hero h1 { margin: .7rem 0 .8rem; font-size: clamp(2.35rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.05em; font-weight: 800; }
.tm-map-hero p { max-width: 760px; margin: 0; color: rgba(255,255,255,.72); font-size: 1.08rem; line-height: 1.7; }
.tm-map-hero-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.6rem; }
.tm-map-hero-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; padding: 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 1.35rem; background: rgba(15,23,42,.42); backdrop-filter: blur(12px); }
.tm-map-hero-facts > div { min-width: 0; padding: .9rem; border-radius: .9rem; background: rgba(255,255,255,.055); }
.tm-map-hero-facts span, .tm-map-hero-facts strong { display: block; }
.tm-map-hero-facts span { color: rgba(255,255,255,.57); font-size: .76rem; }
.tm-map-hero-facts strong { margin-top: .25rem; overflow: hidden; color: #fff; font-size: 1.18rem; text-overflow: ellipsis; white-space: nowrap; }
.tm-map-commandbar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.tm-map-filter-toggle { flex: 0 0 auto; }
.tm-map-filter-count { display: inline-grid; min-width: 1.45rem; height: 1.45rem; margin-left: .35rem; place-items: center; border-radius: 999px; background: #111827; color: #fff; font-size: .72rem; }
.tm-map-filter-panel { padding: 1.5rem; border: 1px solid rgba(15,23,42,.08); border-radius: 1.3rem; background: #fff; box-shadow: 0 15px 38px rgba(15,23,42,.055); }
.tm-map-filter-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1.2rem; }
.tm-map-filter-head h2 { margin: .4rem 0 0; color: #111827; font-size: 1.35rem; font-weight: 800; letter-spacing: -.025em; }
.tm-map-reset-link { color: #6b7280; font-size: .85rem; font-weight: 800; text-decoration: none; }
.tm-map-reset-link:hover { color: var(--tm-red); }
.tm-map-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 1.25rem; align-items: start; }
.tm-map-workspace .tm-map-shell { border: 1px solid rgba(15,23,42,.1); border-radius: 1.35rem; box-shadow: 0 20px 55px rgba(15,23,42,.10); }
.tm-map-workspace .tm-map-toolbar { padding: .9rem 1rem; background: #fff; }
.tm-map-toolbar-copy { display: flex; align-items: center; gap: .8rem; min-width: 0; }
.tm-map-live-dot { width: .7rem; height: .7rem; flex: 0 0 auto; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 5px rgba(22,163,74,.10); }
.tm-map-toolbar-copy strong, .tm-map-toolbar-copy span { display: block; }
.tm-map-toolbar-copy span { color: #6b7280; font-size: .8rem; }
.tm-map-stage { position: relative; }
.tm-map-workspace .tm-map { height: min(72vh, 760px); min-height: 570px; }
.tm-map-stage-note { position: absolute; z-index: 500; left: 1rem; bottom: 1rem; max-width: 330px; padding: .7rem .85rem; border: 1px solid rgba(255,255,255,.58); border-radius: .85rem; background: rgba(17,24,39,.84); color: #fff; box-shadow: 0 10px 28px rgba(15,23,42,.22); backdrop-filter: blur(10px); pointer-events: none; }
.tm-map-stage-note strong, .tm-map-stage-note span { display: block; }
.tm-map-stage-note strong { font-size: .78rem; }
.tm-map-stage-note span { margin-top: .18rem; color: rgba(255,255,255,.67); font-size: .72rem; line-height: 1.45; }
.tm-map-sidebar { display: grid; gap: 1.25rem; }
.tm-map-sidepanel { padding: 1.2rem; border: 1px solid rgba(15,23,42,.08); border-radius: 1.2rem; background: #fff; box-shadow: 0 12px 32px rgba(15,23,42,.05); }
.tm-map-sidepanel-head { margin-bottom: 1rem; }
.tm-map-sidepanel-head h2 { margin: .35rem 0 0; color: #111827; font-size: 1.15rem; font-weight: 800; }
.tm-map-sidepanel .tm-map-legend a { border: 0; border-bottom: 1px solid rgba(15,23,42,.07); border-radius: 0; padding: .65rem .15rem; box-shadow: none; }
.tm-map-sidepanel .tm-map-legend a:last-child { border-bottom: 0; }
.tm-map-sidepanel .tm-map-legend a:hover, .tm-map-sidepanel .tm-map-legend a.is-active { background: transparent; color: var(--tm-red); }
.tm-map-sidepanel .tm-map-summary h3 { color: #6b7280; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.tm-map-results { padding: 1.5rem; border: 1px solid rgba(15,23,42,.08); border-radius: 1.35rem; background: #fff; box-shadow: 0 14px 34px rgba(15,23,42,.05); }
.tm-map-results-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 1.25rem; }
.tm-map-results-head h2 { margin: .4rem 0 .25rem; color: #111827; font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; letter-spacing: -.035em; }
.tm-map-results-head p { margin: 0; color: #6b7280; }
.tm-map-result-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.tm-map-result-card { display: flex; min-height: 185px; flex-direction: column; padding: 1rem; border: 1px solid rgba(15,23,42,.08); border-radius: 1rem; color: inherit; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.tm-map-result-card:hover { color: inherit; transform: translateY(-3px); border-color: rgba(185,28,28,.28); box-shadow: 0 14px 30px rgba(15,23,42,.08); }
.tm-map-result-card time { color: #6b7280; font-size: .76rem; font-weight: 800; }
.tm-map-result-card strong { margin: .7rem 0 .3rem; color: #111827; }
.tm-map-result-card span { color: #6b7280; font-size: .84rem; }
.tm-map-result-card em { margin-top: auto; padding-top: 1rem; color: var(--tm-red); font-size: .8rem; font-style: normal; font-weight: 800; }
.tm-map-empty { padding: 2rem; border-radius: 1rem; background: #f8fafc; color: #6b7280; text-align: center; }
.tm-map-shell:fullscreen { display: flex; width: 100vw; height: 100vh; flex-direction: column; border-radius: 0; background: #fff; }
.tm-map-shell:fullscreen .tm-map-stage { flex: 1 1 auto; min-height: 0; }
.tm-map-shell:fullscreen .tm-map { width: 100%; height: 100%; min-height: 0; }
.tm-map-shell:fullscreen .tm-map-toolbar { flex: 0 0 auto; }

@media (max-width: 1199.98px) {
    .tm-map-workspace { grid-template-columns: 1fr; }
    .tm-map-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tm-map-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .tm-map-commandbar, .tm-map-filter-head, .tm-map-results-head { align-items: stretch; flex-direction: column; }
    .tm-map-filter-toggle { width: 100%; }
    .tm-map-sidebar { grid-template-columns: 1fr; }
    .tm-map-workspace .tm-map { height: 68vh; min-height: 500px; }
    .tm-map-stage-note { right: 1rem; max-width: none; }
    .tm-map-result-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .tm-map-hero-facts { grid-template-columns: 1fr 1fr; padding: .75rem; }
    .tm-map-hero-facts > div { padding: .75rem; }
    .tm-map-hero-facts strong { font-size: 1rem; }
    .tm-map-filter-panel, .tm-map-results { padding: 1rem; }
    .tm-map-workspace .tm-map-toolbar { align-items: stretch; }
    .tm-map-toolbar-actions .btn { flex: 1 1 auto; }
    .tm-map-workspace .tm-map { height: 64vh; min-height: 440px; }
    .tm-map-stage-note { display: none; }
}


/* Navigation scroll fix and event archive redesign – v8.43 */
.tm-navbar .dropdown-menu {
    max-height: calc(100vh - 92px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

.tm-admin-dropdown {
    min-width: 17rem;
    max-height: calc(100vh - 92px);
}

.tm-admin-dropdown .dropdown-header {
    position: sticky;
    top: -.5rem;
    z-index: 1;
    margin: 0 -.5rem;
    padding: .7rem 1.2rem .45rem;
    background: #fff;
    color: #6b7280;
}

.tm-admin-dropdown .dropdown-divider {
    margin: .35rem 0;
}

.tm-events-page .tm-page-hero {
    background:
        radial-gradient(circle at 84% 16%, rgba(185, 28, 28, .34), transparent 28%),
        linear-gradient(132deg, #111827 0%, #1f2937 58%, #334155 100%);
}

.tm-events-filter-panel,
.tm-events-results {
    padding: 1.5rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 15px 38px rgba(15, 23, 42, .055);
}

.tm-events-filter-head,
.tm-events-results-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 1rem;
    margin-bottom: 1.35rem;
}

.tm-events-filter-head h2,
.tm-events-results-head h2 {
    margin: .35rem 0 .25rem;
    color: #111827;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 800;
    letter-spacing: -.035em;
}

.tm-events-filter-head p,
.tm-events-results-head p {
    margin: 0;
    color: #6b7280;
}

.tm-events-filter-state {
    flex: 0 0 auto;
    padding: .48rem .72rem;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-size: .8rem;
    font-weight: 800;
}

.tm-events-results .tm-events-table {
    margin-bottom: 0;
}

.tm-events-results .tm-events-table tbody tr {
    transition: background-color .16s ease;
}

.tm-events-results .tm-events-table tbody tr:hover {
    background: #f8fafc;
}

.tm-events-results .pagination .page-link {
    border-radius: .65rem;
    margin-right: .25rem;
    color: #374151;
}

.tm-events-results .pagination .active .page-link {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.tm-event-detail-hero {
    overflow: hidden;
    background:
        radial-gradient(circle at 86% 14%, rgba(185, 28, 28, .4), transparent 30%),
        linear-gradient(132deg, #111827 0%, #1f2937 58%, #334155 100%);
}

.tm-event-detail-classification {
    margin: .55rem 0 .85rem;
    color: rgba(255, 255, 255, .6);
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tm-event-detail-hero h1 {
    max-width: 800px;
    font-size: clamp(2.2rem, 5vw, 4.35rem);
    line-height: 1;
    letter-spacing: -.05em;
}

.tm-event-detail-lead {
    max-width: 760px;
    margin: .85rem 0 1rem;
    color: rgba(255, 255, 255, .76);
    font-size: 1.05rem;
}

.tm-event-detail-datasheet {
    display: grid;
    gap: .9rem;
    min-width: min(100%, 360px);
    padding: 1rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 1.25rem;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(12px);
}

.tm-event-detail-intensity {
    padding: 1rem;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .08);
}

.tm-event-detail-intensity span,
.tm-event-detail-intensity strong {
    display: block;
}

.tm-event-detail-intensity span {
    color: rgba(255, 255, 255, .58);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tm-event-detail-intensity strong {
    margin-top: .25rem;
    color: #fff;
    font-size: clamp(1.8rem, 4vw, 3rem);
    line-height: 1;
}

.tm-event-detail-factgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.tm-event-detail-factgrid > div {
    min-width: 0;
    padding: .75rem;
    border-radius: .85rem;
    background: rgba(255, 255, 255, .055);
}

.tm-event-detail-factgrid span,
.tm-event-detail-factgrid strong {
    display: block;
}

.tm-event-detail-factgrid span {
    color: rgba(255, 255, 255, .52);
    font-size: .7rem;
}

.tm-event-detail-factgrid strong {
    margin-top: .2rem;
    overflow: hidden;
    color: #fff;
    font-size: .92rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tm-event-detail-datasheet .tm-event-detail-side-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .6rem;
}

.tm-event-detail-datasheet .tm-detail-btn {
    justify-content: center;
    text-align: center;
}

@media (max-width: 1199.98px) {
    .tm-navbar .navbar-collapse {
        max-height: calc(100dvh - 92px);
        overflow-y: auto;
        overscroll-behavior: contain;
    }

    .tm-main-nav .dropdown-menu,
    .tm-admin-dropdown {
        max-height: min(55vh, 32rem);
    }
}

@media (max-width: 767.98px) {
    .tm-events-filter-head,
    .tm-events-results-head {
        align-items: stretch;
        flex-direction: column;
    }

    .tm-events-filter-state {
        align-self: flex-start;
    }

    .tm-event-detail-datasheet {
        min-width: 0;
    }
}

@media (max-width: 575.98px) {
    .tm-events-filter-panel,
    .tm-events-results {
        padding: 1rem;
    }

    .tm-event-detail-factgrid,
    .tm-event-detail-datasheet .tm-event-detail-side-actions {
        grid-template-columns: 1fr;
    }
}


/* v8.44.0 – Chronik und Rechercheportal */
.tm-kicker-light {
    color: rgba(255, 255, 255, .62);
}

.tm-chronology-hero,
.tm-search-portal-hero {
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(185, 28, 28, .38), transparent 28%),
        radial-gradient(circle at 12% 95%, rgba(14, 165, 233, .13), transparent 34%),
        linear-gradient(132deg, #111827 0%, #1f2937 58%, #334155 100%);
}

.tm-chronology-hero .lead,
.tm-search-portal-hero .lead {
    max-width: 850px;
    color: rgba(255, 255, 255, .75);
}

.tm-chronology-summary,
.tm-search-hero-summary {
    padding: 1.35rem;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 1.25rem;
    background: rgba(15, 23, 42, .42);
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, .18);
    backdrop-filter: blur(12px);
}

.tm-search-hero-summary span,
.tm-search-hero-summary strong,
.tm-search-hero-summary small {
    display: block;
}

.tm-search-hero-summary span {
    color: rgba(255, 255, 255, .58);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tm-search-hero-summary strong {
    margin: .3rem 0;
    color: #fff;
    font-size: clamp(1.65rem, 3vw, 2.3rem);
    line-height: 1.1;
}

.tm-search-hero-summary small {
    color: rgba(255, 255, 255, .68);
}

.tm-chronology-filter-panel,
.tm-search-panel,
.tm-chronology-panel,
.tm-search-facet-panel,
.tm-search-results-panel,
.tm-search-actionbar {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 15px 38px rgba(15, 23, 42, .055);
}

.tm-chronology-filter-panel,
.tm-search-panel,
.tm-chronology-panel,
.tm-search-facet-panel,
.tm-search-results-panel {
    overflow: hidden;
}

.tm-chronology-filter-head,
.tm-search-panel-head,
.tm-chronology-panel-head,
.tm-search-results-head,
.tm-search-actionbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.tm-chronology-filter-head,
.tm-search-panel-head,
.tm-chronology-panel-head,
.tm-search-results-head {
    padding: 1.35rem 1.5rem;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
}

.tm-chronology-filter-head h2,
.tm-search-panel-head h2,
.tm-chronology-panel-head h2,
.tm-search-results-head h2,
.tm-search-facet-body h2 {
    margin: .25rem 0 .2rem;
    color: #111827;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight: 800;
    letter-spacing: -.035em;
}

.tm-chronology-filter-head p,
.tm-search-panel-head p {
    margin: 0;
    color: #6b7280;
}

.tm-chronology-filter-state,
.tm-search-filter-state,
.tm-search-result-count {
    flex: 0 0 auto;
    padding: .48rem .72rem;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-size: .8rem;
    font-weight: 800;
}

.tm-chronology-filter-body,
.tm-search-panel-body,
.tm-chronology-panel-body,
.tm-search-results-body,
.tm-search-facet-body {
    padding: 1.5rem;
}

.tm-active-filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.tm-active-filter-list span {
    padding: .38rem .62rem;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: .8rem;
    font-weight: 700;
}

.tm-chronology-panel-head small {
    color: #6b7280;
    font-size: .78rem;
}

.tm-year-bars {
    max-height: 34rem;
    padding-right: .25rem;
    overflow-y: auto;
    scrollbar-width: thin;
}

.tm-year-bar {
    position: relative;
    border: 1px solid transparent;
}

.tm-year-bar:hover {
    border-color: rgba(15, 23, 42, .07);
    background: #f8fafc;
}

.tm-year-bar-track {
    background: #e5e7eb;
}

.tm-year-bar-track span {
    background: linear-gradient(90deg, #111827, #b91c1c);
}

.tm-timeline {
    padding-left: .2rem;
}

.tm-timeline::before {
    background: linear-gradient(180deg, #b91c1c 0%, #cbd5e1 82%, transparent 100%);
}

.tm-timeline-item {
    gap: 1.15rem;
    padding-bottom: 1.35rem;
}

.tm-timeline-date {
    color: #6b7280;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .025em;
}

.tm-timeline-content {
    padding: 1rem 1.1rem;
    border: 1px solid rgba(15, 23, 42, .07);
    border-radius: 1rem;
    background: #fff;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.tm-timeline-content:hover {
    transform: translateY(-1px);
    border-color: rgba(185, 28, 28, .18);
    box-shadow: 0 12px 26px rgba(15, 23, 42, .06);
}

.tm-timeline-content h2 a {
    color: #111827;
    text-decoration: none;
}

.tm-timeline-content h2 a:hover {
    color: #b91c1c;
}

.tm-decade-list .list-group-item {
    padding: .9rem 1.5rem;
    border-color: rgba(15, 23, 42, .07);
}

.tm-decade-list .list-group-item:first-child {
    border-top: 0;
}

.tm-decade-list .list-group-item:hover {
    background: #f8fafc;
}

.tm-search-actionbar {
    padding: 1rem 1.25rem;
}

.tm-search-actionbar > div:first-child {
    display: grid;
    gap: .1rem;
}

.tm-search-actionbar strong {
    color: #111827;
}

.tm-search-panel .form-control-lg,
.tm-search-panel .form-select {
    border-color: rgba(15, 23, 42, .12);
}

.tm-search-panel .form-control-lg:focus,
.tm-search-panel .form-select:focus {
    border-color: rgba(185, 28, 28, .45);
    box-shadow: 0 0 0 .2rem rgba(185, 28, 28, .1);
}

.tm-search-facet-body h2 {
    margin-bottom: 1rem;
}

.tm-search-chips a {
    background: #f8fafc;
    transition: transform .15s ease, border-color .15s ease, background-color .15s ease;
}

.tm-search-chips a:hover {
    transform: translateY(-1px);
    border-color: rgba(185, 28, 28, .2);
    background: #fff;
    color: #991b1b;
}

.tm-search-results-panel .tm-search-results {
    gap: .8rem;
}

.tm-search-result-card {
    position: relative;
    box-shadow: none;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.tm-search-result-card:hover {
    transform: translateY(-1px);
    border-color: rgba(185, 28, 28, .18);
    box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.tm-search-score {
    min-width: 7.5rem;
}

.tm-search-score span {
    color: #991b1b;
}

.tm-search-meta span {
    border: 1px solid rgba(15, 23, 42, .055);
}

.tm-search-results-panel .pagination .page-link {
    margin-right: .25rem;
    border-radius: .65rem;
    color: #374151;
}

.tm-search-results-panel .pagination .active .page-link {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

@media (max-width: 767.98px) {
    .tm-chronology-filter-head,
    .tm-search-panel-head,
    .tm-chronology-panel-head,
    .tm-search-results-head,
    .tm-search-actionbar {
        align-items: stretch;
        flex-direction: column;
    }

    .tm-chronology-filter-state,
    .tm-search-filter-state,
    .tm-search-result-count {
        align-self: flex-start;
    }

    .tm-chronology-filter-head,
    .tm-search-panel-head,
    .tm-chronology-panel-head,
    .tm-search-results-head,
    .tm-chronology-filter-body,
    .tm-search-panel-body,
    .tm-chronology-panel-body,
    .tm-search-results-body,
    .tm-search-facet-body {
        padding: 1rem;
    }

    .tm-search-actionbar {
        padding: 1rem;
    }

    .tm-search-actionbar .d-flex {
        width: 100%;
    }

    .tm-search-actionbar .btn {
        flex: 1 1 auto;
    }

    .tm-year-bars {
        max-height: none;
    }

    .tm-year-bar {
        grid-template-columns: 3.5rem 1fr 2.5rem;
        gap: .55rem;
        padding-inline: .25rem;
    }

    .tm-timeline-item {
        grid-template-columns: 5.2rem 1fr;
        gap: .65rem;
    }

    .tm-timeline-content {
        padding: .85rem;
    }
}

@media (max-width: 575.98px) {
    .tm-search-portal-hero h1,
    .tm-chronology-hero h1 {
        font-size: 2.25rem;
    }

    .tm-timeline-item {
        grid-template-columns: 1fr;
    }

    .tm-timeline-date {
        padding-left: 1.1rem;
    }

    .tm-search-score {
        min-width: 0;
    }
}


/* Tornado Map v8.45.0 - public data and analysis portal */
.tm-analysis-portal {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.tm-analysis-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 170px;
    padding: 1.35rem;
    color: #17202a;
    text-decoration: none;
    background: linear-gradient(145deg, #fff, #f7f9fb);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .06);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tm-analysis-tile::after {
    content: "";
    position: absolute;
    right: -28px;
    bottom: -45px;
    width: 115px;
    height: 115px;
    border-radius: 50%;
    background: rgba(185, 28, 28, .06);
}

.tm-analysis-tile:hover {
    color: #17202a;
    transform: translateY(-3px);
    border-color: rgba(185, 28, 28, .22);
    box-shadow: 0 18px 42px rgba(15, 23, 42, .11);
}

.tm-analysis-tile span,
.tm-analysis-section-head span {
    color: var(--tm-red);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .11em;
}

.tm-analysis-tile strong {
    margin-top: .45rem;
    font-size: 1.25rem;
}

.tm-analysis-tile small {
    margin-top: .55rem;
    color: #64748b;
    line-height: 1.5;
}

.tm-analysis-filter {
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .07);
}

.tm-analysis-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.tm-analysis-section-head h2 {
    margin: .25rem 0 0;
    color: #17202a;
    font-size: clamp(1.35rem, 2vw, 1.8rem);
    font-weight: 800;
}

.tm-analysis-section-head p {
    max-width: 520px;
    margin: 0;
    color: #64748b;
    text-align: right;
}

.tm-analysis-chart-card {
    border: 1px solid rgba(15, 23, 42, .06);
}

.tm-analysis-chart-card .card-body {
    padding: 1.35rem;
}

.tm-record-highlight {
    border-top: 3px solid var(--tm-red);
}

@media (max-width: 991.98px) {
    .tm-analysis-portal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .tm-analysis-section-head { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .tm-analysis-section-head p { text-align: left; }
}

@media (max-width: 575.98px) {
    .tm-analysis-portal { grid-template-columns: 1fr; }
    .tm-analysis-tile { min-height: 145px; }
}


/* Tornado Map v8.46.0 - meteorological research center */
.tm-research-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, .8fr);
    gap: 2rem;
    align-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    color: #fff;
    background:
        radial-gradient(circle at 88% 15%, rgba(185, 28, 28, .38), transparent 28%),
        linear-gradient(135deg, #111827, #263445 62%, #17202a);
    border-radius: 1.4rem;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .18);
}

.tm-research-hero h1 {
    max-width: 760px;
    margin: .55rem 0 .8rem;
    font-size: clamp(2rem, 4vw, 3.7rem);
    font-weight: 850;
    letter-spacing: -.035em;
    line-height: 1.02;
}

.tm-research-hero p {
    max-width: 760px;
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: 1.05rem;
    line-height: 1.7;
}

.tm-research-hero-stats {
    display: grid;
    gap: .8rem;
}

.tm-research-hero-stats > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.15rem;
    background: rgba(255, 255, 255, .075);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 1rem;
    backdrop-filter: blur(10px);
}

.tm-research-hero-stats strong {
    font-size: clamp(1.25rem, 2.4vw, 2rem);
    font-weight: 850;
}

.tm-research-hero-stats span {
    color: rgba(255, 255, 255, .66);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-align: right;
    text-transform: uppercase;
}

.tm-research-nav {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .65rem;
    padding: .7rem;
    background: #f4f6f8;
    border: 1px solid rgba(15, 23, 42, .07);
    border-radius: 1.15rem;
}

.tm-research-nav a {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 78px;
    flex-direction: column;
    justify-content: center;
    padding: .9rem 1rem;
    color: #334155;
    text-decoration: none;
    background: transparent;
    border-radius: .85rem;
    transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.tm-research-nav a:hover {
    color: #17202a;
    background: #fff;
    transform: translateY(-1px);
}

.tm-research-nav a.active {
    color: #fff;
    background: linear-gradient(135deg, #17202a, #2c3d50);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}

.tm-research-nav a.active::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: .7rem;
    left: 1rem;
    height: 2px;
    background: var(--tm-red);
    border-radius: 999px;
}

.tm-research-nav span {
    margin-bottom: .18rem;
    color: #94a3b8;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.tm-research-nav a.active span {
    color: rgba(255, 255, 255, .58);
}

.tm-research-nav strong {
    overflow: hidden;
    font-size: .87rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tm-research-filter {
    padding: 1.4rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1.15rem;
    box-shadow: 0 14px 38px rgba(15, 23, 42, .065);
}

.tm-research-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.tm-research-section-head span {
    color: var(--tm-red);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .11em;
}

.tm-research-section-head h2 {
    margin: .25rem 0 0;
    color: #17202a;
    font-size: clamp(1.3rem, 2vw, 1.8rem);
    font-weight: 800;
}

.tm-research-section-head p {
    max-width: 540px;
    margin: 0;
    color: #64748b;
    text-align: right;
    line-height: 1.55;
}

.tm-research-card {
    border: 1px solid rgba(15, 23, 42, .06) !important;
    box-shadow: 0 12px 34px rgba(15, 23, 42, .065);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tm-research-card:hover {
    transform: translateY(-2px);
    border-color: rgba(185, 28, 28, .16) !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .1);
}

.tm-research-facts {
    display: grid;
    gap: 0;
    margin: 1rem 0;
}

.tm-research-facts > div {
    display: grid;
    grid-template-columns: minmax(90px, .8fr) minmax(0, 1.2fr);
    gap: 1rem;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
}

.tm-research-facts > div:last-child {
    border-bottom: 0;
}

.tm-research-facts dt {
    color: #64748b;
    font-size: .78rem;
    font-weight: 700;
}

.tm-research-facts dd {
    margin: 0;
    color: #17202a;
    font-size: .85rem;
    font-weight: 700;
    text-align: right;
}

.tm-research-reading,
.tm-research-byline {
    margin-top: 1rem;
    padding: .9rem 1rem;
    background: #f8fafc;
    border-left: 3px solid var(--tm-red);
    border-radius: .15rem .8rem .8rem .15rem;
}

.tm-research-reading span,
.tm-research-byline span {
    display: block;
    margin-bottom: .25rem;
    color: var(--tm-red);
    font-size: .65rem;
    font-weight: 850;
    letter-spacing: .1em;
}

.tm-research-reading strong {
    display: block;
    color: #17202a;
    font-size: 1.45rem;
}

.tm-research-reading small,
.tm-research-byline small {
    display: block;
    margin-top: .2rem;
    color: #64748b;
}

.tm-research-byline strong {
    display: block;
    color: #17202a;
}

.tm-weather-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.tm-weather-grid > div {
    padding: .8rem;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .06);
    border-radius: .75rem;
}

.tm-weather-grid span {
    display: block;
    margin-bottom: .2rem;
    color: #64748b;
    font-size: .72rem;
}

.tm-weather-grid strong {
    color: #17202a;
    font-size: 1rem;
}

.tm-research-details {
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: .75rem;
    overflow: hidden;
}

.tm-research-details summary {
    padding: .75rem .9rem;
    color: #334155;
    font-weight: 700;
    cursor: pointer;
    background: #f8fafc;
}

.tm-research-details div {
    padding: .85rem .9rem;
    white-space: pre-line;
}

.tm-imagery-preview {
    display: block;
    overflow: hidden;
    background: #f3f4f6;
}

.tm-imagery-preview img {
    width: 100%;
    height: 230px;
    object-fit: cover;
    display: block;
    transition: transform .3s ease;
}

.tm-imagery-preview:hover img {
    transform: scale(1.025);
}

@media (max-width: 1199.98px) {
    .tm-research-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

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

    .tm-research-hero-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tm-research-hero-stats > div {
        align-items: flex-start;
        flex-direction: column;
    }

    .tm-research-hero-stats span {
        text-align: left;
    }
}

@media (max-width: 767.98px) {
    .tm-research-section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: .45rem;
    }

    .tm-research-section-head p {
        text-align: left;
    }

    .tm-research-nav {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .tm-research-nav a {
        min-width: 180px;
        scroll-snap-align: start;
    }
}

@media (max-width: 575.98px) {
    .tm-research-hero {
        padding: 1.5rem;
        border-radius: 1.05rem;
    }

    .tm-research-hero-stats {
        grid-template-columns: 1fr;
    }

    .tm-research-hero-stats > div {
        align-items: baseline;
        flex-direction: row;
    }

    .tm-research-hero-stats span {
        text-align: right;
    }

    .tm-weather-grid {
        grid-template-columns: 1fr;
    }
}


/* Tornado Map v8.47.0 - knowledge and community portal */
.tm-info-portal,
.tm-community-portal {
    max-width: 1320px;
}

.tm-info-hero,
.tm-info-index-hero,
.tm-community-hero,
.tm-community-page-head {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(300px, .75fr);
    gap: 2rem;
    align-items: center;
    padding: clamp(2rem, 5vw, 4rem);
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(185, 28, 28, .38), transparent 29%),
        linear-gradient(135deg, #111827 0%, #263445 62%, #17202a 100%);
    border-radius: 1.4rem;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .18);
}

.tm-info-kicker,
.tm-community-kicker,
.tm-info-side-kicker,
.tm-info-section-head > div > span {
    color: #ef4444;
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tm-info-hero h1,
.tm-info-index-hero h1,
.tm-community-hero h1,
.tm-community-page-head h1 {
    max-width: 820px;
    margin: .55rem 0 .9rem;
    font-size: clamp(2rem, 4vw, 3.65rem);
    font-weight: 850;
    letter-spacing: -.04em;
    line-height: 1.03;
}

.tm-info-hero p,
.tm-info-index-hero p,
.tm-community-hero p,
.tm-community-page-head p {
    max-width: 820px;
    margin: 0;
    color: rgba(255, 255, 255, .76);
    font-size: 1.05rem;
    line-height: 1.7;
}

.tm-info-hero-meta,
.tm-community-hero-facts {
    display: grid;
    gap: .8rem;
}

.tm-info-hero-meta > div,
.tm-community-hero-facts > div {
    padding: 1rem 1.15rem;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .075);
    backdrop-filter: blur(10px);
}

.tm-info-hero-meta strong,
.tm-community-hero-facts strong,
.tm-community-page-stat strong {
    display: block;
    color: #fff;
    font-size: clamp(1.3rem, 2.4vw, 2rem);
    font-weight: 850;
}

.tm-info-hero-meta span,
.tm-community-hero-facts span,
.tm-community-page-stat span {
    display: block;
    margin-top: .15rem;
    color: rgba(255, 255, 255, .65);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.tm-community-hero-facts small {
    display: block;
    margin-top: .35rem;
    color: rgba(255, 255, 255, .58);
    line-height: 1.4;
}

.tm-info-nav,
.tm-community-nav {
    display: grid;
    gap: .65rem;
    padding: .7rem;
    border: 1px solid rgba(15, 23, 42, .07);
    border-radius: 1.15rem;
    background: #f4f6f8;
}

.tm-info-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.tm-community-nav {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.tm-info-nav a,
.tm-community-nav a {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 72px;
    flex-direction: column;
    justify-content: center;
    padding: .85rem 1rem;
    color: #334155;
    text-decoration: none;
    border-radius: .85rem;
    transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.tm-info-nav a:hover,
.tm-community-nav a:hover {
    color: #17202a;
    background: #fff;
    transform: translateY(-1px);
}

.tm-info-nav a.active,
.tm-community-nav a.active {
    color: #fff;
    background: linear-gradient(135deg, #17202a, #2c3d50);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}

.tm-info-nav a.active::after,
.tm-community-nav a.active::after {
    content: "";
    position: absolute;
    right: 1rem;
    bottom: .65rem;
    left: 1rem;
    height: 2px;
    border-radius: 999px;
    background: var(--tm-red);
}

.tm-info-nav span,
.tm-community-nav span {
    margin-bottom: .18rem;
    color: #94a3b8;
    font-size: .63rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.tm-info-nav a.active span,
.tm-community-nav a.active span {
    color: rgba(255, 255, 255, .58);
}

.tm-info-nav strong,
.tm-community-nav strong {
    overflow: hidden;
    font-size: .86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tm-info-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 2rem;
}

.tm-info-section-head h2 {
    margin: .25rem 0 0;
    color: #17202a;
    font-size: clamp(1.35rem, 2.4vw, 1.9rem);
    font-weight: 850;
    letter-spacing: -.03em;
}

.tm-info-section-head p {
    max-width: 560px;
    margin: 0;
    color: #64748b;
    text-align: right;
}

.tm-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.tm-info-grid-classification {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.tm-info-topic {
    position: relative;
    display: flex;
    min-height: 230px;
    flex-direction: column;
    padding: 1.45rem;
    color: #17202a;
    text-decoration: none;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    background: linear-gradient(145deg, #fff, #f8fafc);
    box-shadow: 0 12px 34px rgba(15, 23, 42, .055);
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tm-info-topic::after {
    content: "";
    position: absolute;
    right: -35px;
    bottom: -48px;
    width: 125px;
    height: 125px;
    border-radius: 50%;
    background: rgba(185, 28, 28, .055);
}

.tm-info-topic:hover {
    color: #17202a;
    transform: translateY(-3px);
    border-color: rgba(185, 28, 28, .2);
    box-shadow: 0 18px 44px rgba(15, 23, 42, .1);
}

.tm-info-topic > span {
    color: var(--tm-red);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.tm-info-topic h2 {
    margin: .55rem 0 .55rem;
    font-size: 1.25rem;
    font-weight: 800;
}

.tm-info-topic p {
    margin: 0 0 1.2rem;
    color: #64748b;
    line-height: 1.6;
}

.tm-info-topic > strong {
    margin-top: auto;
    color: #991b1b;
    font-size: .82rem;
}

.tm-info-article,
.tm-info-side-card,
.tm-community-form,
.tm-community-list-card {
    border: 1px solid rgba(15, 23, 42, .075);
    border-radius: 1.2rem;
    background: #fff;
    box-shadow: 0 14px 38px rgba(15, 23, 42, .06);
    overflow: hidden;
}

.tm-info-section {
    display: grid;
    grid-template-columns: 3.4rem minmax(0, 1fr);
    gap: 1.2rem;
    padding: 2rem;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
}

.tm-info-section:last-child {
    border-bottom: 0;
}

.tm-info-section-number {
    color: #cbd5e1;
    font-size: 1.1rem;
    font-weight: 850;
}

.tm-info-section h2 {
    margin: 0 0 1rem;
    color: #17202a;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight: 850;
    letter-spacing: -.025em;
}

.tm-info-section p {
    color: #475569;
    line-height: 1.75;
}

.tm-info-section p:last-child {
    margin-bottom: 0;
}

.tm-info-side-card {
    padding: 1.4rem;
}

.tm-info-side-card-important {
    border-top: 3px solid var(--tm-red);
}

.tm-info-side-card h2 {
    margin: .3rem 0 1rem;
    color: #17202a;
    font-size: 1.2rem;
    font-weight: 800;
}

.tm-info-side-card ul {
    padding-left: 1.15rem;
}

.tm-info-side-card li {
    margin-bottom: .75rem;
    color: #475569;
    line-height: 1.5;
}

.tm-info-related {
    display: grid;
}

.tm-info-related a {
    padding: .85rem 0;
    color: #17202a;
    text-decoration: none;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
}

.tm-info-related a:hover strong {
    color: var(--tm-red);
}

.tm-info-related strong,
.tm-info-related small {
    display: block;
}

.tm-info-related small {
    margin-top: .25rem;
    color: #64748b;
    line-height: 1.45;
}

.tm-community-page-head {
    padding-block: clamp(1.7rem, 4vw, 3rem);
}

.tm-community-page-stat {
    padding: 1.2rem 1.35rem;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .075);
}

.tm-community-form .card-body {
    padding: clamp(1.25rem, 3vw, 2.2rem) !important;
}

.tm-community-form .card-footer {
    border-top-color: rgba(15, 23, 42, .07);
}

.tm-community-form .form-control,
.tm-community-form .form-select {
    border-color: rgba(15, 23, 42, .12);
}

.tm-community-form .form-control:focus,
.tm-community-form .form-select:focus {
    border-color: rgba(185, 28, 28, .4);
    box-shadow: 0 0 0 .2rem rgba(185, 28, 28, .09);
}

.tm-community-form h2.h5 {
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(15, 23, 42, .07);
    color: #17202a;
}

.tm-community-list-card .table > :not(caption) > * > * {
    padding-block: .9rem;
}

.tm-community-list-card tbody tr {
    transition: background-color .16s ease;
}

.tm-community-list-card tbody tr:hover {
    background: #f8fafc;
}

@media (max-width: 1199.98px) {
    .tm-info-nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

@media (max-width: 991.98px) {
    .tm-info-hero,
    .tm-info-index-hero,
    .tm-community-hero,
    .tm-community-page-head {
        grid-template-columns: 1fr;
    }

    .tm-info-hero-meta,
    .tm-community-hero-facts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .tm-info-section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: .5rem;
    }

    .tm-info-section-head p {
        text-align: left;
    }

    .tm-info-nav,
    .tm-community-nav {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }

    .tm-info-nav a,
    .tm-community-nav a {
        min-width: 175px;
        scroll-snap-align: start;
    }

    .tm-info-grid,
    .tm-info-grid-classification {
        grid-template-columns: 1fr;
    }

    .tm-info-topic {
        min-height: 190px;
    }
}

@media (max-width: 575.98px) {
    .tm-info-hero,
    .tm-info-index-hero,
    .tm-community-hero,
    .tm-community-page-head {
        padding: 1.5rem;
        border-radius: 1.05rem;
    }

    .tm-info-hero-meta,
    .tm-community-hero-facts {
        grid-template-columns: 1fr;
    }

    .tm-info-section {
        grid-template-columns: 1fr;
        gap: .55rem;
        padding: 1.25rem;
    }
}


/* Account and authentication portal */
.tm-account-page-head { background: radial-gradient(circle at 82% 18%, rgba(185, 28, 28, .3), transparent 28%), linear-gradient(135deg, #111923, #28394a); }
.tm-account-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tm-account-facts { min-width: min(100%, 420px); }
.tm-account-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid rgba(15,23,42,.075); border-radius:1rem; background:#fff; box-shadow:0 12px 32px rgba(15,23,42,.05); }
.tm-account-list-card { border-radius:1.2rem; overflow:hidden; }
.tm-account-intensity { display:inline-flex; min-width:2.65rem; justify-content:center; padding:.3rem .5rem; border-radius:.55rem; background:#f1f5f9; color:#17202a; font-weight:850; }
.tm-account-empty { padding:clamp(2rem,5vw,4rem); text-align:center; }
.tm-account-empty>span,.tm-account-section-kicker { color:var(--tm-red); font-size:.68rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.tm-account-empty h2 { margin:.45rem 0 .6rem; color:#17202a; font-size:1.4rem; font-weight:850; }
.tm-account-empty p { max-width:580px; margin:0 auto 1.25rem; color:#64748b; }
.tm-notification-stream { display:grid; gap:.85rem; }
.tm-notification-item { position:relative; display:flex; align-items:flex-start; gap:1.15rem; padding:1.35rem 1.5rem; border:1px solid rgba(15,23,42,.075); border-radius:1rem; background:#fff; box-shadow:0 10px 28px rgba(15,23,42,.045); }
.tm-notification-item.is-unread { border-color:rgba(185,28,28,.18); background:linear-gradient(90deg,rgba(185,28,28,.035),#fff 28%); }
.tm-notification-marker { width:.62rem; height:.62rem; flex:0 0 auto; margin-top:.42rem; border-radius:50%; background:#cbd5e1; }
.tm-notification-item.is-unread .tm-notification-marker { background:var(--tm-red); box-shadow:0 0 0 .3rem rgba(185,28,28,.09); }
.tm-notification-item h2 { margin:0 0 .35rem; color:#17202a; font-size:1.05rem; font-weight:800; }
.tm-notification-item p { margin:0; color:#475569; line-height:1.6; }
.tm-notification-reference { margin-top:.8rem; padding:.65rem .8rem; border-radius:.65rem; background:#f8fafc; color:#64748b; font-size:.82rem; }
.tm-account-profile-card,.tm-account-settings-card { border:1px solid rgba(15,23,42,.075); border-radius:1.2rem; background:#fff; box-shadow:0 14px 38px rgba(15,23,42,.06); }
.tm-account-profile-card { position:sticky; top:6.5rem; padding:2rem; text-align:center; }
.tm-account-profile-card>span { color:#94a3b8; font-size:.68rem; font-weight:850; letter-spacing:.1em; }
.tm-account-avatar { display:grid; width:5rem; height:5rem; margin:1.5rem auto 1rem; place-items:center; border-radius:50%; background:linear-gradient(135deg,#17202a,#405368); color:#fff; font-size:2rem; font-weight:850; box-shadow:0 12px 28px rgba(15,23,42,.18); }
.tm-account-profile-card h2 { margin:0; color:#17202a; font-size:1.35rem; font-weight:850; }
.tm-account-profile-card p { margin:.35rem 0 1rem; color:#64748b; overflow-wrap:anywhere; }
.tm-account-settings-card { padding:clamp(1.35rem,3vw,2rem); }
.tm-account-settings-card h2 { margin:.35rem 0 1.4rem; color:#17202a; font-size:1.35rem; font-weight:850; }
.tm-account-settings-card .form-control { border-color:rgba(15,23,42,.12); }
.tm-account-warning { border-top:3px solid #f59e0b; }
.tm-auth-portal { max-width:1160px; }
.tm-auth-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,.78fr); border:1px solid rgba(15,23,42,.075); border-radius:1.35rem; background:#fff; box-shadow:0 22px 58px rgba(15,23,42,.1); overflow:hidden; }
.tm-auth-intro { display:flex; min-height:610px; flex-direction:column; justify-content:center; padding:clamp(2rem,5vw,4.5rem); color:#fff; background:radial-gradient(circle at 78% 20%,rgba(185,28,28,.42),transparent 30%),linear-gradient(145deg,#111923,#26394a); }
.tm-auth-intro h1 { max-width:580px; margin:.65rem 0 1rem; font-size:clamp(2rem,4vw,3.8rem); font-weight:900; letter-spacing:-.045em; line-height:1.02; }
.tm-auth-intro p { max-width:570px; color:rgba(255,255,255,.7); font-size:1.05rem; line-height:1.7; }
.tm-auth-features { display:grid; gap:.65rem; margin-top:1.5rem; }
.tm-auth-features span { display:flex; align-items:center; gap:.75rem; color:rgba(255,255,255,.86); font-size:.9rem; font-weight:700; }
.tm-auth-features span::before { content:""; width:.5rem; height:.5rem; border-radius:50%; background:#ef4444; box-shadow:0 0 0 .25rem rgba(239,68,68,.12); }
.tm-auth-card { align-self:center; padding:clamp(2rem,4vw,3.5rem); }
.tm-auth-card h2 { margin:.4rem 0 1.5rem; color:#17202a; font-size:clamp(1.65rem,3vw,2.25rem); font-weight:850; }
.tm-auth-card .form-control { min-height:3rem; border-color:rgba(15,23,42,.12); }
.tm-auth-card a { color:#991b1b; font-weight:700; }
@media (max-width:991.98px){.tm-auth-shell{grid-template-columns:1fr}.tm-auth-intro{min-height:auto}.tm-account-profile-card{position:static}.tm-notification-item{flex-wrap:wrap}.tm-notification-item>div:last-child{width:100%;padding-left:1.75rem}.tm-account-facts{min-width:0}}
@media (max-width:767.98px){.tm-account-nav{display:flex}.tm-account-toolbar{align-items:stretch;flex-direction:column}.tm-auth-portal{padding-inline:.75rem}.tm-auth-shell{border-radius:1.05rem}.tm-auth-intro,.tm-auth-card{padding:1.5rem}.tm-auth-intro h1{font-size:2rem}.tm-notification-item{padding:1.1rem}.tm-notification-item>div:last-child{padding-left:0}}

/* Legal and system pages */
.tm-legal-portal { max-width: 1220px; }
.tm-legal-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.4fr); gap:2rem; align-items:end; padding:clamp(1.8rem,4vw,3.2rem); border-radius:1.3rem; color:#fff; background:radial-gradient(circle at 84% 18%,rgba(185,28,28,.34),transparent 28%),linear-gradient(135deg,#111923,#293b4c); box-shadow:0 20px 50px rgba(15,23,42,.12); }
.tm-legal-kicker { color:#fca5a5; font-size:.69rem; font-weight:850; letter-spacing:.13em; }
.tm-legal-hero h1 { margin:.55rem 0 .8rem; font-size:clamp(2rem,4vw,3.8rem); font-weight:900; letter-spacing:-.045em; }
.tm-legal-hero p { max-width:700px; margin:0; color:rgba(255,255,255,.72); font-size:1.04rem; line-height:1.7; }
.tm-legal-hero-meta { padding:1.2rem 1.35rem; border:1px solid rgba(255,255,255,.13); border-radius:1rem; background:rgba(255,255,255,.075); }
.tm-legal-hero-meta span,.tm-legal-hero-meta strong,.tm-legal-hero-meta small { display:block; }
.tm-legal-hero-meta span { color:rgba(255,255,255,.55); font-size:.68rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.tm-legal-hero-meta strong { margin:.35rem 0; font-size:1.08rem; }
.tm-legal-hero-meta small { color:rgba(255,255,255,.62); line-height:1.45; }
.tm-legal-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; margin:1rem 0 1.25rem; }
.tm-legal-nav a { padding:.9rem 1rem; border:1px solid rgba(15,23,42,.08); border-radius:.8rem; background:#fff; color:#475569; font-weight:750; text-align:center; text-decoration:none; box-shadow:0 8px 24px rgba(15,23,42,.035); }
.tm-legal-nav a:hover,.tm-legal-nav a.active { border-color:rgba(185,28,28,.2); background:#fff7f7; color:#991b1b; }
.tm-legal-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:1.25rem; align-items:start; }
.tm-legal-document { border:1px solid rgba(15,23,42,.075); border-radius:1.2rem; background:#fff; box-shadow:0 14px 38px rgba(15,23,42,.055); overflow:hidden; }
.tm-legal-section { display:grid; grid-template-columns:3.2rem minmax(0,1fr); gap:1.15rem; padding:1.75rem 2rem; border-bottom:1px solid rgba(15,23,42,.07); }
.tm-legal-section:last-child { border-bottom:0; }
.tm-legal-section-number { color:#cbd5e1; font-size:1rem; font-weight:850; }
.tm-legal-section h2 { margin:0 0 .8rem; color:#17202a; font-size:1.25rem; font-weight:850; letter-spacing:-.02em; }
.tm-legal-section p { color:#475569; line-height:1.75; }
.tm-legal-section p:last-child { margin-bottom:0; }
.tm-legal-section a { color:#991b1b; font-weight:700; }
.tm-legal-sidebar { position:sticky; top:6.5rem; display:grid; gap:1rem; }
.tm-legal-side-card { padding:1.4rem; border:1px solid rgba(15,23,42,.075); border-radius:1rem; background:#fff; box-shadow:0 10px 28px rgba(15,23,42,.045); }
.tm-legal-side-card-important { border-top:3px solid var(--tm-red); }
.tm-legal-side-card>span { color:var(--tm-red); font-size:.66rem; font-weight:850; letter-spacing:.1em; }
.tm-legal-side-card h2 { margin:.4rem 0 .7rem; color:#17202a; font-size:1.15rem; font-weight:850; }
.tm-legal-side-card p { color:#64748b; line-height:1.6; }
.tm-system-state-page { max-width:1050px; }
.tm-system-state-card { display:grid; grid-template-columns:minmax(280px,.7fr) minmax(0,1fr); min-height:520px; border:1px solid rgba(15,23,42,.075); border-radius:1.35rem; background:#fff; box-shadow:0 22px 58px rgba(15,23,42,.1); overflow:hidden; }
.tm-system-state-visual { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:2rem; color:#fff; background:radial-gradient(circle at 50% 35%,rgba(185,28,28,.4),transparent 24%),linear-gradient(145deg,#111923,#26394a); }
.tm-system-state-signal { display:grid; width:7rem; height:7rem; margin-bottom:1.5rem; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; background:rgba(255,255,255,.07); font-size:3rem; box-shadow:0 0 0 1rem rgba(255,255,255,.025); }
.tm-system-state-visual small { color:rgba(255,255,255,.55); font-weight:800; letter-spacing:.12em; }
.tm-system-state-visual strong { margin-top:.35rem; font-size:1.25rem; letter-spacing:.08em; }
.tm-system-state-content { align-self:center; padding:clamp(2rem,5vw,4rem); }
.tm-system-state-content h1 { margin:.5rem 0 1rem; color:#17202a; font-size:clamp(2rem,4vw,3.2rem); font-weight:900; letter-spacing:-.04em; }
.tm-system-state-content>p { color:#64748b; font-size:1.03rem; line-height:1.75; }
.tm-system-state-note { display:grid; gap:.2rem; margin:1.5rem 0; padding:1rem 1.1rem; border-left:3px solid var(--tm-red); background:#f8fafc; }
.tm-system-state-note strong { color:#17202a; }
.tm-system-state-note span { color:#64748b; font-size:.9rem; }
@media (max-width:991.98px){.tm-legal-hero,.tm-legal-layout,.tm-system-state-card{grid-template-columns:1fr}.tm-legal-sidebar{position:static}.tm-system-state-card{min-height:0}.tm-system-state-visual{min-height:280px}}
@media (max-width:767.98px){.tm-legal-portal{padding-inline:.75rem}.tm-legal-hero{padding:1.5rem;border-radius:1.05rem}.tm-legal-nav{display:flex;overflow-x:auto;scrollbar-width:thin}.tm-legal-nav a{min-width:165px}.tm-legal-section{grid-template-columns:1fr;gap:.5rem;padding:1.25rem}.tm-system-state-page{padding-inline:.75rem}.tm-system-state-card{border-radius:1.05rem}.tm-system-state-content{padding:1.5rem}}

/* Original Tornado Map branding – v8.56.0 */
.tm-brand {
    min-width: 0;
    padding-top: .3rem;
    padding-bottom: .3rem;
}

.tm-brand-logo {
    width: auto;
    height: 56px;
    max-width: 245px;
    flex: 0 1 auto;
    border-radius: 0;
    object-fit: contain;
    object-position: left center;
    box-shadow: none;
}

.tm-site-footer {
    padding: 2.25rem 0 2rem;
}

.tm-footer-brand-row {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding-bottom: 1.5rem;
    margin-bottom: 1.25rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.tm-footer-brand {
    display: inline-flex;
    flex: 0 0 auto;
}

.tm-footer-brand img {
    display: block;
    width: auto;
    height: 72px;
    max-width: 260px;
    object-fit: contain;
}

.tm-footer-brand-copy {
    max-width: 620px;
    color: #64748b;
    font-size: .94rem;
    line-height: 1.6;
}

.tm-footer-meta a {
    color: inherit;
}

.tm-footer-meta a:hover,
.tm-footer-meta a:focus {
    color: var(--tm-red);
}

@media (max-width: 1199.98px) {
    .tm-brand-logo {
        height: 52px;
        max-width: 220px;
    }
}

@media (max-width: 575.98px) {
    .tm-brand-logo {
        width: auto;
        height: 44px;
        max-width: 185px;
        flex-basis: auto;
    }

    .tm-footer-brand-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .tm-footer-brand img {
        height: 64px;
        max-width: 235px;
    }
}


/* v8.66.0: Fachkarte der Tornadopfad- und Schadensschneisenanalyse */
.tm-case-damage-map .tm-map-shell {
    border: 1px solid rgba(15, 23, 42, .1);
    box-shadow: none;
}

.tm-case-damage-map-canvas {
    min-height: 520px;
    border-radius: 0 0 1rem 1rem;
}

.tm-damage-map-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
    align-items: center;
    padding: .75rem 1rem;
    border-top: 1px solid rgba(15, 23, 42, .08);
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    background: #f8fafc;
    font-size: .8rem;
    color: #475569;
}

.tm-damage-map-legend span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.tm-damage-legend-dot,
.tm-damage-legend-ring {
    width: .8rem;
    height: .8rem;
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
}

.tm-damage-legend-dot.tm-damage-severity-1 { background: #facc15; }
.tm-damage-legend-dot.tm-damage-severity-2 { background: #fb923c; }
.tm-damage-legend-dot.tm-damage-severity-3 { background: #ef4444; }
.tm-damage-legend-dot.tm-damage-severity-4 { background: #7f1d1d; }
.tm-damage-legend-ring {
    background: #fff;
    border: 2px dashed #7c3aed;
}

.leaflet-interactive.tm-damage-marker {
    stroke: #fff;
    stroke-width: 2.5px;
}

.leaflet-interactive.tm-damage-marker.tm-damage-severity-0 { fill: #94a3b8; }
.leaflet-interactive.tm-damage-marker.tm-damage-severity-1 { fill: #facc15; }
.leaflet-interactive.tm-damage-marker.tm-damage-severity-2 { fill: #fb923c; }
.leaflet-interactive.tm-damage-marker.tm-damage-severity-3 { fill: #ef4444; }
.leaflet-interactive.tm-damage-marker.tm-damage-severity-4 { fill: #7f1d1d; }

.leaflet-interactive.tm-damage-marker.is-outside-path {
    stroke: #7c3aed;
    stroke-width: 4px;
    stroke-dasharray: 5 4;
}

@media (max-width: 767.98px) {
    .tm-case-damage-map-canvas {
        min-height: 420px;
    }

    .tm-damage-map-legend {
        gap: .5rem .8rem;
    }
}

/* v8.68.0: chronologische Fall-Zeitachse */
.tm-case-timeline {
    position: relative;
    display: grid;
    gap: 0;
}

.tm-case-timeline-entry {
    display: grid;
    grid-template-columns: 120px 22px minmax(0, 1fr);
    gap: 1rem;
    align-items: stretch;
    min-height: 78px;
}

.tm-case-timeline-time {
    text-align: right;
    padding: .15rem 0 1.35rem;
}

.tm-case-timeline-time strong,
.tm-case-timeline-time span {
    display: block;
}

.tm-case-timeline-time span {
    color: var(--bs-secondary-color);
    font-size: .8rem;
    margin-top: .2rem;
}

.tm-case-timeline-marker {
    position: relative;
}

.tm-case-timeline-marker::before {
    content: '';
    position: absolute;
    top: .45rem;
    left: 50%;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--tm-red, #c51f2f);
    transform: translateX(-50%);
    box-shadow: 0 0 0 4px rgba(197, 31, 47, .12);
    z-index: 1;
}

.tm-case-timeline-marker::after {
    content: '';
    position: absolute;
    top: 1.1rem;
    bottom: 0;
    left: 50%;
    width: 2px;
    background: var(--bs-border-color);
    transform: translateX(-50%);
}

.tm-case-timeline-entry:last-child .tm-case-timeline-marker::after {
    display: none;
}

.tm-case-timeline-content {
    padding: 0 0 1.35rem;
    min-width: 0;
}

.tm-case-timeline-entry.is-undated .tm-case-timeline-marker::before {
    background: var(--bs-secondary-color);
    box-shadow: 0 0 0 4px rgba(108, 117, 125, .12);
}

.tm-case-timeline-public .tm-case-timeline-entry {
    grid-template-columns: 96px 18px minmax(0, 1fr);
    gap: .75rem;
}

@media (max-width: 575.98px) {
    .tm-case-timeline-entry,
    .tm-case-timeline-public .tm-case-timeline-entry {
        grid-template-columns: 78px 16px minmax(0, 1fr);
        gap: .55rem;
    }

    .tm-case-timeline-time {
        font-size: .85rem;
    }

    .tm-case-timeline-time span {
        font-size: .72rem;
    }
}


/* v8.72.0 – strukturierter meteorologischer Fallbericht */
.tm-case-report-public {
    display: grid;
    gap: 1rem;
}
.tm-case-report-section {
    padding: 1.15rem 1.25rem;
    border: 1px solid rgba(31, 41, 55, .12);
    border-radius: 1rem;
    background: rgba(248, 249, 250, .72);
}
.tm-case-report-section p {
    line-height: 1.72;
}
