.a1osis-phase13-language-toggle {
  --a1osis-phase13-cyan: #27d3ff;
  align-items: center;
  background: #03111ddd;
  border: 1px solid #27d3ff80;
  border-radius: 999px;
  color: #dff7ff;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 3px;
  min-height: 32px;
  padding: 3px;
}

.a1osis-phase13-language-toggle > span {
  color: #91aab8;
  font: 700 12px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: 0.04em;
  padding: 0 5px 0 7px;
  text-transform: uppercase;
}

.a1osis-phase13-language-toggle button {
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: #b5cad5;
  cursor: pointer;
  font: 800 12px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  min-height: 26px;
  min-width: 31px;
  padding: 6px 8px;
}

.a1osis-phase13-language-toggle button[aria-pressed="true"] {
  background: var(--a1osis-phase13-cyan);
  color: #00121f;
}

.a1osis-phase13-language-toggle button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/*
 * Protected workspace readability floor.
 *
 * The preserved 2.4 bundles use several 6–10px labels and links. Keep
 * decorative plan geometry untouched while ensuring every actionable or
 * explanatory control label is readable in each authenticated workspace.
 */
:where(
    .plan-studio,
    .proposal-admin,
    .project-dashboard,
    .contractor-workspace-page,
    .account-center,
    .member-admin
  )
  :is(a, button, input, select, textarea, label, small, .eyebrow) {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

:where(.proposal-admin, .project-dashboard)
  :is(
    .proposal-section-copy,
    .dashboard-notice,
    .dashboard-empty,
    .calendar-list-title,
    .followup-calendar-note,
    .access-note
  ) {
  font-size: 12px !important;
  line-height: 1.5 !important;
}

.a1osis-global-notification-dock
  :is(button, a, label, input, select, textarea, small, p) {
  font-size: 12px !important;
  line-height: 1.4 !important;
}

/*
 * ES/GB metric compatibility keeps the frozen Plan Studio inputs alive for
 * React, but removes their canonical feet values from the visual and
 * accessibility flows. The adjacent metric control writes converted feet
 * back through the native input event contract before Plan Studio saves.
 */
.plan-studio .a1osis-canonical-feet-input {
  block-size: 1px !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  inline-size: 1px !important;
  margin: -1px !important;
  opacity: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  white-space: nowrap !important;
}

.plan-studio .a1osis-metric-display-input {
  min-inline-size: 0;
}

.a1osis-phase13-language-toggle--floating {
  bottom: calc(12px + env(safe-area-inset-bottom));
  box-shadow: 0 12px 38px #0009;
  left: 12px;
  position: fixed;
  z-index: 890;
}

.generated-site-plan.a1osis-phase16-map-image-plan {
  background: #eef2f4;
}

.generated-site-plan.a1osis-phase16-satellite-map-plan {
  background: #17232b;
}

.generated-site-plan.a1osis-phase16-map-image-plan
  > image[data-a1osis-site-image] {
  opacity: 1;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* Provider map images are the complete baseline. Never mix them with legacy
 * provider-derived geometry that may still exist in an older saved draft. */
.generated-site-plan.a1osis-phase16-map-image-plan .site-building,
.generated-site-plan.a1osis-phase16-map-image-plan .site-parking,
.generated-site-plan.a1osis-phase16-map-image-plan .site-road {
  display: none;
}

.a1osis-site-view-controls {
  background: #02101df2;
  border: 1px solid #27d3ffb0;
  bottom: 12px;
  box-shadow: 0 12px 34px #0009;
  color: #dff7ff;
  display: grid;
  gap: 8px;
  left: 12px;
  max-width: calc(100% - 24px);
  padding: 11px;
  position: absolute;
  width: min(430px, calc(100% - 24px));
  z-index: 32;
}

.a1osis-site-view-controls > strong {
  color: #dff7ff;
  font: 800 12px/1.35 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.a1osis-site-view-buttons {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.a1osis-site-view-controls button {
  align-items: center;
  background: #04131f;
  border: 1px solid #27d3ff8f;
  color: #dff7ff;
  cursor: pointer;
  display: inline-flex;
  font: 800 12px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace;
  justify-content: center;
  min-height: 44px;
  padding: 9px 12px;
}

.a1osis-site-view-controls button.active {
  background: #27d3ff;
  color: #00131f;
}

.a1osis-site-view-controls button:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.a1osis-site-view-status {
  color: #afc6d2;
  font: 700 12px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace;
}

.a1osis-site-map-setup {
  border-top: 1px solid #27d3ff52;
  color: #dcebf2;
  display: grid;
  font-size: 12px;
  gap: 8px;
  line-height: 1.5;
  margin: 0;
  padding-top: 9px;
}

.a1osis-site-map-setup a {
  align-items: center;
  border: 1px solid #27d3ff8f;
  color: #27d3ff;
  display: inline-flex;
  font-size: 12px;
  font-weight: 800;
  justify-content: center;
  min-height: 44px;
  padding: 9px 12px;
}

.a1osis-demo-showcase-controls {
  --a1osis-demo-cyan: #27d3ff;
  color: #eaf8ff;
  font-family: Inter, Arial, sans-serif;
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: 27000;
}

.a1osis-demo-showcase-controls *,
.a1osis-demo-showcase-controls *::before,
.a1osis-demo-showcase-controls *::after {
  box-sizing: border-box;
}

.a1osis-demo-widget {
  pointer-events: auto;
  position: fixed;
  right: max(14px, env(safe-area-inset-right));
  width: min(340px, calc(100vw - 28px));
}

.a1osis-demo-workspace-selector {
  top: max(142px, calc(env(safe-area-inset-top) + 130px));
}

.a1osis-demo-reminders {
  top: max(208px, calc(env(safe-area-inset-top) + 196px));
}

.a1osis-demo-communicator {
  bottom: max(14px, env(safe-area-inset-bottom));
}

.a1osis-demo-widget button,
.a1osis-demo-widget a {
  font: 800 12px/1.2 Inter, Arial, sans-serif;
}

.a1osis-demo-widget button {
  appearance: none;
  cursor: pointer;
}

.a1osis-demo-widget__launcher {
  align-items: center;
  background: #061827f5;
  border: 1px solid #27d3ffad;
  border-radius: 14px;
  box-shadow: 0 14px 38px #0008;
  color: #eaf8ff;
  display: grid;
  gap: 9px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  margin-left: auto;
  min-height: 54px;
  padding: 7px 11px;
  text-align: left;
  width: 100%;
}

.a1osis-demo-reminders .a1osis-demo-widget__launcher {
  background: linear-gradient(135deg, #1fcaf3, #19a9d8);
  border-color: #52e2ff;
  color: #00131e;
}

.a1osis-demo-widget__launcher b {
  border-left: 1px solid currentColor;
  font-size: 11px;
  padding: 8px 2px 8px 10px;
}

.a1osis-demo-widget__icon,
.a1osis-demo-widget__compact-launcher {
  align-items: center;
  background: #082238;
  border: 1px solid #27d3ff;
  border-radius: 11px;
  color: #dff8ff;
  display: inline-flex;
  font: 850 13px/1 Inter, Arial, sans-serif;
  height: 38px;
  justify-content: center;
  min-width: 38px;
  padding: 0 8px;
}

.a1osis-demo-reminders .a1osis-demo-widget__icon {
  background: #0017252b;
  border-color: #00172570;
}

.a1osis-demo-widget__copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.a1osis-demo-widget__copy small,
.a1osis-demo-widget__panel header small,
.a1osis-demo-workspace-card small {
  color: #75dff5;
  font: 750 9px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.a1osis-demo-reminders .a1osis-demo-widget__copy small {
  color: #003148;
}

.a1osis-demo-widget__copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.a1osis-demo-widget__compact-launcher {
  background: var(--a1osis-demo-cyan);
  border: 0;
  box-shadow: 0 14px 38px #0009;
  color: #00121d;
  height: 44px;
  margin-left: auto;
  width: 44px;
}

.a1osis-demo-widget__panel {
  background: linear-gradient(145deg, #071b2bf5, #03101bf8);
  border: 1px solid #27d3ff8f;
  border-radius: 14px;
  box-shadow: 0 24px 70px #000b;
  color: #eaf8ff;
  margin-top: 7px;
  overflow: hidden;
  padding: 15px;
}

.a1osis-demo-communicator .a1osis-demo-widget__panel {
  bottom: calc(100% + 7px);
  margin: 0 0 7px;
  position: absolute;
  right: 0;
  width: 100%;
}

.a1osis-demo-widget__panel[hidden],
.a1osis-demo-widget__launcher[hidden],
.a1osis-demo-widget__compact-launcher[hidden],
.a1osis-demo-reminders__alert[hidden] {
  display: none !important;
}

.a1osis-demo-widget__panel header {
  align-items: center;
  border-bottom: 1px solid #27d3ff38;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin: -2px -2px 12px;
  padding: 0 0 11px;
}

.a1osis-demo-widget__panel header > div {
  display: grid;
  gap: 4px;
}

.a1osis-demo-widget__panel header button {
  background: #071421;
  border: 1px solid #27d3ff73;
  color: #dff8ff;
  height: 32px;
  min-width: 32px;
}

.a1osis-demo-widget__panel > p {
  color: #91aaba;
  font-size: 11px;
  line-height: 1.55;
  margin: 10px 0 0;
}

.a1osis-demo-workspace-card {
  align-items: center;
  background: #020c15;
  border: 1px solid #27d3ff42;
  display: grid;
  gap: 10px;
  grid-template-columns: 38px minmax(0, 1fr);
  margin: 12px 0;
  padding: 10px;
}

.a1osis-demo-workspace-card > span {
  align-items: center;
  border: 1px solid var(--a1osis-demo-cyan);
  display: flex;
  height: 34px;
  justify-content: center;
}

.a1osis-demo-workspace-card > div {
  display: grid;
  gap: 3px;
}

.a1osis-demo-widget__panel > a {
  color: var(--a1osis-demo-cyan);
  display: inline-flex;
  padding: 5px 0;
}

.a1osis-demo-reminders__preview,
.a1osis-demo-communicator__reply {
  background: var(--a1osis-demo-cyan);
  border: 0;
  color: #00121d;
  min-height: 40px;
  padding: 10px 13px;
  width: 100%;
}

.a1osis-demo-reminders__alert {
  animation: a1osis-demo-reminder-pulse 1.25s ease-in-out 2;
  background: #061422;
  border: 1px solid #f1b847;
  display: grid;
  gap: 7px;
  margin-top: 10px;
  padding: 12px;
}

.a1osis-demo-reminders__alert small {
  color: #f1b847;
  font: 750 9px/1.2 ui-monospace, SFMono-Regular, Menlo, monospace;
  text-transform: uppercase;
}

.a1osis-demo-reminders__alert div {
  display: flex;
  gap: 7px;
  margin-top: 5px;
}

.a1osis-demo-reminders__alert button {
  background: transparent;
  border: 1px solid #27d3ff73;
  color: #dff8ff;
  min-height: 34px;
  padding: 7px 9px;
}

.a1osis-demo-communicator__messages {
  display: grid;
  gap: 9px;
  margin-bottom: 11px;
  max-height: 210px;
  overflow-y: auto;
}

.a1osis-demo-communicator__messages p {
  background: #09243a;
  border-radius: 10px 10px 10px 2px;
  display: grid;
  gap: 4px;
  margin: 0;
  max-width: 88%;
  padding: 10px;
}

.a1osis-demo-communicator__messages p:nth-child(even) {
  background: #12364a;
  border-radius: 10px 10px 2px;
  justify-self: end;
}

.a1osis-demo-communicator__messages b {
  color: var(--a1osis-demo-cyan);
  font-size: 10px;
}

.a1osis-demo-communicator__messages span {
  color: #eaf8ff;
  font-size: 12px;
  line-height: 1.45;
}

.a1osis-demo-showcase--compact {
  width: 44px;
}

@keyframes a1osis-demo-reminder-pulse {
  50% {
    border-color: #fff2b8;
    box-shadow: 0 0 0 4px #f1b8472e;
  }
}

@media (max-width: 1180px) {
  .a1osis-phase13-language-toggle:not(
      .a1osis-phase13-language-toggle--floating
    ) {
    bottom: calc(72px + env(safe-area-inset-bottom));
    box-shadow: 0 12px 38px #0009;
    left: 10px;
    position: fixed;
    z-index: 890;
  }

  .a1osis-demo-workspace-selector {
    top: max(128px, calc(env(safe-area-inset-top) + 116px));
  }

  .a1osis-demo-reminders {
    top: max(192px, calc(env(safe-area-inset-top) + 180px));
  }
}

@media (max-width: 560px) {
  .a1osis-phase13-language-toggle > span {
    display: none;
  }

  .a1osis-phase13-language-toggle--floating {
    bottom: calc(72px + env(safe-area-inset-bottom));
    left: 8px;
  }

  .a1osis-site-view-controls {
    bottom: max(8px, env(safe-area-inset-bottom));
    left: 8px;
    max-width: calc(100% - 16px);
    padding: 10px;
    width: calc(100% - 16px);
  }

  .a1osis-demo-widget {
    right: max(8px, env(safe-area-inset-right));
    width: min(310px, calc(100vw - 16px));
  }

  .a1osis-demo-workspace-selector {
    top: max(88px, calc(env(safe-area-inset-top) + 76px));
  }

  .a1osis-demo-reminders {
    top: max(148px, calc(env(safe-area-inset-top) + 136px));
  }

  .a1osis-demo-showcase--compact {
    width: 44px;
  }
}

@media print {
  .a1osis-phase13-language-toggle,
  .a1osis-site-view-controls,
  .a1osis-demo-showcase-controls {
    display: none !important;
  }

  .generated-site-plan > image[data-a1osis-site-image] {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}
