:root {
    --bg: #f4f7f8;
    --bg-soft: #ffffff;
    --panel: #ffffff;
    --panel-2: #eef4f5;
    --text: #102027;
    --muted: #667b83;
    --accent: #159a8c;
    --accent-2: #0f7f74;
    --border: rgba(16,32,39,.10);
    --shadow: 0 20px 50px rgba(16,32,39,.08);
    --header-bg: rgba(255,255,255,.88);
    --card-from: rgba(255,255,255,.98);
    --card-to: rgba(240,246,247,.98);
    --metric-bg: rgba(255,255,255,.72);
    --code-bg: #eef3f4;
    --camera-bg: #071116;
}

html[data-theme="dark"] {
    --bg: #071116;
    --bg-soft: #0c1a21;
    --panel: #10232c;
    --panel-2: #132a34;
    --text: #edf7f7;
    --muted: #8fa6ad;
    --accent: #57d7c4;
    --accent-2: #8ce8db;
    --border: rgba(255,255,255,.08);
    --shadow: 0 20px 50px rgba(0,0,0,.22);
    --header-bg: rgba(7,17,22,.82);
    --card-from: rgba(19,42,52,.96);
    --card-to: rgba(12,26,33,.96);
    --metric-bg: rgba(5,12,16,.28);
    --code-bg: #050a0d;
    --camera-bg: #050a0d;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--text);
    background:
        radial-gradient(circle at 15% -10%, var(--season-glow-1, color-mix(in srgb, var(--accent) 12%, transparent)), transparent 36rem),
        radial-gradient(circle at 88% 18%, var(--season-glow-2, transparent), transparent 30rem),
        var(--bg);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.5;
}

a { color: inherit; }

.shell {
    width: min(1160px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid var(--border);
    background: var(--header-bg);
    backdrop-filter: blur(18px);
}

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

.brand {
    display: flex;
    align-items: center;
    gap: 11px;
    text-decoration: none;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: var(--brand-gradient, linear-gradient(145deg, var(--accent), #247f81));
    box-shadow: 0 10px 24px rgba(87,215,196,.15);
    font-size: 22px;
}

.brand strong { display: block; font-size: 16px; letter-spacing: -.02em; }
.brand small { display: block; color: var(--muted); font-size: 11px; margin-top: 1px; }

.top-nav { display: flex; gap: 24px; }
.top-nav a, .back-link {
    color: var(--muted);
    text-decoration: none;
    font-size: 14px;
}
.top-nav a:hover, .back-link:hover { color: var(--text); }

.header-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid var(--border);
    border-radius: 11px;
    color: var(--text);
    background: var(--bg-soft);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 5px 18px rgba(16,32,39,.05);
}

.theme-toggle:hover {
    border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
}

.theme-toggle .theme-icon {
    font-size: 15px;
    line-height: 1;
}

html[data-theme="dark"] .theme-toggle {
    box-shadow: none;
}

.mobile-menu-toggle,
.mobile-nav-shell {
    display: none;
}

.mobile-menu-toggle {
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 38px;
    padding: 0 12px;
    border: 1px solid var(--border);
    border-radius: 11px;
    color: var(--text);
    background: var(--bg-soft);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 800;
    box-shadow: 0 5px 18px rgba(16,32,39,.05);
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle[aria-expanded="true"] {
    border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
}

.mobile-menu-icon {
    min-width: 16px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1;
    text-align: center;
}

html[data-theme="dark"] .mobile-menu-toggle {
    box-shadow: none;
}

html:not([data-theme="dark"]) .brand-mark {
    color: white;
}

.hero {
    padding: 90px 0 66px;
}

.eyebrow {
    margin: 0 0 10px;
    color: var(--accent);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .17em;
}

.hero h1 {
    max-width: 900px;
    margin: 0;
    font-family: Georgia, "Times New Roman", ui-serif, serif;
    font-size: clamp(34px, 5vw, 58px);
    font-weight: 600;
    line-height: 1.08;
    letter-spacing: -.025em;
}

.hero-text {
    max-width: 670px;
    margin: 28px 0 0;
    color: var(--muted);
    font-size: clamp(15px, 1.8vw, 18px);
}


/* Regionální aktuální extrémy na homepage */
.regional-extremes {
    margin-top: 42px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: color-mix(in srgb, var(--panel) 92%, transparent);
    box-shadow: 0 12px 34px rgba(16,32,39,.06);
    backdrop-filter: blur(10px);
}

.regional-extremes-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border);
}

.regional-extremes-title span {
    color: var(--accent);
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .13em;
}

.regional-extremes-title small {
    color: var(--muted);
    font-size: 10px;
}

.regional-extremes-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.regional-extreme-item {
    min-width: 0;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
}

.regional-extreme-item + .regional-extreme-item {
    border-left: 1px solid var(--border);
}

.regional-extreme-mark {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    font-size: 17px;
    font-weight: 800;
}

.regional-extreme-copy {
    min-width: 0;
}

.regional-extreme-copy small,
.regional-extreme-copy strong {
    display: block;
}

.regional-extreme-copy small {
    margin-bottom: 2px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.regional-extreme-copy strong {
    overflow: hidden;
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.regional-extreme-item > b {
    white-space: nowrap;
    font-size: 15px;
    letter-spacing: -.02em;
}

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

    .regional-extreme-item:nth-child(3) {
        border-left: 0;
    }

    .regional-extreme-item:nth-child(n+3) {
        border-top: 1px solid var(--border);
    }
}

@media (max-width: 520px) {
    .regional-extremes {
        margin-top: 30px;
        border-radius: 16px;
    }

    .regional-extremes-title {
        padding: 9px 12px;
    }

    .regional-extremes-title small {
        display: none;
    }

    .regional-extremes-grid {
        grid-template-columns: 1fr;
    }

    .regional-extreme-item,
    .regional-extreme-item:nth-child(3) {
        border-left: 0;
    }

    .regional-extreme-item + .regional-extreme-item {
        border-top: 1px solid var(--border);
    }

    .regional-extreme-item {
        padding: 12px;
    }
}

.section { padding: 34px 0 70px; }

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 22px;
}

.section-heading h2,
.info-panel h2,
.embed-info h2 {
    margin: 0;
    font-size: clamp(28px, 4vw, 42px);
    letter-spacing: -.04em;
}

.section-heading > p {
    margin: 0;
    color: var(--muted);
    font-size: 13px;
}

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

.location-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: linear-gradient(150deg, var(--card-from), var(--card-to));
    box-shadow: var(--shadow);
}

.card-topline {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.card-topline h3 {
    margin: 0;
    font-size: 21px;
    letter-spacing: -.025em;
}

.card-topline p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.live-dot {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    color: #a9c2c6;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
}

.live-dot i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 4px rgba(87,215,196,.1);
}


.card-preview {
    position: relative;
    display: block;
    margin-top: 18px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: color-mix(in srgb, var(--panel) 84%, transparent);
    text-decoration: none;
    aspect-ratio: 16 / 8.7;
    box-shadow: 0 10px 26px rgba(16,32,39,.06);
}

.card-preview:hover {
    border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
    transform: translateY(-1px);
}

.card-preview-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.card-preview-badge {
    position: absolute;
    left: 12px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    color: #fff;
    background: rgba(7,17,22,.72);
    backdrop-filter: blur(10px);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .04em;
}

.temperature-row {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin: 26px 0 28px;
}

.temperature {
    font-size: clamp(48px, 7vw, 68px);
    font-weight: 750;
    line-height: .9;
    letter-spacing: -.06em;
}

.temperature span {
    margin-left: 5px;
    font-size: .42em;
    color: var(--muted);
    vertical-align: top;
}

.condition {
    max-width: 160px;
    color: var(--muted);
    text-align: right;
    font-size: 13px;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--border);
}

.metric {
    padding: 13px 14px;
    background: var(--metric-bg);
}

.metric span {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.metric strong {
    display: block;
    margin-top: 3px;
    font-size: 15px;
}

.card-actions {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 16px;
    border: 0;
    border-radius: 11px;
    cursor: pointer;
    text-decoration: none;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
}

.button.primary {
    color: #ffffff;
    background: var(--accent);
}
.button.primary:hover { background: var(--accent-2); }

.button.ghost {
    color: var(--text);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--text) 3%, transparent);
}

.info-panel,
.embed-info {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 48px;
    padding: 34px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: var(--bg-soft);
}

.info-panel > p,
.embed-info p {
    margin: 0;
    align-self: end;
    color: var(--muted);
}

.about-panel {
    align-items: start;
}

.about-copy {
    display: grid;
    gap: 14px;
}

.about-copy p {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.72;
}

.about-copy a {
    color: var(--accent);
    font-weight: 700;
    text-decoration: none;
}

.about-copy a:hover {
    text-decoration: underline;
}

.site-footer {
    margin-top: 70px;
    padding: 28px 0;
    border-top: 1px solid var(--border);
    color: var(--muted);
}

.site-footer .shell {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    font-size: 12px;
}

/* Detail */
.detail-page { padding-top: 58px; padding-bottom: 80px; }

.detail-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 24px;
}

.detail-heading h1 {
    margin: 0;
    font-size: clamp(40px, 7vw, 72px);
    letter-spacing: -.055em;
    line-height: 1;
}

.detail-heading p:not(.eyebrow) {
    max-width: 650px;
    color: var(--muted);
}

.freshness { color: var(--muted); font-size: 12px; white-space: nowrap; }

.weather-hero-card {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 28px;
    padding: 30px;
    border: 1px solid var(--border);
    border-radius: 24px;
    background: linear-gradient(145deg, var(--panel-2), var(--bg-soft));
    box-shadow: var(--shadow);
}

.big-temperature {
    display: flex;
    flex-wrap: wrap;
    align-content: center;
    font-size: clamp(68px, 11vw, 112px);
    font-weight: 780;
    line-height: .85;
    letter-spacing: -.07em;
}

.big-temperature > span {
    margin-left: 8px;
    color: var(--muted);
    font-size: .34em;
    letter-spacing: -.03em;
}

.big-temperature small {
    width: 100%;
    margin-top: 22px;
    color: var(--muted);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0;
}

.detail-metrics {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
}

.detail-metrics div {
    padding: 18px;
    border-right: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
    background: rgba(4,10,13,.2);
}
.detail-metrics div:nth-child(2n) { border-right: 0; }
.detail-metrics div:nth-last-child(-n+2) { border-bottom: 0; }

.detail-metrics span {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.detail-metrics strong {
    display: block;
    margin-top: 5px;
    font-size: 18px;
}


.location-statistics { margin-top:50px; }
.statistics-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.statistics-card { padding:18px; border:1px solid var(--border); border-radius:16px; background:var(--bg-soft); box-shadow:0 8px 24px rgba(16,32,39,.04); }
.statistics-card span { display:block; color:var(--muted); font-size:11px; }
.statistics-card strong { display:block; margin-top:6px; font-size:25px; letter-spacing:-.035em; }
.online-counter { display:inline-flex; align-items:center; gap:7px; min-height:38px; padding:0 12px; border:1px solid var(--border); border-radius:12px; background:var(--bg-soft); color:var(--muted); font-size:11px; }
.online-counter i { width:7px; height:7px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent); }
.online-counter strong { color:var(--text); font-size:16px; }

.camera-section { margin-top: 58px; }

.camera-placeholder {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 1px solid var(--border);
    border-radius: 22px;
    background:
        radial-gradient(circle at center, rgba(87,215,196,.08), transparent 40%),
        #050a0d;
    box-shadow: var(--shadow);
}

.camera-preview {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    justify-items: center;
    padding: 20px;
    text-align: center;
}

.play-icon {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: 14px;
    padding-left: 4px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
    background: rgba(255,255,255,.06);
    font-size: 24px;
}

.camera-preview h3 { margin: 0; font-size: 23px; }
.camera-preview p { margin: 5px 0 18px; color: var(--muted); }

.camera-frame {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.camera-sponsor {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 14px;
    margin-top: 12px;
    padding: 10px 14px;
    min-height: 58px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-soft);
    color: var(--text);
    text-decoration: none;
    box-shadow: 0 8px 24px rgba(16,32,39,.05);
}

.camera-sponsor:hover {
    border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}

.camera-sponsor-label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.camera-sponsor img {
    justify-self: end;
    max-width: min(520px, 100%);
    max-height: 70px;
    object-fit: contain;
    border-radius: 8px;
}

