/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ==========================================================================
   OrchestraHAL アプリレイアウト
   仕様: docs/implementation/dotnet/blazor/ui-design.md §8 ナビゲーション
   ========================================================================== */

.orch-app[b-zbeki2dgby] {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    background-color: var(--orch-bg);
}

.orch-app-main[b-zbeki2dgby] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    /* モバイル: 下部固定ナビ + safe-area の高さ分パディング */
    padding-bottom: calc(var(--orch-bottom-nav-h) + env(safe-area-inset-bottom));
}

.orch-app-content[b-zbeki2dgby] {
    flex: 1;
    padding: var(--orch-sp-5) var(--orch-sp-4);
    max-width: 1280px;
    width: 100%;
    margin: 0 auto;
}

/* ==========================================================================
   モバイル下部タブバー（PC では非表示）
   ========================================================================== */

.orch-bottom-nav[b-zbeki2dgby] {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 2026-05-22 ADR-0010: 5→4 タブに削減 */
    gap: 0;
    height: calc(var(--orch-bottom-nav-h) + env(safe-area-inset-bottom));
    padding-bottom: env(safe-area-inset-bottom);
    background-color: var(--orch-surface);
    border-top: 1px solid var(--orch-border);
    box-shadow: 0 -4px 12px rgba(15, 23, 42, 0.06);
}

[b-zbeki2dgby] .orch-bottom-nav-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    color: var(--orch-text-muted);
    text-decoration: none;
    font-size: var(--orch-fs-xs);
    line-height: 1.2;
    transition: color 0.12s ease, background-color 0.12s ease;
    min-height: 56px;
}

    [b-zbeki2dgby] .orch-bottom-nav-link .bi {
        font-size: 1.35rem;
        line-height: 1;
    }

    [b-zbeki2dgby] .orch-bottom-nav-link:hover,
    [b-zbeki2dgby] .orch-bottom-nav-link:focus {
        color: var(--orch-primary);
        background-color: var(--orch-primary-soft);
        text-decoration: none;
    }

    [b-zbeki2dgby] .orch-bottom-nav-link:focus:not(:focus-visible) {
        outline: none;
    }

    [b-zbeki2dgby] .orch-bottom-nav-link:focus-visible {
        outline: 2px solid var(--orch-primary);
        outline-offset: -2px;
    }

    [b-zbeki2dgby] .orch-bottom-nav-link.active {
        color: var(--orch-primary);
        background-color: var(--orch-primary-soft);
    }

    [b-zbeki2dgby] .orch-bottom-nav-link.active .bi {
        color: var(--orch-accent);
    }

.orch-bottom-nav-label[b-zbeki2dgby] {
    font-weight: 500;
}

/* ==========================================================================
   PC ブレークポイント
   ========================================================================== */

@media (min-width: 641px) {
    .orch-app[b-zbeki2dgby] {
        flex-direction: row;
        padding-top: var(--orch-topbar-h);
    }

    .orch-app-main[b-zbeki2dgby] {
        flex: 1;
        min-height: calc(100dvh - var(--orch-topbar-h));
        /* PC では下部タブバーを使わないので余白不要 */
        padding-bottom: 0;
    }

    .orch-bottom-nav[b-zbeki2dgby] {
        display: none;
    }
}

/* ==========================================================================
   Blazor エラー UI
   ========================================================================== */

#blazor-error-ui[b-zbeki2dgby] {
    color-scheme: light only;
    background: var(--orch-warning-soft);
    color: var(--orch-text);
    border-top: 3px solid var(--orch-warning);
    bottom: 0;
    box-shadow: 0 -2px 6px rgba(15, 23, 42, 0.12);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-zbeki2dgby] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ==========================================================================
   トップバー（モバイル: 上部固定 / PC: 上部固定）
   ========================================================================== */

.orch-topbar[b-u76r58a9j6] {
    position: sticky;
    top: 0;
    z-index: 1030;
    height: var(--orch-topbar-h);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--orch-sp-3);
    padding: 0 var(--orch-sp-4);
    background: linear-gradient(180deg, var(--orch-primary) 0%, var(--orch-primary-hover) 100%);
    color: var(--orch-text-on-primary);
    box-shadow: var(--orch-shadow-sm);
}

.orch-brand[b-u76r58a9j6] {
    display: inline-flex;
    align-items: center;
    gap: var(--orch-sp-2);
    color: var(--orch-text-on-primary);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--orch-fs-sm);
    letter-spacing: 0.02em;
}

    .orch-brand:hover[b-u76r58a9j6] {
        color: var(--orch-text-on-primary);
        text-decoration: none;
    }

.orch-brand-text[b-u76r58a9j6] {
    font-size: var(--orch-fs-sm);
}

/* ==========================================================================
   ユーザードロップダウン（ヘッダー右側）
   ========================================================================== */

.orch-user-dropdown[b-u76r58a9j6] {
    position: relative;
    margin-left: auto;
}

