/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* Veškeré styly layoutu jsou záměrně v wwwroot/app.css (jednotný stylesheet). */
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-igh9yw8vpv],
.components-reconnect-repeated-attempt-visible[b-igh9yw8vpv],
.components-reconnect-failed-visible[b-igh9yw8vpv],
.components-pause-visible[b-igh9yw8vpv],
.components-resume-failed-visible[b-igh9yw8vpv],
.components-rejoining-animation[b-igh9yw8vpv] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-retrying[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-failed[b-igh9yw8vpv],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-igh9yw8vpv] {
    display: block;
}


#components-reconnect-modal[b-igh9yw8vpv] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-igh9yw8vpv 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-igh9yw8vpv 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-igh9yw8vpv 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-igh9yw8vpv]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-igh9yw8vpv 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-igh9yw8vpv {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-igh9yw8vpv {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-igh9yw8vpv {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-igh9yw8vpv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-igh9yw8vpv] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-igh9yw8vpv] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-igh9yw8vpv] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-igh9yw8vpv] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-igh9yw8vpv] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-igh9yw8vpv] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-igh9yw8vpv 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-igh9yw8vpv] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-igh9yw8vpv {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ============================================================================
   Dashboard „Přehled".

   Pozn.: Blazor CSS isolation styluje jen vlastní značky této stránky.
   Karty (CardShell) a dlaždice (StatTileCard) mají vlastní scope, proto tady
   nastavujeme jen mřížky a obsah, který stránka sama vykresluje.
   ============================================================================ */

.dash[b-7v19gj8v89] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* ---------- Hlavička ---------- */

.dash-head[b-7v19gj8v89] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.dash-head-text h1[b-7v19gj8v89] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ms-text, #0f172a);
}

