/* Source projections, not a replacement Shell theme. See wallme-source-map.json.
   Shared mini-app semantics + the native light grouped canvas at the host seam. */
:root {
  --sap-color-surface-canvas:#f2f2f7; /* UIKit systemGroupedBackground, light */
  --sap-color-surface-default:#fff;
  --sap-color-surface-subtle:#f0f2f5;
  --sap-color-text-primary:#15171a;
  --sap-color-text-secondary:#5b616b;
  --sap-color-text-disabled:#808995;
  --sap-color-border-default:#d7dbe0;
  --sap-color-border-strong:#aeb5be;
  --sap-color-action-primary:#1d4ed8;
  --sap-color-action-primary-hover:#1e40af;
  --sap-color-action-focus:#2563eb;
  --sap-color-status-success:#067647;
  --sap-color-status-success-surface:#ecfdf3;
  --sap-color-status-warning:#b54708;
  --sap-color-status-warning-surface:#fffaeb;
  --sap-color-status-danger:#b42318;
  --sap-color-status-danger-surface:#fef3f2;
  --sap-color-status-info:#175cd3;
  --sap-color-status-info-surface:#eff8ff;
  --ink:var(--sap-color-text-primary);
  --muted:var(--sap-color-text-secondary);
  --canvas:var(--sap-color-surface-canvas);
  --surface:var(--sap-color-surface-default);
  --line:var(--sap-color-border-default);
  --brand:var(--sap-color-action-primary);
  --brand-dark:var(--sap-color-action-primary-hover);
  --brand-soft:var(--sap-color-status-info-surface);
  --free:var(--sap-color-status-success);
  --free-soft:var(--sap-color-status-success-surface);
  --warning:var(--sap-color-status-warning);
  --danger:var(--sap-color-status-danger);
  --scroll-thumb:var(--sap-color-border-strong);
  --scroll-track:var(--canvas);
  --scroll-hover:var(--muted);
}
html,body,.miniapp { background:var(--canvas); color:var(--ink); }
.miniapp .selection-card,.miniapp .search-controls,.miniapp .filter-trigger::before,
.miniapp .chip::before,.miniapp .map-tools,.miniapp .quota-line,
.bottom-sheet,.bottom-sheet .sheet-actions { background:var(--surface); }
.miniapp .selection-card,.miniapp .resource-symbol,.miniapp .map-tools { border-color:var(--line); }
.miniapp .card-title p,.miniapp .amenities,.miniapp .amenities .icon,
.miniapp .legend,.miniapp .legend-button,.miniapp .quota-line>div:first-child,
.miniapp .quota-line small,.miniapp .local-footer,.miniapp .list-resource small,
.miniapp .chip .icon,.miniapp .card-title h2 span,.bottom-sheet .detail-facts,
.bottom-sheet .feature-grid,.bottom-sheet .policy-note,.bottom-sheet .input-hint { color:var(--muted); }
.miniapp .primary,.bottom-sheet .primary { background:var(--brand); color:white; box-shadow:none; }
.miniapp .danger-solid,.bottom-sheet .danger-solid { background:var(--danger); }
.miniapp .secondary,.bottom-sheet .secondary { background:var(--sap-color-surface-subtle); color:var(--ink); }
.miniapp .resource-symbol { background:var(--brand-soft); color:var(--sap-color-status-info); }
.miniapp .chip.active::before,.miniapp .filter-trigger.active::before,
.bottom-sheet .chip.active { background:var(--brand-soft); border-color:var(--sap-color-action-focus); }
.miniapp .available-count,.miniapp .status,.bottom-sheet .status { background:var(--free-soft); color:var(--free); }
.miniapp .status.busy,.bottom-sheet .status.busy { background:var(--sap-color-surface-subtle); color:var(--muted); }
.miniapp .status.restricted,.miniapp .status.unavailable,
.bottom-sheet .status.restricted,.bottom-sheet .status.unavailable { background:var(--canvas); color:var(--muted); }
.miniapp .status.soon,.bottom-sheet .status.soon { background:var(--sap-color-status-warning-surface); color:var(--warning); }
.miniapp .status.mine,.bottom-sheet .status.mine { background:var(--brand-soft); color:var(--brand); }
.miniapp .quota-line strong { color:var(--ink); }
.miniapp .quota-meter { background:var(--sap-color-surface-subtle); }
.miniapp .quota-meter>span { background:var(--sap-color-action-focus); }
.miniapp .view-switch { background:#e8e8ed; } /* black 4% over native canvas */
.miniapp .map-viewport,.miniapp:has(.team-line) .map-viewport,
.miniapp:has(.quota-line) .map-viewport { background:var(--canvas); border-color:#e5e5ea; }
.miniapp .banner { background:var(--sap-color-status-warning-surface); border-color:#f4d9ad; color:var(--warning); }
.miniapp .banner.no-map { background:var(--brand-soft); border-color:#bdd7f4; color:var(--sap-color-status-info); }
.miniapp .empty-panel { background:var(--surface); }
.bottom-sheet .info-card { background:var(--brand-soft); border-color:#d7e8f9; color:var(--muted); }
.bottom-sheet .time-fields select,.bottom-sheet .text-input { background:var(--surface); border-color:var(--line); color:var(--ink); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline-color:var(--sap-color-action-focus); }
@media(hover:hover) and (pointer:fine) {
  .miniapp .primary:hover,.bottom-sheet .primary:hover { background:var(--brand-dark); }
  .miniapp .secondary:hover,.bottom-sheet .secondary:hover { background:#e8eaee; }
}
