/* Workspace styling uses the canonical platform tokens. GIS colors stay intact. */
:root { --safe-top: env(safe-area-inset-top, 0px); --safe-bottom: env(safe-area-inset-bottom, 0px); }
html, body { height: auto; min-height: 100%; width: 100%; }
body { overflow-x: clip; }
button, input, select { font: inherit; color: inherit; }
button { touch-action: manipulation; }
.hidden { display: none !important; }
#siteHeader { position: sticky; top: 0; z-index: 80; min-height: 89px; }
.sr-site-header { position: relative; }
.app-root { min-height: 100dvh; height: auto; overflow: visible; }
.sr-page-main { padding-top: 34px; background: var(--sr-surface); }
.sr-page-main::before { display: none; }
.page-intro { align-items: center; }
.page-intro h1 { letter-spacing: -.02em; line-height: 1.25; }
html[lang='ar'] .page-intro h1, html[lang='ar'] .eyebrow, html[lang='ar'] .section-kicker { letter-spacing: 0; }
.page-intro p { font-size: 1rem; line-height: 1.7; }
.page-intro .eyebrow { background: none; border-radius: 0; padding: 0; font-size: .84rem; font-weight: 700; }
.page-intro-badge { border-radius: 14px; background: var(--sr-surface-soft); }
.map-workspace { border-radius: var(--sr-radius); box-shadow: none; background: var(--sr-surface-raised); }
.side-panel, .sr-map-card { background: var(--sr-surface-raised); box-shadow: none; backdrop-filter: none; }
.layer-card { height: auto; background: var(--sr-surface-soft); border-radius: 14px; }
.layer-card-head { height: auto; flex-wrap: wrap; }
.layer-card.active { border-color: var(--sr-primary); background: color-mix(in srgb, var(--sr-primary) 7%, var(--sr-surface-raised)); }
.switch-row { min-height: 44px; }
.switch-row strong { font-size: .88rem; }
.switch-row small { font-size: .7rem; }
.quality { font-size: .62rem; }
.opacity-control, .select-row, .site-key span, .legend-block p, .line-key { font-size: .78rem; }
.opacity-control input { min-height: 32px; }
.select-row { grid-template-columns: 1fr; }
.select-row select { min-height: 44px; font-size: .85rem; }
.info-section { font-size: .85rem; }
.legend-values { font-size: .7rem; }
.workspace-head p { font-size: .85rem; }
.map-canvas-card { isolation: isolate; box-shadow: none; border-radius: var(--sr-radius); }
.map-svg, .map-data-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.map-svg { z-index: 1; }.map-data-canvas { z-index: 2; pointer-events: none; contain: strict; }
.map-empty { z-index: 9; }
.map-controls, .map-status, .popup { background: var(--sr-surface-raised); border: 1px solid var(--sr-border); box-shadow: var(--sr-shadow); }
.map-controls button { width: 44px; height: 44px; }
.workspace-filter-button, #layersDone { border: 1px solid var(--sr-primary); background: var(--sr-primary); color: white; border-radius: 14px; }
.workspace-filter-button:hover, #layersDone:hover { background: var(--sr-primary-strong); }
.attribution { z-index: 6; }
button:focus-visible, select:focus-visible, summary:focus-visible, a:focus-visible { outline: 3px solid color-mix(in srgb, var(--sr-primary) 40%, transparent); outline-offset: 3px; }
.switch-row input:focus-visible + .switch { outline: 3px solid var(--sr-primary); outline-offset: 3px; }
.sr-embedded #siteHeader, .sr-embedded #siteFooter, .sr-embedded > body > .sr-skip-link { display: none; }
.sr-embedded, .sr-embedded body, .sr-embedded .app-root { min-height: 0; height: auto; }
/* Keep the workspace's bottom margin inside the height reported to the host. */
.sr-embedded .app-root { display: flow-root; }
.sr-embedded .map-canvas-card { height: var(--map-height, 600px) !important; min-height: 0 !important; }
.sr-embedded .map-expanded .map-canvas-card { height: auto !important; }
@media (max-width: 980px) { #siteHeader { min-height: 77px; } }
@media (max-width: 650px) { #siteHeader { min-height: 77px; } }
@media (max-width: 760px) {
  .sr-page-main { padding-top: 22px !important; }
  .page-intro p { font-size: .9rem; }
  .map-workspace { box-shadow: none !important; border-radius: 22px !important; }
  .map-controls, .map-status { background: var(--sr-surface-raised) !important; }
  .layers-dialog .side-panel { margin: 0; }
  .layers-dialog .site-key span, .layers-dialog .legend-block p { font-size: .8rem; }
}


/* Registration gate: guests can see the map but cannot interact with it. */
.map-workspace { position: relative; }
.resource-access-gate {
  position: absolute;
  inset: 0;
  z-index: 70;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(110px, 15vh, 210px) 18px 32px;
  background: color-mix(in srgb, var(--sr-surface) 12%, transparent);
  pointer-events: auto;
  cursor: default;
}
.resource-access-gate[hidden] { display: none !important; }
.resource-access-card {
  width: min(560px, calc(100% - 20px));
  padding: 24px;
  text-align: center;
  color: var(--sr-text);
  background: color-mix(in srgb, var(--sr-surface-raised) 94%, transparent);
  border: 1px solid var(--sr-border);
  border-radius: 20px;
  box-shadow: var(--sr-shadow);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.resource-access-icon {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 31px;
  margin-bottom: 12px;
  border: 3px solid var(--sr-primary);
  border-radius: 9px;
}
.resource-access-icon::before {
  content: '';
  position: absolute;
  left: 50%;
  top: -18px;
  width: 20px;
  height: 18px;
  border: 3px solid var(--sr-primary);
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  transform: translateX(-50%);
}
.resource-access-eyebrow {
  display: block;
  margin-bottom: 6px;
  color: var(--sr-primary);
  font-size: .78rem;
  font-weight: 800;
}
.resource-access-title {
  margin: 0;
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
  line-height: 1.4;
}
.resource-access-body {
  max-width: 48ch;
  margin: 10px auto 0;
  color: var(--sr-text-muted);
  font-size: .92rem;
  line-height: 1.75;
}
.resource-access-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.resource-access-actions a {
  min-height: 44px;
  padding: 10px 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 13px;
  font-size: .9rem;
  font-weight: 800;
  text-decoration: none;
}
.resource-access-login {
  color: #fff;
  background: var(--sr-primary);
  border: 1px solid var(--sr-primary);
}
.resource-access-login:hover { background: var(--sr-primary-strong); }
.resource-access-register {
  color: var(--sr-primary);
  background: var(--sr-surface-raised);
  border: 1px solid var(--sr-primary);
}
.access-locked .side-panel,
.access-locked .map-canvas-card {
  user-select: none;
}
@media (max-width: 760px) {
  .resource-access-gate { padding-top: 92px; }
  .resource-access-card { padding: 20px 16px; border-radius: 18px; }
  .resource-access-actions { flex-direction: column; }
  .resource-access-actions a { width: 100%; }
}
