:root{--ink:#10221f;--muted:#61726e;--paper:#f7f4ee;--panel:#fffdfa;--line:#ded7cb;--green:#167a5b;--gold:#dca330;--red:#bd3d34;--blue:#315f8c;--shadow:0 18px 55px rgba(35,47,42,0.12)}*{box-sizing:border-box}body{margin:0;min-width:320px;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.portalShell{min-height:100vh;display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);grid-gap:24px;gap:24px;padding:24px}.portalIntro{display:grid;align-content:center;grid-gap:18px;gap:18px;min-height:calc(100vh - 48px);padding:28px;border-radius:8px;color:#f7fbf8;background:#10221f}.portalBrand{align-self:start}.portalIntro h1,.portalIntro p{max-width:560px}.portalIntro p{color:#c8d8d2;font-size:16px;line-height:1.55}.portalIntro .tagline{color:#dca330;font-size:28px;font-weight:900;line-height:1.15}.portalForm{align-self:center;display:grid;grid-gap:12px;gap:12px;width:min(100%,520px);justify-self:center}.authSwitch,.roleSwitch{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#f3eee5}.authSwitch button,.roleSwitch button{border-color:transparent;background:transparent;font-weight:800}.authSwitch button.active,.roleSwitch button.active{border-color:#0e5f45;color:#fff;background:var(--green)}.portalHint{color:var(--muted);font-size:13px;line-height:1.45}.gpsBanner{position:fixed;right:18px;bottom:18px;z-index:10;display:grid;grid-template-columns:auto minmax(180px,1fr) auto;grid-gap:10px;gap:10px;align-items:center;max-width:min(720px,calc(100vw - 24px));padding:10px;border:1px solid rgba(22,122,91,.25);border-radius:8px;background:#eef7f3;box-shadow:var(--shadow)}.gpsBanner span{color:var(--muted);font-size:12px}.portalGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;align-content:center}.portalCard{display:grid;align-content:start;grid-gap:12px;gap:12px;min-height:260px}.portalCard>span{width:-moz-fit-content;width:fit-content;padding:6px 9px;border-radius:8px;color:#10221f;background:#dca330;font-size:12px;font-weight:900;text-transform:uppercase}.portalCard p{color:var(--muted);font-size:13px;line-height:1.45}.portalCard .isolationNote{padding:9px 10px;border:1px solid rgba(22,122,91,.2);border-radius:8px;color:#0e5f45;background:#eef7f3;font-weight:700}button,input,select{font:inherit}button{min-height:38px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff;cursor:pointer}.shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.rail{display:flex;flex-direction:column;gap:28px;padding:24px;color:#f7fbf8;background:#10221f}.brand{display:flex;align-items:center;gap:12px}.brandMark{display:grid;width:42px;height:42px;place-items:center;border-radius:8px;color:#10221f;background:var(--gold);font-weight:900}.brand small,.brand strong{display:block}.brand small{color:#b6c7c1}nav{display:grid;grid-gap:8px;gap:8px}nav button{display:flex;align-items:flex-start;gap:10px;justify-content:flex-start;padding:10px 12px;border-color:rgba(255,255,255,.08);color:#dcebe5;background:transparent;text-align:left}nav button span{flex:0 0 auto;display:grid;width:26px;height:26px;place-items:center;border-radius:6px;color:#10221f;background:#dcebe5;font-size:12px;font-weight:800}nav button small,nav button strong{display:block}nav button small{margin-top:2px;color:#b6c7c1;font-size:11px;line-height:1.25}nav button.active{border-color:rgba(220,163,48,.7);color:#fff;background:rgba(220,163,48,.12)}.hotline{margin-top:auto;padding:16px}.hotline,.sessionCard{border:1px solid rgba(255,255,255,.12);border-radius:8px;background:rgba(255,255,255,.06)}.sessionCard{display:grid;grid-gap:4px;gap:4px;padding:14px}.sessionCard small,.sessionCard span{color:#b6c7c1;font-size:12px}.sessionCard strong{font-size:18px}.hotline small,.hotline strong{display:block}.hotline strong{margin:3px 0 12px;font-size:28px}.workspace{min-width:0;padding:24px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}h1,h2,p{margin:0}h1{font-size:clamp(30px,4vw,54px);line-height:1;letter-spacing:0}h2{font-size:18px;line-height:1.2}.auditPanel p,.mapHeader p,.ride span,.riderRow span,.riskPanel p,.settlement span,.topbar p,label{color:var(--muted);font-size:13px;line-height:1.4}.statusStrip{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.statusStrip span{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12px}.grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(250px,.75fr) minmax(250px,.75fr);grid-gap:14px;gap:14px}.adminGrid,.customerGrid,.marketplaceGrid,.profileGrid,.riderGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.adminGrid .auditPanel,.customerGrid .mapPanel,.marketplaceGrid .listPanel,.profileGrid .auditPanel,.profileGrid .heroPanel,.riderGrid .heroPanel{grid-column:span 2}.mapPanel,.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.panel{padding:16px}.mapPanel{display:flex;flex-direction:column;grid-row:span 2;overflow:hidden}.mapHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px}.mapHeader button,.primary{border-color:#0e5f45;color:#fff;background:var(--green)}.mapCanvas{position:relative;flex:1 1;min-height:320px;height:360px;overflow:hidden;background:linear-gradient(90deg,rgba(16,34,31,.08) 1px,transparent 0),linear-gradient(rgba(16,34,31,.07) 1px,transparent 0),#e9dfce;background-size:36px 36px}.satelliteMap{background-position:50%;background-size:cover}.interactiveMap,.interactiveMap .mapboxgl-canvas{position:absolute;inset:0;width:100%;height:100%}.mapFallback{background:linear-gradient(90deg,rgba(16,34,31,.08) 1px,transparent 0),linear-gradient(rgba(16,34,31,.07) 1px,transparent 0),#e9dfce;background-size:36px 36px}.mapArea,.mapProvider{position:absolute;z-index:3;display:inline-grid;min-height:28px;align-items:center;padding:0 10px;border:1px solid rgba(255,255,255,.48);border-radius:8px;color:#fff;background:rgba(16,34,31,.72);font-size:12px;font-weight:900}.mapProvider{left:14px;top:14px}.mapArea{right:14px;bottom:14px}.road{position:absolute;width:760px;height:24px;border-radius:999px;background:rgba(255,253,250,.9);box-shadow:inset 0 0 0 1px rgba(16,34,31,.08)}.roadA{left:-70px;top:170px;rotate:-14deg}.roadB{left:-80px;top:270px;rotate:18deg}.roadC{left:160px;top:10px;width:30px;height:560px;rotate:24deg}.mapCanvas svg{position:absolute;inset:38px 26px auto;width:calc(100% - 52px);height:280px;fill:none}.mapCanvas path{stroke:var(--green);stroke-width:7;stroke-linecap:round;stroke-dasharray:12 13}.pin{position:absolute;z-index:2;display:grid;width:36px;height:36px;place-items:center;border:3px solid #fff;border-radius:50%;color:#fff;font-size:13px;font-weight:900;box-shadow:0 10px 24px rgba(16,34,31,.22)}.rider{background:var(--green)}.customer{background:var(--blue)}.alert{background:var(--red)}.gpsPin{left:46%;top:50%;width:44px;height:44px;color:#10221f;background:#f7d57b}.p1{left:18%;top:62%}.p2{left:53%;top:31%}.p3{left:77%;top:25%}.p4{left:67%;top:69%}.checks,.rideList,.riders{display:grid;grid-gap:8px;gap:8px;margin-top:14px}.ride,.riderRow,.settlement{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.ride>div,.riderRow>div{display:grid;grid-gap:3px;gap:3px;min-width:0}.requestRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px) auto}.thumb{object-fit:cover;border:1px solid var(--line);background:#f3eee5}.avatarStub,.thumb{width:48px;height:48px;border-radius:8px}.avatarStub{display:grid;place-items:center;color:#10221f;background:#dca330;font-size:12px;font-weight:900}.advertRow{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.rejectedAdvert{border-color:rgba(189,61,52,.35);background:#fff8f6}.advertDetail,.contactCard{display:grid;grid-gap:10px;gap:10px}.contactCard summary{cursor:pointer;font-weight:900}.contactBody{display:grid;grid-gap:8px;gap:8px}.detailImage{width:100%;max-height:260px;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#f3eee5}.marketImageEmpty{display:grid;min-height:160px;place-items:center;color:var(--muted);font-weight:900}.callLink{display:inline-grid;min-height:34px;align-items:center;width:-moz-fit-content;width:fit-content;padding:0 10px;border:1px solid #0e5f45;border-radius:8px;color:#0e5f45;background:#eef7f3;font-size:12px;font-weight:900;text-decoration:none}.ride span,.ride strong,.riderRow span,.riderRow strong,.settlement span,.settlement strong{overflow-wrap:anywhere}.ride.selected{border-color:rgba(189,61,52,.45);background:#fff5f2}.callPanel,.formPanel{display:grid;grid-gap:10px;gap:10px}label{display:grid;grid-gap:5px;gap:5px}input,select{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff}.buttonRow{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.stateNote{padding:9px 10px;border:1px solid rgba(49,95,140,.2);border-radius:8px;color:var(--blue);background:#eef5fb;font-size:12px;font-weight:800;line-height:1.35}.editableRow{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.dangerButton{border-color:#9e3029;color:#fff;background:var(--red)}.riskScore{display:flex;align-items:baseline;gap:10px;margin:18px 0 10px}.riskScore strong{color:var(--red);font-size:58px;line-height:.9}.checks span{padding:9px 10px;border-radius:8px;background:#eef7f3;color:#0e5f45;font-size:12px;font-weight:700}.checks .warn{background:#fff0e8;color:var(--red)}.settlementPanel{display:grid;grid-gap:9px;gap:9px}.wide{width:100%}.riderRow>span{padding:5px 8px;border-radius:999px;background:#eef7f3;color:#0e5f45;font-weight:800}.auditPanel{grid-column:span 2;display:grid;grid-gap:10px;gap:10px}.auditPanel p{padding-left:12px;border-left:3px solid var(--gold)}.metricPanel{display:grid;align-content:start;grid-gap:9px;gap:9px;min-height:150px}.metricPanel>strong{font-size:32px;line-height:1}.heroPanel span,.metricPanel p{color:var(--muted);font-size:13px;line-height:1.45}.dangerMetric>strong{color:var(--red)}.dangerZone{display:grid;grid-gap:12px;gap:12px;border-color:rgba(189,61,52,.35);background:#fff8f6}.dangerZone p{color:var(--muted);font-size:13px;line-height:1.45}.dangerZone>strong{color:var(--red);font-size:26px;line-height:1.1}.dangerZone button{border-color:#9e3029;color:#fff;background:var(--red)}.dangerZone button:disabled{cursor:not-allowed;opacity:.65}.heroPanel{display:grid;grid-gap:16px;gap:16px}.availability{display:grid;grid-gap:6px;gap:6px;padding:16px;border:1px solid rgba(22,122,91,.25);border-radius:8px;background:#eef7f3}.availability strong{color:var(--green);font-size:46px;line-height:1}@media (max-width:1120px){.rail,.shell{grid-template-columns:1fr}.rail{position:relative;z-index:3;display:grid;align-items:stretch;grid-gap:14px;gap:14px;padding:16px}nav{grid-template-columns:repeat(4,minmax(116px,1fr));overflow:visible}.hotline{margin:0;display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:10px 16px;gap:10px 16px}.hotline button{grid-row:span 2}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.adminGrid .auditPanel,.auditPanel,.customerGrid .mapPanel,.mapPanel,.marketplaceGrid .listPanel,.profileGrid .auditPanel,.profileGrid .heroPanel,.riderGrid .heroPanel{grid-column:1/-1;grid-row:auto}.mapCanvas{min-height:300px;height:320px}}@media (max-width:760px){.rail,.workspace{padding:14px}h1{font-size:34px;line-height:1.05}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{align-items:flex-start;flex-direction:column}.statusStrip{width:100%;justify-content:flex-start}.statusStrip span{flex:1 1 136px}.adminGrid,.auditPanel,.customerGrid,.grid,.marketplaceGrid,.profileGrid,.riderGrid{grid-template-columns:1fr}.auditPanel,.mapPanel{grid-column:auto}.mapCanvas{min-height:280px;height:300px}.mapHeader{display:grid}.mapHeader button{width:100%}.hotline{grid-template-columns:1fr}.buttonRow,.hotline button{grid-row:auto;grid-template-columns:1fr}.editableRow{align-items:stretch}.advertRow,.editableRow,.gpsBanner,.requestRow{grid-template-columns:1fr}.gpsBanner{left:10px;right:10px;bottom:10px}}@media (max-width:900px){.portalShell{grid-template-columns:1fr}.portalIntro{min-height:auto}}@media (max-width:620px){.portalShell{padding:10px}.portalGrid{grid-template-columns:1fr}.portalCard{min-height:auto}}@media (max-width:430px){.rail,.workspace{padding:10px}.brandMark{width:36px;height:36px}nav{grid-template-columns:1fr}h1{font-size:28px}.mapHeader,.panel{padding:12px}.mapCanvas{min-height:240px;height:250px}.riskScore strong{font-size:46px}}