/* /Components/Layout/LoginLayout.razor.rz.scp.css */
/* ログイン系ページ共通の背景（ログイン/初回PW設定） */
.login-layout[b-dfhixnx7c0] {
    min-height: 100vh;
    min-height: 100dvh;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
    background: linear-gradient(135deg, #4e73df, #36b9cc, #1cc88a);
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-kr2ytkuzrc] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-kr2ytkuzrc] {
    flex: 1;
    min-width: 0;
}

.sidebar[b-kr2ytkuzrc] {
    background: linear-gradient(
        180deg,
        #124D97 0%,
        #0B2F63 100%
    );
    background-repeat: no-repeat;
    background-size: cover;
}

.top-row[b-kr2ytkuzrc] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-start;
    height: 3.5rem;
    display: flex;
    align-items: center;
    position: relative;
}

.top-row__left[b-kr2ytkuzrc] {
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
    gap: 0.75rem;
}

.top-row__left > .btn[b-kr2ytkuzrc] {
    flex: 0 0 auto;
}

.top-row__page-title[b-kr2ytkuzrc] {
    min-width: 0;
    overflow: hidden;
    color: #0f172a;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.top-row__right[b-kr2ytkuzrc] {
    flex: 0 0 auto;
}

    .top-row[b-kr2ytkuzrc]  a, .top-row[b-kr2ytkuzrc]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-kr2ytkuzrc]  a:hover, .top-row[b-kr2ytkuzrc]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-kr2ytkuzrc]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

.user-context[b-kr2ytkuzrc] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    max-width: 11rem;
    line-height: 1.05;
}

.user-context__tenant[b-kr2ytkuzrc],
.user-context__account[b-kr2ytkuzrc] {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-context__tenant[b-kr2ytkuzrc] {
    color: #64748b;
    font-size: 0.76rem;
    font-weight: 600;
}

.user-context__account[b-kr2ytkuzrc] {
    color: #0f172a;
    font-size: 0.94rem;
    font-weight: 700;
}

@media (max-width: 640.98px) {
    .top-row[b-kr2ytkuzrc] {
        justify-content: space-between;
    }

        .top-row[b-kr2ytkuzrc]  a, .top-row[b-kr2ytkuzrc]  .btn-link {
            margin-left: 0;
        }

    .user-context[b-kr2ytkuzrc] {
        max-width: 8.5rem;
    }
}

@media (min-width: 641px) {
    .page[b-kr2ytkuzrc] {
        flex-direction: row;
    }

    .sidebar[b-kr2ytkuzrc] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-kr2ytkuzrc] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-kr2ytkuzrc]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-kr2ytkuzrc], article[b-kr2ytkuzrc] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }

    article.content--home[b-kr2ytkuzrc] {
        padding: clamp(0.4rem, 0.55vw, 0.75rem) clamp(0.75rem, 0.9vw, 1rem) 0.75rem !important;
    }

    /* ホームは上部ヘッダーを除いた表示領域内で完結させる。 */
    main.main--home[b-kr2ytkuzrc] {
        height: 100vh;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    main.main--home .top-row[b-kr2ytkuzrc] {
        flex: 0 0 3.5rem;
    }

    main.main--home > article.content--home[b-kr2ytkuzrc] {
        flex: 1 1 auto;
        min-height: 0;
        overflow: hidden;
    }
}

@media (max-width: 1400px) and (max-height: 760px) {
    article.content--masters[b-kr2ytkuzrc] {
        padding-top: 0.65rem !important;
    }
}

.announcement-bell[b-kr2ytkuzrc] {
    position: relative;
}

.announcement-bell__button[b-kr2ytkuzrc] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid #cfd6df;
    border-radius: 999px;
    background: #fff;
    color: #334155;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.announcement-bell__button:hover[b-kr2ytkuzrc] {
    background: #f8fafc;
    border-color: #94a3b8;
    color: #0f172a;
}

.announcement-bell__button:focus-visible[b-kr2ytkuzrc] {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.announcement-bell__button .bi[b-kr2ytkuzrc] {
    font-size: 1.1rem;
}

.announcement-bell__badge[b-kr2ytkuzrc] {
    position: absolute;
    top: -0.2rem;
    right: -0.2rem;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.35rem;
    text-align: center;
    box-shadow: 0 0 0 2px #f7f7f7;
}

.announcement-bell__popover[b-kr2ytkuzrc] {
    position: absolute;
    top: calc(100% + 0.7rem);
    right: 0;
    width: min(26rem, calc(100vw - 2rem));
    border: 1px solid #d5dbe3;
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.18);
    overflow: hidden;
}

.announcement-bell__popover[b-kr2ytkuzrc]::before {
    content: "";
    position: absolute;
    top: -0.45rem;
    right: 1rem;
    width: 0.9rem;
    height: 0.9rem;
    border-top: 1px solid #d5dbe3;
    border-left: 1px solid #d5dbe3;
    background: #fff;
    transform: rotate(45deg);
}

.announcement-bell__popover-header[b-kr2ytkuzrc] {
    padding: 0.85rem 1rem 0.45rem;
    color: #0f172a;
    font-size: 1rem;
    font-weight: 700;
}

.announcement-bell__list[b-kr2ytkuzrc] {
    max-height: 24rem;
    overflow-y: auto;
}

.announcement-bell__item[b-kr2ytkuzrc] {
    padding: 0.85rem 1rem;
    border-top: 1px solid #e5e7eb;
}

.announcement-bell__item--button[b-kr2ytkuzrc] {
    display: block;
    width: 100%;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    background: #fff;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.announcement-bell__item--button:hover[b-kr2ytkuzrc] {
    background: #f8fafc;
}

.announcement-bell__item--unread[b-kr2ytkuzrc] {
    box-shadow: inset 3px 0 0 #2563eb;
}

.announcement-bell__item--read[b-kr2ytkuzrc] {
    color: #64748b;
}

.announcement-bell__meta[b-kr2ytkuzrc] {
    margin-bottom: 0.5rem;
}

.announcement-bell__type[b-kr2ytkuzrc] {
    display: inline-block;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
}

.announcement-bell__type--information[b-kr2ytkuzrc] {
    background: #3568d4;
}

.announcement-bell__type--warning[b-kr2ytkuzrc] {
    background: #f08a24;
}

.announcement-bell__type--important[b-kr2ytkuzrc] {
    background: #cc1f1a;
}

.announcement-bell__type--maintenance[b-kr2ytkuzrc] {
    background: #7c3aed;
}

.announcement-bell__type--incident[b-kr2ytkuzrc] {
    background: #8b0000;
}

.announcement-bell__type--approval-request[b-kr2ytkuzrc] {
    background: #2563eb;
}

.announcement-bell__type--approval-completed[b-kr2ytkuzrc] {
    background: #198754;
}

.announcement-bell__type--approval-returned[b-kr2ytkuzrc] {
    background: #dc3545;
}

.announcement-bell__title[b-kr2ytkuzrc] {
    color: #0f172a;
    font-size: 0.95rem;
    font-weight: 700;
}

.announcement-bell__title--single[b-kr2ytkuzrc] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.announcement-bell__message[b-kr2ytkuzrc] {
    margin-top: 0.45rem;
    color: #475569;
    font-size: 0.85rem;
    line-height: 1.55;
    white-space: pre-wrap;
    word-break: break-word;
}

.announcement-bell__empty[b-kr2ytkuzrc] {
    padding: 1rem;
    border-top: 1px solid #e5e7eb;
    color: #64748b;
    font-size: 0.9rem;
}

.announcement-bell__footer[b-kr2ytkuzrc] {
    width: 100%;
    padding: 0.9rem 1rem;
    border: none;
    border-top: 1px solid #e5e7eb;
    background: #f8fafc;
    color: #2563eb;
    font-size: 0.92rem;
    font-weight: 700;
    text-align: center;
}

.announcement-bell__footer:hover[b-kr2ytkuzrc] {
    background: #eff6ff;
}

@media (max-width: 640.98px) {
    .announcement-bell__popover[b-kr2ytkuzrc] {
        right: -3.25rem;
    }
}

#blazor-error-ui[b-kr2ytkuzrc] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    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-kr2ytkuzrc] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-cgtlqdfyhr] {
    appearance: none;
    cursor: pointer;
    width: 3.5rem;
    height: 2.5rem;
    color: white;
    position: absolute;
    top: 0.5rem;
    right: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.8%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.75rem rgba(255, 255, 255, 0.08);
}

.navbar-toggler:checked[b-cgtlqdfyhr] {
    background-color: rgba(255, 255, 255, 0.16);
}

/*���S*/
.top-row[b-cgtlqdfyhr] {
    height: 4.25rem;
    background: transparent;
}

    .top-row .container-fluid[b-cgtlqdfyhr] {
        display: flex;
        align-items: center;
        min-height: 4.25rem;
        padding: 0.9rem 0.5rem 0.8rem;
    }

.navbar-brand[b-cgtlqdfyhr] {
    display: inline-flex;
    align-items: center;
    width: 100%;
    margin: 0;
    padding: 0;
    line-height: 0;
}

.nav-brand-logo[b-cgtlqdfyhr] {
    display: block;
    max-width: 100%;
    max-height: 2rem;
    width: auto;
    height: auto;
    object-fit: contain;
}

.bi[b-cgtlqdfyhr] {
    display: inline-block;
    position: relative;
    flex: 0 0 1.25rem;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0;
    top: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E");
}

.bi-calendar2-month-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-calendar2-month-fill' viewBox='0 0 16 16'%3E%3Cpath d='M4 .5a.5.5 0 0 0-1 0V1H2a1 1 0 0 0-1 1v2h14V2a1 1 0 0 0-1-1h-1V.5a.5.5 0 0 0-1 0V1H4V.5z'/%3E%3Cpath d='M15 5H1v9a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V5zM3 7h2v2H3V7zm3 0h2v2H6V7zm3 0h2v2H9V7zm3 0h2v2h-2V7zM3 10h2v2H3v-2zm3 0h2v2H6v-2zm3 0h2v2H9v-2z'/%3E%3C/svg%3E");
}

.bi-grid-1x2-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-grid-1x2-fill' viewBox='0 0 16 16'%3E%3Cpath d='M1 2a1 1 0 0 1 1-1h5a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2zm9 0a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1V2zm0 9a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-3a1 1 0 0 1-1-1v-3z'/%3E%3C/svg%3E");
}

.bi-rocket-fill-nav-menu[b-cgtlqdfyhr] {
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-rocket-fill' viewBox='0 0 16 16'%3E%3Cpath d='M10.175 1.991c.81 1.312 1.583 3.43 1.778 6.819l1.5 1.83A2.5 2.5 0 0 1 14 12.202V15.5a.5.5 0 0 1-.9.3l-1.125-1.5c-.166-.222-.42-.4-.752-.57-.214-.108-.414-.192-.627-.282l-.196-.083C9.7 13.793 8.85 14 8 14s-1.7-.207-2.4-.635q-.101.044-.198.084c-.211.089-.411.173-.625.281-.332.17-.586.348-.752.57L2.9 15.8a.5.5 0 0 1-.9-.3v-3.298a2.5 2.5 0 0 1 .548-1.562l.004-.005L4.049 8.81c.197-3.323.969-5.434 1.774-6.756.466-.767.94-1.262 1.31-1.57a3.7 3.7 0 0 1 .601-.41A.55.55 0 0 1 8 0c.101 0 .17.027.25.064q.056.025.145.075c.118.066.277.167.463.315.373.297.85.779 1.317 1.537M9.5 6c0-1.105-.672-2-1.5-2s-1.5.895-1.5 2S7.172 8 8 8s1.5-.895 1.5-2'/%3E%3Cpath d='M8 14.5c.5 0 .999-.046 1.479-.139L8.4 15.8a.5.5 0 0 1-.8 0l-1.079-1.439c.48.093.98.139 1.479.139'/%3E%3C/svg%3E");
}

.bi-shield-lock-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M8 0c-.69 0-1.843.265-3.337.862C3.17 1.459 1.66 2.25.876 2.682A1.75 1.75 0 0 0 0 4.214c0 3.03 1.73 5.979 3.758 8.033C5.09 13.6 6.55 14.632 7.33 15.13a1.25 1.25 0 0 0 1.34 0c.78-.498 2.24-1.53 3.572-2.883C14.27 10.193 16 7.244 16 4.214a1.75 1.75 0 0 0-.876-1.532C14.34 2.25 12.83 1.46 11.337.862 9.843.265 8.69 0 8 0m1.28 8.78V7.5a1.28 1.28 0 1 0-2.56 0v1.28a1.28 1.28 0 0 0-1 1.25v1.94A1.03 1.03 0 0 0 6.75 13h2.5a1.03 1.03 0 0 0 1.03-1.03v-1.94a1.28 1.28 0 0 0-1-1.25m-1.78 0V7.5a.5.5 0 1 1 1 0v1.28z'/%3E%3C/svg%3E");
}

.bi-gear-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M9.405 1.05c-.413-1.4-2.397-1.4-2.81 0l-.1.34a1.46 1.46 0 0 1-2.105.872l-.31-.17c-1.283-.702-2.686.701-1.983 1.984l.17.31a1.46 1.46 0 0 1-.872 2.105l-.34.1c-1.4.413-1.4 2.397 0 2.81l.34.1a1.46 1.46 0 0 1 .872 2.105l-.17.31c-.703 1.283.7 2.686 1.983 1.983l.31-.17a1.46 1.46 0 0 1 2.105.872l.1.34c.413 1.4 2.397 1.4 2.81 0l.1-.34a1.46 1.46 0 0 1 2.105-.872l.31.17c1.283.703 2.686-.7 1.983-1.983l-.17-.31a1.46 1.46 0 0 1 .872-2.105l.34-.1c1.4-.413 1.4-2.397 0-2.81l-.34-.1a1.46 1.46 0 0 1-.872-2.105l.17-.31c.703-1.283-.7-2.686-1.983-1.984l-.31.17a1.46 1.46 0 0 1-2.105-.872zM8 10.93a2.93 2.93 0 1 1 0-5.86 2.93 2.93 0 0 1 0 5.86'/%3E%3C/svg%3E");
}

.bi-people-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' viewBox='0 0 16 16'%3E%3Cpath d='M13 7c0 1.105-.895 2-2 2s-2-.895-2-2 .895-2 2-2 2 .895 2 2M5 8c1.105 0 2-.895 2-2S6.105 4 5 4 3 4.895 3 6s.895 2 2 2m8 1c-1.33 0-4 .67-4 2v1h7v-1c0-1.33-2.67-2-4-2m-8 0c-1.33 0-4 .67-4 2v1h7v-1c0-1.33-2.67-2-4-2'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E");
}

.bi-list-nested-nav-menu[b-cgtlqdfyhr] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.nav-item[b-cgtlqdfyhr] {
    font-size: 0.9rem;
    padding-bottom: 0.45rem;
}

.nav-item:first-of-type[b-cgtlqdfyhr] {
    padding-top: 0.5rem;
}

.nav-item:last-of-type[b-cgtlqdfyhr] {
    padding-bottom: 0.85rem;
}