.orch-user-toggle[b-u76r58a9j6] {
    display: inline-flex;
    align-items: center;
    gap: var(--orch-sp-2);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--orch-radius-md);
    color: var(--orch-text-on-primary);
    font-size: var(--orch-fs-sm);
    padding: var(--orch-sp-1) var(--orch-sp-3);
    cursor: pointer;
    min-height: 36px;
    transition: background-color 0.15s ease;
}

    .orch-user-toggle:hover[b-u76r58a9j6],
    .orch-user-toggle:focus[b-u76r58a9j6] {
        background: rgba(255, 255, 255, 0.2);
    }

.orch-user-name[b-u76r58a9j6] {
    max-width: 20vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.orch-user-chevron[b-u76r58a9j6] {
    font-size: 0.7rem;
    opacity: 0.7;
}

.orch-user-menu[b-u76r58a9j6] {
    position: absolute;
    top: 100%;
    right: 0;
    margin-top: var(--orch-sp-1);
    background: var(--orch-surface);
    border: 1px solid var(--orch-border);
    border-radius: var(--orch-radius-md);
    box-shadow: var(--orch-shadow-md);
    min-width: 140px;
    z-index: 1050;
    padding: var(--orch-sp-1) 0;
}

.orch-user-menu-item[b-u76r58a9j6] {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-2);
    width: 100%;
    padding: var(--orch-sp-2) var(--orch-sp-3);
    background: none;
    border: none;
    color: var(--orch-text);
    font-size: var(--orch-fs-sm);
    cursor: pointer;
    transition: background-color 0.12s ease;
}

    .orch-user-menu-item:hover[b-u76r58a9j6] {
        background-color: var(--orch-primary-soft);
    }

/* ==========================================================================
   メニュー開閉ボタン（モバイルのみ表示）
   ========================================================================== */

.orch-menu-toggle[b-u76r58a9j6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--orch-radius-md);
    color: var(--orch-text-on-primary);
    font-size: 1.4rem;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

    .orch-menu-toggle:hover[b-u76r58a9j6],
    .orch-menu-toggle:focus[b-u76r58a9j6] {
        background: rgba(255, 255, 255, 0.2);
    }

    .orch-menu-toggle:focus:not(:focus-visible)[b-u76r58a9j6] {
        outline: none;
    }

    .orch-menu-toggle:focus-visible[b-u76r58a9j6] {
        outline: 2px solid var(--orch-text-on-primary);
        outline-offset: 2px;
    }

/* ==========================================================================
   オーバーレイ（メニュー背後）
   ========================================================================== */

.orch-overlay[b-u76r58a9j6] {
    position: fixed;
    inset: 0;
    /* 2026-05-21: Bootstrap modal-backdrop 相当 (1040)。
       ページ内の sticky 要素 (1020) よりも上、サイドパネル (1045) よりも下。 */
    z-index: 1040;
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(2px);
    animation: orch-fade-in-b-u76r58a9j6 0.18s ease-out;
}

@keyframes orch-fade-in-b-u76r58a9j6 {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ==========================================================================
   サイドパネル（モバイル: 左からスライドイン / PC: 常時表示）
   ========================================================================== */

.orch-side-panel[b-u76r58a9j6] {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: min(var(--orch-sidebar-w), 86vw);
    z-index: 1045;
    background: linear-gradient(180deg, var(--orch-primary) 0%, var(--orch-primary-hover) 100%);
    color: var(--orch-text-on-primary);
    transform: translateX(-100%);
    transition: transform 0.22s ease;
    visibility: hidden;
    pointer-events: none;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--orch-sp-4) 0 calc(var(--orch-sp-7) + env(safe-area-inset-bottom)) 0;
    box-shadow: var(--orch-shadow-lg);
    display: flex;
    flex-direction: column;
}

.orch-side-panel.is-open[b-u76r58a9j6] {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
}

.orch-nav[b-u76r58a9j6] {
    display: flex;
    flex-direction: column;
    gap: var(--orch-sp-4);
    flex: 1;
}

.orch-nav-section[b-u76r58a9j6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 var(--orch-sp-3);
}

.orch-nav-heading[b-u76r58a9j6] {
    font-size: var(--orch-fs-xs);
    font-weight: 600;
    color: rgba(255, 255, 255, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: var(--orch-sp-3) var(--orch-sp-3) var(--orch-sp-2);
}

/* ==========================================================================
   管理セクションのグルーピング (2026-05-21)
   <details> + <summary> で折りたたみ式グループを実装。
   設計: docs/implementation/dotnet/blazor/admin/admin-menu-grouping.md
   ========================================================================== */

.orch-nav-group[b-u76r58a9j6] {
    margin-top: var(--orch-sp-2);
}

.orch-nav-group-summary[b-u76r58a9j6] {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-3);
    padding: var(--orch-sp-2) var(--orch-sp-3);
    color: rgba(255, 255, 255, 0.92);
    font-size: var(--orch-fs-md);
    font-weight: 600;
    cursor: pointer;
    border-radius: var(--orch-radius-md);
    user-select: none;
    transition: background-color 0.12s ease;
    /* details の標準三角形を非表示にして独自の chevron に */
    list-style: none;
}