.camera-sponsor strong {
    justify-self: end;
    font-size: 13px;
}


.report-section {
    margin-top: 44px;
}

.report-heading {
    align-items: flex-end;
}

.report-heading > p {
    max-width: 420px;
    text-align: right;
}

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

.report-button {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: var(--bg-soft);
    color: var(--text);
    text-decoration: none;
    box-shadow: var(--shadow);
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}

.report-button:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
}

.report-icon {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    font-size: 20px;
}

.report-button strong {
    display: block;
    font-size: 14px;
    line-height: 1.3;
}

.report-button small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.embed-info {
    margin-top: 44px;
}

.embed-info code {
    display: block;
    align-self: center;
    overflow-x: auto;
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--camera-bg);
    color: #b8d3d5;
    font-size: 12px;
    white-space: nowrap;
}

@media (max-width: 760px) {
    .shell { width: min(100% - 22px, 1160px); }

    .header-inner { min-height: 62px; }
    .brand-mark { width: 36px; height: 36px; border-radius: 11px; font-size: 18px; }
    .brand strong { font-size: 14px; }
    .brand small { display: none; }
    .top-nav { display: none; }
    .header-actions { gap: 8px; }
    .mobile-menu-toggle { display: inline-flex; min-height: 36px; padding: 0 10px; }
    .mobile-nav-shell { display: block; padding-bottom: 10px; }
    .mobile-nav-shell[hidden] { display: none !important; }
    .mobile-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        padding: 10px 0 2px;
        border-top: 1px solid var(--border);
    }
    .mobile-nav a {
        display: flex;
        align-items: center;
        min-width: 0;
        min-height: 42px;
        padding: 9px 11px;
        border: 1px solid var(--border);
        border-radius: 11px;
        color: var(--text);
        background: color-mix(in srgb, var(--panel) 92%, transparent);
        text-decoration: none;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.25;
    }
    .mobile-nav a.active,
    .mobile-nav a:hover {
        border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
        color: var(--accent-2);
        background: color-mix(in srgb, var(--accent) 8%, var(--panel));
    }
    .theme-toggle { min-height: 36px; padding: 0 10px; }
    .theme-toggle .theme-label { display: none; }

    .hero { padding: 60px 0 42px; }
    .hero h1 { font-size: clamp(32px, 10vw, 44px); }

    .section { padding: 24px 0 48px; }

    .location-grid { grid-template-columns: 1fr; }
    .location-card { padding: 18px; border-radius: 18px; }

    .card-preview {
        margin-top: 16px;
        border-radius: 16px;
        aspect-ratio: 16 / 9;
    }

    .card-preview-badge {
        left: 10px;
        bottom: 10px;
        min-height: 24px;
        padding: 0 9px;
        font-size: 9px;
    }

    .temperature-row { margin: 28px 0 22px; }

    .card-actions { flex-direction: column; }
    .button { width: 100%; }

    .info-panel,
    .embed-info {
        grid-template-columns: 1fr;
        gap: 18px;
        padding: 22px;
    }

    .detail-page { padding-top: 36px; }
    .detail-heading { display: block; }
    .freshness { margin-top: 14px; }

    .weather-hero-card {
        grid-template-columns: 1fr;
        padding: 18px;
    }

    .big-temperature { min-height: 150px; }

    .detail-metrics div { padding: 14px; }
    .detail-metrics strong { font-size: 15px; }

    .statistics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .statistics-card { padding:14px; }
    .statistics-card strong { font-size:21px; }
    .online-counter { margin-top:8px; }

    .camera-section { margin-top: 42px; }
    .camera-placeholder { border-radius: 15px; }

    .camera-sponsor {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 10px;
    }

    .camera-sponsor img,
    .camera-sponsor strong {
        justify-self: start;
        max-width: 100%;
    }

    .section-heading { align-items: flex-start; }

    .report-actions {
        grid-template-columns: 1fr;
    }

    .report-heading {
        display: block;
    }

    .report-heading > p {
        margin-top: 8px;
        max-width: none;
        text-align: left;
    }

    .report-button {
        padding: 15px;
    }
}


.stats-table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:18px; background:var(--bg-soft); box-shadow:var(--shadow); }
.stats-table { width:100%; min-width:780px; border-collapse:collapse; }
.stats-table th,.stats-table td { padding:15px 16px; border-bottom:1px solid var(--border); text-align:left; }
.stats-table th { color:var(--muted); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.stats-table td { font-size:14px; }
.stats-table tbody tr:last-child td { border-bottom:0; }
.stats-table td a { color:var(--text); font-weight:750; text-decoration:none; }
.stats-table td a:hover { color:var(--accent); }
.table-live { display:inline-flex; align-items:center; gap:7px; font-weight:750; }
.table-live i { width:7px; height:7px; border-radius:50%; background:var(--accent); }


/* Premium access badge */
.premium-access-widget {
    position: fixed;
    right: 14px;
    bottom: 14px;
    z-index: 9999;
}

.premium-access-widget > summary,
.premium-inline-widget > summary {
    list-style: none;
}

.premium-access-widget > summary::-webkit-details-marker,
.premium-inline-widget > summary::-webkit-details-marker {
    display: none;
}

.premium-access-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 32px;
    padding: 0 11px;
    border: 1px solid rgba(217,165,20,.45);
    border-radius: 999px;
    color: var(--text);
    background: rgba(255,250,226,.94);
    box-shadow: 0 8px 24px rgba(16,32,39,.13);
    backdrop-filter: blur(12px);
    cursor: pointer;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .09em;
    user-select: none;
}

.premium-access-badge:hover {
    border-color: rgba(217,165,20,.72);
}

.premium-star {
    color: #d9a514;
    font-size: 14px;
    line-height: 1;
}

.premium-access-info {
    position: absolute;
    right: 0;
    bottom: 42px;
    width: min(280px, calc(100vw - 28px));
    padding: 11px 12px;
    border: 1px solid rgba(217,165,20,.35);
    border-radius: 12px;
    color: var(--text);
    background: var(--bg-soft);
    box-shadow: 0 12px 34px rgba(16,32,39,.18);
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: 0;
}

html[data-theme="dark"] .premium-access-badge {
    border-color: rgba(255,215,90,.32);
    color: #fff4bd;
    background: rgba(28,25,12,.88);
    box-shadow: 0 8px 28px rgba(0,0,0,.28);
}

html[data-theme="dark"] .premium-access-info {
    border-color: rgba(255,215,90,.24);
    background: rgba(12,26,33,.96);
}

/* Premium uvnitř přehrávače */
.premium-inline-widget {
    position: relative;
}

.premium-inline-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid rgba(255,215,90,.30);
    border-radius: 8px;
    color: #fff4bd;
    background: rgba(28,25,12,.78);
    backdrop-filter: blur(8px);
    cursor: pointer;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .08em;
    user-select: none;
}

.premium-inline-info {
    position: absolute;
    top: calc(100% + 5px);
    right: 0;
    width: 240px;
    padding: 9px 10px;
    border: 1px solid rgba(255,215,90,.28);
    border-radius: 9px;
    color: #fff;
    background: rgba(5,9,12,.94);
    box-shadow: 0 10px 28px rgba(0,0,0,.34);
    font-size: 10px;
    line-height: 1.4;
    letter-spacing: 0;
}

@media (max-width: 760px) {
    .premium-access-widget {
        right: 8px;
        bottom: 8px;
    }

    .premium-access-badge {
        min-height: 28px;
        padding: 0 9px;
        gap: 5px;
        font-size: 8px;
    }

    .premium-star {
        font-size: 12px;
    }

    .premium-access-info {
        bottom: 36px;
        width: min(250px, calc(100vw - 16px));
        padding: 9px 10px;
        font-size: 11px;
    }

    .premium-inline-badge {
        min-height: 23px;
        padding: 3px 6px;
        font-size: 7px;
    }

    .premium-inline-info {
        width: min(220px, calc(100vw - 24px));
        font-size: 9px;
    }
}


/* Statistiky - týdenní sloupcové grafy */
.stats-charts-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
    margin:0 0 22px;
}

.stats-chart-card {
    min-width:0;
    padding:20px;
    border:1px solid var(--border);
    border-radius:18px;
    background:var(--bg-soft);
    box-shadow:var(--shadow);
}

.stats-chart-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}

.stats-chart-heading h2 {
    margin:3px 0 0;
    font-size:20px;
}

.stats-chart-total {
    flex:0 0 auto;
    text-align:right;
}

.stats-chart-total strong {
    display:block;
    font-size:22px;
    line-height:1;
}

.stats-chart-total span {
    display:block;
    margin-top:5px;
    color:var(--muted);
    font-size:10px;
}

.weekly-bar-chart {
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    align-items:end;
    gap:8px;
    min-height:230px;
    padding-top:8px;
}

.weekly-bar-column {
    display:grid;
    grid-template-rows:22px 160px 18px 16px;
    align-items:end;
    min-width:0;
    text-align:center;
}

.weekly-bar-value {
    align-self:center;
    overflow:hidden;
    color:var(--text);
    font-size:10px;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.weekly-bar-track {
    position:relative;
    align-self:stretch;
    overflow:hidden;
    border-radius:8px 8px 4px 4px;
    background:rgba(105,128,139,.10);
}

.weekly-bar-track::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    border-bottom:1px solid var(--border);
}

.weekly-bar-fill {
    position:absolute;
    left:18%;
    right:18%;
    bottom:0;
    min-height:0;
    border-radius:7px 7px 3px 3px;
    background:var(--accent);
    transition:height .25s ease;
}

.weekly-bar-chart-secondary .weekly-bar-fill {
    opacity:.72;
}

.weekly-bar-day {
    align-self:end;
    padding-top:6px;
    color:var(--text);
    font-size:11px;
    font-weight:800;
}

.weekly-bar-date {
    align-self:end;
    color:var(--muted);
    font-size:9px;
}

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

@media (max-width:520px) {
    .stats-chart-card {
        padding:15px 12px;
    }

    .stats-chart-heading {
        margin-bottom:12px;
    }

    .stats-chart-heading h2 {
        font-size:17px;
    }

    .stats-chart-total strong {
        font-size:18px;
    }

    .weekly-bar-chart {
        gap:4px;
        min-height:190px;
    }

    .weekly-bar-column {
        grid-template-rows:20px 125px 17px 14px;
    }

    .weekly-bar-value {
        font-size:9px;
    }

    .weekly-bar-fill {
        left:15%;
        right:15%;
    }

    .weekly-bar-day {
        font-size:10px;
    }

    .weekly-bar-date {
        font-size:8px;
    }
}


/* ---------------------------------------------------------
   Automatický sezónní vzhled
   Vánoce: 1. 12. - 6. 1.
   Zima: 7. 1. - konec února
   Jaro: březen - květen
   Léto: červen - srpen
   Podzim: září - listopad
   --------------------------------------------------------- */

