/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-jf2p8lxguw] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-jf2p8lxguw] {
    flex: 1;
    min-width: 0;
}

.sidebar[b-jf2p8lxguw] {
    background-color: #16325C;
}


.top-row[b-jf2p8lxguw] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

.content[b-jf2p8lxguw] {
    min-width: 0;
}

.top-row[b-jf2p8lxguw]  a, .top-row[b-jf2p8lxguw]  .btn-link {
    white-space: nowrap;
    margin-left: 1.5rem;
    text-decoration: none;
}

.top-row[b-jf2p8lxguw]  a:hover, .top-row[b-jf2p8lxguw]  .btn-link:hover {
    text-decoration: underline;
}

.top-row[b-jf2p8lxguw]  a:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 819.98px) {
    .top-row[b-jf2p8lxguw] {
        justify-content: space-between;
    }

    .top-row[b-jf2p8lxguw]  a, .top-row[b-jf2p8lxguw]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 820px) {
    .page[b-jf2p8lxguw] {
        flex-direction: row;
    }

    .sidebar[b-jf2p8lxguw] {
        width: 250px;
        flex-shrink: 0;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-jf2p8lxguw] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-jf2p8lxguw]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-jf2p8lxguw], article[b-jf2p8lxguw] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-jf2p8lxguw] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss[b-jf2p8lxguw] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-axfvlztzo3] {
    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.1);
    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.55%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.1);
}

    .navbar-toggler:checked[b-axfvlztzo3] {
        background-color: rgba(255, 255, 255, 0.5);
    }

.top-row[b-axfvlztzo3] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-axfvlztzo3] {
    font-size: 1.1rem;
}

.bi[b-axfvlztzo3] {
    display: inline-block;
    position: relative;
    width: 1.25rem;
    height: 1.25rem;
    margin-right: 0.75rem;
    top: -1px;
    background-size: cover;
}

.bi-house-door-fill-nav-menu[b-axfvlztzo3] {
    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-clipboard-data-nav-menu[b-axfvlztzo3] {
    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='M4 1.5H3a2 2 0 0 0-2 2v11a1.5 1.5 0 0 0 1.5 1.5h11a1.5 1.5 0 0 0 1.5-1.5v-11a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1v11a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a1 1 0 0 1 1-1h1z'/%3E%3Cpath d='M9.5 1a.5.5 0 0 1 .5.5V2a.5.5 0 0 1-.5.5h-3A.5.5 0 0 1 6 2v-.5a.5.5 0 0 1 .5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5V2a1.5 1.5 0 0 0 1.5 1.5h3A1.5 1.5 0 0 0 11 2v-.5A1.5 1.5 0 0 0 9.5 0zM5 12.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3-3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v4a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3-3a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E");
}

.bi-calculator-nav-menu[b-axfvlztzo3] {
    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='M12 1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1M4 0h8a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2'/%3E%3Cpath d='M4 2.5a.5.5 0 0 1 .5-.5h7a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5zm0 4h2v2H4zm3 0h2v2H7zm3 0h2v2h-2zm-6 3h2v2H4zm3 0h2v2H7zm3 0h2v5h-2zm-6 3h2v2H4zm3 0h2v2H7z'/%3E%3C/svg%3E");
}

.bi-file-earmark-text-nav-menu[b-axfvlztzo3] {
    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='M5.5 7a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zM5 9.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5m0 2a.5.5 0 0 1 .5-.5h2a.5.5 0 0 1 0 1h-2a.5.5 0 0 1-.5-.5'/%3E%3Cpath d='M9.5 0H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V4.5zm0 1v3a1 1 0 0 0 1 1h3v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1z'/%3E%3C/svg%3E");
}

.bi-database-fill-nav-menu[b-axfvlztzo3] {
    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='M3.904 1.777C4.978 1.289 6.427 1 8 1s3.022.289 4.096.777C13.125 2.245 14 2.993 14 4s-.875 1.755-1.904 2.223C11.022 6.711 9.573 7 8 7s-3.022-.289-4.096-.777C2.875 5.755 2 5.007 2 4s.875-1.755 1.904-2.223'/%3E%3Cpath d='M2 6.161V9c0 1.007.875 1.755 1.904 2.223C4.978 11.711 6.427 12 8 12s3.022-.289 4.096-.777C13.125 10.755 14 10.007 14 9V6.161C13.51 6.573 12.93 6.895 12.51 7.086 11.279 7.646 9.692 8 8 8s-3.279-.354-4.51-.914C3.07 6.895 2.49 6.573 2 6.161'/%3E%3Cpath d='M2 11.161V12c0 1.007.875 1.755 1.904 2.223C4.978 14.711 6.427 15 8 15s3.022-.289 4.096-.777C13.125 13.755 14 13.007 14 12v-.839c-.49.412-1.07.734-1.49.925C11.279 12.646 9.692 13 8 13s-3.279-.354-4.51-.914C3.07 11.895 2.49 11.573 2 11.161'/%3E%3C/svg%3E");
}

.bi-plus-square-fill-nav-menu[b-axfvlztzo3] {
    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-axfvlztzo3] {
    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-axfvlztzo3] {
    font-size: 0.9rem;
    padding-bottom: 0.5rem;
}

    .nav-item:first-of-type[b-axfvlztzo3] {
        padding-top: 1rem;
    }

    .nav-item:last-of-type[b-axfvlztzo3] {
        padding-bottom: 1rem;
    }

    .nav-item[b-axfvlztzo3]  .nav-link {
        color: #d7d7d7;
        background: none;
        border: none;
        border-radius: 4px;
        font-weight: 700;
        height: 3rem;
        display: flex;
        align-items: center;
        line-height: 3rem;
        width: 100%;
        white-space: nowrap;
    }


    .nav-item[b-axfvlztzo3]  a.active {
        background-color: rgba(255,255,255,0.37);
        color: white;
    }

    .nav-item[b-axfvlztzo3]  .nav-link:hover {
        background-color: rgba(255,255,255,0.1);
        color: white;
    }

.nav-scrollable[b-axfvlztzo3] {
    display: none;
}

.navbar-toggler:checked ~ .nav-scrollable[b-axfvlztzo3] {
    display: block;
}

@media (min-width: 820px) {
    .navbar-toggler[b-axfvlztzo3] {
        display: none;
    }

    .nav-scrollable[b-axfvlztzo3] {
        display: block;
        height: calc(100vh - 3.5rem);
        overflow-y: auto;
    }
}

.manifest-submenu[b-axfvlztzo3] {
    margin-left: 20px;
    margin-right: 10px;
    margin-top: 4px;
    margin-bottom: 8px;
    white-space: nowrap;
}

[b-axfvlztzo3] .submenu-item {
    display: block;
    color: #ffffff;
    text-decoration: none;
    padding: 7px 10px;
    margin-bottom: 2px;
    border-radius: 5px;
    font-size: 0.9rem;
    width: 100%;
}

    [b-axfvlztzo3] .submenu-item:hover {
        background-color: rgba(255, 255, 255, 0.15);
        color: #ffffff;
        text-decoration: none;
    }

    [b-axfvlztzo3] .submenu-item.active {
        background-color: rgba(255, 255, 255, 0.20);
        color: #ffffff;
    }
/* ===== マスタ登録 サブメニュー ===== */

.submenu[b-axfvlztzo3] {
    padding-left: 20px;
}

.own-settings-nav[b-axfvlztzo3] { margin-top: 24px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.18); }
.own-settings-icon[b-axfvlztzo3] { width: 1.75rem; margin-right: .5rem; font-size: 1.25rem; text-align: center; }

[b-axfvlztzo3] .submenu .submenu-item {
    display: block;
    padding: 7px 10px;
    text-decoration: none;
    font-size: 0.9rem;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-gkomnq13se],
.components-reconnect-repeated-attempt-visible[b-gkomnq13se],
.components-reconnect-failed-visible[b-gkomnq13se],
.components-pause-visible[b-gkomnq13se],
.components-resume-failed-visible[b-gkomnq13se],
.components-rejoining-animation[b-gkomnq13se] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-retrying[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-failed[b-gkomnq13se],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-gkomnq13se] {
    display: block;
}


#components-reconnect-modal[b-gkomnq13se] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-gkomnq13se 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-gkomnq13se 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-gkomnq13se 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-gkomnq13se]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-gkomnq13se 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-gkomnq13se {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-gkomnq13se {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-gkomnq13se {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-gkomnq13se] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-gkomnq13se] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-gkomnq13se] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-gkomnq13se] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-gkomnq13se] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-gkomnq13se] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-gkomnq13se] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-gkomnq13se 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-gkomnq13se] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-gkomnq13se {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/BillingCustomerRegister.razor.rz.scp.css */
/* =========================================================
   請求先登録ページ
   ========================================================= */

.billing-customer-page[b-d03dav22vk] {
    width: 100%;
    max-width: 1180px;
    margin: 0;
    margin-left: 20px;
    padding: 24px 28px 60px;
    box-sizing: border-box;
    color: #586472;
}


/* =========================================================
   ページヘッダー
   0.245 共通デザイン
   ========================================================= */

.page-header[b-d03dav22vk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    padding: 20px 24px;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
    background: #f5f8fc;
}

/* =========================================================
   ページヘッダーアイコン
   ========================================================= */

.page-header .page-header-icon[b-d03dav22vk] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    background-color: #eaf2fd;
    color: #2f65c5;
    border: 1px solid #dce8f8;
    border-radius: 8px;
    font-size: 25px;
    line-height: 1;
}

.page-header .page-header-icon i[b-d03dav22vk] {
    line-height: 1;
}

/* =========================================================
   修正 / 削除スイッチ
   ========================================================= */

.edit-mode-switch[b-d03dav22vk] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.9rem;
    font-weight: 700;
    color: #3f4f63;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

.edit-mode-switch input[b-d03dav22vk] {
    display: none;
}

.switch-slider[b-d03dav22vk] {
    position: relative;
    width: 46px;
    height: 24px;
    border-radius: 999px;
    background: #aebac9;
    transition: 0.2s;
}

.switch-slider[b-d03dav22vk]::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    transition: 0.2s;
}

.edit-mode-switch input:checked + .switch-slider[b-d03dav22vk] {
    background: #2f6fed;
}

.edit-mode-switch input:checked + .switch-slider[b-d03dav22vk]::after {
    transform: translateX(22px);
}


.page-header-title-area[b-d03dav22vk] {
    display: flex;
    align-items: center;
    gap: 16px;
}

.page-header-icon[b-d03dav22vk] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    font-weight: 700;
    color: #1c3d67;
}

/* ===== ヘッダータイトル ===== */

.page-header h1[b-d03dav22vk] {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: #3f4f63;
}

.page-header p[b-d03dav22vk] {
    margin: 4px 0 0;
    font-size: 12px;
    color: #66758a;
}


/* =========================================================
   メインレイアウト
   ========================================================= */

.billing-main-area[b-d03dav22vk] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 20px;
    align-items: start;
}


/* =========================================================
   左側フォーム
   ========================================================= */

.billing-form-area[b-d03dav22vk] {
    padding: 20px;
    border: 1px solid #ccd8e8;
    border-radius: 6px;
    background: #fff;
}

.billing-section[b-d03dav22vk] {
    margin-bottom: 26px;
    padding-bottom: 24px;
    border-bottom: 1px solid #dce4ef;
}

    .billing-section:last-of-type[b-d03dav22vk] {
        border-bottom: none;
    }

/* =========================================================
   セクションタイトル
   ========================================================= */

.section-title[b-d03dav22vk] {
    margin-bottom: 16px;
    font-size: 1.05rem;
    font-weight: 700;
    color: #3f4f63;
}

.section-title-row[b-d03dav22vk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.section-description[b-d03dav22vk] {
    margin: -6px 0 18px;
    font-size: 0.82rem;
    color: #66758a;
}


/* =========================================================
   入力行
   ========================================================= */

.form-row[b-d03dav22vk] {
    display: grid;
    grid-template-columns: 135px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}

/* ===== 入力ラベル ===== */

.form-label[b-d03dav22vk] {
    font-size: 0.9rem;
    font-weight: 600;
    color: #3f4f63;
}

.required-badge[b-d03dav22vk] {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 3px;
    background: #ec3d4f;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 600;
}

.form-input[b-d03dav22vk] {
    width: 100%;
    min-height: 40px;
    padding: 8px 10px;
    border: 1px solid #b8c9df;
    border-radius: 5px;
    background: #fff;
    color: #172d49;
    font-size: 0.9rem;
}

.form-input:focus[b-d03dav22vk],
.form-textarea:focus[b-d03dav22vk] {
    border-color: #2f6fed;
    outline: none;
    box-shadow: 0 0 0 2px rgba(47, 111, 237, 0.10);
}

.form-input:disabled[b-d03dav22vk] {
    background: #f3f5f8;
    color: #8793a2;
}

.postal-input[b-d03dav22vk] {
    max-width: 220px;
}

.closing-day-input[b-d03dav22vk] {
    width: 280px;
    flex: 0 0 280px;
}


/* =========================================================
   送付先
   ========================================================= */

.same-address-check[b-d03dav22vk] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #36506f;
    cursor: pointer;
}

.same-address-check input[b-d03dav22vk] {
    width: 16px;
    height: 16px;
}


/* =========================================================
   備考
   ========================================================= */

.form-textarea[b-d03dav22vk] {
    width: 100%;
    padding: 10px;
    resize: vertical;
    border: 1px solid #b8c9df;
    border-radius: 5px;
    color: #172d49;
    font-size: 0.9rem;
}


/* =========================================================
   登録ボタン
   0.245 共通デザイン
   ========================================================= */

.register-button-area[b-d03dav22vk] {
    display: flex;
    justify-content: flex-end;
    padding-top: 4px;
}

.register-button[b-d03dav22vk] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.register-button:hover:not(:disabled)[b-d03dav22vk] {
    background-color: #284f91;
    border-color: #284f91;
}

.register-button:disabled[b-d03dav22vk] {
    opacity: 0.6;
    cursor: default;
}


/* =========================================================
   右側 取引先選択
   ========================================================= */

.partner-select-area[b-d03dav22vk] {
    min-width: 0;
}

.partner-panel[b-d03dav22vk] {
    padding: 18px;
    border: 1px solid #ccd8e8;
    border-radius: 6px;
    background: #fff;
}

.partner-panel-title[b-d03dav22vk] {
    font-size: 1rem;
    font-weight: 700;
    color: #3f4f63;
}

.partner-panel-description[b-d03dav22vk] {
    margin-top: 4px;
    padding-bottom: 14px;
    border-bottom: 1px solid #dce4ef;
    font-size: 0.8rem;
    color: #66758a;
}


/* =========================================================
   検索欄
   ========================================================= */

.partner-search-box[b-d03dav22vk] {
    display: flex;
    align-items: center;
    margin-top: 16px;
    border: 1px solid #b8c9df;
    border-radius: 5px;
    background: #fff;
}

.search-icon[b-d03dav22vk] {
    padding-left: 10px;
    font-size: 0.9rem;
}

.partner-search-box input[b-d03dav22vk] {
    width: 100%;
    padding: 10px;
    border: none;
    outline: none;
    background: transparent;
    font-size: 0.85rem;
}


/* =========================================================
   検索前プレースホルダー
   ========================================================= */

.partner-placeholder[b-d03dav22vk] {
    margin-top: 16px;
    padding: 34px 16px;
    border: 1px dashed #c5d2e3;
    border-radius: 6px;
    text-align: center;
    background: #f9fbfd;
}

.partner-placeholder-icon[b-d03dav22vk] {
    margin-bottom: 8px;
    font-size: 1.8rem;
    color: #80a0c8;
}

.partner-placeholder-title[b-d03dav22vk] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #29496d;
}

.partner-placeholder-description[b-d03dav22vk] {
    margin-top: 7px;
    font-size: 0.78rem;
    line-height: 1.7;
    color: #7a899b;
}


/* =========================================================
   業者情報転記ボタン
   ========================================================= */

.copy-partner-button[b-d03dav22vk] {
    width: 100%;
    min-height: 38px;
    padding: 0 16px;
    color: #2f65c5;
    background-color: #eef5fd;
    border: 1px solid #b9cce6;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.copy-partner-button:hover:not(:disabled)[b-d03dav22vk] {
    background-color: #e3eefb;
    border-color: #9fb9da;
}

.copy-partner-button:disabled[b-d03dav22vk] {
    color: #94a3b8;
    background-color: #edf1f6;
    border-color: #cbd5e1;
    cursor: default;
}


/* =========================================================
   レスポンシブ：中間幅
   ========================================================= */

@media (max-width: 1350px) {

    /* ===== 画面全体 ===== */

    .billing-main-area[b-d03dav22vk] {
        grid-template-columns: 1fr;
    }

    .partner-select-area[b-d03dav22vk] {
        order: -1;
    }

    /* ===== 請求条件：中間幅 ===== */

    .billing-section .form-row[b-d03dav22vk] {
        grid-template-columns: 135px minmax(0, 1fr);
    }

    .billing-section:nth-of-type(2) .form-row[b-d03dav22vk] {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .billing-section:nth-of-type(2) .closing-day-input[b-d03dav22vk] {
        width: 100%;
        max-width: none;
        flex: none;
    }

    .billing-section:nth-of-type(2) .payment-due-row[b-d03dav22vk] {
        width: 100%;
    }

    .billing-section:nth-of-type(2) .payment-month-input[b-d03dav22vk],
    .billing-section:nth-of-type(2) .payment-day-input[b-d03dav22vk] {
        width: 100%;
        flex: 1 1 0;
    }
}

@media (max-width: 600px) {

    .billing-customer-page[b-d03dav22vk] {
        padding: 12px;
    }

    .form-row[b-d03dav22vk] {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .postal-input[b-d03dav22vk],
    .closing-day-input[b-d03dav22vk] {
        max-width: none;
    }

    .section-title-row[b-d03dav22vk] {
        align-items: flex-start;
        flex-direction: column;
    }

}

/* =========================================================
   支払期限
   ========================================================= */

.payment-due-row[b-d03dav22vk] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: auto;
}

.payment-due-row .payment-month-input[b-d03dav22vk] {
    width: 150px;
    flex: 0 0 150px;
}

.payment-due-row .payment-day-input[b-d03dav22vk] {
    width: 120px;
    flex: 0 0 120px;
}

/* =========================================================
   取引先検索カード
   ========================================================= */

.partner-card[b-d03dav22vk],
.transfer-source-card[b-d03dav22vk] {
    width: 100%;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #c7d4e5;
    border-radius: 6px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.partner-card:hover[b-d03dav22vk],
.transfer-source-card:hover[b-d03dav22vk] {
    background: #f3f7fd;
}

.partner-card.selected[b-d03dav22vk],
.transfer-source-card.selected[b-d03dav22vk] {
    border: 2px solid #2f6fed;
    background: #eef4ff;
}

.partner-card-name[b-d03dav22vk],
.transfer-source-name[b-d03dav22vk] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #17375e;
}

.partner-card-furigana[b-d03dav22vk] {
    margin-top: 4px;
    font-size: 0.76rem;
    color: #7b899a;
}

.selected-partner-area[b-d03dav22vk] {
    margin-top: 16px;
}

.selected-partner-label[b-d03dav22vk],
.partner-site-title[b-d03dav22vk] {
    margin-bottom: 8px;
    font-size: 0.78rem;
    font-weight: 700;
    color: #6b7d93;
}

.partner-site-title[b-d03dav22vk] {
    margin-top: 16px;
}

.transfer-source-type[b-d03dav22vk] {
    margin-bottom: 4px;
    font-size: 0.72rem;
    font-weight: 700;
    color: #2f6fed;
}

.transfer-source-address[b-d03dav22vk] {
    margin-top: 5px;
    font-size: 0.76rem;
    line-height: 1.5;
    color: #718198;
}

.no-site-message[b-d03dav22vk] {
    margin-top: 10px;
    padding: 12px;
    border-radius: 5px;
    background: #f7f9fc;
    font-size: 0.8rem;
    color: #7a899b;
}

.register-message[b-d03dav22vk] {
    margin-right: 16px;
    padding: 10px 14px;
    border-radius: 5px;
    font-size: 0.85rem;
    font-weight: 600;
}

.register-message.success[b-d03dav22vk] {
    border: 1px solid #8ac99a;
    background: #eef9f1;
    color: #25753a;
}

.register-message.error[b-d03dav22vk] {
    border: 1px solid #ef9b9b;
    background: #fff2f2;
    color: #d33434;
}

/*=========================================================
登録確認モーダル
========================================================= */

.confirm-overlay[b-d03dav22vk] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(20, 35, 55, 0.35);
}

.confirm-dialog[b-d03dav22vk] {
    width: 100%;
    max-width: 520px;
    padding: 24px;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.20);
}

.confirm-title[b-d03dav22vk] {
    padding-bottom: 16px;
    border-bottom: 1px solid #dce4ef;
    font-size: 1.1rem;
    font-weight: 700;
    color: #17375e;
}

.confirm-content[b-d03dav22vk] {
    padding: 18px 0;
}

.confirm-row[b-d03dav22vk] {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 12px;
    padding: 8px 0;
}

.confirm-row span[b-d03dav22vk] {
    font-size: 0.82rem;
    color: #718198;
}

.confirm-row strong[b-d03dav22vk] {
    font-size: 0.88rem;
    color: #183759;
}

.confirm-button-area[b-d03dav22vk] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid #dce4ef;
}

.confirm-cancel-button[b-d03dav22vk],
.confirm-register-button[b-d03dav22vk] {
    min-width: 110px;
    padding: 10px 18px;
    border-radius: 5px;
    font-weight: 700;
    cursor: pointer;
}

.confirm-cancel-button[b-d03dav22vk] {
    border: 1px solid #aebdd0;
    background: #fff;
    color: #53677e;
}

.confirm-register-button[b-d03dav22vk] {
    border: 1px solid #2f6fed;
    background: #2f6fed;
    color: #fff;
}

.confirm-register-button:hover[b-d03dav22vk] {
    background: #245bd0;
}

/* =========================================================
   削除ボタン
   0.245 共通デザイン
   ========================================================= */

.delete-button[b-d03dav22vk] {
    margin-right: 12px;
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.delete-button:hover:not(:disabled)[b-d03dav22vk] {
    color: #ffffff;
    background-color: #dc3545;
    border-color: #dc3545;
}

.delete-button:disabled[b-d03dav22vk] {
    opacity: 0.6;
    cursor: default;
}

/*=========================================================
修正削除用リストカード
========================================================= */
.billing-card-list[b-d03dav22vk] {
    margin-top: 14px;
}

.billing-customer-card[b-d03dav22vk] {
    width: 100%;
    margin-bottom: 10px;
    padding: 12px;
    border: 1px solid #c7d4e5;
    border-radius: 6px;
    background: #fff;
    text-align: left;
    cursor: pointer;
}

.billing-customer-card:hover[b-d03dav22vk] {
    background: #f3f7fd;
}

.billing-customer-card.selected[b-d03dav22vk] {
    border: 2px solid #2f6fed;
    background: #eef4ff;
}

.billing-card-name[b-d03dav22vk] {
    font-size: 0.9rem;
    font-weight: 700;
    color: #17375e;
}

.billing-card-furigana[b-d03dav22vk],
.billing-card-sub[b-d03dav22vk] {
    margin-top: 4px;
    font-size: 0.76rem;
    color: #718198;
}

.billing-card-condition[b-d03dav22vk] {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e1e7ef;
    font-size: 0.76rem;
    color: #49627e;
}

/* =========================================================
   削除確認ボタン
   ========================================================= */

.confirm-delete-button[b-d03dav22vk] {
    min-width: 110px;
    padding: 11px 22px;
    border: 1px solid #dc3545;
    border-radius: 6px;
    background-color: #dc3545;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.confirm-delete-button:hover:not(:disabled)[b-d03dav22vk] {
    background-color: #c82333;
    border-color: #bd2130;
}

.confirm-delete-button:disabled[b-d03dav22vk] {
    opacity: 0.6;
    cursor: not-allowed;
}

/* 修正・削除トグル：全画面幅で寸法統一 */
.edit-mode-switch[b-d03dav22vk] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.switch-slider[b-d03dav22vk] {
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
}

    .switch-slider[b-d03dav22vk]::after {
        width: 22px;
        height: 22px;
    }

.edit-mode-switch input:checked + .switch-slider[b-d03dav22vk]::after {
    transform: translateX(24px);
}
/* /Components/Pages/BusinessJobRegister.razor.rz.scp.css */
/* =========================================================
   BusinessJobRegister
   0.246 案件登録
   0.245 共通デザイン準拠
   ========================================================= */


/* ===== ページ全体 ===== */

.business-job-page[b-clmmhtp6s5] {
    width: 100%;
    max-width: 1180px;
    margin: 0;
    margin-left: 20px;
    padding: 24px 28px 60px;
    color: #586472;
}


/* ===== ページヘッダー ===== */

.business-job-header[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    padding: 20px 24px;
    background-color: #f5f8fc;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
}

.business-job-header-icon[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    color: #2f65c5;
    background-color: #eaf2fd;
    border: 1px solid #dce8f8;
    border-radius: 8px;
    font-size: 25px;
    line-height: 1;
}

.business-job-header-icon i[b-clmmhtp6s5] {
    line-height: 1;
}

.business-job-header-text[b-clmmhtp6s5] {
    min-width: 0;
}

.business-job-header h1[b-clmmhtp6s5] {
    margin: 0;
    color: #3f4f63;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.35;
}

.business-job-header p[b-clmmhtp6s5] {
    margin: 4px 0 0;
    color: #66758a;
    font-size: 12px;
}


/* ===== メインエリア ===== */

.business-job-main[b-clmmhtp6s5] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 20px;
    align-items: start;
}



/* ===== 左：案件登録フォーム ===== */

.business-job-form-card[b-clmmhtp6s5] {
    min-width: 0;
    padding: 20px;
    background-color: #ffffff;
    border: 1px solid #ccd8e8;
    border-radius: 6px;
    box-sizing: border-box;
}


/* ===== セクションタイトル ===== */

.business-job-section-title[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    padding-bottom: 9px;
    color: #3f4f63;
    border-bottom: 2px solid #2f65c5;
    font-size: 16px;
    font-weight: 700;
}

.business-job-section-title i[b-clmmhtp6s5] {
    color: #2f65c5;
    font-size: 16px;
}


/* ===== 仮フォーム表示 ===== */

.business-job-placeholder[b-clmmhtp6s5] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
    background-color: #f8fafc;
    border: 1px dashed #b8c9df;
    border-radius: 5px;
}

.business-job-placeholder-icon[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    color: #2f65c5;
    background-color: #eaf2fd;
    border-radius: 6px;
}

.business-job-placeholder strong[b-clmmhtp6s5] {
    display: block;
    margin-bottom: 4px;
    color: #3f4f63;
    font-size: 14px;
}

.business-job-placeholder p[b-clmmhtp6s5] {
    margin: 0;
    color: #66758a;
    font-size: 13px;
    line-height: 1.7;
}

/* ===== 無効化された入力欄 ===== */

.business-job-form-input:disabled[b-clmmhtp6s5] {
    color: #8793a2;
    background-color: #f3f5f8;
    border-color: #d5dde8;
    cursor: not-allowed;
}


/* ===== 右：検索パネル ===== */

.business-job-side-panel[b-clmmhtp6s5] {
    min-width: 0;
    padding: 18px;
    background-color: #ffffff;
    border: 1px solid #ccd8e8;
    border-radius: 6px;
    box-sizing: border-box;
}

.business-job-side-title[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: #3f4f63;
    font-size: 15px;
    font-weight: 700;
}

.business-job-side-title i[b-clmmhtp6s5] {
    color: #2f65c5;
}

.business-job-side-description[b-clmmhtp6s5] {
    margin: 0 0 18px;
    color: #66758a;
    font-size: 12px;
    line-height: 1.6;
}


/* ===== 検索欄 ===== */

.business-job-search-box label[b-clmmhtp6s5] {
    display: block;
    margin-bottom: 6px;
    color: #3f4f63;
    font-size: 13px;
    font-weight: 600;
}

.business-job-search-row[b-clmmhtp6s5] {
    display: flex;
    gap: 8px;
}

.business-job-input[b-clmmhtp6s5] {
    width: 100%;
    min-width: 0;
    height: 36px;
    padding: 0 10px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    outline: none;
    box-sizing: border-box;
    font-size: 13px;
}