.orch-nav-group-summary[b-u76r58a9j6]::-webkit-details-marker {
    display: none;
}

.orch-nav-group-summary:hover[b-u76r58a9j6] {
    background-color: rgba(255, 255, 255, 0.08);
}

.orch-nav-group-summary[b-u76r58a9j6]::after {
    content: "▸";
    margin-left: auto;
    font-size: 0.85em;
    color: rgba(255, 255, 255, 0.55);
    transition: transform 0.15s ease;
}

.orch-nav-group[open] > .orch-nav-group-summary[b-u76r58a9j6]::after {
    transform: rotate(90deg);
}

.orch-nav-group-body[b-u76r58a9j6] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-left: var(--orch-sp-2);
    margin-top: 2px;
}

[b-u76r58a9j6] .orch-nav-link {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-3);
    min-height: 44px;
    padding: var(--orch-sp-2) var(--orch-sp-3);
    border-radius: var(--orch-radius-md);
    color: rgba(255, 255, 255, 0.78);
    text-decoration: none;
    font-size: var(--orch-fs-md);
    line-height: 1.3;
    transition: background-color 0.12s ease, color 0.12s ease;
}

[b-u76r58a9j6] .orch-nav-link .bi {
    flex-shrink: 0;
    width: 1.25rem;
    font-size: 1.1rem;
    text-align: center;
    color: rgba(255, 255, 255, 0.7);
    transition: color 0.12s ease;
}

[b-u76r58a9j6] .orch-nav-link:hover,
[b-u76r58a9j6] .orch-nav-link:focus {
    background-color: rgba(255, 255, 255, 0.08);
    color: var(--orch-text-on-primary);
    text-decoration: none;
}

[b-u76r58a9j6] .orch-nav-link:focus:not(:focus-visible) {
    outline: none;
}

[b-u76r58a9j6] .orch-nav-link:focus-visible {
    outline: 2px solid var(--orch-text-on-primary);
    outline-offset: -2px;
}

[b-u76r58a9j6] .orch-nav-link:hover .bi,
[b-u76r58a9j6] .orch-nav-link:focus .bi {
    color: var(--orch-text-on-primary);
}

[b-u76r58a9j6] .orch-nav-link.active {
    background-color: rgba(255, 255, 255, 0.14);
    color: var(--orch-text-on-primary);
    box-shadow: inset 4px 0 0 var(--orch-accent);
}

[b-u76r58a9j6] .orch-nav-link.active .bi {
    color: var(--orch-accent);
}

/* ==========================================================================
   PC ブレークポイント（>= 641px）
   ========================================================================== */

@media (min-width: 641px) {
    .orch-topbar[b-u76r58a9j6] {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1050;
    }

    .orch-menu-toggle[b-u76r58a9j6] {
        display: none;
    }

    .orch-overlay[b-u76r58a9j6] {
        display: none;
    }

    .orch-side-panel[b-u76r58a9j6] {
        position: sticky;
        top: var(--orch-topbar-h);
        height: calc(100dvh - var(--orch-topbar-h));
        transform: none;
        visibility: visible;
        pointer-events: auto;
        box-shadow: none;
        border-right: 1px solid var(--orch-border);
        padding-top: var(--orch-sp-5);
    }

    .orch-side-user[b-u76r58a9j6] {
        display: none;
    }
}

/* サイドパネル下部ユーザー情報 */
.orch-side-user[b-u76r58a9j6] {
    display: none; /* モバイルではトップバーに表示するため非表示 */
    align-items: center;
    gap: var(--orch-sp-2);
    padding: var(--orch-sp-3) var(--orch-sp-4);
    margin-top: auto;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--orch-fs-sm);
    flex-wrap: wrap;
}

.orch-side-user-name[b-u76r58a9j6] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.orch-side-user-logout[b-u76r58a9j6] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: var(--orch-radius-sm);
    color: rgba(255, 255, 255, 0.78);
    padding: 4px 8px;
    font-size: var(--orch-fs-xs);
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.orch-side-user-logout:hover[b-u76r58a9j6] {
    background: rgba(255, 255, 255, 0.1);
    color: var(--orch-text-on-primary);
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-d1vvtn4bkm],
.components-reconnect-repeated-attempt-visible[b-d1vvtn4bkm],
.components-reconnect-failed-visible[b-d1vvtn4bkm],
.components-pause-visible[b-d1vvtn4bkm],
.components-resume-failed-visible[b-d1vvtn4bkm],
.components-rejoining-animation[b-d1vvtn4bkm] {
    display: none;
}

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


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

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

}

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

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

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

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

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

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

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

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

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

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

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

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

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Admin/Payments/MemberPaymentsPage.razor.rz.scp.css */
/* 団費納入状況マトリックス */

