@import '_content/Blazored.Modal/Blazored.Modal.bundle.scp.css';
@import '_content/Blazored.Toast/Blazored.Toast.bundle.scp.css';
@import '_content/BlazorXTabs/BlazorXTabs.plh16247r9.bundle.scp.css';
@import '_content/Havit.Blazor.Components.Web.Bootstrap/Havit.Blazor.Components.Web.Bootstrap.t732su9vui.bundle.scp.css';
@import '_content/Megacentral.Blazor/Megacentral.Blazor.nslzdpjuke.bundle.scp.css';
@import '_content/Microsoft.AspNetCore.Components.QuickGrid/Microsoft.AspNetCore.Components.QuickGrid.boiwgh0w5b.bundle.scp.css';

/* /Components/Common/AppEmptyState.razor.rz.scp.css */
.app-empty-state[b-b9vinpxjm2] {
    min-height: 18rem;
    padding: 2rem 1.5rem;
    text-align: center;
}

.app-empty-state__icon[b-b9vinpxjm2] {
    width: 4.5rem;
    height: 4.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 1.6rem;
    color: var(--bs-primary);
    background: rgba(var(--bs-primary-rgb), 0.08);
}

.app-empty-state__title[b-b9vinpxjm2] {
    font-size: 1.4rem;
    line-height: 1.15;
    font-weight: 620;
    letter-spacing: -.02em;
}

.app-empty-state__description[b-b9vinpxjm2] {
    max-width: 34rem;
    color: rgba(var(--bs-body-color-rgb), 0.72);
    line-height: 1.55;
}

@media (max-width: 767.98px) {
    .app-empty-state[b-b9vinpxjm2] {
        min-height: 14rem;
        padding-inline: 1rem;
    }

    .app-empty-state__title[b-b9vinpxjm2] {
        font-size: 1.15rem;
    }
}
/* /Components/Feedback/FeedbackComments.razor.rz.scp.css */
.item-comments[b-w3hjc5if0i] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.item-comments-list[b-w3hjc5if0i] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.item-comment[b-w3hjc5if0i] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    position: relative;
}

.item-comment:hover .item-comment-delete[b-w3hjc5if0i] {
    opacity: 0.5 !important;
}

.item-comment:hover .item-comment-delete:hover[b-w3hjc5if0i] {
    opacity: 1 !important;
}

.item-comment-avatar[b-w3hjc5if0i] {
    flex-shrink: 0;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50%;
}

.item-comment-body[b-w3hjc5if0i] {
    flex: 1;
    background: var(--bs-secondary-bg);
    border-radius: 0.5rem;
    padding: 0.4rem 0.7rem;
    min-width: 0;
}

.item-comment-meta[b-w3hjc5if0i] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.1rem;
}

.item-comment-author[b-w3hjc5if0i] {
    font-weight: 600;
    font-size: 0.8rem;
}

.item-comment-time[b-w3hjc5if0i] {
    font-size: 0.75rem;
}

.item-comment-answer-badge[b-w3hjc5if0i] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-success) 15%, transparent);
    color: var(--bs-success);
    font-size: 0.72rem;
    font-weight: 600;
}

.item-comment-answer-inline[b-w3hjc5if0i] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-primary) 10%, transparent);
    color: var(--bs-primary);
    font-size: 0.72rem;
    font-weight: 600;
}

.item-comment-answer-inline:hover[b-w3hjc5if0i] {
    background: color-mix(in srgb, var(--bs-primary) 18%, transparent);
    color: var(--bs-primary);
}

.item-comment-text[b-w3hjc5if0i] {
    font-size: 0.875rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.item-comment-delete[b-w3hjc5if0i] {
    flex-shrink: 0;
    transition: opacity 0.15s;
    line-height: 1;
    margin-top: 0.5rem;
}

.item-comments-input[b-w3hjc5if0i] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.25rem;
}

.item-comments-input-inner[b-w3hjc5if0i] {
    flex: 1;
    position: relative;
}

.item-comments-textbox[b-w3hjc5if0i] {
    min-height: 38px;
    transition: min-height 0.12s ease;
}

.item-comments-textbox-expanded[b-w3hjc5if0i] {
    min-height: 86px;
    padding-right: 3rem;
}

.item-comments-send[b-w3hjc5if0i] {
    position: absolute;
    right: 4px;
    bottom: 4px;
    padding: 2px 8px;
    font-size: 0.8rem;
}
/* /Components/Feedback/FeedbackList.razor.rz.scp.css */
.feedback-list[b-2l6w6zvwy9] {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    /* overflow: hidden zde nesmí být - useknulo by rozbalené menu (např. Status dropdown u jediné položky) přesahující přes okraj listu. Zaoblení rohů řešíme na první/poslední položce. */
}

.feedback-list > :first-child[b-2l6w6zvwy9] >  .feedback-item {
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
}

.feedback-list > :last-child[b-2l6w6zvwy9] >  .feedback-item {
    border-bottom-left-radius: 0.5rem;
    border-bottom-right-radius: 0.5rem;
}

[b-2l6w6zvwy9] .feedback-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    cursor: pointer;
    transition: background 0.1s;
    background: var(--bs-body-bg);
}

.feedback-list > :last-child[b-2l6w6zvwy9] >  .feedback-item {
    border-bottom: none;
}

[b-2l6w6zvwy9] .feedback-item:hover {
    background: var(--bs-btn-hover-bg);
}

[b-2l6w6zvwy9] .feedback-item.expanded {
    background: var(--bs-btn-hover-bg);
    border-bottom: none;
}

.feedback-upvote[b-2l6w6zvwy9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.1rem;
    min-width: 36px;
    padding: 0.3rem 0.4rem;
    --border: 1px solid var(--bs-border-color);
    --border-radius: 0.375rem;
    background: transparent;
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    cursor: pointer;
    transition: all 0.15s;
    flex-shrink: 0;
}

.feedback-upvote:hover[b-2l6w6zvwy9] {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.feedback-upvote.upvoted[b-2l6w6zvwy9] {
    border-color: var(--bs-primary);
    background: color-mix(in srgb, var(--bs-primary) 10%, transparent);
    color: var(--bs-primary);
    font-weight: 600;
}

[b-2l6w6zvwy9] .feedback-item-content {
    flex: 1;
    min-width: 0;
}

[b-2l6w6zvwy9] .feedback-item-row1 {
    font-size: 0.78rem;
}

.feedback-item-title[b-2l6w6zvwy9] {
    font-size: 0.9rem;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-2l6w6zvwy9] .feedback-item.unread .feedback-item-title {
    font-weight: 700;
}

.feedback-item-date[b-2l6w6zvwy9],
.feedback-item-author[b-2l6w6zvwy9] {
    font-size: 0.78rem;
}

.feedback-type-badge[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    font-weight: 500;
}

.feedback-type-badge.type-bug[b-2l6w6zvwy9] {
    background: color-mix(in srgb, var(--bs-danger) 15%, transparent);
    color: var(--bs-danger);
}

.feedback-type-badge.type-idea[b-2l6w6zvwy9] {
    background: color-mix(in srgb, var(--bs-primary) 15%, transparent);
    color: var(--bs-primary);
}

.feedback-type-badge.type-ux[b-2l6w6zvwy9] {
    background: color-mix(in srgb, var(--bs-warning) 15%, transparent);
    color: var(--bs-warning);
}

.feedback-status-dropdown-wrap[b-2l6w6zvwy9] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
}

[b-2l6w6zvwy9] .feedback-status-dropdown-button {
    min-width: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    box-shadow: none;
}

[b-2l6w6zvwy9] .feedback-status-dropdown-button:hover,
[b-2l6w6zvwy9] .feedback-status-dropdown-button:focus,
[b-2l6w6zvwy9] .feedback-status-dropdown-button:active {
    background: transparent;
    color: inherit;
    box-shadow: none;
}

.feedback-status-dropdown-trigger[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1rem;
    border-radius: 0.25rem;
    border: 1px solid transparent;
    white-space: nowrap;
    line-height: 1;
    margin-top: 10px;
}

.feedback-status-dropdown-trigger.status-open[b-2l6w6zvwy9] {
    color: var(--bs-info);
}

.feedback-status-dropdown-trigger.status-inprogress[b-2l6w6zvwy9] {
    color: var(--bs-warning);
}

.feedback-status-dropdown-trigger.status-done[b-2l6w6zvwy9] {
    color: var(--bs-success);
}

.feedback-status-dropdown-trigger.status-declined[b-2l6w6zvwy9] {
    color: var(--bs-secondary-color);
    opacity: 0.65;
}

.feedback-status-dropdown-trigger-icon[b-2l6w6zvwy9] {
    font-size: 1.45rem;
    line-height: 1;
}

.feedback-status-dropdown-item[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
}

.feedback-status-dropdown-item-icon[b-2l6w6zvwy9] {
    width: 1rem;
}

.feedback-private-badge[b-2l6w6zvwy9] {
    font-size: 0.75rem;
    opacity: 0.6;
}

/* ── Priority dropdown ───────────────────────────────────────── */

.feedback-priority-dropdown-wrap[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
}

[b-2l6w6zvwy9] .feedback-priority-dropdown-button {
    min-width: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    box-shadow: none;
}

[b-2l6w6zvwy9] .feedback-priority-dropdown-button:hover,
[b-2l6w6zvwy9] .feedback-priority-dropdown-button:focus,
[b-2l6w6zvwy9] .feedback-priority-dropdown-button:active {
    background: transparent;
    color: inherit;
    box-shadow: none;
}

.feedback-priority-dropdown-trigger[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.05rem 0.1rem;
    border-radius: 0.25rem;
    border: 1px solid transparent;
    white-space: nowrap;
    line-height: 1;
    margin-top: 0;
    transform: translateY(-1px);
}

.feedback-priority-dropdown-trigger.priority-low[b-2l6w6zvwy9] {
    color: var(--bs-info);
}

.feedback-priority-dropdown-trigger.priority-medium[b-2l6w6zvwy9] {
    color: var(--bs-warning);
}

.feedback-priority-dropdown-trigger.priority-high[b-2l6w6zvwy9] {
    color: var(--bs-danger);
}

.feedback-priority-dropdown-trigger-icon[b-2l6w6zvwy9] {
    font-size: 1.1rem;
    line-height: 1;
}

.feedback-priority-dropdown-item[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
}

.feedback-priority-dropdown-item-icon[b-2l6w6zvwy9] {
    width: 1rem;
}

/* ── Assignee badge ──────────────────────────────────────────── */

.feedback-assignee-badge[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: 0.25rem;
    font-size: 0.75rem;
    background: color-mix(in srgb, var(--bs-success) 12%, transparent);
    color: var(--bs-success);
}

/* ── Assignee dropdown v admin row ───────────────────────────── */

[b-2l6w6zvwy9] .feedback-assignee-dropdown {
    min-width: 140px;
}

.feedback-comments-btn[b-2l6w6zvwy9] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.5rem;
    border: none;
    background: transparent;
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
    cursor: pointer;
    border-radius: 0.375rem;
    transition: all 0.15s;
}

.feedback-comments-btn:hover[b-2l6w6zvwy9],
.feedback-comments-btn.active[b-2l6w6zvwy9] {
    color: var(--bs-primary);
    background: color-mix(in srgb, var(--bs-primary) 8%, transparent);
}

.feedback-detail[b-2l6w6zvwy9] {
    padding: 0.75rem 1rem 1rem 3.5rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-btn-hover-bg);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.feedback-detail-text[b-2l6w6zvwy9] {
    font-size: 0.875rem;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--bs-body-color);
    opacity: 0.85;
}

.feedback-screenshot-link[b-2l6w6zvwy9] {
    display: inline-block;
}

.feedback-screenshot[b-2l6w6zvwy9] {
    max-height: 180px;
    border-radius: 0.375rem;
    border: 1px solid var(--bs-border-color);
    object-fit: contain;
}

[b-2l6w6zvwy9] .feedback-admin-row {
    padding-top: 0.1rem;
}

.feedback-chip[b-2l6w6zvwy9] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 1rem;
    font-size: 0.8rem;
    border: 1px solid var(--bs-border-color);
    background: transparent;
    color: var(--bs-body-color);
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
    line-height: 1.5;
}

.feedback-chip:hover[b-2l6w6zvwy9] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
}

.feedback-chip.active[b-2l6w6zvwy9] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

[b-2l6w6zvwy9] .feedback-empty {
    padding: 2.5rem;
}
/* /Components/Feedback/ItemComments.razor.rz.scp.css */
.item-comments[b-18zkeoz5i7] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.item-comments-list[b-18zkeoz5i7] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.item-comment[b-18zkeoz5i7] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    position: relative;
}

.item-comment:hover .item-comment-delete[b-18zkeoz5i7] {
    opacity: 0.5 !important;
}

.item-comment:hover .item-comment-delete:hover[b-18zkeoz5i7] {
    opacity: 1 !important;
}

.item-comment-avatar[b-18zkeoz5i7] {
    flex-shrink: 0;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50%;
}

.item-comment-body[b-18zkeoz5i7] {
    flex: 1;
    background: var(--bs-secondary-bg);
    border-radius: 0.5rem;
    padding: 0.4rem 0.7rem;
    min-width: 0;
}

.item-comment-meta[b-18zkeoz5i7] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.1rem;
}

.item-comment-author[b-18zkeoz5i7] {
    font-weight: 600;
    font-size: 0.8rem;
}

.item-comment-time[b-18zkeoz5i7] {
    font-size: 0.75rem;
}

.item-comment-text[b-18zkeoz5i7] {
    font-size: 0.875rem;
    white-space: pre-wrap;
    word-break: break-word;
}

.item-comment-delete[b-18zkeoz5i7] {
    flex-shrink: 0;
    transition: opacity 0.15s;
    line-height: 1;
    margin-top: 0.5rem;
}

.item-comments-input[b-18zkeoz5i7] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.25rem;
}

.item-comments-input-inner[b-18zkeoz5i7] {
    flex: 1;
    position: relative;
}

.item-comments-textbox[b-18zkeoz5i7] {
    min-height: 38px;
    transition: min-height 0.12s ease;
}

.item-comments-textbox-expanded[b-18zkeoz5i7] {
    min-height: 86px;
    padding-right: 3rem;
}

.item-comments-send[b-18zkeoz5i7] {
    position: absolute;
    right: 4px;
    bottom: 4px;
    padding: 2px 8px;
    font-size: 0.8rem;
}
/* /Components/Icons/IconSelector.razor.rz.scp.css */
/* Icon Selector - Minimalistický výběr Font Awesome ikon */

.icon-selector[b-oqdcdntzmr] {
    padding: 20px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
}

.icon-grid[b-oqdcdntzmr] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 10px;
    overflow-y: auto;
    max-height: 500px;
    padding: 10px;
}

.icon-item[b-oqdcdntzmr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 15px 10px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.icon-item:hover[b-oqdcdntzmr] {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color-translucent);
}

.icon-item.selected[b-oqdcdntzmr] {
    background-color: var(--bs-primary);
    color: var(--bs-white);
    border-color: var(--bs-primary);
}

/* Dark mode specifické úpravy */
[data-bs-theme="dark"] .icon-item[b-oqdcdntzmr] {
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .icon-item:hover[b-oqdcdntzmr] {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .icon-item.selected[b-oqdcdntzmr] {
    background-color: var(--bs-primary);
    color: var(--bs-white);
}

.icon-item i[b-oqdcdntzmr] {
    font-size: 24px;
    margin-bottom: 5px;
}

.icon-name[b-oqdcdntzmr] {
    font-size: 10px;
    text-align: center;
    word-break: break-word;
    color: inherit;
}

/* Scrollbar styling pro lepší vzhled */
.icon-grid[b-oqdcdntzmr]::-webkit-scrollbar {
    width: 8px;
}

.icon-grid[b-oqdcdntzmr]::-webkit-scrollbar-track {
    background: var(--bs-tertiary-bg);
    border-radius: 4px;
}

.icon-grid[b-oqdcdntzmr]::-webkit-scrollbar-thumb {
    background: var(--bs-secondary);
    border-radius: 4px;
}

.icon-grid[b-oqdcdntzmr]::-webkit-scrollbar-thumb:hover {
    background: var(--bs-secondary-color);
}

/* Dark mode scrollbar */
[data-bs-theme="dark"] .icon-grid[b-oqdcdntzmr]::-webkit-scrollbar-track {
    background: var(--bs-dark);
}

[data-bs-theme="dark"] .icon-grid[b-oqdcdntzmr]::-webkit-scrollbar-thumb {
    background: var(--bs-secondary);
}

/* /Components/Labels/Edit/ColorPicker.razor.rz.scp.css */
.color-picker-container[b-55m5u7r4he] {
  display: inline-block;
}
.color-picker-container .color-grid[b-55m5u7r4he] {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-gap: 0.5rem;
}
.color-picker-container .color-grid .color-option[b-55m5u7r4he] {
  width: 2rem;
  height: 2rem;
  border-radius: 4px;
  cursor: pointer;
  border: 1px solid #ddd;
}
.color-picker-container .color-grid .color-option:hover[b-55m5u7r4he] {
  transform: scale(1.1);
}
.color-picker-container .color-grid .color-option.selected[b-55m5u7r4he] {
  box-shadow: 0 0 0 2px #0079BF;
}

/*# sourceMappingURL=ColorPicker.razor.css.map */
/* /Components/Labels/Edit/LabelSelector.razor.rz.scp.css */
@charset "UTF-8";
/* Pouze nezbytné styly pro specifické části, které nelze snadno řešit přes Bootstrap */
[b-ph547zm6gf] .label-preview {
  padding: 0.35rem 0.85rem;
  border-radius: 10px;
  font-weight: bold;
  width: 200px;
}
[b-ph547zm6gf] .label-preview .icon-preview {
  width: 1.5rem;
  text-align: center;
}
/* /Components/Labels/LabelFiltering.razor.rz.scp.css */
.label-btn[b-v7hxfnqy5v] {
  height: 23px;
  padding: 0 11px;
  border: 0 solid transparent;
  outline: none;
  font-size: 0.9em;
  background: rgba(135, 135, 135, 0.2784313725);
  box-shadow: none !important;
}
.label-btn.active[b-v7hxfnqy5v] {
  background: #b5adff;
}
[data-bs-theme=dark] .label-btn.active[b-v7hxfnqy5v] {
  background: #5344db;
}

/*# sourceMappingURL=LabelFiltering.razor.css.map */
/* /Components/Navigation/MobileBottomNav.razor.rz.scp.css */
/*
    MobileBottomNav.razor.css

    Fixní spodní lišta pro mobil.
    - Používáme safe-area inset pro iOS (notch / home indicator).
    - Z-index držíme vysoko, aby lišta byla nad obsahem.
    - Podpora pro tmavý/světlý režim (Bootstrap 5.3).
*/

.mobile-bottom-nav[b-twxy3wptbw] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;

    /* Výška + safe-area (iOS) */
    height: calc(64px + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);

    /* Světlý režim - průsvitné bílé pozadí */
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    border-top: 1px solid rgba(0, 0, 0, 0.08);

    z-index: 1030;

    /* Barva textu - z Bootstrap proměnných */
    color: var(--bs-body-color);
}

/* Tmavý režim - průsvitné tmavé pozadí */
[data-bs-theme="dark"] .mobile-bottom-nav[b-twxy3wptbw] {
    background: rgba(33, 37, 41, 0.92);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.mobile-bottom-nav__items[b-twxy3wptbw] {
    height: 100%;
}

.mobile-bottom-nav__item[b-twxy3wptbw] {
    /* Každá položka zabere stejnou šířku */
    flex: 1;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    text-decoration: none;
    color: inherit;

    /* Aby šlo pohodlně tapnout */
    min-width: 0;
    padding: 10px 8px;

    /* Přechod pro hover efekty */
    transition: opacity 0.2s ease-in-out;
}

/* Hover efekt na desktop/tablet */
@media (hover: hover) {
    .mobile-bottom-nav__item:hover[b-twxy3wptbw] {
        opacity: 0.7;
    }
}

.mobile-bottom-nav__icon[b-twxy3wptbw] {
    /* Větší ikony pro lepší použitelnost */
    font-size: 24px;
    line-height: 24px;
    opacity: 0.9;

    /* Vertikální centrování - flexbox už řeší parent, ale pro jistotu */
    display: flex;
    align-items: center;
    justify-content: center;
}

.mobile-bottom-nav__label[b-twxy3wptbw] {
    font-size: 10px;
    line-height: 12px;
    margin-top: 4px;
    opacity: 0.75;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Aktivní stav - použití Bootstrap primary barvy */
.mobile-bottom-nav__item.is-active[b-twxy3wptbw] {
    color: var(--bs-primary);
}

.mobile-bottom-nav__item.is-active .mobile-bottom-nav__icon[b-twxy3wptbw] {
    opacity: 1;
}

.mobile-bottom-nav__item.is-active .mobile-bottom-nav__label[b-twxy3wptbw] {
    opacity: 0.95;
}

@media (max-width: 360px) {
    .mobile-bottom-nav__item[b-twxy3wptbw] {
        padding-inline: 4px;
    }

    .mobile-bottom-nav__icon[b-twxy3wptbw] {
        font-size: 21px;
    }
}
/* /Components/Navigation/MobileFlyoutMenu.razor.rz.scp.css */
.mobile-flyout__backdrop[b-fvescjov1k] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 9100;
}

.mobile-flyout__panel[b-fvescjov1k] {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(85vw, 300px);
    background: var(--bs-body-bg, #1e1e1e);
    z-index: 9200;
    display: flex;
    flex-direction: column;
    box-shadow: 4px 0 20px rgba(0, 0, 0, 0.5);
    /* Bezpečná zóna pro iOS notch / home indicator, aby obsah nezačínal/nekončil pod nimi. */
    padding-top: env(safe-area-inset-top);
    padding-bottom: env(safe-area-inset-bottom);
}

.mobile-flyout__header[b-fvescjov1k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 16px 12px;
    border-bottom: 1px solid var(--bs-border-color, #333);
}

.mobile-flyout__title[b-fvescjov1k] {
    font-size: 18px;
    font-weight: bold;
}

.mobile-flyout__close[b-fvescjov1k] {
    background: none;
    border: none;
    font-size: 18px;
    cursor: pointer;
    color: var(--bs-body-color, #ccc);
    line-height: 1;
    padding: 4px 8px;
}

.mobile-flyout__nav[b-fvescjov1k] {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 8px 0;
    overflow-y: auto;
}

/* Nadpis skupiny vytváří čitelné bloky bez dalších rámečků, které by úzký mobilní panel zbytečně zatížily. */
.mobile-flyout__group-label[b-fvescjov1k] {
    padding: 20px 20px 7px;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.5;
}

.mobile-flyout__group-label:first-child[b-fvescjov1k] {
    padding-top: 10px;
}

.mobile-flyout__item[b-fvescjov1k] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    cursor: pointer;
    color: var(--bs-body-color, #ccc);
    text-decoration: none;
    font-size: 15px;
}

.mobile-flyout__item:hover[b-fvescjov1k] {
    background: var(--bs-tertiary-bg, rgba(255, 255, 255, 0.07));
}

.mobile-flyout__icon[b-fvescjov1k] {
    width: 22px;
    text-align: center;
    font-size: 17px;
    opacity: 0.8;
}

.mobile-flyout__workspace-item--active[b-fvescjov1k] {
    color: var(--bs-primary, #c98621);
    font-weight: 600;
}

.mobile-flyout__workspace-name[b-fvescjov1k] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mobile-flyout__workspace-check[b-fvescjov1k] {
    margin-left: auto;
    opacity: 0.8;
}

.mobile-flyout__footer[b-fvescjov1k] {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--bs-border-color, #333);
    padding: 4px 0;
}

.mobile-flyout__item--danger[b-fvescjov1k] {
    color: #e05;
}

.mobile-flyout__item--danger:hover[b-fvescjov1k] {
    background: rgba(238, 0, 85, 0.08);
}
/* /Components/Navigation/MobileTopHeader.razor.rz.scp.css */
/*
    MobileTopHeader.razor.css

    Fixní horní lišta pro mobil.
    - Safe-area inset top pro iOS (notch / dynamic island).
    - Z-index drží lištu nad obsahem, ale pod dropdown panelem notifikací.
    - Podpora pro tmavý/světlý režim (Bootstrap 5.3), styl konzistentní s MobileBottomNav.
*/

.mobile-top-header[b-gj7m0za5ip] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;

    /* Výška lišty + safe-area (iOS notch) */
    height: calc(56px + env(safe-area-inset-top));
    padding-top: env(safe-area-inset-top);

    /* Neprůhledné pozadí zabrání prosvítání scrollovaného obsahu pod lištou. */
    background: var(--bs-body-bg);

    border-bottom: 1px solid rgba(0, 0, 0, 0.08);

    z-index: 1031; /* nad obsahem, pod fixním dropdown panelem notifikací */

    color: var(--bs-body-color);
}

/* Android mívá status bar vizuálně těsnější, proto header lehce odsouváme níž. */
:global(html.maui-android) .mobile-top-header[b-gj7m0za5ip] {
    height: calc(62px + env(safe-area-inset-top));
}

/* Překryje i nativní stavovou oblast nad začátkem CSS viewportu ve WKWebView. */
.mobile-top-header[b-gj7m0za5ip]::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: max(100px, env(safe-area-inset-top));
    background: var(--bs-body-bg);
}

/* Tmavý režim */
[data-bs-theme="dark"] .mobile-top-header[b-gj7m0za5ip] {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.mobile-top-header__inner[b-gj7m0za5ip] {
    height: 56px;
    padding: 0 12px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

:global(html.maui-android) .mobile-top-header__inner[b-gj7m0za5ip] {
    padding-top: 6px;
}

.mobile-top-header__left[b-gj7m0za5ip] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.mobile-top-header__left .mobile-top-header__menu[b-gj7m0za5ip] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    box-shadow: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.mobile-top-header__left .mobile-top-header__menu .icon[b-gj7m0za5ip] {
    margin-right: 0;
    font-size: 22px;
}

.mobile-top-header__left .mobile-top-header__menu:hover[b-gj7m0za5ip],
.mobile-top-header__left .mobile-top-header__menu:focus[b-gj7m0za5ip] {
    background: transparent;
    color: inherit;
    box-shadow: none;
    outline: none;
}

.mobile-top-header__brand[b-gj7m0za5ip] {
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
}
/* /Components/Pricing/PremiumModuleDialog.razor.rz.scp.css */
.premium-module-dialog[b-w3ozesox6s] {
  padding: 1.15rem 1.25rem 1.25rem;
  max-width: 640px;
}

.premium-module-dialog__icon[b-w3ozesox6s] {
  align-items: center;
  background: rgba(25, 135, 84, 0.1);
  border-radius: 7px;
  color: #198754;
  display: flex;
  flex: 0 0 auto;
  font-size: 1.35rem;
  height: 2.75rem;
  justify-content: center;
  width: 2.75rem;
}

.premium-module-dialog__intro[b-w3ozesox6s] {
  min-width: 0;
}

.premium-module-dialog__intro h3[b-w3ozesox6s] {
  font-size: 1.35rem;
  line-height: 1.2;
  margin: 0 0 0.4rem;
}

.premium-module-dialog__intro p[b-w3ozesox6s] {
  color: rgba(var(--bs-body-color-rgb), 0.74);
  line-height: 1.45;
  margin: 0;
}

.premium-module-dialog__benefits[b-w3ozesox6s] {
  display: grid;
  gap: 0.55rem 1.25rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.premium-module-dialog__benefits-title[b-w3ozesox6s] {
  color: rgba(var(--bs-body-color-rgb), 0.55);
  font-size: 0.78rem;
  font-weight: 700;
  grid-column: 1 / -1;
  text-transform: uppercase;
}

.premium-module-dialog__benefit[b-w3ozesox6s] {
  align-items: flex-start;
  display: flex;
  gap: 0.55rem;
  min-width: 0;
  padding: 0;
}

.premium-module-dialog__benefit i[b-w3ozesox6s] {
  color: #198754;
  flex: 0 0 auto;
  margin-top: 0.1rem;
}

.premium-module-dialog__benefit span[b-w3ozesox6s] {
  line-height: 1.25;
}

.premium-module-dialog__notice[b-w3ozesox6s] {
  background: rgba(var(--bs-body-color-rgb), 0.04);
  border-left: 3px solid rgba(25, 135, 84, 0.55);
  color: rgba(var(--bs-body-color-rgb), 0.72);
  line-height: 1.35;
  padding: 0.75rem 0.9rem;
}

[data-bs-theme=dark] .premium-module-dialog__icon[b-w3ozesox6s] {
  background: rgba(83, 210, 132, 0.12);
  color: #8ddf9a;
}

[data-bs-theme=dark] .premium-module-dialog__benefit i[b-w3ozesox6s] {
  color: #8ddf9a;
}

@media (max-width: 768px) {
  .premium-module-dialog[b-w3ozesox6s] {
    padding: 1.1rem;
  }

  .premium-module-dialog__benefits[b-w3ozesox6s] {
    grid-template-columns: 1fr;
  }
}
/* /Components/Pricing/PricingPlanCard.razor.rz.scp.css */
/* Karty s cenami – vylepšený styling */
.card[b-shn2knsl00] {
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.92) 0%, rgba(248, 245, 240, 0.96) 100%);
    backdrop-filter: blur(10px);
    transition: all 0.3s ease;
    box-shadow: 0 12px 32px rgba(33, 37, 41, 0.12);
}

.card:hover:not(:has(.card-body .btn-group))[b-shn2knsl00] {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(33, 37, 41, 0.16);
}

.card.border-success[b-shn2knsl00] {
    border: 2px solid var(--bs-success) !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(245, 255, 250, 0.98) 100%);
}

.card.border-warning[b-shn2knsl00] {
    border: 2px solid var(--bs-warning) !important;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.97) 0%, rgba(255, 253, 245, 0.98) 100%);
}

.card-header[b-shn2knsl00] {
    background: rgba(255, 255, 255, 0.72);
    border-bottom: 1px solid rgba(33, 37, 41, 0.08);
    padding: 16px;
    border-radius: 12px 12px 0 0;
}

.card-header .larger[b-shn2knsl00] {
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: -0.3px;
}

.card-header .small[b-shn2knsl00] {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.2px;
    opacity: 0.75;
}

.card-body[b-shn2knsl00] {
    padding: 24px;
}

/* Cena – dominantní prvek */
.card-body .larger2[b-shn2knsl00] {
    font-size: 2.5rem;
    font-weight: 800;
    letter-spacing: -0.7px;
    color: var(--bs-emphasis-color, #212529);
    background: none;
    -webkit-text-fill-color: currentColor;
    margin-bottom: 0;
    line-height: 1.2;
}

.card-body .text-muted[b-shn2knsl00] {
    font-size: 0.9rem;
    line-height: 1.6;
    letter-spacing: 0.1px;
    color: rgba(33, 37, 41, 0.78) !important;
}

.card-body .text-muted strong[b-shn2knsl00] {
    color: var(--bs-emphasis-color, #212529);
    font-weight: 600;
}

/* Sekce modulů – vylepšený styling */
.card-body .fw-semibold[b-shn2knsl00] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    opacity: 0.84;
    margin-bottom: 12px !important;
}

/* Grid modulů */
.card-body .d-flex.flex-wrap.gap-2[b-shn2knsl00] {
    gap: 12px !important;
}

/* Jednotlivý modul v editaci */
.module-item[b-shn2knsl00] {
    min-width: 175px;
    text-align: center;
    display: flex;
    flex-direction: row;
    transition: all 0.2s ease;
    justify-content: start;
    align-items: center;
    gap: 14px;
}

.module-item .module-icon[b-shn2knsl00] {
    font-size: 1.5rem;
    color: rgba(33, 37, 41, 0.45);
    transition: all 0.2s ease;
    display: block;
    margin-bottom: 4px;
}

.module-item.is-enabled .module-icon[b-shn2knsl00] {
    color: var(--accent-color);
    filter: drop-shadow(0 0 8px rgba(var(--accent-r), var(--accent-g), var(--accent-b), 0.4));
    transform: scale(1.1);
}

.module-item:not(.is-enabled)[b-shn2knsl00] {
    opacity: 0.65;
}

.module-item.is-clickable[b-shn2knsl00] {
    cursor: pointer;
}

.module-item.is-clickable:hover[b-shn2knsl00] {
    background: rgba(33, 37, 41, 0.05);
    transform: translateY(-2px);
}

.module-item .module-label[b-shn2knsl00] {
    font-size: 0.99rem;
    line-height: 1.3;
    font-weight: 500;
    letter-spacing: 0.3px;
    opacity: 0.99;
}

/* Readonly náhled – moduly v plánu (stejný layout jako module-item v editaci) */
.plan-modules-grid[b-shn2knsl00] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.plan-module[b-shn2knsl00] {
    text-align: center;
    display: flex;
    flex-direction: row;
    justify-content: start;
    align-items: center;
    gap: 10px;
    transition: all 0.2s ease;
}

.plan-module .module-icon[b-shn2knsl00] {
    font-size: 1.2rem;
    color: var(--accent-color);
    filter: drop-shadow(0 0 6px rgba(var(--accent-r), var(--accent-g), var(--accent-b), 0.4));
    display: block;
    margin-bottom: 0;
    flex-shrink: 0;
}

.plan-module .module-label[b-shn2knsl00] {
    font-size: 0.82rem;
    line-height: 1.3;
    font-weight: 500;
    letter-spacing: 0.2px;
    opacity: 0.95;
    text-align: left;
}

.plan-module:hover[b-shn2knsl00] {
    background: rgba(33, 37, 41, 0.05);
    border-color: rgba(33, 37, 41, 0.1);
    transform: translateY(-2px);
}

/* Kontejner karty – editace vs. náhled */
.plan-card-wrapper[b-shn2knsl00] {
    flex-grow: 1;
    flex-basis: 0;
    position: relative;
}

.plan-card-wrapper.is-editing[b-shn2knsl00] {
    min-width: 340px;
    max-width: 420px;
}

.plan-card-wrapper.has-admin-content[b-shn2knsl00] {
    min-width: 560px;
    max-width: 720px;
    flex-grow: 2;
}

.admin-content-section[b-shn2knsl00] {
    padding-top: 16px;
}

.plan-card-wrapper:not(.is-editing)[b-shn2knsl00] {
    max-width: 308px;
    min-width: 310px;
}

/* Badge výchozího / trial / aktuálního plánu */
.plan-badges-container[b-shn2knsl00] {
    position: absolute;
    top: -12px;
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: 8px;
    z-index: 10;
    pointer-events: none;
}

.plan-badges-container .badge[b-shn2knsl00] {
    pointer-events: auto;
}

/* Sekce parametrů */
.card-body .plan-parameters[b-shn2knsl00] {
    border-bottom: 1px solid rgba(33, 37, 41, 0.08);
    padding: 16px 0 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Modul-label v plánu */
.plan-module-label[b-shn2knsl00] {
    font-size: 0.8rem;
}

.stripe-price-ids-section[b-shn2knsl00] {
    border-top: 1px solid rgba(33, 37, 41, 0.08);
    padding-top: 12px;
    margin-top: 2px;
}

.stripe-price-ids-title[b-shn2knsl00] {
    font-size: 0.76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.55px;
    opacity: 0.82;
}

.stripe-price-ids-status[b-shn2knsl00] {
    font-size: 0.76rem;
    margin-top: 2px;
}

.stripe-expander-button[b-shn2knsl00] {
    min-width: 32px;
    min-height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.stripe-currency-row[b-shn2knsl00] {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
    align-items: center;
}

.stripe-currency-code[b-shn2knsl00] {
    font-weight: 700;
    letter-spacing: 0.4px;
}

.stripe-mapping-cell[b-shn2knsl00] {
    display: grid;
    grid-template-columns: 34px 18px 1fr;
    gap: 6px;
    align-items: center;
    min-width: 0;
}

.stripe-mode-label[b-shn2knsl00] {
    color: var(--bs-secondary-color);
    font-size: 0.82rem;
}

.stripe-sync-button[b-shn2knsl00] {
    min-width: 72px;
    justify-content: center;
}


/* module-item uvnitř plan-modules-grid (admin panel aktuálního plánu) – kompaktní verze */
.plan-modules-grid .module-item[b-shn2knsl00] {
    min-width: 0;
}

.plan-modules-grid .module-item .module-icon[b-shn2knsl00] {
    font-size: 1.2rem;
    width: 1.5rem;
    text-align: center;
    flex-shrink: 0;
    margin-bottom: 0;
}

.plan-modules-grid .module-item .module-label[b-shn2knsl00] {
    font-size: 0.82rem;
    letter-spacing: 0.2px;
}

/* Dark mode overrides */
[data-bs-theme="dark"] .card[b-shn2knsl00] {
    background: linear-gradient(135deg, rgba(33, 37, 41, 0.92) 0%, rgba(20, 22, 24, 0.96) 100%);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5);
}

[data-bs-theme="dark"] .card:hover:not(:has(.card-body .btn-group))[b-shn2knsl00] {
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.7);
}

[data-bs-theme="dark"] .card.border-success[b-shn2knsl00] {
    background: linear-gradient(135deg, rgba(33, 37, 41, 0.97) 0%, rgba(15, 30, 20, 0.98) 100%);
}

[data-bs-theme="dark"] .card.border-warning[b-shn2knsl00] {
    background: linear-gradient(135deg, rgba(33, 37, 41, 0.97) 0%, rgba(30, 25, 10, 0.98) 100%);
}

[data-bs-theme="dark"] .card-header[b-shn2knsl00] {
    background: rgba(33, 37, 41, 0.72);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

[data-bs-theme="dark"] .card-body .larger2[b-shn2knsl00] {
    color: #f8f9fa;
}

[data-bs-theme="dark"] .card-body .text-muted[b-shn2knsl00] {
    color: rgba(255, 255, 255, 0.65) !important;
}

[data-bs-theme="dark"] .card-body .text-muted strong[b-shn2knsl00] {
    color: #f8f9fa;
}

[data-bs-theme="dark"] .module-item:not(.is-enabled)[b-shn2knsl00] {
    opacity: 0.45;
}

[data-bs-theme="dark"] .module-item.is-clickable:hover[b-shn2knsl00] {
    background: rgba(255, 255, 255, 0.05);
}

[data-bs-theme="dark"] .module-item .module-icon[b-shn2knsl00] {
    color: rgba(255, 255, 255, 0.45);
}

[data-bs-theme="dark"] .plan-module:hover[b-shn2knsl00] {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme="dark"] .admin-content-section[b-shn2knsl00],
[data-bs-theme="dark"] .card-body .plan-parameters[b-shn2knsl00] {
    border-color: rgba(255, 255, 255, 0.08);
}

[data-bs-theme="dark"] .stripe-price-ids-section[b-shn2knsl00] {
    border-color: rgba(255, 255, 255, 0.08);
}
/* /Components/Tiptap/TiptapViewer.razor.rz.scp.css */
.tiptap-html[b-jj1mg9n21u]  img {
  max-width: 600px;
  max-height: 400px;
}
/* /Components/Trial/TrialPreviewDialog.razor.rz.scp.css */
.trial-preview-dialog[b-63r5taddg4] {
  padding: 1.5rem;
}

.trial-preview-dialog .trial-intro-copy[b-63r5taddg4] {
  font-size: 1rem;
  line-height: 1.3;
}

.trial-preview-dialog .trial-cards-comparison[b-63r5taddg4] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 1.5rem;
  align-items: stretch;
  margin: 1.25rem 0 1rem;
}

.trial-preview-dialog .trial-cards-comparison .trial-card[b-63r5taddg4] {
  display: flex;
}

.trial-preview-dialog .trial-cards-comparison .trial-card[b-63r5taddg4]  .plan-card-wrapper {
  display: flex;
  width: 100%;
  min-width: 0;
  max-width: none;
}

.trial-preview-dialog .trial-cards-comparison .trial-card[b-63r5taddg4]  .card {
  width: 100%;
  min-height: 100%;
}

.trial-preview-dialog .trial-cards-comparison .trial-card[b-63r5taddg4]  .plan-card-wrapper.is-current .card {
  border-color: #6c757d;
}

.trial-preview-dialog .trial-cards-comparison .trial-card[b-63r5taddg4]  .plan-card-wrapper.is-trial .card {
  border-color: #28a745;
  box-shadow: 0 0 0 1px rgba(40, 167, 69, 0.15);
}

.trial-preview-dialog .trial-arrow[b-63r5taddg4] {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 1.5rem;
}

.trial-preview-dialog .trial-arrow i[b-63r5taddg4] {
  animation: arrow-bounce-b-63r5taddg4 1.5s ease-in-out infinite;
}

.trial-preview-dialog .trial-benefits-inline[b-63r5taddg4] {
  margin-top: 0.25rem;
}

.trial-preview-dialog .trial-benefit-item[b-63r5taddg4] {
  display: flex;
  align-items: start;
  gap: 0.55rem;
  min-width: 0;
  color: #2e3a46;
}

.trial-preview-dialog .trial-benefit-item span[b-63r5taddg4] {
  line-height: 1.2;
}

.trial-preview-dialog .trial-benefit-item i[b-63r5taddg4] {
  margin-top: 0.1rem;
  flex-shrink: 0;
}

[data-bs-theme=dark] .trial-preview-dialog .trial-arrow[b-63r5taddg4] {
  color: rgba(255, 255, 255, 0.55);
}

[data-bs-theme=dark] .trial-preview-dialog .trial-benefit-item[b-63r5taddg4] {
  color: rgba(255, 255, 255, 0.9);
}

[data-bs-theme=dark] .trial-preview-dialog .trial-benefit-item i[b-63r5taddg4] {
  color: #8ddf9a;
}

[data-bs-theme=dark] .trial-preview-dialog .trial-benefit-item span[b-63r5taddg4] {
  color: rgba(255, 255, 255, 0.86);
}

@media (max-width: 768px) {
  .trial-preview-dialog .trial-cards-comparison[b-63r5taddg4] {
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: start;
    margin: 1.5rem 0;
  }

  .trial-preview-dialog .trial-cards-comparison .trial-arrow[b-63r5taddg4] {
    display: none;
  }

  .trial-preview-dialog[b-63r5taddg4] {
    padding: 1.25rem;
  }

  .trial-preview-dialog .trial-benefits-inline[b-63r5taddg4] {
    gap: 0.75rem !important;
  }
}

@keyframes arrow-bounce-b-63r5taddg4 {
  0%,
  100% {
    transform: translateX(0);
  }

  50% {
    transform: translateX(4px);
  }
}
/* /Components/Uploads/FilePickerButton.razor.rz.scp.css */
/* Obal musí být pozicovací kontext, aby se průhledný input roztáhl přesně přes obsah.
   inline-block drží šířku podle tlačítka uvnitř; volající si může přebít přes CssClass. */
.file-picker-button[b-niwya57b3v] {
    position: relative;
    display: inline-block;
}

/* Průhledný input přes celou plochu tlačítka. Musí zůstat klikatelný (žádné
   pointer-events: none), protože právě jeho nativní klik otevírá dialog — to je celý
   smysl komponenty. Skrývání přes display:none / visibility:hidden by rozbilo Safari.

   ::deep je nutné: <input> renderuje vnořená komponenta InputFile, takže nedostane scope
   atribut této komponenty a bez ::deep by se pravidlo vůbec neaplikovalo (input by zůstal
   viditelný a klik by dopadal na tlačítko pod ním). */
[b-niwya57b3v] .file-picker-button__input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    /* Nad obsahem tlačítka, aby klik nespadl na prvek pod inputem. */
    z-index: 2;
}

/* Safari renderuje u input[type=file] tlačítko "Choose file" s vlastní šířkou. Bez
   roztažení by klikatelná plocha nepokryla celé tlačítko a rohy by nereagovaly. */
[b-niwya57b3v] .file-picker-button__input::-webkit-file-upload-button {
    width: 100%;
    height: 100%;
    cursor: pointer;
}

/* Zablokovaný stav: kurzor nesmí slibovat akci, která se neprovede. */
[b-niwya57b3v] .file-picker-button__input:disabled {
    cursor: default;
}
/* /Components/Uploads/UploadProgressDialog.razor.rz.scp.css */
.upload-progress-dialog[b-utut04dnmp] {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    width: min(760px, calc(100vw - 52px));
    padding: 14px 8px 8px;
}

.upload-progress-dialog__icon[b-utut04dnmp] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--bs-primary, #0d6efd) 12%, transparent);
    color: var(--bs-primary, #0d6efd);
    font-size: 1.45rem;
}

.upload-progress-dialog__content[b-utut04dnmp] {
    flex: 1;
    min-width: 0;
}

.upload-progress-dialog__title[b-utut04dnmp] {
    font-size: 1.35rem;
    font-weight: 650;
    line-height: 1.25;
}

.upload-progress-dialog__message[b-utut04dnmp] {
    margin-top: 8px;
    color: var(--bs-body-color, #212529);
    font-size: 1.05rem;
}

.upload-progress-dialog__current-file[b-utut04dnmp] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-top: 14px;
    min-width: 0;
}

.upload-progress-dialog__file-name[b-utut04dnmp] {
    overflow: hidden;
    min-width: 0;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.upload-progress-dialog__file-position[b-utut04dnmp] {
    flex: 0 0 auto;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.9rem;
}

.upload-progress-dialog__progress-row[b-utut04dnmp] {
    margin-top: 12px;
    width: 100%;
    min-width: 0;
}

.upload-progress-dialog__processing[b-utut04dnmp] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 40px;
    color: var(--bs-body-color, #212529);
    font-weight: 500;
}

.upload-progress-dialog__actions[b-utut04dnmp] {
    display: flex;
    justify-content: flex-end;
    margin-top: 28px;
}

@media (max-width: 575.98px) {
    .upload-progress-dialog[b-utut04dnmp] {
        gap: 16px;
        padding: 8px 0 2px;
    }

    .upload-progress-dialog__icon[b-utut04dnmp] {
        flex-basis: 46px;
        width: 46px;
        height: 46px;
    }
}
/* /Controls/App/TrialBrandBadge.razor.rz.scp.css */
/* Absolutní pozice vůči topbaru (position-relative) */
[b-fpl86qfq5d] .trial-brand-outer {
    position: absolute;
    right: 8px;
    top: 0;
}

/* Společné vlastnosti pro badge i CTA */
[b-fpl86qfq5d] .trial-brand-item {
    border-radius: 0 0 7px 7px;
    font-size: .61rem;
    font-weight: 700;
    letter-spacing: 0;
    white-space: nowrap;
}

[b-fpl86qfq5d] .trial-brand-badge {
    padding: 2px 9px 3px 9px;
    color: #fff2bf;
    background: linear-gradient(135deg, #8d5b08, #d79820);
    box-shadow: 0 8px 22px rgba(204, 137, 28, .24);
    border: 1px solid rgba(255, 230, 150, .28);
}

[b-fpl86qfq5d] .trial-brand-badge__days {
    opacity: .82;
    font-size: .58rem;
    font-weight: 600;
}

[b-fpl86qfq5d] .trial-brand-cta {
    padding: 2px 9px 3px 10px;
    line-height: 1.1;
    color: #8f4c00;
    background: transparent;
    box-shadow: none;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    user-select: none;
}

[b-fpl86qfq5d] .trial-brand-cta-wrap {
    align-items: stretch;
    background: rgba(255, 149, 0, .12);
    border: 1px solid rgba(255, 149, 0, .32);
    border-radius: 0 0 7px 7px;
    box-shadow: 0 5px 16px rgba(255, 149, 0, .12);
    overflow: hidden;
}

[b-fpl86qfq5d] .trial-brand-dismiss {
    align-items: center;
    border: 0;
    border-left: 1px solid rgba(255, 149, 0, .22);
    border-radius: 0;
    color: rgba(143, 76, 0, .68);
    display: inline-flex;
    font-size: .6rem;
    justify-content: center;
    min-width: 20px;
    padding: 0 5px;
}

[b-fpl86qfq5d] .trial-brand-dismiss:hover {
    background: rgba(var(--bs-body-color-rgb), .06);
    color: rgba(var(--bs-body-color-rgb), .8);
}

[b-fpl86qfq5d] .trial-brand-icon {
    font-size: .82em;
    opacity: .92;
}

[data-bs-theme=dark][b-fpl86qfq5d]  .trial-brand-badge {
    color: #fff0bf;
    background: linear-gradient(135deg, rgba(137, 84, 10, 0.98), rgba(196, 135, 24, 0.95));
    box-shadow: 0 8px 22px rgba(173, 112, 19, 0.28);
    border-color: rgba(255, 227, 145, 0.22);
}

[data-bs-theme=dark][b-fpl86qfq5d]  .trial-brand-cta {
    color: #ffbd62;
    box-shadow: none;
}

[data-bs-theme=dark][b-fpl86qfq5d]  .trial-brand-cta-wrap {
    background: rgba(255, 153, 31, .2);
    border-color: rgba(255, 184, 86, .42);
    box-shadow: 0 6px 18px rgba(255, 149, 0, .16);
}

[data-bs-theme=dark][b-fpl86qfq5d]  .trial-brand-dismiss {
    border-left-color: rgba(255, 184, 86, .26);
    color: rgba(255, 207, 139, .72);
}

[b-fpl86qfq5d] .trial-brand-cta:hover,
[b-fpl86qfq5d] .trial-brand-badge:hover,
[b-fpl86qfq5d] .trial-brand-cta-wrap:hover {
    filter: brightness(1.04);
}

@media (max-width: 991.98px) {
    [b-fpl86qfq5d] .trial-brand-item {
        display: none;
    }
}
/* /Controls/Sortable/SortableList.razor.rz.scp.css */
/* 
  ::deep je potřeba při scoped stylech, protože scoped styly se aplikují
  jen na markup v komponentě, ne na markup uvnitř render fragmentu.
*/

[b-woeecwi8ow] .sortable-ghost {
  visibility: hidden;
}

[b-woeecwi8ow] .sortable-fallback {
  opacity: 1 !important
}

/* /Controls/Studios/StudioAvatar.razor.rz.scp.css */
.studio-avatar[b-fb8iktr3vu] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
}

.studio-header-list .studio-avatar[b-fb8iktr3vu] {
    width: 24px;
    height: 24px;
}

.menu-home-small-logo .studio-avatar[b-fb8iktr3vu]{
    width: 24px;
    height: 24px;
}

    .studio-avatar-placeholder[b-fb8iktr3vu] {
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background-color: var(--accent-color);
        color: black;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: bold;
        font-size: 14px;
    }
/* /Controls/Studios/StudioPinButton.razor.rz.scp.css */
/* CSS pro StudioPinButton komponentu */
.studio-pin-button[b-j3srr8jcnt] {
  opacity: 0; /* defaultně skryto */
  transition: opacity .15s ease-in-out;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.studio-pin-button i[b-j3srr8jcnt] {
  font-size: 1.1em;
  color: #8c8c8c;
  transition: color .15s ease-in-out;
}

.studio-pin-button:hover i[b-j3srr8jcnt] {
  color: var(--accent-color);
}

/* Když je studio připnuté, ikona je vždy viditelná */
.studio-pin-button:has(.fas)[b-j3srr8jcnt] {
  opacity: 1;
}

.studio-pin-button:has(.fas) i[b-j3srr8jcnt] {
  color: var(--accent-color);
}

/* /Controls/Studios/StudioSwitch.razor.rz.scp.css */
/* CSS pro StudioSwitch komponentu */
.studio-switch[b-5qk9sbisjn] {
    /* případné vlastní styly */
}

/* Dropdown menu musí být nad ostatními absolutně pozicovanými prvky v sidebaru */
.studio-switch-minimal[b-5qk9sbisjn]  .dropdown-menu {
    z-index: 1060;
}

[b-5qk9sbisjn] .no-tags-icon {
    opacity: 0;
}

[b-5qk9sbisjn] .dropdown-item:hover .no-tags-icon {
    opacity: 1;
}

/* Pin button skrytý ve výchozím stavu */
[b-5qk9sbisjn] .studio-item .studio-pin-button {
    opacity: 0;
    transition: opacity .15s ease-in-out;
}

/* Zobrazení pin buttonu při hoveru nad položkou v dropdownu */
.studio-item:hover[b-5qk9sbisjn]  .studio-pin-button {
    opacity: 1;
}

/* Pinovaná studia - pin button vždy viditelný */
[b-5qk9sbisjn] .studio-pin-button:has(.fas) {
    opacity: 1;
}

.workspace-type-badge[b-5qk9sbisjn] {
    display: inline-flex;
    align-items: center;
    max-width: 96px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(96, 165, 250, 0.18);
    color: #93c5fd;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    vertical-align: middle;
}

[data-bs-theme="dark"] .dropdown-item.active[b-5qk9sbisjn], 
[data-bs-theme="dark"] .dropdown-item:active[b-5qk9sbisjn] {
    background-color: #1c1c1c;
}

[data-bs-theme="light"] .workspace-type-badge[b-5qk9sbisjn] {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}
/* /Controls/Studios/WorkspaceContextMenu.razor.rz.scp.css */
/* Jen to, co je specifické pro menu PROSTORU. Skelet dropdownu (trigger, panel, položky,
   flyout, search, hlavička) je sdílený v app.css pod .ctxd-* – viz ContextDropdown.razor. */

/* StudioAvatar renderuje buď <img class="studio-avatar"> nebo <div class="studio-avatar-placeholder">
   uvnitř obalového <span>; oba mají v globálním CSS natvrdo 32px, proto je nutné cílit na ně
   přímo (ne jen na obalový span), jinak by šířka/výška zvenčí neměla žádný efekt. */
[b-y42u1u2lp6] .wctx-avatar {
    flex: 0 0 auto;
}

[b-y42u1u2lp6] .wctx-avatar .studio-avatar,
[b-y42u1u2lp6] .wctx-avatar .studio-avatar-placeholder {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    font-size: 11px;
}

.wctx-name[b-y42u1u2lp6] {
    font-weight: 600;
    white-space: nowrap;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wctx-chevron[b-y42u1u2lp6] {
    font-size: 0.7em;
    opacity: 0.5;
}

[b-y42u1u2lp6] .wctx-header-avatar {
    flex: 0 0 auto;
}

[b-y42u1u2lp6] .wctx-header-avatar .studio-avatar,
[b-y42u1u2lp6] .wctx-header-avatar .studio-avatar-placeholder {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    font-size: 13px;
}

.wctx-header-plan[b-y42u1u2lp6] {
    font-size: 0.76rem;
    opacity: 0.55;
    margin-top: 1px;
}

[b-y42u1u2lp6] .wctx-switch-avatar {
    flex: 0 0 auto;
}

[b-y42u1u2lp6] .wctx-switch-avatar .studio-avatar,
[b-y42u1u2lp6] .wctx-switch-avatar .studio-avatar-placeholder {
    width: 28px;
    height: 28px;
    border-radius: 7px;
    font-size: 11px;
}

/* Pin button (jen superadmin, viz StudioPinButton) - skrytý ve výchozím stavu, viditelný
   na hover řádku nebo trvale u připnutého prostoru. Stejný vzor jako ve StudioSwitch.razor.css,
   ať se chování pinování neliší mezi klasickým přepínačem a tímto kontextovým menu. */
[b-y42u1u2lp6] .wctx-switch-pin.studio-pin-button {
    opacity: 0;
    flex: 0 0 auto;
}

[b-y42u1u2lp6] .ctxd-list-item:hover .wctx-switch-pin.studio-pin-button {
    opacity: 1;
}

[b-y42u1u2lp6] .wctx-switch-pin.studio-pin-button:has(.fas) {
    opacity: 1;
}

/* ==========================================================================
   Členové prostoru v hlavičce menu

   Nahrazuje dřívější textové "2 členů": na stejném místě říká, KDO v prostoru je,
   ne jen kolik jich je. Na rozdíl od projektového stacku v topbaru není klikací -
   interaktivní je jen hover karta jednotlivých avatarů.
   ========================================================================== */

/* min-height drží místo pro tváře, které teprve doskočí (načítají se až při otevření menu).
   Bez ní má prázdný kontejner nulovou výšku a panel se po načtení viditelně zvětší.
   Hodnota = výška avataru (SizePx=20) + 2px ringu na každé straně. */
.wctx-members[b-y42u1u2lp6] {
    display: flex;
    align-items: center;
    margin-top: 6px;
    min-height: 24px;
}

/* Záporný levý margin dělá překryv; první tvář ho nesmí mít, jinak by řada
   "vylezla" doleva mimo zarovnání se jménem prostoru nad ní. */
.wctx-member[b-y42u1u2lp6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-left: -4px;
    /* Ring odděluje překrývající se tváře od sebe i od pozadí panelu. */
    box-shadow: 0 0 0 2px var(--bs-body-bg);
    transition: transform .16s ease;
}

.wctx-members > .wctx-member:first-child[b-y42u1u2lp6] {
    margin-left: 0;
}

/* Nadzvednutí odkrývá jinak částečně schovanou tvář a ukazuje, které z nich
   patří právě otevřená hover karta. */
.wctx-member:hover[b-y42u1u2lp6] {
    transform: translateY(-2px);
    z-index: 2;
}

/* "+N" drží stejný tvar i velikost jako avatar (SizePx=20), ale neutrální barvou
   nesoupeří o pozornost s tvářemi. */
.wctx-member-more[b-y42u1u2lp6] {
    width: 20px;
    height: 20px;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: -.02em;
    color: rgba(var(--bs-body-color-rgb), .75);
    background: rgb(161 161 161 / 22%);
}

[data-bs-theme=light] .wctx-member-more[b-y42u1u2lp6] {
    background: rgb(32 32 32 / 10%);
}
/* /Controls/Users/AvatarImage.razor.rz.scp.css */
.avatar-host[b-qxj1pwxjyj] {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
  outline: none;
  overflow: visible;
}

.avatar[b-qxj1pwxjyj] {
  width: var(--avatar-size, 26px);
  height: var(--avatar-size, 26px);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  flex-shrink: 0;
}

.avatar-initials[b-qxj1pwxjyj] {
  background-color: var(--avatar-bg);
  color: var(--avatar-text);
  font-size: var(--avatar-font-size, .72rem);
  font-weight: 700;
  letter-spacing: 0;
}

[data-bs-theme=dark] .avatar-initials[b-qxj1pwxjyj] {
  background-color: var(--avatar-bg-dark);
  color: var(--avatar-text-dark);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 1px 2px rgba(0, 0, 0, .35);
}

.avatar-hover-card[b-qxj1pwxjyj] {
  position: fixed;
  left: var(--avatar-hover-left, 50vw);
  top: var(--avatar-hover-top, 0);
  z-index: 1060;
  display: block;
  width: min(360px, calc(100vw - 24px));
  padding: 12px 14px;
  max-height: min(520px, calc(100vh - 24px));
  overflow: auto;
  transform: translateY(8px) scale(.985);
  border: 1px solid rgba(15, 23, 42, .06);
  border-radius: 10px;
  background: rgba(255, 255, 255, .68);
  backdrop-filter: blur(24px) saturate(1.5);
  -webkit-backdrop-filter: blur(24px) saturate(1.5);
  box-shadow: 0 8px 32px rgba(15, 23, 42, .10), 0 1px 3px rgba(15, 23, 42, .06);
  color: #172033;
  text-align: left;
  white-space: normal;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity .32s ease, transform .32s ease, visibility 0s linear .32s;
}

.avatar-hover-card[data-portal-source="true"][b-qxj1pwxjyj] {
  display: none !important;
}

.avatar-hover-card[data-portal-clone="true"][b-qxj1pwxjyj] {
  display: block;
}

.avatar-hover-card[data-portal-clone="true"][data-hover-visible="true"][b-qxj1pwxjyj] {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  visibility: visible;
  transition: opacity .32s ease, transform .32s ease, visibility 0s;
}

.avatar-host:hover .avatar-hover-card[b-qxj1pwxjyj],
.avatar-host:focus-within .avatar-hover-card[b-qxj1pwxjyj] {
  display: block;
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.avatar-hover-card[b-qxj1pwxjyj]::after {
  content: "";
  position: absolute;
  left: var(--avatar-hover-arrow-left, 50%);
  top: -5px;
  width: 9px;
  height: 9px;
  transform: translateX(-50%) rotate(45deg);
  border-left: 1px solid rgba(15, 23, 42, .06);
  border-top: 1px solid rgba(15, 23, 42, .06);
  background: rgba(245, 247, 252, .9);
}

.avatar-hover-card[data-placement="top"][b-qxj1pwxjyj]::after {
  top: auto;
  bottom: -5px;
  border-top: 0;
  border-left: 0;
  border-right: 1px solid rgba(15, 23, 42, .06);
  border-bottom: 1px solid rgba(15, 23, 42, .06);
}

.avatar-hover-header[b-qxj1pwxjyj] {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.avatar-hover-photo[b-qxj1pwxjyj] {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 0 0 1.5px rgba(15, 23, 42, .08);
}

.avatar-hover-initials[b-qxj1pwxjyj] {
  background-color: var(--avatar-bg);
  color: var(--avatar-text);
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: 0;
}

.avatar-hover-title[b-qxj1pwxjyj] {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.avatar-hover-name[b-qxj1pwxjyj] {
  display: block;
  overflow: hidden;
  color: #111827;
  font-size: .96rem;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-hover-meta[b-qxj1pwxjyj] {
  color: #667085;
  font-size: .76rem;
  line-height: 1.3;
}

/* Role ve scope, odkud se karta otevírá. Výraznější než .avatar-hover-meta pod ní
   (registrace od), protože v seznamu členů je role hlavní rozlišovací údaj. */
.avatar-hover-role[b-qxj1pwxjyj] {
  display: block;
  color: #475467;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.3;
}

/* Nadpis sekce nese kontext ("v tomto projektu"), takže popisky pod ním mohou zůstat
   jednoslovné a vejdou se do tří sloupců bez ořezu. */
.avatar-hover-label--project[b-qxj1pwxjyj] {
  display: block;
  margin-top: 12px;
}

/* Sekce s přínosem v aktuálním projektu se odděluje od globálních čísel pod ní,
   jinak by obě trojice čísel splynuly v jeden nečitelný řádek. Menší horní mezera
   než výchozí .avatar-hover-stats – nadpis nad ní už odsazení dodal. */
.avatar-hover-stats--project[b-qxj1pwxjyj] {
  margin-top: 6px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(15, 23, 42, .08);
}

.avatar-hover-stats[b-qxj1pwxjyj] {
  display: flex;
  gap: 16px;
  margin-top: 10px;
}

.avatar-hover-stats > span[b-qxj1pwxjyj] {
  display: flex;
  min-width: 0;
  flex-direction: row;
  align-items: baseline;
  gap: 4px;
}

.avatar-hover-stats strong[b-qxj1pwxjyj] {
  color: #111827;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1;
}

.avatar-hover-stats small[b-qxj1pwxjyj] {
  overflow: hidden;
  color: #8896aa;
  font-size: .72rem;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-hover-section[b-qxj1pwxjyj] {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 8px;
  min-width: 0;
}

.avatar-hover-label[b-qxj1pwxjyj] {
  color: #8896aa;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1.2;
  text-transform: uppercase;
}

.avatar-hover-text[b-qxj1pwxjyj] {
  overflow: hidden;
  color: #2d3a50;
  font-size: .78rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.avatar-hover-chips[b-qxj1pwxjyj] {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 0;
}

.avatar-hover-chips span[b-qxj1pwxjyj] {
  max-width: 100%;
  overflow: hidden;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .05);
  color: #344054;
  font-size: .70rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[data-bs-theme=dark] .avatar-hover-card[b-qxj1pwxjyj] {
  border-color: rgba(255, 255, 255, .08);
  background: rgba(18, 22, 32, .65);
  box-shadow: 0 8px 32px rgba(0, 0, 0, .32), 0 1px 3px rgba(0, 0, 0, .18);
  color: #e8edf7;
}

[data-bs-theme=dark] .avatar-hover-card[b-qxj1pwxjyj]::after {
  border-color: rgba(255, 255, 255, .08);
  background: rgba(22, 26, 38, .9);
}

[data-bs-theme=dark] .avatar-hover-name[b-qxj1pwxjyj],
[data-bs-theme=dark] .avatar-hover-stats strong[b-qxj1pwxjyj],
[data-bs-theme=dark] .avatar-hover-text[b-qxj1pwxjyj] {
  color: #f3f6fb;
}

[data-bs-theme=dark] .avatar-hover-meta[b-qxj1pwxjyj],
[data-bs-theme=dark] .avatar-hover-label[b-qxj1pwxjyj],
[data-bs-theme=dark] .avatar-hover-stats small[b-qxj1pwxjyj] {
  color: #8a96b0;
}

[data-bs-theme=dark] .avatar-hover-role[b-qxj1pwxjyj] {
  color: #b9c4d8;
}

[data-bs-theme=dark] .avatar-hover-stats--project[b-qxj1pwxjyj] {
  border-bottom-color: rgba(255, 255, 255, .1);
}

[data-bs-theme=dark] .avatar-hover-chips span[b-qxj1pwxjyj] {
  background: rgba(255, 255, 255, .07);
  color: #c8d2e6;
}

[data-bs-theme=dark] .avatar-hover-initials[b-qxj1pwxjyj] {
  background-color: var(--avatar-bg-dark);
  color: var(--avatar-text-dark);
}
/* /Layout/Menu.razor.rz.scp.css */
@charset "UTF-8";
.sidebar[b-o07mev5hrg] {
  position: relative;
  isolation: isolate;
  /* overflow: hidden; -- odebráno, aby dropdowny mohly přetékat; dekorační kruhy drží .sidebar-background-mask */
  z-index: 100; /* Nutné kvůli isolation: isolate – bez něj by .main-part (pozdější v DOM) překresloval obsah sidebaru včetně fixního slide-in menu na mobilu */
  /* Rail záměrně splývá s tělem appky (stejné --studio-app-bg), aby působil plošeji a
     elegantněji – dřívější samostatný gradient railu vytvářel viditelnou "těžkou" hranu
     vůči obsahu. Oddělení teď nese jen vlásková linka níže, ne kontrast pozadí. */
  background: transparent;
}
[data-bs-theme=light] .sidebar[b-o07mev5hrg] {
  /* Vlásková hrana místo plné 1px čáry – jen naznačí předěl, nekreslí tvrdý okraj. */
  border-right: 1px solid color-mix(in srgb, var(--bs-border-color) 30%, transparent);
}
[data-bs-theme=dark] .sidebar[b-o07mev5hrg] {
  /* V tmavém režimu stačí ještě jemnější předěl – tvrdá čára by na tmavém pozadí rušila. */
  border-right: 1px solid rgba(255, 255, 255, 0.05);
}
.sidebar > .sidebar-background-mask[b-o07mev5hrg] {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.sidebar > .sidebar-background-mask[b-o07mev5hrg]::before {
  content: "";
  position: absolute;
  right: -210px;
  bottom: -220px;
  width: 520px;
  height: 520px;
  border-radius: 999px;
  /* Modrý dekorační přísvit ztlumen (0.09 → 0.05): na nově průhledném railu byl kruh
     příliš čitelný a tříštil plochý dojem; teď je to jen náznak barvy u paty railu. */
  background: radial-gradient(circle at center, rgba(54, 142, 255, 0.05) 0%, rgba(54, 142, 255, 0) 78%);
  pointer-events: none;
  z-index: 0;
}
.sidebar > .sidebar-background-mask[b-o07mev5hrg]::after {
  content: "";
  position: absolute;
  left: -190px;
  bottom: -250px;
  width: 500px;
  height: 500px;
  border-radius: 999px;
  background: radial-gradient(circle at center, rgba(255, 190, 65, 0.045) 0%, rgba(255, 190, 65, 0) 80%);
  pointer-events: none;
  z-index: 0;
}
[data-bs-theme=dark] .sidebar > .sidebar-background-mask[b-o07mev5hrg]::after {
  background: radial-gradient(circle at center, rgba(255, 190, 65, 0.018) 0%, rgba(255, 190, 65, 0) 80%);
}
.sidebar > *[b-o07mev5hrg] {
  position: relative;
  z-index: 1;
}
@media (min-width: 768px) {
  .sidebar[b-o07mev5hrg] {
    width: 300px; /* Šířka rozbalené navigace */
    position: sticky; /* Sidebar drží výšku viewportu, aby trojtlačítko bylo vždy dole */
    top: 0;
    height: 100vh;
    transition: width 0.3s ease;
  }
  .sidebar.studio-profile-mode:not(.minimized)[b-o07mev5hrg] {
    width: min(var(--studio-profile-sidebar-width, 520px), 100vw - 24px);
    min-width: min(var(--studio-profile-sidebar-width, 520px), 100vw - 24px);
    max-width: calc(100vw - 24px);
  }
}
.sidebar.auto-minimize[b-o07mev5hrg] {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 99;
  transition: width 0.3s ease;
}
.sidebar.minimized[b-o07mev5hrg] {
  width: 55px;
  overflow: hidden;
}
/* Nový rail (design v2) je vždy minimalizovaný, ale jeho položky (Prostor, uživatelský
   dock) potřebují dropdown, který přesahuje úzkou 55px šířku railu doprava/nahoru.
   overflow:hidden z .minimized by ho oříznul, proto ho tu pro tento design vypínáme. */
.sidebar.minimized.rail-design[b-o07mev5hrg] {
  overflow: visible;
}
.sidebar.minimized[b-o07mev5hrg]  .menu-item {
  justify-content: center;
  margin: 0 0 13px 0 !important;
}

/* TooltipB vytváří vlastní wrapper mimo CSS izolaci RailMenuContent. Pravidla proto
   musí být u společného rodiče railu, jinak se na horní čtveřici vůbec neaplikují.
   Stejný box bez pravého marginu drží všechny ikony opticky uprostřed úzkého railu. */
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host,
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host {
  width: 100%;
  display: flex;
}

.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host > .menu-item,
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host > .menu-item {
  /* Předloha má aktivní stav jako menší čtvercový badge s marginem, ne pozadí přes celou
     šířku – .menu-item proto dostává jen pevnou výšku/šířku odpovídající badge (40px) a
     zbylý prostor v 55px railu vyplňuje margin, aby byla ikona opticky vycentrovaná. */
  flex: 0 0 auto;
  /* display:flex je nutný, aby align/justify-center skutečně vystředily obsah badge.
     Bez něj se ikona u položek s odlišnou vnitřní strukturou (Zprávy mají ikonu ve
     span.position-relative, Prostor má trigger se skrytým textem+chevronem) opírala
     o účaří/horní okraj a badge pak vypadal posunutý vůči ikoně. */
  display: flex;
  width: 40px;
  height: 40px;
  margin-left: auto !important;
  margin-right: auto !important;
  justify-content: center;
  align-items: center;
  /* Padding vynulován ve všech směrech – vertikální 10px (z .menu-item) by u 40px badge
     stlačoval obsah a rozbíjel svislé vycentrování; badge centruje čistě flexem. */
  padding: 0 !important;
  border-radius: 10px;
}

/* Vnitřní obal ikony u Zpráv (span.position-relative) a badge neroztahovat – musí se
   chovat jako prostý střed, ne jako blok s vlastní výškou, jinak vzniká svislý posun. */
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host > .menu-item > .position-relative,
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host > .menu-item > .position-relative {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host .menu-icon,
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host .menu-icon {
  width: auto;
  margin-right: 0;
  font-size: 18px;
  line-height: 1;
  text-align: center;
}

/* Aktivní destinace v úzkém railu (design v2): menší zaoblený čtvercový badge (ne pozadí přes
   celou šířku) kolem ikony, podle předlohy – akcentová barva v tlumené sytosti jako pozadí,
   plná akcentová barva jako barva ikony/textu, aby aktivní destinace byla na první pohled
   čitelná i bez textu vedle ikony. Selektor musí být tady (ne v RailMenuContent.razor.css),
   protože TooltipB vytváří wrapper mimo scoping té komponenty a .rail-design žije na
   .sidebar v Menu.razor. */
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host > .menu-item.active,
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host > .menu-item.active {
  background: color-mix(in srgb, var(--accent-color) 18%, transparent);
  color: var(--accent-color);
}

.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host > .menu-item.active .menu-icon,
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host > .menu-item.active .menu-icon {
  color: var(--accent-color) !important;
}

/* Hover v railu musí zůstat viditelný i přes vlastní badge pozadí; klasický .menu-item:hover
   z MyMenuItem.razor.css sedí, jen ho lehce ztlumíme, aby nekolidoval s aktivním stavem. */
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-tooltip-host > .menu-item:hover:not(.active),
.sidebar.minimized.rail-design[b-o07mev5hrg]  .rail-space-tooltip-host > .menu-item:hover:not(.active) {
  background: light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.07));
}

.sidebar.minimized[b-o07mev5hrg]  .menu-text, .sidebar.minimized[b-o07mev5hrg]  .icon-expand {
  display: none !important;
}
/* Dropdown "Prostor" (a jeho odkazy uvnitř) NENÍ minimalizovaný panel, i když sedí
   uvnitř úzkého railu – text u položek tam musí zůstat čitelný, jinak by šlo jen o
   sloupec ikon bez popisků. Bez téhle výjimky by je globální pravidlo výše smazalo.
   Položky panelu používají .ctxd-item-text (sdílený ctxd styl), zbylá .menu-text je pro
   ActiveUsersIcon, který si vlastní markup drží. */
.sidebar.minimized[b-o07mev5hrg]  .space-menu-dropdown .menu-item {
  justify-content: flex-start;
  margin: 0 !important;
}
.sidebar.minimized[b-o07mev5hrg]  .space-menu-dropdown .menu-text,
.sidebar.minimized[b-o07mev5hrg]  .space-menu-dropdown .ctxd-item-text {
  display: inline !important;
}
/* Popup "Vzhled" (settings-popup-content) je stejný případ jako dropdown Prostoru výše -
   vysouvá se do plné šířky vedle railu, takže popisky uvnitř (např. název jazyka
   u přepínače jazyků) musí zůstat viditelné. Bez téhle výjimky by u globusu nebyl
   žádný text a uživatel by nepoznal, jaký jazyk je vybraný. */
.sidebar.minimized[b-o07mev5hrg]  .settings-popup-content .menu-text {
  display: inline !important;
}

.sidebar.minimized[b-o07mev5hrg]  .project-switch .project-name {
  opacity: 0 !important;
}
.sidebar.minimized[b-o07mev5hrg]  .section-header {
  opacity: 0;
}
@media (min-width: 768px) {
  .sidebar:not(.minimized)[b-o07mev5hrg] {
    min-width: 250px; /* Šířka rozbalené navigace */
    transition: width 0.3s ease;
  }
}
.sidebar.studio-profile-mode:not(.minimized)[b-o07mev5hrg]::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background: rgba(0, 0, 0, 0.18);
  pointer-events: none;
  transition: background 0.15s ease, box-shadow 0.15s ease;
}
[data-bs-theme=dark] .sidebar.studio-profile-mode:not(.minimized)[b-o07mev5hrg]::after {
  background: rgba(255, 255, 255, 0.18);
}
.sidebar.studio-profile-mode.sidebar-resize-near:not(.minimized)[b-o07mev5hrg]::after, .sidebar.studio-profile-mode.sidebar-resizing:not(.minimized)[b-o07mev5hrg]::after {
  background: var(--accent-color);
  box-shadow: 0 0 8px rgba(85, 145, 255, 0.45);
}

.studio-profile-width-toggle[b-o07mev5hrg] {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1200;
}

.sidebar-resize-handle[b-o07mev5hrg] {
  position: fixed;
  top: 50vh;
  left: calc(min(var(--studio-profile-sidebar-width, 520px), 100vw - 24px) - 6px);
  width: 12px;
  height: 88px;
  transform: translateY(-50%);
  cursor: ew-resize;
  z-index: 1201;
}
.sidebar-resize-handle .split-handle-line[b-o07mev5hrg] {
  position: absolute;
  top: 0;
  left: 5px;
  width: 2px;
  height: 100%;
  background: rgba(0, 0, 0, 0.08);
  transition: background 0.15s ease;
}
.sidebar-resize-handle .split-handle-grip[b-o07mev5hrg] {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3px;
  height: 44px;
  border-radius: 3px;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, 0.25);
  box-shadow: -6px 0 0 rgba(0, 0, 0, 0.25), 6px 0 0 rgba(0, 0, 0, 0.25);
  opacity: 0.7;
  transition: opacity 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
[data-bs-theme=dark] .sidebar-resize-handle .split-handle-line[b-o07mev5hrg] {
  background: rgba(255, 255, 255, 0.12);
}
[data-bs-theme=dark] .sidebar-resize-handle .split-handle-grip[b-o07mev5hrg] {
  background: rgba(255, 255, 255, 0.3);
  box-shadow: -6px 0 0 rgba(255, 255, 255, 0.3), 6px 0 0 rgba(255, 255, 255, 0.3);
}
.sidebar-resize-handle:hover .split-handle-line[b-o07mev5hrg] {
  background: var(--accent-color);
}
.sidebar-resize-handle:hover .split-handle-grip[b-o07mev5hrg] {
  opacity: 1;
  background: var(--accent-color);
  box-shadow: -6px 0 0 var(--accent-color), 6px 0 0 var(--accent-color);
}

.sidebar.sidebar-resize-near .sidebar-resize-handle .split-handle-line[b-o07mev5hrg],
.sidebar.sidebar-resizing .sidebar-resize-handle .split-handle-line[b-o07mev5hrg] {
  background: var(--accent-color);
}

.sidebar.sidebar-resize-near .sidebar-resize-handle .split-handle-grip[b-o07mev5hrg],
.sidebar.sidebar-resizing .sidebar-resize-handle .split-handle-grip[b-o07mev5hrg] {
  opacity: 1;
  background: var(--accent-color);
  box-shadow: -6px 0 0 var(--accent-color), 6px 0 0 var(--accent-color);
}

.sidebar-top[b-o07mev5hrg] {
  min-height: 86px;
  position: relative;
  z-index: 2; /* Dropdown přepínače studií musí překrýt nav-scrollable */
  /* Průhledné pozadí – sidebar-top už netvoří vlastní barevný blok, aby rail zůstal plochý
     a jednolitý s tělem appky (dřívější --topbar-bg-color kreslil viditelný horní pruh). */
  background-color: transparent;
}

.sidebar-bottom-bar[b-o07mev5hrg] {
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  /*background: var(--bs-body-bg);*/
  border-top: 1px solid light-dark(rgba(0,0,0,0.06), rgba(255,255,255,0.06));
}

/* Úzký rail (design v2, 55px) je jen o málo širší než samotný avatar (26px) – standardní
   boční padding 12px by dock zúžil a posunul mimo střed sloupce vůči ostatním ikonám nahoře.
   Zmenšený padding drží avatar v UserDock opticky na stejné ose jako rail-tooltip-host výše. */
.sidebar-bottom-bar.is-rail-dock[b-o07mev5hrg] {
  padding: 8px 6px;
}

/*[data-bs-theme=dark] .sidebar-bottom-bar {*/
/*  background: color-mix(in srgb, var(--bs-body-bg) 22%, #000);*/
/*}*/

.compact-mode-toggle[b-o07mev5hrg] {
  width: 29px;
  height: 26px;
  border: 0;
  background: transparent;
  color: color-mix(in srgb, var(--menu-icon-color) 72%, var(--bs-body-color));
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
  opacity: .92;
}

.bottom-logout-form[b-o07mev5hrg] {
  margin: 0;
}

.bottom-logout-btn[b-o07mev5hrg] {
  width: 29px;
  height: 26px;
  border: 0;
  background: transparent;
  color: color-mix(in srgb, var(--menu-icon-color) 72%, var(--bs-body-color));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  opacity: .92;
}

/* Návrat z debug loginu na původní účet – zvýrazněno červenou */
.bottom-logout-btn.is-debug-return[b-o07mev5hrg] {
  color: var(--bs-danger);
  opacity: 1;
}

.bottom-appearance-btn[b-o07mev5hrg] {
  height: 26px;
  border: 0;
  background: transparent;
  color: color-mix(in srgb, var(--menu-icon-color) 72%, var(--bs-body-color));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0;
  font-size: 1rem;
  opacity: .92;
}

.bottom-appearance-text[b-o07mev5hrg] {
  font-size: 0.78rem;
  color: color-mix(in srgb, var(--bs-body-color) 82%, var(--menu-icon-color));
  font-weight: 500;
  opacity: 1;
}

.bottom-appearance-popup[b-o07mev5hrg] {
  position: absolute;
  left: 0;
  bottom: calc(100% + 4px);
  width: 248px;
  border: 1px solid rgb(161 161 161 / 14%);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bs-body-bg) 92%, #1a1a1a);
  padding: 8px 8px 10px 8px;
  z-index: 8;
}

[data-bs-theme=light] .bottom-appearance-popup[b-o07mev5hrg] {
  background: #fff;
}

.bottom-popup-backdrop[b-o07mev5hrg] {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 7;
}

.compact-mode-toggle:hover[b-o07mev5hrg] {
  color: var(--bs-body-color);
}

.compact-mode-toggle[aria-pressed=true][b-o07mev5hrg] {
  color: var(--accent-color);
  border-color: color-mix(in srgb, var(--accent-color) 65%, #6b6b6b);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent-color) 35%, transparent);
}

[data-bs-theme=light] .bottom-logout-btn[b-o07mev5hrg],
[data-bs-theme=light] .bottom-appearance-btn[b-o07mev5hrg],
[data-bs-theme=light] .bottom-appearance-popup[b-o07mev5hrg] {
  border-color: rgb(32 32 32 / 18%);
}

[b-o07mev5hrg] a, [b-o07mev5hrg] button, [b-o07mev5hrg] .btn, [b-o07mev5hrg] .btn-link {
  color: var(--text-color);
}

.top-row[b-o07mev5hrg] {
  height: 3.5rem;
}

[b-o07mev5hrg] .navbar-toggler-anchor {
  position: absolute;
  top: 0.2rem;
  right: 0rem;
  z-index: 1202;
  width: 3.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

[b-o07mev5hrg] .navbar-toggler-anchor.with-studio-switcher {
  right: 2.75rem;
}

[b-o07mev5hrg] .navbar-toggler {
  appearance: none;
  cursor: pointer;
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: 0;
  font-size: 1.8rem;
}

.top-row[b-o07mev5hrg] {
  min-height: 3.5rem;
  background-color: rgba(0, 0, 0, 0.4);
}

.nav-scrollable[b-o07mev5hrg] {
  display: none;
}

.nav-scrollable.mobile-open[b-o07mev5hrg] {
  display: block;
}

@media (min-width: 768px) {
  [b-o07mev5hrg] .navbar-toggler-anchor,
  [b-o07mev5hrg] .navbar-toggler {
    display: none;
  }
  .sidebar[b-o07mev5hrg] {
    display: flex;
    flex-direction: column;
  }
  .sidebar-scrollable[b-o07mev5hrg] {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: visible; /* Horní přepínač prostorů musí kreslit dropdown mimo šířku sidebaru. */
    /* Skrýt scrollbar vizuálně, ale zachovat funkci */
    scrollbar-width: none;
  }
  .sidebar-scrollable[b-o07mev5hrg]::-webkit-scrollbar {
    display: none;
  }
  .nav-scrollable[b-o07mev5hrg] {
    display: block;
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: none;
  }
  .nav-scrollable[b-o07mev5hrg]::-webkit-scrollbar {
    display: none;
  }
  /* Nový rail (design v2): overflow-y:auto výše by (kvůli CSS pravidlu "jedna osa non-visible
     => druhá osa auto") ořízl i vodorovné přetečení dropdownů (Prostor, uživatelský dock).
     Rail má jen 5 položek, takže se nikdy nemusí svisle scrollovat – overflow proto můžeme
     bezpečně vypnout úplně a nechat dropdowny přetéct mimo úzký sloupec. */
  .sidebar.rail-design .nav-scrollable[b-o07mev5hrg] {
    overflow: visible;
    display: flex;
    flex-direction: column;
  }
  /* .nav-scrollable je vnořené v .sidebar-scrollable, což je SKUTEČNÝ sourozenec
     .sidebar-bottom-bar (obojí přímo v .sidebar) – z-index na .nav-scrollable samotném by
     se tedy poměřoval jen vůči jeho vlastním sourozencům uvnitř .sidebar-scrollable, ne
     vůči .sidebar-bottom-bar. Bez z-indexu tady by jeden z nich ležel natrvalo nad druhým
     a jeho position:fixed backdrop by blokoval kliky na spouštěč toho druhého (Prostor
     vs. uživatelský dock).

     Nastavujeme jim STEJNÝ z-index (ne "vítěze podle stavu") – tím se .space-menu-backdrop
     / .user-dock-backdrop (z-index 40 jen v rámci VLASTNÍHO kontejneru) nikdy nedostane nad
     trigger toho druhého kontejneru: stacking pořadí dvou různých kontejnerů se stejným
     z-indexem se řeší podle jejich vlastního vzájemného pořadí, ne podle z-indexů potomků
     uvnitř nich. Dřívější pokus dávat vyšší z-index jen "aktuálně otevřenému" kontejneru
     (:has(.is-open)) opravil vždy jen jeden směr a rozbil ten druhý, protože backdrop
     otevřeného dropdownu pak ležel i nad triggerem toho druhého. */
  .sidebar.rail-design .sidebar-scrollable[b-o07mev5hrg],
  .sidebar.rail-design .sidebar-bottom-bar[b-o07mev5hrg] {
    position: relative;
    z-index: 3;
  }
  /* <nav class="d-flex flex-column"> uvnitř nav-scrollable má jinak flex-grow:0, takže
     je vysoké jen na svůj obsah a margin-top:auto na Prostoru (RailMenuContent) by neměl
     žádný volný prostor k využití. Roztažením na celou výšku nav-scrollable zajistíme,
     že se Prostor skutečně odsune až k dolní hraně railu, těsně nad uživatelský dock. */
  .sidebar.rail-design .nav-scrollable > nav[b-o07mev5hrg] {
    flex: 1;
    min-height: 100%;
  }
}
@media (max-width: 767.98px) {
  .sidebar-scrollable[b-o07mev5hrg] {
    display: contents;
  }
  /* Na mobilu omezit sidebar-top na jednu kompaktní lištu */
  .sidebar-top[b-o07mev5hrg] {
    min-height: 0;
    padding: 0;
  }
}

/* Ikony (zvoneček, avatar) v sidebar-top na mobilu — zobrazí se místo topbaru */
/* Zarovnáno k horní lince hamburgeru (.navbar-toggler-anchor má top: 0.2rem, height: 2.5rem) */
.sidebar-top-mobile-icons[b-o07mev5hrg] {
  position: absolute;
  right: 104px; /* místo pro hamburger (56px) + studio switcher (44px) + mezera */
  top: 0.2rem;
  height: 2.5rem;
  align-items: center;
}

@media (max-width: 767.98px) {
  /* Mobilní slide-in menu */
  .nav-scrollable[b-o07mev5hrg] {
    display: block; /* být v DOM kvůli animaci */
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    width: min(85vw, 320px);
    max-width: 90vw;
    background: #fcfcfc;
    transform: translateX(-100%);
    transition: transform 0.25s ease;
    /* Stín skryjeme ve výchozím (zavřeném) stavu, aby neprosvítal */
    box-shadow: none;
    z-index: 1001;
    overflow-y: auto;
    border-right: 1px solid rgba(0, 0, 0, 0.08);
    will-change: transform;
  }
  /* Zavřené menu: nechytej kliky/gesta přes obsah */
  .nav-scrollable[b-o07mev5hrg] {
    pointer-events: none;
  }
  .mobile-backdrop[b-o07mev5hrg] {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 1000;
  }
  .nav-scrollable.mobile-open[b-o07mev5hrg] {
    transform: translateX(0);
    /* Jemný stín jen v otevřeném stavu */
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.22);
    pointer-events: auto;
  }
  .mobile-backdrop.mobile-open[b-o07mev5hrg] {
    opacity: 1;
    pointer-events: auto;
  }
  /* drobná úprava horní lišty na mobilech */
  .nav-scrollable[b-o07mev5hrg] {
    border-bottom: 1px solid #838383;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
  }
  /* Dark theme mobilní ladění */
  [data-bs-theme=dark] .mobile-backdrop[b-o07mev5hrg] {
    background: rgba(0, 0, 0, 0.55);
  }
  [data-bs-theme=dark] .nav-scrollable[b-o07mev5hrg] {
    background: #0d0d0d;
    border-right: 1px solid rgba(255, 255, 255, 0.06);
  }
  [data-bs-theme=dark] .nav-scrollable.mobile-open[b-o07mev5hrg] {
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.6);
  }
}
[b-o07mev5hrg] .section-header {
  opacity: 0.4;
  font-size: 14px;
  margin: 13px 10px 2px;
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  pointer-events: none;
}
[b-o07mev5hrg] .section-header::after {
  content: "";
  height: 1px;
  flex: 1;
  /* jemná čára, která do ztracena mizí */
  background: linear-gradient(
    to right,
    light-dark(rgb(152 152 152 / 31%), rgb(183 183 183 / 33%)),
    rgba(255, 255, 255, 0.05)
  );
  transform: translateY(1px); /* optické dorovnání baseline */
}

[b-o07mev5hrg] .submenu-items {
  margin-left: 15px;
  margin-top: 4px;
  margin-bottom: 8px;
}
[b-o07mev5hrg] .submenu-items .menu-item {
  padding: 6px 0px 6px 8px;
  font-size: 0.9em;
  opacity: 0.85;
}
[b-o07mev5hrg] .submenu-items .menu-item .menu-icon {
  font-size: 1.1em;
  width: 26px;
  margin-right: 8px;
}
[b-o07mev5hrg] .submenu-items .menu-item:hover {
  opacity: 1;
}
[b-o07mev5hrg] .submenu-items .menu-item.active {
  opacity: 1;
}
.sidebar.minimized[b-o07mev5hrg]  .submenu-items {
  display: none;
}
@media (max-width: 767.98px) {
  [b-o07mev5hrg] .submenu-items {
    display: none;
  }
}

/* Nový rail (design v2) je vždy jen 55px široký, takže dropdowny položek "Prostor" a
   uživatelského docku musí přesahovat doprava/nahoru mimo rail, jinak by se do něj
   nevešel žádný čitelný text. Tady (v Menu.razor.css) máme přístup k oběma stranám
   přes ::deep, protože .rail-design je na .sidebar v této komponentě. */
/* Vysunutí do strany musí přebít ukotvení z .ctxd-panel--up (bottom: 100% + 6px), které
   panel v plné šířce railu posouvá nad spouštěč – proto explicitní bottom: 0. */
.sidebar.minimized.rail-design[b-o07mev5hrg]  .space-menu-dropdown {
  left: calc(100% + 6px);
  bottom: 0;
}

.sidebar.minimized.rail-design[b-o07mev5hrg]  .user-dock-menu {
  left: calc(100% + 6px);
  right: auto;
  bottom: 0;
  width: 244px;
}
/* /Layout/MenuContent/Menuitems/ActiveUsersIcon.razor.rz.scp.css */
.active-users-icon[b-egi205ymys] {
    background: rgba(255, 255, 255, 0.01);
}

.count-badge[b-egi205ymys] {
    top: -6px;
    left: 22px;
    position: absolute;
    opacity: 0.6;
    font-size: 10px;
    font-weight: bold;
}

[b-egi205ymys] a {
    margin-left: 0px;
}

[b-egi205ymys] .is-shop-user {
    background: silver;
    color: white;
    font-size: .8em;
    padding: 2px 5px 2px 5px;
    border-radius: 3px;
}
/* /Layout/MenuContent/Menuitems/LanguageSwitcher.razor.rz.scp.css */
.language-switcher[b-6ay18804e5] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem;
}
.language-switcher.minimized[b-6ay18804e5] {
  display: none;
}
.language-switcher .menu-icon[b-6ay18804e5] {
  font-size: 1.2rem;
  color: var(--menu-icon-color);
  flex: 0 0 auto;
}
.language-switcher-options[b-6ay18804e5] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.language-switcher-option[b-6ay18804e5] {
  background: transparent;
  border: 1px solid rgb(161 161 161 / 14%);
  border-radius: 6px;
  color: inherit;
  cursor: pointer;
  font-size: 0.8rem;
  padding: 0.2rem 0.5rem;
}
.language-switcher-option:hover[b-6ay18804e5] {
  background: rgb(161 161 161 / 12%);
}
.language-switcher-option.active[b-6ay18804e5] {
  background: rgb(161 161 161 / 12%);
  font-weight: 600;
  opacity: 1;
}
[data-bs-theme=light] .language-switcher-option[b-6ay18804e5] {
  border-color: rgb(32 32 32 / 12%);
}
[data-bs-theme=light] .language-switcher-option:hover[b-6ay18804e5],
[data-bs-theme=light] .language-switcher-option.active[b-6ay18804e5] {
  background: rgb(32 32 32 / 6%);
}
/* /Layout/MenuContent/Menuitems/MessagesMenuItem.razor.rz.scp.css */
.count-badge[b-sba6zmidpd] {
  background: #d52323;
  font-size: 13px;
  color: white;
  border-radius: 50%;
  display: inline-block;
  width: 21px;
  height: 21px;
  text-align: center;
}
/* /Layout/MenuContent/Menuitems/MyMenuItem.razor.rz.scp.css */
.menu-item[b-4qp8syz41k] {
  display: flex;
  align-items: center;
  flex-direction: row;
  cursor: pointer;
  font-weight: 500;
  border-radius: 10px;
  padding: 10px 0px 10px 8px;
  margin: 0px 0;
  transition: all 0.2s;
}
.menu-item.hide-menu-headers[b-4qp8syz41k] {
  margin: 4px 0;
}
.menu-item.active[b-4qp8syz41k]  .menu-text {
  font-weight: 700;
}
.menu-item:hover[b-4qp8syz41k], .menu-item.active[b-4qp8syz41k] {
  color: black;
}
.menu-item:hover[b-4qp8syz41k]  .menu-text, .menu-item.active[b-4qp8syz41k]  .menu-text {
  opacity: 1;
}
[data-bs-theme=light] .menu-item:hover[b-4qp8syz41k] {
  background: #ededed;
}
[data-bs-theme=light] .menu-item.active[b-4qp8syz41k] {
  background: #ededed;
}
[data-bs-theme=dark] .menu-item:hover[b-4qp8syz41k] {
  background: #1b1b1b;
  color: white;
}
[data-bs-theme=dark] .menu-item.active[b-4qp8syz41k] {
  background: rgba(27, 27, 27, 0.7019607843);
  color: white;
}
.menu-item.active[b-4qp8syz41k]  .menu-icon {
  color: var(--accent-color) !important;
  font-weight: 500 !important;
}
.menu-item.active[b-4qp8syz41k]  .menu-icon-500weight-if-active.menu-icon {
  font-weight: 500 !important;
}
[data-bs-theme=dark] .menu-item:hover[b-4qp8syz41k]  .menu-icon {
  color: white;
}
[data-bs-theme=light] .menu-item:hover[b-4qp8syz41k]  .menu-icon {
  color: black;
  font-weight: 500;
}
.menu-item[b-4qp8syz41k]  .menu-icon {
  width: 23px;
  font-size: 16px;
  margin-right: 11px;
  text-align: center;
  color: var(--menu-icon-color);
}
.menu-item.menu-item-small[b-4qp8syz41k]  {
  padding: 8px 0px 8px 10px;
}
.menu-item.menu-item-small[b-4qp8syz41k]  .menu-icon {
  width: 26px;
  font-size: 1.3em;
  margin-right: 7px;
  text-align: center;
  color: var(--menu-icon-color);
}
/* /Layout/MenuContent/Menuitems/Projects/MenuProjectFolder.razor.rz.scp.css */
.folder-item.active > div > .folder-icon[b-dfbvsotjot] {
  font-weight: bold;
  color: #7878ff;
}

.folder-name[b-dfbvsotjot] {
  border-bottom: 1px solid transparent;
}
.folder-name:hover[b-dfbvsotjot] {
  border-bottom-color: #8a8a8a;
}

/*# sourceMappingURL=MenuProjectFolder.razor.css.map */
/* /Layout/MenuContent/Menuitems/Settings.razor.rz.scp.css */
.nav-item[b-3d6z014a1i]  a.active {
  font-weight: bold;
}

.badge[b-3d6z014a1i] {
  background: #dfdaff !important;
  color: black;
}
[data-bs-theme=dark] .badge[b-3d6z014a1i] {
  background: #404040 !important;
  color: #ffffff;
}

.nav-link:hover[b-3d6z014a1i] {
  background-color: #e9ecef;
  color: #000;
  border-radius: 4px;
  cursor: pointer;
}

.custom-collapse[b-3d6z014a1i] {
  max-height: 0;
  margin-top: 0px;
  overflow: hidden;
}

.custom-collapse.show[b-3d6z014a1i] {
  margin-top: 15px;
  max-height: 1000px;
}

.project-customer[b-3d6z014a1i] {
  font-size: 0.9em;
  opacity: 0.65;
}

.settings-popup-content[b-3d6z014a1i] {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
/* /Layout/MenuContent/Menuitems/SpaceMenuItem.razor.rz.scp.css */
/* Vzhled rozbaleného panelu (rámeček, stín, položky, hlavička, oddělovače, sekční labely)
   dodávají sdílené .ctxd-* třídy v app.css – stejné, jaké používá WorkspaceContextMenu
   a ProjectContextMenu v topbaru. Tady zůstává jen to, co je specifické pro rail:
   spouštěč, backdrop a ukotvení panelu. */

/* Kontejner položky "Prostor" musí být pozicovací kontext pro absolutně umístěný dropdown.
   Pozor: z-index tady nestačí na to, aby spouštěč "vyhrál" nad backdropem uživatelského
   docku – ten leží v .sidebar-bottom-bar, což je JINÁ větev stromu (mimo .nav-scrollable,
   kde je tato komponenta), takže se jejich z-indexy neporovnávají navzájem, ale až podle
   z-indexu společných rodičů. Řešení je proto na .rail-space-slot v RailMenuContent.razor.css. */
.space-menu[b-xx4fyu2huh] {
  position: relative;
}

/* Spouštěč se tváří jako běžná menu-item (kurzor + chevron zarovnaný doprava). */
.space-menu-trigger[b-xx4fyu2huh] {
  cursor: pointer;
}

.space-menu-trigger .icon-expand[b-xx4fyu2huh] {
  opacity: 0.5;
  font-size: 0.85em;
}

/* Noty mají vůči svému boxu těžiště opticky vlevo; malý posun doprava je proto nutný,
   aby v úzkém railu působily stejně vycentrovaně jako ostatní ikony. */
.space-menu-trigger .space-menu-icon[b-xx4fyu2huh] {
  width: 28px;
  margin-right: 0;
  font-size: 21px;
  transform: translateX(1px);
}

/* Průhledný backdrop přes celý viewport: klik kamkoli mimo dropdown ho zavře. */
.space-menu-backdrop[b-xx4fyu2huh] {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 40;
}

/* Ukotvení panelu. Otevírá se NAHORU (řeší .ctxd-panel--up), protože Prostor je díky
   margin-top:auto v RailMenuContent vždy na spodku railu, těsně nad uživatelským dockem –
   dolů by dropdown neměl kam růst a ořezával by se o spodní hranu okna. */
.space-menu-dropdown[b-xx4fyu2huh] {
  left: 0;
  width: 250px;
}

/* Avatar prostoru v hlavičce – stejná velikost jako u hlavičky uživatelského docku. */
.space-menu-dropdown[b-xx4fyu2huh]  .space-menu-header-avatar {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}

/* MyMenuItem si nese vlastní .menu-item styly z globálního menu; uvnitř ctxd panelu je
   musíme neutralizovat, jinak by položka měla dvojí padding a margin z railu.
   ::deep je nutné – <a> renderuje vnořená komponenta MyMenuItem s cizím scope atributem. */
.space-menu-dropdown[b-xx4fyu2huh]  .menu-item.ctxd-item {
  margin: 0 !important;
  justify-content: flex-start;
}

/* Aktivní položka (aktuální stránka) používá zvýraznění ctxd panelu, ne barevný
   accent z railu – uvnitř dropdownu by plný barevný pruh působil příliš křiklavě. */
.space-menu-dropdown[b-xx4fyu2huh]  .menu-item.ctxd-item.active {
  background: rgb(161 161 161 / 12%);
}

[data-bs-theme=light] .space-menu-dropdown[b-xx4fyu2huh]  .menu-item.ctxd-item.active {
  background: rgb(32 32 32 / 6%);
}

/* TooltipB obaluje spouštěč do vlastního <div> – musí vyplnit šířku a vycentrovat
   ikonu stejně jako ostatní položky railu (viz RailMenuContent.razor.css), jinak by
   "Prostor" byl v úzkém railu vizuálně posunutý oproti ostatním ikonám. */
[b-xx4fyu2huh] .rail-space-tooltip-host {
  width: 100%;
  display: flex;
}

[b-xx4fyu2huh] .rail-space-tooltip-host > .menu-item {
  flex: 1;
  justify-content: center;
}
/* /Layout/MenuContent/Menuitems/StudioMenuItem.razor.rz.scp.css */
/* Název studia - oříznutí dlouhého textu aby nepřetékal do ikon */
[b-9up0nru97f] .studio-name-text {
  max-width: 145px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

[b-9up0nru97f] .btn-more {
  opacity: 0.4;
  transition: opacity 0.3s ease-in-out;
}
[b-9up0nru97f] .btn-more:hover .icon {
  font-weight: 900 !important;
}

[b-9up0nru97f] .component-container:hover .btn-more {
  opacity: 1;
}

[b-9up0nru97f] .submenu-items {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-in-out;
}
[b-9up0nru97f] .submenu-items.expanded {
  max-height: 400px;
}

/*# sourceMappingURL=StudioMenuItem.razor.css.map */
/* /Layout/MenuContent/Menuitems/UserDock.razor.rz.scp.css */
/* Vzhled rozbaleného panelu (rámeček, stín, položky, hlavička, oddělovače, flyout) dodávají
   sdílené .ctxd-* třídy v app.css – stejné, jaké používá WorkspaceContextMenu a
   ProjectContextMenu v topbaru. Tady zůstává jen to, co je specifické pro dock v railu:
   spouštěč, ukotvení panelu a pár drobností (avatar, badge). */

/* Dock je pozicovací kontext pro dropdown, který se otevírá nahoru. */
.user-dock[b-chp1umiapr] {
  position: relative;
  width: 100%;
}

/* Spouštěč = celý řádek avatar + jméno + chevron. */
.user-dock-trigger[b-chp1umiapr] {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  border: 0;
  background: transparent;
  padding: 6px 8px;
  border-radius: 9px;
  cursor: pointer;
  color: var(--bs-body-color);
  transition: background 0.12s ease;
}

.user-dock-trigger:hover[b-chp1umiapr],
.user-dock-trigger.open[b-chp1umiapr] {
  background: light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.06));
}

.user-dock-trigger[b-chp1umiapr]  .user-dock-avatar {
  width: 26px;
  height: 26px;
  flex-shrink: 0;
}

.user-dock-name[b-chp1umiapr] {
  flex: 1;
  min-width: 0;
  text-align: left;
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.user-dock-chevron[b-chp1umiapr] {
  font-size: 0.8em;
  opacity: 0.55;
  flex-shrink: 0;
}

/* Průhledný backdrop přes viewport: klik mimo dropdown ho zavře. */
.user-dock-backdrop[b-chp1umiapr] {
  position: fixed;
  inset: 0;
  background: transparent;
  z-index: 40;
}

/* Ukotvení panelu: roztažený na šířku docku (rail v plné šířce), s minimem pro čitelnost.
   Vlastní vzhled a otevírání nahoru řeší .ctxd-panel / .ctxd-panel--up.
   Nižší z-index než v topbaru (1041) není potřeba přebíjet – panel žije v railu,
   kde si vrstvení řeší .rail-space-slot a backdrop výše. */
.user-dock-menu[b-chp1umiapr] {
  left: 0;
  right: 0;
  min-width: 240px;
}

.user-dock[b-chp1umiapr]  .user-dock-head-avatar {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
}

/* Tečka u zpětné vazby (jen superadmin) – signalizuje novou zpětnou vazbu, aniž by
   položka potřebovala číslo. Odsazená doprava, aby nekolidovala s textem položky. */
.user-dock-badge[b-chp1umiapr] {
  width: 7px;
  height: 7px;
  margin-left: auto;
  border-radius: 50%;
  background: var(--bs-danger);
  flex: 0 0 auto;
}

.user-dock-item-wrap[b-chp1umiapr] {
  position: relative;
}

/* Bez ::deep – položky jsou elementy přímo v této komponentě, takže nesou její scope atribut. */
.ctxd-item.text-danger[b-chp1umiapr] {
  color: var(--bs-danger);
}

.ctxd-item.text-danger .ctxd-item-icon[b-chp1umiapr] {
  opacity: 1;
}

.user-dock-logout-form[b-chp1umiapr] {
  margin: 0;
}

/* Appearance flyout je užší než výchozí .ctxd-flyout (280px) – obsah Settings je kompaktní
   a širší panel by vedle railu působil neúměrně. */
.user-dock-appearance[b-chp1umiapr] {
  width: 232px;
  max-height: min(70vh, 420px);
}

/* Pozicování dropdownu pro úzký (minimalizovaný) rail je řešeno v Menu.razor.css
   (::deep .user-dock-menu), protože scoped CSS Blazoru nepodporuje :host-context a
   .sidebar je mimo tuto komponentu – Menu.razor má k oběma stranám přístup najednou. */
/* /Layout/MenuContent/Menuitems/UserMenu.razor.rz.scp.css */
.user-menu-trigger[b-pca3jwt00w] {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

[b-pca3jwt00w] .user-menu-avatar .avatar {
    width: 30px;
    height: 30px;
}
/* /Layout/MenuContent/RailMenuContent.razor.rz.scp.css */
/* Odsune Prostor na spodek railu (nav-scrollable je flex:1 sloupec), takže vizuálně
   "přilne" k uživatelskému docku pod ním – mezera od denní čtveřice signalizuje
   jinou kategorii (občasná správa), aniž by bylo nutné dropdown štěpit na víc ikon.
   Bez ::deep – .rail-space-slot je element přímo v této komponentě (má scoping atribut
   na sobě), ::deep by generovalo potomkový selektor, který by na něj nikdy neseděl. */
.rail-space-slot[b-zzzod3dy49] {
  margin-top: auto;
  width: 100%;
}
/* /Layout/MenuContent/StudioProfileMenuContent.razor.rz.scp.css */
[b-skimmgqpzy] .accordion-header .accordion-button {
    /*Odstranění default levého paddingu kvůli sjednocení levého zarovnání */
    padding-left: 0px !important;
    background: none !important;
}


[b-skimmgqpzy] .accordion-item {
    background: transparent !important;
    border: none !important;
}

#studioProfileAccordion[b-skimmgqpzy] {
    background: transparent;
}

.public-pages-sidebar[b-skimmgqpzy] {
    padding: 0.15rem 0.35rem 0.45rem 0.55rem;
    font-size: 1rem;
}

.public-pages-sidebar.editor-open[b-skimmgqpzy] {
    max-height: calc(100vh - 3.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.profile-page-row[b-skimmgqpzy] {
    border-bottom: 1px solid var(--bs-border-color);
}

.accordion-button[b-skimmgqpzy] {
    background: transparent !important;
    border: none !important;
    padding: 0.85rem 0.4rem !important;
}

.accordion-button:focus[b-skimmgqpzy] {
    box-shadow: none !important;
    border: none !important;
}


.accordion-button[b-skimmgqpzy] {
    box-shadow: none !important;
    font-size: 1.05rem;
    font-weight: 600;
}

.accordion-header-wrapper[b-skimmgqpzy] {
    position: relative;
}

.switch-container[b-skimmgqpzy] {
    position: absolute;
    right: 40px;
    z-index: 10;
    pointer-events: auto;
    transform: scale(0.4);
}

/* Větší a konzistentnější typografie/spacing napříč veřejnými editory. */
[b-skimmgqpzy] .subpage-editor-panel,
[b-skimmgqpzy] .courses-editor-panel,
[b-skimmgqpzy] .profile-courses-editor,
[b-skimmgqpzy] .profile-equipment-editor,
[b-skimmgqpzy] .profile-gallery-editor,
[b-skimmgqpzy] .profile-references-editor,
[b-skimmgqpzy] .profile-featured-works-editor,
[b-skimmgqpzy] .profile-bands-editor,
[b-skimmgqpzy] .profile-team-editor {
    font-size: 1rem;
    line-height: 1.45;
}

[b-skimmgqpzy] .subpage-editor-panel .large2,
[b-skimmgqpzy] .courses-editor-panel .large2 {
    font-size: 1.35rem !important;
}

[b-skimmgqpzy] .subpage-editor-panel .large,
[b-skimmgqpzy] .courses-editor-panel .large {
    font-size: 1.15rem !important;
}

[b-skimmgqpzy] .subpage-editor-panel .Xcard,
[b-skimmgqpzy] .courses-editor-panel .Xcard {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    margin-bottom: 1rem !important;
}

[b-skimmgqpzy] .subpage-editor-panel .editor-block,
[b-skimmgqpzy] .courses-editor-panel .editor-block {
    margin-bottom: 1rem;
    padding-bottom: 0.2rem;
    border-bottom: 1px solid var(--bs-border-color);
}

[b-skimmgqpzy] .subpage-editor-panel .editor-block-body,
[b-skimmgqpzy] .courses-editor-panel .editor-block-body {
    padding: 0.2rem 0;
}

[b-skimmgqpzy] .subpage-editor-panel .editor-block-head,
[b-skimmgqpzy] .courses-editor-panel .editor-block-head {
    padding: 0.15rem 0;
}

[b-skimmgqpzy] .subpage-editor-panel .card-body,
[b-skimmgqpzy] .subpage-editor-panel .Xcard-body,
[b-skimmgqpzy] .courses-editor-panel .card-body,
[b-skimmgqpzy] .courses-editor-panel .Xcard-body {
    padding: 0 !important;
}

[b-skimmgqpzy] .accordion-body .small {
    font-size: 1rem !important;
}

[b-skimmgqpzy] .accordion-body .smaller {
    font-size: 0.95rem !important;
}

[b-skimmgqpzy] .accordion-body .form-label,
[b-skimmgqpzy] .accordion-body label.text-muted,
[b-skimmgqpzy] .accordion-body .text-muted {
    font-size: 0.97rem !important;
}

[b-skimmgqpzy] .accordion-body a.smaller i,
[b-skimmgqpzy] .accordion-body button.smaller i,
[b-skimmgqpzy] .accordion-body .btn.smaller i,
[b-skimmgqpzy] .accordion-body .drag-handle i {
    font-size: 1rem;
}

[b-skimmgqpzy] .subpage-editor-panel .accordion-header,
[b-skimmgqpzy] .courses-editor-panel .accordion-header {
    min-height: 2.8rem;
}

[b-skimmgqpzy] .subpage-editor-panel .accordion-body,
[b-skimmgqpzy] .courses-editor-panel .accordion-body {
    padding: 0.95rem 0.75rem 1rem !important;
}

[b-skimmgqpzy] .subpage-editor-panel input,
[b-skimmgqpzy] .subpage-editor-panel select,
[b-skimmgqpzy] .subpage-editor-panel textarea,
[b-skimmgqpzy] .subpage-editor-panel .form-control,
[b-skimmgqpzy] .subpage-editor-panel .form-select,
[b-skimmgqpzy] .courses-editor-panel input,
[b-skimmgqpzy] .courses-editor-panel select,
[b-skimmgqpzy] .courses-editor-panel textarea,
[b-skimmgqpzy] .courses-editor-panel .form-control,
[b-skimmgqpzy] .courses-editor-panel .form-select {
    font-size: 1rem !important;
}

[b-skimmgqpzy] .subpage-editor-panel .btn-sm,
[b-skimmgqpzy] .courses-editor-panel .btn-sm {
    font-size: 0.92rem !important;
}

[b-skimmgqpzy] .subpage-editor-panel .ProseMirror,
[b-skimmgqpzy] .courses-editor-panel .ProseMirror {
    font-size: 1rem !important;
    line-height: 1.55;
    min-height: 130px;
}

[b-skimmgqpzy] .subpage-editor-panel .d-flex.gap-1.mt-3,
[b-skimmgqpzy] .courses-editor-panel .d-flex.gap-1.mt-3 {
    margin-top: 1rem !important;
}
/* /Layout/Shell/EditorLayout.razor.rz.scp.css */
/* Celoobrazovkový shell editoru.

   Editor si uvnitř nárokuje plnou výšku okna. V MainLayoutu nad ním ještě seděl topbar,
   takže součet přesahoval okno a stránka se rolovala jako celek místo aby rolovaly její
   části. Tady je layout jediným obsahem stránky, takže 100dvh sedí. */

.editor-layout[b-vz867kzkkc] {
    height: 100dvh;
    overflow: hidden;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

/* Na úzkém okně roluje editor jako celek (panel je pod náhledem, dva scrolly nad sebou
   by si braly kolečko podle pozice kurzoru). Layout mu proto musí rolování dovolit –
   s pevnou výškou a hidden by se obsah pod prvním přehybem stal nedostupným. */
@media (max-width: 992px) {
    .editor-layout[b-vz867kzkkc] {
        height: auto;
        min-height: 100dvh;
        overflow: visible;
    }
}
/* /Layout/Shell/MainLayout.razor.rz.scp.css */
.page[b-rge3oaz5l1] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    overflow-x: clip;

    @media (min-width: 768px) {
        flex-direction: row;[b-rge3oaz5l1]
    }
}

main[b-rge3oaz5l1] {
    flex: 1;
}

.main-part[b-rge3oaz5l1] {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    overflow-x: hidden; /* Zabrání horizontálnímu scrollování - jen kvůli tom uddělovači pod nadpisem, který je roztažený přes celou obrazovku a ještě dál :) */
}

/* Pouze když je sidebar v auto-minimize režimu, upravíme margin */
.sidebar.auto-minimize ~ .main-part[b-rge3oaz5l1] {
    margin-left: 55px;
    transition: margin-left 0.3s ease;
}

@media (max-width: 767.98px) {
    .top-row[b-rge3oaz5l1] {
        justify-content: space-between;
    }

    .top-row[b-rge3oaz5l1]  a, .top-row[b-rge3oaz5l1]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 768px) {

    article[b-rge3oaz5l1] {
        padding: 0 10px 10px 20px;
    }

    .page[b-rge3oaz5l1] {
        flex-direction: row;
        align-items: stretch;
    }

    [b-rge3oaz5l1] .sidebar {
        flex: 0 0 auto;
        align-self: stretch;
    }

    .top-row[b-rge3oaz5l1] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-rge3oaz5l1]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-rge3oaz5l1] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-rge3oaz5l1] {
    background: var(--bs-danger-bg-subtle, #f8d7da);
    border-top: 1px solid var(--bs-danger-border-subtle, #f1aeb5);
    bottom: 0;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.12);
    color: var(--bs-danger-text-emphasis, #58151c);
    display: none;
    font-size: 0.9rem;
    left: 0;
    padding: 0.75rem 3rem 0.75rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .reload[b-rge3oaz5l1] {
    font-weight: 600;
    margin-left: 0.5rem;
}

#blazor-error-ui .dismiss[b-rge3oaz5l1] {
    cursor: pointer;
    opacity: 0.6;
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
}

/* Styly pro nativnější vzhled na telefonu */
.phone-app[b-rge3oaz5l1] {
    /* Zakázání označování textu */
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;      
    
    /* Zakázání tap highlight (modrý overlay při tapnutí) */
    -webkit-tap-highlight-color: transparent;
    
    /* Zakázání callout menu (long press menu na iOS) */
    -webkit-touch-callout: none;
}

/* Povolit označování textu pouze v input a textarea polích */
.phone-app input[b-rge3oaz5l1],
.phone-app textarea[b-rge3oaz5l1] {
    user-select: text;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
}

/* Povolit označování textu v editovatelných prvcích */
.phone-app [contenteditable="true"][b-rge3oaz5l1] {
    user-select: text;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
}

/* Zakázat cursor pointer na mobilní aplikaci (není to nativní) */
.phone-app *[b-rge3oaz5l1] {
    cursor: default !important;
}

/* Ale povolit pointer na tlačítkách a odkazech (jsou klikací) */
.phone-app button[b-rge3oaz5l1],
.phone-app a[b-rge3oaz5l1],
.phone-app .btn[b-rge3oaz5l1],
.phone-app .pointer[b-rge3oaz5l1],
.phone-app .cursor-pointer[b-rge3oaz5l1] {
    cursor: pointer !important;
}

/* Padding pod obsahem, aby poslední prvek nebyl schovaný pod bottom navem (64px + safe-area) */
.pb-bottom-nav[b-rge3oaz5l1] {
    padding-bottom: calc(64px + env(safe-area-inset-bottom)) !important;
}

/* Padding nad obsahem, aby první prvek nebyl schovaný pod fixní horní lištou (56px + safe-area).
   Ruší zároveň výchozí horní margin obsahu, aby nevznikla dvojitá mezera. */
.pt-top-header[b-rge3oaz5l1] {
    margin-top: 0 !important;
    padding-top: calc(56px + env(safe-area-inset-top)) !important;
}

/* Android dostane stejný extra odstup jako fixní header, aby obsah nezačínal příliš vysoko. */
:global(html.maui-android) .pt-top-header[b-rge3oaz5l1] {
    padding-top: calc(62px + env(safe-area-inset-top)) !important;
}

/* Okamžitá vizuální odezva na tap – stejný efekt jako nativní iOS/Android */
.phone-app button:active[b-rge3oaz5l1],
.phone-app a:active[b-rge3oaz5l1],
.phone-app .btn:active[b-rge3oaz5l1] {
    opacity: 0.55;
    transform: scale(0.97);
    transition: opacity 0.08s ease, transform 0.08s ease;
}

/* Spinner overlay pro lazy sekce na telefonu */
.phone-app .phone-loading-overlay[b-rge3oaz5l1] {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-body-bg);
    opacity: 1;
    transition: opacity 0.2s ease;
}

.phone-app .phone-loading-overlay.fade-out[b-rge3oaz5l1] {
    opacity: 0;
    pointer-events: none;
}
/* /Layout/Shell/ReconnectModal.razor.rz.scp.css */
#components-reconnect-modal[b-05zuh5u7ku] {
    /* Element je obyčejný div ovládaný boot.js přes style.display, ne <dialog>, proto
       potřebuje vlastní fixed overlay + pozadí místo nativního showModal()/::backdrop. */
    position: fixed;
    inset: 0;
    z-index: 10000;
    background-color: rgba(20, 20, 20, 0.35);
    align-items: flex-start;
    justify-content: center;
}

#components-reconnect-modal .content[b-05zuh5u7ku] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    background-color: var(--bs-body-bg, #fff);
    width: 18rem;
    margin-top: 24vh;
    padding: 1.75rem 1.5rem;
    border-radius: 0.75rem;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    text-align: center;
    /* Viditelnost celého modalu řídí boot.js přes style.display, proto animace
       nesmí držet opacity:0 jako výchozí stav - jinak modal zůstane neviditelný i při display:flex. */
    animation: components-reconnect-modal-slideUp-b-05zuh5u7ku 0.4s cubic-bezier(.05, .89, .25, 1.02), components-reconnect-modal-fadeInOpacity-b-05zuh5u7ku 0.4s ease-in-out;
    animation-fill-mode: both;
}

#components-reconnect-modal .reconnect-title[b-05zuh5u7ku] {
    font-size: 0.95rem;
    font-weight: 500;
    opacity: 0.85;
}

/* Automatický reconnect (spinner) je vidět po celou dobu výpadku - tahle nabídka ručního
   reloadu se jen PŘIDÁ pod něj po delším čekání, nikdy ho nenahrazuje (viz ReconnectModal.razor).
   Přepíná se třídou components-reconnect-manual na kořenovém elementu z boot.js. */
#components-reconnect-modal .manual-reload-hint[b-05zuh5u7ku] {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.25rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    width: 100%;
}

#components-reconnect-modal .reconnect-subtext[b-05zuh5u7ku] {
    font-size: 0.8rem;
    opacity: 0.65;
}

#components-reconnect-modal.components-reconnect-manual .manual-reload-hint[b-05zuh5u7ku] {
    display: flex;
}

@keyframes components-reconnect-modal-slideUp-b-05zuh5u7ku {
    0% {
        transform: translateY(12px);
    }

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

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

    100% {
        opacity: 1;
    }
}
/* /Layout/Switchers/CustomerSwitch.razor.rz.scp.css */
.nav-item[b-r77va5nhsz]  a.active {
  font-weight: bold;
}

.badge[b-r77va5nhsz] {
  background: #dfdaff !important;
  color: black;
}
[data-bs-theme=dark] .badge[b-r77va5nhsz] {
  background: #404040 !important;
  color: #ffffff;
}

.nav-link:hover[b-r77va5nhsz] {
  background-color: #e9ecef;
  color: #000;
  border-radius: 4px;
  cursor: pointer;
}

.custom-collapse[b-r77va5nhsz] {
  max-height: 0;
  margin-top: 0px;
  overflow: hidden;
}

.custom-collapse.show[b-r77va5nhsz] {
  margin-top: 15px;
  max-height: 1000px;
}

.project-customer[b-r77va5nhsz] {
  font-size: 0.9em;
  opacity: 0.65;
}
/* /Layout/Switchers/MenuProjectSwitch.razor.rz.scp.css */
.nav-item[b-vy2aqsq2uz]  a.active {
  font-weight: bold;
}

.btn-more[b-vy2aqsq2uz] {
  padding: 5px 10px;
  border-radius: 5px;
  margin-right: 3px;
  border: 1px solid transparent;
  transition: 0.25s;
}
.btn-more:hover[b-vy2aqsq2uz] {
  opacity: 1;
}
[data-bs-theme=dark] .btn-more:hover[b-vy2aqsq2uz] {
  border-color: #3a3a3a;
}
[data-bs-theme=light] .btn-more:hover[b-vy2aqsq2uz] {
  border-color: #cacaca;
}

/*# sourceMappingURL=MenuProjectSwitch.razor.css.map */
/* /Layout/Switchers/ProjectContextMenu.razor.rz.scp.css */
/* Jen to, co je specifické pro menu PROJEKTU. Skelet dropdownu (trigger, panel, položky,
   flyout, search, hlavička) je sdílený v app.css pod .ctxd-* – viz ContextDropdown.razor. */

/* Název projektu ve spouštěči: o něco lehčí než název prostoru o úroveň výš, aby byla
   v breadcrumbu vidět hierarchie (prostor = 600, projekt = 500). */
.pctx-name[b-vh2m0hi9jm] {
    font-weight: 500;
    white-space: nowrap;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pctx-chevron[b-vh2m0hi9jm] {
    font-size: 0.7em;
    opacity: 0.5;
}

/* Hlavička skupiny ("Připnuté" / "Ostatní") uvnitř seznamu projektů. Sdílená .ctxd-label má
   odsazení počítané pro nadpis nad celou sekcí; tady jde o mezisekci uvnitř seznamu, takže
   ji nahoře stáhneme, aby skupiny působily jako jeden seznam a ne jako dva oddělené bloky. */
.pctx-group-label[b-vh2m0hi9jm] {
    padding-top: 6px;
}

.pctx-group-label:first-child[b-vh2m0hi9jm] {
    padding-top: 2px;
}

/* Špendlík v řádku seznamu: ve výchozím stavu skrytý, odkryje se na hover řádku - jinak by
   sloupec ikon soupeřil o pozornost s názvy projektů. U připnutého projektu zůstává vidět
   vždy, protože tam nese informaci (proč je projekt nahoře), ne jen akci.
   Stejný vzor jako wctx-switch-pin ve WorkspaceContextMenu, ať se pinování chová všude stejně. */
.pctx-list-pin[b-vh2m0hi9jm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 5px;
    font-size: 0.78em;
    opacity: 0;
    cursor: pointer;
    transition: opacity 0.1s ease, background-color 0.1s ease;
}

[b-vh2m0hi9jm] .ctxd-list-item:hover .pctx-list-pin {
    opacity: 0.55;
}

.pctx-list-pin:hover[b-vh2m0hi9jm] {
    opacity: 1 !important;
    background: rgb(161 161 161 / 18%);
}

/* Připnutý projekt: špendlík je trvale viditelný i bez hoveru. */
.pctx-list-pin.is-pinned[b-vh2m0hi9jm] {
    opacity: 0.85;
}
/* /Layout/Switchers/ProjectSwitch.razor.rz.scp.css */
.nav-item[b-i78yrp6kec]  a.active {
  font-weight: bold;
}

.badge[b-i78yrp6kec] {
  background: #dfdaff !important;
  color: black;
}
[data-bs-theme=dark] .badge[b-i78yrp6kec] {
  background: #404040 !important;
  color: #ffffff;
}

.nav-link:hover[b-i78yrp6kec] {
  background-color: #e9ecef;
  color: #000;
  border-radius: 4px;
  cursor: pointer;
}

.project-switch__trigger[b-i78yrp6kec] {
  padding: 0.34rem 0.62rem !important;
  border: 0;
  border-radius: 0.7rem;
  background: transparent;
}

.project-switch__trigger:hover[b-i78yrp6kec] {
  background: rgba(var(--bs-body-color-rgb), 0.065);
}

.project-switch__icon[b-i78yrp6kec] {
  font-size: 0.8rem;
  opacity: 0.62;
}

.project-switch__name[b-i78yrp6kec] {
  max-width: min(28vw, 340px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.96rem;
  line-height: 1.2;
  font-weight: 600;
}

.custom-collapse[b-i78yrp6kec] {
  max-height: 0;
  margin-top: 0px;
  overflow: hidden;
}

.custom-collapse.show[b-i78yrp6kec] {
  margin-top: 15px;
  max-height: 1000px;
}

.project-customer[b-i78yrp6kec] {
  font-size: 0.9em;
  opacity: 0.65;
}
/* /Layout/Switchers/ProjectSwitchMenu.razor.rz.scp.css */
@charset "UTF-8";
.active-project[b-ddpr1yojrh] {
  color: var(--accent-color) !important;
  font-weight: bold;
  background: none !important;
}

.project-customer[b-ddpr1yojrh] {
  font-size: 0.9em;
  opacity: 0.65;
}

.nav-link:hover[b-ddpr1yojrh] {
  background-color: #e9ecef; /* světlé pozadí */
  color: #000; /* tmavý text */
  border-radius: 4px;
  cursor: pointer;
}

.custom-collapse[b-ddpr1yojrh] {
  max-height: 0;
  margin-top: 0px;
  overflow: hidden;
}

.custom-collapse.show[b-ddpr1yojrh] {
  margin-top: 15px;
  max-height: 1000px;
}

.badge[b-ddpr1yojrh] {
  background: #dfdaff !important;
  color: black;
}
[data-bs-theme=dark] .badge[b-ddpr1yojrh] {
  background: #404040 !important;
  color: #ffffff;
}

/*# sourceMappingURL=ProjectSwitchMenu.razor.css.map */
/* /Layout/Theme/AccentColorPicker.razor.rz.scp.css */
.accent-color-picker-container[b-rnyly0hdqa] {
  position: relative;
  display: inline-block;
}

.accent-color-picker-header[b-rnyly0hdqa] {
  padding: 4px 8px;
  border-radius: 6px;
  transition: background-color 0.15s;
}
.accent-color-picker-header:hover[b-rnyly0hdqa] {
  background-color: rgba(0, 0, 0, 0.05);
}

.accent-color-label[b-rnyly0hdqa] {
  font-size: 0.9rem;
  opacity: 0.85;
}

.accent-color-picker-dropdown[b-rnyly0hdqa] {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  background: var(--bg-card, #fff);
  border: 1px solid var(--border-color, #ddd);
  border-radius: 8px;
  padding: 12px;
  margin-top: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  min-width: 130px;
}

.accent-swatch[b-rnyly0hdqa] {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color 0.15s, transform 0.15s;
  padding: 0;
}
.accent-swatch:hover[b-rnyly0hdqa] {
  border-color: rgba(0, 0, 0, 0.35);
  transform: scale(1.1);
}
.accent-swatch--selected[b-rnyly0hdqa] {
  border-color: rgba(0, 0, 0, 0.5);
  transform: scale(1.1);
}
.accent-swatch--active[b-rnyly0hdqa] {
  box-shadow: 0 0 0 2px var(--bg-card, #fff), 0 0 0 4px rgba(0, 0, 0, 0.2);
}

.accent-swatch__check[b-rnyly0hdqa] {
  font-size: 12px;
  color: #fff;
  text-shadow: 0 0 3px rgba(0, 0, 0, 0.8);
}

.cursor-pointer[b-rnyly0hdqa] {
  cursor: pointer;
}

.rotate-180[b-rnyly0hdqa] {
  transform: rotate(180deg);
}

i[b-rnyly0hdqa] {
  transition: transform 0.2s;
}
/* /Layout/Theme/ColorSelector.razor.rz.scp.css */
[b-oouva6ight] .color:hover {
  border: 2px solid #333;
}

/* Pozicovací kontext pro průhledný color input ležící přes tlačítko. */
.color-selector[b-oouva6ight] {
  position: relative;
  display: inline-block;
}

/* Input musí zůstat klikatelný — právě jeho nativní klik otevírá paletu. Původní
   pointer-events: none spolu s JS eval('...click()') v Safari nefungovalo vůbec. */
.color-selector__input[b-oouva6ight] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  border: 0;
  padding: 0;
  z-index: 2;
}

/*# sourceMappingURL=ColorSelector.razor.css.map */
/* /Layout/Topbar/CommunicationIcons.razor.rz.scp.css */
.menu-icon[b-8f3tw1twwo] {
  font-size: 1.69em;
}
/* /Layout/Topbar/NotificationsDropdown.razor.rz.scp.css */
.notification-item[b-otcul1s6pr] {
    transition: background-color 0.15s ease-in-out;
    cursor: pointer;
}

.notification-item:hover[b-otcul1s6pr] {
    /*background-color: #f8f9fa;*/
}

.notification-item.unread[b-otcul1s6pr] {
    /*background-color: var(--bs-primary-bg-subtle);*/
}

[data-bs-theme="dark"] .notification-item.unread[b-otcul1s6pr] {
    
}

.text-truncate-2[b-otcul1s6pr] {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Border pro dropdown-menu v light režimu */
.dropdown-menu[b-otcul1s6pr] {
    border: 1px solid #888 !important; /* decentní tmavě šedá */
}

/* Border pro dropdown-menu v dark režimu */
[data-bs-theme="dark"] .dropdown-menu[b-otcul1s6pr] {
    border: 1px solid #333 !important; /* tmavší šedá, nenápadná */
}

/* Na mobilu ukotvit dropdown k viewportu (ne ke zvonečku), aby nepřetékal mimo obrazovku.
   Inline styl má right:0 vůči ikoně — to na úzké liště vytlačí široký panel doleva za okraj.
   Proto přepneme na position: fixed se symetrickými okraji k oběma stranám viewportu. */
@media (max-width: 767.98px) {
    .notifications-dropdown-panel[b-otcul1s6pr] {
        position: fixed !important;
        /* safe-area-inset-top pokrývá notch / Dynamic Island; 56px je výška MobileTopHeader */
        top: calc(56px + env(safe-area-inset-top)) !important;
        left: 8px !important;
        right: 8px !important;
        width: auto !important;
        max-width: none !important;
        /* Omezení výšky na zbývající prostor nad spodním barem (64px) a safe-area */
        max-height: calc(100dvh - 56px - env(safe-area-inset-top) - 64px - env(safe-area-inset-bottom) - 16px) !important;
        overflow-y: auto !important;
    }
}
/* /Layout/Topbar/Search.razor.rz.scp.css */
@charset "UTF-8";
.search-trigger[b-1avhin86g3] {
  display: flex;
  align-items: center;
  padding: 2px 26px;
  border-radius: 20px;
  background-color: #ffffff59;
  border: 1px solid #e1e1e1;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  white-space: nowrap;      
  
}
.search-trigger .search-text[b-1avhin86g3] {
  opacity: 0.7;
}
.search-trigger:hover .search-text[b-1avhin86g3] {
  opacity: 1;
}
.search-trigger i[b-1avhin86g3] {
  color: var(--bs-secondary-color);
}
.search-trigger span[b-1avhin86g3] {
  color: var(--bs-body-color);
}

.search-shortcut[b-1avhin86g3] {
  font-size: 0.78rem;
  color: var(--bs-body-color);
  opacity: 0.95;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.search-shortcut .shortcut-main[b-1avhin86g3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.search-shortcut .key[b-1avhin86g3] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(0, 0, 0, 0.08);
  color: var(--bs-body-color);
  padding: 1px 4px;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.75rem;
  box-shadow: none;
  border: 1px solid color-mix(in srgb, var(--bs-body-bg) 80%, rgba(255, 255, 255, 0.03));
}

.search-shortcut .key.mac[b-1avhin86g3] {
  display: none !important;
}

.search-shortcut .key.pc[b-1avhin86g3] {
  display: none !important;
}

html.is-pc .search-shortcut .key.pc[b-1avhin86g3] {
  display: inline-flex !important;
}

html.is-pc .search-shortcut .key.mac[b-1avhin86g3] {
  display: none !important;
}

html.is-mac .search-shortcut .key.mac[b-1avhin86g3] {
  display: inline-flex !important;
}

html.is-mac .search-shortcut .key.pc[b-1avhin86g3] {
  display: none !important;
}

.search-shortcut .slash-key[b-1avhin86g3] {
  background: color-mix(in srgb, var(--bs-body-bg) 75%, rgba(0, 0, 0, 0.06));
  border-radius: 6px;
  padding: 3px 7px;
  font-weight: 700;
  font-size: 0.78rem;
  border: 1px solid color-mix(in srgb, var(--bs-body-bg) 85%, rgba(255, 255, 255, 0.02));
}

[data-bs-theme=dark][b-1avhin86g3] {
  /* pilulka pro klávesy - světlejší overlay na tmavém pozadí */
  /* slash badge - jemné zvýraznění */


  
}
[data-bs-theme=dark] .search-trigger[b-1avhin86g3] {
  /* zajištění konzistentního pozadí a okraje v dark módu */
  background-color: #121212 !important;
  border: 1px solid #272727;
}

[data-bs-theme=light] .search-trigger:hover[b-1avhin86g3] {
  /* zajištění konzistentního pozadí a okraje v dark módu */
  background-color: white !important;
}

[data-bs-theme=dark] .search-trigger:hover[b-1avhin86g3] {
  /* zajištění konzistentního pozadí a okraje v dark módu */
  background-color: black !important;
}

[data-bs-theme=dark] .search-shortcut[b-1avhin86g3] {
  color: var(--bs-body-color);
}
[data-bs-theme=dark] .search-shortcut .key[b-1avhin86g3] {
  background: rgba(49, 49, 49, 0.42);
  color: var(--bs-body-color);
}

@media (max-width: 767px) {
  .search-shortcut[b-1avhin86g3] {
    display: none !important;
  }
}
/* /Layout/Topbar/SearchDialog.razor.rz.scp.css */
[b-79w0gkvapb] .searchbox {
  border: none;
  border-radius: 0;
  background: transparent;
}

[b-79w0gkvapb] input {
  background: transparent;
}

[b-79w0gkvapb] .searchbox__results {
  border-radius: 0;
  position: inherit;
  box-shadow: none;
  border: none;
  background: transparent;
}

[b-79w0gkvapb] .searchbox:focus-within {
  box-shadow: none !important;
}
/* /Layout/Topbar/Topbar.razor.rz.scp.css */
.topbar[b-j3nit852zp] {
  /*min-height: 86px;*/
  padding: 5px 0;
}

.topbar-main[b-j3nit852zp] {
  min-width: 0;
  flex: 1 1 auto;
}

.topbar-brand[b-j3nit852zp] {
  position: absolute;
  top: 0;
  left: 68%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  pointer-events: none;
}

.topbar-brand__trial[b-j3nit852zp] {
  pointer-events: auto;
  user-select: text;
}

.bottom-line[b-j3nit852zp] {
  height: 1px;
  position: absolute;
  bottom: 0;
  left: -500px;
  width: 200%;
  background-color: #eaeaea;
}
[data-bs-theme=dark] .bottom-line[b-j3nit852zp] {
  background-color: #262626;
}

@media (max-width: 991.98px) {
  .topbar-brand[b-j3nit852zp] {
    display: none;
  }
}

@media (max-width: 640px) {
  .topbar[b-j3nit852zp] {
    padding: 2px 0 0 0;
    flex-wrap: nowrap;
    min-height: 0;
  }

  /* Breadcrumb (topbar-main) skrýt na mobilu — sidebar-top název studia ho nahrazuje */
  .topbar-main[b-j3nit852zp] {
    display: none !important;
  }
}

@media (max-width: 1399.98px) {
  .topbar-brand[b-j3nit852zp] {
    left: 72%;
  }
}

/*# sourceMappingURL=Topbar.razor.css.map */
/* /Layout/Topbar/TopbarBreadcrumb.razor.rz.scp.css */
.topbar-breadcrumb[b-n7to8nvr0x] {
  display: flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
  white-space: nowrap;
  color: rgba(var(--bs-body-color-rgb), 0.78);
  font-size: 0.96rem;
  line-height: 1.2;
}

.topbar-breadcrumb__entry[b-n7to8nvr0x] {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  flex: 0 1 auto;
}

.topbar-breadcrumb__separator[b-n7to8nvr0x] {
  flex: 0 0 auto;
  margin: 0 0.4rem;
  color: rgba(var(--bs-body-color-rgb), 0.32);
}

.topbar-breadcrumb__link[b-n7to8nvr0x],
.topbar-breadcrumb__label[b-n7to8nvr0x] {
  display: block;
  min-width: 0;
  max-width: min(28vw, 340px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.topbar-breadcrumb__label[b-n7to8nvr0x] {
  padding: 0.34rem 0.62rem;
  border-radius: 0.7rem;
}

.topbar-breadcrumb__link[b-n7to8nvr0x] {
  color: inherit;
  border-radius: 0.7rem;
  text-decoration: none;
  transition: color 0.15s ease, background-color 0.15s ease;
}

.topbar-breadcrumb__link:hover[b-n7to8nvr0x] {
  color: rgba(var(--bs-body-color-rgb), 0.95);
  background-color: rgba(var(--bs-body-color-rgb), 0.055);
}

.topbar-breadcrumb__entry.is-current[b-n7to8nvr0x] {
  color: rgb(var(--bs-body-color-rgb));
  font-weight: 600;
}

.topbar-breadcrumb__entry.is-parent[b-n7to8nvr0x] {
  color: rgba(var(--bs-body-color-rgb), 0.72);
}

.topbar-breadcrumb__entry.is-parent .topbar-breadcrumb__link[b-n7to8nvr0x] {
  font-weight: 540;
}

.topbar-breadcrumb__interactive[b-n7to8nvr0x] {
  display: inline-flex;
  min-width: 0;
}

/* Root segment nahrazený interaktivní komponentou (WorkspaceContextMenu v novém rail
   designu). Bez min-width:0 by se avatar/název uvnitř mohly nežádoucně zúžit. */
.topbar-breadcrumb__entry--interactive-root[b-n7to8nvr0x] {
  min-width: 0;
}

/* Sjednocení hover stavu interaktivního segmentu (ProjectSwitch) s textovými odkazy:
   stejná intenzita podbarvení i ztmavení textu, aby působil jako ostatní segmenty. */
.topbar-breadcrumb__interactive[b-n7to8nvr0x]  .project-switch__trigger:hover {
  background: rgba(var(--bs-body-color-rgb), 0.055);
}

.topbar-breadcrumb__interactive[b-n7to8nvr0x]  .project-switch__trigger:hover .project-switch__name {
  color: rgba(var(--bs-body-color-rgb), 0.95);
}

@media (max-width: 767.98px) {
  .topbar-breadcrumb--mobile-trim .topbar-breadcrumb__entry:not(:nth-last-child(-n+2))[b-n7to8nvr0x] {
    display: none;
  }

  .topbar-breadcrumb--mobile-trim .topbar-breadcrumb__entry:nth-last-child(2) .topbar-breadcrumb__separator[b-n7to8nvr0x] {
    display: none;
  }

  .topbar-breadcrumb__link[b-n7to8nvr0x],
  .topbar-breadcrumb__label[b-n7to8nvr0x] {
    max-width: min(42vw, 220px);
  }
}
/* /Layout/Topbar/TopRightIcons.razor.rz.scp.css */
[b-fi1f6lpawp] .menu-icon {
  font-size: 1.69em;
}

@media (max-width: 767.98px) {
  [b-fi1f6lpawp] .trial-cta-button {
    display: none;
  }
}
/* /Pages/Account/Manage/AccountSettingsNav.razor.rz.scp.css */
.account-settings-nav-item[b-f1jwzzpkbg] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    color: inherit;
    text-decoration: none;
    opacity: 0.7;
    font-size: 0.95rem;
}

.account-settings-nav-icon[b-f1jwzzpkbg] {
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.8;
}

.account-settings-nav-item:hover[b-f1jwzzpkbg] {
    opacity: 1;
    background-color: rgba(255, 255, 255, 0.05);
}

.account-settings-nav-item.active[b-f1jwzzpkbg] {
    opacity: 1;
    font-weight: 600;
    background-color: rgba(255, 255, 255, 0.08);
}

.account-settings-nav-item.active .account-settings-nav-icon[b-f1jwzzpkbg] {
    opacity: 1;
}
/* /Pages/Account/Manage/Disable2fa.razor.rz.scp.css */
.disable2fa-note[b-drpbdu63sw] {
    font-size: .92rem;
    opacity: .8;
    line-height: 1.5;
}
/* /Pages/Account/Manage/Email.razor.rz.scp.css */
.email-address[b-arjaegrw8f] {
    font-weight: 600;
    word-break: break-all;
}

/* Stav ověření je pro uživatele hlavní informace na této stránce, proto barevný štítek
   místo dřívějšího odbarveného "✓" schovaného v input-group. */
.email-badge[b-arjaegrw8f] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .15rem .55rem;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    white-space: nowrap;
}

.email-badge--ok[b-arjaegrw8f] {
    color: var(--bs-success, #198754);
    background: rgba(var(--bs-success-rgb, 25, 135, 84), .12);
}

.email-badge--pending[b-arjaegrw8f] {
    color: var(--bs-warning, #b8860b);
    background: rgba(var(--bs-warning-rgb, 255, 193, 7), .15);
}
/* /Pages/Account/Manage/EnableAuthenticator.razor.rz.scp.css */
.auth-step-text[b-vb0so3c29z] {
    line-height: 1.55;
}

.auth-step-note[b-vb0so3c29z] {
    font-size: .88rem;
    opacity: .7;
}

/* Klíč se opisuje ručně do aplikace, proto monospace a výrazné oddělení -
   v původním <kbd> uprostřed odstavce se dal snadno přehlédnout nebo špatně přečíst. */
.auth-key[b-vb0so3c29z] {
    display: block;
    padding: .65rem .85rem;
    border: 1px solid rgba(128, 128, 128, .2);
    border-radius: .5rem;
    background: rgba(128, 128, 128, .07);
    color: inherit;
    font-size: 1.05rem;
    letter-spacing: .08em;
    word-break: break-all;
}
/* /Pages/Account/Manage/ExternalLogins.razor.rz.scp.css */
.external-login-row[b-0exxqdo224] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .7rem 0;
    border-top: 1px solid rgba(128, 128, 128, .12);
}

.external-login-row:first-child[b-0exxqdo224] {
    padding-top: 0;
    border-top: 0;
}

.external-login-row:last-child[b-0exxqdo224] {
    padding-bottom: 0;
}

.external-login-row form[b-0exxqdo224] {
    margin: 0;
}

.external-login-name[b-0exxqdo224] {
    font-weight: 600;
}

.external-login-note[b-0exxqdo224] {
    font-size: .85rem;
    opacity: .6;
}
/* /Pages/Account/Manage/GenerateRecoveryCodes.razor.rz.scp.css */
/* Text je uvnitř VerticalStacku z Megacentral.Blazor, který nedostane scope atribut
   této stránky, proto ::deep - jinak by se pravidlo tiše zahodilo. */
[b-526gi3pc0m] .recovery-codes-notes {
    font-size: .92rem;
    opacity: .8;
    line-height: 1.5;
}
/* /Pages/Account/Manage/Index.razor.rz.scp.css */
/* Menší než dřívějších 150px - fotka je teď v řádku karty vedle tlačítka,
   ne v samostatném sloupci přes třetinu šířky. */
.profile-photo-editor[b-6j8y2fos8o] {
    display: block;
    position: relative;
    width: 96px;
    height: 96px;
    flex: 0 0 auto;
    border-radius: 50%;
    overflow: hidden;
    cursor: pointer;
}

.profile-photo-editor__image[b-6j8y2fos8o],
.profile-photo-editor__placeholder[b-6j8y2fos8o] {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.profile-photo-editor__image[b-6j8y2fos8o] {
    object-fit: cover;
    object-position: center;
    transition: opacity .2s ease;
}

.profile-photo-editor__placeholder[b-6j8y2fos8o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    color: #203040;
    background: rgba(218, 218, 218, .53);
    text-align: center;
    font-size: .85rem;
}

.profile-photo-editor__input[b-6j8y2fos8o] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.profile-photo-editor:hover .profile-photo-editor__image[b-6j8y2fos8o] {
    opacity: .8;
}

.profile-photo-editor:hover .profile-photo-editor__placeholder[b-6j8y2fos8o] {
    background-color: #eaeaea;
}
/* /Pages/Account/Manage/NotificationsSettings.razor.rz.scp.css */
.notif-section[b-84wi6g74t2] {
    padding: 0.25rem 0;
}

.notif-section-title[b-84wi6g74t2] {
    margin-bottom: .75rem;
    color: rgba(255, 255, 255, .72);
    font-weight: 600;
}

.notif-group[b-84wi6g74t2] {
    margin-top: .5rem;
}

.notif-group-title[b-84wi6g74t2] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .25rem;
    color: rgba(255, 255, 255, .55);
    font-size: .95rem;
    font-weight: 600;
}

.notif-setting-row[b-84wi6g74t2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 0;
    border-top: 1px solid rgba(128, 128, 128, .08);
}

.notif-setting-row:first-child[b-84wi6g74t2] {
    border-top: 0;
}

.notif-setting-row-compact[b-84wi6g74t2] {
    padding: .7rem 0;
}

.notif-inline-row[b-84wi6g74t2] {
    padding: .6rem 0 .4rem 2.1rem;
}

.notif-setting-text[b-84wi6g74t2] {
    min-width: 0;
}

.notif-setting-title[b-84wi6g74t2] {
    font-weight: 600;
}

.notif-setting-desc[b-84wi6g74t2] {
    font-size: .92rem;
    opacity: .68;
}

.notif-icon[b-84wi6g74t2] {
    width: 18px;
    text-align: center;
    font-size: .95em;
    flex: 0 0 auto;
}
/* /Pages/Account/Manage/ResetAuthenticator.razor.rz.scp.css */
.reset-auth-note[b-aa54qyc4ey] {
    font-size: .92rem;
    opacity: .8;
    line-height: 1.5;
}
/* /Pages/Account/Manage/TwoFactorAuthentication.razor.rz.scp.css */
.twofa-badge[b-ar3ichi5g3] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .15rem .55rem;
    border-radius: 999px;
    font-size: .82rem;
    font-weight: 600;
    white-space: nowrap;
}

.twofa-badge--on[b-ar3ichi5g3] {
    color: var(--bs-success, #198754);
    background: rgba(var(--bs-success-rgb, 25, 135, 84), .12);
}

.twofa-badge--off[b-ar3ichi5g3] {
    color: var(--bs-warning, #b8860b);
    background: rgba(var(--bs-warning-rgb, 255, 193, 7), .15);
}

.twofa-codes[b-ar3ichi5g3] {
    font-weight: 600;
}

/* Docházející kódy zvýrazňujeme barvou - při vyčerpání uživatel ztratí záložní cestu do účtu. */
.twofa-codes--low[b-ar3ichi5g3] {
    color: var(--bs-danger, #dc3545);
}
/* /Pages/Account/Public/Login.razor.rz.scp.css */
.auth-flow-window[b-fmy45nvxus] {
    max-width: 460px;
}

.auth-flow[b-fmy45nvxus] {
    max-width: 390px;
}

/*.auth-subtitle {*/
/*    margin-bottom: 32px;*/
/*}*/

.auth-links[b-fmy45nvxus] {
    align-items: center;
    gap: 0;
    color: var(--auth-muted-soft);
}

.auth-links a[b-fmy45nvxus],
.auth-row a[b-fmy45nvxus] {
    color: var(--auth-link);
    text-decoration: none;
    font-weight: 500;
    transition: color 120ms ease;
}

.auth-links a + a[b-fmy45nvxus]::before {
    content: "·";
    margin: 0 12px;
    color: var(--auth-border-hover);
    font-weight: 400;
}

.auth-row a:hover[b-fmy45nvxus] {
    color: var(--auth-link-hover);
    text-decoration: none;
}

.auth-row[b-fmy45nvxus] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    font-size: .95rem;
}

.auth-checkbox[b-fmy45nvxus] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--auth-text);
}

@media (max-width: 700px) {
    .auth-flow-window[b-fmy45nvxus] {
        padding: 26px 18px;
    }

    .auth-subtitle[b-fmy45nvxus] {
        margin-bottom: 28px;
    }

    .auth-row[b-fmy45nvxus] {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
}
/* /Pages/Account/Public/Register.razor.rz.scp.css */
.auth-flow-window[b-jn6iao1gz1] {
    max-width: 480px;
}

.auth-flow[b-jn6iao1gz1] {
    max-width: 430px;
}

.auth-inline-primary[b-jn6iao1gz1] {
    min-width: 170px;
}

.password-field[b-jn6iao1gz1] {
    position: relative;
}

.password-toggle[b-jn6iao1gz1] {
    position: absolute;
    top: 50%;
    right: 1rem;
    z-index: 5;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--auth-muted);
    transform: translateY(-50%);
}

.password-toggle:hover[b-jn6iao1gz1],
.password-toggle:focus[b-jn6iao1gz1] {
    color: var(--auth-link);
}

.password-toggle:focus[b-jn6iao1gz1] {
    outline: 0;
}
/* /Pages/Account/Shared/ManageLayout.razor.rz.scp.css */
/* Společná šířka a svislý rytmus pro všechny stránky nastavení účtu.
   Karty uvnitř jsou renderované z jiných komponent, proto se odsazení mezi nimi
   musí cílit přes ::deep - scope atribut layoutu na ně nedosáhne. */
.account-settings-content[b-e9xu81c4a5] {
    max-width: 680px;
}

[b-e9xu81c4a5] .settings-card + .settings-card {
    margin-top: 1rem;
}

/* Úvodní odstavec nad kartami - sjednocený vzhled pro celou sekci. */
[b-e9xu81c4a5] .settings-intro {
    margin: 0 0 1.25rem;
    opacity: .8;
    line-height: 1.5;
}

/* Formulářová pole zůstávají Bootstrap form-floating kvůli vazbě na EditForm validaci,
   sjednocujeme u nich jen zaoblení, aby ladila s rámečkem karet. */
[b-e9xu81c4a5] .settings-card .form-control {
    border-radius: .5rem;
}

[b-e9xu81c4a5] .settings-card .form-floating:last-of-type {
    margin-bottom: 1rem;
}
/* /Pages/Account/Shared/SettingsCard.razor.rz.scp.css */
.settings-card[b-4so9xdpzia] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(128, 128, 128, .18);
    border-radius: .75rem;
}

/* Destruktivní varianta musí být rozeznatelná na první pohled, aby uživatel
   nevratnou akci nespustil ve stejném vizuálním kontextu jako běžné nastavení. */
.settings-card--danger[b-4so9xdpzia] {
    border-color: rgba(var(--bs-danger-rgb, 220, 53, 69), .35);
    background: rgba(var(--bs-danger-rgb, 220, 53, 69), .05);
}

/* Hlavička je VerticalStack z Megacentral.Blazor, takže nedostane scope atribut
   tohoto souboru a musí se cílit přes ::deep, jinak by se pravidlo tiše zahodilo. */
[b-4so9xdpzia] .settings-card__head {
    gap: .15rem;
}

.settings-card__title[b-4so9xdpzia] {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 600;
}

.settings-card__icon[b-4so9xdpzia] {
    width: 18px;
    text-align: center;
    opacity: .7;
    font-size: .95em;
}

.settings-card__step[b-4so9xdpzia] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(128, 128, 128, .18);
    font-size: .78rem;
    font-weight: 700;
}

.settings-card__desc[b-4so9xdpzia] {
    font-size: .92rem;
    opacity: .7;
    line-height: 1.45;
}

.settings-card__body > :first-child[b-4so9xdpzia] {
    margin-top: 0;
}

.settings-card__body > :last-child[b-4so9xdpzia] {
    margin-bottom: 0;
}

/* Formuláře uvnitř karty nesmí přidávat vlastní vnější odsazení, jinak by se
   rozbila konzistentní mezera mezi hlavičkou a obsahem. */
.settings-card__body form[b-4so9xdpzia] {
    margin: 0;
}
/* /Pages/Admin/ColorRow.razor.rz.scp.css */
/* Řádek editoru barvy. */

.cr[b-hvfbsytffd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
}

.cr-label[b-hvfbsytffd] {
    font-size: 13px;
    color: var(--bs-secondary-color);
}

.cr-controls[b-hvfbsytffd] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Nativní vzorek zbavený výchozího rámečku prohlížeče, aby splynul se zbytkem formuláře. */
.cr-swatch[b-hvfbsytffd] {
    width: 30px;
    height: 26px;
    padding: 0;
    border: 1px solid var(--bs-border-color);
    border-radius: 5px;
    background: none;
    cursor: pointer;
}

.cr-swatch[b-hvfbsytffd]::-webkit-color-swatch-wrapper {
    padding: 2px;
}

.cr-swatch[b-hvfbsytffd]::-webkit-color-swatch {
    border: none;
    border-radius: 3px;
}

/* Hex v mono písmu: hodnoty pod sebou se pak dají porovnat pohledem. */
.cr-hex[b-hvfbsytffd] {
    width: 116px;
    padding: 4px 8px;
    font-family: var(--bs-font-monospace);
    font-size: 12.5px;
    border: 1px solid var(--bs-border-color);
    border-radius: 5px;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.cr-contrast[b-hvfbsytffd] {
    min-width: 52px;
    text-align: right;
    font-family: var(--bs-font-monospace);
    font-size: 11.5px;
}

/* Barevné rozlišení podle prahů WCAG – uživatel pozná stav bez čtení čísla. */
.cr-contrast-ok[b-hvfbsytffd] {
    color: #1f7a4d;
}

.cr-contrast-large[b-hvfbsytffd] {
    color: #b1791f;
}

.cr-contrast-fail[b-hvfbsytffd] {
    color: var(--bs-danger);
}
/* /Pages/Admin/PricingPlansPage.razor.rz.scp.css */
/* Styly karet přesunuty do PricingPlanCard.razor.css */
/* /Pages/Admin/PublicStyleEditor.razor.rz.scp.css */
/* Editor stylů: seznam, formulář hodnot a živý náhled vedle sebe.

   Tři sloupce, protože ladění barev je porovnávací práce – hodnota, její efekt a ostatní
   styly musí být vidět naráz. */

.pse[b-vcqvvop4s4] {
    display: grid;
    grid-template-columns: 220px 340px 1fr;
    height: 100%;
    min-height: 0;
}

.pse-list[b-vcqvvop4s4] {
    border-right: 1px solid var(--bs-border-color);
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow-y: auto;
}

.pse-item[b-vcqvvop4s4] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    transition: background-color .15s;
}

.pse-item:hover[b-vcqvvop4s4] {
    background: var(--bs-tertiary-bg);
}

.pse-item-active[b-vcqvvop4s4] {
    background: var(--bs-tertiary-bg);
    box-shadow: inset 2px 0 0 var(--bs-primary);
}

/* Akcent stylu jako puntík – rozliší styly rychleji než jejich názvy. */
.pse-dot[b-vcqvvop4s4] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex: none;
    border: 1px solid rgba(0, 0, 0, .15);
}

.pse-name[b-vcqvvop4s4] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Zámek u systémových stylů: nejdou smazat, protože prostor, který je používá, by zůstal
   bez definice vzhledu. */
.pse-lock[b-vcqvvop4s4] {
    font-size: 11px;
    opacity: .4;
}

.pse-list-actions[b-vcqvvop4s4] {
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid var(--bs-border-color);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pse-form[b-vcqvvop4s4] {
    border-right: 1px solid var(--bs-border-color);
    padding: 16px;
    overflow-y: auto;
}

.pse-form-head[b-vcqvvop4s4] {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
}

.pse-group[b-vcqvvop4s4] {
    margin-bottom: 20px;
}

.pse-group-title[b-vcqvvop4s4] {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--bs-secondary-color);
    margin-bottom: 6px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--bs-border-color);
}

.pse-preview[b-vcqvvop4s4] {
    overflow-y: auto;
    background: var(--bs-tertiary-bg);
}

/* Pod 1200 px se náhled přesune pod formulář – tři sloupce by nechaly na náhled příliš
   málo místa a barvy by nešly posoudit. */
@media (max-width: 1200px) {
    .pse[b-vcqvvop4s4] {
        grid-template-columns: 200px 1fr;
    }

    .pse-preview[b-vcqvvop4s4] {
        grid-column: 1 / -1;
        max-height: 480px;
    }
}
/* /Pages/Admin/R2ExplorerFolderContents.razor.rz.scp.css */
.r2-explorer-row[b-kexe2ba7u3] {
    align-items: center;
    display: flex;
    min-height: 2rem;
    position: relative;
}

.r2-explorer-name[b-kexe2ba7u3] {
    text-align: left;
}

.r2-explorer-nested[b-kexe2ba7u3]::before {
    border-bottom: 1px solid var(--bs-border-color);
    border-left: 1px solid var(--bs-border-color);
    content: "";
    height: 1rem;
    left: -1.6rem;
    opacity: .55;
    position: absolute;
    top: 0;
    width: .9rem;
}

.r2-explorer-truncated[b-kexe2ba7u3] {
    position: relative;
}
/* /Pages/Admin/R2ExplorerPage.razor.rz.scp.css */
.r2-explorer-row[b-c2bzdgut2z] {
    min-height: 2rem;
    display: flex;
    align-items: center;
}

.r2-explorer-indent[b-c2bzdgut2z] {
    margin-left: 1.5rem;
}
/* /Pages/Admin/TranslationsEditor.razor.rz.scp.css */
.translations-editor[b-dp9bmliclh] {
    --translation-surface: var(--bs-body-bg, #fff);
    --translation-muted: var(--bs-secondary-color, #6c757d);
    --translation-border: var(--bs-border-color, rgba(0, 0, 0, .12));
    --translation-accent: var(--bs-primary, #0d6efd);
    max-width: 1320px;
    padding: .25rem;
}

.translations-editor__hero[b-dp9bmliclh] {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .75rem .75rem 1.25rem;
}

.translations-editor__hero h2[b-dp9bmliclh] {
    font-size: 1.35rem;
    font-weight: 650;
    letter-spacing: -.02em;
    margin: .1rem 0 0;
}

.translations-editor__eyebrow[b-dp9bmliclh] {
    color: var(--translation-muted);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.translations-editor__context[b-dp9bmliclh] {
    align-items: center;
    color: var(--translation-accent);
    display: flex;
    font-size: .82rem;
    gap: .35rem;
    margin-top: .45rem;
}

.translations-editor__toolbar[b-dp9bmliclh],
.translations-editor__results[b-dp9bmliclh] {
    background: var(--translation-surface);
    border: 1px solid var(--translation-border);
    border-radius: .8rem;
}

.translations-editor__toolbar[b-dp9bmliclh] {
    display: grid;
    gap: .85rem;
    margin-bottom: 1rem;
    padding: .85rem;
}

.translations-editor__search[b-dp9bmliclh] {
    align-items: center;
    background: color-mix(in srgb, var(--translation-surface) 94%, var(--bs-secondary-bg, #f4f5f6));
    border: 1px solid var(--translation-border);
    border-radius: .55rem;
    display: flex;
    gap: .6rem;
    padding: 0 .7rem;
}

.translations-editor__search > i[b-dp9bmliclh] {
    color: var(--translation-muted);
}

[b-dp9bmliclh] .translations-editor__search-input {
    flex: 1;
}

[b-dp9bmliclh] .translations-editor__search-input input {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.translations-editor__filters[b-dp9bmliclh],
.translations-editor__languages[b-dp9bmliclh] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1rem;
}

.translations-editor__languages[b-dp9bmliclh] {
    border-top: 1px solid var(--translation-border);
    padding-top: .7rem;
}

[b-dp9bmliclh] .translations-editor__language-switch {
    color: var(--translation-muted);
    font-size: .8rem;
}

.translations-editor__table-wrap[b-dp9bmliclh] {
    overflow-x: auto;
}

.translations-editor__table[b-dp9bmliclh] {
    border-collapse: collapse;
    min-width: 760px;
    width: 100%;
}

.translations-editor__table th[b-dp9bmliclh] {
    background: color-mix(in srgb, var(--translation-surface) 94%, var(--bs-secondary-bg, #f4f5f6));
    color: var(--translation-muted);
    font-size: .67rem;
    font-weight: 700;
    letter-spacing: .07em;
    padding: .75rem .8rem;
    text-align: left;
    text-transform: uppercase;
}

.translations-editor__table th:nth-child(1)[b-dp9bmliclh] {
    min-width: 130px;
}

.translations-editor__table th:nth-child(2)[b-dp9bmliclh] {
    min-width: 180px;
}

.translations-editor__table td[b-dp9bmliclh] {
    border-top: 1px solid var(--translation-border);
    padding: .7rem .8rem;
    vertical-align: middle;
}

.translations-editor__table tbody tr[b-dp9bmliclh] {
    transition: background-color .15s ease;
}

.translations-editor__table tbody tr:hover[b-dp9bmliclh] {
    background: color-mix(in srgb, var(--translation-accent) 4%, transparent);
}

.translations-editor__row--missing[b-dp9bmliclh] {
    background: color-mix(in srgb, #f6b600 8%, transparent);
}

.translations-editor__category[b-dp9bmliclh] {
    background: color-mix(in srgb, var(--bs-secondary-bg, #f4f5f6) 86%, var(--translation-surface));
    border-radius: 99px;
    color: var(--translation-muted);
    font-size: .72rem;
    padding: .24rem .48rem;
}

.translations-editor__key-cell[b-dp9bmliclh] {
    color: var(--translation-accent);
    font-weight: 650;
    min-width: 180px;
    overflow-wrap: anywhere;
}

.translations-editor__key-cell i[b-dp9bmliclh] {
    color: var(--translation-muted);
    font-size: .72rem;
    margin-left: .3rem;
}

.translations-editor__value[b-dp9bmliclh] {
    display: inline-block;
    min-height: 1.2rem;
    padding: .15rem 0;
}

.translations-editor__empty-state[b-dp9bmliclh] {
    align-items: center;
    color: var(--translation-muted);
    display: flex;
    flex-direction: column;
    gap: .55rem;
    justify-content: center;
    min-height: 13rem;
    padding: 2rem;
    text-align: center;
}

.translations-editor__empty-icon[b-dp9bmliclh] {
    color: var(--translation-accent);
    font-size: 1.5rem;
}

@media (min-width: 900px) {
    .translations-editor__toolbar[b-dp9bmliclh] {
        align-items: center;
        grid-template-columns: minmax(220px, 1fr) auto;
    }

    .translations-editor__languages[b-dp9bmliclh] {
        border-left: 1px solid var(--translation-border);
        border-top: 0;
        justify-content: flex-end;
        padding-left: 1rem;
        padding-top: 0;
    }
}

@media (max-width: 575.98px) {
    .translations-editor__hero[b-dp9bmliclh] {
        padding-left: 0;
        padding-right: 0;
    }
}
/* /Pages/Dashboard/Dashboard.razor.rz.scp.css */
/* Dashboard.razor.css (isolated) */

/* === Layout grid === */
.dashboard[b-hgar8g2cdn] {
    padding-bottom: 16px;
    overflow-x: auto; /* pevná šířka slotů může přetékat, raději povolíme scroll místo zmenšování */
}

/* === Badge pro nové widgety === */
.widget-new-badge[b-hgar8g2cdn] {
    display: inline-block;
    background-color: var(--bs-primary);
    color: white;
    padding: 0.15rem 0.65rem;
    border-radius: 999px;
    font-size: 0.72rem;
    margin-left: 0.11rem;
    opacity: 0.8;
}

/* === Grid slotů === */
.dashboard-slots[b-hgar8g2cdn] {
    --slot-size: 160px; /* sjednocená velikost buňky jako v Azure portálu */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(var(--slot-size), var(--slot-size))); /* žádná auto-resize */
    grid-auto-columns: var(--slot-size);
    grid-auto-rows: var(--slot-size);
    gap: 16px;
    justify-content: start; /* držíme sloupce u levého okraje, nezvětšujeme widgety na 1fr */
}

/* === Sloty pro widgety === */
.dashboard-slot[b-hgar8g2cdn] {
    position: relative;
    border: 1px dashed transparent;
    border-radius: 10px;
    min-height: 100%;
    transition: border-color 150ms ease, background-color 150ms ease;
}

.dashboard-slot--target[b-hgar8g2cdn] {
    border-color: var(--bs-primary, #0d6efd);
    background-color: color-mix(in srgb, var(--bs-primary, #0d6efd) 12%, transparent);
}

/* === Widget shell pro drag & drop === */
.widget-shell[b-hgar8g2cdn] {
    position: relative;
    width: 100%;
    height: 100%;
    cursor: grab;
    isolation: isolate; /* izoluje pseudo overlay, aby nezasahoval ven a udržel plné krytí */
}

.dashboard:not(.dashboard--dragging) .widget-shell[b-hgar8g2cdn] {
    cursor: default;
}

.widget-shell.dragging[b-hgar8g2cdn] {
    cursor: grabbing;
}

.widget-shell.dragging[b-hgar8g2cdn]::after {
    content: ""; /* překryv zajišťuje, že drag náhled zůstane plně krytý */
    position: absolute;
    inset: 0;
    border-radius: 0.7rem;
    background: rgba(0, 0, 0, 0.35);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
    pointer-events: none;
    z-index: 1;
}

.widget-shell.dragging > *[b-hgar8g2cdn] {
    filter: brightness(0.9); /* jemné ztlumení obsahu bez prosakování spodních prvků */
}

/* === Placeholder pro drag & drop === */
.slot-placeholder[b-hgar8g2cdn] {
    position: absolute;
    inset: 8px;
    border-radius: 8px;
    border: 1px dashed transparent;
    opacity: 0;
    transition: border-color 120ms ease, opacity 120ms ease;
}

.dashboard--dragging .slot-placeholder[b-hgar8g2cdn] {
    border-color: rgba(13, 110, 253, 0.25);
    opacity: 1;
}

.slot-placeholder--target[b-hgar8g2cdn] {
    border-color: var(--bs-primary, #0d6efd);
    background: color-mix(in srgb, var(--bs-primary, #0d6efd) 10%, transparent);
}

.dashboard:not(.dashboard--dragging) .slot-placeholder[b-hgar8g2cdn] {
    display: none;
}

/* === Responsivní layout === */
@media (max-width: 576px) {
    .dashboard-slots[b-hgar8g2cdn] {
        grid-template-columns: 1fr;
    }
}

/* === Panel pro výběr widgetů === */
.widget-selector-panel[b-hgar8g2cdn] {
    top: 0;
    bottom: 0;
    height: 100%;
    width: 340px;
    padding: 1rem;
    overflow: auto;
    z-index: 1050;
    transition: right .2s ease-in-out;
    background: linear-gradient(0deg, white, #f0f0f0, white);

    [data-bs-theme="dark"] & {
        background: linear-gradient(0deg, black, #272727, black);
    }
}
/* /Pages/Dashboard/Widgets/ActiveProjectChangesWidget.razor.rz.scp.css */
[b-6cglugk8n2] .top-part {
  display: none;
}
[b-6cglugk8n2] .vertical-timeline {
  padding: 0 !important;
}
/* /Pages/Dashboard/Widgets/Base/Widget.razor.rz.scp.css */
/* === Základní styly widgetu === */
.widget[b-56i3m2gdai] {
    background: var(--widget-bg); 
            /*#f9f9f9;*/
    border: 1px solid #e7e7e7;
    border-radius: 0.7rem;
    display: flex;
    flex-direction: column;
    height: 100%;
    
    [data-bs-theme="dark"] & {
        border-color: #272727a1;
        /*background: #1515158a; */
                /*#1515158a;*/
    }
}

/* === Hlavička widgetu === */
.widget .card-header[b-56i3m2gdai] {
    padding: .5rem .75rem;
    border-bottom: none;
    background: none; //#f6f6f6;
    border-radius: 10px 10px 0 0;
    
    /*[data-bs-theme="dark"] & {*/
    /*    background: #0f0f0f;*/
    /*}*/
}

/* === Tělo widgetu === */
.widget .card-body[b-56i3m2gdai] {
    padding: .75rem;
    flex: 1;
    overflow: auto;
}

/* === Centrovaný obsah === */
.widget.centered .card-body[b-56i3m2gdai] {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
/* /Pages/Dashboard/Widgets/InvoicesOverviewWidget.razor.rz.scp.css */
.dashboard-list[b-lxo9u72nuw] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.dashboard-list__item[b-lxo9u72nuw] {
    cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--accent-color, #0d6efd) 12%, transparent);
    border-radius: 0.9rem;
    padding: 0.75rem;
    background: color-mix(in srgb, var(--widget-bg) 90%, var(--accent-color, #0d6efd) 10%);
}

.dashboard-list__content[b-lxo9u72nuw] {
    min-width: 0;
}

.invoice-widget[b-lxo9u72nuw] {
    padding: 0.75rem;
}

.invoice-widget__stats[b-lxo9u72nuw] {
    margin-bottom: 0.75rem;
}

.schedule-stat[b-lxo9u72nuw] {
    min-width: 5.5rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--accent-color, #0d6efd) 8%, var(--widget-bg));
}

.schedule-stat__value[b-lxo9u72nuw] {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.1;
}

.schedule-stat__label[b-lxo9u72nuw] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}
/* /Pages/Dashboard/Widgets/NewEventWidget.razor.rz.scp.css */
/* /Pages/Dashboard/Widgets/OpenFeedbacksWidget.razor.rz.scp.css */
[b-aotaqpvbzw] .feedback-list {
    border: none !important;
}

[b-aotaqpvbzw] .feedback-item {
    border: none !important;
    padding: 0.35rem 1rem !important; 
}
/* /Pages/Dashboard/Widgets/ProfileCompletenessWidget.razor.rz.scp.css */
.dashboard-list[b-l5a6sf8f49] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.dashboard-list__item[b-l5a6sf8f49] {
    border: 1px solid color-mix(in srgb, var(--accent-color, #0d6efd) 12%, transparent);
    border-radius: 0.9rem;
    padding: 0.75rem;
    background: color-mix(in srgb, var(--widget-bg) 90%, var(--accent-color, #0d6efd) 10%);
}

.profile-completeness[b-l5a6sf8f49] {
    padding: 0.75rem;
}

.profile-completeness__header[b-l5a6sf8f49] {
    margin-bottom: 0.75rem;
}

.profile-completeness__ring[b-l5a6sf8f49] {
    width: 3.6rem;
    height: 3.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--accent-color, #0d6efd) 14%, var(--widget-bg));
    font-size: 1rem;
    font-weight: 700;
}
/* /Pages/Dashboard/Widgets/ProjectFeedWidget.razor.rz.scp.css */
[b-ofc5d5f3cs] .folder {
  margin-left: 0 !important;
  padding: 5px 0 !important;
}
[b-ofc5d5f3cs] .folder.content-left-padding .folder-content {
  padding-left: 0px !important;
}
[b-ofc5d5f3cs] .drag-handler {
  display: none !important;
}
[b-ofc5d5f3cs] .folder-title {
  font-size: 1.2em !important;
}
[b-ofc5d5f3cs] .folder-timer {
  display: none !important;
}
/* /Pages/Dashboard/Widgets/ProjectsDetailedWidget.razor.rz.scp.css */
[b-bc0wiow6xt] .projects {
    gap: 2px !important;
}

[b-bc0wiow6xt] .project {
    background: none !important;
    border: none !important;
}              
/* /Pages/Dashboard/Widgets/ProjectsWidget.razor.rz.scp.css */
[b-1kxjr7o9bi] .project {
    background: none;
}

[b-1kxjr7o9bi] .projects-compact .project-tile {
    height: 100px !important;
}
/* /Pages/Dashboard/Widgets/StorageAlertsWidget.razor.rz.scp.css */
.storage-alerts[b-wkh3hukpkr] {
    padding: 0.75rem;
}

.storage-alerts__stats[b-wkh3hukpkr] {
    margin-bottom: 0.75rem;
}

.storage-alerts__headline[b-wkh3hukpkr] {
    font-size: 0.95rem;
}

.storage-alerts__warning[b-wkh3hukpkr] {
    margin-top: 0.75rem;
    padding: 0.7rem 0.8rem;
    border-radius: 0.85rem;
    background: color-mix(in srgb, #f59e0b 14%, var(--widget-bg));
    color: inherit;
}

.schedule-stat[b-wkh3hukpkr] {
    min-width: 5.5rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--accent-color, #0d6efd) 8%, var(--widget-bg));
}

.schedule-stat__value[b-wkh3hukpkr] {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.1;
}

.schedule-stat__label[b-wkh3hukpkr] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}
/* /Pages/Dashboard/Widgets/StorageWidget.razor.rz.scp.css */
.usage-bar-chart[b-o3yoze33fo] {
  /* Kontejner pro jednoduchý vertikální bar chart */
  display: flex;
  align-items: flex-end;           /* sloupce dole na stejné základně */
  gap: 6px;                        /* rozestupy mezi sloupci */
  height: 60px;                    /* celková výška grafu */
  padding: 4px 2px;
}

.usage-bar-chart .usage-bar[b-o3yoze33fo] {
  /* Jednotlivý sloupec grafu */
  flex: 1 1 0;                     /* rovnoměrná šířka sloupců */
  max-width: 18px;                 /* aby sloupce nebyly příliš široké při malém počtu dat */
  background: var(--accent-color, #0d6efd);
  border-radius: 4px 4px 0 0;      /* kulatý vršek, rovná spodní hrana */
  transition: height 200ms ease-out, opacity 120ms ease-out;
  opacity: 0.9;
}

.usage-bar-chart .usage-bar:hover[b-o3yoze33fo] {
  /* Lehký hover pro lepší pocit z interakce */
  opacity: 1;
}

/* malé obrazovky – menší mezery a výška */
@media (max-width: 480px) {
  .usage-bar-chart[b-o3yoze33fo] {
    gap: 4px;
    height: 60px;
  }
}

/* ========================= */
/*    KOLÁČOVÝ GRAF (PIE)    */
/* ========================= */

.storage-widget-root[b-o3yoze33fo] {
  cursor: pointer;                 /* indikace, že lze kliknout a přepínat graf */
}

.storage-pie-wrapper[b-o3yoze33fo] {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 4px 0 8px;
}

.storage-pie[b-o3yoze33fo] {
  position: relative;
  width: 120px;
  height: 120px;
  min-width: 100px;
  min-height: 100px;
}

/* Kruh využívá inline nastavené procento a zobrazí se jako prstenec */
.storage-pie-circle[b-o3yoze33fo] {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  /* Barva „využito“ a „nevyužito“ – budeme používat přímo 100% výseč,
     protože samotné procento už reprezentujeme textově uprostřed. */
  background:
    conic-gradient(
      var(--accent-color, #0d6efd) 0,
      var(--accent-color, #0d6efd) 100%
    );
  /* Vytvoření ještě většího vnitřního prázdného kruhu (prstenec s větším bílým středem) */
  mask:
    radial-gradient(
      farthest-side,
      transparent calc(60% - 2px),
      #000 calc(60% - 1px)
    );
}

/* Dark režim Bootstrap 5.3 – jemně ztmavit pozadí (vnější prstenec) kvůli kontrastu */
[data-bs-theme="dark"] .storage-pie-circle[b-o3yoze33fo] {
  background:
    conic-gradient(
      var(--accent-color, #0d6efd) 0,
      var(--accent-color, #0d6efd) 100%
    );
}

.storage-pie-center[b-o3yoze33fo] {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.storage-pie-percent[b-o3yoze33fo] {
  font-size: 1.3rem;
  font-weight: 300;
}

.storage-pie-label[b-o3yoze33fo] {
  font-size: 0.75rem;
  opacity: 0.75;
}

@media (max-width: 480px) {
  .storage-pie[b-o3yoze33fo] {
    width: 90px;
    height: 90px;
  }
}
/* /Pages/Dashboard/Widgets/StudioChangesWidget.razor.rz.scp.css */
[b-uw2usm6ewg] .top-part {
  display: none;
}
[b-uw2usm6ewg] .vertical-timeline {
  padding: 0 !important;
}
[b-uw2usm6ewg] .vertical-timeline::before {
  display: none;
}
[b-uw2usm6ewg] .vertical-timeline .vertical-timeline-element-content {
  margin-left: 0;
}
[b-uw2usm6ewg] .vertical-timeline-item .vertical-timeline-element-icon {
  background: var(--widget-bg);
}

/*# sourceMappingURL=StudioChangesWidget.razor.css.map */
/* /Pages/Dashboard/Widgets/StudioNotesWidget.razor.rz.scp.css */
[b-zx7n73pudt] .project {
    background:none;
}

/* Potlačíme overflow na card-body, aby scrolloval pouze Tiptap editor uvnitř – jinak vznikají 2 scrollbary (Windows). */
[b-zx7n73pudt] .card-body {
    overflow: hidden;
}

/* /Pages/Dashboard/Widgets/TasksWidget.razor.rz.scp.css */
.tasks-widget[b-n017u96w6w] {
    /* Základní styly pro TasksWidget */
}

[b-n017u96w6w] .task-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 20ch;
}

[b-n017u96w6w] .labels {
    display: none !important;
}

/* Přizpůsobení pro widget - menší mezery */
.tasks-widget[b-n017u96w6w]  .task-item {
    padding: 0.5rem;
    background: var(--widget-bg);
}

/*.tasks-widget .task-group {*/
/*    margin-bottom: 0.75rem;*/
/*}*/

/*.tasks-widget .task-group-header {*/
/*    font-size: 0.75rem;*/
/*    color: var(--text-secondary);*/
/*    margin-bottom: 0.25rem;*/
/*    padding-left: 0.5rem;*/
/*}*/

/* /Pages/Dashboard/Widgets/TimeTrackingSummaryWidget.razor.rz.scp.css */
.time-summary[b-jc3gv4fxhb] {
    padding: 0.75rem;
}

.time-summary__stats[b-jc3gv4fxhb] {
    margin-bottom: 0.75rem;
}

.schedule-stat[b-jc3gv4fxhb] {
    min-width: 5.5rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--accent-color, #0d6efd) 8%, var(--widget-bg));
}

.schedule-stat__value[b-jc3gv4fxhb] {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.1;
}

.schedule-stat__label[b-jc3gv4fxhb] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}
/* /Pages/Dashboard/Widgets/UnreadChatsWidget.razor.rz.scp.css */
.dashboard-list[b-rxj8dcyc92] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
}

.dashboard-list__item[b-rxj8dcyc92] {
    cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--accent-color, #0d6efd) 12%, transparent);
    border-radius: 0.9rem;
    padding: 0.75rem;
    background: color-mix(in srgb, var(--widget-bg) 90%, var(--accent-color, #0d6efd) 10%);
}

.dashboard-list__content[b-rxj8dcyc92] {
    min-width: 0;
}

.dashboard-badge[b-rxj8dcyc92] {
    min-width: 1.8rem;
    height: 1.8rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 700;
    background: var(--accent-color, #0d6efd);
    color: white;
}
/* /Pages/Dashboard/Widgets/WeekScheduleWidget.razor.rz.scp.css */
.dashboard-list[b-ihi65xxuuk] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.dashboard-list__item[b-ihi65xxuuk] {
    cursor: pointer;
    border: 1px solid color-mix(in srgb, var(--accent-color, #0d6efd) 12%, transparent);
    border-radius: 0.9rem;
    padding: 0.75rem;
    background: color-mix(in srgb, var(--widget-bg) 90%, var(--accent-color, #0d6efd) 10%);
}

.dashboard-list__content[b-ihi65xxuuk] {
    min-width: 0;
}

.schedule-widget[b-ihi65xxuuk] {
    padding: 0.75rem;
}

.schedule-widget__stats[b-ihi65xxuuk] {
    margin-bottom: 0.75rem;
}

.schedule-stat[b-ihi65xxuuk] {
    min-width: 5.5rem;
    padding: 0.55rem 0.7rem;
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--accent-color, #0d6efd) 8%, var(--widget-bg));
}

.schedule-stat__value[b-ihi65xxuuk] {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.1;
}

.schedule-stat__label[b-ihi65xxuuk] {
    font-size: 0.8rem;
    color: var(--bs-secondary-color);
}
/* /Pages/Dashboard/WidgetSelector.razor.rz.scp.css */
.widget-selector-beta-badge[b-csf4c9cj0b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: color-mix(in srgb, var(--accent-color, #0d6efd) 75%, black);
    background: color-mix(in srgb, var(--accent-color, #0d6efd) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent-color, #0d6efd) 18%, transparent);
}
/* /Pages/Index.razor.rz.scp.css */
h1[b-jxmaxzj91w] {
  font-size: 21px !important;
}
/* /Pages/Messaging/Chatbot.razor.rz.scp.css */
.chat-window[b-66m9ufmiwy] {
  border: 1px solid rgba(131, 131, 131, 0.6);
  position: fixed;
  width: 400px;
  max-width: 70%;
  height: min(600px, calc(100vh - 80px));
  bottom: 10px;
  right: 10px;
  padding: 10px 10px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
[data-bs-theme=dark] .chat-window[b-66m9ufmiwy] {
  background-color: #282828;
  color: #f0f0f0;
  box-shadow: 0px 0px 40px #3d3d3d;
}
[data-bs-theme=light] .chat-window[b-66m9ufmiwy] {
  background-color: white;
  color: #000;
  box-shadow: -10px -10px 20px #ededed;
}
[data-bs-theme=dark] .chat-window[b-66m9ufmiwy]  .btn-minimize {
  color: white;
}


.chat-icon[b-66m9ufmiwy] {
  position: fixed;
  width: 44px;
  height: 44px;
  right: 20px;
  bottom: 20px;
  border-radius: 50%;
  background-color: #007bff;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 18px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  cursor: pointer;
  opacity: 0.82;
  transition: opacity 0.15s ease, transform 0.15s ease;
}
.chat-icon:hover[b-66m9ufmiwy] {
  opacity: 1;
  transform: scale(1.08);
}

.count-badge[b-66m9ufmiwy] {
  position: absolute;
  right: -5px;
  top: -4px;
  background: red;
  font-size: 15px;
  border-radius: 50%;
  width: 25px;
  height: 25px;
  text-align: center;
}

/* Na mobilu (nativní appka) – FAB nad spodní navigací */
.phone-app .chat-icon[b-66m9ufmiwy] {
  width: 59px;
  height: 59px;
  font-size: 24px;
  bottom: calc(20px + 64px + env(safe-area-inset-bottom));
}

/* Na mobilu – chat zabere celou obrazovku mezi horní a spodní lištou */
.phone-app .chat-window[b-66m9ufmiwy] {
  top: calc(56px + env(safe-area-inset-top));
  bottom: calc(64px + env(safe-area-inset-bottom));
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 0;
  border-left: none;
  border-right: none;
}

/*# sourceMappingURL=Chatbot.razor.css.map */
/* /Pages/Messaging/ChatList.razor.rz.scp.css */
.list-group-flush > .list-group-item[b-tgtxoq69w3] {
    border-bottom: 0;
}

.conversation.unread[b-tgtxoq69w3] {
    font-weight: bold;
    background-color: rgba(var(--accent-color-rgb), 0.08);
}

.conversation.unread .opacity-6[b-tgtxoq69w3] {
    opacity: 1 !important;
}

.count-badge[b-tgtxoq69w3] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background-color: var(--accent-color);
    color: #fff;
    font-size: 0.7rem;
    font-weight: bold;
    line-height: 1;
    vertical-align: middle;
} 
/* /Pages/Messaging/ChatMessages.razor.rz.scp.css */
.messages[b-kgyb7xoi2p] {
    overflow-y: auto;
    min-height: 0;
    /* Výšku řídí flexbox – zprávy zaberou veškeré místo, vstupní pole zůstane dole */
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 4px 6px 2px;
    margin-bottom: 10px;
    overscroll-behavior: contain;
    --chat-message-bg: #e7ecf3;
    --chat-message-fg: #1f2937;

    [data-bs-theme='dark'] & {
        --chat-message-bg: #2f3540;
        --chat-message-fg: #edf2fa;
    }

    .message-row[b-kgyb7xoi2p] {
        max-width: 100%;
    }

    .message-main[b-kgyb7xoi2p] {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        max-width: 100%;
    }

    .message-meta[b-kgyb7xoi2p] {
        margin: 0 2px 3px;
    }

    .message-sender[b-kgyb7xoi2p],
    .message-created[b-kgyb7xoi2p] {
        letter-spacing: 0.01em;
    }

    .message[b-kgyb7xoi2p] {
        .message-text {
            max-width: min(520px, 80vw);
            padding: 7px 13px;
            border-radius: 18px;
            display: inline-flex;
            flex-direction: column;
            gap: 2px;
            line-height: 1.36;
            word-break: break-word;
            background-color: var(--chat-message-bg);
            color: var(--chat-message-fg);
        }

        .message-reply-context[b-kgyb7xoi2p] {
            display: block;
            font-size: 0.76rem;
            line-height: 1.2;
            opacity: 0.66;
            margin-bottom: 2px;
            font-weight: 400;
        }

        .message-reply-body[b-kgyb7xoi2p] {
            display: block;
            font-size: 0.98rem;
            line-height: 1.36;
        }

        &.is-mine[b-kgyb7xoi2p] {
            align-self: flex-end;
            text-align: end;

            .message-main {
                justify-content: flex-end;
            }

            .message-meta[b-kgyb7xoi2p] {
                justify-content: flex-end !important;
            }

            .message-text[b-kgyb7xoi2p] {
                background: linear-gradient(145deg, #2f86ff, #1d6de3) !important;
                color: #ffffff !important;
                /*box-shadow: 0 6px 16px rgba(16, 91, 194, 0.3);*/
            }
        }

        .message-attachments[b-kgyb7xoi2p] {
            display: flex;
            flex-direction: column;
            gap: 8px;
            padding: 8px;
            border-radius: 12px;
            background-color: rgba(17, 41, 72, 0.06);

            [data-bs-theme='dark'] & {
                background-color: rgba(120, 157, 211, 0.08);
            }

            .attachment-item[b-kgyb7xoi2p] {
                padding: 8px 10px;
                border-radius: 8px;
                background-color: rgba(255, 255, 255, 0.7);
                transition: background-color 0.2s;

                [data-bs-theme='dark'] & {
                    background-color: rgba(23, 29, 36, 0.7);
                }

                &:hover[b-kgyb7xoi2p] {
                    background-color: rgba(255, 255, 255, 0.92);

                    [data-bs-theme='dark'] & {
                        background-color: rgba(33, 43, 54, 0.95);
                    }
                }

                a[b-kgyb7xoi2p] {
                    color: inherit;
                    font-size: 0.88rem;

                    &:hover {
                        text-decoration: underline !important;
                    }
                }
            }
        }

        .large-emoji[b-kgyb7xoi2p] {
            font-size: 2em;
            max-width: min(520px, 80vw);
            display: inline-flex;
        }
    }
}

.messages .message-read-by[b-kgyb7xoi2p] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    margin-top: 6px;
    padding-right: 6px;
}

.messages .message-read-by[b-kgyb7xoi2p]  .chat-read-avatar {
    margin-left: -3px;
}

.messages .message-read-by[b-kgyb7xoi2p]  .chat-read-avatar:first-child {
    margin-left: 0;
}

.messages .message-read-by .chat-read-more[b-kgyb7xoi2p] {
    margin-left: -2px;
    padding: 0 3px;
    height: 15px;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.95);
    color: var(--bs-body-color);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 15px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

[data-bs-theme='dark'] .messages .message-read-by .chat-read-more[b-kgyb7xoi2p] {
    background-color: rgba(28, 33, 43, 0.92);
}

.messages .message[b-kgyb7xoi2p]  .message-actions {
    flex: 0 0 auto;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
}

.messages .message.is-mine[b-kgyb7xoi2p]  .message-actions {
    justify-content: flex-end;
}

.messages .message[b-kgyb7xoi2p]  .chat-reply-action {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.18s ease;
}

.messages .message:hover[b-kgyb7xoi2p]  .message-actions,
.messages .message:focus-within[b-kgyb7xoi2p]  .message-actions {
    opacity: 1;
    pointer-events: auto;
}

.messages .message:hover[b-kgyb7xoi2p]  .message-actions .reactions-container.no-reactions,
.messages .message:focus-within[b-kgyb7xoi2p]  .message-actions .reactions-container.no-reactions {
    opacity: 1 !important;
}

.messages .message-read-by[b-kgyb7xoi2p] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    margin-top: 6px;
    padding-right: 6px;
}

.messages .message-read-by[b-kgyb7xoi2p]  .chat-read-avatar {
    margin-left: -3px;
}

.messages .message-read-by[b-kgyb7xoi2p]  .chat-read-avatar:first-child {
    margin-left: 0;
}

.messages .message-read-by .chat-read-more[b-kgyb7xoi2p] {
    margin-left: -2px;
    padding: 0 3px;
    height: 15px;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.95);
    color: var(--bs-body-color);
    font-size: 0.62rem;
    font-weight: 700;
    line-height: 15px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

[data-bs-theme=dark] .messages .message-read-by .chat-read-more[b-kgyb7xoi2p] {
    background-color: rgba(28, 33, 43, 0.92);
}

.selected-files-preview[b-kgyb7xoi2p] {
    padding: 10px;
    border-radius: 12px;
    background-color: rgba(45, 122, 231, 0.08);

    [data-bs-theme='dark'] & {
        background-color: rgba(45, 122, 231, 0.14);
    }

    .selected-file-item[b-kgyb7xoi2p] {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 6px 10px;
        margin-top: 4px;
        border-radius: 8px;
        background-color: rgba(255, 255, 255, 0.76);
        transition: background-color 0.2s;

        [data-bs-theme='dark'] & {
            background-color: rgba(20, 25, 31, 0.82);
        }

        &:hover[b-kgyb7xoi2p] {
            background-color: rgba(255, 255, 255, 0.96);

            [data-bs-theme='dark'] & {
                background-color: rgba(29, 38, 48, 0.95);
            }
        }

        i.fa-paperclip[b-kgyb7xoi2p] {
            color: var(--accent-color, #2f86ff);
        }

        span[b-kgyb7xoi2p] {
            flex: 1;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        [b-kgyb7xoi2p] .btn-remove {
            width: 24px;
            height: 24px;
            border-radius: 999px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            color: var(--bs-danger);
            opacity: 0.74;
            transition: opacity 0.2s, background-color 0.2s;

            &:hover {
                opacity: 1;
            }
        }
    }
}

[data-bs-theme='light'] .selected-files-preview .selected-file-item[b-kgyb7xoi2p]  .btn-remove:hover {
    background: rgba(220, 53, 69, 0.08);
}

[data-bs-theme='dark'] .selected-files-preview .selected-file-item[b-kgyb7xoi2p]  .btn-remove:hover {
    background: rgba(244, 113, 113, 0.12);
}

.message-input-wrapper[b-kgyb7xoi2p] {
    border-radius: 0;
    padding: 0;
    background: transparent;
    border: none;
}

/* .chat-input-area je HTML obal se scope této komponenty → ::deep odsud na textarea dosáhne. */
.chat-input-area[b-kgyb7xoi2p]  .chat-message-textbox textarea {
    margin-bottom: 0 !important;
}

@media (max-width: 767px) {
    .chat-input-area[b-kgyb7xoi2p]  .chat-message-textbox textarea {
        margin-bottom: 4px !important;
    }
}

[b-kgyb7xoi2p] .chat-attach-button,
[b-kgyb7xoi2p] .chat-send-button {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.18s ease;
}

[data-bs-theme='light'][b-kgyb7xoi2p]  .chat-attach-button,
[data-bs-theme='light'][b-kgyb7xoi2p]  .chat-send-button {
    background: transparent;
}

[data-bs-theme='dark'][b-kgyb7xoi2p]  .chat-attach-button,
[data-bs-theme='dark'][b-kgyb7xoi2p]  .chat-send-button {
    background: transparent;
}

[data-bs-theme='light'][b-kgyb7xoi2p]  .chat-attach-button:hover,
[data-bs-theme='light'][b-kgyb7xoi2p]  .chat-send-button:hover,
[data-bs-theme='light'][b-kgyb7xoi2p]  .chat-reply-action:hover {
    background: rgba(0, 0, 0, 0.06);
}

[data-bs-theme='dark'][b-kgyb7xoi2p]  .chat-attach-button:hover,
[data-bs-theme='dark'][b-kgyb7xoi2p]  .chat-send-button:hover,
[data-bs-theme='dark'][b-kgyb7xoi2p]  .chat-reply-action:hover {
    background: rgba(255, 255, 255, 0.08);
}

.reply-preview[b-kgyb7xoi2p] {
    border-radius: 10px;
    padding: 6px 10px;
    border-left: 3px solid var(--accent-color, #2f86ff);
    background-color: rgba(47, 134, 255, 0.08);
}

[data-bs-theme='dark'] .reply-preview[b-kgyb7xoi2p] {
    background-color: rgba(47, 134, 255, 0.2);
}

.reply-preview-title[b-kgyb7xoi2p] {
    font-size: 0.78rem;
    font-weight: 600;
}

.reply-preview-text[b-kgyb7xoi2p] {
    font-size: 0.84rem;
    opacity: 0.78;
}

@media (max-width: 767px) {
    /* Na mobilu nechat zprávy zabrat veškeré dostupné místo a vstupní pole zůstane dole */
    .messages[b-kgyb7xoi2p] {
        max-height: none !important;
        flex: 1 1 0 !important;
        min-height: 0 !important;
    }

    /* Vstupní pole přilepené na spodek – při otevření klávesnice se stránka posune */
    .message-input-wrapper[b-kgyb7xoi2p] {
        position: sticky;
        bottom: 0;
        z-index: 10;
        background: var(--bs-body-bg);
        padding: 6px 0 4px;
        border-top: 1px solid rgba(128, 128, 128, 0.15);
    }
}
/* /Pages/Messaging/MessagesPage.razor.rz.scp.css */
 .body-content[b-dlo0axthmj] {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.back-button[b-dlo0axthmj] {
  cursor: pointer;
  margin-right: 10px;
}

@media (max-width: 640px) {
  [b-dlo0axthmj] .messages {
    /* Na mobilu nechat flex-grow řídit výšku – bez fixního max-height */
    max-height: none !important;
    overflow-y: auto !important;
  }
}
@media (min-width: 641px) {
  [b-dlo0axthmj] .messages {
    /* Výšku řídí flexbox uvnitř chat okna, žádné fixní vh omezení */
    max-height: none !important;
  }
}

.conversations[b-dlo0axthmj] {
  border: 1px solid #2c2c2c;
  border-radius: 10px;
  display: flex;
  flex-grow: 1;
  background: #181818;
  height: 100%;
}
[data-bs-theme=light] .conversations[b-dlo0axthmj] {
  background: #f2f2f2;
}
@media (max-width: 767px) {
  .conversations[b-dlo0axthmj] {
    border: none;
    border-radius: 0;
  }
  .conversations.mobile-hidden[b-dlo0axthmj] {
    overflow: hidden !important;
    pointer-events: none !important;
    height: 0 !important;
    min-height: 0 !important;
  }
}

.chat-window[b-dlo0axthmj] {
  border-radius: 14px;
  padding: 10px;
}

/* Chat okno vyplní celou výšku svého sloupce, aby vstupní pole sedělo dole (jako Messenger/WhatsApp) */
.chat-window-adaptive[b-dlo0axthmj] {
  height: 100%;
  min-height: 0;
}

/* Celá stránka konverzací jako "app" – pevná výška viewportu, žádný scroll celé stránky.
   Levý seznam i pravý chat scrollují uvnitř svého panelu. */
.row.flex-grow-1[b-dlo0axthmj] {
  height: calc(100vh - 120px);
  min-height: 0;
}

/* Oba sloupce řádku vyplní výšku a nepřetékají celou stránku */
.row.flex-grow-1 > [class*=col-][b-dlo0axthmj] {
  height: 100%;
  min-height: 0;
}

/* Levý sloupec se seznamem konverzací scrolluje uvnitř */
.row.flex-grow-1 > .col-lg-4[b-dlo0axthmj] {
  overflow-y: auto;
}

/* Pravý sloupec s chatem nescrolluje sám – scroll řeší .messages, vstupní pole zůstává dole */
.row.flex-grow-1 > .col-lg-8[b-dlo0axthmj] {
  overflow: hidden;
}

@media (max-width: 767px) {
  /* Na mobilu kompenzujeme klávesnici přes dynamickou výšku viewportu (dvh) */
  .row.flex-grow-1[b-dlo0axthmj] {
    height: calc(100dvh - 120px);
  }

  /* Na mobilu je aktivní vždy jen jeden sloupec přes celou výšku, vnitřní scroll řeší panely */
  .row.flex-grow-1 > [class*=col-][b-dlo0axthmj] {
    overflow-y: visible;
  }
}
[data-bs-theme=dark] .chat-window[b-dlo0axthmj] {
  color: #f0f0f0;
  border-color: #373737;
  box-shadow: -10px -10px 40px #161616;
}
[data-bs-theme=light] .chat-window[b-dlo0axthmj] {
  border: 1px solid #b8b8b8;
}

@media (max-width: 767px) {
  .chat-window[b-dlo0axthmj],
  [data-bs-theme=light] .chat-window[b-dlo0axthmj],
  [data-bs-theme=dark] .chat-window[b-dlo0axthmj] {
    border: none;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
  }
}

.count-badge[b-dlo0axthmj] {
  background: #d52323;
  font-size: 15px;
  border-radius: 50%;
  color: white;
  display: inline-block;
  width: 23px;
  height: 23px;
  text-align: center;
}

.messages-empty-state[b-dlo0axthmj] {
  min-height: 100%;
}

/*# sourceMappingURL=MessagesPage.razor.css.map */
/* /Pages/Messaging/NewConversationPanel.razor.rz.scp.css */
.new-conversation-panel[b-lmhpqkcc9m]  .recipient-section {
    border-bottom: 1px solid var(--bs-border-color);
    padding: 10px 12px;
}

.recipient-label[b-lmhpqkcc9m] {
    font-weight: 600;
    white-space: nowrap;
    width: 56px;
    min-width: 56px;
}

.new-conversation-panel[b-lmhpqkcc9m]  .recipient-selection-row {
    align-items: flex-start;
}

.recipient-label-spacer[b-lmhpqkcc9m] {
    visibility: hidden;
}

.new-conversation-panel[b-lmhpqkcc9m]  .recipient-badge {
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    padding: 2px 10px;
    background-color: var(--bs-body-bg);
}

.new-conv-placeholder[b-lmhpqkcc9m] {
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0.5;
}

.conversation-content[b-lmhpqkcc9m] {
    max-height: 75vh;
}

.new-conversation-panel[b-lmhpqkcc9m]  .send-first-message-button {
    color: var(--accent-color);
}

/* /Pages/Messaging/SomebodyTyping.razor.rz.scp.css */
.typing-container[b-gluxdjn8g7] {
  height: 10px;
}

.typing[b-gluxdjn8g7] {
  position: relative;
}

.typing .dot[b-gluxdjn8g7] {
  width: 10px;
  height: 10px;
  background-color: #9a9aff;
  border-radius: 50%;
  position: absolute;
  animation: typing-b-gluxdjn8g7 1s infinite;
}

.typing .dot:nth-child(1)[b-gluxdjn8g7] {
  left: 0;
  animation-delay: 0s;
}

.typing .dot:nth-child(2)[b-gluxdjn8g7] {
  left: 15px;
  animation-delay: 0.3s;
}

.typing .dot:nth-child(3)[b-gluxdjn8g7] {
  left: 30px;
  animation-delay: 0.6s;
}

@keyframes typing-b-gluxdjn8g7 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
/* /Pages/Notifications/NotificationsPage.razor.rz.scp.css */
/*.notifications-container {*/
/*    padding: 20px;*/
/*    max-width: 800px;*/
/*    margin: 0 auto;*/
/*}*/

/*.loading-spinner {*/
/*    text-align: center;*/
/*    padding: 40px 0;*/
/*    color: #666;*/
/*}*/

/*.empty-state {*/
/*    text-align: center;*/
/*    padding: 40px 0;*/
/*    color: #666;*/
/*    background-color: #f9f9f9;*/
/*    border-radius: 8px;*/
/*    margin: 20px 0;*/
/*}*/

/*.notifications-list {*/
/*    display: flex;*/
/*    flex-direction: column;*/
/*    gap: 16px;*/
/*}*/

/*.notification-item {*/
/*    background-color: #fff;*/
/*    border-radius: 8px;*/
/*    padding: 16px;*/
/*    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);*/
/*    transition: transform 0.2s, box-shadow 0.2s;*/
/*}*/

/*.notification-item:hover {*/
/*    transform: translateY(-2px);*/
/*    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);*/
/*}*/

/*.notification-header {*/
/*    display: flex;*/
/*    justify-content: space-between;*/
/*    align-items: flex-start;*/
/*    margin-bottom: 8px;*/
/*}*/

/*.notification-title {*/
/*    margin: 0;*/
/*    font-size: 1.1rem;*/
/*    font-weight: 600;*/
/*}*/

/*.notification-date {*/
/*    font-size: 0.85rem;*/
/*    color: #666;*/
/*}*/

/*.notification-description {*/
/*    margin: 8px 0;*/
/*    color: #333;*/
/*    line-height: 1.5;*/
/*}*/

/*.notification-link {*/
/*    display: inline-block;*/
/*    margin-top: 8px;*/
/*    color: #0066cc;*/
/*    text-decoration: none;*/
/*    font-weight: 500;*/
/*}*/

/*.notification-link:hover {*/
/*    text-decoration: underline;*/
/*}*/

/*.notifications-actions {*/
/*    margin-top: 20px;*/
/*    display: flex;*/
/*    justify-content: flex-end;*/
/*}*/

/*.btn {*/
/*    padding: 8px 16px;*/
/*    border-radius: 4px;*/
/*    cursor: pointer;*/
/*    font-weight: 500;*/
/*    border: none;*/
/*    transition: background-color 0.2s;*/
/*}*/

/*.btn-primary {*/
/*    background-color: #0066cc;*/
/*    color: white;*/
/*}*/

/* /Pages/Pipeline/PipelineBoard.razor.rz.scp.css */
.pipeline-board[b-kjlxq89rxv] {
    min-width: 0;
    /* Amber/copper akcent značky – stagnace, aktuální fáze, heatmap škála.
       Nevážeme na --bs-primary (ve Studiu je fialová), zadání i design language chtějí amber. */
    --pipeline-accent: #f59e0b;
    --pipeline-accent-rgb: 245, 158, 11;
    --pipeline-done: #24a87c;
    --pipeline-done-rgb: 36, 168, 124;
}

/* VerticalStack je child komponenta, proto scoped atribut z tohoto CSS na její
   kořenový element nedosáhne – musíme přes ::deep od rodiče .pipeline-board. */
.pipeline-board[b-kjlxq89rxv]  .pipeline-header {
    margin: 1.25rem 0 1.5rem;
}

.pipeline-title[b-kjlxq89rxv] {
    margin: 0;
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: 0;
}

.pipeline-subtitle[b-kjlxq89rxv] {
    color: var(--bs-secondary-color);
    font-size: 1rem;
}

/* Obsah žije uvnitř TooltipB wrapperu (delegované tooltipy), proto ::deep. */
.pipeline-board[b-kjlxq89rxv]  .pipeline-content {
    display: flex;
    flex-direction: column;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-toolbar {
    margin: 1.5rem 0 1.25rem;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-settings-button {
    min-height: 35px;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-settings {
    margin: -.5rem 0 1.25rem;
    padding: .9rem 1rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    background: var(--bs-tertiary-bg);
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-settings-head {
    margin-bottom: .85rem;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-settings-title {
    font-size: .92rem;
    font-weight: 800;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-settings-subtitle {
    color: var(--bs-secondary-color);
    font-size: .84rem;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-setting-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: .6rem .9rem;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-card-setting-grid .form-check,
.pipeline-board[b-kjlxq89rxv]  .pipeline-card-setting-grid label {
    min-width: 0;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-filters {
    min-width: 0;
}

/* .pipeline-filter (CssClass) i .pipeline-filter-dropdown (ButtonCssClass) žijí uvnitř
   child komponenty Dropdown, proto opět přes ::deep, jinak by tlačítko zůstalo
   s nativním nestylovaným vzhledem (outset border, šedé pozadí). */
.pipeline-board[b-kjlxq89rxv]  .pipeline-filter {
    min-width: 180px;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-filter-dropdown {
    padding: .45rem .85rem;
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    background: var(--bs-body-bg);
    font-size: .9rem;
    line-height: 1.2;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-filter-dropdown:hover {
    border-color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
}

.pipeline-loading[b-kjlxq89rxv] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-empty {
    min-height: 360px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: .75rem;
    color: var(--bs-body-color);
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-empty-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    border: 1px solid var(--bs-border-color);
    color: var(--pipeline-accent);
    background: var(--bs-tertiary-bg);
    font-size: 1.8rem;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-empty h2 {
    margin: .25rem 0 0;
    font-size: 1.35rem;
    font-weight: 800;
}

.pipeline-board[b-kjlxq89rxv]  .pipeline-empty p {
    max-width: 420px;
    margin: 0 0 .5rem;
    color: var(--bs-secondary-color);
}

@media (max-width: 768px) {
    .pipeline-title[b-kjlxq89rxv] {
        font-size: 1.6rem;
    }

    .pipeline-board[b-kjlxq89rxv]  .pipeline-filter {
        width: 100%;
        min-width: 0;
    }

    .pipeline-board[b-kjlxq89rxv]  .pipeline-card-setting-grid {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Pipeline/PipelineHeatmap.razor.rz.scp.css */
.pipeline-heat[b-7exhs5wouh] {
    /* Sdílený layout: název vlevo, mřížka vpravo se zarovnává přes všechny řádky i osu. */
    --pipeline-heat-name-width: minmax(140px, 260px);
    display: flex;
    flex-direction: column;
    overflow-x: auto;
}

.pipeline-heat-axis[b-7exhs5wouh] {
    display: grid;
    grid-template-columns: var(--pipeline-heat-name-width) 1fr auto;
    gap: .9rem;
    padding: .2rem .25rem .5rem;
    color: var(--bs-secondary-color);
    font-size: .8rem;
}

.pipeline-heat-axis-end[b-7exhs5wouh] {
    justify-self: end;
}

.pipeline-heat-row[b-7exhs5wouh] {
    display: grid;
    grid-template-columns: var(--pipeline-heat-name-width) auto;
    gap: .9rem;
    align-items: center;
    justify-content: start;
    padding: .45rem .25rem;
    color: var(--bs-body-color);
    text-decoration: none;
    border-radius: 8px;
    transition: background .14s ease;
}

.pipeline-heat-row:hover[b-7exhs5wouh] {
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
}

.pipeline-heat-row--done[b-7exhs5wouh] {
    opacity: .62;
}

.pipeline-heat-name[b-7exhs5wouh] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pipeline-heat-title[b-7exhs5wouh] {
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pipeline-heat-meta[b-7exhs5wouh] {
    color: var(--bs-secondary-color);
    font-size: .8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Buňky ~16 px, radius 3, mezera 3, amber škála 4 stupňů (0 = neutrální výplň, ne prázdno). */
.pipeline-heat-grid[b-7exhs5wouh] {
    display: inline-flex;
    gap: 3px;
}

.pipeline-heat-cell[b-7exhs5wouh] {
    width: 16px;
    height: 16px;
    border-radius: 3px;
    flex-shrink: 0;
}

.pipeline-heat-cell--missing[b-7exhs5wouh] {
    background: transparent;
}

.pipeline-heat-cell--l0[b-7exhs5wouh] {
    background: var(--bs-tertiary-bg);
}

.pipeline-heat-cell--l1[b-7exhs5wouh] {
    background: rgba(var(--pipeline-accent-rgb), .32);
}

.pipeline-heat-cell--l2[b-7exhs5wouh] {
    background: rgba(var(--pipeline-accent-rgb), .62);
}

.pipeline-heat-cell--l3[b-7exhs5wouh] {
    /* Nejtmavší stupeň zůstává odvozený z brand amberu – žádná nová barva mimo paletu. */
    background: color-mix(in srgb, var(--pipeline-accent) 78%, black);
}

.pipeline-heat-legend[b-7exhs5wouh] {
    padding: .6rem .25rem 0;
    color: var(--bs-secondary-color);
    font-size: .8rem;
}
/* /Pages/Pipeline/PipelineKanban.razor.rz.scp.css */
.pipeline-scroll[b-mztw0awp3j] {
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: .75rem;
}

.pipeline-columns[b-mztw0awp3j] {
    --pipeline-column-width: 276px;
    display: grid;
    grid-template-columns: repeat(var(--pipeline-column-count), minmax(var(--pipeline-column-width), var(--pipeline-column-width)));
    gap: 1rem;
    align-items: start;
    min-width: max-content;
}

.pipeline-column[b-mztw0awp3j] {
    min-width: var(--pipeline-column-width);
}

/* Hlavička sloupce je HorizontalStack (child komponenta), proto ::deep – jinak by
   nadpis sloupce zůstal jako obyčejný text bez uppercase/trackingu/odsazení. */
.pipeline-column[b-mztw0awp3j]  .pipeline-column-header {
    min-height: 34px;
    margin-bottom: .9rem;
    padding: 0 .15rem 1rem;
    /* Menší, tlumený a "štítkový" charakter – odlišuje popisek fáze od názvů skladeb v kartách. */
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--bs-border-color);
}

.pipeline-column[b-mztw0awp3j]  .pipeline-column-header .ti {
    color: var(--bs-secondary-color);
    font-size: 1rem;
}

.pipeline-column[b-mztw0awp3j]  .pipeline-column-count {
    min-width: 1.65rem;
    height: 1.35rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: 0;
}

.pipeline-column--no-milestones[b-mztw0awp3j]  .pipeline-column-header {
    opacity: .72;
}

.pipeline-column--done[b-mztw0awp3j]  .pipeline-column-header .ti {
    color: var(--pipeline-done);
}

.pipeline-column-cards[b-mztw0awp3j] {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.pipeline-card[b-mztw0awp3j] {
    display: flex;
    flex-direction: column;
    gap: .72rem;
    min-height: 138px;
    padding: 1rem;
    color: var(--bs-body-color);
    text-decoration: none;
    border: 1px solid var(--bs-border-color);
    border-left: 3px solid var(--bs-border-color);
    border-radius: 8px;
    background: var(--bs-body-bg);
    box-shadow: none;
    transition: border-color .16s ease, background .16s ease;
}

.pipeline-card:hover[b-mztw0awp3j] {
    color: var(--bs-body-color);
    border-color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
}

.pipeline-card--done[b-mztw0awp3j] {
    border-left-color: var(--pipeline-done);
}

.pipeline-card--stale[b-mztw0awp3j] {
    border-color: rgba(var(--pipeline-accent-rgb), .5);
    border-left-color: var(--pipeline-accent);
}

.pipeline-card--compact[b-mztw0awp3j] {
    min-height: 112px;
    gap: .5rem;
    padding: .82rem .9rem;
}

.pipeline-card-title[b-mztw0awp3j] {
    font-size: 1.05rem;
    line-height: 1.2;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pipeline-card-meta[b-mztw0awp3j] {
    margin-top: -.45rem;
    color: var(--bs-secondary-color);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pipeline-card--compact .pipeline-card-title[b-mztw0awp3j] {
    font-size: .98rem;
}

.pipeline-card--compact .pipeline-card-meta[b-mztw0awp3j] {
    margin-top: -.35rem;
}

/* Tečkový progress fází dle mockupu (●●○○ + „2/4 fáze"). */
.pipeline-phase-row[b-mztw0awp3j] {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--bs-secondary-color);
    font-size: .84rem;
    font-weight: 700;
}

.pipeline-card--compact .pipeline-phase-row[b-mztw0awp3j] {
    font-size: .8rem;
}

.pipeline-phase-dots[b-mztw0awp3j] {
    display: inline-flex;
    gap: 5px;
}

.pipeline-phase-dot[b-mztw0awp3j] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1.5px solid var(--bs-border-color);
    background: transparent;
}

.pipeline-phase-dot.done[b-mztw0awp3j] {
    border-color: var(--pipeline-done);
    background: var(--pipeline-done);
}

.pipeline-phase-dot.current[b-mztw0awp3j] {
    border-color: var(--pipeline-accent);
    background: var(--pipeline-accent);
}

.pipeline-card-indicators[b-mztw0awp3j] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: center;
}

.pipeline-card-chip[b-mztw0awp3j] {
    max-width: 100%;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    padding: .2rem .5rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    background: var(--bs-body-bg);
    font-size: .78rem;
    line-height: 1.1;
    font-weight: 700;
}

.pipeline-card-chip .ti[b-mztw0awp3j] {
    flex: 0 0 auto;
    font-size: .9rem;
}

.pipeline-card-chip--done[b-mztw0awp3j] {
    color: var(--pipeline-done);
    border-color: rgba(var(--pipeline-done-rgb), .35);
    background: rgba(var(--pipeline-done-rgb), .08);
}

.pipeline-card-chip--stale[b-mztw0awp3j] {
    color: var(--pipeline-accent);
    border-color: rgba(var(--pipeline-accent-rgb), .35);
    background: rgba(var(--pipeline-accent-rgb), .08);
}

.pipeline-card-chip--action[b-mztw0awp3j] {
    color: var(--bs-body-color);
    border-color: rgba(var(--pipeline-accent-rgb), .25);
    background: rgba(var(--pipeline-accent-rgb), .05);
}

.pipeline-card--compact .pipeline-card-chip[b-mztw0awp3j] {
    min-height: 21px;
    padding: .15rem .42rem;
    font-size: .73rem;
}

@media (max-width: 768px) {
    .pipeline-columns[b-mztw0awp3j] {
        --pipeline-column-width: 260px;
    }
}
/* /Pages/Pipeline/PipelineListView.razor.rz.scp.css */
.pipeline-list[b-sif009wtsj] {
    display: flex;
    flex-direction: column;
}

.pipeline-list-row[b-sif009wtsj] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: .9rem .25rem;
    color: var(--bs-body-color);
    text-decoration: none;
    border-bottom: 1px solid var(--bs-border-color);
    transition: background .14s ease;
}

.pipeline-list-row:hover[b-sif009wtsj] {
    color: var(--bs-body-color);
    background: var(--bs-tertiary-bg);
}

/* Hotové skladby dole, tlumeně – včetně segmentů. */
.pipeline-list-row--done[b-sif009wtsj] {
    opacity: .62;
}

.pipeline-list-head[b-sif009wtsj] {
    display: flex;
    align-items: baseline;
    gap: .6rem;
    min-width: 0;
}

.pipeline-list-title[b-sif009wtsj] {
    font-size: 1.02rem;
    font-weight: 800;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pipeline-list-meta[b-sif009wtsj] {
    color: var(--bs-secondary-color);
    font-size: .88rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex-shrink: 3;
}

.pipeline-list-time[b-sif009wtsj] {
    margin-left: auto;
    color: var(--bs-secondary-color);
    font-size: .86rem;
    white-space: nowrap;
}

.pipeline-stale-badge[b-sif009wtsj] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    color: var(--pipeline-accent);
    font-weight: 800;
}

/* Vodorovný řetěz fází: nízké pilulky v jednom řádku, flex 1:1.
   Při 6+ fázích drží minimálně 56 px na segment a řádek scrolluje vodorovně. */
.pipeline-steps[b-sif009wtsj] {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 2px;
}

.pipeline-step[b-sif009wtsj] {
    flex: 1 1 0;
    min-width: 56px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .3rem;
    padding: 0 .55rem;
    border-radius: 999px;
    font-size: .74rem;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
}

.pipeline-step-text[b-sif009wtsj] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.pipeline-step .ti[b-sif009wtsj] {
    font-size: .8rem;
    flex-shrink: 0;
}

/* Dokončená fáze: tlumená success výplň + fajfka. */
.pipeline-step.done[b-sif009wtsj] {
    background: rgba(var(--pipeline-done-rgb), .16);
    color: var(--pipeline-done);
    font-weight: 600;
}

/* Aktuální fáze: amber výplň + medium weight. */
.pipeline-step.current[b-sif009wtsj] {
    background: rgba(var(--pipeline-accent-rgb), .16);
    color: color-mix(in srgb, var(--pipeline-accent) 72%, var(--bs-body-color));
    font-weight: 600;
}

/* Budoucí fáze: jen obrys, text tlumený. */
.pipeline-step.future[b-sif009wtsj] {
    border: 1px solid var(--bs-border-color);
    color: var(--bs-secondary-color);
}

@media (max-width: 768px) {
    .pipeline-list-head[b-sif009wtsj] {
        flex-wrap: wrap;
    }

    .pipeline-list-time[b-sif009wtsj] {
        width: 100%;
        margin-left: 0;
    }
}
/* /Pages/Pipeline/PipelineSummary.razor.rz.scp.css */
.pipeline-summary[b-zmlqc0sjf3] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    max-width: 720px;
}

.pipeline-summary-row[b-zmlqc0sjf3] {
    display: grid;
    grid-template-columns: minmax(90px, 160px) 1fr auto;
    gap: .85rem;
    align-items: center;
    padding: .2rem .5rem;
    margin: 0 -.5rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--bs-body-color);
    text-align: left;
    font-size: .88rem;
    cursor: pointer;
    transition: background .14s ease;
}

.pipeline-summary-row:hover[b-zmlqc0sjf3] {
    background: var(--bs-tertiary-bg);
}

.pipeline-summary-row.active[b-zmlqc0sjf3] {
    background: var(--bs-tertiary-bg);
    box-shadow: inset 2px 0 0 var(--pipeline-accent);
}

.pipeline-summary-label[b-zmlqc0sjf3] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

.pipeline-summary-row.done .pipeline-summary-label[b-zmlqc0sjf3],
.pipeline-summary-row.done .pipeline-summary-count[b-zmlqc0sjf3] {
    color: var(--bs-secondary-color);
}

/* Tenké vodorovné bary dle mockupu (~18 px). Neutrální barva místo per-fáze palety –
   zadání zakazuje nové barvy mimo paletu, amber zůstává vyhrazený pro stagnaci. */
.pipeline-summary-bar[b-zmlqc0sjf3] {
    height: 18px;
    display: flex;
    align-items: stretch;
}

.pipeline-summary-fill[b-zmlqc0sjf3] {
    border-radius: 6px;
    background: color-mix(in srgb, var(--bs-body-color) 24%, transparent);
    transition: width .2s ease;
}

.pipeline-summary-row.done .pipeline-summary-fill[b-zmlqc0sjf3] {
    background: color-mix(in srgb, var(--bs-body-color) 10%, transparent);
}

.pipeline-summary-count[b-zmlqc0sjf3] {
    justify-self: end;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pipeline-summary-stale[b-zmlqc0sjf3] {
    color: var(--pipeline-accent);
    font-weight: 700;
    margin-left: .15rem;
}

.pipeline-summary[b-zmlqc0sjf3]  .pipeline-summary-more {
    align-self: flex-start;
    font-size: .84rem;
}
/* /Pages/Pipeline/PipelineViewSwitcher.razor.rz.scp.css */
.pipeline-switcher[b-8axpfdu6uw] {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 10px;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
}

.pipeline-switcher-item[b-8axpfdu6uw] {
    padding: .35rem .95rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--bs-secondary-color);
    font-size: .88rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: color .14s ease, background .14s ease, box-shadow .14s ease;
}

.pipeline-switcher-item:hover[b-8axpfdu6uw] {
    color: var(--bs-body-color);
}

.pipeline-switcher-item.active[b-8axpfdu6uw] {
    /* Aktivní segment "vystupuje" ze zapuštěného kontejneru – světlý povrch + jemný stín. */
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-weight: 700;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .12);
}
/* /Pages/Projects/Components/FeedAppearancePanel.razor.rz.scp.css */
.fap-wrapper[b-5ik2pmdkka] {
    position: relative;
    display: inline-block;
}

.fap-panel[b-5ik2pmdkka] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 1050;
    background: var(--bs-body-bg);
    border: 1px solid rgba(128, 128, 128, 0.18);
    border-radius: 14px;
    box-shadow: 0 10px 36px rgba(0, 0, 0, 0.14);
    padding: 10px 14px;
    min-width: 248px;
    max-width: calc(100vw - 24px);
    animation: fap-in-b-5ik2pmdkka 0.12s ease-out;
}

[data-bs-theme=dark] .fap-panel[b-5ik2pmdkka] {
    background: #1e1e1e;
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 36px rgba(0, 0, 0, 0.55);
}

.fap-row[b-5ik2pmdkka] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    min-height: 42px;
}

.fap-row:not(:last-child)[b-5ik2pmdkka] {
    border-bottom: 1px solid rgba(128, 128, 128, 0.08);
}

.fap-label[b-5ik2pmdkka] {
    font-size: 0.875em;
    font-weight: 400;
    opacity: 0.8;
    white-space: nowrap;
}

.fap-options[b-5ik2pmdkka] {
    display: flex;
    flex-wrap: nowrap;
    gap: 2px;
    background: rgba(128, 128, 128, 0.1);
    border-radius: 8px;
    padding: 3px;
}

[data-bs-theme=dark] .fap-options[b-5ik2pmdkka] {
    background: rgba(255, 255, 255, 0.06);
}

.fap-options[b-5ik2pmdkka]  a,
.fap-options[b-5ik2pmdkka]  button {
    border-radius: 6px !important;
    min-width: 30px;
    min-height: 26px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    padding: 3px 8px !important;
    font-size: 0.82em;
    transition: background 0.12s, color 0.12s;
}

.fap-options[b-5ik2pmdkka]  a i,
.fap-options[b-5ik2pmdkka]  button i {
    font-size: 1.05em;
}

.fap-options[b-5ik2pmdkka]  a:hover,
.fap-options[b-5ik2pmdkka]  button:hover {
    opacity: 0.9;
    background: rgba(13, 110, 253, 0.08);
}

.fap-options[b-5ik2pmdkka]  .fap-active,
.fap-options[b-5ik2pmdkka]  a.fap-active,
.fap-options[b-5ik2pmdkka]  button.fap-active {
    opacity: 1 !important;
    background: #0b84d6 !important;
    background-color: #0b84d6 !important;
    border-color: #0b84d6 !important;
    box-shadow: 0 6px 18px rgba(11, 132, 214, 0.18), 0 0 0 1.5px rgba(11, 132, 214, 0.9);
    color: #ffffff !important;
}

.fap-backdrop[b-5ik2pmdkka] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

@media (max-width: 520px) {
    .fap-panel[b-5ik2pmdkka] {
        min-width: min(248px, calc(100vw - 24px));
    }

    .fap-row[b-5ik2pmdkka] {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }
}

@keyframes fap-in-b-5ik2pmdkka {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Řádek se svislým seznamem přepínačů (prvky stránky, příspěvky a složky). Na rozdíl od
   .fap-row s ikonovými volbami vedle sebe se sem nevejde vodorovné rozložení - přepínačů
   je víc a mají dlouhé popisky, proto label nad a přepínače pod ním. */
.fap-row--stacked[b-5ik2pmdkka] {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}

.fap-switches[b-5ik2pmdkka] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* Panel s přesunutými přepínači je vyšší než původní - omezíme výšku, ať se na malých
   displejích vejde a nepřeteče mimo viewport. */
.fap-panel[b-5ik2pmdkka] {
    max-height: min(78vh, 620px);
    overflow-y: auto;
}
/* /Pages/Projects/Components/FeedToolbar.razor.rz.scp.css */
/* Všechny toolbar ikony — neutrální barva, bez modrého tónu */
.feed-toolbar[b-jcxwpeqfnr]  a.btn-link,
.feed-toolbar[b-jcxwpeqfnr]  button.btn-link {
    color: var(--bs-body-color);
    opacity: 0.55;
    font-size: 1rem;
    transition: opacity 0.15s;
}

.feed-toolbar[b-jcxwpeqfnr]  a.btn-link:hover,
.feed-toolbar[b-jcxwpeqfnr]  button.btn-link:hover {
    color: var(--bs-body-color);
    opacity: 1;
}

/* Aktivní stav (Color="primary") — svítí akcentem */
.feed-toolbar[b-jcxwpeqfnr]  a.btn-primary,
.feed-toolbar[b-jcxwpeqfnr]  button.btn-primary,
.feed-toolbar[b-jcxwpeqfnr]  a.text-primary,
.feed-toolbar[b-jcxwpeqfnr]  button.text-primary {
    color: var(--bs-primary) !important;
    opacity: 1;
}

/* Tři tečky (ellipsis) — stejný neutrální styl */
.feed-toolbar[b-jcxwpeqfnr]  .feed-toolbar-dots {
    color: var(--bs-body-color);
    opacity: 0.55;
    cursor: pointer;
    transition: opacity 0.15s;
}

.feed-toolbar[b-jcxwpeqfnr]  .feed-toolbar-dots:hover {
    opacity: 1;
}
/* /Pages/Projects/Components/ProjectFeedPanel.razor.rz.scp.css */
.split-feed-panel[b-9a21arbaxa] {
  min-height: 100%;
}

.split-feed-hero[b-9a21arbaxa] {
  margin-bottom:10px;
  /*border-radius: 18px;*/
  border-bottom: 1px solid rgba(var(--bs-body-color-rgb), 0.1);
  background: linear-gradient(180deg, rgba(var(--bs-body-color-rgb), 0.04) 0%, rgba(var(--bs-body-color-rgb), 0.02) 100%);
  padding: 18px 20px 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* === Horní řádek: odkaz vlevo + status vpravo === */
.split-hero-top[b-9a21arbaxa] {
  display: flex;                    
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.split-hero-open-link[b-9a21arbaxa] {
  opacity: 0.55;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  transition: opacity 0.15s ease;
}

.split-hero-open-link:hover[b-9a21arbaxa] {
  opacity: 1;
}

.split-hero-top-right[b-9a21arbaxa] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.split-hero-status[b-9a21arbaxa] {
  flex-shrink: 0;
}

/* === Název + popis === */
.split-hero-title-wrap[b-9a21arbaxa] {
  min-width: 0;
}

.split-hero-name[b-9a21arbaxa] {
  font-size: 1.4rem;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.01em;
  text-wrap: balance;
}

.split-hero-desc[b-9a21arbaxa] {
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--bs-secondary-color);
  max-width: 70ch;
  margin-top: 4px;
}

/* === Jemná dělící linka === */
.split-hero-divider[b-9a21arbaxa] {
  height: 1px;
  background: rgba(var(--bs-body-color-rgb), 0.08);
  margin: 2px 0;
}

/* === Metadata řádek + akce === */
.split-hero-meta[b-9a21arbaxa] {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
  font-size: 0.82rem;
}

.split-hero-metaitem[b-9a21arbaxa] {
  display: inline-flex;
  align-items: center;
  color: var(--bs-secondary-color);
  white-space: nowrap;
}

.split-hero-metaitem :deep(a)[b-9a21arbaxa] {
  color: var(--bs-body-color);
  text-decoration: none;
}

.split-hero-metaitem :deep(a:hover)[b-9a21arbaxa] {
  color: var(--bs-emphasis-color);
}

.split-hero-icon[b-9a21arbaxa] {
  width: 14px;
  margin-right: 6px;
  opacity: 0.7;
}

/* Svislý oddělovač skupin v meta řádku */
.split-hero-meta-sep[b-9a21arbaxa] {
  display: inline-block;
  width: 1px;
  height: 14px;
  background: rgba(var(--bs-body-color-rgb), 0.15);
  flex-shrink: 0;
}

.split-feed-content[b-9a21arbaxa] {
  padding-top: 4px;
}
/* /Pages/Projects/Components/ProjectImageComponent.razor.rz.scp.css */
.project-image-container[b-55v8noj63o] {
    cursor: pointer;
}

.project-image-container:hover .project-image[b-55v8noj63o] {
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

/* Kompaktní placeholder pro prázdný projekt – nahrazuje blok 250 px jedním řádkem,
   aby prázdná nástěnka neodsouvala skutečné akce pod ohyb obrazovky. */
.no-image-compact[b-55v8noj63o] {
    align-items: center;
    display: flex;
    font-size: .9rem;
    gap: .45rem;
    /* Nejtišší prvek stránky – nabídka obrázku je volitelná a nesmí soutěžit s hlavní akcí. */
    opacity: .45;
    padding: .35rem 0;
    transition: opacity .15s ease;
}

.project-image-container:hover .no-image-compact[b-55v8noj63o] {
    opacity: .9;
}

.no-image-placeholder[b-55v8noj63o] {
    color: black;
    background: #ebebeb87;
    height: 250px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    [data-bs-theme="dark"] & {
        color: #a4a4a4;
        background: #3b3b3b54;
    }
}

.project-image-container:hover .no-image-placeholder[b-55v8noj63o] {
    background-color: #dfdfdf !important;
    transition: all 0.3s ease;
    
    [data-bs-theme="dark"] & {
        background-color: #232323 !important;
        color:white;
    }
}

.project-image-container:hover .delete-image-icon[b-55v8noj63o] {
    opacity: 1 !important;
}

.project-image-container:hover .fa-arrows-alt-v[b-55v8noj63o] {
    opacity: 1 !important;
}

.delete-image-icon[b-55v8noj63o] {
    position: absolute;
    top: 10px;
    right: 10px;
    color: white;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    padding: 4px 8px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: 10;
}

.position-icon[b-55v8noj63o] {
    position: absolute;
    bottom: 10px;
    right: 10px;
    color: white;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    padding: 4px 13px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: 10;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .btn-status {
    font-weight: 500;
    padding: 3px 9px 3px 8px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .16);
    text-shadow: 0 1px 1px rgba(0, 0, 0, .18);
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .btn-status:hover {
    transform: translateY(-1px);
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .btn-status i {
    opacity: .88;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-active {
    color: #eff6ff !important;
    background-color: rgba(37, 99, 235, .68) !important;
    border-color: rgba(147, 197, 253, .32) !important;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-preparation {
    color: #f5f3ff !important;
    background-color: rgba(109, 40, 217, .7) !important;
    border-color: rgba(196, 181, 253, .34) !important;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-waiting {
    color: #ecfeff !important;
    background-color: rgba(8, 145, 178, .7) !important;
    border-color: rgba(165, 243, 252, .32) !important;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-hold {
    color: #fff7ed !important;
    background-color: rgba(217, 119, 6, .72) !important;
    border-color: rgba(253, 186, 116, .34) !important;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-done {
    color: #dcfce7 !important;
    background-color: rgba(22, 163, 74, .68) !important;
    border-color: rgba(187, 247, 208, .34) !important;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-post {
    color: #fdf2f8 !important;
    background-color: rgba(219, 39, 119, .68) !important;
    border-color: rgba(249, 168, 212, .32) !important;
}

.project-image-container[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-cancelled {
    color: #f3f4f6 !important;
    background-color: rgba(75, 85, 99, .62) !important;
    border-color: rgba(209, 213, 219, .22) !important;
    opacity: .74;
}

.project-hero[b-55v8noj63o] {
    position: relative;
    min-height: 550px;
    height: auto;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    margin-top: -2rem;
    margin-left: -1rem;
    margin-right: -1rem;
}

.project-hero-name[b-55v8noj63o] {
    font-size: clamp(2.5rem, 6vw, 7.5rem);
    font-weight: 900;
    line-height: 1;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    letter-spacing: -0.1rem;
    text-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, .6);
    color: white;
}

.project-hero-description[b-55v8noj63o] {
    max-width: 800px;
    font-size: 1.4rem;
    font-weight: 500;
    color: white;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9), 0 2px 12px rgba(0, 0, 0, 0.7);
}

@media (min-width: 768px) {
    .project-hero[b-55v8noj63o] {
        margin-left: -1.5rem;
        margin-right: -1.5rem;
    }
}

.hero-overlay[b-55v8noj63o] {
    position: absolute;
    inset: 0;
    /* Dvouvrstvý gradient: blend do body-bg dole + tmavší vrstva pro čitelnost textu */
    background:
        linear-gradient(to top, var(--bs-body-bg) 0%, transparent 40%),
        linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, rgba(0, 0, 0, 0.25) 45%, rgba(0, 0, 0, 0.1) 100%);
    pointer-events: none;
}

.hero-content[b-55v8noj63o] {
    position: relative;
    z-index: 2;
    padding: 0 0 2rem 0;
    width: 100%;
}

.hero-actions[b-55v8noj63o] {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10;
    color: white;
    background: rgba(0, 0, 0, 0.35);
    padding: 6px 14px;
    border-radius: 99px;
    opacity: 0;
    transition: opacity 0.3s;
    display: flex;
    align-items: center;
    gap: 4px;
    /* kliknutelnost – nad InputFile overlay */
    pointer-events: auto;
}

.project-hero:hover .hero-actions[b-55v8noj63o] {
    opacity: 1;
}

.hero-actions i[b-55v8noj63o] {
    cursor: pointer;
}

/* Průhledný input file pokrývající celé hero pro snadné nahrání obrázku */
.hero-upload-input[b-55v8noj63o] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 5;
}

/* Aby hero-content byl nad InputFile overlay */
.hero-content[b-55v8noj63o] {
    pointer-events: auto;
    z-index: 6;
}

/* Status badge v hero módu */
.hero-status-badge[b-55v8noj63o] {
    display: inline-block;
}

[data-bs-theme="light"] .project-hero[b-55v8noj63o]  .project-status-badge.project-image-status-badge .btn-status {
    text-shadow: none;
    box-shadow: 0 0.4rem 1.25rem rgba(0, 0, 0, .14);
}

[data-bs-theme="light"] .project-hero[b-55v8noj63o]  .project-status-badge.project-image-status-badge .status-hold {
    color: #8a4b00 !important;
    background-color: rgba(255, 244, 214, .96) !important;
    border-color: rgba(180, 99, 0, .26) !important;
}

/* ==========================================================================
   MOBILNÍ ÚPRAVY HERO (musí být na konci souboru, aby přebily base pravidla
   se stejnou specificitou definovaná výše)
   ========================================================================== */
@media (max-width: 640px) {
    .project-hero[b-55v8noj63o] {
        /* Zrušíme záporné marginy z desktop verze: hero nelepíme přes okraje ani
           pod topbar (jinak překrývá avatar a zvoneček v horní liště) */
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
        min-height: 400px;
        /* Na mobilu hero NENÍ flex – díky tomu se hero-content i text roztáhnou
           přes celou šířku a netvoří úzký sloupec vlevo */
        display: block;
    }

    /* Na mobilu skryjeme InputFile overlay přes hero — upload funguje přes hero-actions tlačítka */
    .hero-upload-input[b-55v8noj63o] {
        display: none !important;
    }

    .hero-placeholder-mode[b-55v8noj63o] {
        margin-left: 0;
        margin-right: 0;
        margin-top: 0;
    }

    /* hero-content přilne ke spodní hraně (původně to řešil flex-end na .project-hero) */
    .hero-content[b-55v8noj63o] {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }

    /* Bootstrap row/offset na mobilu nechceme – obsah má využít celou šířku */
    .hero-content .row[b-55v8noj63o] {
        --bs-gutter-x: 0;
        margin-left: 0;
        margin-right: 0;
        width: 100%;
    }

    .hero-content .row > [class*="col-"][b-55v8noj63o] {
        flex: 0 0 100%;
        max-width: 100%;
        margin-left: 0;
        padding-left: 0;
        padding-right: 0;
    }

    .project-hero-name[b-55v8noj63o] {
        /* Menší font, aby se název vešel na co nejméně řádků a nelámal se po slabikách */
        font-size: clamp(1.75rem, 8vw, 3rem);
        letter-spacing: -0.05rem;
        word-break: normal;
        overflow-wrap: break-word;
    }

    .project-hero-description[b-55v8noj63o] {
        font-size: 0.95rem;
        max-width: none;
    }
}

/* Hint text, když není obrázek */
.hero-no-image-hint[b-55v8noj63o] {
    color: white;
    font-size: 1rem;
}

/* Placeholder v Hero režimu (obrázek ještě nebyl nahrán) – kopíruje okraje hero banneru */
.hero-placeholder-mode[b-55v8noj63o] {
    margin-top: -2rem;
    margin-left: -2rem;
    margin-right: -2rem;
}
/* /Pages/Projects/Components/ProjectsAppearancePanel.razor.rz.scp.css */
.appearance-wrapper[b-l604eto82e] {
  position: relative;
  display: inline-block;
}

.appearance-panel[b-l604eto82e] {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 1050;
  background: var(--bs-body-bg);
  border: 1px solid rgba(128, 128, 128, 0.18);
  border-radius: 14px;
  box-shadow: 0 10px 36px rgba(0, 0, 0, 0.14);
  padding: 10px 14px;
  min-width: 300px;
  animation: ap-in-b-l604eto82e 0.12s ease-out;
}

.appearance-panel.appearance-panel--right[b-l604eto82e] {
  left: auto;
  right: 0;
}

[data-bs-theme=dark] .appearance-panel[b-l604eto82e] {
  background: #1e1e1e;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 10px 36px rgba(0, 0, 0, 0.55);
}

.appearance-panel .ap-row[b-l604eto82e] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  min-height: 42px;
}

.appearance-panel .ap-row:not(:last-child)[b-l604eto82e] {
  border-bottom: 1px solid rgba(128, 128, 128, 0.08);
}

.appearance-panel .ap-label[b-l604eto82e] {
  font-size: 0.875em;
  font-weight: 400;
  opacity: 0.8;
  white-space: nowrap;
}

.appearance-panel .ap-options[b-l604eto82e] {
  display: flex;
  gap: 2px;
  background: rgba(128, 128, 128, 0.1);
  border-radius: 8px;
  padding: 3px;
}

[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e] {
  background: rgba(255, 255, 255, 0.06);
}

.appearance-panel .ap-options[b-l604eto82e]  a,
.appearance-panel .ap-options[b-l604eto82e]  button {
  border-radius: 6px !important;
  min-width: 30px;
  min-height: 26px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 3px 8px !important;
  font-size: 0.82em;
  transition: background 0.12s, color 0.12s;
}

.appearance-panel .ap-options[b-l604eto82e]  a .icon,
.appearance-panel .ap-options[b-l604eto82e]  a i,
.appearance-panel .ap-options[b-l604eto82e]  button .icon,
.appearance-panel .ap-options[b-l604eto82e]  button i {
  font-size: 1.05em;
}

.appearance-panel .ap-options[b-l604eto82e]  a:hover,
.appearance-panel .ap-options[b-l604eto82e]  button:hover {
  opacity: 0.9;
  background: rgba(13, 110, 253, 0.08);
}

.appearance-panel .ap-options[b-l604eto82e]  .ap-active,
.appearance-panel .ap-options[b-l604eto82e]  a.ap-active,
.appearance-panel .ap-options[b-l604eto82e]  button.ap-active,
.appearance-panel .ap-options[b-l604eto82e]  .btn.ap-active,
.appearance-panel .ap-options[b-l604eto82e]  .btn.btn-link.ap-active,
.appearance-panel .ap-options[b-l604eto82e]  .ap-active > a,
.appearance-panel .ap-options[b-l604eto82e]  .ap-active > button {
  opacity: 1 !important;
  background: #0b84d6 !important;
  background-color: #0b84d6 !important;
  border-color: #0b84d6 !important;
  box-shadow: 0 6px 18px rgba(11, 132, 214, 0.18), 0 0 0 1.5px rgba(11, 132, 214, 0.9);
  color: #ffffff !important;
}

[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  .ap-active,
[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  a.ap-active,
[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  button.ap-active,
[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  .btn.ap-active,
[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  .btn.btn-link.ap-active,
[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  .ap-active > a,
[data-bs-theme=dark] .appearance-panel .ap-options[b-l604eto82e]  .ap-active > button {
  background: #0b84d6 !important;
  background-color: #0b84d6 !important;
  border-color: #0b84d6 !important;
  box-shadow: 0 6px 18px rgba(11, 132, 214, 0.18), 0 0 0 1.5px rgba(11, 132, 214, 0.9);
  color: #ffffff !important;
}

.appearance-backdrop[b-l604eto82e] {
  position: fixed;
  inset: 0;
  z-index: 1040;
}

@keyframes ap-in-b-l604eto82e {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* /Pages/Projects/Components/ProjectShareLinks.razor.rz.scp.css */
.share-links[b-6vfibrr5mw] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

/* Karta jediného aktivního odkazu. Na rozdíl od dřívějšího "právě vytvořeno" panelu je
   trvalá - plaintext token je v databázi, takže URL je k dispozici kdykoliv. */
.share-link-card[b-6vfibrr5mw] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding: .6rem .75rem;
    border-radius: .6rem;
    background: rgba(var(--bs-body-color-rgb), .035);
    border: 1px solid rgba(var(--bs-body-color-rgb), .08);
}

.share-link-row-main[b-6vfibrr5mw] {
    min-width: 0; /* Aby se ellipsis na URL uvnitř flexu vůbec uplatnil. */
}

/* URL je jen ke čtení a kopírování, proto text místo inputu. Dlouhá adresa se ořízne
   ellipsis a celá zůstává dostupná v title, což je čitelnější než scrollující input. */
.share-link-url-text[b-6vfibrr5mw] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: var(--bs-font-monospace, monospace);
    font-size: .78rem;
    opacity: .85;
}

.share-link-url-text--missing[b-6vfibrr5mw] {
    font-family: inherit;
    font-style: italic;
    opacity: .55;
}

.share-link-settings-toggle[b-6vfibrr5mw] {
    opacity: .6;
}

/* Vysvětlení bearer charakteru odkazu pod hotovou adresou. Drží stejný nižší kontrast
   jako statistiky - je to doprovodná informace, ne akce ani varování. */
.share-link-explain[b-6vfibrr5mw] {
    margin: .1rem 0 0;
    font-size: .78rem;
    opacity: .6;
}

/* Destruktivní akce stojí oddělené linkou na konci panelu - nový odkaz i zrušení sdílení
   zneplatní rozeslanou URL, takže nesmí splývat s informativní částí nad nimi. */
.share-link-danger[b-6vfibrr5mw] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    padding-top: .5rem;
    border-top: 1px solid rgba(var(--bs-body-color-rgb), .08);
}

/* Přepínač stahování stojí přímo v kartě pod vysvětlením, proto drobnější text než okolí -
   je to volba k odkazu, ne samostatná sekce. */
.share-link-downloads[b-6vfibrr5mw] {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: .35rem;
    font-size: .78rem;
    opacity: .75;
    cursor: pointer;
}

/* Statistiky jako oddělené položky s tečkou mezi nimi; oproti jednomu řetězci se lépe
   zalamují na úzkých obrazovkách (dialog sdílení je na mobilu skoro celý viewport). */
.share-link-stats[b-6vfibrr5mw] {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .5rem;
    font-size: .74rem;
    opacity: .65;
}

.share-link-stat:not(:last-child)[b-6vfibrr5mw]::after {
    content: "·";
    margin-left: .5rem;
    opacity: .5;
}

.share-link-settings[b-6vfibrr5mw] {
    padding-top: .5rem;
    margin-top: .1rem;
    border-top: 1px solid rgba(var(--bs-body-color-rgb), .08);
}

.share-links-empty[b-6vfibrr5mw] {
    padding: .6rem 0;
    font-size: .8rem;
    opacity: .5;
    text-align: center;
}

.share-link-revoke[b-6vfibrr5mw] {
    flex-shrink: 0;
}
/* /Pages/Projects/Components/ProjectTeamAvatars.razor.rz.scp.css */
/* Trello-style stack avatarů členů projektu v topbaru.

   Scoped CSS: markup stacku patří této komponentě, takže se scope atribut naváže.
   Výjimkou jsou avatary – ty renderuje vnořená AvatarImage a nesou její vlastní scope.
   Styly tooltipů jsou v globálním app.css, protože Bootstrap je vykresluje v <body>. */

/* Stack je tlačítko otevírající dialog Sdílet. Reset vzhledu tlačítka je nutný: bez něj
   by prohlížeč přidal vlastní rámeček a pozadí. Hover pozadí je stejné jako u .ctxd-trigger
   (kontextová menu vedle), aby se všechny interaktivní prvky topbaru chovaly shodně. */
.pta-stack[b-yyra9jcf43] {
    display: inline-flex;
    align-items: center;
    padding: 3px 6px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: 1;
    cursor: pointer;
    transition: background-color .12s ease;
}

.pta-stack:hover[b-yyra9jcf43],
.pta-stack:focus-visible[b-yyra9jcf43] {
    background: rgb(161 161 161 / 12%);
}

[data-bs-theme=light] .pta-stack:hover[b-yyra9jcf43],
[data-bs-theme=light] .pta-stack:focus-visible[b-yyra9jcf43] {
    background: rgb(32 32 32 / 6%);
}

/* Bez práva sdílet klik nic neudělá, takže stack nesmí vypadat ani reagovat jako tlačítko.
   Tooltipy avatarů uvnitř fungují dál – proto se tu ruší jen kurzor a hover, ne pointer-events. */
.pta-stack--static[b-yyra9jcf43] {
    cursor: default;
}

.pta-stack--static:hover[b-yyra9jcf43],
.pta-stack--static:focus-visible[b-yyra9jcf43] {
    background: transparent;
}

/* Záporný levý margin dělá překryv. První položka ho nesmí mít, jinak by stack
   "vylezl" doleva a nesedělo by zarovnání s ostatními prvky topbaru.
   -4px je mělký překryv: tváře zůstávají čitelné a jednotlivé avatary jdou trefit myší,
   což u těsného stacku (-8px) nešlo, protože soused překrýval polovinu cíle. */
.pta-item[b-yyra9jcf43] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin-left: -4px;
    /* Ring odděluje překrývající se avatary od sebe i od pozadí topbaru. Barvu bere
       z pozadí topbaru, takže vypadá jako mezera, ne jako obruba. */
    box-shadow: 0 0 0 2px var(--bs-body-bg);
    transition: transform .16s ease;
}

.pta-stack > .pta-item:first-child[b-yyra9jcf43] {
    margin-left: 0;
}

/* Hover jednotlivého avataru ho vytáhne nad ostatní a lehce nadzvedne – dává zpětnou vazbu,
   která tvář právě popisuje tooltip, a odkryje jinak částečně schovaný obličej. */
.pta-item:hover[b-yyra9jcf43] {
    transform: translateY(-2px);
    z-index: 2;
}

/* "+N" dlaždice: stejný tvar a velikost jako avatar, ale neutrální, aby nesoupeřila
   o pozornost s tvářemi. Velikost se drží AvatarImage SizePx="26".
   Vlastní kolečko je až .pta-more-label, protože mezi .pta-more a popiskem sedí ještě
   obalový div TooltipB - bez toho by se pozadí kreslilo na špatném prvku. */
.pta-more-label[b-yyra9jcf43] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: -.02em;
    color: rgba(var(--bs-body-color-rgb), .75);
    background: rgb(161 161 161 / 22%);
}

[data-bs-theme=light] .pta-more-label[b-yyra9jcf43] {
    background: rgb(32 32 32 / 10%);
}

/* Na mobilu topbar bojuje o šířku s breadcrumbem – tam stack skrýváme úplně,
   seznam členů zůstává dostupný přes tlačítko Sdílet a kontextové menu projektu. */
@media (max-width: 767px) {
    .pta-stack[b-yyra9jcf43] {
        display: none;
    }
}
/* /Pages/Projects/Components/ProjectTeamPanel.razor.rz.scp.css */
.project-team-panel[b-686xfh3jtr] {
    opacity: .7;
}

.project-team-title[b-686xfh3jtr] {
    font-size: .95rem;
}

[b-686xfh3jtr] .project-team-invite {
    align-self: flex-start;
    font-size: .84rem;
    margin-top: .4rem;
    margin-left: 2.3rem;
}

[b-686xfh3jtr] .project-team-members {
    font-size: .85rem;
}

[b-686xfh3jtr] .project-team-members .scope-member-row {
    justify-content: flex-start !important;
}

[b-686xfh3jtr] .project-team-members .scope-member-main {
    min-width: 0;
}

[b-686xfh3jtr] .project-team-members .scope-member-avatar .avatar {
    height: 1.46rem;
    width: 1.46rem;
    font-size: .56rem;
}

[b-686xfh3jtr] .project-team-members .scope-member-name-row {
    min-width: 0;
}

[b-686xfh3jtr] .project-team-members .scope-member-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

[b-686xfh3jtr] .project-team-members .scope-member-email,
[b-686xfh3jtr] .project-team-members .scope-member-registration {
    display: none !important;
}

[b-686xfh3jtr] .project-team-members .scope-member-role {
    color: rgba(var(--bs-body-color-rgb), .55);
    font-size: .72rem;
    margin-left: .54rem;
    white-space: nowrap;
}
/* /Pages/Projects/Detail/ProjectListItemContextMenu.razor.rz.scp.css */
.project-customer-menu-item[b-0ma8gvf8io] {
  border-top: 1px solid rgba(128, 128, 128, 0.18);
  border-bottom: 1px solid rgba(128, 128, 128, 0.18);
}

.project-customer-menu-label[b-0ma8gvf8io] {
  font-size: 0.82rem;
  opacity: 0.65;
}

.project-customer-menu-item[b-0ma8gvf8io]  .contact-person-select {
  width: 100%;
}

.project-customer-menu-item[b-0ma8gvf8io]  .contact-person-select > a {
  display: block;
  padding: 0.2rem 0;
  text-decoration: none;
}
/* /Pages/Projects/Detail/ProjectPage.razor.rz.scp.css */
/* Skeleton overlay při přepínání záložek */
.feed-tab-switching[b-bwsm720m3q] {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

/* Na mobilu zmenšujeme horizontální Bootstrap gutter feedového sloupce, aby obsah
   (feed, karty postů, hero) využil víc šířky a nelepil se na něj velký prázdný okraj.
   Bootstrap row má negativní margin a w-100 navíc způsobuje nesymetrii pravého okraje –
   proto šířku i okraje řádku na mobilu srovnáme. Breakpoint 768px se shoduje s IsMobileSize. */
@media (max-width: 767.98px) {
    .row.w-100[b-bwsm720m3q] {
        width: auto !important;
        margin-left: -6px !important;
        margin-right: -6px !important;
    }

    .col-xl-7[b-bwsm720m3q] {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

/* Hláška při filtru štítkem bez jediné shody. Tlumená a bez rámečku – nese vysvětlení,
   ne akci, a nesmí působit jako chybový stav. Feed pod ní je scollapsovaný na nulovou
   výšku, takže hláška stojí opticky na jeho místě. */
.feed-filter-empty[b-bwsm720m3q] {
    padding: 28px 0;
    text-align: center;
    opacity: 0.6;
    font-size: 0.95rem;
}
/* /Pages/Projects/Detail/ProjectPinButton.razor.rz.scp.css */
.project-pin-button[b-pr11pswbv8] {
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.project-pin-button i[b-pr11pswbv8] {
  font-size: 1.1em;
  color: #8c8c8c;
  transition: color 0.15s ease-in-out;
}
.project-pin-button:hover i[b-pr11pswbv8] {
  color: var(--accent-color);
}
.project-pin-button:has(.fas)[b-pr11pswbv8] {
  opacity: 1;
}

/* Nepřipnutý pin je skrytý (opacity: 0 výše) a v galerii se musí odhalit při hoveru nad celou kartou.
   Pravidlo patří sem, do stylu komponenty: rodičovské ::deep pravidlo v ProjectsList.razor.scss dostává
   scope atribut na předka, takže má stejnou specificitu jako zdejší základní `opacity: 0` a vyhrálo by
   jen podle pořadí v bundlu. Bez tohoto pravidla zůstávalo u nepřipnutých projektů jen prázdné místo.
   Podmínka cílí na schopnost hoveru, ne na šířku okna: hover-reveal má smysl jen tam, kde myš existuje. */
@media (hover: hover) {
  .gallery-card:hover .project-pin-button[b-pr11pswbv8] {
    opacity: 1;
  }
}

/* Na dotykových zařízeních hover nikdy nenastane, takže by nepřipnutý pin zůstal trvale neviditelný
   a nešel by odsud vůbec vyvolat. Proto ho v galerii necháváme zobrazený rovnou. */
@media (hover: none) {
  .gallery-card .project-pin-button[b-pr11pswbv8] {
    opacity: 1;
  }
}
.project-pin-button:has(.fas) i[b-pr11pswbv8] {
  color: var(--accent-color);
}

/* Galerie má obrázek v absolutní vrstvě; pin musí být nad ním, jinak se ztratí jen u projektů s obrázkem. */
.project-pin-button.gallery-pin[b-pr11pswbv8] {
  z-index: 3;
  top: 8px;
  left: 8px;
  padding: 6px 9px;
  border-radius: 8px;
  color: #fff;
  background: rgba(0, 0, 0, .38);
  border: 1px solid rgba(255, 255, 255, .22);
  text-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}

/* Accent barva (oranžová) na tmavém poloprůhledném pozadí lišty splývá a je nečitelná -
   v galerii proto necháváme připnutou ikonu bílou stejně jako ostatní akce v liště. */
.project-pin-button.gallery-pin:has(.fas) i[b-pr11pswbv8] {
  color: #fff;
}

/* Stejný důvod platí i pro nepřipnutý pin: šedá (#8c8c8c) i accent barva z hoveru (řádek výše)
   jsou na tmavém poloprůhledném pozadí lišty nekontrastní - v galerii proto ikona zůstává vždy bílá. */
.project-pin-button.gallery-pin i[b-pr11pswbv8],
.project-pin-button.gallery-pin:hover i[b-pr11pswbv8] {
  color: #fff;
}

/*# sourceMappingURL=ProjectPinButton.razor.css.map */
/* /Pages/Projects/Detail/ProjectStatusBadge.razor.rz.scp.css */
.project-status-badge[b-c21k2j8z83] {
  --status-menu-shadow: 0 6px 24px rgba(0, 0, 0, 0.13);
  --status-menu-shadow-dark: 0 6px 24px rgba(0, 0, 0, 0.4);
  --status-menu-border: rgba(0, 0, 0, 0.08);
  --status-menu-border-dark: rgba(255, 255, 255, 0.1);
  --status-option-active-bg: rgba(0, 0, 0, 0.05);
  --status-option-active-bg-dark: rgba(255, 255, 255, 0.07);
  display: inline-flex;
  align-items: center;
}
.project-status-badge .btn-status[b-c21k2j8z83] {
  font-size: 0.75rem;
  font-weight: 400;
  padding: 2px 8px 2px 7px;
  border-radius: 14px;
  border: 1px solid transparent;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  line-height: 1.3;
  transition: filter 0.15s ease, opacity 0.15s ease;
  opacity: 1;
  background: transparent;
}
.project-status-badge .btn-status[b-c21k2j8z83]::after {
  display: none;
}
.project-status-badge .btn-status:hover[b-c21k2j8z83] {
  opacity: 1;
  filter: brightness(1.08);
}
.project-status-badge .btn-status:active[b-c21k2j8z83], .project-status-badge .btn-status:focus[b-c21k2j8z83] {
  box-shadow: none !important;
}
.project-status-badge .btn-status i[b-c21k2j8z83] {
  font-size: 0.82rem;
  opacity: 0.7;
}
.project-status-badge .btn-status.status-done[b-c21k2j8z83] {
  opacity: 1;
  font-weight: 500;
}
.project-status-badge .btn-status.status-done i[b-c21k2j8z83] {
  opacity: 1;
}
.project-status-badge .btn-status.status-waiting[b-c21k2j8z83] {
  opacity: 0.95;
  font-weight: 500;
}
.project-status-badge .btn-status.status-waiting i[b-c21k2j8z83] {
  opacity: 0.95;
}
.project-status-badge .btn-status.status-hold[b-c21k2j8z83] {
  opacity: 0.88;
  font-weight: 500;
}
.project-status-badge .btn-status.status-hold i[b-c21k2j8z83] {
  opacity: 0.85;
}
.project-status-badge .btn-status.status-active[b-c21k2j8z83],
.project-status-badge .btn-status.status-preparation[b-c21k2j8z83],
.project-status-badge .btn-status.status-post[b-c21k2j8z83] {
  opacity: 1;
  font-weight: 500;
}
.project-status-badge .btn-status.status-active i[b-c21k2j8z83],
.project-status-badge .btn-status.status-preparation i[b-c21k2j8z83],
.project-status-badge .btn-status.status-post i[b-c21k2j8z83] {
  opacity: 0.85;
}
.project-status-badge .btn-status.status-cancelled[b-c21k2j8z83] {
  opacity: 0.45;
}
.project-status-badge .btn-status.status-cancelled i[b-c21k2j8z83] {
  opacity: 0.5;
}
.project-status-badge .dropdown-menu-status[b-c21k2j8z83] {
  min-width: 210px;
  border-radius: 12px;
  box-shadow: var(--status-menu-shadow);
  border: 1px solid var(--status-menu-border);
}
[data-bs-theme=dark] .project-status-badge .dropdown-menu-status[b-c21k2j8z83] {
  border-color: var(--status-menu-border-dark);
  box-shadow: var(--status-menu-shadow-dark);
}
.project-status-badge .status-option[b-c21k2j8z83] {
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 0.82rem;
  cursor: pointer;
  transition: background-color 0.12s ease;
}
.project-status-badge .status-option.active[b-c21k2j8z83] {
  font-weight: 600;
  background: var(--status-option-active-bg);
}
[data-bs-theme=dark] .project-status-badge .status-option.active[b-c21k2j8z83] {
  background: var(--status-option-active-bg-dark);
}
.project-status-badge .status-option .status-icon[b-c21k2j8z83] {
  width: 16px;
  text-align: center;
  font-size: 0.9rem;
}

.status-done[b-c21k2j8z83] {
  color: #16a34a !important;
  background-color: rgba(22, 163, 74, 0.14) !important;
  border-color: rgba(22, 163, 74, 0.35) !important;
}
[data-bs-theme=dark] .status-done[b-c21k2j8z83] {
  color: #4ade80 !important;
  background-color: rgba(74, 222, 128, 0.15) !important;
  border-color: rgba(74, 222, 128, 0.28) !important;
}

.status-waiting[b-c21k2j8z83] {
  color: #0891b2 !important;
  background-color: rgba(8, 145, 178, 0.12) !important;
  border-color: rgba(8, 145, 178, 0.28) !important;
}
[data-bs-theme=dark] .status-waiting[b-c21k2j8z83] {
  color: #22d3ee !important;
  background-color: rgba(34, 211, 238, 0.12) !important;
  border-color: rgba(34, 211, 238, 0.25) !important;
}

.status-hold[b-c21k2j8z83] {
  color: #d97706 !important;
  background-color: rgba(217, 119, 6, 0.11) !important;
  border-color: rgba(217, 119, 6, 0.25) !important;
}
[data-bs-theme=dark] .status-hold[b-c21k2j8z83] {
  color: #fbbf24 !important;
  background-color: rgba(251, 191, 36, 0.11) !important;
  border-color: rgba(251, 191, 36, 0.22) !important;
}

.status-active[b-c21k2j8z83] {
  color: #2563eb !important;
  background-color: rgba(37, 99, 235, 0.12) !important;
  border-color: rgba(37, 99, 235, 0.28) !important;
}
[data-bs-theme=dark] .status-active[b-c21k2j8z83] {
  color: #60a5fa !important;
  background-color: rgba(96, 165, 250, 0.13) !important;
  border-color: rgba(96, 165, 250, 0.25) !important;
}

.status-preparation[b-c21k2j8z83] {
  color: #7c3aed !important;
  background-color: rgba(124, 58, 237, 0.11) !important;
  border-color: rgba(124, 58, 237, 0.28) !important;
}
[data-bs-theme=dark] .status-preparation[b-c21k2j8z83] {
  color: #a78bfa !important;
  background-color: rgba(167, 139, 250, 0.13) !important;
  border-color: rgba(167, 139, 250, 0.25) !important;
}

.status-post[b-c21k2j8z83] {
  color: #db2777 !important;
  background-color: rgba(219, 39, 119, 0.1) !important;
  border-color: rgba(219, 39, 119, 0.25) !important;
}
[data-bs-theme=dark] .status-post[b-c21k2j8z83] {
  color: #f472b6 !important;
  background-color: rgba(244, 114, 182, 0.12) !important;
  border-color: rgba(244, 114, 182, 0.23) !important;
}

.status-cancelled[b-c21k2j8z83] {
  color: #6b7280 !important;
  background-color: rgba(107, 114, 128, 0.05) !important;
  border-color: transparent !important;
  text-decoration: line-through;
  opacity: 0.5;
}
[data-bs-theme=dark] .status-cancelled[b-c21k2j8z83] {
  color: #9ca3af !important;
  background-color: rgba(156, 163, 175, 0.05) !important;
}
/* /Pages/Projects/Overview/ProjectsList.razor.rz.scp.css */
.project:not(:last-child)[b-29yqs98klq] {
  border-bottom: 1px solid rgba(131, 131, 131, 0.28);
}

[b-29yqs98klq] .project .no-tags-icon {
  opacity: 0;
}

.project .project-name[b-29yqs98klq] {
  font-size: 1.5em;
  font-weight: 300;
}
.project .project-icon[b-29yqs98klq] {
  font-size: 3em;
}

.projects-detailed[b-29yqs98klq]  .project {
  padding: 10px 25px;
  background: rgba(138, 138, 138, 0.0588235294);
  transition: background 0.2s ease-in-out;
}
@media (max-width: 767px) {
  .projects-detailed[b-29yqs98klq]  .project:not(:last-child) {
    border-bottom: 1px solid rgba(139, 139, 139, 0.2392156863);
  }
}
.projects-detailed[b-29yqs98klq]  .project .project-summary {
  opacity: 0.5;
  font-size: 0.9em;
}
@media (min-width: 768px) {
  .projects-detailed[b-29yqs98klq]  .project {
    border-radius: 18px;
    border: 1px solid rgba(139, 139, 139, 0.1607843137);
  }
}
@media (max-width: 767px) {
  .projects-detailed[b-29yqs98klq] {
    margin-top: 0.75rem !important;
    gap: 0 !important;
  }
  .projects-detailed[b-29yqs98klq]  .project-detailed-card {
    max-width: none !important;
    padding: 14px 12px 16px;
  }
  .projects-detailed[b-29yqs98klq]  .project-card-header {
    gap: 12px !important;
    margin-bottom: 0 !important;
  }
  .projects-detailed .project-card-icon[b-29yqs98klq] {
    flex: 0 0 auto;
    font-size: 2.35rem;
    margin-top: 4px !important;
  }
  .projects-detailed[b-29yqs98klq]  .project-card-main {
    min-width: 0;
  }
  .projects-detailed .project-card-name[b-29yqs98klq] {
    min-width: 0;
    max-width: none !important;
    font-size: 1.25rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
  }
  .projects-detailed[b-29yqs98klq]  .project-pin-button,
  .projects-detailed[b-29yqs98klq]  .menu-trigger-icon {
    min-width: 36px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .projects-detailed .project-description[b-29yqs98klq] {
    margin: 12px 0 0 48px !important;
    font-size: 0.95rem;
    line-height: 1.35;
  }
}
.projects-detailed .add-project-placeholder[b-29yqs98klq] {
  max-width: 400px;
  width: 100%;
  min-height: 200px;
  padding: 10px 25px;
  background: rgba(138, 138, 138, 0.0588235294);
  border: 1px solid rgba(139, 139, 139, 0.1607843137);
  border-radius: 18px;
  transition: all 0.2s ease-in-out;
  position: relative;
}
@media (max-width: 767px) {
  .projects-detailed .add-project-placeholder[b-29yqs98klq] {
    border-radius: 0;
    border: none;
    border-bottom: 1px solid rgba(139, 139, 139, 0.2392156863);
  }
}
@media (min-width: 768px) {
  .projects-detailed .add-project-placeholder:hover[b-29yqs98klq] {
    background: #f0f0f0;
    border-color: #bdbdbd;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  }
  .projects-detailed .add-project-placeholder:hover .add-project-icon[b-29yqs98klq] {
    color: #232323;
    transform: scale(1.05);
  }
  .projects-detailed .add-project-placeholder:hover .add-project-text[b-29yqs98klq] {
    color: #1e1e1e;
  }
  [data-bs-theme=dark] .projects-detailed .add-project-placeholder:hover[b-29yqs98klq] {
    background: rgb(16, 16, 16);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    border-color: #2c2c2c;
  }
  [data-bs-theme=dark] .projects-detailed .add-project-placeholder:hover .add-project-icon[b-29yqs98klq], [data-bs-theme=dark] .projects-detailed .add-project-placeholder:hover .add-project-text[b-29yqs98klq] {
    color: #e1e1e1;
  }
}
.projects-detailed .add-project-placeholder .add-project-content[b-29yqs98klq] {
  pointer-events: none;
}
.projects-detailed .add-project-placeholder .add-project-icon[b-29yqs98klq] {
  font-size: 4rem;
  color: #8b8b8b;
  transition: all 0.2s ease-in-out;
}
.projects-detailed .add-project-placeholder .add-project-text[b-29yqs98klq] {
  font-size: 1rem;
  font-weight: 500;
  color: #8b8b8b;
  transition: all 0.2s ease-in-out;
}

.projects-medium[b-29yqs98klq]  .project {
  width: 308px;
  border: 1px solid rgba(135, 135, 135, 0.3215686275);
  border-radius: 10px;
  padding: 8px 7px 10px 15px;
  background: rgba(244, 244, 244, 0.4392156863);
  transition: background 0.2s ease-in-out;
}
[data-bs-theme=dark] .projects-medium[b-29yqs98klq]  .project {
  background: rgba(140, 140, 140, 0.1215686275);
}
.projects-medium[b-29yqs98klq]  .project .project-name {
  font-size: 1.2em;
  font-weight: 400;
  cursor: pointer;
}
.projects-medium[b-29yqs98klq]  .project .project-description {
  opacity: 0.6;
  font-size: 0.92em;
  cursor: pointer;
}
.projects-medium[b-29yqs98klq]  .project .buttons {
  opacity: 0.7;
  transition: opacity 0.15s;
}

.projects-compact .project-tile[b-29yqs98klq] {
  width: 130px;
  height: 130px;
  border: 1px solid rgba(160, 160, 160, 0.25);
  border-radius: 8px;
  position: relative;
  transition: all 0.2s ease-in-out;
  background: rgba(255, 255, 255, 0.6);
}
[data-bs-theme=dark] .projects-compact .project-tile[b-29yqs98klq] {
  background: rgba(39, 39, 39, 0.6);
}
.projects-compact .project-tile[b-29yqs98klq]  .menu-btn {
  opacity: 0;
  right: 4px;
  top: 0px;
}
.projects-compact .project-tile .project-icon[b-29yqs98klq] {
  font-size: 2.4em;
}
.projects-compact .project-tile .tile-name[b-29yqs98klq] {
  font-size: 0.85em;
  font-weight: 400;
  word-break: break-word;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.3;
}
.projects-compact .project-tile[b-29yqs98klq]  .pin-compact {
  left: 4px;
  top: 5px;
}

.projects-gallery[b-29yqs98klq] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--gal-min-w, 240px), 1fr));
  gap: 16px;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.projects-gallery.gallery-size-pulse .gallery-card[b-29yqs98klq] {
  animation: gallery-size-pulse-b-29yqs98klq 0.24s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes gallery-size-pulse-b-29yqs98klq {
  from {
    transform: scale(var(--gal-size-from, 1));
    opacity: 0.9;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
.projects-gallery .gallery-card[b-29yqs98klq] {
  border-radius: 10px;
  background: #f5f5f5;
  border: 1px solid rgba(0, 0, 0, 0.07);
  transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out, all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}
[data-bs-theme=dark] .projects-gallery .gallery-card[b-29yqs98klq] {
  background: #1e1e1e;
  border-color: rgba(255, 255, 255, 0.08);
}
.projects-gallery .gallery-card.active[b-29yqs98klq] {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}
.projects-gallery .gallery-card:hover[b-29yqs98klq] {
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.14);
  transform: translateY(-2px);
}
.projects-gallery .gallery-card:hover .gallery-img[b-29yqs98klq] {
  transform: scale(1.05);
}
.projects-gallery .gallery-card:hover[b-29yqs98klq]  .gallery-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.projects-gallery .gallery-card .gallery-thumb:hover[b-29yqs98klq]  .gallery-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.projects-gallery .gallery-card .gallery-thumb[b-29yqs98klq] {
  position: relative;
  aspect-ratio: var(--gal-aspect, 16/9);
  background: #ddd;
  overflow: hidden;
  border-radius: 10px 10px 0 0;
  flex-shrink: 0;
  transition: aspect-ratio 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
[data-bs-theme=dark] .projects-gallery .gallery-card .gallery-thumb[b-29yqs98klq] {
  background: #2c2c2c;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-actions[b-29yqs98klq] {
  position: absolute;
  z-index: 3;
  top: 8px;
  left: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-actions[b-29yqs98klq]  .gallery-pin,
.projects-gallery .gallery-card .gallery-thumb .gallery-actions .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload,
.projects-gallery .gallery-card .gallery-thumb .gallery-actions[b-29yqs98klq]  .gallery-menu .gallery-menu-icon {
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 10px;
  color: #fff;
  background: rgba(0, 0, 0, 0.38);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease-in-out, border-color 0.15s ease-in-out;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-actions[b-29yqs98klq]  .gallery-pin:hover,
.projects-gallery .gallery-card .gallery-thumb .gallery-actions .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload:hover,
.projects-gallery .gallery-card .gallery-thumb .gallery-actions[b-29yqs98klq]  .gallery-menu .gallery-menu-icon:hover {
  background: rgba(0, 0, 0, 0.62);
  border-color: rgba(255, 255, 255, 0.4);
}
.projects-gallery .gallery-card .gallery-thumb .gallery-cover-upload-action[b-29yqs98klq] {
  position: relative;
  z-index: 2;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.16s ease, transform 0.16s ease;
  pointer-events: none;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload {
  flex: 0 0 auto;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-img[b-29yqs98klq] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: var(--gal-fit, cover);
  transition: object-fit 0.4s ease, transform 0.4s ease;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-placeholder[b-29yqs98klq] {
  position: absolute;
  inset: 0;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-open-hint[b-29yqs98klq] {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.42);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.16s ease;
}
.projects-gallery .gallery-card .gallery-thumb .gallery-open-hint-pill[b-29yqs98klq] {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  max-width: 90%;
  padding: 0.45em 0.9em;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 0.85em;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transform: translateY(4px);
  transition: transform 0.16s ease;
}
.projects-gallery .gallery-card.active:hover .gallery-thumb .gallery-open-hint[b-29yqs98klq], .projects-gallery .gallery-card.active:focus-within .gallery-thumb .gallery-open-hint[b-29yqs98klq] {
  opacity: 1;
}
.projects-gallery .gallery-card.active:hover .gallery-thumb .gallery-open-hint-pill[b-29yqs98klq], .projects-gallery .gallery-card.active:focus-within .gallery-thumb .gallery-open-hint-pill[b-29yqs98klq] {
  transform: translateY(0);
}
.projects-gallery .gallery-card:hover .gallery-thumb .gallery-cover-upload-action[b-29yqs98klq], .projects-gallery .gallery-card:focus-within .gallery-thumb .gallery-cover-upload-action[b-29yqs98klq] {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-pin,
.projects-gallery .gallery-card.gallery-card--no-image .gallery-actions .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload,
.projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-menu .gallery-menu-icon {
  color: rgba(0, 0, 0, 0.55);
  background: rgba(0, 0, 0, 0.06);
  border-color: rgba(0, 0, 0, 0.1);
  text-shadow: none;
}
.projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-pin:hover,
.projects-gallery .gallery-card.gallery-card--no-image .gallery-actions .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload:hover,
.projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-menu .gallery-menu-icon:hover {
  color: rgba(0, 0, 0, 0.75);
  background: rgba(0, 0, 0, 0.12);
  border-color: rgba(0, 0, 0, 0.18);
}
[data-bs-theme=dark] .projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-pin,
[data-bs-theme=dark] .projects-gallery .gallery-card.gallery-card--no-image .gallery-actions .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload,
[data-bs-theme=dark] .projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-menu .gallery-menu-icon {
  color: rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  text-shadow: none;
}
[data-bs-theme=dark] .projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-pin:hover,
[data-bs-theme=dark] .projects-gallery .gallery-card.gallery-card--no-image .gallery-actions .gallery-cover-upload-action[b-29yqs98klq]  .gallery-cover-upload:hover,
[data-bs-theme=dark] .projects-gallery .gallery-card.gallery-card--no-image .gallery-actions[b-29yqs98klq]  .gallery-menu .gallery-menu-icon:hover {
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.22);
}
.projects-gallery .gallery-card[b-29yqs98klq]  .gallery-menu {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.16s ease;
}
.projects-gallery .gallery-card .gallery-info[b-29yqs98klq] {
  padding: 10px 12px 12px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}
.projects-gallery .gallery-card .gallery-info .gallery-name[b-29yqs98klq] {
  font-size: 1.12em;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.projects-gallery .gallery-card .gallery-info .gallery-name--multiline[b-29yqs98klq] {
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: clip;
}
.projects-gallery .gallery-card .gallery-info .gallery-meta[b-29yqs98klq] {
  font-size: 0.78em;
  opacity: 0.55;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.projects-gallery .gallery-card .gallery-info .gallery-status[b-29yqs98klq] {
  position: relative;
  z-index: 4;
}
.projects-gallery .gallery-add[b-29yqs98klq] {
  border: 2px dashed rgba(128, 128, 128, 0.25);
  background: linear-gradient(180deg, rgba(120, 120, 120, 0.12) 0%, rgba(120, 120, 120, 0.18) 100%);
}
[data-bs-theme=dark] .projects-gallery .gallery-add[b-29yqs98klq] {
  border-color: rgba(200, 200, 200, 0.12);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.14) 100%);
}
.projects-gallery .gallery-add .gallery-thumb[b-29yqs98klq] {
  background: transparent;
  aspect-ratio: auto;
  min-height: 100%;
  flex: 1 1 auto;
}
.projects-gallery .gallery-add .gallery-thumb--add[b-29yqs98klq] {
  gap: 10px;
  padding: 1rem;
  text-align: center;
}
.projects-gallery .gallery-add .gallery-thumb--add i[b-29yqs98klq] {
  font-size: 3rem !important;
  opacity: 0.55 !important;
}
.projects-gallery .gallery-add .gallery-thumb--add .add-project-label[b-29yqs98klq] {
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.3;
  opacity: 0.75;
  text-align: center;
  max-width: 12rem;
}
.projects-gallery .gallery-add:hover[b-29yqs98klq] {
  background: linear-gradient(180deg, rgba(128, 128, 128, 0.16) 0%, rgba(128, 128, 128, 0.22) 100%);
  border-color: rgba(128, 128, 128, 0.4);
  transform: none;
  box-shadow: none;
}

@media (min-width: 768px) {
  .project .project-name:hover[b-29yqs98klq] {
    color: var(--accent-color);
  }
  .projects-detailed[b-29yqs98klq]  .project:hover {
    background: #ececec !important;
  }
  [data-bs-theme=dark] .projects-detailed[b-29yqs98klq]  .project:hover {
    background: rgb(18, 18, 18) !important;
  }
  .projects-detailed[b-29yqs98klq]  .project:hover .project-pin-button {
    opacity: 1;
  }
  .projects-medium[b-29yqs98klq]  .project:hover {
    background: rgba(218, 218, 218, 0.56);
  }
  [data-bs-theme=dark] .projects-medium[b-29yqs98klq]  .project:hover {
    background: rgba(255, 255, 255, 0.1450980392);
  }
  .projects-medium[b-29yqs98klq]  .project:hover .project-name {
    color: var(--accent-color);
  }
  .projects-medium[b-29yqs98klq]  .project:hover .project-pin-button {
    opacity: 1;
  }
  .projects-medium[b-29yqs98klq]  .project:hover .buttons {
    opacity: 1;
  }
  .projects-compact .project-tile:hover[b-29yqs98klq] {
    background: rgba(245, 245, 245, 0.95);
  }
  [data-bs-theme=dark] .projects-compact .project-tile:hover[b-29yqs98klq] {
    background: rgba(80, 80, 80, 0.8);
  }
  .projects-compact .project-tile:hover[b-29yqs98klq]  .project-pin-button, .projects-compact .project-tile:hover[b-29yqs98klq]  .menu-btn {
    opacity: 1;
  }
  [b-29yqs98klq] .project:hover .no-tags-icon {
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
  }
  .project:hover[b-29yqs98klq]  .no-tags-icon {
    opacity: 1 !important;
    transition: opacity 0.3s ease-in-out;
  }
  .project:hover[b-29yqs98klq]  .project-pin-button {
    opacity: 1;
  }
  .project[b-29yqs98klq]  .project-pin-button,
  .projects-compact .project-tile[b-29yqs98klq]  .project-pin-button,
  .projects-compact .project-tile[b-29yqs98klq]  .menu-btn {
    opacity: 0;
    transition: opacity 0.15s ease-in-out;
  }
  .project:hover[b-29yqs98klq]  .project-pin-button,
  .projects-compact .project-tile:hover[b-29yqs98klq]  .project-pin-button,
  .projects-compact .project-tile:hover[b-29yqs98klq]  .menu-btn {
    opacity: 1;
  }
}
/* /Pages/Projects/Overview/ProjectsPage.razor.rz.scp.css */
/* .layout-toggle (samostatný přepínač full/split v toolbaru) byl odstraněn —
   split view se nyní ovládá z panelu "Vzhled" (ProjectsAppearancePanel), aby nebyl duplicitní. */

.split-view-container[b-lj6k12hw1p] {
  display: flex;
  gap: 0;
  height: calc(100vh - 130px);
  --split-left-pct: 50%;
}
.split-view-container .split-left[b-lj6k12hw1p] {
  flex: 0 0 var(--split-left-pct);
  min-width: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 8px;
  padding-left: 4px;
}
.split-view-container .split-handle[b-lj6k12hw1p] {
  flex: 0 0 12px;
  width: 12px;
  cursor: ew-resize;
  display: flex;
  align-items: stretch;
  justify-content: center;
  position: relative;
  z-index: 10;
}
.split-view-container .split-handle[b-lj6k12hw1p]::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1px;
  background: rgba(128, 128, 128, 0.35);
  transition: background 0.2s, width 0.2s;
}
.split-view-container .split-handle[b-lj6k12hw1p]::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 6px;
  height: 40px;
  background-image: radial-gradient(circle, rgba(128, 128, 128, 0.55) 1.2px, transparent 1.2px);
  background-size: 3px 4px;
  background-repeat: repeat;
  transition: opacity 0.2s, height 0.2s;
  opacity: 1;
}
.split-view-container .split-handle:hover[b-lj6k12hw1p]::before {
  width: 2px;
  background: var(--accent-color, rgba(128, 128, 200, 0.5));
}
.split-view-container .split-handle:hover[b-lj6k12hw1p]::after {
  height: 56px;
  background-image: radial-gradient(circle, var(--accent-color, rgba(128, 128, 200, 0.85)) 1.2px, transparent 1.2px);
  background-size: 3px 4px;
}
.split-view-container .split-handle:active[b-lj6k12hw1p]::before {
  width: 2px;
  background: var(--accent-color, rgba(128, 128, 200, 0.7));
}
.split-view-container .split-handle:active[b-lj6k12hw1p]::after {
  height: 56px;
  background-image: radial-gradient(circle, var(--accent-color, rgb(128, 128, 200)) 1.2px, transparent 1.2px);
  background-size: 3px 4px;
}
.split-view-container .split-right[b-lj6k12hw1p] {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-left: 8px;
}

.split-feed-panel .split-feed-hero[b-lj6k12hw1p] {
  border-bottom: 1px solid rgba(128, 128, 128, 0.15);
  padding-bottom: 12px;
}
.split-feed-panel .split-hero-name[b-lj6k12hw1p] {
  font-size: 1.1em;
  font-weight: 600;
  line-height: 1.3;
}
.split-feed-panel .split-hero-meta[b-lj6k12hw1p] {
  font-size: 0.82em;
  opacity: 0.7;
}
.split-feed-panel .split-hero-desc[b-lj6k12hw1p] {
  font-size: 0.82em;
  opacity: 0.65;
  line-height: 1.45;
}
.split-feed-panel .split-feed-content[b-lj6k12hw1p] {
  padding-top: 8px;
}
/* /Pages/Projects/Overview/ProjectStatusFiltering.razor.rz.scp.css */
.status-filter-btn[b-rrf8qc4ok8] {
  height: 28px;
  padding: 0px 11px;
  border: 1px solid transparent;
  outline: none;
  background: rgba(135, 135, 135, 0.2784313725);
  font-size: 0.85rem;
  transition: all 0.15s ease-in-out;
  box-shadow: none !important;
  color: #6b7280;
  border-color: #d1d5db;
}
[data-bs-theme=dark] .status-filter-btn[b-rrf8qc4ok8] {
  background: #404040;
  border-color: #525252;
  color: #9ca3af;
}
.status-filter-btn:hover[b-rrf8qc4ok8] {
  filter: brightness(1.1);
  border-color: #9ca3af;
}
.status-filter-btn.active[b-rrf8qc4ok8] {
  background: #b5adff;
  border-color: #8b5cf6;
  color: #5b21b6;
  font-weight: 500;
}
[data-bs-theme=dark] .status-filter-btn.active[b-rrf8qc4ok8] {
  background: #5344db;
  border-color: #7c3aed;
  color: #e9d5ff;
}

/*# sourceMappingURL=ProjectStatusFiltering.razor.css.map */
/* /Pages/Projects/ProjectCards/FeedFolderCard.razor.rz.scp.css */
.folder[b-9qex7m367d] {
  border: 1px solid rgba(135, 135, 135, 0.368627451);
  border-radius: 15px;
  padding: 11px 36px;
  cursor: pointer;
}
.folder .folder-name[b-9qex7m367d] {
  font-size: 17px;
}
.folder:hover[b-9qex7m367d] {
  background-color: var(--bs-primary-bg-subtle);
}

/*# sourceMappingURL=FeedFolderCard.razor.css.map */
/* /Pages/Projects/ProjectCards/FeedFolderCards.razor.rz.scp.css */
[b-gs6x2sqmyk] #sortable {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}
/* /Pages/Projects/ProjectFeed/Components/Audio/AnnotationsList.razor.rz.scp.css */
.annotation[b-cs6fw6wlse] {
  gap: 0.1rem;
  min-width: 8rem;
  padding: 0.4rem 0.55rem;
  border: 0;
  border-radius: 9px;
  background: rgba(var(--bs-body-color-rgb), 0.055);
  transition: background-color 120ms ease, box-shadow 120ms ease;
}
.annotation:not(.selected)[b-cs6fw6wlse] {
  cursor: pointer;
}
.annotation.selected[b-cs6fw6wlse] {
  border: 0 !important;
  background: rgba(var(--bs-primary-rgb), 0.12);
  box-shadow: inset 0 0 0 1px rgba(var(--bs-primary-rgb), 0.28);
}
.annotation.selected .header[b-cs6fw6wlse] {
  background: transparent !important;
  color: var(--bs-primary);
}

.annotation .header[b-cs6fw6wlse] {
  gap: 0.4rem;
  padding: 0;
  border-radius: 0;
  background: transparent !important;
  color: inherit;
  font-size: 0.74rem;
  text-align: left;
}

.annotation .small[b-cs6fw6wlse] {
  font-size: 0.66rem;
  line-height: 1.15;
}

.annotation:hover[b-cs6fw6wlse] {
  background: rgba(var(--bs-body-color-rgb), 0.08);
}

/*# sourceMappingURL=AnnotationsList.razor.css.map */
/* /Pages/Projects/ProjectFeed/Components/Audio/FeedAudioPlayer.razor.rz.scp.css */
/* === Desktopové akce anotací – minimalistické pill buttony ===
   Nahrazují původní bootstrap btn-group; drží tichý ghost vzhled, aby nesoupeřily s Play. */
.audio-annotation-actions[b-leakz5anxo] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.audio-annotation-btn[b-leakz5anxo] {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.7rem;
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.18);
  border-radius: 999px;
  background: transparent;
  color: inherit;
  opacity: 0.75;
  font-size: 0.78rem;
  line-height: 1.3;
  white-space: nowrap;
  transition: opacity 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.audio-annotation-btn:hover[b-leakz5anxo] {
  opacity: 1;
  border-color: rgba(var(--bs-body-color-rgb), 0.35);
  background: rgba(var(--bs-body-color-rgb), 0.05);
}

/* Ikonová varianta (bodová anotace) – kompaktní kruh vedle hlavního pillu. */
.audio-annotation-btn-icon[b-leakz5anxo] {
  padding: 0.25rem 0.5rem;
}

/* Zamčená varianta bez modulu – jen decentně ztlumená, klik otevírá upgrade flow. */
.audio-annotation-btn-locked[b-leakz5anxo] {
  opacity: 0.55;
}

/* Horní tlačítka (předchozí/další/stažení/fullscreen) – na desktopu plovou v rohu nad vlnovkou. */
.top-buttons[b-leakz5anxo] {
  position: absolute;
}

.audio-player-root.embedded .top-buttons[b-leakz5anxo] {
  position: absolute;
  top: -0.3rem !important;
  right: -0.1rem !important;
  justify-content: flex-end;
  width: auto;
  gap: 0.15rem !important;
  margin: 0;
  z-index: 3;
}

/* Inline varianta má být součástí příspěvku, ne další karta. Vlastní povrch proto
   dostává jen waveform; hlavička a ovládání zůstávají na pozadí příspěvku. */
.audio-player-root.embedded h6[b-leakz5anxo] {
  min-width: 0;
  min-height: 1.35rem;
  margin: 0 0 0.35rem !important;
  padding-right: 13rem;
  overflow: hidden;
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.005em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.audio-player-root.embedded .audio-waveform-stage[b-leakz5anxo] {
  padding: 0.5rem 0.6rem 0.2rem;
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.055);
  border-radius: 10px;
  background: rgba(var(--bs-body-color-rgb), 0.022);
}

/* === Kompaktní karta ve feedu ===
   Stejný root/instance jako rozbalený přehrávač (viz FeedAudioPlayer.razor - CompactMode),
   jen s menší, neinteraktivní vlnovkou a bez ovládacích prvků. Vizuálně navazuje na dřívější
   samostatnou AudioPreview kartu (viz Files/Edit/AudioPreview.razor.css), aby přechod na
   kompaktní vzhled po sbalení nepůsobil jako jiná komponenta. */
.audio-player-root.embedded.compact[b-leakz5anxo] {
  cursor: pointer;
}

.audio-player-root.embedded.compact .audio-waveform-stage[b-leakz5anxo] {
  position: relative; /* kotva pro vystředěnou .audio-preview-play ikonu, ne celý root */
  padding: 0.5rem 0.6rem 0.2rem;
}

.audio-compact-header[b-leakz5anxo] {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  min-width: 0;
  min-height: 1.35rem;
  margin: 0 0 0.35rem;
  padding-right: 13rem; /* Rezerva chrání název před absolutně umístěnými akcemi po rozbalení. */
}

.audio-compact-title[b-leakz5anxo] {
  min-width: 0;
  font-weight: 650;
  font-size: 0.84rem;
  opacity: 0.82;
}

.audio-player-root.embedded.compact .audio-preview-duration[b-leakz5anxo] {
  flex: 0 0 auto;
  font-size: 0.76rem;
  font-variant-numeric: tabular-nums;
  opacity: 0.58;
}

/* Rezerva 13rem chrání název jen před absolutně umístěnými akcemi rozbaleného stavu. Kompaktní
   karta žádné takové akce nemá a její vlastní akční ikony jsou součástí flexu, takže by rezerva
   jen zbytečně ukrajovala prostor názvu souboru. */
.audio-player-root.embedded.compact .audio-compact-header[b-leakz5anxo] {
  padding-right: 0.6rem;
}


/* WaveSurfer je v kompaktním stavu čistě dekorativní - klik na kartu (viz OnRootClickAsync)
   ji má rozbalit, ne se pokoušet o drag-seek do audia, které ještě není načtené. */
[b-leakz5anxo] .compact-wave {
  pointer-events: none;
}

/* Timeline a desktopová minimapa se připojují až po načtení audioInfo a přidají pod hlavní
   canvas 22 px. Rezerva je součástí obou stavů, aby první klik nezměnil výšku waveform stage. */
.audio-player-root.embedded[b-leakz5anxo]  [id^="wavesurf_"] {
  min-height: 86px;
}

.audio-player-root.embedded.compact .audio-preview-play[b-leakz5anxo] {
  position: absolute;
  top: calc(0.5rem + 32px); /* Ikona zůstává uprostřed hlavního 64px canvasu, ne včetně rezervy pluginů. */
  left: 50%;
  z-index: 2;
  /* Stejný 40px terč jako u "..." - z dekorace se stalo hlavní klikací tlačítko karty
     a do původních 26px se uživatel trefoval obtížně. */
  width: 40px;
  height: 40px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  color: #fff;
  background: rgba(var(--bs-primary-rgb), 0.62);
  border: 1px solid rgba(255, 255, 255, 0.3);
  /* Nově skutečné tlačítko (dřív dekorativní div s pointer-events: none) - jako jediná akce
     v kompaktní kartě spouští přehrávání, takže klik musí zachytit ono, ne root pod ním. */
  transition: background-color 0.12s ease-in-out;
}

.audio-player-root.embedded.compact .audio-preview-play:hover[b-leakz5anxo] {
  background: rgba(var(--bs-primary-rgb), 0.85);
}

.audio-player-root.embedded.compact .audio-preview-play i[b-leakz5anxo] {
  margin-left: 2px;
  font-size: 0.95rem;
}

/* Tichý expand vedle hlavního play. Odsazení musí být zřetelné - natěsno u play čte uživatel obě
   kolečka jako jedno ovládání přehrávání, ne jako dvě různé akce. Ztlumené a bez barevné výplně,
   aby play zůstal jednoznačně primární; objevuje se až na hover, takže kompaktní karta zůstává klidná. */
.audio-player-root.embedded.compact .audio-preview-detail[b-leakz5anxo] {
  position: absolute;
  top: calc(0.5rem + 32px); /* Stejná kotva jako .audio-preview-play - obě ikony sedí na jedné ose. */
  left: 50%;
  z-index: 3; /* Nad .audio-preview-play - obě jsou klikatelná, překryv musí patřit tomu vrchnímu. */
  /* 40px terč: menší kolečko sice vizuálně stačilo, ale trefit se do něj myší bylo nepříjemné.
     Větší plochu kompenzuje nižší opacity níž, aby akce ve feedu nezačala přebíjet play. */
  width: 40px;
  height: 40px;
  /* Vlevo od play: sekundární akce nemá stát v cestě primárnímu gestu a nepřekrývá vlnovku
     ve směru, kterým roste progres přehrávání. Skrytý stav startuje o kousek blíž ke středu
     a menší - viditelný stav pak dojede do finální pozice, což dá vjezdu směr místo pouhého fade. */
  transform: translate(calc(-50% - 52px), -50%) scale(0.82);
  display: grid;
  place-items: center;
  padding: 0;
  border-radius: 50%;
  color: var(--bs-body-color);
  background: rgba(var(--bs-body-bg-rgb), 0.85);
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.18);
  opacity: 0;
  /* cubic-bezier s přestřelením dá krátkému pohybu lehké doskočení; 0.16s je dost rychlé,
     aby akce působila okamžitě, ale ne tak, aby vjezd splynul s jedním snímkem. */
  transition: opacity 0.16s ease-out, transform 0.16s cubic-bezier(0.34, 1.56, 0.64, 1),
              background-color 0.12s ease-in-out, border-color 0.12s ease-in-out;
}

.audio-player-root.embedded.compact .audio-preview-detail i[b-leakz5anxo] {
  font-size: 1rem;
}

.audio-player-root.embedded.compact:hover .audio-preview-detail[b-leakz5anxo],
.audio-player-root.embedded.compact .audio-preview-detail:focus-visible[b-leakz5anxo] {
  opacity: 0.72; /* Nižší než play - větší terč nemá přetáhnout pozornost z primární akce. */
  transform: translate(calc(-50% - 62px), -50%) scale(1); /* Cílová pozice vjezdu, viz skrytý stav výš. */
}

/* Vjezd je dekorace, ne informace. Uživatel s omezením pohybu dostane jen okamžité zobrazení. */
@media (prefers-reduced-motion: reduce) {
  .audio-player-root.embedded.compact .audio-preview-detail[b-leakz5anxo] {
    transform: translate(calc(-50% - 62px), -50%) scale(1);
    transition: opacity 0.12s ease-in-out;
  }
}

/* Najetí přímo na tlačítko ho dorovná na plnou sytost - ztlumení výš platí jen pro klidový
   stav při hoveru nad kartou, ne ve chvíli, kdy uživatel míří přímo sem. */
.audio-player-root.embedded.compact .audio-preview-detail:hover[b-leakz5anxo] {
  opacity: 1;
  background: var(--bs-body-bg);
  border-color: rgba(var(--bs-body-color-rgb), 0.35);
}

.audio-player-root.embedded .audio-controls[b-leakz5anxo] {
  min-height: 1.85rem;
  padding: 0 0.1rem;
  font-size: 0.8rem;
}

.audio-player-root.embedded .audio-transport[b-leakz5anxo] {
  gap: 0.65rem !important;
}

.audio-player-root.embedded .audio-scroll-area[b-leakz5anxo] {
  max-height: min(270px, 38vh);
  overflow-y: auto;
  scrollbar-width: thin;
}

.audio-player-root.embedded .audio-player-comments[b-leakz5anxo] {
  margin-top: 0.4rem !important;
}

/* ButtonLink žije mimo CSS scope. Menší ikony drží desktopový toolbar na jediném
   nenápadném řádku, ale zachovávají původní interaktivní plochu komponenty. */
.audio-player-root.embedded[b-leakz5anxo]  .top-buttons .button-link {
  padding: 0.2rem 0.3rem;
  font-size: 0.78rem;
  opacity: 0.5;
}

.audio-player-root.embedded[b-leakz5anxo]  .top-buttons .button-link:hover {
  opacity: 1;
}

.audio-current-version[b-leakz5anxo] {
  display: inline-flex;
  padding: 1px 7px;
  border-radius: 999px;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.1);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  vertical-align: middle;
}

/* Nedostupná navigační šipka (žádný předchozí/další song) – výrazně ztlumit.
   ButtonLink je mimo scope (::deep) a Bootstrap .btn.disabled drží opacity 0.65, proto !important. */
[b-leakz5anxo] .audio-nav-unavailable {
  opacity: 0.3 !important;
}

/* Pozn.: fullscreen overlay (.bm-container) řeší globální <style> ve FeedAudioPlayerStyles.razor,
   protože overlay je předkem komponenty a scoped ::deep na něj nedosáhne. */
@media (max-width: 576px) {
  /* Mobil nemá minimapu; rezervujeme proto jen 12px timeline pod 52px hlavním canvasem. */
  .audio-player-root.embedded[b-leakz5anxo]  [id^="wavesurf_"] {
    min-height: 64px;
  }

  .audio-player-root.embedded.compact .audio-preview-play[b-leakz5anxo] {
    top: calc(0.5rem + 26px);
  }

  /* Fullscreen flex sloupec: hlavička, vlnovka a dolní lišta jsou fixní, scrolluje jen .audio-scroll-area. */
  .audio-player-root:not(.embedded)[b-leakz5anxo] {
    height: 100dvh;
    /* iPhone fullscreen modal obchází běžný app header, proto safe area + rezerva nahoře na řádek s close. */
    padding: calc(env(safe-area-inset-top) + 4.5rem) 0.75rem 0 0.75rem; /* horní rezerva drží close nad nadpisem; dolní lišta řeší vlastní padding */
    display: flex;
    flex-direction: column;
    overflow: hidden; /* zabrání scrollu celého okna; scroll obstará jen vnitřní oblast */
  }

  /* Jediná scrollovatelná oblast – seznam anotací a komentářů. */
  .audio-scroll-area[b-leakz5anxo] {
    flex: 1 1 auto;
    min-height: 0; /* nutné, aby flex potomek mohl scrollovat místo roztažení rodiče */
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -0.75rem; /* komentáře přes celou šířku, vnitřní padding si řeší samy */
    padding: 0 0.75rem;
  }

  /* Dolní lišta roztáhneme přes celou šířku okna (zruší horizontální padding rootu). */
  .audio-mobile-bar[b-leakz5anxo] {
    margin: 0 -0.75rem;
  }

  .audio-player-root.embedded .audio-scroll-area[b-leakz5anxo] {
    max-height: min(260px, 38vh);
    margin: 0;
    padding: 0;
  }

  .audio-player-root.embedded .audio-mobile-bar[b-leakz5anxo] {
    margin: 0;
    border-radius: 0 0 10px 10px;
  }

  .audio-player-root.embedded h6[b-leakz5anxo] {
    min-height: 1.4rem;
    margin-bottom: 0.35rem !important;
    padding-right: 0;
    font-size: 0.86rem;
  }

  .audio-player-root.embedded .audio-waveform-stage[b-leakz5anxo] {
    padding: 0.5rem 0.55rem 0.2rem;
    border-radius: 10px;
  }

  /* Close vlevo nahoře nad celým fullscreen oknem.
     ButtonLink renderuje vnitřní <button> mimo CSS scope, proto cílíme přes ::deep. */
  [b-leakz5anxo] .audio-close-button {
    position: absolute;
    top: calc(env(safe-area-inset-top) + 0.5rem);
    left: 0.6rem;
    z-index: 10;
    min-width: 44px;
    min-height: 44px;
    padding: 0.4rem; /* rezerva kolem ikony pro pohodlný tap, kroužek nelepí přímo na okraj */
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start; /* ikona zarovnaná vlevo, žádná mezera před šipkou */
  }

  /* Vlastní velikost ikony – .icon třída uvnitř ButtonLinku má vyšší specificitu než font-size na buttonu. */
  [b-leakz5anxo] .audio-close-button .icon {
    font-size: 1.8em; /* Šipka zpět v kroužku, dostatečně velká pro pohodlný tap na iPhone. */
  }

  /* Nadpis je na samostatném řádku pod close (horní padding rootu drží odstup), proto bez levé rezervy. */
  .audio-player-root h6[b-leakz5anxo] {
    min-height: 1.75rem;
  }
}

/* === Mobilní native transport lišta (renderuje se jen při uSvc.IsMobileSize) ===
   Fixní spodní položka flex sloupce .audio-player-root – nescrolluje s komentáři. */
.audio-mobile-bar[b-leakz5anxo] {
  position: relative;
  flex: 0 0 auto;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  padding: 0.6rem 0.75rem;
  background: var(--bs-body-bg, #fff);
  border-top: 1px solid rgba(128, 128, 128, 0.25);
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
}

/* Přidat region – kompaktní kruhové tlačítko s plus (sekundární k play). */
.audio-mobile-bar .audio-bar-region[b-leakz5anxo] {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid var(--bs-info, #0dcaf0);
  background: transparent;
  color: var(--bs-info, #0dcaf0);
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Uzamčená varianta (bez modulu) – neutrální barva zámku. */
.audio-mobile-bar .audio-bar-region-locked[b-leakz5anxo] {
  border-color: rgba(128, 128, 128, 0.4);
  color: rgba(128, 128, 128, 0.8);
}

/* Skip o 10 s držíme vizuálně menší než hlavní Play, ale stále dost velké pro pohodlný tap. */
.audio-mobile-bar .audio-bar-skip[b-leakz5anxo] {
  position: relative;
  touch-action: manipulation;
  user-select: none;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(128, 128, 128, 0.3);
  background: transparent;
  color: inherit;
  font-size: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.audio-mobile-bar .audio-bar-skip__label[b-leakz5anxo] {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -45%);
  font-size: 8px;
  font-weight: 600;
  line-height: 1;
  opacity: 0.55;
}

/* Velké kruhové Play/Pause – těžiště nativní lišty. */
.audio-mobile-bar .audio-bar-play[b-leakz5anxo] {
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  border: none;
  background: var(--bs-primary, #0d6efd);
  color: #fff;
  font-size: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ⋮ overflow tlačítko pro sekundární akce. */
.audio-mobile-bar .audio-bar-menu-toggle[b-leakz5anxo] {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(128, 128, 128, 0.3);
  background: transparent;
  color: inherit;
  font-size: 18px;
}

/* Vyskakovací menu nad lištou. */
.audio-mobile-menu[b-leakz5anxo] {
  position: absolute;
  right: 0.75rem;
  bottom: calc(100% - 0.25rem);
  min-width: 200px;
  background: var(--bs-body-bg, #fff);
  border: 1px solid rgba(128, 128, 128, 0.25);
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  padding: 0.35rem;
  z-index: 7;
}

/* ::deep je nutné kvůli položce "Přidat další verzi": tu nerenderuje tento soubor, ale
   AttachmentVersionUploadButton, takže tlačítko nese scope atribut své komponenty a bez
   ::deep by se pravidlo neuplatnilo - položka by ztratila výšku 44 px i padding a byla by
   výrazně nižší než ostatní položky menu. */
[b-leakz5anxo] .audio-menu-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  width: 100%;
  min-height: 44px;
  padding: 0.5rem 0.75rem;
  background: transparent;
  border: none;
  border-radius: 8px;
  color: inherit;
  text-decoration: none;
  font-size: 15px;
}

/* ::deep ze stejného důvodu jako u .audio-menu-item výše - položka "Přidat další verzi"
   pochází z jiné komponenty a bez něj by jako jediná neměla hover. */
[b-leakz5anxo] .audio-menu-item:hover {
  background: rgba(128, 128, 128, 0.12);
}

[b-leakz5anxo] .audio-menu-item:disabled {
  opacity: 0.4;
  cursor: default;
}

[b-leakz5anxo] .audio-menu-item:disabled:hover {
  background: transparent;
}

.audio-menu-item > i:first-child[b-leakz5anxo],
[b-leakz5anxo] .audio-menu-item .icon {
  min-width: 20px;
  text-align: center;
}

/* ButtonLink (položka "Přidat další verzi") sází ikoně margin-right: 5px inline, takže se
   sčítá s gapem položky a text by začínal o 5 px dál než u ostatních položek menu.
   !important je zde nutné - inline style jinak přebít nelze a jde o cizí komponentu. */
[b-leakz5anxo] .audio-menu-item .icon {
  margin-right: 0 !important;
}

/* Řádek se zoomem – ovládací tlačítka odsadíme doprava. */
.audio-menu-version-controls[b-leakz5anxo],
.audio-menu-zoom-controls[b-leakz5anxo] {
  margin-left: auto;
}

.audio-menu-version-controls[b-leakz5anxo] {
  display: inline-flex;
  border: 1px solid rgba(128, 128, 128, 0.25);
  border-radius: 8px;
  overflow: hidden;
}

.audio-menu-icon-button[b-leakz5anxo] {
  width: 44px;
  height: 36px;
  border: none;
  border-right: 1px solid rgba(128, 128, 128, 0.25);
  background: transparent;
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.audio-menu-icon-button:last-child[b-leakz5anxo] {
  border-right: none;
}

.audio-menu-icon-button:disabled[b-leakz5anxo] {
  opacity: 0.35;
  cursor: default;
}

.audio-menu-icon-button:not(:disabled):hover[b-leakz5anxo] {
  background: rgba(128, 128, 128, 0.12);
}

/* AudioZoom je Megacentral komponenta mimo CSS scope – cílíme přes ::deep. */
.audio-menu-zoom-controls[b-leakz5anxo]  .button {
  height: 36px;
}

/* Backdrop přes celou plochu pro zavření menu klikem mimo. */
.audio-menu-backdrop[b-leakz5anxo] {
  position: fixed;
  inset: 0;
  z-index: 6;
}
/* /Pages/Projects/ProjectFeed/Components/Files/Edit/AudioPreview.razor.rz.scp.css */
.audio-preview-wrap[b-1ypkp6brld] {
  cursor: pointer;
  border: 1px solid rgba(var(--bs-body-color-rgb), 0.1);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(var(--bs-body-color-rgb), 0.025);
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.audio-preview-wrap:hover[b-1ypkp6brld] {
  background: rgba(var(--bs-primary-rgb), 0.055);
  border-color: rgba(var(--bs-primary-rgb), 0.28);
  transform: translateY(-1px);
}

.audio-preview-wrap:focus-visible[b-1ypkp6brld] {
  outline: 2px solid rgba(var(--bs-primary-rgb), 0.55);
  outline-offset: 2px;
}

.audio-preview-header[b-1ypkp6brld] {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-bottom: 6px;
}

.audio-preview-play[b-1ypkp6brld] {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 30px;
  height: 30px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: rgba(var(--bs-primary-rgb), 0.62);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 3px 8px rgba(var(--bs-primary-rgb), 0.15);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.audio-preview-wrap:hover .audio-preview-play[b-1ypkp6brld] {
  transform: translate(-50%, -50%) scale(1.06);
  box-shadow: 0 4px 10px rgba(var(--bs-primary-rgb), 0.2);
}

.audio-preview-play i[b-1ypkp6brld] {
  margin-left: 2px;
}

.audio-preview-title[b-1ypkp6brld] {
  min-width: 0;
  flex: 1 1 auto;
  font-weight: 650;
  opacity: 0.82;
  text-align: right;
}

.audio-preview-duration[b-1ypkp6brld] {
  flex: 0 0 auto;
  font-size: 0.76rem;
  font-variant-numeric: tabular-nums;
  opacity: 0.58;
}

.audio-version-badge[b-1ypkp6brld] {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 999px;
  color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.12);
  font-size: 0.7rem;
  font-weight: 700;
}

.audio-container[b-1ypkp6brld] {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0 2px;
  overflow: hidden;
  align-items: center;
  position: relative;
}

.waveform[b-1ypkp6brld] {
  display: flex;
  align-items: center;
  gap: 2px;
  height: 42px;
  width: 100%;
  overflow: hidden;
  margin: 0;
  box-sizing: border-box;
}

.bar[b-1ypkp6brld] {
  border-radius: 2px;
  flex: 1 0 0;
  min-width: 1px;
  max-height: 100%;
  box-sizing: border-box;
  align-self: center;
  background: #c5c5c5;
  /*background: rgba(var(--bs-primary-rgb), 0.28);*/
}

[data-bs-theme=dark] .bar[b-1ypkp6brld] {
  /*background: rgba(var(--bs-primary-rgb), 0.38);*/
  background: rgba(128,128,128, 0.78);
}

@media (max-width: 576px) {
  .audio-preview-wrap[b-1ypkp6brld] {
    padding: 10px 11px;
  }

  .audio-preview-play[b-1ypkp6brld] {
    width: 34px;
    height: 34px;
  }

  .waveform[b-1ypkp6brld] {
    height: 46px; /* Na telefonu zůstává waveform dost vysoký pro čitelnost, i když je celý náhled klikací. */
  }
}
/* /Pages/Projects/ProjectFeed/Components/Files/Edit/FilesEditor.razor.rz.scp.css */
/* Chip verze drží tichý ghost vzhled — informuje, ale nesoupeří s názvem souboru. */
.file-version-chip .badge[b-4o9apcz4ov],
.file-version-history .badge[b-4o9apcz4ov] {
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    background: rgba(var(--bs-body-color-rgb), 0.08) !important;
    color: rgba(var(--bs-body-color-rgb), 0.75);
}

/* Historie verzí je vizuálně odsazená větev pod aktuální verzí. */
.file-version-history[b-4o9apcz4ov] {
    border-left: 1px solid rgba(var(--bs-body-color-rgb), 0.15);
    padding-left: 0.75rem;
}

/* Akce nahrání verze se zviditelní až při zájmu o kartu souboru.
   ::deep je nutné — třída sedí na root elementu vnořené komponenty ButtonLink,
   která nenese scope atribut tohoto souboru. */
.file-attachment[b-4o9apcz4ov]  .file-add-version {
    opacity: 0.6;
    transition: opacity 0.15s ease;
}

.file-attachment:hover[b-4o9apcz4ov]  .file-add-version,
.file-attachment:focus-within[b-4o9apcz4ov]  .file-add-version {
    opacity: 1;
}

/* Dotyková zařízení nemají hover — akce musí zůstat viditelná trvale. */
@media (hover: none) {
    .file-attachment[b-4o9apcz4ov]  .file-add-version {
        opacity: 0.8;
    }
}
/* /Pages/Projects/ProjectFeed/Components/Files/Edit/MultiImagePreview.razor.rz.scp.css */
.photo-tile[b-taua2m4dk8] {
  position: relative;
  cursor: pointer;
  border-radius: 10px;
  user-select: none;
}

.photo-tile img[b-taua2m4dk8] {
  width: 90px;
  height: 90px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(136, 136, 136, 0.62);
  display: block;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.photo-tile:hover img[b-taua2m4dk8] {
  transform: scale(1.03);
}

/* Vybraná dlaždice: zvýrazněný rámeček + fajfka */
.photo-tile.selected img[b-taua2m4dk8] {
  outline: 3px solid var(--bs-primary, #0d6efd);
  outline-offset: -3px;
  opacity: 0.85;
}

.photo-tile .selected-check[b-taua2m4dk8] {
  position: absolute;
  top: 4px;
  left: 6px;
  color: var(--bs-primary, #0d6efd);
  background: #fff;
  border-radius: 50%;
  line-height: 1;
  font-size: 18px;
}

/* Badge s počtem variant v rohu dlaždice */
.photo-tile .variant-badge[b-taua2m4dk8] {
  position: absolute;
  right: 5px;
  bottom: 5px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 1px 7px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  pointer-events: none;
}
/* /Pages/Projects/ProjectFeed/Components/Files/Edit/MultiVideoPreview.razor.rz.scp.css */
img[b-84hv1q3kqt] {
  width: 90px;
  max-height: 90px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(136, 136, 136, 0.62);
}
/* /Pages/Projects/ProjectFeed/Components/Files/View/AllFilesViewer.razor.rz.scp.css */
/* Odstup audio karty (kompaktní i rozbalené) od dalšího obsahu příspěvku - dřív držel margin
   na wrapperu ".inline-audio-transition", který zprostředkovával crossfade mezi náhledem a
   FeedAudioPlayer. Ten wrapper už neexistuje (FeedAudioPlayer je teď jediná trvalá instance
   pro obě zobrazení, viz AllFilesViewer.razor), margin proto jde přímo na jeho kořen. */
[b-tuchw7g40y] .audio-player-root.embedded {
  margin-bottom: 0.35rem;
}

@media (max-width: 576px) {
  [b-tuchw7g40y] .audio-player-root.embedded {
    margin-bottom: 0.25rem;
  }
}
/* /Pages/Projects/ProjectFeed/Components/Files/View/AttachmentReactionButton.razor.rz.scp.css */
.attachment-reaction-summary[b-583m0ljkrs] {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.42);
  color: #fff;
  backdrop-filter: blur(4px);
}

[b-583m0ljkrs] .attachment-feedback-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.55rem;
  min-height: 1.55rem;
  padding: 0.28rem !important;
  font-size: 0.82rem;
  color: #fff !important;
}

[b-583m0ljkrs] .attachment-feedback-button.is-mine {
  color: var(--bs-primary, #7967ff) !important;
}

.attachment-feedback-count[b-583m0ljkrs] {
  display: inline-flex;
  gap: 0.2rem;
  align-items: center;
  /* Levý padding chybí schválně: počet navazuje na ikonu tlačítka, která má vlastní odsazení. */
  padding-right: 0.42rem;
  font-size: 0.68rem;
  font-weight: 600;
}
/* /Pages/Projects/ProjectFeed/Components/Files/View/MultiImageViewer.razor.rz.scp.css */
.post-gallery[b-d7q60ixjll] {
  /* Jediný zdroj pravdy pro rozestup dlaždic. Mozaika staví na CSS columns, kde se
     vodorovná mezera řídí column-gap a svislá margin-bottom dlaždice - obě musí
     vycházet ze stejné hodnoty, jinak mřížka opticky "nesedí". */
  --gallery-gap: 4px;
  position: relative;
  display: grid;
  gap: var(--gallery-gap);
  width: 100%;
  max-height: 800px;
  overflow: hidden;
  border-radius: 10px;
}

.post-gallery.gallery-single[b-d7q60ixjll] {
  grid-template-columns: 1fr;
}

.post-gallery.gallery-single[b-d7q60ixjll]  .photo-review-item,
.post-gallery.gallery-single[b-d7q60ixjll]  .photo-review-item img {
  height: auto;
  max-height: 800px;
}

.post-gallery.gallery-double[b-d7q60ixjll] {
  grid-template-columns: 1fr 1fr;
}

.post-gallery.gallery-triple[b-d7q60ixjll] {
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
}

.post-gallery.gallery-triple .gallery-tile.img-large[b-d7q60ixjll] {
  grid-row: span 2;
}

.post-gallery.gallery-quad[b-d7q60ixjll] {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
}

.post-gallery.gallery-double[b-d7q60ixjll],
.post-gallery.gallery-triple[b-d7q60ixjll],
.post-gallery.gallery-quad[b-d7q60ixjll] {
  aspect-ratio: 1;
}

.gallery-tile[b-d7q60ixjll] {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

/* Reakce vlevo dole. Ve výchozím stavu decentní; jakmile je fotka olajkovaná, zůstává
   plně viditelná i bez hoveru, aby uživatel při procházení galerie poznal, co už ohodnotil. */
.tile-reaction[b-d7q60ixjll] {
  position: absolute;
  left: 0.2rem;
  bottom: 0.35rem;
  z-index: 3;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.gallery-tile:hover .tile-reaction[b-d7q60ixjll],
.gallery-tile:focus-within .tile-reaction[b-d7q60ixjll],
.tile-reaction:has(.attachment-feedback-button.is-mine)[b-d7q60ixjll] {
  opacity: 1;
}

/* Odznak počtu komentářů: pouze informace, ne akce (klik na fotku otevře detail i s diskuzí),
   proto bez pointeru a trvale viditelný - jinak by uživatel nepoznal, kde už diskuze běží. */
.tile-comment-summary-wrap[b-d7q60ixjll] {
  position: absolute;
  right: 0.2rem;
  bottom: 0.35rem;
  z-index: 3;
  cursor: pointer;
}

[b-d7q60ixjll] .tile-comment-summary {
  display: inline-flex;
  gap: 0.25rem;
  align-items: center;
  min-height: 1.55rem;
  padding: 0 0.45rem;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.42);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 600;
  /* Odznak musí přijímat hover, jinak by se neukázal tooltip s počtem komentářů.
     Kurzor dědíme z dlaždice (pointer), aby bylo zřejmé, že klik otevře detail fotky. */
  cursor: inherit;
  backdrop-filter: blur(4px);
}

[b-d7q60ixjll] .photo-review-item {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  /* Dlaždice je Megacentral.Blazor <Button> (otevírá viewer); přebíjíme Bootstrap .btn vzhled. */
  padding: 0 !important;
  border: 0 !important;
  background: none !important;
  cursor: pointer;
  text-align: inherit;
  font: inherit;
  color: inherit;
}

/* Tooltip obal Buttonu musí vyplnit čtvercovou buňku; jinak se řídí přirozenou výškou fotky a v gridu vznikají mezery. */
[b-d7q60ixjll] .photo-review-trigger {
  display: block;
  width: 100%;
  height: 100%;
}

[b-d7q60ixjll] .photo-review-item img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  border: none;
  border-radius: 0;
  transition: transform 0.3s ease;
}

[b-d7q60ixjll] .photo-review-item:hover img {
  transform: scale(1.03);
}

.gallery-grid[b-d7q60ixjll] {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: auto;
  max-height: none;
  overflow: visible;
}

.gallery-grid .gallery-tile.img-grid[b-d7q60ixjll] {
  aspect-ratio: 1;
}

/* Lišta nad galerií; přepínač už nepřekrývá fotky, takže nepotřebuje tmavé podložení ani blur. */
.gallery-layout-bar[b-d7q60ixjll] {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 6px;
}

.gallery-layout-toggle[b-d7q60ixjll] {
  overflow: hidden;
  border: 1px solid var(--bs-border-color, rgba(128, 128, 128, 0.35));
  border-radius: 7px;
}

[b-d7q60ixjll] .gallery-layout-toggle .btn {
  min-width: 30px;
  min-height: 28px;
  padding: 0.25rem 0.42rem;
  border: 0;
  border-radius: 0;
  /* Lišta leží na pozadí stránky, ne na fotce, proto barvy z tématu místo pevné bílé. */
  color: var(--bs-body-color, #666) !important;
  opacity: 0.65;
}

[b-d7q60ixjll] .gallery-layout-toggle .gallery-layout-toggle-active {
  background: var(--bs-secondary-bg, rgba(128, 128, 128, 0.2));
  opacity: 1;
}

/* Mozaika nechává v rozbalené galerii vyniknout skutečný poměr stran fotek.
   CSS columns zároveň nevyžadují JavaScriptové dopočítávání výšek dlaždic. */
.gallery-grid.gallery-masonry[b-d7q60ixjll] {
  display: block;
  column-count: 6;
  column-gap: var(--gallery-gap);
}

.gallery-grid.gallery-masonry .gallery-tile.img-grid[b-d7q60ixjll] {
  /* Blok nemá baseline mezeru jako inline-block, takže svislý rozestup přesně odpovídá column-gap. */
  display: block;
  width: 100%;
  margin: 0 0 var(--gallery-gap);
  aspect-ratio: auto;
  break-inside: avoid;
  /* Dlaždice obaluje <Button>, který dědí Bootstrap line-height. U dlaždice s automatickou
     výškou by se ten volný řádkový prostor přičetl pod fotku a svislá mezera by opticky
     narostla nad column-gap. Nulujeme ho na obalu i na tlačítku. */
  font-size: 0;
  line-height: 0;
}

.gallery-grid.gallery-masonry[b-d7q60ixjll]  .photo-review-trigger,
.gallery-grid.gallery-masonry[b-d7q60ixjll]  .photo-review-item,
.gallery-grid.gallery-masonry[b-d7q60ixjll]  .photo-review-item img {
  height: auto;
  min-height: 0;
  line-height: 0;
}

.gallery-grid.gallery-masonry[b-d7q60ixjll]  .photo-review-item img {
  /* Fotka si drží vlastní poměr stran z přirozené výšky. "contain" by uvnitř dlaždice
     vytvořil letterboxing a tím další nekonzistentní svislé mezery, proto "fill" spolu
     s height:auto - dlaždice se tvaruje podle fotky, ne naopak. */
  height: auto;
  object-fit: fill;
}

/* Popisky/odznaky uvnitř dlaždice si musí vrátit čitelnou typografii po nulování na obalu. */
.gallery-grid.gallery-masonry .variant-badge[b-d7q60ixjll],
.gallery-grid.gallery-masonry .tile-reaction[b-d7q60ixjll],
.gallery-grid.gallery-masonry[b-d7q60ixjll]  .tile-comment-summary {
  font-size: 12px;
  line-height: normal;
}

.gallery-grid.gallery-masonry .gallery-controls[b-d7q60ixjll] {
  column-span: all;
}

.gallery-controls[b-d7q60ixjll] {
  grid-column: 1 / -1;
  padding: 12px 4px 4px;
}

.more-action[b-d7q60ixjll] {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  background: rgba(0, 0, 0, 0.5);
}

.more-action[b-d7q60ixjll]  > div,
.more-action[b-d7q60ixjll]  .more-button {
  width: 100%;
  height: 100%;
}

.more-action[b-d7q60ixjll]  .more-button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-size: 24px;
  font-weight: 700;
}

/* Skupina variant: dvě hrany karet vykouknou nad reprezentativní fotkou. */
[b-d7q60ixjll] .photo-review-item.has-variants img {
  margin-top: 9px;
  height: calc(100% - 9px);
  min-height: calc(100% - 9px);
  border-radius: 6px 6px 0 0;
}

[b-d7q60ixjll] .photo-review-item.has-variants::before,
[b-d7q60ixjll] .photo-review-item.has-variants::after {
  content: "";
  position: absolute;
  left: 50%;
  z-index: 1;
  height: 4px;
  transform: translateX(-50%);
  border-radius: 4px 4px 0 0;
  background: var(--photo-variant-layer-front, rgba(255, 255, 255, 0.75));
  box-shadow: var(--photo-variant-layer-front-shadow, 0 -1px 2px rgba(0, 0, 0, 0.15));
}

[b-d7q60ixjll] .photo-review-item.has-variants::before {
  top: 0;
  width: 82%;
  background: var(--photo-variant-layer-back, rgba(255, 255, 255, 0.5));
  box-shadow: var(--photo-variant-layer-back-shadow, 0 -1px 2px rgba(0, 0, 0, 0.15));
}

[b-d7q60ixjll] .photo-review-item.has-variants::after {
  top: 4px;
  width: 91%;
}

.variant-badge[b-d7q60ixjll] {
  position: absolute;
  top: 12px;
  right: 10px;
  /* Na desktopu patří odznak mimo reakci v levém dolním rohu; pravý horní roh zároveň
     drží informaci o variantách na stejném místě bez ohledu na výšku masonry dlaždice. */
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  border-radius: 20px;
  background: rgba(0, 0, 0, 0.52);
  color: rgba(255, 255, 255, 0.92);
  font-size: 12px;
  font-weight: 500;
  pointer-events: none;
  backdrop-filter: blur(4px);
}

.gallery-fullscreen[b-d7q60ixjll] {
  position: fixed;
  inset: 0;
  z-index: 1080;
  align-content: start;
  padding: max(16px, env(safe-area-inset-top)) 12px max(16px, env(safe-area-inset-bottom));
  overflow-y: auto;
  border-radius: 0;
  background: var(--bs-body-bg, #111);
  overscroll-behavior: contain;
}

@media (max-width: 1100px) {
  .gallery-grid[b-d7q60ixjll] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .gallery-grid.gallery-masonry[b-d7q60ixjll] {
    column-count: 4;
    column-gap: var(--gallery-gap);
  }
}

@media (max-width: 767.98px) {
  /* Na mobilu necháváme dlaždici jako čistý vstup do detailu: rychlá reakce by překážela
     nad malým náhledem a soupeřila s gestem pro otevření fotky. Reakce zůstávají dostupné
     v PhotoSwipe panelu, kde jsou navázané na konkrétní právě zobrazenou variantu. */
  .tile-reaction[b-d7q60ixjll] {
    display: none;
  }

  .gallery-grid[b-d7q60ixjll] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gallery-grid.gallery-masonry[b-d7q60ixjll] {
    column-count: 3;
    column-gap: var(--gallery-gap);
  }

  .gallery-fullscreen[b-d7q60ixjll] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .variant-badge span[b-d7q60ixjll] {
    display: none;
  }

  .variant-badge[b-d7q60ixjll] {
    width: 28px;
    height: 28px;
    /* Mobilní rychlá reakce je skrytá, takže odznak nemusí držet její místo a může sedět
       přímo v levém dolním rohu fotky; malé odsazení chrání ikonu před ořezem dlaždice. */
    top: auto;
    right: auto;
    bottom: 8px;
    left: 8px;
    justify-content: center;
    padding: 0;
  }
}
/* /Pages/Projects/ProjectFeed/Components/Files/View/MultiVideoViewer.razor.rz.scp.css */
img[b-sdmuzrdl2c] {
  max-width: 190px;
  height: 130px;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(136, 136, 136, 0.62);
}
/* /Pages/Projects/ProjectFeed/Components/Files/View/PhotoCommentsPanel.razor.rz.scp.css */
.photo-feedback-panel[b-lw63vdlk59] {
  position: fixed;
  top: 0;
  right: 0;
  /* Nad PhotoSwipe viewerem (.pswp má z-index 100000), aby panel překryl lightbox zprava/zdola. */
  z-index: 100001;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  width: min(390px, 100vw);
  height: 100dvh;
  padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));
  overflow-y: auto;
  background: var(--bs-body-bg, #111);
  box-shadow: -12px 0 32px rgba(0, 0, 0, 0.35);
}

.photo-feedback-header[b-lw63vdlk59] {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
}

.photo-feedback-header img[b-lw63vdlk59] {
  width: 3rem;
  height: 3rem;
  border-radius: 0.45rem;
  object-fit: cover;
}

.photo-feedback-title[b-lw63vdlk59] {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.photo-feedback-title strong[b-lw63vdlk59] {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.photo-feedback-title span[b-lw63vdlk59] {
  color: var(--bs-secondary-color);
  font-size: 0.8rem;
}

.photo-feedback-reactions[b-lw63vdlk59] {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  justify-content: space-between;
  min-height: 2.5rem;
}

/* Mobilní bottom sheet. Řídí se třídou z komponenty (parametr IsMobile <- uSvc.IsMobileUi),
   NE media query na šířku: telefon otočený na šířku má přes 640 px a media query by mu nechala
   390px boční sloupec přes většinu obrazovky. Výška 68dvh musí zůstat v sync s computePadding
   v photoswipe.blazor.js, kde se o stejnou hodnotu zkracuje plocha fotky. */
.photo-feedback-panel--sheet[b-lw63vdlk59] {
  top: auto;
  bottom: 0;
  width: 100vw;
  height: min(68dvh, 620px);
  border-radius: 1rem 1rem 0 0;
  box-shadow: 0 -12px 32px rgba(0, 0, 0, 0.4);
}
/* /Pages/Projects/ProjectFeed/Components/ItemCreator.razor.rz.scp.css */
[b-em6mhaeljc]:hover .add-icon {
  font-weight: 700;
}

/*# sourceMappingURL=ItemCreator.razor.css.map */
/* /Pages/Projects/ProjectFeed/Components/OnboardingFlatPanel.razor.rz.scp.css */
/* Prázdná nástěnka nemá žádný obsah, který by nesl vizuální rytmus – hierarchii proto musí
   vytvořit samotný panel: výrazný nadpis, tlumený popis, jedna zvýrazněná akce. */
/* Panel stojí nad záložkami složek – spodní mezera ho od nich odděluje, aby nadpis
   uváděl celou obrazovku a nesplýval s prvním řádkem struktury. */
.onboarding-flat-panel[b-relzqjhc2b] {
  padding: 1.25rem 0 0;
  margin-bottom: 1.75rem;
}

/* Nadpis je jediný velký text na stránce – nese "co se tu děje". */
.onboarding-flat-panel .onboarding-title[b-relzqjhc2b] {
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.25;
  margin-bottom: .5rem;
}

/* Popis vysvětluje, ale nesoutěží – menší a tlumený, aby oko šlo rovnou na akci. */
.onboarding-flat-panel .onboarding-subtitle[b-relzqjhc2b] {
  font-size: .95rem;
  line-height: 1.5;
  max-width: 62ch; /* delší řádek se hůř čte, ale pod 60 se běžná věta láme zbytečně brzy */
  opacity: .6;
}

/* HorizontalStack je vnořená komponenta, takže scoped CSS na ni bez ::deep nedosáhne –
   bez toho se mezera nad tlačítky vůbec neuplatnila a popis se jich skoro dotýkal. */
.onboarding-flat-panel[b-relzqjhc2b]  .onboarding-actions {
  margin-top: 1.5rem;
}

/* Hlavní akce nese barvu jako jediný prvek panelu. */
.onboarding-flat-panel[b-relzqjhc2b]  .onboarding-primary {
  border-radius: 2rem;
  font-weight: 500;
  padding-inline: 1.35rem;
}

/* Alternativa zůstává textovým odkazem – dvě stejně těžká tlačítka by nutila volit
   mezi rovnocennými cestami, i když jedna je zjevně častější. */
.onboarding-flat-panel[b-relzqjhc2b]  .onboarding-secondary {
  font-size: .92rem;
  margin-left: .35rem;
  opacity: .75;
  text-decoration: none;
}

.onboarding-flat-panel[b-relzqjhc2b]  .onboarding-secondary:hover {
  opacity: 1;
}
/* /Pages/Projects/ProjectFeed/Components/OnboardingGhost.razor.rz.scp.css */
.onboarding-ghost[b-xjfzpuperf] {
  border: 1px dashed rgba(127, 127, 127, .45);
  border-radius: .5rem;
  color: var(--text-color, inherit);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .9rem;
  margin: .65rem 0 1rem;
  /* Sekundární fáze jsou jen náhled toho, co přijde – drží strukturu čitelnou, ale nesoutěží
     o pozornost s fází, kterou uživatel řeší teď. Primární ghost si nese vlastní zvýraznění níže. */
  opacity: .38;
  padding: .75rem .9rem;
  /* potřebné pro absolutně pozicovaný InputFile uvnitř */
  position: relative;
  overflow: hidden;
  transition: opacity 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

/* První fáze projektu – jediné místo, kam se na začátku reálně nahrává, proto plná viditelnost
   a barevný rámeček. Bez tohoto rozlišení vypadají všechny fáze stejně naléhavě. */
.onboarding-ghost--primary[b-xjfzpuperf] {
  opacity: 1;
  border-color: color-mix(in srgb, var(--accent-color, #6366f1) 45%, transparent);
  background: color-mix(in srgb, var(--accent-color, #6366f1) 5%, transparent);
}

/* Hover naznačí, že placeholder je klikací / přijímá soubory */
.onboarding-ghost:hover[b-xjfzpuperf] {
  opacity: 0.85 !important;
  border-color: color-mix(in srgb, var(--accent-color, #6366f1) 55%, transparent) !important;
  background: color-mix(in srgb, var(--accent-color, #6366f1) 8%, transparent);
}

/* Zvýraznění při přetahování souboru nad placeholder */
.onboarding-ghost.drag-over[b-xjfzpuperf] {
  opacity: 1 !important;
  border-color: color-mix(in srgb, var(--accent-color, #6366f1) 75%, transparent) !important;
  background: color-mix(in srgb, var(--accent-color, #6366f1) 14%, transparent) !important;
}
/* /Pages/Projects/ProjectFeed/Components/PostComments.razor.rz.scp.css */
.creator-name[b-cspwb9kwl2] {
  font-weight: 600;
}

/* Kompaktní jednořádkový pill pro informaci o filtru na vybraný zvukový úsek */
.region-filter-chip[b-cspwb9kwl2] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.5rem 0.45rem 0.75rem;
  border-radius: 999px;
  background: rgba(13, 110, 253, 0.12);
  color: var(--bs-primary, #0d6efd);
}
.region-filter-chip-icon[b-cspwb9kwl2] {
  flex-shrink: 0;
  font-size: 0.8rem;
  margin-right: 0.1rem;
}
.region-filter-chip-text[b-cspwb9kwl2] {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.85rem;
}
[b-cspwb9kwl2] .region-filter-chip-clear {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: rgba(13, 110, 253, 0.16);
}
[b-cspwb9kwl2] .region-filter-chip-clear:hover {
  background: rgba(13, 110, 253, 0.28);
}

.comments[b-cspwb9kwl2] {
  display: flex;
  flex-direction: column;
  padding-left: 17px;
}

.comments.compact-comments[b-cspwb9kwl2] {
  gap: 0.4rem !important;
  padding-left: 0;
}

.comment-border-container[b-cspwb9kwl2] {
  display: flex;
  position: relative;
  flex-direction: column;
  justify-content: start;
  /* align-items: flex-start; */
  align-content: space-around;
  /* justify-items: start; */
  justify-self: start;
  /* Rezerva pro reakce vpravo, aby nepřekrývaly text komentáře */
  padding: 8px 6rem 9px 13px;
  border-radius: 12px;
}

/* Komentáře musí být snadno čitelné i vedle výraznějších příloh; původní jemná velikost
   ztrácela při delších vláknech vizuální prioritu vůči samotnému příspěvku. */
.comments:not(.compact-comments) .comment-border-container[b-cspwb9kwl2] {
  font-size: 1.12rem;
}

.comments:not(.compact-comments) .comment-border-container .smaller[b-cspwb9kwl2] {
  font-size: 0.94rem !important;
}

/* V inline přehrávači je poslední komentář pouze kontext k poslechu. Plochý řádek
   zachová jméno i text, ale nevytváří další výraznou kartu uvnitř příspěvku. */
.compact-comments .comment[b-cspwb9kwl2] {
  min-width: 0;
  border-top: 1px solid rgba(var(--bs-body-color-rgb), 0.075);
}

.compact-comments .comment-border-container[b-cspwb9kwl2] {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0.4rem;
  min-width: 0;
  padding: 0.65rem 2.5rem 0.1rem 0;
  border-radius: 0;
  background: transparent;
}

.compact-comments .comment-border-container > .d-flex:first-child[b-cspwb9kwl2] {
  min-width: 0;
}

.compact-comments .comment-border-container .smaller[b-cspwb9kwl2] {
  font-size: 0.93rem !important;
  line-height: 1.2;
  white-space: nowrap;
}

.compact-comments .comment-border-container .text-muted[b-cspwb9kwl2] {
  display: none;
}

.compact-comments .comment-text[b-cspwb9kwl2] {
  min-width: 0;
  margin-top: 0 !important;
  overflow: hidden;
  color: rgba(var(--bs-body-color-rgb), 0.72);
  font-size: 1.02rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.compact-comments[b-cspwb9kwl2]  .post-comment-add-button {
  align-self: flex-start;
  padding: 0.2rem 0.15rem !important;
  color: var(--bs-body-color) !important;
  font-size: 0.78rem;
  opacity: 0.62;
}

.compact-comments[b-cspwb9kwl2]  .post-comment-add-button:hover {
  opacity: 1;
}

.compact-comment-actions[b-cspwb9kwl2] {
  flex-wrap: wrap;
  min-height: 1.6rem;
}

.compact-comment-actions[b-cspwb9kwl2]  .button-link {
  padding: 0.18rem 0.15rem;
  font-size: 0.78rem;
  opacity: 0.66;
}

.compact-comment-actions[b-cspwb9kwl2]  .button-link:hover {
  opacity: 1;
}

@media (max-width: 640px) {
  .comment-border-container[b-cspwb9kwl2] {
    padding-right: 2.5rem;
  }

  /* V audio přehrávači je tlačítko nad fixní spodní lištou, proto potřebuje větší tap plochu a spodní rezervu. */
  .comments.audio-player-comments[b-cspwb9kwl2]  .post-comment-add-button {
    align-self: flex-start;
    margin-top: 0.2rem;
    margin-bottom: 0.75rem;
    padding: 0.45rem 0.35rem 0.55rem 0.1rem !important;
    font-size: 0.92rem;
    line-height: 1.3;
  }

  /* Na telefonu může mít náhled dvě řádky; stále zůstane výrazně nižší než plná bublina. */
  .compact-comments .comment-border-container[b-cspwb9kwl2] {
    grid-template-columns: auto minmax(0, 1fr);
    padding-top: 0.55rem;
  }

  .compact-comments .comment-text[b-cspwb9kwl2] {
    display: -webkit-box;
    overflow: hidden;
    white-space: normal;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .compact-comment-actions[b-cspwb9kwl2] {
    flex-wrap: nowrap;
    gap: 0.65rem !important;
  }

  .compact-comment-actions[b-cspwb9kwl2]  .button-link {
    padding-inline: 0.05rem;
    font-size: 0.72rem;
    white-space: nowrap;
  }
}
.comment-border-container:hover[b-cspwb9kwl2]  .reactions-container.no-reactions {
  opacity: 1 !important;
}

[b-cspwb9kwl2] .reactions-container {
  position: absolute !important;
  bottom: 0;
  right: 5px;
}
[b-cspwb9kwl2] .reactions-container.no-reactions {
  opacity: 0;
}

[b-cspwb9kwl2] .btn-annotation {
  background: #6678e8 !important;
}

[b-cspwb9kwl2] .photo-anchor-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  vertical-align: middle;
}
[b-cspwb9kwl2] .photo-anchor-chip img {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 0.25rem;
  object-fit: cover;
}
[b-cspwb9kwl2] .photo-anchor-chip.archived {
  opacity: 0.65;
}
[data-bs-theme=light][b-cspwb9kwl2]  .btn-annotation {
  background: #96a5ff !important;
}

.large-emoji[b-cspwb9kwl2] {
  font-size: 2em;
}

[b-cspwb9kwl2] .comment-menu-trigger {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  .comment:hover[b-cspwb9kwl2]  .comment-menu-trigger,
  .comment:focus-within[b-cspwb9kwl2]  .comment-menu-trigger {
    display: inline-flex;
    align-items: center;
    opacity: 1 !important;
  }
  .comment[b-cspwb9kwl2]  .comment-menu-trigger {
    display: inline-flex;
    align-items: center;
    opacity: 0 !important;
    transition: opacity 0.2s ease;
  }
}

/*# sourceMappingURL=PostComments.razor.css.map */
/* /Pages/Projects/ProjectFeed/Components/PostEditDialog.razor.rz.scp.css */
/* Zvýrazněná drop zóna pro přílohy — primární prvek dialogu */
.drop-zone[b-dhv5g6pnu8] {
    position: relative;
    width: 100%;
    border: 2px dashed var(--bs-border-color, #ced4da);
    border-radius: 12px;
    padding: 28px 16px;
    text-align: center;
    color: var(--bs-secondary-color, #6c757d);
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

/* Zvýraznění při najetí myší i při přetahování souboru nad dialogem */
.drop-zone:hover[b-dhv5g6pnu8],
.drop-zone.drag-over[b-dhv5g6pnu8] {
    border-color: var(--bs-primary, #0d6efd);
    color: var(--bs-primary, #0d6efd);
    background-color: rgba(var(--bs-primary-rgb, 13, 110, 253), 0.06);
}

.drop-zone-icon[b-dhv5g6pnu8] {
    font-size: 2.5rem;
}

.upload-inline-status[b-dhv5g6pnu8] {
    border: 1px solid var(--bs-border-color, #ced4da);
    border-radius: 10px;
    padding: 12px;
    background: var(--bs-tertiary-bg, #f8f9fa);
}

/* Jeden řádek s právě nahrávaným souborem — výška bloku tak nezávisí na velikosti dávky. */
.upload-inline-status__current[b-dhv5g6pnu8] {
    margin-top: 10px;
}

/* Na úzkém displeji zůstane viditelnost i potvrzení pohromadě a zarovnané doprava. */
.post-actions[b-dhv5g6pnu8] {
    margin-left: auto;
}

/* Řádek se štítky nesmí roztáhnout dialog, když je štítků hodně — přeteče do dalšího řádku.
   Bez ::deep by se pravidlo zahodilo, protože obsah vykresluje vnořený LabelsViewer,
   který nenese scope atribut tohoto dialogu. */
.post-label-selector[b-dhv5g6pnu8]  .labels {
    max-width: 100%;
}
/* /Pages/Projects/ProjectFeed/Components/PostImage.razor.rz.scp.css */
.post-image[b-lupkt8b8e7] {
  max-width: 200px;
  max-height: 100px;
}
/* /Pages/Projects/ProjectFeed/Components/ProgressTag.razor.rz.scp.css */
.tag[b-qfy9ck14ja] {
  padding: 1px 8px 1px 8px;
  border-radius: 10px;
  filter: grayscale(0.4);
  display: block;
  margin-left: 11px;
  font-size: 0.9em;
}
/* /Pages/Projects/ProjectFeed/Components/ReactionIcons.razor.rz.scp.css */
@charset "UTF-8";
.reactions-container[b-xbfhhstmjx] {
  position: relative;
  display: inline-flex;
  flex-direction: row;
}
.reactions-container.chat-message .reactions[b-xbfhhstmjx] {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.reactions-container.chat-message .emotion-popover[b-xbfhhstmjx] {
  top: -20px; /* Zvětšeno z -45px pro chat-message, aby nebyl oříznutý shora */
  gap: 7px; /* Zmenšeno z 17px pro kompaktnější vzhled */
  padding: 6px 6px; /* Zmenšeno z 10px 10px */
  border-radius: 8px; /* Zmenšeno z 10px */
  left: -40px;
}
.reactions-container.chat-message .emotion-popover .icon[b-xbfhhstmjx] {
  font-size: 1.2em; /* Zmenšeno z 2em pro kompaktnější ikony */
}

.reactions[b-xbfhhstmjx] {
  display: flex;
  gap: 6px;
  align-items: center;
}
.reactions .icon[b-xbfhhstmjx] {
  font-size: 1em;
}
.reactions-count[b-xbfhhstmjx] {
  font-size: 0.8em;
  opacity: 0.7;
}

.add-reaction-container[b-xbfhhstmjx] {
  position: relative;
}
.add-reaction-container .add-reaction[b-xbfhhstmjx] {
  font-size: 1.2em;
  color: var(--bs-body-color);
}
.add-reaction-container.is-mine[b-xbfhhstmjx] {
  color: var(--accent-color);
}
.add-reaction-container.is-mine .btn-like[b-xbfhhstmjx], .add-reaction-container.is-mine .add-reaction[b-xbfhhstmjx] {
  color: var(--accent-color);
}
.reaction-count[b-xbfhhstmjx] {
  font-size: 0.8em;
  line-height: 1;
  opacity: 0.8;
}

.btn-like:hover .add-reaction[b-xbfhhstmjx] {
  font-weight: bold;
}

.emotion-popover[b-xbfhhstmjx] {
  display: flex;
  gap: 17px;
  flex-direction: row;
  position: absolute;
  top: -45px; /* Upraveno z -7px pro posunutí výše */
  left: -5px;
  padding: 10px 10px;
  background: var(--bs-body-bg);
  border-radius: 10px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  z-index: 100;
}
.emotion-popover .icon[b-xbfhhstmjx] {
  font-size: 2em;
  cursor: pointer;
}
.emotion-popover .icon:hover[b-xbfhhstmjx] {
  font-weight: 600;
  color: #ababff;
}

/*# sourceMappingURL=ReactionIcons.razor.css.map */
/* /Pages/Projects/ProjectFeed/FeedFolder.razor.rz.scp.css */
@charset "UTF-8";
.folder[b-l8g174le5q] {
  border-bottom: 1px solid rgba(145, 145, 145, 0.16);
  padding: 10px 0;
}
.folder.background-box[b-l8g174le5q] {
  border: none;
  border-radius: 10px;
  padding: 10px;
  background-color: #f5f5f5;
  margin-bottom: 10px;
}
.folder.background-box .folder-content[b-l8g174le5q] {
  border: none !important;
}
[data-bs-theme=dark] .folder.background-box[b-l8g174le5q] {
  background-color: #000000;
}
.folder .edit-mode-animation[b-l8g174le5q] {
  position: relative;
}
.folder .edit-mode-animation[b-l8g174le5q]  input {
  animation: folderAnimation-b-l8g174le5q 1s ease-in-out;
  border: 2px solid #ccc; /* nahrazuje původní okraj */
  outline: none; /* odstraňuje outline, pokud by způsoboval podobný problém */
  box-shadow: none;
}

.folder.filter-hidden[b-l8g174le5q] {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
  border-bottom-width: 0;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.12s ease, max-height 0.18s ease, padding 0.18s ease, margin 0.18s ease, border-width 0.18s ease, visibility 0s linear 0.18s;
}

.folder[b-l8g174le5q] {
  max-height: 40000px;
  overflow: hidden;
  transition: opacity 0.18s ease 0.06s, max-height 0.18s ease, padding 0.18s ease, margin 0.18s ease, border-width 0.18s ease;
}

@media (prefers-reduced-motion: reduce) {
  .folder[b-l8g174le5q],
  .folder.filter-hidden[b-l8g174le5q] {
    transition: none;
  }
}
.folder-title[b-l8g174le5q] {
  font-size: 1.4em;
  font-weight: 600;
  color: var(--title-color);
}

.folder-pending-status[b-l8g174le5q] {
  font-size: 0.78rem;
  font-weight: 400;
  opacity: 0.8;
  white-space: nowrap;
  background-color: rgba(0, 0, 0, 0.05);
  border-radius: 20px;
  padding: 2px 10px;
}
[data-bs-theme=dark] .folder-pending-status[b-l8g174le5q] {
  background-color: rgba(255, 255, 255, 0.06);
}

.folder-icon[b-l8g174le5q] {
  font-size: 1.6em;
  color: var(--menu-icon-color);
}

.folder.content-left-lines > .folder-content[b-l8g174le5q] {
  padding-left: 25px;
  border-left: 1px solid transparent;
  transition: all 0.8s ease;
}

.folder.content-left-lines:hover > .folder-content[b-l8g174le5q] {
  border-left: 1px solid #8e8e8e;
}

[b-l8g174le5q] .no-tags-icon {
  opacity: 0;
}

.menu-trigger-icon[b-l8g174le5q] {
  opacity: 0;
  border: 1px solid transparent;
  padding: 6px 6px 6px 6px;
  border-radius: 6px;
  transition: all 0.6s ease, border-color 0.6s ease;
}

.menu-trigger-icon:hover[b-l8g174le5q] {
  border-color: rgba(0, 0, 0, 0.16);
}
[data-bs-theme=dark] .menu-trigger-icon:hover[b-l8g174le5q] {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
}

[b-l8g174le5q] .folder-timer.not-running {
  opacity: 0;
}

.folder :not(.folder-content):hover[b-l8g174le5q]  .menu-trigger-icon {
  opacity: 1;
}
.folder :not(.folder-content):hover[b-l8g174le5q]  .menu-add-btn {
  opacity: 1;
}
.folder :not(.folder-content):hover[b-l8g174le5q]  .no-tags-icon {
  opacity: 1;
}
.folder :not(.folder-content):hover[b-l8g174le5q]  .folder-timer.not-running {
  opacity: 1;
}

.drag-handler[b-l8g174le5q] {
  opacity: 0;
}

.folder-header:hover .drag-handler[b-l8g174le5q] {
  opacity: 0.5;
}

.folder.content-left-padding .folder-content[b-l8g174le5q] {
  padding-left: 20px;
}

.folder-content[b-l8g174le5q]  .folder-icon, .folder-content[b-l8g174le5q]  .folder-title {
  font-size: 1.2em;
  font-weight: 300;
}

[b-l8g174le5q] .root-folder-icon {
  opacity: 0;
}

.folder :not(.folder-content):hover[b-l8g174le5q]  .root-folder-icon {
  opacity: 1;
}
.folder :not(.folder-content):hover[b-l8g174le5q]  .plus-menu-btn {
  opacity: 1;
}

@keyframes folderAnimation-b-l8g174le5q {
  0%, 100% {
    border-color: #ccc;
  }
  10% {
    border-color: #946fd6;
  }
  20% {
    border-color: #ccc;
  }
  30% {
    border-color: #946fd6;
  }
  40% {
    border-color: #ccc;
  }
  50% {
    border-color: #946fd6;
  }
  60% {
    border-color: #ccc;
  }
  70% {
    border-color: #946fd6;
  }
  80% {
    border-color: #ccc;
  }
  90% {
    border-color: #946fd6;
  }
}
[b-l8g174le5q] .no-tags-icon .text {
  display: none;
}

[b-l8g174le5q] .plus-menu-btn {
  opacity: 0;
}

.menu-add-btn[b-l8g174le5q] {
  opacity: 0;
  display: block;
  margin-top: -2px;
  transition: all 0.6s ease, border-color 0.6s ease;
}

.menu-add-btn:hover[b-l8g174le5q] {
  font-weight: 700;
}
[data-bs-theme=dark] .menu-add-btn:hover[b-l8g174le5q] {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
}

/*# sourceMappingURL=FeedFolder.razor.css.map */
/* /Pages/Projects/ProjectFeed/FeedFolderTabs.razor.rz.scp.css */
/*
 * Záložky složek používají nativní <button type="button"> místo ButtonLink záměrně:
 * ButtonLink generuje Bootstrap .btn-link, jehož styly (color, background, padding, border)
 * by jinak musely být překryty pomocí !important v každém pravidle.
 * Nativní <button> s resetem níže nepřináší žádný Bootstrap overhead a CSS zůstane čisté.
 */

.folder-tabs-shell[b-jps7uamdzv] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.25rem 0;
    margin-bottom: 1.05rem;
}

.folder-tabs-scroll[b-jps7uamdzv] {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    min-width: 0;
    align-items: center;
    gap: 1rem;
    padding: 0.05rem 0 0.2rem;
}

/* Wrapper pro scroll + fade indikátory. Na desktopu se nic neděje (záložky se wrapují),
   na mobilu drží fade gradient na okraji jako signál, že lze scrollovat dál. */
.folder-tabs-scroll-wrap[b-jps7uamdzv] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

/* SortableList vkládá mezi scroll kontejner a samotné záložky vlastní <div>. Musí proto
   převzít stejné flexové chování, jinak by řada pillů ztratila mezery i zalomení.
   `display: contents` nelze použít – Sortable.js potřebuje reálný box pro výpočet pozic.
   ::deep je nutné: scoped CSS značí jen elementy této komponenty, kdežto kořenový element
   cizí komponenty (SortableList) dostane její vlastní scope atribut, takže by pravidlo
   zapsané přímo na .folder-tabs-sortable nikdy neplatilo. */
.folder-tabs-scroll[b-jps7uamdzv]  .folder-tabs-sortable {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

/* Tažená záložka: poloprůhledný originál na místě, odkud se táhne (třída od Sortable.js),
   a plný pill pod kurzorem. Bez toho splyne s ostatními a není poznat, co se přesouvá. */
.folder-tabs-scroll[b-jps7uamdzv]  .sortable-ghost {
    opacity: 0.35;
}

.folder-tabs-scroll[b-jps7uamdzv]  .sortable-drag {
    opacity: 1;
    cursor: grabbing;
}

.folder-tabs-empty[b-jps7uamdzv] {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 2.9rem;
    color: var(--bs-secondary-color);
    font-size: 0.98rem;
    font-weight: 600;
    padding-left: 0.15rem;
}

.folder-tabs-scroll[b-jps7uamdzv]::-webkit-scrollbar {
    height: 5px;
}

.folder-tabs-scroll[b-jps7uamdzv]::-webkit-scrollbar-thumb {
    background: rgba(128, 128, 128, 0.3);
    border-radius: 3px;
}

/* Reset výchozích prohlížečových stylů pro <button> */
.folder-tab[b-jps7uamdzv] {
    appearance: none;
    background: none;
    position: relative; /* kotva pro absolutně pozicovanou ikonku menu (.folder-tab-menu) */
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;

    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45em;
    white-space: nowrap;
    width: max-content;
    min-width: max-content;
    /* Bez borderu: obrysové pilulky působily jako outline tlačítka a odstupňovaná sytost rámečku
       (empty / active / busy) dělala z jedné řady tři různě ohraničené prvky. Stav dnes nese
       výhradně výplň a barva textu, což drží řadu opticky klidnou. Průhledný border zůstává jen
       jako rezerva pro forced-colors / high-contrast režim, kde se pozadí nevykreslí. */
    border: 1px solid transparent;
    background: color-mix(in srgb, var(--bs-body-color) 5%, transparent);
    color: color-mix(in srgb, var(--bs-body-color) 58%, var(--bs-secondary-color));
    border-radius: 999px;
    padding: 0.68rem 1rem;
    font-size: 1.02rem;
    line-height: 1.12;
    /* 500 místo 600: u jednořádkových chipů působil polotučný řez jako nadpisová úroveň
       a řada záložek pak vizuálně přebíjela obsah feedu pod sebou. */
    font-weight: 500;
    cursor: pointer;
    letter-spacing: 0.01em;
    box-shadow: none;
    transition:
        background 0.14s ease,
        border-color 0.14s ease,
        color 0.14s ease,
        opacity 0.14s ease, /* plynulé ztlumení při zapnutí filtru štítků */
        transform 0.14s ease;
    scroll-snap-align: start;
}

.folder-tab i[b-jps7uamdzv] {
    font-size: 0.92em;
    opacity: 0.95;
}

/* Smart záložka je jednořádkový filter chip: ikona + název + číselný badge. Dvouřádková
   varianta s popisným podtextem ("1 audio soubor") dělala z filtru řadu karet vysokých
   ~57 px – u sekundární navigace nad feedem to byla nepoměrná vizuální váha a podtext se
   navíc u většiny složek opakoval. Slovní rozpad je nově v tooltipu (GetTooltip). */
/* Pravý padding je menší než levý záměrně: badge má vlastní kulaté pozadí, které opticky
   funguje jako odsazení navíc. Se symetrickým paddingem tak pilulka vpravo působila prázdně. */
.folder-tab--smart[b-jps7uamdzv] {
    align-items: center;
    justify-content: flex-start;
    min-height: 2.2rem;
    padding: 0.42rem 0.5rem 0.42rem 0.78rem;
    gap: 0.45rem;
    text-align: left;
}

/* Složka bez badge nemá co ikonce menu ustoupit – tři tečky by při hoveru dosedly rovnou na
   název ("Dokumentace⋯"). Řešíme to maskou, ne trvalou rezervou: rezerva by u každé takové
   záložky nechala v klidovém stavu prázdno vpravo, přestože ikonka se ukáže jen při hoveru.
   Maska nechá konec názvu plynule zmizet právě pod tečkami – text se "rozplyne", místo aby
   do ikonky narazil, a pill si přitom drží konstantní šířku (maska nic nepřepočítává).
   Aktivuje se jen tam, kde ikonka menu skutečně existuje; ve veřejném feedu nebo bez
   oprávnění není co maskovat. */
/* Malá trvalá rezerva vpravo. Samotná maska nestačí – bez ní končí název prakticky na hraně
   pillu, takže by tečky ležely přímo na písmenech a fade by je jen prosvítil. Rezerva je
   záměrně menší, než kolik ikonka zabírá; zbytek dorovná právě maska. */
.folder-tab--smart:not(:has(.folder-tab-badge)):has(.folder-tab-menu)[b-jps7uamdzv] {
    padding-right: 1rem;
}

.folder-tab--smart:not(:has(.folder-tab-badge)):has(.folder-tab-menu):hover .folder-tab-content[b-jps7uamdzv] {
    mask-image: linear-gradient(to right, #000 calc(100% - 2.6rem), transparent calc(100% - 0.35rem));
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2.6rem), transparent calc(100% - 0.35rem));
}

/* Obě ikony (typ složky + úchyt pro tažení) sdílí jednu mřížkovou buňku, takže leží přesně
   přes sebe a přepínají se prolnutím opacity. Kdyby se místo toho vyměňovaly v toku, pill by
   při hoveru změnil šířku podle rozdílu v šířce glyfů a celá řada by poskočila. */
.folder-tab--smart .folder-tab-iconbox[b-jps7uamdzv] {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
}

.folder-tab--smart .folder-tab-iconbox > *[b-jps7uamdzv] {
    grid-area: 1 / 1;
}

/* Holá ikona bez barevného podkladu – čtvercová dlaždice pod ikonou byla hlavní důvod,
   proč pill působil jako karta. Velikost drží font-size, ne fixní box. */
.folder-tab--smart .folder-tab-icon[b-jps7uamdzv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.92em;
    color: rgba(138, 77, 255, 0.85);
    opacity: 1;
    transition: opacity 0.14s ease;
}

/* Úchyt je v klidu neviditelný a odkrývá se až nad záložkou – v klidové řadě by šest
   stejných úchytů přebilo ikony typu složky, které nesou informaci. */
.folder-tab--smart .folder-tab-icon--drag[b-jps7uamdzv] {
    opacity: 0;
}

.folder-tab--smart:hover .folder-tab-icon--drag[b-jps7uamdzv] {
    opacity: 1;
}

/* Na dotykových zařízeních je přeuspořádání vypnuté (SortableList.js: isTouchDevice), protože
   tažení by kolidovalo s vodorovným scrollem záložek. Úchyt proto vůbec neukazujeme – jinak by
   sliboval akci, která nikam nevede. Podmínka je záměrně shodná s tou v JS. */
@media (pointer: coarse) and (hover: none) {
    .folder-tab--smart .folder-tab-icon--drag[b-jps7uamdzv] {
        display: none;
    }

    /* Bez úchytu se nesmí skrývat ani ikona typu složky – jinak by pill zůstal bez ikony. */
    .folder-tab--smart:hover .folder-tab-icon:not(.folder-tab-icon--drag)[b-jps7uamdzv] {
        opacity: 1;
    }

    .folder-tab--smart .folder-tab-iconbox:has(.folder-tab-icon--drag)[b-jps7uamdzv] {
        cursor: default;
    }
}

.folder-tab--smart:hover .folder-tab-icon:not(.folder-tab-icon--drag)[b-jps7uamdzv] {
    opacity: 0;
}

/* Kurzor "grab" jen nad ikonou, ne nad celým pillem: záložka zůstává především filtr, který se
   klikáním přepíná, a "grab" nad celou plochou by napovídal, že klik nic nedělá. Tažení přitom
   funguje z celé záložky dál (viz DragThreshold) – ikona jen ukazuje, že přesun je možný. */
.folder-tab--smart .folder-tab-iconbox:has(.folder-tab-icon--drag)[b-jps7uamdzv] {
    cursor: grab;
}

.folder-tab--smart .folder-tab-iconbox:has(.folder-tab-icon--drag):active[b-jps7uamdzv] {
    cursor: grabbing;
}

.folder-tab-content[b-jps7uamdzv] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
}

.folder-tab-title[b-jps7uamdzv] {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Počet obsahu je doplňková informace, ne stav vyžadující akci – proto jen tlumené číslo
   bez vlastního pozadí. Fialová "kapsle" z něj dělala druhý akcent v pillu a soutěžila
   s názvem složky, přestože číslo samo o sobě nic naléhavého nesděluje. Vlastní podklad
   dostává badge jen ve stavu attention (nevyřízené komentáře), kde upozornit chceme.
   Tabulární číslice drží šířku stabilní, takže se řada nehýbe při přechodu z 9 na 10. */
.folder-tab-badge[b-jps7uamdzv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.22rem;
    /* Drží místo pro ikonku menu, která badge při hoveru střídá. Šířka odpovídá třem tečkám,
       aby se pill při záměně nemusel roztahovat ani u jednociferného počtu. */
    min-width: 1.05rem;
    color: var(--bs-secondary-color);
    opacity: 0.55;
    font-size: 0.78rem;
    font-weight: 500;
    line-height: 1.5;
    font-variant-numeric: tabular-nums;
    transition: opacity 0.14s ease;
}

.folder-tab-badge i[b-jps7uamdzv] {
    font-size: 0.85em;
}

/* Štítky složky zredukované na barevné tečky. Plné štítky s textem by chip roztáhly natolik,
   že by se řada přestala vejít na jeden řádek; barva sama stačí k rozpoznání a názvy jsou
   v tooltipu. Tečky se lehce překrývají, aby i tři zabraly jen ~22 px. */
.folder-tab-labels[b-jps7uamdzv] {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
}

.folder-tab-labeldot[b-jps7uamdzv] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    /* Překryv drží skupinu kompaktní; obrys v barvě pillu odděluje sousední tečky od sebe,
       aby dvě podobné barvy nesplynuly v jednu skvrnu. */
    margin-right: -0.12rem;
    box-shadow: 0 0 0 1.5px var(--bs-body-bg);
}

.folder-tab-labeldot:last-child[b-jps7uamdzv] {
    margin-right: 0;
}

/* Přebíjí .labelcolor z labels.css, které štítkům nastavuje padding a rozměry textového chipu.
   Bez toho by se z tečky stal prázdný obdélník. */
.folder-tab-labels .folder-tab-labeldot[b-jps7uamdzv] {
    padding: 0;
    line-height: 0;
    font-size: 0;
}

.folder-tab-labels-more[b-jps7uamdzv] {
    margin-left: 0.3rem;
    color: var(--bs-secondary-color);
    opacity: 0.6;
    font-size: 0.7rem;
    font-weight: 500;
}

/* Na vybrané záložce leží tečky na sytě fialovém pozadí – obrys musí kopírovat ji, ne stránku. */
.folder-tab.active .folder-tab-labeldot[b-jps7uamdzv] {
    box-shadow: 0 0 0 1.5px rgba(122, 61, 245, 1);
}

.folder-tab.active .folder-tab-labels-more[b-jps7uamdzv] {
    color: rgba(255, 255, 255, 0.72);
    opacity: 1;
}

/* Záložka mimo aktivní filtr štítků. Ztlumujeme, ale neskrýváme: záložka je navigační prvek
   a mizející řada by uživatele připravila o cestu zpět na složku, kterou si právě prohlíží.
   Zůstává plně klikatelná – filtr je nápověda, ne zákaz. */
.folder-tab--filtered[b-jps7uamdzv] {
    opacity: 0.35;
}

.folder-tab--filtered:hover[b-jps7uamdzv] {
    opacity: 0.7;
}

/* Prázdná složka se od ostatních vizuálně neodlišuje. Dřív ustupovala do pozadí sníženou
   sytostí, jenže ztlumený pill v řadě čte jako nedostupná (disabled) položka, přestože je
   plně klikatelná – a u nového projektu, kde jsou prázdné všechny složky, tak zešedla celá
   navigace ve chvíli, kdy ji uživatel potřebuje nejvíc. Stav "zatím nic" dnes nese samotná
   nepřítomnost badge (GetBadgeCount vrací null), což je tišší a nemate. */

/* Aktivní obsah (pár souborů) – jen o stupeň sytější výplň než neutrální stav, ať se odliší
   od prázdných složek, aniž by konkurovalo skutečně "hot" složkám (--busy) nebo attention. */
.folder-tab--active[b-jps7uamdzv] {
    background: rgba(138, 77, 255, 0.07);
}

.folder-tab--active .folder-tab-icon[b-jps7uamdzv] {
    color: rgba(138, 77, 255, 1);
}

/* Hodně obsahu (8+ souborů) – nejvyšší vizuální váha po attention. Sytější výplň
   a plný kontrast textu, aby "žhavé" složky vynikly i bez výběru. */
.folder-tab--busy[b-jps7uamdzv] {
    background: rgba(138, 77, 255, 0.13);
    color: color-mix(in srgb, var(--bs-body-color) 85%, transparent);
}

.folder-tab--busy .folder-tab-icon[b-jps7uamdzv] {
    color: rgba(138, 77, 255, 1);
}

/* Ve "žhavé" složce je počet souborů to podstatné, co ji odlišuje – proto o něco vyšší
   kontrast než jinde, ale pořád bez vlastní kapsle. */
.folder-tab--busy .folder-tab-badge[b-jps7uamdzv] {
    opacity: 0.75;
}

/* Oranžová není jen dekorace: tento stav znamená komentáře, které se uživatele týkají.
   Nevyužíváme ji pro běžnou aktivitu, aby její význam zůstal čitelný.
   Attention má vždy přednost před --busy/--active/--empty (pořadí zápisu v CSS i specificita). */
.folder-tab--attention[b-jps7uamdzv] {
    background: rgba(234, 164, 50, 0.16);
    color: #8a5200;
    opacity: 1;
}

/* Jediný badge, který smí být výrazný: nevyřízené komentáře jsou výzva k akci, ne statistika. */
.folder-tab-badge--attention[b-jps7uamdzv] {
    padding: 0.05rem 0.42rem;
    border-radius: 999px;
    background: rgba(234, 164, 50, 0.22);
    color: #8a5200;
    font-weight: 600;
    opacity: 1;
}

.folder-tab.active .folder-tab-icon[b-jps7uamdzv] {
    color: #fff;
}

/* Na vybrané záložce leží číslo na sytě fialovém pozadí – tam by šedá sekundární barva zmizela,
   proto bílá se sníženou průhledností. Zůstává tlumené vůči názvu, ale je čitelné. */
.folder-tab.active .folder-tab-badge[b-jps7uamdzv] {
    color: rgba(255, 255, 255, 0.72);
    opacity: 1;
}

.folder-tab.active .folder-tab-badge--attention[b-jps7uamdzv] {
    background: rgba(255, 255, 255, 0.24);
    color: #fff;
}

.folder-tab.folder-tab-icon-only[b-jps7uamdzv] {
    width: 2.4rem;
    min-width: 2.4rem;
    height: 2.4rem;
    min-height: 2.4rem;
    padding: 0;
    gap: 0;
}

/* Ikonka menu složky (přejmenovat / štítky / odstranit). V klidu je neviditelná a zároveň
   vyjmutá z toku (position: absolute) – dřív držela místo pomocí visibility, aby se šířka pillu
   při hoveru neměnila a řada záložek neposkakovala. U jednořádkového chipu ale těch ~24 px
   prázdna vpravo bylo jasně vidět jako nesymetrické odsazení. Absolutní pozice řeší obojí:
   šířka pillu na ikonce nezávisí vůbec, takže se nic nehýbe, a v klidu tam žádná mezera není.
   Při hoveru se ikonka objeví přesně na pozici badge, který zároveň zprůhlední (viz níže) –
   proto se nic nepřekrývá, přestože pill nemění rozměr. Terč je záměrně větší než tři tečky – ikonka je
   drobná a leží uvnitř tlačítka záložky, takže každé minutí přepne záložku místo otevření menu. */
.folder-tab-menu[b-jps7uamdzv] {
    position: absolute;
    /* Zarovnáno na pravý padding pillu, tedy přesně nad badge, který ikonka střídá.
       Záporná hodnota tečky vytáhne až k hraně pillu – u záložek bez badge tím vzniká větší
       odstup od názvu, který pod nimi mizí do ztracena (viz maska u .folder-tab-content). */
    right: -0.1rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Padding roztahuje klikací plochu na ~30x30 px (doporučené minimum pro pohodlný zásah),
       aniž by ovlivnil layout – prvek je mimo tok. */
    padding: 0.55rem 0.5rem;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.14s ease;
}

.folder-tab:hover .folder-tab-menu[b-jps7uamdzv],
.folder-tab-menu:focus-visible[b-jps7uamdzv] {
    opacity: 0.75;
    visibility: visible;
}

/* Ikonka menu se při hoveru objeví přesně na místě badge – nepřidává se, ale *střídá* ho.
   Rozměr pillu tak zůstává za všech okolností konstantní (ikonka je mimo tok, badge jen
   zprůhlední, místo si drží), takže při přejezdu myší po řadě nic neposkakuje.
   Záměna nic nezakrývá: kdo míří na menu, počet souborů právě nečte, a číslo je stále
   v tooltipu. Badge necháváme viditelný jen ve stavu attention – tam je to signál, ne
   statistika, a neměl by pod kurzorem mizet. */
.folder-tab:hover .folder-tab-badge:not(.folder-tab-badge--attention)[b-jps7uamdzv] {
    opacity: 0;
}

.folder-tab-menu:hover[b-jps7uamdzv] {
    opacity: 1;
}

/* Úzká/dotyková zařízení hover nemají – tam ikonku držíme trvale na aktivní záložce, jinak
   by se ke smazání/přejmenování složky nedalo vůbec dostat. Breakpoint 768px odpovídá
   IsMobileSize, ale počítá ho CSS, takže na rozdíl od C# stavu reaguje i na změnu šířky okna. */
@media (max-width: 767.98px), (hover: none) {
    .folder-tab-menu--on-active[b-jps7uamdzv] {
        opacity: 0.8;
        visibility: visible;
    }
}

/* Fade gradienty na okrajích scrolleru – defaultně skryté, viditelnost přepíná JS
   (folderTabsScroll.js) přes třídy can-scroll-left / can-scroll-right na wrapperu.
   Na desktopu se záložky wrapují, takže fade zůstává neaktivní. */
.folder-tabs-fade[b-jps7uamdzv] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2.2rem;
    pointer-events: none; /* nesmí blokovat klikání na záložky pod sebou */
    opacity: 0;
    transition: opacity 0.15s ease;
    z-index: 2;
}

.folder-tabs-fade-left[b-jps7uamdzv] {
    left: 0;
    background: linear-gradient(to right, var(--bs-body-bg) 10%, transparent 100%);
}

.folder-tabs-fade-right[b-jps7uamdzv] {
    right: 0;
    background: linear-gradient(to left, var(--bs-body-bg) 35%, transparent 100%);
}

.folder-tabs-scroll-wrap.can-scroll-left .folder-tabs-fade-left[b-jps7uamdzv],
.folder-tabs-scroll-wrap.can-scroll-right .folder-tabs-fade-right[b-jps7uamdzv] {
    opacity: 1;
}

/* Pravý okraj je klikatelná šipka (button). Musí mít pointer-events (na rozdíl od fade
   vrstev), reset button stylů a vycentrovanou šipku svisle i vodorovně. */
.folder-tabs-more[b-jps7uamdzv] {
    appearance: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 0.05rem;
    width: 3rem;
    color: var(--bs-body-color);
    /* Posun mimo okraj wrapperu, ať šipka nepřekrývá text poslední viditelné záložky. */
    transform: translateX(10px);
    /* Skrytá šipka nesmí být klikatelná – pointer-events řídíme spolu s opacity níže. */
    pointer-events: none;
}

.folder-tabs-more i[b-jps7uamdzv] {
    font-size: 0.8rem;
    opacity: 0.85;
}

.folder-tabs-scroll-wrap.can-scroll-right .folder-tabs-more[b-jps7uamdzv] {
    pointer-events: auto;
}

.folder-tab-add[b-jps7uamdzv] {
    background: rgba(127, 60, 255, 0.1);
    color: rgba(127, 60, 255, 0.9);
}

.folder-tab-add:hover[b-jps7uamdzv] {
    background: rgba(127, 60, 255, 0.18);
}

/* Hover jen prohloubí výplň. Původní translateY+scale nadzvedávalo celou pilulku – u řady
   chipů to působilo neklidně a při wrapu do dvou řádků se prvky opticky "klepaly". */
.folder-tab:hover[b-jps7uamdzv] {
    background: rgba(138, 77, 255, 0.14);
    color: var(--bs-body-color);
}

/* Vybraná záložka: plná fialová místo dvoubarevného gradientu. Gradient fialová→modrá byl
   nejsytější prvek celé stránky a přetahoval pozornost z obsahu feedu, který má být hlavní. */
.folder-tab.active[b-jps7uamdzv] {
    background: rgba(122, 61, 245, 0.95);
    color: #fff;
    /* O stupeň výš než neaktivní záložky (500). Výběr nesou hlavně barva a výplň, řez je
       jen doplněk – větší skok by při přepínání viditelně přeskládal šířku řady. */
    font-weight: 600;
}

.folder-tab.active:hover[b-jps7uamdzv] {
    background: rgba(122, 61, 245, 1);
}

/* V tmavém režimu musí neutrální výplň vycházet ze světla, ne z barvy textu – color-mix
   s body-color by na tmavém pozadí dal prakticky neviditelný odstín. */
[data-bs-theme=dark] .folder-tab[b-jps7uamdzv] {
    background: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.66);
}

[data-bs-theme=dark] .folder-tab-add[b-jps7uamdzv] {
    background: rgba(151, 105, 255, 0.16);
    color: rgba(199, 178, 255, 0.98);
}

[data-bs-theme=dark] .folder-tab-add:hover[b-jps7uamdzv] {
    background: rgba(151, 105, 255, 0.24);
    color: #fff;
}

[data-bs-theme=dark] .folder-tab:hover[b-jps7uamdzv] {
    background: rgba(151, 105, 255, 0.2);
    color: rgba(255, 255, 255, 0.96);
}

[data-bs-theme=dark] .folder-tab.active[b-jps7uamdzv] {
    background: rgba(133, 76, 250, 0.95);
    color: #fff;
}

[data-bs-theme=dark] .folder-tab.active:hover[b-jps7uamdzv] {
    background: rgba(133, 76, 250, 1);
}

[data-bs-theme=dark] .folder-tab--smart .folder-tab-icon[b-jps7uamdzv] {
    color: rgba(193, 169, 255, 0.9);
}

[data-bs-theme=dark] .folder-tab-badge[b-jps7uamdzv] {
    color: rgba(255, 255, 255, 0.62);
}

[data-bs-theme=dark] .folder-tab-badge--attention[b-jps7uamdzv] {
    background: rgba(241, 177, 67, 0.22);
    color: #f5bd54;
}

[data-bs-theme=dark] .folder-tab--attention[b-jps7uamdzv] {
    background: rgba(241, 177, 67, 0.16);
    color: #f5c877;
}

[data-bs-theme=dark] .folder-tab--active[b-jps7uamdzv] {
    background: rgba(151, 105, 255, 0.13);
}

[data-bs-theme=dark] .folder-tab--active .folder-tab-icon[b-jps7uamdzv] {
    color: rgba(193, 169, 255, 0.98);
}

[data-bs-theme=dark] .folder-tab--busy[b-jps7uamdzv] {
    background: rgba(151, 105, 255, 0.24);
    color: rgba(255, 255, 255, 0.92);
}

[data-bs-theme=dark] .folder-tab--busy .folder-tab-icon[b-jps7uamdzv] {
    color: rgba(193, 169, 255, 1);
}

[data-bs-theme=dark] .folder-tab--busy .folder-tab-badge[b-jps7uamdzv] {
    color: rgba(255, 255, 255, 0.8);
}


@media (max-width: 768px) {
    .folder-tabs-shell[b-jps7uamdzv] {
        padding: 0.2rem 0;
        gap: 0.4rem;
        margin-bottom: 0.75rem;
    }

    .folder-tabs-empty[b-jps7uamdzv] {
        min-height: 1.9rem;
        font-size: 0.82rem;
    }

    .folder-tabs-scroll[b-jps7uamdzv] {
        flex-wrap: nowrap;
        max-height: none;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        gap: 0.4rem;
    }

    .folder-tabs-scroll[b-jps7uamdzv]::-webkit-scrollbar {
        display: none;
    }

    .folder-tab[b-jps7uamdzv] {
        padding: 0.72rem 0.95rem;
        font-size: 0.92rem;
        font-weight: 500;
        border-radius: 999px;
        min-height: 2.8rem;
        min-width: 4.6rem;
    }

    .folder-tab:not(.folder-tab-icon-only):not(.folder-tab--smart) i[b-jps7uamdzv] {
        display: none;
    }

    .folder-tab:not(.folder-tab-icon-only):not(.folder-tab--smart)[b-jps7uamdzv] {
        gap: 0;
    }

    .folder-tab--smart[b-jps7uamdzv] {
        min-height: 2.1rem;
        min-width: 0;
        padding: 0.38rem 0.42rem 0.38rem 0.68rem;
        gap: 0.38rem;
        font-size: 0.88rem;
    }

    .folder-tab--smart:not(:has(.folder-tab-badge))[b-jps7uamdzv] {
        padding-right: 0.68rem;
    }

    .folder-tab--smart .folder-tab-icon[b-jps7uamdzv] {
        font-size: 0.86em;
    }

    .folder-tab-badge[b-jps7uamdzv] {
        font-size: 0.74rem;
    }

    .folder-tab-badge--attention[b-jps7uamdzv] {
        padding: 0.02rem 0.36rem;
    }

    .folder-tab.folder-tab-icon-only[b-jps7uamdzv] {
        width: 2.8rem;
        min-width: 2.8rem;
        height: 2.8rem;
        min-height: 2.8rem;
    }

    /* Záložka "Vše" je na mobilu kompaktní kruhový chip s ikonou (text se skryje),
       aby zbylo více místa na názvy reálných složek. Tooltip + ikona stačí. */
    .folder-tab.folder-tab-all[b-jps7uamdzv] {
        width: 2.8rem;
        min-width: 2.8rem;
        height: 2.8rem;
        min-height: 2.8rem;
        padding: 0;
        gap: 0;
    }

    .folder-tab.folder-tab-all i[b-jps7uamdzv] {
        display: inline-flex; /* přebíjí skrytí ikon výše – u "Vše" ikonu naopak chceme */
        font-size: 1.05em;
    }

    .folder-tab.folder-tab-all .folder-tab-text[b-jps7uamdzv] {
        display: none;
    }
}
/* /Pages/Projects/ProjectFeed/FeedPost.razor.rz.scp.css */
.post[b-pxep9y2uor] {
  border-bottom: 1px solid rgba(148, 148, 148, 0.2);
  margin: 18px 0px;
  padding: 10px 0;
  /* max-height + overflow drží příspěvek připravený na collapse při filtrování podle štítku.
     Hodnota je záměrně velká – skutečnou výšku CSS nezná a příspěvek může nést obrázky
     i vlákno komentářů. Strop je proto s velkou rezervou – při jeho překročení by se
     příspěvek ořízl. Fade má malé zpoždění, aby se obsah neobjevil dřív, než dojede výška. */
  max-height: 40000px;
  overflow: hidden;
  transition: background-color 0.5s ease-in-out, opacity 0.18s ease 0.06s,
              max-height 0.18s ease, padding 0.18s ease, margin 0.18s ease,
              border-width 0.18s ease;
}
.post.selected[b-pxep9y2uor] {
  animation: highlightAnimation-b-pxep9y2uor 2s ease-in-out 1s;
}
.post.background-box[b-pxep9y2uor] {
  padding: 10px 16px;
  background: #f4f4f4;
  border: 1px solid rgba(148, 148, 148, 0.2);
  border-radius: 10px;
}
[data-bs-theme=dark] .post.background-box[b-pxep9y2uor] {
  background: rgba(30, 30, 30, 0.5);
}

/* Příspěvek odfiltrovaný štítkem. Nepoužíváme display:none – z něj není co animovat.
   Collapsujeme i vlastní rozestupy, jinak po skrytém příspěvku zůstane ve feedu mezera.
   Selektor musí přebít i .post.background-box, která si nastavuje vlastní padding a border,
   proto je uveden až za ní a se stejnou specificitou pro obě varianty.
   visibility a pointer-events brání tomu, aby skrytý příspěvek zůstal klikatelný. */
.post.filter-hidden[b-pxep9y2uor],
.post.background-box.filter-hidden[b-pxep9y2uor] {
  max-height: 0;
  opacity: 0;
  padding-top: 0;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
  border-width: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.12s ease, max-height 0.18s ease, padding 0.18s ease,
              margin 0.18s ease, border-width 0.18s ease, visibility 0s linear 0.18s;
}

/* Uživatel s omezením pohybu dostane prosté přepnutí stavu bez animace. */
@media (prefers-reduced-motion: reduce) {
  .post[b-pxep9y2uor],
  .post.filter-hidden[b-pxep9y2uor],
  .post.background-box.filter-hidden[b-pxep9y2uor] {
    transition: none;
  }
}

.creator-name[b-pxep9y2uor] {
  font-weight: 600;
  font-size: 0.8rem;
  opacity: 0.7;
}

.created-date[b-pxep9y2uor] {
  font-size: 0.8rem;
  opacity: 0.5;
}

.icon-reaction[b-pxep9y2uor] {
  font-size: 1.2em;
}

.icon-comments[b-pxep9y2uor] {
  font-size: 1.2em;
}

.post-text[b-pxep9y2uor] {
  font-size: 1.1em;
}

.post-header-actions[b-pxep9y2uor] {
  margin-top: -2px;
}

.post-equipment[b-pxep9y2uor] {
  margin-top: 2px;
}
.post-equipment .post-equipment-label[b-pxep9y2uor] {
  font-size: 0.8rem;
  opacity: 0.8;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
}
.post-equipment .post-equipment-list[b-pxep9y2uor] {
  gap: 6px !important;
}
.post-equipment .post-equipment-chip[b-pxep9y2uor] {
  display: inline-block;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(163, 170, 184, 0.55);
  background: rgba(163, 170, 184, 0.2);
  font-size: 0.82rem;
  line-height: 1.15;
  white-space: nowrap;
}
.post-equipment .post-equipment-edit[b-pxep9y2uor] {
  margin-left: 4px;
}

.post-equipment-editor[b-pxep9y2uor] {
  border: 1px solid rgba(148, 148, 148, 0.25);
  border-radius: 10px;
  padding: 10px;
  background: rgba(148, 148, 148, 0.04);
}

.post-equipment-pill[b-pxep9y2uor] {
  border-radius: 999px;
  font-size: 0.82rem;
}

.highlight[b-pxep9y2uor] {
  background-color: #9fb2ff;
  transition: background-color 0.5s ease-out;
}
[data-bs-theme=dark] .highlight[b-pxep9y2uor] {
  background-color: #161ce3;
}

@keyframes highlightAnimation-b-pxep9y2uor {
  10%, 90% {
    border-width: 4px;
    border-color: #878787;
  }
  50%, 90% {
    background: rgba(100, 113, 255, 0.47);
  }
}

.post-viewed-by[b-pxep9y2uor] {
    flex-shrink: 0;
}

.post-viewed-by[b-pxep9y2uor]  .post-view-avatar {
    margin-left: -3px;
}

.post-viewed-by[b-pxep9y2uor]  .post-view-avatar:first-child {
    margin-left: 0;
}

.post-viewed-by .post-view-more[b-pxep9y2uor] {
    margin-left: -2px;
    padding: 0 3px;
    height: 14px;
    border-radius: 999px;
    background-color: rgba(255, 255, 255, 0.95);
    color: var(--bs-body-color);
    font-size: 0.60rem;
    font-weight: 700;
    line-height: 14px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

[data-bs-theme=dark] .post-viewed-by .post-view-more[b-pxep9y2uor] {
    background-color: rgba(28, 33, 43, 0.92);
}

/*# sourceMappingURL=FeedPost.razor.css.map */
/* /Pages/Projects/ProjectFeed/FeedTimeline.razor.rz.scp.css */
.feed-timeline[b-b0dpjt7d0j]  .feed-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 0 0 6px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-breadcrumb--subcontext {
    margin: 0 0 8px;
    padding-left: 2px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-chip {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 500;
    padding: 2px 10px;
    border-radius: 20px;
    background-color: rgba(var(--bs-secondary-rgb), 0.12);
    color: var(--bs-body-color);
    opacity: 0.6;
    border: none;
    letter-spacing: 0.01em;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-breadcrumb--subcontext .feed-folder-chip {
    font-size: 0.68rem;
    padding: 2px 8px;
    opacity: 0.52;
    background-color: rgba(128, 128, 128, 0.12);
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section {
    position: relative;
    margin: 0 0 34px;
    padding: 0 0 2px 18px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section:last-child {
    margin-bottom: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section::before {
    content: "";
    position: absolute;
    left: 0;
    top: 5px;
    bottom: 6px;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(
        to bottom,
        rgba(var(--bs-primary-rgb), 0.9),
        rgba(var(--bs-primary-rgb), 0.18)
    );
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 38px;
    margin-bottom: 12px;
    padding: 2px 0 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    min-width: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-title {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    color: var(--bs-body-color);
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-breadcrumb--section {
    margin: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-breadcrumb--subgroup {
    margin: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-icon {
    color: var(--bs-primary);
    font-size: 0.88rem;
    opacity: 0.8;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-count {
    flex-shrink: 0;
    color: var(--bs-body-color);
    font-size: 0.78rem;
    font-weight: 600;
    opacity: 0.42;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-body {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-post {
    position: relative;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-post .post {
    margin-top: 0;
    margin-bottom: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--divider {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 24px 0 8px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--divider:first-child {
    margin-top: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--divider::before,
.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(128, 128, 128, 0.15);
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--divider .feed-group-title {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    opacity: 0.58;
    white-space: nowrap;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--divider .feed-group-count {
    font-size: 0.68rem;
    font-weight: 400;
    opacity: 0.42;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--sticky {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 32px 0 10px;
    padding: 8px 14px 8px 16px;
    border-radius: 0 8px 8px 0;
    background: var(--bs-body-bg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--sticky:first-child {
    margin-top: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--sticky .feed-group-title {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    flex: 1;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-header--sticky .feed-group-count {
    font-size: 0.78rem;
    opacity: 0.4;
    font-weight: 400;
}

[data-bs-theme=dark] .feed-timeline[b-b0dpjt7d0j]  .feed-group-header--sticky {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-block--sticky {
    position: relative;
    margin-bottom: 22px;
    padding-left: 16px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-block--sticky::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 10px;
    width: 4px;
    border-radius: 999px;
    background: linear-gradient(
        to bottom,
        rgba(var(--bs-primary-rgb), 0.95),
        rgba(var(--bs-primary-rgb), 0.2)
    );
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-block--sticky:last-child {
    margin-bottom: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-card {
    border: 1px solid rgba(128, 128, 128, 0.15);
    border-radius: 12px;
    margin-bottom: 16px;
    overflow: hidden;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-card:last-child {
    margin-bottom: 0;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-card-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: rgba(128, 128, 128, 0.06);
    border-bottom: 1px solid rgba(128, 128, 128, 0.1);
    font-size: 0.82rem;
    font-weight: 600;
}

[data-bs-theme=dark] .feed-timeline[b-b0dpjt7d0j]  .feed-group-card-header {
    background: rgba(255, 255, 255, 0.04);
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-card-icon {
    opacity: 0.4;
    font-size: 0.85em;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-card-count {
    margin-left: auto;
    font-size: 0.72rem;
    font-weight: 400;
    opacity: 0.4;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-group-card-body {
    padding: 4px 12px;
}

/* Subgroup header — sekundární úroveň seskupení (datum uvnitř složky nebo složka uvnitř dne) */
.feed-timeline[b-b0dpjt7d0j]  .feed-subgroup-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 14px 6px;
    font-size: 0.95rem;
    font-weight: 700;
    opacity: 0.9;
    color: var(--bs-body-color);
    border-top: 1px solid rgba(128, 128, 128, 0.15);
    margin-top: 8px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-subgroup-header:first-child {
    border-top: none;
    margin-top: 0;
    padding-top: 8px;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-subgroup-icon {
    font-size: 0.9em;
    color: var(--bs-primary);
    opacity: 0.9;
}

.feed-timeline[b-b0dpjt7d0j]  .feed-subgroup-count {
    margin-left: auto;
    font-size: 0.75rem;
    font-weight: 600;
    opacity: 0.5;
}

/* Subgroup header pro divider/sticky styl (mimo kartu) */
.feed-timeline[b-b0dpjt7d0j]  .feed-group-header-icon {
    opacity: 0.4;
    font-size: 0.85em;
    flex-shrink: 0;
}

@media (max-width: 640px) {
    .feed-timeline[b-b0dpjt7d0j]  .feed-folder-section {
        padding-left: 14px;
    }

    .feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-header {
        margin-bottom: 10px;
    }

    .feed-timeline[b-b0dpjt7d0j]  .feed-folder-section-title {
        font-size: 1rem;
    }
}
/* /Pages/Projects/ProjectFeed/FolderPreview.razor.rz.scp.css */


/*# sourceMappingURL=FolderPreview.razor.css.map */
/* /Pages/Projects/ProjectFeed/TimeStatsIcon.razor.rz.scp.css */
.context.running[b-npktlubib9] {
  color: var(--accent-color);
}

/*# sourceMappingURL=TimeStatsIcon.razor.css.map */
/* /Pages/Projects/Settings/ProjectCreateDialog.razor.rz.scp.css */
.pcd[b-43vuvfb0fd] {
  padding: 0.25rem 0.25rem 0;
  position: relative;
  --pcd-ai: #8b7cf6;
}

[b-43vuvfb0fd] .pcd-topbar {
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

.pcd-close[b-43vuvfb0fd] {
  font-size: 1.6rem;
  line-height: 1;
  min-height: 44px;
  min-width: 44px;
  opacity: 0.5;
}
.pcd-close:hover[b-43vuvfb0fd] {
  opacity: 1;
}

.pcd-title[b-43vuvfb0fd] {
  color: var(--bs-body-color);
  font-family: var(--font-display-serif);
  font-size: clamp(1.7rem, 3vw, 2.15rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 2.5rem;
  padding: 0 2.75rem;
  text-align: center;
}

[b-43vuvfb0fd] .pcd-name {
  background: transparent;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--bs-body-color) 18%, transparent);
  border-radius: 0;
  color: var(--bs-body-color);
  display: block;
  font-size: 1.3rem;
  margin-bottom: 1.75rem;
  padding: 0.5rem 0.25rem 0.65rem;
  text-align: center;
  width: 100%;
}
[b-43vuvfb0fd] .pcd-name::placeholder {
  opacity: 0.38;
}
[b-43vuvfb0fd] .pcd-name:focus {
  background: transparent;
  border-bottom-color: var(--bs-primary, #c98621);
  box-shadow: none;
  outline: none;
}
[b-43vuvfb0fd] .pcd-name:disabled {
  opacity: 0.5;
}

.pcd-ai[b-43vuvfb0fd] {
  border: 1px solid color-mix(in srgb, var(--pcd-ai) 45%, transparent);
  border-radius: 0.75rem;
  padding: 0.9rem 1rem 1rem;
}

.pcd-ai-head[b-43vuvfb0fd] {
  align-items: center;
  display: flex;
  font-weight: 600;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
}

.pcd-ai-icon[b-43vuvfb0fd] {
  color: var(--pcd-ai);
}

[b-43vuvfb0fd] .pcd-ai-input {
  background: transparent;
  border: 0;
  color: var(--bs-body-color);
  font-size: 1rem;
  line-height: 1.45;
  resize: vertical;
  width: 100%;
}
[b-43vuvfb0fd] .pcd-ai-input::placeholder {
  opacity: 0.4;
}
[b-43vuvfb0fd] .pcd-ai-input:focus {
  background: transparent;
  box-shadow: none;
  outline: none;
}
[b-43vuvfb0fd] .pcd-ai-input:disabled {
  opacity: 0.5;
}

.pcd-ai-body[b-43vuvfb0fd] {
  position: relative;
}
.pcd-ai-body.previewing[b-43vuvfb0fd]  .pcd-ai-input {
  opacity: 0;
}

.pcd-ai-preview[b-43vuvfb0fd] {
  color: var(--bs-body-color);
  font-size: 0.95rem;
  font-style: italic;
  inset: 0;
  line-height: 1.45;
  opacity: 0.75;
  overflow: hidden;
  padding: 0.4rem 0.75rem;
  pointer-events: none;
  position: absolute;
  white-space: pre-line;
}

.pcd-chips[b-43vuvfb0fd] {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.75rem;
}

.pcd-chips-label[b-43vuvfb0fd] {
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  margin-right: 0.25rem;
  opacity: 0.45;
  text-transform: uppercase;
}

[b-43vuvfb0fd] .pcd-chip {
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--bs-body-color) 16%, transparent);
  border-radius: 999px;
  color: var(--bs-body-color);
  font-size: 0.86rem;
  padding: 0.28rem 0.8rem;
}
[b-43vuvfb0fd] .pcd-chip:hover:not(.disabled) {
  background: transparent;
  border-color: color-mix(in srgb, var(--pcd-ai) 60%, transparent);
  color: var(--pcd-ai);
}
[b-43vuvfb0fd] .pcd-chip.disabled {
  opacity: 0.45;
}
[b-43vuvfb0fd] .pcd-chip.pcd-chip-active {
  background: color-mix(in srgb, var(--pcd-ai) 15%, transparent) !important;
  border-color: color-mix(in srgb, var(--pcd-ai) 60%, transparent) !important;
  color: var(--pcd-ai) !important;
}

.pcd-suggestions[b-43vuvfb0fd] {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 1.2rem;
}

.pcd-suggestion-hover[b-43vuvfb0fd] {
  display: inline-flex;
}

.pcd-suggestions[b-43vuvfb0fd]  .pcd-chip {
  font-size: 0.8rem;
  opacity: 0.7;
  padding: 0.22rem 0.65rem;
}
.pcd-suggestions[b-43vuvfb0fd]  .pcd-chip:hover:not(.disabled) {
  opacity: 1;
}
.pcd-suggestions[b-43vuvfb0fd]  .pcd-chip.pcd-chip-active {
  background: color-mix(in srgb, var(--pcd-ai) 15%, transparent) !important;
  border-color: color-mix(in srgb, var(--pcd-ai) 60%, transparent) !important;
  color: var(--pcd-ai) !important;
  opacity: 1;
}

.pcd-customer[b-43vuvfb0fd] {
  margin-top: 1.4rem;
}

.pcd-error[b-43vuvfb0fd] {
  align-items: center;
  color: var(--bs-danger, #dc3545);
  display: flex;
  font-size: 0.9rem;
  margin-top: 1.1rem;
}

.pcd-debug[b-43vuvfb0fd] {
  font-size: 0.78rem;
  margin-top: 1rem;
  opacity: 0.6;
}
.pcd-debug pre[b-43vuvfb0fd] {
  max-height: 240px;
  overflow: auto;
  white-space: pre-wrap;
}

.pcd-footer[b-43vuvfb0fd] {
  align-items: center;
  border-top: 1px solid color-mix(in srgb, var(--bs-body-color) 12%, transparent);
  display: flex;
  justify-content: space-between;
  margin-top: 1.75rem;
  padding-top: 1.1rem;
}

.pcd-secondary[b-43vuvfb0fd] {
  opacity: 0.6;
}

@media (max-width: 560px) {
  .pcd-title[b-43vuvfb0fd] {
    font-size: 1.55rem;
    margin: 0 0 1.85rem;
  }
  .pcd-name[b-43vuvfb0fd] {
    font-size: 1.15rem;
    margin-bottom: 1.35rem;
  }
  .pcd-footer[b-43vuvfb0fd] {
    align-items: stretch;
    flex-direction: column-reverse;
  }
}

/*# sourceMappingURL=ProjectCreateDialog.razor.css.map */
/* /Pages/Projects/Settings/ProjectSettings.razor.rz.scp.css */
.project-dialog-title[b-nqe14ejgbh] {
  display: flex;
}

.project-dialog-close[b-nqe14ejgbh] {
  font-size: 2rem;
  line-height: 1;
  min-height: 44px;
  min-width: 44px;
}

.template-grid[b-nqe14ejgbh] {
  display: grid;
  gap: 0.65rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Na úzkém modalu spadnout na jeden sloupec */
@media (max-width: 560px) {
  .template-grid[b-nqe14ejgbh] {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* /Pages/Projects/Settings/ProjectTemplateCard.razor.rz.scp.css */
.project-template-card[b-1no67armay] {
  --template-border: rgba(255, 255, 255, 0.18);
  --template-border-hover: rgba(255, 255, 255, 0.28);
  --template-border-selected: rgba(255, 255, 255, 0.38);
  --template-bg: rgba(255, 255, 255, 0.08);
  --template-bg-hover: rgba(255, 255, 255, 0.1);
  --template-bg-selected: rgba(255, 255, 255, 0.12);
  --template-icon: rgba(255, 255, 255, 0.9);
  --template-track-icon: rgba(255, 255, 255, 0.75);
  --template-pill-bg: rgba(255, 255, 255, 0.12);
  --template-pill-color: rgba(255, 255, 255, 0.78);
  border: 1px solid var(--template-border);
  border-radius: 0.75rem;
  cursor: pointer;
  height: 100%;
  background: var(--template-bg);
  padding: 1rem 1.15rem;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.project-template-card:hover[b-1no67armay] {
  border-color: var(--template-border-hover);
  background: var(--template-bg-hover);
}

.project-template-card.selected[b-1no67armay] {
  border-color: var(--template-border-selected);
  background: var(--template-bg-selected);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.project-template-head[b-1no67armay] {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.project-template-title[b-1no67armay] {
  align-items: center;
  display: flex;
  font-size: 0.95rem;
  font-weight: 600;
  gap: 0.5rem;
}

/* malá barevná ikona u titulku */
.project-template-icon[b-1no67armay] {
  color: var(--template-icon);
}

.project-template-check[b-1no67armay] {
  color: var(--template-icon);
}

.project-template-desc[b-1no67armay] {
  display: block;
  font-size: 0.82rem;
  margin-top: 0.25rem;
  opacity: 0.6;
}

.project-template-outline[b-1no67armay] {
  margin-top: 0.75rem;
}

/* řádek skladby */
.project-template-track[b-1no67armay] {
  align-items: center;
  display: flex;
  font-size: 0.82rem;
  font-weight: 500;
  gap: 0.4rem;
  margin-top: 0.5rem;
  opacity: 0.85;
}

.project-template-track:first-child[b-1no67armay] {
  margin-top: 0;
}

.project-template-track-icon[b-1no67armay] {
  color: var(--template-track-icon);
}

/* fáze jako barevné tagy (pilulky) – Notion-like */
.project-template-phases[b-1no67armay] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.4rem;
  padding-left: 1.4rem;
}

.project-template-phases-flat[b-1no67armay],
.project-template-card .project-template-outline > .project-template-phases:only-child[b-1no67armay] {
  padding-left: 0;
}

.project-template-phase[b-1no67armay] {
  background: var(--template-pill-bg);
  border-radius: 0.4rem;
  color: var(--template-pill-color);
  font-size: 0.74rem;
  font-weight: 500;
  line-height: 1.2;
  padding: 0.18rem 0.5rem;
}

[data-bs-theme="light"] .project-template-card[b-1no67armay] {
  --template-border: rgba(0, 0, 0, 0.12);
  --template-border-hover: rgba(0, 0, 0, 0.2);
  --template-border-selected: rgba(0, 0, 0, 0.28);
  --template-bg: rgba(0, 0, 0, 0.035);
  --template-bg-hover: rgba(0, 0, 0, 0.05);
  --template-bg-selected: rgba(0, 0, 0, 0.065);
  --template-icon: rgba(0, 0, 0, 0.78);
  --template-track-icon: rgba(0, 0, 0, 0.58);
  --template-pill-bg: rgba(0, 0, 0, 0.08);
  --template-pill-color: rgba(0, 0, 0, 0.68);
}

@media (max-width: 560px) {
  .project-template-card[b-1no67armay] {
    padding: 0.85rem 1rem;
  }

  .project-template-title[b-1no67armay] {
    font-size: 0.95rem;
  }

  .project-template-desc[b-1no67armay] {
    font-size: 0.84rem;
  }

  .project-template-outline[b-1no67armay] {
    display: none;
  }
}
/* /Pages/Projects/SharedComponents/StudioOrProjectNotes.razor.rz.scp.css */
[b-qdlgql0ggb] .editor {
    border: 1px solid #8f8f8f30;
    border-radius: 10px;
    padding: 10px;
}

[b-qdlgql0ggb] .scope-notes__viewer {
    position: relative;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 10px;
    cursor: text;
    transition: border-color 0.15s ease, background-color 0.15s ease;
    overflow: hidden;
}

[b-qdlgql0ggb] .scope-notes__viewer-content {
    transition: opacity 0.15s ease;
}

[b-qdlgql0ggb] .scope-notes__viewer-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    font-size: 0.95rem;
    font-weight: 500;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

[b-qdlgql0ggb] .scope-notes__viewer:hover,
[b-qdlgql0ggb] .scope-notes__viewer:focus-within {
    border-color: #8f8f8f30;
    background-color: rgba(0, 0, 0, 0.02);
}

[b-qdlgql0ggb] .scope-notes__viewer:hover .scope-notes__viewer-content,
[b-qdlgql0ggb] .scope-notes__viewer:focus-within .scope-notes__viewer-content {
    opacity: 0.32;
}

[b-qdlgql0ggb] .scope-notes__viewer:hover .scope-notes__viewer-overlay,
[b-qdlgql0ggb] .scope-notes__viewer:focus-within .scope-notes__viewer-overlay {
    opacity: 1;
}

[b-qdlgql0ggb] .scope-notes__notice {
    font-size: 0.85rem;
    opacity: 0.65;
}

[data-bs-theme=dark][b-qdlgql0ggb]  .scope-notes__viewer:hover,
[data-bs-theme=dark][b-qdlgql0ggb]  .scope-notes__viewer:focus-within {
    background-color: rgba(255, 255, 255, 0.07);
}
/* /Pages/Projects/SharedProject.razor.rz.scp.css */
.share-page[b-8lhwt39qws] {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1rem 4rem;
}

/* Chybové a načítací stavy drží obsah uprostřed obrazovky, aby prázdná stránka nepůsobila rozbitě. */
.share-page--centered[b-8lhwt39qws] {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.share-header[b-8lhwt39qws] {
    margin-bottom: 2.5rem;
}

.share-workspace[b-8lhwt39qws] {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .75rem;
    opacity: .6;
}

.share-title[b-8lhwt39qws] {
    margin: 0;
    font-size: 1.75rem;
}

.share-description[b-8lhwt39qws] {
    margin: 0;
    opacity: .7;
}

/* Nabídka připojení drží text zarovnaný pod tlačítkem a nesmí roztáhnout hlavičku,
   proto má vlastní šířkový strop. */
.share-join[b-8lhwt39qws] {
    text-align: right;
    max-width: 16rem;
}

.share-join-hint[b-8lhwt39qws] {
    margin: .4rem 0 0;
    font-size: .8rem;
    opacity: .6;
}

/* Hostovský pohled používá stejný feed, ale na samostatném layoutu nemá okolní bootstrap
   sloupec ProjectPage. Obal mu proto poskytne stejnou čitelnou šířku a rytmus. */
.share-feed-shell[b-8lhwt39qws] {
    padding-top: .25rem;
    border-top: 1px solid var(--bs-border-color, rgba(128, 128, 128, .2));
}

[b-8lhwt39qws] .share-feed-shell .feed-tree {
    width: 100%;
}

@media (max-width: 576px) {
    .share-page[b-8lhwt39qws] {
        padding: 1.25rem .75rem 3rem;
    }

    .share-header[b-8lhwt39qws] {
        margin-bottom: 1.5rem;
    }

    /* Po zalomení pod název projektu už zarovnání doprava působí odtrženě - na úzké
       obrazovce se nabídka srovná vlevo s ostatním textem hlavičky. */
    .share-join[b-8lhwt39qws] {
        text-align: left;
        max-width: none;
    }
}
/* /Pages/QrLogin.razor.rz.scp.css */
.auth-flow-window[b-zg8c4u56uy] {
    max-width: 460px;
}
/* /Pages/Scheduling/Components/Scheduler/MyScheduler.razor.rz.scp.css */
.myscheduler-root[b-okof2mhsa6] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 400px;
}
/* /Pages/Scheduling/Components/Scheduler/MySchedulerAllDayRow.razor.rz.scp.css */
.myscheduler-allday-row[b-7ndkq6fbku] {
    display: grid;
    width: 100%;
    min-width: var(--mc-scheduler-grid-min-width, calc(60px + (var(--mc-scheduler-day-count, 7) * var(--mc-scheduler-day-min-width, 180px))));
    grid-template-columns: 60px repeat(var(--mc-scheduler-day-count, 7), minmax(var(--mc-scheduler-day-min-width, 180px), 1fr));
    border-bottom: 1px solid var(--mc-scheduler-border, #e0e0e0);
    background: var(--mc-scheduler-allday-bg, #fafafa);
    min-height: 28px;
}

.allday-label[b-7ndkq6fbku] {
    display: flex;
    align-items: center;
    justify-content: center;
    position: sticky;
    left: 0;
    z-index: 4;
    background: var(--mc-scheduler-allday-bg, #fafafa);
    font-size: 11px;
    color: var(--mc-scheduler-muted, #888);
    border-right: 1px solid var(--mc-scheduler-border, #e0e0e0);
}

.allday-cell[b-7ndkq6fbku] {
    border-left: 1px solid var(--mc-scheduler-border, #e0e0e0);
    padding: 2px 4px;
    min-height: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
}

.allday-pill[b-7ndkq6fbku] {
    font-size: 11px;
    line-height: 1.2;
    padding: 2px 6px;
    border-radius: 3px;
    background: var(--mc-scheduler-event-bg, #1e88ff);
    color: #fff;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}

.allday-pill.foreign-private[b-7ndkq6fbku] {
    background: var(--mc-scheduler-private-bg, #b0b0b0);
    font-style: italic;
}

[data-bs-theme="dark"] .myscheduler-allday-row[b-7ndkq6fbku] {
    background: var(--mc-scheduler-allday-bg-dark, #1f1f1f);
    border-color: #333;
}

[data-bs-theme="dark"] .allday-cell[b-7ndkq6fbku],
[data-bs-theme="dark"] .allday-label[b-7ndkq6fbku] {
    background: var(--mc-scheduler-allday-bg-dark, #1f1f1f);
    border-color: #333;
}
/* /Pages/Scheduling/Components/Scheduler/MySchedulerEvent.razor.rz.scp.css */
.myscheduler-event[b-rwo5kgvvab] {
    position: absolute;
    box-sizing: border-box;
    padding: 2px 6px;
    border-radius: 4px;
    background-color: var(--mc-scheduler-event-bg, #1e88ff);
    color: var(--mc-scheduler-event-color, #fff);
    font-size: var(--mc-scheduler-event-font-size, 12px);
    line-height: 1.2;
    overflow: hidden;
    cursor: pointer;
    user-select: none;
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);
    transition: box-shadow 120ms ease, transform 120ms ease;
}

.myscheduler-event:hover[b-rwo5kgvvab] {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
    z-index: 5;
}

.myscheduler-event.foreign-private[b-rwo5kgvvab] {
    background-color: var(--mc-scheduler-private-bg, #b0b0b0) !important;
    color: #fff;
    font-style: italic;
}

.myscheduler-event.is-task[b-rwo5kgvvab] {
    border-left: 3px solid rgba(0, 0, 0, 0.25);
}

.myscheduler-event.is-task-finished[b-rwo5kgvvab] {
    opacity: 0.6;
    text-decoration: line-through;
}

.myscheduler-event .event-title[b-rwo5kgvvab] {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.myscheduler-event .event-time[b-rwo5kgvvab] {
    opacity: 0.85;
    font-size: 0.9em;
}

.myscheduler-event .event-project[b-rwo5kgvvab] {
    opacity: 0.8;
    font-size: 0.9em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.myscheduler-event .event-meta[b-rwo5kgvvab] {
    opacity: 0.8;
    font-size: 0.9em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Kompaktní mód: titul a čas vedle sebe na jednom řádku */
.myscheduler-event.compact[b-rwo5kgvvab] {
    padding: 1px 4px;
}

.myscheduler-event .event-inner--compact[b-rwo5kgvvab] {
    display: flex;
    align-items: center;
    gap: 4px;
    overflow: hidden;
    white-space: nowrap;
}

.myscheduler-event .event-inner--compact .event-time[b-rwo5kgvvab] {
    flex-shrink: 0;
    opacity: 0.85;
    font-size: 0.9em;
}

.myscheduler-event .event-inner--compact .event-title[b-rwo5kgvvab] {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
}

.myscheduler-event .resize-handle[b-rwo5kgvvab] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 6px;
    cursor: ns-resize;
}

[data-bs-theme="dark"] .myscheduler-event[b-rwo5kgvvab] {
    border-color: rgba(255, 255, 255, 0.08);
}

[data-bs-theme="dark"] .myscheduler-event.foreign-private[b-rwo5kgvvab] {
    background-color: var(--mc-scheduler-private-bg-dark, #555) !important;
}
/* /Pages/Scheduling/Components/Scheduler/MySchedulerHeaderRow.razor.rz.scp.css */
.myscheduler-header-row[b-ux58999mgb] {
    display: grid;
    width: 100%;
    min-width: var(--mc-scheduler-grid-min-width, calc(60px + (var(--mc-scheduler-day-count, 7) * var(--mc-scheduler-day-min-width, 180px))));
    grid-template-columns: 60px repeat(var(--mc-scheduler-day-count, 7), minmax(var(--mc-scheduler-day-min-width, 180px), 1fr));
    border-bottom: 1px solid var(--mc-scheduler-border, #e0e0e0);
    background: var(--mc-scheduler-bg, #fff);
    user-select: none;
}

.header-corner[b-ux58999mgb] {
    position: sticky;
    left: 0;
    z-index: 5;
    background: var(--mc-scheduler-bg, #fff);
    border-right: 1px solid var(--mc-scheduler-border, #e0e0e0);
}

.header-day[b-ux58999mgb] {
    text-align: center;
    padding: 6px 4px 4px;
    border-left: 1px solid var(--mc-scheduler-border, #e0e0e0);
}

.header-day.today[b-ux58999mgb] {
    background: rgba(255, 235, 150, 0.18);
}

.header-day.weekend[b-ux58999mgb] {
    background: rgba(255, 92, 92, 0.14);
}

.day-name[b-ux58999mgb] {
    font-size: 11px;
    text-transform: uppercase;
    color: var(--mc-scheduler-muted, #888);
    letter-spacing: 0.5px;
}

.day-date[b-ux58999mgb] {
    font-size: 14px;
    font-weight: 600;
}

.header-resources[b-ux58999mgb] {
    display: flex;
    gap: 0;
    margin-top: 2px;
    border-top: 1px solid var(--mc-scheduler-border, #e0e0e0);
}

.header-resource[b-ux58999mgb] {
    flex: 1;
    font-size: 10px;
    color: var(--mc-scheduler-muted, #888);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 2px 2px;
    border-left: 1px dashed var(--mc-scheduler-border, #e0e0e0);
}

.header-resource:first-child[b-ux58999mgb] {
    border-left: none;
}

[data-bs-theme="dark"] .myscheduler-header-row[b-ux58999mgb] {
    background: var(--mc-scheduler-bg, #181818);
    border-color: #333;
}

[data-bs-theme="dark"] .header-day[b-ux58999mgb] {
    border-color: #333;
}

[data-bs-theme="dark"] .header-day.today[b-ux58999mgb] {
    background: rgba(255, 235, 150, 0.06);
}

[data-bs-theme="dark"] .header-day.weekend[b-ux58999mgb] {
    background: rgba(255, 92, 92, 0.2);
}

[data-bs-theme="dark"] .header-corner[b-ux58999mgb] {
    background: var(--mc-scheduler-bg, #181818);
    border-color: #333;
}

[data-bs-theme="dark"] .header-resources[b-ux58999mgb],
[data-bs-theme="dark"] .header-resource[b-ux58999mgb] {
    border-color: #333;
}
/* /Pages/Scheduling/Components/Scheduler/MySchedulerMonthView.razor.rz.scp.css */
.myscheduler-month[b-g0aj3bsllg] {
    --mc-scheduler-border: #e0e0e0;
    --mc-scheduler-muted: #888;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--mc-scheduler-bg, #fff);
    color: var(--mc-scheduler-color, #222);
    border: 1px solid var(--mc-scheduler-border);
    border-radius: 4px;
    overflow: hidden;
}

.myscheduler-month-header[b-g0aj3bsllg] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    border-bottom: 1px solid var(--mc-scheduler-border);
    background: var(--mc-scheduler-bg, #fff);
}

.month-header-cell[b-g0aj3bsllg] {
    padding: 8px 6px;
    text-align: center;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--mc-scheduler-muted);
    border-left: 1px solid var(--mc-scheduler-border);
}

.month-header-cell:first-child[b-g0aj3bsllg] {
    border-left: none;
}

.myscheduler-month-grid[b-g0aj3bsllg] {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    grid-auto-rows: minmax(120px, 1fr);
    flex: 1 1 auto;
}

.month-day[b-g0aj3bsllg] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    padding: 8px 8px 6px;
    border-left: 1px solid var(--mc-scheduler-border);
    border-top: 1px solid var(--mc-scheduler-border);
    background: var(--mc-scheduler-bg, #fff);
    cursor: pointer;
}

.month-day:nth-child(7n + 1)[b-g0aj3bsllg] {
    border-left: none;
}

.month-day.today[b-g0aj3bsllg] {
    background: rgba(255, 235, 150, 0.18);
}

.month-day.outside-month[b-g0aj3bsllg] {
    background: #fafafa;
    color: #999;
}

.month-day-number[b-g0aj3bsllg] {
    align-self: flex-end;
    font-size: 12px;
    font-weight: 700;
}

.month-day-items[b-g0aj3bsllg] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.month-item[b-g0aj3bsllg] {
    min-width: 0;
    padding: 3px 6px;
    border-radius: 4px;
    background: var(--mc-scheduler-event-bg, #1e88ff);
    color: var(--mc-scheduler-event-color, #fff);
    font-size: 11px;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    border: 1px solid rgba(0, 0, 0, 0.08);
}

.month-item.foreign-private[b-g0aj3bsllg] {
    background-color: var(--mc-scheduler-private-bg, #b0b0b0) !important;
}

.month-item.is-task[b-g0aj3bsllg] {
    border-left: 3px solid rgba(0, 0, 0, 0.25);
}

.month-item.is-task-finished[b-g0aj3bsllg] {
    opacity: 0.6;
    text-decoration: line-through;
}

.month-item-time[b-g0aj3bsllg] {
    margin-right: 4px;
    opacity: 0.9;
    font-weight: 600;
}

.month-item-title[b-g0aj3bsllg] {
    min-width: 0;
}

.month-item-meta[b-g0aj3bsllg] {
    margin-left: 4px;
    opacity: 0.75;
    font-size: 10px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.month-more[b-g0aj3bsllg] {
    font-size: 11px;
    color: var(--mc-scheduler-muted);
    padding: 0 2px;
}

[data-bs-theme="dark"] .myscheduler-month[b-g0aj3bsllg] {
    --mc-scheduler-bg: #181818;
    --mc-scheduler-color: #e0e0e0;
    --mc-scheduler-border: #333;
    --mc-scheduler-muted: #999;
}

[data-bs-theme="dark"] .month-day.today[b-g0aj3bsllg] {
    background: rgba(255, 235, 150, 0.06);
}

[data-bs-theme="dark"] .month-day.outside-month[b-g0aj3bsllg] {
    background: #1f1f1f;
}

[data-bs-theme="dark"] .month-item[b-g0aj3bsllg] {
    border-color: rgba(255, 255, 255, 0.08);
}
/* /Pages/Scheduling/Components/Scheduler/MySchedulerTimeColumn.razor.rz.scp.css */
.myscheduler-time-column[b-q3d5saxpun] {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--mc-scheduler-bg, #fff);
    border-right: 1px solid var(--mc-scheduler-border, #e0e0e0);
}

.time-slot[b-q3d5saxpun] {
    height: var(--mc-scheduler-slot-height, 24px);
    position: relative;
    border-top: 1px solid var(--mc-scheduler-border, #e0e0e0);
}

.time-slot.sub-slot[b-q3d5saxpun] {
    border-top-style: dotted;
    opacity: 0.5;
}

.time-label[b-q3d5saxpun] {
    position: absolute;
    top: 2px;
    right: 8px;
    font-size: 11px;
    color: var(--mc-scheduler-muted, #888);
    line-height: 1;
    white-space: nowrap;
}

[data-bs-theme="dark"] .myscheduler-time-column[b-q3d5saxpun] {
    background: var(--mc-scheduler-bg, #181818);
    border-color: #333;
}

[data-bs-theme="dark"] .time-slot[b-q3d5saxpun] {
    border-color: #333;
}
/* /Pages/Scheduling/Components/Scheduler/MySchedulerWeekView.razor.rz.scp.css */
.myscheduler-week[b-36vy30za12] {
    --mc-scheduler-slot-height: 24px;
    --mc-scheduler-day-count: 7;
    --mc-scheduler-day-min-width: 180px;
    --mc-scheduler-grid-height: 1152px;
    --mc-scheduler-grid-min-width: calc(60px + (var(--mc-scheduler-day-count) * var(--mc-scheduler-day-min-width)));
    --mc-scheduler-border: #e0e0e0;
    --mc-scheduler-muted: #888;
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--mc-scheduler-bg, #fff);
    color: var(--mc-scheduler-color, #222);
    border: 1px solid var(--mc-scheduler-border);
    border-radius: 4px;
    overflow: hidden;
    font-family: inherit;
}

.myscheduler-scroll[b-36vy30za12] {
    flex: 1 1 auto;
    width: 100%;
    overflow: auto;
    overscroll-behavior-x: contain;
    touch-action: pan-x pan-y;
    position: relative;
}

.myscheduler-sticky-top[b-36vy30za12] {
    position: sticky;
    top: 0;
    z-index: 6;
}

.myscheduler-grid[b-36vy30za12] {
    display: grid;
    width: 100%;
    min-width: var(--mc-scheduler-grid-min-width);
    grid-template-columns: 60px repeat(var(--mc-scheduler-day-count), minmax(var(--mc-scheduler-day-min-width), 1fr));
    height: var(--mc-scheduler-grid-height);
    position: relative;
}

.day-column[b-36vy30za12] {
    position: relative;
    border-left: 1px solid var(--mc-scheduler-border);
}

.day-column.today[b-36vy30za12] {
    background: rgba(255, 235, 150, 0.18);
}

.grid-slot[b-36vy30za12] {
    position: absolute;
    left: 0;
    right: 0;
    border-top: 1px solid var(--mc-scheduler-border);
    pointer-events: none;
}

.grid-slot.sub-slot[b-36vy30za12] {
    border-top-style: dotted;
    opacity: 0.5;
}

.resource-sub-column[b-36vy30za12] {
    position: absolute;
    top: 0;
    bottom: 0;
    border-left: 1px dashed var(--mc-scheduler-border);
}

.now-indicator[b-36vy30za12] {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: #ff5252;
    z-index: 4;
    pointer-events: none;
}

.now-indicator[b-36vy30za12]::before {
    content: "";
    position: absolute;
    left: -4px;
    top: -3px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ff5252;
}

.overflow-pill[b-36vy30za12] {
    position: absolute;
    bottom: 2px;
    right: 4px;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 10px;
    padding: 1px 6px;
    border-radius: 8px;
    z-index: 6;
    cursor: pointer;
}

[data-bs-theme="dark"] .myscheduler-week[b-36vy30za12] {
    --mc-scheduler-bg: #181818;
    --mc-scheduler-color: #e0e0e0;
    --mc-scheduler-border: #333;
    --mc-scheduler-muted: #999;
}

[data-bs-theme="dark"] .day-column.today[b-36vy30za12] {
    background: rgba(255, 235, 150, 0.06);
}
/* /Pages/Scheduling/Components/TaskBasicFilters.razor.rz.scp.css */
.task-basic-filters[b-79vl3pewpz] {
    align-items: center;
    gap: 0.45rem;
}

.task-basic-filters[b-79vl3pewpz]  .task-filter-pill {
    min-height: 1.9rem;
    padding: 0 0.55rem;
    border-radius: 0.7rem;
    border-color: transparent;
    background: transparent;
    color: var(--bs-secondary-color);
    box-shadow: none;
}

.task-basic-filters[b-79vl3pewpz]  .task-filter-pill.compact {
    min-width: auto;
    width: auto;
    height: 1.9rem;
    padding: 0 0.55rem;
}

.task-basic-filters[b-79vl3pewpz]  .task-filter-pill.compact.btn-primary {
    background: color-mix(in srgb, var(--bs-primary) 14%, transparent);
    color: var(--bs-primary);
}

.task-basic-filters[b-79vl3pewpz]  .task-filter-pill.compact.btn-outline-primary:hover {
    background: color-mix(in srgb, var(--bs-body-color) 6%, transparent);
    color: var(--bs-body-color);
}

.task-filter-icon-wrap[b-79vl3pewpz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-width: 0;
    font-size: 0.9rem;
}

.task-filter-count[b-79vl3pewpz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1rem;
    height: 1rem;
    padding: 0;
    border: none;
    background: transparent;
    color: currentColor;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1;
    opacity: 0.85;
}

@media (max-width: 768px) {
    .task-basic-filters[b-79vl3pewpz] {
        gap: 0.35rem;
    }

    .task-basic-filters[b-79vl3pewpz]  .task-filter-pill {
        padding: 0 0.45rem;
    }

    .task-basic-filters[b-79vl3pewpz]  .task-filter-pill.compact {
        height: 1.8rem;
        padding: 0 0.45rem;
    }
}
/* /Pages/Scheduling/Components/TaskComments.razor.rz.scp.css */
.task-comments[b-x44vu90byl] {
    width: 100%;
}

.task-comment-item[b-x44vu90byl] {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}

.task-comment-avatar[b-x44vu90byl] {
    flex-shrink: 0;
}

.task-comment-author[b-x44vu90byl] {
    font-weight: 600;
}

.task-comment-time[b-x44vu90byl] {
    font-size: 0.75rem;
}

.task-comment-text[b-x44vu90byl] {
    white-space: pre-wrap;
}
/* /Pages/Scheduling/Components/TasksList.razor.rz.scp.css */
/* TasksList styly */
.tasks-list[b-k7770ixqaj] {
    /* Wrapper pro seznam úkolů */
}

/* Task Groups */
.task-group[b-k7770ixqaj] {
    margin-bottom: 1.5rem;
}

.task-group-header[b-k7770ixqaj] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--bs-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.5rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--bs-border-color);
}

/* Empty state */
.tasks-list .text-center[b-k7770ixqaj] {
    color: var(--bs-text-muted);
}
/* /Pages/Scheduling/EventEdit.razor.rz.scp.css */
[b-e2wn7pxqc4] .label-icon {
  width: 30px;
  font-size: 1.2em;
}

.event-type-tabs[b-e2wn7pxqc4] {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.event-type-tabs label[b-e2wn7pxqc4] {
  cursor: pointer;
  padding: 0.5rem 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.25s ease;
  border-radius: 0.25rem;
}
.event-type-tabs label:hover[b-e2wn7pxqc4] {
  color: var(--bs-primary);
}
.event-type-tabs .underline[b-e2wn7pxqc4] {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 50%;
  height: 2px;
  background: var(--bs-primary);
  transition: transform 250ms cubic-bezier(0.2, 0.8, 0.2, 1);
  transform: translateX(0%);
}
.event-type-tabs.active-first .underline[b-e2wn7pxqc4] {
  transform: translateX(0%);
}
.event-type-tabs.active-second .underline[b-e2wn7pxqc4] {
  transform: translateX(100%);
}

.comments-toggle[b-e2wn7pxqc4] {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 1.5rem;
  font-weight: 600;
  color: inherit;
  text-decoration: none;
}

.comments-toggle-count-badge[b-e2wn7pxqc4] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.38rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1;
}

/*# sourceMappingURL=EventEdit.razor.css.map */
/* /Pages/Scheduling/EventPreview.razor.rz.scp.css */
.label[b-fiql4ybrq7] {
  font-size: small;
  opacity: 0.5;
}

.status-chip[b-fiql4ybrq7] {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
  border: 1px solid rgba(0, 0, 0, 0.1);
}
.status-chip.pending[b-fiql4ybrq7] {
  background: #fff8e1;
  color: #8a6d3b;
  border-color: #f5e79e;
}
.status-chip.completed[b-fiql4ybrq7] {
  background: #e8f5e9;
  color: #2e7d32;
  border-color: #a5d6a7;
}
.status-chip.allday[b-fiql4ybrq7] {
  background: #e3f2fd;
  color: #1565c0;
  border-color: #90caf9;
}
.status-chip.test[b-fiql4ybrq7] {
  background: #fff3cd;
  color: #856404;
  border-color: #ffe69c;
}

.task-completed[b-fiql4ybrq7] {
  text-decoration: line-through;
  opacity: 0.75;
}

/* Nadpis a akční tlačítka vedle sebe; na úzkém displeji se akce zalomí pod nadpis,
   protože dlouhý název jinak vytlačoval ikonu koše mimo viditelnou plochu. */
.preview-titlebar[b-fiql4ybrq7] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.preview-titlebar h1[b-fiql4ybrq7] {
  /* Zabrání tomu, aby dlouhý název roztlačil řádek do přetečení. */
  min-width: 0;
  overflow-wrap: anywhere;
}

.preview-actions[b-fiql4ybrq7] {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* Dvojice label+hodnota drží pohromadě; zalomí se vždy celá, nikdy uprostřed. */
.preview-time-pair[b-fiql4ybrq7] {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  white-space: nowrap;
}

.preview-timerange[b-fiql4ybrq7] {
  flex-wrap: wrap;
  column-gap: 1rem;
  row-gap: 0.25rem;
}

@media (max-width: 576px) {
  .preview-titlebar h1[b-fiql4ybrq7] {
    /* Výchozích ~30 px je na 375px displeji příliš; menší nadpis uvolní místo akcím. */
    font-size: 1.5rem;
  }

  /* Na mobilu se akce zarovnají doleva pod nadpis, aby nezůstaly viset u okraje. */
  .preview-actions[b-fiql4ybrq7] {
    width: 100%;
    justify-content: flex-start;
  }
}
/* /Pages/Scheduling/GoogleCalendarPickerPage.razor.rz.scp.css */
.calendar-option[b-vxu0scnden] {
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    padding: 12px 16px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.calendar-option:hover[b-vxu0scnden] {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.calendar-option.selected[b-vxu0scnden] {
    border-color: var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

/* /Pages/Scheduling/SchedulerFilter.razor.rz.scp.css */
/*:root { --tag-color: transparent; }*/

.scheduler-filter[b-x0jvly9j5f] { }
.scheduler-filter .filter-badge[b-x0jvly9j5f] {
    /* Základní vzhled badge */
    padding: 4px 10px;
    font-size: 12px;
    border-radius: 30px;
    background: var(--bs-secondary-bg);
    color: var(--bs-body-color);
    cursor: pointer;
    user-select: none;
    /*border: 1px solid var(--bs-border-color);*/
    opacity: 0.85;
    transition: all .15s ease-in-out;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    position: relative; /* pro pseudo-element proužku */
    overflow: hidden; /* aby proužek nepřetékal u zaoblení */
    /* výchozí hodnota custom property pro barevný proužek, aby nehlásil linter chybu */
    --tag-color: transparent;
}
.scheduler-filter .filter-badge.auto[b-x0jvly9j5f] {
    /* Auto tagy (z názvů entit) lehce odlišeny dashed border */
    /*border-style: dashed;*/
}
.scheduler-filter .filter-badge.user[b-x0jvly9j5f] {
    font-weight: 500;
}
/* Aktivní tag BEZ barvy (nemá has-color) dostane plné podbarvení primární barvou */
.scheduler-filter .filter-badge:not(.has-color).active[b-x0jvly9j5f] {
    opacity: 1;
    background: var(--bs-primary);
    color: var(--bs-white);
    /*border-color: var(--bs-primary);*/
    /*box-shadow: 0 0 0 1px var(--bs-primary);*/
}
/* Aktivní tag S barvou (has-color) má stejný vzhled jako aktivní bez barvy; proužek zůstává podle barvy labelu */
.scheduler-filter .filter-badge.has-color.active[b-x0jvly9j5f] {
    opacity: 1;
    background: var(--bs-primary);
    color: var(--bs-white);
    /*border-color: var(--bs-primary);*/
    /*box-shadow: 0 0 0 1px var(--bs-primary);*/
}
/* Barevné tagy: barva je použita JEN na spodní proužek, nikde jinde. Aktivní i neaktivní vypadají stejně kromě standardního active vzhledu. */
.scheduler-filter .filter-badge.has-color[b-x0jvly9j5f] {
    /* žádná změna background / textu / borderu; vše zůstává neutrální */
}
.scheduler-filter .filter-badge.has-color[b-x0jvly9j5f]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px; /* jednotná výška barevného proužku */
    background: var(--tag-color, transparent); /* barva přichází z inline stylu --tag-color */
}
.scheduler-filter .filter-badge:hover[b-x0jvly9j5f] {
    opacity: 1;
    /*transform: translateY(-2px);*/
}
.scheduler-filter .active-tags[b-x0jvly9j5f] {
    font-style: italic;
}

/* Počítadlo u badge – malé a nenápadné */
.scheduler-filter .filter-badge .count[b-x0jvly9j5f] {
    font-size: 10px;          /* malé písmo */
    line-height: 1;           /* kompaktní */
    opacity: .7;              /* opticky lehčí */
    margin-left: 2px;         /* drobný rozestup od názvu */
}
/* /Pages/Scheduling/SchedulerPage.razor.rz.scp.css */
@charset "UTF-8";

.scheduler-split-view[b-hm4fn9qguf] {
  min-height: 540px;
}

.scheduler-main-pane[b-hm4fn9qguf] {
  height: 100%;
}

.scheduler-surface[b-hm4fn9qguf] {
  position: relative;
}

.scheduler-main-pane[b-hm4fn9qguf]  .myscheduler-root {
  height: 100%;
}

.scheduler-empty-state[b-hm4fn9qguf] {
  position: absolute;
  inset: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-body-bg-rgb), 0.86);
  backdrop-filter: blur(3px);
  border: 1px dashed rgba(var(--bs-body-color-rgb), 0.12);
  border-radius: 1rem;
  pointer-events: none;
}

.scheduler-empty-state[b-hm4fn9qguf]  .app-empty-state {
  min-height: 0;
}

.scheduler-empty-state[b-hm4fn9qguf]  .btn {
  pointer-events: auto;
}

.scheduler-split-right[b-hm4fn9qguf] {
  height: 100%;
  padding-left: 2px !important;
}

.scheduler-split-right[b-hm4fn9qguf]  .tasks-panel {
  border-left: 1px solid var(--bs-border-color);
}

@media (max-width: 767.98px) {
  .scheduler-page[b-hm4fn9qguf] {
    overflow-x: hidden;
  }

  .scheduler-mobile-actions[b-hm4fn9qguf] {
    padding-block: 0.75rem;
  }

  .scheduler-mobile-actions[b-hm4fn9qguf]  .scheduler-mobile-action {
    min-height: 44px;
    padding: 0.5rem 0.75rem;
    display: inline-flex;
    align-items: center;
  }

  .range-label-mobile[b-hm4fn9qguf] {
    font-size: 0.8rem;
    opacity: 0.75;
    white-space: nowrap;
  }

  .scheduler-empty-state[b-hm4fn9qguf] {
    inset: .5rem;
  }

  .scheduler-page[b-hm4fn9qguf]  .myscheduler-root {
    max-width: 100%;
  }
}

/*# sourceMappingURL=SchedulerPage.razor.css.map */
/* /Pages/Scheduling/TaskItem.razor.rz.scp.css */
/* TaskItem styly */
.task-item[b-5x1fxmohqq] {
    padding: 0.8rem 0.35rem 0.8rem 0;
    margin-bottom: 0.35rem;
    background: var(--bs-body-bg);
    transition: all 0.2s ease;
}

.task-item + .task-item[b-5x1fxmohqq] {
    margin-top: 0.2rem;
    padding-top: 1rem;
}

[data-bs-theme="light"] .task-item + .task-item[b-5x1fxmohqq] {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

[data-bs-theme="dark"] .task-item + .task-item[b-5x1fxmohqq] {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.task-item:hover[b-5x1fxmohqq] {
    background: var(--bs-light);
}

[data-bs-theme="dark"] .task-item:hover[b-5x1fxmohqq] {
    background: #131313;
}

.task-row[b-5x1fxmohqq] {
    width: 100%;
}

.task-item.completed[b-5x1fxmohqq] {
    opacity: 0.6;
}

.task-item.completed .task-title[b-5x1fxmohqq] {
    text-decoration: line-through;
    color: var(--bs-secondary);
}

.task-checkbox[b-5x1fxmohqq] {
    flex-shrink: 0;
    width: 2rem;
    padding-top: 0.15rem;
}

.task-checkbox[b-5x1fxmohqq]  .task-toggle-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border-radius: 999px;
    color: var(--bs-secondary);
    font-size: 1.22rem;
    text-decoration: none;
    background: transparent;
}

.task-checkbox[b-5x1fxmohqq]  .task-toggle-button:hover {
    color: var(--bs-primary);
    background: color-mix(in srgb, var(--bs-primary) 10%, transparent);
}

.task-content[b-5x1fxmohqq] {
    min-width: 0;
}

.task-title[b-5x1fxmohqq] {
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.2;
    word-wrap: break-word;
    cursor: pointer;
}

.task-header-row[b-5x1fxmohqq] {
    row-gap: 0.45rem;
}

.task-item[b-5x1fxmohqq]  .task-header-meta {
    color: var(--bs-secondary);
    opacity: 0;
    transform: translateX(0.15rem);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.task-item[b-5x1fxmohqq]  .task-inline-actions {
    margin-left: auto;
    opacity: 0;
    transform: translateX(0.15rem);
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.task-item:hover[b-5x1fxmohqq]  .task-header-meta,
.task-item:focus-within[b-5x1fxmohqq]  .task-header-meta,
.task-item:hover[b-5x1fxmohqq]  .task-inline-actions,
.task-item:focus-within[b-5x1fxmohqq]  .task-inline-actions {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
}

.task-item[b-5x1fxmohqq]  .task-inline-actions .btn-link {
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.task-note[b-5x1fxmohqq] {
    margin-bottom: 0.5rem;
    font-size: 0.875rem;
}

.task-metadata[b-5x1fxmohqq] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0;
}

/* Skryje metadata pokud je prázdné */
.task-metadata:empty[b-5x1fxmohqq] {
    display: none;
}

.task-meta-item[b-5x1fxmohqq] {
    font-size: 0.8rem;
    color: var(--bs-secondary);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.task-meta-item i[b-5x1fxmohqq] {
    font-size: 0.95rem;
}

.task-meta-link[b-5x1fxmohqq] {
    font-size: 0.8rem;
    color: var(--bs-secondary);
    text-decoration: none;
}

.task-meta-link:hover[b-5x1fxmohqq] {
    color: var(--bs-primary);
}

.task-comments-inline[b-5x1fxmohqq] {
    margin-left: 2.75rem;
    margin-top: 0.35rem;
    padding: 0.85rem 0 0.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.task-comments-loading[b-5x1fxmohqq] {
    font-size: 0.85rem;
}

[b-5x1fxmohqq] .labels-empty{
    opacity:0;
}

.task-item:hover[b-5x1fxmohqq]  .labels-empty {
    opacity: 1;
}

.task-pill[b-5x1fxmohqq] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.15rem 0.6rem;
    font-size: 0.72rem;
    font-weight: 600;
    background: rgba(255,255,255,0.06);
}

.task-pill.status[b-5x1fxmohqq] {
    color: var(--bs-info);
}

.task-pill.priority-0[b-5x1fxmohqq] {
    color: var(--bs-secondary);
}

.task-pill.priority-1[b-5x1fxmohqq] {
    color: var(--bs-primary);
}

.task-pill.priority-2[b-5x1fxmohqq] {
    color: #d97706;
}

.task-pill.priority-3[b-5x1fxmohqq] {
    color: var(--bs-danger);
}

.task-pill.overdue[b-5x1fxmohqq] {
    color: var(--bs-danger);
    background: rgba(220, 53, 69, 0.12);
}

@media (max-width: 768px) {
    .task-item[b-5x1fxmohqq]  .task-inline-actions {
        width: 100%;
        margin-left: 0;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .task-item[b-5x1fxmohqq]  .task-header-meta {
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }
}
/* /Pages/Scheduling/TasksPage.razor.rz.scp.css */
/* TasksPage Styles */

.tasks-page-container[b-snfa2md2f5] {
    max-width: 980px;
    margin: 0;
    padding: 1rem 1.25rem 1rem 0;
}

.quick-add-section .card:hover[b-snfa2md2f5] {
    border-color: var(--bs-primary);
}

.quick-add-section[b-snfa2md2f5],
.tasks-list-section[b-snfa2md2f5] {
    max-width: 920px;
}

.quick-add-section[b-snfa2md2f5]  .tasks-quick-input {
    width: 28rem;
    max-width: min(100%, 28rem);
}

.quick-add-section[b-snfa2md2f5]  .tasks-quick-button {
    min-width: 8.25rem;
}

.tasks-basic-filters[b-snfa2md2f5] {
    max-width: 920px;
    padding: 0.25rem 0 1rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.tasks-list-section[b-snfa2md2f5] {
    min-height: 400px;
}

.task-group[b-snfa2md2f5] {
    margin-bottom: 1.5rem;
}

.task-group-header[b-snfa2md2f5] {
    font-weight: 600;
    font-size: 1rem;
    color: var(--bs-secondary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--bs-border-color);
}

/* TaskItem v list-group má mírně jiné styly než v panelu */
.task-group .task-item[b-snfa2md2f5] {
    padding: 1rem 0.25rem 1rem 0;
    border: none;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    cursor: pointer;
    transition: all 0.2s ease;
}

.task-group .task-item:last-child[b-snfa2md2f5] {
    border-bottom: none;
}

.task-group .task-item:hover[b-snfa2md2f5] {
    background: var(--bs-light);
}

/* Responzivní úpravy */
@media (max-width: 768px) {
    .tasks-page-container[b-snfa2md2f5] {
        padding: 0.5rem;
    }

    .quick-add-section[b-snfa2md2f5]  .tasks-quick-input {
        width: 100%;
        max-width: 100%;
    }
    
    .task-group-header[b-snfa2md2f5] {
        font-size: 0.875rem;
    }
}
/* /Pages/Scheduling/TasksPanel.razor.rz.scp.css */
/* Tasks Panel Styles */
.tasks-panel[b-u3qju554qc] {
    position: fixed;
    top: 60px;
    right: -400px;
    width: 400px;
    height: calc(100vh - 60px);
    background: var(--bs-body-bg);
    border-left: 1px solid var(--bs-border-color);
    box-shadow: -2px 0 10px rgba(0, 0, 0, 0.1);
    transition: right 0.3s ease;
    z-index: 2;
    display: flex;
    flex-direction: column;
}

.tasks-panel.embedded[b-u3qju554qc] {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    height: 100%;
    border-left: 0;
    box-shadow: none;
    transition: none;
}

.tasks-panel.embedded .tasks-header[b-u3qju554qc] {
    padding-left: 0.5rem;
}

.tasks-panel.embedded .tasks-content[b-u3qju554qc] {
    padding-left: 0.5rem;
}

.tasks-panel.visible[b-u3qju554qc] {
    right: 0;
}

.tasks-header[b-u3qju554qc] {
    padding: 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
}

.tasks-header .btn-link[b-u3qju554qc] {
    color: var(--bs-body-color);
    padding: 0.25rem 0.5rem;
    opacity: 0.7;
    transition: opacity 0.2s ease;
}

.tasks-header .btn-link:hover[b-u3qju554qc] {
    opacity: 1;
}

.tasks-content[b-u3qju554qc] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
}

.quick-add-task[b-u3qju554qc] {
    position: sticky;
    top: 0;
    background: var(--bs-body-bg);
    z-index: 10;
    padding-bottom: 0.5rem;
}

@media (max-width: 768px) {
    .tasks-panel[b-u3qju554qc] {
        width: 100%;
        right: -100%;
    }
}
/* /Pages/Studio/Components/StudioImageComponent.razor.rz.scp.css */
.studio-image-container[b-d2iyzyz1m1] {
    cursor: pointer;
}

.studio-image-container:hover .studio-image[b-d2iyzyz1m1] {
    opacity: 0.8;
    transition: opacity 0.3s ease;
}

.no-image-placeholder[b-d2iyzyz1m1] {
    color: black;
    background: rgba(218, 218, 218, 0.53);
}

.studio-image-container:hover .no-image-placeholder[b-d2iyzyz1m1] {
    background-color: #eaeaea !important;
    transition: all 0.3s ease;
}

.studio-image-container:hover .fa-times[b-d2iyzyz1m1] {
    opacity: 1 !important;
}

.delete-image-icon[b-d2iyzyz1m1] {
    position: absolute;
    top: 10px;
    right: 10px;
    color: white;
    background: rgba(0,0,0,0.3);
    border-radius: 50%;
    padding: 4px 8px;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: 10;
}

.studio-hero[b-d2iyzyz1m1] {
    position: relative;
    min-height: 450px;
    height: auto;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
    margin-top: -2rem;
    margin-left: -1rem;
    margin-right: -1rem;
}

.studio-hero-name[b-d2iyzyz1m1] {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    line-height: 1;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    letter-spacing: -0.1rem;
    text-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, .6);
    color: white;
}

.studio-hero-description[b-d2iyzyz1m1] {
    max-width: 800px;
    font-size: 1.1rem;
    color: white;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

@media (min-width: 768px) {
    .studio-hero[b-d2iyzyz1m1] {
        margin-left: -1.5rem;
        margin-right: -1.5rem;
    }
}

.hero-overlay[b-d2iyzyz1m1] {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, var(--bs-body-bg) 0%, rgba(0, 0, 0, 0.2) 50%, rgba(0, 0, 0, 0.4) 100%);
    pointer-events: none;
}

.hero-content[b-d2iyzyz1m1] {
    position: relative;
    z-index: 2;
    padding: 0 1rem 2rem 1rem;
}

.hero-actions[b-d2iyzyz1m1] {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 10;
    color: white;
    background: rgba(0, 0, 0, 0.35);
    padding: 6px 14px;
    border-radius: 99px;
    opacity: 0;
    transition: opacity 0.3s;
    display: flex;
    align-items: center;
    gap: 4px;
    pointer-events: auto;
}

.studio-hero:hover .hero-actions[b-d2iyzyz1m1] {
    opacity: 1;
}

.hero-actions i[b-d2iyzyz1m1] {
    cursor: pointer;
}

.hero-upload-input[b-d2iyzyz1m1] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 5;
}

.hero-content[b-d2iyzyz1m1] {
    pointer-events: auto;
    z-index: 6;
}

.hero-placeholder-mode[b-d2iyzyz1m1] {
    border-radius: 12px;
    overflow: hidden;
}
/* /Pages/Studio/Courses/CoursesPage.razor.rz.scp.css */
/* Inline rozbalený detail kurzů - podpora světlého a tmavého režimu */

.course-option-box[b-ynzcbbppoi] {
    background: #f8f9fa;
}

.course-registration-box[b-ynzcbbppoi] {
    background: #fcfcfc;
}

.course-participant-box[b-ynzcbbppoi] {
    background: #fcfcfc;
}

/* Tmavý režim */
[data-bs-theme="dark"] .course-option-box[b-ynzcbbppoi] {
    background: var(--bs-tertiary-bg);
}

[data-bs-theme="dark"] .course-registration-box[b-ynzcbbppoi] {
    background: var(--bs-secondary-bg);
}

[data-bs-theme="dark"] .course-participant-box[b-ynzcbbppoi] {
    background: var(--bs-body-bg);
}

/* /Pages/Studio/CreateWorkspaceDialog.razor.rz.scp.css */
.create-workspace-dialog[b-gglynqjthd] {
  min-width: 360px;
}

/*# sourceMappingURL=CreateWorkspaceDialog.razor.css.map */
/* /Pages/Studio/Equipment/EquipmentImageUpload.razor.rz.scp.css */
.equipment-image-upload[b-nzhvt5axuh] {
    min-width: 72px;
}

.equipment-image-dropzone[b-nzhvt5axuh] {
    position: relative;
    width: 56px;
    height: 56px;
    border: 1px dashed var(--bs-border-color);
    border-radius: 10px;
    background: var(--bs-secondary-bg);
    overflow: hidden;
    transition: border-color .15s ease, background-color .15s ease;
}

.equipment-image-dropzone.drag-over[b-nzhvt5axuh] {
    border-color: var(--bs-primary);
    background: color-mix(in srgb, var(--bs-primary) 10%, var(--bs-secondary-bg));
}

.equipment-image-thumb[b-nzhvt5axuh] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.equipment-image-empty[b-nzhvt5axuh] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    gap: 2px;
}

.equipment-image-empty-text[b-nzhvt5axuh] {
    font-size: 8px;
    opacity: .8;
    line-height: 1;
    text-align: center;
    padding: 0 3px;
}

/* InputFile je vnořená komponenta, takže její <input> nese vlastní scope atribut a ne ten náš.
   Bez ::deep by scoped CSS pravidlo tiše propadlo, input by zůstal viditelný a nepřekrýval by
   dropzone - tím by přestal fungovat jak klik, tak nativní drop souboru na ikonku. */
[b-nzhvt5axuh] .equipment-image-input {
    position: absolute;
    /* Záporný inset překryje i 1px dashed rámeček dropzóny - jinak by drop přesně na okraj ikonky
       minul input a soubor by se zahodil. */
    inset: -1px;
    width: auto;
    height: auto;
    opacity: 0;
    cursor: pointer;
}

.equipment-image-status[b-nzhvt5axuh] {
    font-size: 12px;
    color: var(--bs-secondary-color);
    display: flex;
    align-items: center;
    gap: 6px;
    padding-left: 2px;
}
/* /Pages/Studio/LatestChanges.razor.rz.scp.css */
.vertical-timeline[b-8kzn1g4pil] {
  width: 100%;
  position: relative;
  padding: 1.5rem 0 1rem;
}

.vertical-timeline[b-8kzn1g4pil]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 5px;
  height: 100%;
  width: 4px;
  background-color: rgba(129, 129, 129, 0.29);
  border-radius: 0.25rem;
}

.vertical-timeline-element[b-8kzn1g4pil] {
  position: relative;
  margin: 0 0 1rem;
}

.vertical-timeline-element-icon[b-8kzn1g4pil] {
  position: absolute;
  top: 12px;
  left: -6px;
  background: var(--bs-body-bg);
  padding: 5px;
}

.vertical-timeline-element-icon .badge-dot-xl[b-8kzn1g4pil] {
  box-shadow: 0 0 0 5px #fff;
}

.circle[b-8kzn1g4pil] {
  font-size: 1.2em;
  position: relative;
  color: #515151;
}
[data-bs-theme=dark] .circle[b-8kzn1g4pil] {
  color: #dfdfdf;
}

.badge:empty[b-8kzn1g4pil] {
  display: none;
}

.vertical-timeline-element-content[b-8kzn1g4pil] {
  position: relative;
  margin-left: 30px;
  font-size: 0.8rem;
}

.vertical-timeline-element-content .timeline-title[b-8kzn1g4pil] {
  font-size: 0.8rem;
  text-transform: uppercase;
  margin: 0 0 0.5rem;
  padding: 2px 0 0;
  font-weight: bold;
}

.vertical-timeline-element-content[b-8kzn1g4pil]:after {
  content: "";
  display: table;
  clear: both;
}

/*# sourceMappingURL=LatestChanges.razor.css.map */
/* /Pages/Studio/NoStudioAssignedPage.razor.rz.scp.css */
.no-workspace-page[b-4k0n5hsizk] {
    min-height: calc(100dvh - 140px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.no-workspace-state[b-4k0n5hsizk] {
    max-width: 720px;
    margin: 0 auto;
    padding: 1rem;
}

.no-workspace-state h1[b-4k0n5hsizk] {
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 600;
    line-height: 1.1;
}

.no-workspace-state p[b-4k0n5hsizk] {
    max-width: 520px;
    font-size: 1.15rem;
}
/* /Pages/Studio/Profile/Components/BandsSection.razor.rz.scp.css */
/* Bands section styles */

.section-title[b-mwhyvmdxp8] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* BANDS */
/* Kontejner kapel jako flex s gap — nahradí použití Bootstrap .row/.col */
.bands-row[b-mwhyvmdxp8] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem; /* mezera mezi dlaždicemi */
    align-items: flex-start;
}

/* Každá položka obalí poměrnou šířku (na mobilu 100%, na tabletu/desktope 50%).
   Vnitřek je centrován, tím lze mít menší dlaždici uvnitř položky. */
.band-item[b-mwhyvmdxp8] {
    flex: 1 1 100%;
    display: flex; /* umožní vertikální/horizontální centrování obsahu */
    justify-content: center;
}

@media (min-width: 768px) {
    /* odpovídá chování `col-md-6` — dvě položky vedle sebe */
    .band-item[b-mwhyvmdxp8] {
        flex: 0 0 calc(50% - 0.5rem); /* bereme v úvahu gap (1rem) */
    }
}

/* Dlaždice samotné: zmenšené (2/3 rodiče) a centrum v rámci .band-item */
.band-card[b-mwhyvmdxp8] {
    background: var(--public-bg-card, #15151A);
    border-radius: 0.75rem;
    overflow: hidden;
    cursor: pointer;
    width: 350px;
    height: 250px;
}

.band-card img[b-mwhyvmdxp8] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s;
}

.band-card:hover img[b-mwhyvmdxp8] {
    transform: scale(1.04);
}

.band-caption[b-mwhyvmdxp8] {
    position: absolute;
    bottom: 0;
    left: 0;
    top: auto !important;
    right: 0;
    height: auto !important;
    text-align: center;
    padding: 1.75rem 1rem;
    background: rgba(10, 10, 14, 0.78);
    color: var(--public-text, #fff);
    font-weight: 600;
    font-size: 1.2rem;
    line-height: 1.2;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
}


/* Karta kapely je <button>, ne <a href> – viz GallerySection. Reset nativního vzhledu
   tlačítka, aby zůstal vzhled karty definovaný v .band-card. */
.band-card-trigger[b-mwhyvmdxp8] {
    padding: 0;
    border: 0;
    background: none;
    width: 100%;
    text-align: inherit;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
/* /Pages/Studio/Profile/Components/ContactSection.razor.rz.scp.css */
/* Contact section styles */

.section-title[b-0rlcxr17w9] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* CONTACT FOOTER (full-width, vertikální) */
.contact-footer[b-0rlcxr17w9] {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.0));
    border-top: 1px solid rgba(255, 255, 255, 0.03);
    padding: 2rem 0 3rem 0;
}

.contact-footer-container[b-0rlcxr17w9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding: 2rem 1.5rem;
    box-sizing: border-box;
}

.contact-footer .section-title[b-0rlcxr17w9] {
    width: 100%;
    text-align: center;
    margin-bottom: .75rem;
}

.contact-footer-text[b-0rlcxr17w9],
.contact-footer p[b-0rlcxr17w9] {
    text-align: center;
    max-width: 60rem;
}

/* Spacer je flex prvek, který vytlačí telefon na úplné dno sekce */
.footer-spacer[b-0rlcxr17w9] {
    flex: 1 1 auto;
    min-height: 0;
}

.contact-footer-phone-wrap[b-0rlcxr17w9] {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
}

.contact-phone-footer[b-0rlcxr17w9] {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    font-weight: 900;
    color: var(--public-text, #ffffff);
    text-decoration: none;
    background: rgba(255, 255, 255, 0.02);
    padding: .5rem 1rem;
    border-radius: .5rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
    transition: transform .12s ease, box-shadow .12s;
    line-height: 1;
    font-size: clamp(1rem, 6.5vw, 3.2rem);
}

.contact-phone-footer:hover[b-0rlcxr17w9],
.contact-phone-footer:focus[b-0rlcxr17w9] {
    transform: translateY(-6px);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.6);
}

.contact-phone-footer i[b-0rlcxr17w9] {
    font-size: .8em;
    opacity: .95;
}

/* CTA tlačítka pod telefonem, svisle rozložené na úzkých obrazovkách */
.contact-footer-cta[b-0rlcxr17w9] {
    margin-top: 1rem;
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    justify-content: center;
}

@media (max-width: 575.98px) {
    .contact-footer-container[b-0rlcxr17w9] {
        padding: 1.25rem;
    }

    .contact-phone-footer[b-0rlcxr17w9] {
        padding: .4rem .8rem;
    }

    .contact-footer-cta .btn[b-0rlcxr17w9] {
        width: 100%;
    }
}
/* /Pages/Studio/Profile/Components/CoursesSection.razor.rz.scp.css */
/* CoursesSection – scoped CSS */

/* Kontejner pro zachování stejné výšky všech karet ve flexboxu */
.course-wrapper[b-mwbdylh7hs] {
    flex: 1 1 260px;
    min-width: 240px;
    max-width: 400px; /* Aby karta nebyla na širokém monitoru příliš roztáhnutá */
    display: flex;
}

/* Samotná karta kurzu */
.studio-course-card[b-mwbdylh7hs] {
    display: flex;
    flex-direction: column;
    width: 100%;
    border-radius: 12px;
    background-color: var(--public-bg-card, #15151A);
    border: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
    overflow: hidden;
}

/* Hover efekt */
.course-card-link:hover .studio-course-card[b-mwbdylh7hs] {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4);
    border-color: var(--public-border-hover, rgba(255, 255, 255, 0.10));
}

/* Oříznutí nadpisu na max 2 řádky (aby karty neposkakovaly) */
.course-title[b-mwbdylh7hs] {
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin-bottom: 0;
}

/* Obrázek */
.course-image-container[b-mwbdylh7hs] {
    position: relative;
    width: 100%;
    height: 160px;
    border-radius: 8px;
    overflow: hidden;
}

.course-thumb[b-mwbdylh7hs] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

/* Jemný zoom obrázku při najetí na kartu */
.course-card-link:hover .course-thumb[b-mwbdylh7hs] {
    transform: scale(1.03);
}

/* Oříznutí popisku na max 3 řádky */
.course-desc[b-mwbdylh7hs] {
    font-size: 0.9rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* /Pages/Studio/Profile/Components/EquipmentSection.razor.rz.scp.css */
/* Equipment section styles */

.section-title[b-x0essvz5rp] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* GEAR */
.gear-item[b-x0essvz5rp] {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
    padding: 0.75rem 0;
    /* v2 vypisuje --public-text-soft, v1 --public-text-muted; modul je sdílený oběma. */
    color: var(--public-text-soft, var(--public-text-muted, #b3b3b3));
}

.gear-item span:first-child[b-x0essvz5rp] {
    color: var(--public-text, #ffffff);
}

.gear-item-main[b-x0essvz5rp] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gear-item-thumb[b-x0essvz5rp] {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.2);
}
/* /Pages/Studio/Profile/Components/FeaturedWorksSection.razor.rz.scp.css */
/* Featured works section styles */

.section-title[b-715ez9qirg] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* TRACK CONTAINER - obsahuje track header a player row */
.track-container[b-715ez9qirg] {
    border-radius: 0.5rem;
    transition: all 0.3s ease;
    padding: 1.25rem;
    margin-bottom: 0.5rem;
}

.track-container:hover[b-715ez9qirg] {
    /*background: rgba(255, 255, 255, .05);*/
}

.track-container.active[b-715ez9qirg] {
    /*background: rgba(29, 185, 84, .05);*/
}

/* TRACK HEADER - horní řádek s texty */
.track-header[b-715ez9qirg] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.track-title-section[b-715ez9qirg] {
    flex: 1;
    min-width: 0;
}

.track-title[b-715ez9qirg] {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--public-text, #fff);
    margin-bottom: 0.25rem;
}

.track-container.active .track-title[b-715ez9qirg] {
    color: var(--public-accent, #D4A574);
}

/* Pořadí proměnných řeší souběh dvou generací stylů: v2 vypisuje --public-text-soft
   (PublicStudioDesignStyleBuilder.BuildCssVariables), v1 --public-text-muted. Tenhle modul
   je sdílený oběma renderery, takže na v2 stránce v1 proměnná neexistuje a bez záložního
   řetězce spadl text na literál pro tmavé pozadí – na světlém stylu bílá na bílé. */
.track-meta-text[b-715ez9qirg] {
    margin: 0;
    font-size: 0.95rem;
    color: var(--public-text-soft, var(--public-text-muted, rgba(255,255,255,0.65)));
}

.track-duration[b-715ez9qirg] {
    flex-shrink: 0;
    font-size: 1rem;
    color: var(--public-text-soft, var(--public-text-muted, rgba(255,255,255,0.65)));
    margin-left: 1rem;
}

/* TRACK PLAYER ROW - dolní řádek s play tlačítkem a waveformem */
.track-player-row[b-715ez9qirg] {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.play-button-container[b-715ez9qirg] {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    /*background: rgba(255, 255, 255, 0.1);*/
    /*border-radius: 50%;*/
    cursor: pointer;
    transition: all 0.3s ease;
}

.play-button-container:hover[b-715ez9qirg] {
    /*background: rgba(255, 140, 0, 0.2);*/
    transform: scale(1.05);
}

.track-container.active .play-button-container[b-715ez9qirg] {
    /*background: rgba(29, 185, 84, 0.2);*/
}

.track-container.active .play-button-container:hover[b-715ez9qirg] {
    /*background: rgba(29, 185, 84, 0.3);*/
}

.play-button-icon[b-715ez9qirg] {
    font-size: 1.5rem;
    color: var(--public-text-soft, var(--public-text-muted, rgba(255,255,255,0.65)));
    transition: color 0.2s;
}

/* v2 nemá --public-accent-hover; nejbližší ekvivalent je --public-accent-soft (světlejší
   odstín akcentu ze stejné palety). */
.play-button-container:hover .play-button-icon[b-715ez9qirg] {
    color: var(--public-accent-soft, var(--public-accent-hover, #E0B789));
}

.track-container.active .play-button-icon[b-715ez9qirg] {
    color: var(--public-accent, #D4A574);
}

.waveform-container[b-715ez9qirg] {
    flex: 1;
    min-width: 0;
}

/* /Pages/Studio/Profile/Components/GallerySection.razor.rz.scp.css */
/* Gallery section styles */

.section-title[b-88mr6ygbik] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* STUDIO GALLERY */
.studio-gallery[b-88mr6ygbik] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.gallery-grid[b-88mr6ygbik] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.gallery-item[b-88mr6ygbik] {
    position: relative;
    overflow: hidden;
    border-radius: 0.5rem;
    background: var(--public-bg-card, #15151A);
    cursor: pointer;
    aspect-ratio: 4/3;
    display: block;
}

.gallery-item img[b-88mr6ygbik] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease, filter 0.3s ease;
}

.gallery-item:hover img[b-88mr6ygbik] {
    transform: scale(1.05);
    filter: brightness(1.1);
}

/* Overlay efekt při hoveru */
.gallery-item[b-88mr6ygbik]::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.4), transparent);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.gallery-item:hover[b-88mr6ygbik]::after {
    opacity: 1;
}

/* Prázdná galerie v editoru: dlaždice drží tvar mřížky, ale nesmí vypadat jako obsah.
   Dřív sem fallback dosadil fotky referenčního prostoru, které uživatel považoval za vlastní. */
.gallery-placeholder[b-88mr6ygbik] {
    aspect-ratio: 4/3;
    border-radius: 0.5rem;
    /* Přerušovaný okraj a průhledné pozadí, ne plná plocha: prázdné místo musí být na první
       pohled rozeznatelné od nahrané fotky, i když je stránka tmavá. */
    border: 1px dashed var(--public-border, rgba(255, 255, 255, 0.12));
    background: var(--public-bg-card, #15151A);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--public-text-muted, rgba(255, 255, 255, 0.25));
    font-size: 1.75rem;
}

/* Responsivní layout pro mobily */
@media (max-width: 768px) {
    .gallery-grid[b-88mr6ygbik] {
        grid-template-columns: 1fr;
    }
    
    .gallery-item[b-88mr6ygbik] {
        aspect-ratio: 16/10;
    }
}

/* Responsivní layout pro tablety */
@media (min-width: 769px) and (max-width: 1024px) {
    .gallery-grid[b-88mr6ygbik] {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }
}

/* Tlačítko pro dobrání další dávky dlaždic. Vystředěné pod mřížkou, aby oddělovalo galerii
   od obsahu pod ní a nepůsobilo jako součást poslední řady fotek. */
.gallery-more[b-88mr6ygbik] {
    display: flex;
    justify-content: center;
    margin-top: 1.5rem;
}

/* Dlaždice je <button>, ne <a href>: cíl není samostatná stránka a odkaz přímo na soubor
   sváděl k otevření originálu v nové záložce mimo kontext webu. Tlačítko je tu kvůli
   přístupnosti (klávesnice, role), ne kvůli vzhledu, takže se jeho nativní vzhled resetuje. */
.gallery-item-trigger[b-88mr6ygbik] {
    padding: 0;
    border: 0;
    background: var(--public-bg-card, #15151A);
    width: 100%;
    text-align: inherit;
    font: inherit;
    color: inherit;
}
/* /Pages/Studio/Profile/Components/HeroSection.razor.rz.scp.css */
/* Hero section styles */

/* HERO */
.hero[b-gwg1y5jm78] {
    position: relative;
    min-height: 85vh;
    height: auto;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
}

.hero[b-gwg1y5jm78]::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: var(--public-hero-overlay-height, 100%);
    background: var(--public-hero-overlay, linear-gradient(to top, var(--public-bg-base, #0A0A0E) 0%, var(--public-bg-base, #0A0A0E) 8%, rgba(10, 10, 14, 0.66) 48%, rgba(10, 10, 14, 0.34) 100%));
    pointer-events: none;
    z-index: 1;
}

.studio-name[b-gwg1y5jm78] {
    font-size: clamp(2.5rem, 6.5vw, 5rem);
    font-weight: 900;
    line-height: 1;
    font-family: var(--public-font-heading, 'Montserrat', sans-serif);
    letter-spacing: -0.125rem;
    color: var(--public-text, #FFFFFF);
    text-shadow: 0 0.25rem 1.25rem rgba(0, 0, 0, .5);
}

.studio-bio[b-gwg1y5jm78] {
    max-width: 37.5rem;
    color: var(--public-text-muted, rgba(255, 255, 255, 0.65));
    font-size: 1.28rem;
    font-weight: 500;
    line-height: 1.55;
    text-shadow: 0 0.2rem 1.1rem rgba(0, 0, 0, 0.82);
}

/* FEATURED block: velké play tlačítko, waveform a pulse/glow animace */
.featured-track[b-gwg1y5jm78] {
    max-width: 57.5rem;
}

.featured-inner[b-gwg1y5jm78] {
    align-items: center;
}

.featured-play[b-gwg1y5jm78] {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.25);
    border: none;
    background: linear-gradient(135deg, #3b82f6, #60a5fa);
    color: #fff;
    transition: transform .18s ease, box-shadow .18s ease;
    z-index: 2;
    cursor: pointer;
}

.featured-play:focus[b-gwg1y5jm78] {
    outline: none;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15);
}

.featured-play:hover[b-gwg1y5jm78] {
    transform: translateY(-3px);
}

.featured-play[b-gwg1y5jm78] {
    animation: pulseGlow-b-gwg1y5jm78 2.5s infinite;
}

@keyframes pulseGlow-b-gwg1y5jm78 {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.25);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 30px 8px rgba(59, 130, 246, 0.12);
        transform: scale(1.03);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.0);
        transform: scale(1);
    }
}

.featured-waveform[b-gwg1y5jm78] {
    min-height: 64px;
    max-height: 160px;
    width: 100%;
    min-width: 300px;
    display: flex;
    align-items: center;
}

.featured-waveform > *[b-gwg1y5jm78] {
    width: 100%;
    height: 80px;
}

/* Velké play tlačítko uprostřed waveformu */
.hero-play-button[b-gwg1y5jm78] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    cursor: pointer;
}

.hero-play-circle[b-gwg1y5jm78] {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: linear-gradient(135deg, #3b82f6, #60a5fa);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 2rem;
    box-shadow: 0 8px 32px rgba(59, 130, 246, 0.4);
    transition: all 0.3s ease;
    animation: pulseGlow-b-gwg1y5jm78 2.5s infinite;
}

.hero-play-circle:hover[b-gwg1y5jm78] {
    transform: scale(1.1);
    box-shadow: 0 12px 48px rgba(59, 130, 246, 0.6);
}

.hero-play-circle.playing[b-gwg1y5jm78] {
    animation: none;
    background: linear-gradient(135deg, #1DB954, #1ed760);
    box-shadow: 0 8px 32px rgba(29, 185, 84, 0.4);
}

.hero-play-circle.playing:hover[b-gwg1y5jm78] {
    box-shadow: 0 12px 48px rgba(29, 185, 84, 0.6);
}

.hero-play-circle i[b-gwg1y5jm78] {
    margin-left: 4px; /* Posun play ikony mírně doprava pro lepší vizuální centrování */
}

.hero-play-circle.playing i[b-gwg1y5jm78] {
    margin-left: 0; /* Pause ikona je již centrovaná */
}

.featured-waveform[b-gwg1y5jm78]  .play-btn {
    font-size: 4em;
    color: white;
}

.featured-waveform[b-gwg1y5jm78]  .audio-container {
    overflow: visible;
}

.featured-waveform[b-gwg1y5jm78]  .waveform {
    height: 145px;
}

/* Responsivní styly pro mobily */
@media (max-width: 768px) {
    .featured-play[b-gwg1y5jm78] {
        width: 72px;
        height: 72px;
        font-size: 1.4rem;
    }
    
    .hero-play-circle[b-gwg1y5jm78] {
        width: 64px;
        height: 64px;
        font-size: 1.5rem;
    }

    .featured-waveform > *[b-gwg1y5jm78] {
        height: 56px;
    }

    .featured-inner[b-gwg1y5jm78] {
        gap: 1rem;
        padding: 1rem;
    }
}

@media (max-width: 575.98px) {
    .hero[b-gwg1y5jm78] {
        min-height: 60vh;
        background-position: center top;
        background-size: cover;
    }

    .hero[b-gwg1y5jm78]::after {
        inset: auto 0 0 0;
        height: var(--public-hero-overlay-height, 100%);
        z-index: 1;
        pointer-events: none;
    }

    /* zajistit, že obsah je nad overlayem */
    .hero > .container-xl[b-gwg1y5jm78] {
        position: relative;
        z-index: 2;
    }

    .studio-name[b-gwg1y5jm78],
    .studio-bio[b-gwg1y5jm78],
    .d-inline-flex[b-gwg1y5jm78] {
        color: var(--public-text, #FFFFFF);
        text-shadow: 0 6px 30px rgba(0, 0, 0, 0.85);
    }

    .studio-bio[b-gwg1y5jm78] {
        font-size: 1.12rem;
    }
}
/* /Pages/Studio/Profile/Components/MyStudioAttribution.razor.rz.scp.css */
/* Nenápadná atribuční patička na veřejných stránkách */
.mystudio-attribution[b-lnxyd6xwej] {
    text-align: center;
    padding: 1.5rem 1rem 2rem;
}

.mystudio-attribution-badge[b-lnxyd6xwej] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    max-width: 100%;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: inherit;
    font-size: 0.8rem;
    line-height: 1.4;
    text-decoration: none;
    opacity: 0.72;
    transition: opacity 0.15s ease, background-color 0.15s ease;
}

.mystudio-attribution-badge i[b-lnxyd6xwej] {
    color: #3b82f6;
    flex: 0 0 auto;
}

.mystudio-attribution-badge span[b-lnxyd6xwej] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.mystudio-attribution-badge:hover[b-lnxyd6xwej] {
    background: rgba(255, 255, 255, 0.16);
    opacity: 1;
}
/* /Pages/Studio/Profile/Components/PublicDesignTweaksPanel.razor.rz.scp.css */
.public-design-panel[b-9j1q2o2wwn] {
    position: fixed;
    right: 1rem;
    top: 6.2rem;
    width: min(24rem, calc(100vw - 2rem));
    z-index: 1060;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 0.7rem;
    padding: 0.75rem;
    background: rgba(7, 8, 12, 0.96);
    backdrop-filter: blur(8px);
}

.public-design-panel-title[b-9j1q2o2wwn] {
    font-weight: 700;
}

.public-design-panel-note[b-9j1q2o2wwn] {
    margin-top: -0.25rem;
    margin-bottom: 0.25rem;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.45);
    font-style: italic;
}

.public-design-panel-label[b-9j1q2o2wwn] {
    margin-bottom: 0.25rem;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.75);
}

.design-swatch-btn[b-9j1q2o2wwn] {
    width: 1.35rem;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: var(--swatch);
}
/* /Pages/Studio/Profile/Components/PublicSectionRenderer.razor.rz.scp.css */
.section-edit-wrapper[b-vtvadek2xk] {
    position: relative;
}

.section-edit-btn[b-vtvadek2xk] {
    display: none;
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 10;
    background: rgba(0, 0, 0, 0.65);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.4rem;
    padding: 0.3rem 0.75rem;
    font-size: 0.8rem;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: background 0.15s ease;
}

.section-edit-btn:hover[b-vtvadek2xk] {
    background: rgba(0, 0, 0, 0.85);
}

.section-edit-wrapper--editable:hover > .section-edit-btn[b-vtvadek2xk] {
    display: flex;
    align-items: center;
}
/* /Pages/Studio/Profile/Components/PublicTopBar.razor.rz.scp.css */
/* Horní lišta veřejných stránek.

   Leží nad hero fotkou, takže musí vypadat jako její vrstva, ne jako kus aplikace:
   poloprůhledné pilulky s rozostřením místo plných výplní v barvě motivu. Tento jazyk
   přebírá z původního .profile-action na profilu, který jako jediný ze tří stránek
   nad fotkou fungoval; podstránka a událost měly aplikační tlačítka, která nad fotkou
   působila jako z jiného webu. */

.pp-topbar[b-mqccmsfkoe] {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1050;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;

    /* Bez podkladu: pilulky si nesou vlastní plochu a souvislý pruh by hero fotku
       zbytečně odřízl hned pod horní hranou. */
    pointer-events: none;
}

/* Kliky musí procházet skrz prázdné místo lišty na obsah pod ní (hero fotka, přehrávač),
   proto se ukazatel vrací jen samotným ovládacím prvkům. */
.pp-topbar-left[b-mqccmsfkoe],
.pp-topbar-right[b-mqccmsfkoe] {
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: auto;
    min-width: 0; /* Jinak dlouhý název prostoru přeteče a rozhodí zarovnání doprava. */
}

/* Lišta je vždy jednořádková. Zalomení do druhé řady (dřívější flex-wrap) odtrhlo
   vlastnické nástroje od kraje a přes hero se rozlila dvoupatrová hradba pilulek –
   při víc podstránkách na 1024 px vypadala jako rozbitá. Když se záložky nevejdou,
   rolují vodorovně uvnitř vlastního pruhu (níž), zbytek lišty se nehýbe. */
.pp-topbar-left[b-mqccmsfkoe] {
    flex: 1 1 auto;
}

.pp-topbar-right[b-mqccmsfkoe] {
    flex: none;
}

/* ── Společný vzhled ovládacích prvků ─────────────────────────────────────────── */

.pp-topbar-btn[b-mqccmsfkoe],
.pp-topbar-tab[b-mqccmsfkoe],
.pp-topbar-identity[b-mqccmsfkoe] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(0, 0, 0, .35);
    /* Rozostření drží text čitelný i nad světlou částí fotky. */
    backdrop-filter: blur(10px);
    color: #fff;
    font-size: .875rem;
    font-weight: 500;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .18s ease, border-color .18s ease;
}

.pp-topbar-btn:hover[b-mqccmsfkoe],
.pp-topbar-tab:hover[b-mqccmsfkoe],
.pp-topbar-identity:hover[b-mqccmsfkoe] {
    background: rgba(0, 0, 0, .55);
    border-color: rgba(255, 255, 255, .38);
    color: #fff;
    text-decoration: none;
}

/* Kruhová varianta pro tlačítko bez textu; bez pevné šířky by ji odsazení roztáhlo na ovál. */
.pp-topbar-btn-icon[b-mqccmsfkoe] {
    width: 38px;
    padding: 0;
    justify-content: center;
}

/* Při nedostatku místa se smí zúžit jen pruh záložek (roluje); všechno ostatní drží
   svou šířku, jinak by flex začal mačkat tlačítka a identitu do nečitelna. */
.pp-topbar-left > *[b-mqccmsfkoe] {
    flex: none;
}

.pp-topbar-left > .pp-topbar-tabs[b-mqccmsfkoe] {
    flex: 0 1 auto;
}

/* ── Identita prostoru ────────────────────────────────────────────────────────── */

/* Název smí zkrátit, aby dlouhé jméno nevytlačilo záložky mimo obrazovku. */
.pp-topbar-name[b-mqccmsfkoe] {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
    font-weight: 600;
}

.pp-topbar-logo[b-mqccmsfkoe] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
    /* Záporný okraj vtáhne logo k levé hraně pilulky, jinak vypadá odsazení nesymetricky. */
    margin-left: -6px;
    flex: none;
}

/* ── Záložky stránek ──────────────────────────────────────────────────────────── */

/* Záložky rolují vodorovně, když se nevejdou – jediný pružný prvek lišty. Skrytý scrollbar:
   pruh pilulek s posuvníkem pod sebou by vypadal jako rozbitý overflow, gesto posunu
   (touchpad, kolečko, tažení na mobilu) zůstává funkční. */
.pp-topbar-tabs[b-mqccmsfkoe] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
    /* Bez ochranného odsazení by stín/okraj krajní pilulky ořízl overflow už v klidu. */
    padding: 2px;
    margin: -2px;
}

.pp-topbar-tabs[b-mqccmsfkoe]::-webkit-scrollbar {
    display: none;
}

.pp-topbar-tab[b-mqccmsfkoe] {
    flex: none; /* Pilulka se nesmí smrsknout – užší by ořízla vlastní text. */
}

/* Aktivní stav sdílí identita se záložkami: na profilu je identita tím, co by jinak nesla
   záložka "Úvodní stránka", takže se musí zvýraznit stejně. */
.pp-topbar-tab.is-active[b-mqccmsfkoe],
.pp-topbar-identity.is-active[b-mqccmsfkoe] {
    background: rgba(0, 0, 0, .85);
    border-color: rgba(255, 255, 255, .45);
}

/* ── Vlastnické akce ──────────────────────────────────────────────────────────── */

/* Oddělovač odliší nástroje vlastníka od navigace – bez něj lišta splývá v jeden řetěz. */
.pp-topbar-divider[b-mqccmsfkoe] {
    width: 1px;
    height: 22px;
    background: rgba(255, 255, 255, .25);
    margin: 0 4px;
    flex: none;
}

.pp-topbar-owner[b-mqccmsfkoe] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Tlačítka dodaná hostující stránkou přes RenderFragment nenesou scope atribut této
   komponenty, proto ::deep. Sjednocuje Megacentral Button do stejné pilulky – jinak by
   se vedle sebe potkal aplikační vzhled se skleněným. */
.pp-topbar-owner[b-mqccmsfkoe]  .btn,
.pp-topbar-right[b-mqccmsfkoe]  .btn {
    height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(0, 0, 0, .35);
    backdrop-filter: blur(10px);
    color: #fff;
    font-size: .875rem;
    display: inline-flex;
    align-items: center;
}

.pp-topbar-owner[b-mqccmsfkoe]  .btn:hover,
.pp-topbar-right[b-mqccmsfkoe]  .btn:hover {
    background: rgba(0, 0, 0, .55);
    border-color: rgba(255, 255, 255, .38);
    color: #fff;
}

/* ── Nabídka sdílení ──────────────────────────────────────────────────────────── */

/* Nabídka visí na tlačítku Sdílet, ne na liště: lišta se přes hero roztahuje na celou
   šířku, takže ukotvení k ní by nabídku odsunulo na kraj obrazovky. */
.pp-topbar-share[b-mqccmsfkoe] {
    position: relative;
    display: flex;
}

/* Otevřené tlačítko zůstává zvýrazněné, aby bylo poznat, ke které akci nabídka patří. */
.pp-topbar-btn.is-open[b-mqccmsfkoe] {
    background: rgba(0, 0, 0, .55);
    border-color: rgba(255, 255, 255, .38);
}

/* Overlay pod nabídkou zachytává klik mimo. Fixed přes celé okno, protože lišta sama
   překrývá hero a klik do stránky by jinak prošel na obsah pod ní. */
.pp-topbar-share-backdrop[b-mqccmsfkoe] {
    position: fixed;
    inset: 0;
    z-index: 30;
}

/* Zarovnání doprava: tlačítko sedí u pravého okraje, nabídka ukotvená vlevo by přetekla
   mimo okno. */
.pp-topbar-share-menu[b-mqccmsfkoe] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 31;
}

/* Ikonová tlačítka vlastníka (vzhled, statistiky, editor v2) do kruhu. */
.pp-topbar-owner[b-mqccmsfkoe]  .btn.pp-topbar-icon-action {
    width: 38px;
    padding: 0;
    justify-content: center;
}

.pp-topbar-owner[b-mqccmsfkoe]  .pp-topbar-icon-action .icon {
    margin-right: 0 !important;
}

/* Upravit je hlavní vlastnická akce, takže jako jediná nese akcentní plochu – v řadě
   stejně vypadajících pilulek by se jinak ztratila. */
.pp-topbar-owner[b-mqccmsfkoe]  .btn.pp-topbar-primary {
    background: var(--public-accent, #e0a96d);
    border-color: transparent;
    color: var(--public-on-accent, #1a1a1a);
}

.pp-topbar-owner[b-mqccmsfkoe]  .btn.pp-topbar-primary:hover {
    background: var(--public-accent-deep, var(--public-accent, #c98f52));
    border-color: transparent;
    color: var(--public-on-accent, #1a1a1a);
}

/* ── Mobil ────────────────────────────────────────────────────────────────────── */

@media (max-width: 767px) {
    /* Na úzké obrazovce mizí jen vlastnické nástroje (editace probíhá na desktopu) a texty
       tlačítek. Záložky zůstávají – jsou to jediná cesta návštěvníka na podstránky – a při
       nedostatku místa rolují vodorovně stejně jako na desktopu. */
    .pp-topbar-divider[b-mqccmsfkoe],
    .pp-topbar-owner[b-mqccmsfkoe] {
        display: none;
    }

    .pp-topbar-btn-text[b-mqccmsfkoe] {
        display: none;
    }

    .pp-topbar-btn[b-mqccmsfkoe] {
        width: 38px;
        padding: 0;
        justify-content: center;
    }

    .pp-topbar-btn-icon[b-mqccmsfkoe] {
        width: 38px;
    }

    .pp-topbar-name[b-mqccmsfkoe] {
        max-width: 130px;
    }
}
/* /Pages/Studio/Profile/Components/ReferencesSection.razor.rz.scp.css */
/* References section styles */

.section-title[b-oc4ztry2jk] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* Flex wrap pro reference */
.references-grid[b-oc4ztry2jk] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

/* Karta reference - pevná velikost */
.ref-card[b-oc4ztry2jk] {
    position: relative;
    background: var(--public-bg-card, #15151A);
    border-radius: 0.5rem;
    overflow: hidden;
    width: 160px;
    height: 270px;
    flex-shrink: 0;
}

/* Obal pro obrázek */
.ref-image-wrapper[b-oc4ztry2jk] {
    width: 100%;
    height: 220px;
    position: relative;
    background: var(--public-bg-raised, #1E1E26);
}

/* Samotný obrázek */
.ref-image[b-oc4ztry2jk] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Placeholder pro referenci bez obrázku */
.ref-placeholder[b-oc4ztry2jk] {
    width: 100%;
    height: 220px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ref-placeholder i[b-oc4ztry2jk] {
    font-size: 3rem;
    opacity: 0.3;
    color: var(--public-text, #fff);
}

/* Popisky referencí */
.ref-caption[b-oc4ztry2jk] {
    padding: 0.5rem;
    background: rgba(0, 0, 0, 0.7);
    color: var(--public-text, #fff);
    height: 50px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.ref-name[b-oc4ztry2jk] {
    font-weight: 600;
    font-size: 0.85rem;
    margin-bottom: 0.15rem;
    line-height: 1.2;
    text-align: center;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.ref-sub[b-oc4ztry2jk] {
    font-weight: 400;
    font-size: 0.75rem;
    /* v2 vypisuje --public-text-soft, v1 --public-text-muted; modul je sdílený oběma. */
    color: var(--public-text-soft, var(--public-text-muted, rgba(255, 255, 255, 0.65)));
    line-height: 1.2;
    text-align: center;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Karta reference je <button>, ne <a href> – viz GallerySection. Reset nativního vzhledu
   tlačítka, aby zůstal vzhled karty definovaný v .ref-card. Šířku ani výšku nepřepisuje:
   .ref-card má pevný rozměr a width:100% by ho v flex řadě roztáhlo. */
.ref-card-trigger[b-oc4ztry2jk] {
    padding: 0;
    border: 0;
    text-align: inherit;
    font: inherit;
    color: inherit;
    cursor: pointer;
    display: block;
}
/* /Pages/Studio/Profile/Components/TeamSection.razor.rz.scp.css */
/* Team section styles */

.section-title[b-fiht2hjejr] {
    font-size: 2rem;
    border-bottom: 1px solid var(--public-border, rgba(255, 255, 255, 0.05));
}

/* Text popis týmu */
.team-description[b-fiht2hjejr] {
    line-height: 1.8;
    /* v2 vypisuje --public-text-soft, v1 --public-text-muted; modul je sdílený oběma. */
    color: var(--public-text-soft, var(--public-text-muted, rgba(255, 255, 255, 0.65)));
}

/* Grid pro fotografie týmu */
.team-images-grid[b-fiht2hjejr] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .team-images-grid[b-fiht2hjejr] {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    }
}

/* Jednotlivá položka fotografie */
.team-image-item[b-fiht2hjejr] {
    position: relative;
}

/* Karta s fotografií */
.team-photo-card[b-fiht2hjejr] {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    background: var(--public-bg-card, #15151A);
    overflow: hidden;
    border-radius: 0.75rem;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.team-photo-card:hover[b-fiht2hjejr] {
    transform: scale(1.02);
}

/* Samotná fotografie */
.team-photo[b-fiht2hjejr] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.team-photo-card:hover .team-photo[b-fiht2hjejr] {
    transform: scale(1.05);
}

/* Zástupná dlaždice člena bez fotky.

   Člen bez fotky je běžný stav: průvodce zakládá lidi z textu zadání a fotky se doplňují
   až potom. Placeholder drží stejný poměr stran jako karta s fotkou, aby se mřížka
   nerozpadla na sekce s částečně doplněnými fotkami. Kurzor je výchozí, protože tady
   není co otevřít – lightgallery se nad položkami bez fotky vůbec neinicializuje. */
.team-photo-placeholder[b-fiht2hjejr] {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: default;
    border: 1px dashed var(--public-border, rgba(255, 255, 255, 0.15));
}

/* Bez fotky nemá zvětšení co ukázat, takže se hover efekt karty potlačí. */
.team-photo-placeholder:hover[b-fiht2hjejr] {
    transform: none;
}

.team-photo-initials[b-fiht2hjejr] {
    font-size: clamp(1.5rem, 4vw, 2.5rem);
    font-weight: 600;
    letter-spacing: 0.05em;
    opacity: 0.35;
}

/* Informace o členu týmu pod fotkou */
.team-member-info[b-fiht2hjejr] {
    padding: 0.5rem 0;
}

.team-member-name[b-fiht2hjejr] {
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

.team-member-description[b-fiht2hjejr] {
    font-size: 0.875rem;
    line-height: 1.4;
}


/* Fotka člena je <button>, ne <a href> – viz GallerySection. Reset nativního vzhledu
   tlačítka, aby zůstal vzhled karty definovaný v .team-photo-card. */
.team-photo-trigger[b-fiht2hjejr] {
    padding: 0;
    border: 0;
    background: none;
    width: 100%;
    text-align: inherit;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
/* /Pages/Studio/Profile/CourseDetailPage.razor.rz.scp.css */
/* ══════════════════════════════════════════
   CourseDetailPage.razor – scoped CSS
   Vizuálně konzistentní se StudioProfile
   ══════════════════════════════════════════ */

/* ── Kořenový wrapper ── */
.course-detail-page[b-aq75lkrxz7] {
    --bg: var(--public-bg-base, #0A0A0E);
    --text-main: var(--public-text, #ffffff);
    --text-muted: var(--public-text-muted, rgba(255,255,255,0.65));
    --accent: var(--public-accent, #D4A574);
    --card-bg: var(--public-bg-card, #15151A);
    --card-border: var(--public-border, rgba(255, 255, 255, 0.05));

    background-color: var(--bg);
    color: var(--text-main);
    font-family: var(--public-font-body, 'Inter', sans-serif);
    line-height: 1.6;
    padding-bottom: 5rem;
    min-height: 100vh;
}

/* Tlačítko zpět je součástí sdílené lišty PublicTopBar. Zůstává jen ovládání editačního
   režimu, ve kterém se lišta skrývá. */
.edit-button-fixed[b-aq75lkrxz7] {
    position: fixed;
    right: 1rem;
    top: 0.6rem;
    z-index: 1050;
}

/* ══════════════════
   HERO sekce
   ══════════════════ */
.course-hero[b-aq75lkrxz7] {
    position: relative;
    min-height: 75vh;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
}

/* Gradient overlay – stejný přístup jako HeroSection */
.course-hero-overlay[b-aq75lkrxz7] {
    position: absolute;
    inset: auto 0 0 0;
    height: var(--public-hero-overlay-height, 100%);
    background: var(--public-hero-overlay, linear-gradient(to top, var(--public-bg-base, #0A0A0E) 0%, var(--public-bg-base, #0A0A0E) 8%, rgba(10, 10, 14, 0.66) 48%, rgba(10, 10, 14, 0.34) 100%));
    pointer-events: none;
    z-index: 1;
}

/* Badge pill nad názvem */
.badge-pill[b-aq75lkrxz7] {
    background: var(--public-accent-muted, rgba(212, 165, 116, 0.15));
    border: 1px solid var(--public-accent-glow, rgba(212, 165, 116, 0.35));
    padding: 0.25rem 0.85rem;
    border-radius: 999px;
    font-size: 0.85rem;
    color: var(--public-text, #ffffff);
    backdrop-filter: blur(4px);
}

/* Název kurzu – kopíruje .studio-name */
.course-name[b-aq75lkrxz7] {
    font-size: clamp(2.5rem, 7vw, 5.5rem);
    font-weight: 900;
    line-height: 1.05;
    font-family: var(--public-font-heading, 'Montserrat', sans-serif);
    letter-spacing: -0.1rem;
    color: var(--public-text, #ffffff);
    text-shadow: 0 0.25rem 1.5rem rgba(0, 0, 0, 0.6);
}

/* Stručný popis pod názvem */
.course-short-desc[b-aq75lkrxz7] {
    max-width: 38rem;
    font-size: 1.28rem;
    color: var(--public-text-muted, rgba(255, 255, 255, 0.65));
    font-weight: 500;
    line-height: 1.55;
    text-shadow: 0 0.2rem 1.1rem rgba(0, 0, 0, 0.82);
}

/* Meta-badges (délka, termíny, cena) */
.meta-badge[b-aq75lkrxz7] {
    display: inline-flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    padding: 0.35rem 0.9rem;
    border-radius: 999px;
    font-size: 0.9rem;
    backdrop-filter: blur(4px);
}

.meta-badge.accent[b-aq75lkrxz7] {
    background: var(--public-accent-muted, rgba(212, 165, 116, 0.15));
    border-color: var(--public-accent-glow, rgba(212, 165, 116, 0.35));
    color: var(--public-accent, #D4A574);
}

/* ── Tiptap HTML obsah ── */
.course-description[b-aq75lkrxz7]  p,
.option-desc[b-aq75lkrxz7]  p {
    /*color: var(--text-muted);*/
    margin-bottom: 0.75rem;
}

.course-description[b-aq75lkrxz7]  h1,
.course-description[b-aq75lkrxz7]  h2,
.course-description[b-aq75lkrxz7]  h3 {
    font-family: var(--public-font-heading, 'Montserrat', sans-serif);
    color: var(--public-text, #ffffff);
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

/* ══════════════════
   Varianty (Options)
   ══════════════════ */
.option-card[b-aq75lkrxz7] {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 0.75rem;
    padding: 1.25rem;
    height: 100%;
    transition: border-color 0.2s;
}

.option-card:hover[b-aq75lkrxz7] {
    border-color: rgba(255, 255, 255, 0.2);
}

.option-name[b-aq75lkrxz7] {
    font-weight: 600;
    font-size: 1rem;
}

.option-price[b-aq75lkrxz7] {
    color: var(--public-accent, #D4A574);
    font-weight: 700;
    font-size: 1.05rem;
    white-space: nowrap;
}

.option-type[b-aq75lkrxz7] {
    font-size: 0.82rem;
}

.option-desc[b-aq75lkrxz7] {
    /*font-size: 0.9rem;*/
    /*color: var(--text-muted);*/
}

/* ══════════════════
   Termíny – karta
   ══════════════════ */
.term-card[b-aq75lkrxz7] {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 0.75rem;
    padding: 1rem 1.25rem;
}

.term-date-block[b-aq75lkrxz7] {
    min-width: 3.5rem;
}

.term-day[b-aq75lkrxz7] {
    font-size: 2rem;
    font-weight: 900;
    font-family: var(--public-font-heading, 'Montserrat', sans-serif);
    line-height: 1;
}

.term-month[b-aq75lkrxz7] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.05rem;
    color: var(--text-muted);
}

/* Inline termín řádek (v option kartě) */
.term-row[b-aq75lkrxz7] {
    font-size: 0.88rem;
    color: var(--text-muted);
}

.term-icon[b-aq75lkrxz7] {
    color: var(--accent);
    flex-shrink: 0;
}

.term-capacity.low[b-aq75lkrxz7] {
    color: #f59e0b;
}

/* Kapacita progress bar */
.capacity-bar[b-aq75lkrxz7] {
    width: 5rem;
    height: 4px;
    background: rgba(255, 255, 255, 0.12);
    border-radius: 2px;
    overflow: hidden;
}

.capacity-fill[b-aq75lkrxz7] {
    height: 100%;
    background: var(--accent);
    border-radius: 2px;
    transition: width 0.3s ease;
}

.capacity-fill.low[b-aq75lkrxz7] {
    background: #f59e0b;
}

/* ══════════════════
   Info karta (pravý sloupec)
   ══════════════════ */
.info-card[b-aq75lkrxz7] {
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    border-radius: 1rem;
    padding: 1.5rem;
}

.info-thumb[b-aq75lkrxz7] {
    border-radius: 0.75rem;
    object-fit: cover;
    max-height: 220px;
}

.info-thumb-placeholder[b-aq75lkrxz7] {
    border-radius: 0.75rem;
    height: 180px;
}

.info-list li[b-aq75lkrxz7] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--card-border);
    font-size: 0.93rem;
    color: var(--text-muted);
}

.info-list li:last-child[b-aq75lkrxz7] {
    border-bottom: none;
}

.info-icon[b-aq75lkrxz7] {
    color: var(--accent);
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
}

/* ══════════════════
   Mobilní breakpoint
   ══════════════════ */
@media (max-width: 575.98px) {
    .course-hero[b-aq75lkrxz7] {
        min-height: 55vh;
    }

    .course-hero-overlay[b-aq75lkrxz7] {
        height: var(--public-hero-overlay-height, 100%);
        background: var(--public-hero-overlay, linear-gradient(to top, var(--public-bg-base, #0A0A0E) 0%, var(--public-bg-base, #0A0A0E) 9%, rgba(10, 10, 14, 0.68) 50%, rgba(10, 10, 14, 0.38) 100%));
    }

    .course-name[b-aq75lkrxz7] {
        font-size: 2.2rem;
    }

    .course-short-desc[b-aq75lkrxz7] {
        font-size: 1.12rem;
    }
}

/* ══════════════════
   Tlačítko Přihlásit se
   ══════════════════ */
.register-btn[b-aq75lkrxz7] {
    font-size: 0.8rem;
    padding: 0.25rem 0.65rem;
    white-space: nowrap;
}

/* ══════════════════
   Registrační modal
   ══════════════════ */
.modal-backdrop-dark[b-aq75lkrxz7] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(4px);
    z-index: 1040;
}

.reg-modal[b-aq75lkrxz7] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1050;
    background: var(--public-bg-raised, #1E1E26);
    border: 1px solid var(--public-border-hover, rgba(255,255,255,0.10));
    border-radius: 1rem;
    width: min(560px, 95vw);
    max-height: 92vh;
    overflow-y: auto;
    box-shadow: 0 1.5rem 4rem rgba(0,0,0,0.7);
}

.reg-modal-header[b-aq75lkrxz7] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.reg-modal-body[b-aq75lkrxz7] {
    padding: 1.5rem;
}
/* /Pages/Studio/Profile/Editing/ProfileBandsEditor.razor.rz.scp.css */
/* /Pages/Studio/Profile/Editing/ProfileEquipmentEditor.razor.rz.scp.css */
.profile-equipment-editor[b-dbi6pwvyak] {
    font-size: 1rem; /* bylo 0.85rem – zvětšeno pro lepší čitelnost */
}

.equipment-link-section[b-dbi6pwvyak] {
    background-color: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
}

.equipment-item[b-dbi6pwvyak] {
    padding: 0.4rem;
    border-left: 3px solid var(--bs-border-color);
    background-color: var(--bs-tertiary-bg);
    border-radius: 3px;
    transition: background-color 0.2s;
}

.equipment-item:hover[b-dbi6pwvyak] {
    background-color: var(--bs-secondary-bg);
}

.equipment-item strong[b-dbi6pwvyak] {
    font-size: 0.9rem; /* bylo 0.8rem – zvětšeno pro lepší čitelnost */
    color: var(--bs-secondary-color);
}

.equipment-item-new[b-dbi6pwvyak] {
    border: 2px dashed var(--bs-border-color);
    background-color: var(--bs-tertiary-bg) !important;
}
/* /Pages/Studio/Profile/Editing/ProfileFeaturedWorksEditor.razor.rz.scp.css */
/* Bootstrap 5.3 Dark Mode Support */
[data-bs-theme="dark"] .work-item-editor[b-gq99ovyknq] {
    /*background-color: #212529;*/
    /*border-color: #495057;*/
}

[data-bs-theme="dark"] .work-item-new[b-gq99ovyknq] {
    /*background-color: #212529 !important;*/
    /*border-color: #495057;*/
}

/* Handle visibility: hidden by default, visible on hover */
.work-item-editor .drag-handle[b-gq99ovyknq] {
    visibility: hidden;
    opacity: 0;
    transition: opacity .12s ease-in-out;
}
.work-item-editor:hover .drag-handle[b-gq99ovyknq] {
    visibility: visible;
    opacity: 1;
}
.drag-handle[b-gq99ovyknq] {
    cursor: move;
    margin-right: 0.5rem;
}
/* /Pages/Studio/Profile/Editing/ProfileGalleryEditor.razor.rz.scp.css */
/* Editor fotogalerie prostoru – přetahování pro změnu pořadí. */

/* Úchyt jen oznamuje, že řádek jde chytit; draggable je celý řádek, aby se uživatel nemusel
   trefovat do ikony. grab kurzor je tu proto jediná vizuální nápověda, kterou má před tím,
   než to zkusí. */
.gallery-drag-handle[b-dx08meymv9] {
    cursor: grab;
    align-self: center;
    padding: 0 0.25rem;
    color: var(--bs-secondary-color, rgba(128, 128, 128, 0.7));
}

.gallery-drag-handle:active[b-dx08meymv9] {
    cursor: grabbing;
}

/* Tažený řádek se ztlumí, aby bylo poznat, která položka se přesouvá – ostatní řádky se pod
   ním přerovnávají živě, takže bez odlišení není zřejmé, co uživatel drží. */
.gallery-item-dragging[b-dx08meymv9] {
    opacity: 0.45;
}

/* Řádek je drop cíl na celé ploše, ne jen na úchytu. */
.gallery-item-editor[b-dx08meymv9] {
    cursor: default;
}
/* /Pages/Studio/Profile/Editing/ProfileHeroBackgroundEditor.razor.rz.scp.css */
/* Bootstrap 5.3 Dark Mode Support */
.profile-hero-background-editor[b-r3rep4yxia] {
    font-size: 1rem; /* bylo 0.85rem – zvětšeno pro lepší čitelnost */
}

.background-container[b-r3rep4yxia] {
    position: relative;
}

.background-preview[b-r3rep4yxia] {
    border: 2px solid #dee2e6;
    transition: opacity 0.2s;
}

.background-overlay[b-r3rep4yxia] {
    background: rgba(0, 0, 0, 0);
    transition: background 0.2s, opacity 0.2s;
    opacity: 0;
}

.background-container:hover .background-preview[b-r3rep4yxia] {
    opacity: 0.4;
}

.background-container:hover .background-overlay[b-r3rep4yxia] {
    background: rgba(0, 0, 0, 0.85);
    opacity: 1;
}

.upload-area[b-r3rep4yxia] {
    /*background-color: #f8f9fa;*/
    border-color: #dee2e6;
    transition: background-color 0.2s, border-color 0.2s;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.upload-area:hover[b-r3rep4yxia] {
    background-color: #e9ecef;
    border-color: #adb5bd;
}

/* Dark Mode */
[data-bs-theme="dark"] .background-preview[b-r3rep4yxia] {
    border-color: #495057;
}

[data-bs-theme="dark"] .upload-area[b-r3rep4yxia] {
    /*background-color: #212529;*/
    border-color: #495057;
}

[data-bs-theme="dark"] .upload-area:hover[b-r3rep4yxia] {
    background-color: #2c3034;
    border-color: #6c757d;
}

/* /Pages/Studio/Profile/Editing/StudioSubPageEditorPanel.razor.rz.scp.css */
.module-selector-toggle[b-cry3hes87w] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-color: var(--bs-border-color);
}

.module-selector .dropdown-menu[b-cry3hes87w] {
    max-height: 320px;
    overflow-y: auto;
    border-radius: 0.6rem;
}

.module-selector-item[b-cry3hes87w] {
    font-size: 0.92rem;
    border-radius: 0.35rem;
    margin: 0.1rem 0.35rem;
    width: calc(100% - 0.7rem);
}

.module-selector-item.active[b-cry3hes87w],
.module-selector-item:active[b-cry3hes87w] {
    background: rgba(var(--bs-primary-rgb), 0.12);
    color: var(--bs-body-color);
}

[b-cry3hes87w] .sections-only-tabs > .tabs2-nav-wrapper {
    display: none;
}

[b-cry3hes87w] .sections-only-tabs > .tabs2-content > .tab-pane > .tabs2-panel-inner {
    padding-top: 0 !important;
}
/* /Pages/Studio/Profile/StudioProfile.razor.rz.scp.css */
/* Profile.razor scoped CSS
   Tento soubor obsahuje pouze globální styly pro .profile-page kontejner.
   Styly pro jednotlivé komponenty jsou v jejich vlastních .razor.css souborech.
*/

/* Scoped variables: umístěné na kořen komponenty (.profile-page) */
.profile-page[b-8zu18ezf77] {
    background-color: var(--public-bg-base, #121212);
    color: var(--public-text, #ffffff);
    font-family: var(--public-font-body, 'Inter', sans-serif);
    line-height: 1.6;
    padding-bottom: 4rem;
    position: relative;
}

/* Globální styly pro nadpisy a odkazy */
[b-8zu18ezf77] .section-title {
}

[b-8zu18ezf77] .section-title {
    font-family: var(--public-font-heading, 'Montserrat', sans-serif);
    font-size: 3em !important;
    margin-top:30px;
}

[b-8zu18ezf77] .right .section-title {
    font-size: 2em !important;
}

a[b-8zu18ezf77] {
    text-decoration: none;
    color: inherit;
}

/* Ovládání profilu (zpět, identita, přepínač stránek, akce) se přestěhovalo do sdílené
   komponenty PublicTopBar, aby profil, podstránka i detail události měly stejnou lištu.
   Vzhled skleněných pilulek pokračuje v PublicTopBar.razor.css. */
/* /Pages/Studio/Profile/StudioSubPage.razor.rz.scp.css */
/* Sdílí vizuální styl s CourseDetailPage a StudioProfile */

/* ── Kořenový wrapper ── */
.subpage-page[b-fgsi7gxuq5] {
    --bg: var(--public-bg-base, #121212);
    --text-main: var(--public-text, #ffffff);
    --text-muted: var(--public-text-muted, #b3b3b3);
    --accent: var(--public-accent, #1DB954);
    --card-bg: rgba(255, 255, 255, 0.04);
    --card-border: rgba(255, 255, 255, 0.08);

    background-color: var(--bg);
    color: var(--text-main);
    font-family: var(--public-font-body, 'Inter', sans-serif);
    line-height: 1.6;
    padding-bottom: 5rem;
    min-height: 100vh;
    position: relative;
}

/* Tlačítko zpět a přepínač stránek jsou součástí sdílené lišty PublicTopBar. Zůstává jen
   ovládání editačního režimu, ve kterém se lišta skrývá. */
.edit-button-fixed[b-fgsi7gxuq5] {
    position: fixed;
    top: 0.6rem;
    right: 1rem;
    z-index: 1050;
}

/* ── Hero sekce ── */
.subpage-hero[b-fgsi7gxuq5] {
    position: relative;
    min-height: 65vh;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    display: flex;
    align-items: flex-end;
}

/* Gradient overlay – tmavý zespodu (kde je titulek), průhledný nahoře */
.subpage-hero-overlay[b-fgsi7gxuq5] {
    position: absolute;
    inset: auto 0 0 0;
    height: var(--public-hero-overlay-height, 100%);
    background: var(--public-hero-overlay, linear-gradient(to top, var(--public-bg-base, #0A0A0E) 0%, var(--public-bg-base, #0A0A0E) 8%, rgba(10, 10, 14, 0.66) 48%, rgba(10, 10, 14, 0.34) 100%));
    pointer-events: none;
    z-index: 1;
}

.subpage-title[b-fgsi7gxuq5] {
    font-family: var(--public-font-heading, 'Montserrat', sans-serif);
    font-weight: 900;
    font-size: clamp(3rem, 8vw, 6rem);
    line-height: 1.1;
    color: var(--public-text, #ffffff);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.subpage-subtitle[b-fgsi7gxuq5] {
    font-size: 1.35rem;
    color: var(--public-text-muted, rgba(255, 255, 255, 0.65));
    margin-top: 0.5rem;
    margin-bottom: 0;
    font-weight: 500;
    line-height: 1.5;
    max-width: 700px;
    text-shadow: 0 0.2rem 1.1rem rgba(0, 0, 0, 0.82);
}

.subpage-title-fallback .subpage-subtitle[b-fgsi7gxuq5] {
    color: var(--public-text-muted, rgba(255, 255, 255, 0.65));
}

.subpage-title-fallback[b-fgsi7gxuq5] {
    padding-top: 7rem;
    padding-bottom: 1.5rem;
}

.subpage-body[b-fgsi7gxuq5] {
    min-height: 50vh;
}

/* ── Mobilní breakpoint ── */
@media (max-width: 575.98px) {
    .subpage-hero[b-fgsi7gxuq5] {
        min-height: 50vh;
    }

    .subpage-title[b-fgsi7gxuq5] {
        font-size: 2rem;
    }

    .subpage-subtitle[b-fgsi7gxuq5] {
        font-size: 1.12rem;
    }
}
/* /Pages/Studio/Profile/V2/Editing/BlockTextAiDialog.razor.rz.scp.css */
/* Dialog pro AI úpravu textu bloku.

   Vizuálně navazuje na ProjectCreateDialog (stejná fialová AI barva, stejné pilulkové
   chipy, stejný tichý rámeček kolem zadání), aby uživatel poznal, že jde o tentýž druh
   interakce – popsat, co chci, a nechat to na modelu. */
.btad[b-77nyrld1ji] {
  padding: 0.25rem 0.25rem 0;
  position: relative;
  --btad-ai: #8b7cf6;
}

[b-77nyrld1ji] .btad-topbar {
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

/* 44px je minimální pohodlný cíl pro prst; ✕ je jinak jen malý glyf. */
.btad-close[b-77nyrld1ji] {
  font-size: 1.6rem;
  line-height: 1;
  min-height: 44px;
  min-width: 44px;
  opacity: 0.5;
}

.btad-close:hover[b-77nyrld1ji] {
  opacity: 1;
}

.btad-title[b-77nyrld1ji] {
  color: var(--bs-body-color);
  font-family: var(--font-display-serif);
  font-size: clamp(1.5rem, 2.6vw, 1.9rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 1.75rem;
  padding: 0 2.75rem;
  text-align: center;
}

.btad-ai[b-77nyrld1ji] {
  border: 1px solid color-mix(in srgb, var(--btad-ai) 45%, transparent);
  border-radius: 0.75rem;
  padding: 0.9rem 1rem 1rem;
}

.btad-ai-head[b-77nyrld1ji] {
  align-items: center;
  display: flex;
  font-size: 0.92rem;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
  opacity: 0.75;
}

.btad-ai-icon[b-77nyrld1ji] {
  color: var(--btad-ai);
  opacity: 1;
}

/* Textarea bez vlastního rámečku – ohraničení dělá obal .btad-ai, takže pole působí
   jako plocha k psaní, ne jako formulářový prvek. */
[b-77nyrld1ji] .btad-ai-input {
  background: transparent;
  border: 0;
  color: var(--bs-body-color);
  font-size: 1rem;
  line-height: 1.45;
  min-height: 4.5rem;
  resize: vertical;
  width: 100%;
}

[b-77nyrld1ji] .btad-ai-input::placeholder {
  opacity: 0.4;
}

[b-77nyrld1ji] .btad-ai-input:focus {
  background: transparent;
  box-shadow: none;
  outline: none;
}

.btad-ai-body[b-77nyrld1ji] {
  position: relative;
}

/* Náhled chipu leží přes textareu a ta se jen zprůhlední; vázaná hodnota se nemění,
   takže odjetí myši nemůže rozepsané zadání poškodit. */
.btad-ai-body.previewing[b-77nyrld1ji]  .btad-ai-input {
  opacity: 0;
}

.btad-ai-preview[b-77nyrld1ji] {
  color: var(--bs-body-color);
  font-size: 0.95rem;
  font-style: italic;
  inset: 0;
  line-height: 1.45;
  opacity: 0.75;
  overflow: hidden;
  padding: 0.4rem 0.75rem;
  pointer-events: none;
  position: absolute;
  white-space: pre-line;
}

.btad-chips[b-77nyrld1ji] {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.75rem;
}

.btad-chips-label[b-77nyrld1ji] {
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  margin-right: 0.25rem;
  opacity: 0.45;
  text-transform: uppercase;
}

.btad-chip-hover[b-77nyrld1ji] {
  display: inline-flex;
}

[b-77nyrld1ji] .btad-chip {
  background: transparent;
  border: 1px solid color-mix(in srgb, var(--bs-body-color) 16%, transparent);
  border-radius: 999px;
  color: var(--bs-body-color);
  font-size: 0.86rem;
  padding: 0.28rem 0.8rem;
}

[b-77nyrld1ji] .btad-chip:hover:not(.disabled) {
  background: transparent;
  border-color: color-mix(in srgb, var(--btad-ai) 60%, transparent);
  color: var(--btad-ai);
}

/* Aktivní chip drží zvýraznění jen dokud uživatel do pole sám nesáhne – pak by sliboval
   jiné zadání, než jaké se skutečně odešle. */
[b-77nyrld1ji] .btad-chip.btad-chip-active {
  background: color-mix(in srgb, var(--btad-ai) 15%, transparent) !important;
  border-color: color-mix(in srgb, var(--btad-ai) 60%, transparent) !important;
  color: var(--btad-ai) !important;
}

/* Rozsah úpravy: které části sekce se smí změnit. Stojí mimo rámeček se zadáním, protože
   nejde o způsob úpravy (to jsou chipy uvnitř), ale o její dosah – a ten musí být vidět
   samostatně, ne jako další volba v nabídce. */
/* display: block, ne flex: řádky jsou samostatné bloky pod sebou. Flexový kontejner je
   srovnával vedle sebe do mřížky, protože Switch renderuje d-inline-flex obal. */
.btad-scope[b-77nyrld1ji] {
  margin-top: 1.3rem;
}

.btad-scope-label[b-77nyrld1ji] {
  display: block;
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  opacity: 0.45;
  text-transform: uppercase;
}

/* Jeden řádek = přepínač vlevo, obsah té části vpravo. Vedle sebe, ne pod sebou: text pod
   přepínačem vytvářel dva sloupce zalomené do mřížky a nešlo poznat, co k čemu patří. */
.btad-scope-row[b-77nyrld1ji] {
  align-items: baseline;
  border-radius: 6px;
  display: flex;
  gap: 0.75rem;
  padding: 0.35rem 0.5rem;
  transition: background-color 0.15s;
}

.btad-scope-row.btad-scope-on[b-77nyrld1ji] {
  background: color-mix(in srgb, var(--btad-ai) 7%, transparent);
}

/* Pevná šířka přepínače: názvy částí mají různou délku, takže bez ní by obsah každého
   řádku začínal jinde a sloupec by se rozpadl. flex: none brání smrštění u dlouhého obsahu. */
.btad-scope-row[b-77nyrld1ji]  .form-switch {
  flex: none;
  margin-bottom: 0;
  min-width: 7.5rem;
}

.btad-scope-row[b-77nyrld1ji]  label {
  font-size: 0.88rem;
}

/* Obsah části: tichý kontext k přepínači vedle něj, na jeden řádek s výpustkou. Víc řádků
   by u textu roztáhlo dialog a odsunulo tlačítka mimo obrazovku. */
.btad-scope-value[b-77nyrld1ji] {
  font-size: 0.85rem;
  min-width: 0;
  opacity: 0.6;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Prázdná část: popis stavu, ne obsah – kurzíva ho odliší od skutečného textu. */
.btad-scope-empty[b-77nyrld1ji] {
  font-style: italic;
  opacity: 0.4;
}

/* Původní text je kontext, ne obsah k úpravě – proto tichý a s omezenou výškou, aby
   dlouhý blok neodsunul tlačítka mimo obrazovku. */
.btad-original[b-77nyrld1ji] {
  margin-top: 1.4rem;
}

.btad-original-label[b-77nyrld1ji] {
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  margin-bottom: 0.35rem;
  opacity: 0.45;
  text-transform: uppercase;
}

.btad-original-text[b-77nyrld1ji] {
  border-left: 2px solid color-mix(in srgb, var(--bs-body-color) 14%, transparent);
  font-size: 0.9rem;
  line-height: 1.5;
  max-height: 7.5rem;
  opacity: 0.65;
  overflow-y: auto;
  padding-left: 0.75rem;
  white-space: pre-line;
}

.btad-error[b-77nyrld1ji] {
  align-items: center;
  color: var(--bs-danger, #dc3545);
  display: flex;
  font-size: 0.9rem;
  margin-top: 1.1rem;
}

.btad-footer[b-77nyrld1ji] {
  align-items: center;
  border-top: 1px solid color-mix(in srgb, var(--bs-body-color) 12%, transparent);
  display: flex;
  justify-content: space-between;
  margin-top: 1.75rem;
  padding-top: 1.1rem;
}

.btad-secondary[b-77nyrld1ji] {
  opacity: 0.6;
}

/* Chyba po neúspěšném odeslání. Sedí těsně vlevo od tlačítka, ne pod polem: uživatel se
   v tu chvíli dívá na tlačítko, které právě nezabralo.

   margin-left: auto ji odsune k tlačítku a zároveň zruší rozpad patičky – ta má
   space-between, takže tři prvky by se rozprostřely rovnoměrně a "Zrušit" by odplavalo
   doprostřed. */
.btad-error[b-77nyrld1ji] {
  align-items: center;
  color: var(--bs-danger, #dc3545);
  display: flex;
  font-size: 0.85rem;
  gap: 0.45rem;
  line-height: 1.4;
  margin-left: auto;
  margin-right: 0.9rem;
  /* Vjede zprava spolu s tím, jak se objeví – náhlé zjevení textu vedle tlačítka se dá
     přehlédnout, když uživatel kliká podruhé. */
  animation: btad-error-in-b-77nyrld1ji 0.2s ease-out;
}

@keyframes btad-error-in-b-77nyrld1ji {
  from { opacity: 0; transform: translateX(6px); }
  to { opacity: 1; transform: translateX(0); }
}

.btad-error i[b-77nyrld1ji] {
  flex: none;
  font-size: 0.95rem;
}

/* Na úzkém okně je patička sloupec, takže chyba patří nad tlačítko přes celou šířku –
   automatický margin by ji jinak zarovnal k pravé hraně a utrhl od textu. */
@media (max-width: 575.98px) {
  .btad-error[b-77nyrld1ji] {
    margin-left: 0;
    margin-right: 0;
  }
}

@media (max-width: 560px) {
  .btad-title[b-77nyrld1ji] {
    font-size: 1.35rem;
    margin: 0 0 1.35rem;
  }

  /* Na úzkém displeji se tlačítka roztáhnou na plnou šířku a hlavní akce jde nahoru. */
  .btad-footer[b-77nyrld1ji] {
    align-items: stretch;
    flex-direction: column-reverse;
  }
}
/* /Pages/Studio/Profile/V2/Editing/PageAiDialog.razor.rz.scp.css */
/* Dialog AI akcí nad celou stránkou. Rozvržení kopíruje BlockTextAiDialog, aby uživatel
   nemusel poznávat druhý způsob zadávání AI instrukcí; navíc má jen přepínač rozsahu. */

.pgad[b-n4sra9l3n5] {
    padding: 0 28px 24px;
    max-width: 640px;
}

.pgad-topbar[b-n4sra9l3n5] {
    padding-top: 12px;
}

.pgad-close[b-n4sra9l3n5] {
    opacity: .6;
}

.pgad-title[b-n4sra9l3n5] {
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    margin: 0 0 22px;
}

/* Rozsah jako dvojice karet vedle sebe: rozdíl mezi "změní slova" a "zahodí strukturu"
   je nejdůležitější rozhodnutí v dialogu a v rozbalovací nabídce by zaniklo. */
.pgad-scopes[b-n4sra9l3n5] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 16px;
}

.pgad-scope[b-n4sra9l3n5] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px 16px;
    text-align: left;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.pgad-scope:hover[b-n4sra9l3n5] {
    border-color: var(--bs-primary-border-subtle);
}

.pgad-scope-active[b-n4sra9l3n5] {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
}

.pgad-scope-icon[b-n4sra9l3n5] {
    font-size: 17px;
    color: var(--bs-primary);
}

.pgad-scope-name[b-n4sra9l3n5] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-weight: 600;
    font-size: 14px;
}

.pgad-scope-note[b-n4sra9l3n5] {
    font-size: 12px;
    line-height: 1.45;
    color: var(--bs-secondary-color);
}

/* Druhá dlaždice je odkaz do průvodce, ne přepínač. Kotva má vlastní podtržení a barvu,
   které by ji od sousední karty odlišily víc, než je záměr – vizuálně jde pořád o dvojici
   rovnocenných voleb, rozdíl nese až šipka a poznámka. */
.pgad-scope-link[b-n4sra9l3n5] {
    text-decoration: none;
    color: inherit;
}

/* Šipka říká, že volba odsud vede pryč. Tlumená schválně: nese doplňkovou informaci,
   ne důraz – ten patří názvu. */
.pgad-scope-arrow[b-n4sra9l3n5] {
    font-size: 11px;
    color: var(--bs-secondary-color);
}

.pgad-scope-link:hover .pgad-scope-arrow[b-n4sra9l3n5] {
    color: var(--bs-primary);
}

.pgad-ai[b-n4sra9l3n5] {
    background: var(--bs-tertiary-bg);
    border-radius: 12px;
    padding: 16px;
}

.pgad-ai-head[b-n4sra9l3n5] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--bs-secondary-color);
    margin-bottom: 10px;
}

.pgad-ai-icon[b-n4sra9l3n5] {
    color: var(--bs-primary);
}

/* Obal kvůli hover náhledu chipu: overlay leží přes textareu a ta se jen zprůhlední,
   takže rozepsané zadání zůstává beze změny. */
.pgad-ai-body[b-n4sra9l3n5] {
    position: relative;
}

.pgad-ai-body.previewing[b-n4sra9l3n5]  .pgad-ai-input {
    opacity: .25;
}

.pgad-ai-preview[b-n4sra9l3n5] {
    position: absolute;
    inset: 0;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--bs-secondary-color);
    pointer-events: none;
}

.pgad-ai-body[b-n4sra9l3n5]  .pgad-ai-input textarea {
    min-height: 96px;
}

.pgad-chips[b-n4sra9l3n5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.pgad-chips-label[b-n4sra9l3n5] {
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin-right: 2px;
}

.pgad-chip-hover[b-n4sra9l3n5] {
    display: inline-flex;
}

.pgad-chip[b-n4sra9l3n5] {
    font-size: 12.5px;
}

.pgad-chip-active[b-n4sra9l3n5] {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.pgad-footer[b-n4sra9l3n5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 20px;
}

.pgad-secondary[b-n4sra9l3n5] {
    color: var(--bs-secondary-color);
}

@media (max-width: 576px) {
    .pgad-scopes[b-n4sra9l3n5] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Studio/Profile/V2/Editing/PublicBlockInspector.razor.rz.scp.css */
/* Kontextový inspector – panel jen pro vybraný blok. */

/* Jednotná typografická škála panelu.

   Velikosti tu dřív vznikaly po jedné u každého prvku (11,5 / 12 / 12,5 / 13 / 13,5 px),
   takže vedle sebe stály čtyři sotva rozlišitelné stupně, které nenesly žádnou informaci
   o důležitosti – a spodní konec byl na hraně čitelnosti. Tři stupně stačí: nadpis panelu,
   popisky polí, doprovodný text. Kdo přidává další prvek, sáhne po proměnné, ne po novém
   čísle. */
.ppi[b-p8lx8swhn2] {
    --ppi-fs-title: 15px;
    --ppi-fs-label: 13px;
    --ppi-fs-body: 12.5px;

    padding: 16px;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0; /* Bez toho by obsah záložky rostl přes panel místo aby rolovala. */
}

/* Kořen Tabs2 je blokový, takže by omezení výšky nepustil dál a obsah by panel přerostl
   (naměřeno 734 px uvnitř 670 px). Musí se stát flexovým kontejnerem, jinak vnitřní
   rolování níž nemá se čím srovnat. */
.ppi[b-p8lx8swhn2]  .tabs2-root {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

/* Obsah záložky roluje sám, hlavičky záložek zůstávají vidět. Panel je vysoký přes celou
   stránku, takže bez vlastního rolování by se uživatel k přidávání bloků dostal jen
   posunem celé stránky. */
.ppi[b-p8lx8swhn2]  .ppi-tab-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-top: 16px;
}

/* Tiptap toolbar se globálně nezalamuje (jedna řada tlačítek nad širokým editorem).
   V úzkém panelu ale jeho min-content (~370 px) podepře šířku celého obsahu inspectoru:
   flexové položky se přestanou umět zúžit a všechna pole i texty přetečou přes okraj
   panelu – při výchozích 300 px byl uříznutý každý popisek. Zalomení v inspectoru vrací
   obsahu možnost sledovat šířku panelu; sdílený tiptap.css zůstává beze změny, protože
   jinde je jednořadý toolbar žádoucí. */
.ppi[b-p8lx8swhn2]  .tiptap-toolbar {
    flex-wrap: wrap;
}

.ppi-empty[b-p8lx8swhn2] {
    color: var(--bs-secondary-color);
    font-size: var(--ppi-fs-label);
    line-height: 1.6;
}

/* Hlavička nese typ bloku, volitelnou nápovědu a mazání. Nápověda patří k názvu, ne k mazání,
   proto ji od pravé hrany odděluje automatický margin místo space-between – to by ji při třech
   prvcích odplavilo doprostřed panelu, kde by se četla jako samostatné ovládání. */
/* margin-bottom navíc k paddingu pod čárou: samotný padding oddělí jen čáru od textu nad ní,
   ale obsah pod hlavičkou (VerticalStack) na ni pak nasedal bez mezery – hlavička a první pole
   panelu tak vizuálně splývaly v jeden blok. */
.ppi-header[b-p8lx8swhn2] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 12px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--bs-border-color);
}

/* Název typu bloku je nadpis celého panelu – musí být jasně nejsilnější prvek, jinak splyne
   s popisky polí pod sebou a uživatel nepozná, co vlastně edituje. */
.ppi-title[b-p8lx8swhn2] {
    font-weight: 700;
    font-size: var(--ppi-fs-title);
    letter-spacing: -0.01em;
}

/* Nápověda k inline editaci sedí hned za názvem, mazání se odsune k pravé hraně. */
.ppi-header-hint[b-p8lx8swhn2] {
    display: inline-flex;
    align-items: center;
    margin-right: auto;
}

.ppi-header-hint[b-p8lx8swhn2]  i {
    font-size: var(--ppi-fs-label);
    opacity: .4;
    cursor: help;
    transition: opacity .15s;
}

.ppi-header-hint:hover[b-p8lx8swhn2]  i {
    opacity: .85;
}

/* Bloky formuláře. Mezera je součástí popisku, ne VerticalStacku – ten dává stejný odstup
   i mezi popisek a jeho pole, takže popisky "plavaly" mezi dvěma stejně velkými mezerami
   a nešlo poznat, ke kterému poli patří. */
/* Výchozí stretch zůstává: pole (TextBox, Tiptap) mají zabrat celou šířku panelu.
   Sekce zakončené odkazem ("Přidat média", "Přidat kartu") si sráží šířku samy níž –
   roztažený odkaz by měl klikací plochu až u pravé hrany, daleko od svého textu. */
.ppi-field[b-p8lx8swhn2] {
    display: flex;
    flex-direction: column;

    /* Sekce je zároveň položkou flexového sloupce panelu, kde výchozí `flex-shrink: 1`
       dovolí, aby dostala míň místa, než kolik její obsah potřebuje. U polí s textem to
       nevadilo (zalomí se), ale výběr pozadí má výšku danou poměrem dlaždic: sekce se
       srazila na 327 px proti 353 px obsahu a mřížka přetekla přes nadpis té následující.
       flex-shrink: 0 nechá sekci vždy zabrat svou skutečnou výšku. */
    flex-shrink: 0;

    /* Sekce záměrně NENÍ container query kontejnerem. Do 2026-08 tu stálo
       `container: ppi-field / inline-size`, aby výběr pozadí podle šířky sekce poznal, kolik
       sloupců dlaždic se vejde. Jenže `container-type: inline-size` zapíná size containment
       na blokové ose, takže sekce nedopočítá vlastní výšku z obsahu, jehož rozvržení sama
       určuje: v úzkém panelu, kde mřížka podkladů zalomí na dva řádky, si sekce držela výšku
       jednořádkové mřížky a druhý řádek dlaždic vytekl 29 px přes nadpis sekce pod ní.
       Samotný flex-shrink: 0 na to nestačí – sekce se nesráží, ona si tu výšku špatně změří.
       Výběr pozadí proto počítá sloupce sám přes grid auto-fit a měřicí bod nepotřebuje
       (viz PublicHeroBackgroundPicker.razor.css); přidání kontejneru zpět tu vadu vrátí. */
}

/* Přidávací akce na konci sekce ("Přidat kartu", "Přidat položku") jen na šířku svého obsahu –
   roztažený odkaz má klikací plochu až u pravé hrany, daleko od textu.
   ::deep je nutné: obal ButtonLinku vykresluje cizí komponenta, takže na něm chybí scope
   atribut tohoto souboru a pravidlo by se tiše zahodilo. */
/* ButtonLink obaluje své tlačítko divem s tooltipem, takže flexovou položkou je ten div –
   CssClass na tlačítku by k align-self nedosáhla. Míří se proto na poslední přímý potomek
   sekce, což je právě ten obal. */
.ppi-items[b-p8lx8swhn2]  > div:last-child {
    align-self: flex-start;
}

/* Popisek pole: tučný a tmavý, aby se odlišil od hodnoty v poli pod ním. Původní tlumená
   šedá na stejné váze jako obsah dělala z panelu jednolitý sloupec textu, ve kterém nešlo
   rozeznat strukturu. */
.ppi-label[b-p8lx8swhn2] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--ppi-fs-label);
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bs-body-color);
    margin-bottom: 6px;
}

/* Ikona nápovědy vedle popisku je sekundární; rozsvítí se až při najetí. */
.ppi-label[b-p8lx8swhn2]  i.fa-circle-info {
    font-size: var(--ppi-fs-body);
    opacity: .35;
    cursor: help;
    transition: opacity .15s;
}

.ppi-label:hover[b-p8lx8swhn2]  i.fa-circle-info {
    opacity: .8;
}

/* Doprovodná poznámka pod obsahem sekce – například že kontakt i ukázková skladba patří
   celému prostoru, takže se změní na všech stránkách najednou.

   Dřív to byla karta s vlastním podkladem umístěná nad obsahem. Vypadala tím jako obsah
   sekce (uživatel četl rámeček dřív než pole, kvůli kterým sekci otevřel) a odsouvala
   skutečné ovládání níž. Teď je to tichý text pod obsahem: informace zůstává dostupná,
   ale nesoupeří s tím, co se v sekci dá udělat. */
.ppi-note[b-p8lx8swhn2] {
    font-size: var(--ppi-fs-body);
    line-height: 1.55;
    color: var(--bs-secondary-color);
    margin-top: 8px;
}

/* Editory obsahu modulů znovupoužité z v1 panelu.

   V1 je vykresloval úzký sloupec v postranním menu, proto mají seznam položek napsaný
   bootstrapovými třídami .small/.smaller (menší než 12px). V panelu v2 je na text víc místa
   a takto drobné písmo se v něm špatně čte – u položek s názvem, interpretem i službami pod
   sebou splynou tři řádky v šedou skvrnu. Srovnáváme je proto na škálu panelu, aby v jednom
   sloupci nestály dvě různé typografie vedle sebe.

   Sem patří i tlačítka .btn-sm z v1: hero audio editor jimi nabízí nahrání skladby a vedle
   ostatního ovládání inspectoru vypadala jako méně důležitá akce, ačkoli je to jediná akce
   celé sekce.

   ::deep je nutné: obsah vykresluje cizí komponenta, takže na jejích elementech chybí
   scope atribut tohoto souboru a pravidlo by se bez něj tiše zahodilo. */
.ppi-module-editor[b-p8lx8swhn2]  .small,
.ppi-module-editor[b-p8lx8swhn2]  small,
.ppi-module-editor[b-p8lx8swhn2]  .smaller,
.ppi-field[b-p8lx8swhn2]  .profile-hero-audio-editor .smaller,
.ppi-field[b-p8lx8swhn2]  .profile-hero-audio-editor .small {
    font-size: var(--ppi-fs-body);
}

.ppi-field[b-p8lx8swhn2]  .profile-hero-audio-editor .btn-sm {
    font-size: var(--ppi-fs-label);
}

/* Prázdný stav hero audia dědí z v1 velikost odstavce, která v panelu vedle popisků polí
   působila jako nadpis sekce, ačkoli je to jen sdělení "zatím nic". */
.ppi-field[b-p8lx8swhn2]  .profile-hero-audio-editor .no-hero-audio .text-muted {
    font-size: var(--ppi-fs-label);
}

/* AI úprava textu bloku. */
.ppi-ai[b-p8lx8swhn2] {
    /* Stejná fialová jako v dialogu i v dialogu nového projektu – AI má napříč aplikací
       jednu barvu, aby šla poznat na první pohled. */
    --ppi-ai-accent: #8b7cf6;
}

/* Odkaz, ne plnobarevné tlačítko: vyplněná plocha na konci panelu vypadala jako "Uložit".
   AI úprava je nabídka, ne potvrzení změn. Výraznost proto nese jen fialová barva
   a o něco větší písmo než u ostatních ButtonLinků v inspectoru. */
.ppi-ai[b-p8lx8swhn2]  .ppi-ai-open {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    /* Záporný levý okraj srovná text s ostatním obsahem panelu i s vnitřním paddingem,
       který drží pohodlnou klikací plochu. */
    margin-left: -8px;
    padding: 6px 8px;
    border-radius: 8px;
    background: transparent;
    color: var(--ppi-ai-accent);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: background-color .15s ease, filter .15s ease;
}

.ppi-ai[b-p8lx8swhn2]  .ppi-ai-open:hover:not(.disabled) {
    /* Jemný fialový podklad místo změny barvy textu – hover je znát, ale nepřipomíná tlačítko. */
    background: color-mix(in srgb, var(--ppi-ai-accent) 12%, transparent);
    color: var(--ppi-ai-accent);
    filter: brightness(.95);
}

.ppi-ai[b-p8lx8swhn2]  .ppi-ai-open.disabled {
    opacity: .5;
}

/* Krok zpět je záchranná brzda, ne rovnocenná akce – zůstává tichý pod tlačítkem. */
.ppi-ai[b-p8lx8swhn2]  .ppi-ai-undo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    font-size: var(--ppi-fs-body);
    opacity: .7;
}

.ppi-ai[b-p8lx8swhn2]  .ppi-ai-undo:hover {
    opacity: 1;
}

.ppi-ai-status[b-p8lx8swhn2] {
    margin-top: 8px;
    font-size: 12.5px;
    color: var(--bs-secondary-color);
}

/* Průběh AI úpravy. Karta s vlastním podkladem, ne řádek textu: drobná šedá věta pod
   tlačítkem se v panelu ztratila a uživatel po odeslání nevěděl, jestli se vůbec něco děje. */
.ppi-ai-progress[b-p8lx8swhn2] {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--ppi-ai-accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--ppi-ai-accent) 25%, transparent);
}

.ppi-ai-progress-head[b-p8lx8swhn2] {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--ppi-ai-accent);
    font-size: var(--ppi-fs-label);
    font-weight: 600;
}

/* Hůlka místo spinneru: stejný symbol jako na tlačítku, takže je jasné, která akce běží.
   Pulsuje, aby bylo znát, že jde o probíhající stav, ne o statický popisek. */
.ppi-ai-progress-head i[b-p8lx8swhn2] {
    font-size: 14px;
    animation: ppi-ai-wand-b-p8lx8swhn2 1.4s ease-in-out infinite;
}

@keyframes ppi-ai-wand-b-p8lx8swhn2 {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .55; transform: scale(.92); }
}

/* Neurčitý pruh: volání modelu nehlásí postup, takže se jezdí tam a zpět místo plnění.
   overflow skrývá výběžky posuvníku za okraji karty. */
.ppi-ai-progress-bar[b-p8lx8swhn2] {
    margin-top: 10px;
    height: 4px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--ppi-ai-accent) 18%, transparent);
    overflow: hidden;
}

.ppi-ai-progress-bar span[b-p8lx8swhn2] {
    display: block;
    width: 40%;
    height: 100%;
    border-radius: inherit;
    background: var(--ppi-ai-accent);
    animation: ppi-ai-slide-b-p8lx8swhn2 1.3s ease-in-out infinite;
}

@keyframes ppi-ai-slide-b-p8lx8swhn2 {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(250%); }
}

/* Selhání se odliší barvou, ale bez plného varování – obsah zůstal, jen se nezměnil. */
.ppi-ai-failed[b-p8lx8swhn2] {
    color: var(--bs-danger);
}

/* Položky karet a ceníku. Každá je vizuálně ohraničená, aby v úzkém panelu bylo poznat,
   kde jedna končí a druhá začíná – tři pole pod sebou bez rámu splývají v jeden seznam. */
.ppi-item[b-p8lx8swhn2] {
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Název a mazání na jednom řádku: mazací křížek patří k celé položce, ne k poli pod ním. */
.ppi-item-head[b-p8lx8swhn2] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ppi-item-head[b-p8lx8swhn2]  .textbox-wrapper,
.ppi-item-head[b-p8lx8swhn2]  input {
    flex: 1;
    min-width: 0;
}

/* Výběr fotek z galerie prostoru.

   Mřížka náhledů místo seznamu se zaškrtávátky: u fotek se rozhoduje podle toho, co je na nich
   vidět, a název souboru (guid.jpg) uživateli neřekne nic. Tři sloupce jsou kompromis pro úzký
   panel – při dvou zabere výběr dvaceti fotek přes deset řádků, při čtyřech je náhled tak malý,
   že se fotky přestanou rozeznávat. */
.ppi-gallery-picker[b-p8lx8swhn2] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}

/* Rozsah galerie prostoru (Všechny / Pouze vybrané) je upřesnění volby původu nad ním, ne
   rovnocenné druhé pole – zobrazuje se jen u jedné z jejích možností. Proto jen odsazení od
   dropdownu a šířka podle obsahu: roztažený na celý panel by vypadal jako samostatné
   nastavení, přestože na předchozí volbě závisí.

   ::deep je nutné: přepínač vykresluje komponenta z Megacentral.Blazor, takže na jejím
   kořenovém elementu chybí scope atribut tohoto souboru a pravidlo by se tiše zahodilo. */
.ppi-field[b-p8lx8swhn2]  .ppi-gallery-scope {
    margin-top: 8px;
    align-self: flex-start;
}

/* Počet vybraných vedle popisku, stejně tlumeně jako u editoru médií (.ppm-count). */
.ppi-gallery-count[b-p8lx8swhn2] {
    opacity: .55;
    font-weight: 400;
    letter-spacing: 0;
}

.ppi-gallery-pick[b-p8lx8swhn2] {
    position: relative;
    display: block;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 6px;
    overflow: hidden;
    background: none;
    cursor: pointer;
    /* Rezervuje místo dřív, než se náhled stáhne – jinak mřížka po doskákání obrázků
       poskočí a uživateli uteče dlaždice zpod kurzoru. */
    aspect-ratio: 4 / 3;
}

.ppi-gallery-pick img[b-p8lx8swhn2] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    /* Nevybrané fotky jsou ztlumené, aby byl výběr čitelný na první pohled i bez odznaku. */
    opacity: .45;
    transition: opacity .15s;
}

.ppi-gallery-pick:hover img[b-p8lx8swhn2] {
    opacity: .8;
}

.ppi-gallery-pick.is-selected[b-p8lx8swhn2] {
    border-color: var(--bs-primary);
}

.ppi-gallery-pick.is-selected img[b-p8lx8swhn2] {
    opacity: 1;
}

/* Vyčerpaný strop: dlaždice zůstane viditelná, ale nereaguje – skrývat ji by z mřížky
   odebralo fotky a vypadalo by to jako chyba načítání. */
.ppi-gallery-pick:disabled[b-p8lx8swhn2] {
    cursor: not-allowed;
    opacity: .35;
}

/* Pořadové číslo výběru = pořadí na stránce. Kontrastní podklad, protože leží na fotce,
   jejíž barvu nelze předvídat. */
.ppi-gallery-badge[b-p8lx8swhn2] {
    position: absolute;
    top: 4px;
    left: 4px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--bs-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
}
/* /Pages/Studio/Profile/V2/Editing/PublicBlockMediaEditor.razor.rz.scp.css */
/* Média bloku – dlaždice, mazání a nahrávání.

   Přesunuto z PublicBlockInspector.razor.css spolu s markupem: izolované CSS rodiče se na
   markup dítěte nevztahuje, takže by pravidla po vyčlenění komponenty tiše přestala platit. */

/* Popisek sekce. Duplikát téhož pravidla z inspectoru – scoped CSS nejde mezi komponentami
   sdílet, takže obě komponenty musí mít vlastní kopii. Velikost je fallback na tutéž
   hodnotu, jakou drží --ppi-fs-label: proměnná se dědí z panelu, ale komponenta musí zůstat
   čitelná i kdyby ji někdo použil mimo něj. */
.ppm-label[b-f7l2wet34j] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: var(--ppi-fs-label, 13px);
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bs-body-color);
    margin-bottom: 6px;
}

/* Sekce je sloupec, aby dlaždice, nahrávání a případná chyba šly pod sebou. Odpovídá
   .ppi-field, ve kterém markup dřív žil. */
.ppm[b-f7l2wet34j] {
    display: flex;
    flex-direction: column;
}

/* Nahrávací tlačítko jen na šířku svého obsahu – roztažené by mělo klikací plochu až
   u pravé hrany, daleko od textu. ::deep proto, že kořen FilePickerButtonu vykresluje
   cizí komponenta a scope atribut na něj nedosáhne. */
.ppm[b-f7l2wet34j]  .file-picker-button {
    align-self: flex-start;
}

/* Média bloku. Dlaždice jsou malé záměrně – panel má vedle náhledu stránky málo místa
   a slouží ke správě, ne k prohlížení; od toho je náhled sám. */
/* Počítadlo doplňuje popisek, nesmí ho přebít – proto normální váha a tlumená barva
   uvnitř jinak tučného popisku. margin-left je 0: popisek je flex s vlastním gapem. */
.ppm-count[b-f7l2wet34j] {
    opacity: .55;
    font-weight: 400;
    letter-spacing: 0;
}

/* Gap i horní odsazení počítají s křížkem, který přesahuje 8 px za roh dlaždice –
   bez toho by se u sousedních dlaždic překrýval a nahoře ho ořízl panel.
   Horní odsazení je jen 4 px: zbytek mezery pod popiskem už dává .ppi-label. */
.ppm-list[b-f7l2wet34j] {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 4px;
    margin-bottom: 10px;
}

/* Dlaždice musí být dost velká, aby se do mazacího křížku dalo strefit prstem;
   při 56 px byl cíl menší než doporučených 24 px a prakticky netrefitelný. */
.ppm-item[b-f7l2wet34j] {
    position: relative;
    width: 76px;
    height: 76px;
    border-radius: 6px;
    /* overflow ponecháno viditelné, jinak by křížek přesahující roh byl oříznutý */
    overflow: visible;
}

.ppm-item img[b-f7l2wet34j],
.ppm-item .ppm-video[b-f7l2wet34j] {
    border-radius: 6px;
}

.ppm-item img[b-f7l2wet34j] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Video nemá v dlaždici 56 px čitelný poster, takže jen ikona na tmavém podkladu. */
.ppm-video[b-f7l2wet34j] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1a1a1a 0%, #3d3d3d 100%);
    color: #fff;
    font-size: 13px;
}

/* Mazací křížek se drží v rohu dlaždice; ::deep proto, že ButtonLink je cizí komponenta
   a scoped atribut na její kořen nedosáhne. Sedí lehce mimo dlaždici, aby nepřekrýval
   fotku a byl čitelný i nad světlým snímkem – proto plné pozadí a bílý okraj. */
.ppm-item[b-f7l2wet34j]  .ppm-remove {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #1a1a1a;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 12px;
    line-height: 1;
    z-index: 2;
    /* ButtonLink si nese vlastní padding, který by ikonu vytlačil z optického středu kolečka */
    padding: 0;
}

/* Ikona uvnitř ButtonLinku má margin-right pro odsazení od textu; tlačítko je ale
   jen ikona, takže by ji ten margin posunul o 2,5 px vlevo od středu kolečka.
   !important proto, že pravidlo ButtonLinku má vyšší specificitu. */
.ppm-item[b-f7l2wet34j]  .ppm-remove i {
    margin: 0 !important;
    line-height: 1;
    display: block;
}

.ppm-item[b-f7l2wet34j]  .ppm-remove:hover {
    background: var(--bs-danger, #dc3545);
}

.ppm-error[b-f7l2wet34j] {
    margin-top: 8px;
    font-size: var(--ppi-fs-body, 12.5px);
    color: var(--bs-danger, #dc3545);

    /* Souhrn chyb dávky je víceřádkový (jeden řádek na soubor). Bez pre-line by se řádky
       slily do jedné věty a nešlo by přečíst, který soubor selhal a proč. */
    white-space: pre-line;
}
/* /Pages/Studio/Profile/V2/Editing/PublicCardsBlockEditor.razor.rz.scp.css */
/* Položky karet – vyčleněno z PublicBlockInspector.razor.css spolu s markupem:
   izolované CSS rodiče se na markup dítěte nevztahuje, takže by pravidla po vyčlenění
   komponenty tiše přestala platit. */

/* Sekce je sloupec; odpovídá .ppi-field, ve kterém markup dřív žil. */
.ppc[b-pgb2yjptzm] {
    display: flex;
    flex-direction: column;
}

/* Popisek sekce. Duplikát pravidla z inspectoru – scoped CSS nejde mezi komponentami sdílet. */
.ppc-label[b-pgb2yjptzm] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bs-body-color);
    margin-bottom: 6px;
}

/* Počítadlo doplňuje popisek, nesmí ho přebít – proto normální váha a tlumená barva
   uvnitř jinak tučného popisku. */
.ppc-count[b-pgb2yjptzm] {
    opacity: .55;
    font-weight: 400;
    letter-spacing: 0;
}

/* Každá položka je vizuálně ohraničená, aby v úzkém panelu bylo poznat, kde jedna končí
   a druhá začíná – pole pod sebou bez rámu splývají v jeden seznam. */
.ppc-item[b-pgb2yjptzm] {
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Název a mazání na jednom řádku: mazací křížek patří k celé položce, ne k poli pod ním. */
.ppc-item-head[b-pgb2yjptzm] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ppc-item-head[b-pgb2yjptzm]  .textbox-wrapper,
.ppc-item-head[b-pgb2yjptzm]  input {
    flex: 1;
    min-width: 0;
}

/* Přidávací akce jen na šířku svého obsahu – roztažený odkaz má klikací plochu až u pravé
   hrany, daleko od textu. ButtonLink obaluje tlačítko divem, takže flexovou položkou je
   ten obal a míří se na poslední přímý potomek sekce. */
.ppc[b-pgb2yjptzm]  > div:last-child {
    align-self: flex-start;
}
/* /Pages/Studio/Profile/V2/Editing/PublicCourseEditorDialog.razor.rz.scp.css */
/* Modal nastavení události nad v2 editorem stránek.

   Širší než AI dialogy (640 px): obsahem je plný editor události s vnořeným accordionem
   variant a termínů, kde na jednom řádku stojí datum, typ konání a stav termínu. V užším
   dialogu se tyto řádky lámaly a accordion přestal být čitelný. */

.pced[b-cgrkr71hiw] {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 860px;

    /* Strop výšky drží dialog v okně i u události s mnoha termíny; roluje jen obsah,
       takže záhlaví se zavíracím křížkem zůstává dostupné. */
    max-height: 86vh;
}

.pced-topbar[b-cgrkr71hiw] {
    padding: 14px 24px 10px;
    border-bottom: 1px solid var(--bs-border-color, rgba(255, 255, 255, .12));
}

.pced-title[b-cgrkr71hiw] {
    font-size: 18px;
    font-weight: 600;
}

.pced-close[b-cgrkr71hiw] {
    opacity: .6;
}

.pced-body[b-cgrkr71hiw] {
    padding: 16px 24px 24px;
    overflow-y: auto;
}

/* Editor je vložený z v1 sidebaru, kde počítá s úzkým sloupcem. V modalu má místa dost,
   takže se ruší jeho vlastní horní odsazení – jinak by nad záložkami vznikla prázdná mezera
   navíc k odsazení dialogu. ::deep proto, že markup renderuje vnořená komponenta a scoped
   atribut na něj nedosáhne. */
.pced-body[b-cgrkr71hiw]  .courses-editor-panel {
    padding-top: 0;
}
/* /Pages/Studio/Profile/V2/Editing/PublicHeroPhotoTile.razor.rz.scp.css */
/* Dlaždice vlastní fotky na pozadí hrdiny.

   Do 2026-08 stála v mřížce vedle dlaždic generovaných podkladů a její rozměry byly záměrný
   duplikát pravidel z PublicHeroBackgroundPicker.razor.css, aby řádek mřížky nepřeskočil.
   Výběr podkladu zmizel i s tou komponentou, takže dlaždice je teď jediná a rozměry si řídí
   sama – žádný druhý soubor už se s ní nemusí držet v souladu. */

/* Strop se dává na šířku, ne na výšku: dlaždice drží poměr 16:9, takže výšku určuje šířka.
   Sidebar je nastavitelný až na 900 px a při plné šířce by náhled sám zabral přes 500 px
   a odsunul zbytek nastavení pod viditelnou plochu. 400 px odpovídá výšce 225 px, tedy
   zhruba tomu, co dlaždice zabírala v původním úzkém panelu.

   max-height by tu nefungoval: na prvku s aspect-ratio ořízne jen vykreslení, kdežto do
   layoutu si rodič vezme plnou výšku dopočtenou ze šířky – dlaždice by vizuálně skončila
   dřív, ale místo by si držela dál a text pod ní by se s ní překryl. */
.pph[b-1fv359b854] {
    display: flex;
    flex-direction: column;
    max-width: 400px;
}

/* FilePickerButton překrývá dlaždici průhledným inputem, takže klikací je celá plocha.
   ::deep proto, že jeho kořen vykresluje cizí komponenta a scope atribut na něj nedosáhne. */
.pph[b-1fv359b854]  .file-picker-button {
    display: block;
    width: 100%;
}

.pph-tile[b-1fv359b854] {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 6px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    text-align: left;
    transition: border-color .15s ease, background-color .15s ease;
}

/* Hover jen na prázdné dlaždici: ta se klikáním nahrává, kdežto dlaždice s fotkou je pouhý
   náhled a nabízet u ní kurzor ruky by slibovalo akci, která na ni není navázaná. */
.pph-tile-empty:hover[b-1fv359b854] {
    border-color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
}

/* Nahraná fotka je to, co je na stránce vidět – rámeček to potvrzuje. Kurzor je default,
   protože klik na dlaždici nic nedělá; měnit se dá jen křížkem. */
.pph-tile-selected[b-1fv359b854] {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 1px var(--bs-primary);
    cursor: default;
}

/* Prázdná dlaždice je výzva k nahrání, ne plocha s obsahem – přerušovaný okraj ji odliší
   od podkladů, které už něco ukazují. */
.pph-tile-empty[b-1fv359b854] {
    border-style: dashed;
}

.pph-swatch[b-1fv359b854] {
    display: block;
    /* Poměr stran, ne pevná výška – náhled tak drží tvar bez ohledu na šířku panelu.

       16:9 místo dřívějších 4:3: dlaždice stála v mřížce vedle dvou dalších, takže byla úzká
       a vyšší poměr jí slušel. Širší tvar je navíc blíž tomu, jak fotka vypadá na stránce.

       aspect-ratio místo dřívějšího height:0 + padding-bottom:56.25%: procentní padding se
       počítá ze šířky, ale do výšky prvku se nepromítne (prvek zůstává nulově vysoký), takže
       obsah pod ním se kreslil přes něj. aspect-ratio drží skutečnou výšku boxu, takže tok
       pod dlaždicí zůstane nedotčený.

       Strop velikosti řeší max-width na .pph, ne max-height tady: na prvku s aspect-ratio
       ořízne max-height jen vykreslení, kdežto do layoutu si rodič vezme plnou výšku
       dopočtenou ze šířky – dlaždice pak vizuálně končí dřív, ale místo si drží dál a text
       pod ní se překrývá. */
    position: relative;
    aspect-ratio: 16 / 9;
    min-height: 60px;
    border-radius: 4px;
    background-color: var(--public-bg);
    background-size: cover;
    background-position: center;
}

/* Ikona "nahrát" se středí přímo flexem: po přechodu na aspect-ratio má plocha skutečnou
   výšku, takže absolutní překryv, který si vynucoval dřívější height:0, už není potřeba. */
.pph-swatch-empty[b-1fv359b854] {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    font-size: 16px;
    background-color: var(--bs-tertiary-bg);
}

/* Velikost dědí z panelu (--ppi-fs-body); fallback drží komponentu čitelnou i mimo něj. */
.pph-name[b-1fv359b854] {
    font-size: var(--ppi-fs-body, 12.5px);
    line-height: 1.2;
    color: var(--bs-secondary-color);
    /* Ořez místo zalomení: popisek je jednořádkový a v nejužším panelu by se druhý řádek
       otiskl do výšky celé sekce. */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pph-tile-selected .pph-name[b-1fv359b854] {
    color: var(--bs-body-color);
}

/* Mazací křížek sedí v rohu dlaždice a lehce mimo ni, aby nepřekrýval fotku a byl čitelný
   i nad světlým snímkem – proto plné pozadí a bílý okraj. ::deep proto, že ButtonLink je
   cizí komponenta a scoped atribut na její kořen nedosáhne. */
.pph-tile[b-1fv359b854]  .pph-remove {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #1a1a1a;
    border: 2px solid #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 12px;
    line-height: 1;
    z-index: 2;
    /* ButtonLink si nese vlastní padding, který by ikonu vytlačil z optického středu kolečka */
    padding: 0;
}

/* Ikona uvnitř ButtonLinku má margin-right pro odsazení od textu; tlačítko je ale jen
   ikona, takže by ji ten margin posunul mimo střed kolečka. !important proto, že pravidlo
   ButtonLinku má vyšší specificitu. */
.pph-tile[b-1fv359b854]  .pph-remove i {
    margin: 0 !important;
    line-height: 1;
    display: block;
}

.pph-tile[b-1fv359b854]  .pph-remove:hover {
    background: var(--bs-danger, #dc3545);
}

.pph-error[b-1fv359b854] {
    margin-top: 8px;
    font-size: var(--ppi-fs-body, 12.5px);
    color: var(--bs-danger, #dc3545);
}
/* /Pages/Studio/Profile/V2/Editing/PublicPageEditor.razor.rz.scp.css */
/* Editor veřejné stránky: lišta, canvas a kontextový inspector.

   Barvy editoru pocházejí z aplikačního motivu (--bs-*), ne ze stylu veřejné stránky –
   editor je součást aplikace, ne webu, a musí zůstat čitelný bez ohledu na to, jak tmavý
   nebo světlý styl uživatel právě ladí. */

/* Editor se vejde přesně do okna a roluje uvnitř sebe, ne spolu se stránkou – jinak by se
   dokument protáhl na výšku celého náhledu a inspector by odjel pryč z obrazovky.

   Výšku určuje EditorLayout (100dvh), ne editor sám: dokud editor běžel v MainLayoutu,
   bral si 100dvh pod topbarem, takže součet přesahoval okno. Tady stačí vyplnit rodiče. */
.ppe-shell[b-ymunp14cyy] {
    display: flex;
    flex-direction: column;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
}

/* flex-wrap kvůli úzkému oknu: název stránky, přepínač zařízení a Publikovat se na mobilu
   do jedné řady nevejdou a bez zalomení tlačítko vyčnívalo za okraj (naměřeno 496 px při
   šířce 390 px), takže celá stránka dostala vodorovný posuvník. */
.ppe-toolbar[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
}

/* Na úzkém okně nesmí rozpěrka tlačit akce mimo řádek – po zalomení tvoří druhý řádek,
   kde má spacer nulovou roli. */
@media (max-width: 576px) {
    .ppe-toolbar-spacer[b-ymunp14cyy] {
        flex-basis: 100%;
        height: 0;
    }
}

.ppe-page-name[b-ymunp14cyy] {
    font-weight: 500;
}

.ppe-toolbar-spacer[b-ymunp14cyy] {
    flex: 1;
}

.ppe-device-switch[b-ymunp14cyy] {
    display: flex;
    gap: 2px;
    margin-right: 6px;
    padding: 2px;
    background: var(--bs-tertiary-bg);
    border-radius: 8px;
}

/* Aktivní pohled poznat podle podkladu, ne podle barvy ikony – barevná ikona by v liště
   soupeřila s tlačítkem Publikovat, které je jediná nevratná akce. */
.ppe-device-switch[b-ymunp14cyy]  .ppe-device-active {
    background: var(--bs-body-bg);
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}

.ppe-device-switch[b-ymunp14cyy]  a {
    padding: 5px 10px;
    border-radius: 6px;
}

/* Svislá linka na hranici mezi skupinou pohledu a úprav (viz komentář u skupin v .razor).
   Pouhá mezera na to nestačila: ikony mají vlastní padding, takže i 14px odsazení splynulo
   s běžným gapem mezi tlačítky a skupiny nebyly poznat. Skupina publikace linku nepotřebuje –
   odděluje se sama tvarem a barvou odznaku stavu a tlačítka Sdílet.

   Vlastní margin navíc ke gapu lišty (10 px) – linka potřebuje vzduch po obou stranách,
   jinak vypadá jako přilepená k sousední ikoně. */
.ppe-toolbar-divider[b-ymunp14cyy] {
    align-self: stretch;
    width: 1px;
    margin: 2px 4px;
    background: var(--bs-border-color);
}

/* Po zalomení lišty na úzkém okně tvoří skupiny vlastní řádky a svislá linka mezi nimi
   nedává smysl – roztáhla by se přes celou výšku řádku jako náhodný škrt. Skupiny tam
   odděluje samotné zalomení. */
@media (max-width: 576px) {
    .ppe-toolbar-divider[b-ymunp14cyy] {
        display: none;
    }
}

/* Vypnuté akce v liště (Publikovat a Zahodit bez konceptu) musí být poznat na první pohled.
   Výchozí vzhled tlumí disabled jen nepatrně, takže uživatel klikal do "živého" tlačítka
   a nedostal žádnou odezvu – přesně tak se projevila chyba s konceptem z průvodce. */
/* Ikonové odkazy v liště smí zůstat utlumené, ale tlačítko Publikovat ne – viz .ppe-publish-btn.
   Selektor proto vylučuje primární akci, jinak by ji ztlumil na nečitelných 45 %. */
.ppe-toolbar[b-ymunp14cyy]  .btn.disabled:not(.ppe-publish-btn) {
    opacity: .45;
}

/* Stav a akce drží u sebe jako jeden celek, aby mezi ně nemohl vlézt zalomený řádek lišty. */
.ppe-publish-group[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* Odznak, Publikovat i Sdílet stojí vedle sebe a hlásí jedno téma (veřejná podoba stránky),
   takže musí mít shodnou výšku i poloměr – jinak lišta vypadá poskládaná z cizích dílů.
   Výška se drží přes min-height, ne přes padding: text odznaku a text v <Button> mají jinou
   výšku řádku, takže stejný padding by dal různě vysoké prvky. */
.ppe-badge[b-ymunp14cyy],
.ppe-toolbar[b-ymunp14cyy]  .ppe-publish-btn,
.ppe-toolbar[b-ymunp14cyy]  .ppe-share-btn {
    min-height: 34px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
}

.ppe-badge[b-ymunp14cyy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
}

/* Odznak konceptu je jediné místo, kde uživatel pozná, že má nepublikované změny – proto
   warning barva s obrysem a tečkou, ne jen text. Bez obrysu splýval s lištou natolik, že
   uživatelé publikovat vůbec nezkusili a mysleli si, že je stránka aktuální. */
.ppe-badge-draft[b-ymunp14cyy] {
    background: rgba(232, 163, 61, .18);
    border: 1px solid rgba(232, 163, 61, .55);
    color: #90600f;
}

/* Kotva pro nabídku zahození – bez position: relative by se absolutně umístěná nabídka
   ukotvila až k liště a u širokého okna odletěla mimo odznak. */
.ppe-draft-switch[b-ymunp14cyy] {
    position: relative;
    display: flex;
}

.ppe-badge-draft-trigger[b-ymunp14cyy] {
    cursor: pointer;
    user-select: none;
}

.ppe-badge-draft-trigger:hover[b-ymunp14cyy] {
    background: rgba(232, 163, 61, .28);
}

/* Chevron je tlumený schválně: odznak je především stav, nabídka je až druhotná role,
   a plně sytá šipka by z něj udělala tlačítko a signál konceptu oslabila. */
.ppe-badge-chevron[b-ymunp14cyy] {
    font-size: 10px;
    opacity: .65;
}

/* Nabídka je užší než u stylů – nese jednu akci a větu k ní, ne seznam položek.

   white-space: normal je nutné: nabídka visí uvnitř .ppe-badge, který má kvůli sobě samému
   nowrap, a text nabídky ho dědil – věta se pak nezalomila a přetekla mimo rámeček ven z lišty.
   Dědičnost se tu neprojeví na odznaku samotném, protože ten má vlastní pravidlo. */
.ppe-draft-menu[b-ymunp14cyy] {
    min-width: 260px;
    max-width: min(320px, calc(100vw - 32px));
    white-space: normal;
}

/* Bez horního odsazení nadpisu, který tahle nabídka nemá. */
.ppe-draft-menu-hint[b-ymunp14cyy] {
    padding: 8px 10px;
}

/* Destruktivní akce se barví až tady, ne v komponentě: v nabídce je sama a odlišení
   barvou je jediné, co uživatele upozorní dřív než potvrzovací dialog. */
.ppe-draft-menu[b-ymunp14cyy]  .ppe-draft-discard {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 7px;
    color: var(--bs-danger);
}

.ppe-draft-menu[b-ymunp14cyy]  .ppe-draft-discard:hover {
    background: var(--bs-tertiary-bg);
}

/* Plná tečka nese signál i pro uživatele, kteří odznak vnímají jen periferně. */
.ppe-badge-dot[b-ymunp14cyy] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #d98613;
    flex: 0 0 auto;
}

/* Publikovaný stav je klidový – bez obrysu, aby v liště nesoupeřil s warningem. */
.ppe-badge-live[b-ymunp14cyy] {
    background: rgba(45, 160, 100, .15);
    color: #1f7a4d;
}

/* Odznak nese nabídku s přepínačem automatiky, takže musí vypadat klikatelně –
   jinak ho uživatel čte jako pouhý štítek a nastavení nikdy nenajde. */
.ppe-badge-live-trigger[b-ymunp14cyy] {
    cursor: pointer;
}

.ppe-badge-live-trigger:hover[b-ymunp14cyy] {
    background: rgba(45, 160, 100, .25);
}

/* Oddělovač mezi zahozením konceptu a přepínačem: dvě nesouvisející věci v jedné
   nabídce – jedna destruktivní akce, jedno nastavení. */
.ppe-draft-menu-sep[b-ymunp14cyy] {
    height: 1px;
    margin: 6px 10px;
    background: var(--bs-border-color);
}

.ppe-draft-menu[b-ymunp14cyy]  .ppe-autopublish-switch {
    padding: 4px 10px 8px;
}

/* Bootstrap posouvá input ve .form-switch záporným marginem, aby se switch
   zarovnal v běžném form-check řádku. V úzkém dropdownu by tím ale input
   vyjel vlevo mimo rámeček nabídky; tady musí celý ovládací prvek zůstat uvnitř. */
.ppe-draft-menu[b-ymunp14cyy]  .ppe-autopublish-switch .form-check-input {
    margin-left: 0;
}

/* Na úzkém okně se odznaky smrsknou na ikonu, ale nesmí zmizet.

   Dřív se .ppe-badge-live schovával celý – tehdy stálo vedle něj tlačítko Publikovat,
   které stav neslo dál. Po sloučení obou do jednoho místa je odznak jediný nositel
   stavu "vše je venku", takže by se skrytím na mobilu nedozvěděl uživatel nic.

   Odznak konceptu je navíc jediný vstup do nabídky se zahozením změn. Oba se proto
   zužují stejně: text (nejširší část) zmizí, ikona a barva signál nesou dál a plocha
   zůstává dost velká na klik. */
@media (max-width: 576px) {
    /* Popisek "Sdílet" ustupuje ikoně: na úzké liště je nejširším prvkem a ikona
       sdílení je natolik zavedená, že sama o sobě obstojí. */
    .ppe-toolbar[b-ymunp14cyy]  .ppe-share-btn {
        font-size: 0;
        gap: 0;
        padding: 6px 10px;
    }

    .ppe-toolbar[b-ymunp14cyy]  .ppe-share-btn i {
        font-size: 14px;
    }

    .ppe-badge-live-slot[b-ymunp14cyy] {
        font-size: 0;
        gap: 0;
        padding: 6px 8px;
    }

    /* Jen fajfka se vrací na čitelnou velikost, ne každá ikona uvnitř: chevron je
       z font-size: 0 dostal taky a vedle fajfky vypadal jako druhá čárka, tedy jako
       rozbitý znak. Bez textu navíc nemá co ohlašovat – nabídku otevře klik na odznak. */
    .ppe-badge-live-slot > i:first-child[b-ymunp14cyy] {
        font-size: 13px;
    }

    .ppe-badge-live-slot .ppe-badge-chevron[b-ymunp14cyy] {
        display: none;
    }

    .ppe-badge-draft-trigger[b-ymunp14cyy] {
        font-size: 0;
        gap: 4px;
        padding: 6px 8px;
    }

    .ppe-badge-chevron[b-ymunp14cyy] {
        font-size: 10px;
    }
}

.ppe-body[b-ymunp14cyy] {
    display: flex;
    flex: 1;
    /* min-height: 0 je nutné, aby se flex položky mohly zmenšit pod výšku obsahu –
       bez toho by canvas roztáhl celý shell a vlastní scroll by nikdy nenastal. */
    min-height: 0;
    /* Vztažný bod pro overlay běžící AI akce – ten se má roztáhnout přes náhled i panel,
       ne přes celé okno včetně lišty, kterou při běhu nic nemění. */
    position: relative;
}

/* Náhled roluje uvnitř sebe. Inspector tak zůstává na místě bez ohledu na to,
   jak dlouhá stránka je. */
.ppe-canvas[b-ymunp14cyy] {
    flex: 1;
    overflow-y: auto;
    background: var(--bs-tertiary-bg);
    padding: 16px;
    min-width: 0;
}

/* Mobilní náhled zužuje rámec, ne okno prohlížeče – média query uvnitř stránky se řídí
   šířkou viewportu, takže tohle ukáže rozvržení, ne přesné zalomení. Pro ověření
   skutečného zalomení slouží zúžení okna. */
.ppe-canvas-mobile .ppe-canvas-frame[b-ymunp14cyy] {
    max-width: 420px;
    margin: 0 auto;
}

/* Rohy ořezává clip-path, ne overflow: hidden. overflow z rámce dělá scroll container, vůči
   kterému se pak počítá position: sticky uvnitř bloků – odznak vybraného bloku by se tím
   přilepil k rámci (rozsah nula) a odscrolloval by pryč místo aby zůstal u horní hrany
   náhledu. clip-path ořízne stejně, ale scroll container nezakládá. */
.ppe-canvas-frame[b-ymunp14cyy] {
    border-radius: 8px;
    clip-path: inset(0 round 8px);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .08);
}

/* Blok je klikatelný cíl; obrys se ukazuje až při najetí, aby náhled zůstal čistý. */
.ppe-block-wrap[b-ymunp14cyy] {
    position: relative;
    cursor: pointer;
    outline: 2px solid transparent;
    outline-offset: -2px;
    transition: outline-color .15s;
}

.ppe-block-wrap:hover[b-ymunp14cyy] {
    outline-color: rgba(127, 119, 221, .5);
}

/* Hover přenesený ze seznamu bloků v panelu. Vypadá stejně jako najetí myší přímo na blok –
   pro uživatele jde o totéž ("tenhle blok"), jen kurzor je jinde. Ztlumení neoznačených bloků
   se přitom ruší, jinak by zvýrazněný blok zůstal pod závojem a signál by zanikl. */
.ppe-block-hovered.ppe-block-hovered[b-ymunp14cyy] {
    outline-color: rgba(127, 119, 221, .5);
}

/* Závoj se musí uvolnit i u hoveru přeneseného ze seznamu bloků, jinak by zvýrazněný blok
   zůstal pod clonou a signál by zanikl. Kurzor je přitom v panelu, takže :hover na bloku
   samotném se neuplatní a stejné pravidlo je potřeba i pro tuto třídu. */
.ppe-block-hovered.ppe-block-hovered[b-ymunp14cyy]::after {
    opacity: .15;
}

/* Silnější obrys než u hoveru + barevný stín dovnitř: samotné 2px se na tmavém bloku
   (hero, tmavé varianty v2) prakticky ztratí.
   Dvojitá třída zvyšuje specificitu nad :hover – bez toho by hover pravidlo (stejná
   specificita, ale později v souboru) ztlumilo obrys vybraného bloku na 50 % průhlednosti
   právě ve chvíli, kdy nad ním uživatel drží kurzor, tedy prakticky pořád. */
.ppe-block-selected.ppe-block-selected[b-ymunp14cyy] {
    outline-color: #7f77dd;
    outline-width: 3px;
    outline-offset: -3px;
    box-shadow: inset 0 0 0 1px rgba(127, 119, 221, .35);
    /* Nad závoj sousedů (z-index: 2 na .ppe-block-dimmed::after), aby ho u dotýkajících se
       hran nepřekryl jejich pseudo-element. */
    z-index: 3;
}

/* Neoznačené bloky se potlačí závojem, ne průhledností obsahu. Je to jediný signál, který
   funguje nezávisle na výšce bloku – u bloku vyššího než viewport nejsou vidět ani jeho hrany,
   ale potlačené okolí ano.

   Proč závoj a ne opacity + saturate na samotném bloku: ztlumený a odbarvený obsah čte jako
   "zakázáno / neaktivní", což u náhledu stránky mate – blok přitom není vypnutý, jen není
   vybraný. Závoj nechá barvy a sytost obsahu beze změny a působí jako světlo namířené na
   vybraný blok. */
.ppe-block-dimmed[b-ymunp14cyy]::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    /* Poloprůhledná černá, ne barva plátna: bloky veřejné stránky mají vlastní pozadí
       nezávislé na motivu editoru – profilová stránka je celá tmavá (#0b0c10), zatímco
       --bs-body-bg editoru je světlé. Světlý závoj takový blok zesvětlí do plochého šedého
       obdélníku, což vypadá vybledle místo potlačeně (naměřeno na stránce Profil). Černá
       ztmaví vždy stejným směrem bez ohledu na styl stránky.

       Záměrně BEZ mix-blend-mode: multiply. Blend se míchá proti nejbližšímu stacking
       contextu, a protože ho tu nic nezakládá, skládal se až v kořeni dokumentu přes celou
       plochu náhledu – včetně právě vybraného bloku, který závoj vůbec nemá. Při výběru
       bloku má sedm sousedů aktivní závoj a jejich součet ztmavil i vybraný blok natolik,
       že v něm nešlo číst (nadpis s deklarovanou barvou rgb(236,234,228) byl sotva vidět).
       Nejvíc to vadilo u inline editace, kde se ve vybraném bloku přímo píše.
       isolation to neřeší: na .ppe-block-wrap je závoj uvnitř izolované skupiny, na
       společném rodiči je zase nad všemi bloky, takže jejich vzájemné míchání nezastaví. */
    background: rgba(0, 0, 0, .45);
    transition: opacity .15s;
    /* Kliknutí musí projít na blok pod závojem, jinak by vrstva zablokovala výběr sousedů. */
    pointer-events: none;
}

/* Závoj se při najetí téměř rozpustí, aby si uživatel mohl sousední blok prohlédnout
   bez překlikání. */
.ppe-block-dimmed:hover[b-ymunp14cyy]::after {
    opacity: .15;
}

/* Nosič odznaku drží horní hranu viditelné části bloku i při rolování dlouhým blokem – proto
   sticky, ne absolute. Nulová výška (margin-bottom ruší vlastní výšku) zajišťuje, že odznak
   neodsune obsah bloku dolů a náhled zůstane věrný skutečné stránce.
   pointer-events: none – kliknutí musí projít na blok pod odznakem, jinak by pruh zablokoval
   výběr právě v místě, kam uživatel nejčastěji míří. */
.ppe-block-badge-row[b-ymunp14cyy] {
    position: sticky;
    top: 8px;
    z-index: 3;
    display: flex;
    justify-content: center;
    /* Sticky prvek se musí mít čím "přilepit" – s height: 0 nemá vlastní box, prohlížeč ho
       nechá odscrollovat s obsahem a odznak u vysokého bloku zmizí přesně v okamžiku, kdy
       je nejvíc potřeba. Proto skutečná výška odznaku a záporný margin, který ji zase
       odečte z toku, aby odznak neodsunul obsah bloku dolů. */
    height: 26px;
    margin-bottom: -26px;
    pointer-events: none;
    /* Odznak průběhu je vyšší než 26px řádku; bez tohohle by ho řádek ořízl. Nepřidává se
       do toku (řádek si drží svou výšku kvůli zápornému marginu výš), takže obsah bloku
       zůstane na svém místě. */
    overflow: visible;
}

/* Samotný odznak je kompaktní pilulka uprostřed, ne pruh přes celou šířku – přes celou šířku
   působil jako součást obsahu stránky a rozbíjel dojem z náhledu. */
.ppe-block-badge[b-ymunp14cyy] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 12px;
    border-radius: 999px;
    background: #7f77dd;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
}

/* Odznak během AI úpravy. Sytější barva a jemné pulsování ho odliší od běžného "režim úpravy",
   který na stejném místě visí pořád – bez odlišení by si uživatel změny nevšiml.

   Dědí pointer-events: none ze sticky řádku, takže průběh nijak nebrání práci jinde v editoru:
   uživatel může mezitím klikat na jiné bloky, přehazovat pořadí nebo psát v panelu. */
/* Větší než běžný odznak: "režim úpravy" je trvalý stav, který má být nenápadný, kdežto
   průběh je dočasná informace, kterou uživatel v tu chvíli hledá. */
.ppe-block-badge-ai[b-ymunp14cyy] {
    height: 34px;
    padding: 0 18px;
    font-size: 13px;
    background: linear-gradient(100deg, #8b7cf6, #6d5fd6);
    animation: ppe-ai-pulse-b-ymunp14cyy 1.6s ease-in-out infinite;
}

.ppe-block-badge-ai i[b-ymunp14cyy] {
    font-size: 14px;
    animation: ppe-ai-wand-b-ymunp14cyy 1.4s ease-in-out infinite;
}

@keyframes ppe-ai-wand-b-ymunp14cyy {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .6; transform: scale(.9); }
}

@keyframes ppe-ai-pulse-b-ymunp14cyy {
    0%, 100% { box-shadow: 0 2px 8px rgba(0, 0, 0, .3), 0 0 0 0 rgba(139, 124, 246, .5); }
    50% { box-shadow: 0 2px 8px rgba(0, 0, 0, .3), 0 0 0 7px rgba(139, 124, 246, 0); }
}

/* Obrys bloku po dobu úpravy. Odznak nad blokem se u vysokého bloku (hero, dlouhý text)
   odroluje z pohledu, takže obrys je jediné vodítko, že se s obsahem právě pracuje.
   Dvojitá třída kvůli specificitě nad .ppe-block-selected, které je v souboru výš. */
.ppe-block-ai.ppe-block-ai[b-ymunp14cyy] {
    outline-color: #8b7cf6;
    animation: ppe-ai-outline-b-ymunp14cyy 1.6s ease-in-out infinite;
}

@keyframes ppe-ai-outline-b-ymunp14cyy {
    0%, 100% { outline-color: rgba(139, 124, 246, 1); }
    50% { outline-color: rgba(139, 124, 246, .35); }
}

/* Křížek musí být klikatelný, i když nadřazený sticky řádek má pointer-events vypnuté –
   ten je vypíná proto, aby pruh nepolykal kliknutí mířená na blok pod ním. */
.ppe-block-badge-close[b-ymunp14cyy] {
    pointer-events: auto;
    margin-left: 2px;
    padding: 2px;
    cursor: pointer;
    opacity: .75;
}

.ppe-block-badge-close:hover[b-ymunp14cyy] {
    opacity: 1;
}

.ppe-empty[b-ymunp14cyy] {
    padding: 48px 24px;
    text-align: center;
    color: var(--bs-secondary-color);
    background: var(--bs-body-bg);
}

/* Inspector zůstává na obrazovce i u dlouhé stránky. Dřív odjel nahoru spolu s náhledem
   a uživatel musel po každém odrolování zpět, aby vybraný blok vůbec upravil.
   Vlastní scroll místo sticky: sloupec má výšku okna, takže se panel nemá kam ztratit
   a dlouhý obsah (seznam bloků) roluje sám v sobě. */
/* Šířku drží CSS proměnná, kterou při tažení přepisuje JS (sidebarResize.js) přímo na elementu.
   Fallback 300px platí, než se načte uložená hodnota z nastavení. */
/* max-width hlídá, že panel nikdy nesežere canvas. Uložená šířka se načítá bez ohledu na
   aktuální okno a horní mez v C# i JS je pevných 900 px, takže po přechodu z velkého monitoru
   do užšího okna (např. 1024 px, tedy nad jednosloupcovým breakpointem 992 px) by na náhled
   zbylo ~124 px. Procentní strop řeší i změnu velikosti okna, na kterou se JS clamp nespustí –
   ten se vyhodnocuje jen při tažení hrany. */
.ppe-inspector[b-ymunp14cyy] {
    position: relative;
    width: var(--ppe-inspector-width, 380px);
    max-width: 60%;
    flex: none;
    overflow-y: auto;
    border-left: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
}

/* Úchyt sedí přesně na hraně mezi canvasem a panelem – panel roste doleva, takže se tahá
   za tuhle hranu. sticky místo fixed: panel má vlastní scroll a úchyt musí zůstat
   svisle uprostřed viditelné části, ne odjet s obsahem.
   Záporný margin-left ho vycentruje na dělící čáru, margin-bottom ruší jeho výšku,
   aby neodsouval obsah panelu. */
.ppe-inspector-resize-handle[b-ymunp14cyy] {
    position: sticky;
    top: 50%;
    float: left;
    width: 12px;
    height: 88px;
    /* Grip sedí uvnitř úchytu na left:50%, takže střed 12px boxu musí padnout přesně
       na hranu panelu – proto posun o polovinu šířky doleva. */
    margin-left: -6px;
    margin-bottom: -88px;
    cursor: ew-resize;
    z-index: 3;
}

/* Samostatná svislá linka SplitHandle se tady schovává: hranu už kreslí border-left
   panelu, takže dvě čáry vedle sebe vypadaly jako dva rovnoběžné pásy. Zůstává jen
   grip (tři tečky), který uživateli říká, že se dá táhnout. */
.ppe-inspector-resize-handle[b-ymunp14cyy]  .split-handle-line {
    display: none;
}

.ppe-inspector-resize-handle[b-ymunp14cyy]  .split-handle-grip {
    background: rgba(128, 128, 128, .5);
    box-shadow: -6px 0 0 rgba(128, 128, 128, .5), 6px 0 0 rgba(128, 128, 128, .5);
}

/* Zvýraznění hrany během najetí i tažení: obarví se grip i samotný border panelu,
   aby bylo vidět, která hrana se posouvá. */
.ppe-inspector-resize-handle:hover[b-ymunp14cyy]  .split-handle-grip,
.ppe-inspector.panel-resize-near[b-ymunp14cyy]  .split-handle-grip,
.ppe-inspector.panel-resizing[b-ymunp14cyy]  .split-handle-grip {
    opacity: 1;
    background: var(--accent-color);
    box-shadow: -6px 0 0 var(--accent-color), 6px 0 0 var(--accent-color);
}

.ppe-inspector.panel-resize-near[b-ymunp14cyy],
.ppe-inspector.panel-resizing[b-ymunp14cyy] {
    border-left-color: var(--accent-color);
}

/* Během tažení nesmí panel animovat šířku ani přebírat kliky na obsah – jinak
   by se šířka honila za kurzorem se zpožděním. */
.ppe-inspector.panel-resizing[b-ymunp14cyy] {
    user-select: none;
}

/* Na úzkém okně se inspector přesune pod canvas – dva sloupce by nechaly na náhled
   příliš málo místa. */
@media (max-width: 992px) {
    /* Jeden sloupec: panel je pod náhledem, takže dva nezávislé scrolly nad sebou by
       si braly kolečko myši podle pozice kurzoru. Editor proto roluje jako celek. */
    .ppe-shell[b-ymunp14cyy] {
        height: auto;
        max-height: none;
        overflow: visible;
    }

    .ppe-body[b-ymunp14cyy] {
        flex-direction: column;
    }

    .ppe-canvas[b-ymunp14cyy] {
        overflow-y: visible;
    }

    /* width: auto přebíjí --ppe-inspector-width – v jednosloupcovém režimu by uložená
       desktopová šířka panel zúžila na pár set pixelů uprostřed prázdna. */
    .ppe-inspector[b-ymunp14cyy] {
        width: auto;
        /* Desktopový strop proti sežrání canvasu tu nedává smysl – panel je pod náhledem,
           ne vedle něj, takže by ho 60 % jen zúžilo na polovinu prázdného řádku. */
        max-width: none;
        border-left: none;
        border-top: 1px solid var(--bs-border-color);
        overflow-y: visible;
    }
}

/* AI tlačítko v liště. Akcentní barva ho odlišuje od ostatních ikon, které jen přepínají
   pohled – tohle jediné sáhne na obsah stránky. */
.ppe-ai-button[b-ymunp14cyy] {
    color: var(--bs-primary);
}

/* Průběh AI přes celý canvas. Zakrytí je záměr, ne jen dekorace: přestavba i přepis mění
   obsah, na který se uživatel dívá, a bez clony by během běhu klikal do bloků, které se
   pod rukama mění nebo mizí. Panel zůstává přístupný – overlay kryje jen náhled. */
.ppe-ai-overlay[b-ymunp14cyy] {
    position: absolute;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .35);
    backdrop-filter: blur(2px);
}

.ppe-ai-overlay-box[b-ymunp14cyy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 26px 34px;
    border-radius: 12px;
    background: var(--bs-body-bg);
    box-shadow: 0 12px 40px rgba(0, 0, 0, .28);
}

/* Pulzování místo rotace: generování trvá jednotky až desítky sekund a točící se ikona
   v takovém čase působí jako zaseknutý spinner. */
.ppe-ai-overlay-icon[b-ymunp14cyy] {
    font-size: 26px;
    color: var(--bs-primary);
    animation: ppe-ai-pulse-b-ymunp14cyy 1.6s ease-in-out infinite;
}

.ppe-ai-overlay-text[b-ymunp14cyy] {
    font-size: 14px;
    color: var(--bs-secondary-color);
}

@keyframes ppe-ai-pulse-b-ymunp14cyy {
    0%, 100% { opacity: .45; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.08); }
}

/* Přepínač stránek v liště. Editor je celoobrazovkový režim, takže tohle je jediná cesta
   mezi stránkami prostoru bez návratu do menu. */
.ppe-page-switch[b-ymunp14cyy] {
    position: relative;
}

.ppe-page-switch[b-ymunp14cyy]  .ppe-page-trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border-radius: 6px;
    color: var(--bs-body-color);
}

.ppe-page-switch[b-ymunp14cyy]  .ppe-page-trigger:hover {
    background: var(--bs-tertiary-bg);
}

/* Otevřená nabídka drží podbarvení triggeru, aby bylo vidět, co ji vyvolalo – bez toho
   nabídka vypadala jako plovoucí panel bez vazby na tlačítko nad ní. */
.ppe-page-switch[b-ymunp14cyy]  .ppe-page-trigger-open {
    background: var(--bs-tertiary-bg);
}

/* Odznak s počtem stránek. Tlumený, ne primární barvou: je to orientační údaj, ne
   upozornění – výrazná bublina by v liždě soupeřila o pozornost s tlačítkem Publikovat. */
.ppe-page-count[b-ymunp14cyy] {
    min-width: 17px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
    font-size: 10.5px;
    line-height: 17px;
    text-align: center;
    font-weight: 600;
}

.ppe-page-chevron[b-ymunp14cyy] {
    font-size: 11px;
    opacity: .55;
}

/* Neviditelná plocha přes celé okno: zachytí klik mimo nabídku a zavře ji. Řešení bez JS
   interopu, které zmizí spolu s nabídkou – globální listener by se musel odhlašovat.

   z-index musí zůstat POD nabídkou (ta má 31): backdrop leží v DOM před ní, takže při
   stejné nebo vyšší hodnotě překryl její položky a pohltil kliknutí – nabídka se zavřela,
   ale na stránku se nepřepnulo (naměřeno). */
.ppe-page-menu-backdrop[b-ymunp14cyy] {
    position: fixed;
    inset: 0;
    z-index: 30;
}

.ppe-page-menu[b-ymunp14cyy] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 31;
    min-width: 260px;
    max-height: 60vh;
    overflow-y: auto;
    padding: 6px;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    box-shadow: 0 10px 32px rgba(0, 0, 0, .16);
}

.ppe-page-group-label[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    padding: 8px 10px 4px;
}

.ppe-page-group-lock[b-ymunp14cyy] {
    font-size: 10px;
    color: var(--bs-warning-text-emphasis);
}

/* Vysvětlivka pod nadpisem skupiny: proč se tyhle stránky na webu neobjeví tak, jak by
   uživatel čekal. Bez text-transform a letter-spacing zděděných od nadpisu – je to věta
   ke čtení, ne štítek. Zalamuje se, protože se do jednoho řádku nabídky nevejde. */
.ppe-page-group-hint[b-ymunp14cyy] {
    padding: 0 10px 6px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--bs-secondary-color);
    text-transform: none;
    letter-spacing: 0;
    white-space: normal;
}

/* Zamčená skupina se od pouhé vysvětlivky odliší barvou: "nezobrazí se návštěvníkům" je
   omezení, které uživatel musí zaznamenat, ne jen poznámka, kudy stránka vede. */
.ppe-page-group-hint-locked[b-ymunp14cyy] {
    color: var(--bs-warning-text-emphasis);
}

.ppe-page-item[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 10px;
    border-radius: 6px;
    color: var(--bs-body-color);
    text-decoration: none;
    font-size: 13.5px;
}

.ppe-page-item:hover[b-ymunp14cyy] {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}

.ppe-page-item-active[b-ymunp14cyy] {
    background: var(--bs-primary-bg-subtle);
    font-weight: 500;
}

/* Název se zkracuje, ne zalamuje: dlouhý název podstránky by jinak nabídku rozhodil
   do několika řádků a seznam by přestal jít prolétnout očima. */
.ppe-page-item-name[b-ymunp14cyy] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ppe-page-item-check[b-ymunp14cyy] {
    font-size: 11px;
    color: var(--bs-primary);
}

/* Trvale viditelné, ne jen na hover: skryté akce v seznamu stránek by uživatel neobjevil,
   dokud by náhodou nenajel myší nad konkrétní řádek – stejná úvaha jako u tlačítek
   pen/trash v postranním panelu profilu. */
.ppe-page-item-settings[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    padding: 4px;
    border-radius: 4px;
    opacity: .55;
    flex-shrink: 0;
}

.ppe-page-item-settings:hover[b-ymunp14cyy] {
    opacity: 1;
    background: var(--bs-body-bg);
}

.ppe-page-menu-divider[b-ymunp14cyy] {
    height: 1px;
    margin: 6px 4px;
    background: var(--bs-border-color);
}

.ppe-page-menu[b-ymunp14cyy]  .ppe-page-add {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    font-size: 13.5px;
}

/* ── Volba stylu webu ─────────────────────────────────────────────────────── */

/* Obal drží nabídku ukotvenou k ikoně; bez position: relative by se absolutně
   pozicovaná nabídka pověsila na celou lištu a odskočila na její levý okraj. */
.ppe-style-switch[b-ymunp14cyy] {
    position: relative;
    display: flex;
}

/* Otevřený stav se drží podsvícený, aby bylo poznat, odkud nabídka vyjela – ikona
   je jinak vizuálně shodná s ostatními akcemi lišty. */
.ppe-style-switch[b-ymunp14cyy]  .ppe-style-trigger-open {
    background: var(--bs-tertiary-bg);
    border-radius: 6px;
}

.ppe-style-menu-backdrop[b-ymunp14cyy] {
    position: fixed;
    inset: 0;
    z-index: 30;
}

/* Stejné ukotvení jako u přepínače stylů – nabídka visí na ikoně, ne na liště. */
.ppe-share-switch[b-ymunp14cyy] {
    position: relative;
    display: flex;
}

/* Sdílet je pojmenované tlačítko, ne ikona v řadě: "sdílet" je jediné slovo, které uživatel
   k veřejnému odkazu zná, a se zapnutou automatikou je to jediná akce, kterou v liště hledá.

   Zároveň ale nemá být dominanta – akcentová výplň ho stavěla nad odznak publikace, přestože
   informace "je stránka venku?" je důležitější než "pošli odkaz". Proto tlumená varianta:
   obrys a neutrální podklad, tedy vizuální protějšek odznaku, ne konkurent. */
.ppe-toolbar[b-ymunp14cyy]  .ppe-share-btn {
    gap: 7px;
    padding: 5px 14px;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.ppe-toolbar[b-ymunp14cyy]  .ppe-share-btn:hover,
.ppe-toolbar[b-ymunp14cyy]  .ppe-share-btn-open {
    background: var(--bs-tertiary-bg);
}

/* Nabídka sdílení se ukotvuje stejně jako nabídka stylů, ale vlastní obsah i vzhled nese
   sdílená komponenta PublicSharePanel (jednotná s veřejnými stránkami). Zůstává tu tedy jen
   pozicování; rámeček a stín si kreslí panel sám, jinak by se vrstvily dva. */
.ppe-share-menu-anchor[b-ymunp14cyy] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 31;
}

/* Zarovnání doprava (right: 0): ikona sedí v pravé části lišty, takže nabídka
   ukotvená vlevo by přetekla mimo okno. */
.ppe-style-menu[b-ymunp14cyy] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 31;
    min-width: 240px;
    padding: 6px;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    box-shadow: 0 10px 32px rgba(0, 0, 0, .16);
}

.ppe-style-menu-title[b-ymunp14cyy] {
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    padding: 8px 10px 4px;
}

/* Věta ke čtení, ne štítek – proto bez verzálek a prostrkání zděděných od nadpisu.
   Nese dosah změny, který uživatel v editoru jedné stránky nečeká. */
.ppe-style-menu-hint[b-ymunp14cyy] {
    padding: 0 10px 8px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--bs-secondary-color);
    white-space: normal;
}

.ppe-style-item[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 10px;
    border-radius: 6px;
    color: var(--bs-body-color);
    font-size: 13.5px;
    cursor: pointer;
}

.ppe-style-item:hover[b-ymunp14cyy] {
    background: var(--bs-tertiary-bg);
}

.ppe-style-item-active[b-ymunp14cyy] {
    background: var(--bs-primary-bg-subtle);
    font-weight: 500;
}

/* Tři vzorky vedle sebe (pozadí, povrch, akcent) místo jedné tečky: dva styly se
   stejným akcentem a jinou světlostí by podle samotné tečky vypadaly shodně. */
.ppe-style-swatch[b-ymunp14cyy] {
    display: flex;
    flex: none;
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--bs-border-color);
}

.ppe-style-swatch > span[b-ymunp14cyy] {
    width: 10px;
    height: 18px;
}

.ppe-style-item-name[b-ymunp14cyy] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ppe-style-item-check[b-ymunp14cyy] {
    font-size: 11px;
    color: var(--bs-primary);
}

/* Vložení bloku mezi dva stávající.

   Pruh má nulovou výšku a zápornou spodní mezeru, takže mezi bloky nezabírá místo – náhled
   musí zůstat věrný tomu, jak stránka vypadá. Tlačítko se ukáže až při najetí na tuto zónu;
   trvale viditelné "+" mezi každými dvěma bloky by z náhledu udělalo formulář. */
.ppe-insert[b-ymunp14cyy] {
    position: relative;
    z-index: 4;
    display: flex;
    justify-content: center;
    height: 0;
    margin-bottom: -1px;
}

.ppe-insert-btn[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-top: -14px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    background: #7f77dd;
    color: #fff;
    font-size: 12px;
    cursor: pointer;
    /* Skryté, dokud uživatel nenajede – viz komentář výš. */
    opacity: 0;
    transition: opacity .15s, transform .15s;
}

.ppe-insert:hover .ppe-insert-btn[b-ymunp14cyy],
.ppe-insert-btn:focus-visible[b-ymunp14cyy] {
    opacity: 1;
}

.ppe-insert-btn:hover[b-ymunp14cyy] {
    transform: scale(1.12);
}

/* Otevřená nabídka drží tlačítko viditelné – jinak by zmizelo, jakmile myš přejede na
   seznam typů, a uživatel by ztratil kotvu, u které vkládá. */
.ppe-insert:has(.ppe-insert-menu) .ppe-insert-btn[b-ymunp14cyy] {
    opacity: 1;
}

.ppe-insert-backdrop[b-ymunp14cyy] {
    position: fixed;
    inset: 0;
    z-index: 1;
}

.ppe-insert-menu[b-ymunp14cyy] {
    position: absolute;
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: 220px;
    max-height: 320px;
    overflow-y: auto;
    padding: 6px;
    border-radius: 10px;
    /* Vlastní tmavé pozadí nezávislé na motivu editoru: nabídka leží nad náhledem veřejné
       stránky, který má vlastní barvy. */
    background: #1b1b1f;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}

.ppe-insert-item[b-ymunp14cyy] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #e9ecef;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
    transition: background-color .12s;
}

.ppe-insert-item:hover[b-ymunp14cyy] {
    background: rgba(255, 255, 255, .09);
}

.ppe-insert-item i[b-ymunp14cyy] {
    width: 16px;
    text-align: center;
    opacity: .7;
    flex: none;
}
/* /Pages/Studio/Profile/V2/Editing/PublicPageOpportunities.razor.rz.scp.css */
/* Blok doporučení nad seznamem bloků. Sedí ve stejném panelu jako skladba stránky, takže
   sdílí jeho vizuální jazyk – jen se odděluje linkou, aby bylo poznat, že jde o jinou
   úroveň informace než samotné pořadí bloků. */
.ppo[b-i7i80upidd] {
    padding-bottom: 14px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--bs-border-color);
}

/* Nadpis kopíruje .ppi-label ze sousední komponenty. Nedá se sdílet: scoped CSS platí jen
   pro prvky s atributem vlastní komponenty, takže třída odjinud by se sem nepropsala. */
.ppo .ppi-label[b-i7i80upidd] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bs-body-color);
    margin-bottom: 8px;
}

/* Řádek doporučení: ikona, dvouřádkový text a akce u pravé hrany. */
.ppo-item[b-i7i80upidd] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px;
    border-radius: 6px;
    transition: background-color .15s;
}

.ppo-item:hover[b-i7i80upidd] {
    background: var(--bs-tertiary-bg);
}

.ppo-item + .ppo-item[b-i7i80upidd] {
    margin-top: 2px;
}

/* Ikona typu bloku je vodítko, ne ozdoba – drží stejnou šířku jako v nabídce přidání,
   aby řádky obou seznamů opticky navazovaly. */
.ppo-icon[b-i7i80upidd] {
    width: 18px;
    text-align: center;
    opacity: .7;
    flex: none;
    margin-top: 2px;
}

.ppo-body[b-i7i80upidd] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.ppo-body strong[b-i7i80upidd] {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}

/* Důvod je sekundární k titulku: nese počet položek, ale nemá s ním soupeřit o pozornost. */
.ppo-body span[b-i7i80upidd] {
    font-size: 12px;
    opacity: .65;
    line-height: 1.35;
}

/* Akce nesmí zalomit ani se zúžit pod svůj text, i když je titulek dlouhý. Platí pro
   všechny obaly tlačítek v řádku – u nabídky obsahu jsou dva ("Přidat" a odmítnutí),
   takže selektor na poslední obal by minul ten hlavní.
   ::deep je nutné, protože ButtonLink vykresluje vlastní obal bez scoped atributu
   této komponenty. */
.ppo-item[b-i7i80upidd]  > div:not(.ppo-body) {
    flex: none;
    margin-top: 1px;
}

.ppo-item[b-i7i80upidd]  > div:not(.ppo-body) button {
    white-space: nowrap;
}

/* Odmítnutí je nejslabší akce v řádku: zůstává dostupné, ale nesmí soupeřit s "Přidat".
   Naplno se rozsvítí až při najetí na řádek, aby seznam nebyl posetý křížky.
   ::deep je nutné, protože ButtonLink vykresluje vlastní tlačítko bez scoped atributu. */
.ppo-item[b-i7i80upidd]  .ppo-dismiss {
    opacity: .3;
    transition: opacity .15s;
}

.ppo-item:hover[b-i7i80upidd]  .ppo-dismiss {
    opacity: .7;
}

.ppo-item[b-i7i80upidd]  .ppo-dismiss:hover {
    opacity: 1;
}
/* /Pages/Studio/Profile/V2/Editing/PublicPageStructureInspector.razor.rz.scp.css */
/* Skladba stránky – seznam bloků s pořadím a nabídka přidávání.

   Přesunuto z PublicBlockInspector.razor.css spolu s markupem: izolované CSS rodiče se na
   markup dítěte nevztahuje, takže by se pravidla po vyčlenění komponenty tiše přestala
   používat. */

/* Popisek sekce. Duplikát téhož pravidla z inspectoru – scoped CSS nejde mezi komponentami
   sdílet, takže obě komponenty musí mít vlastní kopii. */
.ppi-label[b-7ej4siuxc0] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bs-body-color);
    margin-bottom: 6px;
}

/* Seznam bloků s přetahováním. Pořadí je jeden z nejsilnějších odlišovačů mezi weby,
   takže musí jít změnit přímo, ne po jednom kroku šipkami. */
/* Seznam otevírá záložku "Stránka", takže nepotřebuje horní oddělovač – ten by hned pod
   záložkami vytvořil druhou vodorovnou linku. */
.ppi-order[b-7ej4siuxc0] {
    padding-top: 0;
}

.ppi-order-item[b-7ej4siuxc0] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px;
    border-radius: 6px;
    font-size: 14px;
    cursor: pointer;
    transition: background-color .15s;
}

.ppi-order-item:hover[b-7ej4siuxc0] {
    background: var(--bs-tertiary-bg);
}

/* Výběr bloku a akce viditelnosti jsou sourozenci. Klik na hlavní část řádku vybírá blok,
   zatímco tlačítko oka mimo ni může měnit stav bez probublání do výběru. */
.ppi-order-select[b-7ej4siuxc0] {
    display: flex;
    align-items: center;
    gap: 9px;
    flex: 1 1 auto;
    min-width: 0;
}

/* Vybraný blok v seznamu odpovídá výběru v náhledu – uživatel tak vidí, kde se nachází,
   ať klikl kdekoli. */
.ppi-order-active[b-7ej4siuxc0] {
    background: var(--bs-tertiary-bg);
    box-shadow: inset 2px 0 0 var(--bs-primary);
}

/* Hover přenesený z náhledu: uživatel drží myš nad blokem v canvasu a seznam mu ukáže, který
   řádek to je. Podbarvení je stejné jako u přímého :hover nad řádkem, jen doplněné o obrys –
   bez něj by na řádku, který je zároveň vybraný (stejné pozadí), nebyla vidět žádná změna.
   Dvojitá třída kvůli specificitě nad .ppi-order-active, které je v souboru výš. */
.ppi-order-hovered.ppi-order-hovered[b-7ej4siuxc0] {
    background: var(--bs-tertiary-bg);
    outline: 1px solid rgba(127, 119, 221, .7);
    outline-offset: -1px;
}

/* Úchyt pro přetažení je jediné místo s kurzorem přesunu; klik na zbytek řádku blok
   vybírá, takže by kurzor přesunu na celé položce mátl. */
.ppi-drag[b-7ej4siuxc0] {
    cursor: grab;
    opacity: .45;
    font-size: 13px;
}

.ppi-drag:active[b-7ej4siuxc0] {
    cursor: grabbing;
}

/* Ikony si drží šířku i u dlouhého názvu sekce – jinak by je flex smrskl a řádky
   v seznamu by přestaly být zarovnané pod sebou. */
.ppi-drag[b-7ej4siuxc0],
.ppi-order-icon[b-7ej4siuxc0] {
    flex-shrink: 0;
}

.ppi-order-icon[b-7ej4siuxc0] {
    width: 18px;
    text-align: center;
    opacity: .7;
}

/* Dvouřádkový obsah položky: typ bloku a pod ním název sekce. min-width: 0 je nutné,
   aby se text uvnitř flexu vůbec mohl oříznout – bez něj by řádek roztáhl celý panel. */
.ppi-order-text[b-7ej4siuxc0] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.3;
}

/* Tučně: typ bloku je hlavní orientační vodítko v seznamu, pod ním je tlumený název sekce.
   Bez odlišení váhy splývaly oba řádky v jeden šedivý blok textu. */
.ppi-order-name[b-7ej4siuxc0] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 600;
}

/* Název sekce je tlumený a menší: hlavní orientační vodítko zůstává typ bloku, titulek
   slouží k rozlišení několika bloků téhož typu pod sebou. */
.ppi-order-title[b-7ej4siuxc0] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    opacity: .6;
}

/* Přidávání bloků drží spodní hranu panelu, aby bylo dostupné i bez rolování
   v dlouhém nastavení. */
/* Přidávání navazuje na seznam bloků, netlačí se na dno panelu: na záložce "Stránka" jsou
   obě části jedním celkem (skladba stránky), takže mezera mezi nimi by u krátkého seznamu
   jen udělala díru. */
/* Sbalovací odkaz sedí uprostřed – je to jediná akce sekce, takže vycentrovaný působí jako
   předěl mezi skladbou stránky a přidáváním, ne jako další položka seznamu. ButtonLink
   renderuje obalový div, proto se centruje flexem tady na rodiči.
   Větší odstup shora odděluje sekci od seznamu bloků, který má samostatné řádky. */
.ppi-add[b-7ej4siuxc0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 28px;
    border-top: 1px solid var(--bs-border-color);
}

/* Jeden sloupec: ve 300px panelu se do dvou sloupců delší názvy ("Text a média",
   "Vybrané práce") nevejdou na řádek a lámaly se na dva, takže položky měly různou výšku
   a seznam vypadal rozhozeně. Deset položek pod sebou je předvídatelných. */
.ppi-add-list[b-7ej4siuxc0] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
    margin-top: 10px;
}

/* Ikona plus/křížek v kolečku napovídá, jestli se seznam otevře nebo zavře. */
.ppi-add-toggle[b-7ej4siuxc0] {
    font-size: 14px;
}

/* ButtonLink renderuje <button> obalený <div>, ne <a> – selektory proto míří na button. */
/* width: auto místo 100 %: tlačítko se smrskne na svůj obsah, takže ikona nápovědy
   za ním sedí hned u názvu, ne u pravé hrany panelu. */
.ppi-add-list[b-7ej4siuxc0]  button {
    display: flex;
    align-items: center;
    gap: 9px;
    width: auto;
    padding: 8px 10px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    justify-content: flex-start;
    transition: background-color .15s;
}

/* Podbarvení nese celý řádek, ne tlačítko: tlačítko je jen tak široké jako jeho text, takže
   by se pruh při najetí lámal v půlce řádku a ikona nápovědy by zůstala mimo něj. */
.ppi-add-list[b-7ej4siuxc0]  button:hover {
    background: transparent;
}

/* Ikona drží pevnou šířku, aby názvy začínaly na stejné svislici i při různě širokých
   symbolech. */
.ppi-add-list[b-7ej4siuxc0]  button i {
    width: 18px;
    text-align: center;
    opacity: .7;
    flex: none;
}

/* Položka nabídky: řádek s názvem a pod ním trvale viditelný popis. Hover se přesunul sem
   z .ppi-add-item, aby podbarvení pokrylo i popis – jinak by se řádek při najetí rozdělil
   na zvýrazněný název a nezvýrazněnou větu pod ním. */
.ppi-add-row[b-7ej4siuxc0] {
    border-radius: 6px;
    padding: 2px 0 4px;
    transition: background-color .15s;
}

.ppi-add-row:hover[b-7ej4siuxc0] {
    background: var(--bs-tertiary-bg);
}

/* Popis začíná pod ikonou názvu, ne pod textem: odsazení kopíruje šířku ikony v ButtonLinku
   (18 px) plus jeho vnitřní mezeru, takže věta vizuálně patří k názvu nad sebou. */
.ppi-add-hint[b-7ej4siuxc0] {
    font-size: 11px;
    opacity: .55;
    line-height: 1.35;
    padding-left: 30px;
    padding-right: 8px;
}

/* Řádek nabídky: tlačítko a hned za ním nápověda, obojí zarovnané vlevo. */
.ppi-add-item[b-7ej4siuxc0] {
    display: flex;
    align-items: center;
    gap: 2px;
    border-radius: 6px;
    transition: background-color .15s;
}

/* Podbarvení drží .ppi-add-row (obaluje i popis), tady zůstává jen reakce nápovědy. */
.ppi-add-row:hover .ppi-add-item[b-7ej4siuxc0] {
    background: transparent;
}

/* ButtonLink i IconTooltip renderují stejný obalový div s data-bs-toggle="tooltip"
   (ButtonLink si TooltipB obaluje sám kvůli vlastnímu Tooltip parametru), takže je nelze
   rozlišit selektorem na atribut – rozlišuje je jen pořadí v řádku.
   První obal = tlačítko. Drží si vlastní šířku (ne flex: 1), aby ikona nápovědy seděla hned
   za názvem bloku. U pravé hrany panelu byla od svého názvu odtržená přes celou šířku a
   nešlo poznat, ke které položce patří – u proměnlivě dlouhých názvů to oko nespojí. */
.ppi-add-item[b-7ej4siuxc0]  > div:first-child {
    display: flex !important;
    min-width: 0;
}

/* Druhý obal = IconTooltip; drží si vlastní šířku. */
.ppi-add-item[b-7ej4siuxc0]  > div:last-child {
    display: flex !important;
    flex: none;
}

/* Nápověda je sekundární: naplno se rozsvítí až při najetí na řádek, aby seznam nebyl
   posetý deseti stejně výraznými otazníky. */
.ppi-add-item[b-7ej4siuxc0]  i.fa-circle-info {
    font-size: 13px;
    opacity: .35;
    transition: opacity .15s;
    cursor: help;
}

.ppi-add-row:hover[b-7ej4siuxc0]  i.fa-circle-info {
    opacity: .8;
}

/* Ikonová akce viditelnosti je tlumená jako doplňkový stav, ale má dostatečnou klikací
   plochu. Automatický margin ji drží u pravé hrany řádku. ::deep je nutné, protože
   ButtonLink vykresluje vlastní tlačítko bez atributu scoped CSS této komponenty. */
.ppi-order-item[b-7ej4siuxc0]  .ppi-order-visibility {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: none;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    opacity: .55;
    font-size: 14px;
    transition: background-color .15s, opacity .15s;
}

.ppi-order-visibility-wrap[b-7ej4siuxc0] {
    display: inline-flex;
    flex: none;
    margin-left: auto;
}

.ppi-order-item:hover[b-7ej4siuxc0]  .ppi-order-visibility,
.ppi-order-item:focus-within[b-7ej4siuxc0]  .ppi-order-visibility {
    opacity: .9;
}

/* U viditelného bloku se otevřené oko objeví až při interakci. V klidovém stavu tak seznam
   zůstane stejně čistý jako referenční návrh, kde ikonu vidí uživatel jen u skrytého bloku. */
.ppi-order-item[b-7ej4siuxc0]  .ppi-order-visibility-reveal {
    opacity: 0;
}

.ppi-order-item:hover[b-7ej4siuxc0]  .ppi-order-visibility-reveal,
.ppi-order-item:focus-within[b-7ej4siuxc0]  .ppi-order-visibility-reveal {
    opacity: .9;
}

.ppi-order-item[b-7ej4siuxc0]  .ppi-order-visibility:hover {
    background: var(--bs-secondary-bg);
    opacity: 1;
}

.ppi-order-item[b-7ej4siuxc0]  .ppi-order-visibility i {
    pointer-events: none;
}

/* Zámek místo úchytu u bloků s pevnou pozicí. Drží stejnou šířku jako úchyt, aby řádky
   zůstaly zarovnané pod sebou, a je tlumený – je to vysvětlení, ne ovládací prvek. */
.ppi-order-pin[b-7ej4siuxc0] {
    flex-shrink: 0;
    width: 13px;
    font-size: 11px;
    opacity: .35;
    cursor: help;
    text-align: center;
}
/* /Pages/Studio/Profile/V2/Editing/PublicPageWizard.razor.rz.scp.css */
/* Průvodce vytvořením stránky. Dva kroky: obsah, pak vzhled a texty. Každý krok se musí
   vejít na obrazovku bez rolování – jakmile uživatel roluje, přestává vidět, kolik toho
   ještě zbývá, a průvodce působí jako formulář. */

.ppw[b-0duyampq40] {
    max-width: 720px;
    margin: 0 auto;
    padding: 40px 24px;
}

.ppw-head[b-0duyampq40] {
    margin-bottom: 32px;
}

.ppw-title[b-0duyampq40] {
    font-size: 26px;
    font-weight: 500;
    margin: 0 0 8px;
}

.ppw-lead[b-0duyampq40] {
    color: var(--bs-secondary-color);
    margin: 0;
    line-height: 1.6;
}

/* Ujištění pod tlačítky ("nic nebude veřejné"). Menší a tlumenější než podnadpis, kterým
   dřív bylo: nese klid, ne pokyn, takže má být k dispozici, ale ne na ráně. Zarovnané
   doprava k hlavní akci, ke které se vztahuje. */
.ppw-reassurance[b-0duyampq40] {
    margin-top: 10px;
    text-align: right;
    font-size: 12px;
    color: var(--bs-secondary-color);
}

/* 250px je nejužší šířka, na které se jednořádkové popisy ještě nelámou. Původních 190px
   je pro popis málo, 320px zase drží mřížku zbytečně ve dvou sloupcích a nabídka se pak
   nevejde na obrazovku bez rolování. */
.ppw-blocks[b-0duyampq40] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 8px;
}

/* ::deep je nutné – dlaždici vykresluje TooltipB, takže její kořenový div nedostane scope
   atribut téhle komponenty a pravidlo bez ::deep by se tiše zahodilo (dlaždice by přišla
   o celý layout). Vnitřní elementy jsou child content a scope mají, ty ::deep nepotřebují.

   Zarovnání k hornímu okraji, ne na střed: ikona a fajfka patří k názvu, a kdyby se popis
   na úzké dlaždici přece jen zalomil, vycentrované by odplavaly doprostřed textu. */
[b-0duyampq40] .ppw-block {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    transition: border-color .15s, background-color .15s;
}

.ppw-block-text[b-0duyampq40] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

/* Název nese rozhodnutí, popis ho jen upřesňuje. Bez rozdílu ve váze se dlaždice čte jako
   souvislý odstavec a uživatel musí každou přečíst celou, místo aby přejel očima po názvech. */
.ppw-block-name[b-0duyampq40] {
    font-weight: 600;
    color: var(--bs-body-color);
}

/* Ořez na jeden řádek drží mřížku v jedné výšce i na úzké dlaždici nebo v jazyce s delšími
   slovy. Uříznutý text není ztráta informace – plné znění nese title celé dlaždice. */
.ppw-block-desc[b-0duyampq40] {
    font-size: 12px;
    line-height: 1.4;
    color: var(--bs-secondary-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[b-0duyampq40] .ppw-block:hover {
    border-color: var(--bs-secondary-color);
}

[b-0duyampq40] .ppw-block-active {
    border-color: var(--bs-primary);
    background: var(--bs-tertiary-bg);
}

/* Odsazení srovnává ikonu s účařím prvního řádku názvu – bez něj sedí o kus výš,
   protože ikona je nižší než řádek textu. */
[b-0duyampq40] .ppw-block i:first-child {
    width: 18px;
    text-align: center;
    opacity: .7;
    margin-top: 2px;
    flex: none;
}

/* Zaškrtnutí drží pravý okraj, aby vybrané položky šly rozpoznat i letmým pohledem
   po sloupci. Stejné odsazení jako ikona, aby obě zůstala na řádku názvu. */
.ppw-block-check[b-0duyampq40] {
    margin-left: auto;
    margin-top: 2px;
    flex: none;
    color: var(--bs-primary);
}

.ppw-actions[b-0duyampq40] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 20px;
    border-top: 1px solid var(--bs-border-color);
}

/* Doplňující otázky při krátkém zadání. Nejde o chybu, takže neutrální tón a ikona
   otazníku, ne varování. */
.ppw-followup[b-0duyampq40] {
    margin-top: 12px;
    padding: 12px 14px;
    background: var(--bs-tertiary-bg);
    border-radius: 8px;
    font-size: 13.5px;
}

.ppw-followup-title[b-0duyampq40] {
    margin-bottom: 6px;
    color: var(--bs-secondary-color);
}

.ppw-followup ul[b-0duyampq40] {
    margin: 0;
    padding-left: 22px;
}

.ppw-followup li[b-0duyampq40] {
    padding: 2px 0;
}

/* Selhání AI naopak varovné je – uživatel musí poznat, že návrh nevznikl a má pokračovat
   prázdnou kostrou. */
.ppw-error[b-0duyampq40] {
    margin-top: 12px;
    padding: 10px 14px;
    border-radius: 8px;
    background: var(--bs-danger-bg-subtle);
    color: var(--bs-danger-text-emphasis);
    font-size: 13.5px;
}

/* Obě cesty vedle sebe. Ruční je odlehčený odkaz, AI plné tlačítko – ne proto, že by byla
   důležitější, ale protože je to akce s čekáním a musí být jasně mířitelná. */
.ppw-actions-main[b-0duyampq40] {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* AI panel. Odlišený podkladem, aby bylo zřejmé, že popis slouží generování textů –
   ne že jde o povinné pole stránky. */
/* AI panel bez vlastního podkladu. Odlišený box tu dával smysl, dokud nad ním stála volba
   stylu – oddělil "popis pro AI" od "nastavení stránky". Volba stylu se přesunula do editoru,
   takže popis zůstal jedinou věcí na obrazovce a rámovat ho proti ničemu znamenalo jen vrstvu
   navíc: podklad v podkladu, uvnitř další pole. */
.ppw-ai[b-0duyampq40] {
    margin-bottom: 28px;
}

.ppw-ai-head[b-0duyampq40] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 14px;
}

/* Vyšší pole než výchozí: popis prostoru je hlavní (a teď jediný) vstup průvodce a nízká
   textarea navádí k jedné větě, ze které model dobrou stránku nepostaví.

   CssClass z TextBoxu sedí přímo na <textarea>, ne na obalu, takže .ppw-ai-input JE ten
   element – selektor s potomkem by nenašel nic. ::deep je potřeba proto, že textareu
   renderuje vnořená komponenta a scope atribut téhle stránky nedostane. */
.ppw-ai[b-0duyampq40]  textarea.ppw-ai-input {
    min-height: 190px;
}

.ppw-ai-icon[b-0duyampq40] {
    color: var(--bs-primary);
}

.ppw-actions-main[b-0duyampq40] {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* Únik k ruční cestě je tišší než hlavní akce, ale ne schovaný: uživatel, který texty
   psát nechce, musí cestu najít na první pohled. */
.ppw-secondary[b-0duyampq40] {
    color: var(--bs-secondary-color);
}

/* Varování před přepsáním rozpracované stránky. Stejná vizuální váha jako chybová hláška,
   ale žlutá – jde o důsledek, na který uživatel kývne, ne o selhání. */
/* Poznámka o přepsání konceptu. Sedí u tlačítek, ne pod nadpisem: uživatel sem přišel
   stránku postavit znovu, takže je to informace k rozhodnutí, ne uvítání. Dřív to byl
   čtyřřádkový warning box hned na vstupu, který zdržoval dřív, než uživatel cokoli vyplnil.

   Zůstává ale ve warning barvě a s ikonou – v tlumené šedi po zkrácení splývala s okolím
   natolik, že šla přehlédnout, a to je u přepsání rozdělané práce ta horší chyba.
   Podklad ani rámeček nemá schválně: jeden řádek v barvě upozorní dost a plný box by
   z jedné věty udělal zpátky překážku.

   Kladné odsazení dole není potřeba – oddělovací linka .ppw-actions ho drží sama. */
.ppw-overwrite-note[b-0duyampq40] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 24px;
    font-size: 12.5px;
    color: var(--bs-warning-text-emphasis);
}

/* Když poznámka je, přebírá roli předělu sama a linka nad tlačítky by dělala druhý,
   zdvojený řez pár pixelů pod ní. Padding zůstává, aby akce nedosedly na text. */
.ppw-overwrite-note + .ppw-actions[b-0duyampq40] {
    border-top: none;
}

/* Chipy pod polem popisu. Vzor převzatý z dialogu vytvoření projektu ("ZKUSTE:"), aby
   uživatel poznal už známý prvek – tam se osvědčil právě jako nápověda k psaní. */
.ppw-chips[b-0duyampq40] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.ppw-chips-label[b-0duyampq40] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--bs-secondary-color);
    margin-right: 2px;
}

.ppw-chip[b-0duyampq40] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 12px;
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    font-size: 13px;
    cursor: pointer;
    transition: border-color .15s, background-color .15s, color .15s;
}

.ppw-chip:hover[b-0duyampq40] {
    border-color: var(--bs-secondary-color);
}

/* Aktivní chip drží stejnou signalizaci jako vybraná dlaždice – uživatel musí poznat,
   že klik něco udělal, jinak zkusí kliknout znovu a vloží větu dvakrát. */
.ppw-chip-active[b-0duyampq40] {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

/* Křížek je tlumený a menší než text: nese doplňkovou informaci ("dá se odebrat"), zatímco
   rozpoznání chipu drží jeho název. V plné sytosti by z pilulky udělal tlačítko pro mazání. */
.ppw-chip-remove[b-0duyampq40] {
    font-size: 10px;
    opacity: .7;
}

.ppw-chip-more[b-0duyampq40] {
    border-style: dashed;
    color: var(--bs-secondary-color);
}

/* Inventura dat prostoru. Zmiňuje jen to, co prostor má – u prázdného se celý řádek
   skrývá, protože výčet chybějícího by zněl jako výtka na obrazovce, která má
   povzbudit k vytvoření stránky. */
.ppw-inventory[b-0duyampq40] {
    margin-top: 12px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--bs-secondary-color);
}
/* /Pages/Studio/Profile/V2/Editing/PublicPricingBlockEditor.razor.rz.scp.css */
/* Položky ceníku – vyčleněno z PublicBlockInspector.razor.css spolu s markupem:
   izolované CSS rodiče se na markup dítěte nevztahuje, takže by pravidla po vyčlenění
   komponenty tiše přestala platit. */

/* Sekce je sloupec; odpovídá .ppi-field, ve kterém markup dřív žil. */
.ppp[b-j1oqdw5wvn] {
    display: flex;
    flex-direction: column;
}

/* Popisek sekce. Duplikát pravidla z inspectoru – scoped CSS nejde mezi komponentami sdílet. */
.ppp-label[b-j1oqdw5wvn] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--bs-body-color);
    margin-bottom: 6px;
}

/* Počítadlo doplňuje popisek, nesmí ho přebít – proto normální váha a tlumená barva
   uvnitř jinak tučného popisku. */
.ppp-count[b-j1oqdw5wvn] {
    opacity: .55;
    font-weight: 400;
    letter-spacing: 0;
}

/* Každá položka je vizuálně ohraničená, aby v úzkém panelu bylo poznat, kde jedna končí
   a druhá začíná – pole pod sebou bez rámu splývají v jeden seznam. */
.ppp-item[b-j1oqdw5wvn] {
    border: 1px solid var(--bs-border-color);
    border-radius: 8px;
    padding: 10px;
    margin-bottom: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Název a mazání na jednom řádku: mazací křížek patří k celé položce, ne k poli pod ním. */
.ppp-item-head[b-j1oqdw5wvn] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ppp-item-head[b-j1oqdw5wvn]  .textbox-wrapper,
.ppp-item-head[b-j1oqdw5wvn]  input {
    flex: 1;
    min-width: 0;
}

/* Přidávací akce jen na šířku svého obsahu – roztažený odkaz má klikací plochu až u pravé
   hrany, daleko od textu. ButtonLink obaluje tlačítko divem, takže flexovou položkou je
   ten obal a míří se na poslední přímý potomek sekce. */
.ppp[b-j1oqdw5wvn]  > div:last-child {
    align-self: flex-start;
}
/* /Pages/Studio/Profile/V2/Editing/WorkspacePageSettingsDialog.razor.rz.scp.css */
/* Modal správy stránky (přejmenování, adresa, SEO, smazání). Rozvržení kopíruje
   PublicCourseEditorDialog/PageAiDialog, aby se dialogy v editoru chovaly jednotně. */

.wpsd[b-jg9hhinqx9] {
    padding: 0 28px 24px;
    max-width: 480px;
}

.wpsd-topbar[b-jg9hhinqx9] {
    padding-top: 12px;
}

.wpsd-close[b-jg9hhinqx9] {
    opacity: .6;
}

.wpsd-title[b-jg9hhinqx9] {
    font-size: 18px;
    font-weight: 600;
}

.wpsd-body[b-jg9hhinqx9] {
    margin-top: 16px;
}

.wpsd-divider[b-jg9hhinqx9] {
    margin: 20px 0;
    opacity: .5;
}
/* /Pages/Studio/Profile/V2/PublicBlockHeading.razor.rz.scp.css */
/* Typografické prvky nadpisu bloku. Všechny hodnoty pocházejí ze stylu. */

/* Eyebrow: prostrkaný popisek v akcentní barvě uvozený krátkou linkou. Podle design systému
   nese většinu "designového" dojmu a stojí pár řádků CSS. */
.pp-eyebrow[b-byzzz62win] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--public-accent);
}

.pp-eyebrow[b-byzzz62win]::before {
    content: "";
    width: 26px;
    height: 1px;
    background: var(--public-accent);
    flex: none;
}

.pp-heading[b-byzzz62win] {
    font-family: var(--public-font-heading);
    font-weight: 400; /* Patkové nadpisy nikdy tučně – tučný řez písmo deformuje. */
    font-size: var(--public-size-heading);
    line-height: 1.15;
    letter-spacing: -.01em;
    color: var(--public-text);

    /* Omezená šířka láme nadpis na dva řádky i na širokém monitoru; bez toho se roztáhne
       přes celou stránku a ztratí časopisový rytmus. */
    max-width: var(--public-heading-width);
    margin: 0 0 14px;
}

/* Zvýrazněná část nadpisu: kurzíva ve světlejším odstínu akcentu. Nejvýraznější jednotlivý
   prvek celého vzhledu – bez něj působí stránka o poznání plošeji.

   Zahrnuje i <i>: při inline editaci vytváří zvýraznění document.execCommand('italic'),
   které v Chrome i Safari generuje <i>, ne <em>. Bez tohoto selektoru dostal nově
   zvýrazněný text jen prohlížečovou kurzívu bez akcentní barvy, zatímco dříve uložené
   části (vysázené jako <em>) barvu měly – vypadalo to, že zvýraznění nefunguje. */
.pp-heading[b-byzzz62win]  em,
.pp-heading[b-byzzz62win]  i,
.pp-heading em[b-byzzz62win],
.pp-heading i[b-byzzz62win] {
    font-style: italic;
    color: var(--public-accent-soft);
}

.pp-subtitle[b-byzzz62win] {
    font-size: calc(var(--public-size-body) * 1.03);
    line-height: 1.65;
    color: var(--public-text-soft);
    max-width: 680px;
    margin: 0;
}

/* Prázdný úvodní text v editoru: nenápadná výzva, aby šlo do bloku bez textu vůbec kliknout.
   Na veřejné stránce nevzniká – vykresluje se jen při IsEditorPreview. */
.pp-subtitle-empty[b-byzzz62win] {
    opacity: .4;
    font-style: italic;
}
/* /Pages/Studio/Profile/V2/PublicBlockMedia.razor.rz.scp.css */
/* Klikatelná média bloku. Tlačítko nesmí vypadat jako tlačítko – vizuálně je to obrázek,
   interaktivita se hlásí jen kurzorem a jemným zvětšením při najetí. */

.pp-media-item[b-c4zaa8smxw] {
    margin: 0;
}

.pp-media-trigger[b-c4zaa8smxw] {
    /* Reset nativního vzhledu: prvek je tlačítko kvůli přístupnosti (klávesnice, role),
       ne kvůli vzhledu. */
    display: block;
    position: relative;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    cursor: zoom-in;
    border-radius: var(--public-radius);
    /* overflow ořízne zvětšený obrázek na zaoblený tvar rámu. */
    overflow: hidden;
}

.pp-media-trigger img[b-c4zaa8smxw] {
    width: 100%;
    display: block;
    /* Pevný poměr stran rezervuje místo dřív, než se obrázek stáhne. Bez něj má <img>
       do načtení nulovou výšku a v okamžiku dokreslení odsune celý obsah pod sebou.
       S loading="lazy" k tomu dochází právě během scrollování, takže se to projevovalo
       jako trhání – stránka pod prstem poskakovala, jak se dotahovaly jednotlivé fotky.

       Poměr odpovídá galerii v1 (GallerySection), aby dlaždice napříč verzemi vypadaly
       stejně. cover zaručí, že se na výšku i na šířku vyfotografované snímky vejdou do
       stejně vysoké řady bez deformace. */
    aspect-ratio: 4 / 3;
    height: 100%;
    object-fit: cover;
    /* Zvětšení místo změny průhlednosti: fotka zůstane čitelná a efekt nepůsobí jako
       porucha načítání. */
    transition: transform .4s ease;
}

.pp-media-trigger:hover img[b-c4zaa8smxw],
.pp-media-trigger:focus-visible img[b-c4zaa8smxw] {
    transform: scale(1.03);
}

/* Viditelné ohraničení při navigaci klávesnicí – bez něj by uživatel nevěděl, kde je. */
.pp-media-trigger:focus-visible[b-c4zaa8smxw] {
    outline: 2px solid var(--public-accent);
    outline-offset: 3px;
}

/* Značka přehrání u videa. Kruh s výplní drží kontrast i nad světlým i tmavým posterem,
   protože nespoléhá na barvu fotky pod sebou. */
.pp-media-play[b-c4zaa8smxw] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.pp-media-play i[b-c4zaa8smxw] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 20px;
    /* Optické vycentrování: trojúhelník ikony má těžiště vlevo od svého rámu. */
    padding-left: 4px;
    backdrop-filter: blur(2px);
    transition: background .25s ease;
}

.pp-media-trigger:hover .pp-media-play i[b-c4zaa8smxw] {
    background: var(--public-accent);
    color: var(--public-on-accent);
}

.pp-media-item figcaption[b-c4zaa8smxw] {
    margin-top: 8px;
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    color: var(--public-text-faint);
}
/* /Pages/Studio/Profile/V2/PublicBlockRenderer.razor.rz.scp.css */
/* Varianty modulových bloků.

   Sekce z v1 varianty neznají, takže rozvržení přepisuje obal – ::deep proniká do
   potomka, jehož markup patří starému rendereru a nesmí se kvůli v2 měnit. */

/* Mřížka vlastních fotek bloku. GallerySection (zdroj "galerie prostoru") si rozvržení řeší
   sama, tady jde o médiía nahraná přímo do bloku, která PublicBlockMedia vykresluje jako holý
   seznam <figure> bez vlastního rozvržení. auto-fill drží stejnou šířku dlaždice bez ohledu na
   počet fotek – u dvaceti kusů (strop galerie) by auto-fit natáhl poslední řádek přes celou
   šířku a poslední fotka by byla několikanásobně větší než ostatní. */
.pp-gallery-grid[b-uf0mt6uws1] {
    display: grid;
    /* width: 100% je nutné, ne dekorativní: obal bloku je flexovou položkou stránky bez
       vlastní šířky, takže mřížka bez něj zkolabuje na nulu. Dlaždice pak mají pár pixelů,
       obrázky s loading="lazy" se kvůli nulové ploše vůbec nezačnou stahovat a blok vypadá
       jako prázdný – přesně tak se to projevilo při první verzi tohohle pravidla. */
    width: 100%;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 1rem;
}

/* Poměr stran a object-fit řeší PublicBlockMedia samo (viz PublicBlockMedia.razor.css);
   tady se doplňuje jen zaoblení, aby dlaždice odpovídaly galerii prostoru. */
.pp-gallery-grid[b-uf0mt6uws1]  .pp-media-trigger img {
    border-radius: 0.5rem;
}

/* ── Varianta Masonry ────────────────────────────────────────────────────────
   Sloupce proměnné výšky, fotka si drží vlastní poměr stran. Zásadní rozdíl proti mřížce:
   žádný aspect-ratio ani object-fit: cover, takže se portrét ani panorama neořízne.

   Implementováno přes CSS columns, ne grid: grid neumí položky různé výšky poskládat pod
   sebe bez mezer, aniž by se výšky dopočítávaly v JavaScriptu. Columns to zvládne nativně,
   běží bez skriptu a přežije i pomalé načtení fotek. Cenou je pořadí po sloupcích místo po
   řádcích – u galerie, kterou návštěvník prochází očima jako celek, to nevadí.

   Selektory míří na .gallery-grid / .gallery-item, tedy na skutečný markup GallerySection
   (sekce z v1 varianty nezná, rozvržení jí přepisuje obal přes ::deep). */
.pp-gallery-masonry[b-uf0mt6uws1]  .gallery-grid,
.pp-gallery-masonry .pp-gallery-grid[b-uf0mt6uws1] {
    display: block;
    columns: 4;
    column-gap: 1rem;
    /* Stejný důvod jako u .pp-gallery-grid výš: obal bloku je flexovou položkou bez vlastní
       šířky, takže blokový kontejner bez width: 100% zkolabuje na šířku obsahu. */
    width: 100%;
}

/* Obal galerie musí mít plnou šířku sám: je flexovou položkou plátna bez vlastní šířky, takže
   se bez tohoto pravidla smrskne na nulu i s celou sekcí uvnitř (naměřeno 0 px v plátně širokém
   899 px – fotky se pak vykreslily jako jeden sloupec o nulové šířce). Dřív se to neprojevilo,
   protože obal neměl žádnou variantu a dědil šířku od bloku; jakmile varianta začala nastavovat
   vlastní rozvržení, kolaps se odkryl. Platí pro obě varianty i pro obal bez varianty. */
.pp-gallery[b-uf0mt6uws1] {
    width: 100%;
}

/* Varianta Mřížka (hodnota "tiles", viz PublicBlockCatalog.VariantGrid) dědí rozvržení ze
   sekce a nic dalšího nepřepisuje. Existuje proto, aby šla v editoru vědomě zvolit jako
   protipól masonry. */

/* break-inside zabrání rozseknutí dlaždice mezi dva sloupce; bez něj prohlížeč fotku klidně
   rozdělí napůl. margin-bottom (ne gap) je nutný – column-gap řeší jen mezery mezi sloupci,
   svislé odsazení uvnitř sloupce si musí položka udělat sama. */
.pp-gallery-masonry[b-uf0mt6uws1]  .gallery-item,
.pp-gallery-masonry .pp-gallery-grid[b-uf0mt6uws1]  .pp-media-item {
    break-inside: avoid;
    margin-bottom: 1rem;
    /* Přebíjí aspect-ratio z mřížky: v masonry určuje výšku dlaždice sama fotka. */
    aspect-ratio: auto;
    /* CSS columns pracuje s inline/block tokem, ne s flexem – dlaždice musí být blok,
       jinak se do sloupce neuspořádá. */
    display: block;
    width: 100%;
}

/* Fotka v přirozeném poměru. object-fit: cover z mřížky by ji naopak ořízl do tvaru rodiče,
   což je přesně to, čemu se masonry vyhýbá; height: auto dá poměr zpět do rukou obrázku
   (spolu s atributy width/height v markupu drží místo ještě před stažením souboru). */
.pp-gallery-masonry[b-uf0mt6uws1]  .gallery-item img,
.pp-gallery-masonry .pp-gallery-grid[b-uf0mt6uws1]  .pp-media-trigger img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
    display: block;
    border-radius: 0.5rem;
}

/* ── Varianta Grid ───────────────────────────────────────────────────────────
   Stejně velké dlaždice s jednotným poměrem stran. Odpovídá chování, které galerie měla
   předtím, než varianty vznikly – proto se explicitně nic nepřepisuje: pravidla sekce
   (GallerySection.razor.css) a bloku (PublicBlockMedia.razor.css) už tohle rozvržení
   vykreslují samy. Varianta existuje kvůli tomu, aby ji šlo v editoru vědomě zvolit
   a odlišit od masonry. */

/* Vybavení: karty místo tabulky. Dvousloupcová mřížka místo seznamu pod sebou.

   Cílí se na rodiče .gear-item, ne na .equipment-list / .row: EquipmentSection vykresluje
   položky do bezejmenného <div>, takže původní selektory nikdy nic netrefily a dvacet kusů
   vybavení se dál táhlo v jednom sloupci. :has() je tu spolehlivější než struktura, kterou
   v1 markup nepojmenovává. */
.pp-equipment-cards[b-uf0mt6uws1]  div:has(> .gear-item) {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4px 32px;
}

/* Položka roztažená na celou šířku sloupce; linka odděluje řádky uvnitř sloupce. */
.pp-equipment-cards[b-uf0mt6uws1]  .gear-item {
    margin: 0;
}

/* Události: v1 karta je dlaždice se stropem 400 px. Ve v2 vedle ní zůstávala prázdná půlka
   řádku a vycentrování ji navíc odtrhlo od nadpisu bloku, který stojí vlevo. Místo dlaždic
   se tu proto z každé akce dělá vodorovná řádková položka zarovnaná doleva – obrázek vlevo,
   text vpravo, jen linka místo rámečku. Odpovídá to časopisovému rytmu v2 (eyebrow, patkový
   nadpis, jednosloupcová stránka) a funguje stejně u jedné akce jako u deseti.

   Vše přes ::deep, protože markup CoursesSection patří v1 rendereru a nesmí se kvůli v2 měnit. */
/* Nadpis bloku má vlastní spodní mezeru jen 14 px – u karty ji doplňoval rámeček, u řádku
   bez rámečku by první položka na nadpis navazovala natěsno. */
.pp-courses[b-uf0mt6uws1] {
    margin-top: 26px;
}

.pp-courses[b-uf0mt6uws1]  .d-flex.flex-wrap {
    display: block !important; /* Bootstrap .d-flex má stejnou specificitu, ale je v pozdějším stylu. */
}

/* Wrapper karty z v1 nese flex-basis a strop šířky – ve sloupci by řádek zúžil. */
.pp-courses[b-uf0mt6uws1]  .course-wrapper {
    display: block;
    max-width: none;
    min-width: 0;
}

/* Řádek: obrázek vlevo v pevném sloupci, text ve zbytku. Linka nahoře odděluje položky
   mezi sebou; rámeček ani stín karty už nejsou potřeba. */
.pp-courses[b-uf0mt6uws1]  .studio-course-card {
    display: grid;
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    grid-template-areas:
        "media title"
        "media body"
        "media foot";
    align-content: start;
    column-gap: 32px;
    padding: 28px 0 !important; /* Bootstrapové p-3 z markupu v1. */
    border: 0;
    border-top: 1px solid var(--public-border, rgba(255, 255, 255, .08));
    border-radius: 0;
    background: transparent;
    transition: none; /* Posun karty nahoru dává smysl u dlaždice, ne u řádku v seznamu. */
}

/* První položka nemá horní linku – hned pod nadpisem bloku by působila jako podtržení. */
.pp-courses[b-uf0mt6uws1]  .course-wrapper:first-child .studio-course-card {
    border-top: 0;
    padding-top: 0 !important;
}

.pp-courses[b-uf0mt6uws1]  .course-card-link:hover .studio-course-card {
    transform: none;
    box-shadow: none;
    border-color: var(--public-border, rgba(255, 255, 255, .08));
}

.pp-courses[b-uf0mt6uws1]  .course-image-container {
    grid-area: media;
    height: auto;
    aspect-ratio: 4 / 3;
    border-radius: 6px;
    margin-bottom: 0 !important;
}

/* Nadpis: patkové písmo stránky místo bezpatkového nadpisu karty, aby řádek zapadl
   do typografie v2. Pevná min-height z v1 srovnávala výšku dlaždic vedle sebe –
   ve sloupci jen dělá díru nad popisem. */
.pp-courses[b-uf0mt6uws1]  .studio-course-card > div:first-of-type {
    grid-area: title;
    min-height: 0 !important;
    margin-bottom: 10px !important;
}

.pp-courses[b-uf0mt6uws1]  .course-title {
    font-family: var(--public-font-heading);
    font-weight: 400;
    font-size: calc(var(--public-size-body) * 1.5);
    line-height: 1.2;
    letter-spacing: -.01em;
    text-transform: none;
    -webkit-line-clamp: 3;
}

/* Popis navazuje na název; bootstrapové mb-3 z v1 dělalo mezi nimi zbytečnou díru,
   protože v řádku už nemusí odsazovat sousední prvky karty. */
.pp-courses[b-uf0mt6uws1]  .flex-grow-1 {
    grid-area: body;
    margin-bottom: 14px !important;
}

.pp-courses[b-uf0mt6uws1]  .course-desc {
    font-size: var(--public-size-body);
    line-height: 1.65;
    color: var(--public-text-soft);
    max-width: 680px;
    -webkit-line-clamp: 4;
}

/* Patička: bez horní linky a bez roztažení na celou šířku – délka a odkaz stojí vedle sebe
   hned za popisem, ne přilepené k dolní hraně jako u karty. */
.pp-courses[b-uf0mt6uws1]  .studio-course-card > .d-flex.justify-content-between {
    grid-area: foot;
    justify-content: flex-start !important;
    gap: 24px;
    border-top: 0 !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Odkaz "Podrobnosti" v akcentní barvě stránky; .text-primary je bootstrapová modrá. */
.pp-courses[b-uf0mt6uws1]  .studio-course-card .text-primary {
    color: var(--public-accent) !important;
}

.pp-courses[b-uf0mt6uws1]  .course-card-link:hover .text-primary {
    text-decoration: underline;
}

/* Na mobilu se dva sloupce nevejdou – obrázek jde nad text. */
@media (max-width: 768px) {
    .pp-courses[b-uf0mt6uws1]  .studio-course-card {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "media"
            "title"
            "body"
            "foot";
        row-gap: 16px;
    }

    .pp-courses[b-uf0mt6uws1]  .course-image-container {
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 768px) {
    /* Masonry na mobilu: dva sloupce. Jeden by z galerie udělal nekonečný svislý pás, čtyři
       jsou v šířce telefonu dlaždice o velikosti nehtu. Měřeno na 390 px (iPhone 16). */
    .pp-gallery-masonry[b-uf0mt6uws1]  .gallery-grid,
    .pp-gallery-masonry .pp-gallery-grid[b-uf0mt6uws1] {
        columns: 2;
    }

    /* Na mobilu se dva sloupce nevejdou – krátké názvy by se lámaly uprostřed. */
    .pp-equipment-cards[b-uf0mt6uws1]  div:has(> .gear-item) {
        grid-template-columns: 1fr;
    }
}

/* Tablet: čtyři sloupce jsou na této šířce už úzké, tři drží fotku čitelnou. */
@media (min-width: 769px) and (max-width: 1024px) {
    .pp-gallery-masonry[b-uf0mt6uws1]  .gallery-grid,
    .pp-gallery-masonry .pp-gallery-grid[b-uf0mt6uws1] {
        columns: 3;
    }
}
/* /Pages/Studio/Profile/V2/PublicCardsBlock.razor.rz.scp.css */
/* Karty ve 2–4 sloupcích. Počet sloupců přichází jako proměnná z komponenty. */

.pp-cards[b-12nacl23vr] {
    display: grid;
    grid-template-columns: repeat(var(--pp-card-columns, 3), 1fr);
    gap: 18px;
    margin-top: 32px;
}

.pp-card[b-12nacl23vr] {
    background: var(--public-surface);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    padding: 28px 24px;
}

.pp-card-label[b-12nacl23vr] {
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--public-accent);
    margin-bottom: 12px;
}

/* Nadpis karty je jediné místo, kde se používá tučný bezpatkový řez – patkové písmo
   je v této velikosti hůř čitelné. */
.pp-card-title[b-12nacl23vr] {
    font-family: var(--public-font-body);
    font-weight: 600;
    font-size: var(--public-size-card-heading);
    color: var(--public-text);
    margin: 0 0 10px;
}

.pp-card-text[b-12nacl23vr] {
    font-size: calc(var(--public-size-body) * .92);
    line-height: 1.7;
    color: var(--public-text-soft);
    margin: 0;
}

@media (max-width: 768px) {
    .pp-cards[b-12nacl23vr] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Studio/Profile/V2/PublicContactBlock.razor.rz.scp.css */
/* Kontaktní blok v2 – patičkové rozvržení.

   Soubor drží jen pravidla rozvržení a měřítka; barvy, fonty i rozměry přicházejí z CSS
   proměnných stylu, aby blok patřil k webu a nepůsobil jako cizí prvek. Žádná hodnota
   barvy tu proto není zapsaná napevno. */

/* Linka nahoře odděluje závěr od posledního obsahového bloku. Blok nemá vlastní pozadí
   (ParticipatesInBanding je false), takže bez ní by kontakt splynul s předchozí sekcí. */
.pp-contact[b-z5v51c7oro] {
    border-top: 1px solid var(--public-border-soft);
    padding-top: 40px;
}

/* Značka dostane víc místa než sloupce s odkazy – odpovídá to referenční patičce, kde
   popis vlevo tvoří protiváhu několika krátkým sloupcům vpravo. auto-fit drží mřížku
   funkční i tehdy, když se sloupce nevykreslí (prostor bez adresy nebo bez sítí). */
.pp-contact-grid[b-z5v51c7oro] {
    display: grid;
    grid-template-columns: minmax(220px, 1.6fr) repeat(auto-fit, minmax(150px, 1fr));
    gap: 40px;
    align-items: start;
}

.pp-contact-name[b-z5v51c7oro] {
    font-family: var(--public-font-heading);
    font-size: var(--public-size-card-heading);
    color: var(--public-text);
    margin-bottom: 10px;
}

/* Popis je záměrně drobný a tlumený – v patičce jde o doplněk, ne o čtený obsah. */
.pp-contact-about[b-z5v51c7oro] {
    color: var(--public-text-faint);
    font-size: calc(var(--public-size-body) * .9);
    line-height: 1.6;
    max-width: 420px;
}

/* Obsah popisu vykresluje Tiptap jako vnořený markup, takže odstavce potřebují srovnat
   okraje – jinak by poslední odstavec odsadil celý sloupec od zbytku mřížky. */
.pp-contact-about p:last-child[b-z5v51c7oro] {
    margin-bottom: 0;
}

/* Nadpis sloupce funguje jako popisek, ne jako nadpis sekce: verzálky, prostrkání a mono
   font ho odliší od odkazů pod ním bez toho, aby soutěžil s nadpisy bloků nad patičkou. */
.pp-contact-col-title[b-z5v51c7oro] {
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--public-text-faint);
    margin-bottom: 14px;
}

.pp-contact-list[b-z5v51c7oro] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pp-contact-list a[b-z5v51c7oro] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--public-text-soft);
    font-size: calc(var(--public-size-body) * .92);
    text-decoration: none;
    transition: color .18s;
}

/* Hover mění jen barvu na akcent – patička nemá důvod na pohyb, který by z odkazu dělal
   tlačítko. Právě to bylo na v1 verzi rušivé. */
.pp-contact-list a:hover[b-z5v51c7oro] {
    color: var(--public-accent);
}

/* Ikona sociální sítě je tlumenější než text a při hoveru se dobarví s ním. Pevná šířka
   drží popisky sítí zarovnané pod sebou i při různě širokých ikonách. */
.pp-contact-list a i[b-z5v51c7oro] {
    width: 16px;
    text-align: center;
    color: var(--public-text-faint);
    transition: color .18s;
}

.pp-contact-list a:hover i[b-z5v51c7oro] {
    color: var(--public-accent);
}

/* Adresa je prostý text, ne odkaz; prohlížeč ji jako <address> renderuje kurzívou, což
   se stylem patičky neladí. */
.pp-contact-address[b-z5v51c7oro] {
    margin: 0;
    font-style: normal;
    color: var(--public-text-soft);
    font-size: calc(var(--public-size-body) * .92);
    line-height: 1.6;
}

/* Na mobilu jdou sloupce pod sebe. Značka si nechává větší odstup, aby zůstala čitelná
   jako hlavička patičky, ne jako první z řady stejných sloupců. */
@media (max-width: 768px) {
    .pp-contact-grid[b-z5v51c7oro] {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .pp-contact-about[b-z5v51c7oro] {
        max-width: none;
    }
}
/* /Pages/Studio/Profile/V2/PublicCourseBlock.razor.rz.scp.css */
/* Kompozit události ve v2: popis, fakta, varianty s cenami a termíny.

   Všechny barvy, poloměry a velikosti pocházejí z proměnných stylu, takže blok vypadá
   jako součást webu prostoru v každém stylu i archetypu – žádná vlastní paleta. */

/* ── O akci ─────────────────────────────────────────────────────────────────
   Popis je souvislý text, proto dostává čtecí míru stejně jako editorial blok.
   Bez ní by se řádek roztáhl přes celou šířku obsahu (~125 znaků) a špatně se četl. */
.pp-course-about[b-z09lh6jrd5] {
    margin-top: 28px;
    max-width: var(--public-heading-width);
}

/* ── Fakta o akci ───────────────────────────────────────────────────────────
   v1 mělo tyhle údaje v pravé info kartě. v2 je jednosloupcové, takže z karty je
   vodorovný pruh: informace zůstává, ale nebere obsahu třetinu šířky. */
.pp-course-facts[b-z09lh6jrd5] {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 32px;
    margin: 32px 0 0;
    padding: 20px 24px;
    background: var(--public-surface);
    border: 1px solid var(--public-border-soft);
    border-radius: var(--public-radius);
}

.pp-course-fact dt[b-z09lh6jrd5] {
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--public-text-faint);
    font-weight: 400;
    margin-bottom: 4px;
}

.pp-course-fact dd[b-z09lh6jrd5] {
    margin: 0;
    font-size: calc(var(--public-size-body) * 1.05);
    color: var(--public-text);
    font-weight: 600;
}

/* ── Společný podnadpis sekcí uvnitř bloku ──────────────────────────────────
   Menší než nadpis bloku: varianty a termíny jsou jeho části, ne samostatné bloky. */
.pp-course-subheading[b-z09lh6jrd5] {
    font-family: var(--public-font-heading);
    font-size: calc(var(--public-size-heading) * .52);
    color: var(--public-text);
    margin: 0 0 20px;
}

.pp-course-options[b-z09lh6jrd5],
.pp-course-terms[b-z09lh6jrd5] {
    margin-top: 44px;
}

/* ── Varianty ───────────────────────────────────────────────────────────────
   Dva pevné sloupce: názvy variant jsou krátké, ale s popisem a termíny uvnitř by
   jeden sloupec vytvořil velmi dlouhou stránku.

   Ne auto-fit/auto-fill s minmax: při šířce obsahu 1064 px vycházela třetí, nulová
   stopa (měřeno "523px 523px 0px") a mřížka pak nebyla symetrická. Pevný počet
   sloupců to řeší bez ohledu na šířku stylu; mobil je přepíná na jeden níž. */
.pp-course-option-grid[b-z09lh6jrd5] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.pp-course-option[b-z09lh6jrd5] {
    background: var(--public-surface);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    padding: 24px;
}

.pp-course-option-head[b-z09lh6jrd5] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 12px;
}

.pp-course-option-name[b-z09lh6jrd5] {
    font-weight: 600;
    font-size: var(--public-size-card-heading);
    color: var(--public-text);
}

.pp-course-option-type[b-z09lh6jrd5] {
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    color: var(--public-text-faint);
    margin-top: 4px;
}

/* Cena je hlavní rozhodovací údaj karty, proto akcent a mono písmo – číslice tak
   drží stejnou šířku napříč variantami a sloupec cen se opticky srovná. */
.pp-course-option-price[b-z09lh6jrd5] {
    font-family: var(--public-font-mono);
    font-size: calc(var(--public-size-heading) * .42);
    color: var(--public-accent);
    white-space: nowrap;
}

.pp-course-option-desc[b-z09lh6jrd5] {
    color: var(--public-text-soft);
    font-size: var(--public-size-body);
}

/* ── Termíny uvnitř varianty ────────────────────────────────────────────────── */
.pp-course-term-list[b-z09lh6jrd5] {
    list-style: none;
    margin: 20px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--public-border-soft);
}

.pp-course-term[b-z09lh6jrd5] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
}

.pp-course-term + .pp-course-term[b-z09lh6jrd5] {
    border-top: 1px solid var(--public-border-soft);
}

.pp-course-term-when[b-z09lh6jrd5] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}

.pp-course-term-date[b-z09lh6jrd5] {
    color: var(--public-text);
    font-weight: 600;
    white-space: nowrap;
}

.pp-course-term-time[b-z09lh6jrd5] {
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    color: var(--public-text-faint);
}

/* Volná místa i stav termínu se odsazují doprava, aby tlačítko na všech řádcích
   začínalo na stejné pozici a seznam měl svislou osu. */
.pp-course-term-free[b-z09lh6jrd5] {
    margin-left: auto;
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    color: var(--public-text-faint);
    white-space: nowrap;
}

/* Docházející kapacita je informace, kvůli které se lidé rozhodují teď, proto akcent. */
.pp-course-term-free-low[b-z09lh6jrd5] {
    color: var(--public-accent);
}

.pp-course-term-state[b-z09lh6jrd5] {
    margin-left: auto;
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--public-text-faint);
}

.pp-course-term-cancelled[b-z09lh6jrd5] {
    text-decoration: line-through;
}

/* Registrační tlačítko je jediná akce celého bloku, takže nese plný akcent.
   Nemá se ale chovat jako aplikační tlačítko – žádné zvedání ani stín při hoveru. */
.pp-course-register[b-z09lh6jrd5] {
    flex-shrink: 0;
    border: 0;
    border-radius: var(--public-radius-sm);
    background: var(--public-accent);
    color: var(--public-on-accent);
    font-family: var(--public-font-body);
    font-size: var(--public-size-body);
    font-weight: 600;
    padding: 8px 18px;
    cursor: pointer;
    transition: background .15s ease;
}

/* Termín bez omezené kapacity nemá před tlačítkem nic, co by ho odsadilo doprava,
   takže odsazení musí obstarat tlačítko samo. Když volná místa předchází, jejich
   margin-left:auto už zarovnání zajistil a tohle pravidlo se neuplatní. */
.pp-course-term-when + .pp-course-register[b-z09lh6jrd5] {
    margin-left: auto;
}

.pp-course-register:hover[b-z09lh6jrd5] {
    background: var(--public-accent-hover);
}

/* ── Samostatné termíny ─────────────────────────────────────────────────────
   Jeden sloupec: karta nese datum, čas, lektory i poznámku, takže vedle sebe by se
   text lámal po dvou slovech. */
.pp-course-term-cards[b-z09lh6jrd5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pp-course-term-card[b-z09lh6jrd5] {
    display: flex;
    align-items: center;
    gap: 20px;
    background: var(--public-surface);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    padding: 16px 20px;
}

/* Datum jako blok kalendáře: den a měsíc pod sebou se v seznamu hledá rychleji
   než souvislý řetězec "12. 3. 2026". */
.pp-course-term-day[b-z09lh6jrd5] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    padding: 8px;
    background: var(--public-bg-raise);
    border-radius: var(--public-radius-sm);
}

.pp-course-term-daynum[b-z09lh6jrd5] {
    font-family: var(--public-font-heading);
    font-size: calc(var(--public-size-heading) * .46);
    line-height: 1;
    color: var(--public-accent);
}

.pp-course-term-month[b-z09lh6jrd5] {
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--public-text-faint);
    margin-top: 2px;
}

.pp-course-term-body[b-z09lh6jrd5] {
    flex-grow: 1;
    min-width: 0;
}

.pp-course-term-hours[b-z09lh6jrd5] {
    font-weight: 600;
    color: var(--public-text);
}

.pp-course-term-meta[b-z09lh6jrd5] {
    font-size: var(--public-size-body);
    color: var(--public-text-faint);
    margin-top: 2px;
}

@media (max-width: 768px) {
    .pp-course-facts[b-z09lh6jrd5] {
        gap: 16px;
        flex-direction: column;
    }

    .pp-course-option-grid[b-z09lh6jrd5] {
        grid-template-columns: 1fr;
    }

    /* Na úzké obrazovce se řádek termínu láme: datum a čas nahoře, akce pod nimi.
       Vedle sebe by se tlačítko zmáčklo na dva znaky. */
    .pp-course-term[b-z09lh6jrd5] {
        flex-wrap: wrap;
    }

    .pp-course-term-free[b-z09lh6jrd5],
    .pp-course-term-state[b-z09lh6jrd5] {
        margin-left: 0;
    }

    .pp-course-register[b-z09lh6jrd5] {
        margin-left: auto;
    }

    .pp-course-term-card[b-z09lh6jrd5] {
        flex-wrap: wrap;
        gap: 14px;
    }
}
/* /Pages/Studio/Profile/V2/PublicCourseRegistration.razor.rz.scp.css */
/* Registrační dialog události ve v2.

   Barvy a poloměry ze stylu prostoru, aby dialog patřil k webu a nepůsobil jako kus
   administrace vysunutý nad veřejnou stránku. */

.pp-reg-backdrop[b-f199v2z30p] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .6);

    /* Nad hero i nad plovoucími ovládacími prvky vlastníka stránky, které jsou fixed. */
    z-index: 1050;
}

.pp-reg-dialog[b-f199v2z30p] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1051;

    width: min(680px, calc(100vw - 32px));

    /* Formulář je delší než nízké okno (notebook na šířku), takže se musí scrollovat
       uvnitř dialogu – jinak by odesílací tlačítko zůstalo pod hranou obrazovky. */
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;

    background: var(--public-bg-raise);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    color: var(--public-text);
}

.pp-reg-head[b-f199v2z30p] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 24px;
    border-bottom: 1px solid var(--public-border-soft);
}

.pp-reg-course[b-f199v2z30p] {
    font-family: var(--public-font-heading);
    font-size: var(--public-size-card-heading);
    color: var(--public-text);
}

.pp-reg-term[b-f199v2z30p] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px;
    margin-top: 4px;
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    color: var(--public-text-faint);
}

.pp-reg-sep[b-f199v2z30p] {
    opacity: .5;
}

.pp-reg-price[b-f199v2z30p] {
    color: var(--public-accent);
    font-weight: 600;
}

.pp-reg-close[b-f199v2z30p] {
    flex-shrink: 0;
    border: 0;
    background: transparent;
    color: var(--public-text-faint);
    font-size: 1.25rem;
    line-height: 1;
    padding: 4px;
    cursor: pointer;
}

.pp-reg-close:hover[b-f199v2z30p] {
    color: var(--public-text);
}

.pp-reg-body[b-f199v2z30p] {
    padding: 24px;
    overflow-y: auto;
}

/* Dvanáctisloupcová mřížka bez Bootstrapu: veřejná stránka má vlastní styl a bootstrapové
   row/col by do ní vnesly cizí odsazení i breakpointy. */
.pp-reg-grid[b-f199v2z30p] {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 12px;
}

.pp-reg-col-4[b-f199v2z30p] { grid-column: span 4; }
.pp-reg-col-6[b-f199v2z30p] { grid-column: span 6; }
.pp-reg-col-8[b-f199v2z30p] { grid-column: span 8; }
.pp-reg-col-12[b-f199v2z30p] { grid-column: span 12; }

.pp-reg-error[b-f199v2z30p] {
    padding: 10px 14px;
    border-radius: var(--public-radius-sm);

    /* Chybová hláška musí být čitelná v tmavém i světlém stylu, proto poloprůhledná
       červená nad podkladem dialogu místo pevné barvy pozadí. */
    background: rgba(220, 53, 69, .12);
    border: 1px solid rgba(220, 53, 69, .4);
    color: #ff8080;
    font-size: var(--public-size-body);
}

.pp-reg-actions[b-f199v2z30p] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

.pp-reg-success[b-f199v2z30p] {
    text-align: center;
    padding: 24px 0;
}

.pp-reg-success i[b-f199v2z30p] {
    font-size: 3rem;
    color: var(--public-accent);
}

.pp-reg-success h4[b-f199v2z30p] {
    font-family: var(--public-font-heading);
    font-size: var(--public-size-card-heading);
    margin: 16px 0 8px;
}

.pp-reg-success p[b-f199v2z30p] {
    color: var(--public-text-faint);
    margin-bottom: 20px;
}

@media (max-width: 576px) {
    /* Na mobilu se dvousloupcové dvojice (jméno/příjmení, e-mail/telefon) roztáhnou
       na plnou šířku – ve dvou sloupcích by pole byla užší než jejich placeholder. */
    .pp-reg-col-4[b-f199v2z30p],
    .pp-reg-col-6[b-f199v2z30p],
    .pp-reg-col-8[b-f199v2z30p] {
        grid-column: span 12;
    }
}
/* /Pages/Studio/Profile/V2/PublicEditorialBlock.razor.rz.scp.css */
/* Editorial blok. Kompozice se odvozuje z počtu médií; hodnoty pocházejí ze stylu. */

.pp-editorial-split[b-q1xxid9lg6] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

/* Střídání stran u bloků s jedním obrázkem. Pořadí se mění jen vizuálně (order), aby
   v HTML zůstal text před obrázkem – čtečky a vyhledávače tak vidí obsah ve stejném
   pořadí bez ohledu na to, kolikátý blok to je. */
.pp-editorial-reversed .pp-editorial-text[b-q1xxid9lg6] {
    order: 2;
}

.pp-editorial-reversed .pp-editorial-media[b-q1xxid9lg6] {
    order: 1;
}

/* Média vykresluje PublicBlockMedia, takže scoped atribut na ně nedosáhne bez ::deep –
   bez něj by se pravidlo tiše zahodilo a obrázek by neměl zaoblení ani šířku. */
.pp-editorial-media[b-q1xxid9lg6]  .pp-media-trigger img {
    width: 100%;
    display: block;
    border-radius: var(--public-radius);
    /* Volnější poměr než dlaždice v mřížce (4/3 z PublicBlockMedia). Samostatný obrázek
       je hlavní vizuál bloku a stojí vedle textu, takže se u něj ořez projeví nejvíc –
       u fotky na výšku by cover ubral vršek i spodek. 3/2 rezervuje místo proti poskakování
       při načítání a zároveň nechá kompozici blíž originálu. */
    aspect-ratio: 3 / 2;
}

.pp-editorial-grid[b-q1xxid9lg6] {
    display: grid;
    gap: 18px;
    margin-top: 28px;
}

.pp-grid-pair[b-q1xxid9lg6] {
    grid-template-columns: repeat(2, 1fr);
}

.pp-grid-multi[b-q1xxid9lg6] {
    grid-template-columns: repeat(3, 1fr);
}

/* Mřížka i její položky patří PublicBlockMedia (viz ::deep výše u split kompozice).
   Vlastní vzhled dlaždice – zaoblení, popisek, značka videa – si nese komponenta sama;
   tady zůstává jen rozvržení, které je věcí editorialu. */
.pp-editorial-grid[b-q1xxid9lg6]  .pp-media-item {
    margin: 0;
}

/* Pozor na scope: .pp-prose vzniká přes builder.AddMarkupContent, takže mu Blazor
   NEPŘIDÁ scope atribut (b-xxx). Selektor `.pp-prose { }` by se proto zkompiloval na
   `.pp-prose[b-xxx]` a neuplatnil se vůbec – text pak běžel přes celou šířku bloku
   (naměřeno 1064 px, tj. ~125 znaků na řádek). Proto se sem míří přes rodiče
   `.pp-editorial-text`, který scope atribut má, a dovnitř přes ::deep. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose {
    color: var(--public-text-soft);
    /* Míra pro pohodlné čtení je 65–80 znaků; na 17px písmu to vychází kolem 680 px. */
    max-width: 680px;
}

/* Tučné v odstavci dostává barvu hlavního textu – odstavec je tlumený, takže tučné
   "prosvítá" místo toho, aby jen ztloustlo. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose strong,
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose b {
    color: var(--public-text);
    font-weight: 600;
}

/* Odrážky nejsou tečky, ale krátká vodorovná linka v sekundárním akcentu. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose ul {
    list-style: none;
    padding-left: 0;
}

.pp-editorial-text[b-q1xxid9lg6]  .pp-prose ul li {
    position: relative;
    padding-left: 24px;
}

.pp-editorial-text[b-q1xxid9lg6]  .pp-prose ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .85em;
    width: 11px;
    height: 1px;
    background: var(--public-accent-deep);
}

/* --- Inline editace textu v náhledu editoru ---

   Cíl je, aby text během psaní vypadal stejně jako vysázený: stejná barva, šířka řádku
   i sazba. Když se při vstupu do editace posune, uživatel ztratí důvěru, že náhled ukazuje
   skutečný výsledek – a tím padá celý smysl inline editace.

   Tiptap si vykresluje vlastní strukturu (.editor-container > .editor), která scope atribut
   nedostane, proto všechno přes ::deep – stejný důvod jako u .pp-prose výše. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing .editor {
    /* Rámeček ani pozadí editoru se nekreslí: text sedí přímo na pozadí stránky a hranici
       už nese obrys vybraného bloku. Dvojitý rámeček by z náhledu udělal formulář. */
    border: none;
    background: transparent;
    padding: 0;
    min-height: 0;
    color: inherit;
    font: inherit;
}

/* Focus ring editoru je vypnutý ze stejného důvodu – vybraný blok má vlastní zvýraznění.
   Bez toho se při psaní objevil modrý systémový obrys uprostřed vysázené stránky. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing .editor:focus,
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing .editor.focused,
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing .editor .ProseMirror:focus {
    outline: none;
    box-shadow: none;
    border: none;
}

/* Tiptapová lišta plave místo aby zabírala řádek v toku: kdyby text odsouvala, obsah pod
   ní by se při každém vstupu do editace posunul dolů a náhled by přestal odpovídat
   výsledku – tedy přesně to, kvůli čemu inline editace existuje.

   Kotví se pod spodní hranu textu. Nad textem (původní pokus) padala na nadpis bloku a
   překryla mu druhý řádek; pod textem je volné místo bloku, kam nic nezasahuje.

   Tmavé pozadí je nutné: veřejná stránka bývá tmavá a výchozí světlá lišta na ní zmizí. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing {
    position: relative;
    /* Průhledný obrys v základu; hover níž mu mění jen barvu. Kdyby ho zapínal zkráceným
       zápisem, resetoval by při každém překreslení outline-style zpátky na none a obrys
       by zůstal neviditelný (naměřeno na nadpisu). */
    outline: 1px dashed transparent;
    outline-offset: 6px;
}

/* Statický text v náhledu editoru dostává stejný obrys jako živý editor. Bez toho by se
   signál objevil až po výběru bloku – tedy ve chvíli, kdy uživatel dávno klikl a nabídka
   ke kliknutí už mu k ničemu není. Třídu přidává jen editor (IsEditorPreview), veřejná
   stránka ji nemá. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editable {
    outline: 1px dashed transparent;
    outline-offset: 6px;
    cursor: text;
}

/* Náznak editovatelnosti při najetí myší. Pravidlo je tady, ne v app.css: scoped selektor
   nese atribut komponenty ([b-xxx]) a má tím vyšší specificitu, takže globální hover by
   ho nepřebil a obrys by zůstal průhledný (naměřeno – outline-style dashed, ale barva
   rgba(0,0,0,0)). Vzhled odpovídá stejnému obrysu u nadpisu v app.css. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editable:hover,
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing:hover {
    outline-color: rgba(127, 119, 221, .55);
}

/* Během psaní obrys mizí – má pozvat ke kliknutí, ne rámovat text, ve kterém uživatel
   právě pracuje. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing:focus-within,
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing:focus-within:hover {
    outline-color: transparent;
}

/* Pozici i vzhled lišty řídí globální .pp-inline-editor pravidla v app.css, společná pro
   všechny inline editory v náhledu (hero, modulové bloky i tenhle). Dřívější vlastní
   pravidlo tady (top: calc(100% + 10px), tmavé pozadí) se s nimi střetlo: prohlížeč dostal
   top i bottom zároveň, lišta zkolabovala na 10 px, spadla pod text a na tmavé stránce
   z ní zbyl tmavý proužek – naměřeno jako "duch" pod posledním odstavcem. */

/* Prázdný blok musí zůstat klikatelný, jinak se do něj uživatel nemá jak dostat –
   nulová výška by z něj udělala neviditelný cíl. */
.pp-editorial-text[b-q1xxid9lg6]  .pp-prose-editing .editor .ProseMirror {
    min-height: 2.5em;
}

/* Na mobilu jde obrázek vždy nad text, bez ohledu na střídání stran. */
@media (max-width: 768px) {
    .pp-editorial-split[b-q1xxid9lg6] {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .pp-editorial-reversed .pp-editorial-text[b-q1xxid9lg6],
    .pp-editorial-reversed .pp-editorial-media[b-q1xxid9lg6] {
        order: initial;
    }

    .pp-grid-multi[b-q1xxid9lg6] {
        grid-template-columns: repeat(2, 1fr);
    }
}
/* /Pages/Studio/Profile/V2/PublicHeroBlock.razor.rz.scp.css */
/* Hero: jedna kompozice, dva stavy (s fotkou / bez) a dvě měřítka podle archetypu. */

.pp-hero[b-5q2j645pbw] {
    position: relative;
    background-size: cover;
    background-position: center;
    /* Obsah dole: fotka tak zůstane vidět nahoře a text sedí nad přechodem do stránky,
       stejně jako ve v1. Bez toho by nadpis plaval uprostřed plochy.

       Grid, ne flex: u flexu se `margin: 0 auto` na vnitřním kontejneru sečte s jeho
       vlastním paddingem, takže text hero začínal o 28 px dál než ostatní bloky. */
    display: grid;
    align-content: end;
}

/* Hero jde přes celou šířku okna, takže šířku obsahu drží až tento vnitřní kontejner –
   jinak by text začínal u levého okraje obrazovky, ne v ose se zbytkem stránky. */
.pp-hero-inner[b-5q2j645pbw] {
    position: relative;
    z-index: 1; /* Nad přechodovou vrstvou níž, jinak by ji text měl přes sebe. */
    width: 100%;
    max-width: var(--public-content-width);
    margin: 0 auto;
    padding: 0 var(--public-content-padding);
}

/* Plné měřítko: profil a detail události. Výška se drží na výšce okna, aby hero fungovalo
   jako úvodní obrazovka; menší z hodnot brání tomu, aby na nízkém okně (notebook na šířku)
   zabralo celý viewport a obsah pod ním nebyl vůbec tušit. */
.pp-hero-full[b-5q2j645pbw] {
    min-height: min(85vh, 780px);
    padding: 140px 0 84px;
}

/* Fotka potřebuje přechod do barvy stránky, jinak končí ostrou hranou uprostřed layoutu.
   Přechod je jen u varianty s fotkou – plochý stav má vlastní řešení níž.

   Přechod smí zasáhnout jen úzký pruh u dolní hrany (od 12 % výše je průhledný). Původně
   začínal ve 38 % a u světlého stylu tím zesvětloval celou dolní polovinu fotky – tedy
   přesně tam, kde stojí lead a přehrávač, které jsou nad fotkou vždy bílé. Naměřený
   kontrast bílého textu tam klesal k 1,2:1, takže text prakticky zmizel.

   Gradient tu má jediný úkol: schovat ostrou vodorovnou hranu na konci fotky. Ta je až
   úplně dole, pod obsahem, takže krátký přechod účel splní a do čitelnosti nezasahuje. */
.pp-hero-photo[b-5q2j645pbw]::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to top,
        var(--public-bg) 0%,
        color-mix(in srgb, var(--public-bg) 40%, transparent) 6%,
        transparent 12%);
}

/* Kompaktní měřítko pro podstránky. Stránka "Ochrana osobních údajů" s celoobrazovkovým
   hero působí divně, ale barvy, fonty i šířka zůstávají stejné jako u profilu. */
.pp-hero-compact[b-5q2j645pbw] {
    min-height: 0;
    padding: 116px 0 76px;
}

.pp-hero-title[b-5q2j645pbw] {
    font-family: var(--public-font-heading);
    font-weight: 400;
    /* Hero nadpis je hlavní vizuální kotva stránky, proto jde na dvojnásobek tokenu
       --public-size-hero. Token je validací omezen na 96px, takže zvětšení nelze udělat
       jeho hodnotou. Strop 13vw drží nadpis na úzkých displejích čitelný – bez něj by
       spodní mez clampu (40px) po vynásobení dvěma dala na mobilu 80px a text by přetékal. */
    font-size: min(calc(var(--public-size-hero) * 2), 13vw);
    line-height: 1.02;
    letter-spacing: -.015em;
    color: var(--public-text);
    max-width: var(--public-heading-width);
    margin: 0;
}

/* Plné hero potřebuje širší sloupec než ostatní nadpisy. Token --public-heading-width
   (výchozí 760px) je nastavený pro nadpisy běžných bloků, jenže tenhle nadpis je proti
   nim dvojnásobně velký – do stejné šířky se vejde jen ~7 znaků na řádek, takže i krátký
   název prostoru se láme na tři řádky. Odvozený násobek drží nadpis v poměru k tokenu,
   aby se uživatelské nastavení šířky stále projevilo, a strop 1100px brání příliš dlouhé
   řádce na širokém monitoru. Kompaktní hero (podstránky) zůstává na původní šířce – jeho
   písmo je mnohem menší a širší sloupec by u něj vyrobil nečitelně dlouhé řádky. */
.pp-hero-full .pp-hero-title[b-5q2j645pbw] {
    max-width: min(calc(var(--public-heading-width) * 1.5), 1100px);
}

/* Kompaktní hero je pořád hero, jen menší než na profilu. Rovnou --public-size-heading
   znamenalo přesně velikost nadpisu běžného bloku, takže název podstránky vypadal jako
   další mezinadpis a stránka jako by hero neměla vůbec. Mezistupeň (1,6×) ho odliší od
   obsahu, ale nekonkuruje celoobrazovkovému hero profilu; 8vw drží nadpis na úzkém
   displeji uvnitř obrazovky. */
.pp-hero-compact .pp-hero-title[b-5q2j645pbw] {
    font-size: min(calc(var(--public-size-heading) * 1.6), 8vw);
    line-height: 1.06;
}

/* Zahrnuje i <i>: inline editace vytváří zvýraznění přes document.execCommand('italic'),
   které generuje <i>, ne <em> – bez toho by nově zvýrazněný text dostal jen kurzívu bez
   akcentní barvy. Selektory bez ::deep míří na obsah vytvořený přímo v tomto elementu
   (contenteditable), s ::deep na vysázený nadpis z PublicHeadingMarkup. */
.pp-hero-title[b-5q2j645pbw]  em,
.pp-hero-title[b-5q2j645pbw]  i,
.pp-hero-title em[b-5q2j645pbw],
.pp-hero-title i[b-5q2j645pbw] {
    font-style: italic;
    color: var(--public-accent-soft);
}

.pp-hero-lead[b-5q2j645pbw] {
    font-size: calc(var(--public-size-body) * 1.12);
    line-height: 1.65;
    color: var(--public-text-soft);
    max-width: 500px; /* Užší než tělo textu – úvodní odstavec se čte na jeden nádech. */
    margin-top: 20px;
}

/* --- Inline editace úvodního textu ---

   V editačním režimu vykresluje lead komponenta PublicInlineTiptap. Její kořenový element
   sice dostane třídu .pp-hero-lead, ale scope atribut tohoto souboru ne – ten Blazor přidává
   jen elementům zapsaným přímo v PublicHeroBlock.razor. Pravidlo výš proto na editovaný text
   vůbec nesedělo a odstavec se při vstupu do editace roztáhl přes celou šířku hrdiny.
   Náhled tím přestal ukazovat skutečný výsledek, což je celý smysl inline editace, takže se
   stejné hodnoty musí zopakovat přes ::deep. */
.pp-hero-inner[b-5q2j645pbw]  .pp-hero-lead {
    font-size: calc(var(--public-size-body) * 1.12);
    line-height: 1.65;
    color: var(--public-text-soft);
    max-width: 500px;
    margin-top: 20px;
}

/* Nad fotkou je text bílý; pravidlo .pp-hero-photo .pp-hero-lead níž ze stejného důvodu
   (chybějící scope atribut) editovaný odstavec nezasáhne. */
.pp-hero-photo .pp-hero-inner[b-5q2j645pbw]  .pp-hero-lead {
    color: #ffffff;
}

/* Tiptap si uvnitř kreslí vlastní strukturu (.editor-container > .editor). Bez těchto
   pravidel by uprostřed vysázeného hrdiny seděl formulářový rámeček s vlastním pozadím
   a odsazením, tedy opět jiný vzhled než výsledek. */
.pp-hero-inner[b-5q2j645pbw]  .pp-prose-editing .editor {
    border: none;
    background: transparent;
    padding: 0;
    min-height: 0;
    color: inherit;
    font: inherit;
}

/* Systémový focus ring je vypnutý – hranici editovaného místa už nese zvýraznění
   vybraného bloku a modrý obrys uprostřed stránky působí jako chyba sazby. */
.pp-hero-inner[b-5q2j645pbw]  .pp-prose-editing .editor:focus,
.pp-hero-inner[b-5q2j645pbw]  .pp-prose-editing .editor.focused,
.pp-hero-inner[b-5q2j645pbw]  .pp-prose-editing .editor .ProseMirror:focus {
    outline: none;
    box-shadow: none;
    border: none;
}

/* Lišta plave nad textem (viz .pp-inline-editor v app.css), takže kořen musí být
   pozičním kontextem – jinak by se ukotvila k nejbližšímu nadřazenému prvku s position. */
.pp-hero-inner[b-5q2j645pbw]  .pp-prose-editing {
    position: relative;
}

/* Prázdný lead musí zůstat klikatelný: bez minimální výšky by z něj byl neviditelný cíl
   a uživatel by neměl jak text vůbec začít psát. */
.pp-hero-inner[b-5q2j645pbw]  .pp-prose-editing .editor .ProseMirror {
    min-height: 2.5em;
}

/* Stav bez fotky nesmí vypadat jako nenačtený obrázek. Podklad dává ploše záměrný vzhled,
   akcentní linka dole ji ukončuje.

   Podklad je jediný a uživatel ho nevybírá: hrdina má buď vlastní fotku, nebo tenhle
   gradient. Do 2026-08 tu byla nabídka dvou ploch (záře a jednobarevná), jenže volba mezi
   "přechod akcentu shora" a "táž plocha bez přechodu" je rozhodnutí, které uživateli nic
   nepřináší – obojí je tichý podklad pod textem a rozdíl je vidět, jen když se dlaždice
   postaví vedle sebe. Odpadl s ní celý katalog, náhledové dlaždice i přepínání v panelu.

   Gradient zůstává v CSS proměnné (--public-hero-bg-glow, viz PublicStudioDesignStyleBuilder),
   ne přímo tady: skládá se z akcentu aktivního stylu, takže tentýž hrdina vyjde v tmavém
   Analogu okrový a ve světlém Cleanu měděný. */
.pp-hero-plain[b-5q2j645pbw] {
    background: var(--public-hero-bg-glow);
    border-bottom: 1px solid var(--public-border-soft);
}

/* Bez fotky není co ukazovat, takže celoobrazovková výška by dělala jen prázdnou plochu
   nad textem. Hero se tu smrskne na svůj obsah – barevná plocha uvozuje stránku i tak. */
.pp-hero-plain.pp-hero-full[b-5q2j645pbw] {
    min-height: 0;
    padding: 104px 0 76px;
}

/* Nad fotkou je text vždy světlý bez ohledu na styl – podklad ztmavuje gradient
   v inline stylu, takže tmavý text by na světlé fotce zmizel. */
.pp-hero-photo .pp-hero-title[b-5q2j645pbw],
.pp-hero-photo .pp-hero-lead[b-5q2j645pbw] {
    color: #ffffff;
}

/* ── Odznaky ─────────────────────────────────────────────────────────────────── */

.pp-hero-badges[b-5q2j645pbw] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.pp-hero-badge[b-5q2j645pbw] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 14px;
    border-radius: 999px;
    font-size: calc(var(--public-size-body) * .82);
    line-height: 1.4;
    /* Poloprůhledná plocha funguje nad fotkou i nad barevným podkladem, takže odznak
       nepotřebuje zvláštní variantu pro každý stav hero. */
    background: color-mix(in srgb, var(--public-text) 12%, transparent);
    color: var(--public-text-soft);
    border: 1px solid var(--public-border-soft);
}

.pp-hero-badge i[b-5q2j645pbw] {
    color: var(--public-accent);
}

/* Docházející místa jsou důvod k rozhodnutí, takže odznak nese akcentní plochu – v řadě
   stejně vypadajících odznaků by se jinak ztratil. Hranice tří míst je stejná jako
   u seznamu termínů, aby stránka nehlásila dvě různé úrovně naléhavosti pro tentýž termín. */
.pp-hero-badge-urgent[b-5q2j645pbw] {
    background: color-mix(in srgb, var(--public-accent) 22%, transparent);
    border-color: color-mix(in srgb, var(--public-accent) 45%, transparent);
    color: var(--public-text);
}

/* Obsazený termín naopak ustupuje: informace zůstane čitelná, ale nepřitahuje pozornost
   k něčemu, na co se stejně nedá přihlásit. */
.pp-hero-badge-muted[b-5q2j645pbw] {
    opacity: .75;
}

.pp-hero-badge-muted i[b-5q2j645pbw] {
    color: var(--public-text-soft);
}

.pp-hero-badge-link[b-5q2j645pbw] {
    text-decoration: none;
    transition: background-color .2s ease;
}

.pp-hero-badge-link:hover[b-5q2j645pbw] {
    background: color-mix(in srgb, var(--public-text) 20%, transparent);
}

/* Nad fotkou platí totéž co pro nadpis: podklad ztmavuje gradient, takže obsah je světlý. */
.pp-hero-photo .pp-hero-badge[b-5q2j645pbw] {
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .2);
    color: #ffffff;
}

.pp-hero-photo .pp-hero-badge-link:hover[b-5q2j645pbw] {
    background: rgba(255, 255, 255, .22);
}

/* Zvýraznění docházejících míst se musí zopakovat i pro variantu nad fotkou: selektor
   .pp-hero-photo .pp-hero-badge má vyšší specificitu a jinak by akcentní plochu přebil,
   takže by odznak nad fotkou vypadal stejně jako ostatní. */
.pp-hero-photo .pp-hero-badge-urgent[b-5q2j645pbw] {
    background: color-mix(in srgb, var(--public-accent) 55%, transparent);
    border-color: color-mix(in srgb, var(--public-accent) 75%, transparent);
    color: #ffffff;
}

.pp-hero-photo .pp-hero-badge-urgent i[b-5q2j645pbw] {
    color: #ffffff;
}

/* ── Ukázková skladba ────────────────────────────────────────────────────────── */

.pp-hero-audio[b-5q2j645pbw] {
    margin-top: 34px;
    max-width: 640px;
}

.pp-hero-audio-inner[b-5q2j645pbw] {
    display: flex;
    align-items: center;
    gap: 18px;
}

/* Tlačítko stojí vedle vlnovky, ne přes ni: v1 ho mělo absolutně uprostřed, kde překrývalo
   střed stopy a na úzkém displeji se trefovalo hůř než samotná vlnovka. */
.pp-hero-play[b-5q2j645pbw] {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    border: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
    cursor: pointer;
    background: var(--public-accent);
    color: var(--public-accent-contrast, #ffffff);
    transition: transform .2s ease, box-shadow .2s ease;
}

.pp-hero-play:hover[b-5q2j645pbw] {
    transform: scale(1.06);
    box-shadow: 0 8px 28px color-mix(in srgb, var(--public-accent) 45%, transparent);
}

/* Vlnovka musí dostat zbytek řádku – bez min-width: 0 by ji flexbox roztáhl za okraj. */
.pp-hero-audio-inner[b-5q2j645pbw]  .simple-audio-player {
    flex: 1 1 auto;
    min-width: 0;
}

@media (max-width: 768px) {
    /* Na výšku displeje je 85vh moc: hero by zabralo celou obrazovku a stránka by
       vypadala, že pod ním nic není. Nižší podíl nechá vykouknout začátek obsahu. */
    .pp-hero-full[b-5q2j645pbw] {
        min-height: 68vh;
        padding: 96px 0 44px;
    }

    .pp-hero-compact[b-5q2j645pbw] {
        padding: 68px 0 40px;
    }

    .pp-hero-audio[b-5q2j645pbw] {
        margin-top: 26px;
    }

    .pp-hero-play[b-5q2j645pbw] {
        width: 52px;
        height: 52px;
        font-size: 1.15rem;
    }
}
/* /Pages/Studio/Profile/V2/PublicPageRenderer.razor.rz.scp.css */
/* Layout veřejných stránek v2.

   Soubor obsahuje jen PRAVIDLA: tok bloků, šířku obsahu, rytmus a chování na mobilu.
   Všechny konkrétní hodnoty (barvy, rozměry, fonty) přicházejí z CSS proměnných, které
   generuje styl – proto tu nejsou žádné natvrdo zapsané barvy ani velikosti. */

.pp-page[b-v0n1qpn0lo] {
    background: var(--public-bg);
    color: var(--public-text);
    font-family: var(--public-font-body);
    font-size: var(--public-size-body);
    line-height: 1.7;
}

/* Bloky jdou pod sebou v jednom toku – jediná struktura, kterou Layout vynucuje. */
.pp-block[b-v0n1qpn0lo] {
    padding: var(--public-section-spacing) 0;
}

/* Postupné odhalování bloků při scrollu.

   Třídu .pp-reveal přidává až publicScrollReveal.js, NIKDY ne server. Kdyby se skrytý stav
   psal rovnou do markupu, znamenalo by selhání skriptu prázdnou veřejnou prezentaci; takto
   je nejhorší výsledek stránka bez animace. Ze stejného důvodu tu nesmí přibýt pravidlo,
   které by .pp-block skrylo bez této třídy.

   Animuje se jen opacity a transform – obojí prohlížeč zvládne na kompozitní vrstvě, takže
   efekt nevrací trhání při scrollu, kvůli kterému se řešilo pozadí stránky. */
.pp-block.pp-reveal[b-v0n1qpn0lo] {
    opacity: 0;
    transform: translateY(24px);
    /* Delší náběh než u ovládacích prvků: jde o velké plochy obsahu, kde rychlý přechod
       působí jako blikutí místo plynulého příchodu. */
    transition: opacity .6s ease-out, transform .6s ease-out;

    /* Vynucená vlastní kompozitní vrstva po dobu animace.

       Bez toho prohlížeč u rozsáhlého bloku (galerie má desítky obrázků) vrstvu sám
       nevytvoří a musí celý podstrom překreslovat v každém framu – právě to se
       projevovalo jako zaseknutí při přejezdu na galerii. S vlastní vrstvou se podstrom
       rasterizuje jednou a dál se jen skládá.

       will-change se drží JEN ve skrytém stavu; po dokončení animace ho .pp-reveal-done
       shodí, protože trvale vynucená vrstva zabírá paměť GPU a u dlouhé stránky s mnoha
       bloky by se to nasčítalo. */
    will-change: opacity, transform;
}

.pp-block.pp-reveal.pp-reveal-in[b-v0n1qpn0lo] {
    opacity: 1;
    transform: translateY(0);
}

/* Po dojetí animace vrstvu i její přepočet uvolníme – blok je od té chvíle statický obsah
   a nemá důvod držet GPU paměť ani vlastní transform kontext. */
.pp-block.pp-reveal.pp-reveal-done[b-v0n1qpn0lo] {
    will-change: auto;
    transform: none;
    transition: none;
}

/* Uživatel s omezením pohybu dostane obsah rovnou, bez posunu i prolnutí. Skript animaci
   sám nespustí, tohle je pojistka pro případ, že se předvolba přepne až po odhalení bloku. */
@media (prefers-reduced-motion: reduce) {
    .pp-block.pp-reveal[b-v0n1qpn0lo],
    .pp-block.pp-reveal.pp-reveal-in[b-v0n1qpn0lo] {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Zvýšené pozadí sudých bloků. Linky nahoře a dole oddělují pruh od okolí, aby přechod
   nepůsobil jako nedokončený gradient. */
.pp-sep-band .pp-block-raised[b-v0n1qpn0lo] {
    background: var(--public-bg-raise);
    border-top: 1px solid var(--public-border-soft);
    border-bottom: 1px solid var(--public-border-soft);
}

/* Světlé styly používají místo pruhů vlasovou linku – pruhy na světlém podkladu působí
   těžkopádně. První blok linku nemá, aby stránka nezačínala oddělovačem. */
.pp-sep-divider .pp-block + .pp-block[b-v0n1qpn0lo] {
    border-top: 1px solid var(--public-border-soft);
}

/* Režim "jen odstupy" spoléhá na rytmus a eyebrow popisky; bloky dostanou víc vzduchu,
   aby se stránka neslila. */
.pp-sep-spacing .pp-block[b-v0n1qpn0lo] {
    padding: calc(var(--public-section-spacing) * 1.15) 0;
}

/* Hero a kontakt si řídí vlastní podklad – nesmí přes něj dostat pruh ani linku. */
.pp-block-own-bg[b-v0n1qpn0lo] {
    background: transparent;
}

/* Blok přes celou šířku okna (hero). Odsazení bloku se ruší, protože pozadí musí sahat
   až k hornímu okraji stránky i k oběma stranám – jinak fotka působí jako vložený obrázek
   s rámečkem místo úvodu webu. Vnitřní odsazení obsahu si blok řeší sám. */
.pp-block-full[b-v0n1qpn0lo] {
    padding: 0;
}

.pp-sep-divider .pp-block-own-bg + .pp-block[b-v0n1qpn0lo],
.pp-sep-divider .pp-block + .pp-block-own-bg[b-v0n1qpn0lo] {
    border-top: none;
}

.pp-container[b-v0n1qpn0lo] {
    max-width: var(--public-content-width);
    margin: 0 auto;
    padding: 0 var(--public-content-padding);
}

/* Na mobilu se rytmus zkracuje; přeskládání obsahu uvnitř bloku si řídí blok sám. */
@media (max-width: 768px) {
    .pp-block[b-v0n1qpn0lo],
    .pp-sep-spacing .pp-block[b-v0n1qpn0lo] {
        padding: var(--public-section-spacing-mobile) 0;
    }
}

/* Atribuce MyStudio. Veřejná stránka je akviziční kanál, takže odkaz je zřetelný –
   akcentní podklad a barva místo šedého textu pod čarou. */
.pp-attribution[b-v0n1qpn0lo] {
    padding: 28px 0 36px;
    border-top: 1px solid var(--public-border-soft);
    text-align: center;
}

/* Plná akcentní plocha místo obrysové pilulky. Výraznost nese barva podkladu, ne rámeček:
   orámovaná pilulka vypadala jako tlačítko k prokliku a zároveň působila lehčeji, než
   akviziční odkaz potřebuje. Zaoblení proto vychází z rádiusu stylu (plochý tvar), ne
   z pevných 999px, a obrys tu není vůbec. */
.pp-attribution-badge[b-v0n1qpn0lo] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 24px;
    border-radius: var(--public-radius-sm);
    background: var(--public-accent);
    color: var(--public-on-accent);
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color .18s;
}

/* Hover jen ztmaví plochu. Posun o pixel tu odpadá – u plné plochy by z odkazu znovu
   udělal tlačítko, což je přesně to, co plošší podoba odstraňuje. */
.pp-attribution-badge:hover[b-v0n1qpn0lo] {
    background: var(--public-accent-deep);
    color: var(--public-on-accent);
}

/* Skrytý blok v náhledu editoru: ztlumený, ale přítomný – musí jít vybrat, aby šel zase
   zapnout. Na veřejné stránce se nevykresluje vůbec (viz podmínka v markupu), takže tahle
   třída návštěvníkům nikdy nedorazí. Šedotón podtrhuje "vypnuto" i u barevných fotek. */
/* Zdvojená třída přebíjí stavy scroll-reveal animace (.pp-block.pp-reveal drží opacity 0
   před odhalením) – skrytý blok má mít stabilní ztlumený vzhled, ne čekat na animaci,
   která ho po překreslení klidně nechá neviditelný. */
.pp-block-hidden.pp-block-hidden[b-v0n1qpn0lo] {
    opacity: .35;
    filter: grayscale(.7);
    transform: none;
}
/* /Pages/Studio/Profile/V2/PublicPricingBlock.razor.rz.scp.css */
/* Ceník ve dvou variantách: tabulka (výchozí, zvládne víc položek) a karty. */

.pp-price-table[b-6i28ssnq8b] {
    width: 100%;
    margin-top: 32px;
    border-collapse: collapse;
}

.pp-price-table th[b-6i28ssnq8b] {
    text-align: left;
    font-weight: 400;
    color: var(--public-text);
    padding: 16px 0;
    border-bottom: 1px solid var(--public-border-soft);
}

.pp-price-table td[b-6i28ssnq8b] {
    text-align: right;
    padding: 16px 0;
    border-bottom: 1px solid var(--public-border-soft);

    /* Ceny jsou meta údaj – mono písmo drží číslice pod sebou i při různé délce. */
    font-family: var(--public-font-mono);
    font-size: calc(var(--public-size-body) * 1.05);
    color: var(--public-accent);
    white-space: nowrap;
}

.pp-price-cards[b-6i28ssnq8b] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 32px;
}

.pp-price-card[b-6i28ssnq8b] {
    background: var(--public-surface);
    border: 1px solid var(--public-border);
    border-radius: var(--public-radius);
    padding: 28px 24px;
}

.pp-price-name[b-6i28ssnq8b] {
    font-weight: 600;
    font-size: var(--public-size-card-heading);
    color: var(--public-text);
    margin-bottom: 12px;
}

.pp-price-value[b-6i28ssnq8b] {
    font-family: var(--public-font-mono);
    font-size: calc(var(--public-size-heading) * .68);
    color: var(--public-accent);
    margin-bottom: 8px;
}

.pp-price-note[b-6i28ssnq8b] {
    display: block;
    font-family: var(--public-font-mono);
    font-size: var(--public-size-mono);
    color: var(--public-text-faint);
    margin-top: 4px;
}

/* Zvýrazněná položka nese akcentní okraj, ne jinou barvu pozadí – tím zůstane čitelná
   v tmavém i světlém stylu. */
.pp-price-card.pp-price-highlight[b-6i28ssnq8b] {
    border-color: var(--public-accent);
    background: var(--public-surface-2);
}

.pp-price-table tr.pp-price-highlight th[b-6i28ssnq8b],
.pp-price-table tr.pp-price-highlight td[b-6i28ssnq8b] {
    border-bottom-color: var(--public-accent);
}

@media (max-width: 768px) {
    .pp-price-cards[b-6i28ssnq8b] {
        grid-template-columns: 1fr;
    }
}
/* /Pages/Studio/Profile/V2/PublicSharePanel.razor.rz.scp.css */
/* Vzhled nabídky sdílení. Styly sem přišly z PublicPageEditor.razor.css (.ppe-style-menu /
   .ppe-share-*), aby nabídka vypadala stejně i na veřejných stránkách, které pravidla
   editoru vůbec nenačítají – scoped CSS editoru končí u jeho vlastní stránky. */

.psp-menu[b-q73vwscayr] {
    min-width: 300px;
    max-width: 380px;
    padding: 6px;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 10px;
    box-shadow: 0 10px 32px rgba(0, 0, 0, .16);
}

.psp-menu-title[b-q73vwscayr] {
    padding: 8px 10px 4px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

/* URL je ke čtení a ke kontrole, ne k editaci – monospace kvůli rozlišení podobných znaků
   (l/1, O/0) ve sdíleném odkazu. Zalomení kdekoli, protože slug bývá jedno dlouhé slovo bez
   mezer, které by jinak nabídku roztáhlo mimo okno. */
.psp-url[b-q73vwscayr] {
    margin: 0 4px 6px;
    padding: 8px 10px;
    background: var(--bs-tertiary-bg);
    border-radius: 7px;
    font-family: var(--bs-font-monospace);
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--bs-body-color);
    word-break: break-all;
}

/* Varování u nepublikované stránky se odlišuje barvou, jinak splyne s popisky nabídky. */
.psp-hint[b-q73vwscayr] {
    padding: 0 10px 8px;
    font-size: 11px;
    line-height: 1.35;
    color: #d98613;
    white-space: normal;
}

/* ::deep – tlačítka vykresluje vnořený ButtonLink, který scope atribut této komponenty
   nedostane, takže bez ::deep by se pravidla tiše zahodila. */
.psp-menu[b-q73vwscayr]  .psp-action {
    display: flex;
    width: 100%;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 7px;
    color: var(--bs-body-color);
}

.psp-menu[b-q73vwscayr]  .psp-action:hover {
    background: var(--bs-tertiary-bg);
}
/* /Pages/Studio/Settings/Components/StudioSettingsNav.razor.rz.scp.css */
.studio-settings-nav-item[b-dw0b7rr06l] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    color: inherit;
    text-decoration: none;
    opacity: 0.7;
    font-size: 0.95rem;
}

.studio-settings-nav-icon[b-dw0b7rr06l] {
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.8;
}

.studio-settings-nav-item:hover[b-dw0b7rr06l] {
    opacity: 1;
    background-color: rgba(255, 255, 255, 0.05);
}

.studio-settings-nav-item.active[b-dw0b7rr06l] {
    opacity: 1;
    font-weight: 600;
    background-color: rgba(255, 255, 255, 0.08);
}

.studio-settings-nav-item.active .studio-settings-nav-icon[b-dw0b7rr06l] {
    opacity: 1;
}
/* /Pages/Studio/Settings/StudioPlanSettingsPage.razor.rz.scp.css */
/* Grid modulů – 2 sloupce, stejný layout jako readonly plan-module */
.plan-modules-grid[b-40845nk8mu] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

/* Styl modulu – identický s readonly plan-module v PricingPlanCard */
.plan-module[b-40845nk8mu] {
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    transition: all 0.2s ease;
}

.plan-module .module-icon[b-40845nk8mu] {
    font-size: 1.2rem;
    width: 1.5rem;
    text-align: center;
    flex-shrink: 0;
    /* výchozí barva pro disabled stav */
    color: rgba(150, 150, 150, 0.5);
    transition: all 0.2s ease;
}

/* Povolený modul – accent barva jako v readonly kartách */
.plan-module.is-enabled .module-icon[b-40845nk8mu] {
    color: var(--accent-color);
    filter: drop-shadow(0 0 6px rgba(var(--accent-r), var(--accent-g), var(--accent-b), 0.4));
}

.plan-module:not(.is-enabled)[b-40845nk8mu] {
    opacity: 0.5;
}

.plan-module.is-clickable[b-40845nk8mu] {
    cursor: pointer;
}

.plan-module.is-clickable:hover[b-40845nk8mu] {
    background: rgba(255, 255, 255, 0.05);
    transform: translateY(-1px);
}

.plan-module .module-label[b-40845nk8mu] {
    font-size: 0.82rem;
    line-height: 1.3;
    font-weight: 500;
    letter-spacing: 0.2px;
    text-align: left;
    flex: 1;
    min-width: 0;
}

/* Badge "z plánu" – skrytý */
.module-badge[b-40845nk8mu] {
    display: none;
}

/* Manuálně povolený modul (ne z plánu) – malý barevný puntík přes ::after */
.plan-module.is-manual .module-icon[b-40845nk8mu] {
    position: relative;
}

.plan-module.is-manual .module-icon[b-40845nk8mu]::after {
    content: '';
    position: absolute;
    top: -3px;
    right: -5px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #ffc107;
    border: 2px solid var(--bs-card-bg);
    pointer-events: none;
}

/* /Pages/Studio/StorageCleanup.razor.rz.scp.css */
.storage-cleanup-total-size[b-e4nsztfxw5] {
  font-size: clamp(2.5rem, 4vw, 4rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
}

.storage-cleanup-hero[b-e4nsztfxw5] {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.storage-cleanup-progress[b-e4nsztfxw5] {
  height: 14px;
  border-radius: 999px;
  background-color: rgba(13, 110, 253, 0.08);
}

.storage-cleanup-progress .progress-bar[b-e4nsztfxw5] {
  border-radius: 999px;
}

.storage-cleanup-pct-pill[b-e4nsztfxw5] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: rgba(13, 110, 253, 0.1);
  color: var(--bs-primary);
  font-size: 0.8rem;
  font-weight: 700;
}

.storage-cleanup-checkbox[b-e4nsztfxw5] {
  width: 1.35rem;
  height: 1.35rem;
  transform: scale(1.25);
  transform-origin: left center;
  flex: 0 0 auto;
  cursor: pointer;
  accent-color: var(--bs-primary);
}

@media (max-width: 576px) {
  .storage-cleanup-total-size[b-e4nsztfxw5] {
    font-size: clamp(2rem, 12vw, 3rem);
  }
}
/* /Pages/Studio/StudioHeader.razor.rz.scp.css */
[b-r1x0ysutcq] .no-tags-icon {
    opacity: 0;
}

[b-r1x0ysutcq] .dropdown-item:hover .no-tags-icon {
    opacity: 1;
}
/* /Pages/Studio/StudioHome.razor.rz.scp.css */
.sh-shell[b-9wa8yi63cl] {
    max-width: 1180px;
}

.sh-main[b-9wa8yi63cl] {
    gap: 4.5rem;
}

.sh-grid[b-9wa8yi63cl] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 22.5rem;
    gap: 2rem;
    align-items: start;
}

.sh-side[b-9wa8yi63cl] {
    position: sticky;
    top: 1rem;
    align-self: start;
    gap: 8rem;
    padding-top: 17rem;
    margin-top: 2.4rem;
}

[data-bs-theme="light"] .sh-shell[b-9wa8yi63cl] {
    color: rgba(17, 17, 17, 0.98);
}

[data-bs-theme="dark"] .sh-shell[b-9wa8yi63cl] {
    color: rgba(245, 245, 245, 0.96);
}

[b-9wa8yi63cl] .sh-side .sh-section__title {
    font-size: 1.25rem;
    font-weight: 560;
    letter-spacing: -.01em;
    line-height: 1.1;
    opacity: .92;
}

[b-9wa8yi63cl] .sh-side .sh-section__head {
    margin-bottom: .55rem;
}

[b-9wa8yi63cl] .sh-section {
    position: relative;
    padding: 0;
    border-top: 0;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

/* Debug tlačítko agendy se zobrazuje jen na hover sekce, aby nerušilo běžný obsah. */
[b-9wa8yi63cl] .sh-section:hover .studio-home-hero-debug {
    opacity: .45;
    pointer-events: auto;
}

[b-9wa8yi63cl] .sh-section:hover .studio-home-hero-debug:hover {
    opacity: 1;
}

[b-9wa8yi63cl] .sh-section__head {
    margin-bottom: 1.1rem;
}

[b-9wa8yi63cl] .sh-section__title {
    font-size: 1.85rem;
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.15;
}

@media (max-width: 767.98px) {
    .sh-shell[b-9wa8yi63cl] {
        padding-top: .75rem !important;
    }

    .sh-main[b-9wa8yi63cl] {
        gap: 3rem;
    }
}

@media (max-width: 1199.98px) {
    .sh-grid[b-9wa8yi63cl] {
        grid-template-columns: minmax(0, 1fr);
    }

    .sh-side[b-9wa8yi63cl] {
        position: static;
        margin-top: 0;
        padding-top: 0;
    }
}
/* /Pages/Studio/StudioHomeV2/StudioHomeInviteDialog.razor.rz.scp.css */
.studio-home-invite-dialog[b-lmgzsmozyb] {
    min-width: min(560px, 72vw);
    padding: 0.25rem 0.25rem 0.5rem;
}

.studio-home-invite-dialog__intro[b-lmgzsmozyb] {
    max-width: 540px;
}

.studio-home-invite-dialog__title[b-lmgzsmozyb] {
    font-size: 1.55rem;
    font-weight: 750;
    line-height: 1.2;
    margin-bottom: 0.85rem;
}

.studio-home-invite-dialog__subtitle[b-lmgzsmozyb] {
    color: var(--bs-secondary-color);
    font-size: 1.04rem;
    line-height: 1.45;
}

.studio-home-invite-dialog__option[b-lmgzsmozyb] {
    display: grid;
    gap: 0.55rem;
    max-width: 500px;
}

.studio-home-invite-dialog[b-lmgzsmozyb]  .studio-home-invite-dialog__option-button {
    width: min(390px, 100%);
    min-height: 44px;
    justify-content: center;
    justify-self: start;
}

.studio-home-invite-dialog__option-text[b-lmgzsmozyb] {
    color: var(--bs-tertiary-color);
    font-size: 0.92rem;
    line-height: 1.5;
    max-width: 520px;
}

.studio-home-invite-dialog__message[b-lmgzsmozyb] {
    color: var(--bs-secondary-color);
    font-size: 0.92rem;
    line-height: 1.5;
}

.studio-home-invite-dialog__project-select[b-lmgzsmozyb] {
    display: grid;
    gap: 0.85rem;
    max-width: 540px;
    padding: 0.25rem 0 0;
}

@media (max-width: 768px) {
    .studio-home-invite-dialog[b-lmgzsmozyb] {
        min-width: 0;
        width: 100%;
    }

    .studio-home-invite-dialog__title[b-lmgzsmozyb] {
        font-size: 1.35rem;
    }
}
/* /Pages/Studio/StudioHomeV2/StudioHomeV2.razor.rz.scp.css */
.studio-home-v2[b-cox41sl244] {
  max-width: 960px;
  padding: 0 1.25rem;
}

[b-cox41sl244] .v2-section {
  margin: 0 0 3.25rem;
}

[b-cox41sl244] .v2-section:last-child {
  margin-bottom: 0;
}

[b-cox41sl244] .v2-section h2 {
  align-items: center;
  color: inherit;
  display: flex;
  font-family: "Geist Mono", monospace;
  font-size: 0.75rem;
  font-weight: 500;
  gap: 0.9rem;
  letter-spacing: 0.1em;
  margin: 0 0 1.15rem;
  opacity: 0.55;
  text-transform: uppercase;
}
[b-cox41sl244] .v2-section h2::after {
  background: color-mix(in srgb, var(--bs-border-color) 26%, transparent);
  content: "";
  flex: 1;
  height: 1px;
}

@media (max-width: 640px) {
  .studio-home-v2[b-cox41sl244] {
    padding: 0 1rem;
  }
  [b-cox41sl244] .v2-section {
    margin-bottom: 2.5rem;
  }
  [b-cox41sl244] .v2-section h2 {
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    line-height: 1.5;
  }
  [b-cox41sl244] .v2-section h2::after {
    display: none;
  }
}
/* /Pages/Studio/StudioHomeV2/V2Attention.razor.rz.scp.css */
.v2-attention[b-6xm5sdv0qm] {
  align-items: center;
  background: color-mix(in srgb, var(--accent-color) 6%, var(--widget-bg));
  border: 1px solid color-mix(in srgb, var(--accent-color) 12%, transparent);
  border-radius: 0.85rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  color: inherit;
  display: flex;
  gap: 1rem;
  margin-bottom: 3rem;
  overflow: hidden;
  padding: 1.15rem 1.35rem 1.15rem 1.5rem;
  position: relative;
  text-decoration: none;
  transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.v2-attention[b-6xm5sdv0qm]::before {
  background: var(--accent-color);
  content: "";
  inset: 0 auto 0 0;
  opacity: 0.55;
  position: absolute;
  width: 3px;
}
.v2-attention:hover[b-6xm5sdv0qm] {
  background: color-mix(in srgb, var(--accent-color) 10%, var(--widget-bg));
  border-color: color-mix(in srgb, var(--accent-color) 28%, transparent);
  color: inherit;
}
.v2-attention:hover .v2-attention-arrow[b-6xm5sdv0qm] {
  opacity: 0.7;
  transform: translateX(2px);
}
.v2-attention > i:first-child[b-6xm5sdv0qm] {
  align-items: center;
  background: color-mix(in srgb, var(--accent-color) 14%, transparent);
  border-radius: 50%;
  color: var(--accent-color);
  display: flex;
  flex: none;
  font-size: 1rem;
  height: 2.4rem;
  justify-content: center;
  width: 2.4rem;
}
.v2-attention > div[b-6xm5sdv0qm] {
  min-width: 0;
}
.v2-attention strong[b-6xm5sdv0qm], .v2-attention span[b-6xm5sdv0qm] {
  display: block;
}
.v2-attention strong[b-6xm5sdv0qm] {
  font-size: 1.02rem;
  margin: 0.12rem 0;
  overflow-wrap: anywhere;
}
.v2-attention span[b-6xm5sdv0qm] {
  font-size: 0.86rem;
  opacity: 0.6;
  overflow-wrap: anywhere;
}

.v2-label[b-6xm5sdv0qm] {
  color: var(--accent-color);
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.v2-attention-arrow[b-6xm5sdv0qm] {
  font-size: 0.85rem;
  margin-left: auto;
  opacity: 0.4;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

@media (max-width: 640px) {
  .v2-attention[b-6xm5sdv0qm] {
    align-items: flex-start;
    margin-bottom: 2.2rem;
    padding: 1rem 1rem 1rem 1.15rem;
  }
  .v2-attention > i:first-child[b-6xm5sdv0qm] {
    height: 2.1rem;
    width: 2.1rem;
  }
  .v2-attention-arrow[b-6xm5sdv0qm] {
    display: none;
  }
}
/* /Pages/Studio/StudioHomeV2/V2ContextBlocks.razor.rz.scp.css */
.v2-context[b-hjq5fm1xqq] {
  border-top: 1px solid color-mix(in srgb, var(--bs-border-color) 22%, transparent);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.v2-context-card[b-hjq5fm1xqq] {
  border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 22%, transparent);
  color: inherit;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-height: 84px;
  padding: 1.05rem 0 1.1rem;
  text-decoration: none;
}
.v2-context-card:nth-child(odd)[b-hjq5fm1xqq] {
  padding-right: 1.5rem;
}
.v2-context-card:nth-child(even)[b-hjq5fm1xqq] {
  padding-left: 1.5rem;
}
.v2-context-card:hover strong[b-hjq5fm1xqq] {
  color: var(--accent-color);
}
.v2-context-card strong[b-hjq5fm1xqq] {
  display: block;
  font-size: 0.94rem;
  font-weight: 600;
}

.v2-label[b-hjq5fm1xqq] {
  color: var(--accent-color);
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.v2-context-progress[b-hjq5fm1xqq] {
  background: color-mix(in srgb, var(--bs-border-color) 45%, transparent);
  border-radius: 999px;
  height: 0.3rem;
  margin-top: 0.5rem;
  overflow: hidden;
  width: 100%;
}

.v2-context-progress-bar[b-hjq5fm1xqq] {
  background: var(--accent-color);
  border-radius: 999px;
  height: 100%;
  opacity: 0.8;
  transition: width 0.2s ease;
}

@media (max-width: 640px) {
  .v2-context[b-hjq5fm1xqq] {
    grid-template-columns: 1fr;
  }
  .v2-context-card:nth-child(n)[b-hjq5fm1xqq] {
    padding-left: 0;
    padding-right: 0;
  }
}
/* /Pages/Studio/StudioHomeV2/V2Continue.razor.rz.scp.css */
.v2-project-grid[b-nqbrdmu6xe] {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.v2-project-card[b-nqbrdmu6xe] {
  background: color-mix(in srgb, var(--widget-bg) 92%, var(--bs-body-color) 8%);
  border: 1px solid transparent;
  border-radius: 0.8rem;
  color: inherit;
  display: flex;
  flex-direction: column;
  min-height: 92px;
  padding: 1.1rem 1.2rem;
  position: relative;
  text-decoration: none;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.v2-project-card:hover[b-nqbrdmu6xe] {
  background: color-mix(in srgb, var(--widget-bg) 87%, var(--bs-body-color) 13%);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
  color: inherit;
  transform: translateY(-1px);
}
.v2-project-card strong[b-nqbrdmu6xe] {
  display: block;
  font-size: 1.08rem;
  font-weight: 650;
  letter-spacing: -0.015em;
  padding-right: 1rem;
}
.v2-project-card p[b-nqbrdmu6xe] {
  display: -webkit-box;
  font-size: 0.88rem;
  line-height: 1.45;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  margin: 0.5rem 0 0;
  opacity: 0.65;
  overflow: hidden;
}
.v2-project-card small[b-nqbrdmu6xe] {
  font-family: "Geist Mono", monospace;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  margin-top: auto;
  opacity: 0.52;
  padding-top: 0.85rem;
  text-transform: uppercase;
}
.v2-project-card.is-active small[b-nqbrdmu6xe] {
  color: var(--accent-color);
  opacity: 0.85;
}
.v2-project-card .v2-project-meta-wrap[b-nqbrdmu6xe] {
  margin-top: auto;
  padding-top: 0.85rem;
}
.v2-project-card .v2-project-meta[b-nqbrdmu6xe] {
  align-items: baseline;
  cursor: default;
  display: flex;
  flex-wrap: wrap;
  font-family: "Geist Mono", monospace;
  font-size: 0.74rem;
  gap: 0.3rem;
  letter-spacing: 0.03em;
  opacity: 0.6;
}
.v2-project-card .v2-project-author[b-nqbrdmu6xe] {
  color: var(--bs-body-color);
  font-weight: 600;
  opacity: 0.85;
}
.v2-project-card .v2-project-action[b-nqbrdmu6xe] {
  text-transform: lowercase;
}
.v2-project-card .v2-project-dot[b-nqbrdmu6xe] {
  opacity: 0.5;
}
.v2-project-card.is-active .v2-project-author[b-nqbrdmu6xe] {
  color: var(--accent-color);
  opacity: 1;
}

.v2-project-status[b-nqbrdmu6xe] {
  background: var(--accent-color);
  border-radius: 50%;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 18%, transparent);
  height: 0.45rem;
  position: absolute;
  right: 1.15rem;
  top: 1.3rem;
  width: 0.45rem;
}

@media (max-width: 640px) {
  .v2-project-grid[b-nqbrdmu6xe] {
    grid-template-columns: 1fr;
  }
}
/* /Pages/Studio/StudioHomeV2/V2Digest.razor.rz.scp.css */
.v2-digest[b-i4t1qmtsue] {
  max-width: 760px;
}

.v2-digest h2[b-i4t1qmtsue] {
  align-items: center;
  color: inherit;
  display: flex;
  font-family: "Geist Mono", monospace;
  font-size: 0.75rem;
  font-weight: 500;
  gap: 0.9rem;
  letter-spacing: 0.1em;
  margin: 0 0 0.5rem;
  opacity: 0.55;
  text-transform: uppercase;
}
.v2-digest h2[b-i4t1qmtsue]::after {
  background: color-mix(in srgb, var(--bs-border-color) 26%, transparent);
  content: "";
  flex: 1;
  height: 1px;
}

.v2-digest-row[b-i4t1qmtsue] {
  align-items: center;
  border-top: 1px solid color-mix(in srgb, var(--bs-border-color) 22%, transparent);
  color: inherit;
  display: grid;
  gap: 0.7rem;
  grid-template-columns: 0.7rem 108px minmax(0, 1fr) auto;
  padding: 0.82rem 0;
  text-decoration: none;
  transition: color 0.12s ease;
}
.v2-digest-row:last-child[b-i4t1qmtsue] {
  border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 22%, transparent);
}
.v2-digest-row:hover[b-i4t1qmtsue] {
  color: var(--accent-color);
}
.v2-digest-row:hover i[b-i4t1qmtsue] {
  opacity: 0.7;
  transform: translate(1px, -1px);
}
.v2-digest-row time[b-i4t1qmtsue] {
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  opacity: 0.5;
  text-transform: uppercase;
}
.v2-digest-row span[b-i4t1qmtsue] {
  font-size: 0.9rem;
  min-width: 0;
  overflow-wrap: anywhere;
}
.v2-digest-row em[b-i4t1qmtsue] {
  font-style: normal;
  opacity: 0.58;
}
.v2-digest-row i[b-i4t1qmtsue] {
  font-size: 0.75rem;
  opacity: 0.35;
  transition: opacity 0.12s ease, transform 0.12s ease;
}
.v2-digest-row .v2-digest-action[b-i4t1qmtsue] {
  opacity: 0.72;
  text-transform: lowercase;
}
.v2-digest-row .v2-digest-sep[b-i4t1qmtsue] {
  opacity: 0.35;
  padding: 0 0.1rem;
}

.v2-digest-unread-dot[b-i4t1qmtsue] {
  background: transparent;
  border-radius: 50%;
  height: 0.4rem;
  width: 0.4rem;
}

.v2-digest-row.is-unread .v2-digest-unread-dot[b-i4t1qmtsue] {
  background: var(--accent-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 18%, transparent);
}
.v2-digest-row.is-unread strong[b-i4t1qmtsue] {
  font-weight: 700;
}
.v2-digest-row.is-unread time[b-i4t1qmtsue] {
  color: var(--accent-color);
  opacity: 0.8;
}

@media (max-width: 640px) {
  .v2-digest-row[b-i4t1qmtsue] {
    grid-template-columns: 0.6rem 1fr auto;
  }
  .v2-digest-row time[b-i4t1qmtsue] {
    display: none;
  }
}
/* /Pages/Studio/StudioHomeV2/V2GetStarted.razor.rz.scp.css */
.v2-getstarted-grid[b-44ttfqon4o] {
  display: grid;
  gap: 0.8rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.v2-getstarted-card[b-44ttfqon4o] {
  background: color-mix(in srgb, var(--widget-bg) 92%, var(--bs-body-color) 8%);
  border: 1px solid transparent;
  border-radius: 0.8rem;
  color: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  font: inherit;
  min-height: 92px;
  padding: 1.1rem 1.2rem;
  text-align: left;
  text-decoration: none;
  transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.v2-getstarted-card:hover[b-44ttfqon4o] {
  background: color-mix(in srgb, var(--widget-bg) 87%, var(--bs-body-color) 13%);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06);
  color: inherit;
  transform: translateY(-1px);
}
.v2-getstarted-card i[b-44ttfqon4o] {
  color: var(--accent-color);
  font-size: 0.95rem;
  margin-bottom: 0.55rem;
}
.v2-getstarted-card strong[b-44ttfqon4o] {
  display: block;
  font-size: 1rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}
.v2-getstarted-card span[b-44ttfqon4o] {
  font-size: 0.84rem;
  margin-top: 0.4rem;
  opacity: 0.6;
}

@media (max-width: 640px) {
  .v2-getstarted-grid[b-44ttfqon4o] {
    grid-template-columns: 1fr;
  }
}
/* /Pages/Studio/StudioHomeV2/V2Hero.razor.rz.scp.css */
.v2-hero[b-bxhtvocjgz] {
  padding: 2.2rem 0 1.7rem;
}
.v2-hero h1[b-bxhtvocjgz] {
  color: var(--bs-body-color);
  font-family: var(--font-display-serif);
  font-size: clamp(2rem, 3.2vw, 2.6rem);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.02;
  margin: 0;
}

.v2-name[b-bxhtvocjgz] {
  color: color-mix(in srgb, var(--bs-body-color) 64%, transparent);
  font-weight: 600;
}

.v2-brief[b-bxhtvocjgz] {
  color: var(--bs-body-color);
  font-size: 1.02rem;
  line-height: 1.4;
  margin: 0.7rem 0 0;
  opacity: 0.72;
}

.v2-brief-link[b-bxhtvocjgz] {
  align-items: baseline;
  color: var(--bs-body-color);
  display: inline-flex;
  gap: 0.45rem;
  opacity: 0.85;
  text-decoration: none;
  transition: opacity 0.15s ease;
}
.v2-brief-link:hover[b-bxhtvocjgz] {
  color: var(--bs-body-color);
  opacity: 1;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.v2-brief-link:hover i[b-bxhtvocjgz] {
  transform: translateX(2px);
}
.v2-brief-link i[b-bxhtvocjgz] {
  font-size: 0.8em;
  opacity: 0.6;
  transition: transform 0.15s ease;
}

@media (max-width: 640px) {
  .v2-hero[b-bxhtvocjgz] {
    padding: 1.6rem 0 1.3rem;
  }
  .v2-hero h1[b-bxhtvocjgz] {
    font-size: 1.95rem;
    line-height: 1.05;
  }
  .v2-brief[b-bxhtvocjgz] {
    font-size: 0.96rem;
    margin-top: 0.6rem;
  }
}
/* /Pages/Studio/StudioHomeV2/V2PublicPageTip.razor.rz.scp.css */
.v2-tip[b-6652fgd51p] {
  border-top: 1px solid color-mix(in srgb, var(--bs-body-color) 8%, transparent);
  margin-bottom: 3rem;
  padding-top: 1.1rem;
}

.v2-label[b-6652fgd51p] {
  color: var(--accent-color);
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.v2-tip-row[b-6652fgd51p] {
  align-items: center;
  display: flex;
  gap: 0.75rem;
}

.v2-tip-main[b-6652fgd51p] {
  align-items: center;
  color: inherit;
  display: flex;
  flex: 1 1 auto;
  gap: 0.75rem;
  min-width: 0;
  padding: 0.5rem 0;
  text-decoration: none;
}
.v2-tip-main:hover[b-6652fgd51p] {
  color: inherit;
}
.v2-tip-main:hover .v2-tip-arrow[b-6652fgd51p] {
  opacity: 0.7;
  transform: translateX(2px);
}
.v2-tip-main:hover strong[b-6652fgd51p] {
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.v2-tip-main > i:first-child[b-6652fgd51p] {
  color: var(--accent-color);
  flex: none;
  font-size: 0.95rem;
  opacity: 0.8;
}

.v2-tip-text[b-6652fgd51p] {
  font-size: 0.92rem;
  line-height: 1.45;
  min-width: 0;
  overflow-wrap: anywhere;
}

.v2-tip-detail[b-6652fgd51p] {
  opacity: 0.6;
}

.v2-tip-arrow[b-6652fgd51p] {
  flex: none;
  font-size: 0.8rem;
  margin-left: auto;
  opacity: 0.35;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.v2-tip-actions[b-6652fgd51p] {
  align-items: center;
  display: flex;
  flex: none;
  gap: 0.35rem;
  opacity: 0.45;
  transition: opacity 0.15s ease;
}

.v2-tip:hover .v2-tip-actions[b-6652fgd51p] {
  opacity: 1;
}

.v2-tip-action[b-6652fgd51p] {
  font-size: 0.8rem;
}

@media (max-width: 640px) {
  .v2-tip[b-6652fgd51p] {
    margin-bottom: 2.2rem;
  }
  .v2-tip-row[b-6652fgd51p] {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
  }
  .v2-tip-arrow[b-6652fgd51p] {
    display: none;
  }
  .v2-tip-actions[b-6652fgd51p] {
    opacity: 1;
  }
}
/* /Pages/Studio/StudioHomeV2/V2Upcoming.razor.rz.scp.css */
@charset "UTF-8";
.v2-upcoming[b-hgxh453mq2] {
  max-width: 760px;
}

.v2-upcoming-heading[b-hgxh453mq2] {
  align-items: center;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}
.v2-upcoming-heading h2[b-hgxh453mq2] {
  flex: 1;
}

.v2-upcoming-actions[b-hgxh453mq2] {
  align-items: center;
  display: flex;
  gap: 0.4rem;
}
.v2-upcoming-actions > a[b-hgxh453mq2] {
  color: inherit;
  flex: none;
  font-family: "Geist Mono", monospace;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  opacity: 0.58;
  text-decoration: none;
  text-transform: uppercase;
}
.v2-upcoming-actions > a:hover[b-hgxh453mq2] {
  color: var(--accent-color);
  opacity: 1;
}
.v2-upcoming-actions > a i[b-hgxh453mq2] {
  font-size: 0.68rem;
  margin-left: 0.25rem;
}

.v2-upcoming-preview-trigger[b-hgxh453mq2] {
  font-size: 0.75rem;
  opacity: 0.32;
  padding: 0.1rem 0 0.1rem 0.25rem;
}
.v2-upcoming-preview-trigger:hover[b-hgxh453mq2] {
  color: var(--accent-color);
  opacity: 0.9;
}

.v2-upcoming-block[b-hgxh453mq2] {
  display: flex;
  flex-direction: column;
}

[b-hgxh453mq2] .v2-upcoming-tooltip {
  display: block;
}

.v2-upcoming-item[b-hgxh453mq2] {
  align-items: center;
  color: inherit;
  display: flex;
  gap: 0.85rem;
  padding: 0.5rem 0.75rem;
  position: relative;
  text-decoration: none;
  transition: color 0.12s ease, opacity 0.12s ease;
}
.v2-upcoming-item:hover[b-hgxh453mq2] {
  color: var(--accent-color);
}
.v2-upcoming-item:hover .v2-upcoming-when[b-hgxh453mq2] {
  opacity: 0.75;
}
.v2-upcoming-item:hover .v2-upcoming-arrow[b-hgxh453mq2] {
  opacity: 0.7;
  transform: translateX(2px);
}

.v2-upcoming-text[b-hgxh453mq2] {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.v2-upcoming-name[b-hgxh453mq2] {
  font-size: 0.95rem;
  font-weight: 620;
  letter-spacing: -0.01em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v2-upcoming-when[b-hgxh453mq2] {
  font-size: 0.8rem;
  opacity: 0.52;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.v2-upcoming-when[b-hgxh453mq2]::first-letter {
  text-transform: uppercase;
}

.v2-upcoming-item.is-next[b-hgxh453mq2] {
  padding-bottom: 0.7rem;
}
.v2-upcoming-item.is-next .v2-upcoming-name[b-hgxh453mq2] {
  font-size: 1.15rem;
  font-weight: 680;
  letter-spacing: -0.018em;
}
.v2-upcoming-item.is-next .v2-upcoming-when[b-hgxh453mq2] {
  color: var(--accent-color);
  font-weight: 550;
  opacity: 0.85;
}
.v2-upcoming-item.is-next .v2-upcoming-arrow[b-hgxh453mq2] {
  opacity: 0.45;
}

.v2-upcoming-icon[b-hgxh453mq2] {
  align-items: center;
  background: color-mix(in srgb, var(--accent-color) 14%, transparent);
  border-radius: 50%;
  color: var(--accent-color);
  display: flex;
  flex: none;
  font-size: 0.95rem;
  height: 2.35rem;
  justify-content: center;
  width: 2.35rem;
}

.v2-upcoming-rest[b-hgxh453mq2] {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.4rem;
  row-gap: 0.2rem;
  font-size: 0.84rem;
  margin: 0.1rem 0 0;
  padding-left: 3.95rem;
}
.v2-upcoming-rest.is-only[b-hgxh453mq2] {
  font-size: 0.9rem;
  padding-left: 0;
}

[b-hgxh453mq2] .v2-upcoming-rest-wrap {
  display: inline-flex;
  align-items: baseline;
  max-width: 100%;
  min-width: 0;
}
[b-hgxh453mq2] .v2-upcoming-rest-wrap.has-sep::before {
  content: "·";
  margin-right: 0.4rem;
  opacity: 0.3;
}

.v2-upcoming-rest-item[b-hgxh453mq2] {
  color: inherit;
  display: inline-flex;
  align-items: baseline;
  gap: 0.3rem;
  min-width: 0;
  text-decoration: none;
  transition: color 0.12s ease;
}
.v2-upcoming-rest-item:hover[b-hgxh453mq2] {
  color: var(--accent-color);
}
.v2-upcoming-rest-item:hover .v2-upcoming-rest-when[b-hgxh453mq2] {
  opacity: 0.75;
}

.v2-upcoming-rest-name[b-hgxh453mq2] {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.v2-upcoming-rest-when[b-hgxh453mq2] {
  flex: none;
  opacity: 0.45;
}

.v2-upcoming-item.is-now .v2-upcoming-when[b-hgxh453mq2] {
  color: var(--accent-color);
  opacity: 0.9;
}

.v2-upcoming-arrow[b-hgxh453mq2] {
  flex: none;
  font-size: 0.78rem;
  opacity: 0;
  transition: opacity 0.12s ease, transform 0.12s ease;
}

@media (max-width: 640px) {
  .v2-upcoming-item[b-hgxh453mq2] {
    gap: 0.7rem;
    padding: 0.45rem 0.25rem;
  }
  .v2-upcoming-rest[b-hgxh453mq2] {
    font-size: 0.8rem;
    padding-left: 3.05rem;
  }
  .v2-upcoming-icon[b-hgxh453mq2] {
    font-size: 0.88rem;
    height: 2.1rem;
    width: 2.1rem;
  }
  .v2-upcoming-name[b-hgxh453mq2] {
    font-size: 0.9rem;
  }
  .v2-upcoming-when[b-hgxh453mq2] {
    font-size: 0.76rem;
  }
  .v2-upcoming-arrow[b-hgxh453mq2] {
    display: none;
  }
  .v2-upcoming-item.is-next .v2-upcoming-name[b-hgxh453mq2] {
    font-size: 1.05rem;
  }
}
/* /Pages/Studio/StudiosList.razor.rz.scp.css */
[b-ctuu3x8aeb] .studio:not(:last-child) {
  border-bottom: 1px solid rgba(131, 131, 131, 0.28);
}
[b-ctuu3x8aeb] .studio.active .studio-name {
  color: var(--accent-color);
}
[b-ctuu3x8aeb] .studio.active .studio-icon {
  color: var(--accent-color) !important;
}
[b-ctuu3x8aeb] .studio .studio-icon {
  color: #8c8c8c;
  font-size: 3em;
}
[b-ctuu3x8aeb] .studio .studio-name {
  font-size: 1.5em;
  font-weight: 300;
}
[b-ctuu3x8aeb] .studio .studio-pin-button {
  opacity: 0;
  transition: opacity 0.15s ease-in-out;
}
[b-ctuu3x8aeb] .studio:hover .studio-pin-button {
  opacity: 1;
}
[b-ctuu3x8aeb] .studio .studio-pin-button:has(.fas) {
  opacity: 1;
}

@media (max-width: 640px) {
  .studios[b-ctuu3x8aeb] {
    gap: 0.75rem !important;
    margin-top: 1.25rem !important;
  }

  [b-ctuu3x8aeb] .studios-create-link {
    margin-top: 0.75rem !important;
  }

  [b-ctuu3x8aeb] .studio {
    padding-bottom: 1rem !important;
    width: 100%;
  }

  [b-ctuu3x8aeb] .studio-header {
    gap: 0.85rem !important;
    margin-bottom: 0.35rem !important;
  }

  [b-ctuu3x8aeb] .studio .studio-icon {
    font-size: 2.15rem;
    min-width: 2.35rem;
  }

  [b-ctuu3x8aeb] .studio .studio-name {
    font-size: 1.25rem;
    line-height: 1.2;
  }

  [b-ctuu3x8aeb] .studio-title-stack {
    min-width: 0;
  }

  [b-ctuu3x8aeb] .studio-plan-summary {
    line-height: 1.25;
  }

  [b-ctuu3x8aeb] .studio-status-row {
    gap: 0.8rem !important;
    margin-top: 0.35rem;
  }

  [b-ctuu3x8aeb] .studio-active-label {
    font-size: 0.95rem;
  }

  [b-ctuu3x8aeb] .studio-description {
    display: none;
  }
  
  /*::deep .studio-actions-right .studio-count {*/
  /*  display: none;*/
  /*}*/

  [b-ctuu3x8aeb] .studio-actions {
    gap: 0.75rem !important;
    margin-top: 0.7rem !important;
    justify-content: flex-start !important;
  }

  [b-ctuu3x8aeb] .studio-actions > * {
    width: 100%;
  }

  [b-ctuu3x8aeb] .studio-actions-right {
    gap: 0.75rem !important;
    flex-wrap: wrap !important;
    margin-left: 0 !important;
    width: 100%;
  }

  [b-ctuu3x8aeb] .studio-actions-right .btn-link,
  [b-ctuu3x8aeb] .studio-actions-right a {
    padding-left: 0 !important;
    padding-right: 0.35rem !important;
  }

  [b-ctuu3x8aeb] .studio-invite-link {
    padding-left: 0 !important;
  }

  [b-ctuu3x8aeb] .studio-actions-right .studio-pin-button {
    display: none !important;
  }

  [b-ctuu3x8aeb] .studio-count {
    white-space: nowrap;
  }

  [b-ctuu3x8aeb] .studio .studio-pin-button {
    opacity: 1;
  }
}

/*# sourceMappingURL=StudiosList.razor.css.map */
/* /Pages/Timers/FolderTimeStats.razor.rz.scp.css */
.folder-time-entry[b-rrxztjibt1] {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-color);
}

.time-total[b-rrxztjibt1] {
  text-align: right;
  font-size: 0.9em;
  color: var(--accent-color);
}
/* /Pages/User/AppUpdates.razor.rz.scp.css */
.updates-tracker[b-taubxcwnqi] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-height: 300px;
}

/* ── Header ──────────────────────────────────────────────────── */

.updates-header[b-taubxcwnqi] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.updates-header-left[b-taubxcwnqi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* ── Create / edit form ──────────────────────────────────────── */

.updates-create-form[b-taubxcwnqi],
.updates-edit-form[b-taubxcwnqi] {
    background: var(--bs-btn-hover-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* ── List ────────────────────────────────────────────────────── */

.updates-list[b-taubxcwnqi] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    /*border: 1px solid var(--bs-border-color);*/
    /*border-radius: 0.5rem;*/
    overflow: hidden;
}

.updates-featured[b-taubxcwnqi] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bs-primary) 7%, var(--bs-body-bg));
    cursor: pointer;
    transition: background 0.1s, border-color 0.1s;
}

.updates-featured:hover[b-taubxcwnqi],
.updates-featured.expanded[b-taubxcwnqi] {
    background: color-mix(in srgb, var(--bs-primary) 10%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-primary) 25%, var(--bs-border-color));
}

.updates-featured-main[b-taubxcwnqi] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.updates-featured-title[b-taubxcwnqi] {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.25;
}

.updates-featured-date[b-taubxcwnqi] {
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
}

.updates-featured-preview[b-taubxcwnqi] {
    color: var(--bs-body-color);
    font-size: 0.9rem;
    opacity: 0.8;
    line-height: 1.4;
    max-height: 4.4rem;
    overflow: hidden;
}

.updates-featured-chevron[b-taubxcwnqi] {
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.updates-featured.unread .updates-featured-title[b-taubxcwnqi] {
    font-weight: 800;
}

.updates-featured-edit-form[b-taubxcwnqi] {
    border-radius: 0.5rem;
}

.updates-month-group[b-taubxcwnqi] {
    display: flex;
    flex-direction: column;
}

.updates-month-title[b-taubxcwnqi] {
    color: var(--bs-secondary-color);
    font-size: 0.75rem;
    font-weight: 700;
    padding: 0.25rem 1rem 0.5rem 1rem;
}

.updates-item[b-taubxcwnqi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.6rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    cursor: pointer;
    transition: background 0.1s;
    background: var(--bs-body-bg);
}

.updates-item-like[b-taubxcwnqi] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.updates-item-like-btn[b-taubxcwnqi] {
    background: none;
    border: none;
    padding: 0.25rem;
    cursor: pointer;
    color: var(--accent-color);
    font-size: 1.5rem;
    line-height: 1;
    opacity: 0.3;
    transition: opacity 0.15s;
}

.updates-item-like-btn:hover[b-taubxcwnqi],
.updates-item-like-btn.liked[b-taubxcwnqi] {
    opacity: 1;
}

.updates-item-like-count[b-taubxcwnqi],
.updates-item-view-count[b-taubxcwnqi] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    opacity: 0.6;
    line-height: 1;
}

.updates-item-view-icon[b-taubxcwnqi] {
    font-size: 0.75rem;
    color: var(--bs-secondary-color);
    opacity: 0.6;
}

.updates-item-like-spacer[b-taubxcwnqi] {
    flex: 0 0 0.3rem;
}

.updates-list > *:last-child > .updates-item[b-taubxcwnqi],
.updates-list > .updates-item:last-child[b-taubxcwnqi] {
    border-bottom: none;
}

.updates-month-group > .updates-item:last-child[b-taubxcwnqi],
.updates-month-group > .updates-detail:last-child[b-taubxcwnqi] {
    border-bottom: none;
}

.updates-item:hover[b-taubxcwnqi] {
    background: var(--bs-btn-hover-bg);
}

.updates-item.expanded[b-taubxcwnqi] {
    background: var(--bs-btn-hover-bg);
    border-bottom: none;
}

.updates-item-content[b-taubxcwnqi] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.updates-item-meta[b-taubxcwnqi] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    min-width: 11rem;
}

.updates-item-date[b-taubxcwnqi] {
    font-size: .8em;
    opacity: .5;
    white-space: nowrap;
}

.updates-item-title[b-taubxcwnqi] {
    font-size: 1.0rem;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.updates-type-badge[b-taubxcwnqi] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    width: max-content;
    border-radius: 999px;
    background: color-mix(in srgb, var(--bs-primary) 12%, transparent);
    color: var(--bs-primary);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1;
    padding: 0.25rem 0.45rem;
}

.updates-item-meta .updates-type-badge[b-taubxcwnqi] {
    align-self: center;
}

.updates-item-views[b-taubxcwnqi] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.updates-item.unread .updates-item-title[b-taubxcwnqi] {
    font-weight: 700;
}

.updates-item-chevron[b-taubxcwnqi] {
    color: var(--bs-secondary-color);
    font-size: 0.8rem;
    flex-shrink: 0;
}

/* ── Detail ──────────────────────────────────────────────────── */

.updates-detail[b-taubxcwnqi] {
    padding: 0.75rem 1rem 1rem 1rem;
    border-bottom: 1px solid var(--bs-border-color);
    background: var(--bs-btn-hover-bg);
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.updates-detail-text[b-taubxcwnqi] {
    font-size: 0.875rem;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--bs-body-color);
    opacity: 0.85;
}

.updates-admin-note[b-taubxcwnqi] {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0.5rem 0.75rem;
    background: color-mix(in srgb, var(--bs-warning) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--bs-warning) 30%, transparent);
    border-radius: 0.375rem;
    font-size: 0.825rem;
    color: var(--bs-body-color);
}

.updates-admin-note-text[b-taubxcwnqi] {
    white-space: pre-wrap;
    word-break: break-word;
    opacity: 0.85;
}

.updates-admin-row[b-taubxcwnqi] {
    display: flex;
    padding-top: 0.25rem;
    border-top: 1px solid var(--bs-border-color);
}

/* ── Edit form inside list ───────────────────────────────────── */

.updates-edit-form[b-taubxcwnqi] {
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-bottom: 1px solid var(--bs-border-color);
}

/* ── Empty state ─────────────────────────────────────────────── */

.updates-empty[b-taubxcwnqi] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2.5rem;
}

@media (max-width: 640px) {
    .updates-header[b-taubxcwnqi] {
        align-items: flex-start;
        gap: 0.75rem;
    }

    .updates-item[b-taubxcwnqi] {
        align-items: flex-start;
        gap: 0.5rem;
    }

    .updates-item-content[b-taubxcwnqi] {
        gap: 0.35rem;
    }

    .updates-item-title[b-taubxcwnqi] {
        white-space: normal;
    }

    .updates-item-meta[b-taubxcwnqi] {
        min-width: 0;
        justify-content: flex-start;
        flex-wrap: wrap;
        margin-top: 0.15rem;
    }

    .updates-item[b-taubxcwnqi] {
        flex-wrap: wrap;
    }

    .updates-item-content[b-taubxcwnqi] {
        flex-basis: calc(100% - 1.5rem);
    }

    .updates-item-meta[b-taubxcwnqi] {
        order: 3;
        flex-basis: 100%;
        padding-left: 0;
    }
}
/* /Pages/User/Feedback.razor.rz.scp.css */
[b-oa53xldade] .feedback-tracker {
    min-height: 400px;
}

/* ── Header ─────────────────────────────────────────────────── */

[b-oa53xldade] .feedback-header {
    padding-bottom: 0.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

[b-oa53xldade] .feedback-new-button {
    min-width: 3rem;
    min-height: 3rem;
    padding: 0.75rem;
    font-size: 1.15rem;
}

[b-oa53xldade] .feedback-new-button i {
    margin: 0;
}

[b-oa53xldade] .feedback-count {
    margin-right: 0.5rem;
}

/* ── Create form ─────────────────────────────────────────────── */

[b-oa53xldade] .feedback-create-form {
    background: var(--bs-btn-hover-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0.5rem;
    padding: 1rem;
}

/* ── Filters ─────────────────────────────────────────────────── */

.feedback-filters-toggle[b-oa53xldade] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0;
    background: transparent;
    border: 0;
    font-size: 0.8rem;
    color: var(--bs-body-color);
    cursor: pointer;
    transition: all 0.2s;
    width: fit-content;
    font-weight: 400;
    opacity: 0.7;
}

.feedback-filters-toggle:hover[b-oa53xldade] {
    color: var(--bs-primary);
    opacity: 1;
}

[b-oa53xldade] .feedback-filters {
    animation: slideDown-b-oa53xldade 0.2s ease-out;
}

@keyframes slideDown-b-oa53xldade {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ── Chips / badges ──────────────────────────────────────────── */

.feedback-chip[b-oa53xldade] {
    display: inline-flex;
    align-items: center;
    padding: 0.2rem 0.65rem;
    border-radius: 1rem;
    font-size: 0.8rem;
    border: 1px solid var(--bs-border-color);
    background: transparent;
    color: var(--bs-body-color);
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
    line-height: 1.5;
}

.feedback-chip:hover[b-oa53xldade] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
}

.feedback-chip.active[b-oa53xldade] {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

/* Status chips */
.status-chip[b-oa53xldade] {
    color: var(--bs-body-color);
}

.status-chip:hover[b-oa53xldade] {
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.status-chip.active[b-oa53xldade] {
    background: var(--bs-primary);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

/* ── Screenshot upload ───────────────────────────────────────── */

.screenshot-upload-container[b-oa53xldade] {
    position: relative;
    min-height: 80px;
    border: 2px dashed var(--bs-border-color);
    border-radius: 0.375rem;
    cursor: pointer;
    transition: all 0.2s;
    overflow: hidden;
}

.screenshot-upload-container:hover[b-oa53xldade] {
    border-color: var(--bs-primary);
    background: var(--bs-secondary-bg);
}

.screenshot-placeholder[b-oa53xldade] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 80px;
    color: var(--bs-secondary-color);
    text-align: center;
    padding: 1rem;
    gap: 0.25rem;
}

.screenshot-preview[b-oa53xldade] {
    width: 100%;
    height: auto;
    max-height: 200px;
    object-fit: contain;
    display: block;
}

.delete-screenshot-btn[b-oa53xldade] {
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.2s;
    z-index: 10;
}

.screenshot-upload-container:hover .delete-screenshot-btn[b-oa53xldade] {
    opacity: 1;
}
/* /Pages/User/InviteToDialog.razor.rz.scp.css */
.invite-to-dialog[b-56bpmrngkh] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* Vyhledání adresáta a jeho role tvoří jedinou volbu. Na úzké obrazovce se tento
   celek zalomí společně, aby role nepůsobila jako nesouvisející druhé pole. */
/* flex-basis drží celek "adresát + role" na jednom řádku s tlačítkem i v úzkém dialogu
   (~600 px). Vyšší základ tlačítko zalomí pod pole a přidá dialogu zbytečný řádek;
   pod min-width se zalomí záměrně, protože pole už by nebylo použitelné. */
.invite-dialog-recipient-role[b-56bpmrngkh] {
    position: relative;
    flex: 1 1 260px;
    min-width: 240px;
}

[b-56bpmrngkh] .invite-dialog-recipient-role > .searchbox {
    width: 100%;
}

[b-56bpmrngkh] .invite-dialog-recipient-role > .invite-dialog-role {
    position: absolute;
    z-index: 1;
    top: 1px;
    right: 1px;
    bottom: 1px;
    min-width: 128px;
}

[b-56bpmrngkh] .invite-dialog-role .dropdown-btn {
    width: 100%;
    height: 100%;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 0;
    border-left: 1px solid var(--bs-border-color);
    border-radius: 0 30px 30px 0;
}

/* Role překrývá pravou část Searchboxu; rezerva chrání psaný e-mail před schováním
   pod dropdown a současně zachovává jeden společný obrys celého ovládacího prvku. */
[b-56bpmrngkh] .invite-dialog-recipient-role .searchbox__input,
[b-56bpmrngkh] .invite-dialog-recipient-role .searchbox__input-mask {
    padding-right: 134px; /* šířka role (128 px) + malý odstup, ať text nekončí těsně u dropdownu */
    /* Bez ikony lupy (ShowSearchIcon="false") má input jen výchozí padding komponenty (.5rem),
       což na kulatém poli (border-radius 30px) vypadá jako přilepený text. Doplňujeme vzduch,
       jaký měl input dřív díky rezervě pro ikonu. */
    padding-left: 1rem;
}

.invite-dialog-section[b-56bpmrngkh] {
    min-width: 0;
}

/* Výchozí Bootstrap padding tlačítka vypadá v tomto krátkém, jednořádkovém tlačítku moc
   "hranatě" na výšku - o něco širší a nižší padding sedí lépe vedle zaobleného vstupního pole. */
.invite-dialog-invite-btn[b-56bpmrngkh] {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
    padding-top: .4rem;
    padding-bottom: .4rem;
}

.invite-dialog-section-title[b-56bpmrngkh] {
    margin-bottom: .75rem;
    font-weight: 600;
    font-size: .92rem;
}

.invite-dialog-members-section[b-56bpmrngkh],
.invite-dialog-share-section[b-56bpmrngkh] {
    padding-top: 1.1rem;
    border-top: 1px solid var(--bs-border-color);
}

/* Sekce sdílení běží jako jeden řádek "nadpis + obsah". Ve výchozím (prázdném) stavu je
   obsahem jediné tlačítko, takže samostatný řádek nadpisu by byl zbytečná výška. Jakmile
   odkaz existuje, karta si vyžádá celou šířku (flex-basis 100 % níže) a řádek se zalomí. */
.invite-dialog-share-section[b-56bpmrngkh] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .75rem;
}

.invite-dialog-share-title[b-56bpmrngkh] {
    margin-bottom: 0;
    flex-shrink: 0;
}

[b-56bpmrngkh] .invite-dialog-share-section .share-links {
    flex: 1 1 auto;
    min-width: 0;
}

/* Karta hotového odkazu potřebuje plnou šířku (URL + kopírovat + nastavení), proto se
   v tomto stavu zalomí pod nadpis místo aby se mačkala vedle něj. */
[b-56bpmrngkh] .invite-dialog-share-section .share-links:has(.share-link-card) {
    flex-basis: 100%;
}
/* /Pages/User/MemberAccessSelector.razor.rz.scp.css */
/* Trigger drží roli i souhrn omezení na jednom řádku; text se zkracuje, aby se dlouhý název
   štítku nezalomil a nerozbil řádek člena v seznamu. */
.member-access-trigger[b-eeph1i1ozs] {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
}

.member-access-summary[b-eeph1i1ozs] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Bez overflow: vysunuté podmenu leží mimo hranice tohoto menu a jakýkoli overflow (i auto)
   by ho ořízl. Menu samo je krátké - role plus jedna položka - takže scrollování nepotřebuje;
   omezení výšky nese až panel podmenu, kde se seznam štítků může protáhnout. */
.member-access-menu[b-eeph1i1ozs] {
    min-width: 220px;
    overflow: visible;
}

/* Nadpis sekce odděluje roli od omezení. Bez něj by obojí splynulo v jeden plochý seznam
   a "Mix" by vypadal jako další role. */
.member-access-section-title[b-eeph1i1ozs] {
    padding: 0.35rem 1rem 0.15rem;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    opacity: 0.5;
}

/* Nadpis s nápovědou. Ikona stojí na pravém okraji panelu (margin-left: auto), ne nalepená
   za textem: u textu splývala s nadpisem a vypadala jako interpunkce, takže si jí nikdo
   nevšiml. Na kraji je to zjevný samostatný prvek a je snadné ji trefit myší. */
.member-access-section-title-with-hint[b-eeph1i1ozs] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Ikona nápovědy dostává kruhové podbarvení a vlastní plochu: samotný tenký obrys splýval
   s tlumeným nadpisem natolik, že vypadal jako interpunkce. Kruh z ní dělá zjevný ovládací
   prvek a zvětšuje cíl pro myš. */
.member-access-section-title-with-hint[b-eeph1i1ozs]  .member-access-hint {
    margin-left: auto;
    cursor: help;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    /* Podbarvení jen naznačuje plochu prvku - výraznější kruh přebíjel nadpis a čitelnost
       ikony nese hlavně její velikost, ne pozadí. Zvýrazní se až při najetí. */
    background-color: rgba(128, 128, 128, 0.08);
    transition: background-color 0.15s ease;
}

.member-access-section-title-with-hint[b-eeph1i1ozs]  .member-access-hint:hover {
    background-color: rgba(128, 128, 128, 0.22);
}

/* text-transform a letter-spacing z .member-access-section-title by se přenesly i na obsah
   tooltipu, proto je tady vracíme zpět. Ikona je světlejší než nadpis, ne tmavší - tlumená
   ikona na tlumeném nadpisu byla prakticky neviditelná. */
.member-access-section-title-with-hint[b-eeph1i1ozs]  i {
    text-transform: none;
    letter-spacing: normal;
    font-size: 1.15rem;
    opacity: 0.8;
    transition: opacity 0.15s ease;
}

.member-access-section-title-with-hint[b-eeph1i1ozs]  .member-access-hint:hover i {
    opacity: 1;
}

/* Podnadpis uvádí seznam štítků. Na rozdíl od .member-access-section-title není verzálkami -
   je to věta, ne označení sekce. Šířka drží zalomení na dva řádky, ne na čtyři úzké. */
.member-access-section-subtitle[b-eeph1i1ozs] {
    padding: 0.5rem 1.25rem 0.35rem;
    white-space: normal;
    max-width: 280px;
    opacity: 0.7;
    font-size: 0.85rem;
    line-height: 1.35;
}

.member-access-option[b-eeph1i1ozs] {
    display: flex;
    align-items: center;
}

/* Položka vedoucí do podmenu. Zarovnaná jako role, ale bez odsazení na fajfku - nic se tu
   nevybírá, jen otevírá. */
.member-access-advanced[b-eeph1i1ozs] {
    opacity: 0.75;
}

.member-access-submenu[b-eeph1i1ozs] {
    position: relative;
}

/* Podmenu se vysouvá vpravo od hlavního menu a je zarovnané k položce, ze které vyjelo.
   Bootstrap nested dropdowny nepodporuje, takže polohu řešíme sami.
   Šířka a vnitřní odsazení jsou záměrně velkorysé - panel vysvětluje oprávnění a stísněný
   výpis působil jako obyčejný filtr; místem tu není proč šetřit. */
.member-access-submenu-panel[b-eeph1i1ozs] {
    position: absolute;
    top: 0;
    left: 100%;
    margin-left: 0.25rem;
    min-width: 270px;
    max-height: 55vh;
    overflow-y: auto;
    z-index: 1;
    padding: 0.75rem 0;
}

/* Nadpis a volby v panelu dostávají větší boční odsazení než běžné dropdown položky,
   ať obsah nelepí na okraje. */
.member-access-submenu-panel .member-access-section-title[b-eeph1i1ozs],
.member-access-submenu-panel .member-access-option[b-eeph1i1ozs] {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

/* Nadpis musí zabrat celou šířku panelu, jinak by se margin-left:auto u ikony nápovědy
   neměl kam odrazit a ikona by zůstala nalepená za textem. */
.member-access-submenu-panel .member-access-section-title-with-hint[b-eeph1i1ozs] {
    display: flex;
    width: 100%;
}

.member-access-submenu-panel .member-access-option[b-eeph1i1ozs] {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}

/* Oddělovač mezi režimy "Bez omezení" a výběrem štítků potřebuje kolem sebe vzduch,
   jinak obě části splynou v jeden seznam. */
.member-access-panel-divider[b-eeph1i1ozs] {
    margin: 0.6rem 0;
}

/* Štítky pod uvozující větou: mírné odsazení doprava je podřizuje větě a mezera mezi nimi
   dovoluje trefit se i myší bez čtení. */
.member-access-label-option[b-eeph1i1ozs] {
    margin-top: 0.15rem;
}

/* Vybraný štítek drží jemné podbarvení i po odjetí myši. Samotné zaškrtávátko je malé a v řadě
   barevných bublin se přehlédne; podbarvený řádek ukáže výběr na první pohled. */
.member-access-label-option.is-selected[b-eeph1i1ozs] {
    background-color: rgba(128, 128, 128, 0.14);
}

/* Zaškrtávátko má pevnou šířku, aby text i barevné bubliny začínaly na stejné svislici bez
   ohledu na to, jestli je políčko prázdné, nebo zaškrtnuté (ikony mají různou šířku). */
.member-access-check[b-eeph1i1ozs] {
    width: 1rem;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.45;
}

.member-access-check.is-checked[b-eeph1i1ozs] {
    opacity: 1;
}

/* Zrušení omezení je destruktivní akce k už nastavenému stavu, ne další volba v seznamu -
   proto bez zaškrtávátka a s tlumeným textem, aby nesoupeřila se štítky o pozornost. */
.member-access-clear[b-eeph1i1ozs] {
    font-size: 0.85rem;
    opacity: 0.75;
    white-space: normal;
}

.member-access-clear:hover[b-eeph1i1ozs] {
    opacity: 1;
}

/* Na úzkém okně by se panel vpravo nevešel a vysunul by se mimo obrazovku, proto se pod
   hlavním menu přesune pod položku. */
@media (max-width: 576px) {
    .member-access-submenu-panel[b-eeph1i1ozs] {
        position: static;
        margin-left: 0;
        border: none;
        box-shadow: none;
        padding-left: 0.75rem;
    }
}

.member-access-empty[b-eeph1i1ozs] {
    padding: 0.25rem 1rem 0.5rem;
    max-width: 260px;
    white-space: normal;
}
/* /Pages/User/MyNextAppointment.razor.rz.scp.css */
[b-fe4n6fcdvj] .label {
  opacity: 0.6;
  font-size: 0.8rem;
}
/* /Pages/User/ScopeMembers.razor.rz.scp.css */
[b-q58r1fk5q1] .scope-member-identity {
    min-width: 0;
}

[b-q58r1fk5q1] .scope-member-email {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-q58r1fk5q1] .scope-member-via-link {
    display: flex;
    align-items: center;
    gap: .3rem;
}

[b-q58r1fk5q1] .scope-member-via-link i {
    font-size: .68rem;
}
/* /Pages/User/UserAlert.razor.rz.scp.css */
[data-bs-theme=dark] .alert.alert-primary[b-yirkk47pw9] {
  background: rgb(24, 24, 24);
  border-color: rgb(59, 59, 59);
}

.icontext-container[b-yirkk47pw9] {
  display: flex;
  gap: 16px;
}

.alert.larger .icon[b-yirkk47pw9] {
  font-size: 4rem !important;
}

/*# sourceMappingURL=UserAlert.razor.css.map */
/* /Pages/User/UsersPage.razor.rz.scp.css */
[b-lqmvyt2m5s] .empty-labels {
    opacity: 0;
}

[b-lqmvyt2m5s] .user-row:hover .empty-labels {
    opacity: 1;
}
/* /Pages/User/VideoTutorialAlert.razor.rz.scp.css */
[data-bs-theme="dark"] .alert.alert-primary[b-evpi9vox10] {
    background-color: #5962fd;
}
