:root {
  /* Shared OBSIDIAN suite palette (assets/obsidian.css) so Missions sits beside Market and Appraisal. */
  color-scheme:dark;
  --bg:#0c1012;
  --panel:#12181b;
  --line:#293237;
  --text:#e7edef;
  --muted:#a7b3b9;
  --accent:#b3a1de;
  --teal:#83d7c7;
  --warn:#e7bc7b;
  --danger:#f19c97;
}
* {
  box-sizing:border-box;
}
html {
  overflow-wrap:anywhere;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:15px/1.5 Inter,"Segoe UI",Arial,system-ui,sans-serif;
}
header,main,footer {
  width:min(100%,1440px);
  margin:auto;
  padding:20px 28px;
}
header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  border-bottom:1px solid var(--line);
}
.eyebrow {
  color:var(--accent);
  font-size:11px;
  letter-spacing:.12em;
}
h1 {
  margin:8px 0;
  font-size:30px;
  line-height:1.2;
}
h2 {
  font-size:24px;
  line-height:1.25;
  margin:8px 0;
}
h3 {
  font-size:16px;
  margin:12px 0 8px;
}
h4 {
  font-size:13px;
  margin:0;
  color:var(--muted);
  font-weight:600;
}
p {
  margin:6px 0;
}
.intro,footer,#status,.meta {
  color:var(--muted);
}
.intro {
  margin:8px 0;
}
.meta {
  font-size:12px;
}
.content-notice {
  font-size:13px;
  color:var(--warn);
}
/* Briefing header: level line, small review tag and the short confidence badge. */
.briefing-level {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin:2px 0 6px;
  font-size:13px;
}
.review-tag {
  display:inline-block;
  padding:0 6px;
  border:1px solid var(--line);
  border-radius:4px;
  color:var(--muted);
  font-size:10px;
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.review-tag[title] {
  cursor:help;
}
/* The header's Unverified tag is a button that looks the same (review round 2 of PR #42). */
.review-toggle {
  position:relative;
  min-height:0;
  margin:0;
  background:none;
  font-family:inherit;
  line-height:inherit;
  cursor:pointer;
}
.review-toggle::before {
  /* A larger touch target without changing the tag's look. */
  content:"";
  position:absolute;
  inset:-14px -8px;
}
.review-toggle:hover,.review-toggle[aria-expanded="true"] {
  color:var(--text);
  border-color:var(--muted);
}
.unverified-note {
  flex-basis:100%;
  color:var(--muted);
  font-size:12px;
}
.unverified-note[hidden] {
  display:none;
}
.result-name .review-tag {
  margin-left:8px;
  vertical-align:middle;
}
.briefing-confidence {
  margin:4px 0 12px;
}
.confidence-short {
  margin:0;
  font-size:13px;
}
.workspace {
  display:grid;
  grid-template-columns:minmax(240px,280px) minmax(0,1fr);
  gap:20px;
  align-items:start;
}
.search-panel,#detail {
  min-width:0;
  padding:20px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel);
}
.search-panel {
  position:sticky;
  top:16px;
}
.search-panel h2 {
  font-size:18px;
}
.empty {
  padding:32px 0;
}
.empty p {
  color:var(--muted);
}
label {
  display:block;
  margin:12px 0 6px;
  color:var(--muted);
  font-size:13px;
}
.search-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px;
}
input,button {
  min-height:44px;
  font:inherit;
}
input {
  min-width:0;
  width:100%;
  padding:9px;
  border:1px solid var(--line);
  border-radius:5px;
  background:var(--bg);
  color:var(--text);
}
button {
  padding:9px 12px;
  border:1px solid transparent;
  border-radius:5px;
  background:var(--accent);
  color:#171122;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible {
  outline:3px solid var(--warn);
  outline-offset:3px;
}
/* The briefing takes focus after it loads (screen readers start there), but it is not a control:
   no focus ring around the whole card (Bryan, 2026-10-26). Controls inside keep theirs. */