.business-job-input:focus[b-clmmhtp6s5] {
    border-color: #2f65c5;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}

.business-job-search-button[b-clmmhtp6s5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 36px;
    padding: 0 14px;
    flex-shrink: 0;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    box-sizing: border-box;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
}

.business-job-search-button:hover[b-clmmhtp6s5] {
    background-color: #f5f8fc;
    border-color: #9eb3cf;
}


/* ===== 仮検索結果 ===== */

.business-job-empty-result[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 14px;
    color: #66758a;
    background-color: #f8fafc;
    border: 1px solid #e0e7f0;
    border-radius: 4px;
    font-size: 12px;
}

.business-job-empty-result i[b-clmmhtp6s5] {
    color: #7b8ca3;
}


/* =========================================================
   中間サイズ
   右パネルを上へ移動
   ========================================================= */

@media (max-width: 1350px) {

    .business-job-main[b-clmmhtp6s5] {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .business-job-side-panel[b-clmmhtp6s5] {
        grid-row: 1;
    }

    .business-job-form-card[b-clmmhtp6s5] {
        grid-row: 2;
    }

    .business-job-search-row[b-clmmhtp6s5] {
        max-width: 600px;
    }
}

/* =========================================================
   スマホ
   ========================================================= */

@media (max-width: 768px) {

    .business-job-page[b-clmmhtp6s5] {
        padding: 14px 12px 28px;
    }


    /* ===== ヘッダー ===== */

    .business-job-header[b-clmmhtp6s5] {
        gap: 10px;
        margin-bottom: 16px;
        padding: 12px 14px;
    }

    .business-job-header-icon[b-clmmhtp6s5] {
        width: 34px;
        height: 34px;
        font-size: 16px;
    }

    .business-job-header h1[b-clmmhtp6s5] {
        font-size: 19px;
    }

    .business-job-header p[b-clmmhtp6s5] {
        font-size: 12px;
    }


    /* ===== カード ===== */

    .business-job-form-card[b-clmmhtp6s5],
    .business-job-side-panel[b-clmmhtp6s5] {
        padding: 16px;
    }


    /* ===== 検索 ===== */

    .business-job-search-row[b-clmmhtp6s5] {
        display: grid;
        grid-template-columns: 1fr;
        max-width: none;
    }

    .business-job-search-button[b-clmmhtp6s5] {
        width: 100%;
    }


    /* ===== 仮フォーム ===== */

    .business-job-placeholder[b-clmmhtp6s5] {
        gap: 10px;
        padding: 14px;
    }
}


/* =========================================================
   小型スマホ
   ========================================================= */

@media (max-width: 480px) {

    .business-job-page[b-clmmhtp6s5] {
        padding-left: 10px;
        padding-right: 10px;
    }

    .business-job-header[b-clmmhtp6s5] {
        align-items: flex-start;
    }

    .business-job-header p[b-clmmhtp6s5] {
        line-height: 1.45;
    }

    .business-job-form-card[b-clmmhtp6s5],
    .business-job-side-panel[b-clmmhtp6s5] {
        padding: 14px;
    }
}

/* ===== 選択中の取引先 ===== */

.business-job-selected-customer[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background-color: #f8fafc;
    border: 1px solid #ccd8e8;
    border-radius: 5px;
}

.business-job-selected-customer-icon[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    color: #2f65c5;
    background-color: #eaf2fd;
    border-radius: 6px;
    font-size: 17px;
}

.business-job-selected-customer-info[b-clmmhtp6s5] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.business-job-selected-customer-label[b-clmmhtp6s5] {
    margin-bottom: 2px;
    color: #66758a;
    font-size: 11px;
    font-weight: 600;
}

.business-job-selected-customer-info strong[b-clmmhtp6s5] {
    color: #3f4f63;
    font-size: 14px;
    font-weight: 700;
}

.business-job-selected-customer-kana[b-clmmhtp6s5] {
    margin-top: 2px;
    color: #66758a;
    font-size: 11px;
}

/* ===== 案件区分 ===== */

.business-job-category-area[b-clmmhtp6s5] {
    margin-top: 20px;
}

.business-job-field-label[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 7px;
    color: #3f4f63;
    font-size: 13px;
    font-weight: 600;
}

.business-job-required[b-clmmhtp6s5] {
    padding: 2px 5px;
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.3;
}

.business-job-select[b-clmmhtp6s5] {
    width: 100%;
    max-width: 360px;
    height: 36px;
    padding: 0 10px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    outline: none;
    box-sizing: border-box;
    font-size: 13px;
}

.business-job-select:focus[b-clmmhtp6s5] {
    border-color: #2f65c5;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}

/* ===== 取引先検索結果 ===== */

.business-job-customer-results[b-clmmhtp6s5] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.business-job-customer-item[b-clmmhtp6s5] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    padding: 11px 12px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #c7d4e5;
    border-radius: 5px;
    box-sizing: border-box;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.business-job-customer-item:hover[b-clmmhtp6s5] {
    background-color: #f3f7fd;
    border-color: #9fb9da;
}

.business-job-customer-item.selected[b-clmmhtp6s5] {
    background-color: #eef4ff;
    border: 2px solid #2f6fed;
}

.business-job-customer-item strong[b-clmmhtp6s5] {
    color: #3f4f63;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}

.business-job-customer-item span[b-clmmhtp6s5] {
    margin-top: 3px;
    color: #66758a;
    font-size: 11px;
    line-height: 1.4;
}

/* ===== 案件番号プレビュー ===== */

.business-job-number-preview[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    padding: 10px 12px;
    max-width: 360px;
    background-color: #f8fafc;
    border: 1px solid #d7e1ee;
    border-radius: 4px;
    box-sizing: border-box;
}

.business-job-number-preview-label[b-clmmhtp6s5] {
    color: #66758a;
    font-size: 11px;
    font-weight: 600;
}

.business-job-number-preview strong[b-clmmhtp6s5] {
    color: #315da8;
    font-size: 14px;
    font-weight: 700;
}

.business-job-number-preview-note[b-clmmhtp6s5] {
    margin-left: auto;
    color: #7b8ca3;
    font-size: 10px;
}

/* ===== 案件基本情報 ===== */

.business-job-detail-area[b-clmmhtp6s5] {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #dce4ef;
}

.business-job-field[b-clmmhtp6s5] {
    margin-bottom: 18px;
}

.business-job-form-input[b-clmmhtp6s5],
.business-job-form-select[b-clmmhtp6s5],
.business-job-form-textarea[b-clmmhtp6s5] {
    width: 100%;
    max-width: 520px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 13px;
}

.business-job-form-input[b-clmmhtp6s5],
.business-job-form-select[b-clmmhtp6s5] {
    height: 38px;
    padding: 0 10px;
}

.business-job-form-textarea[b-clmmhtp6s5] {
    min-height: 90px;
    padding: 10px;
    resize: vertical;
    line-height: 1.6;
}

.business-job-form-input:focus[b-clmmhtp6s5],
.business-job-form-select:focus[b-clmmhtp6s5],
.business-job-form-textarea:focus[b-clmmhtp6s5] {
    border-color: #2f65c5;
    outline: none;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}


/* ===== 日付 ===== */

.business-job-date-row[b-clmmhtp6s5] {
    display: grid;
    grid-template-columns: 250px 250px;
    gap: 20px;
    max-width: 520px;
}

.business-job-date-row .business-job-form-input[b-clmmhtp6s5] {
    max-width: none;
}


/* ===== ステータス ===== */

.business-job-status-input[b-clmmhtp6s5] {
    max-width: 220px;
    color: #66758a;
    background-color: #f3f5f8;
}


/* ===== 事業場なし ===== */

.business-job-field-message[b-clmmhtp6s5] {
    width: 100%;
    max-width: 520px;
    padding: 10px 12px;
    color: #66758a;
    background-color: #f8fafc;
    border: 1px solid #e0e7f0;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 12px;
}


/* ===== スマホ ===== */

@media (max-width: 600px) {

    .business-job-date-row[b-clmmhtp6s5] {
        grid-template-columns: 1fr;
        gap: 0;
        max-width: none;
    }

    .business-job-form-input[b-clmmhtp6s5],
    .business-job-form-select[b-clmmhtp6s5],
    .business-job-form-textarea[b-clmmhtp6s5] {
        max-width: none;
    }

    .business-job-register-area[b-clmmhtp6s5] {
        flex-direction: column;
        align-items: stretch;
    }

    .business-job-register-button[b-clmmhtp6s5] {
        align-self: flex-end;
    }

    .business-job-edit-switch[b-clmmhtp6s5] {
        gap: 7px;
        font-size: 12px;
    }

    .switch-control[b-clmmhtp6s5] {
        flex-basis: 46px;
        width: 46px;
        height: 24px;
    }

    .switch-slider[b-clmmhtp6s5] {
        width: 46px;
        height: 24px;
    }

    .switch-slider[b-clmmhtp6s5]::after {
        top: 3px;
        left: 3px;
        width: 18px;
        height: 18px;
    }

    .switch-control input:checked + .switch-slider[b-clmmhtp6s5]::after {
        transform: translateX(22px);
    }

    .business-job-edit-buttons[b-clmmhtp6s5] {
        width: 100%;
        justify-content: flex-end;
        flex-wrap: nowrap;
    }

    .business-job-delete-button[b-clmmhtp6s5],
    .business-job-update-button[b-clmmhtp6s5] {
        flex-shrink: 0;
    }
}

/* ===== 登録エリア ===== */

.business-job-register-area[b-clmmhtp6s5] {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid #dce4ef;
}


/* ===== 登録ボタン ===== */

.business-job-register-button[b-clmmhtp6s5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    box-sizing: border-box;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}

.business-job-register-button:hover:not(:disabled)[b-clmmhtp6s5] {
    background-color: #284f91;
    border-color: #284f91;
}

.business-job-register-button:disabled[b-clmmhtp6s5] {
    opacity: 0.6;
    cursor: default;
}


/* ===== 登録メッセージ ===== */

.business-job-register-message[b-clmmhtp6s5] {
    padding: 9px 12px;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.5;
}

.business-job-register-message.success[b-clmmhtp6s5] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.business-job-register-message.error[b-clmmhtp6s5] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}

/* ===== 確認モーダル ===== */

.modal-backdrop-custom[b-clmmhtp6s5] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background-color: rgba(30, 38, 48, 0.42);
}

.confirm-modal[b-clmmhtp6s5] {
    width: 420px;
    max-width: 100%;
    padding: 24px 26px;
    background-color: #ffffff;
    border: 1px solid #cfd7e1;
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.confirm-modal h3[b-clmmhtp6s5] {
    margin: 0 0 18px;
    color: #4f5b68;
    font-size: 18px;
    font-weight: 700;
}

.confirm-summary[b-clmmhtp6s5] {
    padding: 12px 14px;
    color: #586472;
    background-color: #f8fafc;
    border: 1px solid #d7dfeb;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.8;
}

.confirm-buttons[b-clmmhtp6s5] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 20px;
}

.cancel-button[b-clmmhtp6s5],
.confirm-button[b-clmmhtp6s5] {
    height: 36px;
    padding: 0 16px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.cancel-button[b-clmmhtp6s5] {
    color: #586472;
    background-color: #ffffff;
    border: 1px solid #aebccc;
}

.cancel-button:hover:not(:disabled)[b-clmmhtp6s5] {
    background-color: #f5f7f9;
}

.confirm-button[b-clmmhtp6s5] {
    color: #ffffff;
    background-color: #2f65c5;
    border: 1px solid #2f65c5;
}

.confirm-button:hover:not(:disabled)[b-clmmhtp6s5] {
    background-color: #285ab2;
}

.cancel-button:disabled[b-clmmhtp6s5],
.confirm-button:disabled[b-clmmhtp6s5] {
    opacity: 0.6;
    cursor: default;
}

/* ===== 修正/削除スイッチ ===== */

.business-job-edit-switch[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    color: #3f4f63;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}


/* ===== スイッチ本体 ===== */

.switch-control[b-clmmhtp6s5] {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
    margin: 0;
    cursor: pointer;
}

.switch-control input[b-clmmhtp6s5] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}


/* ===== スイッチ背景 ===== */

.switch-slider[b-clmmhtp6s5] {
    position: relative;
    display: block;
    width: 52px;
    height: 28px;
    background-color: #b8c5d5;
    border-radius: 14px;
    transition: background-color 0.18s ease, box-shadow 0.18s ease;
}


/* ===== スイッチつまみ ===== */

.switch-slider[b-clmmhtp6s5]::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 22px;
    height: 22px;
    background-color: #ffffff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
    transition: transform 0.18s ease;
}


/* ===== ON ===== */

.switch-control input:checked + .switch-slider[b-clmmhtp6s5] {
    background-color: #315da8;
}

.switch-control input:checked + .switch-slider[b-clmmhtp6s5]::after {
    transform: translateX(24px);
}


/* ===== フォーカス ===== */

.switch-control input:focus-visible + .switch-slider[b-clmmhtp6s5] {
    box-shadow: 0 0 0 3px rgba(49, 93, 168, 0.15);
}

/* ===== 修正・削除ボタンエリア ===== */

.business-job-edit-buttons[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}


/* ===== 更新・削除ボタン ===== */

.business-job-delete-button[b-clmmhtp6s5],
.business-job-update-button[b-clmmhtp6s5] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    border-radius: 4px;
    box-sizing: border-box;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}


/* ===== 削除 ===== */

.business-job-delete-button[b-clmmhtp6s5] {
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
}

.business-job-delete-button:hover:not(:disabled)[b-clmmhtp6s5] {
    color: #ffffff;
    background-color: #dc3545;
}


/* ===== 更新 ===== */

.business-job-update-button[b-clmmhtp6s5] {
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
}

.business-job-update-button:hover:not(:disabled)[b-clmmhtp6s5] {
    background-color: #284f91;
    border-color: #284f91;
}


/* ===== disabled ===== */

.business-job-delete-button:disabled[b-clmmhtp6s5],
.business-job-update-button:disabled[b-clmmhtp6s5] {
    opacity: 0.6;
    cursor: default;
}

/* ===== 案件番号プレビュー ===== */

.business-job-number-preview[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    padding: 10px 12px;
    max-width: 360px;
    background-color: #f8fafc;
    border: 1px solid #d7e1ee;
    border-radius: 4px;
    box-sizing: border-box;
    white-space: nowrap;
}

.business-job-number-preview-label[b-clmmhtp6s5] {
    flex-shrink: 0;
}

.business-job-number-preview strong[b-clmmhtp6s5] {
    flex-shrink: 0;
}

.business-job-number-preview-note[b-clmmhtp6s5] {
    margin-left: auto;
    flex-shrink: 0;
}

/* ===== 編集時変更不可 ===== */

.business-job-select:disabled[b-clmmhtp6s5] {
    color: #66758a;
    background-color: #f3f5f8;
    border-color: #d5dde8;
    cursor: not-allowed;
}

/* ===== 削除確認 ===== */

.business-job-delete-warning[b-clmmhtp6s5] {
    margin-top: 12px;
    padding: 10px 12px;
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.6;
}

.delete-confirm-button[b-clmmhtp6s5] {
    height: 36px;
    padding: 0 16px;
    color: #ffffff;
    background-color: #dc3545;
    border: 1px solid #dc3545;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
}

.delete-confirm-button:hover:not(:disabled)[b-clmmhtp6s5] {
    background-color: #c82333;
    border-color: #c82333;
}

.delete-confirm-button:disabled[b-clmmhtp6s5] {
    opacity: 0.6;
    cursor: default;
    }
/* ===== 対象事業場：複数選択（0.245の色・寸法を継承） ===== */
.business-job-site-checklist[b-clmmhtp6s5] {
    width: 100%;
    max-width: 520px;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    background-color: #ffffff;
    box-sizing: border-box;
}

.business-job-site-toolbar[b-clmmhtp6s5] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px 12px;
    background-color: #f8fafc;
    border-bottom: 1px solid #dce4ef;
}

.business-job-site-action[b-clmmhtp6s5] {
    min-height: 32px;
    padding: 0 10px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
}

.business-job-site-action:hover[b-clmmhtp6s5] {
    background-color: #f3f7fd;
}

.business-job-site-action:focus-visible[b-clmmhtp6s5],
.business-job-site-item input:focus-visible[b-clmmhtp6s5] {
    outline: 2px solid #2f65c5;
    outline-offset: 2px;
    }

.business-job-site-count[b-clmmhtp6s5] {
    margin-left: auto;
    color: #66758a;
    font-size: 12px;
}

.business-job-site-list[b-clmmhtp6s5] {
    max-height: 280px;
    overflow-y: auto;
    padding: 6px 12px;
}

.business-job-site-item[b-clmmhtp6s5] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-width: 0;
    padding: 9px 0;
    margin: 0;
    color: #3f4f63;
    font-size: 13px;
    line-height: 1.6;
    cursor: pointer;
}

.business-job-site-item + .business-job-site-item[b-clmmhtp6s5] {
    border-top: 1px solid #e0e7f0;
}

.business-job-site-item input[b-clmmhtp6s5] {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 3px 0 0;
    accent-color: #315da8;
}

.business-job-site-item span[b-clmmhtp6s5] {
    min-width: 0;
    overflow-wrap: anywhere;
    }
/* 多数の事業場を確認できるよう、既存モーダルの寸法・色を保ってスクロール */
.confirm-modal[b-clmmhtp6s5] {
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    box-sizing: border-box;
}

.confirm-summary[b-clmmhtp6s5] {
    overflow-wrap: anywhere;
}

@media (max-width: 600px) {
    .business-job-site-checklist[b-clmmhtp6s5] {
        max-width: none;
    }

    .business-job-site-toolbar[b-clmmhtp6s5] {
        padding: 10px;
    }

    .business-job-site-count[b-clmmhtp6s5] {
        flex-basis: 100%;
        margin-left: 0;
    }

    .business-job-site-list[b-clmmhtp6s5] {
        max-height: 240px;
        padding: 6px 10px;
    }

    .business-job-site-item[b-clmmhtp6s5] {
        padding: 11px 0;
    }
}

/* ===== 対象事業場一覧 ===== */

.business-job-site-list[b-clmmhtp6s5] {
    max-height: 205px;
    overflow-y: auto;
    overscroll-behavior: contain;
}


/* ===== スクロールバー ===== */

.business-job-site-list[b-clmmhtp6s5]::-webkit-scrollbar {
    width: 8px;
}

.business-job-site-list[b-clmmhtp6s5]::-webkit-scrollbar-track {
    background-color: #f5f8fc;
}

.business-job-site-list[b-clmmhtp6s5]::-webkit-scrollbar-thumb {
    background-color: #c3cfdd;
    border-radius: 4px;
}

