*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#F5F5F7;--card:#FFFFFF;--card2:#F5F5F7;
  --bdr:rgba(0,0,0,.08);--bdr-hi:rgba(0,0,0,.14);
  --t1:#1D1D1F;--t2:#3D3D42;--t3:#86868B;--t4:#AEAEB2;
  --sb:#1D1D1F;--sb1:#2C2C2E;--sb2:rgba(255,255,255,.08);
  --sb-t1:#FFFFFF;--sb-t2:rgba(255,255,255,.52);--sb-t3:rgba(255,255,255,.28);
  --ora:#4ADE80;--ora-d:rgba(74,222,128,.12);--ora-g:rgba(74,222,128,.06);--ora-hi:#22C55E;
  --grn:#30D158;--grn-d:rgba(48,209,88,.12);--grn-bg:rgba(48,209,88,.08);
  --red:#FF453A;--red-d:rgba(255,69,58,.12);--red-bg:rgba(255,69,58,.08);
  --blu:#0A84FF;--blu-d:rgba(10,132,255,.12);--blu-bg:rgba(10,132,255,.08);--blu-hi:#006EDD;
  --pur:#BF5AF2;--pur-d:rgba(191,90,242,.12);--pur-bg:rgba(191,90,242,.08);
  --amb:#FFD60A;--amb-d:rgba(255,214,10,.12);--amb-bg:rgba(255,214,10,.08);
  --tel:#32ADE6;--tel-d:rgba(50,173,230,.12);
  --chr-prov:linear-gradient(135deg,#4ADE80 0%,#86EFAC 100%);
  --chr-cust:linear-gradient(135deg,#1A7A40 0%,#22863F 100%);
  --chr-accent:linear-gradient(135deg,#FF375F 0%,#BF5AF2 33%,#0A84FF 66%,#30D158 100%);
  --sb-w:72px;--ff:-apple-system,'Inter',sans-serif;--fm:'JetBrains Mono',monospace;--r:12px;--rs:8px;
}
html,body{height:100%;overflow:hidden}
body{background:var(--bg);color:var(--t1);font-family:var(--ff);font-size:14px;display:flex;flex-direction:column}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.26)}

@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes chr-pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes bg-ribbon{0%,18%{background-position:0 0,100% 0}62%,100%{background-position:0 0,0% 0}}

/* ── MAP MARKERS ─────────────────────────────────────────── */
@keyframes map-ping{0%{transform:scale(1);opacity:.55}65%{transform:scale(2.7);opacity:0}100%{transform:scale(2.7);opacity:0}}
.map-pin-wrap{overflow:visible!important;background:transparent!important;border:none!important;cursor:pointer!important}
.mp-ring{position:absolute;inset:0;border-radius:50%;animation:map-ping 2s ease-out infinite;pointer-events:none;z-index:1}
.mp-dot{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.92);z-index:2;transition:transform .12s,box-shadow .12s}
.mp-grade{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;color:rgba(255,255,255,.93);font-family:Inter,sans-serif;z-index:3;pointer-events:none;user-select:none;letter-spacing:-.04em;text-shadow:0 1px 3px rgba(0,0,0,.3)}
.map-pin-wrap:hover .mp-dot{transform:scale(1.22)!important;box-shadow:0 4px 18px rgba(0,0,0,.28)!important}

/* ── ROLE SELECTOR (light default) ─────────────────────── */
#roleSelector{
  position:fixed;inset:0;z-index:10000;
  background-color:#FFFFFF;
  background-image:
    radial-gradient(circle,rgba(0,0,0,.012) 1px,transparent 1px),
    linear-gradient(115deg,transparent 18%,rgba(191,90,242,.06) 33%,rgba(80,160,255,.09) 50%,rgba(48,209,88,.06) 67%,transparent 82%);
  background-size:28px 28px,400% 100%;
  background-position:0 0,100% 0;
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:40px;
  transition:opacity .35s,transform .35s;overflow:hidden;
  animation:bg-ribbon 11s ease-in-out infinite;
}
#roleSelector::before{
  content:'';position:absolute;width:1000px;height:1000px;border-radius:50%;
  background:radial-gradient(circle,rgba(191,90,242,.14) 0%,rgba(10,132,255,.07) 40%,transparent 60%);
  top:-380px;left:-220px;pointer-events:none;animation:chr-pulse 4s ease-in-out infinite;
}
#roleSelector::after{
  content:'';position:absolute;width:900px;height:900px;border-radius:50%;
  background:radial-gradient(circle,rgba(48,209,88,.10) 0%,rgba(50,173,230,.05) 45%,transparent 65%);
  bottom:-300px;right:-180px;pointer-events:none;animation:chr-pulse 5s 1.5s ease-in-out infinite;
}
#roleSelector.out{opacity:0;transform:scale(.97);pointer-events:none}

