/* RadiusReady v88 — unified product UI refresh
   Visual direction: dark navy product chrome, crisp blue actions, compact SaaS workspace cards.
   This stylesheet intentionally leaves the map engine and data logic untouched. */
:root{
  --rr-ink:#0b1f3a;
  --rr-navy:#071527;
  --rr-navy-2:#0b2039;
  --rr-navy-3:#102b4a;
  --rr-blue:#1f75ea;
  --rr-blue-2:#2f8df5;
  --rr-cyan:#24b8ca;
  --rr-green:#20a866;
  --rr-amber:#f59e0b;
  --rr-red:#e5484d;
  --rr-bg:#eef3f8;
  --rr-panel:#ffffff;
  --rr-soft:#f7f9fc;
  --rr-line:#d8e2ee;
  --rr-muted:#63758d;
  --rr-shadow:0 10px 30px rgba(12,33,61,.08);
  --rr-shadow-strong:0 18px 50px rgba(4,18,36,.14);
}

body{background:var(--rr-bg)}

/* Product chrome */
.topbar{
  min-height:66px;height:66px;padding:0 22px;
  background:linear-gradient(115deg,var(--rr-navy),#081a30 56%,#0b2340);
  border-bottom:1px solid rgba(133,166,203,.22);
  box-shadow:0 8px 24px rgba(4,15,31,.16);
  color:#fff;
  position:sticky;top:0;z-index:90;
}
.topbar .brand{gap:10px;color:#fff}
.topbar .brand img{height:40px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}
.topbar .brand-copy strong{font-size:21px;color:#fff;letter-spacing:-.45px}
.topbar .brand-copy>span{color:#aebed2;font-size:11.5px;margin-top:3px}
.topbar .brand-copy .accent,.topbar .accent{color:#25b8e8}
.topbar .nav{gap:8px}
.topbar .nav>a:not(.btn){color:#dce8f6;padding:9px 8px;border-radius:8px;font-size:13px}
.topbar .nav>a:not(.btn):hover{background:rgba(255,255,255,.07);color:#fff}
.topbar .btn{
  min-height:38px;padding:8px 12px;border-radius:8px;
  border:1px solid #2d4666;background:#0d223c;color:#f4f8fd;
  box-shadow:none;font-size:13px;font-weight:750;
}
.topbar .btn:hover{background:#143152;border-color:#45678f;box-shadow:none;transform:none}
.topbar .btn.primary{background:linear-gradient(180deg,#2785f5,#1768d8);border-color:#398cf0;color:#fff;box-shadow:0 6px 16px rgba(22,104,216,.24)}
.topbar .btn.primary:hover{background:linear-gradient(180deg,#3291ff,#1974e8)}

/* Public-facing pages keep a light body but inherit the stronger product chrome. */
body:not(.rr-workspace) .hero-card{border:1px solid rgba(83,145,210,.22);box-shadow:0 24px 60px rgba(4,24,48,.22)}
body:not(.rr-workspace) .feature,body:not(.rr-workspace) .price-card{border-color:#d7e2ee;box-shadow:0 9px 28px rgba(8,28,52,.06)}
body:not(.rr-workspace) .btn.primary{background:linear-gradient(135deg,var(--rr-cyan),var(--rr-blue));border-color:transparent;color:#fff}

/* Authenticated application workspace */
body.rr-workspace{background:var(--rr-bg);color:var(--rr-ink);min-height:100vh}
body.rr-workspace .shell{max-width:1540px;padding:28px 28px 52px}
body.rr-workspace h1{color:#10243e;letter-spacing:-1.1px}
body.rr-workspace h2{color:#142b48;letter-spacing:-.35px}
body.rr-workspace .muted,body.rr-workspace .small{color:var(--rr-muted)}
body.rr-workspace .section-kicker{color:#1685ad}

body.rr-workspace .card,
body.rr-workspace .panel,
body.rr-workspace dialog>form.card{
  background:var(--rr-panel);
  border:1px solid var(--rr-line);
  border-radius:14px;
  box-shadow:var(--rr-shadow);
}
body.rr-workspace .card h2,body.rr-workspace .panel h2{margin-top:0}
body.rr-workspace .metric{position:relative;overflow:hidden}
body.rr-workspace .metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--rr-cyan),var(--rr-blue))}
body.rr-workspace .metric b{color:#102d50;font-variant-numeric:tabular-nums}
body.rr-workspace .metric span{color:var(--rr-muted)}

body.rr-workspace .btn,
body.rr-workspace button:not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out){
  border-radius:8px;border:1px solid #cbd8e6;background:#fff;color:#173a60;
  box-shadow:0 1px 2px rgba(14,33,56,.03);font-weight:750;
}
body.rr-workspace .btn:hover,body.rr-workspace button:hover{border-color:#9eb4cb;background:#f7fbff;transform:none;box-shadow:none}
body.rr-workspace .btn.primary,body.rr-workspace button.primary{
  color:#fff;background:linear-gradient(180deg,#2d89f4,#176ddf);border-color:#2178e6;
  box-shadow:0 5px 14px rgba(23,109,223,.16)
}
body.rr-workspace .btn.primary:hover,body.rr-workspace button.primary:hover{background:linear-gradient(180deg,#3995ff,#1977eb)}

body.rr-workspace input:not([type=checkbox]):not([type=radio]):not([type=range]),
body.rr-workspace select,body.rr-workspace textarea{
  background:#fff;color:#132b49;border:1px solid #cbd7e5;border-radius:8px;
  box-shadow:inset 0 1px 1px rgba(12,31,51,.02);
}
body.rr-workspace input:focus,body.rr-workspace select:focus,body.rr-workspace textarea:focus{
  outline:3px solid rgba(31,117,234,.14);border-color:#5a9be9
}

body.rr-workspace table{background:#fff}
body.rr-workspace th{font-size:12px;text-transform:uppercase;letter-spacing:.045em;color:#61748c;background:#f7f9fc}
body.rr-workspace td,body.rr-workspace th{border-bottom-color:#e5ebf2}
body.rr-workspace tbody tr:hover{background:#f9fbfe}
body.rr-workspace .badge,body.rr-workspace .status{border:1px solid #d8e3ef;background:#f1f5f9;color:#334b67}
body.rr-workspace .warn,body.rr-workspace .yellow{background:#fff5d9!important;color:#806000!important;border-color:#f1d98e!important}
body.rr-workspace .green{background:#e8f7ee!important;color:#176b42!important;border-color:#bde4cc!important}
body.rr-workspace .red{background:#ffedef!important;color:#9d2630!important;border-color:#f3c4c9!important}

/* Dashboard / operations / reports */
body.rr-workspace .grid{gap:14px}
body.rr-workspace .pipeline{gap:10px;padding-bottom:4px}
body.rr-workspace .pipeline .col{background:#f5f8fc;border:1px solid #dce5ef;border-radius:11px;min-height:112px}
body.rr-workspace .pipeline .col>b{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#526983}
body.rr-workspace .pipeline .mini{background:#fff;border:1px solid #d8e2ed;box-shadow:0 3px 10px rgba(12,31,51,.04)}
body.rr-workspace .onboard{background:linear-gradient(100deg,#e8f4ff,#f1fbfb);border:1px solid #bed9ed;border-radius:14px;box-shadow:var(--rr-shadow)}
body.rr-workspace .calendar .day{background:#fff;border-color:#dbe4ee}
body.rr-workspace .calendar .event{background:#e9f3ff;color:#214d7d;border-left:3px solid var(--rr-blue)}

/* Cases and portal surfaces frequently use these component names. */
body.rr-workspace .sidebar,body.rr-workspace .case-list{background:#f8fafc;border-color:#d9e3ee}
body.rr-workspace .case-card,body.rr-workspace .rental-card,body.rr-workspace .portal-card{box-shadow:0 5px 18px rgba(13,35,58,.05)}
body.rr-workspace .toolbar{gap:9px}

/* Client portal should feel approachable without losing the product chrome. */
body.rr-client-portal{background:linear-gradient(180deg,#edf4fb,#f7f9fc 260px)}
body.rr-client-portal .shell{max-width:1320px}

/* Dialogs */
body.rr-workspace dialog{border:0;border-radius:16px;padding:0;box-shadow:0 30px 90px rgba(3,18,38,.28)}
body.rr-workspace dialog::backdrop{background:rgba(4,18,36,.55);backdrop-filter:blur(3px)}

@media(max-width:760px){
  .topbar{height:auto;min-height:62px;padding:9px 12px;align-items:flex-start}
  .topbar .brand img{height:36px}.topbar .brand-copy strong{font-size:19px}
  .topbar .nav{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:1px;scrollbar-width:none}
  .topbar .nav::-webkit-scrollbar{display:none}
  .topbar .nav .btn,.topbar .nav>a{white-space:nowrap;min-height:38px}
  body.rr-workspace .shell{padding:20px 14px 42px}
}

/* v93 global signed-in navigation */
.topbar .nav .rr-global-email{
  display:inline-flex;align-items:center;max-width:260px;min-height:38px;
  padding:0 10px 0 0;margin-right:3px;color:#b9c9db;font-size:12px;font-weight:650;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid rgba(164,190,220,.2)
}
.map-header-actions .rr-global-email{margin-right:4px}
.rr-global-email{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;opacity:.82;margin-right:2px}
.rr-view-as{display:flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid rgba(148,163,184,.28);border-radius:9px;background:rgba(15,35,60,.55);font-size:11px;font-weight:700;white-space:nowrap}
.rr-view-as span{opacity:.75}.rr-view-as select{min-height:30px;max-width:180px;padding:4px 24px 4px 8px;border-radius:7px;border:1px solid rgba(148,163,184,.32);background:#0d223b;color:#eef6ff;font:inherit}
@media(max-width:900px){
  .topbar .nav .rr-global-email{display:none}
  .rr-global-email{max-width:150px}.rr-view-as span{display:none}.rr-view-as select{max-width:150px}
  .map-user-email.rr-global-email{display:inline-block;max-width:105px}
}


/* RadiusReady v106 — checkbox/label association and tap-target cleanup */
body.rr-workspace input[type="checkbox"]{
  width:18px!important;height:18px;min-height:18px!important;min-width:18px!important;
  flex:0 0 18px;margin:0;accent-color:var(--rr-blue);vertical-align:middle;
}
body.rr-workspace label:has(> input[type="checkbox"]){
  display:inline-flex;align-items:center;gap:7px;width:auto;max-width:100%;
  margin:4px 12px 4px 0;line-height:1.35;cursor:pointer;
}
body.rr-workspace label:has(> input[type="checkbox"]) > input[type="checkbox"]{margin:0}
body.rr-workspace .permission-grid label:has(> input[type="checkbox"]),
body.rr-workspace .prefs label:has(> input[type="checkbox"]){align-items:flex-start}
body.rr-workspace .permission-grid label:has(> input[type="checkbox"]) > input[type="checkbox"],
body.rr-workspace .prefs label:has(> input[type="checkbox"]) > input[type="checkbox"]{margin-top:1px}
body.rr-workspace .controls label:has(> input[type="checkbox"]){
  flex:0 0 auto;padding:7px 9px;border:1px solid var(--rr-line);border-radius:8px;background:#fff;
}
@media(max-width:600px){
  body.rr-workspace .controls label:has(> input[type="checkbox"]){width:100%;justify-content:flex-start;min-height:42px}
  .pilot-actions{display:grid;grid-template-columns:1fr;gap:6px}
  .pilot-actions .btn{width:100%}
}
