/* Erivo design system (NEXT CYCLE Labs). Font: Manrope. calm, light, roomy. Three themes: Mist (default), Sage, Night.
   The tenant's brand colour (BOYD'S orange) is the only accent and is set at runtime as --accent. */
:root,
:root[data-theme="mist"]{
  --navSel:#E6EBF1;
  /* Mist: quiet cool grey with a hint of blue (calm, professional) */
  --bg:#E9EDF1; --wash1:#DEE5EC; --wash2:#ECEFF2; --surface:#FAFBFC; --surface2:#F2F4F7;
  --ink:#111820; --text:#28303A; --muted:#626B77; --soft:#959DA8; --line:#DCE1E7; --line2:#E8EBEF;
  --chip:#ECEFF3; --nav:#F6F7F9; --navActive:#18222E; --navActiveInk:#FFFFFF;
  --good:#167A4A; --goodbg:#E1F1E8; --warn:#9A5B00; --warnbg:#FBEED6; --bad:#B42318; --badbg:#FAE3E0; --info:#2C5C99; --infobg:#E0EAF7;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 10px 30px -18px rgba(16,24,40,.22);
  --accent:#EF6C1A; --accentInk:#FFFFFF; --accentSoft:#FBE3D2;
  color-scheme:light;
}
:root[data-theme="sage"]{
  --navSel:#E7EDE5;
  --bg:#EEF2EE; --wash1:#E1EADF; --wash2:#F0F2EC; --surface:#FDFEFC; --surface2:#F6F8F4;
  --ink:#141A16; --text:#2B332D; --muted:#66706A; --soft:#97A099; --line:#E1E6E0; --line2:#ECEFEA;
  --chip:#E9EEE7; --nav:#FDFEFC; --navActive:#141A16; --navActiveInk:#FFFFFF;
  --infobg:#E7EFEA; --info:#2F6650;
  --good:#167A4A; --goodbg:#E6F4EC; --warn:#9A5B00; --warnbg:#FDF1DD; --bad:#B42318; --badbg:#FCE9E7;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 10px 30px -18px rgba(16,24,40,.18); --accentSoft:#FDEBDD;
  color-scheme:light;
}
:root[data-theme="paper"]{
  --navSel:#F0F1F3;
  /* Paper: clean white, like working on a sheet. Hairline borders do the work shadows do elsewhere. */
  --bg:#FFFFFF; --wash1:#FFFFFF; --wash2:#FFFFFF; --surface:#FFFFFF; --surface2:#F6F7F9;
  --ink:#111418; --text:#2A2F36; --muted:#646B75; --soft:#9AA0A8; --line:#E6E8EC; --line2:#EFF1F4;
  --chip:#F2F3F5; --nav:#FAFAFB; --navActive:#111418; --navActiveInk:#FFFFFF;
  --good:#167A4A; --goodbg:#E8F5EE; --warn:#9A5B00; --warnbg:#FDF3E1; --bad:#B42318; --badbg:#FDECEA; --info:#2C5C99; --infobg:#EBF2FB;
  --shadow:0 1px 2px rgba(16,24,40,.04); --accent:#EF6C1A; --accentInk:#FFFFFF; --accentSoft:#FDEBDD;
  color-scheme:light;
}
:root[data-theme="night"]{
  --navSel:#222B37;
  --bg:#0D1015; --wash1:#14202B; --wash2:#11151B; --surface:#161B22; --surface2:#1B212A;
  --ink:#EEF1F5; --text:#D3D8DF; --muted:#9AA3AF; --soft:#6F7884; --line:#262D37; --line2:#212731;
  --chip:#202733; --nav:#12161C; --navActive:#EEF1F5; --navActiveInk:#0D1015;
  --good:#5BD08F; --goodbg:#12301F; --warn:#F1B45C; --warnbg:#35270F; --bad:#FF8A80; --badbg:#3A1817; --info:#8FB6FF; --infobg:#17263D;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 14px 34px -20px rgba(0,0,0,.6);
  --accent:#FF8A3D; --accentInk:#1A0D03; --accentSoft:#3A2312;
  color-scheme:dark;
}
:root{--display:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;--body:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:ui-monospace,'SF Mono',Menlo,monospace;--r:18px;--r2:12px}

*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{background:radial-gradient(1200px 600px at 100% -10%,var(--wash1),transparent 60%),radial-gradient(900px 500px at -10% 110%,var(--wash2),transparent 60%),var(--bg);background-attachment:fixed;
  color:var(--text);font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
.num,td.r,.kpi .v{font-variant-numeric:tabular-nums}
h1,h2,h3{margin:0;line-height:1.2;color:var(--ink)}
h1{font-family:var(--display);font-size:30px;font-weight:600;letter-spacing:-.025em;text-wrap:balance}
h2{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.005em;margin-bottom:12px}
h3{font-size:16px;font-weight:600;letter-spacing:-.01em}
.muted{color:var(--muted)} .small{font-size:13px}

/* tenant wordmark (BOYD'S) */
.mark{display:flex;flex-direction:column;line-height:.86;color:var(--ink);text-decoration:none}
.mark b{font-family:'Archivo','Arial Black',sans-serif;font-style:italic;font-weight:900;font-size:24px;letter-spacing:-.5px}
.mark span{font-family:'Archivo','Arial Black',sans-serif;font-style:italic;font-weight:800;font-size:9.8px;letter-spacing:2.5px;margin-top:3px;color:var(--muted)}

/* surfaces */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;min-width:0;box-shadow:var(--shadow)}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.g2,.g3,.g4{grid-template-columns:1fr}}
.kpi .k{font-size:13px;color:var(--muted);font-weight:500}
.kpi .v{font-family:var(--display);font-size:32px;font-weight:500;letter-spacing:-.03em;color:var(--ink);margin:6px 0 2px;line-height:1.1}
.kpi .s{font-size:13px;color:var(--muted)}