.rs-top{text-align:center;animation:slideUp .5s ease both}
.rs-logo{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}
.rs-mark{
  width:62px;height:62px;border-radius:18px;
  background:#1D1D1F;
  display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;color:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.08)
}
.rs-logo-img{width:110px;height:110px;object-fit:contain;flex-shrink:0}
[data-dark] .rs-mark{background:#FFFFFF;color:#000000;box-shadow:0 4px 20px rgba(255,255,255,.08),0 0 0 1px rgba(255,255,255,.12)}
.rs-wordmark{font-size:30px;font-weight:800;color:#1D1D1F;letter-spacing:-.03em}
.rs-wordmark em{color:inherit;font-style:normal;-webkit-text-fill-color:unset}
[data-dark] .rs-wordmark{color:#FFFFFF}
.rs-tagline{font-family:var(--fm);font-size:10px;color:#AEAEB2;letter-spacing:.12em;text-transform:uppercase;margin-top:2px}
.rs-question{font-size:18px;font-weight:600;color:#86868B;margin-top:10px}

.rs-cards{display:flex;gap:22px}
.rs-card{
  width:340px;background:rgba(255,255,255,.85);border:1px solid rgba(0,0,0,.08);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-radius:22px;padding:32px 28px 28px;cursor:pointer;
  position:relative;overflow:hidden;
  transition:transform .28s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s;
  display:flex;flex-direction:column;gap:15px;
  animation:slideUp .55s cubic-bezier(.16,1,.3,1) both;
}
.rs-card:nth-child(1){animation-delay:.10s}
.rs-card:nth-child(2){animation-delay:.19s}
.rs-card:hover{transform:translateY(-10px)}
.rs-card:active{transform:translateY(-5px)}
.rs-card.prov:hover{border-color:rgba(74,222,128,.22);box-shadow:0 32px 72px rgba(74,222,128,.14),0 8px 24px rgba(74,222,128,.08)}
.rs-card.cust:hover{border-color:rgba(26,122,64,.22);box-shadow:0 32px 72px rgba(26,122,64,.12),0 8px 24px rgba(26,122,64,.09)}
.rs-card.prov::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#4ADE80,#86EFAC,rgba(134,239,172,0))}
.rs-card.cust::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#1A7A40,#22863F,rgba(34,134,63,0))}

.rs-card-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--fm);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:99px;align-self:flex-start}
.rs-card.prov .rs-card-badge{background:rgba(74,222,128,.09);color:#166534;border:1px solid rgba(74,222,128,.18)}
.rs-card.cust .rs-card-badge{background:rgba(26,122,64,.09);color:#0D4A24;border:1px solid rgba(26,122,64,.18)}
.rs-card-ico{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;align-self:flex-start}
.rs-card.prov .rs-card-ico{background:linear-gradient(135deg,rgba(74,222,128,.10),rgba(134,239,172,.06));color:#166534}
.rs-card.cust .rs-card-ico{background:linear-gradient(135deg,rgba(26,122,64,.10),rgba(34,134,63,.06));color:#0D4A24}
.rs-card-ico svg{width:26px;height:26px;stroke-width:1.5}
.rs-badge-ico{width:11px;height:11px;stroke-width:2.5;vertical-align:-1px;margin-right:1px}
.rs-card-title{font-size:21px;font-weight:700;color:#1D1D1F;letter-spacing:-.02em}
.rs-card-desc{font-size:13px;color:#6E6E73;line-height:1.7}
.rs-feats{display:flex;flex-direction:column;gap:7px}
.rs-feat{font-size:12px;color:#86868B;display:flex;align-items:center;gap:8px}
.rs-feat::before{content:'✓';color:#30D158;font-weight:700;font-size:11px;flex-shrink:0}
.rs-cta{width:100%;margin-top:8px;padding:13px 20px;border-radius:12px;font-family:var(--ff);font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .17s;text-align:center}
.rs-card.prov .rs-cta{background:linear-gradient(135deg,#4ADE80,#86EFAC);color:#14532D;box-shadow:0 4px 20px rgba(74,222,128,.35)}
.rs-card.prov .rs-cta:hover{background:linear-gradient(135deg,#22C55E,#4ADE80);box-shadow:0 6px 28px rgba(74,222,128,.50);transform:translateY(-1px)}
.rs-card.cust .rs-cta{background:linear-gradient(135deg,#1A7A40,#22863F);color:#fff;box-shadow:0 4px 20px rgba(26,122,64,.35)}
.rs-card.cust .rs-cta:hover{background:linear-gradient(135deg,#14532D,#1A7A40);box-shadow:0 6px 28px rgba(26,122,64,.50);transform:translateY(-1px)}
.rs-footer{display:flex;align-items:center;gap:12px;font-family:var(--fm);font-size:11px;color:#86868B;animation:slideUp .5s .28s ease both}
.rs-footer b{color:#3D3D42;font-weight:600}
.rs-footer-live{width:6px;height:6px;border-radius:50%;background:#30D158;flex-shrink:0;animation:pulse 2.5s ease infinite}
.rs-footer-sep{color:rgba(0,0,0,.15)}

/* ── PORTALS ───────────────────────────────────────────── */
#providerPortal,#customerPortal{display:none;flex-direction:column;height:100%;flex:1}
#providerPortal.active,#customerPortal.active{display:flex}

/* ── TOPBAR ────────────────────────────────────────────── */
.topbar{
  height:54px;background:rgba(255,255,255,.82);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(0,0,0,.08);
  display:flex;align-items:center;flex-shrink:0;z-index:100;box-shadow:0 1px 4px rgba(0,0,0,.05);
}
.tb-logo{display:flex;align-items:center;gap:10px;padding:0 20px;border-right:1px solid var(--bdr);height:100%;min-width:var(--sb-w)}
.tb-mark{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff;flex-shrink:0}
.tb-mark.p{background:linear-gradient(135deg,#4ADE80,#86EFAC);color:#14532D;box-shadow:0 2px 10px rgba(74,222,128,.35)}
.tb-mark.c{background:linear-gradient(135deg,#1A7A40,#22863F);box-shadow:0 2px 10px rgba(26,122,64,.35)}
.tb-logo-img{width:44px;height:44px;object-fit:contain;flex-shrink:0;border-radius:6px}
.tb-brand-text{display:flex;flex-direction:column;line-height:1.2}
.tb-name{font-size:14px;font-weight:700;color:var(--t1)}
.tb-mode{font-family:var(--fm);font-size:9px;color:var(--t3);letter-spacing:.04em;text-transform:uppercase}
.tb-search{flex:1;padding:0 20px;border-right:1px solid var(--bdr);height:100%;display:flex;align-items:center}
.tb-search-box{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--bdr);border-radius:var(--r);padding:7px 12px;width:100%;max-width:400px;transition:all .15s}
.tb-search-box:focus-within{border-color:rgba(10,132,255,.5);box-shadow:0 0 0 3px rgba(10,132,255,.10)}
.tb-search-box input{background:transparent;border:none;outline:none;font-family:var(--ff);font-size:13px;color:var(--t1);width:100%}
.tb-search-box input::placeholder{color:var(--t3)}
.tb-right{display:flex;align-items:center;gap:10px;padding:0 20px;height:100%;margin-left:auto}
.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--fm);font-size:11px;padding:4px 10px;border-radius:99px;border:1px solid var(--bdr)}
.pill-grn{background:var(--grn-bg);color:var(--grn);border-color:rgba(48,209,88,.22)}
.pill-grn::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--grn);animation:pulse 2s infinite}
.pill-ora{background:var(--ora-d);color:var(--ora);border-color:rgba(74,222,128,.22)}
.pill-blu{background:var(--blu-bg);color:var(--blu);border-color:rgba(10,132,255,.22)}
.avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.avatar.p{background:linear-gradient(135deg,#4ADE80,#86EFAC);color:#14532D}
.avatar.c{background:linear-gradient(135deg,#1A7A40,#22863F)}
.user-chip{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:var(--r);cursor:pointer;transition:background .14s;border:1px solid transparent}
.user-chip:hover{background:var(--bg);border-color:var(--bdr)}
.uc-name{font-size:12px;font-weight:600;color:var(--t1);line-height:1.2}
.uc-sub{font-family:var(--fm);font-size:9px;color:var(--t3)}
.switch-link{font-family:var(--fm);font-size:10px;padding:5px 12px;border-radius:99px;cursor:pointer;transition:all .15s;white-space:nowrap;border:1px solid}
.switch-link.to-p{background:var(--ora-d);color:var(--ora);border-color:rgba(74,222,128,.25)}
.switch-link.to-p:hover{background:var(--chr-prov);color:#fff;border-color:transparent}
.switch-link.to-c{background:rgba(26,122,64,.12);color:#1A7A40;border-color:rgba(26,122,64,.25)}
.switch-link.to-c:hover{background:var(--chr-cust);color:#fff;border-color:transparent}
.notif-bell{position:relative;width:34px;height:34px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;background:var(--bg);border:1px solid var(--bdr);transition:all .14s}
.notif-bell:hover{background:var(--card2);border-color:var(--bdr-hi)}
.notif-bell .badge-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--card)}

/* ── WORKSPACE ─────────────────────────────────────────── */
.workspace{display:flex;flex:1;overflow:hidden;min-width:0}

/* ── SIDENAV (stays dark in both modes) ────────────────── */
.sidenav{width:var(--sb-w);background:var(--sb);display:flex;flex-direction:column;align-items:center;padding:10px 0 14px;gap:2px;flex-shrink:0}
.sn-btn{width:56px;min-height:48px;border-radius:12px;border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--sb-t2);transition:all .15s;position:relative;font-size:17px;padding:5px 4px}
.sn-btn:hover{background:var(--sb1);color:var(--sb-t1)}
.sn-btn.on.p-nav{background:rgba(74,222,128,.16);color:var(--ora);box-shadow:inset 3px 0 0 var(--ora)}
.sn-btn.on.c-nav{background:rgba(74,222,128,.16);color:#4ADE80;box-shadow:inset 3px 0 0 #4ADE80}
.sn-lbl{font-family:var(--fm);font-size:8px;letter-spacing:.04em;color:var(--sb-t3);text-align:center;line-height:1;text-transform:uppercase;transition:color .15s}
.sn-btn:hover .sn-lbl{color:var(--sb-t2)}
.sn-btn.on .sn-lbl{color:rgba(255,255,255,.42)}
.sn-sep{width:36px;height:1px;background:var(--sb2);margin:5px 0}
.sn-badge{position:absolute;top:6px;right:7px;background:var(--red);border:1.5px solid var(--sb);border-radius:99px;font-family:var(--fm);font-size:8px;font-weight:700;color:#fff;padding:1px 4px;min-width:14px;text-align:center}
.sn-dot{position:absolute;top:7px;right:9px;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--sb)}
.sn-dot.o{background:var(--ora)}
.sn-dot.b{background:var(--blu)}

/* ── BUTTONS ───────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:7px;font-family:var(--ff);font-size:13px;font-weight:600;padding:8px 16px;border-radius:var(--r);border:1px solid var(--bdr);cursor:pointer;transition:all .14s;background:var(--card);color:var(--t2);white-space:nowrap;line-height:1}
.btn:hover{border-color:var(--bdr-hi);color:var(--t1);background:var(--card2)}
.btn:active{transform:scale(.97)}
.btn-ora{background:var(--ora);color:#14532D;border-color:var(--ora);box-shadow:0 2px 10px rgba(74,222,128,.28)}
.btn-ora:hover{background:var(--ora-hi);color:#fff;border-color:var(--ora-hi)}
.btn-blu{background:var(--blu);color:#fff;border-color:var(--blu);box-shadow:0 2px 10px rgba(10,132,255,.28)}
.btn-blu:hover{background:var(--blu-hi);color:#fff;border-color:var(--blu-hi)}
.btn-grn{background:var(--grn-bg);color:var(--grn);border-color:rgba(48,209,88,.22)}
.btn-grn:hover{background:var(--grn);color:#fff}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-xs{padding:4px 9px;font-size:11px}
.btn-ghost{background:transparent;color:var(--t2);border-color:transparent}
.btn-ghost:hover{background:var(--bg);border-color:var(--bdr)}

/* ── BADGES ────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;font-family:var(--fm);font-size:10px;font-weight:500;padding:3px 9px;border-radius:99px}
.b-grn{background:var(--grn-bg);color:var(--grn)}
.b-blu{background:var(--blu-bg);color:var(--blu)}
.b-ora{background:var(--ora-d);color:var(--ora)}
.b-amb{background:var(--amb-bg);color:var(--amb)}
.b-pur{background:var(--pur-bg);color:var(--pur)}
.b-red{background:var(--red-bg);color:var(--red)}
.b-gray{background:var(--bg);color:var(--t3);border:1px solid var(--bdr)}

/* ── VIEWS ─────────────────────────────────────────────── */
.fview{flex:1;display:none;flex-direction:column;overflow:hidden;background:var(--bg);min-width:0;max-width:100%}
.fview.on{display:flex;animation:fadeIn .24s cubic-bezier(.16,1,.3,1) both}
.fv-topbar{padding:16px 24px;background:rgba(255,255,255,.80);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,.04);gap:16px}
.fv-title{font-size:16px;font-weight:700;color:var(--t1)}
.fv-sub{font-size:12px;color:var(--t3);margin-top:1px}
.fv-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 24px;display:flex;flex-direction:column;gap:16px;scroll-behavior:smooth;min-width:0}

/* ── CARDS ─────────────────────────────────────────────── */
.card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.card-title{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.card-hint{font-size:11px;color:var(--t3);margin-top:-10px;margin-bottom:14px;line-height:1.5}

/* ── TABLES ────────────────────────────────────────────── */
.tbl-wrap{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05)}
table.tbl{width:100%;border-collapse:collapse}
.tbl th{font-family:var(--fm);font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--t3);text-align:left;padding:10px 16px;background:var(--card2);border-bottom:1px solid var(--bdr)}
.tbl td{font-size:13px;color:var(--t2);padding:11px 16px;border-bottom:1px solid var(--bdr);vertical-align:middle}
.tbl tr:last-child td{border-bottom:none}
.tbl tr.r:hover td{background:rgba(74,222,128,.04);cursor:pointer}
.tbl .bold{font-weight:600;color:var(--t1)}
.tbl .mono{font-family:var(--fm);font-size:11px}
.tbl .dim{color:var(--t3);font-size:12px}

/* ── INFO ROWS ─────────────────────────────────────────── */
.info-row{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--bdr)}
.info-row:last-child{border-bottom:none}
.info-key{font-size:12px;color:var(--t3)}
.info-val{font-family:var(--fm);font-size:11px;color:var(--t1);font-weight:500;text-align:right}

/* ── FILTERS ───────────────────────────────────────────── */
.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fr-btn{font-family:var(--fm);font-size:10px;padding:4px 12px;border-radius:99px;border:1px solid var(--bdr);background:var(--card);color:var(--t3);cursor:pointer;transition:all .13s;white-space:nowrap}
.fr-btn:hover{border-color:var(--bdr-hi);color:var(--t2)}
.fr-btn.on{background:var(--ora);border-color:var(--ora);color:#fff}
.fr-btn.on.bl{background:var(--blu);border-color:var(--blu);color:#fff}
.fr-input{padding:7px 12px;border:1px solid var(--bdr);border-radius:var(--rs);background:var(--card);color:var(--t1);font-family:var(--ff);font-size:12px;outline:none;transition:all .14s;min-width:200px}
.fr-input:focus{border-color:rgba(10,132,255,.5);box-shadow:0 0 0 3px rgba(10,132,255,.10)}
.fr-input::placeholder{color:var(--t3)}

/* ── PROVIDER SPECIFIC ─────────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.fview.on .kpi-grid .kpi-card{animation:fadeIn .3s cubic-bezier(.16,1,.3,1) both}
.fview.on .kpi-grid .kpi-card:nth-child(1){animation-delay:.04s}
.fview.on .kpi-grid .kpi-card:nth-child(2){animation-delay:.08s}
.fview.on .kpi-grid .kpi-card:nth-child(3){animation-delay:.12s}
.fview.on .kpi-grid .kpi-card:nth-child(4){animation-delay:.16s}
.kpi-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:18px 20px;position:relative;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}
.kpi-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.09);transform:translateY(-2px)}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--kc,var(--ora))}
.kpi-ico{width:40px;height:40px;border-radius:10px;background:var(--kc-bg,var(--ora-d));display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--kc,var(--ora))}
.kpi-ico svg{width:20px;height:20px;stroke-width:1.8;flex-shrink:0}
.kpi-lbl{font-size:11px;color:var(--t3);font-weight:500;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.kpi-val{font-size:30px;font-weight:700;color:var(--t1);line-height:1;margin-bottom:4px;font-family:var(--fm)}
.kpi-sub{font-size:11px;color:var(--t3)}

.match-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:18px 20px;transition:all .2s ease}
.match-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.09);border-color:var(--bdr-hi);transform:translateY(-2px)}
.match-card.claimed{border-left:3px solid var(--grn)}
.match-card.passed{opacity:.4;pointer-events:none}

.kanban-wrap{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:start}
.kanban-col{background:var(--card2);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden}
.kanban-head{padding:12px 14px;border-bottom:1px solid var(--bdr);background:var(--card);display:flex;align-items:center;justify-content:space-between}
.kanban-head-title{font-size:12px;font-weight:700}
.kanban-cnt{font-family:var(--fm);font-size:10px;background:var(--bg);border:1px solid var(--bdr);padding:2px 7px;border-radius:99px;color:var(--t3)}
.kanban-cards{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:60px}
.k-item{background:var(--card);border:1px solid var(--bdr);border-radius:var(--rs);padding:12px;cursor:pointer;transition:all .14s}
.k-item:hover{box-shadow:0 3px 12px rgba(0,0,0,.08);border-color:var(--bdr-hi)}
.k-name{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:3px}
.k-meta{font-size:11px;color:var(--t3)}
.k-date{font-family:var(--fm);font-size:9px;color:var(--t4);margin-top:6px}

.profile-grid{display:grid;grid-template-columns:1fr 360px;gap:16px}
.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.form-label{font-size:12px;font-weight:600;color:var(--t2)}
.form-input{padding:8px 12px;border:1px solid var(--bdr);border-radius:var(--rs);background:var(--bg);color:var(--t1);font-family:var(--ff);font-size:13px;outline:none;transition:all .14s}
.form-input:focus{border-color:rgba(10,132,255,.5);box-shadow:0 0 0 3px rgba(10,132,255,.10)}
.form-input:disabled{opacity:.5;cursor:not-allowed;background:var(--card2)}
.form-textarea{padding:10px 12px;border:1px solid var(--bdr);border-radius:var(--rs);background:var(--bg);color:var(--t1);font-family:var(--ff);font-size:13px;outline:none;transition:all .14s;resize:vertical;min-height:80px;line-height:1.6}
.form-textarea:focus{border-color:rgba(10,132,255,.5);box-shadow:0 0 0 3px rgba(10,132,255,.10)}
.radius-slider{width:100%;accent-color:var(--blu);cursor:pointer;margin:8px 0}
.ind-tag{font-family:var(--fm);font-size:11px;padding:4px 12px;border-radius:99px;cursor:pointer;transition:all .13s;border:1px solid var(--bdr);background:var(--bg);color:var(--t2)}
.ind-tag.on{background:var(--ora);border-color:var(--ora);color:#fff}
.ind-tag.on.bl{background:var(--blu);border-color:var(--blu);color:#fff}
.ind-tag:hover:not(.on){border-color:var(--bdr-hi);color:var(--t1)}

/* ── CUSTOMER SPECIFIC ─────────────────────────────────── */
.inbox-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:18px 20px;transition:all .2s ease;cursor:pointer}
.inbox-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.09);border-color:var(--bdr-hi);transform:translateY(-2px)}
.provider-card{background:var(--card);border:1px solid var(--bdr);border-radius:var(--r);padding:18px 20px;transition:all .2s ease}
.inbox-card.unread{border-left:3px solid var(--blu)}
.inbox-card.accepted{border-left:3px solid var(--grn)}
.inbox-card.declined{opacity:.45;pointer-events:none}
.provider-card:hover{box-shadow:0 8px 28px rgba(0,0,0,.09);border-color:var(--bdr-hi);transform:translateY(-2px)}
.provider-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.rating-stars{color:#FFD60A;font-size:14px;letter-spacing:1px}

/* ── DARK MODE ─────────────────────────────────────────── */
[data-dark]{
  --bg:#000000;--card:#111114;--card2:#0A0A0D;
  --bdr:rgba(255,255,255,.08);--bdr-hi:rgba(255,255,255,.16);
  --t1:#FFFFFF;--t2:rgba(255,255,255,.72);--t3:rgba(255,255,255,.40);--t4:rgba(255,255,255,.20);
  --sb:#000000;--sb1:#0C0C10;--sb2:rgba(255,255,255,.06);
  --sb-t1:#FFFFFF;--sb-t2:rgba(255,255,255,.48);--sb-t3:rgba(255,255,255,.26);
}
[data-dark] ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15)}
[data-dark] ::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.26)}

/* Role selector overrides */
[data-dark] #roleSelector{
  background-color:#000000;
  background-image:
    radial-gradient(circle,rgba(255,255,255,.016) 1px,transparent 1px),
    linear-gradient(115deg,transparent 18%,rgba(191,90,242,.20) 33%,rgba(80,160,255,.26) 50%,rgba(48,209,88,.18) 67%,transparent 82%);
  background-size:28px 28px,400% 100%;
}
[data-dark] #roleSelector::before{background:radial-gradient(circle,rgba(191,90,242,.20) 0%,rgba(10,132,255,.10) 40%,transparent 60%)}
[data-dark] #roleSelector::after{background:radial-gradient(circle,rgba(48,209,88,.16) 0%,rgba(50,173,230,.08) 45%,transparent 65%)}
[data-dark] .rs-tagline{color:rgba(255,255,255,.28)}
[data-dark] .rs-question{color:rgba(255,255,255,.48)}
[data-dark] .rs-card{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.10)}
[data-dark] .rs-card.prov:hover{border-color:rgba(74,222,128,.35);box-shadow:0 32px 72px rgba(74,222,128,.18),0 8px 24px rgba(74,222,128,.15),inset 0 1px 0 rgba(255,255,255,.07)}
[data-dark] .rs-card.cust:hover{border-color:rgba(26,122,64,.35);box-shadow:0 32px 72px rgba(26,122,64,.18),0 8px 24px rgba(26,122,64,.15),inset 0 1px 0 rgba(255,255,255,.07)}
[data-dark] .rs-card-title{color:#FFFFFF}
[data-dark] .rs-card-desc{color:rgba(255,255,255,.52)}
[data-dark] .rs-feat{color:rgba(255,255,255,.36)}
[data-dark] .rs-card.prov .rs-card-badge{background:rgba(74,222,128,.14);color:#86EFAC;border-color:rgba(74,222,128,.25)}
[data-dark] .rs-card.cust .rs-card-badge{background:rgba(26,122,64,.14);color:#4ADE80;border-color:rgba(26,122,64,.25)}
[data-dark] .rs-card.prov .rs-card-ico{background:linear-gradient(135deg,rgba(74,222,128,.18),rgba(134,239,172,.10));color:#86EFAC}
[data-dark] .rs-card.cust .rs-card-ico{background:linear-gradient(135deg,rgba(26,122,64,.18),rgba(34,134,63,.10));color:#4ADE80}
[data-dark] .rs-footer{color:rgba(255,255,255,.22)}
[data-dark] .rs-footer b{color:rgba(255,255,255,.44)}
[data-dark] .rs-footer-sep{color:rgba(255,255,255,.12)}

/* Topbar / bars overrides */
[data-dark] .topbar{background:rgba(0,0,0,.82);border-bottom-color:rgba(255,255,255,.08);box-shadow:none}
[data-dark] .fv-topbar{background:rgba(0,0,0,.75);border-bottom-color:rgba(255,255,255,.07);box-shadow:none}
[data-dark] .tb-search-box{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09)}
[data-dark] .user-chip:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09)}
[data-dark] .notif-bell{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08)}
[data-dark] .notif-bell:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.14)}
[data-dark] .dark-toggle{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08)}
[data-dark] .dark-toggle:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.14)}

/* Buttons / inputs overrides */
[data-dark] .btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09)}
[data-dark] .btn:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.16)}
[data-dark] .btn-ghost:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09)}
[data-dark] .fr-btn{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.09)}
[data-dark] .fr-input{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.09)}
[data-dark] .ind-tag{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.09)}

/* Card hover overrides */
[data-dark] .kpi-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.10)}
[data-dark] .match-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.5);border-color:rgba(255,255,255,.13)}
[data-dark] .inbox-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.5);border-color:rgba(255,255,255,.13)}
[data-dark] .provider-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.5);border-color:rgba(255,255,255,.13)}
[data-dark] .k-item:hover{box-shadow:0 3px 16px rgba(0,0,0,.4);border-color:rgba(255,255,255,.13)}