.orch-fee-matrix-wrapper[b-8acmd5ljgc] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.orch-fee-month-header[b-8acmd5ljgc] {
    writing-mode: vertical-rl;
    text-align: center;
    width: 2rem;
    min-width: 2rem;
    font-size: 0.8rem;
    padding: 4px 0;
    white-space: nowrap;
}

.orch-fee-cell[b-8acmd5ljgc] {
    width: 2rem;
    min-width: 2rem;
    text-align: center;
    padding: 4px 0;
    font-weight: bold;
    cursor: pointer;
    user-select: none;
}

.orch-fee-cell:hover[b-8acmd5ljgc] {
    background-color: rgba(0, 123, 255, 0.08);
}

.orch-fee-cell-current-month[b-8acmd5ljgc] {
    background-color: rgba(220, 200, 230, 0.4) !important;
}

.orch-fee-section-header[b-8acmd5ljgc] {
    background-color: var(--bs-light);
    font-weight: bold;
}

@media (max-width: 768px) {
    .orch-fee-month-header[b-8acmd5ljgc] {
        font-size: 0.7rem;
        width: 1.6rem;
        min-width: 1.6rem;
    }
    .orch-fee-cell[b-8acmd5ljgc] {
        width: 1.6rem;
        min-width: 1.6rem;
        font-size: 0.85rem;
    }
}
/* /Components/Pages/Admin/RoleMatrix.razor.rz.scp.css */
.role-matrix-action-bar[b-4lsvfwu3e1] {
    position: fixed;
    right: var(--orch-sp-4);
    bottom: calc(var(--orch-bottom-nav-h, 64px) + env(safe-area-inset-bottom) + var(--orch-sp-2));
    left: var(--orch-sp-4);
    z-index: 1020;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--orch-sp-4);
    padding: var(--orch-sp-3);
    background-color: var(--orch-surface, var(--bs-body-bg));
    border: 1px solid var(--orch-border, var(--bs-border-color));
    border-radius: var(--orch-radius-md, var(--bs-border-radius));
    box-shadow: var(--orch-shadow-md, var(--bs-box-shadow-sm));
    max-height: calc(100dvh - var(--orch-topbar-h, 56px) - var(--orch-sp-4));
    overflow-y: auto;
}

.role-matrix-action-spacer[b-4lsvfwu3e1] {
    height: 12rem;
}

.role-matrix-action-button[b-4lsvfwu3e1] {
    min-height: var(--orch-touch-target-min, 44px);
}

.role-matrix-tabs[b-4lsvfwu3e1] {
    scrollbar-width: thin;
}

.role-matrix-tabs .nav-item[b-4lsvfwu3e1] {
    flex: 0 0 auto;
}

.role-matrix-tabs .nav-link[b-4lsvfwu3e1] {
    min-height: var(--orch-touch-target-min, 44px);
    white-space: nowrap;
}

.role-matrix-check-target[b-4lsvfwu3e1],
.role-matrix-modal-close[b-4lsvfwu3e1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--orch-touch-target-min, 44px);
    min-height: var(--orch-touch-target-min, 44px);
}

.role-matrix-check-target[b-4lsvfwu3e1] {
    cursor: pointer;
}

.role-matrix-check-target .form-check-input[b-4lsvfwu3e1] {
    margin: 0;
}

.role-matrix-modal-action[b-4lsvfwu3e1] {
    min-height: var(--orch-touch-target-min, 44px);
}

@media (min-width: 641px) {
    .role-matrix-action-bar[b-4lsvfwu3e1] {
        right: var(--orch-sp-5);
        bottom: var(--orch-sp-4);
        left: calc(var(--orch-sidebar-w, 260px) + var(--orch-sp-5));
    }

}

@media (min-width: 992px) {
    .role-matrix-action-spacer[b-4lsvfwu3e1] {
        height: 6rem;
    }
}

@media (max-width: 991.98px) {
    .role-matrix-action-bar[b-4lsvfwu3e1] {
        align-items: stretch;
        flex-direction: column;
    }

    .role-matrix-action-bar > .d-flex[b-4lsvfwu3e1] {
        width: 100%;
    }

    .role-matrix-action-button[b-4lsvfwu3e1] {
        flex: 1;
    }
}
/* /Components/Pages/Admin/TermRegistration.razor.rz.scp.css */
.orch-term-registration-touch[b-l69szyk1z6],
.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-check,
.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-icon-action,
.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-mobile-summary {
    min-width: var(--orch-touch-target-min);
    min-height: var(--orch-touch-target-min);
}

.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-desktop button,
.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-mobile button {
    min-height: var(--orch-touch-target-min);
}

.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-check {
    display: inline-flex;
    align-items: center;
    gap: var(--orch-sp-2);
    margin-right: var(--orch-sp-2);
    padding-inline: var(--orch-sp-2);
    cursor: pointer;
}

.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-check input {
    width: 20px;
    height: 20px;
}

.orch-term-registration-editor[b-l69szyk1z6]  .orch-term-registration-mobile-summary .text-muted {
    min-width: 0;
    overflow-wrap: anywhere;
}
/* /Components/Pages/Documents.razor.rz.scp.css */
.documents-tile-grid[b-llagh8iuja] {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr));
}