/* buttons: pills */
.btn{font:inherit;font-weight:600;font-size:14px;padding:9px 16px;border-radius:999px;border:1px solid var(--navActive);background:var(--navActive);color:var(--navActiveInk);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;white-space:nowrap;transition:transform .12s,box-shadow .2s,background .2s;min-height:40px}
.btn:hover{box-shadow:0 6px 16px -8px rgba(16,24,40,.35)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--surface2)}
.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--accentInk)}
.btn.danger{background:transparent;border-color:var(--bad);color:var(--bad)}
.btn.sm{padding:6px 12px;font-size:13px;min-height:34px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn svg,.ico{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accentSoft),0 0 0 1px var(--accent)}

/* forms */
label{font-size:13px;font-weight:500;color:var(--muted);display:block;margin-bottom:6px}
input,select,textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);padding:10px 13px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb,var(--line) 50%,var(--soft))}
textarea{min-height:90px;resize:vertical}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--navActive)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fields .full{grid-column:1/-1}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}

/* chips and status */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--chip);color:var(--text);white-space:nowrap}
.pill.good{background:var(--goodbg);color:var(--good)} .pill.warn{background:var(--warnbg);color:var(--warn)} .pill.bad{background:var(--badbg);color:var(--bad)} .pill.info{background:var(--infobg);color:var(--info)}
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--soft)}
.status-dot.live{background:var(--good);box-shadow:0 0 0 4px var(--goodbg)} .status-dot.stale{background:var(--warn)}

/* tables */
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line2);vertical-align:top}
th{font-size:12.5px;font-weight:500;color:var(--muted);background:transparent;white-space:nowrap;border-bottom:1px solid var(--line)}
td b{color:var(--ink);font-weight:600}
tbody tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer;transition:background .15s} tbody tr.click:hover,tr.sel{background:var(--surface2)}
.empty{padding:36px;text-align:center;color:var(--muted)}
.list{display:flex;flex-direction:column}
.list > div{padding:12px 0;border-bottom:1px solid var(--line2)} .list > div:last-child{border-bottom:0}

/* feedback */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--navActive);color:var(--navActiveInk);padding:11px 18px;border-radius:999px;font-weight:600;font-size:14px;z-index:99;box-shadow:0 12px 30px -10px rgba(0,0,0,.35);max-width:calc(100% - 32px);display:flex;gap:8px;align-items:center}
.toast::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--good)}
.toast.err{background:var(--bad);color:#fff}.toast.err::before{background:#fff}
.setup{background:var(--warnbg);color:var(--warn);border-radius:var(--r2);padding:11px 14px;font-size:13.5px}

/* dialogs */
dialog{border:1px solid var(--line);border-radius:22px;padding:0;max-width:660px;width:calc(100% - 32px);background:var(--surface);color:var(--text);box-shadow:0 30px 80px -20px rgba(10,15,25,.45)}
dialog::backdrop{background:rgba(10,14,20,.42);backdrop-filter:blur(3px)}
dialog .dh{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line2)}
dialog .db{padding:20px 22px;max-height:70vh;overflow:auto}
dialog .df{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line2);flex-wrap:wrap;background:var(--surface2);border-radius:0 0 22px 22px}
.x{background:var(--chip);border:0;width:34px;height:34px;border-radius:50%;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;display:grid;place-items:center}

/* maps */
.mapbox{height:420px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--surface2)}
.bm-pin{width:34px;height:34px;border-radius:50%;background:var(--pc);border:3px solid #fff;display:grid;place-items:center;color:#fff;font:700 12px var(--body);box-shadow:0 4px 10px rgba(0,0,0,.25)}
.bm-pulse{animation:bmp 2.2s infinite}
@keyframes bmp{0%{box-shadow:0 0 0 0 rgba(239,108,26,.5)}70%{box-shadow:0 0 0 14px rgba(239,108,26,0)}100%{box-shadow:0 0 0 0 rgba(239,108,26,0)}}
.leaflet-container{font-family:var(--body)!important;background:var(--surface2)!important}

/* Erivo product logo (Forward mark: circle, chevron, orange dot) and the client's workspace chip */
.erivo{display:inline-flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;font-family:'Manrope',system-ui,sans-serif;font-weight:700;font-size:21px;letter-spacing:-.035em}
.erivo .erivo-mk{width:28px;height:28px;color:var(--navActive);--erv-ink:var(--navActiveInk);flex:none}
.ws{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:var(--surface2)}
.ws i{width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accentInk);display:grid;place-items:center;font-style:normal;font-family:'Archivo','Arial Black',sans-serif;font-weight:900;font-size:15px}
.ws b{display:block;font-size:13.5px;color:var(--ink);font-weight:600;line-height:1.2}.ws span{display:block;font-size:11.5px;color:var(--soft)}
/* NCL badge */
.ncl{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--soft);text-decoration:none;letter-spacing:.01em}
.ncl i{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--navActive);color:var(--navActiveInk);font-style:normal;font-weight:800;font-size:8.5px;letter-spacing:.04em}
.ncl b{color:var(--muted);font-weight:600}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.bm-pulse{animation:none}*{transition:none!important;animation:none!important}}
#dlg.wide{max-width:min(980px,96vw)}