/* Messages overrides */
[data-dark] .msg-contact:hover{background:rgba(255,255,255,.04)}
[data-dark] .msg-bubble.theirs{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.09)}
[data-dark] .thread-head{background:rgba(0,0,0,.55)}
[data-dark] .thread-input{background:rgba(0,0,0,.55)}
[data-dark] .thread-input input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.09)}

/* Modal overrides */
[data-dark] .modal-overlay{background:rgba(0,0,0,.75)}
[data-dark] .modal-box{border-color:rgba(255,255,255,.12);box-shadow:0 24px 80px rgba(0,0,0,.8)}
[data-dark] .modal-head{border-bottom-color:rgba(255,255,255,.07)}
[data-dark] .modal-close{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.09)}

/* Toast overrides */
[data-dark] .toast{background:rgba(8,8,14,.95);border-color:rgba(255,255,255,.10);box-shadow:0 8px 32px rgba(0,0,0,.7)}

.dark-toggle{width:34px;height:34px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--bg);border:1px solid var(--bdr);transition:all .14s;color:var(--t2)}
.dark-toggle:hover{background:var(--card2);border-color:var(--bdr-hi);color:var(--t1)}
.dark-toggle svg{width:15px;height:15px;stroke-width:2}
.notif-bell svg{width:16px;height:16px;stroke-width:1.75}
.sn-btn svg{width:18px;height:18px;stroke-width:1.6;flex-shrink:0}
.tb-search-box svg{width:14px;height:14px;stroke:var(--t3);flex-shrink:0}

