/* Kraftradar owns workspace composition, power-domain rows, maps, and product theme.
   Shared controls, status semantics, evidence grammar, type, and focus come from Radar UI 1.0.2. */
:root[data-product-theme="kraftradar"] {
  --radar-accent: #007a91; --radar-accent-strong: #005d72; --radar-accent-soft: #dceff3;
  --radar-selected: #e4f1f4; --radar-selected-hover: #d6e9ed;
  --kraft-grid-line: #087f97; --kraft-grid-selected: #005d72; --kraft-map-surface: #d8e5e8;
}
:root[data-theme="dark"][data-product-theme="kraftradar"] {
  --radar-accent: #55c7df; --radar-accent-strong: #8adff0; --radar-accent-soft: #123646;
  --radar-selected: #12313d; --radar-selected-hover: #173b48;
  --kraft-grid-line: #58c8df; --kraft-grid-selected: #9be7f4; --kraft-map-surface: #102a33;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"])[data-product-theme="kraftradar"] {
    --radar-accent: #55c7df; --radar-accent-strong: #8adff0; --radar-accent-soft: #123646;
    --radar-selected: #12313d; --radar-selected-hover: #173b48;
    --kraft-grid-line: #58c8df; --kraft-grid-selected: #9be7f4; --kraft-map-surface: #102a33;
  }
}
html { scroll-behavior: smooth; }
body.radar-app { margin: 0; min-height: 100vh; background: var(--radar-canvas); }
.tabular { font-variant-numeric: tabular-nums; }
.app-header__inner { width: min(100%, 1480px); }
.header-tools { display: flex; margin-left: auto; align-items: center; gap: 8px; }
.theme-control .form-select { min-width: 86px; min-height: var(--radar-control-height-sm); height: var(--radar-control-height-sm); padding: 3px 28px 3px 8px; font-size: 11px; }
.workspace-main { width: 100%; }
.command-area { width: min(100%, 1480px); padding-top: 22px; padding-bottom: 12px; }
.page-heading { margin-bottom: 13px; }
.page-heading h1 { max-width: none; margin: 0; font-size: 30px; letter-spacing: -.025em; }
.lede { max-width: 760px; margin-top: 4px; color: var(--radar-muted); font-size: 13px; }
.follow-button { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; text-decoration: none; }
.search-label { display: block; margin-bottom: 5px; color: var(--radar-ink-soft); font-size: 12px; font-weight: 650; }
.state-strip .dataset-warning { display: inline-flex; align-items: center; gap: 5px; }
.primary-filter-grid { margin-top: 8px; grid-template-columns: repeat(4, minmax(130px, 1fr)) auto; gap: 8px; }
.apply-filters { min-width: 105px; }
.advanced-filters { margin-top: 8px; }
.advanced-filters > summary { display: inline-flex; min-height: var(--radar-control-height); padding: 7px 10px; border: 1px solid var(--radar-border); border-radius: var(--radar-radius); align-items: center; gap: 6px; background: var(--radar-surface); color: var(--radar-ink-soft); cursor: pointer; font-size: 11.5px; font-weight: 650; list-style: none; }
.advanced-filters > summary::-webkit-details-marker { display: none; }
.advanced-filter-grid { margin-top: 8px; padding: 12px; border: 1px solid var(--radar-border); border-radius: var(--radar-radius); grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 9px; background: var(--radar-surface-subtle); }
.advanced-filter-actions { grid-column: 3 / -1; justify-content: end; }
.active-filters { display: flex; margin-top: 9px; align-items: center; flex-wrap: wrap; gap: 6px; }
.active-filters__label { margin-right: 3px; color: var(--radar-muted); font-size: 10.5px; font-weight: 650; }
.filter-chip { display: inline-flex; min-height: 26px; padding: 4px 7px; border: 1px solid var(--radar-border); border-radius: 3px; align-items: center; gap: 6px; background: var(--radar-surface); color: var(--radar-ink-soft); font-size: 10.5px; text-decoration: none; }
.filter-chip:hover { border-color: var(--radar-accent); background: var(--radar-accent-soft); }
.filter-chip--locked { border-style: dashed; color: var(--radar-muted); }
.project-workspace { width: min(calc(100% - 48px), 1432px); margin: 0 auto 22px; border: 1px solid var(--radar-border-strong); background: var(--radar-surface); }
.workspace-header { display: flex; min-height: 54px; padding: 9px 12px; border-bottom: 1px solid var(--radar-border); align-items: center; justify-content: space-between; gap: 12px; }
.workspace-header h2 { margin: 0; font-size: 16px; }
.workspace-header p { margin: 2px 0 0; color: var(--radar-muted); font-size: 10.5px; }
.workspace-header .view-switch { display: none; }
.project-workspace__body { display: grid; min-height: 615px; grid-template-columns: minmax(610px, 1.18fr) minmax(420px, .82fr); }
.project-list-pane { min-width: 0; border-right: 1px solid var(--radar-border); }
.project-list { min-width: 0; }
.project-columns, .project-row { display: grid; grid-template-columns: minmax(230px, 1.35fr) minmax(145px, .8fr) minmax(155px, .9fr) minmax(120px, .65fr); gap: 12px; }
.project-columns { padding: 6px 42px 6px 12px; border-bottom: 1px solid var(--radar-border); background: var(--radar-surface-subtle); color: var(--radar-muted); font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.project-row { position: relative; min-height: 88px; padding: 10px 42px 10px 12px; border-bottom: 1px solid var(--radar-border); align-items: start; background: var(--radar-surface); }
.project-row:hover { background: var(--radar-hover); }
.project-row.is-selected { background: var(--radar-selected); box-shadow: inset 3px 0 0 var(--radar-accent); }
.project-row h3 { margin: 2px 0 3px; font-size: 13px; line-height: 1.3; }
.project-row h3 a { color: var(--radar-ink); text-decoration-thickness: 1px; }
.project-row p { margin: 0; }
.project-kind, .field-label, .source-status-label, .entity-context, .context-label { color: var(--radar-muted); font-size: 9.5px; font-weight: 720; letter-spacing: .055em; text-transform: uppercase; }
.project-kind { color: var(--radar-accent-strong); }
.project-row__place, .project-row__actor, .project-row__state, .project-row__technical { color: var(--radar-muted); font-size: 10.5px; line-height: 1.35; }
.project-row__state, .project-row__actor, .project-row__technical { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.project-row__state strong, .project-row__technical strong { color: var(--radar-ink); font-size: 12px; }
.source-status-label { margin-top: 2px; color: var(--radar-muted); font-size: 8.5px; }
.observed { margin-top: auto; color: var(--radar-muted-2); font-size: 9.5px; font-variant-numeric: tabular-nums; }
.project-row__map-action { position: absolute; top: 8px; right: 7px; width: var(--radar-control-height-sm); min-width: var(--radar-control-height-sm); padding: 0; }
.project-map-pane { position: relative; min-width: 0; background: var(--kraft-map-surface); }
#project-map { min-height: 615px; height: 100%; background: var(--kraft-map-surface); }
.map-scope { position: absolute; z-index: 500; right: 8px; bottom: 8px; max-width: calc(100% - 16px); margin: 0; padding: 5px 7px; border: 1px solid var(--radar-border); border-radius: 3px; background: var(--radar-surface-raised); color: var(--radar-muted); font-size: 9.5px; }
.project-list-pane > .pagination { display: flex; margin: 12px; align-items: center; justify-content: space-between; gap: 12px; font-size: 11px; }
.changes-section, .digest-signup, .detail-main, footer { width: min(calc(100% - 48px), 1432px); margin-inline: auto; }
.changes-section { padding: 20px 0 30px; scroll-margin-top: 60px; }
.section-heading { display: flex; margin-bottom: 10px; align-items: end; justify-content: space-between; gap: 16px; color: var(--radar-muted); font-size: 11px; }
.section-heading h2 { margin: 0; font-size: 19px; }
.section-heading p { margin: 3px 0 0; }
.change-ledger { border-top: 1px solid var(--radar-border-strong); }
.change-columns, .change-row { display: grid; grid-template-columns: 135px minmax(210px, 1.25fr) minmax(165px, .9fr) minmax(150px, .85fr) minmax(125px, .65fr); gap: 12px; }
.change-columns { padding: 6px 10px; border-bottom: 1px solid var(--radar-border); background: var(--radar-surface-subtle); color: var(--radar-muted); font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.change-row { min-height: 68px; padding: 9px 10px; border-bottom: 1px solid var(--radar-border); align-items: start; }
.change-row > div { min-width: 0; }
.change-row h3 { margin: 0 0 2px; font-size: 12px; line-height: 1.35; }
.change-row p { margin: 0; color: var(--radar-muted); font-size: 10px; line-height: 1.35; }
.change-row__kind, .change-row__field, .change-row__source { display: flex; flex-direction: column; gap: 3px; }
.change-row time { color: var(--radar-muted); font-family: var(--radar-font-mono); font-size: 9.5px; }
.change-row__field strong { font-size: 11px; }
.change-values { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; font-variant-numeric: tabular-nums; }
.change-values del { color: var(--radar-muted); }
.change-values strong { color: var(--radar-ink); }
.digest-signup { display: grid; margin-bottom: 34px; padding: 16px 0; border-top: 1px solid var(--radar-border); grid-template-columns: 1fr minmax(360px, .65fr); align-items: end; gap: 26px; }
.digest-signup h2 { margin: 0; font-size: 16px; }
.digest-signup p { margin: 4px 0 0; color: var(--radar-muted); font-size: 11px; }
.digest-signup form { grid-template-columns: 1fr auto; gap: 7px; }

/* Entity inspection */
.detail-main { padding-top: 18px; }
.breadcrumb { display: flex; gap: 6px; color: var(--radar-muted); font-size: 11px; }
.detail-identity { display: flex; padding: 28px 0 16px; align-items: end; justify-content: space-between; gap: 24px; }
.detail-identity h1 { max-width: 950px; margin: 4px 0; font-size: 32px; letter-spacing: -.025em; }
.entity-context { margin: 0; color: var(--radar-accent-strong); }
.detail-actor { margin: 0; color: var(--radar-muted); font-size: 12px; }
.phase-status-grid { display: grid; margin-bottom: 20px; border-top: 1px solid var(--radar-border-strong); border-bottom: 1px solid var(--radar-border); grid-template-columns: 1fr 1fr; }
.phase-status-grid .evidence-layer { min-height: 126px; padding: 14px 16px; }
.phase-status-grid .evidence-layer + .evidence-layer { margin: 0; border-left: 1px solid var(--radar-border); }
.phase-status-grid h2 { margin: 4px 0; font-size: 19px; }
.phase-status-grid p { max-width: 620px; margin: 0; font-size: 11px; }
.phase-status-meta { display: flex; margin-top: 7px; align-items: baseline; flex-wrap: wrap; gap: 5px 10px; }
.project-facts { padding: 3px 0 22px; }
.fact-list { display: grid; margin: 0; border-top: 1px solid var(--radar-border); grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fact-list > div { min-width: 0; padding: 10px 12px 10px 0; border-bottom: 1px solid var(--radar-border); }
.fact-list dt { color: var(--radar-muted); font-size: 9.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.fact-list dd { min-width: 0; margin: 3px 0 0; color: var(--radar-ink); font-size: 12px; font-weight: 620; overflow-wrap: anywhere; }
.detail-inspection-grid { display: grid; padding-top: 8px; grid-template-columns: minmax(0, 1.55fr) minmax(310px, .65fr); gap: 24px; }
.detail-inspection-main { min-width: 0; }
.geometry-section { margin-bottom: 24px; }
#project-detail-map { min-height: 430px; border: 1px solid var(--radar-border); background: var(--kraft-map-surface); }
.source-inspection { min-width: 0; padding-left: 18px; border-left: 1px solid var(--radar-border); }
.source-inspection h2 { margin: 0 0 4px; font-size: 16px; }
.source-inspection > section > p { margin: 0 0 10px; color: var(--radar-muted); font-size: 11px; }
.source-records { border-top: 1px solid var(--radar-border-strong); }
.source-record { padding: 11px 0; border-bottom: 1px solid var(--radar-border); }
.source-record > strong { display: block; margin: 4px 0 7px; font-size: 11.5px; overflow-wrap: anywhere; }
.source-record dl { display: grid; gap: 4px; }
.source-record dl div { display: grid; grid-template-columns: 84px 1fr; gap: 8px; }
.source-record dt { color: var(--radar-muted); font-size: 9.5px; }
.source-record dd { margin: 0; font-size: 10.5px; overflow-wrap: anywhere; }
.source-link { align-items: center; gap: 5px; }
.source-link .icon { width: 14px; height: 14px; }
.observation-boundary { margin-top: 24px; padding-top: 14px; border-top: 2px solid var(--radar-border-strong); }
.observation-boundary .fact-list { grid-template-columns: 1fr; }
.observation-boundary p { margin-top: 12px; color: var(--radar-muted); font-size: 10.5px; line-height: 1.5; }
.timeline-section { padding: 4px 0 30px; }
.timeline { display: grid; margin: 0; padding: 0; }
.timeline-event { display: grid; padding: 10px 0; border-bottom: 1px solid var(--radar-border); grid-template-columns: 8px 1fr; gap: 10px; }
.timeline-marker { width: 7px; height: 7px; margin-top: 7px; border-radius: 50%; background: var(--radar-accent); }
.timeline-content { min-width: 0; }
.timeline-content h3 { margin: 2px 0 5px; font-size: 12px; }
.event-time, .event-source { margin: 0; color: var(--radar-muted); font-size: 9.5px; }
.timeline-content > a { font-size: 10px; }
.related { padding: 8px 0 30px; }
.related-row { padding: 10px 0; border-top: 1px solid var(--radar-border); }
.related-row h3, .related-row p { margin: 0; }

/* Existing secondary/account/commercial routes share the new shell. */
.collection-hero { padding: 28px 0 20px; }
.collection-hero h1 { margin: 4px 0 8px; font-size: 30px; }
.lead { max-width: 760px; color: var(--radar-muted); font-size: 13px; line-height: 1.5; }
.freshness, .observed, .meta, .form-note { color: var(--radar-muted); font-size: 10.5px; }
.panel, .empty-state, .project-card, .watch-card { padding: 14px; border: 1px solid var(--radar-border); background: var(--radar-surface); }
.panel h2, .project-card h2 { font-size: 16px; }
.radar-app .watch-cta { display: inline-flex; padding: 8px 11px; border-radius: var(--radar-radius); background: var(--radar-accent); color: var(--radar-on-accent); font-weight: 680; text-decoration: none; }
.radar-app .watch-cta:hover { background: var(--radar-accent-strong); color: var(--radar-on-accent); }
.collection-summary, .directory-grid, .pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 20px; }
.summary-list { display: grid; margin: 8px 0 0; padding: 0; list-style: none; }
.summary-list li { display: flex; padding: 6px 0; border-top: 1px solid var(--radar-border); justify-content: space-between; gap: 12px; }
.database-section { padding: 20px 0 32px; }
.project-card { margin-bottom: 8px; }
.watch-form { display: grid; max-width: 860px; margin-bottom: 36px; padding: 14px; border: 1px solid var(--radar-border); gap: 10px; background: var(--radar-surface); }
.watch-form label { display: grid; gap: 4px; color: var(--radar-ink-soft); font-size: 11px; font-weight: 650; }
.compound-fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; }
.preset, .notice, .form-error { padding: 11px; border-left: 3px solid var(--radar-accent); background: var(--radar-accent-soft); }
.form-error { border-left-color: var(--radar-error); background: var(--radar-error-bg); }
.watch-list { display: grid; padding-bottom: 28px; gap: 8px; }
.watch-card { display: flex; justify-content: space-between; gap: 16px; }
.watch-actions { justify-content: flex-end; }
.danger-action { color: var(--radar-error) !important; }
.email-settings { padding-bottom: 24px; }
.checkbox { display: grid !important; grid-template-columns: auto 1fr; align-items: center; }
.checkbox input { width: 18px; min-height: 18px; }
.notification-history { border-top: 1px solid var(--radar-border); }
.notification-row { display: flex; padding: 10px 0; border-bottom: 1px solid var(--radar-border); justify-content: space-between; gap: 12px; }
.pricing-grid .panel { display: flex; flex-direction: column; align-items: start; }
.pricing-grid .panel ul { flex: 1; padding-left: 18px; }
.featured { border-top: 3px solid var(--radar-accent); }
.panel > form { display: grid; margin-top: 12px; gap: 8px; }
.panel > form .danger-action { width: fit-content; }
.watch-form textarea { width: 100%; resize: vertical; }
.pagination { display: flex; margin-top: 12px; justify-content: space-between; gap: 12px; color: var(--radar-muted); font-size: 11px; }
footer { padding: 20px 0 34px; border-top: 1px solid var(--radar-border); color: var(--radar-muted); font-size: 10.5px; line-height: 1.45; }
footer p { margin: 5px 0; }
footer nav { display: flex; margin-top: 9px; flex-wrap: wrap; gap: 12px; }
/* Compatibility bridge for legacy secondary-page card markup. Remove when those routes use row/fact-list markup. */
.detail-main .project-list:not([role="listbox"]) { display: grid; gap: 8px; }

@media (max-width: 1120px) {
  .primary-filter-grid { grid-template-columns: repeat(4, minmax(110px, 1fr)); }
  .apply-filters { grid-column: 4; }
  .advanced-filter-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .advanced-filter-actions { grid-column: 2 / -1; }
  .project-workspace__body { grid-template-columns: minmax(540px, 1.15fr) minmax(340px, .85fr); }
  .project-columns, .project-row { grid-template-columns: minmax(210px, 1.3fr) minmax(135px, .8fr) minmax(130px, .7fr); }
  .project-columns span:nth-child(3), .project-row__actor { display: none; }
  .change-columns, .change-row { grid-template-columns: 118px minmax(190px, 1.2fr) minmax(150px, .8fr) minmax(145px, .8fr); }
  .change-columns span:last-child, .change-row__source { display: none; }
}
@media (max-width: 840px) {
  .theme-control { display: none; }
  .command-area { padding-right: 14px; padding-left: 14px; }
  .primary-filter-grid { grid-template-columns: 1fr 1fr; }
  .apply-filters { grid-column: 2; }
  .advanced-filter-grid { grid-template-columns: 1fr 1fr; }
  .advanced-filter-actions { grid-column: 1 / -1; }
  .project-workspace, .changes-section, .digest-signup, .detail-main, footer { width: calc(100% - 28px); }
  .workspace-header .view-switch { display: inline-flex; }
  .project-workspace__body { display: block; min-height: 0; }
  .project-list-pane { border-right: 0; }
  .project-map-pane { display: none; }
  .project-workspace[data-workspace-view="map"] .project-list-pane { display: none; }
  .project-workspace[data-workspace-view="map"] .project-map-pane { display: block; }
  #project-map { min-height: 560px; }
  .project-columns, .project-row { grid-template-columns: minmax(0, 1fr) 150px 120px; }
  .project-columns span:nth-child(3), .project-row__actor { display: none; }
  .change-columns, .change-row { grid-template-columns: 112px minmax(180px, 1fr) minmax(140px, .8fr); }
  .change-columns span:nth-child(4), .change-columns span:nth-child(5), .change-row__values, .change-row__source { display: none; }
  .detail-inspection-grid { grid-template-columns: 1fr; }
  .source-inspection { padding: 18px 0 0; border-top: 1px solid var(--radar-border); border-left: 0; }
  .collection-summary, .directory-grid, .pricing-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  html { scroll-behavior: auto; }
  .header-tools { margin-left: auto; }
  .page-heading { align-items: flex-start; }
  .page-heading h1 { font-size: 25px; line-height: 1.1; }
  .lede { font-size: 12px; }
  .primary-filter-grid { grid-template-columns: 1fr 1fr; gap: 7px; }
  .apply-filters { width: 100%; grid-column: 1 / -1; }
  .advanced-filter-grid { padding: 10px; grid-template-columns: 1fr 1fr; }
  .active-filters { align-items: flex-start; }
  .active-filters__label { width: 100%; }
  .project-workspace, .changes-section, .digest-signup, .detail-main, footer { width: calc(100% - 24px); }
  .workspace-header { align-items: flex-start; }
  .workspace-header p { max-width: 215px; }
  #project-map { min-height: 520px; }
  .project-columns { display: none; }
  .project-row { min-height: 132px; padding: 11px 38px 10px 11px; grid-template-columns: minmax(0, 1fr) 92px; gap: 8px 10px; }
  .project-row__identity { grid-column: 1; }
  .project-row__technical { grid-column: 2; grid-row: 1 / span 2; }
  .project-row__state { grid-column: 1; display: grid; grid-template-columns: 72px 1fr; align-items: baseline; gap: 3px 7px; }
  .project-row__actor { display: flex; grid-column: 1 / -1; grid-row: 3; flex-direction: row; flex-wrap: wrap; gap: 4px 7px; }
  .project-row__actor .field-label, .project-row__actor .observed { display: none; }
  .project-row__state .source-status-label { margin: 0; }
  .project-row__state strong { font-size: 11.5px; }
  .project-row__technical strong { font-size: 13px; }
  .project-row__map-action { top: 7px; right: 5px; }
  .project-list-pane > .pagination { align-items: flex-start; flex-direction: column; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .change-columns { display: none; }
  .change-row { min-height: 0; padding: 11px 0; grid-template-columns: 78px 1fr; gap: 6px 10px; }
  .change-row__kind { grid-row: 1 / span 3; }
  .change-row__project, .change-row__field, .change-row__values, .change-row__source { grid-column: 2; }
  .change-row__values, .change-row__source { display: flex; }
  .change-row__source { flex-direction: row; flex-wrap: wrap; }
  .change-row__source .field-label { width: 100%; }
  .digest-signup { grid-template-columns: 1fr; gap: 12px; }
  .digest-signup form { grid-template-columns: 1fr; }
  .detail-identity { padding: 22px 0 14px; align-items: flex-start; flex-direction: column; gap: 12px; }
  .detail-identity h1 { font-size: 27px; }
  .phase-status-grid { grid-template-columns: 1fr; }
  .phase-status-grid .evidence-layer { min-height: 0; }
  .phase-status-grid .evidence-layer + .evidence-layer { border-top: 1px solid var(--radar-border); border-left: 0; }
  .fact-list { grid-template-columns: 1fr 1fr; }
  #project-detail-map { min-height: 360px; }
  .watch-card { flex-direction: column; }
  .compound-fields { grid-template-columns: 1fr; }
  .notification-row { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
:root[data-theme="dark"] .leaflet-tile-pane { filter: brightness(.54) saturate(.58) contrast(1.08); }
:root[data-theme="dark"] .leaflet-control-zoom a, :root[data-theme="dark"] .leaflet-popup-content-wrapper, :root[data-theme="dark"] .leaflet-popup-tip { background: var(--radar-surface-raised); color: var(--radar-ink); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .leaflet-tile-pane { filter: brightness(.54) saturate(.58) contrast(1.08); }
  :root:not([data-theme="light"]) .leaflet-control-zoom a, :root:not([data-theme="light"]) .leaflet-popup-content-wrapper, :root:not([data-theme="light"]) .leaflet-popup-tip { background: var(--radar-surface-raised); color: var(--radar-ink); }
}
