/* ====================================================================
   CanProcX Consultant Portal — supplemental styles
   Inherits brand tokens (navy/gold) from /styles.css
   ==================================================================== */

.login-intro{
  color:var(--ink-soft);font-size:13.5px;line-height:1.55;margin:0 0 18px;text-align:center;
}

.consult-wrap{
  max-width:760px;margin:0 auto;padding:24px 20px 80px;
}

/* ---------- Status banner ---------- */
.status-banner{
  display:flex;align-items:center;gap:14px;border-radius:var(--radius);
  padding:16px 20px;margin-bottom:22px;border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.status-icon{font-size:26px;line-height:1}
.status-text{display:flex;flex-direction:column;gap:2px}
.status-text strong{font-size:15px}
.status-text span{font-size:13px;opacity:.85}
.status-pending{background:#fffbeb;border-color:#fde68a;color:#92400e}
.status-approved{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.status-rejected{background:#fef2f2;border-color:#fecaca;color:#991b1b}

/* ---------- Profile card ---------- */
.consult-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:28px 26px;
}
.consult-h1{font-size:22px;color:var(--navy);margin:0 0 4px}
.consult-sub{color:var(--ink-soft);font-size:14px;margin:0 0 22px}

.profile-form{display:flex;flex-direction:column;gap:16px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field small{font-weight:500;color:#94a3b8;text-transform:none;letter-spacing:0}
.field textarea{
  font:inherit;font-weight:500;padding:11px 13px;border:1.5px solid var(--line);
  border-radius:10px;color:var(--ink);background:#fff;resize:vertical;line-height:1.5;
}
.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,83,.18)}

/* ---------- Tag input ---------- */
.tag-input{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  border:1.5px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;
  min-height:46px;
}
.tag-input:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,83,.18)}
.tag-input input{
  flex:1;min-width:120px;border:none;outline:none;font:inherit;font-weight:500;
  padding:4px 2px;color:var(--ink);background:transparent;
}
.tag{
  display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;
  font-size:13px;font-weight:600;border-radius:8px;padding:5px 10px;
}
.tag .tag-x{
  cursor:pointer;font-weight:700;opacity:.7;border:none;background:none;color:#fff;
  font-size:14px;line-height:1;padding:0;
}
.tag .tag-x:hover{opacity:1}

.profile-actions{display:flex;align-items:center;gap:14px;margin-top:8px}
.saved-hint{color:var(--ok);font-size:13px;font-weight:600}

/* ---------- Certification test ---------- */
.cert-card{margin-top:24px}
.cert-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cert-optional{font-weight:500;color:#94a3b8;font-size:14px}
.cert-pill{
  display:inline-flex;align-items:center;font-size:12.5px;font-weight:700;
  border-radius:999px;padding:5px 12px;white-space:nowrap;
}
.cert-pill-pass{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.cert-pill-fail{background:#fffbeb;color:#92400e;border:1px solid #fde68a}

.cert-note{
  font-size:12.5px;line-height:1.5;color:var(--ink-soft);background:#f8fafc;
  border:1px solid var(--line);border-radius:10px;padding:10px 13px;margin:0 0 18px;
}

.cert-result{
  border-radius:10px;padding:13px 16px;margin:0 0 18px;font-size:14px;line-height:1.5;
  border:1px solid var(--line);
}
.cert-result-pass{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.cert-result-fail{background:#fffbeb;border-color:#fde68a;color:#92400e}

.cert-form{display:flex;flex-direction:column;gap:18px;margin-top:6px}
.cert-questions{display:flex;flex-direction:column;gap:20px}
.cert-q{border-top:1px solid var(--line);padding-top:16px}
.cert-q:first-child{border-top:none;padding-top:0}
.cert-q-text{font-size:14.5px;font-weight:600;color:var(--ink);margin:0 0 10px;line-height:1.5}
.cert-q-num{color:var(--gold);font-weight:800;margin-right:4px}
.cert-opts{display:flex;flex-direction:column;gap:8px}
.cert-opt{
  display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--line);
  border-radius:10px;padding:10px 13px;cursor:pointer;background:#fff;
  font-size:14px;line-height:1.45;transition:border-color .12s,background .12s;
}
.cert-opt:hover{border-color:var(--gold);background:#fffdf7}
.cert-opt input{margin-top:2px;accent-color:var(--navy);flex:none}
.cert-opt span{color:var(--ink);font-weight:500}

.cert-actions{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}

@media (max-width:640px){
  .grid-2{grid-template-columns:1fr}
}

/* ====================================================================
   CONSULTANT SPACE — workspace shell (Phase A)
   Reuses navy/gold tokens from /styles.css. Mirrors the Client Space.
   ==================================================================== */

/* ---- Client switcher (top bar) ---- */
.client-switch{display:flex;align-items:center;gap:8px;margin:0 auto 0 24px}
.client-switch-label{
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--gold);
}
.client-switch-select{
  font:inherit;font-weight:600;font-size:13px;padding:7px 12px;border-radius:10px;
  border:1.5px solid rgba(212,168,83,.5);background:#1e293b;color:#fff;cursor:pointer;
  min-width:200px;
}
.client-switch-select:focus{outline:none;border-color:var(--gold)}
.client-switch-select:disabled{opacity:.6;cursor:default}

/* ---- Nav tabs ---- */
.ws-nav{
  display:flex;gap:4px;background:#fff;border-bottom:2px solid var(--line);
  padding:0 24px;overflow-x:auto;position:sticky;top:54px;z-index:20;
}
.ws-nav .nav-tab{
  font:inherit;font-weight:600;font-size:14px;background:none;border:none;cursor:pointer;
  padding:13px 18px;color:var(--ink-soft);border-bottom:3px solid transparent;margin-bottom:-2px;
  white-space:nowrap;
}
.ws-nav .nav-tab:hover{color:var(--navy)}
.ws-nav .nav-tab.active{color:var(--navy);border-bottom-color:var(--gold)}

/* ---- Context strip ---- */
.ws-context{
  background:rgba(212,168,83,.10);border-bottom:1px solid var(--line);
  padding:9px 24px;font-size:13px;font-weight:600;color:var(--navy);
}

/* ---- Views ---- */
.ws-view{display:none}
.ws-view.active{display:block}
.ws-container{max-width:1080px;margin:0 auto;padding:24px 24px 80px}
.ws-page-header h1{font-size:24px;color:var(--navy);margin:0 0 4px}
.ws-page-header p{color:var(--ink-soft);font-size:14px;margin:0 0 22px}

/* ---- Stats ---- */
.ws-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.ws-stat{
  background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;
  box-shadow:var(--shadow);position:relative;overflow:hidden;
}
.ws-stat::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;background:var(--line)}
.ws-stat.accent::before{background:var(--gold)}
.ws-stat.win::before{background:var(--ok)}
.ws-stat-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#94a3b8;margin-bottom:7px}
.ws-stat-value{font-size:22px;font-weight:800;color:var(--navy);line-height:1.1;letter-spacing:-.3px}
.ws-stat.accent .ws-stat-value{color:var(--gold-dk)}
.ws-stat.win .ws-stat-value{color:var(--ok)}

/* ---- List builder ---- */
.ws-list-builder{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:16px 18px;margin-bottom:22px;
  display:flex;flex-direction:column;gap:14px;
}
.ws-list-builder-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ws-list-builder-row label{font-size:13px;font-weight:700;color:var(--ink-soft)}
.ws-list-builder .client-switch-select{background:#fff;color:var(--ink);border-color:var(--line)}
.ws-list-summary{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:14px;
}
.ws-list-head{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--navy)}
.ws-list-count{font-size:13px;color:var(--ink-soft)}
.ws-pill{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;background:#f1f5f9;color:#64748b;border:1px solid var(--line)}
.ws-pill-ok{background:#f0fdf4;color:#166534;border-color:#bbf7d0}

/* ---- Tender cards ---- */
.ws-tender-list{display:flex;flex-direction:column;gap:16px}
.t-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:18px 20px;
}
.t-head{display:flex;gap:14px;align-items:flex-start}
.t-flag{font-size:26px;line-height:1;flex:none}
.t-main{flex:1;min-width:0}
.t-title{font-size:16px;font-weight:700;color:var(--navy);margin:0 0 6px;line-height:1.35}
.t-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-soft)}
.t-ceta{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:999px;padding:1px 8px;font-weight:700;font-size:11px}
.t-right{text-align:right;flex:none}
.t-value{font-size:16px;font-weight:800;color:var(--gold-dk);letter-spacing:-.3px}
.t-deadline{font-size:12px;color:var(--ink-soft);margin-top:2px}
.t-match{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;background:var(--navy);color:#fff;border-radius:999px;padding:3px 10px}
.t-desc{font-size:13.5px;line-height:1.55;color:var(--navy-2);margin:14px 0 0}
.t-flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.t-flag-chip{font-size:11.5px;font-weight:600;background:#eef2ff;color:#3730a3;border:1px solid #e0e7ff;border-radius:8px;padding:3px 9px}
.t-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.t-spacer{flex:1}
.cpx-prepare{opacity:.85}

/* ---- Add-Client dropdown ---- */
.ac-wrap{position:relative;display:inline-block}
.ac-menu{
  position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:220px;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(15,23,42,.16);
  padding:8px;display:flex;flex-direction:column;gap:4px;
}
.ac-opt{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:13.5px;color:var(--ink)}
.ac-opt:hover{background:#f8fafc}
.ac-opt input{accent-color:var(--navy);flex:none}
.ac-empty{padding:10px;font-size:13px;color:#94a3b8;font-style:italic}

/* ---- Empty state ---- */
.ws-empty{text-align:center;padding:60px 20px;color:var(--ink-soft)}
.ws-empty-icon{font-size:42px;margin-bottom:10px}
.ws-empty h3{margin:6px 0;color:var(--navy);font-size:20px}
.ws-empty p{margin:0;font-size:14px}

/* When the profile/cert cards are hosted inside the Profile tab, keep their
   own centered max-width but drop the top padding the standalone view used. */
#ws-profile .consult-wrap{padding-top:24px}

/* ---- Prepared-bid card indicator ---- */
.t-prepared{margin-right:auto}

/* ---- Prepared-bids dashboard panel ---- */
.cpx-prep-panel{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:14px 18px;margin-bottom:22px;
}
.cpx-prep-panel-head{
  font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;
  color:var(--navy);display:flex;align-items:center;gap:10px;margin-bottom:8px;
}
.cpx-prep-row{
  display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);
}
.cpx-prep-row:first-of-type{border-top:none}
.cpx-prep-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cpx-prep-row-title{font-size:14px;font-weight:600;color:var(--navy)}

/* ====================================================================
   PREPARE BID — modal (Phase C). prepare-but-NOT-submit boundary.
   ==================================================================== */
.cpx-modal-backdrop{
  position:fixed;inset:0;z-index:200;display:none;align-items:flex-start;justify-content:center;
  background:rgba(15,23,42,.55);backdrop-filter:blur(2px);padding:40px 16px;overflow-y:auto;
}
.cpx-modal-backdrop.open{display:flex}
body.cpx-modal-lock{overflow:hidden}
.cpx-modal{
  width:100%;max-width:620px;background:var(--card);border-radius:18px;
  box-shadow:0 24px 60px rgba(15,23,42,.35);border:1px solid var(--line);
  display:flex;flex-direction:column;max-height:calc(100vh - 80px);overflow:hidden;
}
.cpx-modal-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:20px 22px 14px;border-bottom:1px solid var(--line);
}
.cpx-modal-eyebrow{
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--gold-dk);margin-bottom:4px;
}
.cpx-modal-title{font-size:19px;color:var(--navy);margin:0;line-height:1.3}
.cpx-modal-x{
  flex:none;border:none;background:none;cursor:pointer;font-size:26px;line-height:1;
  color:var(--ink-soft);padding:0 4px;border-radius:8px;
}
.cpx-modal-x:hover{color:var(--navy);background:#f1f5f9}
.cpx-modal-body{padding:18px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}
.cpx-modal-foot{
  display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--line);
  background:#f8fafc;flex-wrap:wrap;
}
.cpx-modal-foot-spacer{flex:1}

.cpx-prep-tender{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:13px 15px}
.cpx-prep-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:12.5px;color:var(--ink-soft);font-weight:600}
.cpx-prep-flag{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:999px;padding:1px 9px;font-size:11px}
.cpx-prep-desc{font-size:13px;line-height:1.55;color:var(--navy-2);margin:9px 0 0}

.cpx-prep-notice{
  font-size:12.5px;line-height:1.5;color:#92400e;background:#fffbeb;border:1px solid #fde68a;
  border-radius:10px;padding:10px 13px;
}
.cpx-prep-section{display:flex;flex-direction:column;gap:9px}
.cpx-prep-label{font-size:13px;font-weight:700;color:var(--ink-soft)}
.cpx-prep-label small{font-weight:500;color:#94a3b8}
.cpx-prep-checklist{display:flex;flex-direction:column;gap:7px}
.cpx-prep-check{
  display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--line);border-radius:10px;
  padding:9px 12px;cursor:pointer;background:#fff;font-size:13.5px;line-height:1.45;color:var(--ink);
}
.cpx-prep-check:hover{border-color:var(--gold);background:#fffdf7}
.cpx-prep-check input{margin-top:2px;accent-color:var(--navy);flex:none}
.cpx-prep-textarea,.cpx-prep-input{
  font:inherit;font-weight:500;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;
  color:var(--ink);background:#fff;line-height:1.5;width:100%;box-sizing:border-box;
}
.cpx-prep-textarea{resize:vertical}
.cpx-prep-textarea:focus,.cpx-prep-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,83,.18)}
.cpx-prep-status{font-size:12.5px;color:var(--ink-soft)}

/* ====================================================================
   TENDER SEARCH (Feature A) + CPV controls + PRODUCTS (Feature C)
   + CLIENT LISTS (Feature B). Reuses navy/gold tokens from /styles.css.
   ==================================================================== */

/* ---- Search panels ---- */
.ws-search-panel{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:16px 18px;margin-bottom:16px;
}
.ws-search-box input{
  font:inherit;font-weight:500;font-size:15px;padding:12px 14px;border:1.5px solid var(--line);
  border-radius:10px;color:var(--ink);background:#fff;width:100%;box-sizing:border-box;
}
.ws-search-box input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,83,.18)}