/* ── LIVE TICKER ────────────────────────────────────────── */
.live-ticker{background:var(--sb);border-bottom:1px solid var(--sb2);padding:5px 0;overflow:hidden;height:28px;flex-shrink:0}
.ticker-inner{display:flex;align-items:center;gap:0;animation:ticker-scroll 42s linear infinite;white-space:nowrap}
.ticker-inner:hover{animation-play-state:paused}
@keyframes ticker-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker-item{font-family:var(--fm);font-size:10px;color:var(--sb-t2);padding:0 28px;display:inline-flex;align-items:center;gap:8px}
.ticker-item .t-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ora);flex-shrink:0;animation:pulse 2s infinite}
.ticker-item .t-dot.b{background:var(--blu)}

/* ── MODAL ───────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;z-index:5000;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn .18s ease}
.modal-box{background:var(--card);border:1px solid var(--bdr);border-radius:18px;width:540px;max-width:calc(100vw - 40px);max-height:82vh;overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.18);animation:slideUp .2s ease}
.modal-head{padding:20px 24px 16px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--card);z-index:1}
.modal-title{font-size:16px;font-weight:700;color:var(--t1)}
.modal-close{width:30px;height:30px;border-radius:var(--r);border:1px solid var(--bdr);background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .13s;flex-shrink:0}
.modal-close:hover{background:var(--red-bg);border-color:rgba(255,69,58,.3);color:var(--red)}
.modal-body{padding:20px 24px}

/* ── ANALYTICS CHARTS ────────────────────────────────────── */
.bar-chart{display:flex;align-items:flex-end;gap:10px;height:120px;padding:0 4px}
.bar-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1}
.bar{width:100%;border-radius:4px 4px 0 0;transition:height .4s ease;cursor:pointer;position:relative;min-height:4px}
.bar:hover{opacity:.8}
.bar-val{font-family:var(--fm);font-size:10px;font-weight:600;color:var(--t1);position:absolute;top:-16px;left:50%;transform:translateX(-50%);white-space:nowrap}
.bar-lbl{font-family:var(--fm);font-size:9px;color:var(--t3);text-align:center}
.funnel-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--bdr)}
.funnel-row:last-child{border-bottom:none}
.funnel-bar-wrap{flex:1;height:22px;background:var(--bg);border-radius:4px;overflow:hidden;position:relative}
.funnel-bar{height:100%;border-radius:4px;transition:width .5s ease}
.funnel-lbl{font-size:12px;color:var(--t2);width:130px;flex-shrink:0}
.funnel-val{font-family:var(--fm);font-size:11px;font-weight:600;color:var(--t1);width:36px;text-align:right;flex-shrink:0}
.funnel-pct{font-family:var(--fm);font-size:10px;color:var(--t3);width:38px;text-align:right;flex-shrink:0}
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stat-tile{background:var(--card2);border:1px solid var(--bdr);border-radius:var(--r);padding:16px;text-align:center}
.stat-tile-val{font-size:28px;font-weight:700;font-family:var(--fm);line-height:1;margin-bottom:4px}
.stat-tile-lbl{font-size:11px;color:var(--t3)}