.business-job-site-list[b-clmmhtp6s5]::-webkit-scrollbar-thumb:hover {
    background-color: #aebdce;
}
/* /Components/Pages/ContractRegister.razor.rz.scp.css */
/* Contract generation toolbar and standard confirmation modal. */
.contract-mode-toolbar[b-pqqr22q50s] { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.contract-mode-toolbar .contract-mode-switch[b-pqqr22q50s] { margin-bottom: 0; }
.contract-generate-button[b-pqqr22q50s] { box-sizing: border-box; max-width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-left: auto; min-height: 42px; padding: 10px 24px; border: 1px solid #3c84ad; border-radius: 6px; background: #4b94be; color: #fff; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.contract-generate-button:hover:not(:disabled)[b-pqqr22q50s] { background: #377fa8; }
.contract-generate-button:disabled[b-pqqr22q50s], .generation-modal button[aria-disabled="true"][b-pqqr22q50s] { opacity: .6; cursor: wait; }
.contract-generate-button:focus-visible[b-pqqr22q50s], .generation-modal button:focus-visible[b-pqqr22q50s] { outline: 3px solid #2a668c; outline-offset: 3px; }
.generation-result[b-pqqr22q50s] { display: grid; gap: 5px; overflow-wrap: anywhere; }
.contract-confirm-modal.generation-modal[b-pqqr22q50s] { box-sizing: border-box; width: min(720px, calc(100vw - 32px)); max-width: 720px; max-height: calc(100dvh - 40px); overflow-y: auto; overflow-wrap: anywhere; }
.generation-modal .contract-confirm-row strong[b-pqqr22q50s] { min-width: 0; overflow-wrap: anywhere; }
.generation-errors[b-pqqr22q50s], .generation-warnings[b-pqqr22q50s] { margin-top: 14px; padding: 12px 14px; border-radius: 6px; line-height: 1.7; font-size: 12px; white-space: pre-line; }
.generation-errors[b-pqqr22q50s] { color: #8c3030; background: #fff2f2; border: 1px solid #e2bebe; }
.generation-warnings[b-pqqr22q50s] { color: #6d571f; background: #fffaf0; border: 1px solid #e6d4a6; }
.generation-errors ul[b-pqqr22q50s], .generation-warnings ul[b-pqqr22q50s] { margin: 6px 0 0; padding-left: 20px; }
@media (max-width: 600px) { .contract-mode-toolbar[b-pqqr22q50s] { align-items: stretch; } .contract-generate-button[b-pqqr22q50s] { width: 100%; margin-left: 0; } .generation-modal .contract-confirm-row[b-pqqr22q50s] { grid-template-columns: 86px minmax(0, 1fr); gap: 8px; } }

/* ===== 契約台帳作成画面 ===== */

.contract-page[b-pqqr22q50s] {
    width: 100%;
    max-width: 1600px;
    min-height: 100%;
    margin: 0 0 0 20px;
    padding: 24px 28px 40px;
    color: #3f4f63;
    background-color: #eef7fb;
    box-sizing: border-box;
    border-radius: 8px;
    box-sizing: border-box;
}

/* ===== ページヘッダー ===== */

.contract-header[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.contract-header-icon[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    color: #ffffff;
    background-color: #4B94BE;
    border-radius: 6px;
    font-size: 22px;
}

.contract-header h1[b-pqqr22q50s] {
    margin: 0;
    color: #344154;
    font-size: 24px;
    font-weight: 700;
}

.contract-header p[b-pqqr22q50s] {
    margin: 4px 0 0;
    color: #77869a;
    font-size: 13px;
}

/* ===== 登録モード切替 ===== */

.contract-mode-switch[b-pqqr22q50s] {
    display: inline-flex;
    max-width: 100%;
    margin-bottom: 16px;
    padding: 4px;
    gap: 4px;
    background-color: #dceef6;
    border: 1px solid #bed9e8;
    border-radius: 7px;
    box-sizing: border-box;
}

.contract-mode-button[b-pqqr22q50s] {
    display: inline-flex;
    min-height: 38px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #597086;
    background-color: transparent;
    border: 0;
    border-radius: 5px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.contract-mode-button:hover[b-pqqr22q50s] {
    color: #3d7fa6;
    background-color: rgba(255, 255, 255, 0.55);
}

.contract-mode-button.active[b-pqqr22q50s] {
    color: #ffffff;
    background-color: #4B94BE;
    box-shadow: 0 1px 4px rgba(48, 105, 137, 0.22);
}

/* ===== 契約情報タブ ===== */

.contract-tabs[b-pqqr22q50s] {
    display: flex;
    margin-bottom: 20px;
    overflow-x: auto;
    background-color: #ffffff;
    border: 1px solid #bed9e8;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(75, 148, 190, 0.08);
    scrollbar-width: thin;
}

.contract-tab[b-pqqr22q50s] {
    position: relative;
    display: inline-flex;
    min-width: 150px;
    height: 54px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    flex: 1 0 auto;
    gap: 8px;
    color: #607086;
    background-color: #ffffff;
    border: 0;
    border-right: 1px solid #dcebf3;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.contract-tab:last-child[b-pqqr22q50s] {
    border-right: 0;
}

.contract-tab[b-pqqr22q50s]::after {
    position: absolute;
    right: 12px;
    bottom: 0;
    left: 12px;
    height: 3px;
    background-color: transparent;
    border-radius: 3px 3px 0 0;
    content: "";
}

.contract-tab:not(:disabled):hover[b-pqqr22q50s] {
    color: #3d7fa6;
    background-color: #f4fbfe;
}

.contract-tab.active[b-pqqr22q50s] {
    color: #3d7fa6;
    background-color: #eef8fc;
}

.contract-tab.active[b-pqqr22q50s]::after {
    background-color: #4B94BE;
}

.contract-tab.locked[b-pqqr22q50s] {
    color: #9aa8b8;
    background-color: #f8fafc;
    cursor: not-allowed;
}

.contract-tab-lock[b-pqqr22q50s] {
    margin-left: 2px;
    color: #a8b4c1;
    font-size: 10px;
}

/* ===== 後続タブ用プレースホルダー ===== */

.contract-future-panel[b-pqqr22q50s] {
    display: flex;
    min-height: 220px;
    padding: 32px;
    align-items: center;
    justify-content: center;
    gap: 18px;
    color: #607086;
    background-color: #ffffff;
    border: 1px solid #bed9e8;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(75, 148, 190, 0.08);
    box-sizing: border-box;
    text-align: left;
}

.contract-future-icon[b-pqqr22q50s] {
    display: flex;
    width: 52px;
    height: 52px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    color: #4B94BE;
    background-color: #eef8fc;
    border-radius: 50%;
    font-size: 22px;
}

.contract-future-panel h2[b-pqqr22q50s] {
    margin: 0;
    color: #344154;
    font-size: 18px;
}

.contract-future-panel p[b-pqqr22q50s] {
    margin: 6px 0 0;
    font-size: 12px;
    line-height: 1.7;
}

/* ===== メインエリア ===== */

.contract-main[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 440px;
    align-items: start;
    gap: 20px;
}

.contract-form-card[b-pqqr22q50s],
.contract-side-panel[b-pqqr22q50s] {
    background-color: #ffffff;
    border: 1px solid #bed9e8;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(75, 148, 190, 0.08);
}

.contract-form-card[b-pqqr22q50s] {
    min-height: 430px;
    padding: 22px 24px;
}

.contract-side-panel[b-pqqr22q50s] {
    padding: 20px;
}

.contract-section-title[b-pqqr22q50s],
.contract-side-title[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #3d5068;
    font-size: 15px;
    font-weight: 700;
}

.contract-section-title[b-pqqr22q50s] {
    padding-bottom: 14px;
    border-bottom: 1px solid #dce4ef;
}

.contract-section-title i[b-pqqr22q50s],
.contract-side-title i[b-pqqr22q50s] {
    color: #4B94BE;
}

/* ===== 未選択表示 ===== */

.contract-placeholder[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 22px;
    padding: 22px;
    color: #66758a;
    background-color: #f8fafc;
    border: 1px dashed #c7d4e4;
    border-radius: 5px;
}

.contract-placeholder-icon[b-pqqr22q50s] {
    color: #8aa0ba;
    font-size: 28px;
}

.contract-placeholder p[b-pqqr22q50s] {
    margin: 4px 0 0;
    font-size: 12px;
}

/* ===== 選択案件 ===== */

.contract-selected-job[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-top: 20px;
    padding: 14px 16px;
    background-color: #f0f9ff;
    border: 1px solid #cbd9ec;
    border-radius: 5px;
    border-color: #bae6fd;
}

.contract-selected-job-icon[b-pqqr22q50s] {
    color: #4B94BE;
    font-size: 22px;
}

.contract-selected-job-info[b-pqqr22q50s] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.contract-selected-job-info span[b-pqqr22q50s],
.contract-selected-job-info small[b-pqqr22q50s] {
    color: #73839a;
    font-size: 11px;
}

.contract-selected-job-info strong[b-pqqr22q50s] {
    overflow-wrap: anywhere;
    color: #344154;
    font-size: 14px;
}

/* ===== 入力項目 ===== */

.contract-detail-area[b-pqqr22q50s] {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid #dce4ef;
}

.contract-field[b-pqqr22q50s] {
    margin-bottom: 18px;
}

.contract-field-label[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 7px;
    color: #4d5e73;
    font-size: 12px;
    font-weight: 600;
}

.contract-required[b-pqqr22q50s] {
    padding: 2px 6px;
    color: #ffffff;
    background-color: #d85858;
    border-radius: 3px;
    font-size: 9px;
}

.contract-form-input[b-pqqr22q50s],
.contract-form-select[b-pqqr22q50s] {
    width: 100%;
    max-width: 520px;
    height: 38px;
    padding: 0 10px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 13px;
}

.contract-form-input:focus[b-pqqr22q50s],
.contract-form-select:focus[b-pqqr22q50s],
.contract-search-input:focus[b-pqqr22q50s] {
    border-color: #2f65c5;
    outline: none;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}

.contract-number-preview[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    max-width: 360px;
    padding: 10px 12px;
    background-color: #f8fafc;
    border: 1px solid #d7e1ee;
    border-radius: 4px;
    box-sizing: border-box;
}

.contract-number-preview strong[b-pqqr22q50s] {
    color: #4B94BE;
    font-size: 15px;
}

.contract-number-preview span[b-pqqr22q50s] {
    margin-left: auto;
    color: #7b8ca3;
    font-size: 10px;
}

.contract-skeleton-note[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 520px;
    padding: 10px 12px;
    color: #66758a;
    background-color: #f8fafc;
    border: 1px solid #e0e7f0;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 11px;
}

/* ===== 案件検索 ===== */

.contract-side-description[b-pqqr22q50s] {
    margin: 10px 0 18px;
    color: #718096;
    font-size: 12px;
    line-height: 1.6;
}

.contract-search-box label[b-pqqr22q50s] {
    display: block;
    margin-bottom: 7px;
    color: #4d5e73;
    font-size: 12px;
    font-weight: 600;
}

.contract-search-input[b-pqqr22q50s] {
    width: 100%;
    height: 38px;
    padding: 0 10px;
    color: #3f4f63;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 12px;
}

.contract-empty-result[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 120px;
    margin-top: 14px;
    padding: 18px;
    color: #8593a5;
    background-color: #f8fafc;
    border: 1px dashed #d1dbe7;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 12px;
    text-align: center;
}

.contract-job-results[b-pqqr22q50s] {
    display: flex;
    max-height: 430px;
    margin-top: 14px;
    overflow-y: auto;
    flex-direction: column;
    gap: 7px;
}

.contract-job-item[b-pqqr22q50s] {
    display: flex;
    width: 100%;
    padding: 11px 12px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #d5dfeb;
    border-radius: 4px;
    cursor: pointer;
    flex-direction: column;
    gap: 3px;
    text-align: left;
}

.contract-job-item:hover[b-pqqr22q50s],
.contract-job-item.selected[b-pqqr22q50s] {
    background-color: #e1f1f8;
    border-color: #4B94BE;
}

.contract-job-number[b-pqqr22q50s] {
    color: #4B94BE;
    font-size: 11px;
    font-weight: 700;
}

.contract-job-item strong[b-pqqr22q50s] {
    overflow-wrap: anywhere;
    font-size: 13px;
}

.contract-job-item small[b-pqqr22q50s] {
    color: #7b8ca3;
    font-size: 11px;
}

.contract-search-result strong[b-pqqr22q50s],
.contract-search-result small[b-pqqr22q50s] {
    width: 100%;
}

/* ===== メッセージ ===== */

.contract-message[b-pqqr22q50s] {
    margin-bottom: 16px;
    padding: 10px 12px;
    border-radius: 4px;
    font-size: 12px;
}

.contract-message.error[b-pqqr22q50s] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}

/* ===== レスポンシブ ===== */

@media (max-width: 1350px) {
    .contract-main[b-pqqr22q50s] {
        grid-template-columns: 1fr;
    }

    .contract-side-panel[b-pqqr22q50s] {
        grid-row: 1;
    }
}

@media (max-width: 600px) {
    .contract-page[b-pqqr22q50s] {
        padding: 18px 14px 30px;
        margin-left: 0;
    }

    .contract-header[b-pqqr22q50s] {
        align-items: flex-start;
    }

    .contract-header h1[b-pqqr22q50s] {
        font-size: 20px;
    }

    .contract-mode-switch[b-pqqr22q50s] {
        display: flex;
        width: 100%;
    }

    .contract-mode-button[b-pqqr22q50s] {
        min-width: 0;
        padding: 0 10px;
        flex: 1 1 50%;
        white-space: normal;
        line-height: 1.35;
    }

    .contract-tabs[b-pqqr22q50s] {
        margin-right: -14px;
        margin-left: -14px;
        border-right: 0;
        border-left: 0;
        border-radius: 0;
    }

    .contract-tab[b-pqqr22q50s] {
        min-width: 128px;
        height: 50px;
        padding: 0 12px;
        font-size: 12px;
    }

    .contract-form-card[b-pqqr22q50s],
    .contract-side-panel[b-pqqr22q50s] {
        padding: 17px 15px;
    }

    .contract-future-panel[b-pqqr22q50s] {
        padding: 24px 18px;
        align-items: flex-start;
        flex-direction: column;
    }

    .contract-placeholder[b-pqqr22q50s],
    .contract-selected-job[b-pqqr22q50s] {
        align-items: flex-start;
    }

    .contract-form-input[b-pqqr22q50s],
    .contract-form-select[b-pqqr22q50s],
    .contract-number-preview[b-pqqr22q50s],
    .contract-skeleton-note[b-pqqr22q50s] {
        max-width: none;
    }

    .contract-number-preview[b-pqqr22q50s] {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .contract-number-preview span[b-pqqr22q50s] {
        margin-left: 0;
    }

    .contract-selected-jobs-header[b-pqqr22q50s] {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .contract-selected-jobs-header > div[b-pqqr22q50s] {
        flex-wrap: wrap;
    }
}

/* =========================================================
   単価情報
   ========================================================= */

.rate-page[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    align-items: start;
    gap: 20px;
}

.rate-form-card[b-pqqr22q50s],
.rate-list-card[b-pqqr22q50s] {
    padding: 22px 24px;
    background: #fff;
    border: 1px solid #bed9e8;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(75, 148, 190, .08);
}

.rate-contract-badge[b-pqqr22q50s] {
    margin-left: auto;
    padding: 5px 10px;
    color: #3d7fa6;
    background: #eef8fc;
    border: 1px solid #bed9e8;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.rate-form-card .contract-message[b-pqqr22q50s] {
    margin-top: 14px;
}

.rate-form-grid[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 18px;
    margin-top: 20px;
}

.rate-form-grid .contract-form-input[b-pqqr22q50s],
.rate-form-grid .contract-form-select[b-pqqr22q50s],
.rate-form-grid .contract-form-textarea[b-pqqr22q50s] {
    max-width: none;
}

.rate-span-2[b-pqqr22q50s] {
    grid-column: 1 / -1;
}

.rate-price-fields[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.rate-number-input[b-pqqr22q50s] {
    text-align: right;
}

.rate-field-help[b-pqqr22q50s] {
    display: block;
    margin-top: 5px;
    color: #7b8ca3;
    font-size: 10px;
}

.rate-override-field[b-pqqr22q50s] {
    align-self: center;
}

.rate-check-item[b-pqqr22q50s],
.rate-waste-item[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #3f4f63;
    font-size: 12px;
    cursor: pointer;
}

.rate-check-item input[b-pqqr22q50s],
.rate-waste-item input[b-pqqr22q50s] {
    accent-color: #4B94BE;
}

.rate-waste-help[b-pqqr22q50s] {
    margin: 0 0 8px;
    color: #718096;
    font-size: 11px;
}

.rate-waste-grid[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 12px;
    background: #f7fbfd;
    border: 1px solid #bed9e8;
    border-radius: 5px;
}

.rate-waste-item[b-pqqr22q50s] {
    align-items: flex-start;
    padding: 7px 8px;
    background: #fff;
    border: 1px solid #dcebf3;
    border-radius: 4px;
    line-height: 1.4;
}

.rate-waste-item:has(input:checked)[b-pqqr22q50s] {
    background: #eaf5fb;
    border-color: #8fc4df;
}

.rate-waste-empty[b-pqqr22q50s] {
    padding: 12px;
    color: #718096;
    background: #f7fbfd;
    border: 1px dashed #bed9e8;
    border-radius: 5px;
    font-size: 11px;
}

.rate-profit-preview[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 14px;
    background: #eef8fc;
    border: 1px solid #bed9e8;
    border-radius: 5px;
}

.rate-profit-preview div[b-pqqr22q50s],
.rate-item-prices div[b-pqqr22q50s] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.rate-profit-preview span[b-pqqr22q50s],
.rate-item-prices span[b-pqqr22q50s] {
    color: #718096;
    font-size: 10px;
}

.rate-profit-preview strong[b-pqqr22q50s] {
    color: #237a57;
    font-size: 17px;
}

.rate-list-title[b-pqqr22q50s],
.rate-list-title > div[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rate-list-title[b-pqqr22q50s] {
    justify-content: space-between;
    padding-bottom: 14px;
    color: #3d5068;
    border-bottom: 1px solid #dce4ef;
    font-size: 14px;
    font-weight: 700;
}

.rate-list-title i[b-pqqr22q50s] { color: #4B94BE; }
.rate-list-title > span[b-pqqr22q50s] { color: #718096; font-size: 11px; }

.rate-empty[b-pqqr22q50s] {
    display: flex;
    min-height: 150px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
    color: #8593a5;
    font-size: 12px;
}

.rate-empty i[b-pqqr22q50s] { color: #8eb8cf; font-size: 28px; }

.rate-card-list[b-pqqr22q50s] {
    display: flex;
    margin-top: 15px;
    flex-direction: column;
    gap: 10px;
}

.rate-item-card[b-pqqr22q50s] {
    padding: 15px;
    background: #fbfdfe;
    border: 1px solid #d5e5ee;
    border-radius: 6px;
}

.rate-item-head[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.rate-item-head strong[b-pqqr22q50s] { color: #344154; font-size: 14px; }
.rate-unit[b-pqqr22q50s] { color: #718096; font-size: 11px; }

.rate-method-badge[b-pqqr22q50s],
.rate-override-badge[b-pqqr22q50s] {
    padding: 3px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
}

.rate-method-badge[b-pqqr22q50s] { color: #3d7194; background: #e7f4fa; }
.rate-override-badge[b-pqqr22q50s] { color: #8a5a12; background: #fff6df; }

.rate-item-waste-types[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    margin-top: 10px;
    padding: 8px 10px;
    background: #f4f8fb;
    border-radius: 4px;
    font-size: 11px;
}

.rate-item-waste-types span[b-pqqr22q50s] { color: #718096; }
.rate-item-waste-types strong[b-pqqr22q50s] { color: #3f4f63; overflow-wrap: anywhere; }

.rate-scope-list[b-pqqr22q50s] {
    display: flex;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.rate-scope[b-pqqr22q50s] {
    width: 100%;
    min-width: 0;
    padding: 4px 7px;
    overflow-wrap: anywhere;
    border-radius: 3px;
    font-size: 10px;
    font-weight: 700;
}

.rate-scope.job[b-pqqr22q50s] { color: #3d7194; background: #e7f4fa; }
.rate-scope.site[b-pqqr22q50s] { color: #237a57; background: #edf9f3; }

.rate-item-prices[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 13px;
    padding: 11px;
    background: #fff;
    border-radius: 4px;
}

.rate-item-prices strong[b-pqqr22q50s] {
    overflow-wrap: anywhere;
    color: #3f4f63;
    font-size: 12px;
}

.rate-item-meta[b-pqqr22q50s] {
    display: flex;
    margin-top: 11px;
    flex-direction: column;
    gap: 5px;
    color: #718096;
    font-size: 10px;
}

.rate-item-notes[b-pqqr22q50s] { white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1200px) {
    .rate-page[b-pqqr22q50s] { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
    .rate-form-card[b-pqqr22q50s],
    .rate-list-card[b-pqqr22q50s] { padding: 17px 15px; }

    .rate-form-grid[b-pqqr22q50s] { grid-template-columns: 1fr; }
    .rate-span-2[b-pqqr22q50s] { grid-column: auto; }
    .rate-item-prices[b-pqqr22q50s] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rate-waste-grid[b-pqqr22q50s] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
    .rate-price-fields[b-pqqr22q50s],
    .rate-profit-preview[b-pqqr22q50s] { grid-template-columns: 1fr; }
    .rate-waste-grid[b-pqqr22q50s] { grid-template-columns: 1fr; }
    .rate-contract-badge[b-pqqr22q50s] { width: 100%; margin: 8px 0 0; text-align: center; }
}

/* ===== 関係業者 ===== */

.partner-page[b-pqqr22q50s] { display: grid; gap: 18px; }
.partner-intro-card[b-pqqr22q50s], .partner-role-card[b-pqqr22q50s], .partner-list-card[b-pqqr22q50s] {
    padding: 22px; background: #fff; border: 1px solid #dcebf3; border-radius: 8px; box-shadow: 0 3px 12px rgba(61, 127, 166, .08);
}
.partner-intro-card > p[b-pqqr22q50s] { margin: 12px 0 0; color: #718096; font-size: 13px; }
.partner-role-grid[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.partner-role-card[b-pqqr22q50s] { display: grid; gap: 15px; }
.partner-role-title[b-pqqr22q50s] { display: flex; align-items: center; gap: 11px; padding-bottom: 12px; border-bottom: 1px solid #dcebf3; }
.partner-role-title > i[b-pqqr22q50s] { display: grid; place-items: center; width: 38px; height: 38px; color: #fff; background: #4B94BE; border-radius: 8px; font-size: 18px; }
.partner-role-title h2[b-pqqr22q50s] { margin: 0; color: #344154; font-size: 15px; }
.partner-role-title span[b-pqqr22q50s] { color: #718096; font-size: 11px; }
.partner-choice[b-pqqr22q50s] { display: flex; gap: 8px; }
.partner-choice label[b-pqqr22q50s] { flex: 1; padding: 9px 10px; color: #3f4f63; background: #f7fbfd; border: 1px solid #bed9e8; border-radius: 5px; font-size: 12px; cursor: pointer; }
.partner-choice input[b-pqqr22q50s] { margin-right: 5px; accent-color: #4B94BE; }
.partner-own-company[b-pqqr22q50s] { display: flex; align-items: center; gap: 8px; min-height: 42px; padding: 10px 12px; color: #344154; background: #eef7fb; border: 1px solid #bed9e8; border-radius: 5px; }
.partner-own-company i[b-pqqr22q50s] { color: #4B94BE; }
.partner-own-company span[b-pqqr22q50s], .partner-own-badge[b-pqqr22q50s] { margin-left: auto; padding: 3px 7px; color: #237a57; background: #edf9f3; border: 1px solid #b8e0cd; border-radius: 999px; font-size: 10px; font-weight: 700; }
.partner-add-button[b-pqqr22q50s] { width: 100%; min-height: 40px; padding: 0 14px; color: #fff; background: #4B94BE; border: 0; border-radius: 5px; font-weight: 700; cursor: pointer; }
.partner-add-button:hover[b-pqqr22q50s] { background: #3d7fa6; }
.partner-add-button:disabled[b-pqqr22q50s] { cursor: not-allowed; opacity: .65; }
.partner-transport-card[b-pqqr22q50s] { align-content: start; }
.transport-segment-editor[b-pqqr22q50s] { display: grid; gap: 12px; padding: 13px; background: #f8fbfd; border: 1px solid #bed9e8; border-radius: 7px; }
.transport-segment-editor + .transport-segment-editor[b-pqqr22q50s] { margin-top: 2px; }
.transport-segment-heading[b-pqqr22q50s] { display: flex; align-items: center; justify-content: space-between; color: #3d7fa6; font-size: 13px; }
.transport-segment-heading button[b-pqqr22q50s] { display: grid; width: 27px; height: 27px; place-items: center; color: #718096; background: #fff; border: 1px solid #d5e5ee; border-radius: 4px; cursor: pointer; }
.partner-secondary-button[b-pqqr22q50s] { width: 100%; min-height: 38px; color: #3d7fa6; background: #eef8fc; border: 1px dashed #8fc4df; border-radius: 5px; font-weight: 700; cursor: pointer; }
.partner-secondary-button:disabled[b-pqqr22q50s] { cursor: not-allowed; opacity: .55; }
.partner-search[b-pqqr22q50s] { min-width: 0; }
.partner-search-input[b-pqqr22q50s] { width: 100%; min-height: 36px; margin-top: 6px; padding: 7px 9px; box-sizing: border-box; color: #3f4f63; background: #fff; border: 1px solid #b8c9df; border-radius: 4px; font: inherit; font-size: 12px; }
.partner-search-input:focus[b-pqqr22q50s] { border-color: #4B94BE; outline: none; box-shadow: 0 0 0 2px rgba(75, 148, 190, .1); }
.partner-search-results[b-pqqr22q50s] { display: grid; max-height: 190px; margin-top: 6px; overflow-y: auto; gap: 5px; scrollbar-gutter: stable; }
.partner-search-results.compact[b-pqqr22q50s] { max-height: 145px; }
.partner-option[b-pqqr22q50s] { display: flex; min-width: 0; padding: 8px 9px; align-items: flex-start; flex-direction: column; gap: 2px; text-align: left; color: #344154; background: #fff; border: 1px solid #dcebf3; border-radius: 4px; cursor: pointer; }
.partner-option:hover[b-pqqr22q50s] { background: #f1f8fc; border-color: #8fc4df; }
.partner-option.selected[b-pqqr22q50s] { background: #eaf5fb; border-color: #4B94BE; box-shadow: inset 3px 0 #4B94BE; }
.partner-option strong[b-pqqr22q50s], .partner-option small[b-pqqr22q50s] { width: 100%; overflow-wrap: anywhere; }
.partner-option strong[b-pqqr22q50s] { font-size: 11px; }
.partner-option small[b-pqqr22q50s] { color: #718096; font-size: 9px; }
.vendor-mode[b-pqqr22q50s] { display: flex; gap: 4px; margin: 5px 0; }
.vendor-mode button[b-pqqr22q50s] { padding: 5px 9px; color: #35536b; background: #fff; border: 1px solid #b9d8e8; border-radius: 5px; cursor: pointer; font-size: 11px; }
.vendor-mode button.active[b-pqqr22q50s] { color: #fff; background: #367eaa; border-color: #367eaa; }
.vendor-empty[b-pqqr22q50s] { margin: 5px 0; color: #526779; font-size: 11px; line-height: 1.5; }
.vendor-badges[b-pqqr22q50s] { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 2px; }
.vendor-badges span[b-pqqr22q50s] { padding: 1px 4px; color: #286387; background: #eaf5fb; border-radius: 3px; font-size: 9px; line-height: 1.3; }
.permit-coverage[b-pqqr22q50s] { display: inline-block; margin-top: 3px; padding: 2px 6px; color: #286387; background: #eaf5fb; border-radius: 4px; font-size: 10px; }
.permit-coverage.is-covered[b-pqqr22q50s] { color: #237a57; background: #edf9f3; }
.permit-coverage.is-partial[b-pqqr22q50s] { color: #825b15; background: #fff5df; }
.permit-coverage.is-expired[b-pqqr22q50s], .permit-coverage.is-missing[b-pqqr22q50s] { color: #9a493b; background: #fff0ec; }
.partner-option .permit-detail[b-pqqr22q50s] { display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #685b51; font-size: 10px; }
.permit-warning[b-pqqr22q50s] { padding: 12px; color: #754c13; background: #fff7e6; border: 1px solid #e8c77d; border-radius: 7px; font-size: 12px; line-height: 1.5; }
.permit-warning p[b-pqqr22q50s] { margin: 5px 0; overflow-wrap: anywhere; }
.partner-list-group[b-pqqr22q50s] { margin-top: 16px; }
.partner-list-group h3[b-pqqr22q50s] { margin: 0 0 8px; padding-bottom: 7px; color: #3d7fa6; border-bottom: 1px solid #dcebf3; font-size: 13px; }
.partner-list-item[b-pqqr22q50s] { display: grid; gap: 5px; padding: 11px 12px; background: #f7fbfd; border: 1px solid #dcebf3; border-radius: 5px; }
.partner-list-item + .partner-list-item[b-pqqr22q50s] { margin-top: 7px; }
.partner-list-item > div[b-pqqr22q50s] { display: flex; align-items: center; gap: 8px; color: #344154; font-size: 13px; }
.partner-list-item > span[b-pqqr22q50s] { color: #5f7185; font-size: 12px; }
.partner-list-item > span i[b-pqqr22q50s] { margin-right: 5px; color: #4B94BE; }
.partner-list-item small[b-pqqr22q50s] { color: #718096; white-space: pre-wrap; }

@media (max-width: 1050px) { .partner-role-grid[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
    .partner-intro-card[b-pqqr22q50s], .partner-role-card[b-pqqr22q50s], .partner-list-card[b-pqqr22q50s] { padding: 16px; }
    .partner-choice[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ===== 備考 ===== */

.contract-form-textarea[b-pqqr22q50s] {
    width: 100%;
    max-width: 520px;
    min-height: 90px;
    padding: 9px 10px;
    color: #3f4f63;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
    border-radius: 4px;
    box-sizing: border-box;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
}

.contract-form-textarea:focus[b-pqqr22q50s] {
    border-color: #4B94BE;
    outline: none;
    box-shadow: 0 0 0 2px rgba(75, 148, 190, 0.10);
}

/* =========================================================
   登録確認ボタン
   ========================================================= */

.contract-action-area[b-pqqr22q50s] {
    display: flex;
    justify-content: flex-end;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px dashed #bed9e8;
}

.rate-action-area[b-pqqr22q50s] {
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.rate-action-area .partner-secondary-button[b-pqqr22q50s] {
    width: auto;
    min-height: 38px;
    padding: 0 16px;
    font-size: 13px;
    border-radius: 4px;
    margin-right: auto;
}

.rate-form-delete-button[b-pqqr22q50s] {
    min-height: 38px;
    padding: 0 16px;
    color: #FFFFFF;
    background: #2a5c78;
    border: 1px solid #2a5c78;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.rate-form-delete-button:hover:not(:disabled)[b-pqqr22q50s] { background: #214b63; }
.rate-form-delete-button:disabled[b-pqqr22q50s] { opacity: .55; cursor: default; }

.contract-confirm-button[b-pqqr22q50s] {
    min-width: 140px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #4B94BE;
    border: 1px solid #4B94BE;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

    .contract-confirm-button:hover[b-pqqr22q50s] {
        background-color: #3D7FA6;
        border-color: #3D7FA6;
    }


/* ===== 入力エラー ===== */

.contract-validation-message[b-pqqr22q50s] {
    margin-top: 18px;
    padding: 9px 12px;
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
}


/* =========================================================
   確認モーダル
   ========================================================= */

.contract-confirm-overlay[b-pqqr22q50s] {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background-color: rgba(15, 23, 42, 0.38);
    z-index: 1000;
}

.contract-confirm-modal[b-pqqr22q50s] {
    width: 100%;
    max-width: 560px;
    max-height: calc(100vh - 40px);
    padding: 24px;
    overflow-y: auto;
    background-color: #ffffff;
    border: 1px solid #bed9e8;
    border-radius: 8px;
    box-shadow: 0 12px 32px rgba(30, 60, 80, 0.18);
}

.rate-confirm-modal[b-pqqr22q50s] {
    max-width: 620px;
}

.rate-confirm-scope[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 7px 14px;
}

.contract-confirm-title[b-pqqr22q50s] {
    color: #344154;
    font-size: 18px;
    font-weight: 700;
}

.contract-confirm-description[b-pqqr22q50s] {
    margin-top: 5px;
    margin-bottom: 18px;
    color: #718096;
    font-size: 12px;
}


/* ===== 選択案件 ===== */

.contract-confirm-job[b-pqqr22q50s] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 18px;
    padding: 13px 15px;
    background-color: #eef7fb;
    border: 1px solid #bed9e8;
    border-radius: 5px;
}

.contract-confirm-job span[b-pqqr22q50s],
.contract-confirm-job small[b-pqqr22q50s] {
    color: #718096;
    font-size: 11px;
}

.contract-confirm-job strong[b-pqqr22q50s] {
    color: #344154;
    font-size: 14px;
}


/* ===== 確認内容 ===== */

.contract-confirm-list[b-pqqr22q50s] {
    border-top: 1px solid #e2e8f0;
}

.contract-confirm-row[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 14px;
    padding: 10px 4px;
    border-bottom: 1px solid #e2e8f0;
}

.contract-confirm-row > span[b-pqqr22q50s] {
    color: #718096;
    font-size: 12px;
}

.contract-confirm-row > strong[b-pqqr22q50s] {
    color: #3f4f63;
    font-size: 13px;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.contract-confirm-notes strong[b-pqqr22q50s] {
    white-space: pre-wrap;
}


/* ===== ボタン ===== */

.contract-confirm-actions[b-pqqr22q50s] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 22px;
}

.contract-confirm-cancel[b-pqqr22q50s],
.contract-confirm-register[b-pqqr22q50s] {
    min-width: 100px;
    height: 38px;
    padding: 0 18px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.contract-confirm-cancel[b-pqqr22q50s] {
    color: #586472;
    background-color: #ffffff;
    border: 1px solid #b8c9df;
}

.contract-confirm-register[b-pqqr22q50s] {
    color: #ffffff;
    background-color: #4B94BE;
    border: 1px solid #4B94BE;
}

.contract-confirm-register:hover[b-pqqr22q50s] {
    background-color: #3D7FA6;
}

/* =========================================================
   複数案件選択
   ========================================================= */

.contract-selected-jobs[b-pqqr22q50s] {
    margin-top: 20px;
}

.contract-selected-jobs-header[b-pqqr22q50s] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    margin-bottom: 8px;
}

.contract-selected-jobs-header > div[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.contract-selected-jobs-header span[b-pqqr22q50s],
.contract-selected-jobs-header small[b-pqqr22q50s] {
    color: #718096;
    font-size: 11px;
}

.contract-selected-jobs-header strong[b-pqqr22q50s] {
    color: #3f4f63;
    font-size: 13px;
}

.contract-selected-job-list[b-pqqr22q50s] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.contract-selected-job[b-pqqr22q50s] {
    margin-top: 0;
}

.contract-selected-job-remove[b-pqqr22q50s] {
    margin-left: auto;
    width: 28px;
    height: 28px;
    color: #718096;
    background-color: #ffffff;
    border: 1px solid #bed9e8;
    border-radius: 4px;
    cursor: pointer;
}

.contract-selected-job-remove:hover[b-pqqr22q50s] {
    color: #b42318;
    border-color: #fecaca;
    background-color: #fff5f5;
}


/* ===== 検索側：対象取引先 ===== */

.contract-customer-lock[b-pqqr22q50s] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 12px 0 16px;
    padding: 10px 12px;
    background-color: #eef7fb;
    border: 1px solid #bed9e8;
    border-radius: 4px;
}

.contract-customer-lock span[b-pqqr22q50s],
.contract-customer-lock small[b-pqqr22q50s] {
    color: #718096;
    font-size: 10px;
}

.contract-customer-lock strong[b-pqqr22q50s] {
    color: #3f4f63;
    font-size: 12px;
}


/* ===== 検索結果 選択マーク ===== */

.contract-job-item-header[b-pqqr22q50s] {
    display: flex;
    align-items: center;
    gap: 7px;
}

.contract-job-check[b-pqqr22q50s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: #4B94BE;
    border: 1px solid #bed9e8;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 700;
}

.contract-job-item.selected .contract-job-check[b-pqqr22q50s] {
    color: #ffffff;
    background-color: #4B94BE;
    border-color: #4B94BE;
}

/* ===== 確認モーダル：複数案件 ===== */

.contract-confirm-job-item[b-pqqr22q50s] {
    padding: 6px 0;
    border-bottom: 1px solid #dcebf3;
}

.contract-confirm-job-item:last-of-type[b-pqqr22q50s] {
    border-bottom: none;
}

.contract-confirm-job-item strong[b-pqqr22q50s] {
    display: block;
    color: #344154;
    font-size: 13px;
    line-height: 1.5;
}

/* ===== 基本情報登録済み ===== */

.contract-registered-badge[b-pqqr22q50s] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-left: auto;
    padding: 5px 9px;
    color: #237a57;
    background-color: #edf9f3;
    border: 1px solid #b8e0cd;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

.contract-registered-badge i[b-pqqr22q50s] {
    color: #2f9b70;
}

.contract-message.success[b-pqqr22q50s] {
    margin: 14px 0 0;
    color: #237a57;
    background-color: #edf9f3;
    border-color: #b8e0cd;
}

.contract-form-input:disabled[b-pqqr22q50s],
.contract-form-select:disabled[b-pqqr22q50s],
.contract-form-textarea:disabled[b-pqqr22q50s],
.contract-search-input:disabled[b-pqqr22q50s] {
    color: #66778a;
    background-color: #f4f7f9;
    cursor: not-allowed;
}

/* ===== 契約対象品目 ===== */

.contract-waste-field[b-pqqr22q50s] {
    grid-column: 1 / -1;
}

.contract-waste-help[b-pqqr22q50s] {
    margin: 0 0 8px;
    color: #718096;
    font-size: 12px;
}

.contract-waste-panel[b-pqqr22q50s] {
    max-height: 360px;
    overflow-y: auto;
    padding: 12px;
    background: #f7fbfd;
    border: 1px solid #bed9e8;
    border-radius: 6px;
    scrollbar-gutter: stable;
}

.contract-waste-category + .contract-waste-category[b-pqqr22q50s] {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #dcebf3;
}

.contract-waste-category-title[b-pqqr22q50s] {
    margin-bottom: 8px;
    color: #3d7fa6;
    font-size: 12px;
    font-weight: 700;
}

.contract-waste-grid[b-pqqr22q50s] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px 12px;
}

.contract-waste-item[b-pqqr22q50s] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    min-width: 0;
    padding: 7px 8px;
    color: #3f4f63;
    background: #fff;
    border: 1px solid #dcebf3;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.4;
    cursor: pointer;
}

.contract-waste-item input[b-pqqr22q50s] {
    flex: 0 0 auto;
    margin-top: 2px;
    accent-color: #4B94BE;
}

.contract-waste-item:has(input:checked)[b-pqqr22q50s] {
    background: #eaf5fb;
    border-color: #8fc4df;
}

.contract-waste-item:has(input:disabled)[b-pqqr22q50s] {
    cursor: default;
}

.contract-waste-count[b-pqqr22q50s] {
    display: block;
    margin-top: 7px;
    color: #4B94BE;
    font-weight: 700;
}

.contract-confirm-waste-types strong[b-pqqr22q50s] {
    line-height: 1.7;
}

@media (max-width: 900px) {
    .contract-waste-grid[b-pqqr22q50s] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.contract-confirm-button:disabled[b-pqqr22q50s],
.contract-confirm-cancel:disabled[b-pqqr22q50s],
.contract-confirm-register:disabled[b-pqqr22q50s],
.contract-job-item:disabled[b-pqqr22q50s],
.contract-selected-job-remove:disabled[b-pqqr22q50s] {
    cursor: not-allowed;
    opacity: 0.65;
}

/* ===== 登録完了モーダル ===== */

.contract-complete-modal[b-pqqr22q50s] {
    text-align: center;
}

.contract-complete-icon[b-pqqr22q50s] {
    margin-bottom: 12px;
    color: #2f9b70;
    font-size: 42px;
    line-height: 1;
}

.contract-complete-number[b-pqqr22q50s] {
    margin: 18px 0 4px;
    padding: 12px;
    color: #3d7fa6;
    background-color: #eef7fb;
    border: 1px solid #bed9e8;
    border-radius: 5px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.rate-complete-modal[b-pqqr22q50s] {
    max-width: 520px;
}

.rate-complete-actions[b-pqqr22q50s] {
    justify-content: center;
}

.rate-complete-actions .contract-confirm-cancel[b-pqqr22q50s],
.rate-complete-actions .contract-confirm-register[b-pqqr22q50s] {
    min-width: 160px;
}

@media (max-width: 600px) {
    .contract-confirm-overlay[b-pqqr22q50s] {
        padding: 10px;
    }

    .contract-confirm-modal[b-pqqr22q50s] {
        max-height: calc(100vh - 20px);
        padding: 18px 15px;
    }

    .rate-confirm-scope[b-pqqr22q50s] {
        grid-template-columns: 86px minmax(0, 1fr);
    }

    .contract-confirm-row[b-pqqr22q50s] {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 10px;
    }

    .contract-registered-badge[b-pqqr22q50s] {
        width: 100%;
        margin: 8px 0 0;
        box-sizing: border-box;
        justify-content: center;
    }

    .contract-waste-panel[b-pqqr22q50s] {
        max-height: 300px;
        padding: 10px;
    }

    .contract-waste-grid[b-pqqr22q50s] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 420px) {
    .contract-confirm-actions[b-pqqr22q50s] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contract-confirm-cancel[b-pqqr22q50s],
    .contract-confirm-register[b-pqqr22q50s] {
        min-width: 0;
        padding: 0 10px;
    }

    .rate-complete-actions[b-pqqr22q50s] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* v0.254-C: shared contract context and optional partner roles */
.contract-context[b-pqqr22q50s] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    min-width: 0;
    margin: 0 0 18px;
    padding: 8px 14px;
    border: 1px solid #adcfe3;
    border-radius: 8px;
    background: #F8FCFF;
    box-shadow: none;
    color: #3f4f63;
    font-size: 13px;
    overflow-wrap: anywhere;
}
.detail-card[b-pqqr22q50s] { background: #fff; border: 1px solid #c8dce9; border-radius: 10px; padding: 18px; margin-bottom: 16px; box-shadow: 0 2px 9px rgba(34, 82, 115, .06); }
.detail-empty[b-pqqr22q50s] { color: #617488; margin: 12px 0 0; font-size: 13px; }
.detail-summary[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-top: 14px; }
.detail-summary > div[b-pqqr22q50s] { background: #fdfeff; border: 1px solid #dceaf3; border-radius: 7px; padding: 10px 12px; min-width: 0; }
.detail-registered-disclosure[b-pqqr22q50s] { margin-top: 14px; }
.detail-registered-disclosure > summary[b-pqqr22q50s] { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding: 10px 12px; border: 1px solid #dceaf3; border-radius: 7px; background: #fdfeff; color: #24465e; font-size: 13px; cursor: pointer; list-style: none; }
.detail-registered-disclosure > summary[b-pqqr22q50s]::-webkit-details-marker { display: none; }
.detail-registered-disclosure > summary:focus-visible[b-pqqr22q50s] { outline: 2px solid #4b94be; outline-offset: 2px; }
.detail-disclosure-hint[b-pqqr22q50s] { display: inline-flex; align-items: center; gap: 8px; color: #35799f; font-size: 12px; font-weight: 700; }
.detail-hint-open[b-pqqr22q50s], .detail-registered-disclosure[open] .detail-hint-closed[b-pqqr22q50s] { display: none; }
.detail-registered-disclosure[open] .detail-hint-open[b-pqqr22q50s] { display: inline; }
.detail-registered-disclosure[open] .detail-disclosure-hint i[b-pqqr22q50s] { transform: rotate(180deg); }
.detail-summary span[b-pqqr22q50s], .detail-summary strong[b-pqqr22q50s] { display: block; overflow-wrap: anywhere; }
.detail-summary span[b-pqqr22q50s] { color: #617488; font-size: 12px; }
.detail-summary strong[b-pqqr22q50s] { color: #24465e; font-size: 13px; margin-top: 4px; }
.detail-registered-list[b-pqqr22q50s] { display: block; margin-top: 10px; }
.detail-registered-list > div[b-pqqr22q50s] { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 12px; padding: 6px 2px; border: 0; border-bottom: 1px solid #e6eef4; border-radius: 0; background: transparent; }
.detail-registered-list > h3[b-pqqr22q50s] { margin: 14px 0 3px; padding-bottom: 5px; border-bottom: 1px solid #c8dce9; color: #35799f; font-size: 13px; }
.detail-registered-list span[b-pqqr22q50s], .detail-registered-list strong[b-pqqr22q50s] { margin: 0; font-size: 12px; line-height: 1.5; }
.detail-fields[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; border: 0; padding: 0; margin: 16px 0; }
.detail-fields > label[b-pqqr22q50s] { display: grid; gap: 6px; min-width: 0; color: #344f62; font-size: 12px; font-weight: 600; }
.detail-fields input:not([type=checkbox]):not([type=radio])[b-pqqr22q50s], .detail-fields select[b-pqqr22q50s], .detail-fields textarea[b-pqqr22q50s] { width: 100%; min-width: 0; padding: 9px 11px; border: 1px solid #bcd2e1; border-radius: 6px; background: #fff; color: #243c4d; font: inherit; font-size: 12px; }
.detail-fields textarea[b-pqqr22q50s] { min-height: 74px; resize: vertical; }
.detail-fields > .detail-matched-height[b-pqqr22q50s] { grid-template-rows: auto 74px; }
.detail-fields > .detail-matched-height > input[b-pqqr22q50s],
.detail-fields > .detail-matched-height > textarea[b-pqqr22q50s] { height: 100%; min-height: 0; box-sizing: border-box; }
.detail-wide[b-pqqr22q50s] { grid-column: 1 / -1; }
.detail-choice[b-pqqr22q50s] { display: flex; flex-wrap: wrap; gap: 18px; grid-column: 1 / -1; }
.detail-choice label[b-pqqr22q50s], .detail-fields .detail-checkbox[b-pqqr22q50s] { display: flex; align-items: center; gap: 8px; font-size: 12px; }
.detail-fields input[type=checkbox][b-pqqr22q50s], .detail-fields input[type=radio][b-pqqr22q50s] { accent-color: #3988b6; }
.detail-permits[b-pqqr22q50s] { display: grid; gap: 8px; max-height: 260px; overflow: auto; margin-top: 8px; }
.detail-fields .detail-wide > strong[b-pqqr22q50s] { font-size: 12px; }
.detail-permits label[b-pqqr22q50s] { display: flex; gap: 8px; align-items: start; border: 1px solid #dceaf3; border-radius: 6px; padding: 8px; background: #fdfeff; font-size: 12px; overflow-wrap: anywhere; }
.detail-permits em[b-pqqr22q50s] { color: #b24430; font-style: normal; font-weight: 700; }
.detail-permits small[b-pqqr22q50s] { color: #27769f; }
.detail-quantity-list[b-pqqr22q50s] { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.detail-quantity-row[b-pqqr22q50s] { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(90px, .8fr) minmax(100px, .8fr); align-items: end; gap: 10px; padding: 10px; border: 1px solid #dceaf3; border-radius: 7px; background: #fdfeff; font-size: 12px; }
.detail-quantity-row-frequency[b-pqqr22q50s] { grid-template-columns: minmax(150px, .9fr) repeat(3, minmax(0, 1fr)); }
.detail-quantity-row-frequency:has(.detail-item-delete-button)[b-pqqr22q50s] { grid-template-columns: minmax(150px, .9fr) repeat(3, minmax(0, 1fr)) auto; }
.detail-item-delete-button[b-pqqr22q50s] { align-self: end; border: 1px solid #2a5c78; border-radius: 6px; background: #2a5c78; color: #FFFFFF; font-size: 13px; padding: .4rem .6rem; cursor: pointer; white-space: nowrap; }
.detail-item-delete-button:hover:not(:disabled)[b-pqqr22q50s] { background: #214b63; }
.detail-item-delete-button:disabled[b-pqqr22q50s] { opacity: .55; cursor: default; }
@media (max-width: 800px) { .detail-quantity-row-frequency:has(.detail-item-delete-button)[b-pqqr22q50s] { grid-template-columns: repeat(3, minmax(0, 1fr)); } .detail-item-delete-button[b-pqqr22q50s] { grid-column: 1 / -1; justify-self: end; } }
@media (max-width: 480px) { .detail-quantity-row-frequency:has(.detail-item-delete-button)[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } }
.detail-quantity-row > strong[b-pqqr22q50s] { align-self: center; color: #636363; }
.detail-quantity-row label[b-pqqr22q50s] { display: grid; gap: 4px; color: #636363; font-weight: 600; }
.detail-quantity-row input[b-pqqr22q50s], .detail-quantity-row select[b-pqqr22q50s] { color: #636363; }
.detail-purchase-total[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.detail-purchase-total > label[b-pqqr22q50s] { display: grid; gap: 6px; min-width: 0; color: #344f62; font-size: 12px; font-weight: 600; }
.detail-purchase-total input[b-pqqr22q50s], .detail-purchase-total select[b-pqqr22q50s], .detail-purchase-row input[b-pqqr22q50s], .detail-purchase-row select[b-pqqr22q50s] { height: 38px; box-sizing: border-box; }
.detail-purchase-row[b-pqqr22q50s] { grid-template-columns: minmax(120px, 1fr) repeat(3, minmax(0, 1fr)); }
.detail-purchase-row:has(.detail-item-delete-button)[b-pqqr22q50s] { grid-template-columns: minmax(120px, 1fr) repeat(3, minmax(0, 1fr)) auto; }
@media (max-width: 800px) { .detail-purchase-row:has(.detail-item-delete-button)[b-pqqr22q50s] { grid-template-columns: repeat(3, minmax(0, 1fr)); } .detail-purchase-row .detail-item-delete-button[b-pqqr22q50s] { grid-column: 1 / -1; justify-self: end; } }
@media (max-width: 480px) { .detail-quantity-row.detail-purchase-row:has(.detail-item-delete-button)[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } }
.detail-save[b-pqqr22q50s] { margin-top: 4px; }
.detail-contract-mode[b-pqqr22q50s] { display: grid; gap: 7px; padding: 12px; background: #fdfeff; border: 1px solid #dceaf3; border-radius: 7px; font-size: 12px; }
.detail-block[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; padding: 16px; background: #f8fcff; border: 1px solid #c8dce9; border-radius: 9px; }
.detail-block > h3[b-pqqr22q50s], .detail-block > strong[b-pqqr22q50s], .detail-block > .detail-choice[b-pqqr22q50s], .detail-block > .detail-quantity-list[b-pqqr22q50s], .detail-block > .detail-total-row[b-pqqr22q50s], .detail-block > .detail-permits[b-pqqr22q50s] { grid-column: 1 / -1; }
.detail-block > h3[b-pqqr22q50s] { margin: 0; color: #35799f; font-size: 15px; }
.detail-block > strong[b-pqqr22q50s] { font-size: 12px; color: #344f62; }
.detail-total-row[b-pqqr22q50s] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.detail-total-row > label[b-pqqr22q50s] { display: grid; gap: 5px; font-size: 12px; color: #344f62; font-weight: 600; }
.detail-block .detail-transport[b-pqqr22q50s], .detail-block .detail-half-width[b-pqqr22q50s] { width: 100%; grid-column: auto; }
.detail-block .detail-transport[b-pqqr22q50s] { grid-column: 1 / -1; width: 50%; margin-top: 5px; }
.detail-block > .detail-wide:not(.detail-quantity-list)[b-pqqr22q50s] { grid-column: 1 / -1; }
.contract-confirm-modal:has(.detail-summary)[b-pqqr22q50s] { max-width: 650px; }
.contract-confirm-modal:has(.detail-summary) .contract-confirm-header h2[b-pqqr22q50s] { font-size: 18px; }
.contract-confirm-modal .detail-summary[b-pqqr22q50s] { display: block; margin-top: 0; }
.contract-confirm-modal .detail-summary > div[b-pqqr22q50s] { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 12px; padding: 6px 0; border: 0; border-bottom: 1px solid #e6eef4; border-radius: 0; background: transparent; }
.contract-confirm-modal .detail-summary span[b-pqqr22q50s], .contract-confirm-modal .detail-summary strong[b-pqqr22q50s] { margin: 0; font-size: 12px; }
@media (max-width: 700px) { .detail-fields[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) { .detail-purchase-total[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } .detail-purchase-row[b-pqqr22q50s] { grid-template-columns: repeat(2, minmax(0, 1fr)); } .detail-purchase-row > strong[b-pqqr22q50s] { grid-column: 1 / -1; } }
@media (max-width: 480px) { .detail-quantity-row.detail-purchase-row[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } .detail-quantity-row.detail-purchase-row > strong[b-pqqr22q50s] { grid-column: auto; } }
@media (max-width: 700px) { .detail-block[b-pqqr22q50s] { grid-template-columns: 1fr; } .detail-block .detail-transport[b-pqqr22q50s], .detail-block .detail-half-width[b-pqqr22q50s] { grid-column: 1; } .detail-total-row[b-pqqr22q50s] { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .detail-block .detail-transport[b-pqqr22q50s] { width: 100%; } .detail-registered-list > div[b-pqqr22q50s] { grid-template-columns: 120px minmax(0, 1fr); } }
@media (max-width: 480px) { .detail-registered-list > div[b-pqqr22q50s] { grid-template-columns: 1fr; gap: 1px; } }
@media (max-width: 480px) { .detail-quantity-row[b-pqqr22q50s] { grid-template-columns: 1fr 1fr; } .detail-quantity-row > strong[b-pqqr22q50s] { grid-column: 1 / -1; } }
.contract-context > *[b-pqqr22q50s] { min-width: 0; max-width: 100%; }
.contract-context > *[b-pqqr22q50s] { color: #636363; font-weight: 700; }
.contract-context .contract-context-number[b-pqqr22q50s] { color: #4B94BE; font-weight: 700; }
.contract-context .contract-context-type[b-pqqr22q50s] { margin-left: auto; color: #35799F; font-weight: 700; }
.contract-context-jobs span[b-pqqr22q50s] { color: #636363; font-weight: 700; }
.detail-option-field[b-pqqr22q50s] { display: grid; align-content: start; gap: 8px; min-width: 0; color: #344f62; font-size: 12px; font-weight: 600; }
.detail-transport[b-pqqr22q50s], .detail-half-width[b-pqqr22q50s] { grid-column: 1 / -1; width: calc(50% - 8px); }
.detail-field-heading[b-pqqr22q50s] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; min-height: 18px; }
.detail-half-width .detail-choice[b-pqqr22q50s] { grid-column: auto; gap: 6px 16px; }
.detail-method-options[b-pqqr22q50s] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; min-height: 18px; }
.detail-method-options .detail-choice[b-pqqr22q50s] { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.detail-method-options .detail-checkbox[b-pqqr22q50s] { white-space: nowrap; }
.detail-option-field > label:not(.detail-checkbox)[b-pqqr22q50s] { display: grid; gap: 6px; }
.detail-option-field .detail-choice[b-pqqr22q50s] { gap: 8px 18px; }
.detail-option-field .detail-checkbox[b-pqqr22q50s] { font-weight: 400; }
.contract-context-jobs[b-pqqr22q50s] { display: flex; flex-wrap: wrap; gap: 4px 12px; flex: 1 1 240px; }
.partner-role-card[b-pqqr22q50s] { min-width: 0; }
.partner-role-title > i[b-pqqr22q50s] { flex-shrink: 0; }
.partner-role-title > div[b-pqqr22q50s] { min-width: 0; overflow-wrap: anywhere; }
.partner-use-toggle[b-pqqr22q50s] { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: #344154; font-size: 13px; cursor: pointer; }
.partner-use-toggle input[b-pqqr22q50s] { accent-color: #4B94BE; }
.partner-use-toggle span[b-pqqr22q50s] { margin-left: auto; color: #52677b; font-size: 11px; }
.partner-role-body[b-pqqr22q50s] { display: grid; gap: 15px; min-width: 0; margin: 0; padding: 0; border: 0; }
.partner-role-card.is-unused[b-pqqr22q50s] { background: #f5f8fa; }
.partner-role-card.is-unused .partner-role-body[b-pqqr22q50s] { opacity: .5; }
.partner-role-body:disabled input[b-pqqr22q50s],
.partner-role-body:disabled textarea[b-pqqr22q50s],
.partner-role-body:disabled button[b-pqqr22q50s],
.partner-role-body:disabled label[b-pqqr22q50s] { cursor: not-allowed; }
.partner-role-help[b-pqqr22q50s] { margin: 0; color: #52677b; font-size: 12px; line-height: 1.6; }
@media (max-width: 600px) {
    .contract-context[b-pqqr22q50s] { flex-direction: column; align-items: stretch; gap: 6px; }
    .contract-context-jobs[b-pqqr22q50s] { flex: 0 1 auto; flex-direction: column; }
    .contract-context .contract-context-type[b-pqqr22q50s] { margin-left: 0; }
}

@media (max-width: 900px) {
    .detail-quantity-row-frequency[b-pqqr22q50s] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .detail-quantity-row-frequency > strong[b-pqqr22q50s] { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
    .detail-transport[b-pqqr22q50s], .detail-half-width[b-pqqr22q50s] { width: 100%; }
}

@media (max-width: 480px) {
    .detail-quantity-row-frequency[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); }
    .detail-quantity-row-frequency > strong[b-pqqr22q50s] { grid-column: auto; }
}

/* v0.254: compact partner summary and shared confirmation styling */
.partner-list-group[b-pqqr22q50s] { margin-top: 10px; }
.partner-list-group h3[b-pqqr22q50s] { margin-bottom: 5px; padding-bottom: 5px; }
.partner-list-item[b-pqqr22q50s] { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 7px 10px; min-width: 0; overflow-wrap: anywhere; }
.partner-list-item + .partner-list-item[b-pqqr22q50s] { margin-top: 4px; }
.partner-list-item > div[b-pqqr22q50s] { flex-wrap: wrap; min-width: 0; }
.partner-list-item > *[b-pqqr22q50s] { max-width: 100%; }
.partner-list-item small[b-pqqr22q50s] { flex-basis: 100%; }
.partner-list-card .rate-empty[b-pqqr22q50s] { padding: 14px; }
.partner-confirm-modal[b-pqqr22q50s] { box-sizing: border-box; }
.partner-confirm-modal .contract-confirm-row strong[b-pqqr22q50s] { white-space: pre-wrap; overflow-wrap: anywhere; min-width: 0; }
@media (max-width: 600px) {
    .partner-list-item[b-pqqr22q50s] { gap: 3px 8px; }
    .partner-list-item > span[b-pqqr22q50s] { flex-basis: 100%; }
}
.contract-delete-button[b-pqqr22q50s] {
    border: 1px solid #2a5c78;
    border-radius: 6px;
    background: #2a5c78;
    color: #FFFFFF;
    font-size: 13px;
    padding: .4rem .75rem;
    cursor: pointer;
}
.contract-delete-button:hover:not(:disabled)[b-pqqr22q50s] { background: #214b63; }
.contract-delete-button:disabled[b-pqqr22q50s] { opacity: .55; cursor: default; }
.contract-delete-button.rate-modal-delete-button[b-pqqr22q50s] {
    color: #FFFFFF;
    background: #2a5c78;
    border-color: #2a5c78;
    font-size: 13px;
    font-weight: 600;
}
.contract-delete-button.rate-modal-delete-button:hover:not(:disabled)[b-pqqr22q50s] { background: #214b63; }
.contract-validation-message[b-pqqr22q50s] { white-space: pre-line; }

/* v0.256: contract attachments */
.attachment-page[b-pqqr22q50s] { display: grid; gap: 16px; min-width: 0; }
.attachment-card[b-pqqr22q50s] { min-width: 0; padding: 20px; background: #fff; border: 1px solid #bed9e8; border-radius: 8px; }
.attachment-card h2[b-pqqr22q50s] { margin: 0; color: #344154; font-size: 15px; font-weight: 700; }
.attachment-heading[b-pqqr22q50s] { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.attachment-heading h2 span[b-pqqr22q50s] { margin-left: 8px; color: #52718a; font-size: 12px; }
.attachment-category[b-pqqr22q50s] { padding: 4px 8px; border: 1px solid #bed9e8; border-radius: 5px; color: #326d91; background: #eef7fb; font-size: 11px; }
.attachment-help[b-pqqr22q50s] { margin: 10px 0 14px; color: #5f7185; font-size: 12px; line-height: 1.6; }
.attachment-list[b-pqqr22q50s] { margin: 0; padding: 0; list-style: none; }
.attachment-item[b-pqqr22q50s] { display: grid; grid-template-columns: 112px minmax(0, 1fr) 90px auto; gap: 12px; align-items: center; padding: 10px 0; border-top: 1px solid #e2edf4; }
.attachment-category[b-pqqr22q50s] { justify-self: start; }
.attachment-description[b-pqqr22q50s] { display: grid; gap: 3px; min-width: 0; }
.attachment-description strong[b-pqqr22q50s] { color: #344154; font-size: 13px; overflow-wrap: anywhere; }
.attachment-description small[b-pqqr22q50s], .attachment-notes[b-pqqr22q50s], .attachment-item time[b-pqqr22q50s] { color: #5f7185; font-size: 11px; }
.attachment-description small[b-pqqr22q50s] { overflow-wrap: anywhere; }
.attachment-notes[b-pqqr22q50s] { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.attachment-actions[b-pqqr22q50s] { display: flex; gap: 6px; }
.attachment-actions button[b-pqqr22q50s] { min-height: 32px; padding: 5px 12px; border-radius: 5px; font-size: 12px; cursor: pointer; }
.attachment-open[b-pqqr22q50s] { color: #326d91; border: 1px solid #a8cde1; background: #eef7fb; }
.attachment-open:hover[b-pqqr22q50s] { background: #dceef8; }
.attachment-delete[b-pqqr22q50s] { color: #a14f53; border: 1px solid #e0c8ca; background: #fff; }
.attachment-delete:hover[b-pqqr22q50s] { background: #fff3f3; }
.attachment-empty[b-pqqr22q50s] { padding: 16px; background: #f7fbfd; border: 1px dashed #bed9e8; border-radius: 5px; color: #5f7185; font-size: 13px; }
.attachment-status:empty[b-pqqr22q50s] { display: none; }
.attachment-status[b-pqqr22q50s] { padding: 10px 14px; background: #e8f3fa; border: 1px solid #bed9e8; border-radius: 5px; font-size: 13px; overflow-wrap: anywhere; }
.attachment-form[b-pqqr22q50s] { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr); gap: 16px; margin-top: 16px; }
.attachment-field[b-pqqr22q50s] { display: grid; align-content: start; gap: 7px; min-width: 0; }
.attachment-field label[b-pqqr22q50s] { color: #3f4f63; font-size: 12px; font-weight: 600; }
.attachment-required[b-pqqr22q50s] { margin-left: 4px; color: #a14f53; font-size: 10px; }
.attachment-wide[b-pqqr22q50s] { grid-column: 1 / -1; }
.attachment-field input[b-pqqr22q50s], .attachment-field select[b-pqqr22q50s], .attachment-field textarea[b-pqqr22q50s] { box-sizing: border-box; width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid #b8c9df; border-radius: 5px; background: #fff; color: #3f4f63; font: inherit; font-size: 13px; }
.attachment-field textarea[b-pqqr22q50s] { resize: vertical; }
.attachment-file-picker[b-pqqr22q50s] { display: grid; gap: 8px; padding: 12px; border: 1px dashed #a8cde1; border-radius: 5px; background: #f7fbfd; }
.attachment-file-picker small[b-pqqr22q50s] { color: #5f7185; font-size: 12px; overflow-wrap: anywhere; }
.attachment-file-picker[b-pqqr22q50s]  input[type=file] { width: 100%; min-width: 0; color: #3f4f63; font-size: 12px; }
.attachment-file-picker[b-pqqr22q50s]  input[type=file]::file-selector-button { margin-right: 10px; padding: 7px 12px; color: #326d91; background: #eef7fb; border: 1px solid #a8cde1; border-radius: 4px; cursor: pointer; }
.attachment-form-actions[b-pqqr22q50s] { display: flex; justify-content: flex-end; margin-top: 16px; }
.attachment-page :is(input, select, textarea, button):focus-visible[b-pqqr22q50s], .attachment-confirm-modal button:focus-visible[b-pqqr22q50s] { outline: 2px solid #4b94be; outline-offset: 2px; }
.attachment-confirm-modal[b-pqqr22q50s] { box-sizing: border-box; max-width: 560px; }
.attachment-confirm-modal h2[b-pqqr22q50s] { margin: 0; font-size: 16px; }
.attachment-confirm-modal .contract-confirm-row[b-pqqr22q50s] { grid-template-columns: 90px minmax(0, 1fr); }
.attachment-confirm-modal .contract-confirm-row strong[b-pqqr22q50s] { min-width: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 760px) {
    .attachment-card[b-pqqr22q50s] { padding: 16px; }
    .attachment-item[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
    .attachment-description[b-pqqr22q50s] { grid-column: 1 / -1; grid-row: 2; }
    .attachment-item time[b-pqqr22q50s] { grid-column: 2; grid-row: 1; }
    .attachment-actions[b-pqqr22q50s] { grid-column: 1 / -1; justify-content: flex-end; }
    .attachment-form[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); }
    .attachment-form-actions .contract-confirm-button[b-pqqr22q50s] { width: 100%; }
}
@media (max-width: 420px) {
    .attachment-confirm-modal .contract-confirm-row[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .attachment-confirm-modal .contract-confirm-actions[b-pqqr22q50s] { flex-direction: column; }
}

/* Attachment persistence controls; retain the v0.256 layout. */
.contract-page.contract-attachments-active[b-pqqr22q50s] { width: calc(100% - 20px); }
.attachment-form[b-pqqr22q50s] { border: 0; padding: 0; min-width: 0; }
.attachment-actions a[b-pqqr22q50s] { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 32px; padding: 5px 12px; border-radius: 5px; font-size: 12px; text-decoration: none; }
.attachment-reload[b-pqqr22q50s] { color: #326d91; background: #eef7fb; border: 1px solid #a8cde1; border-radius: 5px; padding: 5px 12px; font-size: 12px; cursor: pointer; }
.attachment-confirm-delete[b-pqqr22q50s] { min-height: 40px; padding: 0 18px; color: #a14f53; background: #fff; border: 1px solid #e0c8ca; border-radius: 5px; font-size: 13px; font-weight: 600; cursor: pointer; }
.attachment-confirm-delete:hover[b-pqqr22q50s] { background: #fff3f3; }
.attachment-confirm-modal button[aria-disabled=true][b-pqqr22q50s], .attachment-page button:disabled[b-pqqr22q50s] { opacity: .6; cursor: wait; }
.attachment-open:focus-visible[b-pqqr22q50s] { outline: 2px solid #4b94be; outline-offset: 2px; }

/* Fee categories remain readable without relying on colour alone. */
.rate-method-badge.rate-category-transport[b-pqqr22q50s] { color: #17608d; background: #e0f1ff; border: 1px solid #badcf5; }
.rate-method-badge.rate-category-disposal[b-pqqr22q50s] { color: #286644; background: #e6f5e9; border: 1px solid #c4e6cd; }
.rate-copy-button[b-pqqr22q50s] { margin: 6px 0; }
 .detail-row-actions[b-pqqr22q50s] { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.detail-quantity-row-frequency:has(.detail-row-actions)[b-pqqr22q50s] { grid-template-columns: minmax(150px, .9fr) repeat(3, minmax(0, 1fr)); }
@media (max-width: 800px) { .detail-quantity-row-frequency:has(.detail-row-actions)[b-pqqr22q50s] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 480px) { .detail-quantity-row-frequency:has(.detail-row-actions)[b-pqqr22q50s] { grid-template-columns: minmax(0, 1fr); } }
/* /Components/Pages/EmitterRegister.razor.rz.scp.css */
/* CSS for EmitterRegister component */
/* ========================================
   排出事業者登録画面
   EmitterRegister.razor.css
   ======================================== */


/* ===== 画面全体 ===== */

.emitter-page[b-p020dtfn3o] {
    max-width: 1180px;
    margin: 0;
    padding: 24px 28px 60px;
    color: #586472;
    margin-left: 20px;
    --label-width: 140px;
    --label-gap: 10px;
    transition: max-width 0.3s ease;
}

.emitter-page-expanded[b-p020dtfn3o] {
    max-width: 1720px;
}


/* ===== 画面タイトル ===== */

.page-header[b-p020dtfn3o] {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 24px;
    margin-bottom: 24px;
    background-color: #f5f8fc;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
}


    /* タイトルアイコン */

    .page-header > i[b-p020dtfn3o] {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        flex-shrink: 0;
        background-color: #edf3fc;
        color: #2f65c5;
        border-radius: 8px;
        font-size: 25px;
        line-height: 1;
    }


/* タイトル文字 */

.page-header-text h1[b-p020dtfn3o] {
    margin: 0;
    color: #3f4f63;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
}


.page-header-text p[b-p020dtfn3o] {
    margin: 3px 0 0;
    color: #66758a;
    font-size: 12px;
    line-height: 1.5;
}


/* ===== メインカード ===== */

.form-section[b-p020dtfn3o] {
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
    padding: 24px 26px 28px;
}


/* ===== 大見出し ===== */

.section-title[b-p020dtfn3o] {
    color: #586472;
    font-size: 18px;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 18px;
    border-bottom: 2px solid #2f65c5;
}


/* ===== 入力行 ===== */

.form-row[b-p020dtfn3o] {
    display: flex;
    align-items: flex-start;
    margin-bottom: 14px;
}


/* 左側ラベル */

.form-label[b-p020dtfn3o] {
    width: var(--label-width);
    min-width: var(--label-width);
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 36px;
    margin: 0 var(--label-gap) 0 0;
    color: #586472;
    font-size: 14px;
    font-weight: 600;
}


/* 入力欄領域 */

.input-area[b-p020dtfn3o] {
    display: flex;
    align-items: center;
}


/* ===== テキストボックス ===== */

.form-input[b-p020dtfn3o] {
    width: 300px;
    height: 36px;
    padding: 6px 10px;
    color: #4f5b68;
    background-color: #ffffff;
    border: 1px solid #aebccc;
    border-radius: 4px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}


    /* 入力中 */

    .form-input:focus[b-p020dtfn3o] {
        border-color: #2f65c5;
        box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
    }


/* ===== 排出事業場見出し ===== */

.subsection-title[b-p020dtfn3o] {
    margin-top: 22px;
    margin-bottom: 14px;
    padding: 9px 12px;
    color: #586472;
    background-color: #f1f5fb;
    border-left: 4px solid #2f65c5;
    border-radius: 3px;
    font-size: 14px;
    font-weight: 700;
}


/* ===== 事業場追加ボタン領域 ===== */

.add-site-area[b-p020dtfn3o] {
    display: flex;
    margin-top: 28px;
    padding-left: 320px;
}


/* ＋事業場追加 */

.add-site-button[b-p020dtfn3o] {
    height: 36px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: #2f65c5;
    background-color: #ffffff;
    border: 1px solid #2f65c5;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}


    .add-site-button:hover[b-p020dtfn3o] {
        color: #ffffff;
        background-color: #2f65c5;
    }


/* ===== 登録ボタン領域 ===== */

.register-area[b-p020dtfn3o] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px dashed #d7dee8;
}

/* 登録ボタン */

.register-button[b-p020dtfn3o] {
    min-width: 110px;
    height: 38px;
    padding: 0 22px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}


    .register-button:hover[b-p020dtfn3o] {
        background-color: #284f91;
    }


/* ===== スマホ・狭い画面対策 ===== */

@media (max-width: 700px) {

    .emitter-page[b-p020dtfn3o] {
        padding: 16px;
    }

    .form-row[b-p020dtfn3o] {
        display: block;
        margin-bottom: 14px;
    }

    .form-label[b-p020dtfn3o] {
        width: 140px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-right: 10px;
    }

    .form-input[b-p020dtfn3o] {
        width: 100%;
    }

    .input-area[b-p020dtfn3o] {
        width: 100%;
    }

    .add-site-area[b-p020dtfn3o] {
        padding-left: 0;
    }

    .register-area[b-p020dtfn3o] {
        justify-content: stretch;
    }

    .register-button[b-p020dtfn3o] {
        width: 100%;
    }

    /* ===== 修正・削除モード ===== */

    .master-workspace.edit-mode[b-p020dtfn3o] {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

        .master-workspace.edit-mode .master-list-panel[b-p020dtfn3o] {
            order: -1;
            width: 100%;
            min-width: 0;
        }

        .master-workspace.edit-mode .form-section[b-p020dtfn3o] {
            order: 0;
            width: 100%;
            min-width: 0;
        }

        .master-workspace.edit-mode .master-list-panel[b-p020dtfn3o] {
            width: 100%;
            min-width: 0;
        }
}

/* ===== 追加された事業場 ===== */

.site-block[b-p020dtfn3o] {
    padding: 10px 0 16px;
}

    .site-block + .site-block[b-p020dtfn3o] {
        margin-top: 12px;
        padding-top: 18px;
        border-top: 1px dashed #d7dee8;
    }

.site-number[b-p020dtfn3o] {
    margin-bottom: 6px;
    color: #6b7b87;
    font-size: 13px;
    font-weight: 600;
}

.site-header[b-p020dtfn3o] {
    display: grid;
    grid-template-columns: var(--label-width) auto;
    column-gap: var(--label-gap);
    align-items: center;
    margin-bottom: 10px;
}

.remove-site-button[b-p020dtfn3o] {
    background-color: #ffffff;
    color: #6b7280;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    padding: 5px 10px;
    font-size: 13px;
    cursor: pointer;
}

    .remove-site-button:hover[b-p020dtfn3o] {
        background-color: #f8fafc;
        color: #dc3545;
        border-color: #dc3545;
    }

.input-note[b-p020dtfn3o] {
    margin-left: 10px;
    color: #8a96a3;
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
}

.input-area-column[b-p020dtfn3o] {
    flex-direction: column;
    align-items: flex-start;
}

.input-note-below[b-p020dtfn3o] {
    margin-top: 4px;
    color: #8a96a3;
    font-size: 12px;
    font-weight: 400;
}

.validation-ok[b-p020dtfn3o] {
    margin-left: 12px;
    color: #2e7d32;
    font-size: 13px;
}

.validation-error[b-p020dtfn3o] {
    margin-left: 12px;
    color: #d32f2f;
    font-size: 13px;
}

.register-message-ok[b-p020dtfn3o],
.register-message-error[b-p020dtfn3o] {
    padding: 9px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    box-sizing: border-box;
}

.register-message-ok[b-p020dtfn3o] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.register-message-error[b-p020dtfn3o] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}

.required-badge[b-p020dtfn3o] {
    display: inline-block;
    padding: 1px 5px;
    border-radius: 3px;
    background-color: #dc3545;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

.required-label[b-p020dtfn3o] {
    width: 140px;
    display: flex;
    align-items: center;
}

    .required-label .required-badge[b-p020dtfn3o] {
        margin-left: auto;
        margin-right: 10px;
    }

.copy-emitter-button[b-p020dtfn3o] {
    background-color: #38bdf8;
    color: #ffffff;
    border: 1px solid #38bdf8;
    border-radius: 4px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s;
}

.required-badge-hidden[b-p020dtfn3o] {
    visibility: hidden;
}

/* ===== 事業者情報転記ボタン ===== */

.copy-emitter-button[b-p020dtfn3o] {
    background-color: #38bdf8;
    color: #ffffff;
    border: 1px solid #38bdf8;
    border-radius: 4px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

    .copy-emitter-button:hover[b-p020dtfn3o] {
        background-color: #0ea5e9;
        border-color: #0ea5e9;
    }

.site-actions[b-p020dtfn3o] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.validation-below[b-p020dtfn3o] {
    margin-left: 0;
    margin-top: 4px;
}

/* ===== 登録確認ダイアログ ===== */

.confirm-overlay[b-p020dtfn3o] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.confirm-dialog[b-p020dtfn3o] {
    width: 420px;
    background: white;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    padding: 24px;
}

.confirm-title[b-p020dtfn3o] {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 18px;
    color: #333;
}

.confirm-message[b-p020dtfn3o] {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 24px;
}

.confirm-actions[b-p020dtfn3o] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.confirm-cancel-button[b-p020dtfn3o] {
    padding: 8px 20px;
    border: 1px solid #bbb;
    background: white;
    border-radius: 4px;
    cursor: pointer;
}

.confirm-register-button[b-p020dtfn3o] {
    padding: 8px 24px;
    border: none;
    background: #2f5fb3;
    color: white;
    border-radius: 4px;
    cursor: pointer;
    font-weight: bold;
}

    .confirm-register-button:disabled[b-p020dtfn3o],
    .confirm-cancel-button:disabled[b-p020dtfn3o],
    .register-button:disabled[b-p020dtfn3o] {
        opacity: 0.6;
        cursor: not-allowed;
    }

/* ===== 修正・削除モード トグル ===== */

.mode-toggle-area[b-p020dtfn3o] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

.mode-toggle-label[b-p020dtfn3o] {
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
}

.toggle-switch[b-p020dtfn3o] {
    position: relative;
    display: inline-block;
    width: 52px;
    height: 28px;
}

    .toggle-switch input[b-p020dtfn3o] {
        opacity: 0;
        width: 0;
        height: 0;
    }

.toggle-slider[b-p020dtfn3o] {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background-color: #cbd5e1;
    border-radius: 999px;
    transition: 0.25s;
}

    .toggle-slider[b-p020dtfn3o]::before {
        content: "";
        position: absolute;
        width: 22px;
        height: 22px;
        left: 3px;
        top: 3px;
        background-color: white;
        border-radius: 50%;
        transition: 0.25s;
    }

.toggle-switch input:checked + .toggle-slider[b-p020dtfn3o] {
    background-color: #2563eb;
}

    .toggle-switch input:checked + .toggle-slider[b-p020dtfn3o]::before {
        transform: translateX(24px);
    }

/* ========================================
修正・削除モード
======================================== */

/* 通常時の作業領域 */
.master-workspace[b-p020dtfn3o] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    transition: grid-template-columns 0.3s ease;
}

    /* 修正・削除モード */
    .master-workspace.edit-mode[b-p020dtfn3o] {
        grid-template-columns: minmax(700px, 1fr) 520px;
    }


/* ===== 右側：登録済み一覧 ===== */

.master-list-panel[b-p020dtfn3o] {
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
    min-height: 500px;
    animation: masterListOpen-b-p020dtfn3o 0.25s ease;
}


/* 一覧ヘッダー */
.master-list-header[b-p020dtfn3o] {
    padding: 20px 22px;
    background-color: #f7f9fc;
    border-bottom: 1px solid #d7dee8;
}

    .master-list-header h2[b-p020dtfn3o] {
        margin: 0 0 4px 0;
        color: #4f5b68;
        font-size: 18px;
        font-weight: 700;
    }

    .master-list-header p[b-p020dtfn3o] {
        margin: 0;
        color: #7b8794;
        font-size: 12px;
    }


/* 一覧本体 */
.master-list-body[b-p020dtfn3o] {
    padding: 20px;
}


/* 今だけ使う仮表示 */
.master-list-empty[b-p020dtfn3o] {
    padding: 40px 20px;
    text-align: center;
    color: #8a96a3;
    font-size: 13px;
    background-color: #fafbfc;
    border: 1px dashed #d7dee8;
    border-radius: 4px;
}


/* 右から出てくるアニメーション */
@keyframes masterListOpen-b-p020dtfn3o {

    from {
        opacity: 0;
        transform: translateX(30px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* ===== 登録済み排出事業者 一覧 ===== */

.master-list-body[b-p020dtfn3o] {
    padding: 16px;
}

.emitter-list-item[b-p020dtfn3o] {
    display: block;
    width: 100%;
    padding: 14px 16px;
    margin-bottom: 10px;
    text-align: left;
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 5px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

    .emitter-list-item:hover[b-p020dtfn3o] {
        background-color: #f7f9fc;
        border-color: #2f65c5;
        box-shadow: 0 2px 6px rgba(47, 101, 197, 0.10);
    }

.emitter-list-name[b-p020dtfn3o] {
    margin-bottom: 5px;
    color: #374151;
    font-size: 14px;
    font-weight: 700;
}

.emitter-list-address[b-p020dtfn3o] {
    margin-bottom: 3px;
    color: #6b7280;
    font-size: 12px;
}

.emitter-list-tel[b-p020dtfn3o] {
    color: #6b7280;
    font-size: 12px;
}

/* ===== 登録済み排出事業者カード ===== */

.master-list-item[b-p020dtfn3o] {
    display: block;
    width: 100%;
    padding: 14px 16px;
    margin-bottom: 10px;
    text-align: left;
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
    color: #586472;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

    /* 事業者名 */
    .master-list-item strong[b-p020dtfn3o] {
        display: block;
        margin-bottom: 5px;
        color: #374151;
        font-size: 15px;
        font-weight: 700;
    }

    /* 住所・TEL */
    .master-list-item span[b-p020dtfn3o] {
        display: block;
        color: #6f7b87;
        font-size: 13px;
        line-height: 1.6;
    }

    /* マウスを乗せた時 */
    .master-list-item:hover[b-p020dtfn3o] {
        background-color: #f7f9fc;
        border-color: #2f65c5;
        box-shadow: 0 2px 8px rgba(47, 101, 197, 0.10);
        transform: translateY(-1px);
    }

    /* キーボードフォーカス時 */
    .master-list-item:focus[b-p020dtfn3o] {
        outline: none;
        border-color: #2f65c5;
        box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.12);
    }

    /* ===== 現在選択中 ===== */

    .master-list-item.selected[b-p020dtfn3o] {
        background-color: #edf3fc;
        border-color: #2f65c5;
        box-shadow: 0 0 0 1px rgba(47, 101, 197, 0.08);
    }

        .master-list-item.selected strong[b-p020dtfn3o] {
            color: #2f65c5;
        }

/* ===== 修正・削除ボタン ===== */

.edit-action-buttons[b-p020dtfn3o] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.confirm-buttons[b-p020dtfn3o] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
}

/* 変更を保存 */
.update-button[b-p020dtfn3o] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

    .update-button:hover[b-p020dtfn3o] {
        background-color: #284f91;
    }

.confirm-update-button[b-p020dtfn3o] {
    min-width: 100px;
    height: 40px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

    .confirm-update-button:hover[b-p020dtfn3o] {
        background-color: #284f91;
    }

/* 削除 */
.delete-button[b-p020dtfn3o] {
    min-width: 90px;
    height: 38px;
    padding: 0 20px;
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

    .delete-button:hover[b-p020dtfn3o] {
        color: #ffffff;
        background-color: #dc3545;
    }

    /* ===== 修正・削除ボタン 無効状態 ===== */

    .update-button:disabled[b-p020dtfn3o],
    .delete-button:disabled[b-p020dtfn3o] {
        opacity: 0.45;
        cursor: not-allowed;
    }

        .update-button:disabled:hover[b-p020dtfn3o] {
            background-color: #315da8;
        }

        .delete-button:disabled:hover[b-p020dtfn3o] {
            color: #dc3545;
            background-color: #ffffff;
        }

.confirm-delete-button[b-p020dtfn3o] {
    min-width: 100px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #dc3545;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

    .confirm-delete-button:hover[b-p020dtfn3o] {
        background-color: #bb2d3b;
    }

    .confirm-delete-button:disabled[b-p020dtfn3o] {
        opacity: 0.6;
        cursor: not-allowed;
    }

.confirm-modal[b-p020dtfn3o] {
    width: 420px;
    max-width: calc(100vw - 40px);
    background-color: #ffffff;
    border-radius: 8px;
    padding: 28px 30px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.20);
}

    .confirm-modal h3[b-p020dtfn3o] {
        margin: 0 0 18px 0;
        font-size: 18px;
        font-weight: 700;
        color: #334155;
    }

    .confirm-modal p[b-p020dtfn3o] {
        margin: 0 0 16px 0;
        font-size: 14px;
        color: #64748b;
        line-height: 1.6;
    }

/* ===== 排出事業者検索 ===== */

.emitter-search-area[b-p020dtfn3o] {
    padding: 14px 16px 6px 16px;
}

.emitter-search-box[b-p020dtfn3o] {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.search-icon[b-p020dtfn3o] {
    position: absolute;
    left: 13px;
    color: #718096;
    font-size: 18px;
    pointer-events: none;
}

.emitter-search-input[b-p020dtfn3o] {
    width: 100%;
    height: 40px;
    padding: 0 42px 0 40px;
    border: 1px solid #c8d4e3;
    border-radius: 5px;
    background-color: #ffffff;
    color: #34495e;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

    .emitter-search-input[b-p020dtfn3o]::placeholder {
        color: #9aa8b8;
    }

    .emitter-search-input:focus[b-p020dtfn3o] {
        border-color: #315da8;
        box-shadow: 0 0 0 2px rgba(49, 93, 168, 0.12);
    }

.search-clear-button[b-p020dtfn3o] {
    position: absolute;
    right: 10px;
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    color: #7d8998;
    font-size: 20px;
    line-height: 20px;
    cursor: pointer;
}

    .search-clear-button:hover[b-p020dtfn3o] {
        color: #315da8;
    }

/* ===== 頭文字検索 ===== */

.initial-filter-toggle[b-p020dtfn3o] {
    width: calc(100% - 32px);
    margin: 4px 16px 8px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: #526170;
    background-color: transparent;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
}

    .initial-filter-toggle:hover[b-p020dtfn3o] {
        background-color: #f1f5fb;
        color: #315da8;
    }

.initial-filter-arrow[b-p020dtfn3o] {
    width: 14px;
    color: #728197;
    font-size: 10px;
}

.initial-filter-panel[b-p020dtfn3o] {
    margin: 0 16px 12px;
    padding: 10px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 7px;
    background-color: #f8fafc;
    border: 1px solid #d8e1ec;
    border-radius: 5px;
}

.initial-filter-button[b-p020dtfn3o] {
    height: 32px;
    color: #526170;
    background-color: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

    .initial-filter-button:hover[b-p020dtfn3o] {
        color: #315da8;
        border-color: #315da8;
        background-color: #f3f7fd;
    }

    .initial-filter-button.active[b-p020dtfn3o] {
        color: #ffffff;
        background-color: #315da8;
        border-color: #315da8;
    }

.list-toolbar[b-p020dtfn3o] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    padding: 10px 16px 4px;
}

    .list-toolbar label[b-p020dtfn3o] {
        font-size: 12px;
        font-weight: 600;
        color: #52627a;
    }

.sort-select[b-p020dtfn3o] {
    width: 120px;
    height: 28px;
    padding: 0 6px;
    border: 1px solid #c7d3e3;
    border-radius: 4px;
    background-color: #fff;
    color: #34445c;
    font-size: 12px;
    cursor: pointer;
}

    .sort-select:focus[b-p020dtfn3o] {
        outline: none;
        border-color: #315da8;
    }

/* ===== 属性情報 ===== */

.business-category-group[b-p020dtfn3o] {
    margin-bottom: 12px;
}

.business-category-parent[b-p020dtfn3o] {
    font-weight: 600;
    font-size: 15px;
    color: #40536d;
    margin-bottom: 9px;
}

.business-category-item[b-p020dtfn3o] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-right: 12px;
    margin-bottom: 6px;
    font-size: 13px;
}

.business-category-panel[b-p020dtfn3o] {
    width: 85%;
    margin-top: 20px;
    padding: 20px 22px;
    border: 1px solid #d7dfeb;
    border-radius: 6px;
    background: #f8fafc;
}

.business-category-title[b-p020dtfn3o] {
    font-weight: 700;
    font-size: 17px;
    color: #2f435f;
    margin-bottom: 5px;
}

.business-category-description[b-p020dtfn3o] {
    font-size: 12px;
    color: #7a8798;
    margin-bottom: 14px;
}

.business-category-content[b-p020dtfn3o] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.business-category-group[b-p020dtfn3o] {
    margin-bottom: 0;
}

.business-category-parent[b-p020dtfn3o] {
    font-weight: 600;
    font-size: 15px;
    color: #40536d;
    margin-bottom: 10px;
}

.business-category-items[b-p020dtfn3o] {
    display: flex;
    flex-wrap: wrap;
    column-gap: 22px;
    row-gap: 10px;
}

.business-category-item[b-p020dtfn3o] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 13px;
}

.custom-business-category-area[b-p020dtfn3o] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}

.custom-business-category-input[b-p020dtfn3o] {
    width: 260px;
    height: 34px;
    padding: 5px 9px;
    border: 1px solid #aebccc;
    border-radius: 4px;
    background-color: #ffffff;
    color: #4f5b68;
    font-size: 13px;
    outline: none;
}

    .custom-business-category-input:focus[b-p020dtfn3o] {
        border-color: #2f65c5;
        box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
    }

.custom-business-category-button[b-p020dtfn3o] {
    height: 34px;
    padding: 0 12px;
    color: #2f65c5;
    background-color: #ffffff;
    border: 1px solid #2f65c5;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

    .custom-business-category-button:hover[b-p020dtfn3o] {
        color: #ffffff;
        background-color: #2f65c5;
    }

.custom-business-category-message[b-p020dtfn3o] {
    margin-top: 6px;
    font-size: 12px;
    color: #2e7d32;
}

/* =========================================================
   スマホ・狭い画面の追加調整
   ========================================================= */

@media (max-width: 700px) {

    /* ===== 画面全体 ===== */
    .emitter-page[b-p020dtfn3o] {
        margin-left: 0;
        padding: 16px 12px 40px;
        max-width: 100%;
    }


    /* ===== タイトル ===== */
    .page-header[b-p020dtfn3o] {
        gap: 12px;
        padding: 16px 14px;
        align-items: center;
    }

        .page-header > i[b-p020dtfn3o] {
            width: 40px;
            height: 40px;
            font-size: 21px;
        }

    .page-header-text[b-p020dtfn3o] {
        min-width: 0;
        flex: 1;
    }

        .page-header-text h1[b-p020dtfn3o] {
            font-size: 22px;
            line-height: 1.25;
            white-space: nowrap;
        }

        .page-header-text p[b-p020dtfn3o] {
            font-size: 12px;
            line-height: 1.5;
        }


    /* ===== 修正/削除トグル ===== */
    .mode-toggle-area[b-p020dtfn3o] {
        flex-shrink: 0;
        gap: 6px;
    }

    .mode-toggle-label[b-p020dtfn3o] {
        font-size: 12px;
    }

    .toggle-switch[b-p020dtfn3o] {
        width: 46px;
        height: 26px;
    }


    /* ===== カード ===== */
    .form-section[b-p020dtfn3o] {
        padding: 20px 18px 24px;
    }


    /* ===== 業務属性 ===== */
    .business-category-panel[b-p020dtfn3o] {
        padding: 18px 16px;
    }

    .business-category-title[b-p020dtfn3o] {
        font-size: 16px;
    }

    .business-category-items[b-p020dtfn3o] {
        column-gap: 14px;
        row-gap: 10px;
    }

    .business-category-item[b-p020dtfn3o] {
        white-space: nowrap;
    }


    /* ===== ＋事業場追加 ===== */
    .add-site-button[b-p020dtfn3o] {
        width: auto;
        min-width: 140px;
        white-space: nowrap;
        flex-shrink: 0;
    }

    .custom-business-category-button[b-p020dtfn3o] {
        flex-shrink: 0;
        white-space: nowrap;
        min-width: 64px;
    }

    .custom-business-category-area[b-p020dtfn3o] {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
    }

    .custom-business-category-input[b-p020dtfn3o] {
        flex: 1;
        width: auto;
        min-width: 0;
    }

    .custom-business-category-button[b-p020dtfn3o] {
        flex-shrink: 0;
        white-space: nowrap;
        min-width: 64px;
    }

    /* ===== その他業務追加 ===== */

    .custom-business-category-area[b-p020dtfn3o] {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px;
    }

    .custom-business-category-input[b-p020dtfn3o] {
        flex: 1;
        width: auto;
        min-width: 0;
    }

    .custom-business-category-button[b-p020dtfn3o] {
        flex-shrink: 0;
        white-space: nowrap;
        min-width: 64px;
    }
}

/* =========================================================
   タブレット・中間幅対策
   VendorRegisterと同じく1350px以下で1列化
   ========================================================= */

@media (min-width: 701px) and (max-width: 1350px) {

    /* ===== 画面全体 ===== */
    .emitter-page[b-p020dtfn3o] {
        margin-left: 0;
        padding: 20px 18px 50px;
        max-width: 100%;
    }

    /* ===== 修正・削除モード ===== */

    .master-workspace.edit-mode[b-p020dtfn3o] {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

        /* 登録済み排出事業者一覧を上へ */
        .master-workspace.edit-mode .master-list-panel[b-p020dtfn3o] {
            order: -1;
            width: 100%;
            min-width: 0;
        }

        /* 入力フォームを下へ */
        .master-workspace.edit-mode .form-section[b-p020dtfn3o] {
            order: 0;
            width: 100%;
            min-width: 0;
        }


    /* ===== タイトル ===== */
    .page-header[b-p020dtfn3o] {
        gap: 12px;
        padding: 18px 16px;
    }

        .page-header > i[b-p020dtfn3o] {
            width: 42px;
            height: 42px;
            font-size: 22px;
        }

    .page-header-text[b-p020dtfn3o] {
        min-width: 0;
        flex: 1;
    }

        .page-header-text h1[b-p020dtfn3o] {
            font-size: 22px;
            line-height: 1.25;
            white-space: nowrap;
        }

        .page-header-text p[b-p020dtfn3o] {
            font-size: 12px;
            line-height: 1.45;
        }

    .mode-toggle-area[b-p020dtfn3o] {
        flex-shrink: 0;
        gap: 6px;
    }

    .mode-toggle-label[b-p020dtfn3o] {
        font-size: 12px;
    }


    /* ===== 入力欄 ===== */
    .form-row[b-p020dtfn3o] {
        display: block;
        margin-bottom: 16px;
    }

    .form-label[b-p020dtfn3o] {
        width: 140px;
        min-width: 140px;
        margin-bottom: 5px;
    }

    .input-area[b-p020dtfn3o] {
        width: 100%;
        min-width: 0;
    }

    .form-input[b-p020dtfn3o] {
        width: 100%;
        max-width: 100%;
    }


    /* ===== 事業場ヘッダー ===== */
    .site-header[b-p020dtfn3o] {
        grid-template-columns: 1fr;
        row-gap: 8px;
    }


    /* ===== 業務属性 ===== */
    .business-category-panel[b-p020dtfn3o] {
        width: 100%;
        max-width: 620px;
        padding: 18px 18px;
    }

    .business-category-items[b-p020dtfn3o] {
        column-gap: 16px;
        row-gap: 10px;
    }


    /* ===== その他業務追加 ===== */
    .custom-business-category-area[b-p020dtfn3o] {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px;
    }

    .custom-business-category-input[b-p020dtfn3o] {
        width: auto;
        min-width: 0;
        flex: 1;
    }

    .custom-business-category-button[b-p020dtfn3o] {
        flex-shrink: 0;
        white-space: nowrap;
        min-width: 64px;
    }


    /* ===== ＋事業場追加 ===== */
    .add-site-area[b-p020dtfn3o] {
        padding-left: 0;
        justify-content: center;
    }

    .add-site-button[b-p020dtfn3o] {
        width: auto;
        min-width: 140px;
        white-space: nowrap;
        flex-shrink: 0;
    }
}

/* 修正・削除トグル：全画面幅で寸法統一 */
.mode-toggle-area[b-p020dtfn3o] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 10px;
    white-space: nowrap;
}

.mode-toggle-label[b-p020dtfn3o] {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.toggle-switch[b-p020dtfn3o] {
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
}

.toggle-slider[b-p020dtfn3o]::before {
    width: 22px;
    height: 22px;
}

.toggle-switch input:checked + .toggle-slider[b-p020dtfn3o]::before {
    transform: translateX(24px);
}
/* /Components/Pages/ManifestRegister.razor.rz.scp.css */
/* CSS for ManifestRegister component */
/* ========================================
   マニフェスト登録画面 全体
======================================== */

.manifest-page[b-5psg94o6np] {
    max-width: 1200px;
    padding: 24px 32px 60px 32px;
    color: #4B5563;
}


/* ==============================
   画面ヘッダー
============================== */

.page-header[b-5psg94o6np] {
    margin-bottom: 28px;
    padding: 22px 26px;
    background-color: #f8fafc;
    border-left: 5px solid #2f65b9;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 16px;
}

    .page-header h1[b-5psg94o6np] {
        margin: 0;
        font-size: 30px;
        font-weight: 700;
        color: #4b5563;
        letter-spacing: 0.02em;
    }

    .page-header p[b-5psg94o6np] {
        margin: 7px 0 0 0;
        font-size: 14px;
        color: #6b7280;
    }

/* ===== 画面タイトルアイコン ===== */

.page-header-icon[b-5psg94o6np] {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #eaf1fb;
    color: #2f65b9;
    border-radius: 8px;
    flex-shrink: 0;
}

    .page-header-icon i[b-5psg94o6np] {
        font-size: 30px;
        line-height: 1;
    }

/* ========================================
   各セクション
======================================== */

.form-section[b-5psg94o6np] {
    margin-bottom: 24px;
    padding: 20px 24px 24px 24px;
    background-color: #ffffff;
    border: 1px solid #d9dee7;
    border-radius: 6px;
}


/* ========================================
   セクションタイトル
======================================== */

.section-title[b-5psg94o6np] {
    margin-bottom: 18px;
    padding-bottom: 8px;
    font-size: 18px;
    font-weight: 700;
    color: #1f2937;
    border-bottom: 2px solid #315da8;
}


/* ========================================
   入力1行
======================================== */

.form-row[b-5psg94o6np] {
    display: grid;
    grid-template-columns: 150px 280px 1fr;
    align-items: center;
    min-height: 42px;
    margin-bottom: 8px;
}


/* ========================================
   項目名
======================================== */

.form-label[b-5psg94o6np] {
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}


/* ========================================
   入力欄を入れる領域
======================================== */

.input-area[b-5psg94o6np] {
    width: 100%;
}


/* ========================================
   テキストボックス
======================================== */

.form-input[b-5psg94o6np] {
    box-sizing: border-box;
    width: 100%;
    height: 34px;
    padding: 5px 8px;
    font-size: 14px;
    background-color: #ffffff;
    border: 1px solid #aeb6c2;
    border-radius: 4px;
    outline: none;
}


    /* フォーカス時 */
    .form-input:focus[b-5psg94o6np] {
        border-color: #315da8;
        box-shadow: 0 0 0 2px rgba(49, 93, 168, 0.15);
    }


    /* ========================================
   ReadOnly
======================================== */

    .form-input[readonly][b-5psg94o6np] {
        background-color: #f3f4f6;
        color: #4b5563;
    }


/* ========================================
   select
======================================== */

.form-select[b-5psg94o6np] {
    box-sizing: border-box;
    width: 100%;
    height: 34px;
    padding: 4px 8px;
    font-size: 14px;
    background-color: #ffffff;
    border: 1px solid #aeb6c2;
    border-radius: 4px;
}


/* ========================================
   入力チェック
======================================== */

.validation-ok[b-5psg94o6np] {
    margin-left: 12px;
    font-size: 13px;
    font-weight: 600;
    color: #16803c;
}

.validation-error[b-5psg94o6np] {
    margin-left: 12px;
    font-size: 13px;
    font-weight: 600;
    color: #d92d20;
}

/* ========================================
   小見出し
======================================== */

.subsection-title[b-5psg94o6np] {
    display: flex;
    align-items: center;
    margin: 20px 0 16px 0;
    padding: 8px 12px;
    background-color: #f2f6fc;
    border-left: 4px solid #2457a6;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    color: #1f2937;
}


/* ========================================
   排出事業者 / 排出事業場 区切り
======================================== */

.subsection-divider[b-5psg94o6np] {
    width: 100%;
    margin: 20px 0;
    border-top: 1px dashed #cbd5e1;
}


/* ==============================
   日付入力 + 未返却ボタン
============================== */

.date-action-row[b-5psg94o6np] {
    display: flex;
    align-items: center;
    gap: 8px;
}

    .date-action-row .form-input[b-5psg94o6np] {
        flex: 1;
    }

.unreturned-button[b-5psg94o6np] {
    flex-shrink: 0;
    height: 34px;
    padding: 4px 12px;
    background-color: #f3f4f6;
    color: #374151;
    border: 1px solid #aeb6c2;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
}

    .unreturned-button:hover[b-5psg94o6np] {
        background-color: #e5e7eb;
    }

/* ==================================
   登録ボタン
================================== */

.register-actions[b-5psg94o6np] {
    display: flex;
    justify-content: flex-end;
    margin-top: 24px;
    padding-bottom: 40px;
}

.register-button[b-5psg94o6np] {
    min-width: 200px;
    height: 44px;
    padding: 0 24px;
    background-color: #2457a6;
    color: #ffffff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

    .register-button:hover[b-5psg94o6np] {
        background-color: #1d4788;
    }

/* ================================
   連続入力スイッチ
================================ */

.continuous-input-area[b-5psg94o6np] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-bottom: 12px;
}

.continuous-input-label[b-5psg94o6np] {
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}

.toggle-switch[b-5psg94o6np] {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

    .toggle-switch input[b-5psg94o6np] {
        opacity: 0;
        width: 0;
        height: 0;
    }

.toggle-slider[b-5psg94o6np] {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #d1d5db;
    border-radius: 24px;
    transition: 0.2s;
}

    .toggle-slider[b-5psg94o6np]::before {
        content: "";
        position: absolute;
        width: 18px;
        height: 18px;
        left: 3px;
        top: 3px;
        background-color: white;
        border-radius: 50%;
        transition: 0.2s;
    }

.toggle-switch input:checked + .toggle-slider[b-5psg94o6np] {
    background-color: #315da8;
}

    .toggle-switch input:checked + .toggle-slider[b-5psg94o6np]::before {
        transform: translateX(20px);
    }

/* ================================
   登録確認ダイアログ
================================ */

.confirm-overlay[b-5psg94o6np] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.35);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.confirm-dialog[b-5psg94o6np] {
    width: 400px;
    padding: 24px;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.confirm-title[b-5psg94o6np] {
    font-size: 18px;
    font-weight: 700;
    color: #1f2937;
    margin-bottom: 16px;
}

.confirm-message[b-5psg94o6np] {
    font-size: 14px;
    line-height: 1.8;
    color: #374151;
    margin-bottom: 24px;
}

.confirm-buttons[b-5psg94o6np] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.confirm-yes[b-5psg94o6np],
.confirm-no[b-5psg94o6np] {
    min-width: 80px;
    height: 36px;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
}

.confirm-yes[b-5psg94o6np] {
    background-color: #315da8;
    color: #ffffff;
    border: 1px solid #315da8;
}

.confirm-no[b-5psg94o6np] {
    background-color: #ffffff;
    color: #374151;
    border: 1px solid #aeb6c2;
}

.form-label[b-5psg94o6np],
.subsection-title[b-5psg94o6np],
.section-title[b-5psg94o6np] {
    color: #5B6472;
}
/* /Components/Pages/OwnCompanySettings.razor.rz.scp.css */
/* Colors, dimensions and modal treatment follow ContractRegister. */
.own-page[b-a3d9nchxhe] { width:100%; max-width:1600px; min-height:100%; padding:24px 28px 40px; color:#3f4f63; background:#eef7fb; border-radius:8px; box-sizing:border-box; font-size:13px; }
.own-page *[b-a3d9nchxhe], .own-modal[b-a3d9nchxhe], .own-modal *[b-a3d9nchxhe] { box-sizing:border-box; }
.own-header[b-a3d9nchxhe] { display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.own-header-icon[b-a3d9nchxhe] { display:flex; align-items:center; justify-content:center; flex:0 0 46px; height:46px; color:white; background:#4b94be; border-radius:6px; font-size:22px; }
.own-header h1[b-a3d9nchxhe] { margin:0; color:#344154; font-size:24px; font-weight:700; }
.own-header p[b-a3d9nchxhe] { margin:4px 0 0; color:#77869a; font-size:13px; }
.own-workspace[b-a3d9nchxhe] { border:0; margin:0; padding:0; min-width:0; }
.own-mode[b-a3d9nchxhe] { display:inline-flex; flex-wrap:wrap; gap:4px; padding:4px; margin-bottom:16px; background:#dceef6; border:1px solid #bed9e8; border-radius:7px; }
.own-mode button[b-a3d9nchxhe] { min-height:38px; padding:0 18px; color:#597086; background:transparent; border:0; border-radius:5px; font-size:12px; font-weight:700; }
.own-mode button.active[b-a3d9nchxhe] { color:white; background:#4b94be; box-shadow:0 1px 4px #30698938; }
.own-card[b-a3d9nchxhe] { margin-bottom:20px; padding:24px; background:white; border:1px solid #bed9e8; border-radius:6px; box-shadow:0 2px 8px #4b94be14; min-width:0; }
.own-card h2[b-a3d9nchxhe] { margin:0 0 18px; color:#344154; font-size:16px; font-weight:700; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.own-card h2 i[b-a3d9nchxhe] { color:#4b94be; }
.own-selector[b-a3d9nchxhe] { display:flex; gap:12px; align-items:center; flex-wrap:wrap; padding:16px 20px; }
.own-selector label[b-a3d9nchxhe] { margin:0; }
.own-selector select[b-a3d9nchxhe] { flex:1; min-width:180px; width:auto; }
.own-tabs[b-a3d9nchxhe] { display:flex; margin-bottom:16px; overflow-x:auto; background:white; border:1px solid #bed9e8; border-radius:6px; box-shadow:0 2px 8px #4b94be14; }
.own-tabs button[b-a3d9nchxhe] { position:relative; flex:1 0 auto; min-width:150px; min-height:54px; padding:0 18px; border:0; border-right:1px solid #dcebf3; background:white; color:#607086; font-size:13px; font-weight:600; }
.own-tabs button:last-child[b-a3d9nchxhe] { border-right:0; }
.own-tabs button.active[b-a3d9nchxhe] { color:#3d7fa6; background:#eef8fc; }
.own-tabs button.active[b-a3d9nchxhe]::after { position:absolute; right:12px; bottom:0; left:12px; height:3px; background:#4b94be; border-radius:3px; content:""; }
.own-context[b-a3d9nchxhe] { display:flex; gap:12px 20px; align-items:center; flex-wrap:wrap; margin-bottom:20px; padding:12px 18px; background:#e3f1f8; border:1px solid #bed9e8; border-radius:6px; overflow-wrap:anywhere; }
.own-context strong[b-a3d9nchxhe] { color:#326d90; }
.own-context span[b-a3d9nchxhe] { font-size:12px; }
.own-fields[b-a3d9nchxhe] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
.own-full[b-a3d9nchxhe] { grid-column:1/-1; }
.own-page label[b-a3d9nchxhe] { display:block; margin-bottom:7px; font-size:12px; font-weight:600; }
.own-page input:not([type=checkbox])[b-a3d9nchxhe], .own-page select[b-a3d9nchxhe] { width:100%; min-height:38px; padding:8px 10px; color:#3f4f63; background:white; border:1px solid #b8c9df; border-radius:4px; font:inherit; }
.own-page .own-selector select[b-a3d9nchxhe] { width:auto; }
.own-page input[type=checkbox][b-a3d9nchxhe] { width:16px; height:16px; accent-color:#4b94be; flex-shrink:0; }
.own-page .own-check[b-a3d9nchxhe] { display:flex; align-items:center; gap:9px; min-height:38px; margin:0; }
.own-help[b-a3d9nchxhe] { margin:9px 0; color:#77869a; font-size:12px; line-height:1.7; }
.own-required[b-a3d9nchxhe] { margin-left:4px; color:#b42318; font-size:10px; }
.own-summary[b-a3d9nchxhe] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:0; }
.own-summary div[b-a3d9nchxhe], .own-confirm-list div[b-a3d9nchxhe] { min-width:0; display:grid; grid-template-columns:120px minmax(0,1fr); gap:10px; }
.own-summary dt[b-a3d9nchxhe], .own-confirm-list dt[b-a3d9nchxhe] { color:#77869a; font-size:12px; font-weight:400; }
.own-summary dd[b-a3d9nchxhe], .own-confirm-list dd[b-a3d9nchxhe] { margin:0; overflow-wrap:anywhere; font-weight:600; }
.own-badge[b-a3d9nchxhe], .own-badges span[b-a3d9nchxhe] { display:inline-flex; padding:4px 10px; font-size:11px; font-weight:600; color:#397c9f; background:#eef8fc; border:1px solid #cce4ef; border-radius:4px; overflow-wrap:anywhere; }
.own-badge.muted[b-a3d9nchxhe] { color:#6e7e8b; background:#f1f3f5; border-color:#dce3e8; }
.own-badges[b-a3d9nchxhe] { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.own-choices[b-a3d9nchxhe] { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.own-page .own-choice[b-a3d9nchxhe] { display:flex; align-items:center; gap:10px; margin:0; min-height:52px; padding:14px; background:#f8fbfd; border:1px solid #d6e5ee; border-radius:6px; }
.own-choice.selected[b-a3d9nchxhe] { background:#eef8fc; border-color:#7db6d4; color:#326d90; }
.own-actions[b-a3d9nchxhe] { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:24px; padding-top:20px; border-top:1px dashed #bed9e8; }
.own-primary[b-a3d9nchxhe], .own-secondary[b-a3d9nchxhe] { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:9px 20px; border:1px solid #4b94be; border-radius:4px; background:#4b94be; color:white; font:inherit; font-size:13px; font-weight:600; text-decoration:none; cursor:pointer; }
.own-secondary[b-a3d9nchxhe] { background:white; color:#587086; border-color:#b8c9df; }
.own-primary:hover:not(:disabled)[b-a3d9nchxhe] { background:#3d7fa6; color:white; }
.own-secondary:hover:not(:disabled)[b-a3d9nchxhe] { background:#eef8fc; }
button[b-a3d9nchxhe] { cursor:pointer; font-family:inherit; }
button:disabled[b-a3d9nchxhe] { cursor:default; opacity:.55; }
button:focus-visible[b-a3d9nchxhe], a:focus-visible[b-a3d9nchxhe], input:focus-visible[b-a3d9nchxhe], select:focus-visible[b-a3d9nchxhe] { outline:3px solid #2a668c; outline-offset:2px; }
.own-message[b-a3d9nchxhe] { margin-bottom:16px; padding:12px 16px; background:#eef8fc; border:1px solid #bed9e8; border-radius:5px; font-size:13px; overflow-wrap:anywhere; }
.own-message.success[b-a3d9nchxhe] { background:#f0faf5; border-color:#b5d9c8; color:#287353; }
.own-message.error[b-a3d9nchxhe] { color:#b42318; background:#fff5f5; border-color:#fecaca; }
.own-empty[b-a3d9nchxhe] { margin:0; padding:24px 12px; color:#77869a; line-height:1.8; }
.own-section-heading[b-a3d9nchxhe] { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.own-section-heading h2[b-a3d9nchxhe], .own-section-heading h3[b-a3d9nchxhe] { margin:0; }
.own-permits[b-a3d9nchxhe] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.own-permit[b-a3d9nchxhe] { padding:18px; border:1px solid #bed9e8; border-radius:6px; background:#fbfdff; overflow-wrap:anywhere; }
.own-permit h3[b-a3d9nchxhe] { font-size:14px; font-weight:700; }
.own-permit .own-summary[b-a3d9nchxhe] { grid-template-columns:1fr; margin-top:16px; }
.own-expired[b-a3d9nchxhe] { color:#a7422d; font-size:11px; }
.own-modal[b-a3d9nchxhe]::backdrop { background:rgba(15,23,42,.38); }
.own-modal[b-a3d9nchxhe] { width:calc(100% - 40px); max-width:620px; max-height:calc(100dvh - 40px); margin:auto; padding:24px; overflow-y:auto; color:#3f4f63; background:white; border:1px solid #bed9e8; border-radius:8px; box-shadow:0 12px 32px #1e3c502e; font-size:13px; }
.own-modal h2[b-a3d9nchxhe] { margin:0 0 12px; color:#344154; font-size:18px; font-weight:700; }
.own-modal p[b-a3d9nchxhe] { color:#77869a; line-height:1.8; }
.own-confirm-list[b-a3d9nchxhe] { margin:18px 0 0; }
.own-confirm-list div[b-a3d9nchxhe] { padding:10px 0; border-bottom:1px solid #e3edf3; grid-template-columns:150px minmax(0,1fr); }
@media(max-width:1000px) { .own-summary[b-a3d9nchxhe], .own-permits[b-a3d9nchxhe] { grid-template-columns:1fr; } }
@media(max-width:600px) {
    .own-page[b-a3d9nchxhe] { padding:18px 12px 28px; }
    .own-header[b-a3d9nchxhe] { align-items:flex-start; gap:10px; }
    .own-header h1[b-a3d9nchxhe] { font-size:21px; }
    .own-card[b-a3d9nchxhe] { padding:16px; }
    .own-fields[b-a3d9nchxhe] { grid-template-columns:1fr; gap:16px; }
    .own-selector[b-a3d9nchxhe] { align-items:stretch; }
    .own-page .own-selector select[b-a3d9nchxhe] { width:100%; min-width:0; flex-basis:100%; }
    .own-tabs button[b-a3d9nchxhe] { min-width:120px; padding:0 12px; }
    .own-summary div[b-a3d9nchxhe] { grid-template-columns:100px minmax(0,1fr); }
    .own-modal[b-a3d9nchxhe] { padding:18px; }
    .own-confirm-list div[b-a3d9nchxhe] { grid-template-columns:110px minmax(0,1fr); }
    .own-actions button[b-a3d9nchxhe] { flex:1; }
    .own-mode[b-a3d9nchxhe] { display:flex; }
    .own-mode button[b-a3d9nchxhe] { flex:1; padding:0 10px; }
}
/* /Components/Pages/PermitRegister.razor.rz.scp.css */
/* =========================================================
   ページ全体
   ========================================================= */

.permit-page[b-n0ywrbxi1n] {
    position: relative;
    width: 95%;
    max-width: 1500px;
    margin: 24px 0 60px 48px;
}

/* =========================================================
   画面タイトル
   ========================================================= */

.page-header[b-n0ywrbxi1n] {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 24px;
    margin-bottom: 24px;
    background-color: #f5f8fc;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
}


/* ===== タイトルアイコン ===== */

.page-header .page-header-icon[b-n0ywrbxi1n] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    background-color: #eaf2fd;
    color: #2f65c5;
    border: 1px solid #dce8f8;
    border-radius: 8px;
    font-size: 25px;
    line-height: 1;
}

.page-header .page-header-icon i[b-n0ywrbxi1n] {
    line-height: 1;
}


/* ===== タイトル文字エリア ===== */

.page-header-text[b-n0ywrbxi1n] {
    flex: 1;
    min-width: 0;
}

.page-header-text h1[b-n0ywrbxi1n] {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: #3f4f63;
}

.page-header-text p[b-n0ywrbxi1n] {
    margin: 3px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: #66758a;
}

/* ===== 修正・削除エリア ===== */

.mode-toggle-area[b-n0ywrbxi1n] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 10px;
    white-space: nowrap;
}

.mode-toggle-label[b-n0ywrbxi1n] {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.mode-toggle-area .switch[b-n0ywrbxi1n] {
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
}

.mode-toggle-area .slider[b-n0ywrbxi1n]::before {
    width: 22px;
    height: 22px;
}

.mode-toggle-area .switch input:checked + .slider[b-n0ywrbxi1n]::before {
    transform: translateX(24px);
}

/* =========================================================
   許可基本情報カード
   ========================================================= */

.permit-form-card[b-n0ywrbxi1n] {
    background-color: #ffffff;
    border: 1px solid #d8e1ec;
    border-radius: 6px;
    padding: 20px;
    margin-bottom: 24px;
}

/* =========================================================
   セクションタイトル
   ========================================================= */

.section-title[b-n0ywrbxi1n] {
    font-size: 16px;
    font-weight: 700;
    color: #374151;
    padding-bottom: 10px;
    margin-bottom: 18px;
    border-bottom: 2px solid #2f65c5;
}

/* =========================================================
   入力フォーム共通
========================================================= */

.form-row[b-n0ywrbxi1n] {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin-bottom: 8px;
}

/* ===== 項目名エリア ===== */

.form-label[b-n0ywrbxi1n] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 150px;
    margin-right: 16px;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}

/* ===== 必須バッジ ===== */

.required-badge[b-n0ywrbxi1n] {
    display: inline-block;
    padding: 2px 6px;
    margin-left: 8px;
    font-size: 11px;
    font-weight: 600;
    color: #ffffff;
    background-color: #dc3545;
    border-radius: 3px;
}

/* ===== 入力エリア ===== */

.input-area[b-n0ywrbxi1n] {
    width: 320px;
}

/* ===== 入力欄共通 ===== */

.form-input[b-n0ywrbxi1n] {
    width: 100%;
    height: 36px;
    padding: 6px 10px;
    font-size: 14px;
    color: #374151;
    background-color: #ffffff;
    border: 1px solid #b8c4d6;
    border-radius: 4px;
    box-sizing: border-box;
}

.form-input:focus[b-n0ywrbxi1n] {
    outline: none;
    border-color: #2f6fed;
    box-shadow: 0 0 0 2px rgba(47, 111, 237, 0.12);
}

/* =====================================================
   許可自治体 サジェスト検索
   ===================================================== */

.authority-search-area[b-n0ywrbxi1n] {
    position: relative;
    width: 320px;
}

/* 候補一覧 */
.authority-suggestions[b-n0ywrbxi1n] {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: white;
    border: 1px solid #cbd5e1;
    border-top: none;
    border-radius: 0 0 6px 6px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.10);
    z-index: 1000;
    overflow: hidden;
}

/* 候補1件 */
.authority-suggestion-item[b-n0ywrbxi1n] {
    padding: 10px 12px;
    cursor: pointer;
    font-size: 14px;
    color: #1e293b;
    background: white;
}

/* マウスを乗せた候補 */
.authority-suggestion-item:hover[b-n0ywrbxi1n] {
    background: #f1f5f9;
}

/* 許可自治体 選択状態 */
.authority-valid-message[b-n0ywrbxi1n] {
    margin-top: 6px;
    font-size: 13px;
    color: #198754;
    font-weight: 600;
}

.authority-error-message[b-n0ywrbxi1n] {
    margin-top: 6px;
    font-size: 13px;
    color: #dc3545;
    font-weight: 600;
}
.permit-number-ok[b-n0ywrbxi1n] {
    margin-top: 4px;
    color: #198754;
    font-size: 0.85rem;
    font-weight: 600;
}

.permit-number-error[b-n0ywrbxi1n] {
    margin-top: 4px;
    color: #dc3545;
    font-size: 0.85rem;
    font-weight: 600;
}

/* ========================================
   日付変換結果
======================================== */

.date-convert-ok[b-n0ywrbxi1n] {
    margin-top: 4px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #198754;
}

/* ========================================
   日付エラー
======================================== */

.date-convert-error[b-n0ywrbxi1n] {
    margin-top: 4px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #dc3545;
    line-height: 1.4;
}

/* ========================================
   登録ボタン
======================================== */

.register-button[b-n0ywrbxi1n] {
    width: 120px;
    height: 44px;
    padding: 0 24px;
    border: none;
    border-radius: 6px;
    background: #2563eb;
    color: #ffffff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease;
}

.register-button:hover:not(:disabled)[b-n0ywrbxi1n] {
    background: #1d4ed8;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.25);
}

.register-button:active:not(:disabled)[b-n0ywrbxi1n] {
    transform: translateY(1px);
}

.register-button:disabled[b-n0ywrbxi1n] {
    background: #94a3b8;
    cursor: not-allowed;
}

.permit-register-area[b-n0ywrbxi1n] {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e2e8f0;
    display: grid;
    grid-template-columns: 1fr auto auto;
    justify-content: end;
    align-items: center;
    column-gap: 16px;
    min-height: 60px;
}

.register-message-area[b-n0ywrbxi1n] {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.register-message[b-n0ywrbxi1n] {
    margin: 0;
    min-width: 0;
    padding: 9px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    box-sizing: border-box;
    transform: none;
}

.register-message.success[b-n0ywrbxi1n] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.register-message.error[b-n0ywrbxi1n] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}



/* ========================================
   登録確認
======================================== */

.register-confirm[b-n0ywrbxi1n] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.register-confirm[b-n0ywrbxi1n]::before {
    content: "";
    position: absolute;
    width: 420px;
    height: 190px;
    background: #ffffff;
    border: 1px solid #dbe3ef;
    border-radius: 10px;
    box-shadow: 0 15px 40px rgba(15, 23, 42, 0.18);
}


/* ========================================
   確認メッセージ
======================================== */

.register-confirm-message[b-n0ywrbxi1n] {
    position: relative;
    z-index: 1;
    width: 360px;
    margin-bottom: 70px;
    color: #1e293b;
    font-size: 15px;
    font-weight: 700;
    text-align: center;
}


/* ========================================
   確認ボタンエリア
======================================== */

.register-confirm-buttons[b-n0ywrbxi1n] {
    position: absolute;
    z-index: 1;
    display: flex;
    gap: 12px;
    margin-top: 80px;
}


/* 登録する */
.register-confirm-buttons button:first-child[b-n0ywrbxi1n] {
    min-width: 110px;
    padding: 9px 18px;
    border: none;
    border-radius: 6px;
    background: #2563eb;
    color: #ffffff;
    font-weight: 700;
    cursor: pointer;
}

.register-confirm-buttons button:first-child:hover[b-n0ywrbxi1n] {
    background: #1d4ed8;
}


/* キャンセル */
.register-confirm-buttons button:last-child[b-n0ywrbxi1n] {
    min-width: 110px;
    padding: 9px 18px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    color: #475569;
    font-weight: 700;
    cursor: pointer;
}

.register-confirm-buttons button:last-child:hover[b-n0ywrbxi1n] {
    background: #f1f5f9;
}


/* ========================================
   登録結果メッセージ
======================================== */

.register-message[b-n0ywrbxi1n] {
    margin: 0;
    padding: 9px 14px;
    min-width: 260px;
    max-width: 320px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}

/* 登録成功 */
.register-message.success[b-n0ywrbxi1n] {
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
    color: #15803d;
}

/* 入力エラー */
.register-message.error[b-n0ywrbxi1n] {
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #dc2626;
}

.register-message.error[b-n0ywrbxi1n],
.register-message-error[b-n0ywrbxi1n],
.site-register-message.error[b-n0ywrbxi1n] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}

.register-message.success[b-n0ywrbxi1n],
.register-message-ok[b-n0ywrbxi1n],
.site-register-message.success[b-n0ywrbxi1n] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

/* ========================================
   許可品目
======================================== */

.waste-type-section[b-n0ywrbxi1n] {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid #d8e1ee;
}

.waste-type-title[b-n0ywrbxi1n] {
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 700;
    color: #24364b;
}

.waste-type-grid[b-n0ywrbxi1n] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 24px;
}

.waste-type-item[b-n0ywrbxi1n] {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    line-height: 1.5;
    cursor: pointer;
    width: fit-content;
}

.waste-type-item input[type="checkbox"][b-n0ywrbxi1n] {
    margin-top: 4px;
    flex-shrink: 0;
}

.permit-waste-section h4[b-n0ywrbxi1n] {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 16px 0;
    border-top: none;
    margin-top: 24px;
    padding-top: 0px;
    margin-bottom: 16px;
}

/* ========================================
   許可品目 + 積替え保管
======================================== */

.waste-type-item-row[b-n0ywrbxi1n] {
    display: grid;
    grid-template-columns: 160px auto;
    align-items: center;
    column-gap: 8px;
}

.transfer-storage-check[b-n0ywrbxi1n] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    width: fit-content;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: #b45309;
    white-space: nowrap;
}

.transfer-storage-check input[type="checkbox"][b-n0ywrbxi1n] {
    accent-color: #f59e0b;
    cursor: pointer;
}

.transfer-storage-check input[type="checkbox"]:disabled[b-n0ywrbxi1n] {
    cursor: not-allowed;
    opacity: 0.4;
}

.transfer-storage-check:has(input:disabled)[b-n0ywrbxi1n] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* 特管品目：積保位置を揃える */
.special-waste-row .waste-type-item[b-n0ywrbxi1n] {
    width: 140px;
    flex-shrink: 0;
}

.special-waste-row .transfer-storage-check[b-n0ywrbxi1n] {
    margin-left: 4px;
}

.permit-edit-layout.edit-mode .special-waste-row .waste-type-item[b-n0ywrbxi1n] {
    width: auto;
}

/* 品目個数カウント */
.waste-count-display[b-n0ywrbxi1n] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
    color: #334155;
    font-size: 0.9rem;
    font-weight: 600;
}

.transfer-storage-count[b-n0ywrbxi1n] {
    color: #b45309;
}
/* ========================================
   オプショントグル
======================================== */

.permit-option-section[b-n0ywrbxi1n] {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px dashed #cfd8e6;
}

.permit-option-row[b-n0ywrbxi1n] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 420px;
}

.permit-option-title[b-n0ywrbxi1n] {
    font-size: 14px;
    font-weight: 700;
    color: #24364b;
}


/* ===== トグルスイッチ ===== */

.switch[b-n0ywrbxi1n] {
    position: relative;
    display: inline-block;
    width: 46px;
    height: 24px;
}

.switch input[b-n0ywrbxi1n] {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider[b-n0ywrbxi1n] {
    position: absolute;
    inset: 0;
    background: #cbd5e1;
    border-radius: 24px;
    cursor: pointer;
    transition: 0.2s;
}

.slider[b-n0ywrbxi1n]::before {
    content: "";
    position: absolute;
    width: 18px;
    height: 18px;
    left: 3px;
    top: 3px;
    background: white;
    border-radius: 50%;
    transition: 0.2s;
}

.switch input:checked + .slider[b-n0ywrbxi1n] {
    background: #2563eb;
}

.switch input:checked + .slider[b-n0ywrbxi1n]::before {
    transform: translateX(22px);
}


/* ===== ON時の追加品目 ===== */

.waste-option-panel[b-n0ywrbxi1n] {
    margin-top: 14px;
    padding: 14px 16px;
    border: 1px solid #d8e1ee;
    border-radius: 6px;
    background: #f8fafc;
}

/* ========================================
   許可情報登録 タブ
======================================== */

.permit-tabs[b-n0ywrbxi1n] {
    display: flex;
    gap: 4px;
    margin-top: 14px;
    margin-bottom: 0;
    border-bottom: 1px solid #cfd8e6;
}

.permit-tab[b-n0ywrbxi1n] {
    padding: 9px 22px;
    border: 1px solid #cfd8e6;
    border-bottom: none;
    border-radius: 6px 6px 0 0;
    background-color: #f5f7fa;
    color: #526174;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.permit-tab:hover[b-n0ywrbxi1n] {
    background-color: #edf3ff;
    color: #2563eb;
}

.permit-tab.active[b-n0ywrbxi1n] {
    background-color: #ffffff;
    color: #2563eb;
    border-color: #2563eb;
    border-bottom: 2px solid #ffffff;
}

/* ========================================
   登録済み許可
======================================== */

.registered-permit-panel[b-n0ywrbxi1n] {
    margin-bottom: 28px;
    border: 1px solid #d6deea;
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.registered-permit-header[b-n0ywrbxi1n] {
    padding: 16px 18px;
    background: #f7f9fc;
    border-bottom: 1px solid #d6deea;
}

.registered-permit-header h3[b-n0ywrbxi1n] {
    margin: 0 0 4px 0;
    font-size: 16px;
    font-weight: 700;
    color: #374151;
}

.registered-permit-header p[b-n0ywrbxi1n] {
    margin: 0;
    font-size: 13px;
    font-weight: 400;
    color: #6b7280;
}

.registered-permit-list[b-n0ywrbxi1n] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 16px;
    max-height: 420px;
    overflow-y: auto;
}

.registered-permit-card[b-n0ywrbxi1n] {
    padding: 14px 16px;
    border: 1px solid #d6deea;
    border-radius: 7px;
    background: #fff;
    cursor: pointer;
    transition: 0.15s ease;
}

.registered-permit-card:hover[b-n0ywrbxi1n] {
    border-color: #2563eb;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.registered-permit-card.selected[b-n0ywrbxi1n] {
    border: 2px solid #2563eb;
    background: #f4f8ff;
}

.registered-permit-processor-name[b-n0ywrbxi1n] {
    margin-bottom: 3px;
    font-size: 15px;
    font-weight: 700;
    color: #4a5463;
}

.registered-permit-authority[b-n0ywrbxi1n] {
    margin-top: 3px;
    font-size: 13px;
    font-weight: 400;
    color: #6f757d;
}

.registered-permit-info[b-n0ywrbxi1n] {
    margin-top: 3px;
    font-size: 13px;
    color: #4b5563;
}

.registered-permit-number[b-n0ywrbxi1n] {
    margin-top: 7px;
    font-size: 13px;
    font-weight: 400;
    color: #6f757d;
}

@media (max-width: 768px) {
    .registered-permit-list[b-n0ywrbxi1n] {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   許可登録 メインレイアウト
   ========================================================= */

.permit-page-layout[b-n0ywrbxi1n] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}


/* ===== PC：修正・削除モード ===== */

.permit-page-layout.edit-mode[b-n0ywrbxi1n] {
    grid-template-columns: minmax(0, 1fr) 420px;
}


/* ===== 登録済み許可 ===== */

.registered-permit-side[b-n0ywrbxi1n] {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    min-width: 0;
    height: calc(100vh - 140px);
    min-height: 400px;
    display: flex;
    flex-direction: column;
    border: 1px solid #d6deea;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
    box-sizing: border-box;
}


/* ===== 許可入力フォーム ===== */

.permit-form-card[b-n0ywrbxi1n] {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}


@keyframes permitPanelSlideIn-b-n0ywrbxi1n {
    from {
        opacity: 0;
        transform: translateX(80px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.registered-permit-side .registered-permit-list[b-n0ywrbxi1n] {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    padding: 12px;
    overflow-y: auto;
    overflow-x: hidden;
}

.registered-permit-side .registered-permit-card[b-n0ywrbxi1n] {
    margin-bottom: 10px;
}

/* ========================================
   許可基本情報 上部2カラム
======================================== */

.permit-basic-layout[b-n0ywrbxi1n] {
    display: block;
}

.permit-basic-fields[b-n0ywrbxi1n] {
    min-width: 0;
}


/* ========================================
   処理業者選択パネル
======================================== */

.processor-select-panel[b-n0ywrbxi1n] {
    margin-bottom: 24px;
    border: 1px solid #d6deea;
    border-radius: 8px;
    overflow: hidden;
    background: #ffffff;
}

.processor-select-header[b-n0ywrbxi1n] {
    padding: 14px 16px;
    background: #f7f9fc;
    border-bottom: 1px solid #d6deea;
}

    .processor-select-header h3[b-n0ywrbxi1n] {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0 0 4px 0;
        font-size: 15px;
        font-weight: 700;
        color: #374151;
    }

    .processor-select-header p[b-n0ywrbxi1n] {
        margin: 0;
        font-size: 12px;
        color: #6b7280;
    }

/* ===== 処理業者選択タイトル ===== */

.processor-select-title[b-n0ywrbxi1n] {
    font-size: 15px;
    font-weight: 700;
    color: #24364b;
}

.processor-select-description[b-n0ywrbxi1n] {
    margin-top: 4px;
    font-size: 13px;
    font-weight: 400;
    color: #6b7280;
}

/* ========================================
   処理業者カード一覧
======================================== */

.processor-card-list[b-n0ywrbxi1n] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 12px;
}

.processor-select-card[b-n0ywrbxi1n] {
    min-height: 58px;
    padding: 10px 12px;
    border: 1px solid #d6deea;
    border-radius: 6px;
    background: #ffffff;
    cursor: pointer;
    box-sizing: border-box;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

    .processor-select-card:hover[b-n0ywrbxi1n] {
        border-color: #2563eb;
        box-shadow: 0 2px 7px rgba(37, 99, 235, 0.10);
    }

    .processor-select-card.selected[b-n0ywrbxi1n] {
        border: 2px solid #2563eb;
        background: #f4f8ff;
    }

.processor-card-list.searching[b-n0ywrbxi1n] {
    max-height: 150px;
    overflow-y: auto;
}

/* ========================================
   処理業者カード内容
======================================== */

.processor-card-name[b-n0ywrbxi1n] {
    font-size: 13px;
    font-weight: 700;
    color: #24364b;
    line-height: 1.35;
}

.processor-card-badges[b-n0ywrbxi1n] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 7px;
}

.processor-badge[b-n0ywrbxi1n] {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 700;
}

    .processor-badge.transporter[b-n0ywrbxi1n] {
        color: #2563eb;
        background: #eff6ff;
        border: 1px solid #bfdbfe;
    }

    .processor-badge.disposer[b-n0ywrbxi1n] {
        color: #15803d;
        background: #f0fdf4;
        border: 1px solid #bbf7d0;
    }
/* ========================================
   処理業者検索
======================================== */

.processor-search-area[b-n0ywrbxi1n] {
    position: relative;
    padding: 12px 14px 0;
}

    .processor-search-area > i[b-n0ywrbxi1n] {
        position: absolute;
        left: 28px;
        top: 50%;
        transform: translateY(-20%);
        font-size: 14px;
        color: #64748b;
        pointer-events: none;
    }

.processor-search-input[b-n0ywrbxi1n] {
    width: 100%;
    height: 38px;
    padding: 6px 12px 6px 38px;
    font-size: 14px;
    color: #374151;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    box-sizing: border-box;
}

    .processor-search-input:focus[b-n0ywrbxi1n] {
        outline: none;
        border-color: #2563eb;
        box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.10);
    }

    .processor-search-input[b-n0ywrbxi1n]::placeholder {
        color: #94a3b8;
    }

/* ========================================
   登録済み許可 検索・絞り込み
======================================== */

.registered-permit-tools[b-n0ywrbxi1n] {
    padding: 12px;
    border-bottom: 1px solid #d6deea;
    background: #ffffff;
}

.registered-permit-search[b-n0ywrbxi1n] {
    position: relative;
}

    .registered-permit-search i[b-n0ywrbxi1n] {
        position: absolute;
        left: 11px;
        top: 50%;
        transform: translateY(-50%);
        color: #64748b;
        font-size: 13px;
        pointer-events: none;
    }

    .registered-permit-search input[b-n0ywrbxi1n] {
        width: 100%;
        height: 36px;
        padding: 6px 10px 6px 34px;
        border: 1px solid #cbd5e1;
        border-radius: 5px;
        font-size: 13px;
        box-sizing: border-box;
    }

        .registered-permit-search input:focus[b-n0ywrbxi1n] {
            outline: none;
            border-color: #2563eb;
            box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.10);
        }

.registered-permit-filter-row[b-n0ywrbxi1n] {
    display: grid;
    grid-template-columns: 110px 1fr;
    gap: 8px;
    margin-top: 8px;
}

    .registered-permit-filter-row select[b-n0ywrbxi1n] {
        width: 100%;
        height: 34px;
        padding: 4px 8px;
        border: 1px solid #cbd5e1;
        border-radius: 5px;
        background: #ffffff;
        font-size: 12px;
        color: #374151;
    }

/* ========================================
   登録済み許可 許可区分の色分け
======================================== */

.registered-permit-type[b-n0ywrbxi1n] {
    font-weight: 600;
    font-size: 14px;
}

    /* 通常産廃・収集運搬業 */
    .registered-permit-type.permit-type-transport[b-n0ywrbxi1n] {
        color: #2563eb;
    }

    /* 通常産廃・処分業 */
    .registered-permit-type.permit-type-disposal[b-n0ywrbxi1n] {
        color: #15803d;
    }

    /* 特別管理産業廃棄物・収集運搬業／処分業 */
    .registered-permit-type.permit-type-special[b-n0ywrbxi1n] {
        color: #7e22ce;
    }

.registered-permit-header[b-n0ywrbxi1n],
.registered-permit-tools[b-n0ywrbxi1n] {
    flex: 0 0 auto;
}
.registered-permit-list[b-n0ywrbxi1n] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px;
}
.registered-permit-list[b-n0ywrbxi1n] {
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 transparent;
}

.registered-permit-list[b-n0ywrbxi1n]::-webkit-scrollbar {
    width: 7px;
}

.registered-permit-list[b-n0ywrbxi1n]::-webkit-scrollbar-track {
    background: transparent;
}

.registered-permit-list[b-n0ywrbxi1n]::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 999px;
}

.registered-permit-list[b-n0ywrbxi1n]::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}
.registered-permit-list[b-n0ywrbxi1n] {
    scrollbar-width: thin;
    scrollbar-color: #94a3b8 transparent;
}

/* 削除ボタン */
.delete-button[b-n0ywrbxi1n] {
    width: 120px;
    height: 44px;
    padding: 0 24px;
    border: 1px solid #dc2626;
    border-radius: 6px;
    background: #ffffff;
    color: #dc2626;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

    .delete-button:hover:not(:disabled)[b-n0ywrbxi1n] {
        background: #fef2f2;
    }

    .delete-button:disabled[b-n0ywrbxi1n] {
        opacity: 0.5;
        cursor: not-allowed;
    }

.delete-confirm-button[b-n0ywrbxi1n] {
    background: #dc2626 !important;
    color: #ffffff !important;
}

.delete-confirm-button:hover[b-n0ywrbxi1n] {
    background: #b91c1c !important;
}

/* =========================================================
   中間幅対応
   ========================================================= */

@media (max-width: 1350px) {

    /* ===== ページ全体 ===== */

    .permit-page[b-n0ywrbxi1n] {
        width: auto;
        max-width: none;
        margin: 30px;
    }

    .registered-permit-side[b-n0ywrbxi1n] {
        width: 100%;
        height: auto;
        min-height: 0;
        box-shadow: none;
    }

    .registered-permit-side .registered-permit-list[b-n0ywrbxi1n] {
        max-height: none;
        overflow-y: visible;
    }

    /* ===== 修正・削除モード ===== */

    .permit-page-layout.edit-mode[b-n0ywrbxi1n] {
        grid-template-columns: 1fr;
    }


    /* ===== 登録済み許可を上へ ===== */

    .registered-permit-side[b-n0ywrbxi1n] {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
        height: auto;
        min-height: 0;
        box-shadow: none;
    }


    /* ===== 入力フォームを下へ ===== */

    .permit-form-card[b-n0ywrbxi1n] {
        grid-column: 1;
        grid-row: 2;
    }

    /* ===== 処理業者選択 ===== */

    .processor-card-list[b-n0ywrbxi1n] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    /* ===== 入力フォーム ===== */

    .input-area[b-n0ywrbxi1n],
    .authority-search-area[b-n0ywrbxi1n] {
        width: min(100%, 560px);
    }

    .form-input[b-n0ywrbxi1n] {
        max-width: 100%;
    }


    /* ===== 許可品目 ===== */

    .waste-type-grid[b-n0ywrbxi1n] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* ===== 中間幅：ページヘッダー ===== */

    .page-header[b-n0ywrbxi1n] {
        display: flex;
        align-items: center;
        gap: 12px;
    }

        .page-header .page-header-icon[b-n0ywrbxi1n] {
            flex: 0 0 48px;
        }

    .page-header-text[b-n0ywrbxi1n] {
        flex: 1 1 auto;
        min-width: 0;
    }

    .page-header-text h1[b-n0ywrbxi1n] {
        white-space: nowrap;
    }

    .page-header-text p[b-n0ywrbxi1n] {
        white-space: normal;
    }

    /* ===== 中間幅：修正・削除 ===== */

    .mode-toggle-area[b-n0ywrbxi1n] {
        flex: 0 0 auto;
        margin-left: auto;
        display: flex;
        align-items: center;
        gap: 8px;
        white-space: nowrap;
    }
}
/* =========================================================
   スマホ対応
   ========================================================= */

@media (max-width: 768px) {

    /* ===== ページ全体 ===== */

    .permit-page[b-n0ywrbxi1n] {
        width: auto;
        max-width: none;
        margin: 20px 16px;
    }


    /* ===== ページヘッダー ===== */

    .page-header[b-n0ywrbxi1n] {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) auto;
        column-gap: 12px;
        row-gap: 8px;
        align-items: center;
    }

    .page-header-left[b-n0ywrbxi1n] {
        display: flex;
        align-items: center;
        gap: 12px;
        min-width: 0;
    }

    .page-header-icon[b-n0ywrbxi1n] {
        flex: 0 0 auto;
    }

    .page-header-text[b-n0ywrbxi1n] {
        min-width: 0;
    }

    .page-header-text h1[b-n0ywrbxi1n] {
        margin: 0;
        font-size: 22px;
        line-height: 1.3;
        white-space: normal;
        word-break: keep-all;
        overflow-wrap: normal;
    }

    .page-header-text p[b-n0ywrbxi1n] {
        margin: 3px 0 0;
        font-size: 12px;
        line-height: 1.5;
        white-space: normal;
        word-break: normal;
    }


    /* ===== 修正/削除スイッチ ===== */

    .mode-switch-area[b-n0ywrbxi1n] {
        align-self: flex-end;
        flex: 0 0 auto;
    }


    /* ===== メインカード ===== */

    .permit-form-card[b-n0ywrbxi1n] {
        padding: 20px 16px;
    }

    .section-title[b-n0ywrbxi1n] {
        font-size: 16px;
    }


    /* ===== 処理業者選択 ===== */

    .processor-select-box[b-n0ywrbxi1n] {
        width: 100%;
    }

    .processor-search-box[b-n0ywrbxi1n] {
        width: 100%;
    }

    .processor-card-list[b-n0ywrbxi1n] {
        grid-template-columns: 1fr;
    }

    .processor-card[b-n0ywrbxi1n] {
        min-width: 0;
    }


    /* ===== 入力フォーム共通 ===== */

    .input-area[b-n0ywrbxi1n],
    .authority-search-area[b-n0ywrbxi1n] {
        width: 100%;
        max-width: none;
    }

    .form-row[b-n0ywrbxi1n] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 7px;
        margin-bottom: 16px;
    }

    .form-label[b-n0ywrbxi1n] {
        width: 100%;
        min-width: 0;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .form-input[b-n0ywrbxi1n],
    .form-select[b-n0ywrbxi1n] {
        width: 100%;
        max-width: none;
        box-sizing: border-box;
    }


    /* ===== 必須表示 ===== */

    .required-badge[b-n0ywrbxi1n] {
        flex: 0 0 auto;
        white-space: nowrap;
    }


    /* ===== 許可品目 ===== */

    .waste-type-grid[b-n0ywrbxi1n] {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .waste-type-item[b-n0ywrbxi1n] {
        min-width: 0;
    }


    /* ===== 選択品目数 ===== */

    .selected-count-box[b-n0ywrbxi1n] {
        width: 100%;
        box-sizing: border-box;
    }


    /* ===== 各種スイッチ行 ===== */

    .option-row[b-n0ywrbxi1n] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
    }

    .option-row > *[b-n0ywrbxi1n] {
        min-width: 0;
    }


    /* ===== 登録済み許可 ===== */

    /* =========================================================
   許可登録 メインレイアウト
   ========================================================= */

    .permit-page-layout[b-n0ywrbxi1n] {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
        align-items: start;
    }

        /* ===== 修正・削除モード ===== */

    .permit-page-layout.edit-mode[b-n0ywrbxi1n] {
        grid-template-columns: minmax(0, 1fr) 420px;
    }


    /* =========================================================
   登録済み許可
   ========================================================= */

    .registered-permit-side[b-n0ywrbxi1n] {
        width: 100%;
        min-width: 0;
        height: calc(100vh - 140px);
        min-height: 400px;
        display: flex;
        flex-direction: column;
        border: 1px solid #d6deea;
        border-radius: 8px;
        overflow: hidden;
        background: #ffffff;
        box-shadow: 0 12px 30px rgba(15, 23, 42, 0.12);
        box-sizing: border-box;
    }

    .registered-permit-side .registered-permit-list[b-n0ywrbxi1n] {
        max-height: none;
        overflow-y: visible;
    }


    /* ===== 下部ボタン ===== */

    .register-button-area[b-n0ywrbxi1n] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .register-button[b-n0ywrbxi1n],
    .update-button[b-n0ywrbxi1n],
    .delete-button[b-n0ywrbxi1n] {
        width: 100%;
        max-width: none;
    }

    /* =========================================================
   スマホ：修正・削除レイアウト最終補正
   ========================================================= */

    /* ===== メインレイアウトを完全1列化 ===== */

    .permit-page-layout[b-n0ywrbxi1n],
    .permit-page-layout.edit-mode[b-n0ywrbxi1n] {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        min-width: 0;
        gap: 20px;
    }


    /* ===== 登録済み許可を上段へ ===== */

    .registered-permit-side[b-n0ywrbxi1n] {
        grid-column: 1;
        grid-row: 1;
        width: 100%;
        min-width: 0;
        max-width: none;
        height: auto;
        min-height: 0;
        margin: 0;
        box-sizing: border-box;
    }


    /* ===== 許可入力フォームを下段へ ===== */

    .permit-form-card[b-n0ywrbxi1n] {
        grid-column: 1;
        grid-row: 2;
        width: 100%;
        min-width: 0;
        max-width: none;
        box-sizing: border-box;
    }


    /* ===== 登録済み許可内部 ===== */

    .registered-permit-tools[b-n0ywrbxi1n],
    .registered-permit-search[b-n0ywrbxi1n],
    .registered-permit-filter-row[b-n0ywrbxi1n],
    .registered-permit-list[b-n0ywrbxi1n] {
        width: 100%;
        min-width: 0;
        max-width: none;
        box-sizing: border-box;
    }

    .registered-permit-filter-row[b-n0ywrbxi1n] {
        grid-template-columns: 1fr;
    }

    .registered-permit-side .registered-permit-list[b-n0ywrbxi1n] {
        display: block;
        max-height: none;
        overflow: visible;
    }


    /* ===== 入力フォーム内部の幅をリセット ===== */

    .permit-edit-layout[b-n0ywrbxi1n],
    .permit-edit-layout.edit-mode[b-n0ywrbxi1n],
    .permit-form-main[b-n0ywrbxi1n],
    .permit-basic-layout[b-n0ywrbxi1n],
    .permit-basic-fields[b-n0ywrbxi1n] {
        width: 100%;
        min-width: 0;
        max-width: none;
    }
    
}

/* =========================================================
   0.245 デザイン統一
   EmitterRegister 基準
   ========================================================= */

/* ===== 修正・削除 ===== */

.mode-toggle-label[b-n0ywrbxi1n] {
    font-size: 13px;
    font-weight: 600;
    color: #3f4f63;
}


/* ===== メインカード ===== */

.permit-form-card[b-n0ywrbxi1n] {
    background-color: #ffffff;
    border: 1px solid #d8e1ec;
    border-radius: 6px;
    padding: 20px;
}


/* ===== セクションタイトル ===== */

.section-title[b-n0ywrbxi1n] {
    margin-bottom: 18px;
    padding-bottom: 10px;
    font-size: 16px;
    font-weight: 700;
    color: #3f4f63;
    border-bottom: 2px solid #2f65c5;
}


/* ===== フォーム項目名 ===== */

.form-label[b-n0ywrbxi1n] {
    font-size: 14px;
    font-weight: 600;
    color: #3f4f63;
}


/* ===== 入力文字 ===== */

.form-input[b-n0ywrbxi1n] {
    font-size: 14px;
    color: #3f4f63;

}
.processor-select-header h3[b-n0ywrbxi1n],
.processor-card-name[b-n0ywrbxi1n],
.registered-permit-info[b-n0ywrbxi1n],
.waste-type-title[b-n0ywrbxi1n],
.waste-count-display[b-n0ywrbxi1n] {
    color: #3f4f63;
}

.processor-select-header p[b-n0ywrbxi1n],
.processor-select-description[b-n0ywrbxi1n] {
    color: #66758a;
}


/* ===== 処理業者選択 ===== */

.processor-select-title[b-n0ywrbxi1n] {
    font-size: 15px;
    font-weight: 700;
    color: #3f4f63;
}

.processor-select-description[b-n0ywrbxi1n] {
    margin-top: 4px;
    font-size: 12px;
    color: #66758a;
}

.processor-card-name[b-n0ywrbxi1n] {
    font-size: 13px;
    font-weight: 700;
    color: #3f4f63;
}


/* ===== 許可品目 ===== */

.permit-waste-section h4[b-n0ywrbxi1n] {
    font-size: 15px;
    font-weight: 700;
    color: #3f4f63;
}

.waste-type-item[b-n0ywrbxi1n] {
    font-size: 14px;
    color: #3f4f63;
}

.permit-option-title[b-n0ywrbxi1n] {
    font-size: 14px;
    font-weight: 700;
    color: #3f4f63;
}


/* ===== 登録済み許可 ===== */

.registered-permit-header h3[b-n0ywrbxi1n] {
    margin: 0 0 3px;
    font-size: 16px;
    font-weight: 700;
    color: #3f4f63;
}

.registered-permit-header p[b-n0ywrbxi1n] {
    margin: 0;
    font-size: 12px;
    color: #66758a;
}

.registered-permit-processor-name[b-n0ywrbxi1n] {
    font-size: 14px;
    font-weight: 700;
    color: #3f4f63;
}

.registered-permit-authority[b-n0ywrbxi1n],
.registered-permit-number[b-n0ywrbxi1n] {
    font-size: 12px;
    color: #66758a;
}

/* ===== 処理業者区分ピル：Vendor基準 ===== */

.processor-card-badges[b-n0ywrbxi1n] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
}

.processor-badge[b-n0ywrbxi1n] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

/* 収集運搬 */
.processor-badge.transporter[b-n0ywrbxi1n] {
    color: #2f65c5;
    background-color: #edf3fc;
    border: 1px solid #b9cceb;
}

/* 処分 */
.processor-badge.disposer[b-n0ywrbxi1n] {
    color: #2e7d32;
    background-color: #eef8ef;
    border: 1px solid #b8d9bb;
}

/* =========================================================
   0.245 狭幅ヘッダー最終補正
   ========================================================= */

@media (max-width: 768px) {

    /* ===== ヘッダー全体 ===== */

    .page-header[b-n0ywrbxi1n] {
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr);
        grid-template-rows: auto auto;
        column-gap: 12px;
        row-gap: 8px;
        align-items: center;
    }


    /* ===== アイコン ===== */

    .page-header .page-header-icon[b-n0ywrbxi1n] {
        grid-column: 1;
        grid-row: 1 / 3;
        align-self: center;
    }


    /* ===== タイトル・説明 ===== */

    .page-header-text[b-n0ywrbxi1n] {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    .page-header-text h1[b-n0ywrbxi1n] {
        margin: 0;
        font-size: 22px;
        line-height: 1.3;
        white-space: nowrap;
    }

    .page-header-text p[b-n0ywrbxi1n] {
        margin: 3px 0 0;
        font-size: 12px;
        line-height: 1.5;
        white-space: normal;
    }


    /* ===== 修正・削除 ===== */

    .mode-toggle-area[b-n0ywrbxi1n] {
        grid-column: 2;
        grid-row: 2;
        justify-self: end;
        align-self: center;
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 0;
        white-space: nowrap;
    }
}

/* =========================================================
   0.245 ボタンデザイン統一
   ProcessorRegister 基準
   ========================================================= */


/* ===== 登録ボタン ===== */

.register-button[b-n0ywrbxi1n] {
    width: 120px;
    height: 38px;
    padding: 0 22px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease;
}

.register-button:hover:not(:disabled)[b-n0ywrbxi1n] {
    background-color: #284f91;
    box-shadow: none;
}

.register-button:active:not(:disabled)[b-n0ywrbxi1n] {
    transform: none;
}

.register-button:disabled[b-n0ywrbxi1n] {
    opacity: 0.6;
    background-color: #315da8;
    cursor: not-allowed;
}


/* ===== 変更を保存 ===== */

.update-button[b-n0ywrbxi1n] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.update-button:hover:not(:disabled)[b-n0ywrbxi1n] {
    background-color: #284f91;
}

.update-button:disabled[b-n0ywrbxi1n] {
    opacity: 0.45;
    cursor: not-allowed;
}


/* ===== 削除ボタン ===== */

.delete-button[b-n0ywrbxi1n] {
    min-width: 90px;
    height: 38px;
    padding: 0 20px;
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.delete-button:hover:not(:disabled)[b-n0ywrbxi1n] {
    color: #ffffff;
    background-color: #dc3545;
}

.delete-button:disabled[b-n0ywrbxi1n] {
    opacity: 0.45;
    cursor: not-allowed;
}


/* ===== 登録確認：登録する ===== */

.register-confirm-buttons button:first-child[b-n0ywrbxi1n] {
    min-width: 110px;
    padding: 9px 18px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
}

.register-confirm-buttons button:first-child:hover[b-n0ywrbxi1n] {
    background-color: #284f91;
}


/* ===== 登録確認：キャンセル ===== */

.register-confirm-buttons button:last-child[b-n0ywrbxi1n] {
    min-width: 110px;
    padding: 9px 18px;
    color: #475569;
    background-color: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
}

.register-confirm-buttons button:last-child:hover[b-n0ywrbxi1n] {
    background-color: #f1f5f9;
}


/* ===== 削除確認 ===== */

.delete-confirm-button[b-n0ywrbxi1n] {
    color: #ffffff !important;
    background-color: #dc3545 !important;
    border-color: #dc3545 !important;
}

.delete-confirm-button:hover[b-n0ywrbxi1n] {
    background-color: #bb2d3b !important;
    border-color: #bb2d3b !important;
}

/* /Components/Pages/ProcessorRegister.razor.rz.scp.css */
/* ========================================
   処理業者登録画面
   ProcessorRegister.razor.css
======================================== */


/* =========================================================
   ===== 画面全体 ==========================================
   ========================================================= */

.processor-page[b-ldv2n93bw2] {
    max-width: 1180px;
    margin: 0;
    margin-left: 20px;
    padding: 24px 28px 60px;
    color: #586472;
    --label-width: 140px;
    --label-gap: 10px;
    transition: max-width 0.3s ease;
}


/* =========================================================
   ===== 画面タイトル ======================================
   ========================================================= */

.page-header[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 24px;
    margin-bottom: 24px;
    background-color: #f5f8fc;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
}


/* ===== タイトルアイコン ===== */
.page-header > i[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    background-color: #edf3fc;
    color: #2f65c5;
    border-radius: 8px;
    font-size: 25px;
    line-height: 1;
}


/* ===== タイトル文字 ===== */
.page-header-text h1[b-ldv2n93bw2] {
    margin: 0;
    color: #3f4f63;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
}

.page-header-text p[b-ldv2n93bw2] {
    margin: 3px 0 0;
    color: #66758a;
    font-size: 12px;
    line-height: 1.5;
}


/* =========================================================
   ===== メインカード ======================================
   ========================================================= */

.form-section[b-ldv2n93bw2] {
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
    padding: 24px 26px 28px;
}


/* ===== 大見出し ===== */
.section-title[b-ldv2n93bw2] {
    color: #586472;
    font-size: 18px;
    font-weight: 700;
    padding-bottom: 10px;
    margin-bottom: 18px;
    border-bottom: 2px solid #2f65c5;
}


/* =========================================================
   ===== 入力行 ============================================
   ========================================================= */

.form-row[b-ldv2n93bw2] {
    display: flex;
    align-items: flex-start;
    margin-bottom: 14px;
}


/* ===== 左側ラベル ===== */

.form-label[b-ldv2n93bw2] {
    width: var(--label-width);
    min-width: var(--label-width);
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 36px;
    margin: 0 var(--label-gap) 0 0;
    color: #586472;
    font-size: 14px;
    font-weight: 600;
}


/* ===== 入力欄領域 ===== */

.input-area[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
}

.input-area-column[b-ldv2n93bw2] {
    flex-direction: column;
    align-items: flex-start;
}


/* =========================================================
   ===== テキストボックス ==================================
   ========================================================= */

.form-input[b-ldv2n93bw2] {
    width: 300px;
    height: 36px;
    padding: 6px 10px;
    color: #4f5b68;
    background-color: #ffffff;
    border: 1px solid #aebccc;
    border-radius: 4px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}


/* ===== 入力中 ===== */
.form-input:focus[b-ldv2n93bw2] {
    border-color: #2f65c5;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}


/* =========================================================
   ===== 入力補足・入力チェック ============================
   ========================================================= */

.input-note-below[b-ldv2n93bw2] {
    margin-top: 4px;
    color: #8a96a3;
    font-size: 12px;
    font-weight: 400;
}

.validation-ok[b-ldv2n93bw2] {
    color: #2e7d32;
    font-size: 13px;
}

.validation-error[b-ldv2n93bw2] {
    color: #d32f2f;
    font-size: 13px;
}

.validation-below[b-ldv2n93bw2] {
    margin-left: 0;
    margin-top: 4px;
}


/* =========================================================
   ===== 必須表示 ==========================================
   ========================================================= */

.required-badge[b-ldv2n93bw2] {
    display: inline-block;
    padding: 1px 5px;
    border-radius: 3px;
    background-color: #dc3545;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
}

.required-label[b-ldv2n93bw2] {
    width: 140px;
    display: flex;
    align-items: center;
}

.required-label .required-badge[b-ldv2n93bw2] {
    margin-left: auto;
    margin-right: 10px;
}


/*
   FAX等の任意項目用。
   必須バッジ自体は非表示にするが、
   レイアウト上のスペースは維持する。
*/
.required-badge-hidden[b-ldv2n93bw2] {
    visibility: hidden;
}


/* =========================================================
   ===== 業者区分 ==========================================
   ========================================================= */

/*
   収集運搬業者・処分業者を選択する領域。
   両方同時に選択可能。
*/
.processor-type-area[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    gap: 24px;
    min-height: 36px;
}


/* ===== 業者区分チェックボックス ===== */

.processor-type-check[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #586472;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.processor-type-check input[b-ldv2n93bw2] {
    width: 16px;
    height: 16px;
    cursor: pointer;
    accent-color: #315da8;
}


/* =========================================================
   ===== 登録・変更・削除エリア ============================
   ========================================================= */

.register-area[b-ldv2n93bw2] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px dashed #d7dee8;
}


/* ===== 登録結果メッセージ ===== */

.register-message-ok[b-ldv2n93bw2],
.register-message-error[b-ldv2n93bw2] {
    padding: 9px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    box-sizing: border-box;
}

.register-message-ok[b-ldv2n93bw2] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.register-message-error[b-ldv2n93bw2] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}


/* =========================================================
   ===== 登録ボタン ========================================
   ========================================================= */

.register-button[b-ldv2n93bw2] {
    min-width: 110px;
    height: 38px;
    padding: 0 22px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.register-button:hover[b-ldv2n93bw2] {
    background-color: #284f91;
}

.register-button:disabled[b-ldv2n93bw2] {
    opacity: 0.6;
    cursor: not-allowed;
}


/* =========================================================
   ===== 修正・削除モード トグル ===========================
   ========================================================= */

.mode-toggle-area[b-ldv2n93bw2] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

.mode-toggle-label[b-ldv2n93bw2] {
    color: #374151;
    font-weight: 600;
    white-space: nowrap;
}

.toggle-switch[b-ldv2n93bw2] {
    position: relative;
    display: inline-block;
    width: 52px;
    height: 28px;
}

.toggle-switch input[b-ldv2n93bw2] {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider[b-ldv2n93bw2] {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background-color: #cbd5e1;
    border-radius: 999px;
    transition: 0.25s;
}

.toggle-slider[b-ldv2n93bw2]::before {
    content: "";
    position: absolute;
    width: 22px;
    height: 22px;
    left: 3px;
    top: 3px;
    background-color: #ffffff;
    border-radius: 50%;
    transition: 0.25s;
}

.toggle-switch input:checked + .toggle-slider[b-ldv2n93bw2] {
    background-color: #2563eb;
}

.toggle-switch input:checked + .toggle-slider[b-ldv2n93bw2]::before {
    transform: translateX(24px);
}


/* =========================================================
   ===== 作業領域 ==========================================
   ========================================================= */

/* ===== 通常登録モード ===== */
.master-workspace[b-ldv2n93bw2] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    transition: grid-template-columns 0.3s ease;
}


/* ===== 修正・削除モード ===== */
.master-workspace.edit-mode[b-ldv2n93bw2] {
    grid-template-columns: minmax(700px, 1fr) 520px;
}


/* =========================================================
   ===== 右側：登録済み処理業者一覧 ========================
   ========================================================= */

.master-list-panel[b-ldv2n93bw2] {
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
    min-height: 500px;
    animation: masterListOpen-b-ldv2n93bw2 0.25s ease;
}


/* ===== 一覧ヘッダー ===== */

.master-list-header[b-ldv2n93bw2] {
    padding: 20px 22px;
    background-color: #f7f9fc;
    border-bottom: 1px solid #d7dee8;
}

.master-list-header h2[b-ldv2n93bw2] {
    margin: 0 0 4px 0;
    color: #4f5b68;
    font-size: 18px;
    font-weight: 700;
}

.master-list-header p[b-ldv2n93bw2] {
    margin: 0;
    color: #7b8794;
    font-size: 12px;
}


/* =========================================================
   ===== 並び順 ============================================
   ========================================================= */

.list-toolbar[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 10px 16px 4px;
}

.toolbar-item[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.toolbar-item label[b-ldv2n93bw2] {
    font-size: 12px;
    font-weight: 600;
    color: #52627a;
    white-space: nowrap;
}

.sort-select[b-ldv2n93bw2] {
    width: 120px;
    height: 28px;
    padding: 0 6px;
    border: 1px solid #c7d3e3;
    border-radius: 4px;
    background-color: #fff;
    color: #34445c;
    font-size: 12px;
    cursor: pointer;
}

.type-filter-select[b-ldv2n93bw2] {
    width: 150px;
    height: 28px;
    padding: 0 6px;
    border: 1px solid #c7d3e3;
    border-radius: 4px;
    background-color: #fff;
    color: #34445c;
    font-size: 12px;
    cursor: pointer;
}

.sort-select:focus[b-ldv2n93bw2],
.type-filter-select:focus[b-ldv2n93bw2] {
    outline: none;
    border-color: #315da8;
}


/* =========================================================
   ===== 処理業者検索 ======================================
   ========================================================= */

.processor-search-area[b-ldv2n93bw2] {
    padding: 14px 16px 6px 16px;
}

.processor-search-box[b-ldv2n93bw2] {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.search-icon[b-ldv2n93bw2] {
    position: absolute;
    left: 13px;
    color: #718096;
    font-size: 18px;
    pointer-events: none;
}

.processor-search-input[b-ldv2n93bw2] {
    width: 100%;
    height: 40px;
    padding: 0 42px 0 40px;
    border: 1px solid #c8d4e3;
    border-radius: 5px;
    background-color: #ffffff;
    color: #34495e;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.processor-search-input[b-ldv2n93bw2]::placeholder {
    color: #9aa8b8;
}

.processor-search-input:focus[b-ldv2n93bw2] {
    border-color: #315da8;
    box-shadow: 0 0 0 2px rgba(49, 93, 168, 0.12);
}

.search-clear-button[b-ldv2n93bw2] {
    position: absolute;
    right: 10px;
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    color: #7d8998;
    font-size: 20px;
    line-height: 20px;
    cursor: pointer;
}

.search-clear-button:hover[b-ldv2n93bw2] {
    color: #315da8;
}


/* =========================================================
   ===== 頭文字検索 ========================================
   ========================================================= */

.initial-filter-toggle[b-ldv2n93bw2] {
    width: calc(100% - 32px);
    margin: 4px 16px 8px;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: #526170;
    background-color: transparent;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-align: left;
}

.initial-filter-toggle:hover[b-ldv2n93bw2] {
    background-color: #f1f5fb;
    color: #315da8;
}

.initial-filter-arrow[b-ldv2n93bw2] {
    width: 14px;
    color: #728197;
    font-size: 10px;
}

.initial-filter-panel[b-ldv2n93bw2] {
    margin: 0 16px 12px;
    padding: 10px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 7px;
    background-color: #f8fafc;
    border: 1px solid #d8e1ec;
    border-radius: 5px;
}

.initial-filter-button[b-ldv2n93bw2] {
    height: 32px;
    color: #526170;
    background-color: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.initial-filter-button:hover[b-ldv2n93bw2] {
    color: #315da8;
    border-color: #315da8;
    background-color: #f3f7fd;
}

.initial-filter-button.active[b-ldv2n93bw2] {
    color: #ffffff;
    background-color: #315da8;
    border-color: #315da8;
}


/* =========================================================
   ===== 一覧本体 ==========================================
   ========================================================= */

.master-list-body[b-ldv2n93bw2] {
    padding: 16px;
}


/* ===== 登録データなし ===== */

.master-list-empty[b-ldv2n93bw2] {
    padding: 40px 20px;
    text-align: center;
    color: #8a96a3;
    background-color: #fafbfc;
    border: 1px dashed #d7dee8;
    border-radius: 4px;
    font-size: 13px;
}


/* =========================================================
   ===== 登録済み処理業者カード ============================
   ========================================================= */

.master-list-item[b-ldv2n93bw2] {
    display: block;
    width: 100%;
    padding: 14px 16px;
    margin-bottom: 10px;
    text-align: left;
    background-color: #ffffff;
    color: #586472;
    border: 1px solid #d7dee8;
    border-radius: 6px;
    font-family: inherit;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}


/* ===== 業者名 ===== */
.master-list-item strong[b-ldv2n93bw2] {
    display: block;
    margin-bottom: 5px;
    color: #374151;
    font-size: 15px;
    font-weight: 700;
}


/* ===== 住所・TEL ===== */
.master-list-item > span[b-ldv2n93bw2] {
    display: block;
    color: #6f7b87;
    font-size: 13px;
    line-height: 1.6;
}


/* ===== マウスを乗せた時 ===== */
.master-list-item:hover[b-ldv2n93bw2] {
    background-color: #f7f9fc;
    border-color: #2f65c5;
    box-shadow: 0 2px 8px rgba(47, 101, 197, 0.10);
    transform: translateY(-1px);
}


/* ===== キーボードフォーカス ===== */
.master-list-item:focus[b-ldv2n93bw2] {
    outline: none;
    border-color: #2f65c5;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.12);
}


/* ===== 現在選択中 ===== */
.master-list-item.selected[b-ldv2n93bw2] {
    background-color: #edf3fc;
    border-color: #2f65c5;
    box-shadow: 0 0 0 1px rgba(47, 101, 197, 0.08);
}

.master-list-item.selected strong[b-ldv2n93bw2] {
    color: #2f65c5;
}


/* =========================================================
   ===== 業者区分バッジ ====================================
   ========================================================= */

/*
   登録済み一覧で、
   収集運搬業者／処分業者の区分を表示する。
   VendorRegisterと同じ長丸デザイン。
*/

.processor-type-badges[b-ldv2n93bw2] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
}

.processor-type-badge[b-ldv2n93bw2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}


/* ===== 収集運搬 ===== */
.processor-type-badge.transporter[b-ldv2n93bw2] {
    color: #2f65c5;
    background-color: #edf3fc;
    border: 1px solid #b9cceb;
}


/* ===== 処分 ===== */
.processor-type-badge.disposer[b-ldv2n93bw2] {
    color: #2e7d32;
    background-color: #eef8ef;
    border: 1px solid #b8d9bb;
}


/* =========================================================
   ===== 修正・削除ボタン ==================================
   ========================================================= */

.edit-action-buttons[b-ldv2n93bw2] {
    display: flex;
    align-items: center;
    gap: 10px;
}


/* ===== 変更を保存 ===== */

.update-button[b-ldv2n93bw2] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.update-button:hover[b-ldv2n93bw2] {
    background-color: #284f91;
}


/* ===== 削除 ===== */

.delete-button[b-ldv2n93bw2] {
    min-width: 90px;
    height: 38px;
    padding: 0 20px;
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.delete-button:hover[b-ldv2n93bw2] {
    color: #ffffff;
    background-color: #dc3545;
}


/* ===== 無効状態 ===== */

.update-button:disabled[b-ldv2n93bw2],
.delete-button:disabled[b-ldv2n93bw2] {
    opacity: 0.45;
    cursor: not-allowed;
}

.update-button:disabled:hover[b-ldv2n93bw2] {
    background-color: #315da8;
}

.delete-button:disabled:hover[b-ldv2n93bw2] {
    color: #dc3545;
    background-color: #ffffff;
}


/* =========================================================
   ===== 確認画面 共通オーバーレイ =========================
   ========================================================= */

.confirm-overlay[b-ldv2n93bw2] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}


/* =========================================================
   ===== 登録・削除確認ダイアログ ==========================
   ========================================================= */

.confirm-dialog[b-ldv2n93bw2] {
    width: 420px;
    max-width: calc(100vw - 40px);
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
    padding: 24px;
}

.confirm-title[b-ldv2n93bw2] {
    margin-bottom: 18px;
    color: #333333;
    font-size: 18px;
    font-weight: 700;
}

.confirm-message[b-ldv2n93bw2] {
    margin-bottom: 24px;
    font-size: 14px;
    line-height: 1.8;
}

.confirm-actions[b-ldv2n93bw2] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}


/* =========================================================
   ===== 変更確認ダイアログ ================================
   ========================================================= */

.confirm-modal[b-ldv2n93bw2] {
    width: 420px;
    max-width: calc(100vw - 40px);
    background-color: #ffffff;
    border-radius: 8px;
    padding: 28px 30px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.20);
}

.confirm-modal h3[b-ldv2n93bw2] {
    margin: 0 0 18px 0;
    color: #334155;
    font-size: 18px;
    font-weight: 700;
}

.confirm-modal p[b-ldv2n93bw2] {
    margin: 0 0 16px 0;
    color: #64748b;
    font-size: 14px;
    line-height: 1.6;
}

.confirm-buttons[b-ldv2n93bw2] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
}


/* =========================================================
   ===== 確認ダイアログ ボタン =============================
   ========================================================= */

.confirm-cancel-button[b-ldv2n93bw2] {
    padding: 8px 20px;
    border: 1px solid #bbbbbb;
    border-radius: 4px;
    background-color: #ffffff;
    cursor: pointer;
}


/* ===== 登録確定 ===== */

.confirm-register-button[b-ldv2n93bw2] {
    padding: 8px 24px;
    border: none;
    border-radius: 4px;
    background-color: #2f5fb3;
    color: #ffffff;
    font-weight: 700;
    cursor: pointer;
}


/* ===== 変更確定 ===== */

.confirm-update-button[b-ldv2n93bw2] {
    min-width: 100px;
    height: 40px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

    .confirm-update-button:hover[b-ldv2n93bw2] {
        background-color: #284f91;
    }


/* ===== 削除確定 ===== */

.confirm-delete-button[b-ldv2n93bw2] {
    min-width: 100px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #dc3545;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.confirm-delete-button:hover[b-ldv2n93bw2] {
    background-color: #bb2d3b;
}


/* ===== 確認画面 無効状態 ===== */

.confirm-register-button:disabled[b-ldv2n93bw2],
.confirm-cancel-button:disabled[b-ldv2n93bw2],
.confirm-delete-button:disabled[b-ldv2n93bw2] {
    opacity: 0.6;
    cursor: not-allowed;
}


/* =========================================================
   ===== 一覧表示アニメーション ============================
   ========================================================= */

@keyframes masterListOpen-b-ldv2n93bw2 {

    from {
        opacity: 0;
        transform: translateX(30px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}


/* =========================================================
   ===== タブレット・中間幅対策 ============================
   ===== 左メニュー表示中でも画面を潰さない ================
   ========================================================= */

@media (min-width: 701px) and (max-width: 1350px) {

    /* ===== 画面全体 ===== */

    .processor-page[b-ldv2n93bw2] {
        max-width: 100%;
        margin-left: 0;
        padding: 20px 18px 50px;
    }


    /* ===== ヘッダー ===== */

    .page-header[b-ldv2n93bw2] {
        gap: 12px;
        padding: 18px 16px;
    }

    .page-header > i[b-ldv2n93bw2] {
        width: 42px;
        height: 42px;
        flex: 0 0 42px;
        font-size: 22px;
    }

    .page-header-text[b-ldv2n93bw2] {
        min-width: 0;
        flex: 1;
    }

    .page-header-text h1[b-ldv2n93bw2] {
        font-size: 22px;
        line-height: 1.25;
        white-space: nowrap;
    }

    .page-header-text p[b-ldv2n93bw2] {
        font-size: 12px;
        line-height: 1.45;
    }


    /* ===== 修正・削除トグル ===== */

    .mode-toggle-area[b-ldv2n93bw2] {
        flex-shrink: 0;
    }


    /* ===== 修正・削除モード ===== */

    /*
       通常幅では
       「入力フォーム + 登録済み一覧」の2列。

       1350px以下では横幅不足による潰れを防ぐため、
       縦1列へ切り替える。
    */

    .master-workspace.edit-mode[b-ldv2n93bw2] {
        grid-template-columns: 1fr;
    }


    /* ===== メインカード ===== */

    .form-section[b-ldv2n93bw2] {
        min-width: 0;
    }


    /* ===== 入力行 ===== */

    .form-row[b-ldv2n93bw2] {
        display: flex;
        align-items: flex-start;
        margin-bottom: 14px;
    }

    .form-label[b-ldv2n93bw2],
    .required-label[b-ldv2n93bw2] {
        width: 140px;
        min-width: 140px;
        margin-right: 10px;
        margin-bottom: 0;
    }

    .input-area[b-ldv2n93bw2] {
        flex: 1;
        width: calc(100% - 150px);
        min-width: 0;
    }


    /* ===== 入力欄 ===== */

    .form-input[b-ldv2n93bw2] {
        width: 100%;
        max-width: 300px;
        min-width: 0;
    }


    /* ===== 業者区分 ===== */

    .processor-type-area[b-ldv2n93bw2] {
        flex-wrap: wrap;
    }


    /* ===== 登録済み一覧 ===== */

    .master-list-panel[b-ldv2n93bw2] {
        width: 100%;
        min-width: 0;
        min-height: auto;
    }

    .master-list-body[b-ldv2n93bw2] {
        min-width: 0;
    }


    /* ===== 一覧ツールバー ===== */

    .list-toolbar[b-ldv2n93bw2] {
        flex-wrap: wrap;
        gap: 10px 18px;
    }


    /* ===== 検索欄 ===== */

    .processor-search-box[b-ldv2n93bw2] {
        min-width: 0;
    }

    .processor-search-input[b-ldv2n93bw2] {
        min-width: 0;
    }

    /* ===== 修正・削除モード：登録済み一覧を上へ ===== */

    .master-workspace.edit-mode .master-list-panel[b-ldv2n93bw2] {
        grid-row: 1;
    }

    .master-workspace.edit-mode .form-section[b-ldv2n93bw2] {
        grid-row: 2;
    }
}


/* =========================================================
   ===== スマホ・狭い画面対策 ==============================
   ========================================================= */

@media (max-width: 700px) {

/* ===== 画面全体 ===== */

    .processor-page[b-ldv2n93bw2] {
        max-width: 100%;
        margin-left: 0;
        padding: 16px 12px 40px;
    }


    /* ===== ヘッダー ===== */

    .page-header[b-ldv2n93bw2] {
        gap: 12px;
        padding: 16px 14px;
        margin-bottom: 20px;
    }

    .page-header > i[b-ldv2n93bw2] {
        width: 40px;
        height: 40px;
        flex: 0 0 40px;
        font-size: 21px;
    }

    .page-header-text[b-ldv2n93bw2] {
        min-width: 0;
        flex: 1;
    }

    .page-header-text h1[b-ldv2n93bw2] {
        font-size: 22px;
        line-height: 1.25;
        white-space: nowrap;
    }

    .page-header-text p[b-ldv2n93bw2] {
        font-size: 12px;
        line-height: 1.45;
    }


    /* ===== 修正・削除トグル ===== */

    .mode-toggle-area[b-ldv2n93bw2] {
        flex-shrink: 0;
        gap: 7px;
    }

    .mode-toggle-label[b-ldv2n93bw2] {
        font-size: 13px;
    }

    .toggle-switch[b-ldv2n93bw2] {
        width: 46px;
        height: 26px;
    }

    .toggle-slider[b-ldv2n93bw2]::before {
        width: 20px;
        height: 20px;
    }

    .toggle-switch input:checked + .toggle-slider[b-ldv2n93bw2]::before {
        transform: translateX(20px);
    }


    /* ===== 作業領域 ===== */

    .master-workspace[b-ldv2n93bw2],
    .master-workspace.edit-mode[b-ldv2n93bw2] {
        grid-template-columns: 1fr;
        gap: 18px;
    }


    /* ===== メインカード ===== */

    .form-section[b-ldv2n93bw2] {
        min-width: 0;
        padding: 20px 18px 24px;
    }


    /* ===== 入力行 ===== */

    .form-row[b-ldv2n93bw2] {
        display: block;
        margin-bottom: 16px;
    }

    .form-label[b-ldv2n93bw2],
    .required-label[b-ldv2n93bw2] {
        width: 100%;
        min-width: 0;
        height: auto;
        margin: 0 0 6px;
    }

    .required-label .required-badge[b-ldv2n93bw2] {
        margin-left: 8px;
        margin-right: 0;
    }


    /* ===== 入力欄 ===== */

    .input-area[b-ldv2n93bw2] {
        width: 100%;
        min-width: 0;
    }

    .input-area-column[b-ldv2n93bw2] {
        width: 100%;
    }

    .form-input[b-ldv2n93bw2] {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }


    /* ===== 業者区分 ===== */

    .processor-type-area[b-ldv2n93bw2] {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }


    /* ===== 登録エリア ===== */

    .register-area[b-ldv2n93bw2] {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .register-message-ok[b-ldv2n93bw2],
    .register-message-error[b-ldv2n93bw2] {
        margin-right: 0;
        text-align: left;
    }

    .register-button[b-ldv2n93bw2] {
        width: 100%;
    }


    /* ===== 登録済み一覧 ===== */

    .master-list-panel[b-ldv2n93bw2] {
        width: 100%;
        min-width: 0;
        min-height: auto;
    }

    .master-list-header[b-ldv2n93bw2] {
        padding: 16px 18px;
    }

    .master-list-body[b-ldv2n93bw2] {
        padding: 12px;
    }


    /* ===== 検索 ===== */

    .processor-search-area[b-ldv2n93bw2] {
        padding: 12px 12px 6px;
    }

    .processor-search-input[b-ldv2n93bw2] {
        min-width: 0;
    }


    /* ===== 頭文字検索 ===== */

    .initial-filter-toggle[b-ldv2n93bw2] {
        width: calc(100% - 24px);
        margin-left: 12px;
        margin-right: 12px;
    }

    .initial-filter-panel[b-ldv2n93bw2] {
        margin-left: 12px;
        margin-right: 12px;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 5px;
    }

    .initial-filter-button[b-ldv2n93bw2] {
        min-width: 0;
        padding: 0 4px;
    }


    /* ===== 一覧ツールバー ===== */

    .list-toolbar[b-ldv2n93bw2] {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
        padding: 10px 12px 4px;
    }

    .toolbar-item[b-ldv2n93bw2] {
        width: 100%;
    }

    .sort-select[b-ldv2n93bw2],
    .type-filter-select[b-ldv2n93bw2] {
        flex: 1;
        width: auto;
        min-width: 0;
    }


    /* ===== 一覧カード ===== */

    .master-list-item[b-ldv2n93bw2] {
        padding: 12px 13px;
    }


    /* ===== 修正・削除ボタン ===== */

    .edit-action-buttons[b-ldv2n93bw2] {
        flex-wrap: wrap;
        justify-content: flex-end;
    }


    /* ===== 確認画面 ===== */

    .confirm-dialog[b-ldv2n93bw2],
    .confirm-modal[b-ldv2n93bw2] {
        width: calc(100vw - 24px);
        max-width: 420px;
        padding: 22px 20px;
    }

    .confirm-actions[b-ldv2n93bw2],
    .confirm-buttons[b-ldv2n93bw2] {
        flex-wrap: wrap;
    }

    /* ===== 修正・削除モード：登録済み一覧を上へ ===== */

    .master-workspace.edit-mode .master-list-panel[b-ldv2n93bw2] {
        grid-row: 1;
    }

    .master-workspace.edit-mode .form-section[b-ldv2n93bw2] {
        grid-row: 2;
    }
}

/* 修正・削除トグル：全画面幅で寸法統一 */
.mode-toggle-area[b-ldv2n93bw2] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 10px;
    white-space: nowrap;
}

.mode-toggle-label[b-ldv2n93bw2] {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
}

.toggle-switch[b-ldv2n93bw2] {
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
}

.toggle-slider[b-ldv2n93bw2]::before {
    width: 22px;
    height: 22px;
}

.toggle-switch input:checked + .toggle-slider[b-ldv2n93bw2]::before {
    transform: translateX(24px);
}
/* /Components/Pages/SiteRegister.razor.rz.scp.css */
/* =========================================================
   画面全体
   ========================================================= */

.site-page[b-25bpyf2sm8] {
    max-width: 1100px;
    margin: 0;
    margin-left: 20px;
    padding: 24px 28px 60px;
    box-sizing: border-box;
}

/* =========================================================
   画面タイトル
   ========================================================= */

.page-header[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 24px;
    margin-bottom: 24px;
    background-color: #f5f8fc;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
    justify-content: space-between;
}


/* ===== 左側：アイコン + タイトル ===== */

.page-header-left[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}


/* ===== タイトルアイコン ===== */

.page-header .page-header-icon[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    background-color: #eaf2fd;
    color: #2f65c5;
    border: 1px solid #dce8f8;
    border-radius: 8px;
    font-size: 25px;
    line-height: 1;
}

.page-header .page-header-icon i[b-25bpyf2sm8] {
    line-height: 1;
}


/* ===== タイトル文字 ===== */

.page-header-text[b-25bpyf2sm8] {
    min-width: 0;
}

.page-header-text h1[b-25bpyf2sm8] {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
    color: #3f4f63;
}

.page-header-text p[b-25bpyf2sm8] {
    margin: 3px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: #66758a;
}


/* =========================================================
   メインカード
   ========================================================= */

.site-form-card[b-25bpyf2sm8] {
    padding: 20px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
}


/* =========================================================
   セクションタイトル
   ========================================================= */

.section-title[b-25bpyf2sm8] {
    padding-bottom: 12px;
    margin-bottom: 18px;
    border-bottom: 2px solid #2f65c5;
    font-size: 16px;
    font-weight: 700;
    color: #3f4f63;
}


/* =========================================================
   許可情報選択パネル
   ========================================================= */

.permit-select-panel[b-25bpyf2sm8] {
    border: 1px solid #d7e1ee;
    border-radius: 6px;
    overflow: hidden;
    background: #ffffff;
}


/* =========================================================
   許可情報選択ヘッダー
   ========================================================= */

.permit-select-header[b-25bpyf2sm8] {
    padding: 14px 16px;
    background-color: #f5f8fc;
    border-bottom: 1px solid #d7e1ee;
}

.permit-select-title[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 700;
    color: #3f4f63;
}

.permit-select-description[b-25bpyf2sm8] {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.5;
    color: #66758a;
}


/* =========================================================
   必須表示
   ========================================================= */

.required-badge[b-25bpyf2sm8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 6px;
    background-color: #dc3545;
    color: #ffffff;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    border-radius: 3px;
    white-space: nowrap;
}


/* =========================================================
   検索欄
   ========================================================= */

.permit-search-area[b-25bpyf2sm8] {
    position: relative;
    padding: 12px 14px 6px;
}

.permit-search-area i[b-25bpyf2sm8] {
    position: absolute;
    left: 28px;
    top: 24px;
    transform: translateY(-50%);
    color: #64748b;
    pointer-events: none;
}

.permit-search-input[b-25bpyf2sm8] {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px 9px 38px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    font-size: 14px;
    outline: none;
}

.permit-search-input:focus[b-25bpyf2sm8] {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb;
}


/* =========================================================
   許可カード一覧
   最大3列
   ========================================================= */

.permit-card-list[b-25bpyf2sm8] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    padding: 8px 14px 14px;
}


/* =========================================================
   許可カード
   ========================================================= */

.permit-select-card[b-25bpyf2sm8] {
    padding: 13px 14px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.permit-select-card:hover[b-25bpyf2sm8] {
    border-color: #93c5fd;
    background: #f8fbff;
}

.permit-select-card.selected[b-25bpyf2sm8] {
    border: 2px solid #2563eb;
    background: #eff6ff;
    padding: 12px 13px;
}

/* =========================================================
   許可カード内情報
   ========================================================= */

.permit-card-processor-name[b-25bpyf2sm8] {
    margin-bottom: 5px;
    font-size: 14px;
    font-weight: 700;
    color: #3f4f63;
}

.permit-card-authority[b-25bpyf2sm8] {
    margin-bottom: 3px;
    font-size: 12px;
    color: #66758a;
}

.permit-card-number[b-25bpyf2sm8] {
    margin-top: 5px;
    font-size: 12px;
    font-weight: 600;
    color: #66758a;
}

.permit-card-type[b-25bpyf2sm8] {
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
}

.permit-card-type.transport[b-25bpyf2sm8] {
    color: #2563eb;
}

.permit-card-type.disposal[b-25bpyf2sm8] {
    color: #16a34a;
}

.permit-card-type.special[b-25bpyf2sm8] {
    color: #9333ea;
}

/* =========================================================
   積替保管あり表示
   ========================================================= */

.permit-card-transfer-storage[b-25bpyf2sm8] {
    display: inline-block;
    margin-top: 2px;
    padding: 2px 7px;
    border: 1px solid #fdba74;
    border-radius: 10px;
    background: #fff7ed;
    color: #c2410c;
    font-size: 11px;
    font-weight: 700;
}


/* =========================================================
   検索結果なし
   ========================================================= */

.permit-empty-message[b-25bpyf2sm8] {
    padding: 20px;
    text-align: center;
    font-size: 13px;
    color: #64748b;
}


/* =========================================================
   選択中許可情報
   許可選択後に登録対象を表示する
   ========================================================= */

.selected-permit-summary[b-25bpyf2sm8] {
    margin-top: 20px;
    padding: 16px 18px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #f8fafc;
}

.selected-permit-summary-title[b-25bpyf2sm8] {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #64748b;
}

.selected-permit-kind[b-25bpyf2sm8] {
    font-size: 16px;
    font-weight: 700;
}

.selected-permit-kind.transfer-storage[b-25bpyf2sm8] {
    color: #d97706;
}

.selected-permit-kind.disposal[b-25bpyf2sm8] {
    color: #16a34a;
}

.selected-permit-summary-description[b-25bpyf2sm8] {
    margin-top: 5px;
    font-size: 13px;
    color: #64748b;
}


/* =========================================================
   画面幅が狭い場合
   ========================================================= */

@media (max-width: 900px) {

    .permit-card-list[b-25bpyf2sm8] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {

    .site-page[b-25bpyf2sm8] {
        padding: 12px;
    }

    .permit-card-list[b-25bpyf2sm8] {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   事業場情報入力セクション
   ========================================================= */

.site-information-section[b-25bpyf2sm8] {
    margin-top: 24px;
}

.site-section-title[b-25bpyf2sm8] {
    margin-bottom: 16px;
}


/* =========================================================
   事業場入力カード
   ========================================================= */

.site-entry-card[b-25bpyf2sm8] {
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background: #ffffff;
}

.site-entry-header[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid #e2e8f0;
}

.site-entry-number[b-25bpyf2sm8] {
    font-size: 16px;
    font-weight: 700;
    color: #3f4f63;
}


/* =========================================================
   事業場削除
   ========================================================= */

.site-remove-button[b-25bpyf2sm8] {
    padding: 5px 12px;
    border: 1px solid #ef4444;
    border-radius: 5px;
    background: #ffffff;
    color: #dc2626;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.site-remove-button:hover[b-25bpyf2sm8] {
    background: #fef2f2;
}


/* =========================================================
   会社情報コピー
   ========================================================= */

.site-copy-area[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.site-copy-button[b-25bpyf2sm8] {
    padding: 7px 14px;
    border: 1px solid #38bdf8;
    border-radius: 5px;
    background: #38bdf8;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.site-copy-button:hover[b-25bpyf2sm8] {
    background: #0ea5e9;
}

.site-copy-description[b-25bpyf2sm8] {
    font-size: 12px;
    color: #64748b;
}


/* =========================================================
   基本入力行
   ========================================================= */

.site-form-row[b-25bpyf2sm8] {
    display: grid;
    grid-template-columns: 150px 1fr;
    align-items: start;
    margin-bottom: 14px;
}

.site-form-label[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #334155;
}

.site-input-area[b-25bpyf2sm8] {
    max-width: 520px;
}

.site-form-input[b-25bpyf2sm8] {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1px solid #b8c7dc;
    border-radius: 4px;
    font-size: 14px;
    outline: none;
}

.site-form-input:focus[b-25bpyf2sm8] {
    border-color: #2563eb;
    box-shadow: 0 0 0 1px #2563eb;
}

.site-input-note[b-25bpyf2sm8] {
    margin-top: 4px;
    font-size: 11px;
    color: #64748b;
}

.postal-code-input[b-25bpyf2sm8] {
    max-width: 220px;
}

.address-input[b-25bpyf2sm8] {
    max-width: 520px;
}


/* =========================================================
   処分方法
   処分業許可の場合のみ表示
   ========================================================= */

.disposal-method-section[b-25bpyf2sm8] {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px dashed #cbd5e1;
}

.disposal-method-title[b-25bpyf2sm8] {
    font-size: 16px;
    font-weight: 700;
    color: #3f4f63;
}

.disposal-method-description[b-25bpyf2sm8] {
    margin-top: 4px;
    margin-bottom: 14px;
    font-size: 12px;
    color: #66758a;
}

.disposal-method-grid[b-25bpyf2sm8] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 18px;
}

.disposal-method-item[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 14px;
    cursor: pointer;
}


/* =========================================================
   その他処分方法
   ========================================================= */

.custom-method-area[b-25bpyf2sm8] {
    margin-top: 18px;
    padding: 14px;
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
}

.custom-method-label[b-25bpyf2sm8] {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700;
    color: #334155;
}


/* =========================================================
   事業場追加
   ========================================================= */

.site-add-area[b-25bpyf2sm8] {
    margin-top: 12px;
}

.site-add-button[b-25bpyf2sm8] {
    padding: 8px 16px;
    border: 1px solid #2563eb;
    border-radius: 5px;
    background: #ffffff;
    color: #2563eb;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.site-add-button:hover[b-25bpyf2sm8] {
    background: #eff6ff;
}


/* =========================================================
   スマートフォン等
   ========================================================= */

@media (max-width: 700px) {

    .site-form-row[b-25bpyf2sm8] {
        grid-template-columns: 1fr;
        gap: 5px;
    }

    .site-form-label[b-25bpyf2sm8] {
        padding-top: 0;
    }

    .site-input-area[b-25bpyf2sm8] {
        max-width: none;
    }

    .disposal-method-grid[b-25bpyf2sm8] {
        grid-template-columns: 1fr;
    }

    .site-copy-area[b-25bpyf2sm8] {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   入力項目ラベル
   項目名と必須バッジの位置を統一する
   ========================================================= */

.site-form-label[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    font-size: 14px;
    font-weight: 700;
    color: #3f4f63;
}


/* 項目名部分の幅を固定 */
.site-label-text[b-25bpyf2sm8] {
    display: inline-block;
    width: 52px;
}


/* =========================================================
   必須バッジ
   ========================================================= */

.required-badge[b-25bpyf2sm8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 6px;
    background: #dc3545;
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    border-radius: 3px;
    white-space: nowrap;
}

/* =========================================================
   登録エリア
   ========================================================= */

.site-register-area[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
}

.site-register-button[b-25bpyf2sm8] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease;
}

.site-register-button:hover:not(:disabled)[b-25bpyf2sm8] {
    background-color: #284f91;
}

.site-register-button:disabled[b-25bpyf2sm8] {
    opacity: 0.45;
    background-color: #315da8;
    cursor: not-allowed;
}

/* =========================================================
   登録確認モーダル
   ========================================================= */

.confirm-overlay[b-25bpyf2sm8] {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}


/* ===== 確認ダイアログ ===== */

.confirm-dialog[b-25bpyf2sm8] {
    width: 420px;
    max-width: calc(100vw - 40px);
    padding: 24px;
    background-color: #ffffff;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}


/* ===== タイトル ===== */

.confirm-title[b-25bpyf2sm8] {
    margin-bottom: 18px;
    color: #333333;
    font-size: 18px;
    font-weight: 700;
}


/* ===== メッセージ ===== */

.confirm-message[b-25bpyf2sm8] {
    margin-bottom: 24px;
    color: #586472;
    font-size: 14px;
    line-height: 1.8;
}


/* ===== ボタン領域 ===== */

.confirm-actions[b-25bpyf2sm8] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}


/* ===== キャンセル ===== */

.confirm-cancel-button[b-25bpyf2sm8] {
    padding: 8px 20px;
    border: 1px solid #bbbbbb;
    border-radius: 4px;
    background-color: #ffffff;
    cursor: pointer;
}


/* ===== 登録 ===== */

.confirm-register-button[b-25bpyf2sm8] {
    padding: 8px 24px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
}


/* ===== 無効状態 ===== */

.confirm-register-button:disabled[b-25bpyf2sm8],
.confirm-cancel-button:disabled[b-25bpyf2sm8] {
    opacity: 0.6;
    cursor: not-allowed;
}

.confirm-register-button:hover:not(:disabled)[b-25bpyf2sm8] {
    background-color: #284f91;
}


/* ===== 登録する ===== */

.register-confirm-button.primary[b-25bpyf2sm8] {
    color: #ffffff;
    background: #2468e8;
    border: 1px solid #2468e8;
}

.register-confirm-button.primary:hover[b-25bpyf2sm8] {
    background: #1856c9;
    border-color: #1856c9;
}


/* ===== キャンセル ===== */

.register-confirm-button.secondary[b-25bpyf2sm8] {
    color: #334155;
    background: #ffffff;
    border: 1px solid #b9c7da;
}

.register-confirm-button.secondary:hover[b-25bpyf2sm8] {
    background: #f1f5f9;
    border-color: #94a3b8;
}

/* =========================================================
   登録結果メッセージ
   ========================================================= */

.site-register-message[b-25bpyf2sm8] {
    min-width: 300px;
    padding: 10px 14px;
    border-radius: 5px;
    font-size: 13px;
    font-weight: 700;
}

.site-register-message.success[b-25bpyf2sm8] {
     border: 1px solid #86efac;
     background: #f0fdf4;
     color: #15803d;
}

.site-register-message.error[b-25bpyf2sm8] {
     border: 1px solid #fca5a5;
     background: #fef2f2;
     color: #dc2626;
}

.register-message.error[b-25bpyf2sm8],
.register-message-error[b-25bpyf2sm8],
.site-register-message.error[b-25bpyf2sm8] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}

.register-message.success[b-25bpyf2sm8],
.register-message-ok[b-25bpyf2sm8],
.site-register-message.success[b-25bpyf2sm8] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

/* =========================================================
   その他処分方法
   ========================================================= */

.custom-method-input-row[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}

.custom-method-input-row .site-form-input[b-25bpyf2sm8] {
    flex: 1;
}

.custom-method-add-button[b-25bpyf2sm8] {
    margin-top: 10px;
    padding: 7px 14px;
    border: 1px solid #2563eb;
    border-radius: 5px;
    background: #ffffff;
    color: #2563eb;
    font-weight: 600;
    cursor: pointer;
}

.custom-method-add-button:hover[b-25bpyf2sm8] {
    background: #eff6ff;
}

.custom-method-remove-button[b-25bpyf2sm8] {
    flex: 0 0 auto;
    height: 34px;
    min-width: 54px;
    padding: 0 10px;
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
}

.custom-method-remove-button:hover[b-25bpyf2sm8] {
    color: #ffffff;
    background-color: #dc3545;
}

/* =========================================================
   その他処分方法：入力欄追加
   ========================================================= */

.custom-method-add-button[b-25bpyf2sm8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 0 12px;
    color: #4f6f9f;
    background-color: #ffffff;
    border: 1px solid #aebfd6;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.custom-method-add-button:hover[b-25bpyf2sm8] {
    color: #3f5f8d;
    background-color: #f5f8fc;
    border-color: #8fa7c5;
}

/* =========================================================
   修正/削除モード
   ========================================================= */

.edit-mode-area[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.edit-mode-label[b-25bpyf2sm8] {
    font-weight: 600;
    color: #1f2937;
}


/* =========================================================
   トグルスイッチ
   ========================================================= */

.edit-mode-switch[b-25bpyf2sm8] {
    position: relative;
    display: inline-block;
    width: 48px;
    height: 26px;
}

.edit-mode-switch input[b-25bpyf2sm8] {
    opacity: 0;
    width: 0;
    height: 0;
}

.edit-mode-slider[b-25bpyf2sm8] {
    position: absolute;
    inset: 0;
    cursor: pointer;
    background: #cbd5e1;
    border-radius: 999px;
    transition: 0.2s;
}

.edit-mode-slider[b-25bpyf2sm8]::before {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    left: 3px;
    top: 3px;
    background: #ffffff;
    border-radius: 50%;
    transition: 0.2s;
}

.edit-mode-switch input:checked + .edit-mode-slider[b-25bpyf2sm8] {
    background: #2563eb;
}

.edit-mode-switch input:checked + .edit-mode-slider[b-25bpyf2sm8]::before {
    transform: translateX(22px);
}

/* =========================================================
   修正/削除モード
   メイン画面 + 右側検索パネル
   ========================================================= */

.site-workspace[b-25bpyf2sm8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    align-items: start;
    transition: grid-template-columns 0.2s ease;
}

/* 修正/削除モード時 */
.site-workspace.edit-mode[b-25bpyf2sm8] {
    grid-template-columns: minmax(0, 1fr) 340px;
}


/* =========================================================
   左側：登録・編集フォーム
   ========================================================= */

.site-main-area[b-25bpyf2sm8] {
    min-width: 0;
}


/* =========================================================
   右側：登録済み事業場パネル
   ========================================================= */

.site-edit-panel[b-25bpyf2sm8] {
    position: sticky;
    top: 20px;
    padding: 18px;
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
}


/* ===== パネルタイトル ===== */

.site-edit-panel-header[b-25bpyf2sm8] {
    padding-bottom: 14px;
    border-bottom: 1px solid #e2e8f0;
}

.site-edit-panel-header h2[b-25bpyf2sm8] {
    margin: 0 0 6px 0;
    font-size: 16px;
    font-weight: 700;
    color: #1e293b;
}

.site-edit-panel-header p[b-25bpyf2sm8] {
    margin: 0;
    font-size: 12px;
    color: #64748b;
}


/* =========================================================
   処理業者検索
   ========================================================= */

.site-edit-search[b-25bpyf2sm8] {
    margin-top: 16px;
}

.site-edit-search-box[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 12px;
    height: 40px;
    border: 1px solid #cbd5e1;
    border-radius: 5px;
    background: #ffffff;
}

.site-edit-search-box i[b-25bpyf2sm8] {
    color: #64748b;
}

.site-edit-search-box input[b-25bpyf2sm8] {
    width: 100%;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    color: #334155;
}

/* =========================================================
   未選択状態
   ========================================================= */

.site-edit-empty[b-25bpyf2sm8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 18px;
    padding: 28px 16px;
    text-align: center;
    border: 1px dashed #cbd5e1;
    border-radius: 5px;
    background: #f8fafc;
}

.site-edit-empty i[b-25bpyf2sm8] {
    margin-bottom: 10px;
    font-size: 24px;
    color: #94a3b8;
}

.site-edit-empty strong[b-25bpyf2sm8] {
    margin-bottom: 6px;
    font-size: 13px;
    color: #475569;
}

.site-edit-empty span[b-25bpyf2sm8] {
    font-size: 11px;
    line-height: 1.6;
    color: #94a3b8;
}

/* =========================================================
   修正/削除モード：中間幅以下
   登録済み事業場を編集フォームより上に表示
   ========================================================= */

@media (max-width: 1100px) {

    .site-workspace.edit-mode[b-25bpyf2sm8] {
        grid-template-columns: 1fr;
    }

        /* 登録済み事業場を上へ */
        .site-workspace.edit-mode .site-edit-panel[b-25bpyf2sm8] {
            grid-row: 1;
            position: static;
        }

        /* 編集フォームを下へ */
        .site-workspace.edit-mode .site-main-area[b-25bpyf2sm8] {
            grid-row: 2;
        }
}

/* =========================================================
   修正/削除モード案内
   ========================================================= */

.edit-mode-guide[b-25bpyf2sm8] {
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px dashed #c7d3e3;
    border-radius: 8px;
    background: #f8fafc;
    text-align: center;
    padding: 32px;
}

.edit-mode-guide i[b-25bpyf2sm8] {
    font-size: 32px;
    color: #7f9bc2;
    margin-bottom: 14px;
}

.edit-mode-guide-title[b-25bpyf2sm8] {
    font-size: 18px;
    font-weight: 700;
    color: #203653;
    margin-bottom: 8px;
}

.edit-mode-guide-description[b-25bpyf2sm8] {
    font-size: 13px;
    line-height: 1.8;
    color: #718096;
}

/* =========================================================
   処理業者検索結果
   ========================================================= */

.processor-search-results[b-25bpyf2sm8] {
    margin-top: 8px;
    border: 1px solid #d7e0ec;
    border-radius: 6px;
    background: #ffffff;
    overflow: hidden;
}

.processor-search-result[b-25bpyf2sm8] {
    width: 100%;
    display: block;
    padding: 10px 12px;
    border: none;
    border-bottom: 1px solid #edf1f6;
    background: #ffffff;
    text-align: left;
    cursor: pointer;
}

.processor-search-result:last-child[b-25bpyf2sm8] {
    border-bottom: none;
}

.processor-search-result:hover[b-25bpyf2sm8] {
    background: #f5f8fd;
}

.processor-search-result.selected[b-25bpyf2sm8] {
    background: #edf4ff;
}

.processor-search-result-name[b-25bpyf2sm8] {
    font-size: 13px;
    font-weight: 700;
    color: #203653;
}

.processor-search-result-furigana[b-25bpyf2sm8] {
    margin-top: 3px;
    font-size: 11px;
    color: #8795a8;
}

.processor-search-no-result[b-25bpyf2sm8] {
    padding: 14px;
    font-size: 12px;
    color: #8795a8;
    text-align: center;
}


/* =========================================================
   選択中処理業者
   ========================================================= */

.selected-processor-summary[b-25bpyf2sm8] {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #cbd8ea;
    border-radius: 6px;
    background: #f8fafc;
}

.selected-processor-label[b-25bpyf2sm8] {
    font-size: 11px;
    color: #718096;
    margin-bottom: 4px;
}

.selected-processor-name[b-25bpyf2sm8] {
    font-size: 14px;
    font-weight: 700;
    color: #203653;
}

.selected-processor-clear[b-25bpyf2sm8] {
    margin-top: 10px;
    padding: 5px 10px;
    border: 1px solid #9fb2cb;
    border-radius: 4px;
    background: #ffffff;
    color: #506985;
    font-size: 11px;
    cursor: pointer;
}

.selected-processor-clear:hover[b-25bpyf2sm8] {
    background: #f1f5f9;
}

/* =========================================================
   登録済み事業場一覧
   ========================================================= */

.registered-site-list[b-25bpyf2sm8] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
}


/* =========================================================
   登録済み事業場カード
   ========================================================= */

.registered-site-card[b-25bpyf2sm8] {
    width: 100%;
    padding: 14px;
    border: 1px solid #cbd8e8;
    border-radius: 6px;
    background: #ffffff;
    text-align: left;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.registered-site-card:hover[b-25bpyf2sm8] {
    border-color: #2f6fed;
    background: #f7faff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}


/* =========================================================
   カード上部
   ========================================================= */

.registered-site-card-top[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    margin-bottom: 8px;
}


/* =========================================================
   事業場種別
   ========================================================= */

.registered-site-kind[b-25bpyf2sm8] {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.registered-site-kind.disposal[b-25bpyf2sm8] {
    color: #0b7a3b;
    background: #eaf8f0;
}

.registered-site-kind.transfer-storage[b-25bpyf2sm8] {
    color: #1769d2;
    background: #edf5ff;
}

/* =========================================================
   事業場名
   ========================================================= */

.registered-site-name[b-25bpyf2sm8] {
    margin-bottom: 6px;
    color: #15243a;
    font-size: 15px;
    font-weight: 700;
}

/* =========================================================
   住所
   ========================================================= */

.registered-site-address[b-25bpyf2sm8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    color: #66758a;
    font-size: 12px;
}

/* =========================================================
   処分方法
   ========================================================= */

.registered-site-methods[b-25bpyf2sm8] {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #edf1f6;
    color: #53647a;
    font-size: 12px;
    line-height: 1.6;
}

/* =========================================================
   修正 / 削除 操作ボタン
   ========================================================= */

.site-edit-action-buttons[b-25bpyf2sm8] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-left: auto;
}

/* =========================================================
   削除ボタン
   ========================================================= */

.site-delete-button[b-25bpyf2sm8] {
    min-width: 110px;
    padding: 11px 22px;
    border: 1px solid #dc3545;
    border-radius: 5px;
    background: #ffffff;
    color: #dc3545;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.site-delete-button:hover[b-25bpyf2sm8] {
    background: #dc3545;
    color: #ffffff;
}

.site-delete-button:disabled[b-25bpyf2sm8] {
    opacity: 0.6;
    cursor: default;
}

/* =========================================================
   削除確認ダイアログ内ボタン
   ========================================================= */

.confirm-delete-button[b-25bpyf2sm8] {
    min-width: 90px;
    padding: 10px 18px;
    border: 1px solid #dc3545;
    border-radius: 4px;
    background: #dc3545;
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
}

.confirm-delete-button:hover[b-25bpyf2sm8] {
    background: #bb2d3b;
}

.confirm-delete-button:disabled[b-25bpyf2sm8] {
    opacity: 0.6;
    cursor: default;
}

/* =========================================================
   独自処分方法 登録済み候補
   ========================================================= */

.custom-method-candidate-area[b-25bpyf2sm8] {
    margin: 12px 0 16px;
    padding: 12px;
    border: 1px solid #dbe3ef;
    border-radius: 6px;
    background: #f8fafc;
}

.custom-method-candidate-title[b-25bpyf2sm8] {
    margin-bottom: 8px;
    font-size: 0.85rem;
    font-weight: 600;
}

.custom-method-candidate-list[b-25bpyf2sm8] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.custom-method-candidate-button[b-25bpyf2sm8] {
    padding: 6px 14px;
    border: 1px solid #2f6fed;
    border-radius: 16px;
    background: white;
    font-size: 0.85rem;
    cursor: pointer;
}

.custom-method-candidate-button:hover[b-25bpyf2sm8] {
    background: #eef4ff;
}

.custom-method-candidate-button.selected[b-25bpyf2sm8] {
    opacity: 0.55;
    cursor: default;
}

/* =========================================================
   修正 / 削除 操作ボタン
   Processor基準
   ========================================================= */

.site-delete-button[b-25bpyf2sm8],
.site-update-button[b-25bpyf2sm8] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    box-sizing: border-box;
    cursor: pointer;
}

/* ===== 削除 ===== */

.site-delete-button[b-25bpyf2sm8] {
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
}

.site-delete-button:hover:not(:disabled)[b-25bpyf2sm8] {
    color: #ffffff;
    background-color: #dc3545;
}

/* ===== 更新 ===== */

.site-update-button[b-25bpyf2sm8] {
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
}

.site-update-button:hover:not(:disabled)[b-25bpyf2sm8] {
    background-color: #284f91;
    border-color: #284f91;
}

.site-delete-button:disabled[b-25bpyf2sm8],
.site-update-button:disabled[b-25bpyf2sm8] {
    opacity: 0.6;
    cursor: default;
}

/* 修正・削除トグル：全画面幅で寸法統一 */
.edit-mode-area[b-25bpyf2sm8] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 10px;
    white-space: nowrap;
}

.edit-mode-label[b-25bpyf2sm8] {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.edit-mode-switch[b-25bpyf2sm8] {
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
}

.edit-mode-slider[b-25bpyf2sm8]::before {
    width: 22px;
    height: 22px;
}

.edit-mode-switch input:checked + .edit-mode-slider[b-25bpyf2sm8]::before {
    transform: translateX(24px);
}
/* /Components/Pages/VendorRegister.razor.rz.scp.css */
/* ========================================
外注先登録画面
VendorRegister.razor.css
BillingCustomerRegister 風
======================================== */


/* ===== 画面全体 ===== */

.vendor-page[b-g3w4lyu00x] {
    max-width: 1280px;
    margin: 0;
    margin-left: 20px;
    padding: 24px 28px 60px;
    color: #586472;
    --label-width: 140px;
    --label-gap: 12px;
}


/* ===== ページヘッダー ===== */

.page-header[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 24px;
    margin-bottom: 24px;
    background-color: #f5f8fc;
    border-left: 4px solid #2f65c5;
    border-radius: 4px;
}

.page-icon[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    background-color: #eaf2fd;
    color: #2f65c5;
    border: 1px solid #dce8f8;
    border-radius: 8px;
    font-size: 25px;
    font-weight: 700;
}

.page-title-area h1[b-g3w4lyu00x] {
    margin: 0;
    color: #3f4f63;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.3;
}

.page-title-area p[b-g3w4lyu00x] {
    margin: 3px 0 0;
    color: #66758a;
    font-size: 12px;
    line-height: 1.5;
}


/* ===== メインレイアウト ===== */

.register-layout[b-g3w4lyu00x] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 24px;
    align-items: start;
}


.register-area[b-g3w4lyu00x] {
    min-width: 0;
}


/* ===== 入力セクション ===== */

.form-section[b-g3w4lyu00x] {
    margin-bottom: 18px;
    padding: 24px 26px 28px;
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
}


/* ===== セクション見出し ===== */

.section-title[b-g3w4lyu00x] {
    margin-bottom: 18px;
    padding-bottom: 10px;
    color: #586472;
    font-size: 18px;
    font-weight: 700;
    border-bottom: 2px solid #2f65c5;
}


.section-title-row[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 2px solid #2f65c5;
}


.section-title-row .section-title[b-g3w4lyu00x] {
    margin: 0;
    padding: 0;
    border: none;
}


/* ===== 入力行 ===== */

.form-row[b-g3w4lyu00x] {
    display: flex;
    align-items: flex-start;
    margin-bottom: 14px;
}


.form-row:last-child[b-g3w4lyu00x] {
    margin-bottom: 0;
}


.form-label[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    width: var(--label-width);
    min-width: var(--label-width);
    height: 36px;
    margin: 0 var(--label-gap) 0 0;
    color: #586472;
    font-size: 14px;
    font-weight: 600;
}

/* ===== 必須ラベル ===== */

.required-label[b-g3w4lyu00x] {
    width: var(--label-width);
    min-width: var(--label-width);
    display: flex;
    align-items: center;
    height: 36px;
    margin: 0 var(--label-gap) 0 0;
    color: #586472;
    font-size: 14px;
    font-weight: 600;
}

.required-label .required-badge[b-g3w4lyu00x] {
    margin-left: auto;
    margin-right: 10px;
}


/* ===== 必須バッジ ===== */

.required-badge[b-g3w4lyu00x] {
    display: inline-block;
    padding: 1px 5px;
    border-radius: 3px;
    background-color: #dc3545;
    color: #ffffff;
    font-size: 10px;
    font-weight: 600;
    line-height: normal;
}

/* ===== 入力欄 ===== */

.form-input[b-g3w4lyu00x],
.form-select[b-g3w4lyu00x] {
    height: 36px;
    padding: 6px 10px;
    color: #4f5b68;
    background-color: #ffffff;
    border: 1px solid #aebccc;
    border-radius: 4px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}


/* ===== 通常入力欄 ===== */

.input-area[b-g3w4lyu00x] {
    flex: 1 1 auto;
    min-width: 0;
}

.form-input[b-g3w4lyu00x] {
    width: 100%;
    max-width: 560px;
    box-sizing: border-box;
}


/* ===== 住所も通常入力欄と同じ ===== */

.form-input.wide-input[b-g3w4lyu00x] {
    width: 100%;
    max-width: 560px;
    box-sizing: border-box;
}


/* 郵便番号だけ短く */

.form-input.short-input[b-g3w4lyu00x] {
    width: 210px;
}


.form-input:focus[b-g3w4lyu00x],
.form-select:focus[b-g3w4lyu00x] {
    border-color: #2f65c5;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}


/* ===== 支払条件 ===== */

.form-input.closing-day-input[b-g3w4lyu00x] {
    width: 280px;
    max-width: 280px;
    /* 狭い時は縮小を許可 */
    flex: 0 1 280px;
    min-width: 0;
}

.payment-due-row[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    gap: 10px;
/* 親の残り幅以内に必ず収める */
    flex: 1 1 auto;
    min-width: 0;
/* 足りなければ折り返す */
    flex-wrap: wrap;
}

.form-input.payment-month-input[b-g3w4lyu00x] {
    width: 150px;
    max-width: 150px;
    flex: 0 1 150px;
    min-width: 0;
}

.form-input.payment-day-input[b-g3w4lyu00x] {
    width: 120px;
    max-width: 120px;
    flex: 0 1 120px;
    min-width: 0;
}

.payment-note[b-g3w4lyu00x] {
    margin-top: 8px;
    margin-left: calc(var(--label-width) + var(--label-gap));
    color: #7a8798;
    font-size: 12px;
}



/* ===== 本社 ===== */

.head-office-badge[b-g3w4lyu00x] {
    flex-shrink: 0;
    padding: 5px 9px;
    color: #2f65c5;
    background-color: #edf3fc;
    border: 1px solid #d2def1;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}


.head-office-preview[b-g3w4lyu00x] {
    width: 85%;
    margin-bottom: 18px;
    padding: 14px 16px;
    color: #586472;
    background-color: #f8fafc;
    border: 1px solid #d7dfeb;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.7;
}


/* ===== 業務属性 ===== */

.business-category-panel[b-g3w4lyu00x] {
    width: 85%;
    margin-top: 18px;
    padding: 20px 22px;
    background-color: #f8fafc;
    border: 1px solid #d7dfeb;
    border-radius: 6px;
}


.business-category-title[b-g3w4lyu00x] {
    margin-bottom: 14px;
    color: #2f435f;
    font-size: 16px;
    font-weight: 700;
}


.required-mark[b-g3w4lyu00x] {
    color: #c64747;
}


.business-category-group[b-g3w4lyu00x] {
    margin-bottom: 16px;
}


.business-category-group:last-child[b-g3w4lyu00x] {
    margin-bottom: 0;
}


.business-category-group-title[b-g3w4lyu00x] {
    margin-bottom: 8px;
    color: #40536d;
    font-size: 14px;
    font-weight: 600;
}


.business-category-items[b-g3w4lyu00x] {
    display: flex;
    flex-wrap: wrap;
    column-gap: 22px;
    row-gap: 9px;
}


.business-category-item[b-g3w4lyu00x] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    color: #586472;
    font-size: 13px;
    cursor: pointer;
    white-space: nowrap;
}


.business-category-item input[b-g3w4lyu00x] {
    width: 15px;
    height: 15px;
    accent-color: #2f65c5;
    cursor: pointer;
}


/* ===== 営業所有無 ===== */

.office-option-row[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    min-height: 36px;
}


.office-option-label[b-g3w4lyu00x] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #586472;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}


.office-option-label input[b-g3w4lyu00x] {
    width: 16px;
    height: 16px;
    accent-color: #2f65c5;
}


/* ===== 営業所2以降 ===== */

.office-section[b-g3w4lyu00x] {
    border-left: 4px solid #6689ca;
}


.remove-office-button[b-g3w4lyu00x] {
    height: 32px;
    padding: 0 12px;
    color: #b44343;
    background-color: #ffffff;
    border: 1px solid #d5aaaa;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}


.remove-office-button:hover[b-g3w4lyu00x] {
    background-color: #fff5f5;
}


.add-office-area[b-g3w4lyu00x] {
    display: flex;
    justify-content: center;
    margin: 4px 0 22px;
}


.add-office-button[b-g3w4lyu00x] {
    min-width: 140px;
    height: 36px;
    padding: 0 16px;
    color: #2f65c5;
    background-color: #ffffff;
    border: 1px solid #2f65c5;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}


.add-office-button:hover[b-g3w4lyu00x] {
    color: #ffffff;
    background-color: #2f65c5;
}


/* ===== 登録 ===== */

.register-button-area[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    margin-top: 22px;
}

.register-message[b-g3w4lyu00x] {
    padding: 9px 12px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    box-sizing: border-box;
}

.register-message.success[b-g3w4lyu00x] {
    color: #166534;
    background-color: #f0fdf4;
    border: 1px solid #bbf7d0;
}

.register-message.error[b-g3w4lyu00x] {
    color: #b42318;
    background-color: #fff5f5;
    border: 1px solid #fecaca;
}

.register-button[b-g3w4lyu00x] {
    min-width: 110px;
    height: 38px;
    padding: 0 22px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.register-button:hover[b-g3w4lyu00x] {
    background-color: #284f91;
}

/* =========================================================
処理業者検索
========================================================= */

.processor-search-box[b-g3w4lyu00x] {
    display: flex;
    align-items: center;
    width: 100%;
    height: 38px;
    margin-top: 16px;
    padding: 0 10px;
    background-color: #ffffff;
    border: 1px solid #aebccc;
    border-radius: 4px;
}

.processor-search-box:focus-within[b-g3w4lyu00x] {
    border-color: #2f65c5;
    box-shadow: 0 0 0 2px rgba(47, 101, 197, 0.10);
}

.processor-search-icon[b-g3w4lyu00x] {
flex: 0 0 auto;
margin-right: 8px;
font-size: 13px;
}

.processor-search-box input[b-g3w4lyu00x] {
flex: 1;
min-width: 0;
height: 34px;
padding: 0;
color: #4f5b68;
background: transparent;
border: none;
outline: none;
font-size: 13px;
}

/* =========================================================
   登録済み事業場から転記
   ========================================================= */

.site-transfer-area[b-g3w4lyu00x] {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #d7dfeb;
}

.site-transfer-title[b-g3w4lyu00x] {
    margin-bottom: 6px;
    color: #40536d;
    font-size: 15px;
    font-weight: 700;
}

.site-transfer-description[b-g3w4lyu00x] {
    margin-bottom: 12px;
}

.site-transfer-label[b-g3w4lyu00x] {
    display: block;
    margin-bottom: 5px;
    color: #40536d;
    font-size: 12px;
    font-weight: 600;
}

.site-transfer-select[b-g3w4lyu00x] {
    width: 100%;
    height: 38px;
    padding: 0 8px;
    color: #4f5b68;
    background-color: #ffffff;
    border: 1px solid #aebccc;
    border-radius: 4px;
}

/* ===== 処理業者区分 ===== */

.processor-role-area[b-g3w4lyu00x] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
}

.processor-role-badge[b-g3w4lyu00x] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}


/* 収集運搬 */

.processor-role-badge.transporter[b-g3w4lyu00x] {
    color: #2f65c5;
    background-color: #edf3fc;
    border: 1px solid #b9cceb;
}


/* 処分 */

.processor-role-badge.disposer[b-g3w4lyu00x] {
    color: #2e7d32;
    background-color: #eef8ef;
    border: 1px solid #b8d9bb;
}

/* ===== 未検索 ===== */

.processor-placeholder[b-g3w4lyu00x] {
    margin-top: 14px;
    padding: 24px 14px;
    text-align: center;
    background-color: #f8fafc;
    border: 1px dashed #c9d5e4;
    border-radius: 4px;
}

.processor-placeholder-icon[b-g3w4lyu00x] {
    margin-bottom: 8px;
    color: #6689ca;
    font-size: 24px;
}

.processor-placeholder-title[b-g3w4lyu00x] {
    margin-bottom: 6px;
    color: #40536d;
    font-size: 13px;
    font-weight: 700;
}

.processor-placeholder-description[b-g3w4lyu00x] {
    color: #7a8798;
    font-size: 11px;
    line-height: 1.6;
}


/* ===== 検索結果 ===== */

.processor-card-list[b-g3w4lyu00x] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    max-height: 320px;
    margin-top: 14px;
    overflow-y: auto;
}

.processor-card[b-g3w4lyu00x] {
    width: 100%;
    padding: 10px 11px;
    color: #586472;
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 4px;
    text-align: left;
    cursor: pointer;
}

.processor-card:hover[b-g3w4lyu00x] {
        background-color: #f5f8fc;
        border-color: #9fb7d8;
}

.processor-card.selected[b-g3w4lyu00x] {
    background-color: #edf3fc;
    border-color: #2f65c5;
}

.processor-card-name[b-g3w4lyu00x] {
    color: #40536d;
    font-size: 13px;
    font-weight: 700;
}

.processor-card-furigana[b-g3w4lyu00x] {
    margin-top: 2px;
    color: #7a8798;
    font-size: 11px;
}

.processor-card-address[b-g3w4lyu00x] {
    margin-top: 5px;
    color: #6c7885;
    font-size: 11px;
    line-height: 1.4;
}

/* ===== 選択中 ===== */

.selected-processor-area[b-g3w4lyu00x] {
    margin-top: 14px;
    padding: 10px 11px;
    background-color: #f8fafc;
    border: 1px solid #d7dfeb;
    border-radius: 4px;
}

.selected-processor-label[b-g3w4lyu00x] {
    margin-bottom: 3px;
    color: #7a8798;
    font-size: 10px;
}

.selected-processor-name[b-g3w4lyu00x] {
    color: #40536d;
    font-size: 13px;
    font-weight: 700;
}


/* ===== 該当なし ===== */

.processor-no-result[b-g3w4lyu00x] {
    margin-top: 14px;
    padding: 14px;
    color: #7a8798;
    background-color: #f8fafc;
    border: 1px solid #e1e6ec;
    border-radius: 4px;
    text-align: center;
    font-size: 12px;
}


/* ===== 転記ボタン ===== */

.copy-processor-button[b-g3w4lyu00x] {
    width: 100%;
    height: 38px;
    margin-top: 14px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.copy-processor-button:hover:not(:disabled)[b-g3w4lyu00x] {
    background-color: #284f91;
}

.copy-processor-button:disabled[b-g3w4lyu00x] {
    color: #8c98a6;
    background-color: #eef1f5;
    border-color: #d9e0e8;
    cursor: default;
}

/* ===== 右側：処理業者転記 ===== */

.transfer-area[b-g3w4lyu00x] {
    min-width: 0;
}


.transfer-card[b-g3w4lyu00x] {
    padding: 20px 18px;
    background-color: #ffffff;
    border: 1px solid #d7dee8;
    border-radius: 6px;
}


.transfer-title[b-g3w4lyu00x] {
    margin-bottom: 8px;
    padding-bottom: 9px;
    color: #586472;
    border-bottom: 2px solid #2f65c5;
    font-size: 16px;
    font-weight: 700;
}


.transfer-card p[b-g3w4lyu00x] {
    margin: 0;
    color: #71808e;
    font-size: 12px;
    line-height: 1.6;
}


.coming-soon-box[b-g3w4lyu00x] {
    margin-top: 15px;
    padding: 10px;
    color: #7a8798;
    background-color: #f5f7f9;
    border: 1px solid #e0e5eb;
    border-radius: 4px;
    text-align: center;
    font-size: 12px;
}


/* ===== 確認モーダル ===== */

.modal-backdrop-custom[b-g3w4lyu00x] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background-color: rgba(30, 38, 48, 0.42);
}


.confirm-modal[b-g3w4lyu00x] {
    width: 420px;
    max-width: 100%;
    padding: 24px 26px;
    background-color: #ffffff;
    border: 1px solid #cfd7e1;
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}


.confirm-modal h3[b-g3w4lyu00x] {
    margin: 0 0 18px;
    color: #4f5b68;
    font-size: 18px;
    font-weight: 700;
}


.confirm-summary[b-g3w4lyu00x] {
    padding: 12px 14px;
    color: #586472;
    background-color: #f8fafc;
    border: 1px solid #d7dfeb;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.8;
}


.confirm-buttons[b-g3w4lyu00x] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 20px;
}


.cancel-button[b-g3w4lyu00x],
.confirm-button[b-g3w4lyu00x] {
    height: 36px;
    padding: 0 16px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}


.cancel-button[b-g3w4lyu00x] {
    color: #586472;
    background-color: #ffffff;
    border: 1px solid #aebccc;
}


.cancel-button:hover[b-g3w4lyu00x] {
    background-color: #f5f7f9;
}


.confirm-button[b-g3w4lyu00x] {
    color: #ffffff;
    background-color: #2f65c5;
    border: 1px solid #2f65c5;
}


.confirm-button:hover[b-g3w4lyu00x] {
    background-color: #285ab2;
}


/* =========================================================
タブレット・中間幅
左メニュー表示中でもフォームが潰れない幅
========================================================= */

@media (min-width: 701px) and (max-width: 1350px) {

    /* ===== 画面全体 ===== */

    .vendor-page[b-g3w4lyu00x] {
        max-width: 100%;
        margin-left: 0;
        padding: 20px 18px 50px;
    }


    /* ===== ヘッダー ===== */

    .page-header[b-g3w4lyu00x] {
        gap: 12px;
        padding: 18px 16px;
    }

    .page-icon[b-g3w4lyu00x] {
        width: 42px;
        height: 42px;
        flex-basis: 42px;
        font-size: 22px;
    }

    .page-title-area[b-g3w4lyu00x] {
        min-width: 0;
        flex: 1;
    }

    .page-title-area h1[b-g3w4lyu00x] {
        font-size: 22px;
        line-height: 1.25;
        white-space: nowrap;
    }

    .page-title-area p[b-g3w4lyu00x] {
        font-size: 12px;
        line-height: 1.45;
    }


    /* ===== 左右2列を解除 ===== */

    .register-layout[b-g3w4lyu00x] {
        grid-template-columns: 1fr;
        gap: 18px;
    }


    /* 転記パネルを上へ */

    .transfer-area[b-g3w4lyu00x] {
        order: -1;
        width: 100%;
    }


    /* ===== 入力行 ===== */

    .form-row[b-g3w4lyu00x] {
        display: flex;
        align-items: flex-start;
        margin-bottom: 14px;
    }

    .form-label[b-g3w4lyu00x],
    .required-label[b-g3w4lyu00x] {
        width: 140px;
        min-width: 140px;
        margin-right: 10px;
        margin-bottom: 0;
    }

    .input-area[b-g3w4lyu00x] {
        flex: 1 1 auto;
        width: auto;
        min-width: 0;
    }


    /* ===== 入力欄 ===== */

    .form-input[b-g3w4lyu00x],
    .form-input.wide-input[b-g3w4lyu00x] {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .form-input.short-input[b-g3w4lyu00x] {
        width: 100%;
        max-width: 210px;
        min-width: 0;
        box-sizing: border-box;
    }

    /* ===== 本社情報・業務属性 ===== */

    .head-office-preview[b-g3w4lyu00x],
    .business-category-panel[b-g3w4lyu00x] {
        width: 100%;
        max-width: 680px;
    }

    /* ===== 中間幅：支払条件 ===== */

    .form-input.closing-day-input[b-g3w4lyu00x] {
        width: 100%;
        max-width: 280px;
        flex: 1 1 0;
        min-width: 0;
    }

    .payment-due-row[b-g3w4lyu00x] {
        display: flex;
        flex: 1 1 0;
        min-width: 0;
        gap: 10px;
        flex-wrap: nowrap;
    }

    /* ===== 中間幅：支払期限 ===== */

    .form-input.payment-month-input[b-g3w4lyu00x] {
        width: 150px;
        max-width: 150px;
        min-width: 0;
        flex: 0 1 150px;
    }

    .form-input.payment-day-input[b-g3w4lyu00x] {
        width: 120px;
        max-width: 120px;
        min-width: 0;
        flex: 0 1 120px;
    }

}


/* =========================================================
スマホ・狭い画面
========================================================= */

@media (max-width: 700px) {

    .vendor-page[b-g3w4lyu00x] {
        max-width: 100%;
        margin-left: 0;
        padding: 16px 12px 40px;
    }


    /* ===== ヘッダー ===== */

    .page-header[b-g3w4lyu00x] {
        gap: 12px;
        padding: 16px 14px;
        margin-bottom: 20px;
    }


    .page-icon[b-g3w4lyu00x] {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        font-size: 21px;
    }


    .page-title-area[b-g3w4lyu00x] {
        min-width: 0;
        flex: 1;
    }


    .page-title-area h1[b-g3w4lyu00x] {
        font-size: 22px;
        white-space: nowrap;
    }


    .page-title-area p[b-g3w4lyu00x] {
        font-size: 12px;
        line-height: 1.45;
    }


    /* ===== レイアウト ===== */

    .register-layout[b-g3w4lyu00x] {
        grid-template-columns: 1fr;
        gap: 18px;
    }


    .transfer-area[b-g3w4lyu00x] {
        order: -1;
    }


    /* ===== カード ===== */

    .form-section[b-g3w4lyu00x] {
        padding: 20px 18px 24px;
    }


    /* ===== 入力 ===== */

    .form-row[b-g3w4lyu00x] {
        display: block;
        margin-bottom: 16px;
    }


    .form-label[b-g3w4lyu00x] {
        width: 100%;
        min-width: 0;
        height: auto;
        margin: 0 0 6px;
    }

    .input-area[b-g3w4lyu00x] {
        width: 100%;
    }


    .form-input[b-g3w4lyu00x],
    .form-input.wide-input[b-g3w4lyu00x],
    .form-input.short-input[b-g3w4lyu00x] {
        width: 100%;
        max-width: 100%;
    }


    .input-note[b-g3w4lyu00x] {
        display: none;
    }



    /* ===== スマホ支払条件 ===== */

    .payment-due-row[b-g3w4lyu00x] {
        display: flex;
        gap: 8px;
    }

    .form-input.closing-day-input[b-g3w4lyu00x],
    .form-input.payment-month-input[b-g3w4lyu00x],
    .form-input.payment-day-input[b-g3w4lyu00x] {
        width: 120px;
        max-width: 120px;
        flex: 0 0 120px;
    }

    .payment-note[b-g3w4lyu00x] {
        margin-left: 0;
    }


    /* ===== 営業所 ===== */

    .section-title-row[b-g3w4lyu00x] {
        align-items: flex-start;
    }


    .head-office-badge[b-g3w4lyu00x] {
        white-space: nowrap;
    }


    .head-office-preview[b-g3w4lyu00x] {
        width: 100%;
    }


    /* ===== 業務属性 ===== */

    .business-category-panel[b-g3w4lyu00x] {
        width: 100%;
        padding: 18px 16px;
    }


    .business-category-title[b-g3w4lyu00x] {
        font-size: 16px;
    }


    .business-category-items[b-g3w4lyu00x] {
        column-gap: 14px;
        row-gap: 10px;
    }


    .business-category-item[b-g3w4lyu00x] {
        white-space: normal;
    }


    /* ===== 営業所追加 ===== */

    .add-office-button[b-g3w4lyu00x] {
        width: auto;
        min-width: 140px;
        flex-shrink: 0;
        white-space: nowrap;
    }


    /* ===== 登録 ===== */

    .register-button-area[b-g3w4lyu00x] {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 14px;
        margin-top: 22px;
    }

    .register-message[b-g3w4lyu00x] {
        flex: 1;
        min-width: 0;
        color: #586472;
        font-size: 13px;
        font-weight: 600;
        line-height: 1.5;
        text-align: right;
    }

    .register-button[b-g3w4lyu00x] {
        min-width: 110px;
        height: 38px;
        padding: 0 22px;
        color: #ffffff;
        background-color: #315da8;
        border: 1px solid #315da8;
        border-radius: 4px;
        font-size: 14px;
        font-weight: 600;
        cursor: pointer;
        transition: background-color 0.15s ease;
    }

}

/* =========================================================
   修正 / 削除モード
   ========================================================= */

.edit-mode-switch[b-g3w4lyu00x] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    color: #40536d;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.edit-mode-switch input[b-g3w4lyu00x] {
    display: none;
}

.edit-mode-slider[b-g3w4lyu00x] {
    position: relative;
    width: 46px;
    height: 24px;
    background-color: #b8c4d1;
    border-radius: 999px;
    transition: 0.2s;
}

.edit-mode-slider[b-g3w4lyu00x]::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    background-color: #ffffff;
    border-radius: 50%;
    transition: 0.2s;
}

.edit-mode-switch
input:checked +
.edit-mode-slider[b-g3w4lyu00x] {
    background-color: #2f69d9;
}

.edit-mode-switch
input:checked +
.edit-mode-slider[b-g3w4lyu00x]::after {
    transform: translateX(22px);
}


/* ===== 外注先営業所有り表示 ===== */

.vendor-office-badge[b-g3w4lyu00x] {
    display: inline-flex;
    align-items: center;
    margin-top: 7px;
    padding: 2px 8px;
    color: #2563a8;
    background-color: #edf5ff;
    border: 1px solid #b8d4f5;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
}

/* =========================================================
   削除ボタン
   ========================================================= */

.delete-button[b-g3w4lyu00x] {
    min-width: 86px;
    height: 40px;
    padding: 0 20px;
    color: #dc3545;
    background-color: #ffffff;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.delete-button:hover[b-g3w4lyu00x] {
    color: #ffffff;
    background-color: #dc3545;
    border-color: #dc3545;
}

.delete-button:disabled[b-g3w4lyu00x] {
    color: #9ca3af;
    background-color: #f3f4f6;
    border-color: #d1d5db;
    cursor: not-allowed;
}

/* =========================================================
   削除確認ボタン
   ========================================================= */

.delete-confirm-button[b-g3w4lyu00x] {
    min-width: 86px;
    height: 36px;
    padding: 0 16px;
    color: #ffffff;
    background-color: #dc3545;
    border: 1px solid #dc3545;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.delete-confirm-button:hover[b-g3w4lyu00x] {
    background-color: #c82333;
    border-color: #c82333;
}

/* =========================================================
   0.245 外注先登録
   カラー・ボタン統一
   Emitter / Processor 基準
   ========================================================= */


/* ===== ページヘッダー ===== */

.page-header[b-g3w4lyu00x] {
    background-color: #f5f8fc;
    border-left-color: #2f65c5;
}

.page-icon[b-g3w4lyu00x] {
    color: #2f65c5;
    background-color: #eaf2fd;
}

.page-title-area h1[b-g3w4lyu00x] {
    color: #3f4f63;
}

.page-title-area p[b-g3w4lyu00x] {
    color: #66758a;
}


/* ===== セクション見出し ===== */

.section-title[b-g3w4lyu00x],
.section-title-row .section-title[b-g3w4lyu00x],
.transfer-title[b-g3w4lyu00x] {
    color: #3f4f63;
}

/* ===== 入力ラベル ===== */

.form-label[b-g3w4lyu00x],
.required-label[b-g3w4lyu00x] {
    color: #3f4f63;
}


/* ===== 入力欄 ===== */

.form-input[b-g3w4lyu00x],
.form-select[b-g3w4lyu00x],
.site-transfer-select[b-g3w4lyu00x],
.processor-search-box input[b-g3w4lyu00x] {
    color: #3f4f63;
}


/* ===== 補足・説明文 ===== */

.input-note[b-g3w4lyu00x],
.payment-note[b-g3w4lyu00x],
.transfer-card p[b-g3w4lyu00x],
.processor-placeholder-description[b-g3w4lyu00x],
.processor-card-furigana[b-g3w4lyu00x],
.processor-card-address[b-g3w4lyu00x],
.site-transfer-description[b-g3w4lyu00x] {
    color: #66758a;
}


/* ===== 営業所・業務属性 ===== */

.business-category-title[b-g3w4lyu00x],
.business-category-group-title[b-g3w4lyu00x],
.office-option-label[b-g3w4lyu00x],
.site-transfer-title[b-g3w4lyu00x],
.site-transfer-label[b-g3w4lyu00x] {
    color: #3f4f63;
}

.business-category-item[b-g3w4lyu00x],
.head-office-preview[b-g3w4lyu00x] {
    color: #66758a;
}


/* ===== 処理業者検索 ===== */

.processor-placeholder-title[b-g3w4lyu00x],
.processor-card-name[b-g3w4lyu00x],
.selected-processor-name[b-g3w4lyu00x] {
    color: #3f4f63;
}

.selected-processor-label[b-g3w4lyu00x],
.processor-no-result[b-g3w4lyu00x] {
    color: #66758a;
}


/* ===== 修正 / 削除トグル ===== */

.edit-mode-switch[b-g3w4lyu00x] {
    color: #3f4f63;
}

.edit-mode-slider[b-g3w4lyu00x] {
    background-color: #b8c4d1;
}

.edit-mode-switch input:checked + .edit-mode-slider[b-g3w4lyu00x] {
    background-color: #2f6fed;
}

/* ===== 登録ボタン ===== */

.register-button[b-g3w4lyu00x] {
    min-width: 120px;
    height: 38px;
    padding: 0 20px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
}

.register-button:hover:not(:disabled)[b-g3w4lyu00x] {
    background-color: #284f91;
    border-color: #284f91;
}


/* ===== 処理業者情報を転記 ===== */

.copy-processor-button[b-g3w4lyu00x] {
    height: 38px;
    color: #ffffff;
    background-color: #315da8;
    border: 1px solid #315da8;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
}

.copy-processor-button:hover:not(:disabled)[b-g3w4lyu00x] {
    background-color: #284f91;
    border-color: #284f91;
}

.copy-processor-button:disabled[b-g3w4lyu00x] {
    color: #8c98a6;
    background-color: #eef1f5;
    border-color: #d9e0e8;
}

/* ===== 営業所を追加 ===== */

.add-office-button[b-g3w4lyu00x] {
    min-width: 140px;
    height: 36px;
    padding: 0 16px;
    color: #4f6f9f;
    background-color: #ffffff;
    border: 1px solid #aebfd6;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
}

.add-office-button:hover[b-g3w4lyu00x] {
    color: #4f6f9f;
    background-color: #f5f8fc;
    border-color: #8fa7c5;
}

/* 修正・削除トグル：全画面幅で寸法統一 */
.edit-mode-switch[b-g3w4lyu00x] {
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.edit-mode-slider[b-g3w4lyu00x] {
    flex: 0 0 52px;
    width: 52px;
    height: 28px;
}

    .edit-mode-slider[b-g3w4lyu00x]::after {
        width: 22px;
        height: 22px;
    }

.edit-mode-switch input:checked + .edit-mode-slider[b-g3w4lyu00x]::after {
    transform: translateX(24px);
}
