/* ===================================================================
   CivicAI Platform Prototype — Service Provider app additions
   Loaded after styles.css. Only adds what styles.css doesn't cover:
   scrollable content column, demo role-switcher row, photo-slot button
   reset, and sizing for inline SVG art dropped into map/photo frames.
=================================================================== */

.provider-content {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

/* Small, deliberately understated "switch role" row — same pattern used
   on the citizen home screen, kept here so this page doesn't depend on
   citizen.css. */
.role-switcher {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-1) var(--space-2);
  padding-top: var(--space-1);
}
.role-switcher__link {
  color: var(--color-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--dur-fast) var(--ease-out);
}
.role-switcher__link:hover { color: var(--color-primary); }
.role-switcher__link.is-active {
  color: var(--color-foreground);
  font-weight: 600;
  text-decoration: none;
  cursor: default;
}

/* Photo slots are real <button> elements (better a11y than a bare div)
   — strip native button chrome so .photo-slot's own look applies. */
.photo-slot {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  padding: 0;
  font: inherit;
}
.photo-slot img { animation: popIn var(--dur-base) var(--ease-spring) both; }

/* Inline SVG art dropped inside .map-frame / .photo-preview needs the
   same fill behavior an <img> would get from styles.css. */
.map-frame svg.map-art { display: block; }
.photo-preview {
  border: 1px solid var(--color-border);
  background: var(--color-surface-alt);
}
.photo-preview .incident-art {
  width: 100%;
  height: 200px;
  display: block;
}
.photo-preview__label {
  position: absolute;
  left: var(--space-3);
  bottom: var(--space-3);
  background: rgba(15, 23, 42, 0.72);
  color: #fff;
  font-size: var(--text-xs);
  font-weight: 600;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  backdrop-filter: blur(4px);
}

.job-list-empty { animation: pageFade var(--dur-slow) var(--ease-out) both; }

/* styles.css sizes icons inside most components (.btn, .pill, .bottom-nav__item,
   .photo-slot, .report-card__chevron, etc.) but not inside .report-card__meta,
   .map-address or .topbar__back — this page drops icons into those, so size
   them explicitly rather than letting them fall back to the browser's default
   replaced-element size. */
.report-card__meta svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--color-muted-light);
}
.map-address svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}
.topbar__back svg {
  width: 20px;
  height: 20px;
}

/* Guard against long job-type names (e.g. "Facilities Maintenance")
   overflowing the fixed-height topbar on narrow screens. */
#job-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sheet-photo-hint { margin-top: 0; }

@media (max-width: 360px) {
  .report-card__meta { flex-wrap: wrap; }
}