/* ── MESSAGES ─────────────────────────────────────────────── */
.msg-layout{display:grid;grid-template-columns:260px 1fr;gap:0;flex:1;min-height:0;overflow:hidden;border-top:1px solid var(--bdr)}
.msg-sidebar{border-right:1px solid var(--bdr);overflow-y:auto;background:var(--card)}
.msg-thread{display:flex;flex-direction:column;background:var(--bg);overflow:hidden;min-height:0}
.msg-contact{padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--bdr);transition:background .13s;display:flex;align-items:center;gap:10px}
.msg-contact:hover{background:var(--card2)}
.msg-contact.on{background:var(--blu-bg);border-left:3px solid var(--blu)}
.mc-ava{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;color:#fff;flex-shrink:0}
.ind-ico{width:16px;height:16px;vertical-align:middle;flex-shrink:0;stroke-width:1.8;opacity:.75;display:inline-block}
#p-recent-matches .match-card{background:transparent;border:none;border-bottom:1px solid var(--bdr);border-radius:0;padding:10px 0}
#p-recent-matches .match-card:last-child{border-bottom:none}
#p-recent-matches .match-card:hover{background:transparent;box-shadow:none;transform:none}
.mc-name{font-size:13px;font-weight:600;color:var(--t1);line-height:1.3}
.mc-last{font-size:11px;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-time{font-family:var(--fm);font-size:9px;color:var(--t4);margin-left:auto;flex-shrink:0;align-self:flex-start;margin-top:2px}
.mc-dot{width:8px;height:8px;border-radius:50%;background:var(--blu);flex-shrink:0;align-self:center}
.thread-head{padding:14px 20px;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:12px;flex-shrink:0}
.thread-msgs{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}
.msg-bubble{max-width:72%;border-radius:18px;padding:10px 14px;line-height:1.65;font-size:13px}
.msg-bubble.theirs{background:var(--card);border:1px solid var(--bdr);border-bottom-left-radius:4px;color:var(--t2)}
.msg-bubble.mine{background:var(--blu);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.msg-time{font-family:var(--fm);font-size:9px;color:var(--t3);margin-top:3px}
.thread-input{padding:14px 20px;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--bdr);display:flex;gap:10px;align-items:center;flex-shrink:0}
.thread-input input{flex:1;padding:9px 14px;border:1px solid var(--bdr);border-radius:99px;background:var(--bg);color:var(--t1);font-family:var(--ff);font-size:13px;outline:none;transition:all .14s}
.thread-input input:focus{border-color:rgba(10,132,255,.5);box-shadow:0 0 0 3px rgba(10,132,255,.10)}

/* ── CHECKLIST ────────────────────────────────────────────── */
.check-item{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--bdr);cursor:pointer;transition:opacity .14s}
.check-item:last-child{border-bottom:none}
.check-item.done{opacity:.45}
.check-box{width:20px;height:20px;border-radius:5px;border:2px solid var(--bdr-hi);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .14s;margin-top:1px;font-size:11px}
.check-item.done .check-box{background:var(--grn);border-color:var(--grn);color:#fff}
.check-item:not(.done):hover .check-box{border-color:var(--blu)}
.check-title{font-size:13px;font-weight:600;color:var(--t1);line-height:1.4}
.check-item.done .check-title{text-decoration:line-through}
.check-desc{font-size:11px;color:var(--t3);margin-top:2px;line-height:1.5}
.check-badge{font-family:var(--fm);font-size:9px;padding:2px 7px;border-radius:99px;border:1px solid;flex-shrink:0;margin-left:auto;align-self:flex-start}
.cb-fd{background:var(--blu-bg);color:var(--blu);border-color:rgba(10,132,255,.2)}
.cb-ext{background:var(--bg);color:var(--t3);border-color:var(--bdr)}
.check-progress{height:6px;border-radius:99px;background:var(--bdr);overflow:hidden;margin-bottom:14px}
.check-progress-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--blu),var(--pur));transition:width .4s ease}