.nav-scrollable > nav[b-cgtlqdfyhr] {
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.nav-admin-link[b-cgtlqdfyhr] {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.nav-item[b-cgtlqdfyhr]  .nav-link {
    color: #fff;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 0.75rem;
    min-height: 3rem;
    padding: 0.75rem 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    line-height: 1.4;
    width: calc(100% - 0.4rem);
    overflow: hidden;
    margin: 0 0.2rem;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.nav-item[b-cgtlqdfyhr]  a.active {
    background-color: #2F7BEA;
    color: #fff;
}

.nav-item[b-cgtlqdfyhr]  .nav-link:not(.active):hover {
    background-color: rgba(130, 183, 255, 0.18);
    color: #fff;
}

.nav-item[b-cgtlqdfyhr]  .nav-link:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.8);
    outline-offset: 2px;
}

.nav-item[b-cgtlqdfyhr]  .nav-link .nav-text {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nav-item[b-cgtlqdfyhr]  .nav-menu-group__button {
    cursor: pointer;
    justify-content: flex-start;
}

.nav-item[b-cgtlqdfyhr]  .nav-menu-group__button .nav-text {
    flex: 0 1 auto;
}

.nav-item[b-cgtlqdfyhr]  .nav-menu-group__button .nav-menu-group__chevron {
    margin-left: auto;
}

.nav-menu-group__chevron[b-cgtlqdfyhr] {
    flex: 0 0 auto;
    width: 0.6rem;
    height: 0.6rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.15s ease;
    margin-right: 0.15rem;
}

.nav-menu-group__chevron.is-expanded[b-cgtlqdfyhr] {
    transform: rotate(225deg);
    margin-top: 0.25rem;
}

.nav-menu-group__children[b-cgtlqdfyhr] {
    padding-top: 0.35rem;
}

.nav-item[b-cgtlqdfyhr]  .nav-link--child {
    min-height: 2.5rem;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
    padding-left: 3rem;
}

.nav-link--child__spacer[b-cgtlqdfyhr] {
    flex: 0 0 1.25rem;
    width: 1.25rem;
}

.nav-scrollable[b-cgtlqdfyhr] {
    display: none;
    background: transparent;
}

.navbar-toggler:checked ~ .nav-scrollable[b-cgtlqdfyhr] {
    display: block;
}

@media (min-width: 641px) {
    .navbar-toggler[b-cgtlqdfyhr] {
        display: none;
    }

    .nav-scrollable[b-cgtlqdfyhr] {
        display: block;
        height: calc(100vh - 4.25rem);
        overflow-y: auto;
    }
}
/* /Components/Layout/SystemAdminLayout.razor.rz.scp.css */
.system-admin-shell[b-v03qofxe7i] {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(0, 163, 108, 0.18), transparent 32%),
        linear-gradient(180deg, #eef4f1 0%, #f8fbfa 100%);
}

.system-admin-header[b-v03qofxe7i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    background: #0f5132;
    color: #fff;
}

.system-admin-header__title[b-v03qofxe7i] {
    min-width: 0;
    overflow: hidden;
    font-size: 1.1rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.system-admin-header__left[b-v03qofxe7i] {
    flex: 1 1 auto;
    min-width: 0;
    margin-right: 1rem;
    overflow: hidden;
}

.system-admin-header > .btn[b-v03qofxe7i] {
    flex: 0 0 auto;
}

.system-admin-body[b-v03qofxe7i] {
    padding: 2rem 1.5rem 3rem;
}
/* /Components/Pages/Announcements/AnnouncementList.razor.rz.scp.css */
.announcement-page[b-pza5l9yskz] {
    padding: 24px 0 40px;
}

.announcement-page__header[b-pza5l9yskz] {
    margin-bottom: 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.announcement-page__title[b-pza5l9yskz] {
    margin: 0;
    color: #1f2937;
    font-size: 1.75rem;
    font-weight: 800;
}

.announcement-page__subtitle[b-pza5l9yskz] {
    margin: 6px 0 0;
    color: #6b7280;
}

.announcement-page__count[b-pza5l9yskz] {
    padding: 10px 14px;
    border-radius: 999px;
    background: #eef4ff;
    color: #0d5ed7;
    font-weight: 700;
}

.announcement-page__empty[b-pza5l9yskz] {
    padding: 32px 24px;
    border: 1px solid #dce3ec;
    border-radius: 16px;
    background: #fff;
    color: #6b7280;
    text-align: center;
}

.announcement-page__list[b-pza5l9yskz] {
    display: grid;
    gap: 16px;
}

.announcement-card[b-pza5l9yskz] {
    padding: 20px 22px;
    border: 1px solid #dce3ec;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.05);
}

.announcement-card--button[b-pza5l9yskz] {
    display: block;
    width: 100%;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.announcement-card--button:hover[b-pza5l9yskz] {
    background: #f8fafc;
}

.announcement-card--unread[b-pza5l9yskz] {
    box-shadow:
        inset 4px 0 0 #2563eb,
        0 12px 24px rgba(15, 23, 42, 0.05);
}

.announcement-card--read[b-pza5l9yskz] {
    color: #64748b;
}

.announcement-card__meta[b-pza5l9yskz] {
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.announcement-card__type[b-pza5l9yskz] {
    padding: 6px 12px;
    border-radius: 999px;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 800;
    line-height: 1;
}

.announcement-card__type--information[b-pza5l9yskz] {
    background: #3568d4;
}

.announcement-card__type--warning[b-pza5l9yskz] {
    background: #f08a24;
}

.announcement-card__type--important[b-pza5l9yskz] {
    background: #cc1f1a;
}

.announcement-card__type--maintenance[b-pza5l9yskz] {
    background: #7c3aed;
}

.announcement-card__type--incident[b-pza5l9yskz] {
    background: #8b0000;
}

.announcement-card__type--approval-request[b-pza5l9yskz] {
    background: #2563eb;
}

.announcement-card__type--approval-completed[b-pza5l9yskz] {
    background: #198754;
}

.announcement-card__type--approval-returned[b-pza5l9yskz] {
    background: #dc3545;
}

.announcement-card__date[b-pza5l9yskz] {
    color: #6b7280;
    font-size: 0.92rem;
    font-weight: 600;
}

.announcement-card__title[b-pza5l9yskz] {
    margin: 0;
    color: #1f2937;
    font-size: 1.15rem;
    font-weight: 800;
    line-height: 1.5;
}

.announcement-card__message[b-pza5l9yskz] {
    margin-top: 10px;
    color: #374151;
    line-height: 1.75;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 768px) {
    .announcement-page[b-pza5l9yskz] {
        padding: 16px 0 32px;
    }

    .announcement-card[b-pza5l9yskz] {
        padding: 18px 16px;
    }
}
/* /Components/Pages/Approvals/ApprovalList.razor.rz.scp.css */
.approval-list-page[b-zg5nmdqd58] {
    max-width: 100%;
}

.approval-list-page__header[b-zg5nmdqd58] {
    margin-bottom: 1rem;
}

.approval-list-tabs[b-zg5nmdqd58] {
    margin-bottom: 1rem;
}

.approval-action-panel[b-zg5nmdqd58],
.approval-resubmit-panel[b-zg5nmdqd58] {
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: #f8f9fa;
}

.approval-action-panel__title[b-zg5nmdqd58],
.approval-resubmit-panel__title[b-zg5nmdqd58] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-bottom: .5rem;
}

.approval-action-panel__actions[b-zg5nmdqd58],
.approval-resubmit-panel__actions[b-zg5nmdqd58] {
    display: flex;
    gap: .5rem;
    justify-content: flex-end;
    margin-top: .75rem;
}

.approval-list-toolbar[b-zg5nmdqd58] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .75rem;
}

.approval-list-toolbar__count[b-zg5nmdqd58] {
    color: #6c757d;
    font-size: .9rem;
}

.approval-list-empty[b-zg5nmdqd58] {
    padding: 2rem;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    color: #6c757d;
    background: #fff;
}

.approval-list-table-wrap[b-zg5nmdqd58] {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: #fff;
}

.approval-list-table[b-zg5nmdqd58] {
    min-width: 1120px;
    margin-bottom: 0;
    vertical-align: middle;
}

.approval-list-table--pending[b-zg5nmdqd58] {
    min-width: 1040px;
}

.approval-list-table--completed[b-zg5nmdqd58] {
    min-width: 1080px;
}

.approval-list-table__check[b-zg5nmdqd58] {
    width: 3rem;
    text-align: center;
}

.approval-list-table thead th[b-zg5nmdqd58] {
    white-space: nowrap;
    background: #f8f9fa;
}

.approval-list-table td[b-zg5nmdqd58],
.approval-list-table th[b-zg5nmdqd58] {
    padding: .65rem .75rem;
}

.approval-list-table__title[b-zg5nmdqd58] {
    min-width: 12rem;
    font-weight: 600;
}

.approval-list-table__comment[b-zg5nmdqd58] {
    min-width: 16rem;
    max-width: 28rem;
    white-space: normal;
}

.approval-list-row--approved[b-zg5nmdqd58] {
    color: #6c757d;
    background: #f1f3f5;
}

.approval-list-row--highlight[b-zg5nmdqd58] {
    background: #fff8db !important;
    box-shadow: inset 4px 0 0 #f0ad00;
}

.approval-status[b-zg5nmdqd58] {
    display: inline-flex;
    align-items: center;
    min-width: 4.5rem;
    justify-content: center;
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .85rem;
    font-weight: 600;
    white-space: nowrap;
}

.approval-status--progress[b-zg5nmdqd58] {
    color: #0f5132;
    background: #d1e7dd;
}

.approval-status--approved[b-zg5nmdqd58] {
    color: #495057;
    background: #e9ecef;
}

.approval-status--returned[b-zg5nmdqd58] {
    color: #842029;
    background: #f8d7da;
}

.approval-status--unknown[b-zg5nmdqd58] {
    color: #6c757d;
    background: #f8f9fa;
}

@media (max-width: 640.98px) {
    .approval-action-panel__actions[b-zg5nmdqd58],
    .approval-resubmit-panel__actions[b-zg5nmdqd58] {
        justify-content: stretch;
    }

    .approval-action-panel__actions .btn[b-zg5nmdqd58],
    .approval-resubmit-panel__actions .btn[b-zg5nmdqd58] {
        flex: 1 1 auto;
    }

    .approval-list-toolbar[b-zg5nmdqd58] {
        align-items: stretch;
        flex-direction: column;
    }
}
/* /Components/Pages/Auth/InitialPassword.razor.rz.scp.css */
/* 初回パスワード設定：ページ固有CSS（LoginLayoutの背景に乗せる前提） */

.initialpw[b-oj1vybcof0] {
    width: 100%;
}

.initialpw__container[b-oj1vybcof0] {
    width: 100%;
    padding: 3rem 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
}

.initialpw__card[b-oj1vybcof0] {
    width: 100%;
    max-width: 560px;
    padding: 2rem 2.5rem;
    border-radius: 16px;
    text-align: left;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(25px) saturate(180%);
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15), inset 0 0 30px rgba(255,255,255,0.15);
}

.initialpw__title[b-oj1vybcof0] {
    font-size: 1.2rem;
    font-weight: 700;
    text-align: center;
    margin: 0 0 0.75rem 0;
}

.initialpw__desc[b-oj1vybcof0] {
    text-align: center;
    margin: 0 0 1.25rem 0;
    color: #555;
}

.initialpw__submit[b-oj1vybcof0] {
    min-width: 120px;
    height: 40px;
    font-weight: 600;
}

@media (max-width: 640px) {
    .initialpw__container[b-oj1vybcof0] {
        padding: 1.5rem 1rem;
    }

    .initialpw__card[b-oj1vybcof0] {
        padding: 1.5rem;
        max-width: 100%;
    }

    .initialpw__actions[b-oj1vybcof0] {
        justify-content: stretch !important;
    }

    .initialpw__submit[b-oj1vybcof0] {
        width: 100%;
    }
}
/* /Components/Pages/Auth/Login.razor.rz.scp.css */
.login-container[b-63yh2f5eny] {
    width: 100%;
    min-height: 100vh;
    padding: clamp(1.5rem, 3vw, 2.75rem) 1rem;
    display: flex;
    justify-content: center;
    align-items: center;
    background: linear-gradient(135deg, #4A8FF7 0%, #72C9F4 56%, #EAF9FF 100%);
    box-sizing: border-box;
}

.login-card[b-63yh2f5eny] {
    width: min(480px, 100%);
    min-height: 610px;
    padding: 2.75rem 2.5rem 2.5rem;
    text-align: center;
    background: #fff;
    border-radius: 22px;
    box-shadow: 0 18px 40px rgba(30, 64, 175, 0.16), 0 2px 10px rgba(15, 23, 42, 0.08);
}

.login-debug-link-row[b-63yh2f5eny] {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 1.75rem;
}

.login-debug-link[b-63yh2f5eny] {
    color: #2563eb;
    font-size: 0.9rem;
    font-weight: 600;
    text-decoration: none;
}

.login-debug-link:hover[b-63yh2f5eny] {
    color: #1d4ed8;
    text-decoration: underline;
}

.login-logo[b-63yh2f5eny] {
    display: block;
    width: min(250px, 72%);
    max-width: 100%;
    margin: 0 auto 2rem;
}

.login-icon[b-63yh2f5eny] {
    flex: 0 0 auto;
    font-size: 1.15rem;
    color: #2563eb;
}

.login-input-row[b-63yh2f5eny] {
    width: 100%;
    max-width: none;
    margin: 0 0 1rem;
    gap: 0.75rem;
}

.login-input-row .form-control[b-63yh2f5eny] {
    height: 48px;
    border-radius: 11px;
    border: 1px solid #d7dee9;
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

.login-input-row .form-control:focus[b-63yh2f5eny] {
    border-color: #6aa8f6;
    box-shadow: var(--learnia-primary-focus-ring);
}

.login-input-row .input-group[b-63yh2f5eny] {
    flex: 1 1 auto;
}

.login-input-row .input-group .form-control[b-63yh2f5eny] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.password-toggle-btn[b-63yh2f5eny] {
    height: 48px;
    padding: 0 0.9rem;
    color: #64748b;
    background: #fff;
    border: 1px solid #d7dee9;
    border-left: 0;
    border-top-right-radius: 11px;
    border-bottom-right-radius: 11px;
}

.password-toggle-btn:hover[b-63yh2f5eny] {
    color: #334155;
    background: #f8fbff;
}

.form-check[b-63yh2f5eny] {
    padding-left: 0;
    margin: 0.25rem 0 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.login-input-row.form-check[b-63yh2f5eny] {
    padding-left: 1.7rem;
}

.login-button[b-63yh2f5eny] {
    width: 100%;
    max-width: none;
    height: 50px;
    margin: 1.4rem 0 0;
    font-weight: 700;
    border: 0;
    border-radius: 12px;
}

.modal-overlay[b-63yh2f5eny] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    z-index: 1000;
}

.modal-card[b-63yh2f5eny] {
    width: min(520px, 100%);
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
}

.modal-title[b-63yh2f5eny] {
    font-size: 1.25rem;
    margin: 0 0 8px 0;
}

.modal-desc[b-63yh2f5eny] {
    margin: 0 0 16px 0;
    color: #555;
}

@media (max-width: 640px) {
    .login-container[b-63yh2f5eny] {
        padding: 1rem;
    }

    .login-card[b-63yh2f5eny] {
        min-height: auto;
        padding: 2rem 1.5rem 1.75rem;
        border-radius: 18px;
    }

    .login-debug-link-row[b-63yh2f5eny] {
        margin-bottom: 1.25rem;
    }

    .login-logo[b-63yh2f5eny] {
        width: min(220px, 78%);
        margin-bottom: 1.5rem;
    }

    .login-input-row .form-control[b-63yh2f5eny],
    .password-toggle-btn[b-63yh2f5eny],
    .login-button[b-63yh2f5eny] {
        height: 46px;
    }
}

@media (max-height: 720px) {
    .login-container[b-63yh2f5eny] {
        padding: 0.75rem 1rem;
    }

    .login-card[b-63yh2f5eny] {
        min-height: auto;
        padding: 1.35rem 1.85rem 1.2rem;
        border-radius: 20px;
    }

    .login-debug-link-row[b-63yh2f5eny] {
        margin-bottom: 1rem;
    }

    .login-logo[b-63yh2f5eny] {
        width: min(210px, 70%);
        margin-bottom: 1.1rem;
    }

    .login-icon[b-63yh2f5eny] {
        font-size: 1.05rem;
    }

    .login-input-row[b-63yh2f5eny] {
        margin-bottom: 0.8rem;
        gap: 0.6rem;
    }

    .login-input-row .form-control[b-63yh2f5eny],
    .password-toggle-btn[b-63yh2f5eny] {
        height: 44px;
    }

    .password-toggle-btn[b-63yh2f5eny] {
        padding: 0 0.8rem;
    }

    .form-check[b-63yh2f5eny] {
        margin-top: 0.1rem;
    }

    .login-input-row.form-check[b-63yh2f5eny] {
        padding-left: 1.6rem;
    }

    .login-button[b-63yh2f5eny] {
        height: 46px;
        margin-top: 1rem;
    }
}
/* /Components/Pages/Error.razor.rz.scp.css */
.common-error-page[b-jkdleckxi2] {
    width: min(100% - 2rem, 42rem);
    margin: 0 auto;
}

.common-error-panel[b-jkdleckxi2] {
    width: 100%;
    padding: 2rem;
    border: 1px solid #d8e0ea;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, 0.18);
    color: #162033;
}

.common-error-icon[b-jkdleckxi2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: #fff4d6;
    color: #b45309;
    font-size: 1.45rem;
}

.common-error-panel h1[b-jkdleckxi2] {
    margin: 0;
    color: #111827;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1.35;
}

.common-error-message[b-jkdleckxi2] {
    margin: 1rem 0 1.4rem;
    color: #374151;
    font-size: 1rem;
    line-height: 1.75;
}

.common-error-details[b-jkdleckxi2] {
    display: grid;
    gap: 0.75rem;
    margin: 0 0 1.6rem;
    padding: 1rem;
    border: 1px solid #e3e8ef;
    border-radius: 8px;
    background: #f8fafc;
}

.common-error-details div[b-jkdleckxi2] {
    display: grid;
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: baseline;
}

.common-error-details dt[b-jkdleckxi2] {
    color: #526071;
    font-weight: 700;
}

.common-error-details dd[b-jkdleckxi2] {
    margin: 0;
    color: #111827;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.common-error-actions[b-jkdleckxi2] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.common-error-actions .btn[b-jkdleckxi2] {
    display: inline-flex;
    gap: 0.45rem;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    border-radius: 8px;
    font-weight: 700;
}

@media (max-width: 540px) {
    .common-error-panel[b-jkdleckxi2] {
        padding: 1.4rem;
    }

    .common-error-panel h1[b-jkdleckxi2] {
        font-size: 1.3rem;
    }

    .common-error-details div[b-jkdleckxi2] {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .common-error-actions .btn[b-jkdleckxi2] {
        width: 100%;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ===== 全体 ===== */
html[b-61xo6cc0zw], body[b-61xo6cc0zw] {
    height: 100%;
    margin: 0;
    overflow: hidden;
}

*[b-61xo6cc0zw] {
    box-sizing: border-box;
}

/* Blazorのメイン領域 */
.main[b-61xo6cc0zw] {
    height: 100vh;
    display: flex;
}

/* 本体 */
.report-page[b-61xo6cc0zw] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* ===== ヘッダー ===== */
.report-header[b-61xo6cc0zw] {
    background: #e5e5e5;
    padding: 8px 0;
    border: 1px solid #ccc;
    flex-shrink: 0;
}

.header-inner[b-61xo6cc0zw] {
    width: 100%;
    padding: 0 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

/* ===== ボタン類 ===== */
.nav-btn[b-61xo6cc0zw] {
    height: 32px;
    padding: 0 12px;
    border-radius: 6px;
    border: 1px solid #999;
    background: #fff;
    font-weight: 500;
    cursor: pointer;
}

    .nav-btn:hover[b-61xo6cc0zw] {
        background: #2b8a9a;
        color: white;
        border-color: #2b8a9a;
    }

.date-range[b-61xo6cc0zw] {
    height: 32px;
    display: flex;
    align-items: center;
    font-weight: bold;
    min-width: 220px;
    justify-content: center;
}

.class-select[b-61xo6cc0zw] {
    height: 32px;
    padding: 0 8px;
    border-radius: 6px;
    border: 1px solid #999;
}

/* ===== 担任 / 専科トグル ===== */
.segmented[b-61xo6cc0zw] {
    display: flex;
    align-items: center;
    background: #2b8a9a;
    border-radius: 999px;
    padding: 2px;
}

.seg-btn[b-61xo6cc0zw] {
    height: 28px;
    padding: 0 14px;
    border: none;
    background: transparent;
    color: #fff;
    border-radius: 999px;
    cursor: pointer;
}

    .seg-btn.active[b-61xo6cc0zw] {
        background: #fff;
        color: #2b8a9a;
        font-weight: bold;
    }

/* ===== レイアウト ===== */
.report-body[b-61xo6cc0zw] {
    flex: 1;
    display: flex;
    overflow: hidden;
    min-height: 0;
}

/* ===== 左：時間割 ===== */
.timetable-area[b-61xo6cc0zw] {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
    min-width: 0;
}

/* ===== 行 ===== */
.tt-row[b-61xo6cc0zw] {
    display: grid;
    grid-template-columns: 42px repeat(var(--day-count, 5), minmax(0, 1fr));
    width: 100%;
    min-height: 0;
    flex-shrink: 0;
}

/* ===== Final UI sync overrides ===== */
.report-header[b-61xo6cc0zw] {
    background: transparent;
    border: none;
    padding: clamp(0.35rem, 0.5vw, 0.5rem) clamp(0.5rem, 0.6vw, 0.75rem) 0;
}

.header-inner[b-61xo6cc0zw] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: clamp(0.7rem, 0.8vw, 0.95rem) clamp(0.8rem, 0.9vw, 1rem);
    display: flex;
    align-items: center;
    gap: clamp(0.5rem, 0.6vw, 0.75rem) clamp(0.75rem, 0.9vw, 1rem);
    flex-wrap: wrap;
    border: 1px solid #dce3ec;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

.nav-btn[b-61xo6cc0zw],
.class-select[b-61xo6cc0zw] {
    height: 2.55rem;
    border: 1px solid #cfd8e3;
    border-radius: 0.4rem;
    background: #fff;
    color: #1f2937;
    font-size: 0.9rem;
    font-weight: 700;
}

.nav-btn[b-61xo6cc0zw] {
    padding: 0 0.95rem;
}

    .nav-btn:hover:not(:disabled)[b-61xo6cc0zw] {
        background: #eef5ff;
        color: #0d5ed7;
        border-color: #b9cdf6;
    }

    .nav-btn:disabled[b-61xo6cc0zw] {
        opacity: 0.55;
        cursor: not-allowed;
    }

.date-range[b-61xo6cc0zw] {
    min-width: 13rem;
    padding: 0 0.25rem;
    color: #1f2937;
    font-size: 0.95rem;
    font-weight: 800;
}

.class-select[b-61xo6cc0zw] {
    padding: 0 0.75rem;
}

.segmented[b-61xo6cc0zw] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid #cfd8e3;
    border-radius: 999px;
    background: #fff;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.05);
}

.seg-btn[b-61xo6cc0zw] {
    height: 2.1rem;
    min-width: 4.8rem;
    padding: 0 1rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #fff;
    color: #1f2937;
    font-weight: 800;
}

    .seg-btn:hover:not(.active)[b-61xo6cc0zw] {
        background: #f3f7fd;
    }

    .seg-btn.active[b-61xo6cc0zw] {
        background: #0d5ed7;
        color: #fff;
        border-color: #0d5ed7;
        box-shadow: 0 1px 3px rgba(13, 94, 215, 0.22);
    }

.report-body[b-61xo6cc0zw] {
    gap: 12px;
    padding: 12px 16px 16px;
}

.cell[b-61xo6cc0zw] {
    border-color: #dbe3ee;
}

.header .cell[b-61xo6cc0zw],
.event-row .cell[b-61xo6cc0zw],
.morning-row .cell[b-61xo6cc0zw],
.subject[b-61xo6cc0zw],
.subject-select[b-61xo6cc0zw],
.weekend-placeholder[b-61xo6cc0zw] {
    font-size: 13px;
    line-height: 1.2;
}

.header .cell[b-61xo6cc0zw] {
    background: #0051d8;
    color: #fff;
    font-weight: 900;
}

.pattern[b-61xo6cc0zw] {
    background: #0051d8;
    color: #fff;
}

.saturday-header[b-61xo6cc0zw] {
    background: linear-gradient(180deg, #1d9bf0, #0b87d1) !important;
    color: #fff !important;
}

.sunday-header[b-61xo6cc0zw] {
    background: linear-gradient(180deg, #ff4f87, #e91e63) !important;
    color: #fff !important;
}

.saturday-cell[b-61xo6cc0zw] {
    background: #eef8ff !important;
}

.sunday-cell[b-61xo6cc0zw] {
    background: #fff0f5 !important;
}

.tt-row:not(.header):not(.event-row):not(.morning-row)[b-61xo6cc0zw] {
    height: 100px;
    min-height: 100px;
    max-height: 100px;
    flex: 0 0 100px;
    overflow: hidden;
}

.event-row[b-61xo6cc0zw],
.morning-row[b-61xo6cc0zw] {
    height: 42px;
    min-height: 42px;
    max-height: 42px;
    flex-shrink: 0;
}

    .event-row .cell[b-61xo6cc0zw],
    .morning-row .cell[b-61xo6cc0zw] {
        height: 42px;
        min-height: 42px;
        max-height: 42px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 13px;
        text-align: center;
    }

.period[b-61xo6cc0zw] {
    background: #0f6b86;
    color: #fff;
    font-weight: 900;
    font-size: 13px;
}

.subject[b-61xo6cc0zw] {
    color: #1f2937;
    font-weight: 700;
    overflow: hidden;
}

.subject-select[b-61xo6cc0zw] {
    font-weight: 700;
    color: #111;
    white-space: nowrap;
}

.weekend-placeholder[b-61xo6cc0zw] {
    color: #6b7280;
    font-weight: 800;
}

.panel-box[b-61xo6cc0zw] {
    border: 1px solid #dce3ec;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.panel-title[b-61xo6cc0zw] {
    padding: 0.85rem 1rem;
    background: #f8fafc;
    color: #1f2937;
    font-size: 0.95rem;
    font-weight: 900;
    border-bottom: 1px solid #e5eaf1;
}

.panel-body[b-61xo6cc0zw] {
    padding: 0.9rem 1rem 1rem;
    font-size: 0.9rem;
    color: #1f2937;
}

.hours-table[b-61xo6cc0zw] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.85rem;
}

    .hours-table th[b-61xo6cc0zw],
    .hours-table td[b-61xo6cc0zw] {
        border: 1px solid #dbe3ee;
        padding: 0.45rem 0.4rem;
        text-align: center;
        vertical-align: middle;
    }

    .hours-table thead th[b-61xo6cc0zw] {
        background: #0051d8;
        color: #fff;
        font-weight: 900;
    }

    .hours-table tbody td[b-61xo6cc0zw] {
        background: #fff;
        font-weight: 700;
    }

.progress-cell[b-61xo6cc0zw] {
    font-variant-numeric: tabular-nums;
}

.hours-table td.plus[b-61xo6cc0zw],
.plus[b-61xo6cc0zw] {
    color: #0051d8;
    font-weight: 900;
    background-color: #eaf2ff;
}

.hours-table td.minus[b-61xo6cc0zw],
.minus[b-61xo6cc0zw] {
    color: #dc2626;
    font-weight: 900;
    background-color: #fbe4e6;
}

.category-cell[b-61xo6cc0zw] {
    width: 42px;
    padding: 0;
    background: #f8fafc;
    color: #1f2937;
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 2px;
}

.hours-note[b-61xo6cc0zw] {
    margin-top: 0.7rem;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 700;
}

/* 朝活ヘッダー */
.report-page .report-body .timetable-area .morning-row .label[b-61xo6cc0zw] {
    background: #376DD8 !important;
    color: #fff !important;
}

/* 行事ヘッダー */
.event-row .label[b-61xo6cc0zw] {
    background: #C5D4F0 !important;
    color: #2563eb !important;
}

/* 行事セルはパターン振り分け画面の休校日・祝日・学校行事に合わせる */
.event[b-61xo6cc0zw] {
    background: #f7f6f1 !important;
    color: #000 !important;
}

.event-cell-text[b-61xo6cc0zw] {
    color: #000 !important;
}

/* ===== 上3行固定 ===== */
.header[b-61xo6cc0zw] {
    height: 40px;
    flex-shrink: 0;
}

.event-row[b-61xo6cc0zw] {
    height: 45px;
    flex-shrink: 0;
}

.morning-row[b-61xo6cc0zw] {
    height: 45px;
    flex-shrink: 0;
}

/* ===== 授業行（残りを均等割り） ===== */
.tt-row:not(.header):not(.event-row):not(.morning-row)[b-61xo6cc0zw] {
    height: 100px;
    min-height: 100px;
    max-height: 100px;
    flex: 0 0 100px;
    overflow: hidden;
}

/* ===== 共通セル ===== */
.cell[b-61xo6cc0zw] {
    border: 1px solid #ddd;
    padding: 4px;
    min-width: 0;
}

/* ===== ヘッダー ===== */
.header .cell[b-61xo6cc0zw] {
    background: #0051d8;
    color: white;
    font-weight: bold;
    font-size: 13px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pattern[b-61xo6cc0zw] {
    background: #0051d8;
    color: white;
}

/* ===== 行事 ===== */
.event-row .label[b-61xo6cc0zw] {
    background: #d9cfc3;
    font-weight: bold;
}

.event[b-61xo6cc0zw] {
    background: #f7f6f1;
    text-align: center;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ===== 朝活 ===== */
.morning-row .label[b-61xo6cc0zw] {
    background: #c9d8d8;
    font-weight: bold;
}

.morning[b-61xo6cc0zw] {
    background: #eaf4fe;
    text-align: center;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ===== 左端（時限） ===== */
.period[b-61xo6cc0zw] {
    background: #0051d8;
    color: #fff;
    font-weight: bold;
    text-align: center;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ===== 教科セル ===== */
.subject[b-61xo6cc0zw] {
    padding: 2px;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 0;
    min-width: 0;
}

/* ===== セレクト ===== */
.subject-select[b-61xo6cc0zw] {
    width: 100%;
    height: 100%;
    min-width: 0;
    border: none;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    text-align: center;
    text-align-last: center;
    font-size: 13px;
    cursor: pointer;
    color: #111;
    padding: 0 12px 0 2px;
    box-sizing: border-box;
}

    .subject-select:hover[b-61xo6cc0zw] {
        background-color: #eefcff;
    }

    .subject-select:focus[b-61xo6cc0zw] {
        outline: none;
        background-color: #e3f8fb;
    }

    .subject-select option[b-61xo6cc0zw] {
        text-align: center;
    }

/* 参照のみ権限では、編集可能な時間割セルだけ参照状態として表示する */
.report-page--readonly .subject-select:disabled[b-61xo6cc0zw] {
    opacity: 0.6;
    filter: grayscale(1);
    pointer-events: none;
    cursor: default;
    user-select: none;
}

    .report-page--readonly .subject-select:disabled:hover[b-61xo6cc0zw],
    .report-page--readonly .subject-select:disabled:focus[b-61xo6cc0zw] {
        background-color: transparent;
        outline: none;
    }

/* ===== 変更セル ===== */
.changed-subject[b-61xo6cc0zw] {
    background-color: #fff3cd !important;
    border: 2px solid #f59e0b !important;
}

    .changed-subject .subject-select[b-61xo6cc0zw] {
        background-color: #fff3cd;
        font-weight: bold;
    }

/* ===== 行事セル（時間割内） ===== */
.event-cell[b-61xo6cc0zw] {
    background: #fff7d6 !important;
    border: 2px solid #f59e0b !important;
}

.event-cell-text[b-61xo6cc0zw] {
    font-weight: bold;
    font-size: 14px;
}

/* ========================================
   土曜日
======================================== */
.saturday-header[b-61xo6cc0zw] {
    background: linear-gradient(180deg, #1d9bf0, #0b87d1) !important;
    color: #ffffff !important;
}

.saturday-cell[b-61xo6cc0zw] {
    background: #eef8ff !important;
}

/* ========================================
   日曜日
======================================== */
.sunday-header[b-61xo6cc0zw] {
    background: linear-gradient(180deg, #ff4f87, #e91e63) !important;
    color: #ffffff !important;
}

.sunday-cell[b-61xo6cc0zw] {
    background: #fff0f5 !important;
}

/* ========================================
   土日の「－」
======================================== */
.weekend-placeholder[b-61xo6cc0zw] {
    color: #9ca3af;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
}

/* ===== 右パネル ===== */
.side-panel[b-61xo6cc0zw] {
    width: 340px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-shrink: 0;
    min-height: 0;
}

.panel-row[b-61xo6cc0zw] {
    display: flex;
    gap: 8px;
    flex: 1;
}

.panel-box[b-61xo6cc0zw] {
    border: 1px solid #ccc;
    background: #fff;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.panel-title[b-61xo6cc0zw] {
    background: #eee;
    padding: 6px;
    font-weight: bold;
    font-size: 14px;
}

.panel-body[b-61xo6cc0zw] {
    padding: 8px;
    font-size: 14px;
    flex: 1;
    overflow: auto;
}

/* ===== 指導時数テーブル ===== */
.category-cell[b-61xo6cc0zw] {
    writing-mode: vertical-rl;
    text-orientation: upright;
    text-align: center;
    vertical-align: middle;
    font-weight: bold;
    background-color: #f0f0f0;
    width: 42px;
    padding: 0;
    line-height: 1.2;
    letter-spacing: 2px;
    display: table-cell;
}

.hours-table[b-61xo6cc0zw] {
    width: 100%;
    border-collapse: collapse;
}

    .hours-table th[b-61xo6cc0zw],
    .hours-table td[b-61xo6cc0zw] {
        border: 1px solid #ccc;
        padding: 6px;
        text-align: center;
    }

/* =========================================
   今週分を提出ボタン
========================================= */
.submit-week-btn[b-61xo6cc0zw] {
    height: 36px;
    padding: 0 18px;
    border: none;
    border-radius: 999px;
    background: linear-gradient(135deg, #22c55e, #16a34a);
    color: #ffffff;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.03em;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(34, 197, 94, 0.28);
    transition: all 0.2s ease;
    white-space: nowrap;
}

    .submit-week-btn:hover[b-61xo6cc0zw] {
        transform: translateY(-1px);
        box-shadow: 0 6px 14px rgba(34, 197, 94, 0.35);
        filter: brightness(1.03);
    }

    .submit-week-btn:active[b-61xo6cc0zw] {
        transform: translateY(0);
        box-shadow: 0 2px 6px rgba(34, 197, 94, 0.25);
    }

    .submit-week-btn:disabled[b-61xo6cc0zw] {
        background: #cbd5e1;
        color: #64748b;
        box-shadow: none;
        cursor: not-allowed;
    }

/* ========================================
   先週未提出の警告
======================================== */
.submit-warning[b-61xo6cc0zw] {
    margin: 12px 16px 16px;
    padding: 16px 20px;
    border: 3px solid #dc2626;
    border-left: 10px solid #b91c1c;
    border-radius: 10px;
    background: linear-gradient(90deg, #fef2f2 0%, #fee2e2 100%);
    color: #991b1b;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.6;
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.18);
    animation: warningPulse-b-61xo6cc0zw 2s ease-in-out infinite;
}

    .submit-warning[b-61xo6cc0zw]::before {
        content: "⚠️ ";
        font-size: 24px;
        margin-right: 8px;
        vertical-align: middle;
    }

@keyframes warningPulse-b-61xo6cc0zw {
    0% {
        box-shadow: 0 4px 12px rgba(220, 38, 38, 0.18);
        transform: scale(1);
    }

    50% {
        box-shadow: 0 6px 18px rgba(220, 38, 38, 0.30);
        transform: scale(1.01);
    }

    100% {
        box-shadow: 0 4px 12px rgba(220, 38, 38, 0.18);
        transform: scale(1);
    }
}

/* ========================================
   行事・朝活の左ラベルを縦書きで中央配置
======================================== */
.event-row .label[b-61xo6cc0zw],
.morning-row .label[b-61xo6cc0zw] {
    width: 42px;
    min-width: 42px;
    padding: 0;
    writing-mode: vertical-rl;
    text-orientation: upright;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    letter-spacing: 2px;
    font-weight: bold;
}

/* 行事の左ラベル背景 */
.event-row .label[b-61xo6cc0zw] {
    background: #d9cfc3;
}

/* 朝活の左ラベル背景 */
.morning-row .label[b-61xo6cc0zw] {
    background: #c9d8d8;
}

/* ========================================
   行事行・朝活行の高さを固定
======================================== */
.event-row[b-61xo6cc0zw],
.morning-row[b-61xo6cc0zw] {
    height: 42px;
    min-height: 42px;
    max-height: 42px;
    flex-shrink: 0;
}

    /* 各セルの高さも固定 */
    .event-row .cell[b-61xo6cc0zw],
    .morning-row .cell[b-61xo6cc0zw] {
        height: 42px;
        min-height: 42px;
        max-height: 42px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 13px;
        text-align: center;
    }

/* 行事セル */
.event[b-61xo6cc0zw] {
    background: #F5F6F9;
}

/* 朝活セル */
.morning[b-61xo6cc0zw] {
    background: #E6F1FE;
}

/* ========================================
   グリッド列設定
======================================== */
.tt-row[b-61xo6cc0zw] {
    display: grid;
    grid-template-columns: 42px repeat(var(--day-count, 5), minmax(0, 1fr));
    width: 100%;
    min-height: 0;
    flex-shrink: 0;
}

/* ================================
   ホーム画面：表サイズ最適化 最終調整
================================ */

/* ページ全体を画面高に収める */
.report-page[b-61xo6cc0zw] {
    height: 100%;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    overflow: hidden;
}

/* ヘッダー下のメインだけ伸縮 */
.report-body[b-61xo6cc0zw] {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
    align-items: stretch;
    gap: clamp(0.5rem, 0.7vw, 0.75rem);
    padding: clamp(0.5rem, 0.7vw, 0.75rem) clamp(0.5rem, 0.8vw, 1rem) clamp(0.75rem, 0.9vw, 1rem);
}

/* 左：時間割 */
.timetable-area[b-61xo6cc0zw] {
    flex: 1 1 68%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
}

    /* 授業行は残り高さに合わせて均等に伸縮 */
    .timetable-area .tt-row:not(.header):not(.event-row):not(.morning-row)[b-61xo6cc0zw] {
        flex: 1 1 0;
        height: auto;
        min-height: 72px;
        max-height: none;
    }

    /* ヘッダー・行事・朝活は固定 */
    .timetable-area .header[b-61xo6cc0zw] {
        flex: 0 0 40px;
    }

    .timetable-area .event-row[b-61xo6cc0zw],
    .timetable-area .morning-row[b-61xo6cc0zw] {
        flex: 0 0 42px;
    }

/* 右：時数集計 */
.report-body > .side-panel[b-61xo6cc0zw] {
    flex: 0 0 32%;
    max-width: 32%;
    min-width: 0;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

    .report-body > .side-panel > .panel-box[b-61xo6cc0zw] {
        flex: 1 1 0;
        height: 100%;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    .report-body > .side-panel .panel-title[b-61xo6cc0zw] {
        flex: 0 0 auto;
    }

    /* 通常時はスクロールバーを出さない */
    .report-body > .side-panel .panel-body[b-61xo6cc0zw] {
        flex: 1 1 0;
        min-height: 0;
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    /* 表をパネル内いっぱいに広げる */
    .report-body > .side-panel .hours-table[b-61xo6cc0zw] {
        flex: 1 1 0;
        width: 100%;
        min-height: 0;
        table-layout: fixed;
    }

    .report-body > .side-panel .hours-note[b-61xo6cc0zw] {
        flex: 0 0 auto;
        margin-top: 0.7rem;
        margin-bottom: 0;
        padding-bottom: 0.2rem;
        line-height: 1.4;
    }

/* 拡大などで縦幅が足りない時だけスクロール */
@media (max-height: 760px) {
    .timetable-area[b-61xo6cc0zw] {
        overflow: auto;
    }

        .timetable-area .tt-row:not(.header):not(.event-row):not(.morning-row)[b-61xo6cc0zw] {
            flex: 0 0 100px;
            height: 100px;
            min-height: 100px;
        }
    .report-body > .side-panel .panel-body[b-61xo6cc0zw] {
        overflow: auto;
    }
}

/* 一斉通知の表示 */
.hours-note[b-61xo6cc0zw] {
    margin-top: 0.7rem;
    color: #64748b;
    font-size: 0.8rem;
    font-weight: 700;
}

.nav-btn[b-61xo6cc0zw] {
    color: #0d5ed7;
    border-color: #0d5ed7;
}

.home-announcement[b-61xo6cc0zw] {
    margin: 16px 16px 0;
    padding: 16px 20px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid #f3d8d4;
    border-radius: 12px;
    background: linear-gradient(135deg, #fff7f5 0%, #fff1ee 100%);
    box-shadow: 0 8px 20px rgba(180, 57, 45, 0.08);
}

.home-announcement__body[b-61xo6cc0zw] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.home-announcement__type[b-61xo6cc0zw] {
    flex-shrink: 0;
    min-width: 72px;
    padding: 6px 12px;
    border-radius: 999px;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1;
    text-align: center;
}

.home-announcement__type--information[b-61xo6cc0zw] {
    background: #3568d4;
}

.home-announcement__type--warning[b-61xo6cc0zw] {
    background: #f08a24;
}

.home-announcement__type--important[b-61xo6cc0zw] {
    background: #cc1f1a;
}

.home-announcement__type--maintenance[b-61xo6cc0zw] {
    background: #7c3aed;
}

.home-announcement__type--incident[b-61xo6cc0zw] {
    background: #8b0000;
}

.home-announcement__content[b-61xo6cc0zw] {
    min-width: 0;
}

.home-announcement__title[b-61xo6cc0zw] {
    color: #c62828;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.4;
}

.home-announcement__message[b-61xo6cc0zw] {
    margin-top: 4px;
    color: #7a2a24;
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
}

.home-announcement__close[b-61xo6cc0zw] {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: #7a2a24;
    cursor: pointer;
}

    .home-announcement__close:hover[b-61xo6cc0zw] {
        background: rgba(122, 42, 36, 0.08);
    }

@media (max-width: 768px) {
    .home-announcement[b-61xo6cc0zw] {
        margin: 12px 12px 0;
        padding: 14px 16px;
        gap: 12px;
    }

    .home-announcement__body[b-61xo6cc0zw] {
        gap: 12px;
        flex-direction: column;
    }

    .home-announcement__type[b-61xo6cc0zw] {
        min-width: 0;
    }
}

.timetable-area .event-row[b-61xo6cc0zw] {
    height: auto;
    min-height: 42px;
    max-height: none;
    flex: 0 0 auto;
}

.timetable-area .event-row .cell[b-61xo6cc0zw] {
    height: auto;
    min-height: 42px;
    max-height: none;
    padding: 4px 6px;
    white-space: normal;
    overflow: visible;
    overflow-wrap: anywhere;
    word-break: break-word;
    line-height: 1.25;
}

.term-select[b-61xo6cc0zw] {
    min-width: 5.5rem;
}

.week-select[b-61xo6cc0zw] {
    min-width: 13.5rem;
}

.out-of-term-cell[b-61xo6cc0zw] {
    background: #e9ecef !important;
}

.out-of-term-cell .subject-select[b-61xo6cc0zw] {
    background: #e9ecef;
    color: #6c757d;
    cursor: not-allowed;
}

/* ===== 専科時間割から継承された科目 ===== */
.specialist-inherited-cell[b-61xo6cc0zw] {
    position: relative;
    background-color: #fff3cd !important;
}

    .specialist-inherited-cell .subject-select[b-61xo6cc0zw] {
        background-color: #fff3cd;
    }

    .specialist-inherited-cell[b-61xo6cc0zw]::after {
        content: "";
        position: absolute;
        top: 4px;
        right: 4px;
        width: 7px;
        height: 7px;
        border-radius: 999px;
        background-color: #c58900;
        pointer-events: none;
    }

/* ===== 年間行事 ===== */
.school-event-cell[b-61xo6cc0zw] {
    background: #fff4b8 !important;
    color: #ef4444 !important;
}

    .school-event-cell .event-cell-text[b-61xo6cc0zw] {
        color: #ef4444 !important;
    }

    /* 年間行事と専科が重なった場合は年間行事表示を優先する */
    .school-event-cell.specialist-inherited-cell[b-61xo6cc0zw]::after {
        display: none;
    }

/* ===== 学期外セルは他の状態より優先して灰色表示 ===== */
.cell.subject.out-of-term-cell[b-61xo6cc0zw] {
    background: #e9ecef !important;
    border-color: #dee2e6 !important;
    color: #6c757d !important;
}

    .cell.subject.out-of-term-cell .subject-select[b-61xo6cc0zw] {
        background: #e9ecef !important;
        color: #6c757d !important;
        cursor: not-allowed;
    }

    .cell.subject.out-of-term-cell .event-cell-text[b-61xo6cc0zw] {
        color: #6c757d !important;
    }

    .cell.subject.out-of-term-cell[b-61xo6cc0zw]::after {
        display: none !important;
    }
/* /Components/Pages/Masters/ApprovalRouteMaster.razor.rz.scp.css */
.approval-route-shell[b-yt1sd9j9ll] {
    position: fixed;
    top: 3.5rem;
    right: 0;
    bottom: 0;
    left: 250px;
    z-index: 10;
    min-height: 0;
    max-width: none;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding: 1.1rem 1.5rem .75rem 2rem;
    background: #fff;
}

.approval-route-page[b-yt1sd9j9ll] {
    flex: 1 1 auto;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.approval-route-table-wrap[b-yt1sd9j9ll] {
    min-width: 0;
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    background: #fff;
    scrollbar-gutter: stable;
}

.approval-route-table[b-yt1sd9j9ll] {
    margin-bottom: 0;
    min-width: 1320px;
    vertical-align: middle;
}

.approval-route-table thead th[b-yt1sd9j9ll] {
    position: sticky;
    background: #f8f9fa;
    white-space: nowrap;
    text-align: center;
    box-shadow: inset 0 -1px 0 #dee2e6;
}

.approval-route-table thead tr:first-child th[b-yt1sd9j9ll] {
    top: 0;
    z-index: 4;
    height: 2.75rem;
}

.approval-route-table thead tr:nth-child(2) th[b-yt1sd9j9ll] {
    top: 2.75rem;
    z-index: 3;
    height: 2.75rem;
}

.approval-route-user-column[b-yt1sd9j9ll] {
    min-width: 220px;
    text-align: left !important;
    top: 0 !important;
    z-index: 5 !important;
}

.approval-route-target-heading[b-yt1sd9j9ll] {
    border-bottom-color: #adb5bd;
}

.approval-route-scope-heading[b-yt1sd9j9ll] {
    min-width: 118px;
}

.approval-route-user-cell[b-yt1sd9j9ll] {
    min-width: 220px;
}

.approval-route-select[b-yt1sd9j9ll] {
    min-width: 108px;
}

.approval-route-row-disabled[b-yt1sd9j9ll] {
    color: #6c757d;
    background: #f1f3f5;
}

.approval-route-row-disabled select[b-yt1sd9j9ll] {
    opacity: .65;
}

.approval-route-save-fab[b-yt1sd9j9ll] {
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 1050;
    min-width: 6.5rem;
}

@media (max-width: 640.98px) {
    .approval-route-shell[b-yt1sd9j9ll] {
        top: 3.5rem;
        left: 0;
        padding-right: 1rem;
        padding-left: 1rem;
    }
}
/* /Components/Pages/Masters/ClassCompositionMaster.razor.rz.scp.css */
.class-composition-staff-dropdown[b-diimw3wa1j] {
    position: relative;
}

.class-composition-staff-dropdown__trigger[b-diimw3wa1j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 38px;
    padding: 0.375rem 0.75rem;
    color: #212529;
    text-align: left;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
}

.class-composition-staff-dropdown__trigger:focus-visible[b-diimw3wa1j] {
    outline: 0;
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.class-composition-staff-dropdown__label[b-diimw3wa1j] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.class-composition-staff-dropdown__panel[b-diimw3wa1j] {
    position: absolute;
    z-index: 1080;
    top: calc(100% + 0.25rem);
    left: 0;
    width: max(100%, 18rem);
    max-width: calc(100vw - 2rem);
    max-height: min(22rem, calc(100vh - 10rem));
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.175);
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.class-composition-staff-dropdown__search[b-diimw3wa1j] {
    padding: 0.5rem;
    border-bottom: 1px solid #dee2e6;
}

.class-composition-staff-dropdown__options[b-diimw3wa1j] {
    max-height: min(17rem, calc(100vh - 15rem));
    overflow-y: auto;
}

.class-composition-staff-dropdown__option[b-diimw3wa1j] {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    color: #212529;
    text-align: left;
    background: #fff;
    border: 0;
}

.class-composition-staff-dropdown__option:hover[b-diimw3wa1j],
.class-composition-staff-dropdown__option:focus-visible[b-diimw3wa1j],
.class-composition-staff-dropdown__option.is-selected[b-diimw3wa1j] {
    background: #e9f2ff;
}

.class-composition-master-table[b-diimw3wa1j] {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

.class-composition-master-table col.class-composition-operation-column[b-diimw3wa1j] {
    width: 18%;
}

.class-composition-master-table col.class-composition-name-column[b-diimw3wa1j] {
    width: 20%;
}

.class-composition-master-table col.class-composition-detail-column[b-diimw3wa1j] {
    width: 12.4%;
}

.class-composition-master-table .master-list-row-actions[b-diimw3wa1j] {
    min-width: 0;
    padding-inline: 0.25rem;
}

@media (max-width: 1365px) {
    .class-composition-master-table[b-diimw3wa1j] {
        min-width: 0 !important;
    }
}
/* /Components/Pages/Masters/MasterSelection.razor.rz.scp.css */
.master-tile-grid[b-dex03rnf4m] {
    display: grid;
    grid-template-columns: repeat(5, 150px);
    gap: 32px 28px;
    padding: 20px 16px 0;
    justify-content: center;
}

.master-tile[b-dex03rnf4m] {
    width: 150px;
    height: 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    border: 0;
    border-radius: 12px;
    color: #fff;
}

.master-tile.is-disabled[b-dex03rnf4m],
.master-tile:disabled[b-dex03rnf4m] {
    background: #9aa8b5;
    background-image: none;
    border-color: #8c99a5;
    color: #eef2f5;
    box-shadow: none;
    filter: none;
    cursor: not-allowed;
}

.master-tile-icon[b-dex03rnf4m] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    line-height: 1;
}

.master-tile-label[b-dex03rnf4m] {
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    word-break: keep-all;
    white-space: pre-line;
    padding: 0 10px;
}

@media (max-width: 1200px) {
    .master-tile-grid[b-dex03rnf4m] {
        grid-template-columns: repeat(4, 150px);
    }
}

@media (max-width: 992px) {
    .master-tile-grid[b-dex03rnf4m] {
        grid-template-columns: repeat(3, 150px);
    }
}

@media (max-width: 768px) {
    .master-tile-grid[b-dex03rnf4m] {
        grid-template-columns: repeat(2, 140px);
        gap: 20px;
    }

    .master-tile[b-dex03rnf4m] {
        width: 140px;
        height: 140px;
    }

    .master-tile-icon[b-dex03rnf4m] {
        font-size: 2.2rem;
    }

    .master-tile-label[b-dex03rnf4m] {
        font-size: 1.05rem;
    }
}

@media (max-width: 380px) {
    .master-tile-grid[b-dex03rnf4m] {
        grid-template-columns: 140px;
    }
}

@media (max-width: 1400px) and (max-height: 760px) {
    h3[b-dex03rnf4m] {
        margin-bottom: 0.25rem;
    }

    p.text-muted[b-dex03rnf4m] {
        margin-bottom: 0.65rem;
    }

    .master-tile-grid[b-dex03rnf4m] {
        grid-template-columns: repeat(5, 124px);
        gap: 16px 18px;
        padding: 10px 12px 0;
    }

    .master-tile[b-dex03rnf4m] {
        width: 124px;
        height: 124px;
        gap: 8px;
    }

    .master-tile-icon[b-dex03rnf4m] {
        font-size: 2rem;
    }

    .master-tile-label[b-dex03rnf4m] {
        font-size: 1rem;
        line-height: 1.3;
        padding: 0 8px;
    }
}
/* /Components/Pages/Masters/MorningActivityMaster.razor.rz.scp.css */
/* 一覧の共通スタイルは MasterListLayout に集約しています。 */

/* 1366px解像度でもブラウザの実viewport幅は1366px未満になるため、最低対応解像度を考慮して1280pxを基準とする */
@media (min-width: 1280px) {
    .morning-activity-master[b-h3cl7wczln]  .master-list-search-grid.morning-activity-master-search-grid {
        grid-template-columns: minmax(7rem, 8rem) minmax(7.5rem, 9rem) minmax(7.5rem, 9rem) minmax(7.5rem, 9rem) minmax(8rem, 1fr) max-content;
        align-items: end;
    }

        .morning-activity-master[b-h3cl7wczln]  .master-list-search-grid.morning-activity-master-search-grid > div {
            min-width: 0;
        }

        .morning-activity-master[b-h3cl7wczln]  .master-list-search-grid.morning-activity-master-search-grid .master-list-search-actions {
            display: flex;
            flex-direction: row;
            flex-wrap: nowrap;
            align-items: center;
            gap: 0.5rem;
            width: max-content;
            min-width: max-content;
        }

            .morning-activity-master[b-h3cl7wczln]  .master-list-search-grid.morning-activity-master-search-grid .master-list-search-actions .btn {
                flex: 0 0 auto;
                white-space: nowrap;
            }
}
/* /Components/Pages/Masters/MorningActivityMasterEdit.razor.rz.scp.css */
/* 編集フォームの共通スタイルは MasterEditCard に集約しています。 */
/* /Components/Pages/Masters/SchoolEventMaster.razor.rz.scp.css */
/* 一覧の共通スタイルは MasterListLayout に集約しています。 */

.school-event-master-list[b-qk66oxafxy] {
    min-width: 0;
}

.school-event-master-list[b-qk66oxafxy]  .master-list-table-scroll .master-list-table th,
.school-event-master-list[b-qk66oxafxy]  .master-list-table-scroll .master-list-table td {
    min-width: 0;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--actions {
    width: 13.5%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--event-date {
    width: 10%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--period {
    width: 7.5%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--target {
    width: 8%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--event-name {
    width: 23%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--event-type {
    width: 8.5%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--event-category {
    width: 10%;
}

.school-event-master-list[b-qk66oxafxy]  .school-event-column--remarks {
    width: 12%;
}

/*
 * 最小想定の 1366px では、ブラウザーの viewport 幅がスクロールバー分だけ
 * 小さくなる場合があるため、1280px からデスクトップ用レイアウトを適用します。
 */
@media (min-width: 1280px) {
    .school-event-master-list[b-qk66oxafxy]  .master-list-search-grid.school-event-master-search-grid {
        grid-template-columns:
            minmax(5rem, 6rem)
            minmax(8.5rem, 9.5rem)
            minmax(8rem, 1fr)
            minmax(7.5rem, 8.5rem)
            minmax(8rem, 9rem)
            minmax(7.5rem, 8.5rem)
            max-content;
    }

    .school-event-master-list[b-qk66oxafxy]  .master-list-search-grid.school-event-master-search-grid > div {
        min-width: 0;
    }

    .school-event-master-list[b-qk66oxafxy]  .master-list-search-grid.school-event-master-search-grid .master-list-search-actions {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 0.5rem;
        width: max-content;
        min-width: max-content;
    }

    .school-event-master-list[b-qk66oxafxy]  .master-list-search-grid.school-event-master-search-grid .master-list-search-actions .btn {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}
/* /Components/Pages/Masters/SchoolEventMasterEdit.razor.rz.scp.css */
.school-event-form[b-lw4bh24ftd] {
    display: grid;
    gap: 12px;
}

.school-event-row[b-lw4bh24ftd] {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.school-event-row > div[b-lw4bh24ftd],
.school-event-time__field[b-lw4bh24ftd] {
    min-width: 0;
}

.school-event-row--schedule[b-lw4bh24ftd] {
    grid-template-columns: minmax(105px, .65fr) minmax(150px, 1fr) minmax(90px, .6fr) minmax(360px, 2.75fr);
}

.school-event-row--event[b-lw4bh24ftd] {
    grid-template-columns: minmax(0, 1.8fr) minmax(150px, 1fr) minmax(180px, 1.15fr);
}

.school-event-row--target[b-lw4bh24ftd] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.school-event-row--remarks[b-lw4bh24ftd] {
    grid-template-columns: minmax(0, 1fr);
}

.school-event-time[b-lw4bh24ftd] {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr) max-content minmax(0, 1fr);
    align-items: end;
    gap: 8px;
    min-width: 0;
}

.school-event-time__field[b-lw4bh24ftd] {
    min-width: 0;
}

.school-event-time__all-day[b-lw4bh24ftd] {
    display: flex;
    align-items: center;
    height: 38px;
    margin: 0;
    white-space: nowrap;
}

.period-separator[b-lw4bh24ftd] {
    display: flex;
    align-items: center;
    height: 38px;
    margin: 0;
    color: #6c757d;
    font-size: 1.1rem;
    line-height: 1;
}

.school-event-form[b-lw4bh24ftd]  .form-label {
    margin-bottom: 4px;
    white-space: nowrap;
}

.school-event-form[b-lw4bh24ftd]  textarea {
    min-height: 72px;
    resize: vertical;
}

    .school-event-form[b-lw4bh24ftd] {
        gap: 10px;
    }

    .school-event-row[b-lw4bh24ftd] {
        gap: 14px;
    }

    .school-event-form[b-lw4bh24ftd]  textarea {
        min-height: 60px;
    }
}

@media (max-width: 991.98px) {
    .school-event-row--schedule[b-lw4bh24ftd],
    .school-event-row--event[b-lw4bh24ftd],
    .school-event-row--target[b-lw4bh24ftd] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .school-event-time[b-lw4bh24ftd] {
        grid-column: span 2;
    }
}

@media (max-width: 575.98px) {
    .school-event-row--schedule[b-lw4bh24ftd],
    .school-event-row--event[b-lw4bh24ftd],
    .school-event-row--target[b-lw4bh24ftd],
    .school-event-time[b-lw4bh24ftd] {
        grid-template-columns: minmax(0, 1fr);
    }

    .school-event-time[b-lw4bh24ftd],
    .school-event-time__all-day[b-lw4bh24ftd] {
        grid-column: auto;
    }

    .period-separator[b-lw4bh24ftd] {
        display: none;
    }

    .school-event-time__all-day[b-lw4bh24ftd] {
        margin-bottom: 0;
    }
}
/* /Components/Pages/Masters/SubjectAllocationHourMaster.razor.rz.scp.css */
.subject-allocation-hour-master-table[b-xao2htgm3e] {
    width: 100%;
    min-width: 0;
    table-layout: fixed;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-operation-column[b-xao2htgm3e] {
    width: 15%;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-fiscal-year-column[b-xao2htgm3e] {
    width: 8%;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-school-year-column[b-xao2htgm3e] {
    width: 6%;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-subject-name-column[b-xao2htgm3e] {
    width: 14%;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-term-column[b-xao2htgm3e] {
    width: 11%;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-annual-hours-column[b-xao2htgm3e] {
    width: 9%;
}

.subject-allocation-hour-master-table col.subject-allocation-hour-remarks-column[b-xao2htgm3e] {
    width: 15%;
}

.subject-allocation-hour-master-table .master-list-row-actions[b-xao2htgm3e] {
    min-width: 0;
    padding-inline: 0.25rem;
}

.subject-allocation-hour-master-table th:nth-child(n + 5):nth-child(-n + 8)[b-xao2htgm3e],
.subject-allocation-hour-master-table td:nth-child(n + 5):nth-child(-n + 8)[b-xao2htgm3e] {
    padding-inline: 0.25rem;
}

@media (max-width: 1365px) {
    .subject-allocation-hour-master-table[b-xao2htgm3e] {
        min-width: 0 !important;
    }
}
/* /Components/Pages/Masters/SubjectMasterEdit.razor.rz.scp.css */
.user-edit-card[b-73u71qq77r] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    padding: 20px;
}

.user-edit-actions[b-73u71qq77r] {
    justify-content: flex-end;
}

    .user-edit-actions .btn[b-73u71qq77r] {
        padding: 10px 14px;
        font-weight: 600;
    }

.teacher-tag-picker[b-73u71qq77r] {
    position: relative;
}

.teacher-tag-picker__control[b-73u71qq77r] {
    min-height: 42px;
    border: 1px solid #ced4da;
    border-radius: 0.375rem;
    background: #fff;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 6px 10px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    cursor: text;
}

.teacher-tag-picker__control--open[b-73u71qq77r] {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.teacher-tag-picker__tag[b-73u71qq77r] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 30px;
    padding: 0 10px;
    border-radius: 8px;
    background: #e7f0ff;
    color: #1f3f7a;
    font-size: 0.95rem;
    line-height: 1;
    white-space: nowrap;
}

.teacher-tag-picker__tag-label[b-73u71qq77r] {
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.teacher-tag-picker__tag-remove[b-73u71qq77r] {
    border: none;
    background: transparent;
    color: #3e5f9e;
    font-size: 18px;
    line-height: 1;
    padding: 0;
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.teacher-tag-picker__tag-remove:disabled[b-73u71qq77r] {
    cursor: not-allowed;
    opacity: 0.5;
}

.teacher-tag-picker__input[b-73u71qq77r] {
    flex: 1 1 180px;
    min-width: 160px;
    border: none;
    outline: none;
    padding: 4px 0;
    font-size: 0.95rem;
    background: transparent;
    color: #212529;
}

.teacher-tag-picker__input[b-73u71qq77r]::placeholder {
    color: #6c757d;
}

.teacher-tag-picker__input:disabled[b-73u71qq77r] {
    cursor: not-allowed;
}

.teacher-tag-picker__toggle[b-73u71qq77r] {
    border: none;
    background: transparent;
    color: #495057;
    padding: 0 2px;
    margin-left: auto;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
}

.teacher-tag-picker__toggle:disabled[b-73u71qq77r] {
    cursor: not-allowed;
    opacity: 0.5;
}

.teacher-tag-picker__menu[b-73u71qq77r] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    max-height: 220px;
    overflow-y: auto;
    border: 1px solid #c8d8f0;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
    z-index: 20;
    padding: 6px;
}

.teacher-tag-picker__option[b-73u71qq77r] {
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    border-radius: 0.375rem;
    padding: 10px 12px;
    color: #1f2937;
    font-size: 0.95rem;
    cursor: pointer;
}

.teacher-tag-picker__option:hover[b-73u71qq77r],
.teacher-tag-picker__option:focus-visible[b-73u71qq77r] {
    background: #eaf2ff;
    outline: none;
}

.teacher-tag-picker__empty[b-73u71qq77r] {
    padding: 10px 12px;
    color: #6c757d;
    font-size: 0.95rem;
}
/* /Components/Pages/Masters/UserMaster.razor.rz.scp.css */
/* 一覧領域：この中だけ上下・左右スクロール */
.user-master-page[b-suh71xn817] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 4.6rem);
    min-height: 0;
    max-height: calc(100dvh - 4.6rem);
    overflow: hidden;
}

.user-master-search[b-suh71xn817],
.user-master-toolbar[b-suh71xn817] {
    flex-shrink: 0;
}

.user-master-table-layer[b-suh71xn817] {
    flex: 1 1 auto;
    min-height: 0;
    max-height: 100%;
    display: flex;
    overflow: hidden;
}

.table-scroll[b-suh71xn817] {
    width: 100%;
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    max-height: 100%;
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid rgba(0,0,0,.125);
    border-radius: .375rem;
}

    /* ヘッダー固定 */
    .table-scroll thead th[b-suh71xn817] {
        position: sticky;
        top: 0;
        background: #fff;
        z-index: 1;
    }

.table-layer[b-suh71xn817] {
    position: relative;
    min-width: 0;
    max-width: 100%;
}

.display-order-table[b-suh71xn817] {
    user-select: none;
}

.display-order-row[b-suh71xn817] {
    cursor: grab;
}

.display-order-row.is-dragging-native[b-suh71xn817] {
    opacity: .55;
}

.display-order-handle-cell[b-suh71xn817] {
    text-align: center;
    vertical-align: middle;
}

.display-order-handle[b-suh71xn817] {
    display: inline-flex;
    width: 32px;
    height: 32px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: #495057;
    background: #f1f3f5;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    cursor: grab;
}

/* 右下に浮く「+ 追加」ボタン */
.fab-add[b-suh71xn817] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: none;
    background: #0d6efd;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-shadow: 0 8px 24px rgba(0,0,0,.2);
}

.add-user-fab[b-suh71xn817] {
    width: 56px;
    height: 56px;
    gap: 1px;
}

.add-user-fab .fab-plus[b-suh71xn817] {
    font-size: 22px;
}

.add-user-fab .fab-text[b-suh71xn817] {
    font-size: 10px;
}

    .fab-add:disabled[b-suh71xn817] {
        opacity: .5;
        cursor: not-allowed;
    }

.fab-plus[b-suh71xn817] {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
}

.fab-text[b-suh71xn817] {
    font-size: 12px;
    line-height: 1;
}

.display-order-save-fab[b-suh71xn817] {
    right: 108px;
}

.display-order-cancel-fab[b-suh71xn817] {
    right: 24px;
    border: 1px solid #6c757d;
    background: #fff;
    color: #495057;
}

/* 一覧を主役にするコンパクトレイアウト */
.user-master-page[b-suh71xn817] {
    margin-inline: -0.5rem;
}

.user-master-search[b-suh71xn817] {
    flex: 0 0 auto;
    margin-bottom: 0.5rem;
}

.user-master-search .card-body[b-suh71xn817] {
    padding: 0.5rem 1rem 0.6rem;
}

.user-master-search-grid[b-suh71xn817] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) minmax(0, 0.78fr) minmax(0, 0.78fr) auto auto;
    gap: 0.5rem;
    align-items: end;
}

.user-master-search-grid .form-label[b-suh71xn817] {
    margin-bottom: 0.25rem;
    font-size: 0.9rem;
}

.user-master-search-grid .btn[b-suh71xn817],
.user-master-search-grid .form-control[b-suh71xn817],
.user-master-search-grid .form-select[b-suh71xn817] {
    min-height: 38px;
}

.user-master-toolbar[b-suh71xn817] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0 0 0.5rem;
}

.user-master-toolbar-left[b-suh71xn817],
.user-master-toolbar-right[b-suh71xn817] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

/* データ件数ラベル「〇件表示中」 */
.user-master-list-title[b-suh71xn817] {
    font-size: 1.05rem;
    font-weight: 400;
    white-space: nowrap;
}

.user-master-toolbar-right .btn[b-suh71xn817] {
    white-space: nowrap;
}

.user-master-table-layer[b-suh71xn817] {
    padding-bottom: 0.5rem;
}

.table-scroll[b-suh71xn817]::after {
    content: "";
    display: block;
    height: 64px;
}

.user-master-table[b-suh71xn817] {
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
    table-layout: fixed;
}

.user-master-table col.operation-column[b-suh71xn817] { width: 12%; min-width: 108px; }
.user-master-table col.full-name-column[b-suh71xn817] { width: 14%; }
.user-master-table col.account-name-column[b-suh71xn817] { width: 14%; }
.user-master-table col.email-column[b-suh71xn817] { width: 17%; }
.user-master-table col.status-column[b-suh71xn817] { width: 13%; }
.user-master-table col.account-kind-column[b-suh71xn817] { width: 12%; }
.user-master-table col.date-column[b-suh71xn817] { width: 9%; }

.user-master-table col.account-name-column[b-suh71xn817],
.user-master-table col.status-column[b-suh71xn817],
.user-master-table col.account-kind-column[b-suh71xn817] {
    min-width: 0;
}

.user-master-table.table > :not(caption) > * > *[b-suh71xn817] {
    padding: 0.5rem 0.56rem;
    vertical-align: middle;
}

.user-master-table[b-suh71xn817] {
    border: 1px solid #dee2e6;
}

.user-master-table.table > :not(caption) > * > *[b-suh71xn817] {
    border-inline-width: 0;
}

.user-master-table thead th[b-suh71xn817] {
    border-bottom-color: #dee2e6;
}

.user-master-table th[b-suh71xn817] {
    white-space: nowrap;
}

.user-master-table th.user-master-operation-header[b-suh71xn817] {
    padding: 0.3rem 0.35rem;
}

.user-master-order-button[b-suh71xn817] {
    white-space: nowrap;
}

.user-master-table th .btn-link[b-suh71xn817] {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #212529;
    text-decoration: none;
}

.user-master-table th .btn-link:hover:not(:disabled)[b-suh71xn817],
.user-master-table th .btn-link:focus-visible[b-suh71xn817],
.user-master-table th .btn-link.is-sorted[b-suh71xn817] {
    color: #0d6efd;
}

.user-master-table th .btn-link:hover:not(:disabled)[b-suh71xn817],
.user-master-table th .btn-link:focus-visible[b-suh71xn817] {
    text-decoration: underline;
}

.user-master-table td:not(.user-row-actions):not(.display-order-handle-cell)[b-suh71xn817] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sort-indicator[b-suh71xn817] {
    color: currentColor;
    margin-left: 0.15rem;
    font-size: 0.7em;
}

.user-row-actions[b-suh71xn817] {
    display: table-cell;
    min-width: 0;
    overflow: visible !important;
}

.user-row-primary-actions[b-suh71xn817] {
    display: flex;
    gap: 0.25rem;
    flex-wrap: nowrap;
    white-space: nowrap;
}

.user-row-primary-actions .btn[b-suh71xn817] {
    flex: 0 0 auto;
    width: auto;
    padding-inline: 0.55rem;
    white-space: nowrap;
}

.user-row-action-menu[b-suh71xn817] {
    flex: 0 0 auto;
    position: relative;
}

.user-row-menu-button[b-suh71xn817] {
    width: 30px !important;
    padding-inline: 0 !important;
}

.user-row-action-menu-items[b-suh71xn817] {
    position: absolute;
    top: calc(100% + 0.2rem);
    left: 0;
    right: auto;
    z-index: 10;
    min-width: 190px;
    padding: 0.25rem;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
    background: #fff;
    box-shadow: 0 0.35rem 0.8rem rgba(0, 0, 0, 0.16);
}

.user-row-action-menu-items button[b-suh71xn817] {
    display: block;
    width: 100%;
    padding: 0.35rem 0.5rem;
    border: 0;
    border-radius: 0.2rem;
    background: transparent;
    color: #212529;
    text-align: left;
    white-space: nowrap;
}

.user-row-action-menu-items button:hover:not(:disabled)[b-suh71xn817] {
    background: #f1f3f5;
}

.user-row-action-menu-items .user-row-action-menu-delete[b-suh71xn817] {
    color: #dc3545;
}

.user-status-badge[b-suh71xn817] {
    display: inline-block;
    max-width: 100%;
    padding: 0.18rem 0.42rem;
    border-radius: 0.25rem;
    font-size: 0.86rem;
    font-weight: 700;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-status-badge--active[b-suh71xn817] {
    color: #198754;
    background: #e8f7ee;
}

.user-status-badge--leave[b-suh71xn817] {
    color: #6c757d;
    background: #f1f3f5;
}

.user-status-badge--inactive[b-suh71xn817],
.user-status-badge--muted[b-suh71xn817] {
    color: #6c757d;
    background: #f1f3f5;
}

.user-status-badge--pending[b-suh71xn817] {
    color: #b65a00;
    background: #fff3e6;
}

.user-status-badges[b-suh71xn817] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 1365px) {
    .user-master-table[b-suh71xn817] {
        min-width: 980px;
    }
}

@media (max-width: 1100px) {
    .user-master-search-grid[b-suh71xn817] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .user-master-search-grid .btn[b-suh71xn817] {
        justify-self: start;
    }
}
/* /Components/Pages/Masters/UserMasterEdit.razor.rz.scp.css */
/* 大きい白い囲み（キャプチャのテクスチャ） */
.user-edit-card[b-0to0am2tmr] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 16px 20px 14px;
}

.user-edit-card[b-0to0am2tmr]  .required-fields-note {
    margin-bottom: .75rem;
}

.user-edit-card .row[b-0to0am2tmr] {
    --bs-gutter-y: .75rem;
}

.user-edit-card textarea[b-0to0am2tmr] {
    resize: vertical;
}

/* ボタンをカード右下寄せ＋少し下に固定っぽく見せる */
.user-edit-actions[b-0to0am2tmr] {
    justify-content: flex-end;
    margin-top: 14px;
}

    /* ボタン少し大きめ（任意） */
    .user-edit-actions .btn[b-0to0am2tmr] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: .375rem;
        padding: 10px 14px;
        font-weight: 600;
        line-height: 1.2;
    }

    .user-edit-actions .bi[b-0to0am2tmr] {
        font-size: 1rem;
        line-height: 1;
    }

@media (max-width: 1400px) and (max-height: 780px) {
    .user-edit-card[b-0to0am2tmr] {
        padding-top: 14px;
        padding-bottom: 12px;
    }

    .user-edit-card[b-0to0am2tmr]  .required-fields-note {
        margin-bottom: .65rem;
    }

    .user-edit-card .row[b-0to0am2tmr] {
        --bs-gutter-y: .65rem;
    }

    .user-edit-actions[b-0to0am2tmr] {
        margin-top: 12px;
    }
}
/* /Components/Pages/Masters/UserRoleMaster.razor.rz.scp.css */
.role-master-page[b-tanybe29xf] {
    min-width: 0;
}

.role-master-page[b-tanybe29xf]  .role-master-table {
    min-width: 2000px;
    vertical-align: middle;
}

.role-master-page[b-tanybe29xf]  .role-user-column {
    width: 190px;
}

.role-master-page[b-tanybe29xf]  .role-email-column {
    width: 280px;
}

.role-master-page[b-tanybe29xf]  .role-user-status-column {
    width: 105px;
}

.role-master-page[b-tanybe29xf]  .role-account-kind-column {
    width: 130px;
}

.role-master-page[b-tanybe29xf]  .role-status-column {
    width: 160px;
}

.role-master-page[b-tanybe29xf]  .role-user-name {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.role-master-page[b-tanybe29xf]  .role-status-select {
    min-width: 140px;
}

.role-master-page[b-tanybe29xf]  .role-row-disabled {
    color: #6c757d;
    background: #f1f3f5;
}

.role-master-page[b-tanybe29xf]  .role-row-disabled select {
    opacity: .65;
}

.role-master-page[b-tanybe29xf]  .role-master-save-fab {
    position: fixed;
    right: 40px;
    bottom: 40px;
    z-index: 1050;
}

@media (min-width: 1280px) {
    .role-master-page[b-tanybe29xf]  .master-list-search-grid.role-master-search-grid {
        grid-template-columns: minmax(9rem, 1fr) minmax(13rem, 1.5fr) minmax(8rem, .8fr) minmax(9rem, .9fr) max-content;
        align-items: end;
    }

    .role-master-page[b-tanybe29xf]  .master-list-search-grid.role-master-search-grid > div {
        min-width: 0;
    }

    .role-master-page[b-tanybe29xf]  .master-list-search-grid.role-master-search-grid .master-list-search-actions {
        flex-wrap: nowrap;
        width: max-content;
    }

    .role-master-page[b-tanybe29xf]  .master-list-search-grid.role-master-search-grid .master-list-search-actions .btn {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}
/* /Components/Pages/Settings/AccountNameChange.razor.rz.scp.css */
.account-name-change[b-zcg263otz1] {
    padding: 24px;
}

.account-name-change__container[b-zcg263otz1] {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
}

.account-name-change__card[b-zcg263otz1] {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.account-name-change__title[b-zcg263otz1] {
    margin-bottom: 20px;
    font-size: 1.5rem;
    font-weight: 700;
}

.account-name-change__user-name[b-zcg263otz1] {
    margin-bottom: 24px;
    font-size: 1rem;
    font-weight: 500;
}

.account-name-change__field-row[b-zcg263otz1] {
    display: grid;
    grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin-bottom: 16px;
}

.account-name-change__label[b-zcg263otz1] {
    margin-bottom: 0;
    font-weight: 600;
}

.account-name-change__input[b-zcg263otz1] {
    min-height: 44px;
}

.account-name-change__note[b-zcg263otz1] {
    margin-top: 8px;
    line-height: 1.8;
}

.account-name-change__actions[b-zcg263otz1] {
    margin-top: 20px;
}

@media (max-width: 640px) {
    .account-name-change[b-zcg263otz1] {
        padding: 16px;
    }

    .account-name-change__field-row[b-zcg263otz1] {
        grid-template-columns: 1fr;
        gap: 8px;
    }
}
/* /Components/Pages/Settings/PasswordChange.razor.rz.scp.css */
.changepw[b-8ite1yma85] {
    padding: 24px;
}

.changepw__container[b-8ite1yma85] {
    width: 100%;
    max-width: 960px;
    margin: 0 auto;
}

.changepw__card[b-8ite1yma85] {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.changepw__title[b-8ite1yma85] {
    margin-bottom: 8px;
    font-size: 1.5rem;
    font-weight: 700;
}

.changepw__desc[b-8ite1yma85] {
    margin-bottom: 20px;
    color: #666;
}

.changepw__label[b-8ite1yma85] {
    font-weight: 600;
}

.changepw__inputgroup .form-control[b-8ite1yma85] {
    min-height: 44px;
}

.changepw__toggle[b-8ite1yma85] {
    min-width: 48px;
}

.changepw__actions[b-8ite1yma85] {
    margin-top: 20px;
}

@media (max-width: 640px) {
    .changepw[b-8ite1yma85] {
        padding: 16px;
    }
}
/* /Components/Pages/SupportHome.razor.rz.scp.css */
/* 通常ホームと同じ可変2ペイン構成を特別支援ホームにも適用する。 */
.support-home-page[b-du688b5fnl] {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.report-header[b-du688b5fnl] {
    flex: 0 0 auto;
    padding: clamp(0.35rem, 0.5vw, 0.5rem) clamp(0.5rem, 0.6vw, 0.75rem) 0;
}

.header-inner[b-du688b5fnl] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(0.5rem, 0.6vw, 0.75rem) clamp(0.75rem, 0.9vw, 1rem);
    width: 100%;
    min-width: 0;
    padding: clamp(0.7rem, 0.8vw, 0.95rem) clamp(0.8rem, 0.9vw, 1rem);
    border: 1px solid #dce3ec;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

.nav-btn[b-du688b5fnl],
.class-select[b-du688b5fnl] {
    height: 2.55rem;
    border: 1px solid #cfd8e3;
    border-radius: 0.4rem;
    background: #fff;
    color: #1f2937;
    font-size: 0.9rem;
    font-weight: 700;
}

.nav-btn[b-du688b5fnl] {
    padding: 0 0.95rem;
}

    .nav-btn:hover:not(:disabled)[b-du688b5fnl] {
        border-color: #b9cdf6;
        background: #eef5ff;
        color: #0d5ed7;
    }

    .nav-btn:disabled[b-du688b5fnl] {
        cursor: not-allowed;
        opacity: 0.55;
    }

.date-range[b-du688b5fnl] {
    display: flex;
    align-items: center;
    min-width: 13rem;
    height: 2.55rem;
    padding: 0 0.25rem;
    color: #1f2937;
    font-size: 0.95rem;
    font-weight: 800;
    white-space: nowrap;
}

.class-select[b-du688b5fnl] {
    min-width: min(100%, 15rem);
    max-width: min(100%, 24rem);
    padding: 0 0.75rem;
}

.report-body[b-du688b5fnl] {
    display: flex;
    flex: 1 1 0;
    align-items: stretch;
    gap: clamp(0.5rem, 0.7vw, 0.75rem);
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    padding: clamp(0.5rem, 0.7vw, 0.75rem) clamp(0.5rem, 0.8vw, 1rem) clamp(0.75rem, 0.9vw, 1rem);
}

/* 左側: 内容が利用可能な高さを超える時だけこの領域内でスクロールする。 */
.timetable-area[b-du688b5fnl] {
    --day-count: 5;
    display: flex;
    flex: 1 1 68%;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
}

.support-home-page--weekend .timetable-area[b-du688b5fnl] {
    --day-count: 7;
}

.tt-row[b-du688b5fnl] {
    display: grid;
    grid-template-columns: 42px repeat(var(--day-count, 5), minmax(0, 1fr));
    flex-shrink: 0;
    width: 100%;
    min-height: 0;
}

.cell[b-du688b5fnl] {
    min-width: 0;
    border: 1px solid #dbe3ee;
}

.header[b-du688b5fnl] {
    flex: 0 0 40px;
    height: 40px;
}

.header .cell[b-du688b5fnl] {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 4px;
    background: #0051d8;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
}

.pattern[b-du688b5fnl] {
    background: #0051d8;
}

.saturday-header[b-du688b5fnl] {
    background: linear-gradient(180deg, #1d9bf0, #0b87d1) !important;
}

.sunday-header[b-du688b5fnl] {
    background: linear-gradient(180deg, #ff4f87, #e91e63) !important;
}

.morning-row[b-du688b5fnl] {
    flex: 0 0 42px;
    height: 42px;
}

.morning-row .cell[b-du688b5fnl] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 42px;
    padding: 0 4px;
    font-size: 13px;
    line-height: 1.2;
    text-align: center;
}

.morning-row .label[b-du688b5fnl] {
    padding: 0;
    background: #376dd8;
    color: #fff;
    font-weight: 900;
    letter-spacing: 2px;
    line-height: 1;
    text-orientation: upright;
    writing-mode: vertical-rl;
}

.morning[b-du688b5fnl] {
    background: #e6f1fe;
    overflow-wrap: anywhere;
}

.tt-row:not(.header):not(.morning-row)[b-du688b5fnl] {
    display: grid;
    flex: 1 1 0;
    min-height: 4.5rem;
}

.period[b-du688b5fnl] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    background: #0051d8;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
}

.subject[b-du688b5fnl] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 2px;
    color: #1f2937;
    font-size: 14px;
    font-weight: 700;
    overflow: hidden;
}

.subject.big[b-du688b5fnl] {
    font-size: 14px;
    font-weight: 900;
}

.empty-subject-cell[b-du688b5fnl] {
    background: #fff;
}

.saturday-cell[b-du688b5fnl] {
    background: #eef8ff !important;
}

.sunday-cell[b-du688b5fnl] {
    background: #fff0f5 !important;
}

.support-subject-select[b-du688b5fnl] {
    width: 100%;
    height: 100%;
    min-width: 0;
    padding: 0 2px;
    border: none;
    background: transparent;
    color: #111;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    text-align-last: center;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

    .support-subject-select:hover[b-du688b5fnl] {
        background: #eefcff;
    }

    .support-subject-select:focus[b-du688b5fnl] {
        outline: none;
        background: #e3f8fb;
    }

    .support-subject-select option[b-du688b5fnl] {
        text-align: center;
    }

.readonly-subject-text[b-du688b5fnl],
.weekend-placeholder[b-du688b5fnl] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    overflow-wrap: anywhere;
    text-align: center;
}

.weekend-placeholder[b-du688b5fnl] {
    color: #6b7280;
    font-size: 13px;
    font-weight: 800;
}

/* 右側: 通常ホームと同じ比率で配置し、表が長い場合だけパネル内でスクロールする。 */
.report-body > .side-panel[b-du688b5fnl] {
    display: flex;
    flex: 0 0 32%;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    max-width: 32%;
    overflow: hidden;
}

.report-body > .side-panel > .panel-box[b-du688b5fnl] {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
    border: 1px solid #dce3ec;
    border-radius: 0.5rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

.panel-title[b-du688b5fnl] {
    flex: 0 0 auto;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid #e5eaf1;
    background: #f8fafc;
    color: #1f2937;
    font-size: 0.95rem;
    font-weight: 900;
}

.panel-body[b-du688b5fnl] {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
    padding: 0.9rem 1rem 1rem;
    color: #1f2937;
    font-size: 0.9rem;
}

.hours-table[b-du688b5fnl] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.85rem;
}

    .hours-table th[b-du688b5fnl],
    .hours-table td[b-du688b5fnl] {
        padding: 0.45rem 0.4rem;
        border: 1px solid #dbe3ee;
        overflow-wrap: anywhere;
        text-align: center;
        vertical-align: middle;
    }

    .hours-table thead th[b-du688b5fnl] {
        background: #0051d8;
        color: #fff;
        font-weight: 900;
    }

    .hours-table tbody td[b-du688b5fnl] {
        background: #fff;
        font-weight: 700;
    }

.hours-table td.plus[b-du688b5fnl] {
    background: #eaf2ff;
    color: #0051d8;
    font-weight: 900;
}

.hours-table td.minus[b-du688b5fnl] {
    background: #fbe4e6;
    color: #dc2626;
    font-weight: 900;
}
/* /Components/Pages/SystemAdmin/AnnouncementMaster.razor.rz.scp.css */
.table-scroll[b-kbz08re2n5] {
    max-height: calc(100vh - 320px);
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .375rem;
    background: #fff;
}

.table-scroll thead th[b-kbz08re2n5] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.announcement-master__actions[b-kbz08re2n5] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fab-add[b-kbz08re2n5] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: none;
    background: #198754;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}

.fab-add:disabled[b-kbz08re2n5] {
    opacity: .5;
    cursor: not-allowed;
}

.fab-plus[b-kbz08re2n5] {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
}

.fab-text[b-kbz08re2n5] {
    font-size: 12px;
    line-height: 1;
}
/* /Components/Pages/SystemAdmin/AnnouncementMasterEdit.razor.rz.scp.css */
.announcement-edit-card[b-b3paqr5q4z] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    padding: 24px;
}

.announcement-edit__tenant-summary[b-b3paqr5q4z] {
    margin-bottom: 12px;
    color: #6c757d;
    font-size: .95rem;
}

.announcement-edit__tenant-list[b-b3paqr5q4z] {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .75rem;
    padding: 12px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 10px;
    background: #fff;
}

.announcement-edit__tenant-item[b-b3paqr5q4z] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(0, 0, 0, .08);
    border-radius: .75rem;
    background: #f8f9fa;
    cursor: pointer;
}

.announcement-edit__tenant-item .form-check-input[b-b3paqr5q4z] {
    margin-top: 2px;
}
/* /Components/Pages/SystemAdmin/HolidayMaster.razor.rz.scp.css */
.table-scroll[b-29wfy8oowq] {
    max-height: calc(100vh - 320px);
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .375rem;
    background: #fff;
}

.table-scroll thead th[b-29wfy8oowq] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.holiday-master__actions[b-29wfy8oowq] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fab-add[b-29wfy8oowq] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: none;
    background: #198754;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}

.fab-add:disabled[b-29wfy8oowq] {
    opacity: .5;
    cursor: not-allowed;
}

.fab-plus[b-29wfy8oowq] {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
}

.fab-text[b-29wfy8oowq] {
    font-size: 12px;
    line-height: 1;
}
/* /Components/Pages/SystemAdmin/HolidayMasterEdit.razor.rz.scp.css */
.holiday-edit-card[b-qekn4w7hg5] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    padding: 24px;
}
/* /Components/Pages/SystemAdmin/PlanPriceTierMaster.razor.rz.scp.css */
.table-scroll[b-3ajx0g3eks] {
    max-height: calc(100vh - 320px);
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .375rem;
    background: #fff;
}

.table-scroll thead th[b-3ajx0g3eks] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.plan-price-tier-master__actions[b-3ajx0g3eks] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fab-add[b-3ajx0g3eks] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: none;
    background: #198754;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}

.fab-add:disabled[b-3ajx0g3eks] {
    opacity: .5;
    cursor: not-allowed;
}

.fab-plus[b-3ajx0g3eks] {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
}

.fab-text[b-3ajx0g3eks] {
    font-size: 12px;
    line-height: 1;
}
/* /Components/Pages/SystemAdmin/PlanPriceTierMasterEdit.razor.rz.scp.css */
.plan-price-tier-edit-card[b-tnmmgi1eoj] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    padding: 24px;
}
/* /Components/Pages/SystemAdmin/SystemAdminUserMaster.razor.rz.scp.css */
.table-scroll[b-1z6hez4t1y] {
    max-height: calc(100vh - 320px);
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .375rem;
    background: #fff;
}

.table-scroll thead th[b-1z6hez4t1y] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.system-admin-user-master__actions[b-1z6hez4t1y] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fab-add[b-1z6hez4t1y] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: none;
    background: #198754;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}

.fab-add:disabled[b-1z6hez4t1y] {
    opacity: .5;
    cursor: not-allowed;
}

.fab-plus[b-1z6hez4t1y] {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
}

.fab-text[b-1z6hez4t1y] {
    font-size: 12px;
    line-height: 1;
}
/* /Components/Pages/SystemAdmin/SystemAdminUserMasterEdit.razor.rz.scp.css */
.system-admin-user-edit-card[b-6uk7sk2msa] {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
    padding: 24px;
}

.system-admin-password-group .form-control[b-6uk7sk2msa] {
    min-height: 38px;
}

.password-toggle-btn[b-6uk7sk2msa] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #555;
    font-size: 1.2rem;
    min-width: 48px;
    padding: 0 0.75rem;
}

.password-toggle-btn:hover:not(:disabled)[b-6uk7sk2msa] {
    color: #333;
}
/* /Components/Pages/SystemAdmin/TenantContractMaster.razor.rz.scp.css */
.table-scroll[b-nm27a4jnu4] {
    max-height: calc(100vh - 320px);
    overflow-y: auto;
    overflow-x: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .375rem;
    background: #fff;
}

.table-scroll thead th[b-nm27a4jnu4] {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 1;
}

.tenant-contract-master__actions[b-nm27a4jnu4] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fab-add[b-nm27a4jnu4] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    width: 72px;
    height: 72px;
    border-radius: 999px;
    border: none;
    background: #198754;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
}

.fab-add:disabled[b-nm27a4jnu4] {
    opacity: .5;
    cursor: not-allowed;
}

.fab-plus[b-nm27a4jnu4] {
    font-size: 28px;
    line-height: 1;
    font-weight: 600;
}

.fab-text[b-nm27a4jnu4] {
    font-size: 12px;
    line-height: 1;
}
/* /Components/Pages/SystemAdmin/TenantContractMasterEdit.razor.rz.scp.css */
.tenant-contract-password-group .form-control[b-mbjg0gjda9] {
    min-height: 38px;
}

.password-toggle-btn[b-mbjg0gjda9] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #555;
    font-size: 1.2rem;
    min-width: 48px;
    padding: 0 0.75rem;
}

.password-toggle-btn:hover:not(:disabled)[b-mbjg0gjda9] {
    color: #333;
}
/* /Components/Pages/Timetables/TimetableCreation.razor.rz.scp.css */
/* タブを置いている親余白を見た目上だけ打ち消す */
.timetable-tabs-wrap[b-19bzote7aa] {
    margin-left: 0;
    margin-right: 0;
    margin-top: 0;
}

.timetable-tabs-wrap .nav-tabs[b-19bzote7aa] {
    margin-bottom: 0.5rem !important;
}

/* 条件エリアの左右余白をタブに寄せる */
.timetable-filter-wrap[b-19bzote7aa] {
    margin-left: 0;
    margin-right: 0;
}

.timetable-filter-wrap .card[b-19bzote7aa] {
    margin-bottom: 0.5rem !important;
}

.timetable-filter-wrap .card-body[b-19bzote7aa] {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

/* メインコンテンツの左右余白をタブに寄せる */
.timetable-main-wrap[b-19bzote7aa] {
    margin-left: 0;
    margin-right: 0;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.timetable-creation-page[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: calc(100vh - 4.6rem);
    overflow: auto;
}

.timetable-filter-area .form-label[b-19bzote7aa] {
    font-weight: 600;
}

.timetable-condition-field[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.timetable-homeroom-condition-grid[b-19bzote7aa],
.special-support-overall-condition-grid[b-19bzote7aa],
.special-support-personal-condition-grid[b-19bzote7aa] {
    display: grid;
    column-gap: 0.5rem;
    row-gap: 0.4rem;
    align-items: end;
    width: 100%;
}

.timetable-homeroom-condition-grid > *[b-19bzote7aa],
.special-support-overall-condition-grid > *[b-19bzote7aa],
.special-support-personal-condition-grid > *[b-19bzote7aa] {
    min-width: 0;
}

.timetable-homeroom-condition-grid[b-19bzote7aa] {
    grid-template-columns: minmax(8rem, 8.5rem) minmax(0, 1fr) minmax(7rem, 7.5rem) minmax(7.5rem, 8.25rem) max-content;
}

.special-support-overall-condition-grid[b-19bzote7aa] {
    grid-template-columns: minmax(8rem, 8.5rem) minmax(7rem, 7.5rem) minmax(7.5rem, 8.25rem) max-content minmax(0, 1fr);
}

.special-support-personal-condition-grid[b-19bzote7aa] {
    grid-template-columns: minmax(8rem, 8.5rem) minmax(7rem, 7.5rem) minmax(12rem, 1fr) minmax(7.5rem, 8.25rem) max-content minmax(0, 1fr);
}

.timetable-homeroom-year-field[b-19bzote7aa],
.timetable-homeroom-class-field[b-19bzote7aa],
.timetable-homeroom-semester-field[b-19bzote7aa],
.timetable-homeroom-pattern-field[b-19bzote7aa] {
    min-width: 0;
}

.timetable-homeroom-condition-actions[b-19bzote7aa],
.special-support-overall-action-group[b-19bzote7aa],
.special-support-personal-action-group[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    min-width: 0;
    align-self: end;
}

.special-support-overall-reference-group[b-19bzote7aa],
.special-support-personal-reference-column[b-19bzote7aa] {
    min-width: 0;
}

.special-support-overall-reference-group[b-19bzote7aa] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.4rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    justify-self: end;
}

.special-support-personal-reference-column[b-19bzote7aa] {
    justify-self: end;
}

.timetable-subject-condition-grid[b-19bzote7aa] {
    display: grid;
    grid-template-columns: minmax(10rem, 11rem) minmax(14rem, 1fr) minmax(8rem, 9rem) max-content max-content;
    column-gap: 0.75rem;
    row-gap: 0.5rem;
    align-items: end;
    width: 100%;
}

.timetable-subject-condition-grid > *[b-19bzote7aa] {
    min-width: 0;
}

.timetable-subject-condition-field[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.timetable-subject-subject-field[b-19bzote7aa],
.timetable-subject-pattern-field[b-19bzote7aa] {
    min-width: 0;
}

.timetable-subject-pattern-group[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    min-width: 0;
}

.timetable-subject-condition-actions[b-19bzote7aa] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.5rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-self: end;
}

.timetable-table th[b-19bzote7aa],
.timetable-table td[b-19bzote7aa] {
    min-width: 110px;
}

/* タブ：非選択 */
.nav-tabs .nav-link[b-19bzote7aa] {
    color: #6c757d;
}

    /* タブ：選択中 */
    .nav-tabs .nav-link.active[b-19bzote7aa] {
        color: #0d6efd;
        background-color: #fff;
        border-color: #dee2e6 #dee2e6 #fff;
        border-bottom: 2px solid #0d6efd;
    }

/* 条件エリア（専科） */
.timetable-inline-field[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.timetable-inline-label[b-19bzote7aa] {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    min-width: 3rem;
    margin-bottom: 0;
    flex: 0 0 auto;
}

.timetable-subject-pattern-button[b-19bzote7aa],
.timetable-subject-delete-button[b-19bzote7aa] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    line-height: 1;
}

.timetable-subject-pattern-button[b-19bzote7aa] {
    min-width: 2.75rem;
    min-height: 2.25rem;
    padding: 0.3rem 0.75rem;
    font-weight: 600;
}

.timetable-subject-delete-button[b-19bzote7aa] {
    min-height: 2.25rem;
    padding: 0.3rem 0.9rem;
    font-weight: 600;
}

/* 条件エリア（担任） */
.homeroom-pattern-select[b-19bzote7aa] {
    width: 110px;
    min-width: 110px;
}

.homeroom-pattern-create-button[b-19bzote7aa],
.homeroom-pattern-delete-button[b-19bzote7aa],
.special-support-overall-pattern-create-button[b-19bzote7aa],
.special-support-overall-pattern-delete-button[b-19bzote7aa] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    line-height: 1;
    min-height: 2.25rem;
    font-weight: 600;
}

.homeroom-pattern-create-button[b-19bzote7aa] {
    padding: 0.3rem 0.75rem;
}

.homeroom-pattern-delete-button[b-19bzote7aa] {
    padding: 0.3rem 0.9rem;
}

.special-support-overall-pattern-create-button[b-19bzote7aa] {
    padding: 0.3rem 0.75rem;
}

.special-support-overall-pattern-delete-button[b-19bzote7aa] {
    padding: 0.3rem 0.9rem;
}

/* 条件エリア（特別支援（全体）） */
.special-support-overall-condition-row > [class*="col-"][b-19bzote7aa] {
    min-width: 0;
}

@media (min-width: 768px) {
    .special-support-overall-action-column[b-19bzote7aa],
    .special-support-overall-reference-column[b-19bzote7aa] {
        align-self: flex-end;
    }
}

/* 時間割保存状態 */
.timetable-save-status[b-19bzote7aa] {
    font-weight: 700;
    font-size: 0.95rem;
}

.timetable-save-status.saved[b-19bzote7aa] {
        color: #0d6efd; /* 青 */
    }

    .timetable-save-status.editing[b-19bzote7aa] {
        color: #dc3545; /* 赤 */
    }

.timetable-print-hidden[b-19bzote7aa] {
    margin-bottom: 0.25rem !important;
}

/* 専科全体時間割表 */
.specialist-overall-table[b-19bzote7aa] {
    table-layout: fixed;
    width: 100%;
}

.specialist-overall-table th[b-19bzote7aa],
.specialist-overall-table td[b-19bzote7aa] {
        min-width: 56px;
        vertical-align: middle;
        border: 1px solid #dbe3ee;
    }

    .specialist-overall-table thead th[b-19bzote7aa] {
        background: #0051d8;
        color: #fff;
        font-weight: 700;
        font-size: 1.2rem;
    }

    /* 専科「全体」セルはクリック可能 */
    .specialist-overall-table td[b-19bzote7aa] {
        cursor: pointer;
    }

.specialist-overall-pattern-header[b-19bzote7aa] {
    width: 70px;
}

.specialist-overall-row-header[b-19bzote7aa] {
    width: 180px;
}

.specialist-overall-period-header[b-19bzote7aa] {
    background: #0051d8 !important;
    color: #fff !important;
    font-weight: 700;
    font-size: 1.5rem;
    width: 70px;
}

.specialist-overall-subject-cell[b-19bzote7aa] {
    text-align: left;
    font-weight: 700;
    background: #eef1f5;
}

/* 専科「全体」：選択中セル
   クリックされたセルを分かりやすく強調する */
.overall-cell-selected[b-19bzote7aa] {
    background-color: #d9f2ff !important;
    outline: 2px solid #4da3ff;
    outline-offset: -2px;
}

/* 参照のみ権限では、スクロールを維持したまま編集可能箇所の操作を止める */
.timetable-main-card--readonly .timetable-table-fill-scroll[b-19bzote7aa] {
    cursor: default;
}

/* 専科：全体／教科別の編集可能セル */
.timetable-main-card--readonly .specialist-overall-table tbody td:not(.specialist-overall-subject-cell)[b-19bzote7aa],
.timetable-main-card--readonly .subject-teacher-table tbody td[b-19bzote7aa] {
    opacity: 0.6;
    filter: grayscale(1);
    pointer-events: none;
    user-select: none;
    cursor: default;
}

/* 担任／特別支援の編集可能なプルダウン */
.timetable-main-card--readonly .homeroom-subject-select:disabled[b-19bzote7aa] {
    opacity: 0.6;
    filter: grayscale(1);
    cursor: default;
}

/* 左側メインカードの高さを固定 */
.timetable-main-card[b-19bzote7aa] {
    height: 100%;
    min-height: 0;
    align-self: stretch;
}

    .timetable-main-card .card-body[b-19bzote7aa] {
        display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
        padding: 0.75rem 0.9rem 0.6rem;
    }

/* 専科「全体」表の表示領域 */
.specialist-overall-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
}

.specialist-overall-table-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* ヘッダー固定 */
.specialist-overall-table thead th[b-19bzote7aa] {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #0051d8;
}

/* 左上見出しも固定色維持 */
.specialist-overall-pattern-header[b-19bzote7aa],
.specialist-overall-row-header[b-19bzote7aa],
.specialist-overall-period-header[b-19bzote7aa] {
    z-index: 3;
}

/* クラス選択パネル
   セルクリック位置の近くに浮かせて表示する */
.overall-cell-picker[b-19bzote7aa] {
    width: 420px;
    max-width: calc(100vw - 24px);
    max-height: min(70vh, 420px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border: 1px solid #d0d7de;
    border-radius: 0.5rem;
}

.overall-cell-picker .card-body[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.overall-cell-picker-body[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 0.25rem;
}

.overall-cell-picker-actions[b-19bzote7aa] {
    flex: 0 0 auto;
}

/* クラス選択パネル内の検索欄 */
.overall-cell-search-wrap[b-19bzote7aa] {
    position: relative;
    min-width: 0;
    flex: 1 1 auto;
}

.overall-cell-search-icon[b-19bzote7aa] {
    position: absolute;
    top: 50%;
    left: 0.65rem;
    transform: translateY(-50%);
    color: #6c757d;
    font-size: 0.95rem;
    pointer-events: none;
}

.overall-cell-search-input[b-19bzote7aa] {
    width: 100%;
    padding-left: 2rem;
}

/* クラス選択パネル上部：検索欄と閉じるボタン */
.overall-cell-close-btn[b-19bzote7aa] {
    white-space: nowrap;
    flex: 0 0 auto;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
}

/* クラス選択パネル内の候補ボタン行 */
.overall-cell-picker .btn[b-19bzote7aa] {
    min-width: 3.25rem;
}

.overall-cell-picker-option--conflict[b-19bzote7aa] {
    cursor: not-allowed;
}

    .overall-cell-picker-option--conflict .btn[b-19bzote7aa] {
        pointer-events: none;
    }

/* 専科用時間割表（科目＝全体以外） */
.subject-teacher-table[b-19bzote7aa] {
    table-layout: fixed;
    width: 100%;
}

.subject-teacher-table th[b-19bzote7aa],
.subject-teacher-table td[b-19bzote7aa] {
        min-width: 70px;
        vertical-align: middle;
        border: 1px solid #dbe3ee;
    }

    .subject-teacher-table thead th[b-19bzote7aa] {
        background: #0051d8;
        color: #fff;
        font-weight: 700;
        font-size: 1.2rem;
    }

.subject-pattern-header[b-19bzote7aa] {
    width: 180px;
}

.subject-corner-subject[b-19bzote7aa] {
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.subject-period-header[b-19bzote7aa] {
    background: #0051d8 !important;
    color: #fff !important;
    font-weight: 700;
    font-size: 1.5rem;
    width: 70px;
}

.subject-row-science[b-19bzote7aa] {
    background: #dcead2;
}

.subject-row-music[b-19bzote7aa] {
    background: #f3dccf;
}

.subject-row-default[b-19bzote7aa] {
    background: #eef1f5;
}

/* 担任時間割表 */
.homeroom-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.homeroom-table-scroll[b-19bzote7aa],
.special-support-overall-table-scroll[b-19bzote7aa],
.special-support-personal-table-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.homeroom-tab-table[b-19bzote7aa] {
    table-layout: fixed;
    width: 100%;
}

.homeroom-table-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.homeroom-tab-table th[b-19bzote7aa],
.homeroom-tab-table td[b-19bzote7aa] {
    min-width: 70px;
    vertical-align: middle;
    border: 1px solid #dbe3ee;
}

.homeroom-tab-table thead th[b-19bzote7aa] {
    background: #0051d8;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
}

.homeroom-pattern-header[b-19bzote7aa] {
    width: 220px;
}

.homeroom-tab-table .homeroom-section-header[b-19bzote7aa],
.homeroom-tab-table .homeroom-period-header[b-19bzote7aa] {
    background: #0051d8;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
    width: 220px;
}

.homeroom-tab-table .homeroom-section-header[b-19bzote7aa] {
    background: #376DD8;
}

.homeroom-tab-table .homeroom-morning-cell[b-19bzote7aa] {
    background: #eaf4fe;
}

/* 担任時間割：セル内プルダウン */
.homeroom-body-cell[b-19bzote7aa] {
    padding: 0;
    position: relative;
}

.homeroom-subject-select[b-19bzote7aa] {
    width: 100%;
    height: 100%;
    min-height: 40px;
    min-width: 0;
    border: none;
    background: transparent;
    appearance: none;
    -webkit-appearance: none;
    text-align: center;
    text-align-last: center;
    font-weight: 600;
    color: #111;
    cursor: pointer;
    padding: 0 1rem 0 0.25rem;
    box-sizing: border-box;
}

    .homeroom-subject-select:hover[b-19bzote7aa] {
        background-color: #eefcff;
    }

    .homeroom-subject-select:focus[b-19bzote7aa] {
        outline: none;
        background-color: #e3f8fb;
    }

/* 参照のみ権限では、編集対象selectをマウス操作に反応させない */
.timetable-main-card--readonly .homeroom-subject-select[b-19bzote7aa] {
    cursor: default;
    pointer-events: none;
}

    .timetable-main-card--readonly .homeroom-subject-select:hover[b-19bzote7aa],
    .timetable-main-card--readonly .homeroom-subject-select:focus[b-19bzote7aa] {
        background-color: transparent;
    }

    .homeroom-subject-select option[b-19bzote7aa] {
        text-align: center;
    }

.homeroom-body-cell-inherited[b-19bzote7aa] {
    background-color: #fff3cd;
}

    .homeroom-body-cell-inherited[b-19bzote7aa]::after {
        content: "";
        position: absolute;
        top: 4px;
        right: 4px;
        width: 7px;
        height: 7px;
        border-radius: 999px;
        background-color: #c58900;
    }

.homeroom-inherited-subject[b-19bzote7aa] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 40px;
    padding: 0 0.5rem;
    box-sizing: border-box;
    color: #5f4700;
    font-weight: 700;
    cursor: not-allowed;
}

/* 特別支援（全体）時間割 */
.special-support-overall-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
}

.special-support-overall-table-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.special-support-overall-table[b-19bzote7aa] {
    table-layout: fixed;
    width: 100%;
}

.special-support-overall-table thead th[b-19bzote7aa] {
    background: #0051d8;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
}

.special-support-overall-table .homeroom-section-header[b-19bzote7aa],
.special-support-overall-table .homeroom-period-header[b-19bzote7aa] {
    background: #0051d8;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
    width: 220px;
}

.special-support-overall-table .homeroom-section-header[b-19bzote7aa] {
    background: #376DD8;
}

.special-support-overall-table .homeroom-morning-cell[b-19bzote7aa] {
    background: #eaf4fe;
}

.special-support-body-cell[b-19bzote7aa] {
    font-weight: 700;
}

/* 特別支援（個別）時間割 */
.special-support-personal-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
}

.special-support-personal-table-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

.special-support-personal-table[b-19bzote7aa] {
    table-layout: fixed;
    width: 100%;
}

.special-support-personal-table th[b-19bzote7aa],
.special-support-personal-table td[b-19bzote7aa] {
    min-width: 70px;
    vertical-align: middle;
    border: 1px solid #dbe3ee;
}

.special-support-personal-table thead th[b-19bzote7aa] {
    background: #0051d8;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
}

.special-support-personal-table .homeroom-section-header[b-19bzote7aa],
.special-support-personal-table .homeroom-period-header[b-19bzote7aa] {
    background: #0051d8;
    color: #fff;
    font-weight: 700;
    font-size: 1.2rem;
}

.special-support-personal-table .homeroom-section-header[b-19bzote7aa] {
    background: #376DD8;
}

.special-support-personal-table .homeroom-morning-cell[b-19bzote7aa] {
    background: #eaf4fe;
}

.special-support-personal-header-name[b-19bzote7aa] {
    font-weight: 700;
    line-height: 1.25;
}

.special-support-personal-header-pattern[b-19bzote7aa] {
    margin-top: 0.15rem;
    color: #fff;
    font-size: 0.9rem;
    line-height: 1.25;
}

.special-support-personal-body-cell[b-19bzote7aa] {
    font-weight: 700;
}

.special-support-personal-base-cell[b-19bzote7aa] {
    background-color: #ffe58a;
}

.special-support-personal-individual-cell[b-19bzote7aa] {
    background-color: #ffffff;
}

.special-support-personal-base-subject[b-19bzote7aa] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: 40px;
    padding: 0 0.5rem;
    box-sizing: border-box;
    color: #4f3b00;
    font-weight: 700;
}

.special-support-personal-condition-row > [class*="col-"][b-19bzote7aa] {
    min-width: 0;
}

.special-support-personal-name-field[b-19bzote7aa],
.special-support-personal-pattern-field[b-19bzote7aa] {
    min-width: 0;
}

.special-support-personal-pattern-action-group[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    min-width: 0;
}

.special-support-personal-name-select[b-19bzote7aa] {
    min-width: 0;
}

.special-support-personal-pattern-field[b-19bzote7aa] {
    min-width: 0;
}

.special-support-personal-pattern-select[b-19bzote7aa] {
    width: auto;
    min-width: 4.75rem;
    flex: 0 0 4.75rem;
}

.special-support-personal-pattern-create[b-19bzote7aa],
.special-support-personal-delete-action[b-19bzote7aa] {
    flex: 0 0 auto;
}

.personal-name-inline-create[b-19bzote7aa],
.special-support-personal-pattern-create[b-19bzote7aa],
.special-support-personal-delete-action .btn[b-19bzote7aa],
.special-support-personal-reference-button[b-19bzote7aa] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
    line-height: 1;
    min-height: 2.25rem;
    font-weight: 600;
}

.personal-name-inline-create[b-19bzote7aa] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0.3rem 0.75rem;
    overflow: visible;
    text-overflow: clip;
}

.special-support-personal-pattern-create[b-19bzote7aa] {
    padding: 0.3rem 0.75rem;
}

.special-support-personal-delete-action .btn[b-19bzote7aa] {
    padding: 0.3rem 0.9rem;
}

.special-support-personal-condition-reference[b-19bzote7aa] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    min-width: 0;
}

.special-support-personal-reference-button[b-19bzote7aa] {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
}

.special-support-personal-reference-column[b-19bzote7aa] {
    min-width: 0;
}

@media (min-width: 768px) {
    .special-support-personal-reference-column[b-19bzote7aa] {
        align-self: flex-end;
    }
}

@media (max-width: 1199.98px) {
    .timetable-homeroom-condition-grid[b-19bzote7aa],
    .special-support-overall-condition-grid[b-19bzote7aa],
    .special-support-personal-condition-grid[b-19bzote7aa] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .timetable-homeroom-condition-actions[b-19bzote7aa],
    .special-support-overall-action-group[b-19bzote7aa],
    .special-support-overall-reference-group[b-19bzote7aa],
    .special-support-personal-action-group[b-19bzote7aa],
    .special-support-personal-condition-reference[b-19bzote7aa] {
        justify-self: start;
        justify-content: flex-start;
    }

    .special-support-personal-reference-column[b-19bzote7aa] {
        justify-self: start;
    }
}

@media (max-width: 991.98px) {
    .special-support-personal-condition-reference[b-19bzote7aa] {
        justify-content: flex-start;
    }
}

/* 最終保存情報 */
.timetable-last-saved[b-19bzote7aa] {
    font-size: 0.9rem;
    color: #495057;
    font-weight: 500;
    margin-top: 0.15rem !important;
}

/* 時数集計表タイトル */
.subject-summary-title[b-19bzote7aa] {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 0.35rem;
    display: flex;
    align-items: center;
    color: #212529;
}

/* 時数集計表 */
.subject-summary-card .card-body[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    padding: 0.75rem 0.75rem 0.35rem;
}

/* 時数集計表は必要に応じてスクロール */
.subject-summary-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.subject-summary-table[b-19bzote7aa] {
    table-layout: fixed;
    width: 100%;
    font-size: 0.85rem;
    border-collapse: collapse;
}

    .subject-summary-table th[b-19bzote7aa],
    .subject-summary-table td[b-19bzote7aa] {
        border: 1px solid #dbe3ee;
        padding: 0.45rem 0.4rem;
        vertical-align: middle;
        color: #1f2937;
    }

    .subject-summary-table thead th[b-19bzote7aa] {
        position: sticky;
        top: 0;
        z-index: 2;
        background: #0051d8;
        color: #fff;
        font-weight: 900;
    }

    .subject-summary-table tbody td[b-19bzote7aa] {
        background: #fff;
        font-weight: 700;
    }

/* 時数集計表：科目列
   枠内に収め、はみ出す場合は ... で省略する */
.subject-summary-ellipsis-cell[b-19bzote7aa] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 時数集計表：列幅調整 */
.subject-summary-table-specialist th:nth-child(1)[b-19bzote7aa],
.subject-summary-table-specialist td:nth-child(1)[b-19bzote7aa] {
    width: 42%;
}

.subject-summary-table-specialist th:nth-child(2)[b-19bzote7aa],
.subject-summary-table-specialist td:nth-child(2)[b-19bzote7aa],
.subject-summary-table-specialist th:nth-child(3)[b-19bzote7aa],
.subject-summary-table-specialist td:nth-child(3)[b-19bzote7aa],
.subject-summary-table-specialist th:nth-child(4)[b-19bzote7aa],
.subject-summary-table-specialist td:nth-child(4)[b-19bzote7aa] {
    width: 19.333%;
}

.subject-summary-table-common th:nth-child(1)[b-19bzote7aa],
.subject-summary-table-common td:nth-child(1)[b-19bzote7aa] {
    width: 52%;
}

.subject-summary-table-common th:nth-child(2)[b-19bzote7aa],
.subject-summary-table-common td:nth-child(2)[b-19bzote7aa],
.subject-summary-table-common th:nth-child(3)[b-19bzote7aa],
.subject-summary-table-common td:nth-child(3)[b-19bzote7aa] {
    width: 24%;
}

.subject-summary-subject-cell[b-19bzote7aa] {
    font-weight: 700;
    text-align: left;
    padding-left: 0.6rem;
    background: #eef1f5;
    white-space: nowrap; /* 科目列は折り返さない */
}

    .subject-summary-subject-cell.science[b-19bzote7aa] {
        background-color: #dcead2;
    }

    .subject-summary-subject-cell.music[b-19bzote7aa] {
        background-color: #f3e1a8;
    }

.subject-summary-table tbody td.summary-diff-minus[b-19bzote7aa] {
    color: #dc2626;
    background-color: #fbe4e6;
    font-weight: 700;
}

.subject-summary-table tbody td.summary-diff-plus[b-19bzote7aa] {
    color: #0051d8;
    background-color: #eaf2ff;
    font-weight: 700;
}

.subject-summary-table tbody td.summary-diff-zero[b-19bzote7aa] {
    color: #333333;
    background-color: #fff;
}

.timetable-main-wrap .row[b-19bzote7aa] {
    align-items: stretch;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.timetable-main-wrap .row > [class*="col-"][b-19bzote7aa] {
    min-height: 0;
}

/* 右側全体 */
.timetable-side-panel[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
}

/* 時数集計カードは必要以上に下余白を持たせない */
.subject-summary-card[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    margin-bottom: 0;
    align-self: stretch;
}

/* メッセージ表示エリア
   時数集計表との間は少し広めに取る */
.timetable-side-message-area[b-19bzote7aa] {
    min-height: 1.5rem;
    margin-top: 0.35rem;
    margin-bottom: 0.25rem;
}

/* 保存系ボタン */
.timetable-action-area[b-19bzote7aa] {
    display: flex;
    justify-content: flex-end;
    gap: 0.25rem;
    flex-wrap: wrap;
    margin-top: auto;
}

.timetable-action-area .btn[b-19bzote7aa] {
        white-space: nowrap;
    }

.timetable-action-area span[b-19bzote7aa] {
    display: inline-flex;
}

.approval-request-dialog-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.approval-request-dialog[b-19bzote7aa] {
    position: relative;
    width: 440px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

.approval-request-dialog-close[b-19bzote7aa] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 1;
}

.approval-request-dialog-title[b-19bzote7aa] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
}

.approval-request-dialog-message[b-19bzote7aa] {
    color: #212529;
    font-weight: 700;
    line-height: 1.6;
}

.approval-request-dialog-label[b-19bzote7aa] {
    font-weight: 600;
    color: #212529;
}

/* 削除確認ダイアログ：背景 */
.delete-confirm-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

/* 削除確認ダイアログ本体 */
.delete-confirm-dialog[b-19bzote7aa] {
    position: relative;
    width: 320px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

/* 右上閉じる */
.delete-confirm-close[b-19bzote7aa] {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    z-index: 1;
}

/* 警告アイコン */
.delete-confirm-icon[b-19bzote7aa] {
    font-size: 2rem;
    color: #f4b400;
    line-height: 1;
}

/* タイトル */
.delete-confirm-title[b-19bzote7aa] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
}

/* 本文 */
.delete-confirm-message[b-19bzote7aa] {
    font-size: 0.95rem;
    font-weight: 600;
    color: #212529;
    line-height: 1.6;
}

/* 注意文 */
.delete-confirm-warning[b-19bzote7aa] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #dc3545;
}

/* ボタン幅 */
.delete-confirm-yes[b-19bzote7aa],
.delete-confirm-no[b-19bzote7aa] {
    min-width: 84px;
}

.personal-delete-dialog-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.personal-delete-dialog[b-19bzote7aa] {
    position: relative;
    width: 360px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

.personal-delete-dialog-close[b-19bzote7aa] {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    z-index: 1;
}

.personal-delete-note[b-19bzote7aa] {
    color: #4b5563;
    font-size: 0.84rem;
    font-weight: 600;
}

.personal-delete-options[b-19bzote7aa] {
    display: grid;
    gap: 0.75rem;
}

.personal-delete-option[b-19bzote7aa] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.85rem;
    border: 1px solid #dee2e6;
    border-radius: 0.35rem;
    background: #ffffff;
    color: #212529;
    text-align: left;
}

.personal-delete-option:hover:not(:disabled)[b-19bzote7aa],
.personal-delete-option:focus-visible:not(:disabled)[b-19bzote7aa] {
    border-color: #8bb9ff;
    background: #f7fbff;
}

.personal-delete-option:disabled[b-19bzote7aa] {
    opacity: 0.45;
    cursor: not-allowed;
}

.personal-delete-option > i:first-child[b-19bzote7aa] {
    color: #212529;
    font-size: 1.2rem;
}

.personal-delete-option strong[b-19bzote7aa] {
    display: block;
    color: #0d6efd;
    font-size: 0.95rem;
}

.personal-delete-option small[b-19bzote7aa] {
    display: block;
    margin-top: 0.25rem;
    color: #4b5563;
    font-size: 0.78rem;
    line-height: 1.4;
}

.personal-delete-option-arrow[b-19bzote7aa] {
    color: #0d6efd;
}

.personal-delete-target[b-19bzote7aa] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    padding: 0.85rem;
    border-radius: 0.35rem;
    background: #f1f3f5;
    color: #212529;
    font-size: 0.9rem;
}

.personal-delete-last-warning[b-19bzote7aa] {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    padding: 0.75rem;
    border: 1px solid #ffe3a3;
    border-radius: 0.35rem;
    background: #fff8e6;
    color: #8a5a00;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
}

.personal-delete-last-warning i[b-19bzote7aa] {
    color: #f4b400;
    margin-top: 0.1rem;
}

/* 飛びコマ確認ダイアログ */
.jump-period-confirm-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.jump-period-confirm-dialog[b-19bzote7aa] {
    position: relative;
    width: 320px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

.jump-period-confirm-icon[b-19bzote7aa] {
    font-size: 2rem;
    color: #f4b400;
    line-height: 1;
}

.jump-period-confirm-message[b-19bzote7aa] {
    font-size: 0.98rem;
    font-weight: 700;
    color: #212529;
    line-height: 1.6;
}

.jump-period-confirm-ok[b-19bzote7aa],
.jump-period-confirm-edit[b-19bzote7aa] {
    min-width: 92px;
}

/* 特別支援（個別）：予定過不足マイナス確認ダイアログ */
.negative-summary-confirm-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.negative-summary-confirm-dialog[b-19bzote7aa] {
    position: relative;
    width: 360px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

.negative-summary-confirm-icon[b-19bzote7aa] {
    font-size: 2rem;
    color: #f4b400;
    line-height: 1;
}

.negative-summary-confirm-message[b-19bzote7aa] {
    font-size: 0.98rem;
    font-weight: 700;
    color: #212529;
    line-height: 1.6;
}

.negative-summary-confirm-yes[b-19bzote7aa],
.negative-summary-confirm-no[b-19bzote7aa] {
    min-width: 92px;
}

/* 特別支援（個別）：時間割名作成ダイアログ */
.personal-name-create-dialog-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.personal-name-create-dialog[b-19bzote7aa] {
    position: relative;
    width: 420px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

.personal-name-create-dialog-close[b-19bzote7aa] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 1;
}

.personal-name-create-dialog-title[b-19bzote7aa] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
}

.personal-name-create-dialog-label[b-19bzote7aa] {
    font-weight: 600;
    color: #212529;
}

.personal-name-create-dialog-error[b-19bzote7aa] {
    font-size: 0.88rem;
}

.personal-name-create-dialog-cancel[b-19bzote7aa],
.personal-name-create-dialog-create[b-19bzote7aa] {
    min-width: 92px;
}

/* 時間割複製ダイアログ：背景 */
.copy-dialog-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

/* ダイアログ本体 */
.copy-dialog[b-19bzote7aa] {
    position: relative;
    width: 420px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

/* 右上閉じる */
.copy-dialog-close[b-19bzote7aa] {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    z-index: 1;
}

/* 説明文 */
.copy-dialog-message[b-19bzote7aa] {
    font-size: 0.95rem;
    color: #212529;
    line-height: 1.6;
}

/* タイトル */
.copy-dialog-title[b-19bzote7aa] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #212529;
}

/* セクション見出し */
.copy-dialog-section-title[b-19bzote7aa] {
    font-size: 1rem;
    font-weight: 700;
    color: #212529;
}

/* ラベル */
.copy-dialog-label[b-19bzote7aa] {
    display: inline-block;
    margin-bottom: 0.35rem;
    font-weight: 600;
    color: #212529;
}

/* ボタン幅 */
.copy-dialog-copy-btn[b-19bzote7aa],
.copy-dialog-cancel-btn[b-19bzote7aa] {
    min-width: 100px;
}

/* 担任：作成方法選択ダイアログ */
.homeroom-create-dialog-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.homeroom-create-dialog[b-19bzote7aa] {
    position: relative;
    width: 380px;
    max-width: calc(100vw - 2rem);
    border-radius: 0.75rem;
}

.homeroom-create-dialog-close[b-19bzote7aa] {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 1;
}

.homeroom-create-dialog-title[b-19bzote7aa] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #212529;
}

.homeroom-create-options[b-19bzote7aa] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.homeroom-create-option[b-19bzote7aa] {
    min-height: 172px;
    padding: 1rem 0.75rem;
    border: 1px solid #d7dee8;
    border-radius: 0.5rem;
    background: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    text-align: center;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.homeroom-create-option:hover[b-19bzote7aa],
.homeroom-create-option:focus-visible[b-19bzote7aa] {
    border-color: #0d6efd;
    box-shadow: 0 0.35rem 1rem rgba(13, 110, 253, 0.14);
    transform: translateY(-1px);
}

.homeroom-create-option i[b-19bzote7aa] {
    font-size: 2.35rem;
    line-height: 1;
}

.homeroom-create-option span[b-19bzote7aa] {
    font-size: 1.05rem;
    font-weight: 700;
}

.homeroom-create-option small[b-19bzote7aa] {
    font-size: 0.78rem;
    color: #495057;
}

.homeroom-create-copy i[b-19bzote7aa],
.homeroom-create-copy span[b-19bzote7aa] {
    color: #0d6efd;
}

.homeroom-create-new i[b-19bzote7aa],
.homeroom-create-new span[b-19bzote7aa] {
    color: #2e7d32;
}

/* 担任：複製して作成ダイアログ */
.homeroom-copy-dialog[b-19bzote7aa] {
    width: 720px;
}

.homeroom-copy-note[b-19bzote7aa] {
    padding: 0.6rem 0.75rem;
    border: 1px solid #cfe2ff;
    border-radius: 0.35rem;
    background-color: #f5f9ff;
    color: #0b5ed7;
    font-size: 0.86rem;
    line-height: 1.5;
}

.homeroom-copy-layout[b-19bzote7aa] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 1.25rem;
    align-items: center;
}

.homeroom-copy-pane[b-19bzote7aa] {
    min-width: 0;
}

.homeroom-copy-arrow[b-19bzote7aa] {
    color: #7b8794;
    font-size: 2rem;
}

.homeroom-copy-summary[b-19bzote7aa],
.homeroom-copy-created[b-19bzote7aa] {
    padding: 0.8rem;
    border: 1px solid #d7dee8;
    border-radius: 0.35rem;
    background-color: #f8fbff;
    font-size: 0.86rem;
    line-height: 1.55;
}

.homeroom-copy-created[b-19bzote7aa] {
    border-color: #cfe8d8;
    background-color: #f5fbf7;
    color: #1b5e20;
}

.homeroom-created-pattern[b-19bzote7aa] {
    font-size: 1.45rem;
    font-weight: 700;
    color: #2e7d32;
}

/* 特別支援（全体）：時間割参照モーダル */
.support-reference-overlay[b-19bzote7aa] {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.support-reference-dialog[b-19bzote7aa] {
    position: relative;
    width: 980px;
    max-width: calc(100vw - 2rem);
    max-height: calc(100vh - 2rem);
    overflow: auto;
    border-radius: 0.5rem;
}

.special-support-personal-reference-dialog[b-19bzote7aa] {
    width: 980px;
}

.support-reference-close[b-19bzote7aa] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    z-index: 1;
}

.support-reference-title[b-19bzote7aa] {
    font-size: 1rem;
    font-weight: 700;
    color: #212529;
}

.support-reference-conditions[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.support-reference-type-options[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.support-reference-radio[b-19bzote7aa] {
    margin-bottom: 0;
    font-weight: 700;
    color: #212529;
}

.support-reference-label[b-19bzote7aa] {
    font-weight: 700;
    color: #212529;
    white-space: nowrap;
}

.support-reference-select[b-19bzote7aa] {
    width: 8rem;
}

.support-reference-display[b-19bzote7aa] {
    min-width: 5.25rem;
}

.support-reference-list[b-19bzote7aa] {
    display: grid;
    gap: 1.35rem;
}

.support-reference-heading[b-19bzote7aa] {
    margin-bottom: 0.45rem;
    color: #212529;
    font-size: 0.92rem;
    font-weight: 700;
}

.support-reference-table[b-19bzote7aa] {
    table-layout: fixed;
    font-size: 0.78rem;
}

    .support-reference-table th[b-19bzote7aa] {
        background: #f1f5f9;
        color: #212529;
        font-weight: 700;
        padding: 0.25rem 0.35rem;
    }

    .support-reference-table td[b-19bzote7aa] {
        height: 28px;
        padding: 0.25rem 0.35rem;
        font-weight: 700;
    }

.support-reference-table th:first-child[b-19bzote7aa],
.support-reference-table td:first-child[b-19bzote7aa] {
    width: 4.5rem;
}

.support-reference-empty[b-19bzote7aa] {
    padding: 1rem;
    border: 1px dashed #cbd5e1;
    border-radius: 0.35rem;
    background: #f8fafc;
    color: #4b5563;
    font-weight: 700;
    text-align: center;
}

.support-reference-actions[b-19bzote7aa] {
    display: flex;
    justify-content: flex-end;
}

.special-support-personal-reference-list[b-19bzote7aa] {
    display: grid;
    gap: 1.7rem;
}

.special-support-personal-reference-item[b-19bzote7aa] {
    padding: 0;
}

.special-support-personal-reference-heading[b-19bzote7aa] {
    display: flex;
    align-items: baseline;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
    color: #212529;
    font-weight: 700;
    font-size: 1rem;
}

.special-support-personal-reference-heading small[b-19bzote7aa] {
    color: #4b5563;
    font-weight: 700;
}

.special-support-personal-reference-empty[b-19bzote7aa] {
    padding: 1rem;
    border: 1px dashed #cbd5e1;
    border-radius: 0.35rem;
    background: #f8fafc;
    color: #4b5563;
    font-weight: 700;
    text-align: center;
}

.special-support-personal-reference-title[b-19bzote7aa] {
    font-size: 1.1rem;
}

.special-support-personal-reference-conditions[b-19bzote7aa] {
    display: flex;
    align-items: center;
    gap: 1.6rem;
    flex-wrap: wrap;
}

.special-support-personal-reference-label[b-19bzote7aa] {
    font-weight: 700;
    color: #212529;
    white-space: nowrap;
}

.special-support-personal-reference-select[b-19bzote7aa] {
    width: 8.5rem;
}

.special-support-personal-reference-display[b-19bzote7aa] {
    min-width: 5.5rem;
}

.special-support-personal-reference-dialog .support-reference-table th:first-child[b-19bzote7aa],
.special-support-personal-reference-dialog .support-reference-table td:first-child[b-19bzote7aa] {
    width: 4.75rem;
}

.special-support-personal-reference-dialog .support-reference-table th[b-19bzote7aa],
.special-support-personal-reference-dialog .support-reference-table td[b-19bzote7aa] {
    height: 38px;
}

.special-support-personal-reference-actions[b-19bzote7aa] {
    display: flex;
    justify-content: flex-end;
}

@media (max-width: 768px) {
    .homeroom-create-options[b-19bzote7aa],
    .homeroom-copy-layout[b-19bzote7aa] {
        grid-template-columns: 1fr;
    }

    .homeroom-copy-arrow[b-19bzote7aa] {
        display: none;
    }
}
/* 印刷時：担任・特別支援の表色を画面表示と合わせる */
@media print {
    .homeroom-tab-table thead th[b-19bzote7aa],
    .special-support-overall-table thead th[b-19bzote7aa],
    .special-support-personal-table thead th[b-19bzote7aa] {
        background: #0051d8 !important;
        color: #fff !important;
    }

    .homeroom-tab-table .homeroom-period-header[b-19bzote7aa],
    .special-support-overall-table .homeroom-period-header[b-19bzote7aa],
    .special-support-personal-table .homeroom-period-header[b-19bzote7aa] {
        background: #0051d8 !important;
        color: #fff !important;
    }

    .homeroom-tab-table .homeroom-section-header[b-19bzote7aa],
    .special-support-overall-table .homeroom-section-header[b-19bzote7aa],
    .special-support-personal-table .homeroom-section-header[b-19bzote7aa] {
        background: #376DD8 !important;
        color: #fff !important;
    }

    .homeroom-tab-table .homeroom-morning-cell[b-19bzote7aa],
    .special-support-overall-table .homeroom-morning-cell[b-19bzote7aa],
    .special-support-personal-table .homeroom-morning-cell[b-19bzote7aa] {
        background: #eaf4fe !important;
    }

    .homeroom-body-cell-inherited[b-19bzote7aa] {
        background-color: #fff3cd !important;
    }

    .special-support-personal-base-cell[b-19bzote7aa] {
        background-color: #ffe58a !important;
    }

    .special-support-personal-individual-cell[b-19bzote7aa] {
        background-color: #ffffff !important;
    }

    *[b-19bzote7aa] {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
}

@media print {
    .homeroom-tab-table thead th[b-19bzote7aa],
    .special-support-overall-table thead th[b-19bzote7aa],
    .special-support-personal-table thead th[b-19bzote7aa] {
        background: #0051d8 !important;
        color: #fff !important;
    }

    .homeroom-tab-table tbody th[b-19bzote7aa],
    .special-support-overall-table tbody th[b-19bzote7aa],
    .special-support-personal-table tbody th[b-19bzote7aa] {
        background: #0051d8 !important;
        color: #fff !important;
    }

    *[b-19bzote7aa] {
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }
}

/* 左側カード内を、保存状態・表・最終保存情報の3段構成にする */
.timetable-main-card .card-body[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* 表エリア共通 */
.timetable-table-fill-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* スクロール領域共通 */
.timetable-table-fill-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* セル内selectも行の高さに追従 */
.homeroom-subject-select[b-19bzote7aa],
.homeroom-inherited-subject[b-19bzote7aa],
.special-support-personal-base-subject[b-19bzote7aa] {
    min-height: 100%;
}

/* メイン行・左カラムを縦いっぱいに伸ばす */
.timetable-main-wrap .row[b-19bzote7aa] {
    align-items: stretch;
    flex: 1 1 auto;
    min-height: 0;
}

    .timetable-main-wrap .row > [class*="col-"][b-19bzote7aa] {
        display: flex;
        min-height: 0;
    }

/* 担任・特別支援の表エリアを縦いっぱいにする */
.homeroom-table-wrap[b-19bzote7aa],
.special-support-overall-table-wrap[b-19bzote7aa],
.special-support-personal-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* スクロール領域 */
.homeroom-table-scroll[b-19bzote7aa],
.special-support-overall-table-scroll[b-19bzote7aa],
.special-support-personal-table-scroll[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* セル内selectもセル高に合わせる */
.homeroom-subject-select[b-19bzote7aa],
.homeroom-inherited-subject[b-19bzote7aa],
.special-support-personal-base-subject[b-19bzote7aa] {
    height: 100%;
    min-height: 100%;
}

/* 右側パネルは画面内に収める */
.timetable-side-panel[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

/* 時数集計カードは、ボタン領域を残して伸縮 */
.subject-summary-card[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    margin-bottom: 0;
    align-self: stretch;
    overflow: hidden;
}

/* カード内 */
.subject-summary-card .card-body[b-19bzote7aa] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    padding: 0.75rem 0.75rem 0.35rem;
}

/* タイトルは固定 */
.subject-summary-title[b-19bzote7aa] {
    flex: 0 0 auto;
}

/* 表部分だけスクロール */
.subject-summary-table-wrap[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
}

/* 右下ボタンは縮ませない */
.timetable-side-message-area[b-19bzote7aa],
.timetable-action-area[b-19bzote7aa] {
    flex: 0 0 auto;
}

/* 時数集計表のセルを縦中央寄せ */
.subject-summary-table th[b-19bzote7aa],
.subject-summary-table td[b-19bzote7aa] {
    vertical-align: middle;
}

/* 画面拡大時にページ全体を隠さない */
.timetable-creation-page[b-19bzote7aa] {
    overflow: auto;
}

/* メイン領域は画面内に収める */
.timetable-main-wrap[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}

    .timetable-main-wrap .row[b-19bzote7aa] {
        flex: 1 1 0;
        min-height: 0;
        align-items: stretch;
    }

        /* 左右カラムを縮められるようにする */
        .timetable-main-wrap .row > [class*="col-"][b-19bzote7aa] {
            display: flex;
            min-height: 0;
        }

/* 左カード */
.timetable-main-card[b-19bzote7aa] {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

    .timetable-main-card .card-body[b-19bzote7aa] {
        min-height: 0;
        overflow: hidden;
    }

/* 時間割表のスクロール領域 */
.timetable-table-fill-wrap[b-19bzote7aa],
.specialist-overall-table-wrap[b-19bzote7aa],
.homeroom-table-wrap[b-19bzote7aa],
.special-support-overall-table-wrap[b-19bzote7aa],
.special-support-personal-table-wrap[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.timetable-table-fill-scroll[b-19bzote7aa],
.specialist-overall-table-scroll[b-19bzote7aa],
.homeroom-table-scroll[b-19bzote7aa],
.special-support-overall-table-scroll[b-19bzote7aa],
.special-support-personal-table-scroll[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
}

/* 表自体は無理に100%高にしない。はみ出したら親でスクロール */
.timetable-table-fill-scroll[b-19bzote7aa],
.specialist-overall-table-scroll[b-19bzote7aa],
.homeroom-table-scroll[b-19bzote7aa],
.special-support-overall-table-scroll[b-19bzote7aa],
.special-support-personal-table-scroll[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
}

/* 右側パネル */
.timetable-side-panel[b-19bzote7aa] {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

/* 時数集計カード */
.subject-summary-card[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    overflow: hidden;
}

/* 時数集計表だけスクロール */
.subject-summary-table-wrap[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    overflow: auto;
}

/* 時数集計表：通常時は縦に広げ、はみ出す場合は中でスクロール */
.subject-summary-table[b-19bzote7aa] {
    height: 100%;
    min-height: 100%;
}

/* 表の中身が多い場合は、表エリア内でスクロール */
.subject-summary-table-wrap[b-19bzote7aa] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}
/* 担任・特別支援の時間割表を画面いっぱいに広げる */
.homeroom-table-wrap[b-19bzote7aa],
.special-support-overall-table-wrap[b-19bzote7aa],
.special-support-personal-table-wrap[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* 担任・特別支援のスクロール領域 */
.homeroom-table-scroll[b-19bzote7aa],
.special-support-overall-table-scroll[b-19bzote7aa],
.special-support-personal-table-scroll[b-19bzote7aa] {
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: auto;
}

/* 担任・特別支援の表本体を縦いっぱいにする */
.homeroom-tab-table[b-19bzote7aa],
.special-support-overall-table[b-19bzote7aa],
.special-support-personal-table[b-19bzote7aa] {
    height: 100%;
    min-height: 100%;
}

    /* 朝活 + 1〜6限 を均等に広げる */
    .homeroom-tab-table tbody tr[b-19bzote7aa],
    .special-support-overall-table tbody tr[b-19bzote7aa],
    .special-support-personal-table tbody tr[b-19bzote7aa] {
        height: calc(100% / 7);
    }

/* セル内のプルダウンも高さに追従 */
.homeroom-subject-select[b-19bzote7aa],
.homeroom-inherited-subject[b-19bzote7aa],
.special-support-personal-base-subject[b-19bzote7aa] {
    height: 100%;
    min-height: 100%;
}
/* /Components/Pages/Timetables/TimetablePatternAssignment.razor.rz.scp.css */
.pattern-assignment-page[b-zn1braklnw] {
    --assignment-row-height: 3.45rem;
    margin: -0.75rem -1rem 0 -1rem;
    height: calc(100vh - 4.1rem);
    max-height: calc(100vh - 4.1rem);
    min-height: 0;
    min-width: 0;
    padding: 0.9rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    overflow: hidden;
    background: #ffffff;
    color: #1f2937;
    box-sizing: border-box;
}

.pattern-action-button[b-zn1braklnw],
.pattern-reference-button[b-zn1braklnw] {
    min-width: 7.5rem;
    height: 2.55rem;
    font-weight: 800;
    flex-shrink: 0;
    white-space: nowrap;
}

.pattern-assignment-filters[b-zn1braklnw] {
    flex: 0 0 auto;
    position: relative;
    display: grid;
    grid-template-columns:
        minmax(8.75rem, 9.25rem)
        minmax(8rem, 8.5rem)
        minmax(7rem, 7.75rem)
        minmax(9rem, 10.25rem)
        max-content
        max-content
        max-content;
    column-gap: 0.45rem;
    row-gap: 0.35rem;
    align-items: end;
    padding: 1.45rem 0.85rem 0.8rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    background: #fff;
}

.pattern-assignment-filters > .required-fields-note[b-zn1braklnw] {
    position: absolute;
    top: 0.55rem;
    right: 0.85rem;
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.2;
    white-space: nowrap;
}

.pattern-assignment-page > .alert[b-zn1braklnw] {
    flex: 0 0 auto;
}

.pattern-filter-field[b-zn1braklnw] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pattern-filter-actions[b-zn1braklnw] {
    display: flex;
    align-items: flex-end;
    gap: 0.55rem;
    margin-left: 0;
    flex-wrap: nowrap;
    white-space: nowrap;
    min-width: 0;
}

.pattern-filter-field .form-label[b-zn1braklnw] {
    margin-bottom: 0.35rem;
    color: #374151;
    font-size: 0.85rem;
    font-weight: 800;
}

.pattern-filter-field .form-select[b-zn1braklnw] {
    height: 2.55rem;
    font-weight: 700;
    min-width: 0;
    width: 100%;
}

.pattern-assignment-empty[b-zn1braklnw] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 2rem;
    border: 1px solid #d8dee6;
    background: #fff;
    color: #6b7280;
    text-align: center;
}

.pattern-assignment-main[b-zn1braklnw] {
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    display: flex;
    overflow: hidden;
}

.pattern-card[b-zn1braklnw] {
    min-height: 0;
    min-width: 0;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #dce3ec;
    border-radius: 0.4rem;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

.assignment-card[b-zn1braklnw] {
    flex: 1 1 auto;
}

.pattern-card-title[b-zn1braklnw] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.5rem;
}

.pattern-card-heading[b-zn1braklnw] {
    color: #0d5ed7;
    font-weight: 900;
    font-size: 1.05rem;
}

.pattern-card-heading[b-zn1braklnw] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.calendar-period[b-zn1braklnw] {
    flex: 0 0 auto;
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
    font-weight: 800;
    color: #374151;
}

.calendar-legend[b-zn1braklnw] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: #1f2937;
    font-size: 0.86rem;
    font-weight: 800;
    white-space: nowrap;
}

.holiday-swatch[b-zn1braklnw] {
    width: 1.9rem;
    height: 1.55rem;
    display: inline-block;
    border: 1px solid #f7d24b;
    border-radius: 0.2rem;
    background: #fff4b8;
}

.assignment-table-wrap[b-zn1braklnw] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-gutter: stable;
}

.assignment-table[b-zn1braklnw] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 0.88rem;
}

.assignment-week-column[b-zn1braklnw] {
    width: 13%;
}

.assignment-day-column[b-zn1braklnw] {
    width: 13%;
}

.assignment-pattern-column[b-zn1braklnw] {
    width: 17%;
}

.assignment-table th[b-zn1braklnw],
.assignment-table td[b-zn1braklnw] {
    border: 1px solid #e0e5ec;
    text-align: center;
    vertical-align: middle;
}

.assignment-table thead th[b-zn1braklnw] {
    position: sticky;
    top: 0;
    z-index: 2;
    height: 2.25rem;
    background: #0051d8;
    color: #fff;
    font-weight: 900;
    box-shadow: inset 0 -1px 0 #e0e5ec;
}

.assignment-table tbody th[b-zn1braklnw] {
    height: var(--assignment-row-height);
    background: #f8fbff;
    font-weight: 900;
}

.assignment-table tbody th small[b-zn1braklnw] {
    display: block;
    margin-top: 0.2rem;
    color: #374151;
    font-size: 0.78rem;
    font-weight: 800;
}

.assignment-table td[b-zn1braklnw] {
    height: var(--assignment-row-height);
    color: #1f2937;
    font-weight: 800;
}

.assignment-pattern-cell[b-zn1braklnw] {
    padding: 0.35rem 0.65rem;
}

.weekly-pattern-segment + .weekly-pattern-segment[b-zn1braklnw] {
    margin-top: 0.4rem;
    padding-top: 0.4rem;
    border-top: 1px solid #e0e5ec;
}

.weekly-pattern-segment small[b-zn1braklnw] {
    display: block;
    margin-bottom: 0.2rem;
    font-weight: 700;
}

.assignment-calendar-day[b-zn1braklnw] {
    background: #fff;
}

.assignment-calendar-day.outside-term[b-zn1braklnw] {
    color: #9ca3af;
    background: #f9fafb;
}

.assignment-calendar-day.holiday[b-zn1braklnw] {
    background: #fff4b8;
    color: #ef4444;
}

.assignment-calendar-day small[b-zn1braklnw] {
    display: block;
    margin-top: 0.15rem;
    line-height: 1.2;
    color: #ef4444;
    font-weight: 900;
}

.assignment-calendar-day span[b-zn1braklnw] {
    color: #c7a033;
}

.weekly-pattern-select[b-zn1braklnw] {
    width: min(8.5rem, 100%);
    height: 2.25rem;
    margin: 0 auto;
    font-weight: 800;
}

.weekly-pattern-value[b-zn1braklnw] {
    min-height: 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
}

.assignment-notes[b-zn1braklnw] {
    flex: 0 0 auto;
    margin-top: 0.7rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 2rem;
    color: #4b5563;
    font-size: 0.82rem;
    font-weight: 700;
}

.assignment-notes div[b-zn1braklnw] {
    flex: 1 1 24rem;
}

.reference-dialog-overlay[b-zn1braklnw] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(15, 23, 42, 0.45);
}

.reference-dialog[b-zn1braklnw] {
    position: relative;
    width: min(1100px, calc(100vw - 2rem));
    max-height: calc(100vh - 3rem);
    overflow: hidden;
    border-radius: 0.5rem;
}

.reference-dialog .card-body[b-zn1braklnw] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: calc(100vh - 3rem);
}

.reference-dialog-close[b-zn1braklnw] {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
}

.reference-dialog-title[b-zn1braklnw] {
    font-size: 1.15rem;
    font-weight: 800;
    color: #1f2937;
}

.reference-condition-bar[b-zn1braklnw] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.75rem;
    margin-bottom: 0.75rem;
    background: #f8fafc;
    border: 1px solid #d8dee6;
}

.reference-type-group[b-zn1braklnw] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
}

.reference-select[b-zn1braklnw] {
    width: 15rem;
}

.reference-semester-select[b-zn1braklnw] {
    width: 7rem;
}

.reference-pattern-select[b-zn1braklnw] {
    width: 7rem;
}

.reference-display-button[b-zn1braklnw] {
    min-width: 5.5rem;
}

.reference-empty[b-zn1braklnw] {
    padding: 2rem;
    text-align: center;
    color: #6b7280;
    border: 1px solid #e5e7eb;
    background: #fff;
}

.reference-table-title[b-zn1braklnw] {
    margin-bottom: 0.5rem;
    font-weight: 800;
    color: #1f2937;
}

.reference-table-scroll[b-zn1braklnw] {
    min-height: 0;
    overflow: auto;
}

.homeroom-reference-scroll[b-zn1braklnw] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    padding-right: 0.25rem;
}

.homeroom-reference-block[b-zn1braklnw] {
    flex: 0 0 auto;
}

.homeroom-reference-title[b-zn1braklnw] {
    margin-bottom: 0.6rem;
    font-size: 1rem;
    font-weight: 900;
}

.reference-table[b-zn1braklnw] {
    table-layout: fixed;
    min-width: 640px;
    font-size: 0.9rem;
}

.reference-table th[b-zn1braklnw] {
    background: #2d82c6;
    color: #fff;
    font-weight: 700;
}

.reference-table td[b-zn1braklnw] {
    min-width: 5rem;
    height: 2.2rem;
    background: #fff;
}

.reference-homeroom-table[b-zn1braklnw] {
    width: 100%;
    min-width: 0;
}

.reference-homeroom-table tbody th[b-zn1braklnw] {
    width: 5rem;
}

.reference-specialist-overall-table[b-zn1braklnw] {
    min-width: 780px;
}

.reference-subject-name[b-zn1braklnw] {
    text-align: left;
    font-weight: 700;
    background: #eef2f7 !important;
}

@media (max-width: 1200px) {
    .pattern-assignment-page[b-zn1braklnw] {
        padding: 0.85rem 1rem 1rem;
    }

    .pattern-assignment-filters[b-zn1braklnw] {
        gap: 1rem;
    }

    .pattern-filter-field[b-zn1braklnw] {
        width: 12rem;
    }

    .pattern-card[b-zn1braklnw] {
        padding: 0.85rem;
    }
}

@media (max-width: 760px) {
    .pattern-assignment-page[b-zn1braklnw] {
        padding: 0.75rem 1rem 1rem;
    }

    .pattern-filter-field[b-zn1braklnw] {
        width: 100%;
    }

    .pattern-filter-actions[b-zn1braklnw] {
        width: 100%;
        margin-left: 0;
    }

    .pattern-action-button[b-zn1braklnw],
    .pattern-reference-button[b-zn1braklnw] {
        flex: 1 1 9rem;
    }

    .reference-dialog-overlay[b-zn1braklnw] {
        align-items: stretch;
        padding: 0.75rem;
    }

    .reference-dialog[b-zn1braklnw] {
        width: 100%;
        max-height: calc(100vh - 1.5rem);
    }
}
/* /Components/Shared/Masters/MasterEditCard.razor.rz.scp.css */
.master-edit-card[b-i7l9pq8g5l] {
    box-sizing: border-box;
    width: 100%;
    padding: 16px 20px 14px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

.master-edit-card[b-i7l9pq8g5l]  .required-fields-note {
    margin-bottom: .75rem;
}

.master-edit-card[b-i7l9pq8g5l]  .row {
    --bs-gutter-y: .75rem;
}

.master-edit-card[b-i7l9pq8g5l]  textarea {
    resize: vertical;
}

.master-edit-card[b-i7l9pq8g5l]  .master-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 14px;
}

.master-edit-card[b-i7l9pq8g5l]  .master-edit-actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .375rem;
    padding: 10px 14px;
    font-weight: 600;
    line-height: 1.2;
}

@media (max-width: 1400px) and (max-height: 780px) {
    .master-edit-card[b-i7l9pq8g5l] {
        padding-top: 14px;
        padding-bottom: 12px;
    }

    .master-edit-card[b-i7l9pq8g5l]  .required-fields-note {
        margin-bottom: .65rem;
    }

    .master-edit-card[b-i7l9pq8g5l]  .row {
        --bs-gutter-y: .65rem;
    }

    .master-edit-card[b-i7l9pq8g5l]  .master-edit-actions {
        margin-top: 12px;
    }
}
/* /Components/Shared/Masters/MasterListFloatingAddButton.razor.rz.scp.css */
.master-list-fab[b-zkvbg792w6] {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1050;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    gap: 1px;
    border: 0;
    border-radius: 999px;
    background: #0d6efd;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
    color: #fff;
}

.master-list-fab:disabled[b-zkvbg792w6] {
    cursor: not-allowed;
    opacity: .5;
}

.master-list-fab__plus[b-zkvbg792w6] {
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
}

.master-list-fab__text[b-zkvbg792w6] {
    font-size: 10px;
    line-height: 1;
}
/* /Components/Shared/Masters/MasterListLayout.razor.rz.scp.css */
.master-list-page[b-bpwft1g7q8] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 4.6rem);
    min-height: 0;
    margin-inline: -0.5rem;
    overflow: hidden;
}

.master-list-search[b-bpwft1g7q8] {
    flex: 0 0 auto;
    margin-bottom: 0.5rem;
}

.master-list-search[b-bpwft1g7q8]  .card-body {
    padding: 0.5rem 1rem 0.6rem;
}

.master-list-search[b-bpwft1g7q8]  .master-list-search-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 0.5rem;
    align-items: end;
}

.master-list-search[b-bpwft1g7q8]  .master-list-search-grid .form-label {
    margin-bottom: 0.25rem;
    font-size: 0.9rem;
}

.master-list-search[b-bpwft1g7q8]  .master-list-search-grid .btn,
.master-list-search[b-bpwft1g7q8]  .master-list-search-grid .form-control,
.master-list-search[b-bpwft1g7q8]  .master-list-search-grid .form-select {
    min-height: 38px;
}

.master-list-search[b-bpwft1g7q8]  .master-list-search-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.master-list-toolbar[b-bpwft1g7q8] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.master-list-toolbar__count[b-bpwft1g7q8] {
    font-size: 1.05rem;
    white-space: nowrap;
}

.master-list-toolbar__actions[b-bpwft1g7q8] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
}

.master-list-toolbar__actions[b-bpwft1g7q8]  .btn {
    white-space: nowrap;
}

.master-list-table-layer[b-bpwft1g7q8] {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    padding-bottom: 0.5rem;
    overflow: hidden;
}

.master-list-table-scroll[b-bpwft1g7q8] {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    min-height: 0;
    max-height: 100%;
    overflow: auto;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .375rem;
    background: #fff;
}

.master-list-table-scroll[b-bpwft1g7q8]  table {
    width: 100%;
    margin-bottom: 0;
    table-layout: fixed;
}

.master-list-table-scroll[b-bpwft1g7q8]  thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .12);
    white-space: nowrap;
}

.master-list-table-scroll[b-bpwft1g7q8]  th .btn-link {
    max-width: 100%;
    overflow: hidden;
    color: #212529;
    text-overflow: ellipsis;
    text-decoration: none;
    white-space: nowrap;
}

.master-list-table-scroll[b-bpwft1g7q8]  th .btn-link:hover,
.master-list-table-scroll[b-bpwft1g7q8]  th .btn-link:focus-visible {
    color: #0d6efd;
    text-decoration: underline;
}

.master-list-table-scroll[b-bpwft1g7q8]  th .master-list-sort-header.is-sorted {
    color: #0d6efd;
}

.master-list-table-scroll[b-bpwft1g7q8]  .master-list-sort-indicator {
    color: currentColor;
    margin-left: 0.15rem;
    font-size: 0.7em;
}

.master-list-table-scroll[b-bpwft1g7q8]  td {
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

.master-list-table-scroll[b-bpwft1g7q8]  .master-list-row-actions {
    display: table-cell;
    overflow: visible;
    white-space: nowrap;
}

.master-list-table-scroll[b-bpwft1g7q8]  .master-list-row-actions .btn {
    white-space: nowrap;
}

.master-list-table-scroll[b-bpwft1g7q8]  .master-list-row-action-buttons {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.5rem;
}

.master-list-table-scroll[b-bpwft1g7q8]  .master-list-row-action-button {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    white-space: nowrap;
}

@media (max-width: 1365px) {
    .master-list-table-scroll[b-bpwft1g7q8]  table {
        min-width: var(--master-list-min-table-width, 900px);
    }
}

@media (max-width: 700px) {
    .master-list-page[b-bpwft1g7q8] {
        height: auto;
        min-height: calc(100dvh - 4.6rem);
        overflow: visible;
    }

    .master-list-toolbar[b-bpwft1g7q8] {
        align-items: flex-start;
        flex-direction: column;
    }

    .master-list-toolbar__actions[b-bpwft1g7q8] {
        justify-content: flex-start;
    }

    .master-list-table-layer[b-bpwft1g7q8] {
        min-height: 360px;
    }
}
/* /Components/Shared/TimetableOutputModal.razor.rz.scp.css */
.modal-backdrop-custom[b-qymr0innlx] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.output-modal[b-qymr0innlx] {
    width: 430px;
    background: white;
    border-radius: 12px;
    overflow: hidden;
}

.modal-header-custom[b-qymr0innlx] {
    background: #008999;
    color: white;
    padding: 20px 26px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.close-btn[b-qymr0innlx] {
    background: none;
    border: none;
    color: white;
    font-size: 28px;
}

.modal-body-custom[b-qymr0innlx] {
    padding: 24px 26px;
}

.radio-row[b-qymr0innlx] {
    display: flex;
    gap: 12px;
    margin: 18px 0;
    font-weight: bold;
}

.output-card[b-qymr0innlx] {
    width: 100%;
    border-radius: 10px;
    padding: 18px;
    margin-top: 16px;
    display: flex;
    justify-content: space-between;
    text-align: left;
    background: white;
}

    .output-card.print[b-qymr0innlx] {
        border: 1px solid #bcd4ff;
    }

    .output-card.csv[b-qymr0innlx] {
        border: 1px solid #bde6cc;
    }

    .output-card p[b-qymr0innlx] {
        margin: 6px 0 0;
        color: #666;
    }

.modal-footer-custom[b-qymr0innlx] {
    padding: 16px;
    text-align: center;
    border-top: 1px solid #ddd;
}

.cancel-btn[b-qymr0innlx] {
    padding: 10px 32px;
    border-radius: 8px;
    border: 1px solid #ccc;
    background: white;
}
/* /Components/Shared/WeekendToggle.razor.rz.scp.css */
.weekend-toggle-wrap[b-pxevxajzbp] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
    color: #1f2937;
    font-size: 0.85rem;
    font-weight: 800;
    white-space: nowrap;
}

.switch[b-pxevxajzbp] {
    position: relative;
    display: inline-block;
    width: 58px;
    height: 28px;
}

    .switch input[b-pxevxajzbp] {
        display: none;
    }

.slider[b-pxevxajzbp] {
    position: absolute;
    inset: 0;
    cursor: pointer;
    border: 1px solid #8b95a1;
    border-radius: 999px;
    background: #9ca3af;
    transition: 0.2s;
}

    .slider[b-pxevxajzbp]::before {
        position: absolute;
        top: 1px;
        left: 1px;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
        content: "";
        transition: 0.2s;
    }

.switch input:checked + .slider[b-pxevxajzbp] {
    border-color: #12a9c7;
    background: #12a9c7;
}

    .switch input:checked + .slider[b-pxevxajzbp]::before {
        transform: translateX(30px);
    }

.switch-label[b-pxevxajzbp] {
    position: absolute;
    top: 5px;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    pointer-events: none;
}

    .switch-label.off[b-pxevxajzbp] {
        right: 7px;
    }

    .switch-label.on[b-pxevxajzbp] {
        display: none;
        left: 8px;
    }

.switch input:checked + .slider .off[b-pxevxajzbp] {
    display: none;
}

.switch input:checked + .slider .on[b-pxevxajzbp] {
    display: inline;
}
/* /Components/Shared/WeekNavigation.razor.rz.scp.css */
.week-navigation[b-hct1c9ink6] {
    display: contents;
}

.nav-btn[b-hct1c9ink6],
.class-select[b-hct1c9ink6] {
    height: 2.55rem;
    border: 1px solid #cfd8e3;
    border-radius: 0.4rem;
    background: #fff;
    color: #1f2937;
    font-size: 0.9rem;
    font-weight: 700;
}

.nav-btn[b-hct1c9ink6] {
    padding: 0 0.95rem;
}

    .nav-btn:hover:not(:disabled)[b-hct1c9ink6] {
        border-color: #b9cdf6;
        background: #eef5ff;
        color: #0d5ed7;
    }

    .nav-btn:disabled[b-hct1c9ink6] {
        cursor: not-allowed;
        opacity: 0.55;
    }

.class-select[b-hct1c9ink6] {
    padding: 0 0.75rem;
}

.term-select[b-hct1c9ink6] {
    min-width: 5.5rem;
}

.week-select[b-hct1c9ink6] {
    min-width: 13.5rem;
}