body.season-spring {
    --accent:#4e9b69;
    --accent-2:#367d51;
    --season-glow-1:rgba(103,190,125,.16);
    --season-glow-2:rgba(232,151,185,.11);
    --brand-gradient:linear-gradient(145deg,#63ad76,#4d8f65);
    --season-symbol:"✿";
}

body.season-summer {
    --accent:#179c98;
    --accent-2:#0d7f7d;
    --season-glow-1:rgba(27,175,171,.17);
    --season-glow-2:rgba(242,184,75,.13);
    --brand-gradient:linear-gradient(145deg,#18aaa4,#e0a946);
    --season-symbol:"☀";
}

body.season-autumn {
    --accent:#b56a32;
    --accent-2:#945020;
    --season-glow-1:rgba(198,117,53,.17);
    --season-glow-2:rgba(202,157,71,.12);
    --brand-gradient:linear-gradient(145deg,#c37a3d,#8f532c);
    --season-symbol:"❧";
}

body.season-winter {
    --accent:#5f94b8;
    --accent-2:#44799f;
    --season-glow-1:rgba(105,166,205,.16);
    --season-glow-2:rgba(190,220,237,.15);
    --brand-gradient:linear-gradient(145deg,#72a8c9,#517f9e);
    --season-symbol:"❄";
}

body.season-christmas {
    --accent:#2f8a68;
    --accent-2:#236d52;
    --season-glow-1:rgba(47,138,104,.15);
    --season-glow-2:rgba(184,69,66,.10);
    --brand-gradient:linear-gradient(145deg,#26775a,#b54b49);
    --season-symbol:"★";
}

html[data-theme="dark"] body.season-spring {
    --accent:#72d18e;
    --accent-2:#a2e0b2;
    --season-glow-1:rgba(80,181,111,.12);
    --season-glow-2:rgba(210,104,151,.07);
}

html[data-theme="dark"] body.season-summer {
    --accent:#5fd9d2;
    --accent-2:#9ae9e5;
    --season-glow-1:rgba(64,193,187,.13);
    --season-glow-2:rgba(226,169,61,.08);
}

html[data-theme="dark"] body.season-autumn {
    --accent:#e29a5d;
    --accent-2:#efb985;
    --season-glow-1:rgba(189,104,47,.12);
    --season-glow-2:rgba(203,152,61,.07);
}

html[data-theme="dark"] body.season-winter {
    --accent:#88c0e4;
    --accent-2:#b4d9ef;
    --season-glow-1:rgba(94,161,204,.12);
    --season-glow-2:rgba(171,209,232,.07);
}

html[data-theme="dark"] body.season-christmas {
    --accent:#6bc59f;
    --accent-2:#9adebf;
    --season-glow-1:rgba(49,143,105,.11);
    --season-glow-2:rgba(183,66,62,.08);
}

.season-chip {
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin:0 0 18px;
    padding:6px 10px;
    border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));
    border-radius:999px;
    color:var(--accent);
    background:color-mix(in srgb,var(--bg-soft) 88%,transparent);
    box-shadow:0 6px 20px rgba(16,32,39,.05);
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.season-chip-icon {
    font-size:14px;
    line-height:1;
}

.hero {
    position:relative;
    overflow:hidden;
}

.hero::after {
    content:var(--season-symbol,"");
    position:absolute;
    top:20px;
    right:max(5vw,24px);
    z-index:-1;
    color:var(--accent);
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(110px,18vw,230px);
    line-height:1;
    opacity:.055;
    pointer-events:none;
    transform:rotate(-7deg);
}

body.season-christmas .site-header::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    height:2px;
    background:
        repeating-linear-gradient(
            90deg,
            #2f8a68 0 18px,
            #d1a84d 18px 36px,
            #b94c49 36px 54px
        );
    opacity:.65;
    pointer-events:none;
}

body.season-winter .location-card,
body.season-christmas .location-card {
    box-shadow:
        var(--shadow),
        inset 0 1px 0 rgba(255,255,255,.18);
}

@media (max-width:700px) {
    .hero::after {
        top:40px;
        right:-20px;
        font-size:120px;
        opacity:.04;
    }

    .season-chip {
        margin-bottom:14px;
    }
}

@media (prefers-reduced-motion:no-preference) {
    .season-chip {
        transition:border-color .2s ease, background-color .2s ease;
    }
}


/* Meteo Server source strip */
.meteo-source-strip {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin:-8px 0 28px;
}

.meteo-source-strip > div {
    min-width:140px;
    padding:10px 12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--bg-soft);
}

.meteo-source-strip span {
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:9px;
    font-weight:750;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.meteo-source-strip strong {
    font-size:12px;
}

.live-dot.offline {
    color:var(--muted);
}

.live-dot.offline i {
    background:var(--muted);
    box-shadow:none;
}


/* =========================================================
   v0.2.19 - detail meteostanice, trendy a live obnova
   ========================================================= */

.weather-heading-status {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:7px;
}

.station-state {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:28px;
    padding:0 9px;
    border:1px solid var(--border);
    border-radius:999px;
    background:color-mix(in srgb,var(--bg-soft) 88%,transparent);
    color:var(--muted);
    font-size:10px;
    font-weight:750;
    white-space:nowrap;
}

.station-state i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--muted);
}

.station-state.station-online {
    color:var(--accent-2);
    border-color:color-mix(in srgb,var(--accent) 24%,var(--border));
}

.station-state.station-online i {
    background:var(--accent);
    box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);
}

.weather-hero-card {
    position:relative;
    grid-template-columns:minmax(280px,.78fr) minmax(0,1.45fr);
    gap:24px;
    padding:24px;
    overflow:hidden;
    background:
        radial-gradient(circle at 6% 18%, color-mix(in srgb,var(--accent) 10%,transparent), transparent 23rem),
        linear-gradient(145deg,var(--panel),var(--panel-2));
}

.weather-live-card::before {
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:3px;
    background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 18%,transparent));
    opacity:.72;
}

.weather-primary {
    display:flex;
    min-width:0;
    padding:18px 16px 16px 4px;
    flex-direction:column;
    justify-content:center;
}

.weather-refresh-line {
    display:flex;
    align-items:center;
    gap:7px;
    margin-bottom:25px;
    color:var(--muted);
    font-size:10px;
    font-weight:650;
}

.weather-refresh-line .refresh-error {
    color:#a86449;
}

.weather-live-pulse {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 10%,transparent);
}

.weather-refreshing .weather-live-pulse {
    animation:weather-pulse 1s ease-in-out infinite;
}

@keyframes weather-pulse {
    0%,100% { opacity:.45; transform:scale(.8); }
    50% { opacity:1; transform:scale(1.15); }
}

.big-temperature {
    display:block;
    min-width:0;
    font-size:clamp(72px,9vw,112px);
    font-weight:800;
    line-height:.84;
    letter-spacing:-.075em;
}

.big-temperature .temperature-number {
    display:inline;
}

.big-temperature .temperature-unit {
    display:inline-block;
    margin-left:8px;
    vertical-align:top;
    color:var(--muted);
    font-size:.34em;
    font-weight:700;
    letter-spacing:-.03em;
    transform:translateY(4px);
}

.big-temperature small {
    display:block;
    width:auto;
    margin-top:22px;
    color:var(--muted);
    font-size:14px;
    font-weight:600;
    letter-spacing:0;
}

.detail-metrics {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
}

.detail-metrics .weather-metric {
    display:flex;
    min-width:0;
    min-height:118px;
    padding:16px;
    flex-direction:column;
    justify-content:center;
    border:1px solid var(--border);
    border-radius:15px;
    background:color-mix(in srgb,var(--bg-soft) 80%,var(--panel-2));
    box-shadow:0 6px 18px rgba(16,32,39,.025);
}

.detail-metrics .weather-metric:nth-child(n) {
    border-right:1px solid var(--border);
    border-bottom:1px solid var(--border);
}

.metric-heading {
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--muted);
    font-size:10px;
    font-weight:700;
}

.metric-symbol {
    display:inline-grid !important;
    place-items:center;
    width:25px;
    height:25px;
    flex:0 0 25px;
    border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));
    border-radius:8px;
    color:var(--accent-2) !important;
    background:color-mix(in srgb,var(--accent) 7%,var(--bg-soft));
    font-size:8px !important;
    font-weight:850;
    letter-spacing:-.02em;
}

.detail-metrics .weather-metric > strong {
    display:block;
    margin-top:9px;
    color:var(--text);
    font-size:20px;
    line-height:1.15;
    letter-spacing:-.025em;
}

.detail-metrics .weather-metric > strong small {
    color:var(--muted);
    font-size:.65em;
    font-weight:650;
}

.wind-direction {
    margin-left:4px;
    color:var(--accent-2);
    font-size:.72em;
    font-weight:800;
}

.metric-note {
    display:block !important;
    margin-top:10px;
    color:var(--muted) !important;
    font-size:9px !important;
    font-weight:600;
}

.weather-trend {
    display:grid;
    grid-template-columns:34px minmax(0,auto);
    grid-template-areas:
        "arrow label"
        "arrow delta";
    align-items:center;
    align-self:flex-start;
    column-gap:11px;
    row-gap:4px;
    max-width:100%;
    margin-top:17px;
    padding:11px 14px;
    border:1px solid var(--border);
    border-radius:16px;
    color:var(--muted);
    background:color-mix(in srgb,var(--bg-soft) 82%,white 18%);
    box-shadow:0 6px 18px rgba(17,24,39,.04);
    font-size:12px;
    line-height:1.2;
}

.weather-trend.compact {
    grid-template-columns:28px minmax(0,1fr);
    column-gap:9px;
    row-gap:2px;
    margin-top:10px;
    padding:2px 0 0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    font-size:11px;
}

.weather-trend-arrow {
    grid-area:arrow;
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:11px;
    background:color-mix(in srgb,currentColor 14%,transparent);
    font-size:19px;
    line-height:1;
    font-weight:900;
}

.weather-trend.compact .weather-trend-arrow {
    width:28px;
    height:28px;
    border-radius:9px;
    font-size:15px;
}

.weather-trend-label {
    grid-area:label;
    display:block;
    font-weight:800;
    font-size:1em;
    line-height:1.05;
}

.weather-trend-delta {
    grid-area:delta;
    display:block;
    color:var(--muted);
    font-size:.96em;
    font-weight:700;
    line-height:1.2;
    white-space:nowrap;
}

.weather-trend-delta:empty {
    display:none;
}

.weather-trend.trend-rising {
    color:#3b8f66;
}

.weather-trend.trend-falling {
    color:#477da7;
}

.weather-trend.trend-steady {
    color:var(--muted);
}

.weather-trend.trend-unknown {
    opacity:.72;
}

html[data-theme="dark"] .weather-trend.trend-rising {
    color:#72d2a0;
}

html[data-theme="dark"] .weather-trend.trend-falling {
    color:#83b8de;
}

.weather-trend .weather-trend-arrow {
    position:relative;
    color:transparent;
    text-shadow:none;
    font-size:0;
}

.weather-trend .weather-trend-arrow::before {
    content:"•";
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    color:#fff;
    font-size:18px;
    font-weight:900;
    line-height:1;
    text-shadow:0 1px 0 rgba(0,0,0,.10);
}

.weather-trend.compact .weather-trend-arrow::before {
    font-size:14px;
}