.documents-tile[b-llagh8iuja] {
    min-width: 0;
    overflow: hidden;
}

.documents-tile-preview-trigger[b-llagh8iuja] {
    display: flex;
    width: 100%;
    min-height: var(--orch-touch-target-min);
    aspect-ratio: 4 / 3;
    padding: 0;
    align-items: center;
    justify-content: center;
    border: 0;
    border-bottom: 1px solid var(--orch-border);
    background: var(--orch-surface-alt);
}

.documents-tile-preview-trigger:focus-visible[b-llagh8iuja] {
    position: relative;
    z-index: 1;
    outline: 3px solid var(--orch-surface);
    outline-offset: -3px;
    box-shadow: inset 0 0 0 6px var(--orch-primary);
}

.documents-tile-preview-image[b-llagh8iuja] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: var(--orch-surface-alt);
}

.documents-file-kind[b-llagh8iuja] {
    display: flex;
    min-height: var(--orch-touch-target-min);
    aspect-ratio: 4 / 3;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--orch-sp-2);
    border-bottom: 1px solid var(--orch-border);
    background: var(--orch-surface-alt);
    color: var(--orch-text-muted);
    text-align: center;
}

.documents-file-kind > span:first-child[b-llagh8iuja] {
    color: var(--orch-primary);
    font-size: 3rem;
    line-height: 1;
}

.min-w-0[b-llagh8iuja] {
    min-width: 0;
}

.documents-tile-action[b-llagh8iuja],
.documents-image-preview-action[b-llagh8iuja] {
    display: inline-flex;
    min-height: var(--orch-touch-target-min);
    align-items: center;
    justify-content: center;
}

.documents-image-preview-body[b-llagh8iuja] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: var(--orch-sp-2);
    min-height: 0;
    height: min(60dvh, 36rem);
    align-items: center;
    background: var(--orch-surface);
}

.documents-image-preview-navigation[b-llagh8iuja] {
    min-width: var(--orch-touch-target-min);
    min-height: var(--orch-touch-target-min);
    border-radius: var(--orch-radius-pill);
    box-shadow: var(--orch-shadow-md);
}

.documents-image-preview-navigation:focus-visible[b-llagh8iuja] {
    outline: 3px solid var(--orch-surface);
    outline-offset: 2px;
    box-shadow: 0 0 0 5px var(--orch-primary);
}

.documents-image-preview-navigation:disabled[b-llagh8iuja] {
    opacity: 0.45;
}

.documents-image-preview-frame[b-llagh8iuja] {
    display: flex;
    width: 100%;
    height: 100%;
    min-width: 0;
    align-items: center;
    justify-content: center;
}

.documents-image-preview[b-llagh8iuja] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 70dvh;
    object-fit: contain;
}

@media (max-width: 359.98px) {
    .documents-tile-grid[b-llagh8iuja] {
        grid-template-columns: 1fr;
    }
}

@media (max-height: 500px) {
    .documents-image-preview-dialog[b-llagh8iuja] {
        width: 100vw;
        max-width: none;
        height: 100dvh;
        margin: 0;
    }

    .documents-image-preview-dialog .modal-content[b-llagh8iuja] {
        height: 100dvh;
        max-height: none;
        overflow-y: auto;
        border: 0;
        border-radius: 0;
    }

    .documents-image-preview-body[b-llagh8iuja] {
        height: min(55dvh, 20rem);
        overflow: visible;
    }
}
/* /Components/Pages/Help.razor.rz.scp.css */
/* ヘルプページの iframe コンテナ */
.help-iframe-container[b-oze1mbspuw] {
    width: 100%;
    min-height: 70vh;
}

