:root {
  color-scheme: dark;
  --bg: #252a27;
  --bg-deep: #1b211e;
  --panel: #303632;
  --panel-strong: #292f2b;
  --panel-soft: #39413c;
  --subpanel: #343b36;
  --nav: #171d19;
  --line: rgba(224, 239, 228, .16);
  --line-strong: rgba(224, 239, 228, .3);
  --ink: #eef4ef;
  --muted: #b0bdb4;
  --accent: #8ac49a;
  --accent-deep: #6eae80;
  --accent-soft: rgba(121, 190, 139, .16);
  --warning: #f0c46b;
  --warning-soft: rgba(240, 196, 107, .14);
  --error: #ff9992;
  --error-soft: rgba(255, 135, 125, .14);
  --green: #68a77a;
  --soft: rgba(232, 242, 235, .07);
  --shadow: 0 14px 36px rgba(0, 0, 0, .32);
}

html,
body,
#root {
  min-height: 100%;
  color: var(--ink);
  background: var(--bg);
}

body { color-scheme: dark; }

.app-shell-modern {
  color-scheme: dark;
  color: var(--ink);
  background: var(--bg);
}

.app-shell-modern,
.app-shell-modern .modern-workspace,
.app-shell-modern .modern-main-stage,
.app-shell-modern .app-content,
.app-shell-modern .modern-house-dashboard,
.app-shell-modern .modern-management-shell,
.app-shell-modern .admin-shell,
.app-shell-modern .edge-devices-shell,
.app-shell-modern .operations-directory,
.app-shell-modern .integration-agents-dashboard {
  color: var(--ink);
  background: var(--bg);
}

.app-shell-modern :is(
  .panel,
  .subpanel,
  .pill,
  .modern-location-dock,
  .modern-location-section,
  .modern-house-hover-card,
  .modern-map-house-creation-popover,
  .workspace-modal-card,
  .comment-card,
  .empty-state,
  .result-box,
  .house-upcoming-event,
  .house-history-timeline-track,
  .mobile-dashboard-section,
  .modern-management-row,
  .modern-management-form,
  .modern-meta-panel,
  .workspace-settings-popover,
  .modern-modal-card,
  .analysis-drawer,
  .flock-comparison-card,
  .edge-topology-device,
  .edge-topology-pending-card,
  .edge-topology-device-card,
  .operations-kanban-column,
  .operations-flock-card,
  .operations-day-lane,
  .operations-calibration-menu,
  .house-event-composer,
  .integration-assistant-drawer,
  .map-risk-panel
) {
  color: var(--ink);
  background-color: var(--panel);
  border-color: var(--line);
  box-shadow: var(--shadow);
}

/* Keep newly added and less common component surfaces on the same palette. */
.app-shell-modern :is([class$="-panel"], [class$="-card"], [class$="-popover"], [class$="-drawer"], [class$="-menu"], [class$="-transcript"]) {
  color: var(--ink);
  background-color: var(--panel);
  border-color: var(--line);
}

.app-shell-modern :is(button, .modern-filter-popover > summary) {
  color: var(--ink);
  border-color: var(--line);
  background-color: var(--panel-strong);
}

.app-shell-modern :is(button:hover:not(:disabled), button:focus-visible, .modern-filter-popover > summary:hover) {
  color: var(--ink);
  border-color: var(--line-strong);
  background-color: var(--panel-soft);
}

.app-shell-modern :is(button.primary-button, .modern-sidebar-actions button.primary-button) {
  color: #fff;
  border-color: var(--green);
  background-color: var(--green);
}

.app-shell-modern :is(button.primary-button:hover:not(:disabled), button.primary-button:focus-visible) {
  color: #fff;
  border-color: var(--accent-deep);
  background-color: var(--accent-deep);
}

.app-shell-modern :is(input, select, textarea) {
  color: var(--ink);
  border-color: var(--line-strong);
  background-color: var(--bg-deep);
  color-scheme: dark;
}