#detail:focus,#detail:focus-visible {
  outline:none;
}
#status {
  min-height:3em;
  font-size:13px;
  margin:12px 0;
}
.result {
  display:grid;
  width:100%;
  margin-top:10px;
  padding:12px;
  gap:5px;
  border:1px solid var(--line);
  background:#202533;
  color:var(--text);
  text-align:left;
}
.result:hover {
  border-color:#868c9e;
}
.result.selected {
  border-color:var(--accent);
  box-shadow:inset 3px 0 var(--accent);
}
.result-name {
  font-size:15px;
}
.result small {
  color:var(--muted);
  font-weight:400;
  font-size:12px;
}
.grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:16px 0;
}
.card {
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:6px;
}
.card h3 {
  margin:0 0 6px;
  font-size:12px;
  color:var(--muted);
}
.card .fact-value {
  font-size:17px;
  font-weight:650;
}
.fact {
  min-width:0;
}
.card .varies {
  margin:6px 0 0;
  color:var(--warn);
  font-size:12px;
  font-weight:650;
}
.card .guide-wording {
  margin:4px 0 0;
  overflow-wrap:anywhere;
}
.fact-value {
  margin:3px 0;
}
.state {
  display:inline-block;
  color:var(--accent);
  font-size:12px;
}
.age {
  display:inline-block;
  color:var(--warn);
  font-size:12px;
  margin-left:6px;
}
.disputed>.state,.disputed>strong {
  color:var(--danger);
}
.alternative {
  border-left:2px solid var(--danger);
  padding-left:8px;
  font-size:13px;
}
.unknown {
  color:var(--warn);
}
.completion {
  margin:16px 0;
}
.completion>h3 {
  font-size:16px;
}
.hazard,.objective,.item {
  min-width:0;
  margin:10px 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:6px;
}
.standing,.objective,.item,.threat {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 16px;
}
.standing>strong,.objective>h4,.item>h4,.threat>h4 {
  grid-column:1/-1;
}
.standing.empire {
  border-color:#a27b48;
  background:#241f19;
}
.warning-title {
  color:var(--warn);
}
.warning {
  margin:10px 0;
  padding:12px;
  border-left:3px solid #be8f57;
  background:#211e1b;
}
.warning.disputed {
  border-color:var(--danger);
  background:#2a1d20;
}
.hazard-line {
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.hazard-line>strong,.warning>strong {
  font-size:13px;
}
.hazard-line>p,.warning>p {
  font-size:13px;
}
.trigger-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 16px;
}
.trigger-summary>strong {
  grid-column:1/-1;
}
/* Reinforcement triggers fold inside Combat warnings: the nested accordion style, a little darker
   than the panel so the open fold reads as one block. */