.weather-trend.trend-rising .weather-trend-arrow {
    background:linear-gradient(180deg,#59bc85 0%,#2f9e68 100%);
    box-shadow:0 7px 16px rgba(47,158,104,.24);
}
.weather-trend.trend-rising .weather-trend-arrow::before {
    content:"▲";
}

.weather-trend.trend-falling .weather-trend-arrow {
    background:linear-gradient(180deg,#68a9da 0%,#3478b4 100%);
    box-shadow:0 7px 16px rgba(52,120,180,.22);
}
.weather-trend.trend-falling .weather-trend-arrow::before {
    content:"▼";
}

.weather-trend.trend-steady .weather-trend-arrow {
    background:linear-gradient(180deg,#c8d0d7 0%,#a5b0bb 100%);
    box-shadow:0 7px 16px rgba(148,163,184,.18);
}
.weather-trend.trend-steady .weather-trend-arrow::before {
    content:"•";
    font-size:22px;
}

.weather-trend.trend-unknown .weather-trend-arrow {
    background:linear-gradient(180deg,#d3d8de 0%,#b9c2cc 100%);
    box-shadow:0 7px 16px rgba(148,163,184,.16);
}
.weather-trend.trend-unknown .weather-trend-arrow::before {
    content:"?";
    font-size:17px;
}

.weather-trend.trend-rising .weather-trend-label {
    color:#2f9e68;
}

.weather-trend.trend-falling .weather-trend-label {
    color:#3478b4;
}

.weather-trend.trend-steady .weather-trend-label {
    color:#64748b;
}

html[data-theme="dark"] .weather-trend.trend-rising .weather-trend-arrow {
    background:linear-gradient(180deg,#78d7a3 0%,#47b57a 100%);
    box-shadow:0 7px 16px rgba(71,181,122,.28);
}

html[data-theme="dark"] .weather-trend.trend-falling .weather-trend-arrow {
    background:linear-gradient(180deg,#8dc4ea 0%,#4e94ce 100%);
    box-shadow:0 7px 16px rgba(78,148,206,.28);
}

html[data-theme="dark"] .weather-trend.trend-steady .weather-trend-arrow,
html[data-theme="dark"] .weather-trend.trend-unknown .weather-trend-arrow {
    background:linear-gradient(180deg,#758293 0%,#5d6978 100%);
    box-shadow:0 7px 16px rgba(17,24,39,.28);
}

html[data-theme="dark"] .weather-trend.trend-rising .weather-trend-label {
    color:#7fe0ab;
}

html[data-theme="dark"] .weather-trend.trend-falling .weather-trend-label {
    color:#93c7ec;
}

html[data-theme="dark"] .weather-trend.trend-steady .weather-trend-label {
    color:#c0cbd7;
}

.meteo-source-strip {
    gap:9px;
    margin:12px 0 30px;
}

.meteo-source-strip > div {
    min-width:150px;
    padding:11px 13px;
    background:color-mix(in srgb,var(--bg-soft) 88%,transparent);
    box-shadow:0 5px 16px rgba(16,32,39,.025);
}

@media (max-width:820px) {
    .weather-heading-status {
        align-items:flex-start;
        margin-top:14px;
    }

    .weather-hero-card {
        grid-template-columns:1fr;
        padding:18px;
    }

    .weather-primary {
        padding:10px 4px 8px;
    }

    .weather-refresh-line {
        margin-bottom:20px;
    }

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

@media (max-width:520px) {
    .weather-hero-card {
        gap:14px;
        padding:14px;
        border-radius:20px;
    }

    .big-temperature {
        font-size:76px;
    }

    .weather-primary {
        padding:8px 3px 10px;
    }

    .detail-metrics {
        grid-template-columns:1fr 1fr;
        gap:8px;
    }

    .detail-metrics .weather-metric {
        min-height:108px;
        padding:13px;
        border-radius:13px;
    }

    .detail-metrics .weather-metric > strong {
        font-size:17px;
    }

    .weather-trend.compact {
        grid-template-columns:24px minmax(0,1fr);
        column-gap:7px;
    }

    .weather-trend-arrow {
        width:28px;
        height:28px;
        font-size:16px;
    }

    .weather-trend.compact .weather-trend-arrow {
        width:24px;
        height:24px;
        font-size:13px;
    }

    .weather-trend-delta {
        white-space:normal;
    }

    .meteo-source-strip > div {
        min-width:calc(50% - 5px);
        flex:1 1 calc(50% - 5px);
    }
}

@media (prefers-reduced-motion:reduce) {
    .weather-refreshing .weather-live-pulse {
        animation:none;
    }
}


/* =========================================================
   v0.2.20 – piktogramy a zarovnání jednotek
   ========================================================= */

.temperature-display {
    display:inline-flex;
    align-items:flex-start;
    gap:8px;
    flex-wrap:nowrap;
}

.big-temperature .temperature-number,
.big-temperature .temperature-unit {
    white-space:nowrap;
}

.big-temperature .temperature-unit {
    margin-left:0;
    transform:translateY(10px);
}

.metric-value-line {
    display:flex !important;
    align-items:baseline;
    flex-wrap:nowrap;
    gap:6px;
    white-space:nowrap;
}

.metric-value-with-direction {
    flex-wrap:wrap;
    row-gap:4px;
}

.metric-number {
    line-height:1;
}

.metric-unit {
    color:var(--muted);
    font-size:.68em;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
}

.source-inline-value {
    display:inline-flex !important;
    align-items:baseline;
    gap:4px;
    white-space:nowrap;
}

.source-inline-value small {
    color:var(--muted);
    font-size:.82em;
    font-weight:700;
}

.metric-symbol {
    font-size:14px !important;
    line-height:1 !important;
}

.metric-icon-humidity,
.metric-icon-pressure,
.metric-icon-wind,
.metric-icon-gust,
.metric-icon-rain,
.metric-icon-max {
    font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
}

.metric-icon-humidity {
    background:color-mix(in srgb,#4da3d9 11%,var(--bg-soft));
    color:#3f8fc0 !important;
}

.metric-icon-pressure {
    background:color-mix(in srgb,#73859b 10%,var(--bg-soft));
    color:#5e6f83 !important;
}

.metric-icon-wind {
    background:color-mix(in srgb,#58a893 11%,var(--bg-soft));
    color:#41866f !important;
}

.metric-icon-gust {
    background:color-mix(in srgb,#d8a74f 12%,var(--bg-soft));
    color:#bc8b32 !important;
}

.metric-icon-rain {
    background:color-mix(in srgb,#667fe0 10%,var(--bg-soft));
    color:#5168c7 !important;
}

.metric-icon-max {
    background:color-mix(in srgb,#d58754 12%,var(--bg-soft));
    color:#b36839 !important;
}

@media (max-width:520px) {
    .temperature-display {
        gap:6px;
    }

    .big-temperature .temperature-unit {
        transform:translateY(8px);
    }

    .metric-value-line {
        gap:4px;
    }

    .metric-value-with-direction .wind-direction {
        width:100%;
        margin-left:0;
    }
}


/* =========================================================
   v0.2.21 – historické grafy Meteo Serveru
   ========================================================= */

.weather-charts-section {
    margin:42px 0 48px;
}

.weather-charts-heading {
    align-items:flex-end;
    margin-bottom:14px;
}

.weather-charts-subtitle {
    margin:6px 0 0;
    color:var(--muted);
    font-size:13px;
}

.weather-range-switch {
    display:inline-flex;
    gap:4px;
    padding:4px;
    border:1px solid var(--border);
    border-radius:12px;
    background:color-mix(in srgb,var(--bg-soft) 82%,transparent);
}

.weather-range-switch button {
    min-height:34px;
    padding:0 12px;
    border:0;
    border-radius:9px;
    color:var(--muted);
    background:transparent;
    cursor:pointer;
    font:inherit;
    font-size:11px;
    font-weight:750;
}

.weather-range-switch button:hover {
    color:var(--text);
    background:color-mix(in srgb,var(--accent) 7%,transparent);
}

.weather-range-switch button.active {
    color:var(--accent-2);
    background:color-mix(in srgb,var(--accent) 12%,var(--bg-soft));
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 16%,transparent);
}

.weather-chart-status {
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin:0 0 16px;
    color:var(--muted);
    font-size:10px;
    font-weight:650;
}

.weather-chart-status-dot {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent);
}

.weather-chart-status.error {
    color:#a86449;
}

.weather-chart-status.error .weather-chart-status-dot {
    background:#b56a4b;
    box-shadow:0 0 0 4px rgba(181,106,75,.10);
}

.charts-loading .weather-chart-status-dot {
    animation:weather-pulse 1s ease-in-out infinite;
}

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

.weather-chart-card {
    position:relative;
    min-width:0;
    padding:17px 17px 13px;
    border:1px solid var(--border);
    border-radius:18px;
    background:
        radial-gradient(circle at 0 0,color-mix(in srgb,var(--accent) 5%,transparent),transparent 18rem),
        var(--panel);
    box-shadow:0 12px 32px rgba(16,32,39,.045);
    overflow:hidden;
}

.weather-chart-card-wide {
    grid-column:1 / -1;
}

.weather-chart-card.chart-error {
    opacity:.82;
}

.weather-chart-card-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    min-width:0;
}

.weather-chart-title {
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
}

.weather-chart-title > div {
    min-width:0;
}

.weather-chart-title > div > span {
    display:block;
    color:var(--text);
    font-size:14px;
    font-weight:800;
}

.weather-chart-title small {
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:9px;
    font-weight:600;
}

.weather-chart-icon {
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    flex:0 0 32px;
    border:1px solid color-mix(in srgb,var(--accent) 16%,var(--border));
    border-radius:10px;
    background:color-mix(in srgb,var(--accent) 7%,var(--bg-soft));
    font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
    font-size:15px;
}

.weather-chart-icon-pressure {
    color:var(--accent-2);
    font-family:inherit;
    font-weight:850;
}

.weather-chart-card-heading > strong {
    flex:0 0 auto;
    color:var(--text);
    font-size:18px;
    line-height:1.1;
    white-space:nowrap;
}

.weather-chart-legend {
    display:flex;
    justify-content:flex-end;
    gap:14px;
    min-height:18px;
    margin:-2px 0 2px;
    color:var(--muted);
    font-size:9px;
    font-weight:650;
}

.weather-chart-legend span {
    display:inline-flex;
    align-items:center;
    gap:5px;
}

.legend-line {
    display:inline-block;
    width:14px;
    height:2px;
    border-radius:2px;
    background:var(--accent);
}

.legend-secondary {
    background:color-mix(in srgb,var(--accent-2) 42%,#d48c47);
}

.weather-chart-canvas {
    position:relative;
    min-height:250px;
    margin:8px -4px 0;
}

.weather-chart-loading,
.weather-chart-empty {
    display:grid;
    min-height:250px;
    place-items:center;
    color:var(--muted);
    font-size:11px;
    text-align:center;
}

.weather-chart-svg {
    display:block;
    width:100%;
    height:auto;
    overflow:visible;
    touch-action:pan-y;
}

.weather-chart-grid-line {
    stroke:var(--border);
    stroke-width:1;
    vector-effect:non-scaling-stroke;
}

.weather-chart-axis-label {
    fill:var(--muted);
    font-family:Inter,ui-sans-serif,system-ui,sans-serif;
    font-size:9px;
}

.weather-chart-range-area {
    fill:color-mix(in srgb,var(--accent) 10%,transparent);
    stroke:none;
}

.weather-chart-line {
    fill:none;
    stroke-width:2.25;
    stroke-linecap:round;
    stroke-linejoin:round;
    vector-effect:non-scaling-stroke;
}

.weather-chart-line.primary {
    stroke:var(--accent);
}

.weather-chart-line.secondary {
    stroke:color-mix(in srgb,var(--accent-2) 42%,#d48c47);
    stroke-width:1.7;
}

/* v0.2.36 – významové barvy jednotlivých meteorologických veličin */
.weather-chart-svg.chart-kind-temperature-apparent .weather-chart-line.primary {
    stroke:#df4545;
    stroke-width:2.6;
}
.weather-chart-svg.chart-kind-temperature-apparent .weather-chart-line.secondary {
    stroke:#38a96b;
    stroke-width:1.65;
}
.weather-chart-svg.chart-kind-humidity .weather-chart-line.primary {
    stroke:#2f80d1;
    stroke-width:2.45;
}
.weather-chart-svg.chart-kind-pressure .weather-chart-line.primary {
    stroke:#111827;
    stroke-width:2.35;
}
.weather-chart-svg.chart-kind-wind .weather-chart-line.primary {
    stroke:#174a7e;
    stroke-width:2.55;
}
.weather-chart-svg.chart-kind-wind .weather-chart-line.secondary {
    stroke:#d94b4b;
    stroke-width:1.65;
}
.weather-chart-rain-bar {
    fill:#338bd3;
}
.weather-chart-rain-bar.rain-max {
    fill:#176cae;
}
.weather-chart-rain-bar.rain-min {
    opacity:.72;
}

/* Legendy kopírují barvy křivek. */
[data-chart-kind="temperature-apparent"] .legend-primary { background:#df4545; }
[data-chart-kind="temperature-apparent"] .legend-secondary { background:#38a96b; }
[data-chart-kind="wind"] .legend-primary { background:#174a7e; }
[data-chart-kind="wind"] .legend-secondary { background:#d94b4b; }

/* Průsvitné pásmo min–max u agregovaných období drží barvu hlavní veličiny. */
.chart-kind-temperature-apparent .weather-chart-range-area { fill:rgba(223,69,69,.10); }
.chart-kind-humidity .weather-chart-range-area { fill:rgba(47,128,209,.10); }
.chart-kind-pressure .weather-chart-range-area { fill:rgba(17,24,39,.08); }
.chart-kind-wind .weather-chart-range-area { fill:rgba(23,74,126,.10); }

/* Barvy bodů v tooltipu odpovídají legendě. */
[data-chart-kind="temperature-apparent"] .tooltip-series i.primary { background:#df4545; }
[data-chart-kind="temperature-apparent"] .tooltip-series i.secondary { background:#38a96b; }
[data-chart-kind="humidity"] .tooltip-series i.primary { background:#2f80d1; }
[data-chart-kind="pressure"] .tooltip-series i.primary { background:#111827; }
[data-chart-kind="wind"] .tooltip-series i.primary { background:#174a7e; }
[data-chart-kind="wind"] .tooltip-series i.secondary { background:#d94b4b; }
[data-chart-kind="rain"] .tooltip-series i.primary { background:#338bd3; }

/* Hover body používají stejnou barvu jako jejich graf. */
.chart-kind-temperature-apparent .weather-chart-hover-dot.primary { fill:#df4545; }
.chart-kind-temperature-apparent .weather-chart-hover-dot.secondary { fill:#38a96b; }
.chart-kind-humidity .weather-chart-hover-dot.primary { fill:#2f80d1; }
.chart-kind-pressure .weather-chart-hover-dot.primary { fill:#111827; }
.chart-kind-wind .weather-chart-hover-dot.primary { fill:#174a7e; }
.chart-kind-wind .weather-chart-hover-dot.secondary { fill:#d94b4b; }
.chart-kind-rain .weather-chart-hover-dot.primary { fill:#338bd3; }

/* MIN / MAX značky přímo v grafech. */
.weather-chart-extreme-dot {
    stroke:var(--panel);
    stroke-width:2.2;
    vector-effect:non-scaling-stroke;
}
.weather-chart-extreme-label {
    font-family:Inter,ui-sans-serif,system-ui,sans-serif;
    font-size:8.5px;
    font-weight:850;
    paint-order:stroke;
    stroke:var(--panel);
    stroke-width:3px;
    stroke-linejoin:round;
}
.chart-kind-temperature-apparent .weather-chart-extreme-dot.primary { fill:#df4545; }
.chart-kind-temperature-apparent .weather-chart-extreme-label.primary { fill:#b52f2f; }
.chart-kind-temperature-apparent .weather-chart-extreme-dot.secondary { fill:#38a96b; }
.chart-kind-temperature-apparent .weather-chart-extreme-label.secondary { fill:#27804f; }
.chart-kind-humidity .weather-chart-extreme-dot.primary { fill:#2f80d1; }
.chart-kind-humidity .weather-chart-extreme-label.primary { fill:#21639f; }
.chart-kind-pressure .weather-chart-extreme-dot.primary { fill:#111827; }
.chart-kind-pressure .weather-chart-extreme-label.primary { fill:#111827; }
.chart-kind-wind .weather-chart-extreme-dot.primary { fill:#174a7e; }
.chart-kind-wind .weather-chart-extreme-label.primary { fill:#174a7e; }
.chart-kind-wind .weather-chart-extreme-dot.secondary { fill:#d94b4b; }
.chart-kind-wind .weather-chart-extreme-label.secondary { fill:#b53737; }
.chart-kind-rain .weather-chart-extreme-dot.primary { fill:#338bd3; }
.chart-kind-rain .weather-chart-extreme-label.primary { fill:#216ba7; }

html[data-theme="dark"] .weather-chart-svg.chart-kind-pressure .weather-chart-line.primary {
    stroke:#e5e7eb;
}
html[data-theme="dark"] .chart-kind-pressure .weather-chart-range-area {
    fill:rgba(229,231,235,.08);
}
html[data-theme="dark"] [data-chart-kind="pressure"] .tooltip-series i.primary {
    background:#e5e7eb;
}
html[data-theme="dark"] .chart-kind-pressure .weather-chart-hover-dot.primary,
html[data-theme="dark"] .chart-kind-pressure .weather-chart-extreme-dot.primary {
    fill:#e5e7eb;
}
html[data-theme="dark"] .chart-kind-pressure .weather-chart-extreme-label.primary {
    fill:#f3f4f6;
}

.weather-chart-crosshair {
    stroke:color-mix(in srgb,var(--text) 28%,transparent);
    stroke-width:1;
    stroke-dasharray:3 3;
    vector-effect:non-scaling-stroke;
    pointer-events:none;
}

.weather-chart-hover-dot {
    stroke:var(--panel);
    stroke-width:2;
    vector-effect:non-scaling-stroke;
    pointer-events:none;
}

.weather-chart-hover-dot.primary {
    fill:var(--accent);
}

.weather-chart-hover-dot.secondary {
    fill:color-mix(in srgb,var(--accent-2) 42%,#d48c47);
}

.weather-chart-tooltip {
    position:absolute;
    z-index:10;
    width:164px;
    padding:9px 10px;
    border:1px solid var(--border);
    border-radius:10px;
    color:var(--text);
    background:color-mix(in srgb,var(--panel) 96%,transparent);
    box-shadow:0 12px 30px rgba(16,32,39,.14);
    backdrop-filter:blur(12px);
    pointer-events:none;
    font-size:9px;
}

.weather-chart-tooltip time {
    display:block;
    margin-bottom:6px;
    color:var(--muted);
    font-weight:700;
}

.weather-chart-tooltip > div {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin-top:3px;
}

.tooltip-series {
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:var(--muted);
}

.tooltip-series i {
    width:7px;
    height:7px;
    border-radius:50%;
}

.tooltip-series i.primary {
    background:var(--accent);
}

.tooltip-series i.secondary {
    background:color-mix(in srgb,var(--accent-2) 42%,#d48c47);
}

.weather-chart-summary {
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    min-height:34px;
    padding-top:10px;
    border-top:1px solid var(--border);
}

.weather-chart-summary > span {
    display:flex;
    align-items:baseline;
    gap:5px;
}

.weather-chart-summary small {
    color:var(--muted);
    font-size:8px;
    font-weight:650;
}

.weather-chart-summary strong {
    color:var(--text);
    font-size:10px;
    white-space:nowrap;
}

@media (max-width:820px) {
    .weather-charts-heading {
        align-items:flex-start;
    }

    .weather-range-switch {
        margin-top:10px;
    }

    .weather-charts-grid {
        grid-template-columns:1fr;
    }

    .weather-chart-card-wide {
        grid-column:auto;
    }
}

@media (max-width:520px) {
    .weather-charts-section {
        margin-top:34px;
    }

    .weather-range-switch {
        display:grid;
        width:100%;
        grid-template-columns:repeat(3,1fr);
    }

    .weather-range-switch button {
        padding:0 6px;
        font-size:10px;
    }

    .weather-chart-card {
        padding:14px 12px 10px;
        border-radius:15px;
    }

    .weather-chart-card-heading > strong {
        font-size:15px;
    }

    .weather-chart-canvas {
        min-height:220px;
        margin-left:-7px;
        margin-right:-7px;
    }

    .weather-chart-loading,
    .weather-chart-empty {
        min-height:220px;
    }

    .weather-chart-axis-label {
        font-size:8px;
    }

    .weather-chart-summary {
        gap:7px 12px;
    }
}

@media (prefers-reduced-motion:reduce) {
    .charts-loading .weather-chart-status-dot {
        animation:none;
    }
}

/* =========================================================
   v0.2.23 – oddělený stav kamery a meteostanice
   ========================================================= */

.card-status-lines {
    display:flex;
    flex-direction:column;
    gap:2px;
    margin-top:4px;
}

.card-status-lines p {
    margin:0;
}

.status-stack {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:6px;
    flex:0 0 auto;
}

.service-status {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:22px;
    color:var(--muted);
    font-size:9px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    white-space:nowrap;
}

.service-status i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--muted);
    box-shadow:none;
}

.service-status.camera-online,
.service-status.meteo-online {
    color:#6d9e98;
}

.service-status.camera-online i,
.service-status.meteo-online i {
    background:var(--accent);
    box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent);
}

.service-status.camera-offline,
.service-status.meteo-offline {
    color:var(--muted);
}

.service-status.camera-warning {
    color:#a86449;
}

.service-status.camera-warning i {
    background:#a86449;
    box-shadow:0 0 0 4px color-mix(in srgb,#a86449 10%,transparent);
}

.service-status.camera-unknown,
.service-status.meteo-none {
    color:var(--muted);
    opacity:.78;
}

.weather-unavailable-card {
    display:flex;
    min-height:116px;
    margin:30px 0 20px;
    padding:20px;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    border:1px dashed var(--border);
    border-radius:16px;
    background:color-mix(in srgb,var(--panel) 72%,transparent);
}

.weather-unavailable-card strong {
    font-size:15px;
}

.weather-unavailable-card span {
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.detail-status-row {
    display:flex;
    justify-content:flex-end;
    gap:7px;
    flex-wrap:wrap;
}

.station-state.camera-online {
    color:var(--accent-2);
    border-color:color-mix(in srgb,var(--accent) 24%,var(--border));
}

.station-state.camera-online i {
    background:var(--accent);
    box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);
}

.station-state.camera-warning {
    color:#a86449;
}

.station-state.camera-warning i {
    background:#a86449;
}

@media (max-width: 640px) {
    .card-topline {
        gap:10px;
    }

    .status-stack {
        gap:3px;
    }

    .service-status {
        font-size:8px;
        letter-spacing:.055em;
    }
}

/* Public JSON API / partner section */
.partner-code-stack {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.partner-code-item {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.partner-code-label {
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.public-api-info code {
    width: 100%;
    box-sizing: border-box;
}

.partner-api-link {
    width: fit-content;
    color: var(--accent);
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.partner-api-link:hover { text-decoration: underline; }

.partner-api-hint {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
}

.partner-api-hint code {
    display: inline;
    width: auto;
    padding: 1px 5px;
    border-radius: 5px;
    white-space: normal;
    font-size: .95em;
}


/* =========================================================
   v0.2.26 – směr větru ve stupních + světových stranách
   ========================================================= */
.weather-chart-direction-note {
    margin:10px 0 2px;
    color:var(--muted);
    font-size:10px;
    line-height:1.45;
}
.weather-chart-direction-canvas {
    min-height:286px;
}
.weather-chart-direction-label {
    font-weight:750;
}
.weather-chart-grid-line.direction-cardinal {
    opacity:.72;
}
.weather-chart-direction-line {
    stroke-width:2.2;
}
.weather-chart-direction-point {
    stroke:rgba(255,255,255,.72);
    stroke-width:.7;
    vector-effect:non-scaling-stroke;
}
.weather-chart-direction-vertical-grid {
    opacity:.22;
}
@media (max-width:520px) {
    .weather-chart-direction-canvas {
        min-height:250px;
    }
    .wind-direction {
        font-size:.66em;
    }
}

.weather-metric-direction .wind-direction-prominent {
    color:var(--text);
    font-size:20px;
    font-weight:850;
    letter-spacing:-.025em;
}


/* =========================================================
   v0.2.37 – zvětšení grafu přes celé okno
   ========================================================= */
.weather-chart-expandable {
    cursor:zoom-in;
}

.weather-chart-expand-button {
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    flex:0 0 30px;
    margin-left:-7px;
    padding:0;
    border:1px solid var(--border);
    border-radius:9px;
    color:var(--muted);
    background:var(--bg-soft);
    cursor:pointer;
    font:inherit;
    font-size:15px;
    line-height:1;
}

.weather-chart-expand-button:hover,
.weather-chart-expand-button:focus-visible {
    color:var(--text);
    border-color:color-mix(in srgb,var(--accent) 42%,var(--border));
    background:color-mix(in srgb,var(--accent) 8%,var(--bg-soft));
    outline:none;
}

.weather-chart-expanded-backdrop {
    position:fixed;
    inset:0;
    z-index:9998;
    background:rgba(5,12,16,.72);
    backdrop-filter:blur(5px);
}

body.weather-chart-modal-open {
    overflow:hidden !important;
}

.weather-chart-card.chart-expanded {
    position:fixed;
    inset:14px;
    z-index:9999;
    display:flex;
    flex-direction:column;
    width:auto;
    height:auto;
    max-width:none;
    max-height:none;
    padding:20px 22px 18px;
    border-radius:20px;
    overflow:auto;
    box-shadow:0 24px 80px rgba(0,0,0,.34);
}

.weather-chart-card.chart-expanded .weather-chart-card-heading {
    padding-right:0;
}

.weather-chart-card.chart-expanded .weather-chart-expand-button {
    display:none;
}

.weather-chart-card.chart-expanded .weather-chart-canvas {
    flex:1 1 auto;
    display:flex;
    align-items:center;
    min-height:0;
    margin-top:8px;
    cursor:default;
}

.weather-chart-card.chart-expanded .weather-chart-svg {
    width:100%;
    height:min(68vh, 720px);
    min-height:360px;
}

.weather-chart-card.chart-expanded .weather-chart-loading,
.weather-chart-card.chart-expanded .weather-chart-empty {
    width:100%;
    min-height:55vh;
}

.weather-chart-expanded-controls {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin:8px 0 2px;
}

.weather-chart-expanded-context {
    display:flex;
    align-items:baseline;
    gap:9px;
    min-width:0;
}

.weather-chart-expanded-context small {
    color:var(--muted);
    font-size:10px;
    font-weight:750;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.weather-chart-expanded-context strong {
    overflow:hidden;
    color:var(--text);
    font-size:17px;
    font-weight:850;
    line-height:1.2;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.weather-chart-expanded-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex:0 0 auto;
}

.weather-chart-expanded-ranges {
    display:flex;
    gap:5px;
    padding:3px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--bg-soft);
}

.weather-chart-expanded-ranges button,
.weather-chart-expanded-close {
    min-height:32px;
    padding:0 10px;
    border:0;
    border-radius:8px;
    color:var(--muted);
    background:transparent;
    cursor:pointer;
    font:inherit;
    font-size:10px;
    font-weight:800;
}

.weather-chart-expanded-ranges button.active {
    color:var(--text);
    background:var(--panel);
    box-shadow:0 2px 8px rgba(16,32,39,.08);
}

.weather-chart-expanded-close {
    display:grid;
    place-items:center;
    width:36px;
    min-width:36px;
    padding:0;
    border:1px solid var(--border);
    color:var(--text);
    background:var(--bg-soft);
    font-size:22px;
    font-weight:500;
    line-height:1;
}

.weather-chart-card.chart-expanded .weather-chart-summary {
    gap:14px 30px;
    min-height:64px;
    padding:16px 2px 5px;
}

.weather-chart-card.chart-expanded .weather-chart-summary > span {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
    min-width:112px;
}

.weather-chart-card.chart-expanded .weather-chart-summary small {
    font-size:11px;
    font-weight:750;
    line-height:1.15;
}

.weather-chart-card.chart-expanded .weather-chart-summary strong {
    font-size:17px;
    font-weight:850;
    line-height:1.15;
}

@media (max-width:700px) {
    .weather-chart-card.chart-expanded {
        inset:0;
        padding:13px 11px 12px;
        border:0;
        border-radius:0;
    }

    .weather-chart-card.chart-expanded .weather-chart-svg {
        height:min(60vh, 560px);
        min-height:280px;
    }

    .weather-chart-expanded-controls {
        align-items:stretch;
        flex-direction:column;
        justify-content:flex-start;
        gap:8px;
    }

    .weather-chart-expanded-context {
        padding:0 2px;
    }

    .weather-chart-expanded-context strong {
        font-size:15px;
    }

    .weather-chart-expanded-actions {
        width:100%;
    }

    .weather-chart-expanded-ranges {
        min-width:0;
        flex:1;
    }

    .weather-chart-expanded-ranges button {
        flex:1;
        padding:0 6px;
    }

    .weather-chart-card.chart-expanded .weather-chart-summary {
        gap:12px 20px;
        padding-top:13px;
    }

    .weather-chart-card.chart-expanded .weather-chart-summary > span {
        min-width:96px;
    }

    .weather-chart-card.chart-expanded .weather-chart-summary small {
        font-size:10px;
    }

    .weather-chart-card.chart-expanded .weather-chart-summary strong {
        font-size:15px;
    }
}

/* Premium účty a QR platby — v0.2.49 */
.premium-page,.account-page,.auth-page{padding-top:42px;padding-bottom:72px}
.premium-hero-card{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:34px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(135deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}
.premium-hero-card h1{margin:.2rem 0 .7rem;font-size:clamp(2rem,5vw,4rem);line-height:1.02}.premium-hero-card .hero-text{max-width:720px;margin:0;color:var(--muted)}
.premium-price{min-width:185px;padding:18px 20px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--border));border-radius:18px;background:var(--metric-bg);text-align:center}.premium-price strong{display:block;font-size:2rem}.premium-price span,.premium-price small{display:block;color:var(--muted)}
.premium-state-card{display:flex;flex-direction:column;gap:3px;margin-top:18px;padding:18px 22px;border:1px solid var(--border);border-radius:16px;background:var(--panel)}.premium-state-card.success{border-color:color-mix(in srgb,var(--accent) 42%,var(--border))}.premium-state-card strong{color:var(--accent)}
.premium-benefit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:22px}.premium-benefit-grid article,.premium-info-card,.premium-terms,.payment-card,.account-status-card,.auth-card{border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}.premium-benefit-grid article{padding:24px}.premium-benefit-grid h2{font-size:1.1rem;margin:12px 0 8px}.premium-benefit-grid p,.premium-info-card p,.premium-terms p{color:var(--muted)}.premium-feature-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--panel-2);font-size:1.25rem;font-weight:900;color:var(--accent)}
.premium-two-column{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.premium-info-card{padding:28px}.premium-info-card h2{margin:.25rem 0 .65rem}.isp-card{border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.premium-state-inline{margin-top:18px;padding:12px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-weight:750}.premium-card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.premium-terms{margin-top:22px;padding:30px}.premium-terms h2{margin:.2rem 0 1rem}.premium-terms ol{padding-left:1.4rem}.premium-terms li{margin:.65rem 0}.premium-terms.compact{margin-top:18px}.premium-small-note{font-size:.9rem}
.auth-page{display:grid;place-items:start center}.auth-card{width:min(520px,100%);padding:30px}.auth-card h1{margin:.2rem 0 1rem}.auth-card form{display:grid;gap:16px;margin-top:22px}.auth-card label{display:grid;gap:7px;font-weight:700}.auth-card input[type=email],.auth-card input[type=password]{width:100%;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:var(--bg-soft);color:var(--text);font:inherit}.auth-card label small{color:var(--muted);font-weight:400}.check-row{grid-template-columns:auto 1fr!important;align-items:start;font-weight:400!important}.check-row input{margin-top:.3rem}.auth-submit{width:100%;justify-content:center}.auth-footer{margin:20px 0 0;color:var(--muted)}.auth-footer a,.check-row a{color:var(--accent);font-weight:700}
.form-message{margin:15px 0;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--panel-2)}.form-message.error{border-color:rgba(210,60,60,.35);color:#c43d3d}.form-message.success{border-color:color-mix(in srgb,var(--accent) 38%,var(--border));color:var(--accent)}.form-message.warning{border-color:rgba(211,155,38,.35)}
.inline-form{margin:0}.button-link{border:0;background:transparent;cursor:pointer;font:inherit;color:inherit}
.account-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.account-heading h1{margin:.2rem 0 0}.account-vs{padding:14px 18px;border:1px solid var(--border);border-radius:15px;background:var(--panel);text-align:right}.account-vs span{display:block;color:var(--muted);font-size:.8rem}.account-vs strong{font-size:1.45rem;letter-spacing:.04em}.account-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.account-status-card{padding:22px}.account-status-card span,.account-status-card small{display:block;color:var(--muted)}.account-status-card strong{display:block;margin:5px 0;font-size:1.35rem}.account-status-card.active strong{color:var(--accent)}
.payment-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;margin-top:18px;padding:28px}.payment-copy h2{font-size:2rem;margin:.2rem 0}.payment-copy>p{color:var(--muted)}.payment-details{display:grid;gap:0;margin:20px 0 0}.payment-details div{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:10px 0;border-top:1px solid var(--border)}.payment-details dt{color:var(--muted)}.payment-details dd{margin:0;font-weight:700;overflow-wrap:anywhere}.payment-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:270px;padding:15px;border-radius:16px;background:#fff;color:#102027}.payment-qr img{display:block;width:240px;height:240px}.payment-qr span{font-size:.85rem;font-weight:700}
@media(max-width:760px){.premium-hero-card{align-items:stretch;flex-direction:column;padding:24px}.premium-price{min-width:0}.premium-benefit-grid,.premium-two-column,.account-status-grid,.payment-card{grid-template-columns:1fr}.payment-qr{min-width:0}.account-heading{align-items:stretch;flex-direction:column}.account-vs{text-align:left}.payment-details div{grid-template-columns:1fr;gap:2px}.premium-page,.account-page,.auth-page{padding-top:24px}.top-nav a[href="/premium"]{display:none}}

/* Lightning / thunderstorm activity (v0.2.50) */
.lightning-section{margin-top:24px;padding:24px;border-radius:22px;background:var(--card,#fff);box-shadow:var(--shadow,0 12px 36px rgba(15,23,42,.08));border:1px solid var(--border,rgba(148,163,184,.22))}
.lightning-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.lightning-status-badge{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;font-size:.9rem;background:rgba(100,116,139,.10);white-space:nowrap}
.lightning-level-nearby{background:rgba(239,68,68,.14);color:#b91c1c}.lightning-level-close{background:rgba(245,158,11,.16);color:#b45309}.lightning-level-regional{background:rgba(234,179,8,.14);color:#854d0e}.lightning-level-distant{background:rgba(59,130,246,.12);color:#1d4ed8}.lightning-level-none{background:rgba(34,197,94,.12);color:#15803d}
.lightning-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lightning-card{padding:18px;border:1px solid var(--border,rgba(148,163,184,.22));border-radius:16px;background:var(--surface-soft,rgba(248,250,252,.72));display:flex;flex-direction:column;gap:7px;min-width:0}.lightning-card-main{background:linear-gradient(135deg,rgba(250,204,21,.13),rgba(59,130,246,.06))}.lightning-card-label{font-size:.79rem;text-transform:uppercase;letter-spacing:.06em;opacity:.68}.lightning-card strong{font-size:1.65rem;line-height:1.05}.lightning-card strong small{font-size:.85rem;font-weight:600;opacity:.66}.lightning-card .lightning-movement{font-size:1.08rem;line-height:1.25}.lightning-card-note{font-size:.88rem;opacity:.72}.lightning-stats-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:14px;border:1px solid var(--border,rgba(148,163,184,.22));border-radius:14px;overflow:hidden}.lightning-stats-strip>div{padding:13px 15px;background:var(--surface-soft,rgba(248,250,252,.6));display:flex;flex-direction:column;gap:4px}.lightning-stats-strip span{font-size:.76rem;opacity:.65}.lightning-stats-strip strong{font-size:1.03rem}.lightning-footnote{margin-top:12px;font-size:.78rem;opacity:.62}
[data-theme="dark"] .lightning-level-nearby{color:#fecaca}[data-theme="dark"] .lightning-level-close{color:#fde68a}[data-theme="dark"] .lightning-level-regional{color:#fef08a}[data-theme="dark"] .lightning-level-distant{color:#bfdbfe}[data-theme="dark"] .lightning-level-none{color:#bbf7d0}
@media (max-width:900px){.lightning-grid,.lightning-stats-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.lightning-heading{flex-direction:column}.lightning-status-badge{white-space:normal}}
@media (max-width:560px){.lightning-section{padding:18px}.lightning-grid{grid-template-columns:1fr}.lightning-stats-strip{grid-template-columns:1fr 1fr}}


/* Denní bezplatný limit kamer — v0.2.52 */
.camera-free-limit-note {
    margin: 10px auto 0;
    max-width: 520px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--muted, #64748b);
}
.camera-free-limit-note.premium {
    font-weight: 700;
}

/* Premium tarify a administrace 0.2.53 */
.premium-price-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:390px}
.premium-price.featured{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}
.plan-picker-card,.admin-toolbar-card,.admin-card,.admin-section{margin-top:20px;padding:24px;border:1px solid var(--border);border-radius:20px;background:var(--panel);box-shadow:var(--shadow)}
.plan-picker-card{display:flex;align-items:center;justify-content:space-between;gap:22px}.plan-picker-card h2{margin:.2rem 0}.plan-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;min-width:min(100%,470px)}
.plan-option{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--border);border-radius:16px;background:var(--panel-2);color:var(--text);text-decoration:none}.plan-option:hover,.plan-option.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--panel-2))}.plan-option strong{font-size:1.35rem}.plan-option small,.plan-option span{color:var(--muted)}.plan-option.active span{color:var(--accent);font-weight:800}
.admin-premium-page{padding-top:36px;padding-bottom:72px}.admin-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.admin-heading h1{margin:.2rem 0}.admin-heading p:last-child{margin-bottom:0;color:var(--muted)}
.admin-summary-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:20px}.admin-summary-grid a{display:flex;min-height:110px;flex-direction:column;justify-content:space-between;padding:18px;border:1px solid var(--border);border-radius:17px;background:var(--panel);box-shadow:var(--shadow);color:var(--text);text-decoration:none}.admin-summary-grid a:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.admin-summary-grid span{font-size:.78rem;color:var(--muted)}.admin-summary-grid strong{font-size:2rem}
.admin-search-form{display:flex;align-items:end;gap:10px}.admin-search-form label{flex:1}.admin-form label,.admin-search-form label{display:flex;flex-direction:column;gap:7px}.admin-form label span,.admin-search-form label span{font-size:.8rem;color:var(--muted);font-weight:700}.admin-form input,.admin-form select,.admin-search-form input{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--bg-soft);color:var(--text);font:inherit}.admin-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.admin-filter{padding:8px 11px;border:1px solid var(--border);border-radius:999px;color:var(--muted);text-decoration:none;font-size:.82rem;font-weight:750}.admin-filter:hover,.admin-filter.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:color-mix(in srgb,var(--accent) 10%,transparent)}
.admin-user-table{margin-top:18px}.admin-user-table .stats-table{min-width:1120px}.admin-state{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.75rem;font-weight:800;background:var(--panel-2)}.admin-state.active{color:var(--accent)}.admin-state.blocked{color:#b94343}.admin-state.expired{color:#a46a1b}.admin-state.unpaid{color:var(--muted)}.admin-state.unverified{color:#a46a1b}.compact-button{padding:7px 10px;font-size:.8rem}.admin-table-note{color:var(--muted);font-size:.82rem}
.admin-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-card{margin-top:0}.admin-card h2,.admin-section h2{margin:.2rem 0 1rem}.admin-dl{margin:0 0 20px}.admin-dl div{display:grid;grid-template-columns:160px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.admin-dl dt{color:var(--muted)}.admin-dl dd{margin:0}.admin-form{display:grid;gap:12px}.admin-inline-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.admin-card hr{border:0;border-top:1px solid var(--border);margin:20px 0}.button.danger{border-color:rgba(185,67,67,.4);background:rgba(185,67,67,.1);color:#b94343}.button.danger:hover{background:rgba(185,67,67,.16)}.admin-section .stats-table{min-width:1050px}.admin-section code{font-size:.75rem;word-break:break-all}
@media(max-width:1100px){.admin-summary-grid{grid-template-columns:repeat(3,1fr)}.admin-detail-grid{grid-template-columns:1fr}}
@media(max-width:760px){.premium-price-list{grid-template-columns:1fr;min-width:0;width:100%}.plan-picker-card{align-items:stretch;flex-direction:column}.plan-picker-grid{grid-template-columns:1fr;min-width:0}.admin-summary-grid{grid-template-columns:repeat(2,1fr)}.admin-search-form{align-items:stretch;flex-direction:column}.admin-search-form .button{width:100%}.admin-detail-grid{grid-template-columns:1fr}.admin-dl div{grid-template-columns:1fr;gap:2px}.admin-premium-page{padding-top:24px}}

/* v0.2.54: více kamer v jedné lokalitě */
.card-preview-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 1fr;
    gap: 3px;
    margin-top: 18px;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 8.7;
    border: 1px solid var(--border);
    border-radius: 18px;
    background: color-mix(in srgb, var(--panel) 84%, transparent);
    box-shadow: 0 10px 26px rgba(16,32,39,.06);
}

.card-preview-grid.camera-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.card-preview-grid.camera-count-3,
.card-preview-grid.camera-count-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
}

.card-preview-tile {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: color-mix(in srgb, var(--panel) 84%, transparent);
    text-decoration: none;
}

.card-preview-tile:hover .card-preview-image {
    transform: scale(1.015);
}

.card-preview-tile .card-preview-image {
    transition: transform .18s ease;
}

.card-preview-tile.no-snapshot {
    display: grid;
    place-items: center;
}

.card-preview-empty {
    font-size: 26px;
    opacity: .45;
}

.camera-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.camera-list.multiple {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.camera-unit {
    min-width: 0;
}

.camera-unit-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}

.camera-unit-heading .eyebrow {
    margin-bottom: 3px;
}

.camera-unit-heading h3 {
    margin: 0;
    font-size: 19px;
}

.camera-list.multiple .camera-preview h3 {
    font-size: 18px;
}

.camera-list.multiple .camera-preview p {
    font-size: 12px;
}

.camera-list.multiple .play-icon {
    width: 58px;
    height: 58px;
    margin-bottom: 10px;
    font-size: 20px;
}

.embed-camera-list {
    display: grid;
    gap: 12px;
}

.embed-camera-item {
    min-width: 0;
}

.embed-camera-item > strong {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
}

@media (max-width: 760px) {
    .card-preview-grid {
        margin-top: 16px;
        border-radius: 16px;
        aspect-ratio: 16 / 9;
    }

    .camera-list.multiple {
        grid-template-columns: 1fr;
    }
}

/* v0.2.58: aktuality a komunitní ankety */
.top-nav a.active { color: var(--text); }
.community-home-strip{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;margin-bottom:12px}
.community-home-card{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:22px 24px;border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:var(--shadow);min-width:0;position:relative;overflow:hidden}
.community-home-card:after{content:"";position:absolute;inset:auto -60px -80px auto;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--accent) 8%,transparent);pointer-events:none}
.community-home-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-size:23px;background:color-mix(in srgb,var(--accent) 12%,var(--panel-2));border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border))}
.community-home-copy{min-width:0}.community-home-copy h2{font-size:1.15rem;margin:.2rem 0 .45rem}.community-home-copy p:not(.eyebrow){margin:0 0 10px;color:var(--muted);font-size:.9rem;line-height:1.5}.community-home-copy a,.news-read-more{font-weight:800;color:var(--accent);text-decoration:none;font-size:.88rem}.community-home-copy a:hover,.news-read-more:hover{text-decoration:underline}
.community-hero{padding:62px 0 32px}.community-hero h1{font-size:clamp(2.3rem,7vw,4.6rem);line-height:.95;margin:.2rem 0 1rem;letter-spacing:-.04em}.community-hero .shell>p:last-child{max-width:760px;color:var(--muted);font-size:1.05rem;line-height:1.65}
.news-list{display:grid;gap:16px;max-width:920px}.news-card{padding:26px 28px;border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:var(--shadow)}.news-card.pinned{border-color:color-mix(in srgb,var(--accent) 36%,var(--border))}.news-card-meta{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.8rem;font-weight:750}.news-card-meta span{padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.news-card h2{margin:.55rem 0 .7rem;font-size:1.45rem}.news-card h2 a{color:var(--text);text-decoration:none}.news-card h2 a:hover{color:var(--accent)}.news-card>p{color:var(--muted);line-height:1.6;max-width:780px}
.community-empty{padding:56px 28px;text-align:center;border:1px dashed var(--border);border-radius:24px;background:color-mix(in srgb,var(--panel) 75%,transparent)}.community-empty>span{font-size:38px}.community-empty h2{margin:.7rem 0 .4rem}.community-empty p{color:var(--muted);margin:0}
.community-article-page{padding-top:56px;padding-bottom:80px}.community-article{max-width:860px;margin:0 auto;padding:34px 38px;border:1px solid var(--border);border-radius:26px;background:var(--panel);box-shadow:var(--shadow)}.community-article h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.05;letter-spacing:-.035em;margin:.8rem 0 1.1rem}.community-article-lead{font-size:1.2rem;line-height:1.65;color:var(--muted);padding-bottom:22px;border-bottom:1px solid var(--border)}.community-article-body{font-size:1.02rem;line-height:1.78}.community-article-body p{margin:1.25rem 0}.community-article-back{margin-top:30px;padding-top:24px;border-top:1px solid var(--border)}
.poll-page{max-width:1040px}.main-poll-card,.previous-poll{padding:30px;border:1px solid var(--border);border-radius:24px;background:var(--panel);box-shadow:var(--shadow)}.poll-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.poll-card-heading h2{font-size:clamp(1.65rem,4vw,2.5rem);margin:.3rem 0 .6rem}.poll-card-heading>div:first-child>p:last-child{color:var(--muted);line-height:1.6;max-width:680px}.poll-deadline{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;text-align:right;padding:12px 14px;border-radius:14px;background:var(--panel-2);border:1px solid var(--border)}.poll-deadline span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.poll-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0 18px}.poll-option{display:flex;align-items:center;gap:12px;padding:17px 18px;border:1px solid var(--border);border-radius:16px;background:var(--panel-2);cursor:pointer;transition:.16s}.poll-option:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.poll-option input{position:absolute;opacity:0;pointer-events:none}.poll-option-mark{width:19px;height:19px;border-radius:50%;border:2px solid var(--muted);display:block;position:relative;flex:0 0 auto}.poll-option input:checked+.poll-option-mark{border-color:var(--accent)}.poll-option input:checked+.poll-option-mark:after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--accent)}.poll-option:has(input:checked){border-color:color-mix(in srgb,var(--accent) 60%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--panel-2))}.poll-option-label{font-weight:750}.poll-submit{min-width:170px}.poll-privacy-note{font-size:.78rem;color:var(--muted);margin:.8rem 0 0}.poll-thanks{margin:24px 0 18px;padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--accent) 8%,var(--panel-2));display:flex;flex-direction:column;gap:4px}.poll-thanks strong{color:var(--accent)}.poll-thanks span{font-size:.85rem;color:var(--muted)}
.poll-results{display:grid;gap:14px}.poll-result{padding:14px 16px;border:1px solid var(--border);border-radius:15px;background:var(--panel-2)}.poll-result.selected{border-color:color-mix(in srgb,var(--accent) 55%,var(--border))}.poll-result-top{display:flex;justify-content:space-between;gap:18px;margin-bottom:9px}.poll-result-top span{font-weight:750}.poll-result-top strong{white-space:nowrap}.poll-result-bar{height:9px;border-radius:999px;background:color-mix(in srgb,var(--muted) 13%,transparent);overflow:hidden}.poll-result-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.poll-result small{display:block;margin-top:7px;color:var(--muted)}.poll-total{text-align:right;color:var(--muted)}.previous-poll{margin-top:24px;box-shadow:none}.poll-results.compact{grid-template-columns:1fr 1fr}.poll-explainer{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.poll-explainer>div{padding:22px;border:1px solid var(--border);border-radius:20px;background:var(--panel)}.poll-explainer>div>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:var(--panel-2);font-size:20px}.poll-explainer h3{margin:.8rem 0 .45rem}.poll-explainer p{margin:0;color:var(--muted);line-height:1.6}
.community-admin-tabs{display:flex;gap:10px;margin:22px 0}.community-admin-tabs a{padding:11px 15px;border:1px solid var(--border);border-radius:999px;color:var(--muted);text-decoration:none;font-weight:800}.community-admin-tabs a strong{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:6px;border-radius:999px;background:var(--panel-2);font-size:.75rem}.community-admin-tabs a.active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.community-admin-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr)}.community-help-card p{color:var(--muted);line-height:1.65}.admin-form textarea{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--bg-soft);color:var(--text);font:inherit;resize:vertical}.admin-form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.community-admin-table{min-width:900px}.community-admin-table form,.admin-inline-actions form{margin:0}.admin-field-title{font-size:.8rem;color:var(--muted);font-weight:700}.poll-admin-options{display:grid;gap:8px}.poll-admin-option{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.poll-admin-option>span{font-size:.78rem;color:var(--muted);white-space:nowrap}.poll-option-delete-list{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap}.poll-option-delete-list>p{width:100%;margin:0 0 3px}
@media(max-width:980px){.community-home-strip{grid-template-columns:1fr}.community-admin-grid{grid-template-columns:1fr}.poll-card-heading{flex-direction:column}.poll-deadline{text-align:left}}
@media(max-width:700px){.community-hero{padding:40px 0 18px}.community-home-card{padding:18px;grid-template-columns:1fr}.community-home-icon{width:42px;height:42px}.news-card{padding:20px}.community-article{padding:24px 20px;border-radius:20px}.community-article-page{padding-top:26px}.poll-options,.poll-results.compact,.poll-explainer{grid-template-columns:1fr}.main-poll-card,.previous-poll{padding:21px}.admin-form-two{grid-template-columns:1fr}.community-admin-tabs{overflow:auto;padding-bottom:2px}.poll-admin-option{grid-template-columns:1fr}.poll-admin-option>span{white-space:normal}}

/* v0.2.59 - Facebook + sjednocena administrace */
.footer-links { display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:flex-end; }
.site-footer a { color:inherit; font-weight:700; text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.admin-dashboard-page { padding-bottom:80px; }
.admin-dashboard-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:24px 0; }
.admin-dashboard-card { display:flex; gap:20px; align-items:flex-start; padding:26px; border:1px solid var(--border); border-radius:24px; background:var(--panel); color:inherit; text-decoration:none; box-shadow:var(--shadow); transition:transform .18s ease,border-color .18s ease; }
.admin-dashboard-card:hover { transform:translateY(-2px); border-color:var(--accent); }
.admin-dashboard-card h2 { margin:3px 0 8px; }
.admin-dashboard-card p { margin:0; }
.admin-dashboard-icon { display:grid; place-items:center; flex:0 0 54px; width:54px; height:54px; border-radius:18px; background:color-mix(in srgb,var(--accent) 12%,var(--panel-2)); color:var(--accent); font-size:25px; font-weight:800; }
.admin-dashboard-stats { display:flex; gap:14px; flex-wrap:wrap; margin-top:16px; color:var(--muted); }
.admin-dashboard-stats strong { color:var(--text); font-size:18px; }
.admin-dashboard-warning { margin-top:16px; color:var(--muted); font-weight:700; }
.admin-dashboard-links { margin-top:22px; }
@media (max-width:760px) { .admin-dashboard-grid { grid-template-columns:1fr; } .footer-links { justify-content:flex-start; } }


/* v0.2.61: náhradní obrázek meteostanice u lokalit bez kamery */
.station-placeholder-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent 58%, rgba(7,17,22,.18));
}
.station-placeholder-badge {
    z-index: 1;
}

/* v0.2.62 — Přehledy všech meteostanic */
.overview-hero{padding:68px 0 34px;background:linear-gradient(180deg,rgba(182,106,45,.08),transparent)}
.overview-hero h1{font-size:clamp(2.35rem,5vw,4.4rem);margin:6px 0 12px;letter-spacing:-.045em}
.overview-hero p:not(.eyebrow){max-width:820px;font-size:1.08rem;line-height:1.7;color:var(--muted)}
.overview-page{padding-bottom:72px}
.overview-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:22px 24px;margin:0 0 18px;border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:var(--shadow)}
.overview-range-switch{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.overview-range-switch button{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font:inherit;font-weight:800;padding:9px 14px;border-radius:999px;cursor:pointer}
.overview-range-switch button:hover,.overview-range-switch button.active{background:var(--accent);border-color:var(--accent);color:#fff}
.overview-auto-refresh{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.88rem;white-space:nowrap}
.overview-auto-refresh i,.overview-global-status i{width:8px;height:8px;border-radius:50%;background:#39a56a;box-shadow:0 0 0 4px rgba(57,165,106,.12)}
.overview-stations{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.overview-station-chip{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:16px;background:var(--panel);color:var(--text);text-decoration:none;box-shadow:var(--shadow);transition:.18s ease}
.overview-station-chip:hover{transform:translateY(-1px);border-color:var(--accent)}
.overview-station-chip>i,.overview-summary-item>i,.overview-tooltip i{display:block;width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:var(--series-color)}
.overview-station-chip>i{width:12px;height:12px;flex-basis:12px;background:currentColor}
.station-color-0{color:#b66a2d}.station-color-1{color:#2878b8}.station-color-2{color:#2f8c64}.station-color-3{color:#8a5db1}.station-color-4{color:#d04f54}.station-color-5{color:#3a9297}.station-color-6{color:#c58d21}.station-color-7{color:#66717b}
.overview-station-chip span{display:flex;flex-direction:column}.overview-station-chip strong{color:var(--text);font-size:.92rem}.overview-station-chip small{color:var(--muted);font-size:.75rem;margin-top:2px}
.overview-global-status{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.86rem;margin:12px 2px 18px}.overview-global-status.error i{background:#cf4e4e;box-shadow:0 0 0 4px rgba(207,78,78,.12)}
.overview-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.overview-chart-card{min-width:0;border:1px solid var(--border);border-radius:24px;background:var(--panel);box-shadow:var(--shadow);padding:22px;overflow:hidden}.overview-chart-card.wide{grid-column:1/-1}
.overview-chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.overview-chart-heading>small{color:var(--muted);white-space:nowrap;padding-top:5px}
.overview-chart-title{display:flex;gap:12px;align-items:flex-start}.overview-chart-title>span{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:var(--panel-2);font-size:1.25rem;flex:0 0 39px}.overview-chart-title h2{font-size:1.16rem;margin:0 0 4px}.overview-chart-title p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45;max-width:520px}
.overview-chart-canvas{position:relative;min-height:285px;margin:4px -5px 0}.overview-chart-svg{display:block;width:100%;height:auto;min-height:270px;overflow:visible}.overview-grid-line{stroke:var(--border);stroke-width:1}.overview-axis-label{fill:var(--muted);font-size:11px}.overview-series-line{vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 1px rgba(0,0,0,.08))}.overview-direction-point{opacity:.72}.overview-crosshair{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 5;pointer-events:none}.overview-pointer-area{cursor:crosshair}
.overview-tooltip{position:absolute;top:18px;transform:translateX(12px);z-index:4;min-width:190px;max-width:280px;padding:10px 12px;border-radius:13px;background:rgba(11,23,32,.94);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.22);pointer-events:none;font-size:.78rem}.overview-tooltip.align-right{transform:translateX(calc(-100% - 12px))}.overview-tooltip time{display:block;color:rgba(255,255,255,.66);margin-bottom:6px}.overview-tooltip>div{display:grid;grid-template-columns:10px 1fr auto;gap:7px;align-items:center;padding:3px 0}.overview-tooltip i{width:8px;height:8px;flex-basis:8px}.overview-tooltip strong{font-size:.78rem}
.overview-chart-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px;margin-top:10px}.overview-summary-item{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border-radius:13px;background:var(--panel-2)}.overview-summary-item>i{margin-top:5px}.overview-summary-item span{display:flex;flex-direction:column;min-width:0}.overview-summary-item b{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-summary-item small{color:var(--muted);font-size:.67rem;margin-top:2px}.overview-summary-item strong{font-size:.78rem;margin-top:1px;font-weight:800}
html[data-theme="dark"] .overview-tooltip{background:rgba(245,248,250,.96);color:#10202a}html[data-theme="dark"] .overview-tooltip time{color:#65727b}
@media(max-width:900px){.overview-chart-card.wide{grid-column:auto}.overview-toolbar{align-items:flex-start;flex-direction:column}.overview-auto-refresh{white-space:normal}.overview-chart-heading{flex-direction:column;gap:6px}.overview-chart-heading>small{padding-top:0}.overview-chart-card{padding:17px}.overview-chart-canvas{min-height:245px}.overview-chart-svg{min-height:235px}}
@media(max-width:560px){.overview-hero{padding:40px 0 24px}.overview-range-switch{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.overview-range-switch button{width:100%}.overview-toolbar{padding:17px}.overview-stations{display:grid;grid-template-columns:1fr 1fr}.overview-station-chip{padding:9px 10px}.overview-chart-summary{grid-template-columns:1fr}.overview-chart-title p{font-size:.78rem}}

/* v0.2.64: hide overview metrics that cannot compare at least two stations */
.overview-chart-card[hidden]{display:none !important;}

/* v0.2.65 – Premium období a MIN/MAX značky v Přehledech */
.overview-range-switch a,
.overview-range-switch button{display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.overview-range-premium{border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--panel-2));color:var(--muted);font:inherit;font-weight:800;padding:9px 14px;border-radius:999px;transition:.16s ease}
.overview-range-premium:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.overview-range-premium span,.overview-premium-star{font-size:.72rem;font-weight:900;color:#b66a2d}
.overview-range-switch button.active .overview-premium-star,.overview-range-switch button:hover .overview-premium-star{color:#fff}
.overview-custom-range{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}
.overview-custom-title{font-size:.8rem;font-weight:850;color:var(--text);margin-right:2px}
.overview-custom-title b,.overview-custom-locked b{color:#b66a2d;font-size:.72rem}
.overview-custom-range label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem;font-weight:750}
.overview-custom-range input{border:1px solid var(--border);background:var(--panel-2);color:var(--text);font:inherit;font-size:.8rem;padding:8px 9px;border-radius:10px;color-scheme:light dark}
.overview-custom-range button{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-size:.8rem;font-weight:850;padding:8px 12px;border-radius:10px;cursor:pointer}
.overview-custom-range button:hover{filter:brightness(1.05)}
.overview-custom-locked{display:inline-flex;align-items:center;gap:9px;margin-top:12px;padding:9px 12px;border:1px dashed color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:11px;color:var(--muted);text-decoration:none;font-size:.8rem;font-weight:750;background:color-mix(in srgb,var(--accent) 4%,transparent)}
.overview-custom-locked:hover{border-color:var(--accent);color:var(--text)}
.overview-extreme-dot{stroke:var(--panel);stroke-width:2.2;vector-effect:non-scaling-stroke;pointer-events:none}
.overview-extreme-label{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:8.2px;font-weight:900;paint-order:stroke;stroke:var(--panel);stroke-width:3px;stroke-linejoin:round;pointer-events:none}
@media(max-width:700px){.overview-custom-range{display:grid;grid-template-columns:1fr 1fr}.overview-custom-title{grid-column:1/-1}.overview-custom-range label{display:grid;grid-template-columns:auto 1fr}.overview-custom-range button{grid-column:1/-1}.overview-custom-range input{width:100%;min-width:0}.overview-range-switch a{width:100%}}

@media (max-width: 380px) {
    .mobile-menu-label { display: none; }
    .mobile-menu-toggle { width: 36px; padding: 0; }
    .mobile-nav { grid-template-columns: 1fr; }
}

/* v0.2.69 — historický graf vzdálenosti bouřkové aktivity */
.lightning-history {
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--border);
}
.lightning-history-heading {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:12px;
}
.lightning-history-heading h3 {
    margin:0 0 5px;
    font-size:1.08rem;
}
.lightning-history-heading p {
    max-width:760px;
    margin:0;
    color:var(--muted);
    font-size:.88rem;
    line-height:1.5;
}
.lightning-range-switch { flex:0 0 auto; }
.lightning-distance-chart-card { padding:16px 17px 13px; }
.lightning-chart-icon {
    background:color-mix(in srgb,#f0a728 14%,var(--metric-bg));
}
.lightning-chart-note {
    margin:7px 0 0;
    color:var(--muted);
    font-size:.78rem;
    line-height:1.45;
}
.lightning-distance-canvas { min-height:270px; }
.lightning-distance-line {
    fill:none;
    stroke:#d79422;
    stroke-width:2.6;
    stroke-linecap:round;
    stroke-linejoin:round;
    vector-effect:non-scaling-stroke;
}
.lightning-distance-point {
    fill:#d79422;
    stroke:var(--panel);
    stroke-width:1.2;
    vector-effect:non-scaling-stroke;
}
.lightning-distance-extreme { fill:#c26f17; }
.lightning-distance-extreme-label { fill:#a65a0d; }
.lightning-distance-hover { fill:#d79422 !important; }
.lightning-nearby-threshold {
    stroke:color-mix(in srgb,#d94b4b 62%,transparent);
    stroke-width:1;
    stroke-dasharray:5 5;
    vector-effect:non-scaling-stroke;
}
.lightning-nearby-threshold-label {
    fill:color-mix(in srgb,#c33f3f 86%,var(--muted));
    font-family:Inter,ui-sans-serif,system-ui,sans-serif;
    font-size:8px;
    font-weight:800;
    paint-order:stroke;
    stroke:var(--panel);
    stroke-width:3px;
}
.lightning-distance-chart-card .tooltip-series i.primary { background:#d79422; }
.lightning-chart-free-note {
    margin:9px 2px 0;
    color:var(--muted);
    font-size:.76rem;
}
html[data-theme="dark"] .lightning-distance-line { stroke:#f4b54a; }
html[data-theme="dark"] .lightning-distance-point,
html[data-theme="dark"] .lightning-distance-hover { fill:#f4b54a !important; }
html[data-theme="dark"] .lightning-distance-extreme { fill:#f4b54a; }
html[data-theme="dark"] .lightning-distance-extreme-label { fill:#ffd27c; }
@media (max-width:820px) {
    .lightning-history-heading { align-items:flex-start; flex-direction:column; }
    .lightning-range-switch { margin-top:0; }
}
@media (max-width:560px) {
    .lightning-range-switch {
        display:grid;
        width:100%;
        grid-template-columns:repeat(3,1fr);
    }
    .lightning-range-switch button { padding:0 5px; font-size:10px; }
    .lightning-distance-canvas { min-height:230px; }
}
