/*
 * Algoz Group — Algoz FZ-LLC  |  Copyright (c) 2026 Algoz FZ-LLC. All rights reserved.
 * Author: Filipi Rodrigues O. Silva (Don Filipi) <donfilipi@algozgroup.com>  ·  algozgroup.com
 * Proprietary and confidential. Unauthorised copying, distribution or modification is prohibited.
 */
/* ALGOZ Operations Console — black & gold (dark default + light mode).
   Visual language matches the Partner Console. */

/* Algoz dark — palette lifted from algozgroup.com (main.css :root):
   ink #0f0f0f · panel #1d1e20 · gold #cfc163 (dark #876f32) · grey #cfcfcf/#9a9a9a · line rgba(255,255,255,.12) */
:root{
  --black:#000000; --bg:#0f0f0f; --card:#1d1e20; --card2:#17181a; --hover:#26272a;
  --border:rgba(255,255,255,.12); --border2:rgba(255,255,255,.22);
  --gold:#cfc163; --gold-soft:#ddd28a; --gold-dim:#876f32;
  --primary:#2563eb; --primary-soft:#3b82f6; --primary-dim:#1d4ed8;
  --text:#ffffff; --text-dim:#cfcfcf; --text-muted:#9a9a9a;
  --green:#27AE60; --red:#C0392B; --amber:#D9A441;
  --bg-input:#0a0a0a;
  --radius:12px; --radius-sm:8px;
  --shadow:0 10px 40px rgba(0,0,0,.5);
  --font:'Helvetica','Arial',sans-serif;
  --font-display:'Cinzel',serif;
  --font-serif:'Playfair Display',serif;
  --sb-w:236px; --sb-bg:#000000; --sb-text:#cfcfcf;
  --sb-active:rgba(207,193,99,.16); --sb-hover:rgba(255,255,255,.05);
  --topbar-bg:rgba(15,15,15,.95); --topbar-h:60px; --input-bg:#0a0a0a;
  --bg2:#141416;
  --pop-bg:rgba(18,18,20,.92);
  --map-pop-bg:rgba(18,18,20,.62);
}
/* Algoz themes only: architectural 90° corners (Tactical/Owl keep their 2px) */
[data-theme="dark"],[data-theme="light"]{ --radius:0; --radius-sm:0; }
/* Algoz light — palette lifted from algozgroup.com (theme.css html[data-theme=light]):
   bg #f7f7f5/#eceeeb/#e3e6e2 · ink #23262a/#3f4446/#8c9192 · accent sage #7d8a72 (dark #5f6b55) · line rgba(35,38,42,.14) */