.ws-notice-lookup{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ws-notice-lookup label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--gold-dk)}
.ws-notice-lookup input{
  font:inherit;font-weight:500;font-size:13.5px;padding:8px 12px;border:1.5px solid var(--line);
  border-radius:10px;color:var(--ink);background:#fff;min-width:240px;flex:1;
}
.ws-notice-lookup input:focus{outline:none;border-color:var(--gold)}
.ws-notice-result{font-size:12.5px;font-weight:600;color:var(--ink-soft)}
.ws-notice-result.ok{color:var(--ok)}
.ws-notice-result.err{color:#b91c1c}

.ws-filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.ws-filter-row select{
  font:inherit;font-weight:600;font-size:13px;padding:9px 12px;border-radius:10px;
  border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;
}
.ws-filter-row select:focus{outline:none;border-color:var(--gold)}
.ws-ceta-toggle{
  display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;
  color:var(--ink-soft);cursor:pointer;white-space:nowrap;
}
.ws-ceta-toggle input{accent-color:var(--navy)}

.ws-search-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.ws-search-count{font-size:13px;font-weight:600;color:var(--navy)}
.btn-secondary{background:#e2e8f0;color:var(--navy);border:1px solid var(--line)}
.btn-secondary:hover{background:#cbd5e1}

.ws-list-title-input{background:#fff !important;color:var(--ink) !important;border-color:var(--line) !important;min-width:220px}

/* ---- CPV search dropdown + chips (mirror the client app) ---- */
.ws-cpv-wrap{position:relative;flex:1;min-width:220px}
.ws-cpv-wrap input{
  font:inherit;font-weight:500;font-size:13px;padding:9px 12px;border:1.5px solid var(--line);
  border-radius:10px;color:var(--ink);background:#fff;width:100%;box-sizing:border-box;
}
.ws-cpv-wrap input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,168,83,.18)}
.cpx-cpv-dropdown{
  display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;
  background:#fff;border:1px solid var(--line);border-radius:12px;max-height:320px;overflow-y:auto;
  box-shadow:0 12px 30px rgba(15,23,42,.16);
}
.cpx-cpv-opt{
  padding:9px 12px;font-size:12.5px;cursor:pointer;display:flex;align-items:center;gap:9px;
  border-bottom:1px solid #f1f5f9;
}
.cpx-cpv-opt:hover,.cpx-cpv-opt.active{background:#fffdf7}
.cpx-cpv-opt code{font-family:ui-monospace,monospace;font-size:12px;color:var(--navy);min-width:78px;flex:none}
.cpx-cpv-opt .cpv-desc{flex:1;color:var(--ink-soft)}
.cpx-cpv-opt .cpv-breadth{font-size:10.5px;color:#94a3b8;white-space:nowrap}
.cpx-cpv-opt .cpv-check{color:var(--ok);font-weight:700}
.cpx-cpv-empty{padding:10px 12px;font-size:12.5px;color:#94a3b8;font-style:italic}

.ws-cpv-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.ws-cpv-chips:empty{display:none}
.cpx-cpv-chip{
  display:inline-flex;align-items:center;gap:7px;background:var(--navy);color:#fff;
  font-size:11.5px;font-weight:600;border-radius:14px;padding:4px 10px;line-height:1;
}
.cpx-cpv-chip .chip-x{cursor:pointer;font-weight:700;opacity:.8}
.cpx-cpv-chip .chip-x:hover{opacity:1}
.cpx-cpv-clear{cursor:pointer;font-size:11.5px;color:var(--ink-soft);text-decoration:underline;align-self:center}

/* ---- Tender card selection (Feature B: add to client list) ---- */
.t-select{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer}
.t-select input{accent-color:var(--navy)}

/* ---- Products & Services (Feature C) ---- */
.ws-prod-card{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:18px 20px;margin-bottom:18px;
}
.ws-prod-h3{font-size:15px;font-weight:700;color:var(--navy);margin:0 0 12px}
.ws-prod-search{max-width:540px}
.ws-prod-hint{font-size:12.5px;color:#94a3b8;margin:9px 0 0}
.ws-prod-list-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.ws-prod-item{
  display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);
  border-radius:10px;margin-bottom:8px;flex-wrap:wrap;
}
.ws-prod-item code{font-family:ui-monospace,monospace;font-size:12.5px;color:var(--navy);min-width:84px;flex:none}
.ws-prod-item .prod-desc{flex:1;min-width:140px;font-size:13.5px;color:var(--ink)}
.ws-prod-empty{font-size:13.5px;color:#94a3b8;padding:6px 0}
.btn-danger{color:#b91c1c;background:#fff;border:1px solid #fecaca}
.btn-danger:hover{background:#fef2f2}

/* ---- Client Lists (Feature B) ---- */
.ws-clist{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:16px 18px;margin-bottom:18px;
}
.ws-clist-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.ws-clist-title{font-size:15px;font-weight:700;color:var(--navy)}
.ws-clist-sub{font-size:12.5px;color:var(--ink-soft);margin:0 0 12px}
.ws-clist-tender{
  display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13px;
}
.ws-clist-tender:first-of-type{border-top:none}
.ws-clist-tender .clt-main{flex:1;min-width:0}
.ws-clist-tender .clt-title{font-weight:600;color:var(--navy)}
.ws-clist-tender .clt-meta{font-size:11.5px;color:var(--ink-soft)}
.ws-clist-tender .clt-cpv{font-family:ui-monospace,monospace;font-size:11.5px;color:var(--gold-dk)}

/* ---- CPV-assignment control (Feature C key ask) ---- */
.ws-cpv-assign{
  background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:13px 15px;margin-top:14px;
}
.ws-cpv-assign-label{font-size:12.5px;font-weight:700;color:var(--ink-soft);margin-bottom:9px}
.ws-cpv-assign-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ws-cpv-assign-row select{
  font:inherit;font-weight:600;font-size:13px;padding:9px 12px;border-radius:10px;
  border:1.5px solid var(--line);background:#fff;color:var(--ink);min-width:280px;flex:1;
}
.ws-cpv-assign-row select:focus{outline:none;border-color:var(--gold)}
.ws-cpv-assigned{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.ws-cpv-assigned:empty{display:none}
.cpx-assigned-chip{
  display:inline-flex;align-items:center;gap:7px;background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;
  font-size:11.5px;font-weight:600;border-radius:14px;padding:4px 10px;line-height:1;
}
.cpx-assigned-chip .chip-x{cursor:pointer;font-weight:700;opacity:.75}
.cpx-assigned-chip .chip-x:hover{opacity:1}

@media (max-width:760px){
  .client-switch{margin:0;width:100%;order:3}
  .topbar{flex-wrap:wrap;gap:10px}
  .ws-stats{grid-template-columns:1fr 1fr}
  .t-head{flex-wrap:wrap}
  .t-right{text-align:left}
  .cpx-modal{max-height:calc(100vh - 32px)}
  .cpx-modal-backdrop{padding:16px}
  .ws-filter-row select,.ws-cpv-wrap{width:100%;flex:1 1 100%}
  .ws-cpv-assign-row select{min-width:0;width:100%}
}