/* ── CHECKLIST TASK CARDS ─────────────────────────────── */
.check-task{border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden;margin-bottom:8px}
.check-task:last-child{margin-bottom:0}
.check-task-head{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;cursor:pointer;transition:background .13s}
.check-task-head:hover{background:var(--card2)}
.check-task.done .check-task-head{opacity:.55}
.check-task.done .check-box{background:var(--grn);border-color:var(--grn);color:#fff}
.check-task:not(.done) .check-task-head:hover .check-box{border-color:var(--blu)}
.check-task.done .check-title{text-decoration:line-through}
.check-rec-wrap{border-top:1px solid var(--bdr);padding:12px 14px;background:rgba(74,222,128,.03);display:flex;flex-direction:column;gap:8px}
.check-rec-label{font-family:var(--fm);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ora);display:flex;align-items:center;gap:4px}
.check-rec{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--card);border:1.5px solid rgba(74,222,128,.30);border-radius:var(--rs)}
.check-rec.connected{background:rgba(48,209,88,.05);border-color:rgba(48,209,88,.40)}
.check-opts-lbl{font-family:var(--fm);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--t4);margin-top:2px}
.check-opts{display:flex;flex-direction:column;gap:5px}
.check-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--rs);background:var(--card);border:1px solid var(--bdr)}