[data-theme="light"]{
  --bg-input:#ffffff;
  --black:#ffffff; --bg:#f7f7f5; --card:#ffffff; --card2:#eceeeb; --hover:#e3e6e2;
  --bg2:#ffffff;
  --border:rgba(35,38,42,.14); --border2:rgba(35,38,42,.30);
  --gold:#5f6b55; --gold-soft:#7d8a72; --gold-dim:#4c5645;
  --text:#23262a; --text-dim:#3f4446; --text-muted:#8c9192;
  --shadow:0 4px 14px rgba(35,38,42,.08);
  --topbar-bg:#f7f7f5; --input-bg:#ffffff;
  --sb-bg:#f7f7f5; --sb-text:#3f4446;
  --sb-active:rgba(95,107,85,.12); --sb-hover:rgba(35,38,42,.06);
  --pop-bg:rgba(247,247,245,.93);
  --map-pop-bg:rgba(247,247,245,.66);
}
/* light mode: surfaces that previously kept dark fallbacks */
[data-theme="light"] .cal-day{background:#ffffff;border-color:#dcded9;}
[data-theme="light"] .cal-day.out{background:#eceeeb;}
[data-theme="light"] .topnav,[data-theme="light"] .bnav{background:#ffffff;border-color:#dcded9;}
[data-theme="light"] .topnav .tnav-item,[data-theme="light"] .bnav-item{color:#3f4446;}
[data-theme="light"] .topnav .tnav-item.active,[data-theme="light"] .bnav-item.active{color:#5f6b55;}
[data-theme="light"] .gop,[data-theme="light"] .map-controls select,[data-theme="light"] .ct-filter,[data-theme="light"] .map-search input{background:#ffffff;color:#23262a;border-color:#c9cdc5;}
[data-theme="light"] .seg{background:#ffffff;color:#3f4446;border-color:#c9cdc5;}
[data-theme="light"] .seg.active{color:#23262a;}
[data-theme="light"] .ess,[data-theme="light"] .are-row{background:#ffffff;}
[data-theme="light"] .map-search-res{background:#ffffff;border-color:#c9cdc5;}
[data-theme="light"] .page-sub{color:#3f4446;}
/* light mode: sidebar (dark by default — hardcoded darks overridden here only) */
[data-theme="light"] .sidebar{border-right-color:#dcded9;}
[data-theme="light"] .sb-brand{border-bottom-color:#dcded9;}
[data-theme="light"] .sb-foot{border-top-color:#dcded9;}
[data-theme="light"] .sb-brand .tb-name{color:#23262a;}
[data-theme="light"] .nav-item:hover{color:#23262a;}
[data-theme="light"] .nav-item.active{color:#5f6b55;}
[data-theme="light"] .nav-item .badge{color:#ffffff;}
[data-font="arial"]{ --font:'Helvetica','Arial',sans-serif; }   /* retired — maps to Helvetica */
[data-font="helvetica"]{ --font:'Helvetica','Arial',sans-serif; }
[data-font="times"]{ --font:'Times New Roman','Georgia',serif; }

*{margin:0;padding:0;box-sizing:border-box;}
html,body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fsz,17px);line-height:1.5;-webkit-font-smoothing:antialiased;transition:background-color .2s,color .2s;}
/* every native control follows the selected typeface — no button escapes a font change */
button,input,select,textarea{font-family:var(--font);}
/* …and every text control follows the THEME, even outside a .field wrapper
   (filter boxes, inline selects like Welfare Watch). Colors only — no layout shift. */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),
select,textarea{background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);}
select option{background:var(--card);color:var(--text);}
a{color:var(--primary);text-decoration:none;}
::-webkit-scrollbar{width:9px;height:9px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px;}
.hidden{display:none !important;}

/* AUTH (always dark) */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:linear-gradient(rgba(10,10,10,.82),rgba(10,10,10,.93)),url('https://admin.algozgroup.com/images/ls-app-d.jpg') center/cover fixed;}
.auth-card{width:100%;max-width:440px;background:rgba(20,20,20,.93);backdrop-filter:blur(14px);border:1px solid #2a2a2a;border-radius:18px;padding:36px 32px;box-shadow:0 10px 40px rgba(0,0,0,.5);color:#fff;}
.auth-card .field input,.auth-card .field select{background:#0A0A0A;border-color:#2a2a2a;color:#fff;}
.auth-card .field label{color:#A0A0A0;}
.brand{display:flex;flex-direction:column;align-items:center;margin-bottom:24px;}
.brand .logo{width:70px;height:70px;border-radius:14px;overflow:hidden;border:1.5px solid var(--gold);}
.brand .logo img{width:100%;height:100%;object-fit:cover;display:block;}
.brand .b-name{font-family:var(--font-display);letter-spacing:.22em;font-size:calc(17px*var(--fs-scale,1));color:#fff;margin-top:13px;font-weight:600;}
.brand .b-sub{font-family:var(--font-serif);font-style:italic;color:var(--gold);font-size:calc(12px*var(--fs-scale,1));margin-top:5px;}
.auth-title{font-size:18px;font-weight:600;text-align:center;margin-bottom:4px;color:#fff;}
.auth-sub{font-size:12.5px;color:#A0A0A0;text-align:center;margin-bottom:22px;}

/* FORM + BUTTONS */
.field{margin-bottom:15px;}
.field label{display:block;font-size:calc(11px*var(--fs-scale,1));text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:6px;font-weight:600;}
.field input,.field select,.field textarea{width:100%;background:var(--input-bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);padding:11px 13px;font-size:14px;font-family:var(--font);transition:border-color .15s;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px rgba(201,168,76,.14);}
.field textarea{resize:vertical;min-height:80px;}
.ro-field{width:100%;background:var(--bg2);border:1px dashed var(--border2);color:var(--text-dim);border-radius:var(--radius-sm);padding:11px 13px;font-size:14px;font-weight:600;}
.map-prov{display:inline-flex;align-items:center;gap:6px;}
.map-prov select{background:var(--input-bg);border:1px solid var(--border2);color:var(--text);border-radius:var(--radius-sm);padding:7px 10px;font-size:12px;font-family:var(--font);cursor:pointer;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);padding:10px 16px;font-size:13.5px;font-weight:600;font-family:var(--font);cursor:pointer;transition:all .15s;}
.btn-gold{background:var(--gold);color:#0A0A0A;}
.btn-gold:hover{background:var(--gold-soft);}
.btn-outline{background:transparent;border:1px solid var(--border2);color:var(--text);}
.btn-outline:hover{border-color:var(--gold);color:var(--gold);}
.btn-danger{background:transparent;border:1px solid var(--red);color:var(--red);}
.btn-danger:hover{background:var(--red);color:#fff;}
.btn-sm{padding:7px 12px;font-size:12px;}
.btn-block{width:100%;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.toast{padding:11px 14px;border-radius:var(--radius-sm);font-size:calc(12.5px*var(--fs-scale,1));margin-bottom:16px;display:none;}
.toast.show{display:block;}
.toast.err{background:rgba(192,57,43,.12);border:1px solid var(--red);color:#f0a59c;}
.toast.ok{background:rgba(39,174,96,.12);border:1px solid var(--green);color:#9fe6bd;}

/* LOADING */
.loading-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:var(--bg);}
.spinner{width:38px;height:38px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* BRANDED SPLASH (always black) */
.splash{position:fixed;inset:0;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:9999;padding:24px;}
.splash-mark{width:min(58vw,300px);height:auto;opacity:0;animation:splashIn 1s ease forwards;}
.splash-rule{width:min(46vw,210px);height:2px;background:var(--gold);opacity:0;animation:splashIn 1s ease .18s forwards;}
.splash-sub{color:var(--gold);font-size:13px;letter-spacing:.55em;padding-left:.55em;opacity:0;animation:splashIn 1s ease .3s forwards;}
.splash-load{display:flex;gap:8px;margin-top:6px;opacity:0;animation:splashIn .6s ease .5s forwards;}
.splash-load .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:dotPulse 1.1s infinite ease-in-out;}
.splash-load .dot:nth-child(2){animation-delay:.18s;}
.splash-load .dot:nth-child(3){animation-delay:.36s;}
@keyframes splashIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
@keyframes dotPulse{0%,80%,100%{opacity:.25;transform:scale(.75);}40%{opacity:1;transform:scale(1);}}

/* WORDMARK BRAND (auth + welcome) */
.auth-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:24px;}
.auth-brand img{width:184px;max-width:72%;height:auto;}
.auth-brand-sub{font-family:var(--font);color:var(--gold);font-size:12.5px;letter-spacing:.45em;padding-left:.45em;margin-top:10px;}
/* Ravens Mesh wordmark (text) — brand stack: RAVENS MESH (Libre Baskerville 400)
   / by Algoz (Arial) / OPERATIONS (the user's typeface) */
.rm-word{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;font-size:31px;letter-spacing:.16em;padding-left:.16em;color:var(--text,#f2f2f2);line-height:1.15;text-align:center;white-space:nowrap;}
.rm-word-splash{font-size:min(9vw,44px);color:#f2f2f2;opacity:0;animation:splashIn 1s ease forwards;}
.rm-by{font-family:Arial,Helvetica,sans-serif;font-size:12.5px;letter-spacing:.3em;padding-left:.3em;color:var(--text-dim,#9a9aa2);text-transform:uppercase;margin-top:5px;text-align:center;}
.splash .rm-by{color:#9a9aa2;}
.rm-by-sm{display:block;font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.18em;color:var(--text-dim,#9a9aa2);text-transform:uppercase;line-height:1.35;}
[data-theme="light"] .rm-word{color:#23262a;}

/* APP SHELL */
.app{display:none;min-height:100vh;}
.app-shell{display:flex;min-height:100vh;}
.sidebar{width:var(--sb-w);background:var(--sb-bg);color:var(--sb-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;border-right:1px solid #1c1c22;z-index:50;}
.sb-brand{display:flex;align-items:center;gap:11px;padding:18px 18px 14px;border-bottom:1px solid #1c1c22;}
.sb-brand .lg{width:34px;height:34px;border-radius:9px;overflow:hidden;border:1px solid var(--gold);flex-shrink:0;}
.sb-brand .lg img{width:100%;height:100%;object-fit:cover;}
.sb-brand .tb-name{font-family:'Libre Baskerville',Georgia,serif;letter-spacing:.14em;font-size:15px;color:#fff;font-weight:400;}
.sb-brand .tb-sub{font-family:var(--font);color:var(--text-dim);font-size:11.5px;margin-top:2px;letter-spacing:.04em;text-transform:uppercase;}
.sb-nav{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;}
.sb-nav .nav-item,.sb-nav .sb-label{flex:0 0 auto;}
.sb-label{font-size:calc(10px*var(--fs-scale,1));text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);padding:12px 10px 6px;}
.nav-item{display:flex;align-items:center;gap:11px;padding:10px 12px;color:var(--sb-text);border-radius:9px;cursor:pointer;font-size:calc(13px*var(--fs-scale,1));font-weight:500;margin-bottom:2px;transition:.12s;}
.nav-item:hover{background:var(--sb-hover);color:#fff;}
.nav-item.active{background:var(--sb-active);color:var(--gold-soft);}
.nav-item .ic{width:17px;text-align:center;font-size:14px;}
.nav-item .badge{margin-left:auto;background:var(--gold);color:#0A0A0A;font-size:10px;font-weight:700;border-radius:10px;padding:1px 7px;}
.sb-foot{padding:12px;border-top:1px solid #1c1c22;}

.main{flex:1;min-width:0;display:flex;flex-direction:column;}
.topbar{height:var(--topbar-h);background:var(--topbar-bg);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:40;}
.burger{display:none;background:none;border:none;color:var(--text);font-size:18px;cursor:pointer;}
.tb-title{font-size:15px;font-weight:600;letter-spacing:.03em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.tb-icon{background:none;border:1px solid var(--border);color:var(--text-dim);width:36px;height:36px;border-radius:9px;cursor:pointer;transition:.15s;}
.tb-icon:hover{border-color:var(--gold);color:var(--gold);}
.content{padding:22px;max-width:1180px;width:100%;}
.page-title{font-size:calc(22px*var(--fs-scale,1));font-weight:600;margin-bottom:3px;color:var(--text);}
.page-sub{font-size:calc(13px*var(--fs-scale,1));color:var(--text-dim);margin-bottom:18px;}

.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;}
[data-theme="light"] .card{box-shadow:0 1px 3px rgba(15,23,42,.04);}
.card h3{font-size:calc(14px*var(--fs-scale,1));color:var(--gold);margin-bottom:10px;letter-spacing:.3px;}

/* CONSOLE */
.clock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;}
.clock{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center;}
.clock .z{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);}
.clock .t{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;margin-top:4px;color:var(--text);}
.clock .d{font-size:11px;color:var(--text-dim);margin-top:2px;}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;}
.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.stat .n{font-size:calc(26px*var(--fs-scale,1));font-weight:700;color:var(--gold);}
.stat .l{font-size:calc(12px*var(--fs-scale,1));color:var(--text-dim);margin-top:2px;}
.fx-line{font-size:calc(13px*var(--fs-scale,1));color:var(--text-dim);}
.fx-line b{color:var(--text);}

/* OPERATION LIST + CARDS */
.op-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:13px;}
.op-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:15px;cursor:pointer;transition:.15s;}
.op-card:hover{border-color:var(--gold);transform:translateY(-1px);}
.op-card .code{font-family:var(--font-display);letter-spacing:.08em;font-size:calc(14px*var(--fs-scale,1));color:var(--gold-soft);}
.op-card .nm{font-size:calc(13.5px*var(--fs-scale,1));color:var(--text);margin-top:2px;}
.op-card .meta{font-size:calc(11.5px*var(--fs-scale,1));color:var(--text-dim);margin-top:8px;display:flex;gap:10px;flex-wrap:wrap;}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.02em;}
.badge.low{background:rgba(39,174,96,.16);color:#5fd08a;}
.badge.medium{background:rgba(217,164,65,.18);color:#e0bf6a;}
.badge.high,.badge.critical{background:rgba(192,57,43,.18);color:#ef9a90;}
.badge.st{background:var(--card2);color:var(--text-dim);}
.empty{padding:30px;text-align:center;color:var(--text-muted);font-size:calc(13px*var(--fs-scale,1));}

/* DETAIL */
.kv{display:grid;grid-template-columns:160px 1fr;gap:6px 14px;font-size:calc(13px*var(--fs-scale,1));}
.kv .k{color:var(--text-dim);font-weight:700;}
.detail-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:4px 0 14px;}
.dtab{padding:6px 13px;border-radius:999px;border:1px solid var(--border);font-size:calc(12px*var(--fs-scale,1));color:var(--text-dim);cursor:pointer;}
.dtab.active{background:var(--sb-active);color:var(--gold-soft);border-color:var(--gold);}
table.tbl{width:100%;border-collapse:collapse;font-size:calc(12.5px*var(--fs-scale,1));}
table.tbl th,table.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:top;}
table.tbl th{font-size:calc(10.5px*var(--fs-scale,1));text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);}
.contact-ic{display:inline-flex;gap:8px;}
.contact-ic a{color:var(--gold);font-size:calc(14px*var(--fs-scale,1));}

/* NOTES */
.note{background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:11px 13px;margin-bottom:9px;}
.note .h{display:flex;justify-content:space-between;font-size:calc(11px*var(--fs-scale,1));color:var(--text-muted);margin-bottom:4px;}
.note .b{font-size:calc(13px*var(--fs-scale,1));color:var(--text);white-space:pre-wrap;word-break:break-word;}
.note .x{cursor:pointer;color:var(--red);font-size:calc(11px*var(--fs-scale,1));}

/* MOBILE */
.sb-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:45;}
@media(max-width:880px){
  .sidebar{position:fixed;left:0;top:0;height:100vh;transform:translateX(-100%);transition:transform .22s ease-out;box-shadow:8px 0 24px rgba(0,0,0,.4);}
  .sidebar.open{transform:translateX(0);}
  .sb-backdrop.show{display:block;}
  .burger{display:inline-block;}
  .kv{grid-template-columns:1fr;}
  /* iOS auto-zooms when focusing inputs under 16px — keep fields at 16px on touch screens */
  .field input,.field select,.field textarea{font-size:16px;}
}

/* ── Live location card ───────────────────────────────────────────── */
.live-loc-card .ll-row{display:flex;align-items:center;gap:14px;}
.live-loc-card .ll-info{flex:1;min-width:0;}
.live-loc-card .ll-title{font-size:calc(14px*var(--fs-scale,1));font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;}
.live-loc-card .ll-title i{color:var(--gold);}
.live-loc-card .ll-sub{font-size:calc(12px*var(--fs-scale,1));color:var(--text-dim);margin-top:4px;display:flex;align-items:center;gap:7px;}
.live-loc-card.live{border-color:var(--gold);box-shadow:0 0 0 1px rgba(201,168,76,.25);}
.ll-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(39,174,96,.6);animation:llPulse 1.6s infinite;flex-shrink:0;}
@keyframes llPulse{0%{box-shadow:0 0 0 0 rgba(39,174,96,.55);}70%{box-shadow:0 0 0 8px rgba(39,174,96,0);}100%{box-shadow:0 0 0 0 rgba(39,174,96,0);}}
.ll-toggle{flex-shrink:0;width:52px;height:30px;border-radius:999px;border:1px solid var(--border2);background:var(--card2);position:relative;cursor:pointer;transition:.18s;padding:0;}
.ll-toggle .knob{position:absolute;top:50%;left:3px;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:var(--text-dim);transition:.18s;}
.ll-toggle.on{background:var(--gold);border-color:var(--gold);}
.ll-toggle.on .knob{left:25px;background:#0A0A0A;}

/* ── Scrollable tables on small screens ── */
.tbl-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}

/* ── Mobile bottom tab bar (phones only) ── */
.bnav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:var(--topbar-bg);backdrop-filter:blur(10px);border-top:1px solid var(--border);
  padding-bottom:env(safe-area-inset-bottom);}
.bnav-item{flex:1;background:none;border:none;cursor:pointer;color:var(--text-dim);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:8px 2px 7px;font-family:var(--font);font-size:10.5px;font-weight:600;letter-spacing:.01em;
  min-height:54px;transition:color .15s;}
.bnav-item i{font-size:18px;}
.bnav-item.active{color:var(--gold);}
.bnav-item:active{opacity:.7;}

/* ── Notch / safe-area for fixed bars ── */
.topbar{padding-top:env(safe-area-inset-top);height:calc(var(--topbar-h) + env(safe-area-inset-top));}

@media(max-width:880px){
  .bnav{display:flex;}
  .content{padding-bottom:84px;}            /* clear the bottom bar */
  .sb-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom));}
}
@media(max-width:560px){
  .content{padding:16px 14px 84px;}
  .page-title{font-size:calc(19px*var(--fs-scale,1));}
  .page-sub{font-size:calc(12.5px*var(--fs-scale,1));margin-bottom:14px;}
  .card{padding:15px;}
  .stat-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .stat .n{font-size:calc(22px*var(--fs-scale,1));}
  .op-list{grid-template-columns:1fr;}
  .clock-grid{grid-template-columns:1fr 1fr;}
  .detail-tabs{gap:6px;}
  .btn{padding:11px 16px;}                  /* larger tap targets */
  .btn-sm{padding:9px 13px;}
}

/* ═══ Batch 10-Jun-2026: tabs · calendar · live map · app bar · edit ═══ */
.seg-tabs{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap;}
.seg{border:1px solid var(--border,#26262c);background:var(--bg2,#16161a);color:var(--text-dim,#9a9aa2);
  border-radius:999px;padding:7px 16px;font-size:calc(12.5px*var(--fs-scale,1));cursor:pointer;font-weight:600;}
.seg.active{background:var(--gold,#C8A24B);border-color:var(--gold,#C8A24B);color:#111;}
.fn-chip{display:inline-block;background:rgba(200,162,75,.14);border:1px solid rgba(200,162,75,.4);
  color:var(--gold-soft,#d9bb6e);font-size:10.5px;padding:2px 8px;border-radius:999px;margin-left:6px;letter-spacing:.03em;}

/* Calendar */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.cal-month{font-weight:700;font-size:calc(15px*var(--fs-scale,1));letter-spacing:.04em;}
.cal-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;}
.cal-dows span{font-size:calc(10px*var(--fs-scale,1));color:var(--text-muted,#8a8a8a);text-align:center;text-transform:uppercase;letter-spacing:.08em;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal-day{min-height:74px;border:1px solid var(--border,#26262c);border-radius:8px;padding:4px;background:var(--bg2,#16161a);overflow:hidden;}
.cal-day.out{opacity:.38;}
.cal-day.today{border-color:var(--gold,#C8A24B);box-shadow:0 0 0 1px var(--gold,#C8A24B) inset;}
.cal-day .dn{font-size:calc(10.5px*var(--fs-scale,1));color:var(--text-dim,#9a9aa2);margin-bottom:3px;}
.cal-ev{display:block;font-size:calc(10px*var(--fs-scale,1));line-height:1.25;border-radius:5px;padding:2px 5px;margin-bottom:3px;cursor:pointer;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;font-weight:600;}
.cal-ev.c-past{background:#6b7280;} .cal-ev.c-now{background:#2563eb;} .cal-ev.c-fut{background:#16a34a;} .cal-ev.c-can{background:#dc2626;}
.cal-legend{display:flex;gap:16px;margin-top:10px;flex-wrap:wrap;font-size:calc(11px*var(--fs-scale,1));color:var(--text-dim,#9a9aa2);}
.cal-legend .lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px;}
.cal-legend .c-past{background:#6b7280;} .cal-legend .c-now{background:#2563eb;} .cal-legend .c-fut{background:#16a34a;} .cal-legend .c-can{background:#dc2626;}
@media(max-width:560px){ .cal-day{min-height:58px;} .cal-ev{font-size:calc(9px*var(--fs-scale,1));padding:2px 3px;} }

/* Live map */
.map-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px;}
.map-controls select{flex:1;min-width:170px;max-width:340px;background:var(--bg2,#16161a);color:inherit;
  border:1px solid var(--border,#26262c);border-radius:8px;padding:8px 10px;font-size:13px;}
/* maps provider dropdown: only as wide as its longest option ("OpenStreetMap") */
#mapProvider{flex:0 0 auto;min-width:0;width:auto;max-width:none;}
/* Sitrep board — Check In as the lead, in its own colour */
.sitrep-ci{background:#22c55e;border-color:#22c55e;color:#0b1f12;font-weight:700;}
.sitrep-ci:hover{background:#1eb355;border-color:#1eb355;color:#0b1f12;}
#liveMap{height:62vh;min-height:340px;border-radius:12px;border:1px solid var(--border,#26262c);background:#0e0e11;}
#liveMapGL{height:62vh;min-height:340px;border-radius:12px;border:1px solid var(--border,#26262c);background:#0e0e11;overflow:hidden;}
#liveMapGL .mapboxgl-ctrl-group button{width:30px;height:30px;}
/* GL overlay markers reuse the HUD marker look; pins get a teardrop */
.gl-pin{cursor:pointer;}
.gl-teardrop{width:29px;height:29px;border-radius:50% 50% 50% 0;border:2px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.55);transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;}
.gl-teardrop i{font-size:13px;color:#fff;transform:rotate(45deg);}
.gl-rec{width:24px;height:24px;border-radius:5px;border:2px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;}
.gl-rec i{font-size:12px;color:#1a1407;}
.gl-sp{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 8px rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;margin:0 auto;}
.gl-sp i{font-size:16px;color:#fff;}
.map-hint{font-size:calc(11.5px*var(--fs-scale,1));color:var(--text-muted,#8a8a8a);margin-top:8px;}
#pinModeBtn.on,#measureBtn.on,#geoBtn.on,#routeBtn.on{background:var(--gold,#C8A24B);color:#111;border-color:var(--gold,#C8A24B);}
#mapShareBtn.on{background:var(--gold-soft,#E2C97E);color:#0A0A0A;border-color:var(--gold-soft,#E2C97E);box-shadow:0 0 0 3px rgba(201,168,76,.28);}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:3px;}
.ll-mark{background:#2563eb;border:2px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 4px rgba(37,99,235,.3);}
.ll-mark.me{background:var(--gold,#C8A24B);box-shadow:0 0 0 4px rgba(200,162,75,.3);}
.ll-mark.stale{opacity:.45;}
.leaflet-container{font:inherit;}
.pin-pop b{display:block;margin-bottom:2px;}
.pin-pop .by{font-size:calc(10.5px*var(--fs-scale,1));color:#666;margin-top:4px;}
.pin-pop .del{color:#dc2626;cursor:pointer;font-size:calc(11px*var(--fs-scale,1));}

/* Operative info card */
.opc-head{position:relative;display:flex;gap:14px;align-items:center;padding:20px 20px 16px;border-bottom:1px solid var(--border,#26262c);}
.opc-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--text-dim,#9a9aa2);font-size:26px;line-height:1;cursor:pointer;padding:2px 6px;}
.opc-ava{width:58px;height:58px;border-radius:50%;background-size:cover;background-position:center;flex:0 0 auto;border:2px solid var(--border2,#33343c);}
.opc-ava-ph{display:flex;align-items:center;justify-content:center;background:var(--hover,#22242b);color:var(--gold,#c9a84c);font-size:24px;}
.opc-id{min-width:0;}
.opc-name{font-size:calc(17px*var(--fs-scale,1));font-weight:700;color:var(--text);line-height:1.2;}
.opc-role{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:5px;}
.opc-badge{font-size:10px;font-weight:800;letter-spacing:.04em;color:#0e0e11;padding:2px 8px;border-radius:5px;}
.opc-rolef{font-size:calc(11.5px*var(--fs-scale,1));color:var(--text-muted);}
.opc-status{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:calc(11.5px*var(--fs-scale,1));color:var(--text-dim);}
.opc-dot{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.06);}
.opc-sec{padding:14px 20px;border-bottom:1px solid var(--border,#26262c);}
.opc-sec:last-child{border-bottom:0;}
.opc-sec-t{font-size:calc(11px*var(--fs-scale,1));text-transform:uppercase;letter-spacing:.07em;color:var(--gold-soft,#b08a3e);margin-bottom:8px;font-weight:700;}
.opc-sec .kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:calc(12.5px*var(--fs-scale,1));}
.opc-sec .kv .k{color:var(--text-muted);white-space:nowrap;}
.opc-link{color:var(--gold,#c9a84c);text-decoration:none;font-weight:600;cursor:pointer;}
.opc-link:hover{text-decoration:underline;}
[data-theme^="tactical"] .opc-box,[data-theme^="tactical"] .opc-badge{border-radius:2px;}

/* Permanent pin owner label — Leaflet tooltip + GL marker (theme-aware) */
.leaflet-tooltip.pin-lbl{background:var(--pop-bg,rgba(20,22,28,.9));border:1px solid var(--border,#26262c);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.35);border-radius:7px;padding:3px 8px;font-weight:600;line-height:1.15;text-align:center;}
.leaflet-tooltip.pin-lbl::before{display:none;}
.pin-lbl .pl-t{display:block;font-size:calc(11px*var(--fs-scale,1));color:var(--text);}
.pin-lbl .pl-a{display:block;font-size:calc(9.5px*var(--fs-scale,1));color:var(--text-dim);font-weight:500;}
.gl-pin{position:relative;}
.gl-pin-label{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:6px;white-space:nowrap;background:var(--pop-bg,rgba(20,22,28,.9));border:1px solid var(--border,#26262c);border-radius:7px;padding:2px 8px;text-align:center;pointer-events:none;box-shadow:0 1px 5px rgba(0,0,0,.35);line-height:1.15;}
.gl-pin-label .pl-t{display:block;font-size:calc(11px*var(--fs-scale,1));color:var(--text);font-weight:600;}
.gl-pin-label .pl-a{display:block;font-size:calc(9.5px*var(--fs-scale,1));color:var(--text-dim);font-weight:500;}
[data-theme^="tactical"] .pin-lbl,[data-theme^="tactical"] .gl-pin-label{border-radius:2px;}

/* Full-width map page — the map view uses the whole width beside the menu */
body.map-wide .content{max-width:none;}
/* Fullscreen live map — card fills the viewport, controls float over it */
#mapCard.map-fs{position:fixed;inset:0;z-index:1400;margin:0;border:0;border-radius:0;padding:12px;background:var(--bg,#0e0e11);overflow:hidden;}
#mapCard.map-fs #liveMap,#mapCard.map-fs #liveMapGL{position:absolute;inset:0;width:100%;height:100%!important;min-height:0;border:0;border-radius:0;z-index:0;}
#mapCard.map-fs .map-search,#mapCard.map-fs .map-controls,#mapCard.map-fs .track-row{position:relative;z-index:3;background:var(--pop-bg,rgba(20,22,28,.9));backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:10px;padding:7px 9px;margin-bottom:7px;box-shadow:0 2px 10px rgba(0,0,0,.28);}
#mapCard.map-fs .map-hint{position:relative;z-index:3;background:var(--pop-bg,rgba(20,22,28,.9));display:inline-block;padding:4px 9px;border-radius:8px;}
#mapFsBtn.on,#mapCard.map-fs #mapFsBtn{background:var(--gold,#C8A24B);color:#111;border-color:var(--gold,#C8A24B);}
[data-theme^="tactical"] #mapCard.map-fs .map-search,[data-theme^="tactical"] #mapCard.map-fs .map-controls,[data-theme^="tactical"] #mapCard.map-fs .track-row{border-radius:2px;}

/* Map page two-column layout — map left, lists (routes/geofences/venues/pins) right on desktop */
.map-layout{display:flex;gap:16px;align-items:flex-start;}
.map-layout #mapCard{flex:1;min-width:0;}
.map-side{width:340px;flex:0 0 340px;display:flex;flex-direction:column;}
.map-side .card{margin-bottom:16px;}
@media(max-width:1024px){ .map-layout{flex-direction:column;} .map-side{width:100%;flex:1 1 auto;} }
/* keep the fullscreen map covering everything regardless of the flex parent */
#mapCard.map-fs{flex:none;}
/* fullscreen hides the floating field dock (Contacts/Sitrep/Tools/SOS) — exit fullscreen to reach it */
body.map-fs-on .field-dock{display:none!important;}
/* fullscreen: the lists float as translucent cards on the right, over the map */
body.map-fs-on #mapSide{position:fixed;top:12px;right:12px;bottom:12px;width:min(340px,42vw);z-index:1455;overflow-y:auto;overscroll-behavior:contain;padding:0;margin:0;}
body.map-fs-on #mapSide .card{background:var(--map-pop-bg,rgba(20,22,28,.72));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);box-shadow:0 6px 24px rgba(0,0,0,.35);}
/* keep the floating controls clear of the right-hand list column */
#mapCard.map-fs .map-search,#mapCard.map-fs .map-controls,#mapCard.map-fs .track-row{margin-right:min(356px,44vw);}
@media(max-width:820px){
  body.map-fs-on #mapSide{display:none!important;}
  #mapCard.map-fs .map-search,#mapCard.map-fs .map-controls,#mapCard.map-fs .track-row{margin-right:0;}
}

/* Field Tools popup */
.ft-modal{position:fixed;inset:0;z-index:2050;background:rgba(0,0,0,.6);display:none;align-items:center;justify-content:center;padding:18px;}
.ft-modal-card{background:var(--bg2,#16161a);border:1px solid var(--border,#26262c);border-radius:16px;max-width:760px;width:100%;max-height:90vh;max-height:90dvh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow,0 10px 40px rgba(0,0,0,.5));}
.ft-modal-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:15px;padding:14px 18px;border-bottom:1px solid var(--border,#26262c);color:var(--text);}
.ft-modal-card #ftHost{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px 16px;}
[data-theme^="tactical"] .ft-modal-card{border-radius:2px;}

/* SOP / contingency tree viewer */
.sop-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--border,#26262c);border-radius:12px;margin-bottom:10px;cursor:pointer;background:var(--card,#16161a);transition:.12s;}
.sop-card:hover{border-color:var(--gold,#c9a84c);}
.sop-ic{width:40px;height:40px;flex:0 0 auto;border-radius:10px;background:var(--hover,#22242b);display:flex;align-items:center;justify-content:center;color:var(--gold,#c9a84c);font-size:17px;}
.sop-t{font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sop-sub{font-size:calc(11.5px*var(--fs-scale,1));color:var(--text-muted);}
.sop-crumbs{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:calc(12.5px*var(--fs-scale,1));color:var(--text-dim);flex-wrap:wrap;}
.sop-body{background:var(--hover,#1a1c22);border-left:3px solid var(--gold,#c9a84c);border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:calc(13px*var(--fs-scale,1));line-height:1.5;color:var(--text);white-space:normal;}
.sop-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--border,#26262c);border-radius:10px;margin-bottom:8px;cursor:pointer;font-weight:600;color:var(--text);}
.sop-opt:hover{border-color:var(--gold,#c9a84c);background:var(--hover,#1a1c22);}
.sop-leaf{padding:12px;border-radius:10px;background:rgba(34,197,94,.12);color:#22c55e;font-weight:600;font-size:calc(12.5px*var(--fs-scale,1));}
[data-theme^="tactical"] .sop-card,[data-theme^="tactical"] .sop-opt,[data-theme^="tactical"] .sop-ic,[data-theme^="tactical"] .sop-body{border-radius:2px;}

/* Geofence drawing toolbar (floats over the map) */
.geo-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:1500;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;
  background:var(--pop-bg,rgba(20,22,28,.92));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid var(--border2,#33343c);border-radius:12px;padding:8px 10px;box-shadow:0 6px 24px rgba(0,0,0,.4);max-width:calc(100vw - 24px);}
.geo-bar-modes{display:flex;gap:6px;}
.geo-bar .on{background:var(--gold,#c9a84c);color:#111;border-color:var(--gold,#c9a84c);}
.geo-bar-hint{font-size:calc(12px*var(--fs-scale,1));color:var(--text-dim);white-space:nowrap;}
[data-theme^="tactical"] .geo-bar{border-radius:2px;}

/* Geofence name label on the map (Leaflet tooltip, centred) */
.leaflet-tooltip.zone-lbl{background:var(--pop-bg,rgba(20,22,28,.9));border:1px solid var(--border,#26262c);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.35);border-radius:7px;padding:2px 8px;font-weight:700;font-size:calc(11px*var(--fs-scale,1));text-align:center;}
.leaflet-tooltip.zone-lbl::before{display:none;}
[data-theme^="tactical"] .zone-lbl{border-radius:2px;}
/* Offline indicator */
.offline-bar{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:1300;background:#b45309;color:#fff;font-size:calc(12.5px*var(--fs-scale,1));padding:8px 14px;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.35);max-width:calc(100vw - 24px);text-align:center;}
@media(min-width:881px){ .offline-bar{bottom:20px;} }

/* GL (3D) geofence name label */
.gl-zone-label{background:var(--pop-bg,rgba(20,22,28,.9));border:1px solid var(--border,#26262c);color:var(--text);box-shadow:0 1px 5px rgba(0,0,0,.35);border-radius:7px;padding:2px 8px;font-weight:700;font-size:11px;white-space:nowrap;pointer-events:none;text-align:center;}
[data-theme^="tactical"] .gl-zone-label{border-radius:2px;}

/* Operation field editing */
.ed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px 14px;margin-bottom:12px;}
.ed-grid .field{margin:0;}
.ed-grid label{font-size:calc(10.5px*var(--fs-scale,1));}
.ed-wide{grid-column:1/-1;}

/* Mobile: app-style icon bar */
@media(max-width:860px){
  .bnav.appbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:var(--bg2,#131318);border-top:1px solid var(--border,#26262c);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;}
  .bnav.appbar .bnav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
    background:none;border:0;color:var(--text-dim,#9a9aa2);padding:7px 2px;border-radius:12px;cursor:pointer;}
  .bnav.appbar .bnav-item i{font-size:19px;}
  .bnav.appbar .bnav-item span{font-size:9px;letter-spacing:.04em;}
  .bnav.appbar .bnav-item.active{color:var(--gold,#C8A24B);background:rgba(200,162,75,.10);}
  .content{padding-bottom:86px;}
}

/* ═══ Batch 2: profile · avatar · row editor · contacts filter ═══ */
.prof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 14px;}
.prof-grid .field{margin-bottom:8px;}
.avatar-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.avatar-box{width:74px;height:74px;border-radius:50%;background:var(--bg,#0e0e11);border:2px solid var(--gold,#C8A24B);
  display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;flex:none;}
.avatar-box img{width:100%;height:100%;object-fit:cover;}
.avatar-box i{font-size:26px;color:var(--text-dim,#9a9aa2);}
.avatar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.are-row{border:1px solid var(--border,#26262c);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:var(--bg,#0e0e11);}
.are-head{display:flex;justify-content:space-between;align-items:center;font-size:calc(11px*var(--fs-scale,1));color:var(--text-dim,#9a9aa2);margin-bottom:8px;}
.are-del{color:#e66;cursor:pointer;padding:4px;}
.ct-filter{background:var(--bg2,#16161a);color:inherit;border:1px solid var(--border,#26262c);border-radius:999px;
  padding:8px 14px;font-size:calc(12.5px*var(--fs-scale,1));min-width:200px;max-width:320px;}
@media(max-width:560px){ .prof-grid{grid-template-columns:1fr;} }

/* ═══ Mobile nav: icon buttons in the top bar (replaces drawer + bottom bar) ═══ */
.topnav{display:none;}
@media(max-width:860px){
  .burger{display:none !important;}
  .sidebar,.sb-backdrop{display:none !important;}
  .bnav.appbar{display:none !important;}
  .content{padding-bottom:28px;}
  .topnav{display:flex;position:sticky;top:0;z-index:55;gap:2px;justify-content:space-around;align-items:center;
    background:var(--bg2,#131318);border-bottom:1px solid var(--border,#26262c);
    padding:4px 4px;padding-top:calc(4px + env(safe-area-inset-top));}
  .tnav-item{flex:1;background:none;border:0;color:var(--text-dim,#9a9aa2);cursor:pointer;
    padding:10px 2px;border-radius:10px;display:flex;align-items:center;justify-content:center;}
  .tnav-item i{font-size:18px;}
  .tnav-item.active{color:var(--gold,#C8A24B);background:rgba(200,162,75,.12);}
}

/* ═══ Global operation focus (topbar dropdown) ═══ */
.gop{background:var(--bg2,#16161a);color:inherit;border:1px solid var(--border,#26262c);border-radius:999px;
  padding:7px 12px;font-size:12px;max-width:230px;min-width:0;margin-left:auto;margin-right:10px;}
.gop:focus{outline:none;border-color:var(--gold,#C8A24B);}
.gop.on{border-color:var(--gold,#C8A24B);color:var(--gold-soft,#d9bb6e);}
@media(max-width:860px){
  .topbar .tb-title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .gop{max-width:46vw;font-size:11.5px;padding:6px 10px;}
}

/* ═══ Topbar brand: logo + ALGOZ / OPERATIONS, page name centred ═══ */
.topbar .tb-brand{display:flex;align-items:center;gap:9px;flex:none;}
.topbar .tb-brand img{width:32px;height:32px;border-radius:8px;object-fit:cover;}
.tb-brand-tx{display:flex;flex-direction:column;line-height:1.05;}
.tb-brand-tx .b1{font-family:'Libre Baskerville',Georgia,serif;font-weight:400;font-size:15px;letter-spacing:.13em;color:#fff;}
.tb-brand-tx .b2{font-family:var(--font);font-size:9.5px;letter-spacing:.26em;color:#a8853b;font-weight:600;}
[data-theme="light"] .tb-brand-tx .b1{color:#23262a;}
.topbar .tb-title{flex:1;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.topbar .gop{margin-left:0;}
@media(max-width:860px){
  .topbar .tb-brand img{width:28px;height:28px;}
  .tb-brand-tx .b1{font-size:13px;}
  .tb-brand-tx .b2{font-size:7.5px;}
  .topbar .tb-title{font-size:13px;padding:0 4px;}
  .gop{max-width:34vw;}
}

/* ═══ Map radius zoom buttons ═══ */
.zoom-group{display:inline-flex;gap:4px;flex-wrap:wrap;}
.zoom-group .zr{padding:6px 10px;font-size:calc(11.5px*var(--fs-scale,1));}
.zoom-group .zr.on{background:var(--gold,#C8A24B);color:#111;border-color:var(--gold,#C8A24B);}
@media(max-width:560px){ .map-controls{gap:6px;} .zoom-group .zr{padding:6px 8px;} }

/* ═══ Topbar clock · brand mobile-only · map search ═══ */
@media(min-width:861px){ .topbar .tb-brand{display:none;} }
.tb-clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15;flex:none;margin-right:10px;}
.tb-clock .c1{font-size:12px;font-weight:700;color:var(--gold-soft,#d9bb6e);letter-spacing:.03em;white-space:nowrap;}
.tb-clock .c2{font-size:9px;color:var(--text-dim,#9a9aa2);letter-spacing:.12em;text-transform:uppercase;}
@media(max-width:560px){ .tb-clock .c1{font-size:10.5px;} .tb-clock .c2{font-size:8px;} }

/* provider selector + place search share one line; search is capped so it's not too wide */
.map-topbar{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap;}
.map-topbar .map-search{flex:1 1 220px;min-width:180px;max-width:420px;margin-bottom:0;}
.map-search{position:relative;display:flex;gap:6px;margin-bottom:8px;}
.map-search input{flex:1;background:var(--bg2,#16161a);color:inherit;border:1px solid var(--border,#26262c);
  border-radius:999px;padding:8px 14px;font-size:13px;min-width:0;}
.map-search input:focus{outline:none;border-color:var(--gold,#C8A24B);}
.map-search-res{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--bg2,#16161a);
  border:1px solid var(--border,#26262c);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.35);}
.map-search-res .it{padding:9px 13px;font-size:calc(12.5px*var(--fs-scale,1));cursor:pointer;border-bottom:1px solid var(--border,#26262c);}
.map-search-res .it:last-child{border-bottom:0;}
.map-search-res .it:hover{background:rgba(200,162,75,.10);}
.map-search-res .empty-it{padding:9px 13px;font-size:calc(12px*var(--fs-scale,1));color:var(--text-muted,#8a8a8a);}

/* ═══ Avatar markers + distance lines ═══ */
.ll-ava{width:34px;height:34px;border-radius:50%;background-size:cover;background-position:center;
  border:3px solid #2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.30),0 2px 6px rgba(0,0,0,.4);}
.ll-ava.me{border-color:var(--gold,#C8A24B);box-shadow:0 0 0 3px rgba(200,162,75,.32),0 2px 6px rgba(0,0,0,.4);}
.ll-ava.stale{opacity:.45;}
/* ── Tactical HUD map avatars (Tactical theme only) ── */
.hud-mk{position:relative;width:40px;height:40px;}
.hud-ava{width:38px;height:38px;border-radius:50%;background-size:cover;background-position:center;border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.55);background-color:#1f2229;}
.hud-ava-ph{display:flex;align-items:center;justify-content:center;color:#8b8e98;font-size:15px;}
.hud-mk.me .hud-ava{border-color:var(--gold,#C9A84C);}
.hud-mk.stale{opacity:.5;}
.hud-badge{position:absolute;left:50%;top:-13px;transform:translateX(-50%);font-family:Arial,sans-serif;font-weight:700;font-size:9px;letter-spacing:.05em;color:#0a0a0a;padding:2px 6px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.5);line-height:1;}
/* function icon badge (shield = security/CP · car = driver · person = other) */
.hud-badge.hud-fn{left:-3px;top:auto;bottom:-3px;transform:none;background:var(--gold,#c9a84c);color:#0a0a0a;width:17px;height:17px;padding:0;display:flex;align-items:center;justify-content:center;font-size:9px;border-radius:50%;}
.hud-mk.stale .hud-badge.hud-fn{background:#94a3b8;}
.hud-name{position:absolute;left:50%;bottom:-15px;transform:translateX(-50%);font-family:Arial,sans-serif;font-weight:600;font-size:10px;color:#fff;background:rgba(10,10,10,.78);padding:2px 6px;border-radius:6px;white-space:nowrap;text-shadow:0 1px 2px #000;line-height:1.2;}
.hud-dot{position:absolute;right:-1px;bottom:-1px;width:12px;height:12px;border-radius:50%;border:2px solid #0f1116;box-shadow:0 0 0 1px rgba(0,0,0,.4);}
/* ═══════════ TACTICAL HUD themes (Matrix-green, rectangular) ═══════════
   Dark = black background + charcoal boards; Light = darker green on light. */
[data-theme="tactical"]{
  --black:#000000; --bg:#000000; --bg2:#0c0e0c;
  --card:#111311; --card2:#161916; --hover:#1c201c;
  --border:rgba(0,230,77,.28); --border2:rgba(0,230,77,.46);
  --gold:#00e64d; --gold-soft:#5cff8a; --gold-dim:#00a838;
  --primary:#00e64d; --primary-soft:#5cff8a; --primary-dim:#00a838;
  --text:#daffe4; --text-dim:#79cd91; --text-muted:#4d8862;
  --green:#00e64d; --amber:#e6b800;
  --bg-input:#0a0c0a; --input-bg:#000000;
  --radius:2px; --radius-sm:2px;
  --shadow:0 8px 30px rgba(0,0,0,.75);
  --sb-bg:#000000; --sb-text:#8fd6a3;
  --sb-active:rgba(0,230,77,.16); --sb-hover:rgba(0,230,77,.07);
  --topbar-bg:rgba(0,0,0,.95);
  --pop-bg:rgba(6,10,6,.88);
  --map-pop-bg:rgba(6,10,6,.58);
}
[data-theme="tactical-light"]{  /* Hemera — high contrast: white surfaces, near-black text, bold deep-green accents */
  --black:#ffffff; --bg:#ffffff; --bg2:#ffffff;
  --card:#ffffff; --card2:#eef4ee; --hover:#dcebdc;
  --border:rgba(4,60,22,.55); --border2:rgba(4,60,22,.82);
  --gold:#065f27; --gold-soft:#0a7a2f; --gold-dim:#043d18;
  --primary:#065f27; --primary-soft:#0a7a2f; --primary-dim:#043d18;
  --text:#04140a; --text-dim:#0d3d1e; --text-muted:#2a5637;
  --green:#065f27; --amber:#7a5200;
  --bg-input:#ffffff; --input-bg:#ffffff;
  --radius:2px; --radius-sm:2px;
  --shadow:0 4px 16px rgba(4,26,12,.20);
  --sb-bg:#ffffff; --sb-text:#0d3d1e;
  --sb-active:rgba(6,95,39,.18); --sb-hover:rgba(6,95,39,.09);
  --topbar-bg:#ffffff;
  --pop-bg:rgba(255,255,255,.94);
  --map-pop-bg:rgba(255,255,255,.68);
}
/* Hemera high-contrast controls: solid green fills with white text */
[data-theme="tactical-light"] .btn-gold,[data-theme="tactical-light"] .seg.active,
[data-theme="tactical-light"] .fd-btn.active{background:var(--gold);color:#fff;}
[data-theme="tactical-light"] .nav-item.active{background:var(--sb-active);}
[data-theme="tactical-light"] .page-title,[data-theme="tactical-light"] .card>h3{color:var(--gold);}
/* tactical-light chrome (mirror the light-mode surface fixes) */
[data-theme="tactical-light"] .topnav,[data-theme="tactical-light"] .bnav{background:#ffffff;border-color:var(--border);}
[data-theme="tactical-light"] .topnav .tnav-item,[data-theme="tactical-light"] .bnav-item{color:#3f6b4d;}
[data-theme="tactical-light"] .topnav .tnav-item.active,[data-theme="tactical-light"] .bnav-item.active{color:var(--gold);}
[data-theme="tactical-light"] .sidebar{border-right-color:var(--border);}
[data-theme="tactical-light"] .sb-brand{border-bottom-color:var(--border);}
[data-theme="tactical-light"] .sb-foot{border-top-color:var(--border);}
[data-theme="tactical-light"] .sb-brand .tb-name{color:var(--text);}
[data-theme="tactical-light"] .nav-item.active{color:var(--gold);}
[data-theme="tactical-light"] .cal-day{background:#ffffff;}
[data-theme="tactical-light"] .cal-day.out{background:#e6ece7;}
[data-theme="tactical-light"] .map-search-res,[data-theme="tactical-light"] .gop,[data-theme="tactical-light"] .map-controls select{background:#ffffff;color:var(--text);border-color:var(--border);}
/* shared tactical styling (both variants) — rectangular, green contours & titles */
[data-theme^="tactical"] .nav-item,[data-theme^="tactical"] .tb-icon,[data-theme^="tactical"] .seg,
[data-theme^="tactical"] .dtab,[data-theme^="tactical"] .badge,[data-theme^="tactical"] .btn,
[data-theme^="tactical"] .clock,[data-theme^="tactical"] .note{border-radius:2px;}
[data-theme^="tactical"] .page-title,[data-theme^="tactical"] .card>h3,[data-theme^="tactical"] .sec-title{
  color:var(--gold);text-transform:uppercase;letter-spacing:.07em;}
[data-theme^="tactical"] .seg.active{color:#000;}
[data-theme^="tactical"] .field input:focus,[data-theme^="tactical"] .field select:focus,
[data-theme^="tactical"] .field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px var(--sb-active);outline:none;}
[data-theme="tactical"] .btn-gold,[data-theme="tactical"] .seg.active{color:#000;text-shadow:none;}
[data-theme^="tactical"] .field-dock,[data-theme^="tactical"] .fd-btn{border-radius:2px;}
/* every control follows the theme, incl. dropdowns/selects */
[data-theme^="tactical"] select,[data-theme^="tactical"] input,[data-theme^="tactical"] textarea,
[data-theme^="tactical"] .gop,[data-theme^="tactical"] .map-controls select,[data-theme^="tactical"] .map-prov select,
[data-theme^="tactical"] .map-search input,[data-theme^="tactical"] .ct-filter{
  background:var(--input-bg);color:var(--text);border-color:var(--border2);border-radius:2px;}
[data-theme^="tactical"] select option{background:var(--card);color:var(--text);}
[data-theme^="tactical"] .map-prov i{color:var(--gold);}
/* portal name (sidebar + top bar) takes the theme accent */
[data-theme^="tactical"] .tb-name,[data-theme^="tactical"] .tb-sub,
[data-theme^="tactical"] .tb-brand-tx .b1,[data-theme^="tactical"] .tb-brand-tx .b2,
[data-theme^="tactical"] .auth-brand-sub{color:var(--gold)!important;letter-spacing:.06em;}
/* ── Owl Eyes shares the tactical geometry: rectangular controls everywhere ── */
[data-theme^="owl"] .nav-item,[data-theme^="owl"] .tb-icon,[data-theme^="owl"] .seg,
[data-theme^="owl"] .dtab,[data-theme^="owl"] .badge,[data-theme^="owl"] .btn,
[data-theme^="owl"] .clock,[data-theme^="owl"] .note,
[data-theme^="owl"] .field-dock,[data-theme^="owl"] .fd-btn,
[data-theme^="owl"] .ft-modal-card,[data-theme^="owl"] .opc-box,[data-theme^="owl"] .opc-badge,
[data-theme^="owl"] .pin-lbl,[data-theme^="owl"] .gl-pin-label,
[data-theme^="owl"] .sop-card,[data-theme^="owl"] .sop-opt,[data-theme^="owl"] .sop-ic,[data-theme^="owl"] .sop-body,
[data-theme^="owl"] .geo-bar,[data-theme^="owl"] .zone-lbl,[data-theme^="owl"] .gl-zone-label,
[data-theme^="owl"] #mapCard.map-fs .map-search,[data-theme^="owl"] #mapCard.map-fs .map-controls,[data-theme^="owl"] #mapCard.map-fs .track-row{border-radius:2px;}
[data-theme^="owl"] select,[data-theme^="owl"] input,[data-theme^="owl"] textarea,
[data-theme^="owl"] .gop,[data-theme^="owl"] .map-controls select,[data-theme^="owl"] .map-prov select,
[data-theme^="owl"] .map-search input,[data-theme^="owl"] .ct-filter{border-radius:2px;}
[data-theme^="owl"] .field input:focus,[data-theme^="owl"] .field select:focus,
[data-theme^="owl"] .field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 2px var(--sb-active,rgba(255,69,69,.25));outline:none;}
/* Owl Eyes: the brand words (RAVENS MESH / by Algoz / OPERATIONS) take the theme accent */
[data-theme^="owl"] .tb-name,[data-theme^="owl"] .tb-sub,[data-theme^="owl"] .rm-by-sm,
[data-theme^="owl"] .tb-brand-tx .b1,[data-theme^="owl"] .tb-brand-tx .b2,
[data-theme^="owl"] .rm-word,[data-theme^="owl"] .rm-by,
[data-theme^="owl"] .auth-brand-sub{color:var(--gold)!important;}
/* OSM has no dark tiles — tint only the tile pane on dark themes (markers unaffected) */
#liveMap.map-dark .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.93) contrast(.9);}
/* map popups (pins + distance balloons) follow the theme, slightly translucent */
.leaflet-popup-content-wrapper,.mapboxgl-popup-content{
  background:var(--map-pop-bg,rgba(20,22,28,.62))!important;color:var(--text)!important;
  border:1px solid var(--border2);border-radius:12px!important;box-shadow:0 8px 30px rgba(0,0,0,.45)!important;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);}
.leaflet-popup-tip,.mapboxgl-popup-tip{background:var(--map-pop-bg,rgba(20,22,28,.62))!important;box-shadow:none!important;}
.mapboxgl-popup-close-button{color:var(--text-dim);font-size:18px;}
.leaflet-popup-content,.mapboxgl-popup-content .pin-pop,.pin-pop{color:var(--text);}
.pin-pop b{color:var(--text);}
.pin-pop .by,.pin-pop .dl{color:var(--text-dim);}
.leaflet-container a.leaflet-popup-close-button{color:var(--text-dim);}

/* ═══════════ Floating field action board (Map · Field Tools · Emergency) ═══════════ */
.field-dock{position:fixed;right:20px;bottom:20px;z-index:1200;display:flex;gap:6px;
  background:var(--map-pop-bg,rgba(20,22,28,.62));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border:1px solid var(--border2);border-radius:14px;padding:6px;box-shadow:var(--shadow);}
.fd-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:76px;
  padding:13px 16px;border:none;background:transparent;color:var(--text-dim);border-radius:10px;cursor:pointer;
  font-size:12.5px;font-weight:600;font-family:var(--font);transition:.15s;}
.fd-btn i{font-size:23px;line-height:1;}
.fd-btn:hover{background:var(--hover);color:var(--text);}
.fd-btn.active{background:var(--sb-active);color:var(--gold);}
.fd-sos{color:var(--red);}
.fd-sos:hover{background:var(--red);color:#fff;}

/* ═══════════ Emergency SOS panel ═══════════ */
.sos-panel{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:18px;}
.sos-inner{background:var(--card);border:1px solid var(--border2);border-radius:16px;max-width:440px;width:100%;padding:18px;box-shadow:var(--shadow);}
.sos-head{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:16px;letter-spacing:.04em;color:var(--text);margin-bottom:14px;}
.sos-x{background:none;border:none;color:var(--text-dim);font-size:26px;line-height:1;cursor:pointer;padding:0 4px;}
.sos-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.sos-big{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:96px;border:none;border-radius:14px;cursor:pointer;color:#fff;font-family:var(--font);font-weight:800;font-size:17px;letter-spacing:.08em;transition:.12s;}
.sos-big i{font-size:26px;}
.sos-big:active{transform:scale(.98);}
.sos-comp{background:#dc2626;} .sos-comp:hover{background:#b91c1c;}
.sos-bug{background:#d97706;} .sos-bug:hover{background:#b45309;}
.sos-whi{background:#2563eb;} .sos-whi:hover{background:#1d4ed8;}
.sos-confirm .sos-cf-title{font-weight:800;font-size:16px;letter-spacing:.06em;color:var(--text);margin-bottom:6px;}
.sos-confirm .sos-cf-desc{font-size:13px;color:var(--text-dim);line-height:1.5;margin-bottom:12px;}
.sos-confirm textarea{width:100%;background:var(--input-bg);border:1px solid var(--border2);color:var(--text);border-radius:var(--radius-sm);padding:10px 12px;font-family:var(--font);font-size:14px;resize:vertical;}
.sos-cf-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px;}
.sos-cf-actions .btn.sos-comp,.sos-cf-actions .btn.sos-bug,.sos-cf-actions .btn.sos-whi{color:#fff;}
.whistle-bar{position:fixed;left:0;right:0;bottom:0;z-index:2100;background:#1d4ed8;color:#fff;display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;font-size:13px;font-weight:600;box-shadow:0 -4px 16px rgba(0,0,0,.4);}
.whistle-bar .btn{background:#fff;color:#1d4ed8;border:none;}
@media(max-width:880px){
  .field-dock{left:50%;right:auto;transform:translateX(-50%);bottom:74px;}
}
/* Clear space at the bottom of every page so the floating dock never covers
   the last elements (overrides the earlier, smaller media-query paddings). */
.content{padding-bottom:122px;}
@media(max-width:880px){
  .content{padding-bottom:calc(172px + env(safe-area-inset-bottom));}
}
.prin-mk{width:26px;height:26px;border-radius:50%;background:#c9a84c;border:2px solid #1a1407;box-shadow:0 1px 7px rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;}
.prin-mk i{color:#1a1407;font-size:13px;}
.prin-mk.live{animation:prinPulse 1.8s ease-out infinite;}
@keyframes prinPulse{0%{box-shadow:0 0 0 0 rgba(201,168,76,.55),0 1px 7px rgba(0,0,0,.6);}70%{box-shadow:0 0 0 14px rgba(201,168,76,0),0 1px 7px rgba(0,0,0,.6);}100%{box-shadow:0 0 0 0 rgba(201,168,76,0),0 1px 7px rgba(0,0,0,.6);}}
.pin-pop .dl{display:flex;align-items:center;gap:6px;margin-top:3px;}
.pin-pop .dl i{width:14px;text-align:center;color:#888;}

/* ═══ Avatar crop ═══ */
#cropBox{width:280px;height:280px;margin:0 auto;border-radius:14px;overflow:hidden;
  border:2px solid var(--gold,#C8A24B);background:#000;position:relative;}
#cropCanvas{display:block;touch-action:none;cursor:grab;}
#cropCanvas:active{cursor:grabbing;}
#cropZoom{accent-color:var(--gold,#C8A24B);}

/* ═══ Route track legend chips in distance popups ═══ */
.pin-pop .rl{display:inline-block;width:16px;height:0;border-top:3px solid #16a34a;border-radius:2px;margin-right:2px;vertical-align:2px;}
.pin-pop .rl.walk{border-top:3px dashed #16a34a;}
.pin-pop .rl.car{border-top:4px solid #2563eb;}

/* ═══ Track-mode selector ═══ */
.track-group{margin-top:-2px;}
.track-group .tm{padding:6px 11px;font-size:calc(11.5px*var(--fs-scale,1));}
.track-group .tm.on{background:var(--gold,#C8A24B);color:#111;border-color:var(--gold,#C8A24B);}
.pin-pop .rl.line{border-top:3px dotted #6b7280;}

/* ═══ Track-type selector ═══ */
.track-row{margin-top:-2px;}
.track-row .tt{padding:6px 11px;font-size:calc(11.5px*var(--fs-scale,1));}
.track-row .tt.on{background:var(--gold,#C8A24B);color:#111;border-color:var(--gold,#C8A24B);}
.pin-pop .rl.line{border-top:3px dotted #9ca3af;}

/* ═══ Stacked topbar clock ═══ */
.tb-clock{align-items:flex-end;line-height:1.18;}
.tb-clock .c1{font-size:11.5px;font-weight:700;color:var(--gold-soft,#d9bb6e);letter-spacing:.04em;white-space:nowrap;}
.tb-clock .c2{font-size:9.5px;color:var(--text-dim,#9a9aa2);letter-spacing:.08em;white-space:nowrap;}
.tb-clock .c3{font-size:8.5px;color:var(--text-muted,#8a8a8a);letter-spacing:.16em;}
@media(max-width:560px){ .tb-clock .c1{font-size:10px;} .tb-clock .c2{font-size:8.5px;} .tb-clock .c3{font-size:7.5px;} }

/* ═══ Popups stretch; one info per line ═══ */
.leaflet-popup-content{margin:12px 16px;line-height:1.4;}
.pin-pop{min-width:200px;}
.pin-pop .dl{white-space:nowrap;}
.pin-pop b{font-size:calc(13px*var(--fs-scale,1));}
.pin-pop .by{font-size:calc(11px*var(--fs-scale,1));}

/* ═══ Operation clocks: operation line ═══ */
.clock .opn{font-size:9.5px;color:var(--gold-soft,#d9bb6e);margin:3px auto 0;letter-spacing:.04em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;text-align:center;}

/* ═══ Clock currency + country essentials ═══ */
.clock .ccy{font-size:9px;color:var(--text-dim,#9a9aa2);margin-top:2px;white-space:nowrap;}
.ess-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;}
.ess{display:flex;align-items:center;gap:11px;background:var(--bg,#0e0e11);border:1px solid var(--border,#26262c);
  border-radius:12px;padding:11px 13px;}
.ess i{font-size:calc(18px*var(--fs-scale,1));color:var(--gold,#C8A24B);width:22px;text-align:center;}
.ess .el{font-size:calc(10px*var(--fs-scale,1));color:var(--text-dim,#9a9aa2);text-transform:uppercase;letter-spacing:.08em;}
.ess .ev{font-size:calc(14px*var(--fs-scale,1));font-weight:700;margin-top:1px;}

/* schedule day cards */
.schday{margin-bottom:12px;}
.schday.schtoday{border-color:var(--gold,#c9a84c);}
.schhead{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;font-size:calc(14px*var(--fs-scale,1));}
.schnow{background:var(--gold,#c9a84c);color:#141414;font-size:calc(10px*var(--fs-scale,1));font-weight:800;padding:2px 7px;border-radius:9px;letter-spacing:.06em;}
.schcities{display:flex;gap:6px;flex-wrap:wrap;}
.citychip{font-size:11px;border:1px solid var(--border);border-radius:11px;padding:2px 9px;color:var(--gold-soft,#d8bc6e);white-space:nowrap;}
.schrow{border-top:1px solid var(--border);padding:8px 0;font-size:calc(13px*var(--fs-scale,1));}
.schrow:first-of-type{border-top:0;}
.schtop{font-weight:600;}
.schcity{color:var(--gold-soft,#d8bc6e);font-size:calc(12px*var(--fs-scale,1));margin-top:2px;}
.schwho{color:var(--text-dim);font-size:calc(12px*var(--fs-scale,1));margin-top:2px;}
.schj{white-space:pre-wrap;margin-top:4px;font-size:calc(12.5px*var(--fs-scale,1));}
.schn{white-space:pre-wrap;margin-top:4px;font-size:calc(12px*var(--fs-scale,1));color:var(--text-dim);}

.clink{color:var(--gold-soft,#d8bc6e);text-decoration:none;white-space:nowrap;}
.clink:hover{text-decoration:underline;}
.schform{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:8px;}
.sf{display:flex;flex-direction:column;gap:3px;font-size:calc(11px*var(--fs-scale,1));color:var(--text-dim);}
.sf input,.sf textarea,.sf select{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:7px 9px;font-size:13px;width:100%;}
.sfw{grid-column:1/-1;}

/* venue cards + clean contact tables */
.vgroup{margin-bottom:14px;}
.vgh{font-size:calc(12px*var(--fs-scale,1));text-transform:uppercase;letter-spacing:.08em;color:var(--gold-soft,#d8bc6e);margin:0 0 8px 2px;display:flex;align-items:center;gap:7px;}
.vgn{background:var(--card2);border:1px solid var(--border);border-radius:9px;padding:0 7px;font-size:calc(10.5px*var(--fs-scale,1));color:var(--text-dim);}
.vcard{margin-bottom:10px;}
.rowtbl td{vertical-align:top;padding:8px 12px;}
.rowtbl .cell-nw{white-space:nowrap;}
.rowtbl .cell-wrap{white-space:pre-wrap;min-width:180px;max-width:340px;}
.rowtbl th{white-space:nowrap;}

/* ── In-map place search (OpenStreetMap) ── */
#msBox{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:1000;width:min(440px,calc(100% - 24px));display:none;}
#msBox.open{display:block;}
#msBar{display:flex;align-items:center;gap:9px;background:var(--card,#15151a);border:1px solid var(--gold,#c9a84c);border-radius:11px;padding:9px 13px;box-shadow:0 8px 26px rgba(0,0,0,.4);}
#msBar i{color:var(--gold,#c9a84c);}
#msBar #msClose{color:var(--text-dim,#9a9789);cursor:pointer;}
#msInput{flex:1;background:none;border:0;outline:none;color:var(--text,#eceadf);font-size:13.5px;font-family:inherit;}
#msResults{background:var(--card,#15151a);border:1px solid var(--border,#26262c);border-radius:11px;margin-top:6px;overflow:hidden;max-height:260px;overflow-y:auto;box-shadow:0 8px 26px rgba(0,0,0,.4);}
#msResults:empty{display:none;}
.msr{padding:10px 13px;font-size:calc(12.5px*var(--fs-scale,1));border-bottom:1px solid var(--border,#26262c);cursor:pointer;display:flex;gap:8px;align-items:flex-start;line-height:1.45;}
.msr:last-child{border-bottom:0;}
.msr:hover{background:rgba(201,168,76,.08);}
.msr i{color:var(--gold,#c9a84c);margin-top:2px;}
.msr.muted{color:var(--text-dim,#9a9789);cursor:default;}
.msr.muted:hover{background:none;}

/* ── Communication channels (welcome screen) ── */
.comm-card{margin-bottom:14px;}
.comm-head{font-size:calc(11px*var(--fs-scale,1));font-weight:700;letter-spacing:.7px;color:var(--gold,#c9a84c);text-transform:uppercase;margin-bottom:9px;display:flex;gap:7px;align-items:center;}
.comm-row{display:flex;gap:9px;flex-wrap:wrap;}
.comm-chip{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:10px;border:1px solid var(--cc,#c9a84c);color:var(--cc,#c9a84c);font-size:13px;font-weight:600;text-decoration:none;background:transparent;transition:background .12s;}
.comm-chip:hover{background:rgba(255,255,255,.05);}
.comm-chip.radio{cursor:default;}

/* ── Check-in card (welcome console) ── */
.checkin-card{margin-top:12px;}
.checkin-card .ll-row{display:flex;align-items:center;gap:14px;}
.checkin-card .ll-info{flex:1;min-width:0;}
.checkin-card .ll-title{font-size:calc(14px*var(--fs-scale,1));font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;}
.checkin-card .ll-title i{color:var(--gold);}
.checkin-card .ll-sub{font-size:calc(12px*var(--fs-scale,1));color:var(--text-dim);margin-top:3px;line-height:1.5;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.ci-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:11px;border:1px solid var(--gold);background:transparent;color:var(--gold);font-family:inherit;font-size:calc(13.5px*var(--fs-scale,1));font-weight:700;letter-spacing:.03em;cursor:pointer;transition:background .15s,color .15s;}
.ci-btn:active{transform:scale(.98);}
.ci-btn.done{background:var(--green,#27ae60);border-color:var(--green,#27ae60);color:#fff;}
/* ── Offline / online banner ── */
.net-banner{position:fixed;top:0;left:0;right:0;z-index:3000;text-align:center;font-size:calc(12.5px*var(--fs-scale,1));font-weight:600;padding:8px 14px;letter-spacing:.02em;}
.net-banner.off{background:#7a1f1f;color:#ffd9d9;border-bottom:1px solid #a33;}
.net-banner.on{background:#1d5c34;color:#d9ffe6;border-bottom:1px solid #2c8a4f;}
[data-theme="light"] .net-banner.off{background:#fde8e8;color:#8a1f1f;border-bottom:1px solid #e3a8a8;}
[data-theme="light"] .net-banner.on{background:#e4f7ec;color:#14532d;border-bottom:1px solid #9fd6b4;}

/* ── Schedule: journey/phase layout — team column in front (left) of each phase ── */
.schphase{display:grid;grid-template-columns:230px 1fr;gap:14px;align-items:start;}
.schphase-ed{display:grid;grid-template-columns:280px 1fr;gap:14px;align-items:start;margin-bottom:8px;}
.sch-left{background:var(--bg3,rgba(255,255,255,.03));border:1px solid var(--border);border-radius:10px;padding:9px 11px;}
.sch-left-h{font-size:calc(10px*var(--fs-scale,1));font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--gold,#c9a84c);margin-bottom:6px;display:flex;gap:6px;align-items:center;}
.pairln{padding:4px 0;border-bottom:1px solid var(--border);font-size:calc(12px*var(--fs-scale,1));line-height:1.4;}
.pairln:last-child{border-bottom:none;}
.pl-duty{display:block;font-weight:700;color:var(--text);}
.pl-op{display:block;color:var(--text-dim);font-size:calc(11.5px*var(--fs-scale,1));}
.sch-noteam{font-size:calc(11.5px*var(--fs-scale,1));color:var(--text-muted);font-style:italic;}
.ph-lab{display:inline-block;font-size:calc(10.5px*var(--fs-scale,1));font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--gold,#c9a84c);border:1px solid var(--gold,#c9a84c);border-radius:6px;padding:2px 8px;margin-right:8px;vertical-align:middle;}
.ph-edlab{font-size:calc(10.5px*var(--fs-scale,1));font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--gold,#c9a84c);margin:2px 0 7px;}
.schrow-edit{border-top:1px dashed var(--border);margin-top:12px;padding-top:10px;}
.schrow-edit:first-of-type{border-top:none;margin-top:2px;padding-top:0;}
@media(max-width:760px){.schphase,.schphase-ed{grid-template-columns:1fr;}.sch-left{order:2;}}

/* duty cards inside the phase team column */
.dutycard{background:var(--bg2,rgba(255,255,255,.04));border:1px solid var(--border);border-radius:9px;padding:8px 9px;margin-bottom:8px;}
.dutycard .sf{margin-bottom:6px;}
.dc-head{display:flex;justify-content:space-between;align-items:center;font-size:calc(10px*var(--fs-scale,1));font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--gold,#c9a84c);margin-bottom:6px;}
.dc-x{cursor:pointer;color:var(--red,#C0392B);font-size:calc(11px*var(--fs-scale,1));}
.dc-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.pl-meta{display:block;color:var(--text-muted);font-size:calc(10.5px*var(--fs-scale,1));margin-top:1px;}

/* ══ SPLIT LOGIN (private operations portal) ══ */
.login-split{padding:0;align-items:stretch;justify-content:flex-start;}
.login-split .ls-hero{display:none;position:relative;flex:1 1 52%;min-height:100vh;background:#0A0A0A url('https://images.unsplash.com/photo-1533478784933-5fdbddc8ea7c?q=75&w=1600&auto=format&fit=crop') center/cover no-repeat;}
.login-split .ls-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,8,.25) 0%,rgba(5,5,8,.72) 100%);}
.login-split .ls-copy{position:absolute;left:48px;right:48px;bottom:64px;color:#fff;max-width:540px;}
.login-split .ls-copy h1{font-size:clamp(26px,2.8vw,38px);font-weight:600;letter-spacing:.02em;line-height:1.2;margin:0 0 12px;color:#fff;}
.login-split .ls-copy h1 em{color:var(--gold,#C9A84C);font-style:italic;}
.login-split .ls-copy p{margin:0;font-size:calc(14.5px*var(--fs-scale,1));line-height:1.75;color:rgba(255,255,255,.86);}
.login-split .ls-panel{position:relative;flex:1 1 48%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:56px 24px;min-height:100vh;}
.login-split .ls-inner{width:100%;max-width:430px;}
@media(min-width:920px){.login-split .ls-hero{display:block;}}

/* ══ Dina (bitmap-style TTF, operator-requested) ══ */
@font-face{font-family:'Dina';src:url('../fonts/Dina.ttf') format('truetype');font-weight:normal;font-style:normal;font-display:swap;}
[data-font="dina"]{ --font:'Dina','Consolas','Courier New',monospace; }
/* Dina glyphs run wide — trim it inside buttons/tabs so control widths match the Algoz theme */
[data-font="dina"] .btn{font-size:11.5px;letter-spacing:-.01em;}
[data-font="dina"] .btn-sm{font-size:10.5px;}
[data-font="dina"] .seg,[data-font="dina"] .dtab{font-size:calc(10.5px*var(--fs-scale,1));}
[data-font="dina"] .fd-btn{font-size:10.5px;}

/* Sign-out button (top-bar, far left) — visibly a logout control */
#tbLogout{color:#dc2626;border-color:rgba(220,38,38,.45);}
#tbLogout:hover{background:#dc2626;color:#fff;border-color:#dc2626;}

#tbLogout{margin-left:auto;}

/* ===== Text-size control: ONLY glyphs scale. Icons stay fixed. ===== */
i.fa-solid, i.fa-regular, i.fa-brands, i.fa-light, .ic{ font-size:14px; }
.nav-item .ic{ font-size:14px; }
.tnav-item i{ font-size:18px; }
.burger, .burger i{ font-size:18px; }
.tb-icon i{ font-size:16px; }

/* ═══ Ravens tactical features ═══ */
/* Owl Eyes themes — night (red-lens light discipline) + day */
[data-theme="owl"]{
  --bg:#050505; --bg2:#0b0708; --card:#0e0a0b; --border:#2a1518; --border2:#3a1d21;
  --text:#e8dfe0; --text-dim:#a08a8c; --text-muted:#7d6467; --hover:#1a0f11;
  --gold:#ff4545; --gold-soft:#ff6b6b; --gold-dim:#8b2020;
  --sb-active:#1d0e10; --input-bg:#0b0708; --red:#ff4545;
}
[data-theme="owl"] .page-title,[data-theme="owl"] .card>h3{color:var(--gold);}
[data-theme="owl-light"]{
  --bg:#faf6f6; --bg2:#ffffff; --card:#ffffff; --border:#e8d7d8; --border2:#dcc3c5;
  --text:#2a1214; --text-dim:#7d5457; --text-muted:#a08183; --hover:#f6eaea;
  --gold:#c22a2a; --gold-soft:#a82222; --gold-dim:#8b2020;
  --sb-active:#f8e9e9; --input-bg:#ffffff; --red:#c22a2a;
}
[data-theme="owl-light"] .page-title,[data-theme="owl-light"] .card>h3{color:var(--gold);}
/* mission clock bar */
.mission-clock{position:sticky;top:0;z-index:54;background:var(--bg2,#131318);border-bottom:1px solid var(--border,#26262c);border-left:3px solid var(--border,#26262c);padding:7px 16px;font-size:calc(12.5px*var(--fs-scale,1));color:var(--text-dim);letter-spacing:.03em;}
.mission-clock b{color:var(--gold,#c9a84c);}
/* alert chip */
.alert-chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid;border-radius:9px;padding:5px 11px;font-size:calc(11px*var(--fs-scale,1));font-weight:800;letter-spacing:.08em;}
/* squad strip */
.squad-strip{position:fixed;left:14px;bottom:calc(108px + env(safe-area-inset-bottom));z-index:1190;display:flex;gap:6px;max-width:min(72vw,640px);overflow-x:auto;padding:6px;background:var(--map-pop-bg,rgba(20,22,28,.55));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border2,#2a2d36);border-radius:12px;box-shadow:var(--shadow,0 8px 30px rgba(0,0,0,.4));}
.squad-strip .sq-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:calc(11.5px*var(--fs-scale,1));font-weight:600;padding:5px 10px;border:1px solid var(--border,#26262c);border-radius:999px;cursor:pointer;color:var(--text);}
.squad-strip .sq-chip.me{border-color:var(--gold,#c9a84c);}
.squad-strip .sq-dot{width:8px;height:8px;border-radius:50%;flex:none;}
.squad-strip .sq-sub{color:var(--text-muted);font-weight:400;font-size:calc(10px*var(--fs-scale,1));}
@media(max-width:880px){ .squad-strip{bottom:calc(160px + env(safe-area-inset-bottom));left:8px;max-width:calc(100vw - 16px);} }
/* ghost label */
.ghost-lbl{font-family:Arial,sans-serif;font-size:10px;font-weight:600;color:#f59e0b;background:rgba(10,10,10,.78);border:1px solid #f59e0b66;padding:1px 6px;border-radius:6px;white-space:nowrap;text-align:center;}
/* replay bar */
.replay-bar{display:flex;align-items:center;gap:10px;margin-top:10px;border:1px solid var(--gold,#c9a84c);border-radius:10px;padding:8px 12px;font-size:calc(12px*var(--fs-scale,1));}
.replay-bar input[type=range]{flex:1;}
/* ping button active */
#pingBtn.on{border-color:var(--gold,#c9a84c);color:var(--gold,#c9a84c);}
#gridBtn.on{border-color:var(--gold,#c9a84c);color:var(--gold,#c9a84c);}
/* grid reference overlay: edge labels + the discreet north compass */
.grid-lbl{font-family:monospace;font-weight:800;color:#ffd968;background:rgba(8,8,10,.82);border:1px solid rgba(255,255,255,.28);border-radius:6px;padding:1px 6px;text-align:center;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.9);line-height:1.35;}
.ping-cd{display:inline-block;margin-left:5px;font-family:monospace;font-size:10px;font-weight:800;color:#fff;background:rgba(220,38,38,.92);border-radius:5px;padding:0 5px;letter-spacing:.04em;}
/* finances tab */
.fin-lb{font-size:calc(10.5px*var(--fs-scale,1));letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px;}
.fin-v{font-size:calc(20px*var(--fs-scale,1));font-weight:700;font-variant-numeric:tabular-nums;}
.fin-bar{height:9px;background:var(--bg2,#141416);border:1px solid var(--border,#26262c);position:relative;}
.fin-bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold,#cfc163),var(--amber,#d9a441));}
.fin-chip{display:inline-block;font-size:calc(9.5px*var(--fs-scale,1));font-weight:800;letter-spacing:.07em;padding:2px 8px;border:1px solid;white-space:nowrap;}
.fin-chip.ok{color:#16a34a;border-color:#16a34a;background:rgba(39,174,96,.1);}
.fin-chip.warn{color:var(--amber,#d9a441);border-color:var(--amber,#d9a441);background:rgba(217,164,65,.12);}
.fin-chip.bad{color:#e5484d;border-color:#e5484d;background:rgba(229,72,77,.1);}
.fin-chip.gold{color:var(--gold,#cfc163);border-color:var(--gold,#cfc163);}
.fin-cat{display:inline-block;font-size:calc(10.5px*var(--fs-scale,1));color:var(--text-dim);border:1px solid var(--border2,#33333c);padding:2px 8px;white-space:nowrap;}
/* settlement table: single-line headers + amounts, side-by-side action buttons */
.fin-settle th,.fin-settle td{white-space:nowrap;}
.fin-settle td .btn{display:inline-flex;vertical-align:middle;margin:0 0 0 4px;}
.fin-settle .fin-chip{vertical-align:middle;}
.map-compass{position:absolute;left:10px;bottom:22px;z-index:900;pointer-events:none;opacity:.85;line-height:0;}
/* map layer filter popover (mapCard is its positioning context) */
#mapCard{position:relative;}
.layers-pop{position:absolute;top:52px;right:12px;z-index:1450;background:var(--map-pop-bg,rgba(20,22,28,.85));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border:1px solid var(--border2,#33333c);border-radius:12px;padding:12px 14px;min-width:190px;box-shadow:0 10px 34px rgba(0,0,0,.45);}
#layersBtn.on{border-color:var(--gold,#c9a84c);color:var(--gold,#c9a84c);}
/* proximity warning banner */
.prox-banner{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:9999;display:none;align-items:center;gap:9px;max-width:min(92vw,560px);background:#7f1d1d;color:#fff;border:1px solid #ef4444;border-radius:12px;padding:11px 16px;font-size:13.5px;box-shadow:0 10px 34px rgba(0,0,0,.55);}
.prox-banner i{color:#fbbf24;font-size:16px;}
/* compass bearing bar (personal setting) */
.map-ribbon{position:absolute;top:10px;left:50%;transform:translateX(-50%);z-index:900;display:none;gap:7px;flex-wrap:wrap;justify-content:center;max-width:92%;pointer-events:none;}
.rib-chip{display:inline-flex;align-items:center;gap:6px;background:var(--map-pop-bg,rgba(20,22,28,.75));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border2,#33333c);border-radius:999px;padding:4px 11px;font-size:11.5px;color:var(--text,#eee);white-space:nowrap;}
.rib-chip b{color:var(--gold,#c9a84c);}
/* war room: fullscreen map + right event panel */
.war-panel{position:fixed;top:12px;right:12px;bottom:12px;width:min(380px,42vw);z-index:1470;overflow-y:auto;overscroll-behavior:contain;background:var(--map-pop-bg,rgba(20,22,28,.78));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border2,#33333c);border-radius:12px;padding:13px 15px;}
body.war-room #mapSide{display:none!important;}
[data-theme^="tactical"] .layers-pop,[data-theme^="owl"] .layers-pop,
[data-theme^="tactical"] .war-panel,[data-theme^="owl"] .war-panel,
[data-theme^="tactical"] .rib-chip,[data-theme^="owl"] .rib-chip{border-radius:2px;}
#mapHint .pt.on{font-weight:800;}
/* tactical board */
.bd-tools{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.bd-tools .btn.on{border-color:var(--gold,#c9a84c);color:var(--gold,#c9a84c);}
.bd-col{width:20px;height:20px;border-radius:50%;border:2px solid var(--border,#26262c);cursor:pointer;display:inline-block;}
.bd-col.on{border-color:var(--gold,#c9a84c);transform:scale(1.15);}
.bd-stage{position:relative;width:100%;overflow:hidden;border-radius:12px;border:1px solid var(--border,#26262c);touch-action:none;user-select:none;}
.bd-stage img{display:block;width:100%;height:auto;pointer-events:none;}
.bd-stage svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:auto;}
#bdTokens{position:absolute;inset:0;pointer-events:none;}
.bd-tok{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:auto;cursor:grab;touch-action:none;}
.bd-tok:active{cursor:grabbing;}
.bd-tok-dot{width:30px;height:30px;border-radius:50%;background:var(--tc,#c9a84c);border:2px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;color:#0a0a0a;font-size:13px;}
.bd-tok-lbl{font-family:Arial,sans-serif;font-size:10px;font-weight:700;color:#fff;background:rgba(10,10,10,.8);padding:1px 6px;border-radius:6px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis;}
.bd-tok-sub{font-size:8.5px;font-weight:600;opacity:.92;margin-top:1px;}
.bd-shp-lbl{position:absolute;transform:translate(-50%,-120%);font-family:Arial,sans-serif;font-size:10px;font-weight:700;background:rgba(10,10,10,.68);padding:1px 7px;border-radius:6px;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis;pointer-events:none;}
/* watchlist */
.wl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;}
.wl-card{border:1px solid var(--border,#26262c);border-radius:12px;overflow:hidden;background:var(--bg,#0e0e11);}
.wl-card img{width:100%;height:140px;object-fit:cover;display:block;}
.wl-ph{width:100%;height:90px;display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--text-muted);background:var(--bg2,#141419);}
.wl-b{padding:10px 12px;}
.badge-mini{font-size:9px;font-weight:800;letter-spacing:.06em;border:1px solid;border-radius:5px;padding:1px 6px;vertical-align:middle;}

/* ═══════════ Schedule relative-day tags ═══════════ */
.schrel{background:var(--hover,#22242b);color:var(--text-dim,#9a9aa3);font-size:calc(10px*var(--fs-scale,1));font-weight:800;padding:2px 7px;border-radius:9px;letter-spacing:.06em;}
.schrel-next{background:transparent;border:1px solid var(--gold,#c9a84c);color:var(--gold,#c9a84c);}

/* ═══════════ Desktop web: dock buttons toggle FIXED boards above the dock (right side)
   instead of centred popups — no overlay, page stays usable behind them. ═══════════ */
@media(min-width:1025px){
  .ft-modal.docked,.sos-panel.docked{
    inset:auto;right:20px;bottom:118px;left:auto;top:auto;
    background:transparent;padding:0;pointer-events:none;
    align-items:flex-end;justify-content:flex-end;z-index:2050;
  }
  .ft-modal.docked .ft-modal-card,
  .sos-panel.docked .sos-inner{
    pointer-events:auto;width:440px;max-width:calc(100vw - 40px);
    max-height:calc(100vh - 158px);max-height:calc(100dvh - 158px);
    overflow-y:auto;overscroll-behavior:contain;
    box-shadow:0 14px 48px rgba(0,0,0,.55);
    border-color:var(--border2,#33333c);
  }
  .sos-panel.docked .sos-inner{display:flex;flex-direction:column;}
  .sos-panel.docked .sos-inner>*{flex:0 0 auto;}
}

/* ═══════════ Algoz themes (dark + light): architectural 90° geometry.
   --radius/--radius-sm are already 0 for these themes; this block squares the
   components with hardcoded radii — boards, popups, buttons, chips, labels.
   Tactical HUD and Owl Eyes keep their own 2px treatment. ═══════════ */
html:is([data-theme="dark"],[data-theme="light"]) :is(.card,.btn,.seg,.dtab,.badge,.badge-mini,.nav-item,.tb-icon,.clock,.note,
  .field-dock,.fd-btn,.ft-modal-card,.sos-inner,.sos-big,.sop-card,.sop-opt,.sop-ic,.sop-body,
  .geo-bar,.zone-lbl,.gl-zone-label,.pin-lbl,.gl-pin-label,.layers-pop,.war-panel,.rib-chip,.replay-bar,
  .are-row,.op-card,.stat,.ess,.opc-box,.opc-badge,.cal-day,.cal-ev,.map-search-res,.gop,.ct-filter,
  .citychip,.schnow,.schrel,.mission-clock,.alert-chip,.sq-chip,.wl-card,.bd-stage,.bd-tok-lbl,.bd-shp-lbl,
  .grid-lbl,.toast,.auth-card,.ls-inner,.prox-banner,.tbl-wrap,.splash-sub){border-radius:0;}
html:is([data-theme="dark"],[data-theme="light"]) #mapCard.map-fs :is(.map-search,.map-controls,.track-row,.map-hint){border-radius:0;}
/* inline-styled modal cards (style attributes) need !important to square off */
html:is([data-theme="dark"],[data-theme="light"]) :is(#pinModal,#opNewModal,#opCardModal,#rmTokModal,#tmModal,#geoModal,#routeModal) > div{border-radius:0!important;}
/* map popups (Leaflet + Mapbox GL set 12px with !important) */
html:is([data-theme="dark"],[data-theme="light"]) .leaflet-popup-content-wrapper,
html:is([data-theme="dark"],[data-theme="light"]) .mapboxgl-popup-content{border-radius:0!important;}
