/* Map empty states use the portal's line-icon language. */
.map-empty-state__mark {
  overflow: hidden;
  background: #fff;
}

.console-register dd {
  font-size: 16px;
}

/* High-clarity Provested visual system — accessible operational density. */
body {
  color: var(--text);
  background: var(--paper-dark);
  font-size: var(--type-body-size);
}

a {
  color: var(--teal-dark);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}

::selection {
  color: var(--ink-deep);
  background: var(--ochre);
}

::-webkit-scrollbar-track {
  background: var(--paper);
}

::-webkit-scrollbar-thumb {
  border-color: var(--paper);
  background: var(--muted-light);
}

.workspace {
  background: var(--paper);
}

.sidebar {
  color: var(--ink);
  border-right: 1px solid var(--rule);
  background: #e7edf1;
  box-shadow: 8px 0 30px rgba(35, 55, 73, .06);
}

.sidebar__brand {
  min-height: 68px;
  border-bottom-color: rgba(45, 66, 85, .13);
  background: rgba(255, 255, 255, .44);
}

.sidebar__brand .brand-mark {
  width: 48px;
  height: 48px;
  border-color: rgba(45, 66, 85, .16);
  box-shadow: 0 6px 16px rgba(35, 55, 73, .1);
}

.sidebar__nav {
  gap: 3px;
  padding: 9px 10px;
}

.sidebar__nav button {
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 9px;
  justify-items: start;
  padding: 6px 10px;
  color: var(--ink-soft);
  border-radius: 12px;
  font-size: var(--type-metadata-size);
  line-height: 1.15;
  text-align: left;
  transition-duration: var(--motion-base);
  transition-timing-function: var(--ease);
}

.sidebar__nav button:hover {
  color: var(--ink-deep);
  border-color: rgba(45, 66, 85, .1);
  background: rgba(255, 255, 255, .72);
  transform: translateX(2px);
}

.sidebar__nav button.is-active {
  color: var(--ink-deep);
  border-color: rgba(214, 202, 0, .34);
  background: rgba(255, 249, 184, .76);
  box-shadow: 0 7px 18px rgba(35, 55, 73, .08);
}

.sidebar__nav button.is-active svg {
  color: currentColor;
  border-color: transparent;
  background: rgba(255, 242, 0, .7);
  transform: scale(1.03);
}

.sidebar__nav svg {
  width: 36px;
  height: 36px;
  padding: 7px;
  border-color: transparent;
  background: transparent;
  stroke-width: 1.85;
  transition: color var(--motion-fast) ease, background var(--motion-base) ease, transform var(--motion-base) var(--ease);
}

.sidebar__nav span,
.sidebar__footer button {
  font-size: var(--type-metadata-size);
}

.sidebar__footer {
  min-height: 48px;
  padding: 6px 9px 8px;
  border-top-color: rgba(45, 66, 85, .13);
  background: rgba(255, 255, 255, .34);
}

.sidebar__footer button {
  min-height: 36px;
  color: var(--muted);
  border-radius: 10px;
  transition: color var(--motion-fast) ease, background var(--motion-base) ease;
}

.sidebar__footer button:hover {
  color: var(--ink-deep);
  background: rgba(255, 255, 255, .72);
}