.critical-tactics .triggers-fold {
  margin:10px 0 2px;
  background:#1a1816;
}
.triggers-fold .trigger-guide {
  margin:10px 0 0;
  font-size:13px;
  color:var(--muted);
}
.triggers-fold .trigger-summary>.fact:only-of-type {
  grid-column:1/-1;
}
.triggers-fold .trigger-guide+.critical-line {
  border-top:0;
}
.accordion {
  width:100%;
  margin:0;
  border:0;
  border-top:1px solid var(--line);
  min-width:0;
}
.accordion>summary {
  display:flex;
  width:100%;
  min-height:48px;
  padding:12px 2px;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  font-size:14px;
  font-weight:600;
  list-style:none;
  cursor:pointer;
}
.accordion>summary::-webkit-details-marker {
  display:none;
}
.accordion-label {
  min-width:0;
}
.accordion-icon {
  display:grid;
  flex:0 0 22px;
  width:22px;
  height:22px;
  place-items:center;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--accent);
  font-size:17px;
  font-weight:400;
  line-height:1;
}
.accordion[open]>summary {
  color:var(--accent);
}
.accordion>:not(summary) {
  margin-left:0;
  margin-right:0;
}
.accordion-nested {
  padding:0 10px;
  margin:8px 0;
  border:1px solid var(--line);
  border-radius:6px;
  background:#11151e;
}
.provenance {
  margin-top:4px;
  border:0;
}
.provenance>summary {
  min-height:44px;
  padding:6px 0;
  font-size:12px;
  color:var(--muted);
  font-weight:400;
  gap:6px;
}
.provenance .accordion-icon {
  width:18px;
  height:18px;
  flex-basis:18px;
  font-size:14px;
}
.reported-value {
  color:var(--text);
}
footer {
  margin-top:24px;
  border-top:1px solid var(--line);
  font-size:12px;
}
@media(max-width:950px) {
  .workspace {
    grid-template-columns:minmax(0,1fr);
  }
  .search-panel {
    position:static;
  }
  #results {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  #status {
    min-height:0;
  }
  .search-row {
    max-width:520px;
  }
}
@media(max-width:540px) {
  header,main,footer {
    padding:16px;
  }
  h1 {
    font-size:26px;
  }
  .search-panel,#detail {
    padding:14px;
  }
  .grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .card:first-child {
    grid-column:1/-1;
  }
  .card {
    padding:10px;
  }
  .card .fact-value {
    font-size:15px;
  }
  #results {
    grid-template-columns:minmax(0,1fr);
  }
  .standing,.objective,.item,.threat,.trigger-summary {
    grid-template-columns:minmax(0,1fr);
  }
  .accordion-nested {
    padding:0 8px;
  }
}
@media(max-width:350px) {
  header,main,footer {
    padding:12px;
  }
  .brand>span {
    font-size:19px;
  }
  .search-panel,#detail {
    padding:12px;
  }
  .grid {
    grid-template-columns:minmax(0,1fr);
  }
  .card:first-child {
    grid-column:auto;
  }
  .search-row {
    grid-template-columns:minmax(0,1fr);
  }
  .search-row button {
    width:100%;
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto;
  }
}
/* One evidence disclosure per entity keeps the combat summary scannable. */
.critical-tactics {
  margin:14px 0;
  padding:10px 12px;
  border-left:3px solid var(--warn);
  background:#211e1b;
}
.critical-tactics h3 {
  margin:0 0 6px;
}
.critical-tactics .fact {
  margin-top:8px;
}
.critical-tactics .alternative {
  display:inline-block;
  margin-right:12px;
}
.critical-tactics .state {
  margin-right:8px;
}
.critical-line {
  font-size:13px;
}
.critical-line strong {
  color:var(--warn);
}
.objective,.item {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.objective>.provenance:last-child {
  grid-column:1/-1;
}
@media(max-width:650px) {
  .objective,.item {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:540px) {
  .objective,.item {
    grid-template-columns:minmax(0,1fr);
  }
}
.quick-completion {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:6px;
}
.quick-completion>section {
  min-width:0;
}
.quick-completion h3 {
  margin:0 0 8px;
  font-size:14px;
}
.quick-completion>.meta {
  grid-column:1/-1;
}
.essential-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.essential-fields .fact-value {
  font-size:13px;
}
.essential-fields h4 {
  font-size:12px;
}
.essential-fields .fact:last-child {
  grid-column:1/-1;
}
@media(max-width:650px) {
  .quick-completion {
    grid-template-columns:minmax(0,1fr);
  }
}
.priority-alerts {
  margin:12px 0;
  padding:8px 10px;
  border-left:3px solid var(--warn);
  background:#211e1b;
  font-size:13px;
}
.priority-standing {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 14px;
  margin-top:4px;
}
.priority-standing .fact-value,.priority-standing .state,.priority-standing h4 {
  display:inline;
  margin-right:6px;
}
.priority-standing .alternative {
  font-size:12px;
}
/* First-glance warnings use explicit labels as well as color. */
.priority-alerts > h3 { margin:0 0 6px; font-size:15px; }
.priority-standing { display:block; margin:8px 0 0; padding:8px 10px; border-left:3px solid var(--line); }
.priority-standing.empire { border-color:var(--warn); background:#302419; }
.priority-standing.disputed { border-color:var(--danger); background:#2a1d20; }
.priority-standing > .warning-title { display:block; font-size:14px; font-weight:750; }
.priority-standing.disputed > .warning-title,.critical-line.disputed > strong { color:var(--danger); }
.priority-standing .standing-headline { font-size:15px; font-weight:650; }
.priority-standing .meta { margin:4px 0; }
.standing-report { margin:12px 0; }
.standing > .warning-title { grid-column:1/-1; margin:0; }
.critical-line > .hazard-detail { color:var(--muted); }
.critical-line { margin:8px 0; padding-top:8px; border-top:1px solid var(--line); }
.critical-line > p { margin:4px 0; }
.reported-value { white-space:pre-wrap; }

/* Suite masthead and top menu: the Market's .masthead/.brand/.suite-nav rules
   (assets/obsidian.css), copied because Missions serves only this stylesheet. */
header.masthead {
  min-height:96px;
  padding-top:0;
  padding-bottom:0;
}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--text);
  text-decoration:none;
}
.brand-mark {
  width:32px;
  height:40px;
  fill:#b3a1de12;
  stroke:var(--accent);
  stroke-width:1.3;
}
.brand>span {
  font-size:24px;
  font-weight:650;
  letter-spacing:4.4px;
  line-height:1.3;
}
.brand small {
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:8px;
  font-weight:500;
  letter-spacing:2px;
}
.masthead-meta {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
  color:var(--muted);
  font-size:11px;
}
.masthead-meta a {
  color:var(--muted);
  text-decoration:none;
}
.masthead-meta a:hover {
  color:var(--text);
}
.masthead-meta a span {
  padding-left:6px;
}
.network-label {
  display:flex;
  align-items:center;
  gap:8px;
  font-size:9px;
  letter-spacing:1.4px;
}
.network-label i {
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 12px #83d7c74a;
}
.suite-nav {
  display:flex;
  flex-wrap:wrap;
  gap:10px 26px;
  width:min(100%,1440px);
  margin:auto;
  padding:13px 28px;
  border-bottom:1px solid var(--line);
  font-size:10px;
  letter-spacing:1.6px;
  text-transform:uppercase;
}
.suite-nav a {
  color:var(--muted);
  text-decoration:none;
}
.suite-nav a:hover,.suite-nav a[aria-current="page"] {
  color:var(--text);
}
.suite-nav a:focus-visible,.attributions a:focus-visible,.brand:focus-visible,.masthead-meta a:focus-visible,footer a:focus-visible {
  outline:2px solid var(--teal);
  outline-offset:2px;
}
@media(max-width:1000px) {
  .masthead-meta .network-label {
    display:none;
  }
}
@media(max-width:700px) {
  header.masthead {
    min-height:76px;
  }
  .brand>span {
    font-size:21px;
    letter-spacing:3.5px;
  }
  .brand small {
    font-size:7px;
    letter-spacing:1.6px;
  }
  .brand-mark {
    width:27px;
    height:35px;
  }
  .masthead-meta {
    font-size:10px;
  }
  .suite-nav {
    gap:10px 20px;
    padding:12px 16px;
  }
}
footer a {
  color:var(--muted);
}
.footer-notice strong {
  color:var(--warn);
}
/* Search suggestions under the search box (the Market's combobox pattern). */
#search-form {
  position:relative;
}
.suggestions {
  position:absolute;
  top:100%;
  left:0;
  right:0;
  z-index:20;
  margin-top:4px;
  max-height:340px;
  overflow:auto;
  padding:5px;
  border:1px solid #405359;
  border-radius:7px;
  background:#172024;
  box-shadow:0 20px 50px #0008;
}
@media(min-width:951px) {
  .suggestions {
    right:auto;
    width:400px;
  }
}
.suggestion {
  display:block;
  width:100%;
  min-height:44px;
  padding:9px 11px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:var(--text);
  text-align:left;
}
.suggestion:hover,.suggestion[aria-selected="true"] {
  background:#27383d;
}
.suggestion-name {
  display:block;
  font-size:14px;
}
.suggestion-meta {
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:12px;
}
.dataset-line {
  display:block;
  color:var(--muted);
  font-size:13px;
}
/* Confidence pills (header badge and "More about sources"). */
.confidence {
  display:inline-block;
  margin:4px 0;
  padding:2px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  font-weight:650;
}
.confidence-high {
  color:var(--teal);
  border-color:var(--teal);
}
.confidence-strong {
  color:var(--teal);
  border-color:var(--teal);
}
.confidence-conflict {
  color:var(--danger);
  border-color:var(--danger);
}
.confidence-partial,.confidence-single {
  color:var(--warn);
  border-color:var(--warn);
}
.attributions {
  margin:8px 0 0;
  padding-left:18px;
}
.attributions li {
  margin:6px 0;
}
.attributions a {
  color:var(--teal);
}
.source-notes {
  margin:10px 0;
}
.source-note {
  margin:6px 0;
}

/* App version next to the footer credit (site_assets.render_page adds it). */
.app-version {
  margin-left:.25em;
  color:var(--muted);
  font-size:inherit;
  white-space:nowrap;
}

/* Sources declutter (owner feedback 2026-10-25): one compact "Sources:" line of links, then a
   single collapsed "More about sources" with the confidence breakdown, notice and licence,
   source pages, which source said what and the review record. */
.sources-line {
  margin:18px 0 0;
  padding-top:12px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:13px;
  overflow-wrap:anywhere;
}
.sources-line .sources-label {
  color:var(--text);
  font-weight:650;
}
.sources-line a {
  color:var(--teal);
  white-space:nowrap; /* "CC BY-SA 4.0" and each site name stay on one line */
}
.sources-line a:focus-visible,.more-sources a:focus-visible,.more-sources summary:focus-visible {
  outline:2px solid var(--teal);
  outline-offset:2px;
}
.more-sources {
  font-size:13px;
}
.more-sources h4 {
  margin:12px 0 4px;
  font-size:13px;
}
.more-sources h5 {
  margin:10px 0 2px;
  font-size:13px;
}
.more-sources .content-notice {
  margin:4px 0;
}
.more-sources .attributions a {
  overflow-wrap:anywhere;
}
.fact-source {
  margin:8px 0;
  padding:6px 8px;
  border-left:2px solid var(--line);
}
.fact-source .claim {
  margin:3px 0;
  overflow-wrap:anywhere;
}
.report-details {
  margin-top:6px;
}
.report-details>summary {
  min-height:44px;
  padding:6px 0;
  font-size:13px;
}

/* "Paint it Black" (owner request, Oct 2026; docs/PAINT_IT_BLACK.md): black, grey and red while
   <html data-theme="black">. Red is for warnings and threat only: hazard notes, empire-standing
   and other priority alerts (dark red panel, muted red edge) and "sources disagree" (bright red
   edge and text, the strongest). Confidence badges keep their words; "high/strong" turn white.
   Focus rings are white (gold is gone, and red would read as a warning). */
html[data-theme="black"] {
  --bg:#070707;
  --panel:#101010;
  --line:#2f2f2f;
  --text:#ededed;
  --muted:#a6a6a6;
  --accent:#d6d6d6;
  --teal:#f2f2f2;
  --warn:#ff8f87;
  --danger:#ff6b63;
  --alert-tint:#1f0b0b;
  --alert-tint-strong:#2e0e0e;
  --alert-line:#8a2b2b;
}
:where(html[data-theme="black"]) button { color:#0a0a0a; }
:where(html[data-theme="black"]) button:focus-visible,:where(html[data-theme="black"]) input:focus-visible,
:where(html[data-theme="black"]) summary:focus-visible,:where(html[data-theme="black"]) a:focus-visible { outline-color:#fff; }
:where(html[data-theme="black"]) .result { background:#1a1a1a; }
:where(html[data-theme="black"]) .result:hover { border-color:#8c8c8c; }
:where(html[data-theme="black"]) .standing.empire { border-color:var(--alert-line); background:var(--alert-tint); }
:where(html[data-theme="black"]) .warning { border-left-color:var(--alert-line); background:var(--alert-tint); }
:where(html[data-theme="black"]) .warning.disputed { border-color:var(--danger); background:var(--alert-tint-strong); }
:where(html[data-theme="black"]) .critical-tactics .triggers-fold { background:#161616; }
:where(html[data-theme="black"]) .accordion-nested { background:#121212; }
:where(html[data-theme="black"]) .critical-tactics,:where(html[data-theme="black"]) .priority-alerts { background:var(--alert-tint); }
:where(html[data-theme="black"]) .priority-standing.empire { background:var(--alert-tint); }
:where(html[data-theme="black"]) .priority-standing.disputed { background:var(--alert-tint-strong); }
:where(html[data-theme="black"]) .brand-mark { fill:#ffffff10; }
:where(html[data-theme="black"]) .network-label i { box-shadow:0 0 12px #ffffff3a; }
:where(html[data-theme="black"]) .suggestions { border-color:#444; background:#181818; }
:where(html[data-theme="black"]) .suggestion:hover,:where(html[data-theme="black"]) .suggestion[aria-selected="true"] { background:#2a2a2a; }
:where(html[data-theme="black"]) .confidence-conflict { font-weight:700; }