.help-iframe[b-oze1mbspuw] {
    width: 100%;
    min-height: 70vh;
    border: 1px solid var(--orch-border, #dee2e6);
    border-radius: 0.5rem;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ==========================================================================
   Home.razor ダッシュボードスタイル
   仕様: docs/implementation/dotnet/blazor/ui-design.md §9
   ========================================================================== */

/* ---- ヒーロー ---- */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--orch-sp-4);
    padding: var(--orch-sp-5) var(--orch-sp-5);
    margin-bottom: var(--orch-sp-5);
    background: linear-gradient(135deg, var(--orch-primary) 0%, var(--orch-primary-hover) 100%);
    color: var(--orch-text-on-primary);
    border-radius: var(--orch-radius-lg);
    box-shadow: var(--orch-shadow-md);
    overflow: hidden;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-text {
    flex: 1;
    min-width: 0;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-eyebrow {
    margin: 0 0 var(--orch-sp-1);
    font-size: var(--orch-fs-sm);
    color: rgba(255, 255, 255, 0.75);
    letter-spacing: 0.04em;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-title {
    margin: 0 0 var(--orch-sp-2);
    font-size: var(--orch-fs-xl);
    font-weight: 700;
    line-height: 1.3;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-lead {
    margin: 0;
    font-size: var(--orch-fs-md);
    color: rgba(255, 255, 255, 0.85);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-mark {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: var(--orch-radius-pill);
    background: rgba(255, 255, 255, 0.15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: var(--orch-accent);
}

/* ---- セクション共通 ---- */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-section {
    margin-bottom: var(--orch-sp-6);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-section-title {
    margin: 0 0 var(--orch-sp-3);
    font-size: var(--orch-fs-lg);
    font-weight: 600;
    color: var(--orch-text);
}

/* ---- クイックアクション（削除済み、ダッシュボード化で練習予定+お知らせに統合） ---- */

/* ---- 次回の練習予定 ---- */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-list {
    display: flex;
    flex-direction: column;
    gap: var(--orch-sp-2);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-item {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-3);
    padding: var(--orch-sp-3);
    background-color: var(--orch-surface);
    border: 1px solid var(--orch-border);
    border-radius: var(--orch-radius-md);
    color: var(--orch-text);
    box-shadow: var(--orch-shadow-sm);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-section-title-link {
    color: inherit;
    text-decoration: none;
}

    @media (hover: hover) {
        .orch-home-dashboard[b-3u2hd96k2e]  .orch-section-title-link:hover {
            color: var(--orch-primary);
            text-decoration: underline;
        }
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-section-title-link:focus {
        color: var(--orch-primary);
        text-decoration: underline;
    }

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-title-link {
    padding: 0;
    border: 0;
    background: transparent;
    font-size: var(--orch-fs-md);
    font-weight: 600;
    color: var(--orch-text);
    font-family: inherit;
    text-align: left;
    text-decoration: none;
    overflow-wrap: anywhere;
    min-width: 0;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

    @media (hover: hover) {
        .orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-title-link:hover {
            color: var(--orch-primary);
            text-decoration: underline;
        }
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-title-link:focus-visible {
        color: var(--orch-primary);
        text-decoration: underline;
    }

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    padding: var(--orch-sp-2);
    background-color: var(--orch-primary-soft);
    border-radius: var(--orch-radius-md);
    line-height: 1.2;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-month {
    font-size: var(--orch-fs-xs);
    color: var(--orch-primary);
    font-weight: 600;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-day {
    font-size: var(--orch-fs-xl);
    font-weight: 700;
    color: var(--orch-primary);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-dow {
    font-size: var(--orch-fs-xs);
    color: var(--orch-text-muted);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--orch-sp-1);
}

/* .orch-upcoming-title は .orch-upcoming-title-link に統合 (2026-05-23) */

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-meta {
    display: inline-flex;
    align-items: center;
    gap: var(--orch-sp-1);
    font-size: var(--orch-fs-sm);
    color: var(--orch-text-muted);
    min-width: 0;
    overflow-wrap: anywhere;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-attendance {
    flex: 0 0 auto;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-attendance-chip {
    display: inline-flex;
    align-items: center;
    gap: var(--orch-sp-1);
    padding: var(--orch-sp-1) var(--orch-sp-2);
    border-radius: var(--orch-radius-pill);
    font-size: var(--orch-fs-sm);
    font-weight: 600;
    white-space: nowrap;
    border: 1px solid transparent;
}

/* #174: チップ button 化 — クリック可能表現 + タッチターゲット */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-attendance-chip-btn {
    cursor: pointer;
    min-height: 44px;
    min-width: 44px;
    transition: opacity 0.15s ease, box-shadow 0.15s ease;
}

    @media (hover: hover) {
        .orch-home-dashboard[b-3u2hd96k2e]  .orch-attendance-chip-btn:hover {
            opacity: 0.85;
        }
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-attendance-chip-btn:active {
        opacity: 0.7;
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-attendance-chip-btn:focus-visible {
        outline: 3px solid var(--orch-focus, #0d6efd);
        outline-offset: 2px;
    }

    @media (prefers-reduced-motion: reduce) {
        .orch-home-dashboard[b-3u2hd96k2e]  .orch-attendance-chip-btn {
            transition: none;
        }
    }

/* ---- お知らせリスト ---- */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-list {
    display: flex;
    flex-direction: column;
    gap: var(--orch-sp-2);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-item {
    background-color: var(--orch-surface);
    border: 1px solid var(--orch-border);
    border-radius: var(--orch-radius-md);
    color: var(--orch-text);
    box-shadow: var(--orch-shadow-sm);
    overflow: hidden;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-card-header {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-1);
    padding: var(--orch-sp-2) var(--orch-sp-3);
    background-color: var(--bs-light, #f8f9fa);
    border-bottom: 1px solid var(--orch-border);
    flex-wrap: wrap;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-card-header .badge {
    font-size: var(--orch-fs-xs);
    font-weight: 500;
    flex-shrink: 0;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-header-warning {
    background-color: #fff3cd;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-header-danger {
    background-color: #f8d7da;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-content {
    flex: 1;
    min-width: 0;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-header {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-2);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-title-link {
    flex: 1;
    min-width: 0;
    padding: var(--orch-sp-1) 0;
    border: 0;
    background: transparent;
    font-size: var(--orch-fs-sm);
    font-weight: 500;
    color: var(--orch-text);
    font-family: inherit;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}

    @media (hover: hover) {
        .orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-title-link:hover {
            color: var(--orch-primary);
            text-decoration: underline;
        }
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-title-link:focus {
        color: var(--orch-primary);
        text-decoration: underline;
    }

.orch-home-dashboard[b-3u2hd96k2e]  .orch-pin-icon {
    color: var(--orch-warning);
    flex-shrink: 0;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-preview {
    margin: 0;
    padding: var(--orch-sp-2) var(--orch-sp-3);
    font-size: var(--orch-fs-sm);
    color: var(--orch-text-muted);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-action {
    padding: var(--orch-sp-2) var(--orch-sp-3);
    border-top: 1px solid var(--orch-border);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-schedule-adjustment-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-announcement-date {
    flex: 0 0 auto;
    font-size: var(--orch-fs-xs);
    color: var(--orch-text-muted);
}

/* ---- 空メッセージ ---- */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-empty-message {
    padding: var(--orch-sp-4);
    text-align: center;
    color: var(--orch-text-muted);
    font-size: var(--orch-fs-sm);
    background-color: var(--orch-surface-alt);
    border-radius: var(--orch-radius-md);
}

/* ---- 業務カードグリッド ---- */
/* 2026-05-22: intrinsic responsive grid (auto-fill + minmax) に統一
   詳細: docs/development/responsive-card-grid-2026-05-22.md
   共通クラス .orch-card-grid と同じ思想 (lg バリアント相当の 20rem) */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
    gap: var(--orch-sp-3);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--orch-sp-2);
    padding: var(--orch-sp-4);
    background-color: var(--orch-surface);
    border: 1px solid var(--orch-border);
    border-radius: var(--orch-radius-md);
    color: var(--orch-text);
    text-decoration: none;
    box-shadow: var(--orch-shadow-sm);
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    height: 100%;
}

    @media (hover: hover) {
        .orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-card:hover {
            transform: translateY(-2px);
            box-shadow: var(--orch-shadow-md);
            border-color: var(--orch-primary-soft);
            text-decoration: none;
            color: var(--orch-text);
        }
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-card:focus-visible {
        transform: translateY(-2px);
        box-shadow: var(--orch-shadow-md);
        border-color: var(--orch-primary-soft);
        text-decoration: none;
        color: var(--orch-text);
        outline: 3px solid var(--orch-focus, var(--orch-primary));
        outline-offset: 3px;
    }

.orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--orch-radius-md);
    font-size: 1.25rem;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-card-title {
    margin: 0;
    font-size: var(--orch-fs-md);
    font-weight: 600;
    color: var(--orch-text);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-card-desc {
    margin: 0;
    font-size: var(--orch-fs-sm);
    color: var(--orch-text-muted);
    line-height: 1.5;
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-feature-grid-fallback {
    display: flex;
    align-items: center;
    gap: var(--orch-sp-2);
    margin-top: var(--orch-sp-4);
    padding: var(--orch-sp-3);
    font-size: var(--orch-fs-sm);
    background-color: var(--orch-surface-alt);
    border-radius: var(--orch-radius-md);
}

/* ---- カラートーン（アイコン背景の彩色） ---- */
.orch-home-dashboard[b-3u2hd96k2e]  .orch-tone-primary {
    background-color: var(--orch-primary-soft);
    color: var(--orch-primary);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-tone-accent {
    background-color: var(--orch-accent-soft);
    color: var(--orch-accent-hover);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-tone-success {
    background-color: var(--orch-success-soft);
    color: var(--orch-success);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-tone-warning {
    background-color: var(--orch-warning-soft);
    color: var(--orch-warning);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-tone-info {
    background-color: var(--orch-info-soft);
    color: var(--orch-info);
}

.orch-home-dashboard[b-3u2hd96k2e]  .orch-tone-danger {
    background-color: var(--orch-danger-soft);
    color: var(--orch-danger);
}

/* ==========================================================================
   タブレット以上
   ========================================================================== */

@media (min-width: 641px) {
    .orch-home-dashboard[b-3u2hd96k2e]  .orch-hero {
        padding: var(--orch-sp-6) var(--orch-sp-6);
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-title {
        font-size: var(--orch-fs-2xl);
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-hero-mark {
        width: 80px;
        height: 80px;
        font-size: 2.2rem;
    }

    .orch-home-dashboard[b-3u2hd96k2e]  .orch-upcoming-item {
        padding: var(--orch-sp-3) var(--orch-sp-4);
    }
}
/* .orch-feature-grid の breakpoint media query は intrinsic responsive
   grid (auto-fill + minmax) に統一したため削除 (2026-05-22) */
/* /Components/Pages/Profile.razor.rz.scp.css */
/* 解除ボタン（ゴースト化）はホバー可能デバイスでのみ下線を出し、
   タッチ端末での誤発火（hover 誤検出）を避ける。 */
@media (hover: hover) {
    [data-test^="profile-login-unlink-"]:not(:disabled):hover[b-09lig537of] {
        text-decoration: underline !important;
    }
}
/* /Components/Shared/AttendanceListModal.razor.rz.scp.css */
.attendance-modal-filter[b-ybojx7krvr] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--orch-surface, #fff);
    border-bottom: 1px solid var(--orch-border, #dee2e6);
}
/* /Components/Shared/AttendanceMemberChip.razor.rz.scp.css */
/* 出欠一覧チップ (calendar-ui.md §13.3) */
.attendance-chip[b-unbrm7byrz] {
    min-height: 44px; /* iOS HIG / WCAG 2.5.8: 38px → 44px (#59) */
}

/* チップ右下に表示する popover */
.attendance-popover[b-unbrm7byrz] {
    position: absolute;
    z-index: 1000;
    min-width: 220px;
}
/* /Components/Shared/GoogleCalendarEditPreviewPanel.razor.rz.scp.css */
.google-calendar-edit-preview-panel[b-vosnyni7di] {
    overflow-x: hidden;
}

.google-calendar-edit-preview__difference-grid[b-vosnyni7di] {
    display: grid;
    gap: var(--orch-sp-2);
    overflow-wrap: anywhere;
}

.google-calendar-edit-preview__difference-row[b-vosnyni7di],
.google-calendar-edit-preview__difference-header[b-vosnyni7di] {
    display: grid;
    grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr) minmax(0, 2fr);
    gap: var(--orch-sp-2);
}

.google-calendar-edit-preview__difference-row > [role="cell"][b-vosnyni7di],
.google-calendar-edit-preview__difference-header > [role="columnheader"][b-vosnyni7di] {
    min-width: 0;
    padding: var(--orch-sp-3);
    border-bottom: 1px solid var(--orch-border);
}

.google-calendar-edit-preview__difference-row--changed > [role="cell"][b-vosnyni7di] {
    background: var(--orch-info-soft);
}

.google-calendar-edit-preview__description-value[b-vosnyni7di] {
    display: block;
    max-height: 12rem;
    overflow-y: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.google-calendar-edit-preview__description-value:focus-visible[b-vosnyni7di] {
    outline: 3px solid var(--orch-primary);
    outline-offset: 2px;
}

.google-calendar-edit-preview__value[b-vosnyni7di] {
    overflow-wrap: anywhere;
}

.google-calendar-edit-preview__touch-target[b-vosnyni7di] {
    min-width: var(--orch-touch-target-min);
    min-height: var(--orch-touch-target-min);
}

.google-calendar-edit-preview__radio-card[b-vosnyni7di],
.google-calendar-edit-preview__candidate-card[b-vosnyni7di] {
    display: flex;
    align-items: flex-start;
    gap: var(--orch-sp-2);
    padding: var(--orch-sp-2);
    border: 1px solid var(--orch-border);
    border-radius: var(--orch-radius-md);
    cursor: pointer;
}

.google-calendar-edit-preview__radio-card:has(input:checked)[b-vosnyni7di],
.google-calendar-edit-preview__candidate-card:has(input:checked)[b-vosnyni7di] {
    border-color: var(--orch-primary);
    background: var(--orch-primary-soft);
}

.google-calendar-edit-preview__candidate-content[b-vosnyni7di] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.google-calendar-edit-preview__actions[b-vosnyni7di] {
    border-top: 1px solid var(--orch-border);
    padding-top: var(--orch-sp-4);
}

@media (max-width: 575.98px) {
    .google-calendar-edit-preview__difference-grid[b-vosnyni7di] {
        grid-template-columns: minmax(0, 1fr);
    }

    .google-calendar-edit-preview__difference-row[b-vosnyni7di] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        border-bottom: 1px solid var(--orch-border);
    }

    .google-calendar-edit-preview__difference-row > [role="cell"][b-vosnyni7di],
    .google-calendar-edit-preview__difference-header > [role="columnheader"][b-vosnyni7di] {
        border-bottom: 0;
    }

    .google-calendar-edit-preview__difference-header[b-vosnyni7di] {
        display: none;
    }
}
.google-calendar-edit-preview__candidate-card:has(input:disabled)[b-vosnyni7di],
.google-calendar-edit-preview__radio-card:has(input:disabled)[b-vosnyni7di] {
    cursor: default;
    opacity: 0.65;
}

.google-calendar-edit-preview__candidate-card:focus-within[b-vosnyni7di],
.google-calendar-edit-preview__radio-card:focus-within[b-vosnyni7di] {
    outline: 3px solid var(--orch-primary);
    outline-offset: 2px;
}

.google-calendar-edit-preview__mobile-column-label[b-vosnyni7di] {
    display: none;
}

@media (max-width: 575.98px) {
    .google-calendar-edit-preview__mobile-column-label[b-vosnyni7di] {
        display: block;
        color: var(--orch-text-muted);
        font-weight: 600;
    }
}
