/* ============================================================
   SELLER CONTRACTS - .sdx reskin (v1)
   Loads AFTER seller-dash.css (.sdx base: vars, ws-band, btn, wsx,
   skeleton) + seller-business-sdx.css (ed-panel/ed-kicker/ed-h/ed-wsx).
   This file adds the contracts-only pieces: toolbar, status filter
   seg, sort select, CSV btn, the contracts TABLE (desktop) + the
   card ROWS (mobile), status pills, metric chips, empty state.
   Specificity: body.fp-ed .sdx .ed-* beats buyer-lux bl-* rules.
   ============================================================ */

body.fp-ed .sdx .sc-wrap{padding-top:26px;padding-bottom:90px}
body.fp-ed .sdx .sc-wrap .ws-band{margin:0 0 18px}

/* count line under hero */
body.fp-ed .sdx [data-sc-count]{margin:0;font-family:'Inter',sans-serif;font-size:13px;color:var(--sdx-ink-400);font-weight:500}

/* ---- stats grid: 6 wsx cards ---- */
body.fp-ed .sdx .ed-sc-stats{grid-template-columns:repeat(6,1fr)}
@media (max-width:1180px){body.fp-ed .sdx .ed-sc-stats{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){body.fp-ed .sdx .ed-sc-stats{grid-template-columns:repeat(2,1fr)}}

/* ---- panel head chips ---- */
body.fp-ed .sdx .ed-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
body.fp-ed .sdx .ed-metricchips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
body.fp-ed .sdx .ed-metricchip{display:inline-flex;align-items:center;gap:5px;font-family:'Inter',sans-serif;font-size:11px;font-weight:700;line-height:1;color:var(--sdx-ink-600);background:var(--sdx-surface-2);border:1px solid var(--sdx-line-soft);border-radius:20px;padding:5px 11px;white-space:nowrap}
body.fp-ed .sdx .ed-metricchip svg{width:12px;height:12px;color:var(--sdx-brand-500)}
body.fp-ed .sdx .ed-metricchip b{font-family:'Inter',sans-serif;font-weight:800;color:var(--sdx-ink-800)}

/* ---- toolbar ---- */
body.fp-ed .sdx .ed-toolbar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin:14px 0 6px;padding:0;border:0;background:transparent}
body.fp-ed .sdx .ed-toolbar .ed-search{display:flex;align-items:center;gap:9px;flex:1 1 240px;max-width:360px;margin:0;height:40px;padding:0 13px;background:var(--sdx-surface-2);border:1px solid var(--sdx-line);border-radius:12px;overflow:hidden;transition:.15s}
body.fp-ed .sdx .ed-toolbar .ed-search:focus-within{border-color:var(--sdx-brand-300);background:var(--sdx-surface);box-shadow:0 0 0 3px var(--sdx-brand-50)}
body.fp-ed .sdx .ed-toolbar .ed-search svg{position:static;transform:none;margin:0;width:15px;height:15px;color:var(--sdx-ink-400);flex:none}
body.fp-ed .sdx .ed-toolbar .ed-search input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-family:'Inter',sans-serif;font-size:13px;font-weight:500;color:var(--sdx-ink-800);padding:0;margin:0}
body.fp-ed .sdx .ed-toolbar .ed-search input::placeholder{color:var(--sdx-ink-400)}
/* status filter seg (rendered buttons) */
body.fp-ed .sdx .ed-seg{display:inline-flex;flex-wrap:wrap;background:var(--sdx-surface-2);border:1px solid var(--sdx-line);border-radius:11px;padding:3px;gap:2px}
body.fp-ed .sdx .ed-seg button,body.fp-ed .sdx .ed-seg [role="tab"]{height:30px;padding:0 12px;border:0;background:transparent;border-radius:8px;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;color:var(--sdx-ink-500);cursor:pointer;transition:.15s;white-space:nowrap}
body.fp-ed .sdx .ed-seg button:hover{color:var(--sdx-ink-800)}
body.fp-ed .sdx .ed-seg button.is-active,body.fp-ed .sdx .ed-seg [aria-selected="true"]{background:var(--sdx-ink-900);color:#fff;box-shadow:var(--sdx-shadow-sm)}
body.fp-ed .sdx .ed-select{height:40px;min-height:0;box-sizing:border-box;padding:0 34px 0 13px;border:1px solid var(--sdx-line);border-radius:12px;background-color:var(--sdx-surface);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:700;color:var(--sdx-ink-700);cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667694' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:13px;transition:.15s}
body.fp-ed .sdx .ed-select:hover{border-color:var(--sdx-brand-300)}
body.fp-ed .sdx .ed-sc-csv{display:inline-flex;align-items:center;gap:7px;height:40px;min-height:0;padding:0 16px;margin-left:auto;border:1px solid var(--sdx-line);border-radius:12px;background:var(--sdx-surface);font-family:'Inter',sans-serif;font-size:12.5px;font-weight:800;color:var(--sdx-ink-700);cursor:pointer;transition:.15s}
body.fp-ed .sdx .ed-sc-csv svg{width:15px;height:15px}
body.fp-ed .sdx .ed-sc-csv:hover{border-color:var(--sdx-brand-300);color:var(--sdx-brand-600);box-shadow:var(--sdx-shadow-sm);transform:translateY(-1px)}
body.fp-ed .sdx .ed-sc-csv:disabled{opacity:.5;cursor:default;transform:none}

/* ---- contracts TABLE (desktop) ---- */
body.fp-ed .sdx .ed-sc-tablewrap{overflow-x:auto;border-radius:14px;border:1px solid var(--sdx-line-soft);margin-top:8px}
body.fp-ed .sdx .ed-sc-table{width:100%;border-collapse:collapse;font-family:'Inter',sans-serif}
body.fp-ed .sdx .ed-sc-table thead th{position:sticky;top:0;background:var(--sdx-surface-2);text-align:left;padding:0;border-bottom:1px solid var(--sdx-line);white-space:nowrap}
body.fp-ed .sdx .ed-sc-th{display:inline-flex;align-items:center;gap:5px;width:100%;padding:12px 14px;border:0;background:transparent;font-family:'Inter',sans-serif;font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sdx-ink-400);cursor:pointer;transition:.15s}
body.fp-ed .sdx .ed-sc-th:hover{color:var(--sdx-ink-700)}
body.fp-ed .sdx .ed-sc-th.is-on{color:var(--sdx-brand-600)}
body.fp-ed .sdx .ed-sc-sort{display:inline-flex;opacity:0;transition:.15s}
body.fp-ed .sdx .ed-sc-sort svg{width:13px;height:13px}
body.fp-ed .sdx .ed-sc-th:hover .ed-sc-sort,body.fp-ed .sdx .ed-sc-sort.is-on{opacity:1}
body.fp-ed .sdx .ed-sc-sort.is-asc{transform:rotate(180deg)}
body.fp-ed .sdx .ed-sc-table tbody td{padding:13px 14px;border-bottom:1px solid var(--sdx-line-soft);font-size:13px;color:var(--sdx-ink-700);vertical-align:middle}
body.fp-ed .sdx .ed-sc-table tbody tr{transition:background .15s;cursor:pointer}
body.fp-ed .sdx .ed-sc-table tbody tr:hover{background:var(--sdx-surface-2)}
body.fp-ed .sdx .ed-sc-table tbody tr:last-child td{border-bottom:0}
body.fp-ed .sdx .ed-sc-cnum{font-family:'Inter',sans-serif;font-weight:800;color:var(--sdx-ink-800);font-size:12.5px}
body.fp-ed .sdx .ed-sc-num{font-family:'Inter',sans-serif;font-weight:800;color:var(--sdx-ink-900);text-align:right}
body.fp-ed .sdx .ed-sc-muted{color:var(--sdx-ink-400)}
body.fp-ed .sdx .ed-sc-buyer{display:flex;align-items:center;gap:10px;min-width:0}
body.fp-ed .sdx .ed-sc-buyer-tx{min-width:0}
body.fp-ed .sdx .ed-sc-buyer-tx strong{display:block;font-weight:700;color:var(--sdx-ink-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.fp-ed .sdx .ed-sc-buyer-tx small{color:var(--sdx-ink-400)}
body.fp-ed .sdx .ed-sc-av{width:34px;height:34px;border-radius:10px;flex:none;overflow:hidden;display:grid;place-items:center;background:var(--sdx-brand-50)}
body.fp-ed .sdx .ed-sc-av img{width:100%;height:100%;object-fit:cover}
body.fp-ed .sdx .ed-sc-ini{font-family:'Inter',sans-serif;font-weight:800;font-size:12px;color:var(--sdx-brand-600)}
body.fp-ed .sdx .ed-sc-serve{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--sdx-ink-800);font-weight:600}
body.fp-ed .sdx .ed-sc-date{color:var(--sdx-ink-500);white-space:nowrap}
body.fp-ed .sdx .ed-sc-due-soon{color:var(--sdx-amber-600);font-weight:700}
body.fp-ed .sdx .ed-sc-due-over{color:#b42318;font-weight:700}
body.fp-ed .sdx .ed-sc-hourly{display:inline-block;font-family:'Inter',sans-serif;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--sdx-brand-600);background:var(--sdx-brand-50);border:1px solid var(--sdx-brand-100);border-radius:6px;padding:2px 6px;vertical-align:middle;margin-left:6px}

/* ---- card ROWS (mobile) ---- */
body.fp-ed .sdx .ed-sc-cards{display:none}
body.fp-ed .sdx .ed-ws-list{display:flex;flex-direction:column;gap:2px}
body.fp-ed .sdx .ed-ws-row{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:13px;padding:13px 8px;border-radius:12px;border-bottom:1px solid var(--sdx-line-soft);text-decoration:none;color:inherit;transition:background .15s}
body.fp-ed .sdx .ed-ws-row:last-child{border-bottom:0}
body.fp-ed .sdx .ed-ws-row:hover{background:var(--sdx-surface-2)}
body.fp-ed .sdx .ed-ws-thumb{width:46px;height:46px;border-radius:13px;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--sdx-brand-50)}
body.fp-ed .sdx .ed-ws-thumb img{width:100%;height:100%;object-fit:cover}
body.fp-ed .sdx .ed-ws-main{min-width:0}
body.fp-ed .sdx .ed-ws-main strong{display:block;font-family:'Inter',sans-serif;font-size:13.5px;font-weight:700;color:var(--sdx-ink-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.fp-ed .sdx .ed-ws-main > span{display:block;font-size:11.5px;color:var(--sdx-ink-400);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.fp-ed .sdx .ed-ws-amount{font-family:'Inter',sans-serif;font-size:14.5px;font-weight:800;color:var(--sdx-ink-900);grid-column:3;white-space:nowrap}
body.fp-ed .sdx .ed-ws-row .ed-pill{grid-column:2/4;justify-self:end}

/* ---- status pills ---- */
body.fp-ed .sdx .ed-pill{display:inline-flex;align-items:center;gap:5px;font-family:'Inter',sans-serif;font-size:11px;font-weight:800;padding:4px 10px;border-radius:20px;white-space:nowrap;border:1px solid transparent}
body.fp-ed .sdx .ed-pill.is-active,body.fp-ed .sdx .ed-pill.is-progress{color:var(--sdx-brand-600);background:var(--sdx-brand-50);border-color:var(--sdx-brand-100)}
body.fp-ed .sdx .ed-pill.is-delivered,body.fp-ed .sdx .ed-pill.is-review{color:var(--sdx-amber-600);background:var(--sdx-amber-50);border-color:#f3dfb6}
body.fp-ed .sdx .ed-pill.is-revision{color:#b06a00;background:#fff4e2;border-color:#f3dfb6}
body.fp-ed .sdx .ed-pill.is-completed,body.fp-ed .sdx .ed-pill.is-done{color:var(--sdx-green-600);background:var(--sdx-green-50);border-color:#bfeeda}
body.fp-ed .sdx .ed-pill.is-cancelled,body.fp-ed .sdx .ed-pill.is-disputed,body.fp-ed .sdx .ed-pill.is-bad{color:#b42318;background:var(--sdx-red-50);border-color:#f6cccc}

/* ---- empty ---- */
body.fp-ed .sdx .ed-empty{text-align:center;padding:44px 16px}
body.fp-ed .sdx .ed-empty h3{font-family:'Inter',sans-serif;font-size:16px;font-weight:800;color:var(--sdx-ink-800)}
body.fp-ed .sdx .ed-empty p{font-family:'Inter',sans-serif;font-size:13px;color:var(--sdx-ink-400);margin-top:6px;max-width:44ch;margin-left:auto;margin-right:auto}
body.fp-ed .sdx .ed-empty .ed-btn-fill{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 20px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--sdx-brand-500),var(--sdx-brand-700));color:#fff;font-family:'Inter',sans-serif;font-weight:800;font-size:13.5px;box-shadow:var(--sdx-shadow-pop);text-decoration:none}

/* entrance */
@keyframes scRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
body.fp-ed .sdx .ws-band,body.fp-ed .sdx .ed-sc-stats .ed-wsx,body.fp-ed .sdx .ed-panel{animation:scRise .5s cubic-bezier(.2,.7,.2,1) both}
body.fp-ed .sdx .ed-sc-stats .ed-wsx:nth-child(2){animation-delay:.04s}
body.fp-ed .sdx .ed-sc-stats .ed-wsx:nth-child(3){animation-delay:.08s}
body.fp-ed .sdx .ed-sc-stats .ed-wsx:nth-child(4){animation-delay:.12s}
body.fp-ed .sdx .ed-sc-stats .ed-wsx:nth-child(5){animation-delay:.16s}
body.fp-ed .sdx .ed-sc-stats .ed-wsx:nth-child(6){animation-delay:.2s}
body.fp-ed .sdx .ed-panel{animation-delay:.12s}
@media (prefers-reduced-motion:reduce){body.fp-ed .sdx .ws-band,body.fp-ed .sdx .ed-wsx,body.fp-ed .sdx .ed-panel{animation:none}}

/* ---- responsive: swap table -> cards ---- */
@media (max-width:820px){
  body.fp-ed .sdx .ed-sc-tablewrap{display:none}
  body.fp-ed .sdx .ed-sc-cards{display:block}
  body.fp-ed .sdx .ed-toolbar .ed-search{max-width:none;flex:1 1 100%}
  body.fp-ed .sdx .ed-sc-csv{margin-left:0}
}
/* small phones: tidy the wrapped toolbar - status filter becomes one scrollable row with bigger tap targets, sort+CSV share the last row */
@media (max-width:560px){
  body.fp-ed .sdx .ed-toolbar .ed-seg{flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
  body.fp-ed .sdx .ed-toolbar .ed-seg button,body.fp-ed .sdx .ed-toolbar .ed-seg [role="tab"]{height:38px;flex:0 0 auto}
  body.fp-ed .sdx .ed-toolbar .ed-select{flex:1 1 auto}
}
