:root{--p:#0B7F83;--pd:#075F62;--a:#13A779;--ink:#17323A;--muted:#6E7C82;--line:#DFE8E8;--bg:#F4F8F8;--nav:#10363B;--warn:#B2780B;--danger:#C53C3C;--shadow:0 12px 32px rgba(24,66,72,.08);--r:18px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.portal{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--nav);color:#EAF4F4;padding:22px 16px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px}.brand-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--p),var(--a));display:grid;place-items:center;color:white;font-weight:900}.brand strong{display:block}.brand strong span{color:#54D8B5}.brand small{display:block;color:#A8C1C4}.nav{width:100%;border:0;background:transparent;color:#C7D7D9;padding:12px 13px;border-radius:12px;text-align:left;display:flex;justify-content:space-between;font-weight:700;margin-bottom:4px;cursor:pointer}.nav.active,.nav:hover{background:#18484F;color:#fff}.badge{background:#2E6C73;border-radius:999px;font-size:11px;padding:3px 7px}.sidebar-foot{margin-top:auto}.org-card{background:#18484F;border-radius:14px;padding:13px}.org-card strong,.org-card small{display:block}.org-card small{color:#A8C1C4;margin-top:4px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.95);position:sticky;top:0;z-index:10}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--p)}h1{margin:4px 0 0;font-size:28px}h2{margin:0 0 6px;font-size:22px}h3{margin:0 0 4px}p{color:var(--muted);line-height:1.5}.top-actions{display:flex;gap:10px;align-items:center}.avatar{width:40px;height:40px;border:0;border-radius:12px;background:var(--p);color:white;font-weight:800}.content{padding:26px 28px 48px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric,.card{background:white;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.metric{padding:18px}.metric .value{font-size:30px;font-weight:900;margin-top:8px}.metric small{color:var(--muted);font-weight:700}.section{margin-top:22px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{padding:18px}.stack{display:grid;gap:12px}.btn{border:0;border-radius:12px;padding:11px 14px;font-weight:800;cursor:pointer}.btn-primary{background:var(--p);color:white}.btn-secondary{background:#EAF7F6;color:var(--pd)}.btn-outline{background:white;border:1px solid #C8DADA;color:var(--pd)}.btn-danger{background:#FFF0F0;color:var(--danger)}.btn-sm{padding:8px 10px;font-size:12px}.pill{display:inline-flex;border-radius:999px;padding:6px 9px;background:#EEF6F6;color:var(--pd);font-size:11px;font-weight:800}.pill.success{background:#EAF8F2;color:#138A67}.pill.warn{background:#FFF6DF;color:var(--warn)}.pill.danger{background:#FFF0F0;color:var(--danger)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:white}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #EDF2F2;font-size:13px;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#F9FBFB}.field{display:grid;gap:6px}.field label{font-size:12px;font-weight:800}.input,.select,.textarea{width:100%;border:1px solid #CADCDC;border-radius:12px;padding:11px;background:white;outline:none}.textarea{min-height:88px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--p);box-shadow:0 0 0 3px rgba(11,127,131,.09)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.muted{color:var(--muted)}.empty,.loading{text-align:center;padding:36px;color:var(--muted)}.error-card{background:#FFF7F7;border:1px solid #F1C5C5;color:#7C2525;border-radius:14px;padding:14px}.decision-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:white}.decision-card .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.raw{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#F6F9F9;border-radius:12px;padding:10px;white-space:pre-wrap;word-break:break-word}.auth-mode .portal{display:block;max-width:560px;margin:0 auto;background:white;min-height:100vh}.auth-mode .sidebar,.auth-mode .topbar{display:none}.auth-mode .content{display:grid;place-items:center;min-height:100vh}.auth-card{width:min(100%,430px);background:white;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:28px}.auth-card .brand{padding:0 0 24px;color:var(--ink)}.auth-card .brand small{color:var(--muted)}.auth-card form{display:grid;gap:14px}#toastRoot{position:fixed;right:20px;bottom:20px;z-index:50}.toast{background:#17323A;color:white;padding:12px 15px;border-radius:12px;box-shadow:var(--shadow);margin-top:8px}@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:760px){.portal{display:block}.sidebar{position:static;height:auto}.sidebar nav{display:flex;overflow:auto}.nav{min-width:max-content}.sidebar-foot{display:none}.topbar{padding:14px 16px}.content{padding:18px 14px 40px}.metrics{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.top-actions .btn{display:none}.auth-mode .sidebar{display:none}}
.nav-section{padding:16px 13px 6px;font-size:10px;letter-spacing:.12em;font-weight:900;color:#78999D}
.dashboard-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;background:linear-gradient(135deg,#10363B,#165E63);color:white;border-radius:22px;padding:24px 26px;margin-bottom:18px;box-shadow:var(--shadow)}
.dashboard-hero h2{font-size:28px;margin:4px 0 6px}.dashboard-hero p{color:#C6DDDF;margin:0}.dashboard-hero .eyebrow{color:#78E5C5}
.hero-value{text-align:right;min-width:220px}.hero-value small{display:block;color:#B9D0D2;font-weight:700}.hero-value strong{display:block;font-size:28px;margin-top:5px}
.marketplace-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}
.pipeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:16px}
.pipeline-stage{background:#F3F8F8;border:1px solid var(--line);border-radius:14px;padding:14px 10px;text-align:center}
.pipeline-stage strong{display:block;font-size:24px}.pipeline-stage span{display:block;color:var(--muted);font-size:11px;font-weight:800;margin-top:4px}
.attention-row{width:100%;border:0;border-bottom:1px solid #EDF2F2;background:white;padding:13px 2px;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;color:var(--ink)}
.attention-row:last-child{border-bottom:0}.attention-row:hover{color:var(--p)}.attention-row strong{min-width:34px;text-align:center;background:#FFF6DF;color:var(--warn);padding:5px 8px;border-radius:999px}
.compact table{min-width:620px}.compact th,.compact td{padding:10px 11px}
.participant-table table{min-width:1180px}.manager-control{display:grid;grid-template-columns:minmax(150px,1fr) auto auto;gap:6px;margin-top:7px}.manager-control .select{padding:8px;font-size:12px}
@media(max-width:1180px){.marketplace-metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.pipeline{grid-template-columns:repeat(5,minmax(100px,1fr));overflow:auto}}
@media(max-width:760px){.dashboard-hero{align-items:flex-start;flex-direction:column}.hero-value{text-align:left}.marketplace-metrics{grid-template-columns:1fr 1fr}.pipeline{grid-template-columns:repeat(5,110px)}.nav-section{display:none}}

/* Admin application shell: keep navigation and work area usable at 100% zoom. */
@media(min-width:761px){
  html,body{height:100%;overflow:hidden}
  .portal{height:100vh;min-height:0;grid-template-columns:260px minmax(0,1fr);overflow:hidden}
  .sidebar{position:relative;top:auto;height:100vh;min-height:0;overflow-y:auto;overflow-x:hidden}
  .main{height:100vh;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden}
  .topbar{position:sticky;top:0;z-index:20}
  .content{min-height:max-content;padding-bottom:72px}
  .auth-mode{overflow:auto}
  .auth-mode .portal{height:auto;min-height:100vh;overflow:visible}
}

.matching-count{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.matching-count strong{font-size:28px}.matching-count span{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.matching-toolbar{padding:14px;margin-bottom:14px}
.matching-filters{display:grid;grid-template-columns:minmax(240px,2fr) minmax(180px,1fr) 150px 130px 150px auto auto;gap:8px;align-items:center}
.matching-table table{min-width:1040px}
.matching-table th,.matching-table td{padding:11px 12px}
.matching-table td:first-child{max-width:340px}
.matching-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;color:var(--muted);font-size:13px;font-weight:700}
.matching-pager button:disabled{opacity:.45;cursor:not-allowed}
.supplier-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.supplier-fields>div{background:#F6F9F9;border:1px solid var(--line);border-radius:12px;padding:10px}
.supplier-fields small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-bottom:4px}
.supplier-fields strong{display:block;font-size:13px;word-break:break-word}
.raw-details{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.raw-details summary{cursor:pointer;color:var(--pd);font-weight:800;font-size:13px}
.raw-details .raw{margin-top:10px;max-height:260px;overflow:auto}

@media(max-width:1350px){
  .matching-filters{grid-template-columns:2fr 1fr 1fr 1fr}
  .matching-filters .btn{width:100%}
}
@media(max-width:900px){
  .matching-filters{grid-template-columns:1fr 1fr}
  .supplier-fields{grid-template-columns:1fr}
}
@media(max-width:760px){
  html,body{overflow:auto}
  .matching-filters{grid-template-columns:1fr}
  .matching-pager{align-items:flex-start;flex-direction:column}
}


/* National pharmaceutical footprint */
.footprint-legend{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:12px;font-weight:800;color:var(--muted)}
.footprint-legend span{display:flex;align-items:center;gap:6px}
.map-dot{width:11px;height:11px;border-radius:999px;display:inline-block}.map-dot.retail{background:#2563EB}.map-dot.wholesale{background:#F59E0B}
.verified-ring{width:13px;height:13px;border:3px solid #13A779;border-radius:999px;display:inline-block;background:white}
.footprint-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.footprint-toolbar{padding:14px;margin-top:18px;margin-bottom:14px}
.footprint-filters{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr .8fr auto auto;gap:8px;align-items:center}
.footprint-map-card{background:white;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
.footprint-map{height:min(68vh,720px);min-height:520px;width:100%;background:#EAF1F1}
.map-note{padding:10px 14px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--muted);background:#FAFCFC}
.map-popup{min-width:220px;line-height:1.45}.map-popup strong{display:block;font-size:14px;margin-bottom:4px;color:var(--ink)}.map-popup-status{margin:5px 0;color:var(--muted);font-size:11px;font-weight:700}
.leaflet-popup-content-wrapper{border-radius:14px}.leaflet-control-attribution{font-size:10px}
@media(max-width:1200px){.footprint-filters{grid-template-columns:repeat(3,1fr)}.footprint-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.footprint-filters{grid-template-columns:1fr}.footprint-metrics{grid-template-columns:1fr 1fr}.footprint-map{height:62vh;min-height:420px}.footprint-legend{justify-content:flex-start}}


/* Footprint map stability and cluster visibility */
.footprint-map{position:relative;isolation:isolate}
.leaflet-container{font:inherit}
.marker-cluster div{font-weight:900}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(11,127,131,.18)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#0B7F83;color:white}