/* ── BILLING ──────────────────────────────────────────────── */
.invoice-row{display:grid;grid-template-columns:100px 1fr 80px 80px 60px;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--bdr);font-size:13px}
.invoice-row:last-child{border-bottom:none}
.invoice-head{background:var(--card2);font-family:var(--fm);font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.07em}

/* ── TOAST ─────────────────────────────────────────────── */
#toasts{position:fixed;bottom:22px;right:22px;z-index:99999;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{font-family:var(--ff);font-size:13px;padding:12px 16px;border-radius:var(--r);border:1px solid var(--bdr);background:rgba(255,255,255,.97);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--t1);opacity:0;transform:translateY(8px);transition:all .22s cubic-bezier(.4,0,.2,1);pointer-events:auto;max-width:340px;line-height:1.5;box-shadow:0 8px 32px rgba(0,0,0,.12)}
.toast.show{opacity:1;transform:translateY(0)}
.t-ok{border-left:3px solid var(--grn)}
.t-warn{border-left:3px solid var(--amb)}
.t-info{border-left:3px solid var(--blu)}

/* ═══════════════════════════════════════════════════════
   MAP
═══════════════════════════════════════════════════════ */
.leaflet-popup-content-wrapper{border-radius:12px!important;box-shadow:0 8px 32px rgba(0,0,0,.15)!important;border:1px solid var(--bdr)!important;padding:0!important;background:var(--card)!important}
.leaflet-popup-content{margin:14px 16px!important;min-width:220px;color:var(--t1)}
.leaflet-popup-tip-container{display:none}

