:root {
    font-family: Inter, Pretendard, "Noto Sans KR", "Malgun Gothic", system-ui, sans-serif;
    color: #263244; background: #f5f7fb; font-size: 14px;
    --navy:#173b70; --navy-2:#234f8f; --line:#dfe5ee; --muted:#6d7888; --panel:#fff;
    --shadow:0 10px 30px rgba(23,59,112,.07); --radius:12px;
}
* { box-sizing:border-box; }
body { margin:0; background:#f5f7fb; color:#263244; }
a { color:inherit; text-decoration:none; } button,input,select { font:inherit; } button { cursor:pointer; }
.top-header { min-height:68px; background:rgba(255,255,255,.97); border-bottom:1px solid #dce3ed; display:flex; align-items:center; gap:30px; padding:0 28px; position:sticky; top:0; z-index:20; box-shadow:0 3px 16px rgba(23,59,112,.05); }
.top-brand { display:flex; align-items:center; gap:10px; font-weight:800; color:var(--navy); white-space:nowrap; letter-spacing:.01em; }
.brand-mark { width:54px;height:54px;border-radius:50%;background:#f0c500;color:var(--navy);display:grid;place-items:center;font-size:30px;font-weight:900;margin:0 auto; box-shadow:inset 0 0 0 3px var(--navy); }
.brand-mark.small { width:36px;height:36px;font-size:19px;margin:0; }
.top-nav { display:flex; align-items:center; gap:26px; flex:1; font-weight:650; }
.top-nav a { padding:24px 0 20px; border-bottom:3px solid transparent; } .top-nav a:hover { color:var(--navy); border-bottom-color:#9eb8da; }
.disabled-nav { color:#98a1ad; }
.user-area { display:flex;align-items:center;gap:14px;white-space:nowrap; color:#4d5a6d; }
.link-button { border:0;background:transparent;color:var(--navy);padding:6px 0;font-weight:700; }
.app-shell { display:grid;grid-template-columns:210px minmax(0,1fr);min-height:calc(100vh - 68px); }
.sidebar { background:#fff;border-right:1px solid var(--line);padding:18px 14px; }
.sidebar .date-label { font-size:12px;margin:0 4px 18px;color:var(--muted); }
.sidebar h2 { margin:0 -14px 9px;padding:12px 17px;background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;font-size:14px;letter-spacing:.01em; }
.sidebar a { display:block;padding:11px 12px;border-radius:8px;margin:4px 0;color:#455266; }
.sidebar a:hover { background:#f0f4fa;color:var(--navy); } .sidebar a.active { font-weight:800;color:var(--navy);background:#eaf1fb;box-shadow:inset 4px 0 0 var(--navy); }
.content { padding:14px 22px 32px;max-width:1520px;width:100%;margin:0 auto; } .content.wide { max-width:none; }
.page-title { margin-bottom:8px;display:flex;align-items:center;min-height:42px; } .page-title h1 { margin:0;font-size:22px;color:#1f2c3e;letter-spacing:-.03em; } .row-between { justify-content:space-between;gap:14px; }
.eyebrow { margin:0 0 3px;font-size:11px;font-weight:750;color:#71809a;letter-spacing:.02em; }
.panel,.search-panel,.search-card,.detail-card { background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow); }
.panel,.search-panel { padding:18px;margin-bottom:18px; } .panel h2 { margin:0 0 14px;font-size:16px;color:var(--navy); }
.search-card { margin-bottom:12px;overflow:hidden; } .search-details summary { display:none; } .search-body { padding:11px 16px 2px; }
.selector-grid { display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:10px;padding-bottom:10px;border-bottom:1px solid #edf0f5; }
.selector-field { display:grid;grid-template-columns:54px 1fr;align-items:center;gap:6px;font-weight:700; } .input-action { display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px;min-width:0; }
.selector-field input,.selector-field select,.filter-row input,.filter-row select,.lookup-search input { min-width:0;height:34px;border:1px solid #cbd3df;border-radius:7px;background:#fff;padding:5px 9px;color:#2c394b; }
.selector-field input[readonly] { background:#f8fafc; }
.lookup-button,.selector-clear { height:34px;border:1px solid #c7cfda;border-radius:7px;padding:0 9px;font-weight:700;white-space:nowrap; } .lookup-button { background:#e9edf3;color:#34435a; } .selector-clear { background:#fff;color:#69778a; }
.lookup-button:hover { background:#dce6f3;color:var(--navy); } .selector-clear:hover { background:#f0f5fb;color:var(--navy);border-color:#aebfd4; }
.filter-row { padding:9px 0;border-bottom:1px solid #edf0f5; } .filter-row.split { display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:center; }
.date-filter { display:flex;align-items:center;gap:8px; } .date-filter select { width:90px; } .date-filter input { width:150px; }
.chip-group { border:0;margin:0;padding:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0; } .chip-group legend { float:left;margin:0 10px 0 0;padding:0;font-weight:800;color:#3c4a60; }
.radio-chip input { position:absolute;opacity:0;pointer-events:none; } .radio-chip span { display:inline-flex;align-items:center;min-height:28px;padding:3px 10px;border:1px solid #d4dae3;border-radius:999px;background:#fff;color:#536074;cursor:pointer; }
.radio-chip input:checked + span { background:#e8f0fb;color:var(--navy);border-color:#87a9d6;font-weight:800;box-shadow:0 0 0 2px rgba(35,79,143,.06); }
.search-text-row { display:flex;align-items:center;gap:9px;border-bottom:0; } .search-text-row>label:first-child { font-weight:800;margin-right:4px; } .search-text-row select { width:160px; } .search-text-row>input { width:min(420px,40vw);text-transform:uppercase; } .page-size { margin-left:auto;display:flex;align-items:center;gap:6px;font-weight:700; } .page-size select { width:82px; }
.button-row { display:flex;gap:8px;margin:0; } .button-row.center { justify-content:center; } .search-actions { display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:8px 16px 10px;border-top:1px solid #edf0f5;background:#fbfcfe; } .search-actions .excel-button { justify-self:end; }
.primary-button,.secondary-button,.excel-button { min-width:104px;padding:7px 16px;border-radius:8px;text-align:center;display:inline-flex;align-items:center;justify-content:center;font-weight:750; }
.primary-button { color:#fff;background:linear-gradient(135deg,var(--navy),#295895);border:1px solid var(--navy);box-shadow:0 4px 12px rgba(23,59,112,.18); }
.secondary-button { color:#445166;background:#eef1f5;border:1px solid #d1d7df; } .primary-button.compact { min-width:78px;padding:8px 14px; }
.toolbar { display:flex;justify-content:flex-end;padding:0 18px 10px; } .excel-button { min-width:80px;background:#f1f4f7;border:1px solid #c9d1dc;color:#304258; }
.summary-matrix { display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:10px;margin:10px 0; }
.summary-matrix article { background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);overflow:hidden; } .summary-matrix h3 { margin:0;padding:7px 12px;background:#eef3f9;color:#35445a;font-size:13px; }
.summary-matrix article.approved h3 { background:#e8f5ee;color:#267145; } .summary-matrix article.canceled h3 { background:#fff1e6;color:#a45716; } .summary-matrix article.rejected h3 { background:#fbecef;color:#9a3348; }
.summary-matrix dl { display:grid;grid-template-columns:auto 1fr;margin:0;padding:7px 12px;gap:4px 12px; } .summary-matrix dt { color:#7b8696; } .summary-matrix dd { margin:0;text-align:right;font-weight:800;font-variant-numeric:tabular-nums; }
.result-head { display:flex;justify-content:space-between;align-items:center;margin:10px 2px 6px;color:#6b7788; } .result-head strong { color:var(--navy);font-size:17px; }
.table-wrap { width:100%;overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow); } .transaction-table-wrap { max-height:none; }
.data-table { border-collapse:separate;border-spacing:0;width:100%;min-width:1100px;font-size:13px; }
.data-table th { position:relative;background:#f0f3f7;color:#37465a;border-right:1px solid #d7dde5;border-bottom:1px solid #d4dae2;padding:9px 8px;white-space:nowrap;text-align:center;font-weight:800; }
.data-table td { border-right:1px solid #e2e6ec;border-bottom:1px solid #e2e6ec;padding:8px 8px;white-space:nowrap;text-align:center;background:#fff; }
.data-table th:last-child,.data-table td:last-child { border-right:0; } .data-table .num { text-align:right;font-variant-numeric:tabular-nums; } .data-table .mono,.mono { font-family:"SFMono-Regular",Consolas,monospace;font-size:.95em; }
.legacy-transaction-table { min-width:1750px;--transaction-header-row-height:34px; } .legacy-transaction-table thead th { padding:6px 8px;line-height:20px; } .legacy-transaction-table thead tr:first-child th { position:sticky;top:0;z-index:5;height:var(--transaction-header-row-height);background:#f0f3f7; } .legacy-transaction-table thead tr:nth-child(2) th { position:sticky;top:var(--transaction-header-row-height);z-index:4;height:var(--transaction-header-row-height);background:#f0f3f7;box-shadow:0 1px 0 #cfd7e2; } .legacy-transaction-table thead tr:first-child th[rowspan="2"] { z-index:6; } .legacy-transaction-table tbody tr.first-line td { border-bottom:0; } .legacy-transaction-table tbody tr.first-line td[rowspan="2"] { border-bottom:1px solid #e2e6ec; } .legacy-transaction-table tbody tr.second-line td { background:#fbfcfe; }
.clickable-row { cursor:pointer; } .clickable-row:hover td { background:#eef5ff!important; } .ellipsis { max-width:240px;overflow:hidden;text-overflow:ellipsis; }
.status-badge { display:inline-flex;padding:3px 9px;border-radius:999px;background:#eef1f5;color:#586678;font-weight:800; } .status-badge.ok { background:#e6f5ec;color:#267148; } .status-badge.cancel { background:#fff0e5;color:#a15113; } .status-badge.reject { background:#fbe9ed;color:#9b3048; }
.empty { text-align:center!important;padding:28px!important;color:#7a8595; }
.pagination { display:flex;justify-content:center;align-items:center;gap:4px;padding:14px 8px;flex-wrap:wrap; }
.pagination button { border:1px solid #ccd4df;background:#fff;border-radius:7px;min-width:34px;height:34px;padding:5px 8px;color:var(--navy);font-weight:750;line-height:1;cursor:pointer; }
.pagination .page-nav { min-width:58px;padding:5px 11px; }
.pagination .page-edge { min-width:64px; }
.pagination .page-number:hover:not(:disabled), .pagination .page-nav:hover:not(:disabled) { background:#f2f6fb;border-color:#9eb0c7; }
.pagination .page-number.active, .pagination .page-number.active:disabled { background:var(--navy);border-color:var(--navy);color:#fff;font-weight:850;opacity:1; }
.pagination button:disabled:not(.active) { color:#b1b8c2;background:#f5f6f8;cursor:default; }
.pagination-ellipsis { min-width:22px;text-align:center;color:#7b8593;font-weight:800;letter-spacing:.08em; }
.pagination-total { margin-left:8px;padding-left:10px;border-left:1px solid #d7dde6;color:#667487;font-size:12px;font-weight:750;white-space:nowrap;font-variant-numeric:tabular-nums; }
@media (max-width:650px) { .pagination { gap:3px;padding:12px 4px; }.pagination button { min-width:31px;height:32px;padding:4px 6px;font-size:12px; }.pagination .page-nav { min-width:48px; }.pagination .page-edge { min-width:52px; }.pagination-ellipsis { min-width:16px; }.pagination-total { flex-basis:100%;margin:4px 0 0;padding:0;border-left:0;text-align:center; } }
.lookup-dialog { width:min(720px,calc(100vw - 28px));border:0;border-radius:14px;padding:0;box-shadow:0 24px 70px rgba(15,31,55,.28); } .lookup-dialog::backdrop { background:rgba(20,32,49,.42);backdrop-filter:blur(2px); }
.dialog-card { padding:20px; } .dialog-head { display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #e5e9ef;padding-bottom:12px; } .dialog-head h2 { margin:0;font-size:20px; } .icon-button { border:0;background:#eef1f5;border-radius:50%;width:34px;height:34px;font-size:22px;color:#647084; }
.lookup-search { display:grid;grid-template-columns:1fr auto;gap:8px;margin:16px 0; } .lookup-results { max-height:390px;overflow:auto; } .compact-table { min-width:0; } .lookup-row { cursor:pointer; } .lookup-row:hover td { background:#eef5ff; }
.detail-window { background:#f3f6fa; } .detail-page { width:min(1240px,calc(100% - 28px));margin:0 auto;padding:22px 0 36px; } .detail-card { padding:18px;margin-bottom:15px; } .detail-card h2 { margin:0 0 13px;font-size:16px;color:var(--navy); } .detail-card-title { display:flex;justify-content:space-between;align-items:center;margin-bottom:12px; }
.detail-grid { display:grid;grid-template-columns:150px 1fr 150px 1fr;margin:0;border-top:1px solid #dfe4eb;border-left:1px solid #dfe4eb; } .detail-grid dt,.detail-grid dd { margin:0;padding:10px 12px;border-right:1px solid #dfe4eb;border-bottom:1px solid #dfe4eb; } .detail-grid dt { background:#f4f6f9;font-weight:800;color:#526074; } .detail-grid dd { background:#fff;min-width:0;overflow-wrap:anywhere; } .detail-grid .span-3 { grid-column:span 3; }
.goods-table { min-width:980px; } .goods-table tfoot th,.goods-table tfoot td { background:#f6f8fb;font-weight:800; }
.summary-grid,.aggregate-grid { display:grid;gap:12px;margin-bottom:18px; } .summary-grid { grid-template-columns:repeat(3,1fr); } .aggregate-grid { grid-template-columns:repeat(4,minmax(150px,1fr)); } .summary-grid article,.aggregate-grid div { background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;box-shadow:var(--shadow); } .summary-grid span,.aggregate-grid span { display:block;color:#6e7989;margin-bottom:6px; } .summary-grid strong,.aggregate-grid strong { color:var(--navy);font-size:20px; }
.alert { padding:11px 14px;margin-bottom:15px;border:1px solid;border-radius:8px;background:#fff; } .alert-warn { border-color:#ddbc49;background:#fff9df; } .alert-error { border-color:#d77474;background:#fff0f0;color:#8b1d1d; } .alert-success { border-color:#65a973;background:#effaf1;color:#22692c; }
.muted { color:#7b8593; } .login-page { min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#edf2f9,#f8fafc); } .login-card { width:min(420px,calc(100vw - 32px));background:#fff;padding:34px;border:1px solid #e0e6ee;border-radius:16px;box-shadow:0 20px 55px rgba(23,59,112,.13);text-align:center; } .login-card h1 { color:var(--navy);margin:14px 0 4px; } .login-form { display:grid;gap:14px;margin-top:25px;text-align:left; } .login-form label { display:grid;gap:6px;font-weight:750; } .login-form input { height:42px;border:1px solid #c6cfdb;border-radius:8px;padding:7px 10px; }
.form-grid { display:grid;gap:12px 18px; } .form-grid.four { grid-template-columns:repeat(4,minmax(180px,1fr)); } .form-grid label { display:grid;grid-template-columns:95px 1fr;align-items:center;gap:8px;font-weight:650; } .form-grid input,.form-grid select { width:100%;min-width:0;height:36px;padding:5px 8px;border:1px solid #c3ccd8;border-radius:7px;background:#fff; }
@media (max-width:1200px) { .top-nav { gap:14px;font-size:13px; } .selector-grid { grid-template-columns:repeat(2,minmax(240px,1fr)); } .filter-row.split { grid-template-columns:1fr;gap:12px; } .summary-matrix { grid-template-columns:repeat(2,1fr); } }
@media (max-width:900px) { .top-header { padding:0 16px; }.top-nav { display:none; }.app-shell { grid-template-columns:1fr; }.sidebar { display:flex;align-items:center;gap:6px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px 12px; }.sidebar .date-label,.sidebar h2 { display:none; }.sidebar a { flex:0 0 auto;margin:0;padding:8px 12px; }.content { padding:12px 14px 24px; }.transaction-table-wrap { max-height:none; } }
@media (max-width:650px) { .top-header { min-height:58px; }.user-area>span { display:none; }.selector-grid { grid-template-columns:1fr; }.search-details summary { display:block;padding:10px 12px;font-weight:800;color:var(--navy);cursor:pointer;background:#f7f9fc; }.search-body { padding:10px; }.date-filter { display:grid;grid-template-columns:80px 1fr; }.date-filter span { display:none; }.date-filter input,.date-filter select { width:100%; }.search-text-row { display:grid;grid-template-columns:90px 1fr; }.search-text-row>input { width:100%;grid-column:2; }.page-size { grid-column:2;margin-left:0;justify-content:flex-start; }.search-actions { grid-template-columns:1fr auto; }.search-actions-spacer { display:none; }.search-actions .button-row { justify-self:start; }.search-actions .excel-button { justify-self:end; }.summary-matrix { grid-template-columns:1fr; }.detail-page { width:calc(100% - 18px);padding-top:12px; }.detail-grid { grid-template-columns:105px 1fr; }.detail-grid .span-3 { grid-column:auto; }.page-title h1 { font-size:20px; }.result-head span { display:none; } }

/* B2-2A: 환급명세및청구관리 - 많은 컬럼을 숨기지 않고 노트북 공간효율을 우선한다. */
.sidebar-section-title { margin:14px 4px 5px;padding:7px 8px 5px;color:#738096;font-size:11px;font-weight:850;letter-spacing:.02em;border-bottom:1px solid #e7ebf1; }
.sidebar-disabled { display:block;padding:9px 12px;margin:3px 0;color:#a0a8b4;font-size:13px;cursor:not-allowed; }
.refund-search-card .search-body { padding-bottom:5px; }
.refund-period-row { display:flex;align-items:center;gap:14px;padding:9px 0 3px;font-weight:750; }
.refund-period-row>label { min-width:92px;color:#4c5a6d; }
.refund-period-row .date-filter { display:flex;align-items:center;gap:7px; }
.refund-period-row input { width:150px;height:34px;border:1px solid #cbd3df;border-radius:7px;padding:5px 9px;background:#fff; }
.issue-placeholder { display:flex;gap:6px;justify-self:start; }
.disabled-action:disabled { opacity:.55;cursor:not-allowed;background:#f3f4f6;color:#7f8997; }
.refund-table-wrap { max-height:none; }
.refund-merchant-table { min-width:1500px; }
.refund-performance-table { min-width:1750px; }
.refund-merchant-table thead th,.refund-performance-table thead th,.refund-detail-table thead th { position:sticky;top:0;z-index:3; }
.refund-merchant-table thead tr:first-child th { height:34px; }
.refund-merchant-table thead tr:nth-child(2) th { top:34px;z-index:2;box-shadow:0 1px 0 #cfd7e2; }
.refund-clickable-row { cursor:pointer; }
.refund-clickable-row:hover td { background:#eef5ff; }
.text-left { text-align:left!important; }
.strong { font-weight:850; }
.amount-positive { color:#245da8; }
.amount-negative { color:#b43a4b; }
.refund-detail-page { width:min(1340px,calc(100% - 24px)); }
.refund-detail-summary { min-width:980px; }
.refund-detail-table { min-width:1250px; }
.refund-detail-table-wrap { max-height:none; }
.canceled-refund-row td { color:#a93949; background:#fff9f9; }
.refund-performance-actions { grid-template-columns:minmax(240px,1fr) auto minmax(100px,1fr); }
@media (max-width:1200px) {
  .refund-table-wrap { max-height:none; }
  .refund-performance-actions { grid-template-columns:1fr auto; }
  .refund-performance-actions .excel-button { grid-column:2; }
  .issue-placeholder { flex-wrap:wrap; }
}
@media (max-width:650px) {
  .refund-period-row { display:grid;grid-template-columns:1fr;gap:6px; }
  .refund-period-row .date-filter { display:grid;grid-template-columns:1fr 18px 1fr; }
  .refund-period-row input { width:100%; }
  .issue-placeholder { display:none; }
  .refund-table-wrap,.refund-detail-table-wrap { max-height:none; }
}

/* B2-2B 가맹점별 환급현황: 레거시 6개 독립 목록을 현대적인 단일 세로 흐름으로 정리한다. */
.month-filter { display:flex;gap:6px;align-items:center; }
.month-filter select { min-width:92px; }
.status-search-actions { grid-template-columns:1fr auto 1fr; }
.refund-status-group { margin-top:14px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow); }
.status-group-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid #e7ebf0; }
.status-group-heading h2 { margin:2px 0 0;font-size:17px;color:var(--navy); }
.status-group-heading > span { color:#6d7785;font-size:12px;font-weight:700; }
.status-kicker { color:#6c7785;font-size:10px;font-weight:800;letter-spacing:.06em; }
.refund-status-subsection { margin-top:13px; }
.refund-status-subsection h3, .refund-status-summary h3 { margin:0 0 7px;font-size:13px;color:#26374d; }
.compact-result-head { margin:0 0 5px;padding:0;min-height:auto; }
.refund-status-table-wrap { max-height:none;overflow-x:auto;overflow-y:visible; }
.refund-status-table { min-width:1120px; }
.refund-status-table th { white-space:nowrap; }
.refund-status-summary { margin-top:14px;padding-top:12px;border-top:1px dashed #d8dee7; }
.status-summary-table { min-width:980px; }
.all-after-summary { margin-bottom:20px;background:#fafcfe; }
@media (max-width:900px) {
  .status-group-heading { align-items:flex-start;flex-direction:column;gap:4px; }
  .status-search-actions { grid-template-columns:1fr; }
  .month-filter { width:100%; }
  .month-filter select { flex:1; }
}

/* B2-2C1 입금조회/정산 read-model: 입금 mutation 비활성 상태의 청구기준 검증 UI */
.settlement-stage-alert { display:flex;gap:10px;align-items:flex-start; }
.settlement-stage-alert strong { flex:0 0 auto;color:#755900; }
.settlement-selector-grid .selector-field>select { width:100%;height:34px;border:1px solid #cbd3df;border-radius:7px;padding:5px 8px;background:#fff; }
.settlement-period-row { display:flex;align-items:center;gap:14px;padding:9px 0 3px; }
.settlement-period-row>label { min-width:92px;font-weight:750;color:#4c5a6d; }
.month-range { display:flex;align-items:center;gap:7px; }
.month-range input { height:34px;border:1px solid #cbd3df;border-radius:7px;padding:5px 9px;background:#fff; }
.settlement-service-fixed { display:flex;align-items:center;gap:7px;margin-left:20px;color:#58667a; }
.settlement-service-fixed>span { font-weight:750; }
.settlement-service-fixed>strong { color:var(--navy); }
.settlement-service-fixed>small { color:#8a94a2; }
.settlement-summary-grid { display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:9px;margin:12px 0; }
.settlement-summary-grid article { background:#fff;border:1px solid var(--line);border-radius:9px;padding:11px 12px;box-shadow:var(--shadow); }
.settlement-summary-grid span { display:block;color:#6e7989;font-size:11px;margin-bottom:4px; }
.settlement-summary-grid strong { display:block;color:var(--navy);font-size:17px;text-align:right; }
.settlement-result-card { padding:13px;margin-top:0; }
.settlement-result-note { margin-left:10px;color:#7d8795;font-size:11px;font-weight:500; }
.settlement-table-wrap { max-height:none;overflow-x:auto; }
.settlement-table { min-width:1420px; }
.settlement-table th { white-space:nowrap; }
.settlement-review-badge { display:inline-block;padding:3px 7px;border:1px solid #d6aa45;border-radius:10px;background:#fff8df;color:#775600;font-size:10px;font-weight:800;white-space:nowrap; }
.settlement-disabled-panel { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:14px; }
.settlement-disabled-panel h2 { margin:2px 0 5px;font-size:15px;color:var(--navy); }
.settlement-disabled-panel p { margin:0;color:#707b8b; }
.settlement-disabled-actions { display:flex;gap:6px;flex:0 0 auto; }
@media (max-width:1200px) {
  .settlement-summary-grid { grid-template-columns:repeat(3,1fr); }
  .settlement-service-fixed { margin-left:0; }
}
@media (max-width:900px) {
  .settlement-period-row { align-items:flex-start;flex-direction:column;gap:7px; }
  .settlement-disabled-panel { align-items:flex-start;flex-direction:column; }
}
@media (max-width:650px) {
  .settlement-summary-grid { grid-template-columns:repeat(2,1fr); }
  .month-range { width:100%;display:grid;grid-template-columns:1fr 18px 1fr; }
  .month-range input { width:100%; }
  .settlement-service-fixed { flex-wrap:wrap; }
  .settlement-stage-alert { flex-direction:column;gap:4px; }
}
.ledger-state-row { display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 7px;color:#667285;font-size:11px; }
.ledger-state-row strong { color:var(--navy); }
.ledger-ready, .ledger-pending { display:inline-block;padding:3px 8px;border-radius:10px;font-weight:800; }
.ledger-ready { background:#eaf6ee;border:1px solid #a9d8b7;color:#22643a; }
.ledger-pending { background:#fff5df;border:1px solid #e2c678;color:#775800; }

.ledger-amount-grid { display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:7px;margin:7px 0 8px; }
.ledger-amount-grid span { border:1px solid #dbe2ec;background:#f8fafc;border-radius:7px;padding:6px 8px;color:#657184;font-size:11px; }
.ledger-amount-grid strong { float:right;color:var(--navy);font-size:12px; }
@media (max-width:900px) { .ledger-amount-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px) { .ledger-amount-grid { grid-template-columns:1fr; } }

/* B2-2C4 OCI TEST-only settlement mutation UI */
.alert-test-active { background:#eef7ff;border-color:#9bc7ee;color:#24547c; }
.alert-success { background:#edf8f0;border:1px solid #acd9b7;color:#285f3a; }
.alert-error { background:#fff0f0;border:1px solid #e4b2b2;color:#8a3030; }
.stable-error-code { opacity:.72;margin-left:4px; }
.table-action-link { display:inline-block;padding:4px 7px;border:1px solid #9fb5cc;border-radius:6px;text-decoration:none;color:var(--navy);background:#f8fbff;white-space:nowrap;font-weight:700;font-size:10px; }
.settlement-mutation-panel { margin-top:12px;padding:14px; }
.settlement-mutation-head { display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:9px; }
.settlement-mutation-head h2 { margin:2px 0 0;font-size:16px;color:var(--navy); }
.settlement-mutation-head h2 small { margin-left:8px;color:#788496;font-size:11px;font-weight:650; }
.test-write-badge { display:inline-block;padding:4px 9px;border:1px solid #75b4e4;border-radius:12px;background:#edf7ff;color:#245b86;font-size:10px;font-weight:850;white-space:nowrap; }
.settlement-selected-summary, .claim-status-grid { display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:7px;margin:8px 0; }
.settlement-selected-summary span, .claim-status-grid span { padding:7px 9px;border:1px solid #dce3ec;border-radius:7px;background:#fafbfd;color:#687487;font-size:11px; }
.settlement-selected-summary strong, .claim-status-grid strong { float:right;color:var(--navy); }
.receivable-strong { color:#9a4a20 !important; }
.compact-alert { padding:8px 10px;margin:8px 0; }
.claim-create-box { display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e5e9ef;margin-top:9px;padding-top:11px; }
.claim-create-box strong { color:var(--navy); }
.claim-create-box p { margin:3px 0 0;color:#737f90;font-size:11px; }
.claim-active-box { border-top:1px solid #e5e9ef;margin-top:9px;padding-top:10px; }
.receipt-entry-form { display:grid;grid-template-columns:180px minmax(180px,260px) 1fr;gap:8px;align-items:end;margin:10px 0; }
.receipt-entry-form label span { display:block;font-size:10px;font-weight:750;color:#657184;margin-bottom:3px; }
.receipt-entry-form input { width:100%;height:34px;border:1px solid #cbd3df;border-radius:7px;padding:5px 8px;background:#fff; }
.receipt-entry-actions { display:flex;gap:6px;align-items:center; }
.receipt-history-wrap { max-height:none;overflow-x:auto;margin-top:8px; }
.receipt-history-table { min-width:760px; }
.ledger-void { display:inline-block;padding:3px 8px;border-radius:10px;background:#f3f3f3;border:1px solid #cfcfcf;color:#777;font-size:10px;font-weight:800; }
.danger-outline-button { min-height:28px;border:1px solid #d3a0a0;border-radius:6px;background:#fff7f7;color:#8e3d3d;padding:4px 8px;font-weight:750;font-size:10px;cursor:pointer; }
.danger-outline-button:disabled { opacity:.45;cursor:not-allowed; }
.settlement-select-hint { display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 14px;color:#6a7585; }
.settlement-select-hint strong { color:var(--navy); }
@media (max-width:1000px) {
  .settlement-selected-summary, .claim-status-grid { grid-template-columns:repeat(2,1fr); }
  .receipt-entry-form { grid-template-columns:1fr 1fr; }
  .receipt-entry-actions { grid-column:1 / -1; }
}
@media (max-width:620px) {
  .settlement-selected-summary, .claim-status-grid { grid-template-columns:1fr; }
  .claim-create-box { align-items:flex-start;flex-direction:column; }
  .receipt-entry-form { grid-template-columns:1fr; }
  .receipt-entry-actions { grid-column:auto; }
  .settlement-mutation-head { flex-direction:column; }
  .settlement-select-hint { align-items:flex-start;flex-direction:column; }
}


/* B2-2C5 월별 미수금 roll-forward */
.receivable-formula-alert { display:flex;align-items:center;gap:10px;background:#f3f7fb;border-color:#b9cadb;color:#425a70; }
.receivable-formula-alert strong { color:var(--navy);white-space:nowrap; }
.receivable-selector-grid .selector-field>input,
.receivable-selector-grid .selector-field>select { width:100%;height:34px;border:1px solid #cbd3df;border-radius:7px;padding:5px 8px;background:#fff; }
.receivable-summary-grid { display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));gap:9px;margin:12px 0; }
.receivable-summary-grid article { background:#fff;border:1px solid var(--line);border-radius:9px;padding:11px 12px;box-shadow:var(--shadow); }
.receivable-summary-grid span { display:block;color:#6e7989;font-size:11px;margin-bottom:4px; }
.receivable-summary-grid strong { display:block;color:var(--navy);font-size:17px;text-align:right; }
.receivable-result-card { padding:13px;margin-top:0; }
.receivable-result-note { margin-left:10px;color:#7d8795;font-size:11px;font-weight:500; }
.receivable-table-wrap { max-height:none;overflow-x:auto; }
.receivable-table { min-width:1320px; }
.receivable-table th { white-space:nowrap; }
.receivable-ending { color:#8a4926; }
.reconcile-pass { display:inline-block;padding:3px 7px;border:1px solid #a9d8b7;border-radius:10px;background:#eaf6ee;color:#22643a;font-size:10px;font-weight:850;white-space:nowrap; }
.reconcile-fail { display:inline-block;padding:3px 7px;border:1px solid #dfa8a8;border-radius:10px;background:#fff0f0;color:#8b3434;font-size:10px;font-weight:850;white-space:nowrap; }
.receivable-help-card { margin-top:12px;padding:12px 14px; }
.receivable-help-card strong { color:var(--navy); }
.receivable-help-card p { margin:4px 0 0;color:#6f7b8b;font-size:11px;line-height:1.55; }
@media (max-width:1200px) {
  .receivable-summary-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:650px) {
  .receivable-summary-grid { grid-template-columns:repeat(2,1fr); }
  .receivable-formula-alert { align-items:flex-start;flex-direction:column;gap:4px; }
}

/* 가맹점 청구서 read-only 발행 미리보기 */
.claim-preview-dialog { width:min(620px,calc(100vw - 28px)); }
.claim-preview-note { margin:14px 0 10px;color:#667285;line-height:1.55; }
.claim-preview-selected { display:grid;grid-template-columns:90px 1fr 90px 1fr;gap:7px 10px;align-items:center;padding:10px 12px;border:1px solid #dce3ec;border-radius:8px;background:#f8fafc; }
.claim-preview-selected span { color:#6b7687;font-size:11px;font-weight:750; }
.claim-preview-selected strong { color:var(--navy); }
.claim-preview-date-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0; }
.claim-preview-date-grid label span { display:block;margin-bottom:5px;color:#59677a;font-size:11px;font-weight:750; }
.claim-preview-date-grid input { width:100%;height:36px;border:1px solid #cbd3df;border-radius:7px;padding:5px 8px;background:#fff; }
.dialog-actions { display:flex;justify-content:flex-end;gap:7px;margin-top:16px; }

.claim-preview-body { background:#eef2f6; }
.claim-document-page { width:min(1180px,calc(100% - 28px));margin:18px auto 40px; }
.claim-document-toolbar { display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:12px 14px;border:1px solid #d5dde8;border-radius:10px;background:#fff;box-shadow:var(--shadow); }
.claim-document-toolbar>div:first-child { display:flex;flex-direction:column;gap:3px; }
.claim-document-toolbar strong { color:var(--navy);font-size:15px; }
.claim-document-toolbar span { color:#778294;font-size:11px; }
.claim-paper { position:relative;overflow:hidden;background:#fff;border:1px solid #d8dee7;border-radius:8px;box-shadow:0 8px 30px rgba(30,48,75,.10);padding:34px 38px 42px; }
.claim-preview-watermark { position:absolute;top:48%;left:50%;transform:translate(-50%,-50%) rotate(-25deg);font-size:88px;font-weight:900;letter-spacing:8px;color:rgba(31,73,126,.055);pointer-events:none;white-space:nowrap; }
.claim-paper-head { display:flex;justify-content:space-between;align-items:flex-start;gap:30px;padding-bottom:18px;border-bottom:2px solid var(--navy); }
.claim-brand { display:flex;align-items:center;gap:10px; }
.claim-brand-mark { display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#f4c516;border:3px solid var(--navy);color:var(--navy);font-size:25px;font-weight:900; }
.claim-brand strong,.claim-brand small { display:block; }
.claim-brand strong { color:var(--navy);font-size:18px; }
.claim-brand small { margin-top:3px;color:#6b7789; }
.claim-doc-meta dl { display:grid;grid-template-columns:78px minmax(130px,1fr);gap:5px 9px;margin:0;font-size:11px; }
.claim-doc-meta dt { color:#697587;font-weight:750; }
.claim-doc-meta dd { margin:0;text-align:right;color:#27384f;font-weight:700; }
.claim-paper>h1 { margin:28px 0 6px;text-align:center;font-size:28px;letter-spacing:5px;color:#1f3150; }
.claim-period { margin:0 0 24px;text-align:center;color:#6e798a;font-size:12px; }
.claim-section { margin-top:20px; }
.claim-section h2 { margin:0 0 8px;color:#243a5d;font-size:14px; }
.claim-info-grid { display:grid;grid-template-columns:130px 1fr 130px 1fr;margin:0;border-top:1px solid #cfd7e2;border-left:1px solid #cfd7e2; }
.claim-info-grid dt,.claim-info-grid dd { margin:0;padding:8px 10px;border-right:1px solid #cfd7e2;border-bottom:1px solid #cfd7e2;font-size:11px; }
.claim-info-grid dt { background:#f4f7fa;color:#5d697a;font-weight:800; }
.claim-info-grid dd { color:#29384d; }
.claim-summary-table { min-width:860px; }
.claim-summary-table th { white-space:nowrap; }
.claim-total { color:#8a4926;font-size:13px;font-weight:900; }
.claim-tax-breakdown { display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px; }
.claim-tax-breakdown span { padding:7px 9px;border:1px solid #dce3ec;border-radius:6px;background:#fafbfd;color:#687487;font-size:10px; }
.claim-tax-breakdown strong { float:right;color:#243a5d; }
.claim-section-title { display:flex;justify-content:space-between;align-items:center;gap:10px; }
.claim-section-title>span { color:#788395;font-size:11px; }
.claim-detail-table { min-width:1020px; }
.claim-detail-table th { white-space:nowrap; }
.claim-paper-foot { margin-top:24px;padding-top:18px;border-top:2px solid var(--navy);text-align:right; }
.claim-paper-foot>div { display:flex;justify-content:flex-end;align-items:baseline;gap:18px; }
.claim-paper-foot span { color:#657184;font-size:13px;font-weight:750; }
.claim-paper-foot strong { color:#1f3150;font-size:24px; }
.claim-paper-foot p { margin:7px 0 0;color:#6e798a;font-size:11px; }

@media (max-width:760px) {
  .claim-preview-date-grid { grid-template-columns:1fr; }
  .claim-preview-selected { grid-template-columns:80px 1fr; }
  .claim-paper { padding:24px 18px 30px; }
  .claim-paper-head { flex-direction:column; }
  .claim-info-grid { grid-template-columns:110px 1fr; }
  .claim-tax-breakdown { grid-template-columns:repeat(2,1fr); }
}
@media print {
  .claim-preview-body { background:#fff; }
  .no-print { display:none !important; }
  .claim-document-page { width:100%;margin:0; }
  .claim-paper { border:0;box-shadow:none;border-radius:0;padding:10mm 8mm; }
  .claim-preview-watermark { display:block; }
  .claim-section { break-inside:avoid; }
  .claim-detail-table tr { break-inside:avoid; }
}


/* B2-3A merchant management + exact legacy ACE TAX FREE logo */
.brand-logo { display:block;object-fit:contain; }
.top-brand-logo { height:56px;width:auto; }
.login-brand-logo { width:230px;max-width:82%;height:auto;margin:0 auto 8px; }
.claim-brand-logo { width:108px;height:auto; }
.claim-brand { align-items:center; }
.claim-brand>small { color:#6b7789;font-weight:750; }
.table-link { color:var(--navy);font-weight:800;text-decoration:underline;text-underline-offset:2px; }

.merchant-search-grid,.merchant-form-grid,.merchant-flag-grid,.merchant-rebate-input-grid {
    display:grid;grid-template-columns:repeat(4,minmax(210px,1fr));gap:10px 14px;
}
.merchant-search-grid label,.merchant-form-grid label,.merchant-flag-grid label,.merchant-rebate-input-grid label {
    display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:8px;font-weight:700;
}
.merchant-search-grid input,.merchant-search-grid select,
.merchant-form-grid input,.merchant-form-grid select,
.merchant-flag-grid input,.merchant-flag-grid select,
.merchant-rebate-input-grid input,.merchant-rebate-input-grid select {
    min-width:0;width:100%;height:36px;border:1px solid #c7cfda;border-radius:7px;background:#fff;padding:5px 8px;
}
.merchant-search-text { display:flex;align-items:center;gap:20px;margin-top:12px;padding-top:10px;border-top:1px solid #edf0f5; }
.merchant-search-text label { display:flex;align-items:center;gap:8px;font-weight:750; }
.merchant-search-text input { width:min(520px,45vw);height:36px;border:1px solid #c7cfda;border-radius:7px;padding:5px 8px; }
.merchant-search-text select { height:36px;border:1px solid #c7cfda;border-radius:7px;padding:5px 8px; }
.merchant-list-table { min-width:1550px; }
.merchant-form-grid .span-2,.merchant-rebate-input-grid .span-2 { grid-column:span 2; }
.merchant-section-note { margin:3px 0 0;font-size:12px; }
.device-list { display:grid;gap:8px; }
.device-row { display:grid;grid-template-columns:minmax(260px,520px) auto;gap:8px;justify-content:start; }
.device-row input { height:36px;border:1px solid #c7cfda;border-radius:7px;padding:5px 8px;font-family:"SFMono-Regular",Consolas,monospace; }
.merchant-save-bar { position:sticky;bottom:0;z-index:8;display:flex;justify-content:flex-end;padding:12px 16px;margin:0 -2px 16px;background:rgba(245,247,251,.94);border-top:1px solid #dfe5ee;backdrop-filter:blur(5px); }
.merchant-rebate-form { margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #e5e9ef; }
.merchant-rebate-history .data-table { min-width:1050px; }
@media (max-width:1200px) {
    .merchant-search-grid,.merchant-form-grid,.merchant-flag-grid,.merchant-rebate-input-grid { grid-template-columns:repeat(2,minmax(240px,1fr)); }
}
@media (max-width:700px) {
    .top-brand-logo { height:48px; }
    .merchant-search-grid,.merchant-form-grid,.merchant-flag-grid,.merchant-rebate-input-grid { grid-template-columns:1fr; }
    .merchant-form-grid .span-2,.merchant-rebate-input-grid .span-2 { grid-column:auto; }
    .merchant-search-grid label,.merchant-form-grid label,.merchant-flag-grid label,.merchant-rebate-input-grid label { grid-template-columns:100px 1fr; }
    .merchant-search-text { display:grid; }
    .merchant-search-text input { width:100%; }
}

/* B2-3C merchant form UX */
.merchant-form-error { display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.merchant-form-error small { margin-left:auto;font-size:11px;opacity:.75; }
.device-row {
  grid-template-columns:minmax(260px,520px) auto auto minmax(220px,1fr);
  align-items:center;
}
.device-check-status { min-height:20px;font-size:12px;line-height:1.4; }
.device-check-status.is-ok { color:#177245; }
.device-check-status.is-error { color:#b42318;font-weight:600; }
.device-row-error input[name="deviceNo"] { border-color:#d92d20;box-shadow:0 0 0 2px rgba(217,45,32,.08); }
@media (max-width:900px) {
  .device-row { grid-template-columns:minmax(180px,1fr) auto auto; }
  .device-check-status { grid-column:1/-1; }
}

/* r16.4 management UI visual repair
 * Dense desktop layout:
 * - radio options stay horizontal;
 * - labels and controls use balanced widths;
 * - no fieldset/legend special layout;
 * - search screens use explicit 12-column rows to avoid dead space.
 */
.management-lookup-control{
    display:grid;
    grid-template-columns:minmax(88px,1fr) auto auto;
    gap:5px;
    min-width:0
}
.secondary-button.mini{
    min-width:auto;
    padding:5px 9px;
    height:34px;
    border-radius:7px;
    white-space:nowrap
}
.management-radio-field{
    border:0;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    min-height:36px;
    font-weight:700
}
.management-radio-field .radio-title{
    flex:0 0 92px;
    color:#37465a;
    white-space:nowrap;
    word-break:keep-all
}
.native-radio-row{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
    min-height:34px;
    flex-wrap:nowrap;
    white-space:nowrap
}
.native-radio-row label{
    display:inline-flex!important;
    align-items:center;
    gap:4px!important;
    font-weight:600!important;
    white-space:nowrap;
    min-width:auto!important
}
.native-radio-row input[type=radio]{
    width:auto!important;
    height:auto!important;
    margin:0!important;
    flex:0 0 auto
}
.no-wrap-label>span,
.selector-field>span,
.compact-form-rows>label>span,
.merchant-form-grid>label>span,
.management-radio-field .radio-title{
    white-space:nowrap;
    word-break:keep-all
}

/* search forms */
.management-search-grid{
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:10px 14px
}
.management-search-grid>*{min-width:0}
.management-search-grid .search-col-3{grid-column:span 3}
.management-search-grid .search-col-4{grid-column:span 4}
.management-search-grid .management-radio-field .radio-title{
    flex-basis:76px
}
.management-search-grid .native-radio-row{
    gap:8px
}
.management-search-grid .native-radio-row label{
    font-size:12.5px
}
.management-three-col-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px 18px!important
}
.management-three-col-grid>*{min-width:0}
.management-three-col-grid .selector-field{
    grid-template-columns:92px minmax(0,1fr)
}
.management-three-col-grid .management-radio-field .radio-title{
    flex-basis:92px
}

/* merchant form: keep four dense columns, but give labels enough room and keep radios inline */
.merchant-form-grid,.merchant-flag-grid,.merchant-rebate-input-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(250px,1fr));
    gap:10px 16px
}
.merchant-form-grid>label,.merchant-flag-grid>label,.merchant-rebate-input-grid>label{
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    align-items:center;
    gap:8px;
    font-weight:700;
    min-width:0
}
.merchant-form-grid input,.merchant-form-grid select,
.merchant-flag-grid input,.merchant-flag-grid select,
.merchant-rebate-input-grid input,.merchant-rebate-input-grid select{
    min-width:0;
    width:100%;
    height:36px;
    border:1px solid #c7cfda;
    border-radius:7px;
    background:#fff;
    padding:5px 8px
}
.merchant-form-grid .span-2,.merchant-rebate-input-grid .span-2{grid-column:span 2}
.merchant-form-grid .management-radio-field .radio-title,
.merchant-flag-grid .management-radio-field .radio-title{
    flex-basis:96px
}

/* compact registration forms */
.compact-form-rows{
    display:grid;
    gap:10px 16px
}
.compact-form-rows>label{
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    align-items:center;
    gap:8px;
    font-weight:650;
    min-width:0
}
.compact-form-rows input,.compact-form-rows select{
    width:100%;
    min-width:0;
    height:36px;
    padding:5px 8px;
    border:1px solid #c3ccd8;
    border-radius:7px;
    background:#fff
}
.management-compact-card{padding:14px 16px;margin-bottom:12px}
.management-compact-card .detail-card-title{margin-bottom:9px}
.compact-form-rows .compact-zip input{max-width:150px}

/* business form: exact requested three-row basic layout */
.business-basic-grid{
    grid-template-columns:repeat(12,minmax(0,1fr))
}
.business-basic-grid .basic-half{grid-column:span 6}
.business-basic-grid .basic-third{grid-column:span 4}
.workplace-grid,.owner-grid,.agency-basic-grid,.agency-person-grid,.contract-grid,.agency-rate-grid{
    grid-template-columns:repeat(12,minmax(0,1fr))
}
.workplace-grid .work-third{grid-column:span 4}
.workplace-grid .work-half{grid-column:span 6}
.owner-grid .owner-third{grid-column:span 4}
.owner-grid .owner-half{grid-column:span 6}

/* agency: 2 fields / 3 enums / 3 contact fields / 2 address fields */
.agency-basic-grid .agency-half{grid-column:span 6}
.agency-basic-grid .agency-third{grid-column:span 4}
.agency-person-grid>label{grid-column:span 3}
.contract-grid>label{grid-column:span 6}
.agency-rate-grid>label{grid-column:span 3}
.agency-rate-grid .rate-remark{grid-column:span 6}

/* group/user */
.group-modal-grid{grid-template-columns:1fr}
.group-create-dialog{width:min(720px,calc(100vw - 28px))}
.management-dialog-form .dialog-head p{margin:4px 0 0}
.management-user-search-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(260px,1fr));
    gap:10px 18px;
    padding-bottom:10px
}
.management-user-search-grid .selector-field{grid-template-columns:85px 1fr}
.user-list-table{min-width:1500px}
.user-basic-grid,.user-affiliation-grid{
    grid-template-columns:repeat(4,minmax(250px,1fr))
}
.user-state-grid{
    grid-template-columns:repeat(2,minmax(420px,1fr))
}

/* preserve original lookup/search inputs */
.management-search-grid input,
.management-three-col-grid input{
    min-width:0;
    width:100%;
    height:36px;
    border:1px solid #c7cfda;
    border-radius:7px;
    background:#fff;
    padding:5px 8px
}

@media(max-width:1350px){
    .merchant-form-grid,.merchant-flag-grid,.merchant-rebate-input-grid{
        grid-template-columns:repeat(2,minmax(300px,1fr))
    }
    .merchant-form-grid .span-2,.merchant-rebate-input-grid .span-2{grid-column:span 2}
    .native-radio-row{flex-wrap:wrap}
}
@media(max-width:1200px){
    .management-search-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
    .management-search-grid .search-col-3{grid-column:span 3}
    .management-search-grid .search-col-4{grid-column:span 6}
    .management-three-col-grid{grid-template-columns:1fr 1fr!important}
    .business-basic-grid,.workplace-grid,.owner-grid,.agency-basic-grid,.agency-person-grid,.contract-grid,.agency-rate-grid{
        grid-template-columns:repeat(6,minmax(0,1fr))
    }
    .business-basic-grid .basic-half,
    .business-basic-grid .basic-third,
    .workplace-grid .work-third,
    .workplace-grid .work-half,
    .owner-grid .owner-third,
    .owner-grid .owner-half,
    .agency-basic-grid .agency-half,
    .agency-basic-grid .agency-third,
    .agency-person-grid>label,
    .contract-grid>label,
    .agency-rate-grid>label,
    .agency-rate-grid .rate-remark{
        grid-column:span 3
    }
    .user-basic-grid,.user-affiliation-grid{grid-template-columns:repeat(2,minmax(280px,1fr))}
}
@media(max-width:700px){
    .management-search-grid,
    .management-three-col-grid,
    .merchant-form-grid,.merchant-flag-grid,.merchant-rebate-input-grid,
    .business-basic-grid,.workplace-grid,.owner-grid,.agency-basic-grid,.agency-person-grid,
    .contract-grid,.agency-rate-grid,.management-user-search-grid,
    .user-basic-grid,.user-affiliation-grid,.user-state-grid{
        grid-template-columns:1fr!important
    }
    .management-search-grid .search-col-3,
    .management-search-grid .search-col-4,
    .merchant-form-grid .span-2,.merchant-rebate-input-grid .span-2,
    .business-basic-grid .basic-half,.business-basic-grid .basic-third,
    .workplace-grid .work-third,.workplace-grid .work-half,
    .owner-grid .owner-third,.owner-grid .owner-half,
    .agency-basic-grid .agency-half,.agency-basic-grid .agency-third,
    .agency-person-grid>label,.contract-grid>label,
    .agency-rate-grid>label,.agency-rate-grid .rate-remark{
        grid-column:auto
    }
    .native-radio-row{flex-wrap:wrap}
    .management-radio-field{align-items:flex-start}
    .merchant-form-grid>label,.merchant-flag-grid>label,.merchant-rebate-input-grid>label,
    .compact-form-rows>label{
        grid-template-columns:105px minmax(0,1fr)
    }
}


/* r16.5 proportional management layout
 * Do not divide the screen into equal columns.
 * Each field width follows the data/control it contains.
 */
.mgmt-stack{display:flex;flex-direction:column;gap:9px}
.mgmt-line{
    display:flex;
    align-items:center;
    gap:16px 20px;
    flex-wrap:wrap;
    min-width:0
}
.mgmt-item{
    --label-w:76px;
    display:grid;
    grid-template-columns:var(--label-w) minmax(0,1fr);
    align-items:center;
    gap:7px;
    min-width:0;
    flex:0 0 auto;
    font-weight:700
}
.mgmt-item>span,.mgmt-radio>.radio-title{
    white-space:nowrap;
    word-break:keep-all;
    color:#37465a
}
.mgmt-item input,.mgmt-item select{
    width:100%;
    min-width:0;
    height:36px;
    padding:5px 8px;
    border:1px solid #c7cfda;
    border-radius:7px;
    background:#fff
}
.mgmt-radio{
    --label-w:78px;
    display:grid;
    grid-template-columns:var(--label-w) auto;
    align-items:center;
    gap:7px;
    flex:0 0 auto;
    min-height:36px;
    font-weight:700
}
.mgmt-radio .native-radio-row{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:10px;
    min-height:32px;
    white-space:nowrap
}
.mgmt-radio .native-radio-row label{
    display:inline-flex!important;
    align-items:center;
    gap:4px!important;
    min-width:auto!important;
    white-space:nowrap
}
.mgmt-radio input[type=radio]{
    width:auto!important;height:auto!important;margin:0!important
}
.mgmt-lookup .management-lookup-control{
    display:grid;
    grid-template-columns:minmax(96px,1fr) auto auto;
    gap:5px;
    min-width:0
}
.mgmt-lookup .secondary-button.mini{
    min-width:46px;
    padding:5px 8px;
    height:36px
}

/* total field widths */
.mw-180{width:180px}.mw-200{width:200px}.mw-220{width:220px}.mw-240{width:240px}
.mw-260{width:260px}.mw-280{width:280px}.mw-300{width:300px}.mw-320{width:320px}
.mw-340{width:340px}.mw-360{width:360px}.mw-380{width:380px}.mw-400{width:400px}
.mw-420{width:420px}.mw-440{width:440px}.mw-460{width:460px}.mw-500{width:500px}
.mw-520{width:520px}.mw-560{width:560px}.mw-grow{flex:1 1 360px;min-width:300px}

/* label widths are also semantic, not globally fixed */
.ml-48{--label-w:48px}.ml-56{--label-w:56px}.ml-64{--label-w:64px}.ml-72{--label-w:72px}
.ml-80{--label-w:80px}.ml-88{--label-w:88px}.ml-96{--label-w:96px}.ml-104{--label-w:104px}
.ml-112{--label-w:112px}

/* Search screens */
.management-search-proportional{
    padding-bottom:10px;
    border-bottom:1px solid #edf0f5
}
.management-search-proportional .mgmt-line + .mgmt-line{
    padding-top:3px
}
.merchant-search-card .merchant-search-text{margin-top:9px}
.management-search-proportional .mgmt-radio{padding-right:6px}

/* Forms */
.proportional-card .detail-card-title{margin-bottom:10px}
.proportional-card .mgmt-line + .mgmt-line{margin-top:4px}
.proportional-card .button-row{min-width:0}
.proportional-card .button-row>input{min-width:0;flex:1 1 auto}
.proportional-card .mgmt-item small{grid-column:2;min-height:0}
.proportional-card .mgmt-radio{padding:0 2px}
.proportional-card .mgmt-line.address-line .mgmt-item{flex:1 1 420px}
.proportional-card .mgmt-line.address-line .mgmt-item input{width:100%}

/* User relation pickers are intentionally two per line. Four do not fit with 2 action buttons. */
.user-affiliation-proportional .mgmt-lookup{width:440px}
.user-affiliation-proportional .management-lookup-control{grid-template-columns:minmax(150px,1fr) auto auto}

/* Group search */
.group-search-proportional .mgmt-lookup{width:390px}

/* Keep old r16 grid helpers from forcing equal-width layouts when new rows are used. */
.mgmt-stack .management-radio-field,
.mgmt-stack .compact-form-rows,
.mgmt-stack .merchant-form-grid{display:contents}

/* Responsiveness is a fallback only; desktop sizing is content-driven. */
@media(max-width:1180px){
    .mgmt-line{gap:10px 14px}
    .mgmt-item.mw-460,.mgmt-item.mw-500,.mgmt-item.mw-520,.mgmt-item.mw-560{max-width:100%}
}
@media(max-width:760px){
    .mgmt-line{display:grid;grid-template-columns:1fr}
    .mgmt-item,.mgmt-radio,.user-affiliation-proportional .mgmt-lookup{width:100%!important}
    .mgmt-item{grid-template-columns:minmax(82px,auto) minmax(0,1fr)}
    .mgmt-radio{grid-template-columns:minmax(82px,auto) minmax(0,1fr)}
    .mgmt-radio .native-radio-row{flex-wrap:wrap}
}

/* r16.6 global radio option typography
 * Field titles stay dark/bold; radio choices are intentionally quieter.
 * Keep the font size unchanged so readability is not reduced.
 */
label:has(> input[type="radio"]){
    font-weight:500!important;
    color:#5b6675!important
}
label:has(> input[type="radio"]:checked){
    font-weight:500!important;
    color:#3f4f63!important
}
/* === B2-9 r19.0 proxy refund / TRS050101-103 read-only === */
.proxy-refund-search-card .search-body { padding:12px 16px; }
.proxy-refund-filter-grid,.proxy-settlement-filter-grid { display:grid;grid-template-columns:1fr 1fr;gap:0 34px; }
.proxy-refund-filter-grid>label,.proxy-settlement-filter-grid>label,.proxy-refund-filter-grid>fieldset,.proxy-settlement-filter-grid>fieldset { min-height:49px;margin:0;padding:8px 12px;display:grid;grid-template-columns:84px minmax(0,1fr);align-items:center;gap:8px;border:0;border-bottom:1px solid #e7ebf0; }
.proxy-refund-filter-grid label>span:first-child,.proxy-settlement-filter-grid label>span:first-child,.proxy-refund-filter-grid legend,.proxy-settlement-filter-grid legend { font-weight:750;color:#455368; }
.proxy-refund-filter-grid fieldset,.proxy-settlement-filter-grid fieldset { display:flex;gap:15px;align-items:center; }
.proxy-refund-filter-grid fieldset legend,.proxy-settlement-filter-grid fieldset legend { float:left;width:76px;padding:0;margin:0 8px 0 0; }
.proxy-refund-filter-grid fieldset label,.proxy-settlement-filter-grid fieldset label { display:inline-flex;gap:5px;align-items:center;font-weight:500;color:#5b6675; }
.proxy-refund-filter-grid input[type="date"],.proxy-refund-filter-grid input:not([type="radio"]),.proxy-refund-filter-grid select,.proxy-settlement-filter-grid input[type="date"],.proxy-settlement-filter-grid select { height:34px;border:1px solid #c7cfda;border-radius:5px;background:#fff;padding:5px 8px;min-width:0; }
.proxy-date-range { display:flex;align-items:center;gap:8px; }.proxy-date-range input { width:160px; }.proxy-date-range b { font-weight:500;color:#7a8595; }
.proxy-search-text>span:last-child { display:flex;gap:5px; }.proxy-search-text select { width:145px; }.proxy-search-text input { width:min(300px,30vw); }
.proxy-summary-table,.proxy-settlement-summary { margin:16px 0 28px;border-top:2px solid #aeb7c2;border-bottom:2px solid #aeb7c2;background:#fff; }
.proxy-summary-table>div { display:grid;grid-template-columns:1fr 1fr 1fr 1fr;min-height:32px;border-bottom:1px solid #dfe3e8; }.proxy-summary-table>div:last-child { border-bottom:0; }
.proxy-summary-table b,.proxy-settlement-summary b { padding:7px 12px;background:#f4f4f4;text-align:center;font-size:12px; }.proxy-summary-table span,.proxy-settlement-summary span { padding:7px 12px;text-align:right;font-size:12px; }
.proxy-settlement-summary>div { display:grid;grid-template-columns:130px 1fr 130px 1fr 130px 1fr 130px 1fr 130px 1fr; }
.proxy-refund-table-wrap { border-radius:0;box-shadow:none;border-left:0;border-right:0; }.proxy-refund-history-table { min-width:1780px; }.proxy-refund-settlement-table { min-width:1450px; }.proxy-refund-detail-table { min-width:1450px; }
.proxy-refund-history-table th,.proxy-refund-settlement-table th,.proxy-refund-detail-table th { padding:7px 6px;font-size:11px; }.proxy-refund-history-table td,.proxy-refund-settlement-table td,.proxy-refund-detail-table td { padding:7px 6px;font-size:11px; }
.danger-disabled-button { min-width:104px;padding:7px 16px;border:1px solid #e2a6a6;border-radius:8px;background:#f9e7e7;color:#a25656;font-weight:750;cursor:not-allowed;opacity:.75; }
.proxy-refund-detail-page { width:min(1420px,calc(100% - 24px)); }
@media (max-width:900px) { .proxy-refund-filter-grid,.proxy-settlement-filter-grid { grid-template-columns:1fr; }.proxy-settlement-summary>div { grid-template-columns:110px 1fr; }.proxy-summary-table>div { grid-template-columns:110px 1fr; } }


/* B2-9 r19.1 proxy refund settlement mutation / TEST-gated */
.proxy-hidden-cell { display:none; }
.proxy-refund-detail-table .proxy-deduction-check { width:16px; height:16px; }
.alert-success { border:1px solid #b8d9c3; background:#f1faf4; padding:10px 12px; border-radius:6px; }
.alert-error { border:1px solid #e2b8b8; background:#fff4f4; padding:10px 12px; border-radius:6px; }
button[disabled] { cursor:not-allowed; opacity:.58; }


/* UI-CONSISTENCY-R1
 * Management search controls and the TRS080601 modal use the same field palette
 * as the rest of BackOffice. Keep native radio/checkbox rendering untouched. */
select[name="userGroup"] {
    min-width:0;
    height:34px;
    border:1px solid #cbd3df;
    border-radius:7px;
    background:#fff;
    padding:5px 9px;
    color:#2c394b;
    font:inherit;
}
.refund-window-search-row input,
.refund-window-search-row select {
    height:34px;
    border:1px solid #cbd3df;
    border-radius:7px;
    background:#fff;
    padding:5px 9px;
    color:#2c394b;
    font:inherit;
}
.refund-window-form-grid input,
.refund-window-form-grid select {
    height:36px;
    border:1px solid #c3ccd8;
    border-radius:7px;
    background:#fff;
    padding:5px 8px;
    color:#2c394b;
    font:inherit;
}
.refund-window-search-row input:focus,
.refund-window-search-row select:focus,
.refund-window-form-grid input:focus,
.refund-window-form-grid select:focus,
select[name="userGroup"]:focus {
    border-color:#87a9d6;
    outline:2px solid rgba(35,79,143,.10);
    outline-offset:0;
}


/* SYSTEM-UI-HARMONIZE-R1 */
.system-management-page input[type="text"],
.system-management-page input[type="number"],
.system-management-page input[type="date"],
.system-management-page input[type="month"],
.system-management-page input:not([type]),
.system-management-page select {
    min-width:0;
    height:36px;
    border:1px solid #c3ccd8;
    border-radius:7px;
    background:#fff;
    padding:5px 8px;
    color:#2c394b;
    font:inherit;
    box-sizing:border-box;
}
.system-management-page input[readonly] { background:#f8fafc; }
.system-management-page input[type="text"]:focus,
.system-management-page input[type="number"]:focus,
.system-management-page input[type="date"]:focus,
.system-management-page input[type="month"]:focus,
.system-management-page input:not([type]):focus,
.system-management-page select:focus {
    border-color:#87a9d6;
    outline:2px solid rgba(35,79,143,.10);
    outline-offset:0;
}

/* MENU-LIFECYCLE-UI-R1 */
.menu-lifecycle-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:800;vertical-align:middle;white-space:nowrap}
.menu-lifecycle-badge.retired{color:#7f1d1d;background:#fee2e2;border:1px solid #fecaca}
.menu-lifecycle-badge.pending{color:#854d0e;background:#fef3c7;border:1px solid #fde68a}
.menu-lifecycle-retired-row{background:#fafafa;color:#7b8794}
.menu-lifecycle-retired-row .menu-retired-edit-lock{opacity:.65;cursor:not-allowed}
.menu-lifecycle-readonly{margin:10px 0;padding:9px 12px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:#991b1b;font-weight:700}
.menu-lifecycle-legend{display:flex;gap:8px;align-items:center;margin:-2px 0 10px;color:#66758a;font-size:12px}

/* Agency fee-basis effective-date contract selector. */
.agency-fee-base-field { display:flex; flex-direction:column; gap:6px; }
.agency-fee-base-options { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; min-height:32px; }
.agency-fee-base-options .agency-fee-base-option { display:inline-flex; flex-direction:row; align-items:center; gap:6px; width:auto; margin:0; font-weight:400; }
.agency-fee-base-options .agency-fee-base-option input[type="radio"] { width:auto; min-width:0; margin:0; }


/* Refund UX 4-item refinement r1 */
.refund-month-nav { display:flex;gap:6px;align-items:center;margin-left:8px; }
.refund-month-nav .secondary-button { min-width:58px;white-space:nowrap; }
.refund-period-row { align-items:center; }
.settlement-workflow-steps {
    display:flex;align-items:center;gap:7px;flex-wrap:wrap;
    margin:0 0 12px;padding:9px 11px;
    border:1px solid #d8e0ea;border-radius:8px;background:#f8fafc;
}
.workflow-step {
    display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;
    border:1px solid #cfd8e4;border-radius:7px;background:#fff;
    color:var(--navy);font-size:11px;font-weight:800;text-decoration:none;
}
.workflow-link:hover { text-decoration:underline; }
.workflow-arrow { color:#8692a3;font-weight:800; }
.receipt-before-claim-preview { margin-top:10px;padding-top:10px;border-top:1px solid #e5e9ef; }
.workflow-guidance {
    display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;
    padding:8px 10px;margin-bottom:8px;border-radius:7px;
    background:#f7f8fa;color:#747f8f;font-size:11px;
}
.workflow-guidance strong { color:var(--navy); }
.receipt-entry-disabled { opacity:.68; }
.receipt-entry-disabled input:disabled,
.receipt-entry-disabled button:disabled { cursor:not-allowed; }
@media (max-width:700px) {
  .refund-month-nav { margin-left:0;margin-top:6px; }
  .settlement-workflow-steps { align-items:flex-start; }
}


/* settlement UX r3 */
.settlement-radio-field { align-self: stretch; }
.settlement-radio-row { display:flex; flex-wrap:wrap; align-items:center; gap:.45rem .9rem; min-height:34px; }
.settlement-radio-row label { display:inline-flex; align-items:center; gap:.28rem; white-space:nowrap; font-weight:500; }
.settlement-radio-row input[type="radio"] { margin:0; }
.settlement-month-controls { display:inline-flex; align-items:center; gap:.35rem; }
.compact-button { padding:.42rem .65rem; min-height:32px; }
.settlement-service-filter { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
.settlement-status-badge { display:inline-flex; align-items:center; min-width:4.4rem; justify-content:center; padding:.18rem .5rem; border:1px solid currentColor; border-radius:999px; font-size:.82rem; font-weight:700; }
.settlement-status-badge.review,.settlement-status-badge.receivable { font-weight:800; }
.settlement-status-badge.complete { opacity:.78; }



/* settlement UX r4 follow-up */
.settlement-radio-field { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
.settlement-radio-field > span { flex:0 0 auto; min-width:72px; white-space:nowrap; }
.settlement-radio-field .settlement-radio-row { flex:1 1 auto; min-width:220px; }
.settlement-service-filter > span { white-space:nowrap; }
.settlement-status-badge.clickable { text-decoration:none; cursor:pointer; }
.settlement-status-badge.clickable:hover { opacity:.92; }


/* settlement status semantic colors */
.settlement-status-badge.unsettled {
  background:#f3f4f6;
  border-color:#9ca3af;
  color:#374151;
}
.settlement-status-badge.claimed {
  background:#e8f1ff;
  border-color:#2f6fb8;
  color:#174a86;
}
.settlement-status-badge.receivable {
  background:#fff3df;
  border-color:#d97706;
  color:#92400e;
}
.settlement-status-badge.complete {
  background:#e8f7ee;
  border-color:#2f855a;
  color:#166534;
  opacity:1;
}
.settlement-status-badge.review {
  background:#fdecec;
  border-color:#c53030;
  color:#991b1b;
}