.sidebar__footer svg {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

.topbar {
  min-height: 80px;
  border-bottom-color: var(--rule);
  background: rgba(255, 255, 255, .96);
}

.topbar-brand strong {
  font-size: 20px;
}

.topbar-brand span:not(.brand-mark):not(.avatar) {
  color: var(--muted);
  font-size: var(--type-supporting-size);
}

.topbar-icon,
.icon-button {
  width: 44px;
  height: 44px;
  color: var(--ink-soft);
  border-color: var(--rule-dark);
  background: var(--white);
}

.topbar-icon svg,
.icon-button svg {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

.portal-switch,
.organization-switcher,
.user-chip {
  min-height: 44px;
  font-size: 14px;
}

.avatar {
  width: 36px;
  height: 36px;
  font-size: var(--type-metadata-size);
}

.view-heading {
  margin-bottom: 22px;
}

.view-heading h1 {
  color: var(--ink-deep);
  font-size: clamp(34px, 3.1vw, 50px);
  letter-spacing: -.03em;
  line-height: 1;
}

.view-heading p {
  max-width: 68ch;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.55;
}

.button {
  min-height: 44px;
  padding-inline: 16px;
  font-size: var(--type-control-size);
  line-height: 1.2;
}

.button svg {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

.button--primary {
  color: #fff;
  border-color: var(--ink-deep);
  background: var(--ink-deep);
  box-shadow: 0 8px 18px rgba(35, 55, 73, .17);
}

.button--primary:hover {
  border-color: #314b61;
  background: #314b61;
}

.button--outline {
  border-color: var(--rule-dark);
  background: var(--white);
}

.button--outline:hover {
  border-color: var(--ink-soft);
  background: var(--paper-dark);
}

.text-button {
  min-height: 36px;
  color: var(--teal-dark);
  font-size: var(--type-supporting-size);
  font-weight: 800;
}

input:is([type='text'], [type='email'], [type='password'], [type='number'], [type='search'], [type='date'], [type='datetime-local'], [type='time']),
select {
  min-height: 44px;
  font-size: var(--type-control-size);
}

textarea {
  font-size: var(--type-control-size);
  line-height: 1.5;
}

input::placeholder,
textarea::placeholder {
  color: var(--muted-light);
  opacity: 1;
}

input:disabled,
select:disabled,
textarea:disabled,
button:disabled {
  color: var(--muted);
  opacity: .58;
}

.field label,
.work-form label,
.emergency-form label,
.rollback-panel form label,
.report-drawer label,
.coverage-editor-form .field > span,
.coverage-days-fieldset legend {
  color: var(--ink-soft);
  font-size: var(--type-supporting-size);
  line-height: 1.35;
}

.field input,
.field select,
.report-drawer select,
.report-drawer textarea,
.work-form input,
.work-form select,
.work-form textarea,
.emergency-form input,
.rollback-panel input,
.console-user-row select,
.task-card select,
.heading-week-select select,
.export-builder input,
.export-builder select,
.coverage-editor-form input[type='text'],
.coverage-editor-form input[type='number'],
.coverage-editor-form select,
.coverage-editor-form textarea {
  min-height: 44px;
  color: var(--text);
  border-color: var(--rule-dark);
  background: var(--white);
  font-size: var(--type-control-size);
}

.operations-home h3,
.qc-dashboard h3,
.broadcasts-surface h2,
.broadcasts-surface h3,
.console-surface h3,
.task-column > header h3 {
  color: var(--ink-deep);
  font-size: 17px;
  line-height: 1.3;
}

.operations-home header p,
.qc-dashboard header p,
.broadcasts-surface header p,
.console-surface header p,
.coverage-panel-header p,
.coverage-editor-form__header p {
  color: var(--muted);
  font-size: var(--type-supporting-size);
  line-height: 1.5;
}

.operations-home__broadcasts,
.operations-home__grid > section,
.operations-home__quality,
.qc-ledger,
.qc-ranking,
.broadcasts-surface > section,
.console-grid > section,
.coverage-map-panel,
.coverage-register,
.coverage-editor,
.platform-layout,
.map-workspace,
.admin-map-workspace,
.setup-rail,
.admin-inspector {
  border-color: var(--rule);
  background: var(--white);
}

.operations-home__register,
.console-register,
.qc-scoreboard,
.export-builder {
  color: #fff;
  background: var(--ink-deep);
  box-shadow: 0 14px 34px rgba(35, 55, 73, .15);
}

.export-builder h2 {
  color: #fff;
}

.operations-home__register p,
.console-register p,
.operations-home__register dt,
.console-register dt,
.qc-scoreboard small,
.export-builder p,
.export-builder legend,
.export-options > label:not(.export-archive) {
  color: rgba(255, 255, 255, .76);
}

.operations-home__register dl > div,
.console-register dl > div,
.qc-scoreboard > div {
  border-color: rgba(255, 255, 255, .22);
}

.operations-home__register dt,
.console-register dt,
.dashboard-broadcast time,
.qc-table-wrap th,
.broadcast-card__meta span,
.task-priority,
.coverage-map-count,
.coverage-register-note,
.coverage-map-coordinate-readout,
.coverage-map-attribution {
  font-size: 13px;
  line-height: 1.35;
}

.dashboard-broadcast strong,
.dashboard-task strong,
.task-card h4,
.broadcast-card strong,
.qc-table-wrap td strong,
.emergency-row strong,
.console-user-row strong {
  color: var(--ink-deep);
  font-size: 15px;
}

.dashboard-broadcast span,
.dashboard-task small,
.task-card p,
.task-card dd,
.broadcast-card p,
.qc-table-wrap td,
.qc-table-wrap td small,
.qc-ranking li small,
.emergency-row small,
.console-account-identity em,
.console-limit-note,
.rollback-target,
.rollback-panel details {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

.qc-table-wrap th,
.qc-table-wrap td,
.operations-table th,
.operations-table td,
.tech-tip-table th,
.tech-tip-table td,
.import-table th,
.import-table td {
  padding: 12px 14px;
  font-size: 14px;
}

.qc-table-wrap th,
.operations-table th,
.tech-tip-table th,
.import-table th {
  color: var(--ink-soft);
  background: var(--paper-dark);
  font-weight: 700;
}

.task-column {
  border-color: var(--rule);
  background: var(--paper-dark);
}

.task-card {
  border: 1px solid var(--rule);
  background: var(--white);
  box-shadow: 0 5px 14px rgba(15, 23, 32, .08);
}

.task-priority--urgent {
  color: #8d1911;
  background: var(--danger-surface);
}

.task-priority--high {
  color: #814000;
  background: var(--warning-surface);
}

.task-priority--low,
.qc-clear,
.broadcast-card__meta span,
.platform-owner-badge,
.organization-status,
.member-status {
  color: var(--teal-dark);
  background: var(--info-surface);
}

.workspace-security-card,
.workspace-account-note,
.qc-source-note,
.rollback-target,
.coverage-location-note.is-confirmed,
.coverage-schedule-assignment {
  color: var(--teal-dark);
  border-color: #9cbff3;
  background: var(--info-surface);
}

.coverage-location-note,
.coverage-schedule-assignment.is-unmatched {
  color: #814000;
  border-color: #e1ad66;
  background: var(--warning-surface);
}

.danger-button,
.danger-text,
.settings-section--project .danger-text {
  color: var(--red);
}

.danger-button {
  border-color: #d98e88;
  background: var(--danger-surface);
}

.danger-button:hover {
  color: #fff;
  border-color: var(--red);
  background: var(--red);
}

.emergency-row.is-disabled,
.console-user-row.is-disabled {
  opacity: .74;
  background: var(--paper);
}

.coverage-day-switch {
  border-color: var(--rule-dark);
  background: var(--paper-dark);
}

.coverage-day-button {
  min-height: 40px;
  padding-inline: 12px;
  color: var(--muted);
  font-size: 13px;
}

.coverage-day-button.is-active {
  color: var(--ink-deep);
  border: 1px solid var(--rule-dark);
  background: var(--white);
}

.coverage-panel-header h2,
.coverage-school-summary h3,
.coverage-editor-form__header h3,
.inspector-header h2,
.tab-content h2,
.platform-directory__head strong {
  color: var(--ink-deep);
}

.coverage-school-row,
.organization-row {
  color: var(--ink-deep);
  border-bottom-color: var(--rule);
}

.coverage-school-row:hover,
.coverage-school-row.is-active,
.organization-row:hover,
.organization-row.is-active {
  background: var(--paper);
}

.coverage-school-row.is-active,
.organization-row.is-active {
  box-shadow: inset 3px 0 0 var(--teal);
}

.coverage-marker__label,
.map-legend,
.map-note,
.coverage-map-status,
.coverage-pin-instruction {
  color: var(--text);
  border-color: var(--rule-dark);
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 10px 24px rgba(15, 23, 32, .14);
}

.map-controls button,
.coverage-map-controls button {
  min-width: 44px;
  min-height: 44px;
  color: var(--ink-deep);
  border-color: var(--rule-dark);
  background: var(--white);
}

.map-controls svg,
.coverage-map-controls svg {
  width: 20px;
  height: 20px;
  stroke-width: 2;
}

.coverage-school-row__body strong,
.coverage-marker__label strong,
.coverage-school-summary__people > span,
.coverage-schedule-assignment strong,
.coverage-location-note strong {
  color: var(--ink-deep);
  font-size: 14px;
}

.coverage-school-row__body small,
.coverage-marker__label small,
.coverage-school-summary header p,
.coverage-school-summary__location p,
.coverage-school-summary__people > small,
.coverage-schedule-assignment small,
.coverage-location-note small {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}

.coverage-day-option,
.coverage-summary-day,
.coverage-day-pill,
.coverage-marker__day,
.coverage-schedule-assignment__people > span {
  color: var(--ink-soft);
  font-size: 13px;
}

.coverage-day-option {
  min-height: 44px;
}

.icon-button.is-active,
.coverage-place-pin.is-active {
  color: #fff;
  border-color: var(--teal-dark);
  background: var(--teal-dark);
}

.setup-step,
.map-tab,
.map-edge-tab {
  font-size: 14px;
}

.map-tab.is-active,
.map-edge-tab.is-active {
  color: var(--ink-deep);
  border-color: var(--ochre-dark);
  background: var(--ochre-pale);
}

.status-mark--available { color: var(--green); }
.status-mark--in-use { color: var(--orange); }
.status-mark--issue { color: var(--red); }
.status-mark--offline { color: var(--muted); }

#coverage-team-filter,
#tech-tips-staff,
.tech-status,
#console-account-form input,
#console-account-form select,
#emergency-form input,
#emergency-form select {
  min-height: 44px;
  font-size: var(--type-control-size);
}

/* Atlas motion language: JS applies one interruptible focal transition only
   when the working section changes; routine controls answer immediately. */
.button,
.text-button,
.topbar-icon,
.icon-button,
.user-chip,
.organization-switcher,
.coverage-day-button,
.map-tab,
.map-edge-tab,
.setup-step {
  transition-duration: var(--motion-base);
  transition-timing-function: var(--ease-standard);
}

.dashboard-broadcast,
.dashboard-task,
.coverage-school-row,
.organization-row,
.broadcast-card,
.task-card,
.emergency-row,
.console-user-row {
  transition: color var(--motion-fast) ease, background var(--motion-base) ease, border-color var(--motion-base) ease, box-shadow var(--motion-base) var(--ease), transform var(--motion-base) var(--ease);
}

@media (hover: hover) {
  .dashboard-broadcast:hover,
  .dashboard-task:hover,
  .coverage-school-row:hover,
  .organization-row:hover,
  .emergency-row:hover,
  .console-user-row:hover {
    transform: translateX(2px);
  }

  .broadcast-card:hover,
  .task-card:hover {
    box-shadow: 0 10px 24px rgba(35, 55, 73, .12);
    transform: translateY(-2px);
  }
}

.button:active,
.topbar-icon:active,
.icon-button:active,
.user-chip:active {
  transform: translateY(1px) scale(.99);
  transition-duration: var(--motion-fast);
}

@media (min-width: 941px) {
  .app-shell {
    grid-template-columns: 152px minmax(0, 1fr);
  }
}

@media (min-width: 691px) and (max-width: 940px) {
  .app-shell {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .sidebar__nav button {
    grid-template-columns: 1fr;
    gap: 2px;
    justify-items: center;
    padding-inline: 4px;
    text-align: center;
  }

  .sidebar__nav button:hover {
    transform: translateY(-1px);
  }
}

@media (max-height: 780px) and (min-width: 691px) {
  .sidebar__brand {
    min-height: 56px;
  }

  .sidebar__brand .brand-mark {
    width: 42px;
    height: 42px;
  }

  .sidebar__nav {
    gap: 1px;
    padding-block: 4px;
  }

  .sidebar__nav button {
    gap: 1px;
    padding-block: 2px;
  }

  .sidebar__nav svg {
    width: 32px;
    height: 32px;
    padding: 4px;
  }

  .sidebar__nav span {
    font-size: 13px;
    line-height: 1.05;
  }

  .sidebar__footer {
    min-height: 42px;
    padding-block: 3px;
  }

  .sidebar__footer button {
    min-height: 32px;
    font-size: 13px;
  }
}

@media (max-width: 690px) {
  body {
    font-size: 16px;
  }

  .sidebar__nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-template-rows: none;
    grid-auto-rows: auto;
    gap: 4px;
    overflow: visible;
    padding: 6px;
  }

  .sidebar__nav button {
    grid-template-columns: 1fr;
    width: 100%;
    min-width: 0;
    min-height: 64px;
    justify-items: center;
    padding: 5px 2px;
    text-align: center;
  }

  .sidebar__nav svg {
    width: 36px;
    height: 36px;
    padding: 6px;
  }

  .sidebar__nav span {
    font-size: 13px;
    line-height: 1.05;
  }

  .topbar {
    min-height: 72px;
  }

  .topbar-icon,
  .icon-button {
    width: 44px;
    height: 44px;
  }

  .view-heading h1 {
    font-size: clamp(32px, 10vw, 40px);
  }

  .view-heading p {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sidebar__nav button,
  .sidebar__nav svg,
  .dashboard-broadcast,
  .dashboard-task,
  .coverage-school-row,
  .organization-row,
  .broadcast-card,
  .task-card,
  .emergency-row,
  .console-user-row {
    transform: none !important;
    transition-duration: .01ms !important;
  }
}

@media (min-width: 941px) and (max-height: 985px) {
  .coverage-map-canvas {
    min-height: clamp(380px, calc(100vh - 490px), 495px);
  }

  .coverage-school-list {
    max-height: clamp(380px, calc(100vh - 490px), 495px);
  }
}