.map-stats-bar{display:flex;gap:7px;padding:9px 16px;background:rgba(255,255,255,.90);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--bdr);flex-shrink:0;flex-wrap:wrap;align-items:center}
[data-dark] .map-stats-bar{background:rgba(0,0,0,.82)}
.msb-label{font-size:10px;font-weight:700;color:var(--t3);margin-right:2px;text-transform:uppercase;letter-spacing:.05em;font-family:var(--fm)}
.msb-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--fm);font-size:11px;padding:5px 13px;border-radius:99px;border:1.5px solid var(--bdr);background:var(--card);cursor:pointer;transition:all .14s;user-select:none;color:var(--t2);font-weight:500}
.msb-chip:hover{border-color:var(--bdr-hi);background:var(--card2);color:var(--t1)}
[data-dark] .msb-chip{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.09)}
[data-dark] .msb-chip:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.16)}
.msb-chip.on{color:#fff;border-color:transparent;font-weight:600}
.msb-chip.s-all.on{background:#334155}
.msb-chip.s-new.on{background:var(--ora);color:#14532D;box-shadow:0 2px 10px rgba(74,222,128,.35)}
.msb-chip.s-claimed.on{background:var(--grn);box-shadow:0 2px 8px rgba(48,209,88,.3);color:#fff}
.msb-chip.s-comp.on{background:var(--red);box-shadow:0 2px 8px rgba(255,69,58,.25)}
.msb-chip.s-out.on{background:#64748B}
.msb-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.msb-count{font-weight:700;min-width:14px;text-align:center}

.map-content-wrap{flex:1;position:relative;min-height:0;overflow:hidden}
#leafletMap{position:absolute;inset:0;background:#E8EFF7}
[data-dark] #leafletMap{background:#0D0D1A}

.map-company-panel{position:absolute;right:0;top:0;bottom:0;width:316px;z-index:800;background:var(--card);border-left:1px solid var(--bdr);box-shadow:-6px 0 30px rgba(0,0,0,.13);display:flex;flex-direction:column;overflow:hidden;transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1)}
[data-dark] .map-company-panel{box-shadow:-6px 0 40px rgba(0,0,0,.6)}
.map-company-panel.open{transform:translateX(0)}
.mcp-head{padding:14px 16px 12px;border-bottom:1px solid var(--bdr);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-shrink:0}
.mcp-name{font-size:15px;font-weight:700;color:var(--t1);line-height:1.3;word-break:break-word}
.mcp-close{width:28px;height:28px;border-radius:var(--rs);border:1px solid var(--bdr);background:var(--bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:all .13s;flex-shrink:0;color:var(--t3)}
.mcp-close:hover{background:var(--red-bg);border-color:rgba(255,69,58,.3);color:var(--red)}
.mcp-body{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:14px}
.mcp-sec-lbl{font-family:var(--fm);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin-bottom:6px;font-weight:600}
.mcp-detail-card{background:var(--card2);border:1px solid var(--bdr);border-radius:var(--r);overflow:hidden}
.mcp-row{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px solid var(--bdr);font-size:12px}
.mcp-row:last-child{border-bottom:none}
.mcp-key{color:var(--t3);flex-shrink:0;margin-right:8px}
.mcp-val{font-family:var(--fm);font-size:11px;color:var(--t1);font-weight:500;text-align:right;word-break:break-all;max-width:185px}
.mcp-needs{display:flex;flex-wrap:wrap;gap:6px}
.mcp-need{font-family:var(--fm);font-size:10px;padding:3px 10px;border-radius:99px;background:var(--bg);border:1px solid var(--bdr);color:var(--t3)}
.mcp-need.match{background:var(--ora-d);color:var(--ora);border-color:rgba(74,222,128,.25);font-weight:700}
.mcp-actions{display:flex;flex-direction:column;gap:8px}
.mcp-cta{width:100%;padding:12px;border-radius:var(--r);font-size:13px;font-weight:700;cursor:pointer;transition:all .16s;border:none;display:flex;align-items:center;justify-content:center;gap:8px}
.mcp-cta.claim{background:linear-gradient(135deg,#4ADE80,#86EFAC);color:#14532D;box-shadow:0 4px 14px rgba(74,222,128,.35)}
.mcp-cta.claim:hover{background:linear-gradient(135deg,#22C55E,#4ADE80);transform:translateY(-1px);box-shadow:0 6px 20px rgba(74,222,128,.45)}
.mcp-cta.claimed-btn{background:var(--grn-bg);color:var(--grn);border:1.5px solid rgba(48,209,88,.25);cursor:not-allowed}
.mcp-cta.comp-btn{background:var(--red-bg);color:var(--red);border:1.5px solid rgba(255,69,58,.2);cursor:not-allowed}
.mcp-cta.out-btn{background:var(--bg);color:var(--t3);border:1px solid var(--bdr);cursor:not-allowed}
.mcp-dismiss{width:100%;padding:9px;border-radius:var(--r);font-size:12px;font-weight:600;cursor:pointer;transition:all .14s;background:var(--bg);border:1px solid var(--bdr);color:var(--t2)}
.mcp-dismiss:hover{border-color:var(--bdr-hi);color:var(--t1)}

.mcp-help{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 20px;text-align:center}
.mcp-help-mark{font-size:38px;opacity:.22;line-height:1;margin-bottom:4px}
.mcp-help-title{font-size:14px;font-weight:700;color:var(--t3)}
.mcp-help-desc{font-size:12px;color:var(--t3);line-height:1.7;max-width:210px}
.mcp-help-tips{list-style:none;text-align:left;width:100%;display:flex;flex-direction:column;gap:6px;margin-top:4px}
.mcp-help-tips li{font-size:11px;color:var(--t3);background:var(--card2);border:1px solid var(--bdr);border-radius:var(--rs);padding:7px 10px;line-height:1.5;display:flex;align-items:flex-start;gap:7px}
.mcp-help-tips li::before{content:'→';color:var(--ora);font-weight:700;flex-shrink:0}

.map-legend-ctrl{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.10);border-radius:12px;padding:12px 14px;box-shadow:0 4px 20px rgba(0,0,0,.12);font-family:Inter,sans-serif;font-size:11px;min-width:190px;max-width:220px;max-height:80vh;overflow-y:auto;line-height:1.5}
[data-dark] .map-legend-ctrl{background:rgba(0,0,0,.90);border-color:rgba(255,255,255,.12);color:#FFFFFF}
.mlc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}
.mlc-title{font-size:12px;font-weight:800;color:#1D1D1F;letter-spacing:-.01em}
[data-dark] .mlc-title{color:#FFFFFF}
.mlc-toggle{border:none;background:none;cursor:pointer;padding:2px 4px;border-radius:4px;color:#86868B;display:flex;align-items:center;transition:all .13s;line-height:1}
.mlc-toggle:hover{background:#F5F5F7;color:#3D3D42}
[data-dark] .mlc-toggle{color:rgba(255,255,255,.36)}
[data-dark] .mlc-toggle:hover{background:rgba(255,255,255,.08);color:rgba(255,255,255,.7)}
.mlc-toggle svg{transition:transform .2s;display:block}
.map-legend-ctrl.mlc-collapsed .mlc-toggle svg{transform:rotate(180deg)}
.mlc-sub{font-size:10px;color:#86868B;margin:2px 0 8px;line-height:1.4}
[data-dark] .mlc-sub{color:rgba(255,255,255,.34)}
.mlc-body{overflow:hidden}
.map-legend-ctrl.mlc-collapsed .mlc-body{display:none}
.mlc-sec{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#AEAEB2;margin:9px 0 5px;padding-top:8px;border-top:1px solid rgba(0,0,0,.07)}
[data-dark] .mlc-sec{color:rgba(255,255,255,.3);border-top-color:rgba(255,255,255,.07)}
.mlc-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.mlc-ico{width:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.mlc-lbl{font-size:11px;color:#3D3D42;line-height:1.4}
[data-dark] .mlc-lbl{color:rgba(255,255,255,.62)}
.mcp-help kbd{display:inline-flex;align-items:center;background:var(--card2);border:1px solid var(--bdr);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-family:var(--fm);font-size:10px;color:var(--t2)}
.mcp-help-shortcut{font-size:11px;color:var(--t3);margin-top:8px}
.mcp-help-ico{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:var(--ora-d);border:1px solid rgba(74,222,128,.2);margin-bottom:4px}

/* ── RESPONSIVE / MOBILE ──────────────────────────────── */
@media(max-width:720px){
  #roleSelector{justify-content:flex-start;overflow-y:auto;overflow-x:hidden;padding:28px 16px 32px;gap:20px}
  .rs-cards{flex-direction:column;align-items:center;gap:14px;width:100%}
  .rs-card{width:min(380px,calc(100vw - 32px));padding:22px 20px 18px;gap:10px}
  .rs-feats{display:none}
  .rs-card-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px}
  .rs-footer{flex-wrap:wrap;justify-content:center;gap:8px;padding:0}
  .tb-search{display:none}
  .switch-link{display:none}
  .tb-logo{padding:0 12px;min-width:auto;border-right:none}
  .tb-right{gap:6px;padding:0 8px;flex-shrink:0}
  .pill{display:none}
  .uc-name,.uc-sub{display:none}
  .user-chip{padding:3px 5px}
  .fv-topbar{padding:10px 14px;flex-wrap:wrap;gap:6px}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  [style*="grid-template-columns:1fr 320px"],[style*="grid-template-columns:1fr 300px"],
  [style*="grid-template-columns:1fr 340px"],[style*="grid-template-columns:1fr 360px"]{grid-template-columns:1fr!important}
  .profile-grid{grid-template-columns:1fr!important}
  .invoice-row{grid-template-columns:1fr auto auto;gap:8px;padding:10px 12px;font-size:12px}
  .msg-layout{grid-template-columns:1fr!important;grid-template-rows:200px 1fr}
  .kanban-wrap{grid-template-columns:repeat(5,min(230px,75vw))!important;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:8px}
  .card,.match-card,.inbox-card,.stat-tile,.provider-card{min-width:0;width:100%;box-sizing:border-box}
  .workspace{flex-direction:column}
  .sidenav{width:100%;height:58px;flex-direction:row;justify-content:space-around;padding:0 4px;gap:0;border-right:none;border-top:1px solid var(--sb2);order:2;flex-shrink:0}
  .fv-body{order:1;flex:1;padding:12px 14px 14px}
  .sn-btn{flex:1;min-height:58px;max-width:72px;border-radius:0;padding:5px 2px 6px;gap:2px}
  .sn-btn.on.p-nav{box-shadow:inset 0 3px 0 var(--ora)}
  .sn-btn.on.c-nav{box-shadow:inset 0 3px 0 #4ADE80}
  .sn-sep{display:none}
  .sn-badge{position:absolute;top:5px;right:10px;font-size:9px;padding:1px 4px;min-width:auto}
  .sn-dot{position:absolute;top:6px;right:10px}
  #toasts{display:none}
}
