.bg-login {
    background: var(--ClourBG, #F2F6FC);
}
.bg-white {
    background: var(--Background-bg-base, #FFF);
}

.text-danger {
    color: var(--Danger-danger-500, #DF0C3D);
}

.text-primary {
    color: var(--Texts-text-base, #14181F);
}
.text-secondary {
    color: var(--Texts-text-secondary, #525E6F);
}

.text-white {
    color: var(--Texts-text-white, #FFF) !important;
}

.font-size-11 {
    font-size: 11px;
}
.font-size-12 {
    font-size: 12px;
}
.font-size-13 {
    font-size: 13px;
}

.font-weight-normal {
    font-weight: 400;
}

.border-bottom {
    border-bottom: 1px solid var(--Border-border-default, #DCE0E5);
}

.text-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/*
 * ロゴ、アイコン
 */
.logo {
    width: 229px;
    height: 52px;
    flex-shrink: 0;
    aspect-ratio: 229/52;
    display: block;
}

.login-cover {
    width: 263px;
    height: 394px;
    flex-shrink: 0;
}
.logo-sidebar {
    display: flex;
    width: 168.392px;
    height: 38px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    aspect-ratio: 168.39/38.00;
    margin: var(--Num-padding-12, 12px);

    background: url(/img/KYCC-logo.png) no-repeat center center;
    background-size: contain;
}
#sidebar-toggle:checked ~ .sidebar .logo-sidebar {
    width: 40px;
    height: 40px;
    padding: 1px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    border-radius: 8px;
    background: url(/img/KYCC-logo_small.png) lightgray 50% / cover no-repeat;
    box-shadow: 0px 8px 16px 0px rgba(255, 255, 255, 0.20) inset, 0px 2px 0px 0px rgba(255, 255, 255, 0.16) inset;
    background-size: contain;
}

.icon-obj_sidebar {
    display: flex;
    width: 20px;
    height: 20px;
    padding: 1.667px 1.666px;
    justify-content: center;
    align-items: center;
}
.icon-obj_form {
    display: flex;
    width: 32px;
    height: 32px;
    padding: 6px;
    justify-content: center;
    align-items: center;
    position: absolute;
    bottom: 5px;
    right: 5px;
    box-sizing: border-box;
}
.icon-obj_message {
    display: inline-block;
    width: 18px;
    height: 18px;
    padding: 1.875px 1.5px;
    justify-content: center;
    align-items: center;
}
.icon-obj_alert {
    display: flex;
    width: 24px;
    height: 24px;
    padding: 2px;
    justify-content: center;
    align-items: center;
}
.icon-obj_footer {
    display: flex;
    width: 18px;
    height: 18px;
    padding: 2.625px 1.5px;
    justify-content: center;
    align-items: center;
}
.icon-obj_tag {
    display: flex;
    width: 16px;
    height: 16px;
    padding: 1.333px 1.334px 1.333px 1.333px;
    justify-content: center;
    align-items: center;
}
.icon-obj_account {
    display: flex;
    width: 24px;
    height: 24px;
    padding: 1.333px 1.334px 1.333px 1.333px;
    justify-content: center;
    align-items: center;

    background-size: contain !important;
}
.icon-obj_noteerror {
    display: inline-block;
    width: 14px;
    height: 14px;
    padding: 1.458px 1.166px 1.458px 1.167px;
    justify-content: center;
    align-items: center;
    background-size: contain !important;
}
.icon-obj_pageerror {
    width: 211px;
    height: 211px;
    flex-shrink: 0;
}
.icon-obj_pageerror_mini {
    display: flex;
    width: 44px;
    height: 44px;
    padding: 1.833px 1.833px 1.833px 1.834px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}
.icon-obj_sidebar-arrow {
    display: flex;
    width: 8px;
    height: 10px;
    padding: 5px 0;

    background-size: contain !important;

    position: absolute;
    right: 20px;
}
.icon-obj_text {
    display: inline-block;
    width: 16px;
    height: 16px;
    padding: 1.333px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;

    background-size: contain !important;
}
.icon-obj_svgtext {
    display: inline-block;
    padding: 2.083px;
    align-self: center;
}
.icon-obj_flashcategory {
    display: flex;
    width: 24px;
    height: 24px;
    padding: 0px;
    justify-content: center;
    align-items: center;
}
.icon-obj_flashcategory-small {
    display: flex;
    width: 16.667px;
    height: 14.167px;
    flex-shrink: 0;
    padding: 2.917px 1.667px;
    justify-content: center;
    align-items: center;

    background-size: contain !important;
}
.icon-obj_flashclose {
    display: flex;
    width: 20px;
    height: 20px;
    margin: 0px 6px;
    justify-content: center;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}
.icon-obj_announcementcollapse {
    display: flex;
    width: 24px;
    height: 24px;
    margin: 0 13px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;

    box-sizing: border-box;
}
.icon-obj_text-arrow {
    display: inline-block;
    width: 20px;
    height: 20px;
    padding: 5px 0;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}
.icon-obj_button {
    display: flex;
    width: 20px;
    height: 20px;
    padding: 1.667px 1.666px;
    justify-content: center;
    align-items: center;
}
.icon-obj_tablesort {
    display: flex;
    width: 24px;
    height: 24px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
}
.icon-obj_lookup {
    display: flex;
    width: 20px;
    height: 20px;
    padding: 4.167px 1.666px 4.167px 1.667px;
    justify-content: center;
    align-items: center;

    box-sizing: border-box;
}
.icon-obj_paginator {
    display: inline;
    width: 14px;
    height: 14px;
    padding: 9px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.icon-eye-w-text {
    background: linear-gradient(0deg, rgba(255, 255, 255, 0.10) 0%, rgba(255, 255, 255, 0.10) 100%), var(--Background-bg-base, #FFF);

    /* Btn-effect */
    box-shadow: 0px 7px 12px 0px rgba(255, 255, 255, 0.08) inset, 0px -2px 2px 0px rgba(48, 48, 48, 0.10) inset;
}



.icon-account { background: url(/img/icon-account.svg) no-repeat center center; }
.icon-alert { background: url(/img/icon-alert.svg) no-repeat center center; }
.icon-alert_orange { background: url(/img/icon-alert_orange.svg) no-repeat center center; }
.icon-arrow_blue { background: url(/img/icon-arrow_blue.svg) no-repeat center center; }
.icon-arrow_down { background: url(/img/icon-arrow_down.svg) no-repeat center center; }
.icon-arrow_left { background: url(/img/icon-arrow_left.svg) no-repeat center center; }
.icon-arrow_left2 { background: url(/img/icon-arrow_left2.svg) no-repeat center center; }
.icon-arrow_left3 { background: url(/img/icon-arrow_left3.svg) no-repeat center center; }
.icon-arrow_right { background: url(/img/icon-arrow_right.svg) no-repeat center center; }
.icon-arrow_right2 { background: url(/img/icon-arrow_right2.svg) no-repeat center center; }
.icon-arrow_right3 { background: url(/img/icon-arrow_right3.svg) no-repeat center center; }
.icon-bulksearch { background: url(/img/icon-bulksearch.svg) no-repeat center center; }
.icon-bulksearch.on { background: url(/img/icon-bulksearch_blue.svg) no-repeat center center; }
.icon-calendar { background: url(/img/icon-calendar.svg) no-repeat center center; }
.icon-check_green { background: url(/img/icon-check_green.svg) no-repeat center center; }
.icon-check_turquoise { background: url(/img/icon-check_turquoise.svg) no-repeat center center; }
.icon-close { background: url(/img/icon-close.svg) no-repeat center center; }
.icon-download { background: url(/img/icon-download.svg) no-repeat center center; }
.icon-download2 { background: url(/img/icon-download2.svg) no-repeat center center; }
.icon-download_blue { background: url(/img/icon-download_blue.svg) no-repeat center center; }
.icon-error_accessdenied { background: url(/img/icon-error_accessdenied.svg) no-repeat center center; }
.icon-error_notfound { background: url(/img/icon-error_notfound.svg) no-repeat center center; }
.icon-eye { background: url(/img/icon-eye.svg) no-repeat center center; }
.icon-eye_blue { background: url(/img/icon-eye_blue.svg) no-repeat center center; }
.icon-eye_close_blue { background: url(/img/icon-eye_close_blue.svg) no-repeat center center; }

/*
 * 取引先管理の再利用部品
 */
.partner-search-panel {
    width: 100%;
    border-radius: var(--Num-radius-base, 8px);
    border: 1px solid var(--Border-border-default, #DCE0E5);
    background: var(--Background-bg-base, #FFF);
    overflow: hidden;
}

.partner-search-panel_summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    font-weight: 700;
    font-size: 15px;
}

.partner-search-panel_summary::-webkit-details-marker {
    display: none;
}

.partner-search-panel_chips {
    display: inline-flex;
    gap: 6px;
    flex-wrap: wrap;
    align-items: center;
    flex: 1;
    margin: 0 12px;
    /* 検索条件の入力有無（空／条件チップあり）でヘッダー高さが変わらないよう、
       チップ1行分の高さ（.preset-chip = line-height 21px + padding 3px*2 + border 1px*2 ≒ 29px）を
       常に確保する（openspec: partner-list-search-layout 高さ安定性） */
    min-height: 30px;
}

.partner-search-panel_caret {
    color: var(--Texts-text-secondary, #525E6F);
    font-size: 12px;
    font-weight: 500;
}

.partner-search-panel[open] .partner-search-panel_caret::before {
    content: "閉じる";
}

.partner-search-panel:not([open]) .partner-search-panel_caret::before {
    content: "絞り込みを変更";
}

.partner-search-panel_body {
    padding: 4px 20px 20px;
    border-top: 1px solid var(--Border-border-default, #DCE0E5);
}

.partner-status-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 145%;
    white-space: nowrap;
}

.partner-status-tag--compact {
    gap: 0;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.6;
}

.partner-status-tag--ok {
    background: #E6F4EA;
    color: #1E7E34;
}

.partner-status-tag--info {
    background: var(--Primary-primary-100, #F0F7FF);
    color: var(--Primary-Colour01, #1F4F9A);
    border: 1px solid var(--Primary-primary-300, #CCE0FF);
}

.partner-status-tag--warn {
    background: #FFF6D1;
    color: #7A5A00;
}

.partner-status-tag--danger {
    background: #FDE2E7;
    color: #9C274C;
}

.partner-status-tag--neutral,
.partner-status-tag--muted {
    background: var(--Neutrals-neutral-100, #EDF0F2);
    color: var(--Texts-text-secondary, #525E6F);
}

.partner-status-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 145%;
    white-space: nowrap;
}

.partner-status-chip--info {
    background: #E8F0FF;
    color: #1F4F9A;
}

.partner-status-chip--warn {
    background: #FFF4DE;
    color: #9A6300;
}

.partner-status-chip--ok {
    background: #E8F6ED;
    color: #137333;
}

.partner-status-chip--danger {
    background: #FDECEF;
    color: #B3133B;
}

.partner-status-chip--neutral,
.partner-status-chip--muted {
    background: #EEF2F6;
    color: #5E6B7B;
}

.partner-table-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 16px;
    color: var(--Texts-text-secondary, #525E6F);
    font-size: 13px;
}

.partner-table-footer_pager {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

.partner-table-footer_pager a,
.partner-table-footer_pager span.current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 8px;
    border-radius: 6px;
    border: 1px solid var(--Border-border-default, #DCE0E5);
    text-decoration: none;
    color: var(--Texts-text-base, #14181F);
    background: #FFF;
}

.partner-table-footer_pager a:hover {
    background: var(--Background-bg-secondary, #F6F7F9);
    color: var(--Texts-text-base, #14181F);
}

.partner-table-footer_pager span.current {
    background: var(--Primary-Colour01, #1F4F9A);
    color: #FFF;
    border-color: var(--Primary-Colour01, #1F4F9A);
}

.partner-table-footer_pager span.ellipsis {
    min-width: 16px;
    border: none;
    background: transparent;
    color: var(--Texts-text-muted, #6F7C8E);
}

.partner-table-footer_pager .is-disabled {
    opacity: 0.4;
    pointer-events: none;
}

.partner-table-footer--compact .partner-table-footer_pager a,
.partner-table-footer--compact .partner-table-footer_pager span.current {
    min-width: 30px;
    height: 30px;
    padding: 0 9px;
    border-color: #D9E1EA;
    color: #3F4B5D;
}

.partner-history-table {
    width: 100%;
    table-layout: fixed;
}

.partner-data-table .table-body .table-row:nth-child(even) td,
.partner-history-table .table-body .table-row:nth-child(even) td {
    background: #FBFCFD;
}

.partner-data-table .table-body .table-row:hover td,
.partner-history-table .table-body .table-row:hover td {
    background: #F0F7FF;
}

.partner-history-table_heading--nowrap {
    white-space: nowrap;
}

.partner-history-empty {
    margin-top: 8px;
    color: #6F7C8E;
}

.partner-attr-grid {
    margin: 0;
    font-size: 13px;
}

.partner-attr-grid dt,
.partner-attr-grid dd {
    margin: 0;
}

.partner-attr-grid dt {
    color: #525E6F;
    font-weight: 500;
}

.partner-attr-grid dd {
    color: #14181F;
    font-weight: 700;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.partner-search-submit-note {
    margin: 0;
    font-size: 12px;
    color: #6F7C8E;
}

.partner-note-textarea {
    flex: 0 0 auto;
    width: 100%;
    min-width: 200px;
    min-height: 72px;
    border: 1px solid var(--Border-border-default, #DCE0E5);
    resize: both;
}

/* 汎用文字数カウンタ（charCounter.js が textarea 直後に挿入） */
.char-counter {
    display: block;
    margin-top: 4px;
    text-align: right;
    font-size: 12px;
    line-height: 1.4;
    color: var(--Texts-text-muted, #6F7C8E);
}

/* 警告時は分子（現在数）だけを強調する。分母「 / 上限」は通常色のまま。 */
/* 近接: しきい値以上〜上限未満（既定で上限の90%以上）→ オレンジ */
.char-counter--near .char-counter__current {
    color: #E8710A;
    font-weight: 700;
}

/* 上限到達以上（上限ちょうど＝満杯、または既存データの超過）→ 赤 */
.char-counter--over .char-counter__current {
    color: var(--Texts-text-danger, #DF0C3D);
    font-weight: 700;
}

.is-hidden {
    display: none !important;
}

.partner-approval-back-row,
.approval-back-row {
    margin-bottom: 20px;
}

.partner-request-form-row,
.request-form-row {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.partner-request-form-row > .form-item,
.request-form-row > .form-item {
    align-self: start;
    margin-top: 0;
}

.partner-request-form-row > .form-item + .form-item,
.request-form-row > .form-item + .form-item {
    margin-top: 0;
}

.partner-request-form-row > .form-item > *,
.request-form-row > .form-item > * {
    flex: 0 0 auto;
}

.partner-request-status-select,
.request-status-select {
    width: 100%;
    height: 40px;
}

.partner-request-textarea,
.request-textarea {
    width: 100%;
    min-width: 500px;
    min-height: 160px;
    resize: vertical;
}

.partner-risk-section,
.risk-section {
    width: 100%;
    margin-bottom: 20px;
}

.partner-risk-section-heading-row,
.section-heading-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 22px;
    width: 100%;
}

.partner-risk-section-heading-row .form-heading,
.section-heading-row .form-heading {
    margin-bottom: 0;
    padding-top: 8px;
}

.partner-risk-section-log-trigger,
.section-log-trigger {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid #DCE0E5;
    border-radius: 10px;
    background: #FFF;
    box-shadow: 0 1px 2px rgba(20, 24, 31, 0.08);
    color: #344054;
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    margin-left: auto;
    flex: 0 0 auto;
}

.partner-risk-strip,
.risk-strip {
    display: flex;
    align-items: center;
    gap: 10px 18px;
    flex-wrap: wrap;
    padding: 14px 16px;
    border: 1px solid #DFE7F1;
    border-radius: 10px;
    background: #F8FBFE;
    margin-bottom: 16px;
}

.partner-risk-strip_title,
.risk-strip__title {
    font-size: 13px;
    font-weight: 700;
    color: #203142;
}

.partner-risk-strip_date,
.partner-risk-strip_meta,
.risk-strip__date,
.risk-strip__meta {
    font-size: 12px;
    color: #617082;
}

.partner-risk-strip_meta-key,
.risk-strip__meta-key {
    color: #525E6F;
    margin-right: 4px;
}

.partner-risk-strip_sep,
.risk-strip__sep {
    width: 1px;
    align-self: stretch;
    background: #D8E1EB;
}

.partner-risk-metric,
.risk-metric {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
}

.partner-risk-metric strong,
.risk-metric strong {
    font-size: 13px;
}

.partner-risk-metric--danger,
.risk-metric--danger {
    background: #FDECEA;
    color: #B42318;
}

.partner-risk-metric--neutral,
.risk-metric--neutral {
    background: #EEF2F6;
    color: #425466;
}

.partner-risk-strip_link,
.risk-strip__link {
    margin-left: auto;
    font-size: 12px;
    font-weight: 700;
    color: #1F4F9A;
    text-decoration: underline;
}

.partner-risk-banner,
.warning-banner,
.info-banner,
.muted-banner {
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.8;
    margin-bottom: 16px;
}

.partner-risk-banner--warning,
.warning-banner {
    background: #FFF7E6;
    border: 1px solid #F0CB7A;
    color: #8A6100;
}

.partner-risk-banner--info,
.info-banner {
    background: #EEF6FF;
    border: 1px solid #BDD7FF;
    color: #1F4F9A;
}

.partner-risk-banner--muted,
.muted-banner {
    background: #F7F8FA;
    border: 1px solid #E1E5EA;
    color: #617082;
}

.partner-risk-info-panel,
.partner-risk-empty-state,
.info-panel,
.empty-state {
    padding: 16px 18px;
    border: 1px solid #E5E9EF;
    border-radius: 10px;
    background: #FFF;
    margin-bottom: 16px;
}

.partner-risk-empty-state_title,
.empty-state__title {
    font-size: 15px;
    font-weight: 700;
    color: #14181F;
    margin-bottom: 8px;
}

.partner-risk-empty-state_desc,
.empty-state__desc {
    font-size: 13px;
    line-height: 1.8;
    color: #425466;
}

.partner-context-panel,
.context-panel {
    margin: 0 0 20px;
    padding: 18px 24px;
    border-radius: 12px;
    background: #F7F9FC;
    border: 1px solid #E3E8EF;
    box-shadow: none;
    max-width: 1180px;
}

.partner-context-panel_row,
.context-panel-row,
.context-panel_row {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    flex-wrap: wrap;
}

.partner-context-panel_block,
.context-block {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.partner-context-panel_label,
.context-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--Texts-text-secondary, #525E6F);
}

.partner-context-panel_partner-name,
.context-partner-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--Texts-text-base, #14181F);
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.partner-context-panel_partner-id,
.context-partner-id {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 6px;
    background: #EEF2F7;
    color: var(--Texts-text-secondary, #525E6F);
    font-size: 12px;
    font-weight: 500;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* 関係者ブロックのヘッダー(ラベル + 「詳細を見る」導線) */
.partner-context-panel_people-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.partner-context-panel_people-detail-button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 8px;
    background: #FFF;
    border: 1px solid #C7D2E2;
    color: #1F4F9A;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease;
}

.partner-context-panel_people-detail-button:hover {
    background: #EEF4FF;
    border-color: #9FB8DF;
}

.partner-context-panel_people-detail-button:active {
    background: #E0EBFF;
}

.partner-context-panel_people-list,
.person-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    min-height: 28px;
}

.partner-context-panel_person-chip,
.person-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 14px;
    border-radius: 999px;
    background: #EEF4FF;
    border: 1px solid #D8E3F8;
    color: #1F2D3D;
    font-size: 13px;
    font-weight: 500;
    max-width: 100%;
    min-width: 0;
}

.partner-context-panel_person-chip-name,
.person-chip-name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 18rem;
}

.partner-context-panel_person-chip-name.is-clampable,
.person-chip-name.is-clampable {
    cursor: pointer;
}

.partner-context-panel_person-chip-name.is-expanded,
.person-chip-name.is-expanded {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
    max-width: 100%;
}

.partner-context-panel_person-chip-birthday,
.person-chip-birthday {
    margin-left: 4px;
    color: var(--Texts-text-secondary, #525E6F);
    font-weight: 500;
}

.partner-context-panel_meta-grid,
.context-meta-grid {
    display: grid;
    grid-template-columns: auto auto auto auto;
    column-gap: 24px;
    row-gap: 6px;
    font-size: 13px;
}

.partner-context-panel_meta-grid dt,
.partner-context-panel_meta-grid dd,
.context-meta-grid dt,
.context-meta-grid dd {
    margin: 0;
}

.partner-context-panel_meta-grid dt,
.context-meta-grid dt {
    color: var(--Texts-text-secondary, #525E6F);
    font-weight: 500;
}

.partner-context-panel_meta-grid dd,
.context-meta-grid dd {
    color: var(--Texts-text-base, #14181F);
    font-weight: 700;
}

/* ステータス項目ラベルの説明ツールチップ起点（情報アイコン: icon-info を流用） */
.partner-status-help-label {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.partner-status-help-icon {
    width: 13px;
    height: 13px;
    padding: 0;
    cursor: help;
}

/* 複数行（タイトル＋値列挙）のステータス説明ツールチップ */
.partner-status-tooltip {
    line-height: 1.7;
}

.partner-context-panel_divider,
.context-divider {
    height: 1px;
    background: #E3E8EF;
    margin: 14px 0;
}

.partner-context-panel_conditions,
.context-conditions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.partner-context-panel_conditions-label,
.context-conditions-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--Texts-text-secondary, #525E6F);
}

.partner-context-panel_condition-chip-list,
.condition-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.partner-context-panel_condition-chip,
.condition-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    padding: 5px 12px;
    border-radius: 8px;
    background: #EEF4FF;
    border: 1px solid #D8E3F8;
    color: #1F2D3D;
    font-size: 12px;
    font-weight: 500;
}

.partner-context-panel_condition-chip-key,
.condition-chip-key {
    color: var(--Texts-text-secondary, #525E6F);
    font-weight: 500;
}

.partner-context-panel_condition-chip-val,
.condition-chip-val {
    color: var(--Texts-text-base, #14181F);
    font-weight: 700;
}

.partner-status-approval-log-modal,
.log-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
}

.partner-status-approval-log-modal.is-open,
.log-modal.is-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.partner-status-approval-log-modal_backdrop,
.log-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20, 24, 31, 0.45);
}

.partner-status-approval-log-modal_dialog,
.log-modal__dialog {
    position: relative;
    width: min(1120px, 96vw);
    max-height: 82vh;
    background: #FFF;
    border-radius: 12px;
    box-shadow: 0 18px 40px rgba(20, 24, 31, 0.18);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.partner-status-approval-log-modal_head,
.log-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid #EEF1F5;
}

.partner-status-approval-log-modal_title,
.log-modal__title {
    font-size: 14px;
    font-weight: 700;
    color: #14181F;
}

.partner-status-approval-log-modal_close,
.log-modal__close {
    background: none;
    border: none;
    font-size: 13px;
    color: #525E6F;
    cursor: pointer;
}

.partner-status-approval-log-modal_body,
.log-modal__body {
    overflow-y: auto;
    overflow-x: auto;
    padding: 4px 0;
}

.partner-status-approval-log-modal_foot,
.log-modal__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 18px;
    border-top: 1px solid #EEF1F5;
    background: #FBFCFD;
}

.partner-status-approval-log-modal_loaded,
.log-modal__loaded {
    font-size: 12px;
    color: #525E6F;
}

/* 関係者詳細モーダルは申請承認ログより列が少ないため、ダイアログ幅を絞る。 */
.log-modal__dialog--related-person {
    width: min(860px, 94vw);
}

/* 関係者詳細テーブル: 列幅を固定し、長い氏名・備考でも横溢れさせず折り返す(design D5)。 */
.related-person-detail-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 13px;
}

.related-person-detail-table th,
.related-person-detail-table td {
    padding: 11px 14px;
    border-bottom: 1px solid #EEF1F5;
    text-align: left;
    vertical-align: top;
    line-height: 1.6;
}

.related-person-detail-table thead th {
    background: #F7F9FC;
    color: #525E6F;
    font-weight: 700;
    font-size: 12px;
    white-space: nowrap;
}

.related-person-detail-table tbody tr:last-child td {
    border-bottom: none;
}

.related-person-detail-table .col-name {
    width: 30%;
    font-weight: 700;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.related-person-detail-table .col-birth {
    width: 112px;
    white-space: nowrap;
}

.related-person-detail-table .col-note {
    width: auto;
}

.related-person-detail-note {
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* ページネーションは取引先一覧と同じ .partner-table-footer_pager を再利用する。
   フッター内では進捗テキストと左右に分かれるため、追加スタイルは持たせない。 */

.partner-status-approval-log-modal_table,
.approval-log-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.partner-status-approval-log-modal_table th,
.partner-status-approval-log-modal_table td,
.approval-log-table th,
.approval-log-table td {
    padding: 8px 8px;
    border-top: 1px solid #EEF1F5;
    text-align: left;
    vertical-align: top;
    line-height: 1.6;
}

.partner-status-approval-log-modal_table thead th,
.approval-log-table thead th {
    background: #FFF;
    color: #525E6F;
    font-weight: 500;
    border-top: none;
    border-bottom: 1px solid #EEF1F5;
}

.approval-log-table thead th {
    white-space: nowrap;
}

.approval-log-table .col-date,
.approval-log-table .col-type,
.approval-log-table .col-actor,
.approval-log-table .col-count,
.approval-log-table .col-status,
.approval-log-table .col-link {
    width: 1%;
    white-space: nowrap;
}

.approval-log-table .col-date {
    min-width: 112px;
}

.approval-log-table .col-type {
    min-width: 72px;
}

.approval-log-table .col-actor {
    min-width: 120px;
}

.approval-log-table .col-count {
    min-width: 60px;
}

.approval-log-table .col-status {
    min-width: 80px;
}

.approval-log-table .col-link {
    min-width: 96px;
}

.approval-log-table .col-comment {
    width: 1%;
    min-width: 160px;
}

.approval-log-table td:nth-child(1),
.approval-log-table td:nth-child(2),
.approval-log-table td:nth-child(4),
.approval-log-table td:nth-child(5),
.approval-log-table td:nth-child(6),
.approval-log-table td:nth-child(8) {
    white-space: nowrap;
}

.partner-status-approval-log-modal_chip-cell,
.log-chip-cell,
.partner-status-approval-log-modal_status-cell,
.log-status-cell {
    text-align: center;
}

.approval-log-table th.col-type,
.approval-log-table th.col-status {
    text-align: center;
}

.partner-status-approval-log-modal_chip-cell .partner-status-chip,
.partner-status-approval-log-modal_chip-cell .status-chip,
.log-chip-cell .partner-status-chip,
.log-chip-cell .status-chip,
.partner-status-approval-log-modal_status-cell .partner-status-chip,
.partner-status-approval-log-modal_status-cell .status-chip,
.log-status-cell .partner-status-chip,
.log-status-cell .status-chip {
    display: flex;
    width: fit-content;
    min-width: 44px;
    margin: 0 auto;
    justify-content: center;
}

.partner-status-approval-log-modal_comment-cell,
.partner-status-approval-log-modal_actor-cell,
.log-actor-cell,
.log-comment-cell {
    min-width: 0;
}

.partner-status-approval-log-modal_actor-excerpt,
.actor-excerpt {
    display: block;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #14181F;
    cursor: pointer;
}

.partner-status-approval-log-modal_actor-excerpt.is-expanded,
.actor-excerpt.is-expanded {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    overflow-wrap: anywhere;
}

.partner-status-approval-log-modal_comment-excerpt,
.comment-excerpt {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    white-space: pre-wrap;
    word-break: break-word;
    max-width: 180px;
    color: #14181F;
    cursor: pointer;
}

.partner-status-approval-log-modal_comment-excerpt.is-expanded,
.comment-excerpt.is-expanded {
    display: block;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    max-width: 180px;
}

.partner-status-approval-log-modal_empty-row td,
.log-empty-row td {
    padding: 24px 8px;
    text-align: center;
    color: #617082;
}

.partner-corporate-number-search-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 4px;
    margin-left: 8px;
    background: #FFFDF4;
    border: 1px solid #E2D9A6;
    border-radius: 6px;
    cursor: pointer;
    box-sizing: border-box;
    vertical-align: middle;
    flex-shrink: 0;
}

.partner-corporate-number-search-button:hover {
    background: #FFF7C7;
}

.partner-corporate-number-search-button[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
}

/* 法人番号⇒法人を検索（検索実行）ボタンは、法人名→法人番号のダイアログ起動ボタン
   （黄色系）と区別するため水色系で表示する。 */
.partner-corporate-number-search-button--corporate {
    background: #F4FAFE;
    border-color: #9CC7E0;
}

.partner-corporate-number-search-button--corporate:hover {
    background: #DDF1FB;
}

.partner-corporate-number-search-button svg {
    display: block;
    width: 28px;
    height: 28px;
}

.partner-corporate-number-search-modal {
    position: fixed;
    inset: 0;
    overflow: hidden;
    overscroll-behavior: contain;
}

.partner-corporate-number-search-modal.is-open {
    display: flex;
}

.partner-corporate-number-search-modal .modal {
    width: min(1040px, calc(100vw - 48px));
    max-width: none;
    min-height: min(640px, calc(100vh - 48px));
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.partner-corporate-number-search-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    margin-top: 20px;
    margin-bottom: 24px;
    max-height: none;
    overflow: hidden;
    overscroll-behavior: contain;
}

@media (max-width: 900px) {
    .partner-risk-strip_link,
    .risk-strip__link {
        margin-left: 0;
        width: 100%;
    }

    .partner-request-form-row,
    .request-form-row {
        grid-template-columns: 1fr;
    }

    .partner-request-textarea,
    .request-textarea {
        min-width: 0;
    }
}

.partner-corporate-number-search-form {
    display: flex;
    gap: 8px;
    align-items: flex-end;
    margin-bottom: 16px;
    flex-wrap: wrap;
}

.partner-corporate-number-search-form .form-item {
    margin: 0;
}

.partner-corporate-number-search-form .form-input-text {
    width: 320px;
}

.partner-corporate-number-search-form .form-button {
    width: auto;
    min-width: 96px;
    padding: 0 20px;
    align-self: flex-end;
    flex: 0 0 auto;
    white-space: nowrap;
}

.partner-corporate-number-search-results {
    flex: 1 1 auto;
    min-height: 0;
    scroll-padding-top: 56px;
    min-block-size: 320px;
    overflow: auto;
    overscroll-behavior: contain;
}

.partner-corporate-number-search-results_table {
    display: none;
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.partner-corporate-number-search-results_table.is-visible {
    display: table;
}

.partner-corporate-number-search-results_table th,
.partner-corporate-number-search-results_table td {
    padding: 10px 12px;
    border-bottom: 1px solid #E4E7EB;
    text-align: left;
    vertical-align: top;
}

.partner-corporate-number-search-results_table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #F0F4F8;
    font-weight: 700;
}

.partner-corporate-number-search-modal .partner-corporate-number-search-results_table thead th {
    position: static;
}

.partner-corporate-number-search-results_table tbody tr:hover {
    background: #FAFCFF;
}

.partner-corporate-number-search-results_table tbody tr {
    scroll-margin-top: 56px;
}

.partner-corporate-number-search-results_name {
    width: 38%;
}

.partner-corporate-number-search-results_number {
    width: 160px;
    font-family: monospace;
}

.partner-corporate-number-search-results_address {
    width: auto;
}

.partner-corporate-number-search-results_action {
    width: 96px;
    text-align: center;
}

.partner-corporate-number-search-results_table .form-button {
    display: inline-flex;
    width: auto;
    min-width: 72px;
    padding: 0 16px;
    margin: 0 auto;
    white-space: nowrap;
}

.partner-corporate-number-search-results_limit {
    display: none;
    padding: 6px 12px;
    margin-bottom: 8px;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    color: #3159A6;
    background: #EEF4FF;
    border-radius: 4px;
}

.partner-corporate-number-search-results_limit.is-visible {
    display: block;
}

.partner-corporate-number-search-results_empty {
    display: none;
    padding: 24px;
    text-align: center;
    color: #6F7C8E;
}

.partner-corporate-number-search-results_empty.is-visible {
    display: block;
}

.partner-corporate-number-search-results_note {
    margin: 12px 0 0;
    font-size: 12px;
    color: #6F7C8E;
}

.partner-corporate-number-search-loading {
    display: none;
    padding: 16px;
    text-align: center;
    color: #6F7C8E;
}

.partner-corporate-number-search-loading.is-visible {
    display: block;
}

.partner-form-section-heading {
    margin: 0 0 20px;
}

.partner-form-section-heading--spaced {
    margin: 24px 0 20px;
}

.partner-form-section-heading--compact {
    margin: 24px 0 12px;
}

.partner-form-monitoring-toggle {
    margin-top: 33px;
}

.partner-form-inline-action {
    display: flex;
    align-items: center;
}

.partner-form-inline-action_input {
    flex: 1;
}

.partner-form-submit-note-row {
    margin-top: 24px;
}

.partner-form-help-text {
    margin-top: 6px;
    font-size: 12px;
    color: #6F7C8E;
}

.partner-related-people-table_container {
    border: 1px solid #DCE0E5;
    border-radius: 8px;
    overflow-x: auto;
    background: #FAFCFF;
    margin-bottom: 10px;
    /* 備考 textarea の横拡大でテーブルの min-content が flex 祖先(カード)を押し広げないよう、
       intrinsic サイズの伝播を断って横スクロールへ転じさせる */
    contain: inline-size;
}

.partner-related-people-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 860px;
}

.partner-related-people-table_head {
    background: #F0F4F8;
    border-bottom: 1px solid #DCE0E5;
}

.partner-related-people-table_row {
    border-bottom: 1px solid #E4E7EB;
}

.partner-related-people-table_cell {
    padding: 10px;
}

.partner-related-people-table_cell--slot {
    width: 60px;
    text-align: left;
}

.partner-related-people-table_cell--birth-date {
    width: 220px;
    text-align: left;
}

.partner-related-people-table_cell--note {
    width: 280px;
    text-align: left;
}

.partner-related-people-table_cell--action {
    width: 90px;
    text-align: center;
}

.partner-related-people-table td.partner-related-people-table_cell--slot {
    font-weight: 700;
}

.partner-related-people-table_action {
    text-align: center;
    vertical-align: middle;
}

.partner-related-people-table_clear-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 62px;
    height: 32px;
    padding: 0 12px;
    margin: 0 auto;
    line-height: 1;
    white-space: nowrap;
    vertical-align: middle;
}

.partner-related-people-table_note {
    width: 100%;
    min-width: 200px;
    min-height: 72px;
    border: 1px solid var(--Border-border-default, #DCE0E5);
    resize: both;
}

.partner-related-people-table_note-text {
    margin: 0;
    font-size: 12px;
    color: #6F7C8E;
}

@media (max-width: 960px) {
    .partner-search-panel_summary {
        padding: 14px 16px;
    }

    .partner-search-panel_body {
        padding: 4px 16px 16px;
    }
}
.icon-file_blue { background: url(/img/icon-file_blue.svg) no-repeat center center; }
.icon-filter { background: url(/img/icon-filter.svg) no-repeat center center; }
.icon-filter_white { background: url(/img/icon-filter_white.svg) no-repeat center center; }
.icon-folder { background: url(/img/icon-folder.svg) no-repeat center center; }
.icon-globe { background: url(/img/icon-globe.svg) no-repeat center center; }
.icon-help { background: url(/img/icon-help.svg) no-repeat center center; }
.icon-help.on { background: url(/img/icon-help_blue.svg) no-repeat center center; }
.icon-history { background: url(/img/icon-history.svg) no-repeat center center; }
.icon-history.on { background: url(/img/icon-history_blue.svg) no-repeat center center; }
.icon-home { background: url(/img/icon-home.svg) no-repeat center center;}
.icon-home.on { background: url(/img/icon-home_blue.svg) no-repeat center center; }
.icon-image_blue { background: url(/img/icon-image_blue.svg) no-repeat center center; }
.icon-info { background: url(/img/icon-info.svg) no-repeat center center; }
.icon-link { background: url(/img/icon-link.svg) no-repeat center center; }
.icon-link.on { background: url(/img/icon-link_blue.svg) no-repeat center center; }
.icon-listregistering { background: url(/img/icon-note.svg) no-repeat center center; }
.icon-listregistering.on { background: url(/img/icon-note_blue2.svg) no-repeat center center; }
.icon-lock_blue { background: url(/img/icon-lock_blue.svg) no-repeat center center; }
.icon-logout { background: url(/img/icon-logout.svg) no-repeat center center; }
.icon-mail_gray { background: url(/img/icon-mail_gray.svg) no-repeat center center; }
.icon-more { background: url(/img/icon-more.svg) no-repeat center center; }
.icon-plus { background: url(/img/icon-plus.svg) no-repeat center center; }
.icon-save {
    background-color: currentColor;
    -webkit-mask: url(/img/icon-save_disk.svg) no-repeat center center;
    mask: url(/img/icon-save_disk.svg) no-repeat center center;
    -webkit-mask-size: contain;
    mask-size: contain;
}
.icon-save_orange { background: url(/img/icon-save_orange.svg) no-repeat center center; }
.icon-save_disk { background: url(/img/icon-save_disk.svg) no-repeat center center; }
.icon-search { background: url(/img/icon-search.svg) no-repeat center center; }
.icon-search.on { background: url(/img/icon-search_blue2.svg) no-repeat center center; }
.icon-search_blue { background: url(/img/icon-search_blue.svg) no-repeat center center; }
.icon-send_blue { background: url(/img/icon-send_blue.svg) no-repeat center center; }
.icon-setting { background: url(/img/icon-setting.svg) no-repeat center center; }
.icon-setting.on { background: url(/img/icon-setting_blue.svg) no-repeat center center; }
.icon-sidebar { background: url(/img/icon-sidebar_left.svg) no-repeat center center; }
.icon-sidebar.close { background: url(/img/icon-sidebar_left.svg) no-repeat center center; }
.icon-sidebar.open { background: url(/img/icon-sidebar_right.svg) no-repeat center center; }
.icon-slider { background: url(/img/icon-slider.svg) no-repeat center center; }
.icon-sort { background: url(/img/icon-sort.svg) no-repeat center center; background-size: inherit; }
.icon-sort_down { background: url(/img/icon-sort_down.svg) no-repeat center center; }
.icon-sort_up { background: url(/img/icon-sort_down.svg) no-repeat center center; transform: rotate(180deg); }
.icon-thumbsup_turquoise { background: url(/img/icon-thumbsup_turquoise.svg) no-repeat center center; }
.icon-usage { background: url(/img/icon-usage.svg) no-repeat center center; }
.icon-usage.on { background: url(/img/icon-usage_blue.svg) no-repeat center center; }

.icon-edit {
    background: url(/img/icon-edit.svg) no-repeat center center;
}

.icon-delete {
    background: url(/img/icon-delete.svg) no-repeat center center;
    cursor: pointer;
}
.icon-delete_white {
    background: url(/img/icon-delete_white.svg) no-repeat center center;
    cursor: pointer;
}   

.icon-close {
    background: url(/img/icon-close.svg) no-repeat center center;
    cursor: pointer;
}

.icon-close_black {
    background: url(/img/icon-close_black.svg) no-repeat center center;
    cursor: pointer;
}

.icon-management {
    background: url(/img/icon-management.svg) no-repeat center center;
    cursor: pointer;
}

.icon-reset {
    background: url(/img/icon-reset.svg) no-repeat center center;
    cursor: pointer;
}

.icon-check_multiselect {
    background: url(/img/icon-check_multiselect.svg) no-repeat center center;
    cursor: pointer;
}
.icon-note_edit {
    background: url(/img/icon-note_edit.svg) no-repeat center center;
}   

.tag {
    display: inline-flex;
    /* height: 24px; */
    padding: 4px 10px 4px 6px;
    justify-content: center;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    border-radius: 29px;
    text-align: center;
    font-family: Inter;
    font-size: 13px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;

    white-space: nowrap;
}

.tag-info {
    border: 1px solid var(--Primary-Colour01, #1F4F9A);
    background: var(--Primary-Colour01, #1F4F9A);
    color: var(--Texts-text-white, #FFF);
}
.tag-info::before {
    content: '';
    display: flex;
    width: 16px;
    height: 16px;
    padding: 1.333px 2.333px;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    background: url(/img/icon-note_white.svg) no-repeat center center;
}

.tag-system {
    border: 1px solid var(--Primary-Colour01, #1F4F9A);
    background: var(--Background-bg-raised, #FFF);
    color: var(--Primary-Colour01, #1F4F9A);

    /* Btn-effect */
    box-shadow: 0px 7px 12px 0px rgba(255, 255, 255, 0.08) inset, 0px -2px 2px 0px rgba(48, 48, 48, 0.10) inset;
}
.tag-system::before {
    content: '';
    display: flex;
    width: 16px;
    height: 16px;
    padding: 1.333px 1.334px 1.333px 1.333px;
    justify-content: center;
    align-items: center;
    background: url(/img/icon-info_blue.svg) no-repeat center center;
}

.button {
    white-space: nowrap;
    cursor: pointer;
}.text-center {
    text-align: center;
    text-align: -webkit-center;
    text-align: -moz-center;
    text-align: -ms-center;
    text-align: -o-center;
}
.text-right {
    text-align: right;
    text-align: -webkit-right;
    text-align: -moz-right;
    text-align: -ms-right;
    text-align: -o-right;
}

.text-danger {
    color: var(--Danger-danger-500, #DF0C3D);
}
.decoration-none {
    text-decoration: none;
}


.display {
    display: block !important;
}
.display-none {
    display: none;
}
.display-flex {
    display: flex;
}
.collapse {
    display: none;
}
.show {
    display: flex;
}

.align-top {
    align-items: flex-start;
    justify-content: flex-start;
}
.align-left {
    align-items: flex-start;
    justify-self: unset;
}
.align-center {
    align-items: center;
    justify-content: center;
}
.align-right {
    align-items: flex-end;
    justify-content: flex-end;
}
.align-between {
    align-items: center;
    justify-content: space-between;
}
.align-end {
    align-items: flex-end;
}
.flex-fillwidth {
    flex: 1 1 0;
    min-width: 0;
}
.flex-direction-column {
    flex-direction: column;
}
.flex-direction-row {
    flex-direction: row;
}
.flex-direction-initial {
    flex-direction: initial;
}

.wm-582p {
    max-width: 582px;
}
.wm-720p {
    max-width: 720px;
}
.wm-980p {
    max-width: 980px;
}
.w-100 {
    width: 100%;
}
.w-193p {
    width: 193px;
}
.w-220p {
    width: 220px;
}
.w-250p {
    width: 250px;
}
.w-300p {
    width: 300px;
}
.w-360p {
    width: 360px;
}
.w-556p {
    width: 556px;
}
.w-950p {
  width: 950px;
}
.w-1028 {
    width: 1028px;
}
.w-1045 {
    width: 1045px;
}
.h-100 {
    height: 100%;
}
.h-50p {
    height: 50px;
}
.hmi-40p {
    min-height: 40px; /* フラッシュメッセージ用最低高 */
}
.hmi-58p {
    min-height: 58px; /* 風評検索フラッシュメッセージ用最低高 */
}
.m-0 {
    margin: 0 !important;
}
.mt-0 {
    margin-top: 0 !important;
}
.mt-2 {
    margin-top: 2px !important;
}
.mt-m8 {
    margin-top: -8px !important;
}
.mt-m16 {
    margin-top: -16px !important;
}
.mt-6 {
    margin-top: 6px !important;
}
.mt-8 {
   margin-top: 8px !important;
}
.mt-20 {
    margin-top: 20px !important;
}
.mt-22 {
    margin-top: 22px !important;
}
.mt-24 {
    margin-top: 24px !important;
}
.mt-28 {
    margin-top: 28px !important;
}
.mt-31 {
    margin-top: 31px !important;
}
.mt-36 {
    margin-top: 36px !important;
}
.mt-42 {
    margin-top: 42px !important;
}
.mt-62 {
    margin-top: 62px !important;
}
.mt-68 {
    margin-top: 68px !important;
}
.mb-0 {
    margin-bottom: 0;
}
.mb-10 {
    margin-bottom: 10px;
}
.mb-40 {
    margin-bottom: 40px;
}
.mb-70 {
    margin-bottom: 70px;
}
.mv-10 {
    margin-right: 10px;
    margin-left: 10px;
}
.ml-auto {
    margin-left: auto !important;
}
.p-0 {
    padding: 0 !important;
}

.gap-2 {
    gap: 2px;
}
.gap-3 {
    gap: 3px;
}
.gap-6 {
    gap: 6px;
}
.gap-8 {
    gap: 8px;
}
.gap-16 {
    gap: 16px;
}
.gap-22 {
    gap: 22px;
}
.gap-26 {
    gap: 26px;
}
.gap-28 {
    gap: 28px;
}
.gap-32 {
    gap: 32px;
}
.gap-42 {
    gap: 42px;
}
.gap-64 {
    gap: 64px;
}
.gap-77 {
    gap: 77px;
}
.gap-120 {
    gap: 120px;
}
.row-gap-12 {
    row-gap: 12px;
}

.ps-relative {
    position: relative;
}

.resize-none {
    resize: none;
}

/* checkboxでチェックが入っているときに表示 */
.switch-display {
    display: none;
}
.switch-display + * {
    display: none;
}
.switch-display:checked + * {
    display: flex;
}

/* 条件の追加ボタンの開閉制御 */
.switch-expand-conditions + .row {
    display: flex; /* 常に表示 */
}
.switch-expand-conditions ~ .card-extended-filter {
    display: none; /* デフォルトで非表示 */
}
.switch-expand-conditions:checked ~ .card-extended-filter {
    display: flex; /* チェック時に表示 */
}

/* 開閉アイコン（条件の追加ボタン） */
.icon-expand-arrow {
    display: inline-block;
    background-image: url(/img/icon-arrow_down.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% auto;
    width: 14px;
    height: 8px;
    transition: transform 0.2s ease-in-out;
}
.switch-expand-conditions:checked ~ .row .button-append .icon-expand-arrow {
    transform: rotate(180deg); /* チェック時に上向きに回転 */
}

/* メモ更新フラッシュメッセージ */
.message_dialog {
    position: absolute;
    top: 34px;
    left: 12px;
    display: block;
}

.fade_out {
  animation: fadeOut ease .3s;
  -moz-animation: fadeOut ease .3s;
  -ms-animation: fadeOut ease .3s;
  -o-animation: fadeOut ease .3s;
  -webkit-animation: fadeOut ease .3s;
}

@keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; display: none;}
}

@-moz-keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; display: none;}
}

@-ms-keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; display: none;}
}

@-o-keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; display: none;}
}

@-webkit-keyframes fadeOut {
  0% { opacity: 1; }
  100% { opacity: 0; display: none;}
}.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.4);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;

    .modal {
        border-radius: var(--Num-radius-base, 8px);
        border: 1px solid var(--Border-border-default, #DCE0E5);
        background: var(--Background-bg-base, #FFF);
        box-shadow: 0 1px 2px 0 rgba(128, 128, 128, 0.12);
        min-width: 320px;
        max-width: 550px;
        padding: 33px 45px;
        position: relative;

        &.w-640 {
            max-width: 640px;
        }

        .modal-close {
            position: absolute;
            top: 12px;
            right: 12px;
            border: none;
            cursor: pointer;
            display: flex;
            width: 20px;
            height: 20px;
            padding: 4.167px 1.666px 4.167px 1.667px;
        }

        .modal-title {
            color: var(--Texts-text-base, #14181F);
            font-family: "Noto Sans JP";
            font-size: 24px;
            font-style: normal;
            font-weight: 700;
            line-height: normal;
            letter-spacing: -0.12px;
        }

        /* メッセージ部分 */
        .modal-body {
            color: var(--Texts-text-base, #14181F);
            font-family: "Noto Sans JP";
            font-size: 18px;
            font-style: normal;
            font-weight: 400;
            line-height: 140%;
            margin-top: 24px;
            margin-bottom: 50px;
            min-height: 30px;
            max-height: 65vh;
            overflow-y: true;
            /* 長い取引先名など、スペースを含まない連続文字列でもモーダル内で折り返す */
            overflow-wrap: anywhere;

            &.secondary {
                color: var(--Texts-text-secondary, #525E6F);
            }
        }

        /* ボタン コンテナ*/
        .modal-actions {
            text-align: right;

            .modal-button {
                display: inline-block;
                box-sizing: border-box;
                width: 152px;
                padding: 8px;
                border: none;
                border-radius: var(--Num-radius-base, 8px);
                cursor: pointer;
                margin-left: 16px;

                color: var(--Texts-text-white, #FFF);
                background: var(--Primary-Colour01, #1F4F9A);
                text-align: center;

                /* Typography/text-base-500 */
                font-family: "Noto Sans JP";
                font-size: 15px;
                font-style: normal;
                font-weight: 500;
                line-height: 140%; /* 21px */
                box-shadow: 0 7px 12px 0 rgba(255, 255, 255, 0.08) inset, 0 -2px 2px 0 rgba(48, 48, 48, 0.10) inset;

                /* 赤色のボタン  */
                &.danger {
                    border: 1px solid var(--Background-bg-danger-hover, #B30A31);
                    background: var(--Styles-Danger-500, #DF0C3D);

                    &:hover {
                        background: var(--Background-bg-danger-hover, #B30A31);
                    }
                }

                /* キャンセル用（白背景黒字） */
                &.cancel {
                    border: 1px solid var(--Border-border-default, #DCE0E5);
                    background: var(--Background-bg-base, #FFF);
                    color: var(--Texts-text-base, #14181F);

                    &:hover {
                        background: var(--Background-bg-secondary, #F6F7F9);
                    }
                }
            }
        }
    }

    /* モーダル拡張CSS: 一括検索用 */
    .modal-bulksearch {
        min-width: 640px;
        min-height: 272px;
        padding: 84px 0;

        .modal-title {
            text-align: center;
        }

        .modal-body {
            margin: 48px 0 37px;

            color: var(--Texts-text-base, #14181F);

            /* Typography/text-long-paragraph */
            font-family: Inter;
            font-size: 16px;
            font-style: normal;
            font-weight: 400;
            line-height: 24px; /* 150% */
        }
        .modal-actions {
            text-align: center;

            .modal-button {
                width: 280px;
                height: 40px;
                margin-left: 12px;
            }
            .modal-button:nth-child(1) {
                margin-left: 0;
            }
        }
    }

    /* モーダル拡張CSS: G-Search記事閲覧 */
    .modal-gsearch {
        .modal-body {
            margin-top: 42px;
            margin-bottom: 12px;

            p {
                color: var(--Texts-text-base, #14181F);
                /* Body2 */
                font-family: "Noto Sans JP";
                font-size: 14px;
                font-style: normal;
                font-weight: 400;
                line-height: 145%; /* 20.3px */
            }
        }
    }
}

.modal-overlay.partner-corporate-number-search-modal {
    padding: 24px;
}

.modal-overlay.partner-corporate-number-search-modal .modal {
    width: min(1180px, calc(100vw - 48px));
    max-width: none;
    min-height: min(640px, calc(100vh - 48px));
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.modal-overlay.partner-corporate-number-search-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    margin-top: 20px;
    margin-bottom: 24px;
    max-height: none;
    overflow: hidden;
    overscroll-behavior: contain;
}

.modal-overlay.partner-corporate-number-search-modal .partner-corporate-number-search-results {
    min-block-size: 320px;
    scroll-padding-top: 56px;
}

.modal-overlay.partner-corporate-number-search-modal .partner-corporate-number-search-results_table thead th {
    position: static;
}

@media (max-width: 1024px) {
    .modal-overlay.partner-corporate-number-search-modal {
        padding: 16px;
    }

    .modal-overlay.partner-corporate-number-search-modal .modal {
        width: calc(100vw - 32px);
        min-height: min(560px, calc(100vh - 32px));
        max-height: calc(100vh - 32px);
    }
}
/* 拒否リスト一括登録拡張 */
.modal.bulk-reject {
    .modal-body {
        margin: 48px 0 37px;
        font-size: 16px;
        font-style: normal;
        font-weight: 400;
        line-height: 24px;
        .icon-obj_text.icon-note_edit {
            width: 19px;
            height: 20px;
        }
        .icon-obj_text.icon-folder {
            margin-left: 2px;
        }
    }

    .modal-actions.text-center {
        text-align: center;
    }

}

/* 一括操作の確認ダイアログ共通レイアウト（通知先登録 / 権限設定で共用）
   3層構成: 見出し(.modal-title) → 注意書き(.confirm-summary / .confirm-summary-card)
            → 中身(.confirm-preview-table) → 補足(.confirm-remainder) */
.confirm-summary-card {
    margin: 0 0 16px;
    padding: 12px 16px;
    border: 1px dashed var(--Border-border-default, #DCE0E5);
    border-radius: var(--Num-radius-base, 8px);
    background: #F8FBFF;
    color: var(--Texts-text-base, #14181F);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.6;
}

.confirm-summary-card:empty {
    display: none;
}

.confirm-preview-table {
    width: 100%;
    /* fixed レイアウトで列幅を固定し、長文でも列内に収めてモーダル幅を押し広げない */
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 13px;
    margin: 0;
}

/* 氏名:メール = 4:6 で列幅を確定（長文は各列内で折り返す） */
.confirm-preview-table th:first-child,
.confirm-preview-table td:first-child {
    width: 40%;
}

.confirm-preview-table th,
.confirm-preview-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--Border-border-default, #DCE0E5);
    text-align: left;
    vertical-align: middle;
    /* スペースを含まない長い氏名・メールアドレスでも列幅の内側で折り返す */
    word-break: break-all;
    overflow-wrap: anywhere;
}

.confirm-preview-table th {
    background: #F8FAFC;
    color: var(--Texts-text-secondary, #525E6F);
    font-size: 12px;
    font-weight: 700;
}

.confirm-remainder {
    margin: 8px 0 0;
    color: var(--Texts-text-secondary, #525E6F);
    font-size: 12px;
}

.confirm-remainder:empty {
    display: none;
}

/* ツールチップ */
.tooltip {
    display: none;
    position: absolute;
    flex-shrink: 0;
    padding: 14px;
    min-width: 200px;

    background: var(--Background-bg-raised, #FFF);
    border: 1px solid var(--Border-border-default, #DCE0E5);
    border-radius: 8px;

    font-weight: normal !important;
    z-index: 1010;
    
    /* 矢印部分 */
    &.tooltip-top::before,
    &.tooltip-top::after {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }
    &.tooltip-top::before {
        top: -9px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 0 8px 8px 8px; /* 上の辺を0px、右、下、左の辺を8pxに設定 */
        border-color: transparent transparent var(--Border-border-default, #DCE0E5) transparent; /* 下側の色をボーダー色に設定 */
        transform: translateX(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-top::after {
        top: -8px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 0 8px 8px 8px; /* 上の辺を0px、右、下、左の辺を8pxに設定 */
        border-color: transparent transparent var(--Background-bg-raised, #FFF) transparent; /* 下側の色を背景色に設定 */
        transform: translateX(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-bottom::before,
    &.tooltip-bottom::after {
        content: '';
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }
    &.tooltip-bottom::before {
        bottom: -9px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 8px 8px 0 8px; /* 上の辺を8px、右、左の辺を8px、下の辺を0pxに設定 */
        border-color: var(--Border-border-default, #DCE0E5) transparent transparent transparent; /* 上側の色をボーダー色に設定 */
        transform: translateX(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-bottom::after {
        bottom: -8px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 8px 8px 0 8px; /* 上の辺を8px、右、左の辺を8px、下の辺を0pxに設定 */
        border-color: var(--Background-bg-raised, #FFF) transparent transparent transparent; /* 上側の色を背景色に設定 */
        transform: translateX(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-right::before,
    &.tooltip-right::after {
        content: '';
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }
    &.tooltip-right::before {
        right: -9px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 8px 0 8px 8px; /* 上、下、左の辺を8px、右の辺を0pxに設定 */
        border-color: transparent transparent transparent var(--Border-border-default, #DCE0E5); /* 左側の色をボーダー色に設定 */
        transform: translateY(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-right::after {
        right: -8px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 8px 0 8px 8px; /* 上、下、左の辺を8px、右の辺を0pxに設定 */
        border-color: transparent transparent transparent var(--Background-bg-raised, #FFF); /* 左側の色を背景色に設定 */
        transform: translateY(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-left::before,
    &.tooltip-left::after {
        content: '';
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
    }
    &.tooltip-left::before {
        left: -9px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 8px 8px 8px 0; /* 上、右、下の辺を8px、左の辺を0pxに設定 */
        border-color: transparent var(--Border-border-default, #DCE0E5) transparent transparent; /* 右側の色をボーダー色に設定 */
        transform: translateY(-50%); /* 矢印を中央に配置 */
    }
    &.tooltip-left::after {
        left: -8px; /* 矢印の位置を調整 */
        border-style: solid;
        border-width: 8px 8px 8px 0; /* 上、右、下の辺を8px、左の辺を0pxに設定 */
        border-color: transparent var(--Background-bg-raised, #FFF) transparent transparent; /* 右側の色を背景色に設定 */
        transform: translateY(-50%); /* 矢印を中央に配置 */
    }

    a {
        text-decoration: none;
    }

}