/* Supplier operations suite: JT-DMS001~009 */
/* .supplier-fields·.supplier-choice 등 display:grid/flex 규칙이 [hidden]의 UA display:none 을 덮어써서 안 감춰지던 문제(3단계 B4) — admin-mode 와 같은 구제 규칙 */
body.supplier-mode [hidden] { display:none !important; }
body.supplier-mode .supplier-content { font-size:14px; }
body.supplier-mode .supplier-page-head > div > span { font-size:12px; }
body.supplier-mode .supplier-page-head h1 { font-size:28px; line-height:1.3; }
body.supplier-mode .supplier-page-head p { font-size:14px; line-height:1.55; }
body.supplier-mode .supplier-card-title h2 { font-size:16px; }
body.supplier-mode .supplier-card-title > span { font-size:12px; }
body.supplier-mode .supplier-status { min-height:28px; padding:0 10px; font-size:12px; }
body.supplier-mode .supplier-status.large { min-height:34px; font-size:13px; }
body.supplier-mode .supplier-status.neutral { background:var(--soft); color:var(--sub); }
body.supplier-mode .supplier-back { min-height:27px; font-size:13px; }
body.supplier-mode .supplier-panel-head h2 { font-size:16px; }
body.supplier-mode .supplier-panel-head p { font-size:12px; }
body.supplier-mode .supplier-panel-head > button { font-size:12px; }
body.supplier-mode .supplier-order-tabs button { min-height:39px; font-size:13px; }
body.supplier-mode .supplier-order-search { height:42px; }
body.supplier-mode .supplier-order-search input,
body.supplier-mode .supplier-order-toolbar select { font-size:13px; }
body.supplier-mode .supplier-list-empty b { font-size:14px; }
body.supplier-mode .supplier-sidebar nav { min-height:0; overflow-y:auto; scrollbar-width:none; }
body.supplier-mode .supplier-sidebar nav::-webkit-scrollbar { display:none; }
body.supplier-mode .supplier-sidebar nav button { font-size:14px; }
body.supplier-mode .supplier-kpis small { font-size:13px; }
body.supplier-mode .supplier-kpis p { font-size:11px; }
body.supplier-mode .supplier-action-list b { font-size:13px; }
body.supplier-mode .supplier-action-list p { font-size:12px; }
body.supplier-mode .supplier-action-list small { font-size:11px; }
body.supplier-mode .supplier-action-list article > button { font-size:12px; }
body.supplier-mode .supplier-order-number b,
body.supplier-mode .supplier-order-product b,
body.supplier-mode .supplier-order-site b { font-size:12px; }
body.supplier-mode .supplier-order-number span,
body.supplier-mode .supplier-order-product small,
body.supplier-mode .supplier-order-product em,
body.supplier-mode .supplier-order-site span,
body.supplier-mode .supplier-order-site small,
body.supplier-mode .supplier-order-amount span { font-size:11px; }
body.supplier-mode .supplier-order-amount b { font-size:13px; }
body.supplier-mode .supplier-order-status button { min-height:32px; font-size:11px; }
body.supplier-mode .supplier-detail-product h3 { font-size:15px; }
body.supplier-mode .supplier-detail-product p { font-size:12px; }
body.supplier-mode .supplier-detail-product small { font-size:11px; }
body.supplier-mode .supplier-field-label { font-size:13px; }
body.supplier-mode .supplier-choice b { font-size:12px; }
body.supplier-mode .supplier-choice small { font-size:11px; }
body.supplier-mode .supplier-note-field > span { font-size:13px; }
body.supplier-mode .supplier-note-field textarea { font-size:13px; }
body.supplier-mode .supplier-detail-aside h2 { font-size:15px; }
body.supplier-mode .supplier-detail-aside dl div { font-size:12px; }
body.supplier-mode .claim-row-product b,
body.supplier-mode .claim-row-site b,
body.supplier-mode .claim-row-request b { font-size:12px; }
body.supplier-mode .claim-row-product span,
body.supplier-mode .claim-row-product small,
body.supplier-mode .claim-row-site span,
body.supplier-mode .claim-row-site small,
body.supplier-mode .claim-row-request span,
body.supplier-mode .claim-row-request small { font-size:11px; }

#supplier-product-form,#supplier-shipping-form,#supplier-quote-response-form { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:14px; align-items:start; }

.supplier-head-cta { min-height:42px; padding:0 17px; font-size:13px; }
.supplier-head-actions { display:flex; align-items:center; gap:8px; }
.supplier-head-actions > button,.supplier-head-actions > select { min-height:41px; padding:0 13px; border:1px solid var(--line); border-radius:9px; background:var(--white); color:var(--sub); font-size:13px; }
.supplier-head-actions > button { display:flex; align-items:center; gap:6px; }
.supplier-head-actions svg { width:16px; }
.supplier-file-button { position:relative; min-height:42px; overflow:hidden; font-size:13px; cursor:pointer; }
.supplier-file-button input,.admin-upload-box input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }

.supplier-mini-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-top:15px; }
.supplier-mini-kpis > div { min-height:94px; padding:17px 18px; border:1px solid var(--line); border-radius:14px; background:var(--white); }
.supplier-mini-kpis span,.supplier-mini-kpis b,.supplier-mini-kpis small { display:block; }
.supplier-mini-kpis span { color:var(--sub); font-size:13px; }
.supplier-mini-kpis b { margin-top:7px; font-size:23px; }
.supplier-mini-kpis b small { display:inline; margin-left:4px; color:var(--sub); font-size:12px; }
.supplier-product-toolbar { margin-top:12px; }
.supplier-bulk-button { height:42px; padding:0 13px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:var(--sub); font-size:12px; white-space:nowrap; }

.supplier-products-table { margin-top:10px; border:1px solid var(--line); border-radius:15px; background:var(--white); overflow:hidden; }
.supplier-products-table > header,.supplier-product-row { display:grid; grid-template-columns:28px minmax(280px,1.35fr) minmax(150px,.75fr) 138px 130px 92px; gap:14px; align-items:center; }
.supplier-products-table > header { min-height:46px; padding:0 16px; background:var(--soft); color:var(--muted); font-size:12px; }
.supplier-product-row { min-height:110px; padding:15px 16px; border-top:1px solid var(--line); }
.supplier-product-row[hidden] { display:none; }
.supplier-row-check input { accent-color:var(--brand); }
.supplier-product-core { min-width:0; display:flex; align-items:center; gap:12px; }
.catalog-thumb { width:50px; height:50px; }
.supplier-product-core b,.supplier-product-core span,.supplier-product-core small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.supplier-product-core b { font-size:14px; }
.supplier-product-core span { margin:5px 0; color:var(--sub); font-size:12px; }
.supplier-product-core small { color:var(--muted); font-size:11px; }
.supplier-product-category span,.supplier-product-category b,.supplier-product-category small,
.supplier-product-price span,.supplier-product-price b,.supplier-product-price small,
.supplier-product-stock span,.supplier-product-stock b,.supplier-product-stock small { display:block; }
.supplier-product-category span,.supplier-product-price span,.supplier-product-stock span { color:var(--muted); font-size:11px; }
.supplier-product-category b,.supplier-product-price b,.supplier-product-stock b { margin:5px 0; font-size:13px; }
.supplier-product-category small,.supplier-product-price small,.supplier-product-stock small { color:var(--muted); font-size:11px; line-height:1.4; }
.supplier-product-state { text-align:right; }
.supplier-product-state button { display:block; width:72px; height:33px; margin:7px 0 0 auto; border:1px solid var(--line); border-radius:8px; background:var(--white); color:var(--sub); font-size:12px; }
.supplier-work-note { margin-top:11px; padding:15px 17px; border:1px solid #d8e1ed; border-radius:13px; background:#f7faff; display:grid; grid-template-columns:30px 1fr auto; gap:11px; align-items:center; }
.supplier-work-note > span { width:29px; height:29px; border-radius:8px; background:#e8f0fa; color:#315e9a; display:grid; place-items:center; }
.supplier-work-note svg { width:16px; }
.supplier-work-note b { font-size:13px; }
.supplier-work-note p { margin:3px 0 0; color:#65758a; font-size:12px; }
.supplier-work-note button { height:35px; border:1px solid #cbd8e8; border-radius:8px; background:var(--white); color:#315e9a; font-size:12px; }

.admin-readable-fields label > span,.admin-side-field > span { font-size:13px !important; }
.admin-readable-fields input,.admin-readable-fields select,
.admin-side-field input,.admin-side-field select { height:44px !important; font-size:14px !important; }
.admin-side-field { display:block; margin-top:13px; }
.admin-side-field > span { display:block; margin-bottom:7px; color:var(--sub); font-weight:700; }
.admin-side-field > select { width:100%; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:var(--white); }
.admin-input-unit { position:relative; display:block; }
.admin-input-unit input { width:100%; padding-right:54px !important; }
.admin-input-unit em { position:absolute; top:50%; right:11px; transform:translateY(-50%); color:var(--muted); font-style:normal; font-size:12px; }
.admin-input-unit.warning input { border-color:#d6a566 !important; background:#fffaf3 !important; }
.admin-upload-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.admin-upload-box { position:relative; min-height:126px; padding:18px; border:1px dashed var(--line-strong); border-radius:11px; background:var(--soft); display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--sub); text-align:center; cursor:pointer; }
.admin-upload-box:hover { border-color:var(--brand); background:var(--brand-soft); color:var(--brand); }
.admin-upload-box svg { width:24px; }
.admin-upload-box b { margin-top:8px; color:var(--ink); font-size:13px; }
.admin-upload-box small { margin-top:4px; color:var(--muted); font-size:11px; }
.admin-upload-box.compact { min-height:95px; margin-top:12px; }
.admin-file-state { margin-top:11px; padding:12px; border-radius:9px; background:var(--soft); color:var(--success); display:flex; align-items:center; gap:9px; }
.admin-file-state > span { width:27px; height:27px; border-radius:50%; background:#dff0e6; display:grid; place-items:center; }
.admin-file-state svg { width:15px; }
.admin-file-state p { margin:0; }
.admin-file-state b,.admin-file-state small { display:block; }
.admin-file-state b { font-size:12px; }
.admin-file-state small { margin-top:3px; color:var(--sub); font-size:11px; }

.supplier-alert-banner { margin:14px 0 11px; padding:15px 17px; border:1px solid; border-radius:13px; display:grid; grid-template-columns:32px 1fr auto; gap:11px; align-items:center; }
.supplier-alert-banner.warning { border-color:#edd7b8; background:#fff9ef; color:#8b5b19; }
.supplier-alert-banner.success { border-color:var(--line); background:#f3faf6; color:#397159; }
.supplier-alert-banner > span { width:31px; height:31px; border-radius:9px; background:var(--white); display:grid; place-items:center; }
.supplier-alert-banner svg { width:17px; }
.supplier-alert-banner b { font-size:13px; }
.supplier-alert-banner p { margin:3px 0 0; font-size:12px; }
.supplier-alert-banner button { height:35px; border:1px solid currentColor; border-radius:8px; background:var(--white); color:inherit; font-size:12px; }
.supplier-pricing-table { border:1px solid var(--line); border-radius:15px; background:var(--white); overflow:hidden; }
.supplier-pricing-table > header,.supplier-pricing-row { display:grid; grid-template-columns:minmax(255px,1.35fr) 150px 135px 135px 135px 74px; gap:12px; align-items:center; }
.supplier-pricing-table > header { min-height:46px; padding:0 16px; background:var(--soft); color:var(--muted); font-size:12px; }
.supplier-pricing-row { min-height:94px; padding:13px 16px; border-top:1px solid var(--line); }
.supplier-pricing-row[hidden] { display:none; }
.supplier-pricing-row > label > span:first-child { display:none; }
.supplier-pricing-row input,.supplier-pricing-row select { width:100%; height:41px; padding:0 10px; border:1px solid var(--line); border-radius:8px; background:var(--white); font-size:13px; }
.supplier-save-bar { position:sticky; bottom:13px; z-index:12; min-height:70px; margin-top:11px; padding:11px 13px 11px 17px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.97); box-shadow:0 14px 35px rgba(25,25,28,.12); display:flex; align-items:center; gap:8px; }
.supplier-save-bar > div { margin-right:auto; }
.supplier-save-bar b,.supplier-save-bar small { display:block; }
.supplier-save-bar b { font-size:13px; }
.supplier-save-bar b span { color:var(--brand); }
.supplier-save-bar small { margin-top:3px; color:var(--muted); font-size:11px; }
.supplier-save-bar .button { min-height:42px; font-size:13px; }
.supplier-audit-panel { margin-top:12px; padding:17px; border:1px solid var(--line); border-radius:14px; background:var(--white); display:grid; grid-template-columns:minmax(210px,.55fr) 1fr; gap:20px; }
.supplier-audit-panel > div { display:flex; gap:10px; }
.supplier-audit-panel > div > span { width:34px; height:34px; flex:0 0 auto; border-radius:9px; background:var(--soft); color:var(--sub); display:grid; place-items:center; }
.supplier-audit-panel svg { width:17px; }
.supplier-audit-panel h2 { margin:0; font-size:14px; }
.supplier-audit-panel p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.supplier-audit-panel ul { margin:0; padding:0; list-style:none; display:grid; gap:9px; }
.supplier-audit-panel li { display:grid; grid-template-columns:75px 1fr auto; gap:11px; color:var(--sub); font-size:12px; }
.supplier-audit-panel li span,.supplier-audit-panel li small { color:var(--muted); font-size:11px; }

.admin-region-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.admin-region-grid label,.contract-category-list label { position:relative; cursor:pointer; }
.admin-region-grid input,.contract-category-list input { position:absolute; opacity:0; pointer-events:none; }
.admin-region-grid label > span { min-height:67px; padding:12px; border:1px solid var(--line); border-radius:9px; display:flex; flex-direction:column; justify-content:center; }
.admin-region-grid input:checked + span,.contract-category-list input:checked + span { border-color:var(--brand); background:var(--brand-soft); box-shadow:inset 0 0 0 1px var(--brand); }
.admin-region-grid b { font-size:13px; }
.admin-region-grid small { margin-top:4px; color:var(--muted); font-size:11px; }

.supplier-stage-summary { min-height:96px; margin-top:14px; padding:12px; border:1px solid var(--line); border-radius:15px; background:var(--white); display:grid; grid-template-columns:repeat(5,1fr); }
.supplier-stage-summary > div { position:relative; padding:8px 16px; border-right:1px solid var(--line); }
.supplier-stage-summary > div:last-child { border:0; }
.supplier-stage-summary span,.supplier-stage-summary b,.supplier-stage-summary small { display:block; }
.supplier-stage-summary span { color:var(--muted); font-size:11px; font-weight:800; }
.supplier-stage-summary b { margin:5px 0; font-size:14px; }
.supplier-stage-summary small { color:var(--muted); font-size:11px; }
.supplier-stage-summary .active span,.supplier-stage-summary .active b { color:var(--brand); }
.supplier-quote-list,.supplier-settlement-list { margin-top:10px; display:grid; gap:9px; }
.supplier-quote-row { min-height:112px; padding:15px 16px; border:1px solid var(--line); border-radius:14px; background:var(--white); display:grid; grid-template-columns:110px minmax(190px,.9fr) minmax(240px,1.2fr) 135px 145px 82px; gap:14px; align-items:center; }
.supplier-quote-row[hidden],.supplier-settlement-row[hidden] { display:none; }
.quote-row-status span,.quote-row-status small,.quote-row-project span,.quote-row-project b,.quote-row-project small,.quote-row-item b,.quote-row-item span,.quote-row-item small,.quote-row-request span,.quote-row-request b,.quote-row-request small,.quote-row-price span,.quote-row-price b { display:block; }
.quote-row-status small { margin-top:7px; color:var(--brand); font-size:11px; }
.quote-row-project span,.quote-row-request span,.quote-row-price span { color:var(--muted); font-size:11px; }
.quote-row-project b,.quote-row-item b,.quote-row-request b,.quote-row-price b { margin:4px 0; font-size:13px; }
.quote-row-project small,.quote-row-item span,.quote-row-item small,.quote-row-request small { color:var(--muted); font-size:11px; line-height:1.45; }
.quote-row-item small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.supplier-quote-row > button,.supplier-settlement-row > button { height:35px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:var(--sub); font-size:12px; }
.supplier-quote-progress { min-height:83px; margin:12px 0 14px; padding:0 16px; list-style:none; border:1px solid var(--line); border-radius:14px; background:var(--white); display:grid; grid-template-columns:repeat(9,1fr); align-items:center; }
.supplier-quote-progress li { position:relative; min-width:0; color:var(--muted); display:flex; flex-direction:column; align-items:center; gap:5px; font-size:10px; text-align:center; }
.supplier-quote-progress li:not(:last-child)::after { content:""; position:absolute; left:calc(50% + 15px); right:calc(-50% + 15px); top:13px; height:1px; background:var(--line-strong); }
.supplier-quote-progress li.done:not(:last-child)::after { background:var(--line-strong); }
.supplier-quote-progress li > span { position:relative; z-index:1; width:27px; height:27px; border:1px solid var(--line); border-radius:50%; background:var(--white); display:grid; place-items:center; font-size:9px; }
.supplier-quote-progress li.done { color:var(--success); }
.supplier-quote-progress li.active { color:var(--brand); font-weight:800; }
.supplier-quote-progress li.active > span { border-color:var(--brand); background:var(--brand); color:var(--white); }
.supplier-quote-progress svg { width:13px; }
.quote-project-hero { min-height:94px; padding:15px; border-radius:11px; background:var(--soft); display:grid; grid-template-columns:40px 1fr auto; gap:12px; align-items:center; }
.quote-project-hero > span { width:40px; height:40px; border-radius:10px; background:var(--white); color:var(--brand); display:grid; place-items:center; }
.quote-project-hero svg { width:20px; }
.quote-project-hero b { font-size:14px; }
.quote-project-hero p { margin:4px 0; color:var(--sub); font-size:12px; }
.quote-project-hero small { color:var(--muted); font-size:11px; }
.quote-project-hero em { max-width:190px; color:var(--brand); font-style:normal; font-size:12px; font-weight:750; text-align:right; }
.quote-request-grid dd { font-size:12px; }
.quote-response-aside .supplier-order-money .total,.quote-response-aside dl .total { margin-top:7px; padding-top:12px; border-top:1px solid var(--line); }
.quote-response-aside dl .total dd { color:var(--brand); font-size:16px; font-weight:800; }

.settlement-overview { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:10px; margin-top:14px; }
.settlement-overview > div { min-height:112px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--white); }
.settlement-overview .settlement-total-card { background:var(--brand-deep); color:var(--white); border-color:var(--ink); }
.settlement-overview span,.settlement-overview b,.settlement-overview p { display:block; }
.settlement-overview span { color:var(--muted); font-size:12px; }
.settlement-overview .settlement-total-card span { color:#c5c5ca; }
.settlement-overview b { margin:7px 0 5px; font-size:22px; }
.settlement-overview b small { margin-left:4px; color:var(--muted); font-size:12px; }
.settlement-overview p { margin:0; color:var(--muted); font-size:11px; line-height:1.45; }
.settlement-overview .settlement-total-card p { color:var(--muted); }
.supplier-policy-banner { margin-top:11px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:#f7f9fc; display:grid; grid-template-columns:27px 1fr auto; gap:10px; align-items:center; color:#42566f; }
.supplier-policy-banner > svg { width:20px; }
.supplier-policy-banner b { font-size:13px; }
.supplier-policy-banner p { margin:3px 0 0; color:#68798e; font-size:11px; }
.supplier-policy-banner button { height:34px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:#425f82; font-size:12px; }
.supplier-settlement-row { min-height:108px; padding:15px 16px; border:1px solid var(--line); border-radius:14px; background:var(--white); display:grid; grid-template-columns:130px minmax(180px,1fr) 150px minmax(180px,1fr) minmax(175px,.9fr) 84px; gap:13px; align-items:center; }
.supplier-settlement-row > div span,.supplier-settlement-row > div b,.supplier-settlement-row > div small { display:block; }
.supplier-settlement-row > div > span:not(.supplier-status) { color:var(--muted); font-size:11px; }
.supplier-settlement-row > div b { margin:4px 0; font-size:13px; }
.supplier-settlement-row > div small { color:var(--muted); font-size:11px; line-height:1.45; }
.settlement-detail-grid { margin-top:12px; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:14px; align-items:start; }
.settlement-calculation { margin:0; display:grid; }
.settlement-calculation > div { min-height:44px; padding:10px 12px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:15px; font-size:13px; }
.settlement-calculation > div:last-child { border:0; }
.settlement-calculation dt { color:var(--sub); }
.settlement-calculation dd { margin:0; text-align:right; font-weight:700; }
.settlement-calculation .total { margin-top:8px; border-radius:9px; background:var(--soft); }
.settlement-calculation .total dt { color:var(--ink); font-weight:800; }
.settlement-calculation .total dd { color:var(--brand); }
.settlement-docs { display:grid; gap:8px; }
.settlement-docs > div { min-height:59px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; display:grid; grid-template-columns:24px 1fr auto; gap:9px; align-items:center; }
.settlement-docs > div > svg { width:18px; color:var(--sub); }
.settlement-docs b,.settlement-docs small { display:block; }
.settlement-docs b { font-size:12px; }
.settlement-docs small { margin-top:3px; color:var(--muted); font-size:11px; }
.settlement-docs button { height:31px; border:1px solid var(--line); border-radius:7px; background:var(--white); color:var(--sub); font-size:11px; }

.analytics-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-top:14px; }
.analytics-kpis > div { min-height:112px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--white); }
.analytics-kpis span,.analytics-kpis b,.analytics-kpis small { display:block; }
.analytics-kpis span { color:var(--sub); font-size:12px; }
.analytics-kpis b { margin:7px 0; font-size:23px; }
.analytics-kpis small { color:var(--muted); font-size:11px; }
.analytics-kpis em { color:var(--success); font-style:normal; font-weight:750; }
.analytics-main-grid { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr); gap:12px; margin-top:12px; }
.analytics-lower-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:12px; margin-top:12px; }
.analytics-chart { height:275px; padding:22px 20px 17px; display:grid; grid-template-columns:45px 1fr; gap:8px; }
.chart-y { padding-bottom:24px; display:flex; flex-direction:column; justify-content:space-between; color:var(--muted); font-size:10px; }
.chart-bars { position:relative; display:grid; grid-template-columns:repeat(7,1fr); gap:10px; align-items:end; border-bottom:1px solid var(--line); background:repeating-linear-gradient(to bottom,var(--white) 0,var(--white) 55px,var(--soft) 56px); }
.chart-bars > div { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:8px; }
.chart-bars > div > span { position:relative; width:min(42px,74%); min-height:4px; border-radius:7px 7px 0 0; background:var(--green-light); }
.chart-bars .active > span { background:var(--brand); }
.chart-bars em { position:absolute; top:-21px; left:50%; transform:translateX(-50%); opacity:0; color:var(--brand); font-style:normal; font-size:10px; font-weight:700; white-space:nowrap; }
.chart-bars .active em { opacity:1; }
.chart-bars b { padding-bottom:7px; color:var(--muted); font-size:10px; }
.analytics-mix-panel { padding-bottom:16px; }
.analytics-donut { width:154px; height:154px; margin:19px auto 15px; border-radius:50%; background:conic-gradient(var(--brand) 0 58%,var(--brand) 58% 80%,var(--green-light) 80% 92%,var(--green-line) 92% 100%); display:grid; place-items:center; }
.analytics-donut::before { content:""; grid-area:1/1; width:100px; height:100px; border-radius:50%; background:var(--white); }
.analytics-donut > span { position:relative; z-index:1; grid-area:1/1; text-align:center; }
.analytics-donut b,.analytics-donut small { display:block; }
.analytics-donut b { font-size:18px; }
.analytics-donut small { margin-top:3px; color:var(--muted); font-size:10px; }
.analytics-mix-panel ul { margin:0 18px; padding:0; list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 13px; }
.analytics-mix-panel li { display:grid; grid-template-columns:9px 1fr auto; gap:7px; align-items:center; font-size:11px; }
.analytics-mix-panel li i { width:8px; height:8px; border-radius:3px; background:var(--brand); }
.analytics-mix-panel li i.mix-2 { background:var(--brand); }.analytics-mix-panel li i.mix-3 { background:var(--green-light); }.analytics-mix-panel li i.mix-4 { background:var(--green-line); }
.analytics-ranking > header,.analytics-ranking > article { display:grid; grid-template-columns:minmax(250px,1fr) 90px 125px 95px; gap:12px; align-items:center; }
.analytics-ranking > header { min-height:40px; padding:0 17px; background:var(--soft); color:var(--muted); font-size:11px; }
.analytics-ranking > article { min-height:65px; padding:10px 17px; border-top:1px solid var(--line); }
.analytics-ranking article > em { display:none; }
.analytics-ranking article > div { min-width:0; }
.analytics-ranking b,.analytics-ranking small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.analytics-ranking b { font-size:12px; }
.analytics-ranking small { margin-top:3px; color:var(--muted); font-size:10px; }
.analytics-ranking article > span,.analytics-ranking article > strong { font-size:12px; }
.analytics-ranking .low { color:#a35c0d; font-weight:800; }
.region-list { padding:17px 18px 12px; display:grid; gap:14px; }
.region-list > div { display:grid; grid-template-columns:76px 1fr 37px; gap:10px; align-items:center; }
.region-list span b,.region-list span small { display:block; }
.region-list span b { font-size:12px; }.region-list span small { margin-top:2px; color:var(--muted); font-size:10px; }
.region-list i { height:8px; border-radius:5px; background:var(--green-line); overflow:hidden; }
.region-list i em { display:block; height:100%; border-radius:5px; background:var(--brand); }
.region-list strong { font-size:11px; text-align:right; }
.region-panel > aside { margin:4px 17px 17px; padding:13px; border-radius:10px; background:#fff6e9; color:#765422; }
.region-panel > aside b { font-size:12px; }.region-panel > aside p { margin:4px 0 0; font-size:11px; line-height:1.5; }

.onboarding-progress { min-height:100px; margin-top:14px; padding:12px 18px; border:1px solid var(--line); border-radius:15px; background:var(--white); display:grid; grid-template-columns:repeat(5,1fr); align-items:center; }
.onboarding-progress > div { position:relative; display:flex; flex-direction:column; align-items:center; gap:4px; color:var(--muted); text-align:center; }
.onboarding-progress > div:not(:last-child)::after { content:""; position:absolute; left:calc(50% + 24px); right:calc(-50% + 24px); top:19px; height:1px; background:var(--line-strong); }
.onboarding-progress > div > span { position:relative; z-index:1; width:39px; height:39px; border:1px solid var(--line); border-radius:50%; background:var(--white); display:grid; place-items:center; font-size:12px; }
.onboarding-progress .done { color:var(--success); }.onboarding-progress .active { color:var(--brand); }
.onboarding-progress .active > span { border-color:var(--brand); background:var(--brand); color:var(--white); }
.onboarding-progress svg { width:17px; }
.onboarding-progress b { font-size:12px; }.onboarding-progress small { font-size:10px; }
.onboarding-grid { margin-top:12px; display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:13px; align-items:start; }
.onboarding-grid form,.contract-side { display:grid; gap:12px; }
.contract-category-list { display:flex; flex-wrap:wrap; gap:7px; }
.contract-category-list label > span { min-height:35px; padding:0 12px; border:1px solid var(--line); border-radius:999px; display:flex; align-items:center; font-size:12px; }
.contract-save-actions { display:flex; justify-content:flex-end; gap:8px; }
.contract-save-actions .button { min-height:43px; font-size:13px; }
.contract-doc-list { display:grid; gap:8px; }
.contract-doc-list > div { min-height:57px; padding:9px 10px; border:1px solid var(--line); border-radius:9px; display:grid; grid-template-columns:22px 1fr auto; gap:8px; align-items:center; }
.contract-doc-list > div > svg { width:17px; color:var(--success); }
.contract-doc-list b,.contract-doc-list small { display:block; }
.contract-doc-list b { font-size:12px; }.contract-doc-list small { margin-top:3px; color:var(--muted); font-size:10px; }
.contract-doc-list button { height:29px; border:1px solid var(--line); border-radius:7px; background:var(--white); color:var(--sub); font-size:10px; }
.contract-manager > div:nth-child(2) { display:flex; align-items:center; gap:10px; }
.contract-manager .supplier-avatar { width:43px; height:43px; }
.contract-manager p { margin:0; }.contract-manager p b,.contract-manager p small { display:block; }
.contract-manager p b { font-size:13px; }.contract-manager p small { margin-top:3px; color:var(--muted); font-size:11px; }
.contract-manager > button { width:100%; height:37px; margin-top:14px; border:1px solid var(--line); border-radius:8px; background:var(--white); color:var(--sub); font-size:12px; }

@media (max-width: 1180px) {
  .supplier-products-table > header,.supplier-product-row { grid-template-columns:25px minmax(235px,1.25fr) minmax(130px,.7fr) 120px 105px 82px; gap:10px; }
  .supplier-pricing-table > header,.supplier-pricing-row { grid-template-columns:minmax(220px,1.25fr) 135px 120px 120px 125px 68px; gap:9px; }
  .supplier-quote-row { grid-template-columns:100px minmax(165px,.8fr) minmax(210px,1fr) 120px 130px 76px; gap:10px; }
  .supplier-settlement-row { grid-template-columns:118px minmax(155px,.9fr) 135px minmax(160px,1fr) minmax(145px,.8fr) 78px; gap:9px; }
}

@media (max-width: 1100px) {
  body.supplier-mode .supplier-page-head h1 { font-size:23px; }
  body.supplier-mode .supplier-page-head p { font-size:13px; }
  .supplier-head-actions { margin-top:13px; flex-wrap:wrap; }
  .supplier-mini-kpis,.analytics-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .supplier-mini-kpis > div,.analytics-kpis > div { min-height:92px; padding:14px; }
  .supplier-product-toolbar > div:last-child { grid-template-columns:minmax(0,1fr) auto !important; }
  .supplier-products-table { border:0; border-radius:0; background:transparent; overflow:visible; display:grid; gap:9px; }
  .supplier-products-table > header { display:none; }
  .supplier-product-row { min-height:0; padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--white); grid-template-columns:22px minmax(0,1fr) auto; grid-template-areas:"check core state" ". category category" ". price stock"; gap:11px 9px; }
  .supplier-row-check { grid-area:check; }.supplier-product-core { grid-area:core; }.supplier-product-state { grid-area:state; }
  .supplier-product-category { grid-area:category; padding:11px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .supplier-product-price { grid-area:price; }.supplier-product-stock { grid-area:stock; text-align:right; }
  .supplier-product-state button { width:65px; }
  .supplier-work-note { grid-template-columns:29px 1fr; }
  .supplier-work-note button { grid-column:2; width:max-content; }
  .admin-upload-grid { grid-template-columns:1fr; }
  .supplier-alert-banner { grid-template-columns:30px 1fr; }
  .supplier-alert-banner button { grid-column:2; width:max-content; }
  .supplier-pricing-table { border:0; border-radius:0; background:transparent; overflow:visible; display:grid; gap:9px; }
  .supplier-pricing-table > header { display:none; }
  .supplier-pricing-row { min-height:0; padding:14px; border:1px solid var(--line); border-radius:13px; background:var(--white); grid-template-columns:1fr 1fr; gap:12px 9px; }
  .supplier-pricing-row .supplier-product-core { grid-column:1/-1; padding-bottom:11px; border-bottom:1px solid var(--line); }
  .supplier-pricing-row > label > span:first-child { display:block; margin-bottom:6px; color:var(--sub); font-size:11px; }
  .supplier-pricing-row > .supplier-status { align-self:end; justify-self:end; }
  .supplier-save-bar { bottom:8px; flex-wrap:wrap; padding:12px; }
  .supplier-save-bar > div { width:100%; }
  .supplier-save-bar .button { flex:1; }
  .supplier-audit-panel { grid-template-columns:1fr; gap:13px; }
  .supplier-audit-panel li { grid-template-columns:70px 1fr; }
  .supplier-audit-panel li small { grid-column:2; }
  .admin-region-grid { grid-template-columns:repeat(2,1fr); }
  .supplier-stage-summary { min-height:0; grid-template-columns:repeat(5,135px); overflow-x:auto; padding:10px; }
  .supplier-stage-summary > div { min-height:70px; }
  .supplier-quote-row,.supplier-settlement-row { min-height:0; padding:14px; grid-template-columns:minmax(0,1fr) auto; gap:11px; }
  .supplier-quote-row { grid-template-areas:"quote-status quote-action" "quote-project quote-project" "quote-item quote-item" "quote-request quote-price"; }
  .quote-row-status { grid-area:quote-status; }.quote-row-project { grid-area:quote-project; padding-top:11px; border-top:1px solid var(--line); }.quote-row-item { grid-area:quote-item; padding-top:11px; border-top:1px solid var(--line); }.quote-row-request { grid-area:quote-request; padding-top:11px; border-top:1px solid var(--line); }.quote-row-price { grid-area:quote-price; padding-top:11px; border-top:1px solid var(--line); text-align:right; }.supplier-quote-row > button { grid-area:quote-action; min-width:76px; }
  .supplier-quote-progress { grid-template-columns:repeat(9,94px); overflow-x:auto; justify-content:start; }
  .quote-project-hero { grid-template-columns:39px 1fr; }
  .quote-project-hero em { grid-column:2; max-width:none; text-align:left; }
  .settlement-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .settlement-overview > div { min-height:105px; padding:15px; }
  .settlement-overview .settlement-total-card { grid-column:1/-1; }
  .supplier-policy-banner { grid-template-columns:25px 1fr; }
  .supplier-policy-banner button { grid-column:2; width:max-content; }
  .supplier-settlement-row { grid-template-areas:"settle-status settle-action" "settle-id settle-id" "settle-amount settle-amount" "settle-doc settle-date"; }
  .supplier-settlement-row > div:nth-child(1) { grid-area:settle-status; }.supplier-settlement-row > div:nth-child(2) { grid-area:settle-id; padding-top:11px; border-top:1px solid var(--line); }.supplier-settlement-row > div:nth-child(3) { grid-area:settle-amount; padding-top:11px; border-top:1px solid var(--line); }.supplier-settlement-row > div:nth-child(4) { grid-area:settle-doc; padding-top:11px; border-top:1px solid var(--line); }.supplier-settlement-row > div:nth-child(5) { grid-area:settle-date; padding-top:11px; border-top:1px solid var(--line); text-align:right; }.supplier-settlement-row > button { grid-area:settle-action; min-width:78px; }
  .settlement-detail-grid,.onboarding-grid { grid-template-columns:1fr; gap:10px; }
  #supplier-product-form,#supplier-shipping-form,#supplier-quote-response-form { grid-template-columns:1fr; gap:10px; }
  #supplier-product-form .supplier-detail-aside,#supplier-shipping-form .supplier-detail-aside,#supplier-quote-response-form .supplier-detail-aside { position:static; }
  .analytics-main-grid,.analytics-lower-grid { grid-template-columns:1fr; }
  .analytics-chart { height:245px; padding:18px 12px 14px; }
  .analytics-ranking > header,.analytics-ranking > article { grid-template-columns:minmax(180px,1fr) 80px 88px; }
  .analytics-ranking > header span:nth-child(3),.analytics-ranking > article > strong { display:none; }
  .onboarding-progress { grid-template-columns:repeat(5,125px); overflow-x:auto; justify-content:start; }
  .contract-save-actions .button { flex:1; }
}

@media (max-width: 390px) {
  .supplier-head-actions > button,.supplier-head-actions > select,.supplier-head-actions .supplier-file-button { width:100%; }
  .supplier-product-toolbar > div:last-child { grid-template-columns:1fr !important; }
  .supplier-bulk-button { width:100%; }
  .supplier-mini-kpis,.analytics-kpis { grid-template-columns:1fr 1fr; }
  .supplier-mini-kpis b,.analytics-kpis b { font-size:19px; }
  .supplier-pricing-row { grid-template-columns:1fr; }
  .supplier-pricing-row .supplier-product-core { grid-column:auto; }
  .supplier-pricing-row > .supplier-status { justify-self:start; }
  .supplier-save-bar .button { width:100%; flex:auto; }
  .supplier-audit-panel li { grid-template-columns:1fr; }
  .supplier-audit-panel li small { grid-column:auto; }
  .quote-project-hero em { grid-column:1/-1; }
  .supplier-quote-row { grid-template-areas:"quote-status quote-action" "quote-project quote-project" "quote-item quote-item" "quote-request quote-request" "quote-price quote-price"; }
  .quote-row-price { text-align:left; }
  .settlement-overview { grid-template-columns:1fr; }
  .settlement-overview .settlement-total-card { grid-column:auto; }
  .supplier-settlement-row { grid-template-areas:"settle-status settle-action" "settle-id settle-id" "settle-amount settle-amount" "settle-doc settle-doc" "settle-date settle-date"; }
  .supplier-settlement-row > div:nth-child(5) { text-align:left; }
  .analytics-chart { grid-template-columns:32px 1fr; }
  .chart-bars { gap:5px; }
  .chart-bars > div > span { width:68%; }
  .analytics-mix-panel ul { grid-template-columns:1fr; }
  .analytics-ranking > header,.analytics-ranking > article { grid-template-columns:minmax(150px,1fr) 70px; }
  .analytics-ranking > header span:nth-child(4),.analytics-ranking > article > span:last-child { display:none; }
  .contract-save-actions { display:grid; grid-template-columns:1fr; }
}