.dash-sub[b-7v19gj8v89] {
    margin: 0.25rem 0 0;
    font-size: 0.86rem;
    color: var(--ms-muted, #64748b);
}

.dash-head-actions[b-7v19gj8v89] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.dash-period[b-7v19gj8v89] {
    position: relative;
    display: inline-flex;
    align-items: center;
    background: var(--ms-surface, #ffffff);
    border: 1px solid var(--ms-border, #e6eaf1);
    border-radius: 9px;
    padding-left: 0.65rem;
}

.dash-period-icon[b-7v19gj8v89] {
    display: inline-flex;
    width: 16px;
    height: 16px;
    color: var(--ms-muted, #64748b);
    pointer-events: none;
}

.dash-period-icon svg[b-7v19gj8v89] {
    width: 100%;
    height: 100%;
}

.dash-period select[b-7v19gj8v89] {
    appearance: none;
    -webkit-appearance: none;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 550;
    color: var(--ms-text, #0f172a);
    background: transparent;
    border: none;
    border-radius: 9px;
    padding: 0.5rem 2rem 0.5rem 0.5rem;
    cursor: pointer;
    /* Šipka jako inline data: URI — žádný externí obrázek. */
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%2364748b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.6rem center;
    background-size: 12px 12px;
}

.dash-period select:focus-visible[b-7v19gj8v89] {
    outline: 2px solid var(--ms-accent, #2563eb);
    outline-offset: 1px;
}

.dash-btn[b-7v19gj8v89] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    border-radius: 9px;
    border: 1px solid var(--ms-border, #e6eaf1);
    background: var(--ms-surface, #ffffff);
    color: var(--ms-text, #334155);
    padding: 0.55rem 0.95rem;
    cursor: pointer;
}

.dash-btn svg[b-7v19gj8v89] {
    width: 15px;
    height: 15px;
}

.dash-btn:disabled[b-7v19gj8v89] {
    opacity: 0.55;
    cursor: not-allowed;
}

.dash-btn-primary[b-7v19gj8v89] {
    background: var(--ms-accent, #2563eb);
    border-color: var(--ms-accent, #2563eb);
    color: #ffffff;
}

.dash-btn-primary:hover[b-7v19gj8v89] {
    background: var(--ms-accent-hover, #1d4ed8);
    text-decoration: none;
}

.dash-btn:focus-visible[b-7v19gj8v89] {
    outline: 2px solid var(--ms-accent, #2563eb);
    outline-offset: 2px;
}

.dash-alert[b-7v19gj8v89] {
    border-radius: 10px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #b91c1c;
    padding: 0.7rem 1rem;
    font-size: 0.86rem;
}

/* ---------- Mřížky ---------- */

.dash-tiles[b-7v19gj8v89] {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1rem;
}

.dash-grid[b-7v19gj8v89] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
}

@media (max-width: 1500px) {
    .dash-tiles[b-7v19gj8v89] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .dash-grid[b-7v19gj8v89] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 680px) {
    .dash-tiles[b-7v19gj8v89] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 420px) {
    .dash-tiles[b-7v19gj8v89] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ---------- Segmentovaný přepínač období v hlavičce grafu ---------- */

.dash-seg[b-7v19gj8v89] {
    display: inline-flex;
    background: var(--ms-track, #f1f4f9);
    border-radius: 8px;
    padding: 2px;
    gap: 2px;
}

.dash-seg-btn[b-7v19gj8v89] {
    font-family: inherit;
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--ms-muted, #64748b);
    background: transparent;
    border: none;
    border-radius: 6px;
    padding: 0.3rem 0.65rem;
    cursor: pointer;
    white-space: nowrap;
}

.dash-seg-btn:hover[b-7v19gj8v89] {
    color: var(--ms-text, #0f172a);
}

.dash-seg-btn.is-active[b-7v19gj8v89] {
    background: var(--ms-surface, #ffffff);
    color: var(--ms-accent, #2563eb);
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
}

.dash-seg-btn:focus-visible[b-7v19gj8v89] {
    outline: 2px solid var(--ms-accent, #2563eb);
    outline-offset: 1px;
}

.dash-link[b-7v19gj8v89] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ms-accent, #2563eb);
    text-decoration: none;
}

.dash-link:hover[b-7v19gj8v89] {
    text-decoration: underline;
}

/* ---------- Doručitelnost: rozpis pod gauge ---------- */

.dash-breakdown[b-7v19gj8v89] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.6rem 1rem;
    margin: 1.25rem 0 0;
}

.dash-breakdown div[b-7v19gj8v89] {
    min-width: 0;
}

.dash-breakdown dt[b-7v19gj8v89] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.76rem;
    color: var(--ms-muted, #64748b);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dash-breakdown dd[b-7v19gj8v89] {
    margin: 0.1rem 0 0 0;
    font-size: 0.95rem;
    font-weight: 650;
    color: var(--ms-text, #0f172a);
    font-variant-numeric: tabular-nums;
}

/* Barevné tečky — sdílené rozpisem i seznamem událostí. */
.dash-dot[b-7v19gj8v89] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
    background: #94a3b8;
}

.dot-green[b-7v19gj8v89] { background: #16a34a; }
.dot-blue[b-7v19gj8v89] { background: #2563eb; }
.dot-red[b-7v19gj8v89] { background: #dc2626; }
.dot-amber[b-7v19gj8v89] { background: #d97706; }
.dot-violet[b-7v19gj8v89] { background: #7c3aed; }
.dot-teal[b-7v19gj8v89] { background: #0d9488; }
.dot-slate[b-7v19gj8v89] { background: #94a3b8; }

/* ---------- Serverový výkon ---------- */

.dash-meters[b-7v19gj8v89] {
    display: flex;
    flex-direction: column;
    gap: 1.05rem;
}

.dash-meter-head[b-7v19gj8v89] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.3rem;
}

.dash-meter-name[b-7v19gj8v89] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--ms-text, #334155);
}

.dash-meter-value[b-7v19gj8v89] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    font-size: 0.88rem;
    font-weight: 650;
    color: var(--ms-text, #0f172a);
    font-variant-numeric: tabular-nums;
}

.dash-meter-sub[b-7v19gj8v89] {
    font-size: 0.74rem;
    font-weight: 500;
    color: var(--ms-muted, #94a3b8);
}

/* ---------- Bezpečnostní přehled ---------- */

.dash-security[b-7v19gj8v89] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.dash-security-row[b-7v19gj8v89] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 0.15rem 0.75rem;
    padding: 0.55rem 0.6rem;
    border-radius: 9px;
    text-decoration: none;
    color: inherit;
}

.dash-security-row:hover[b-7v19gj8v89] {
    background: var(--ms-hover, #f6f8fb);
    text-decoration: none;
}

.dash-security-row:focus-visible[b-7v19gj8v89] {
    outline: 2px solid var(--ms-accent, #2563eb);
    outline-offset: -2px;
}

.dash-security-name[b-7v19gj8v89] {
    font-size: 0.87rem;
    font-weight: 600;
    color: var(--ms-text, #0f172a);
}

.dash-security-detail[b-7v19gj8v89] {
    grid-column: 1;
    font-size: 0.76rem;
    color: var(--ms-muted, #64748b);
}

.dash-badge[b-7v19gj8v89] {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    border-radius: 99px;
    padding: 0.2rem 0.6rem;
    white-space: nowrap;
}

.dash-badge.is-on[b-7v19gj8v89] {
    background: #e8f8ef;
    color: #15803d;
}

.dash-badge.is-off[b-7v19gj8v89] {
    background: #eef1f6;
    color: #64748b;
}

/* ---------- Poslední události ---------- */

.dash-events[b-7v19gj8v89] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.dash-events li[b-7v19gj8v89] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.dash-events .dash-dot[b-7v19gj8v89] {
    margin-top: 0.4rem;
}

.dash-event-body[b-7v19gj8v89] {
    min-width: 0;
}

.dash-event-title[b-7v19gj8v89] {
    margin: 0;
    font-size: 0.85rem;
    color: var(--ms-text, #1e293b);
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: baseline;
}

.dash-event-title strong[b-7v19gj8v89] {
    font-weight: 600;
}

.dash-event-target[b-7v19gj8v89] {
    color: var(--ms-muted, #64748b);
    word-break: break-all;
}

.dash-event-meta[b-7v19gj8v89] {
    margin: 0.15rem 0 0;
    display: flex;
    gap: 0.35rem;
    font-size: 0.75rem;
    color: var(--ms-muted, #94a3b8);
    flex-wrap: wrap;
}

/* ---------- Rychlé akce ---------- */

.dash-actions[b-7v19gj8v89] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.5rem;
}

.dash-action[b-7v19gj8v89] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.6rem;
    border-radius: 10px;
    border: 1px solid transparent;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.dash-action:hover[b-7v19gj8v89] {
    background: var(--ms-hover, #f6f8fb);
    border-color: var(--ms-border, #e6eaf1);
    text-decoration: none;
}

.dash-action:focus-visible[b-7v19gj8v89] {
    outline: 2px solid var(--ms-accent, #2563eb);
    outline-offset: -2px;
}

@media (prefers-reduced-motion: reduce) {
    .dash-action[b-7v19gj8v89] {
        transition: none;
    }
}

.dash-action-icon[b-7v19gj8v89] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 10px;
}

.dash-action-icon svg[b-7v19gj8v89] {
    width: 18px;
    height: 18px;
}

.dash-action-icon.accent-blue[b-7v19gj8v89] { background: #eff4ff; color: #2563eb; }
.dash-action-icon.accent-green[b-7v19gj8v89] { background: #e8f8ef; color: #16a34a; }
.dash-action-icon.accent-teal[b-7v19gj8v89] { background: #e6f7f5; color: #0d9488; }
.dash-action-icon.accent-amber[b-7v19gj8v89] { background: #fdf3e2; color: #d97706; }

.dash-action-text[b-7v19gj8v89] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dash-action-text strong[b-7v19gj8v89] {
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--ms-text, #0f172a);
}

.dash-action-text span[b-7v19gj8v89] {
    font-size: 0.75rem;
    color: var(--ms-muted, #64748b);
}

/* ---------- Pomocné ---------- */

.dash-sr-only[b-7v19gj8v89] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---------- Tmavý motiv ---------- */

:root[data-theme="dark"] .dash-period[b-7v19gj8v89],
:root[data-theme="dark"] .dash-btn[b-7v19gj8v89] {
    background: var(--ms-surface, #131b2a);
    border-color: var(--ms-border, #253044);
    color: var(--ms-text, #e2e8f0);
}

:root[data-theme="dark"] .dash-btn-primary[b-7v19gj8v89] {
    background: var(--ms-accent, #2563eb);
    border-color: var(--ms-accent, #2563eb);
    color: #ffffff;
}

:root[data-theme="dark"] .dash-seg[b-7v19gj8v89] {
    background: var(--ms-track, #1c2536);
}

:root[data-theme="dark"] .dash-seg-btn.is-active[b-7v19gj8v89] {
    background: var(--ms-surface, #131b2a);
    box-shadow: none;
}

:root[data-theme="dark"] .dash-alert[b-7v19gj8v89] {
    background: rgba(220, 38, 38, 0.12);
    border-color: rgba(220, 38, 38, 0.4);
    color: #fca5a5;
}

:root[data-theme="dark"] .dash-badge.is-on[b-7v19gj8v89] {
    background: rgba(22, 163, 74, 0.16);
    color: #4ade80;
}

:root[data-theme="dark"] .dash-badge.is-off[b-7v19gj8v89] {
    background: rgba(148, 163, 184, 0.14);
    color: #94a3b8;
}

:root[data-theme="dark"] .dash-security-row:hover[b-7v19gj8v89],
:root[data-theme="dark"] .dash-action:hover[b-7v19gj8v89] {
    background: var(--ms-hover, rgba(148, 163, 184, 0.08));
}
/* /Components/Widgets/CardShell.razor.rz.scp.css */
/* Karta — bílá plocha, 1px okraj, měkký stín, radius 12px. */

.ms-card[b-wg7uoileq3] {
    display: flex;
    flex-direction: column;
    background: var(--ms-surface, #ffffff);
    border: 1px solid var(--ms-border, #e6eaf1);
    border-radius: 12px;
    box-shadow: var(--ms-shadow, 0 1px 2px rgba(16, 24, 40, 0.04), 0 4px 16px rgba(16, 24, 40, 0.04));
    padding: 1.15rem 1.25rem 1.25rem;
    min-width: 0;
}

/* Šířky v mřížce dashboardu; pod 1100 px se stejně vše sbalí na 1 sloupec. */
.ms-card.span-2[b-wg7uoileq3] {
    grid-column: span 2;
}

.ms-card.span-3[b-wg7uoileq3] {
    grid-column: span 3;
}

@media (max-width: 1100px) {
    .ms-card.span-2[b-wg7uoileq3],
    .ms-card.span-3[b-wg7uoileq3] {
        grid-column: span 1;
    }
}

.ms-card-head[b-wg7uoileq3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.ms-card-headings[b-wg7uoileq3] {
    min-width: 0;
}

.ms-card-title[b-wg7uoileq3] {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    color: var(--ms-text, #0f172a);
}

.ms-card-sub[b-wg7uoileq3] {
    margin: 0.2rem 0 0;
    font-size: 0.8rem;
    color: var(--ms-muted, #64748b);
}

.ms-card-action[b-wg7uoileq3] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.ms-card-body[b-wg7uoileq3] {
    flex: 1;
    min-width: 0;
}

.ms-card-foot[b-wg7uoileq3] {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--ms-border, #eef1f6);
    font-size: 0.8rem;
    color: var(--ms-muted, #64748b);
}

/* ---- Skeletony ---- */

.ms-skeleton-stack[b-wg7uoileq3] {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.4rem 0 0.9rem;
}

.ms-skeleton[b-wg7uoileq3] {
    display: block;
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg,
        var(--ms-skeleton, #eef1f6) 25%,
        var(--ms-skeleton-hi, #f7f9fc) 50%,
        var(--ms-skeleton, #eef1f6) 75%);
    background-size: 240% 100%;
    animation: ms-skeleton-shimmer-b-wg7uoileq3 1.4s ease-in-out infinite;
}

@keyframes ms-skeleton-shimmer-b-wg7uoileq3 {
    from { background-position: 140% 0; }
    to { background-position: -40% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .ms-skeleton[b-wg7uoileq3] {
        animation: none;
        background: var(--ms-skeleton, #eef1f6);
    }
}

.ms-sr-only[b-wg7uoileq3] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

:root[data-theme="dark"] .ms-card[b-wg7uoileq3] {
    background: var(--ms-surface, #131b2a);
    border-color: var(--ms-border, #253044);
    box-shadow: none;
}
/* /Components/Widgets/EmptyState.razor.rz.scp.css */
/* Prázdný stav — vzdušný, tichý, bez dramatu. */

.ms-empty[b-3bgflud99y] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.35rem;
    padding: 2rem 1.25rem;
    min-height: 140px;
    border: 1px dashed var(--ms-border, #e3e8ef);
    border-radius: 10px;
    background: var(--ms-empty-bg, #fafbfd);
}

.ms-empty.is-compact[b-3bgflud99y] {
    min-height: 0;
    padding: 1.1rem 0.9rem;
}

.ms-empty-icon[b-3bgflud99y] {
    width: 34px;
    height: 34px;
    color: var(--ms-muted, #94a3b8);
    margin-bottom: 0.15rem;
}

.ms-empty.is-compact .ms-empty-icon[b-3bgflud99y] {
    width: 26px;
    height: 26px;
}

/* ::deep kvůli vlastní ikoně předané z rodiče (má jiný CSS scope). */
.ms-empty-icon[b-3bgflud99y]  svg {
    width: 100%;
    height: 100%;
    display: block;
}

.ms-empty-title[b-3bgflud99y] {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--ms-text, #1e293b);
}

.ms-empty-note[b-3bgflud99y] {
    margin: 0;
    max-width: 42ch;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--ms-muted, #64748b);
}

/* Tmavý motiv (přepínač v topbaru nastavuje data-theme na <html>). */
:root[data-theme="dark"] .ms-empty[b-3bgflud99y] {
    background: var(--ms-empty-bg, rgba(148, 163, 184, 0.06));
    border-color: var(--ms-border, #2b3648);
}
/* /Components/Widgets/GaugeCard.razor.rz.scp.css */
/* Kruhový ukazatel — prstenec + hodnota uprostřed. */

.ms-gauge[b-xpub6mzrcd] {
    position: relative;
    width: var(--gauge-size, 168px);
    max-width: 100%;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
}

.ms-gauge svg[b-xpub6mzrcd] {
    display: block;
    width: 100%;
    height: 100%;
}

.ms-gauge-track[b-xpub6mzrcd] {
    stroke: var(--ms-gauge-track, #eef1f6);
}

.ms-gauge-value[b-xpub6mzrcd] {
    stroke: var(--gauge-color, #16a34a);
    transition: stroke-dashoffset 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
    .ms-gauge-value[b-xpub6mzrcd] {
        transition: none;
    }
}

.ms-gauge-center[b-xpub6mzrcd] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    text-align: center;
    padding: 0 12%;
}

.ms-gauge-percent[b-xpub6mzrcd] {
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.05;
    color: var(--ms-text, #0f172a);
    font-variant-numeric: tabular-nums;
}

.ms-gauge-caption[b-xpub6mzrcd] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--gauge-color, #16a34a);
}

:root[data-theme="dark"] .ms-gauge-track[b-xpub6mzrcd] {
    stroke: var(--ms-gauge-track, #253044);
}
/* /Components/Widgets/LineChart.razor.rz.scp.css */
/* Spojnicový graf — tenké linky, jemná mřížka, popisky v šedé. */

.ms-chart[b-r90n5tdyvu] {
    width: 100%;
    min-width: 0;
}

.ms-chart-svg[b-r90n5tdyvu] {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

.ms-grid[b-r90n5tdyvu] {
    stroke: var(--ms-grid, #eef1f6);
    stroke-width: 1;
    shape-rendering: crispEdges;
}

.ms-axis-y[b-r90n5tdyvu],
.ms-axis-x[b-r90n5tdyvu] {
    font-family: inherit;
    font-size: 11px;
    fill: var(--ms-muted, #94a3b8);
}

.ms-line[b-r90n5tdyvu] {
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ms-dot[b-r90n5tdyvu] {
    stroke: var(--ms-surface, #ffffff);
    stroke-width: 1.5;
}

/* ---- Legenda ---- */

.ms-legend[b-r90n5tdyvu] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 1.25rem;
    list-style: none;
    margin: 0.85rem 0 0;
    padding: 0;
}

.ms-legend li[b-r90n5tdyvu] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--ms-muted, #64748b);
}

.ms-legend-dot[b-r90n5tdyvu] {
    width: 9px;
    height: 9px;
    border-radius: 3px;
    flex: none;
    transform: translateY(1px);
}

.ms-legend-name[b-r90n5tdyvu] {
    color: var(--ms-text, #334155);
    font-weight: 550;
}

.ms-legend-total[b-r90n5tdyvu] {
    font-variant-numeric: tabular-nums;
    color: var(--ms-muted, #94a3b8);
}

:root[data-theme="dark"] .ms-grid[b-r90n5tdyvu] {
    stroke: var(--ms-grid, #253044);
}

:root[data-theme="dark"] .ms-dot[b-r90n5tdyvu] {
    stroke: var(--ms-surface, #131b2a);
}
/* /Components/Widgets/RankedBars.razor.rz.scp.css */
/* Žebříček s vodorovnými pruhy. */

.ms-ranked[b-1pb7pouh9l] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.ms-ranked-row[b-1pb7pouh9l] {
    min-width: 0;
}

.ms-ranked-head[b-1pb7pouh9l] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.ms-ranked-label[b-1pb7pouh9l] {
    display: flex;
    align-items: baseline;
    gap: 0.45rem;
    min-width: 0;
    font-size: 0.86rem;
    color: var(--ms-text, #1e293b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-ranked-rank[b-1pb7pouh9l] {
    flex: none;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--ms-muted, #94a3b8);
    font-variant-numeric: tabular-nums;
    min-width: 1.1em;
}

.ms-ranked-value[b-1pb7pouh9l] {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    flex: none;
    font-size: 0.82rem;
    color: var(--ms-muted, #64748b);
    font-variant-numeric: tabular-nums;
}

.ms-ranked-value strong[b-1pb7pouh9l] {
    font-weight: 650;
    color: var(--ms-text, #0f172a);
}

.ms-ranked-share[b-1pb7pouh9l] {
    color: var(--ms-muted, #94a3b8);
}

.ms-ranked-track[b-1pb7pouh9l] {
    height: 8px;
    border-radius: 99px;
    background: var(--ms-track, #eef1f6);
    overflow: hidden;
}

.ms-ranked-fill[b-1pb7pouh9l] {
    display: block;
    height: 100%;
    border-radius: 99px;
    transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
    .ms-ranked-fill[b-1pb7pouh9l] {
        transition: none;
    }
}

.ms-ranked-detail[b-1pb7pouh9l] {
    margin: 0.3rem 0 0;
    font-size: 0.75rem;
    color: var(--ms-muted, #94a3b8);
}

:root[data-theme="dark"] .ms-ranked-track[b-1pb7pouh9l] {
    background: var(--ms-track, #253044);
}
/* /Components/Widgets/Sparkline.razor.rz.scp.css */
/* Mini křivka — roztahuje se na šířku rodiče, výška je pevná. */

.ms-spark[b-qm564f03gi] {
    display: block;
    width: 100%;
    height: 30px;
}

.ms-spark-empty[b-qm564f03gi] {
    display: block;
    width: 100%;
    height: 30px;
    border-radius: 6px;
    background: repeating-linear-gradient(
        -45deg,
        var(--ms-skeleton, #f1f4f9),
        var(--ms-skeleton, #f1f4f9) 5px,
        transparent 5px,
        transparent 10px);
    opacity: 0.7;
}
/* /Components/Widgets/StatTileCard.razor.rz.scp.css */
/* Dlaždice statistiky — bílá karta, velké číslo, ikona v tónovaném kroužku. */

.ms-tile[b-fl5jirg57s] {
    position: relative;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    background: var(--ms-surface, #ffffff);
    border: 1px solid var(--ms-border, #e6eaf1);
    border-radius: 12px;
    box-shadow: var(--ms-shadow, 0 1px 2px rgba(16, 24, 40, 0.04), 0 4px 16px rgba(16, 24, 40, 0.04));
    padding: 1rem 1.1rem 1.05rem;
    min-width: 0;
    transition: border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.ms-tile.is-linked:hover[b-fl5jirg57s] {
    border-color: var(--ms-accent, #2563eb);
    transform: translateY(-1px);
}

.ms-tile:has(.ms-tile-link:focus-visible)[b-fl5jirg57s] {
    outline: 2px solid var(--ms-accent, #2563eb);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .ms-tile[b-fl5jirg57s] {
        transition: none;
    }

    .ms-tile.is-linked:hover[b-fl5jirg57s] {
        transform: none;
    }
}

.ms-tile-main[b-fl5jirg57s] {
    min-width: 0;
}

.ms-tile-label[b-fl5jirg57s] {
    margin: 0 0 0.4rem;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--ms-muted, #64748b);
}

/* Roztažený odkaz: klikací je celá dlaždice, v a11y stromu jen jeden odkaz. */
.ms-tile-link[b-fl5jirg57s] {
    color: inherit;
    text-decoration: none;
}

.ms-tile-link[b-fl5jirg57s]::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 12px;
}

.ms-tile-link:focus-visible[b-fl5jirg57s] {
    outline: none;
}

.ms-tile-value[b-fl5jirg57s] {
    margin: 0;
    font-size: 1.72rem;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ms-text, #0f172a);
    font-variant-numeric: tabular-nums;
    word-break: break-word;
}

.ms-tile-value.is-empty[b-fl5jirg57s] {
    color: var(--ms-muted, #94a3b8);
    font-weight: 600;
}

.ms-tile-note[b-fl5jirg57s] {
    margin: 0.3rem 0 0;
    font-size: 0.74rem;
    line-height: 1.4;
    color: var(--ms-muted, #94a3b8);
    max-width: 34ch;
}

.ms-tile-detail[b-fl5jirg57s] {
    margin: 0.35rem 0 0;
    font-size: 0.76rem;
    color: var(--ms-muted, #64748b);
}

.ms-tile-change[b-fl5jirg57s] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0.45rem 0 0;
    font-size: 0.76rem;
    flex-wrap: wrap;
}

.ms-tile-change strong[b-fl5jirg57s] {
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}

.ms-tile-change.is-up[b-fl5jirg57s] {
    color: var(--ms-ok, #15803d);
}

.ms-tile-change.is-down[b-fl5jirg57s] {
    color: var(--ms-danger, #dc2626);
}

.ms-tile-arrow[b-fl5jirg57s] {
    display: inline-flex;
    width: 12px;
    height: 12px;
}

.ms-tile-arrow svg[b-fl5jirg57s] {
    width: 100%;
    height: 100%;
}

.ms-tile-caption[b-fl5jirg57s] {
    color: var(--ms-muted, #94a3b8);
    font-weight: 500;
}

/* Ikona v tónovaném kroužku */
.ms-tile-icon[b-fl5jirg57s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--tile-soft, #eff4ff);
    color: var(--tile-strong, #2563eb);
    box-shadow: 0 0 0 5px var(--tile-ring, rgba(37, 99, 235, 0.07));
}

/* ::deep — ikona přichází jako RenderFragment z rodiče, má tedy cizí scope. */
.ms-tile-icon[b-fl5jirg57s]  svg {
    width: 20px;
    height: 20px;
    display: block;
}

.ms-tile-skeleton[b-fl5jirg57s] {
    display: block;
    width: 90px;
    height: 26px;
    border-radius: 7px;
    background: var(--ms-skeleton, #eef1f6);
}

.ms-sr-only[b-fl5jirg57s] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ---- Barevné tóny ikon ---- */

.accent-blue[b-fl5jirg57s] {
    --tile-soft: #eff4ff;
    --tile-strong: #2563eb;
    --tile-ring: rgba(37, 99, 235, 0.07);
}

.accent-indigo[b-fl5jirg57s] {
    --tile-soft: #eef0ff;
    --tile-strong: #4f46e5;
    --tile-ring: rgba(79, 70, 229, 0.07);
}

.accent-green[b-fl5jirg57s] {
    --tile-soft: #e8f8ef;
    --tile-strong: #16a34a;
    --tile-ring: rgba(22, 163, 74, 0.07);
}

.accent-red[b-fl5jirg57s] {
    --tile-soft: #fdeceb;
    --tile-strong: #dc2626;
    --tile-ring: rgba(220, 38, 38, 0.07);
}

.accent-amber[b-fl5jirg57s] {
    --tile-soft: #fdf3e2;
    --tile-strong: #d97706;
    --tile-ring: rgba(217, 119, 6, 0.07);
}

.accent-violet[b-fl5jirg57s] {
    --tile-soft: #f3edfe;
    --tile-strong: #7c3aed;
    --tile-ring: rgba(124, 58, 237, 0.07);
}

.accent-slate[b-fl5jirg57s] {
    --tile-soft: #eef1f6;
    --tile-strong: #475569;
    --tile-ring: rgba(71, 85, 105, 0.07);
}

:root[data-theme="dark"] .ms-tile[b-fl5jirg57s] {
    background: var(--ms-surface, #131b2a);
    border-color: var(--ms-border, #253044);
    box-shadow: none;
}

:root[data-theme="dark"] .ms-tile-icon[b-fl5jirg57s] {
    background: color-mix(in srgb, var(--tile-strong) 18%, transparent);
    box-shadow: none;
}