.app-shell-modern :is(input, select, textarea)::placeholder { color: #9aa89f; }
.app-shell-modern select option,
.app-shell-modern select optgroup { color: var(--ink); background: var(--panel-strong); }
.app-shell-modern select option:is(:checked, :hover, :focus, :active) { color: var(--ink); background: #46544a; }
.app-shell-modern :is(input, select, textarea):focus { border-color: var(--accent); background: var(--bg-deep); box-shadow: 0 0 0 3px rgba(138, 196, 154, .2); }
.app-shell-modern :is(button, input, select, textarea):focus-visible { outline-color: var(--accent); }
.app-shell-modern select { background-image: linear-gradient(45deg, transparent 50%, var(--accent) 50%), linear-gradient(135deg, var(--accent) 50%, transparent 50%); }
.app-shell-modern :is(.modern-location-section-toggle, .modern-filter-popover-panel, .workspace-settings-popover, .modern-modal-card, .modern-house-hover-card, .modern-map-house-creation-popover, .analysis-drawer, .house-event-composer, .operations-calibration-menu, .integration-assistant-drawer) { background-color: var(--panel); }
.app-shell-modern :is(.modern-location-section-toggle, .modern-filter-popover-panel, .modern-filter-popover-panel .modern-severity-filter, .modern-sidebar-search .workspace-search-input, .house-history-flock-menu, .house-history-flock-item, .modern-settings-editor .subpanel, .modern-meta-panel, .modern-management-form) { border-color: var(--line); }
.app-shell-modern :is(.modern-location-section-toggle, .modern-house-tab:hover, .modern-house-tab.is-selected, .house-history-flock-item:hover, .house-history-flock-item:focus-visible, .workspace-settings-menu-item:hover, .agent-list-item.selected, .agents-filters button.selected, .operations-flock-card:hover, .map-risk-locations button:hover) { background-color: var(--accent-soft); }

.app-shell-modern .modern-sidebar-rail { color: #d7e6dc; background: var(--nav); }
.app-shell-modern .modern-sidebar-actions button,
.app-shell-modern .modern-sidebar-rail .workspace-dock-pin { color: #d7e6dc; background: transparent; }
.app-shell-modern .modern-sidebar-actions button:hover,
.app-shell-modern .modern-sidebar-actions button:focus-visible,
.app-shell-modern .workspace-dock-pin:hover,
.app-shell-modern .workspace-dock-pin:focus-visible,
.app-shell-modern .workspace-dock-pin.is-pinned { color: #fff; background: #356a52; }
.app-shell-modern .modern-location-section-toggle { color: var(--ink); }
.app-shell-modern .modern-location-section-content { background: var(--panel); }
.app-shell-modern .modern-house-tab { color: var(--ink); }
.app-shell-modern .modern-house-tab.severity-low { border-inline-start-color: var(--line-strong); }
.app-shell-modern .modern-house-dashboard .modern-meta-panel .flock-age-button { color: var(--ink); border-color: var(--line); background: var(--panel-strong); }
.app-shell-modern .modern-house-dashboard .modern-meta-panel .flock-age-button:hover:not(:disabled),
.app-shell-modern .modern-house-dashboard .modern-meta-panel .flock-age-button:focus-visible { color: var(--ink); background: var(--panel-soft); }
.app-shell-modern :is(.workspace-modal-card, .comment-card, .empty-state, .result-box, .house-upcoming-event, .house-history-timeline-track, .mobile-dashboard-section) {
  color: var(--ink);
  background: var(--panel);
  border-color: var(--line);
}
.app-shell-modern :is(.weather-badge, .edge-heartbeat-badge, .warehouse-stock-row, .warehouse-movement-row, .warehouse-product-form) {
  color: var(--ink);
  background: var(--panel-soft);
  border-color: var(--line);
}
.app-shell-modern :is(.workspace-settings-sensor-row, .house-history-flock-menu, .integration-working-location, .integration-history-entry, .integration-rollback-preview, .analysis-frame-thumbnail, .analysis-frame-missing) {
  color: var(--ink);
  background: var(--panel-soft);
  border-color: var(--line);
}
.app-shell-modern .workspace-settings-sensor-row { border-color: var(--line); }
.app-shell-modern .flock-age-badge { color: #f0c46b; border-color: rgba(240, 196, 107, .28); background: rgba(240, 196, 107, .12); }
.app-shell-modern .flock-age-badge-unavailable { color: var(--muted); border-color: var(--line); background: var(--panel-soft); }
.app-shell-modern .severity-pill-medium { color: #ffd09d; background: rgba(224, 135, 74, .16); }
.app-shell-modern .severity-pill-none { color: #a6deb3; }
.app-shell-modern .vet-chip-selected { color: #a6deb3; border-color: rgba(138, 196, 154, .48); background: var(--accent-soft); }
.app-shell-modern .vet-chip-unselected { color: var(--muted); border-color: var(--line); background: var(--panel-strong); }

.app-shell-modern .modern-house-dashboard .panel,
.app-shell-modern .modern-management-row,
.app-shell-modern .modern-management-form,
.app-shell-modern .modern-meta-panel,
.app-shell-modern .modern-house-hover-card,
.app-shell-modern .modern-facility-hover-card,
.app-shell-modern .integration-chat-transcript,
.app-shell-modern .integration-history-entry,
.app-shell-modern .integration-working-location,
.app-shell-modern .integration-rollback-preview,
.app-shell-modern .agent-run-result,
.app-shell-modern .agent-candidate-card,
.app-shell-modern .agents-workspace,
.app-shell-modern .agents-directory,
.app-shell-modern .agent-builder,
.app-shell-modern .agent-config-grid section,
.app-shell-modern .agent-history,
.app-shell-modern .agent-composer,
.app-shell-modern .house-history-flock-menu,
.app-shell-modern .house-history-flock-item,
.app-shell-modern .house-event-type-menu button,
.app-shell-modern .house-event-form :is(input, select),
.app-shell-modern .timeline-growth-exponent-control,
.app-shell-modern .modern-filter-popover-panel,
.app-shell-modern .map-risk-locations,
.app-shell-modern .map-risk-locations button,
.app-shell-modern .map-risk-panel input,
.app-shell-modern .map-risk-panel select {
  color: var(--ink);
  background-color: var(--panel);
  border-color: var(--line);
}

.app-shell-modern .operations-kanban-column { background: var(--panel-strong); }
.app-shell-modern .operations-kanban-column > header,
.app-shell-modern .operations-day-lane > header { color: var(--ink); background: var(--panel-soft); border-color: var(--line); }
.app-shell-modern .operations-day-lane { background: var(--panel-strong); }
.app-shell-modern .operations-facility-dropzone,
.app-shell-modern .operations-kanban-cards.is-drop-target-active { color: var(--muted); background: rgba(57, 65, 60, .94); border-color: var(--line-strong); }
.app-shell-modern .operations-flock-card { background: var(--panel); border-color: var(--line-strong); }
.app-shell-modern .operations-flock-card.sortable-ghost { background: var(--accent-soft); }
.app-shell-modern .operations-flock-pill.is-current-weight { color: #9fe0b0; background: rgba(104, 167, 122, .16); }
.app-shell-modern .operations-flock-pill.is-days-left { color: #f0c46b; background: rgba(240, 196, 107, .13); }
.app-shell-modern .operations-flock-pill.is-weight-low,
.app-shell-modern .operations-flock-pill.is-weight-high { color: var(--warning); background: var(--warning-soft); }
.app-shell-modern .operations-column-count { color: var(--ink); background: rgba(238, 244, 239, .12); }

.app-shell-modern :is(.house-chat-message, .house-chat-human, .house-chat-agent, .agent-bubble) { color: var(--ink); border-color: var(--line); background: var(--panel-soft); }
.app-shell-modern :is(.house-chat-user, .agent-bubble.user) { color: var(--ink); border-color: rgba(112, 188, 137, .42); background: rgba(74, 132, 91, .2); }
.app-shell-modern .integration-chat-transcript { background: var(--bg-deep); }
.app-shell-modern .integration-chat-form textarea,
.app-shell-modern .agent-composer textarea { color: var(--ink); background: var(--bg-deep); }
.app-shell-modern .integration-assistant-header { color: var(--ink); border-color: var(--line); background: var(--panel-strong); }
.app-shell-modern .integration-assistant-body { background: var(--panel); }
.app-shell-modern .integration-action-proposal,
.app-shell-modern .integration-closeout-proposal,
.app-shell-modern .integration-constraint-warnings { color: var(--warning); border-color: rgba(240, 196, 107, .34); background: var(--warning-soft); }
.app-shell-modern :is(.modern-error, .map-risk-error, .agents-error) { color: var(--error); border-color: rgba(255, 153, 146, .35); background: var(--error-soft); }
.app-shell-modern .modern-success { color: #a6deb3; border-color: rgba(138, 196, 154, .35); background: var(--accent-soft); }
.app-shell-modern .agent-status-pill.active { color: #a6deb3; border-color: rgba(138, 196, 154, .48); background: var(--accent-soft); }
.app-shell-modern .house-chat-markdown code { color: var(--ink); background: var(--panel-soft); }
.app-shell-modern .flock-comparison-negative { color: var(--error); }
.app-shell-modern .flock-comparison-positive { color: #a6deb3; }
.app-shell-modern .weather-badge-sun .weather-badge-icon { color: #f0c46b; }
.app-shell-modern :is(.weather-badge-cloud, .weather-badge-fog) .weather-badge-icon { color: #c0ccc3; }
.app-shell-modern .weather-badge-rain .weather-badge-icon { color: #a6deb3; }
.app-shell-modern .weather-badge-snow .weather-badge-icon { color: #88c3ee; }

.app-shell-modern .edge-topology-layout {
  background-color: var(--bg-deep);
  background-image: linear-gradient(rgba(224, 239, 228, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(224, 239, 228, .07) 1px, transparent 1px);
}
.app-shell-modern .edge-topology-camera { color: var(--ink); border-color: var(--line-strong); background: var(--panel); }
.app-shell-modern .edge-topology-house { border-color: var(--accent-deep); background: rgba(138, 196, 154, .1); }
.app-shell-modern .login-shell { background: radial-gradient(circle at 25% 10%, rgba(104, 167, 122, .2), transparent 38%), var(--bg); }
.app-shell-modern .login-page-card { color: var(--ink); border-color: var(--line); background: var(--panel); }
.app-shell-modern .login-form { border-color: var(--line); background: var(--panel-strong); }
.app-shell-modern .admin-shell .detail-table th { color: var(--muted); background: var(--panel-soft); }
.app-shell-modern .admin-shell .detail-table td { color: var(--ink); border-color: var(--line); }
.app-shell-modern .modern-filter-count { color: #f0c46b; background: rgba(240, 196, 107, .17); }
.app-shell-modern .map-risk-panel > header span,
.app-shell-modern .map-risk-empty,
.app-shell-modern .map-risk-results footer,
.app-shell-modern .map-risk-disclaimer,
.app-shell-modern .map-risk-providers { color: var(--muted); }
.app-shell-modern .map-risk-overall,
.app-shell-modern .map-risk-hazard { color: var(--ink); border-color: var(--line); background: var(--panel-soft); }
.app-shell-modern .map-risk-overall strong { color: var(--accent); }
.app-shell-modern .map-risk-overall span:last-child { color: var(--muted); }
.app-shell-modern .map-risk-hazard p { color: var(--ink); }
.app-shell-modern .map-risk-hazard small { color: var(--muted); }
.app-shell-modern .map-risk-providers strong { color: var(--ink); }
.app-shell-modern .image-lightbox-inner { color: var(--ink); background: var(--panel); }
.app-shell-modern .image-lightbox-stage { background: var(--bg-deep); }

/* Leaflet owns map popup and control surfaces, independently of app panels. */
.app-shell-modern :is(.leaflet-popup-content-wrapper, .leaflet-popup-tip, .leaflet-control-layers, .leaflet-control-layers-expanded, .leaflet-control-attribution) {
  color: var(--ink);
  border-color: var(--line);
  background: var(--panel);
}
.app-shell-modern :is(.leaflet-bar a, .leaflet-control-layers-toggle, .leaflet-draw-toolbar a) {
  color: var(--ink);
  border-color: var(--line);
  background-color: var(--panel);
}
.app-shell-modern .leaflet-bar a:hover { color: var(--accent); background: var(--panel-soft); }
.app-shell-modern .leaflet-control-attribution a { color: var(--accent); }
.app-shell-modern .ownership-transfer-confirmation { color: var(--ink); border-color: var(--line); background: var(--panel-soft); }
.app-shell-modern .modern-modal-backdrop { background: rgba(0, 0, 0, .58); }
.app-shell-modern .analysis-frame-thumbnail { opacity: .9; }
.app-shell-modern .operations-toggle { background: var(--panel-strong); }
.app-shell-modern .operations-toggle::after { background: var(--muted); }
.app-shell-modern .operations-reset-forecast input:checked + .operations-toggle { border-color: var(--error); background: var(--error); }
.app-shell-modern .operations-reset-forecast input:checked + .operations-toggle::after { background: var(--panel); }
.app-shell-modern .table-shell { background: var(--panel); border-color: var(--line); }
.app-shell-modern .warehouse-stock-row,
.app-shell-modern .warehouse-movement-row,
.app-shell-modern .warehouse-product-form { border-color: var(--line); }

@media (max-width: 800px) {
  .app-shell-modern .modern-location-dock { background: var(--panel); }
}
