@font-face{font-family:Rajdhani;src:url('/static/ui4/assets/Rajdhani-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:Rajdhani;src:url('/static/ui4/assets/Rajdhani-Medium.ttf');font-weight:500;font-display:swap}
@font-face{font-family:JetBrains;src:url('/static/ui4/assets/JetBrainsMono-Regular.woff2');font-display:swap}
:root{--spacing:4px;color-scheme:dark;--bg:#101112;--panel:#191b1d;--raised:#222527;--line:#383c3f;--soft-line:#292d30;--ink:#efefea;--muted:#a1a6a8;--dim:#818789;--amber:#e8b254;--blue:#91b7d5;--red:#d98980;--mono:JetBrains,monospace;--display:Rajdhani,'Arial Narrow',sans-serif;--body:Arial,Helvetica,sans-serif}

/* Shared Menu frames and their internal rhythm. */
:root{--frame-border:1px solid var(--line);--panel-padding:16px;--panel-gap:12px;--section-gap:20px}

@layer base {/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
    'Noto Color Emoji'; /* 4 */
  font-feature-settings: initial; /* 5 */
  font-variation-settings: initial; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
    monospace; /* 1 */
  font-feature-settings: initial; /* 2 */
  font-variation-settings: initial; /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}
}
.gap-2 {
  gap: calc(var(--spacing) * 2);
}

.gap-6 {
  gap: calc(var(--spacing) * 6);
}

.grid {
  display: grid;
}

.pt-4 {
  padding-top: calc(var(--spacing) * 4);
}

/* archive_leaves.css — TASK-2403.66: the ARCHIVE leaves' own drawings.
 *
 * WHY A FILE OF ITS OWN. compileStylesheet composes the kit's base layer from every embedded
 * stylesheet except theme.css, in file-name order, with components.css appended LAST. Four
 * migration rounds edit one 3,000-line tail at once, so this round's rules live here, where no
 * sibling can lose them, and the guard reads them because it asks the COMPILED sheet
 * (ui4.ConsumerFiles()["ui4.css"]) whether a drawn class has a rule.
 *
 * WHAT IS HERE. The field manual's briefing drawings (briefing.go): the section shelves of its
 * index, the article's own prose, its callouts and its emphasis. Everything else the two leaves
 * draw is the kit's own class - the collection console, its rows, its strip, its pair, the compact
 * codex record and the dossier all carry their rules in components.css and codex_collection.css.
 *
 * THE TOKENS ARE THE KIT'S OWN (theme.css): --display --mono --ink --muted --dim --amber --blue
 * --red --line --soft-line --panel. No new token and no new colour is introduced here.
 */

/* ── the manual index's shelves ─────────────────────────────────────────── */

.briefing-shelf {
	display: grid;
	gap: 12px;
	min-width: 0;
}



.briefing-shelf-title {
	margin: 0;
	font: 700 18px var(--display);
	letter-spacing: 0.04em;
}





/* ── the open briefing ──────────────────────────────────────────────────── */

.briefing {
	display: grid;
	gap: 16px;
	min-width: 0;
	padding: 20px;
	background: var(--panel);
	border-top: 1px solid var(--line);
}







/* A BRIEFING'S PROSE IS READING TYPE, NOT A CAPTION: the article is the one place in this surface
   a reader sits and reads, so its paragraphs carry the body size and the body leading, and the
   heading above them is the only thing set in the display face. */
.briefing-prose {
	display: grid;
	gap: 14px;
	min-width: 0;
}

.briefing-prose-heading {
	margin: 0;
	font: 700 17px var(--display);
	letter-spacing: 0.04em;
}

.briefing-prose-paragraph {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: var(--ink);
}







.briefing-prose-strong {
	font-weight: 700;
	color: var(--ink);
}

/* ── the manual index's cards ───────────────────────────────────────────── */

/* The card's own visible marker, and the ONE line beneath it that a reader's tooling reads. The
   font size is the marker's; the pseudo-visually-hidden rule keeps the combined line out of the
   layout while leaving it in the accessibility tree. */




/* ── the article's callouts ─────────────────────────────────────────────── */

.briefing-callout {
	display: grid;
	gap: 6px;
	padding: 14px 16px;
	background: var(--raised);
	border-left: 2px solid var(--blue);
}

.briefing-callout--warning {
	border-left-color: var(--red);
}

/* The note kind is the manifest's other word, and it keeps the base tone rather than an absent
   rule: the guard asks the sheet to NAME the class a document draws, so both kinds are stated. */
.briefing-callout--note {
	border-left-color: var(--blue);
}

/* ── the compact codex record's head ────────────────────────────────────── */

/* ui4.CodexRecord draws its own head row: what the panel IS, whose record it shows, and the close
   press. components.css owns the record frame's body rules (.codex-record and the section heads
   inside it); this row is this round's, so its rule is here. */




.briefing-callout-body {
	margin: 0;
	font-size: 13px;
	line-height: 1.8;
	color: var(--muted);
}

/* codex_collection.css — THE ARCHIVE COLLECTION CONSOLE (TASK-2403.65).
   This round's sheet. compileStylesheet's composeBase() concatenates it into the kit's base
   layer BEFORE components.css, so nothing here silently outranks the shared sheet, and every
   class codex_collection.go draws has its rule below: the guard reads the COMPILED sheet, and
   a class with no rule is an element at browser defaults.

   THE SHAPES ARE THE ARCHIVE CONSOLE'S OWN, and they are measured rather than invented. The UI3
   console's classes carried only their container rules in menu.css, and the design tokens for
   these exact parts survive in platform/ui2/utility_classes.go's map (u2-archive-scanner and its
   head, telemetry, reading, controls, browser, page row and pager). Each rule below is one of
   those tokens written as CSS in this kit's properties, at the SAME breakpoints the source used:
   the telemetry is four columns that fall to two at 64rem and to one at 26rem; the controls and
   the browser pair collapse at 55rem; the page row, the wide/narrow reading pair and the pager
   turn at 47.5rem. */

/* THE CONSOLE IS THE COLLECTION'S BODY ROOT. .collection already stacks its children; the
   scanner adds the frame the source drew: a panel with a border, a raised background, twelve
   pixels of padding, and the kit's own gap between the head, the readings, the controls and the
   results. */
.collection-scanner{display:flex;flex-direction:column;gap:16px;min-width:0;padding:12px;background:var(--panel);border:1px solid var(--line)}

/* THE ATMOSPHERE IS THE COLLECTION'S OWN ARTWORK, drawn as a band above the head. It is drawn
   ONLY when the caller resolved a URL: an unresolved one emits no img at all, so a broken image
   is never the way this console reports missing art. */


/* THE HEAD IS ONE ROW: the console's title on the left, the STATE LINE on the right, and the
   rule under both. The state line is the kit's meta treatment, because it is a reading ABOUT the
   collection rather than a heading of it, and a narrow window lets the two stack. */




/* A READING IS A PAIR, which is why the readings are a definition list: FOUR of them in a row on
   a wide window, two at 64rem and one at 26rem, each a label over its value against a second
   rule. The one reading with two forms (the result window) draws the same box. */




/* THE RESULT WINDOW IS ONE READING WITH TWO FORMS: the desktop form states the page, the narrow
   form states the continuous flow. Exactly one of the two is drawn at a time, which is how one
   definition list says both without claiming both. */



/* THE CONTROLS ARE THE CALLER'S OWN FILTER, SORT AND SEARCH ROW: this rule is a layout and
   nothing else, because the page owns what is in it. The row sits between two rules and takes
   the search box beside the controls on a wide window, above them on a narrow one. */
.collection-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}



/* THE BROWSER IS THE PAIR: the index on the left, the detail it has open on the right, sticky
   under the top of the window so a long board does not scroll the open entry away. A narrow
   window stacks them and drops the index's own scroll box and right-hand rule. */
.collection-browser{display:grid;grid-template-columns:minmax(16rem,.72fr) minmax(0,1.28fr);gap:12px;min-width:0;align-items:start}
.collection-browser-index{min-width:0;max-height:52rem;overflow-y:auto;padding-right:12px;border-right:1px solid var(--line)}
.collection-browser-detail{min-width:0}

/* A PAGE ROW IS NOT A BOX, IT IS ITS ROWS: display:contents is what lets the caller's own list
   layout place the entries whichever page they belong to. A row OUTSIDE the reader's page is
   HIDDEN on a wide window and drawn again as part of the continuous flow below 47.5rem, which
   is the one shape that lets a desktop pager and a narrow continuous list share one document. */

.collection-page-row--outside{display:none}

/* THE PROBE IS HIDDEN TWICE, ON PURPOSE. The UI3 console relied on the hidden attribute alone;
   the class repeats it, so a user agent that styles the attribute away still cannot show a
   control that exists to be READ by the paging contract rather than pressed. */


/* THE PAGER IS prev, READOUT, next, with the readout between the two presses exactly as the UI3
   pager placed it. It is hidden below 47.5rem, where the continuous flow is the whole window and
   there is no page to turn. */



/* ── the reader's states ──────────────────────────────────────────────────── */

/* THE GATE IS NOT A FAULT AND NOT AN EMPTY COLLECTION: an amber-topped notice that says whose
   surface this is, with no fault word, no empty block and no retry, because a reader who is not
   admitted has nothing to re-ask. */




/* AN ANSWERED EMPTY IS THE KIT'S OWN EMPTY LOOK (empty-block, drawn by collectionEmpty) plus the
   state marker and the presses the caller offers. The marker is what tells the two "nothing
   here" states apart in the markup: this one ANSWERED, the unread one did not. */
.collection-empty{display:grid;gap:14px;min-width:0}


/* THE THRESHOLDS ARE THE SOURCE'S OWN: 64rem, 55rem and 47.5rem, in that order, with the
   narrowest padding the source used for the console frame. */
@media(max-width:64rem){

}
@media(max-width:55rem){
  .collection-browser{grid-template-columns:minmax(0,1fr)}
  .collection-browser-index{max-height:none;overflow-y:visible;padding-right:0;padding-bottom:12px;border-right:0;border-bottom:1px solid var(--line)}
}
@media(max-width:47.5rem){


  .collection-page-row--outside{display:contents}
  .collection-scanner{padding:8px}

}
@media(max-width:40rem){

}
@media(max-width:26rem){

}

/* ── the discovery controls, the search box and the strip ─────────────────── */

/* THE CONTROL ROW IS A REGION THE CONTRACT ADDRESSES BY ID, and the layout is the kit's own
   wrapping row: the panel owns the controls, this owns where they sit. */


/* THE SEARCH BOX HAS NO VISIBLE LABEL: the placeholder is the word a reader sees and the
   accessible name is the same word, exactly as the UI3 box drew it. The INPUT CARRIES NO CLASS -
   it is styled through its own box, which is how the kit's other fields are drawn - and the box
   takes the free space beside the controls. */
.collection-search{flex:1 1 260px;min-width:0}
.collection-search input{width:100%;padding:10px 12px;background:var(--panel);border:1px solid var(--line);color:var(--ink);font:13px var(--mono)}

/* THE STRIP IS THE CHIPS AND THE COUNT: the chips on the left, the count on the right. A count
   the caller does not name draws nothing, which is the tag view's own shape. */



/* A CHIP PRESS IS A PILL THAT IS ALSO A CONTROL, so it takes the pill's own look and adds only
   what a press needs: a pointer, a raised face, and the pressed state. */



/* THE PAIR IS A REGION WITH THE KIT'S OWN STACK, because what it holds is the caller's: the
   state carriers, the strip and the browser, in that order. */
.collection-pair{display:grid;gap:16px;min-width:0}

/* ── the record row ───────────────────────────────────────────────────────── */

/* A RECORD IS ONE GRID ROW: its mark, its facts, and its own reading on the right. The frame is
   drawn for all three forms (a link, a press, the facts alone), so a record that cannot be
   opened reads as the row it is rather than as a missing control. */

.collection-record{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:baseline;width:100%;min-width:0;padding:15px 12px;text-align:left;background:var(--panel);border:1px solid var(--line)}
a.collection-record:hover,button.collection-record:hover{background:var(--raised)}
.collection-record[data-current=true]{border-color:var(--amber)}
.collection-record--still{background:none;border:0;padding-left:0;padding-right:0}

.collection-record-body{display:grid;gap:5px;min-width:0}

.collection-record-title{font:700 19px var(--display);letter-spacing:.02em;overflow-wrap:anywhere}

.collection-record-summary{font-size:12px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}



/* THE READING IS A BAR. --collection-pct is the caller's own percentage, already clamped by the
   drawing, and the fill's minimum width is the two pixels that make a one-percent reading
   visible at all. */







@media(max-width:47.5rem){
  /* A NARROW WINDOW DROPS THE THIRD COLUMN: the reading goes UNDER the facts rather than beside
     them, and the search box takes the whole row above the controls. */
  .collection-record{grid-template-columns:auto minmax(0,1fr)}

  .collection-search{flex:1 1 100%}
}

/* entity_representation.css — the typed entity-representation layer's own rules
   (TASK-2403.64). One sheet per migration round keeps four agents out of one tail:
   compileStylesheet() composes every embedded *.css except theme.css, in file-name
   order, with components.css last, so these IS the kit's rules and the compiled
   sheet the class guards read carries them.
   Every class below is drawn by entity_representation.go and nothing else. */














.entity-dossier{border:1px solid var(--line);background:var(--bg);padding:20px;display:flex;flex-direction:column;gap:20px;min-width:0}






.entity-dossier-body{display:flex;flex-direction:column;gap:6px;min-width:0}

.repairjobs-session { border: 1px solid var(--color-green-500, #2a8b65); padding: 1.5rem; min-width: 0; }
.repairjobs-session-head { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.repairjobs-session-head > div { min-width:0; }
.repairjobs-session-head small { display:block; overflow-wrap:anywhere; }
.repairjobs-session-head button { flex:none; white-space:nowrap; padding:.5rem; }
.repairjobs-session-head h2 { margin: .5rem 0; }
.repairjobs-session-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr); gap: 1.5rem; }
.repairjobs-stage { position: relative; min-height: 34rem; overflow: hidden; background: #080d0d; }
.repairjobs-stage canvas { display: block; }
.repairjobs-telemetry { display: grid; gap: 1rem; align-content: start; }
.repairjobs-telemetry > div { display: grid; gap: .25rem; border-bottom: 1px solid currentColor; padding-bottom: .6rem; }
.repairjobs-telemetry span { font-size: .75rem; }
.repairjobs-telemetry strong { overflow-wrap: anywhere; }
.repairjobs-telemetry button, .repairjobs-session-head button { min-height: 2.75rem; }
.repairjobs-controls { display:flex; flex-wrap:wrap; gap:.75rem; align-items:end; padding:1rem 0; }
.repairjobs-controls label { display:grid; gap:.3rem; font:10px var(--mono); letter-spacing:.06em; }
.repairjobs-controls input,.repairjobs-controls select { min-height:2.75rem; background:var(--panel); color:var(--ink); border:1px solid var(--line); padding:.4rem .6rem; max-width:100%; }
.repairjobs-pager { display:flex; justify-content:space-between; gap:1rem; padding:.8rem 0; }
.repairjobs-pager a[aria-disabled=true] { opacity:.45; pointer-events:none; }
.repairjobs-group { font:11px var(--mono); color:var(--muted); overflow-wrap:anywhere; }
.repairjobs-avatar { width:3rem; height:4rem; object-fit:contain; flex:none; }
.repairjobs-avatar-large { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.repairjobs-avatar-missing { display:inline-flex; align-items:center; max-width:6rem; font:9px var(--mono); color:var(--muted); }
.repairjobs-crew { list-style:none; padding:0; display:grid; gap:.4rem; }
.repairjobs-crew li { display:flex; justify-content:space-between; gap:.5rem; border-top:1px solid var(--line); padding:.4rem 0; font:11px var(--mono); }
.repairjobs-crew li span { text-align:right; }
@media (max-width: 800px) { .repairjobs-session-grid { grid-template-columns: minmax(0, 1fr); } .repairjobs-stage { min-height: 36rem; } }
@media (max-width: 390px) { .repairjobs-session { padding: .75rem; } .repairjobs-stage { min-height: 40rem; } }

/* shell_chrome.css — THE SHELL CHROME'S OWN RULES (TASK-2403.68).
   This round's sheet, one sheet per migration round so four agents are not editing one tail.
   compileStylesheet's composeBase() concatenates every embedded *.css except theme.css, in
   file-name order, with components.css LAST, so these ARE the kit's rules and the compiled
   sheet the class guards read (ui4.ConsumerFiles()["ui4.css"]) carries them.

   WHAT IS HERE, AND WHY IT IS HERE RATHER THAN IN components.css. Every class below is drawn
   by shell_chrome.go — the shell regions the ENGINE answers rather than a document: the
   transport's health chip, the toast a press with no region reports through, and the dialog
   body a sheet press swaps in. They are drawn in FRAGMENT answers and live frames, not on a
   route, which is why they had no rules anywhere: the class guards walk the documents, so a
   fragment-only class can be drawn with no rule behind it and every test stays green. The
   ticket's own acceptance asks for the rule anyway, and it is right to: the frame lands in a
   document, and an element at browser defaults is not a shipped look.

   THE LOOKS ARE THE KIT'S OWN TOKENS, taken from the shapes the shared sheet already draws:
   the chip is .pill's geometry (nine-pixel mono, tracked, one hairline border), the toast is
   .panel's frame over the --raised surface, and the dialog body is the .panel/.panel-head
   pair the kit's own dialogs use. Only the CHROME region has no rule: it carries no class at
   all in either kit, because it is an empty region whose identity is its id. */

/* THE TRANSPORT'S CHIP. It sits in the top bar beside the wordmark and the search, so it is
   the smallest label the sheet draws: nine pixels of tracked mono, one hairline, and the
   colour of the state. data-health IS the contract runtime.js writes, so the three states are
   three attribute selectors rather than three classes. */
.stream-health{display:inline-block;border:1px solid var(--line);color:var(--muted);padding:3px 8px;font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.stream-health[data-health="connected"]{border-color:var(--green);color:var(--green)}
.stream-health[data-health="down"]{border-color:var(--red);color:var(--red)}

/* THE TOAST. It is appended to the document's tray (#toasts), which the shell's own envelope
   places; this rule is the line's own box: the raised surface, the kit's border, and the
   reading face, because a toast states what happened and a reader has moments to read it. */
.toast{border:1px solid var(--line);background:var(--raised);color:var(--ink);padding:12px 14px;font:13px/1.5 var(--body)}

/* THE DIALOG BODY a sheet press swaps in. .modal-body is the REGION (the engine's fragment
   answers it and htmx resolves the press's target against it); the head, the paragraphs and
   the foot are the body's own three rows. A paragraph is capped at a readable measure, which
   is the same 80-character cap the kit's .note carries. */

.modal-title{margin:0;font:700 21px var(--display);letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}


.modal-body{display:grid;gap:12px;min-width:0;padding:16px 0}



/* THE DIALOG HOST, and the tray a toast appends to. Both are the shell's own furniture rather
   than any surface's: the dialog is empty in the document and the answer fills its body, and
   the tray is empty until a press that owns no region reports a line. The dialog's own box and
   its backdrop are the browser's, so only the box is set here - the same three properties the
   UI3 shell's `dialog` rule carried, in this kit's tokens. */
.modal{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:20px;max-width:min(720px,calc(100vw - 24px))}
.modal::backdrop{background:#000b}
.toasts{position:fixed;right:20px;bottom:20px;z-index:99;display:grid;gap:8px;max-width:min(400px,90vw)}

/* shift_report.css — the SHIFT REPORT's ranked work list, and the development workbench.
 *
 * TASK-2403.67. Its own file, because components.css is shared and three other rounds are
 * appending to it at the same time; composeBase() concatenates every embedded sheet except
 * theme.css in file-name order, so a rule here is a rule the compiled ui4.css carries and
 * the class guard sees.
 *
 * WHAT THIS REPLACES. The report's briefing was drawn from ui3.PriorityItem, ui3.Metrics,
 * ui3.Standings, ui3.RetryTile and ui3.Bar, and the dev bench from ui3.Card, ui3.PostForm and
 * ui3.Input. Those classes are UI3's and die with that package; these are the kit's own.
 *
 * THE TONE OF A STATE IS THE POINT, not the border. action is amber (a decision is waiting),
 * information is blue (true, nothing to press), unavailable is red (an owner did not answer -
 * never a zero), empty is dim (the owner answered, and the answer is nothing).
 */

.workband{padding:22px 0 18px;border-bottom:1px solid var(--line)}
.workband h1{font-size:34px;margin-top:6px}
.workband .quiet-note{padding-top:8px}



.priorities{list-style:none;margin:0;padding:0;display:grid;gap:10px}

.priority{display:grid;grid-template-columns:46px minmax(0,1fr) auto;grid-template-areas:"rank summary state" "rank detail detail" "rank actions actions";gap:6px 16px;padding:16px 18px;border:1px solid var(--soft-line);border-left:3px solid var(--dim);background:var(--panel)}






.priority--action{border-left-color:var(--amber)}

.priority--information{border-left-color:var(--blue)}

.priority--unavailable{border-left-color:var(--red)}

.priority--empty{border-left-color:var(--dim)}


.metrics{display:flex;gap:22px;flex-wrap:wrap}
.metric{min-width:56px}






.flow{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:5px 0;font:11px var(--mono)}
.flow--cyan{color:var(--blue)}





.flow-amount{color:var(--muted)}


/* THE METER IS GEOMETRY AND A NUMBER AT ONCE: the bar shows the share and the attributes
 * state it, so a full queue reads as 100 to a reader who never sees the bar. */
.meter{display:grid;gap:4px;margin:6px 0 0}










/* A FAILED READING'S OWN TILE. It is red, it names the signal, and it carries the press that
 * asks the owner again - the region it swaps is the reading's own, so the tile is text and a
 * button rather than a link to another address. */






.workbench-card{display:grid;gap:16px}
.workbench-form{display:grid;gap:14px}
.workbench-field{display:grid;gap:6px;font:10px var(--mono);letter-spacing:.12em;color:var(--muted)}
.workbench-input{width:100%;padding:10px 12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:12px var(--mono)}

/* TASK-2391.2: Operations board, from the later Python-hosted variant A.
 * The art is explicitly illustrative; results and readings come from owners.
 */
#shift-report { min-width: 0; color: var(--ink); }
#shift-report .shift-label { font: 10px/1.5 var(--mono); letter-spacing: .12em; color: var(--muted); }
#shift-report .shift-pagehead { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
#shift-report .shift-pagehead h1 { margin: 7px 0 4px; font: 700 43px/1 var(--display); letter-spacing: .01em; }
#shift-report .shift-pagehead h1 span { color: var(--muted); }
#shift-report .shift-pagehead p:not(.shift-label) { color: var(--muted); font-size: 12px; }
#shift-report .shift-latest { display: grid; gap: 4px; text-align: right; }
#shift-report .shift-latest strong { font: 500 22px/1.2 var(--display); white-space: nowrap; }
#shift-report .shift-layout { display: grid; grid-template-columns: minmax(0, 1fr) 272px; gap: 24px; align-items: start; }
#shift-report .shift-primary, #shift-report .shift-context { min-width: 0; }
#shift-report .shift-feature { position: relative; min-height: 325px; overflow: hidden; border-top: 2px solid #89908f; background: #171a1c; }
#shift-report .shift-feature-art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; filter: saturate(.16) brightness(.78); }
#shift-report .shift-feature:after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #080a0be8 0%, #080a0bb0 45%, #080a0b1c 100%), linear-gradient(0deg, #101314 0%, transparent 52%); }
#shift-report .shift-feature-content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: start; min-height: 325px; padding: 25px 28px 28px; }
#shift-report .shift-feature-top { width: 100%; display: flex; justify-content: space-between; gap: 12px; }
#shift-report .shift-feature-top .shift-label:first-child { color: var(--ink); }
#shift-report .shift-feature h2 { max-width: 540px; margin: 37px 0 13px; font: 700 clamp(38px, 4vw, 61px)/.97 var(--display); letter-spacing: -.02em; text-transform: uppercase; }
#shift-report .shift-feature-content > p { max-width: 360px; color: #c8cccb; font-size: 13px; line-height: 1.6; }
#shift-report .shift-feature-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin-top: auto; padding-top: 22px; }
#shift-report .shift-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 26px; min-height: 44px; padding: 10px 16px; border: 1px solid #575c5d; background: #242729; font: 700 15px/1.2 var(--display); letter-spacing: .04em; white-space: nowrap; }
#shift-report .shift-button:hover { background: #34393b; }
#shift-report .shift-button-primary { border-color: var(--amber); background: var(--amber); color: #17191a; }
#shift-report .shift-button-primary:hover { background: #f4c46d; color: #17191a; }
#shift-report .shift-art-note { position: absolute; right: 17px; bottom: 14px; z-index: 1; font: 8px/1.2 var(--mono); letter-spacing: .08em; color: #c6c8c5; }
#shift-report .shift-damage-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-height: 103px; border: 1px solid var(--line); border-top: 0; background: #1b1d1e; }
#shift-report .shift-damage-item { min-width: 0; padding: 14px 19px 16px; }
#shift-report .shift-damage-item + .shift-damage-item { border-left: 1px solid var(--line); }
#shift-report .shift-damage-item header { display: flex; align-items: center; gap: 9px; min-width: 0; }
#shift-report .shift-damage-item header img { width: 18px; height: 18px; object-fit: contain; }
#shift-report .shift-damage-item header strong { font: 700 16px/1 var(--display); }
#shift-report .shift-damage-item header small { margin-left: auto; color: var(--muted); font: 8px/1 var(--mono); }
#shift-report .shift-damage-item p { display: flex; align-items: baseline; gap: 5px; margin: 10px 0 9px; }
#shift-report .shift-damage-item p strong { font: 500 25px/1 var(--display); }
#shift-report .shift-damage-item[data-known=false] p strong { color: var(--muted); font: 700 12px/1.2 var(--display); letter-spacing: .04em; }
#shift-report .shift-damage-item p span { color: var(--muted); font: 8px var(--mono); }
#shift-report .shift-damage-bar { height: 3px; background: #353a3b; }
#shift-report .shift-damage-bar span { display: block; height: 100%; background: #d9dad2; }
#shift-report .shift-damage-item[data-faction=BC] .shift-damage-bar span { background: var(--blue); }
#shift-report .shift-damage-item[data-faction=RM] .shift-damage-bar span { background: var(--red); }
#shift-report .shift-damage-missing { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 5px 18px; padding: 17px 20px; }
#shift-report .shift-damage-missing > .shift-label { grid-column: 1 / -1; }
#shift-report .shift-damage-missing strong { font: 700 22px/1.1 var(--display); }
#shift-report .shift-damage-missing p { color: var(--muted); font-size: 11px; }
#shift-report .shift-text-button, #shift-report .shift-text-link { padding: 0; color: var(--ink); font: 700 13px/1.4 var(--display); letter-spacing: .05em; text-align: left; }
#shift-report .shift-text-button:hover, #shift-report .shift-text-link:hover { color: var(--amber); }
#shift-report #battle-evidence:not(:empty) { margin-top: 14px; padding: 16px; border-top: 1px solid var(--line); background: var(--panel); }
#shift-report .battle-evidence h2 { font-size: 20px; }
#shift-report .battle-evidence p { margin-top: 7px; color: var(--muted); font-size: 12px; }
#shift-report .shift-damage { display: flex; flex-wrap: wrap; gap: 24px; margin: 12px 0; }
#shift-report .shift-damage strong { display: block; font: 700 24px var(--display); }
#shift-report .shift-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 47px; border-bottom: 1px solid var(--line); }
#shift-report .shift-section-head h2 { font: 700 21px/1.2 var(--display); text-transform: uppercase; }
#shift-report .shift-context { display: grid; gap: 24px; }
#shift-report .shift-order-primary { display: grid; align-content: start; gap: 8px; min-height: 194px; margin-top: 0; padding: 21px 20px 18px; border-top: 2px solid var(--amber); background: #222526; }
#shift-report .shift-order-primary > strong { font: 700 30px/1 var(--display); }
#shift-report .shift-order-primary p { color: var(--muted); font-size: 12px; line-height: 1.55; }
#shift-report .shift-order-primary .shift-button { margin-top: auto; }
#shift-report .shift-order-clear { min-height: 150px; border-top-color: var(--line); }
#shift-report .shift-order-clear > strong { font-size: 23px; }
#shift-report .shift-order-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 72px; border-bottom: 1px solid var(--line); }
#shift-report .shift-order-row strong { display: block; font: 700 17px/1.2 var(--display); }
#shift-report .shift-order-row small { display: block; margin-top: 4px; color: var(--muted); font: 9px var(--mono); }
#shift-report .shift-order-row > span:last-child { color: var(--amber); }
#shift-report .shift-field-row { padding: 13px 0; border-bottom: 1px solid var(--line); }
#shift-report .shift-field-row > strong { display: block; margin: 8px 0; font: 600 17px/1.25 var(--display); }
#shift-report .shift-field-row[data-state=UNAVAILABLE] > strong { color: var(--red); }
#shift-report .shift-field-row .shift-text-link { display: inline-block; margin-top: 8px; }
#shift-report .shift-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 12px 0 0; }
#shift-report .shift-metrics dt { color: var(--muted); font: 9px var(--mono); }
#shift-report .shift-metrics dd { margin: 3px 0 0; font: 700 25px/1 var(--display); }
#shift-report .shift-live-phase { margin: 12px 0; font: 700 18px/1.15 var(--display); text-transform: uppercase; }
#shift-report .shift-factions { display: grid; gap: 7px; margin: 10px 0 15px; }
#shift-report .shift-factions > div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--soft-line); padding-bottom: 6px; }
#shift-report .shift-factions dt { font: 700 15px var(--display); }
#shift-report .shift-factions dd { margin: 0; color: var(--muted); font: 9px/1.5 var(--mono); text-align: right; }
#shift-report .shift-queues { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-bottom: 15px; }
#shift-report .shift-queue { display: grid; gap: 3px; min-width: 0; }
#shift-report .shift-queue > span { color: var(--muted); font: 8px var(--mono); }
#shift-report .shift-queue strong { font: 700 23px/1 var(--display); }
#shift-report .shift-queue small { font: 8px var(--mono); }
#shift-report .shift-queue meter { width: 100%; height: 4px; accent-color: var(--blue); }
#shift-report .shift-queue-unavailable { margin: 8px 0; color: var(--muted); font: 10px/1.5 var(--mono); }
#shift-report .shift-live > .shift-text-link { display: inline-block; margin-top: 6px; }
#shift-report .shift-activity { margin-top: 21px; }
#shift-report .shift-feed-scope { display: flex; justify-content: space-between; gap: 12px; margin-top: 4px; padding: 12px 0; border-bottom: 1px solid var(--line); color: var(--muted); font: 10px var(--mono); letter-spacing: .08em; }
#shift-report .shift-feed-scope span:first-child { color: var(--ink); border-bottom: 2px solid var(--ink); margin-bottom: -13px; padding-bottom: 10px; }
#shift-report .activity-story { display: grid; grid-template-columns: 47px 24px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 74px; border-bottom: 1px solid var(--line); padding: 10px 2px; }
#shift-report .activity-story time { color: var(--muted); font: 10px var(--mono); }
#shift-report .shift-story-logo { width: 18px; height: 18px; object-fit: contain; }
#shift-report .shift-story-mark { color: var(--muted); font: 18px var(--display); }
#shift-report .shift-story-copy { min-width: 0; }
#shift-report .shift-story-copy h3 { font: 700 17px/1.2 var(--display); }
#shift-report .shift-story-copy p { margin-top: 3px; color: var(--muted); font-size: 11px; }
#shift-report .shift-story-copy > a { margin-right: 8px; color: var(--muted); font: 9px var(--mono); text-decoration: underline; }
#shift-report .shift-story-evidence { max-width: 105px; color: var(--muted); font: 10px/1.3 var(--display); letter-spacing: .03em; text-align: right; }
#shift-report .shift-story-arrow { color: var(--muted); }
#shift-report .shift-feed-state { padding: 24px 0; color: var(--muted); }
#shift-report #more-activity { display: inline-block; margin-top: 13px; }
@media (max-width: 1100px) {
  #shift-report .shift-layout { grid-template-columns: minmax(0, 1fr) 240px; gap: 20px; }
  #shift-report .shift-damage-item { padding-inline: 12px; }
  #shift-report .shift-damage-missing { grid-template-columns: 1fr; }
  #shift-report .shift-damage-missing > .shift-label { grid-column: auto; }
}
@media (max-width: 900px) {
  #shift-report .shift-layout { grid-template-columns: minmax(0, 1fr); }
  #shift-report .shift-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #shift-report .shift-live { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  #shift-report .shift-pagehead { display: block; margin-bottom: 20px; }
  #shift-report .shift-pagehead h1 { font-size: 35px; }
  #shift-report .shift-pagehead p:not(.shift-label) { font-size: 11px; }
  #shift-report .shift-latest { display: none; }
  #shift-report .shift-feature, #shift-report .shift-feature-content { min-height: 325px; }
  #shift-report .shift-feature-content { padding: 21px; }
  #shift-report .shift-feature h2 { font-size: 44px; margin-top: 37px; }
  #shift-report .shift-feature-content > p { font-size: 12px; }
  #shift-report .shift-feature-art { object-position: 58% center; }
  #shift-report .shift-feature-top .shift-label:last-child { display: none; }
  #shift-report .shift-art-note { font-size: 7px; }
  #shift-report .shift-damage-item { padding: 13px 9px; }
  #shift-report .shift-damage-item header { flex-wrap: wrap; gap: 3px 6px; }
  #shift-report .shift-damage-item header small { width: 100%; margin-left: 0; }
  #shift-report .shift-damage-item p { display: block; }
  #shift-report .shift-damage-item p strong { font-size: 22px; }
  #shift-report .shift-damage-item p span { display: block; }
  #shift-report .shift-context { grid-template-columns: minmax(0, 1fr); }
  #shift-report .activity-story { grid-template-columns: 37px 20px minmax(0, 1fr); gap: 7px; }
  #shift-report .shift-story-evidence, #shift-report .shift-story-arrow { grid-column: 3; justify-self: start; text-align: left; }
  #shift-report .shift-feed-scope { font-size: 9px; }
}
@media (max-width: 360px) {
  #shift-report .shift-feature-content { padding: 18px 15px; }
  #shift-report .shift-feature h2 { font-size: 38px; }
  #shift-report .shift-feature-actions { gap: 9px; }
  #shift-report .shift-art-note { right: 10px; }
}

/* Watch index and collection compositions. Keep these selectors under Watch roots. */
.watch-overview{display:grid;gap:22px;min-width:0}
.watch-overview-head{display:grid;gap:8px;border-bottom:1px solid var(--line);padding-bottom:18px}
.watch-overview-head h1{font:700 clamp(54px,8vw,112px)/.88 var(--display);letter-spacing:-.035em}
.watch-overview-head h1 span{color:var(--amber)}
.watch-overview-head>p:last-child{color:var(--muted);font-size:13px;line-height:1.6}
.watch-overview-stage{position:relative;display:flex;align-items:flex-end;min-height:360px;overflow:hidden;border:1px solid var(--line);background:#101717}
.watch-overview-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 43%;opacity:.72}
.watch-overview-stage:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,16,17,.97),rgba(10,16,17,.72) 42%,rgba(10,16,17,.1) 100%),linear-gradient(0deg,rgba(10,16,17,.85),transparent 60%)}
.watch-overview-stage-copy{position:relative;z-index:1;display:grid;gap:12px;max-width:570px;padding:38px}
.watch-overview-stage-copy h2{font:700 clamp(32px,4.2vw,60px)/.96 var(--display);letter-spacing:-.01em}
.watch-overview-stage-copy p{color:#c2cbca;font-size:12px;line-height:1.65;max-width:48ch}
.watch-overview-stage-copy .watch-button{justify-self:start}
.watch-overview-stage-copy .watch-button span{margin-left:25px}
.watch-overview-art-note{position:absolute;right:16px;bottom:14px;z-index:1;font:9px var(--mono);letter-spacing:.08em;color:#d0d5d3}
.watch-overview-directory{display:grid;gap:10px}
.watch-overview-directory>header{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding-bottom:9px}
.watch-overview-directory h2{font:700 22px var(--display)}
.watch-overview-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.watch-overview-links>a{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0;padding:19px;background:var(--panel);text-decoration:none;color:inherit}
.watch-overview-links>a:hover{background:var(--raised)}
.watch-overview-links>a>span:nth-child(2){display:grid;gap:5px;min-width:0}
.watch-overview-links strong{font:700 19px var(--display);letter-spacing:.02em}
.watch-overview-links small{font:10px/1.5 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.watch-overview-number{color:var(--amber);font:700 18px var(--display)}
.watch-overview-links>a>span:last-child{color:var(--amber)}
.watch-overview-links>a:last-child:nth-child(odd){grid-column:1/-1}

.collection[data-collection="top-builds"] .watch-builds-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,42%);min-height:250px;border:1px solid var(--line);background:linear-gradient(110deg,#1c2728,#141a1b);overflow:hidden}
.collection[data-collection="top-builds"] .watch-builds-feature-copy{display:grid;align-content:center;justify-items:start;gap:11px;padding:26px;min-width:0}
.collection[data-collection="top-builds"] .watch-builds-feature-rank{display:flex;align-items:baseline;gap:16px;min-width:0}
.collection[data-collection="top-builds"] .watch-builds-feature-rank>span{font:700 52px/.9 var(--display);color:var(--amber)}
.collection[data-collection="top-builds"] .watch-builds-feature-rank strong{font:700 clamp(28px,3vw,44px)/.96 var(--display);overflow-wrap:anywhere}
.collection[data-collection="top-builds"] .watch-builds-feature-copy p{font:11px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.collection[data-collection="top-builds"] .watch-builds-feature-rating{display:flex;align-items:baseline;gap:12px;border-top:1px solid var(--line);padding-top:12px;width:100%}
.collection[data-collection="top-builds"] .watch-builds-feature-rating strong{font:700 29px var(--display);color:var(--amber)}
.collection[data-collection="top-builds"] .watch-builds-feature-rating span{font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}
.collection[data-collection="top-builds"] .watch-builds-feature-art{position:relative;display:grid;place-items:center;border-left:1px solid var(--line);background:radial-gradient(ellipse at 50% 42%,#304143,#101617 72%);color:var(--muted);font:10px var(--mono)}
.collection[data-collection="top-builds"] .watch-builds-feature-art img{width:100%;height:250px;object-fit:contain;object-position:center;padding:12px}
.collection[data-collection="top-builds"] .watch-builds-feature-art small{position:absolute;right:10px;bottom:9px;font:8px var(--mono);letter-spacing:.06em;color:#d5d9d7;background:#151a1ba8;padding:4px}
.collection[data-collection="top-builds"] .watch-build-rating-bar{height:3px;margin-top:7px;background:#394142;overflow:hidden}
.collection[data-collection="top-builds"] .watch-build-rating-bar span{display:block;height:100%;background:var(--amber)}
.collection[data-collection="top-builds"] .build-row{grid-template-columns:48px minmax(150px,1fr) minmax(0,460px) auto;gap:16px;padding:17px 10px}
.collection[data-collection="top-builds"] .build-facts{grid-template-columns:minmax(90px,1.2fr) minmax(54px,.6fr) minmax(70px,.9fr) minmax(90px,1fr);gap:14px}
.collection[data-collection="top-builds"] .build-fact dd{font-size:11px;line-height:1.4}

.collection[data-collection="your-battles"] .history-row{border-left:3px solid var(--line);padding:16px 14px;background:var(--panel);margin-bottom:5px}
.collection[data-collection="your-battles"] .watch-history-summary{display:flex;align-items:baseline;gap:22px;padding:18px 14px;margin-bottom:6px;border:1px solid var(--line);background:#192122}
.collection[data-collection="your-battles"] .watch-history-summary>span{font:9px var(--mono);letter-spacing:.12em;color:var(--muted);margin-right:auto}
.collection[data-collection="your-battles"] .watch-history-summary strong{font:700 24px var(--display);color:var(--amber)}
.collection[data-collection="your-battles"] .watch-history-summary small{font:9px var(--mono);color:var(--muted)}
.collection[data-collection="your-battles"] .history-row:has(.history-result){border-left-color:var(--amber)}
.collection[data-collection="your-battles"] .history-row .history-title{font-size:23px}
.collection[data-collection="your-battles"] .empty-block{min-height:260px;display:grid;align-content:center;justify-items:start;gap:10px;padding:28px;border:1px solid var(--line);background:linear-gradient(120deg,#172122,#111617)}
.collection[data-collection="your-battles"] .empty-title{font:700 32px var(--display)}
.collection[data-collection="your-battles"] .empty-copy{max-width:52ch}

@media(max-width:1050px){
  .collection[data-collection="top-builds"] .build-row{grid-template-columns:44px minmax(0,1fr)}
  .collection[data-collection="top-builds"] .build-facts{grid-column:1/-1}
  .collection[data-collection="top-builds"] .build-row .button{grid-column:1/-1;justify-self:start}
}
@media(max-width:680px){
  .watch-overview-stage{min-height:370px}
  .watch-overview-stage:after{background:linear-gradient(0deg,rgba(10,16,17,.98),rgba(10,16,17,.52) 66%,rgba(10,16,17,.22))}
  .watch-overview-stage-copy{padding:22px 18px 35px}
  .watch-overview-art-note{bottom:7px;right:8px;font-size:7px}
  .watch-overview-links{grid-template-columns:minmax(0,1fr)}
  .collection[data-collection="top-builds"] .watch-builds-feature{grid-template-columns:minmax(0,1fr)}
  .collection[data-collection="top-builds"] .watch-builds-feature-art{border-left:0;border-top:1px solid var(--line);min-height:150px}
  .collection[data-collection="top-builds"] .watch-builds-feature-art img{height:190px}
  .collection[data-collection="top-builds"] .build-row{grid-template-columns:38px minmax(0,1fr)}
  .collection[data-collection="top-builds"] .build-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .collection[data-collection="your-battles"] .watch-history-summary{gap:10px;padding:12px 9px}
  .collection[data-collection="your-battles"] .watch-history-summary strong{font-size:19px}
}

*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--body)}button,input{font:inherit}button,a,input{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit;border:0;background:none}button:disabled{cursor:default;color:var(--dim)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--amber);outline-offset:4px}button:hover:not(:disabled),a:hover{color:white}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:700}h1{font-size:42px;line-height:1.05;text-transform:uppercase;letter-spacing:.01em}h2{font-size:25px;line-height:1.15}h3{font-size:21px;line-height:1.2}small,.micro{font:10px/1.6 var(--mono);letter-spacing:.08em;color:var(--muted)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.eyebrow{font:10px/1.7 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.amber{color:var(--amber)}.bc{color:var(--blue)}.rm{color:var(--red)}.zhi{color:#d9dad2}.between{display:flex;align-items:center;justify-content:space-between;gap:16px}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.logo{width:34px;height:34px;object-fit:contain}.wordmark{display:flex;align-items:center;gap:12px}.brand-symbol{font:700 31px var(--display);border:1px solid #777d7d;width:35px;height:35px;display:grid;place-items:center;line-height:1}.wordmark strong{display:block;font:700 21px/1 var(--display);letter-spacing:.04em}.wordmark small{font-size:8px;letter-spacing:.2em}.topbar{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:35px;background:#17191a}.topbar .breadcrumb{border-left:1px solid var(--line);padding-left:24px}.topbar .search{margin-left:auto;width:260px;display:flex;align-items:center;gap:12px;color:var(--muted);padding:8px 0;border-bottom:1px solid #4a5053;text-align:left}.search kbd{margin-left:auto;font:10px var(--mono);border:1px solid var(--line);padding:2px 5px}.balance{display:flex;align-items:center;gap:10px;font:12px var(--mono);white-space:nowrap}.avatar{width:32px;height:32px;display:grid;place-items:center;background:#2d3031;border:1px solid #545a5b;font:700 15px var(--display)}.workspace{display:grid;grid-template-columns:184px minmax(0,1fr);min-height:calc(100vh - 68px)}.navrail{border-right:1px solid var(--line);padding:28px 16px 85px;display:flex;flex-direction:column;gap:24px;background:#141617}.navrail .eyebrow{padding:0 12px}.navlinks{display:grid;gap:5px}.navlink{display:flex;align-items:center;gap:13px;padding:12px;text-align:left;color:#afb3b3;font:700 15px var(--display);letter-spacing:.035em;border-left:2px solid transparent;width:100%}.navlink.active{background:#282b2b;border-left-color:var(--ink);color:var(--ink)}.navlink:hover{background:#202324}.navlink .index{font:10px var(--mono);color:var(--dim);margin-left:auto}.rail-bottom{margin-top:auto;padding:20px 12px 0;border-top:1px solid var(--line)}.rail-bottom .brand-large{font:700 62px/.9 var(--display);letter-spacing:-.1em;color:#5b6261}.rail-bottom p{font:9px/1.8 var(--mono);letter-spacing:.14em;margin-top:18px;color:var(--muted)}.rail-bottom small{display:block;margin-top:30px;font-size:8px}.page{padding:28px 32px 100px;max-width:1760px;margin-inline:auto;width:100%;min-width:0}.pagehead{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.pagehead h1{margin-top:7px}.pagehead p{color:var(--muted);font-size:12px;margin-top:8px}.pagehead .head-meta{text-align:right}.pagehead .head-meta strong{display:block;font:500 22px var(--display)}.report-grid{grid-template-columns:minmax(0,1fr) 272px}.report-main,.context{min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0 13px;border-bottom:1px solid var(--line)}.section-head h2{font-size:21px;text-transform:uppercase}.section-head .eyebrow{font-size:9px}.hero{position:relative;overflow:hidden;border-top:2px solid #89908f;min-height:320px;background:#171a1c}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,11,.88),rgba(8,10,11,.12) 80%),linear-gradient(0deg,#111415,transparent 60%);pointer-events:none}.hero-top{width:100%;display:flex;justify-content:space-between;gap:20px}.tag{display:inline-flex;align-items:center;gap:7px;font:10px var(--mono);letter-spacing:.08em}.tag i{width:6px;height:6px;background:currentColor;display:inline-block}.hero h2{font-size:clamp(37px,3.5vw,62px);line-height:.97;margin:37px 0 13px;max-width:530px;text-transform:uppercase;letter-spacing:-.02em}.hero p{font-size:13px;color:#c8cccb;max-width:340px;line-height:1.6}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:12px 17px;font:700 15px/1.2 var(--display);letter-spacing:.05em;text-transform:uppercase;min-height:44px;border:1px solid #575c5d;background:#242729;white-space:nowrap}.button.primary{background:var(--amber);border-color:var(--amber);color:#191b19}.button.primary:hover{background:#f6c66f;color:#0c0e0e}.button.secondary:hover{background:#34393b}.bar{height:3px;background:#373c3e;margin-top:8px;overflow:hidden}.bar span{height:100%;display:block;background:currentColor}.context{display:flex;flex-direction:column;gap:22px}.context .section-head{padding-top:0}.message{padding-top:2px}.message p{font-size:12px;color:#c1c4c2;line-height:1.8;margin:16px 0}.message .sender{display:flex;align-items:center;gap:9px;font:700 15px var(--display)}.message .logo{width:24px;height:24px}.instrument-footer{display:flex;justify-content:space-between;gap:15px;font:8px var(--mono);letter-spacing:.07em;color:var(--muted);padding:13px 0;border-top:1px solid var(--line);margin-top:22px}.tabs{display:flex;gap:22px;padding:0;border-bottom:1px solid var(--line);overflow:auto}.tabs button{font:700 13px var(--display);letter-spacing:.06em;color:var(--muted);white-space:nowrap;padding:13px 0;border-bottom:2px solid transparent}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.feed{margin-top:10px}

/* The complete Report is the design unit. Shared utilities compile through tailwind-go. */
body{overflow-wrap:anywhere}.page{padding-bottom:48px}.hero h2{font-size:clamp(38px,3.5vw,60px)}
.tabs a{font:700 13px var(--display);white-space:nowrap;padding:13px 0;border-bottom:2px solid transparent}.tabs a[aria-current=page]{border-color:var(--ink)}
#worldfeed-items{list-style:none;margin:0;padding:0}
.quiet-note{font-size:12px;color:var(--muted);line-height:1.8;padding:16px 0}
/* THE NOTE: one caption look for the whole kit (TASK-2425.3). The owner unified the ten and
   eleven pixel variants and the muted/dim pair, so a note is ten pixel mono, muted and capped
   at eighty characters. .note was already the shared name and NOTHING defined it, which is why
   thirty one sites drew an unstyled paragraph; the eleven surface classes that restated the look
   are gone, and Note() in molecule.go draws this class. The PROSE note is not this: Copy draws
   .quiet-note in the body face. */
.note{margin:0;font:10px/1.7 var(--mono);color:var(--muted);max-width:80ch;overflow-wrap:anywhere}
.note--spaced{margin:10px 0 0}
/* THE META: one small-label look (TASK-2425.4), the sibling of .note. Six surface classes
   drew a label at 9 or 10 pixel mono, some muted and some dim, two of them tracked and three
   not. A meta line is now ten pixel mono, muted, tracked, wrapping anywhere, and Meta() draws
   it. A site that is a LAYOUT rather than a caption keeps its own class for the layout and
   carries this one for the type. */
.meta{margin:0;font:10px/1.7 var(--mono);color:var(--muted);letter-spacing:.08em;overflow-wrap:anywhere}

.navlink[aria-disabled=true]{opacity:.5;cursor:default}.navrail{min-width:0}.navlink .index{display:none}
.search-form{margin-left:auto;position:relative;width:min(290px,30vw)}.search-input{border:0;border-bottom:1px solid #515758;background:transparent;color:var(--ink);padding:10px 0;width:100%;font:11px var(--mono)}.search-submit{position:absolute;right:0;top:4px;padding:6px;background:#17191a}.search-input{padding-right:35px}#world-search-quick:not(:empty){position:absolute;top:100%;right:0;min-width:280px;max-width:calc(100vw - 32px);background:#202527;border:1px solid var(--line);padding:10px;z-index:20;max-height:65vh;overflow:auto}.account{position:relative}.account summary{cursor:pointer;font:11px var(--mono);white-space:nowrap}.account-menu{position:absolute;right:0;top:32px;background:#202527;border:1px solid var(--line);padding:16px;min-width:180px;z-index:21;display:grid;gap:15px;font:12px var(--mono)}
.health-meter::-webkit-progress-bar{background:#373c3e}.health-meter::-webkit-progress-value{background:currentColor}.health-meter::-moz-progress-bar{background:currentColor}.stream-state{font:9px var(--mono);color:var(--muted)}.connection-lost #live-battle:before{content:'RECONNECTING — LAST RECEIVED READING';display:block;background:#30291d;color:var(--amber);font:10px var(--mono);padding:10px}.tag i{border-radius:50%}.evidence{min-width:0}.evidence h3{font-size:18px}.evidence .eyebrow{font-size:8px}.skip{position:fixed;top:-100px;z-index:100;background:var(--amber);color:black;padding:15px}.skip:focus{top:10px}.empty-activity{padding:25px 0;color:var(--muted)}.new-story{animation:arrive 1.6s ease-out}@keyframes arrive{from{background:#e8b25428}to{background:transparent}}
@media(min-width:1650px){.page{padding:35px 45px 65px}.report-grid{grid-template-columns:minmax(0,1fr) 320px;gap:32px}.hero,.hero-content{min-height:365px}}
@media(max-width:1200px){.workspace{grid-template-columns:154px minmax(0,1fr)}.navrail{padding-inline:10px}.navlink{gap:9px;padding-inline:9px}.page{padding-inline:23px}.report-grid{grid-template-columns:minmax(0,1fr) 235px;gap:20px}.topbar{gap:22px;padding-inline:20px}.topbar .breadcrumb{display:none}}
@media(max-width:960px){.workspace{grid-template-columns:64px minmax(0,1fr)}.navrail{padding:22px 8px}.navrail>.eyebrow,.navlink .label,.rail-bottom{display:none}.navlink{justify-content:center;padding:13px 0}.report-grid{grid-template-columns:minmax(0,1fr) 210px;gap:18px}.page{padding-inline:20px}.hero h2{font-size:40px}.topbar{gap:18px}.account .wallet-label{display:none}}
@media(max-width:680px){body{font-size:13px}.topbar{height:auto;min-height:60px;padding:12px 15px;gap:15px;flex-wrap:wrap}.wordmark strong{font-size:18px}.wordmark small{font-size:7px}.brand-symbol{width:28px;height:28px;font-size:25px}.account{margin-left:auto}.search-form{width:100%;order:3}.workspace{display:block}.navrail{display:none}.page{padding:22px 17px 45px}.pagehead{margin-bottom:20px}.pagehead h1{font-size:35px}.head-meta{display:none}.report-grid{display:flex;flex-direction:column;gap:26px}.hero,.hero-content{min-height:325px}.hero h2{font-size:44px}.hero p{font-size:12px}.hero-top .micro{display:none}.context{gap:22px}.tabs{gap:21px}.instrument-footer{font-size:7px}}
/* THE SMALLEST SCREENS NEED A NARROWER GUTTER THAN THE COMMON PHONE ONE. At a 320px
   window the layout viewport is 305px (the scrollbar is visible by design), so the 17px
   gutter above left the report's main column at 271px - narrower than the 280px floor the
   report must clear. 10px leaves it 285px. The breakpoint is 360px, so a 390px phone keeps
   the 17px gutter: only widths that would otherwise fall short are tightened. */
@media(max-width:360px){.page{padding-inline:10px}}

.mobile-rail-toggle,.rail-backdrop{display:none}
@media(max-width:680px){
  .mobile-rail-toggle{display:flex;flex:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;border:1px solid var(--line);background:#202527;z-index:1}
  .mobile-rail-toggle span{display:block;width:100%;height:2px;background:var(--ink)}
  .rail-backdrop{display:block;position:fixed;inset:0;z-index:69;background:#050708a8;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}
  .workspace>.navrail{display:flex;position:fixed;top:0;bottom:0;left:0;z-index:70;width:min(82vw,320px);padding:26px 16px 36px;overflow-y:auto;transform:translateX(-100%);transition:transform .2s ease;box-shadow:14px 0 32px #0008}
  .workspace>.navrail>.eyebrow,.workspace>.navrail .navlink .label,.workspace>.navrail .rail-bottom{display:block}
  .workspace>.navrail .navlink{justify-content:flex-start;padding:12px}
  body[data-rail-open=true]{overflow:hidden}
  body[data-rail-open=true] .rail-backdrop{opacity:1;visibility:visible;pointer-events:auto}
  body[data-rail-open=true] .workspace>.navrail{transform:translateX(0)}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


@media(min-width:1650px){}@media(max-width:680px){}

.arena-embed-ready [data-arena-caption]{font-size:0}.arena-embed-ready [data-arena-caption]:after{content:'LIVE ARENA · LOW FX';font-size:8px}

.battle-stale:not(.connection-lost) #live-battle:before{content:'LIVE DATA DELAYED — LAST RECEIVED READING';display:block;background:#30291d;color:var(--amber);font:10px var(--mono);padding:10px}

@media(max-width:680px){}
@media(max-width:360px){}

/* Expedition dossier: one mission, its squad and its recorded return. */
.navlink[data-active=true]{background:#292d2e;border-left:2px solid var(--ink);color:var(--ink)}
.public-account{display:flex;gap:18px;font:700 14px var(--display)}
.expedition{max-width:1500px;margin-inline:auto}.exp-breadcrumb{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 30px;font:10px var(--mono);letter-spacing:.06em}.exp-breadcrumb a:hover{text-decoration:underline}
.exp-hero{position:relative;border-top:2px solid var(--muted);padding:28px 30px 30px;background:linear-gradient(120deg,#202526 0%,#171b1c 65%,#121617 100%);overflow:hidden}.exp-hero:after{content:'';position:absolute;right:-55px;top:-160px;width:440px;height:440px;border:1px solid #a1a6a810;transform:rotate(45deg);pointer-events:none}.exp-hero-top{display:flex;gap:16px;align-items:center;justify-content:space-between;position:relative;z-index:1}.exp-status{font:11px var(--mono);letter-spacing:.1em;border:1px solid #626b6e;padding:8px 12px}.exp-hero h1{font-size:clamp(40px,5.3vw,76px);line-height:1.05;max-width:1000px;margin:32px 0 12px;position:relative;z-index:1}.exp-hero p{color:var(--muted);font-size:13px;max-width:600px}.exp-identity{display:flex;align-items:center;gap:12px;margin-top:26px;font:11px var(--mono);letter-spacing:.05em}.exp-identity .logo{width:24px;height:24px}.exp-identity span:last-child{margin-left:12px;padding-left:20px;border-left:1px solid var(--line);color:var(--muted)}
.exp-layout{grid-template-columns:minmax(0,1fr) 310px;margin-top:30px;align-items:start}.exp-main,.exp-aside{min-width:0;align-content:start}.expedition .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.expedition .section-head h2{font-size:23px}.exp-members{list-style:none;padding:0;margin:0}.exp-member{display:grid;grid-template-columns:38px 76px minmax(0,1fr) auto;gap:16px;padding:22px 0;align-items:center;border-bottom:1px solid var(--soft-line)}.exp-index{font:500 23px var(--display);color:var(--dim)}.exp-member strong{font:700 21px var(--display)}.exp-member a span{color:var(--dim);font-size:16px}.exp-member a:hover{text-decoration:underline;text-underline-offset:4px}.exp-member small{display:block;font-size:8px;margin-top:4px}.exp-member-state{font:10px var(--mono);letter-spacing:.04em;color:var(--muted)}.exp-affected .exp-member-state{color:var(--red)}
.exp-credits{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));margin:0;padding:22px 0 4px}.exp-credit{padding:10px 18px;background:#191d1e;border-left:2px solid #566267}.exp-credit dt{font:9px var(--mono);color:var(--muted);letter-spacing:.08em}.exp-credit dd{font:500 39px/1.2 var(--display);margin:6px 0 0}.exp-timeline{list-style:none;margin:20px 0 0;padding:0}.exp-timeline li{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:16px;padding-bottom:24px}.exp-timeline li:not(:last-child):before{content:'';position:absolute;left:5px;top:16px;bottom:0;border-left:1px solid var(--line)}.exp-event-dot{width:11px;height:11px;margin-top:5px;border:1px solid var(--muted);background:var(--muted)}.exp-pending .exp-event-dot{background:transparent;border-style:dashed}.exp-timeline header{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}.exp-timeline h3{font-size:18px}.exp-timeline time{font:9px var(--mono);color:var(--muted)}.exp-timeline .quiet-note{padding:5px 0 0;font-size:12px}
.exp-record{padding:20px;background:#191d1e;border-top:1px solid #637074}.exp-record dl{margin:0}.exp-fact{padding:14px 0;border-bottom:1px solid var(--soft-line);display:grid;gap:6px}.exp-fact:last-child{border:0;padding-bottom:0}.exp-fact dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}.exp-fact dd{margin:0;font:700 17px var(--display)}.exp-repair{padding:20px;background:#20221f;border-top:2px solid var(--amber)}.exp-repair>.eyebrow{color:var(--amber);font-size:9px}.exp-repair h2{font-size:29px;margin-top:16px}.exp-repair .button{width:100%;font-size:14px;white-space:normal;text-align:center}.exp-repair small{display:block;font-size:8px;margin-top:12px}.exp-links{display:grid;gap:16px}.exp-links>a:not(.button){font:700 14px var(--display)}.exp-links .quiet-note{padding:0;font-size:11px}.exp-notice{padding:40px 0;max-width:660px}.exp-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){.exp-layout{grid-template-columns:minmax(0,1fr) 265px}.exp-hero{padding:24px}.exp-member{gap:10px;grid-template-columns:25px 64px minmax(0,1fr) auto}.exp-member-state{font-size:9px}}
@media(max-width:850px){.exp-layout{grid-template-columns:minmax(0,1fr)}.exp-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.exp-links{grid-column:1/-1}.exp-hero h1{font-size:48px}}
@media(max-width:520px){.exp-hero{padding:20px}.exp-hero-top{align-items:flex-start;flex-direction:column;gap:14px}.exp-hero h1{font-size:42px;margin-top:25px}.exp-breadcrumb{gap:12px;margin-bottom:22px;font-size:9px}.exp-breadcrumb .eyebrow{font-size:9px}.exp-identity{flex-wrap:wrap;gap:9px;font-size:10px}.exp-identity span:last-child{padding-left:0;margin-left:0;border:0;flex-basis:100%}.exp-aside{grid-template-columns:minmax(0,1fr)}.exp-member{grid-template-columns:24px minmax(0,1fr);gap:8px 10px}.exp-member-state{grid-column:2}.exp-member strong{font-size:21px}.expedition .section-head h2{font-size:22px}.expedition .section-head .eyebrow{font-size:9px}.exp-hero:after{display:none}.exp-record{padding:18px}.public-account{margin-left:auto;font-size:12px}}
.exp-hero-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;position:relative;z-index:1}.exp-outcome{flex-shrink:0;display:grid;gap:4px;padding-left:25px;border-left:1px solid var(--line);margin-top:20px;max-width:35%}.exp-outcome strong{font:700 36px/1.1 var(--display);text-transform:uppercase}.exp-outcome .eyebrow{font-size:8px}
@media(max-width:680px){.exp-hero-heading{display:block}.exp-outcome{padding-left:0;border-left:0;margin:14px 0 18px;max-width:none}.exp-outcome strong{font-size:28px}}
/* Expedition dossier revision 3 (TASK-2403.43): the recorded-state counts, each committed
   identity's published chassis artwork, and the credited resources' artwork or existing
   symbol. A count states what the owner recorded; a figure with no resolved media draws
   .exp-frame-missing rather than a broken image. */
.exp-outcomes{display:flex;flex-wrap:wrap;align-items:baseline;gap:26px;margin-top:24px;position:relative;z-index:1}
.exp-counts{display:flex;flex-wrap:wrap;gap:0;margin:0}
.exp-count{display:grid;gap:4px;padding:0 26px;border-left:1px solid var(--line)}
.exp-count:first-child{padding-left:0;border-left:0}
.exp-count dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.exp-count dd{margin:0;font:500 38px/1.1 var(--display)}
.exp-count dd span{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.exp-frame{width:100%;margin:0;background:#14181a;border:1px solid var(--soft-line)}
.exp-frame-image{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;background:#0f1213}
.exp-frame-missing{display:none;aspect-ratio:1/1;place-content:center;text-align:center;padding:6px;background:repeating-linear-gradient(45deg,#14181a,#14181a 8px,#171c1d 8px,#171c1d 16px)}
.exp-frame[data-media-state=missing] .exp-frame-image{display:none}
.exp-frame[data-media-state=missing] .exp-frame-missing{display:grid}
.exp-frame-missing strong{font:9px var(--mono);letter-spacing:.06em;color:var(--muted);line-height:1.6}
.exp-credit[data-media-state=available] .exp-credit-symbol{display:none}
.exp-credit-symbol,.exp-credit-art{float:left;margin-right:9px}
.exp-credit-art{width:22px;height:22px;object-fit:contain;display:block}
.exp-credit-symbol{display:grid;place-content:center;width:22px;height:22px;border:1px solid #566267;font:10px var(--mono);color:var(--muted)}
.exp-credit dd.exp-credit-record{margin:8px 0 0;font:700 11px/1.4 var(--mono);letter-spacing:.04em}
.exp-credit dd.exp-credit-record a{color:var(--muted)}
.exp-credit-record a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:520px){.exp-count{padding:0 16px}.exp-count dd{font-size:30px}.exp-member{grid-template-columns:26px 56px minmax(0,1fr);gap:8px 10px}.exp-member-state{grid-column:3}.exp-index{font-size:17px}.exp-credits{grid-template-columns:minmax(0,1fr)}}
/* Tour dossier: one committed frame, its state, its recorded service totals and its service events. */
.tour{max-width:1500px;margin-inline:auto}.tour-breadcrumb{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 30px;font:10px var(--mono);letter-spacing:.06em}.tour-breadcrumb a:hover{text-decoration:underline}
.tour-hero{position:relative;border-top:2px solid var(--muted);padding:28px 30px 30px;background:linear-gradient(120deg,#202526 0%,#171b1c 65%,#121617 100%);overflow:hidden}.tour-hero:after{content:'';position:absolute;right:-55px;top:-160px;width:440px;height:440px;border:1px solid #a1a6a810;transform:rotate(45deg);pointer-events:none}.tour-hero-top{display:flex;gap:16px;align-items:center;justify-content:space-between;position:relative;z-index:1}.tour-status{font:11px var(--mono);letter-spacing:.1em;border:1px solid #626b6e;padding:8px 12px}.tour-lost .tour-status{color:var(--red);border-color:#6b4a45}
.tour-hero-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;position:relative;z-index:1}.tour-hero h1{font-size:clamp(40px,5.3vw,76px);line-height:1.05;max-width:1000px;margin:32px 0 12px;position:relative;z-index:1}.tour-hero p{color:var(--muted);font-size:13px;max-width:600px}
.tour-outcome{flex-shrink:0;display:grid;gap:4px;padding-left:25px;border-left:1px solid var(--line);margin-top:20px;max-width:35%}.tour-outcome strong{font:700 36px/1.1 var(--display);text-transform:uppercase;color:var(--red)}.tour-outcome .eyebrow{font-size:8px;color:var(--red)}
.tour-identity{display:flex;align-items:center;gap:12px;margin-top:26px;font:11px var(--mono);letter-spacing:.05em}.tour-identity .logo{width:24px;height:24px}.tour-frame-link{margin-left:12px;padding-left:20px;border-left:1px solid var(--line);font-weight:700}.tour-frame-link:hover{text-decoration:underline}
.tour-layout{grid-template-columns:minmax(0,1fr) 310px;margin-top:30px;align-items:start}.tour-main,.tour-aside{min-width:0;align-content:start}.tour .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.tour .section-head h2{font-size:23px}
.tour-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:22px 0 8px;border-bottom:1px solid var(--soft-line)}.tour-total{display:grid;gap:7px;padding:4px 18px;border-left:1px solid var(--soft-line)}.tour-total:first-child{border-left:0;padding-left:0}.tour-total dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}.tour-total dd{margin:0;font:500 34px/1.15 var(--display)}
.tour-events{list-style:none;margin:20px 0 0;padding:0}.tour-events li{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr);gap:16px;padding-bottom:24px}.tour-events li:not(:last-child):before{content:'';position:absolute;left:5px;top:16px;bottom:0;border-left:1px solid var(--line)}.tour-event-dot{width:11px;height:11px;margin-top:5px;border:1px solid var(--muted);background:var(--muted)}.tour-event-stamp{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}.tour-event-stamp time{font:700 17px var(--display)}.tour-event-links{margin-top:6px}.tour-event-links a{font:9px var(--mono);letter-spacing:.06em;text-decoration:underline;text-underline-offset:3px}.tour-events .quiet-note{padding:5px 0 0;font-size:12px}
.tour-record{padding:20px;background:#191d1e;border-top:1px solid #637074}.tour-record dl{margin:0}.tour-fact{padding:14px 0;border-bottom:1px solid var(--soft-line);display:grid;gap:6px}.tour-fact:last-child{border:0;padding-bottom:0}.tour-fact dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}.tour-fact dd{margin:0;font:700 17px var(--display)}
.tour-links{display:grid;gap:16px}.tour-links .button{width:100%;font-size:14px;white-space:normal;text-align:center}.tour-links>a:not(.button){font:700 14px var(--display)}.tour-links .quiet-note{padding:0;font-size:11px}.tour-notice{padding:40px 0;max-width:660px}.tour-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){.tour-layout{grid-template-columns:minmax(0,1fr) 265px}.tour-hero{padding:24px}.tour-total{padding-inline:14px}.tour-total dd{font-size:30px}}
@media(max-width:850px){.tour-layout{grid-template-columns:minmax(0,1fr)}.tour-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.tour-links{grid-column:1/-1}.tour-hero h1{font-size:48px}}
@media(max-width:680px){.tour-hero-heading{display:block}.tour-outcome{padding-left:0;border-left:0;margin:14px 0 18px;max-width:none}.tour-outcome strong{font-size:28px}.tour-totals{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px;padding-bottom:16px}.tour-total:nth-child(odd){border-left:0;padding-left:0}.tour-total dd{font-size:28px}}
@media(max-width:520px){.tour-hero{padding:20px}.tour-hero-top{align-items:flex-start;flex-direction:column;gap:14px}.tour-hero h1{font-size:42px;margin-top:25px}.tour-breadcrumb{gap:12px;margin-bottom:22px;font-size:9px}.tour-breadcrumb .eyebrow{font-size:9px}.tour-identity{flex-wrap:wrap;gap:9px;font-size:10px}.tour-aside{grid-template-columns:minmax(0,1fr)}.tour-totals{grid-template-columns:minmax(0,1fr);row-gap:0;border-bottom:0}.tour-total{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;border-left:0;padding:12px 0;border-bottom:1px solid var(--soft-line)}.tour-total:last-child{border-bottom:0}.tour-total dd{font-size:22px}.tour .section-head h2{font-size:22px}.tour .section-head .eyebrow{font-size:9px}.tour-hero:after{display:none}.tour-record{padding:18px}}
/* Tour dossier revision 3 (TASK-2403.42): the committed frame's artwork, the
   per-battle figure table, and the lifetime band that is a different scope from the
   tour totals. A figure the battle did not record renders as .tour-unrecorded rather
   than as a zero. */
.tour-hero-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px;align-items:start;margin-top:26px;position:relative;z-index:1}
.tour-hero-brief{display:grid;gap:18px;align-content:start}
.tour-hero-brief .tour-identity{margin-top:0}
.tour-stage{width:100%;margin:0;background:#14181a;border:1px solid var(--soft-line);display:grid;grid-template-rows:auto auto auto}
.tour-stage-label{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;font:9px var(--mono);letter-spacing:.09em;color:var(--muted);border-bottom:1px solid var(--soft-line)}
.tour-stage-image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#0f1213}
.tour-stage-missing{display:none;aspect-ratio:4/3;place-content:center;justify-items:center;text-align:center;gap:8px;padding:20px;background:repeating-linear-gradient(45deg,#14181a,#14181a 10px,#171c1d 10px,#171c1d 20px)}
.tour-stage[data-media-state=missing] .tour-stage-image{display:none}
.tour-stage[data-media-state=missing] .tour-stage-missing{display:grid}
.tour-stage-missing strong{font:700 17px var(--display);letter-spacing:.05em}
.tour-stage-missing p{margin:0;max-width:280px;font:10px var(--mono);line-height:1.7;color:var(--muted)}
.tour-stage figcaption{padding:11px 14px;font:9px var(--mono);letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--soft-line);text-transform:uppercase}
.tour-event-stamp{display:flex;align-items:baseline;justify-content:flex-start;gap:14px;flex-wrap:wrap}
.tour-event-figs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:14px 0 0}
.tour-fig{display:grid;gap:5px;padding-left:14px;border-left:1px solid var(--soft-line)}
.tour-fig dt{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.tour-fig dd{margin:0;font:500 19px/1.25 var(--display)}
.tour-fig.tour-unrecorded dd{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.tour-event-loss{font:9px var(--mono);letter-spacing:.09em;color:var(--red);border:1px solid #6b4a45;padding:4px 8px}
.tour-event-provenance{margin:12px 0 0;font:9px var(--mono);letter-spacing:.07em;color:var(--muted)}
.tour-lifetime{padding:20px;background:#191d1e;border-top:1px solid #637074}
.tour-lifetime .section-head{padding:0 0 12px;border-bottom:1px solid var(--line);display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.tour-lifetime .section-head h2{font-size:20px}
.tour-lifetime-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.tour-life{padding:12px 0;border-bottom:1px solid var(--soft-line);display:grid;gap:5px}
.tour-life dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.tour-life dd{margin:0;font:700 20px var(--display)}
.tour-life.tour-unrecorded dd{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.tour-lifetime .quiet-note{padding:14px 0 0;font-size:11px}
@media(max-width:850px){.tour-hero-body{grid-template-columns:minmax(0,1fr)}.tour-stage{max-width:420px}.tour-event-figs{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.tour-event-figs .tour-fig:nth-child(odd){padding-left:0;border-left:0}}
@media(max-width:520px){.tour-stage{max-width:100%}.tour-event-figs{grid-template-columns:minmax(0,1fr);gap:0}.tour-event-figs .tour-fig{padding:10px 0;border-left:0;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;border-bottom:1px solid var(--soft-line)}.tour-event-figs .tour-fig:last-child{border-bottom:0}}
/* Combat dossier: one recorded battle, its combatants, its decisive events and its recorded evidence. */
.combat{max-width:1500px;margin-inline:auto}



.combat .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.combat .section-head h2{font-size:23px}





.combat-notice{padding:40px 0;max-width:660px}.combat-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:850px){}
@media(max-width:680px){}
@media(max-width:520px){.combat .section-head h2{font-size:22px}.combat .section-head .eyebrow{font-size:9px}}
/* Duel segment: the owner's staging, disclosed pools and this reader's stakes. */

.duel-bet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--soft-line)}
@media(max-width:680px){.duel-bet{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}}
@media(max-width:520px){.duel-bet{grid-template-columns:minmax(0,1fr)}}

/* Public entrance (TASK-2403.8): the anonymous world view. No command rail, no
   private context. Everything below reuses the Report's own instruments. */





















@media(max-width:1100px){}
@media(max-width:850px){}
@media(max-width:680px){}
@media(max-width:420px){}


/* Account access (TASK-2403.9): the hosted gate's document. Introduction plus a bounded
   provider column; narrow screens stack both. Every id and data attribute here is a hook
   app.js binds, so the names are the shipped ones. */
.access-page{max-width:1500px;margin-inline:auto;padding:26px 28px 48px}
.access-topbar{display:flex;align-items:center;gap:16px;padding:0 0 26px;border-bottom:1px solid var(--line)}
.access-grid{grid-template-columns:minmax(0,1fr) 430px;margin-top:34px;align-items:start}
.access-intro,.access-terminal{min-width:0}
.access-intro h1{font-size:clamp(40px,4.6vw,68px);line-height:1.02;text-transform:uppercase;margin:18px 0 16px}
.access-intro p{color:var(--muted);font-size:13px;max-width:520px;line-height:1.7}
.access-door{display:grid;gap:8px;margin-top:34px;padding:20px 22px;background:#191d1e;border-left:2px solid #566267;max-width:520px}
.access-door strong{font:700 17px var(--display)}
.access-door:hover strong{color:white}
.access-terminal{padding:26px 24px;background:#171a1c;border-top:2px solid var(--amber);display:grid;gap:14px}
.access-terminal h2{font-size:31px;text-transform:uppercase;line-height:1.1}
.access-terminal [data-access-detail]{color:var(--muted);font-size:13px;line-height:1.7}
[data-access-actions]{display:grid;gap:10px;margin-top:6px}
.access-action{display:block;padding:13px 16px;border:1px solid var(--line);font:700 14px var(--display);text-align:center;letter-spacing:.03em}
.access-action:hover{color:white;border-color:var(--muted)}
.access-action[data-access-primary="true"]{background:var(--amber);border-color:var(--amber);color:#101112}
.access-surface{display:grid;gap:14px;min-height:0}
.access-surface:empty{display:none}
.access-form{display:grid;gap:12px}
.access-field{display:grid;gap:8px;font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.access-input{background:#101112;border:1px solid var(--line);color:var(--ink);padding:12px;font:12px var(--mono);width:100%}
.access-submit{padding:13px 16px;border:1px solid var(--line);font:700 14px var(--display);letter-spacing:.03em}
.access-submit.primary{background:var(--amber);border-color:var(--amber);color:#101112}
.access-submit:hover{color:white}
.access-submit.primary:hover{color:#101112}
.access-return{margin-top:8px;font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.access-return:hover{color:white}




.access-notice{display:grid;gap:12px;padding:18px;background:#20221f;border-left:2px solid var(--red)}
.access-notice strong{font:700 17px var(--display)}
.access-notice p{color:var(--muted);font-size:12px;line-height:1.7}
@media(max-width:1020px){.access-grid{grid-template-columns:minmax(0,1fr) 360px}.access-page{padding-inline:22px}}
@media(max-width:860px){.access-grid{grid-template-columns:minmax(0,1fr);gap:26px}.access-intro h1{font-size:44px}}
@media(max-width:520px){.access-page{padding:20px 15px 36px}.access-intro h1{font-size:38px}.access-terminal{padding:20px 17px}.access-terminal h2{font-size:26px}}
.access-topbar{justify-content:space-between}
.access-topbar-label{font:10px var(--mono);letter-spacing:.15em;color:var(--muted)}
.access-intro{position:relative;min-height:530px;padding:28px 36px 28px 0;overflow:hidden}
.access-intro h1{position:relative;z-index:1;max-width:710px;font-size:clamp(62px,6.5vw,100px);line-height:.94;margin:42px 0 30px;letter-spacing:-.035em}
.access-intro>p{position:relative;z-index:1;max-width:460px;font-size:15px}
.access-door{position:relative;z-index:1;margin-top:52px;padding:24px 28px;border:1px solid var(--line);border-left:3px solid var(--amber);background:linear-gradient(110deg,#262725,#191d1e)}
.access-door strong{font-size:22px}
.access-signal{position:absolute;right:30px;bottom:10px;display:grid;justify-items:end;gap:5px;opacity:.12;color:var(--ink);font:10px var(--mono);letter-spacing:.18em}
.access-signal strong{font:700 clamp(72px,9vw,150px) var(--display);line-height:.8;letter-spacing:-.04em}
.access-terminal{border:1px solid var(--line);border-top:3px solid var(--amber);padding:30px;box-shadow:20px 20px 0 #141719}
.access-terminal h2{font-size:43px;line-height:.96}
[data-access-actions]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.access-action{padding:14px 9px;font-size:13px}
.access-action[aria-current="page"]{background:var(--amber);border-color:var(--amber);color:#101112}
.access-action[data-access-mode="recovery"]{grid-column:1/-1;background:none;border-color:transparent;border-bottom-color:var(--line);text-align:left;padding:10px 0;font:10px var(--mono);letter-spacing:.09em;color:var(--muted)}
.access-action[data-access-mode="recovery"][aria-current="page"]{color:var(--amber)}
.access-local-note{font:9px var(--mono);letter-spacing:.11em;color:var(--amber);border-top:1px solid var(--line);padding-top:16px}
.access-complete{max-width:560px;margin:15vh auto 0}.access-complete h1{font-size:48px}.access-complete p{color:var(--muted)}
@media(max-width:860px){.access-intro{min-height:0;padding:10px 0 22px}.access-intro h1{font-size:clamp(48px,10vw,72px);margin:24px 0}.access-door{margin-top:28px}.access-signal{display:none}.access-terminal{box-shadow:none}}
@media(max-width:520px){.access-topbar-label{display:none}.access-intro h1{font-size:48px}.access-intro>p{font-size:13px}.access-door{padding:17px}.access-door strong{font-size:17px}.access-terminal{padding:22px 18px}.access-terminal h2{font-size:34px}}


/* Permanent combat analysis (TASK-2403.37): six views, one cursor, one chart. */
.analysis{display:grid;gap:20px;margin-top:6px}
.analysis .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.analysis h3{font-size:21px;text-transform:uppercase}






.analysis-chart{width:100%;height:auto;display:block;background:#15191a;border:1px solid var(--soft-line)}
.analysis-chart .axis{stroke:var(--line);stroke-width:1}
.analysis-line{fill:none;stroke:currentColor;stroke-width:1.75;vector-effect:non-scaling-stroke}
.analysis-line.line-pattern-1{stroke-dasharray:6 3}
.analysis-line.line-pattern-2{stroke-dasharray:2 3}
.analysis-line.line-pattern-3{stroke-dasharray:10 3 2 3}
.analysis-cursor{display:grid;gap:8px}


.analysis-reading{margin:0;font:11px var(--mono);color:var(--ink)}


.analysis th,.analysis td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--soft-line);vertical-align:top}
.analysis thead th{font:9px var(--mono);letter-spacing:.08em;color:var(--muted);border-bottom:1px solid var(--line)}



.analysis-position,.analysis-matrix,.analysis-hardpoints,.analysis-economy{display:grid;gap:12px}


@media(max-width:680px){


  .analysis h3{font-size:19px}
}
@media(max-width:420px){}
/* Corporate Desk dossier: the trading office's officer, banner, books and commerce sections. */
.desk{max-width:1500px;margin-inline:auto}








.desk .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.desk .section-head h2{font-size:23px}









.desk-notice{padding:40px 0;max-width:660px}.desk-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.desk .section-head h2{font-size:22px}}

/* Mech dossier: the machine inspection stage (TASK-2403.18). Placement only. */
.mech{max-width:1500px;margin-inline:auto}
.mech-breadcrumb{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 30px;font:10px var(--mono);letter-spacing:.06em}
.mech-breadcrumb a:hover{text-decoration:underline}
.mech-hero{position:relative;border-top:2px solid var(--muted);padding:28px 30px 30px;background:linear-gradient(120deg,#202526 0%,#171b1c 65%,#121617 100%);overflow:hidden}
.mech-hero-top{display:flex;gap:16px;align-items:center;justify-content:space-between}
.mech-status{font:11px var(--mono);letter-spacing:.1em;border:1px solid #626b6e;padding:8px 12px;white-space:nowrap}
.mech-hero h1{font-size:clamp(40px,5.3vw,76px);line-height:1.05;max-width:1000px;margin:26px 0 12px}
.mech-identity{margin:0;font:13px var(--mono);letter-spacing:.08em;color:var(--ink)}
.mech-state-detail{margin-top:10px;color:var(--muted);font-size:13px;max-width:620px}
.mech-machine{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;margin-top:30px;padding-top:26px;border-top:1px solid var(--line)}
.mech-stage{margin:0;background:#14181a;border:1px solid var(--soft-line);display:grid;grid-template-rows:auto 1fr auto auto}
.mech-stage-label{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;font:9px var(--mono);letter-spacing:.09em;color:var(--muted);border-bottom:1px solid var(--soft-line)}
.mech-stage-image{width:100%;aspect-ratio:1;object-fit:contain;display:block;background:#0f1213}
.mech-stage-missing{display:none;aspect-ratio:1;place-content:center;justify-items:center;text-align:center;gap:8px;padding:20px;background:repeating-linear-gradient(45deg,#14181a,#14181a 10px,#171c1d 10px,#171c1d 20px)}
.mech-stage[data-media-state=missing] .mech-stage-image{display:none}
.mech-stage[data-media-state=missing] .mech-stage-missing{display:grid}
.mech-stage-missing strong{font:700 17px var(--display);letter-spacing:.05em}
.mech-stage-missing p{margin:0;max-width:280px;font:10px var(--mono);line-height:1.7;color:var(--muted)}
.mech-stage figcaption{padding:11px 14px;font:9px var(--mono);letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--soft-line)}
.mech-stage-note{margin:0;padding:11px 14px;font:9px var(--mono);letter-spacing:.05em;color:var(--muted);border-top:1px solid var(--soft-line)}
.mech-readings{display:grid;gap:22px;align-content:start;min-width:0}
.mech-rating{display:grid;gap:6px;padding:18px 0;border-bottom:1px solid var(--soft-line)}
.mech-rating strong{font:500 clamp(44px,6vw,74px)/1 var(--display)}
.mech-meter{display:grid;gap:9px}
.mech-meter-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.mech-meter-head small{font:9px var(--mono);letter-spacing:.06em;color:var(--amber)}
.mech-meter-head strong{font:700 20px var(--display);white-space:nowrap}
.mech-segments{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:2px;height:16px}
.mech-segments i{background:#22282a;border:1px solid var(--soft-line);display:block}
.mech-segments i[data-on=true]{background:var(--amber)}
.mech-meter[data-state=unknown] .mech-segments i{background:#1b2021}
.mech-meter-foot{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:.07em;color:var(--muted)}
.mech-assembly{display:grid;gap:0}
.mech-parts{list-style:none;margin:0;padding:0}
.mech-part{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--soft-line)}
.mech-part:last-child{border-bottom:0}
.mech-part-art{width:56px;height:56px;background:#14181a;border:1px solid var(--soft-line);display:grid;place-items:center;overflow:hidden}
.mech-part-image{width:100%;height:100%;object-fit:contain;display:block}
.mech-part-art-missing{font:22px var(--display);color:var(--muted)}
.mech-part-private{grid-template-columns:minmax(0,1fr);color:var(--muted)}
.mech-part a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.mech-part a:hover strong{text-decoration:underline}
.mech-part-copy{display:grid;gap:5px;min-width:0}
.mech-part-copy strong{font:700 17px var(--display)}
.mech-part-copy small{font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.mech-part-arrow{font:700 14px var(--mono);color:var(--muted)}
.mech .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.mech .section-head h2{font-size:22px}
.mech-service{margin-top:34px}
.mech-service-band{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-top:20px}
.mech-service-figure{display:grid;gap:8px;padding:4px 18px;border-left:1px solid var(--soft-line)}
.mech-service-figure:first-child{border-left:0;padding-left:0}
.mech-service-figure strong{font:500 30px/1.15 var(--display)}
.mech-layout{grid-template-columns:minmax(0,1fr) 330px;margin-top:34px;align-items:start}
.mech-main,.mech-aside{min-width:0;align-content:start}
.mech-section{padding:0 0 26px;border-bottom:1px solid var(--soft-line)}
.mech-owner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding-top:16px}
.mech-owner a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}
.mech-owner a:hover strong{text-decoration:underline}
.mech-owner-copy{display:grid;gap:5px}
.mech-owner-copy strong{font:700 20px var(--display)}
.mech-owner-copy small{font:9px var(--mono);color:var(--muted)}
.mech-owner-clan{display:grid;gap:6px;margin-top:16px;padding-top:14px;border-top:1px solid var(--soft-line);font:11px var(--mono)}
.mech-owner-clan small{font:9px var(--mono);color:var(--muted)}
.mech-loss{display:grid;gap:8px;padding:18px;border-left:2px solid var(--red);background:#20221f}
.mech-earnings{display:grid;gap:18px}
.mech-earn-figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:18px}
.mech-earn-figure{display:grid;gap:7px;padding:4px 18px;border-left:1px solid var(--soft-line)}
.mech-earn-figure:first-child{border-left:0;padding-left:0}
.mech-earn-figure strong{font:500 30px/1.15 var(--display)}
.mech-earn-note{margin:0;font:11px var(--mono);letter-spacing:.04em;color:var(--muted);line-height:1.7}
.mech-earn-door{margin:0}
.mech-earn-door a{font:700 11px var(--mono);letter-spacing:.06em;text-decoration:underline;text-underline-offset:3px}
.mech-flows{list-style:none;margin:0;padding:0;display:grid;gap:0}
.mech-flow{display:grid;gap:10px}
.mech-flow .section-head{padding-bottom:8px;border-bottom:0}
.mech-flow .section-head h3{font-size:14px;letter-spacing:.06em}
.mech-flow-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--soft-line)}
.mech-flow-copy{display:grid;gap:4px}
.mech-flow-copy strong{font:700 15px var(--display)}
.mech-flow-copy small{font:9px var(--mono);color:var(--muted)}
.mech-flow-amount{font:700 15px var(--display);white-space:nowrap}
.mech-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:16px}
.mech-record{padding:20px;background:#191d1e;border-top:1px solid #637074}
.mech-record .section-head{padding:0;border:0}
.mech-record .section-head h2{font-size:15px;letter-spacing:.06em}
.mech-notice{padding:40px 0;max-width:660px}
.mech-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){.mech-layout{grid-template-columns:minmax(0,1fr) 285px}.mech-hero{padding:24px}.mech-rating strong{font-size:56px}}
@media(max-width:900px){.mech-machine{grid-template-columns:minmax(0,1fr)}.mech-layout{grid-template-columns:minmax(0,1fr)}.mech-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.mech-hero h1{font-size:48px}.mech-service-band{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}.mech-service-figure:nth-child(4){border-left:0;padding-left:0}}
@media(max-width:680px){.mech-hero h1{font-size:42px}.mech-earn-figures{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.mech-earn-figure:nth-child(odd){border-left:0;padding-left:0}.mech-segments{height:14px}}
@media(max-width:520px){.mech-hero{padding:20px}.mech-hero-top{align-items:flex-start;flex-direction:column;gap:14px}.mech-breadcrumb{gap:12px;margin-bottom:22px;font-size:9px}.mech-service-band{grid-template-columns:repeat(2,minmax(0,1fr))}.mech-service-figure{border-left:0;padding:10px 0;border-bottom:1px solid var(--soft-line)}.mech-service-figure:last-child{border-bottom:0}.mech-aside{grid-template-columns:minmax(0,1fr)}.mech-earn-figures{grid-template-columns:minmax(0,1fr);row-gap:0}.mech-earn-figure{border-left:0;padding:11px 0;border-bottom:1px solid var(--soft-line)}.mech-earn-figure:last-child{border-bottom:0}.mech-part{grid-template-columns:44px minmax(0,1fr)}.mech-part-art{width:44px;height:44px}.mech .section-head h2{font-size:22px}.mech-record{padding:18px}}
/* Mech dossier label strip (TASK-2403.18): the catalogue's own region. */
.mech-labels{display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding-top:14px}


.mech-label{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid #626b6e;font:700 11px var(--mono);letter-spacing:.05em;background:#1c2122;color:var(--ink)}








.mech-label-editor-body{padding-top:12px}





/* Subsystem dossier (TASK-2403.19): Physical equipment inspection. */
.subsystem{max-width:1500px;margin-inline:auto}










.subsystem .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.subsystem .section-head h2{font-size:22px}




































.subsystem-notice{padding:40px 0;max-width:660px}
.subsystem-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){}

/* Chip dossier (TASK-2403.21): chip geometry and rolled effect. The exact occupied-cell
   diagram is the focal instrument and the rolled effect is the large value beside it.
   NO DECORATIVE GRID IS DRAWN BEHIND THE CELLS: a background pattern would imply cells
   the record did not occupy. */
.chip{max-width:1500px;margin-inline:auto}









.chip .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.chip .section-head h2{font-size:22px}




































.chip-notice{padding:40px 0;max-width:660px}
.chip-notice h1{margin:20px 0;font-size:40px;overflow-wrap:anywhere}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){.chip .section-head h2{font-size:19px}}
@media(max-width:420px){.chip-notice h1{font-size:30px}}

/* Crate dossier (TASK-2403.25): crate lifecycle and disclosed manifest. The ACTUAL
   crate-type artwork is the focal element beside the recorded container, and the
   disclosed manifest lists the owner's own committed rewards. NO PROBABILITY CHART
   AND NO HIDDEN LOOT REVEAL: a sealed crate draws its undisclosed state, never rows. */
.crate{max-width:1500px;margin-inline:auto}










.crate .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.crate .section-head h2{font-size:22px}




















.crate-event-body{display:grid;gap:6px}


































.crate-notice{padding:40px 0;max-width:660px}
.crate-notice h1{margin:20px 0;font-size:40px;overflow-wrap:anywhere}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){.crate .section-head h2{font-size:19px}}
@media(max-width:420px){.crate-notice h1{font-size:30px}}
@media(max-width:340px){}







/* BANK job page (TASK-2403.38): a reconciled wallet statement. The four figures are
   SEPARATE readings, the waterfall reconciles the owner's own window, the category bars
   carry raw decimals with their unit and window, and the receipt ledger pages the
   viewer's own entries. Nothing here draws a balance curve in event-time order. */
.bank{max-width:1500px;margin-inline:auto}
.bank-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:0 0 14px;border-bottom:1px solid var(--line)}
.bank-head h2{font-size:23px}
.bank-head .eyebrow{font-size:9px}
.bank-lead{margin:14px 0 0;max-width:660px;font:12px/1.8 var(--mono);color:var(--muted)}
.bank-stack{display:grid;gap:26px;margin-top:26px}
.bank-section{padding:0 0 26px;border-bottom:1px solid var(--soft-line)}
.bank-card{background:#191d1e;border-top:2px solid #566267;padding:20px;display:grid;gap:14px}
.bank-card--amber{border-top-color:var(--amber)}
.bank-card--green{border-top-color:#7fae7a}
.bank-card--cyan{border-top-color:var(--blue)}
.bank-card--plain{border-top-color:var(--soft-line)}
.bank-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:4px 0}
.bank-figure{display:grid;gap:6px;padding:12px 18px;border-left:1px solid var(--soft-line)}
.bank-figure:first-child{border-left:0;padding-left:0}
.bank-figure dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.bank-figure dd{margin:0;font:700 22px/1.15 var(--display);overflow-wrap:anywhere}
.bank-figure small{display:block;font:9px/1.6 var(--mono);color:var(--muted)}
.bank-hero{display:grid;gap:8px;padding:6px 0 18px;border-bottom:1px solid var(--soft-line)}
.bank-hero strong{font:500 clamp(38px,4.6vw,62px)/1.05 var(--display);overflow-wrap:anywhere}
.bank-hero--absent strong{color:var(--amber);font-size:clamp(30px,3.4vw,44px);letter-spacing:.02em}
.bank-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

.bank-stale{margin:0;padding:12px 14px;background:#30291d;color:var(--amber);font:10px/1.7 var(--mono);letter-spacing:.05em}
.bank-waterfall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px;padding:20px 0 6px}
.bank-water{display:grid;gap:8px;align-content:end}
.bank-water-track{height:130px;background:#15191a;border:1px solid var(--soft-line);display:flex;align-items:flex-end}
.bank-water-fill{display:block;width:100%;background:var(--amber);min-height:2px}
.bank-water--opening .bank-water-fill{background:#566267}
.bank-water--inflow .bank-water-fill{background:#7fae7a}
.bank-water--outflow .bank-water-fill{background:#c58d85}
.bank-water--closing .bank-water-fill{background:var(--amber)}
.bank-water-amount{font:700 18px/1.1 var(--display);overflow-wrap:anywhere}
.bank-water-label{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.bank-reconcile{margin:0;padding:14px 0 0;border-top:1px solid var(--soft-line);font:11px/1.8 var(--mono);color:var(--ink);overflow-wrap:anywhere}
.bank-reconcile--off{color:var(--red)}
.bank-bars{display:grid;gap:15px}
.bank-bar{display:grid;gap:7px}
.bank-bar-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.bank-bar-head strong{font:700 16px var(--display);overflow-wrap:anywhere}
.bank-bar-head span{font:9px var(--mono);letter-spacing:.07em;color:var(--muted)}
.bank-bar-amount{font:700 15px var(--display);white-space:nowrap}
.bank-bar-amount--in{color:#8fbf8a}
.bank-bar-amount--out{color:#d08b84}
.bank-bar-track{height:6px;background:#22282a;border:1px solid var(--soft-line)}
.bank-bar-fill{display:block;height:100%;background:var(--amber);min-width:2px}
.bank-bar--out .bank-bar-fill{background:#c58d85}
.bank-bar-unit{font:9px var(--mono);letter-spacing:.07em;color:var(--dim)}
.bank-bins{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--soft-line);border:1px solid var(--soft-line)}
.bank-bin{background:#191d1e;padding:14px;display:grid;gap:6px}
.bank-bin strong{font:500 26px/1.1 var(--display)}
.bank-bin span{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.bank-rows{list-style:none;margin:0;padding:0}
.bank-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--soft-line)}
.bank-row:last-child{border-bottom:0}
.bank-row-copy{display:grid;gap:5px;min-width:0}
.bank-row-copy strong{font:700 16px var(--display);overflow-wrap:anywhere}
.bank-row-copy small{font:9px/1.6 var(--mono);color:var(--muted)}
.bank-row-tail{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.bank-amount{font:700 15px var(--display);white-space:nowrap}
.bank-amount--credit{color:#8fbf8a}
.bank-amount--debit{color:#d08b84}
.bank-receipts{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bank-receipt{background:#191d1e;border:1px solid var(--soft-line)}
.bank-receipt summary{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:14px 16px;cursor:pointer}
.bank-receipt summary strong{font:700 16px var(--display);overflow-wrap:anywhere}
.bank-receipt-body{display:grid;gap:10px;padding:0 16px 16px}
.bank-receipt-ids{font:9px/1.7 var(--mono);color:var(--dim);overflow-wrap:anywhere}
.bank-kv{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--soft-line)}
.bank-kv:last-child{border-bottom:0}
.bank-kv dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.bank-kv dd{margin:0;font:700 15px var(--display);text-align:right;overflow-wrap:anywhere}
.bank-pager{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:16px}
.bank-pager .micro{font:10px var(--mono);color:var(--muted)}
.bank-empty{margin:0;padding:20px 0;font:11px/1.8 var(--mono);color:var(--muted)}
.bank-empty strong{display:block;font:700 15px var(--display);letter-spacing:.03em;color:var(--ink);margin-bottom:6px}
.bank-unread{margin:0;padding:18px;background:#20221f;border-left:2px solid var(--amber);display:grid;gap:12px}
.bank-unread strong{font:700 15px var(--display);letter-spacing:.05em}
.bank-unread p{margin:0;font:11px/1.7 var(--mono);color:var(--muted)}
.bank-retry{align-self:start}
.bank-mech{display:grid;gap:10px;padding:16px 0;border-bottom:1px solid var(--soft-line)}
.bank-mech:last-child{border-bottom:0}
.bank-mech-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.bank-mech-top strong{font:700 19px var(--display)}
.bank-mech-run{display:flex;gap:16px;flex-wrap:wrap;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.bank-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.bank-footer{margin:0;padding-top:18px;font:9px var(--mono);letter-spacing:.08em;color:var(--dim)}
.bank-error{margin:0;padding:14px 16px;border-left:2px solid var(--red);background:#20221f;font:11px/1.7 var(--mono);color:var(--ink)}
.bank-notice{margin:0;padding:14px 16px;border-left:2px solid var(--amber);background:#20221f;font:11px/1.7 var(--mono);color:var(--ink)}
@media(max-width:1200px){.bank-figure dd{font-size:20px}.bank-water-amount{font-size:16px}}
@media(max-width:900px){.bank-bins{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-split{grid-template-columns:minmax(0,1fr)}}
@media(max-width:680px){.bank-figures{grid-template-columns:minmax(0,1fr);row-gap:0}.bank-figure{border-left:0;padding:12px 0;border-bottom:1px solid var(--soft-line)}.bank-figure:last-child{border-bottom:0}.bank-hero strong{font-size:34px}.bank-waterfall{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}.bank-water-track{height:96px}.bank-bins{grid-template-columns:minmax(0,1fr)}.bank-row{grid-template-columns:minmax(0,1fr);gap:8px}.bank-row-tail{justify-content:flex-start}.bank-receipt summary{align-items:flex-start;flex-direction:column;gap:6px}}
@media(max-width:420px){.bank-head{align-items:flex-start;flex-direction:column;gap:10px}.bank-hero strong{font-size:28px}.bank-waterfall{grid-template-columns:minmax(0,1fr)}.bank-water-track{height:72px}}

/* THE PRIVATE FAVOUR STATEMENT (TASK-2403.40). One desk currency, drawn beside that
   desk's own books. It is rendered only for the recipient the owner answered, so these
   rules never describe a public surface. */
































.favour-receipt-body{display:grid;gap:10px;padding:0 16px 16px}

.favour-receipt-body .quiet-note{padding:0;font-size:11px}







@media(max-width:900px){}
@media(max-width:520px){}

.codex{max-width:1500px;margin-inline:auto}



.codex-art{margin:0;background:#14181a;border:1px solid var(--soft-line);display:grid;grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr)}.codex-art figcaption{padding:11px 14px;font:9px var(--mono);letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--soft-line);text-transform:uppercase}



.codex-fragment{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:18px;background:#191d1e;border-left:2px solid #566267}.codex-fragment small{display:block;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}.codex-fragment strong{font:700 17px var(--display);letter-spacing:.03em}.codex-fragment p{margin:0;font-size:13px;line-height:1.8;color:#c6cac8}.codex-fragment-locked{border-left-color:#6b4a45}.codex-fragment-lock{font:11px var(--mono);letter-spacing:.08em;color:var(--amber)}.codex-decode{justify-self:start}
.codex-unlock-all{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;background:#20221f;border-top:2px solid var(--amber);font:11px var(--mono);letter-spacing:.06em}.codex-unlock-all .button{font-size:13px}

.codex-record{padding:20px;background:#191d1e;border-top:1px solid #637074}.codex-record .section-head{padding:0;border:0}.codex-record .section-head h2{font-size:15px;letter-spacing:.06em}
.codex-notice{padding:40px 0;max-width:660px}.codex-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.codex-fragment{padding:14px}}

/* Player dossier: the public service profile (TASK-2403.13). Placement only. */
.player{max-width:1500px;margin-inline:auto}


















.player .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.player .section-head h2{font-size:23px}

.player-contribution-body{display:grid;gap:16px;padding-top:22px}































.player-notice{padding:40px 0;max-width:660px}
.player-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.player .section-head h2{font-size:20px}.player-notice h1{font-size:30px}}

/* Material, component and consumable catalogue dossier (TASK-2403.26, .27, .28): the
   owner's own catalogue media and holding lead, the published production recipes follow
   as an ingredient-to-output diagram, and the record's own reading sits beside them. ONLY
   A MATERIAL CARRIES VERIFIED ARTWORK; a component and a consumable draw the kit's own
   SYMBOL tile, and an ingredient draws material art only where the adapter resolved one.
   NO CRAFTABLE COUNT IS DRAWN: the read carries no per-ingredient holding, so there is no
   denominator and the stat is omitted rather than guessed. */
.resource{max-width:1500px;margin-inline:auto}









.resource .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.resource .section-head h2{font-size:22px}










































.resource-notice{padding:40px 0;max-width:660px}
.resource-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.resource .section-head h2{font-size:20px}.resource-notice h1{font-size:30px}}

/* Ability dossier (TASK-2403.29): the mechanic and targeting brief. The catalogue facts are
   authoritative; the targeting mark is the kit's own DECORATIVE reticle, carries no
   accessible text, and is NOT an effect radius. No radius and no cooldown are drawn, because
   the read publishes neither. */
.ability{max-width:1500px;margin-inline:auto}

































.ability-notice{padding:40px 0;max-width:660px}
.ability-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.ability-notice h1{font-size:30px}}
/* Repair bounty dossier: the funded-pot record (TASK-2403.34). Placement only. */
.repair-bounty{max-width:1500px;margin-inline:auto}
.repair-bounty-breadcrumb{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 30px;font:10px var(--mono);letter-spacing:.06em}
.repair-bounty-breadcrumb a:hover{text-decoration:underline}
.repair-bounty-hero{position:relative;border-top:2px solid var(--muted);padding:28px 30px 30px;background:linear-gradient(120deg,#202526 0%,#171b1c 65%,#121617 100%);overflow:hidden}
.repair-bounty-hero:after{content:'';position:absolute;right:-55px;top:-160px;width:440px;height:440px;border:1px solid #a1a6a810;transform:rotate(45deg);pointer-events:none}
.repair-bounty-hero-top{display:flex;gap:16px;align-items:center;justify-content:space-between;position:relative;z-index:1}
.repair-bounty-status{font:11px var(--mono);letter-spacing:.1em;border:1px solid #626b6e;padding:8px 12px;white-space:nowrap}
.repair-bounty-hero h1{font-size:clamp(40px,5.3vw,76px);line-height:1.05;max-width:1000px;margin:22px 0 12px;position:relative;z-index:1}
.repair-bounty-description{color:var(--muted);font-size:13px;max-width:620px;position:relative;z-index:1}
.repair-bounty-layout{grid-template-columns:minmax(0,1fr) 330px;margin-top:30px;align-items:start}
.repair-bounty-main,.repair-bounty-aside{min-width:0;align-content:start}
.repair-bounty .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.repair-bounty .section-head h2{font-size:23px}
.repair-bounty-section{display:grid;gap:18px}
.repair-bounty-media{margin:0;background:#14181a;border:1px solid var(--soft-line);display:grid;grid-template-rows:1fr auto;grid-template-columns:minmax(0,1fr)}
.repair-bounty-media-image{width:100%;aspect-ratio:16/6;object-fit:cover;display:block;background:#0f1213}
.repair-bounty-media figcaption{padding:11px 14px;font:9px var(--mono);letter-spacing:.06em;color:var(--muted);border-top:1px solid var(--soft-line);text-transform:uppercase}
.repair-bounty-figures{flex-wrap:wrap;align-items:stretch;border:1px solid var(--soft-line);background:#191d1e}
.repair-bounty-figure{display:grid;gap:7px;padding:16px 18px;flex:1 1 150px;border-left:1px solid var(--soft-line)}
.repair-bounty-figure:first-child{border-left:0;padding-left:18px}
.repair-bounty-figure-label{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.repair-bounty-figure strong{font:500 24px/1.15 var(--display);overflow-wrap:anywhere}
.repair-bounty-record{padding:20px;background:#191d1e;border-top:1px solid #637074}
.repair-bounty-record .section-head{padding:0;border:0}
.repair-bounty-record .section-head h2{font-size:15px;letter-spacing:.06em}
.repair-bounty-record-body{display:grid;gap:0;margin-top:14px}
.repair-bounty-party{display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--soft-line)}
.repair-bounty-party:last-child{border-bottom:0}
.repair-bounty-party-label{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.repair-bounty-party strong{font:700 17px var(--display)}
.repair-bounty-party-link:hover strong{text-decoration:underline}
.repair-bounty-party small{display:block;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.repair-bounty-notice{padding:40px 0;max-width:660px}
.repair-bounty-notice h1{margin:20px 0;font-size:40px}
.repair-bounty-notice .button{margin-top:14px}
@media(max-width:1200px){.repair-bounty-layout{grid-template-columns:minmax(0,1fr) 285px}.repair-bounty-hero{padding:24px}}
@media(max-width:900px){.repair-bounty-layout{grid-template-columns:minmax(0,1fr)}.repair-bounty-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.repair-bounty-record{grid-column:1/-1}.repair-bounty-hero h1{font-size:48px}}
@media(max-width:680px){.repair-bounty-aside{grid-template-columns:minmax(0,1fr)}.repair-bounty-figure{flex-basis:100%;border-left:0;border-top:1px solid var(--soft-line)}.repair-bounty-figure:first-child{border-top:0}}
@media(max-width:520px){.repair-bounty-hero{padding:20px}.repair-bounty-hero-top{align-items:flex-start;flex-direction:column;gap:14px}.repair-bounty-breadcrumb{gap:12px;margin-bottom:22px;font-size:9px}.repair-bounty-hero h1{font-size:34px}.repair-bounty-hero:after{display:none}.repair-bounty-record{padding:18px}.repair-bounty-notice h1{font-size:30px}}

/* Marketplace offer sheet: the offered asset and the published ask (TASK-2403.30). Placement only. */
.market{max-width:1500px;margin-inline:auto}



.market-hero{padding:26px 0 0}




.market-layout{grid-template-columns:minmax(0,1fr) 330px;margin-top:34px;align-items:start}

.market .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.market .section-head h2{font-size:22px}








.market-offer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px;padding:22px 0 26px;border-bottom:1px solid var(--soft-line)}




.market-section{display:grid;gap:16px;padding:26px 0;border-bottom:1px solid var(--soft-line)}
.market-section:last-child{border-bottom:0}














.market-note-body{margin:0;max-width:640px;color:var(--ink);font-size:14px;overflow-wrap:anywhere}


.market-notice{padding:40px 0;max-width:660px}
.market-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){.market-layout{grid-template-columns:minmax(0,1fr) 285px}}
@media(max-width:900px){.market-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:680px){.market-offer{grid-template-columns:minmax(0,1fr);align-items:start}}
@media(max-width:520px){.market .section-head h2{font-size:20px}.market-notice h1{font-size:30px}}

/* Settlement receipt: the settled value and the provenance path (TASK-2403.31). Placement only. */
.receipt{max-width:1500px;margin-inline:auto}











.receipt .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.receipt .section-head h2{font-size:22px}



































.receipt-notice{padding:40px 0;max-width:660px}
.receipt-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.receipt .section-head h2{font-size:20px}.receipt-notice h1{font-size:30px}}

/* Public bidding record: the bid figure, the ledger and the staircase (TASK-2403.32). Placement only. */
.auction{max-width:1500px;margin-inline:auto}










.auction .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.auction .section-head h2{font-size:22px}
























































.auction-notice{padding:40px 0;max-width:660px}
.auction-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.auction .section-head h2{font-size:20px}.auction-notice h1{font-size:30px}}

/* Contract capacity and tenure: the pot, the deployment meter and the payout ledgers (TASK-2403.33). Placement only. */
.contract{max-width:1500px;margin-inline:auto}










.contract .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.contract .section-head h2{font-size:22px}












































.contract-notice{padding:40px 0;max-width:660px}
.contract-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.contract .section-head h2{font-size:20px}.contract-notice h1{font-size:30px}}

/* The market family's shared media figure must not let an image's intrinsic width set the
   grid column's min-content size (TASK-2403.30 .31 .32 .33). */



/* Faction dossier: the public record and war effort (TASK-2403.14). Placement only. */
.faction{max-width:1500px;margin-inline:auto}
.faction-breadcrumb{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 30px;font:10px var(--mono);letter-spacing:.06em}
.faction-breadcrumb a:hover{text-decoration:underline}
.faction-hero{position:relative;border-top:2px solid var(--muted);padding:28px 30px 30px;background:linear-gradient(120deg,#202526 0%,#171b1c 65%,#121617 100%);overflow:hidden}
.faction-hero:after{content:'';position:absolute;right:-55px;top:-160px;width:440px;height:440px;border:1px solid #a1a6a810;transform:rotate(45deg);pointer-events:none}
.faction-hero-top{display:flex;gap:16px;align-items:center;justify-content:space-between;position:relative;z-index:1}
.faction-status{font:11px var(--mono);letter-spacing:.1em;border:1px solid #626b6e;padding:8px 12px;white-space:nowrap}
.faction-hero-identity{margin-top:26px;position:relative;z-index:1}
.faction-hero-copy{min-width:0}
.faction-hero-heading h1{font-size:clamp(40px,5.3vw,76px);line-height:1.05;max-width:1000px;margin:0 0 12px}
.faction-hero p{color:var(--muted);font-size:13px;max-width:620px}
.faction-identity{display:flex;align-items:center;gap:12px;margin-top:26px;font:11px var(--mono);letter-spacing:.05em;flex-wrap:wrap;position:relative;z-index:1}
.faction-identity .logo{width:24px;height:24px}
.faction-record-link{margin-left:12px;padding-left:20px;border-left:1px solid var(--line);font-weight:700}
.faction-record-link:hover{text-decoration:underline}
.faction-layout{grid-template-columns:minmax(0,1fr) 330px;margin-top:30px;align-items:start}
.faction-main,.faction-aside{min-width:0;align-content:start}
.faction .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.faction .section-head h2{font-size:23px}
.faction-section{display:grid;gap:18px}
.faction-war-effort{justify-items:start}
.faction-timeline{list-style:none;margin:0;padding:0}
.faction-timeline-row{display:grid;gap:6px;padding:16px 0;border-bottom:1px solid var(--soft-line)}
.faction-timeline-row:last-child{border-bottom:0}
.faction-timeline-row time{font:9px var(--mono);letter-spacing:.07em;color:var(--muted)}
.faction-timeline-row strong{font:700 17px var(--display)}
.faction-timeline-row small{display:block;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.faction-timeline-row a:hover strong{text-decoration:underline}
.faction-contributor{display:grid;gap:5px;padding-top:12px;border-top:1px solid var(--soft-line)}
/* THE RECORD'S OWN LINKS KEEP THE 44px FLOOR TOO: the breadcrumb, the canonical door and every
   published contributor are presses a thumb has to hit, on both of the record's addresses. */
.faction-breadcrumb a{min-height:44px;display:inline-flex;align-items:center}
.faction-contributor a{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.faction-record-link{min-height:44px;display:inline-flex;align-items:center}
.faction-record{padding:20px;background:#191d1e;border-top:1px solid #637074}
.faction-record .section-head{padding:0;border:0}
.faction-record .section-head h2{font-size:15px;letter-spacing:.06em}
.faction-links{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.faction-link{display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--soft-line)}
.faction-link:last-child{border-bottom:0}
.faction-link strong{font:700 17px var(--display)}
.faction-link a:hover strong{text-decoration:underline}
.faction-link small{display:block;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.faction-facts{margin:0;display:grid}
.faction-fact{padding:14px 0;border-bottom:1px solid var(--soft-line);display:grid;gap:6px}
.faction-fact:last-child{border:0;padding-bottom:0}
.faction-fact dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.faction-fact dd{margin:0;font:700 20px var(--display)}
.faction-record .quiet-note{padding:0;font-size:11px}
.faction-track-reading{font:700 34px/1.1 var(--display);color:var(--amber);letter-spacing:.02em;margin:0}
.faction-notice{padding:40px 0;max-width:660px}
.faction-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){.faction-layout{grid-template-columns:minmax(0,1fr) 285px}.faction-hero{padding:24px}}
@media(max-width:900px){.faction-layout{grid-template-columns:minmax(0,1fr)}.faction-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.faction-record{grid-column:span 1}.faction-hero-heading h1{font-size:48px}}
@media(max-width:680px){.faction-aside{grid-template-columns:minmax(0,1fr)}.faction-hero-heading h1{font-size:42px}}
@media(max-width:520px){.faction-hero{padding:20px}.faction-hero-top{align-items:flex-start;flex-direction:column;gap:14px}.faction-breadcrumb{gap:12px;margin-bottom:22px;font-size:9px}.faction-hero-heading h1{font-size:34px}.faction-identity{flex-wrap:wrap;gap:9px;font-size:10px}.faction-record-link{padding-left:0;margin-left:0;border:0;flex-basis:100%}.faction .section-head h2{font-size:20px}.faction-record{padding:18px}.faction-hero:after{display:none}.faction-notice h1{font-size:30px}}

/* Clan dossier: the published roster (TASK-2403.15). Placement only. */
.clan{max-width:1500px;margin-inline:auto}
















.clan .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.clan .section-head h2{font-size:23px}

.clan-roster{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.clan-member{display:grid;gap:6px;padding:18px;background:#191d1e;border-left:2px solid #566267}
.clan-member strong{font:700 18px var(--display)}
.clan-member a:hover strong{text-decoration:underline}
.clan-member small{display:block;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}





.clan-facts{margin:0;display:grid}
.clan-fact{padding:14px 0;border-bottom:1px solid var(--soft-line);display:grid;gap:6px}
.clan-fact:last-child{border:0;padding-bottom:0}
.clan-fact dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.clan-fact dd{margin:0;font:700 20px var(--display)}


.clan-notice{padding:40px 0;max-width:660px}
.clan-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.clan .section-head h2{font-size:20px}.clan-notice h1{font-size:30px}}

/* Corporate donation dossier: the recorded transfer (TASK-2403.16). Placement only. */
.donation{max-width:1500px;margin-inline:auto}












.donation .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.donation .section-head h2{font-size:23px}
















.donation-notice{padding:40px 0;max-width:660px}
.donation-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.donation .section-head h2{font-size:20px}.donation-notice h1{font-size:30px}}

/* Letter dossier: the private correspondence record (TASK-2403.17). Placement only. */
.letter{max-width:1500px;margin-inline:auto}
















.letter .section-head{padding:0 0 15px;border-bottom:1px solid var(--line);margin-bottom:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.letter .section-head h2{font-size:23px}


.letter-art{margin:0;display:grid}
.letter-art img{width:100%;height:auto;display:block;border:1px solid var(--soft-line)}

.letter-body p{font-size:15px;line-height:1.8;color:#c8cccb;max-width:760px;overflow-wrap:anywhere}














.letter-notice{padding:40px 0;max-width:660px}
.letter-notice h1{margin:20px 0;font-size:40px}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:520px){.letter .section-head h2{font-size:20px}.letter-notice h1{font-size:30px}}
/* UI4 lane B equipment dossiers (TASK-2403.20 skin, .22 chassis, .23 subsystem blueprint,
   .24 skin design). Placement only, in the same shapes as the subsystem, chip, mech and
   crate dossiers above: the page grid, the section head, the machine row and the art figure.

   THE FOUR PAGES SHARE ONE ART SHAPE, so these selectors are GROUPED rather than repeated
   four times. The rules are byte-identical for all four, which is why one line carries four
   selectors; a rule that differs per page is written per page below. */


.skin .section-head,.chassis .section-head,.blueprint .section-head,.skin-design .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.skin .section-head h2,.chassis .section-head h2,.blueprint .section-head h2,.skin-design .section-head h2{font-size:22px}













































.skin-notice,.chassis-notice,.blueprint-notice,.skin-design-notice{padding:40px 0;max-width:660px}
.skin-notice h1,.chassis-notice h1,.blueprint-notice h1,.skin-design-notice h1{margin:20px 0;font-size:40px}

.skin-description,.chassis-identity,.blueprint-description,.skin-design-description{margin:14px 0 0;max-width:640px;font:12px/1.8 var(--mono);color:var(--muted)}
@media(max-width:1200px){}
@media(max-width:900px){}
@media(max-width:520px){}

.holdings{max-width:1500px;margin-inline:auto}
.holdings-tally{display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap;padding:16px 0 15px;border-bottom:1px solid var(--line)}
.holdings-figures{display:flex;gap:26px;margin:0;flex-wrap:wrap}
.holdings-figure dt{font:9px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.holdings-figure dd{margin:4px 0 0;font:700 30px/1 var(--display)}
.holdings-bar{flex:1 1 220px;min-width:160px;padding-bottom:6px}
.holdings-bar-track{display:block;height:12px;background:var(--soft-line);border:1px solid var(--line)}
.holdings-bar-fill{display:block;height:100%;width:var(--holdings-share,0%);background:var(--blue)}
.holdings-bar-text{margin-top:7px;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.holdings-window{margin-top:4px;font:10px/1.6 var(--mono);color:var(--dim)}
.holdings-unread{padding:8px 0;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.holdings-jump{display:none;margin:14px 0 0;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.holdings-browser{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start;padding-top:22px}
.holdings-shelf{min-width:0}
.holdings-filters{display:block;padding:0 0 14px;border-bottom:1px solid var(--soft-line)}
.holdings-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}
.holdings-field{display:block;min-width:0}
.holdings-field--wide{grid-column:1/-1}
.holdings-field span{display:block;font:9px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);padding-bottom:5px}
.holdings-field input,.holdings-field select{width:100%;padding:9px 10px;background:var(--panel);border:1px solid var(--line);color:var(--ink);font:12px var(--mono)}
.holdings-filters-note{margin-top:9px;font:11px/1.7 var(--mono);color:var(--dim)}
.holdings-axis{display:flex;gap:8px;align-items:baseline;padding:8px 0 0;flex-wrap:wrap}
.holdings-axis-label{font:9px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}
.holdings-axis-note{font:11px/1.7 var(--mono);color:var(--dim)}
.holdings-filter-actions{display:flex;gap:10px;padding-top:14px;flex-wrap:wrap}
.holdings-count{margin:16px 0 0;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.holdings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;padding:14px 0 0}
.holdings-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--soft-line);min-width:0}
.holdings-card--inspected{border-color:var(--amber)}
.holdings-card--selected{border-color:var(--blue)}
.holdings-card-art{display:block;width:100%;height:150px;object-fit:cover;background:var(--raised)}
.holdings-art{position:relative;margin:0}
.holdings-art-missing{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;font:9px var(--mono);letter-spacing:.09em;color:var(--dim);background:var(--raised)}
.holdings-art[data-media-state="available"] .holdings-art-missing{display:none}
.holdings-card-copy{display:flex;flex-direction:column;gap:9px;padding:13px 14px 15px;min-width:0}
.holdings-card-name{display:flex;gap:8px;align-items:baseline;min-width:0}
.holdings-glyph{color:var(--amber);font-size:11px}
.holdings-card-name h3{font-size:19px;overflow-wrap:anywhere}
.holdings-card-trail{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:baseline}
.holdings-state{font:9px var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.holdings-state[data-tone="equipped"]{color:var(--blue)}

.holdings-card-actions{display:flex;gap:10px;align-items:center;padding-top:4px;flex-wrap:wrap}
.holdings-press{font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line);padding:4px 0}
.holdings-press--on{color:var(--amber);border-color:var(--amber)}

.holdings-inspector>p.holdings-state{padding:12px 0}

.holdings-state .button{margin-top:14px}

.holdings-legend{margin-top:16px;font:10px/1.8 var(--mono);color:var(--dim)}
.holdings-pager{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 0 0;border-top:1px solid var(--soft-line);margin-top:18px}
.holdings-pager-position{font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}
.holdings-pager-actions{display:flex;gap:10px;flex-wrap:wrap}
.holdings-inspector{min-width:0;padding:20px;background:var(--panel);border:1px solid var(--soft-line);position:sticky;top:16px}
.holdings-inspector-art{display:block;width:100%;height:190px;object-fit:cover;background:var(--raised);margin-top:14px}

.holdings-inspector-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:14px 0 0}
.holdings-fact dt{font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.holdings-fact dd{margin:3px 0 0;font:12px var(--mono);overflow-wrap:anywhere}
.holdings-art-note{margin-top:8px;font:9px var(--mono);letter-spacing:.08em;color:var(--dim)}
.holdings-note{margin-top:10px;font:11px/1.7 var(--mono);color:var(--muted)}
.holdings-warn{margin-top:10px;font:11px/1.7 var(--mono);color:var(--red)}
.holdings-section{padding:18px 0 0}
.holdings-stats-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:14px 0 0}
.holdings-stat dt{font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.holdings-stat dd{margin:3px 0 0;font:700 20px/1.1 var(--display)}
.holdings-stat-absent{font:10px var(--mono);letter-spacing:.1em;color:var(--dim);padding-top:12px}
.holdings-link-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.holdings-link a,.holdings-link--plain{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:11px 12px;background:var(--raised);border-left:2px solid var(--blue)}
.holdings-link--plain{border-left-color:var(--line)}
/* ── TASK-2403.64: THE COMMODITY TILE AND THE TRADE ROW (COMMODITIES, STOREHOUSE) ─────────────
   EVERY SELECTOR IS BASE, NOT SCOPED, and that is deliberate rather than stylistic: these three
   names are drawn by two leaves whose roots differ (.commodityboard and the factory board), so a
   rule written under either root would leave the other's markup at browser defaults. That is the
   failure mode TestEveryDrawnClassHasAReachableRule was written to catch. */
/* a commodity tile's art: the material's own icon, CONTAINED so a square icon is never cropped */

/* the commodity tile when no object store answered: the material's INITIAL, never a broken image */

/* a price row's identity-and-figures cell: the name over its labelled facts, in the row's own grid */
.trade-row-main{display:grid;gap:10px;min-width:0}
/* ── TASK-2403.64: THE SALVAGE REPORT'S INFLOW SERIES AND ITS TWO-SIDED LISTS ─────────────────
   Nine base rules for the SALVAGE REPORT leaf. Base, not scoped, for the same reason the three
   above are: the leaf's root is its own, and every figure here is a share of a named window, so
   the track and its fill must be readable without any container supplying the box. --salvage-share
   and --salvage-sold are set per element by the caller, so the bar is the owner's number and never
   a length the kit invented. */
/* the inflow series: one column per day, its fill the day's own share of the window's heaviest day */
.salvage-chart{display:flex;align-items:flex-end;gap:10px;margin:0;padding:14px 0 0;min-width:0}
/* one day of the inflow series: its bar, its figure and its date label */
.salvage-day{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1 1 0;min-width:0}
/* a day's bar track, anchored at the bottom so a shared height is comparable across days */
.salvage-day-track{display:flex;align-items:flex-end;width:100%;height:110px;background:var(--raised);border:1px solid var(--soft-line)}
/* the day's own fill: the caller's share of the window's heaviest day */
.salvage-day-fill{display:block;width:100%;height:var(--salvage-share,0%);background:var(--blue)}
/* one line of a two-sided list: the label, its share of the window, and its amount */
.salvage-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:baseline;padding:11px 4px;border-bottom:1px solid var(--soft-line);min-width:0}
/* a two-sided total line: what it is on the left, its figure on the right */
.salvage-total{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:9px 4px}
/* what the window sold against what it left: two segments of ONE track, so the split is read at a glance */
.salvage-split{display:flex;height:12px;background:var(--soft-line);border:1px solid var(--line);margin:14px 0 6px}
/* the sold share of the window's units */
.salvage-split-sold{display:block;height:100%;width:var(--salvage-sold,0%);background:var(--amber)}
/* what the window left unsold, which is the rest of the track */
.salvage-split-held{display:block;height:100%;flex:1;background:var(--blue)}

.holdings-link strong{font:700 16px var(--display);overflow-wrap:anywhere}
.holdings-link small{grid-column:1/-1;font:10px var(--mono);color:var(--dim)}
.holdings-labels .mech-labels{padding-top:12px}
.holdings-commands{display:flex;gap:10px;flex-wrap:wrap;padding-top:18px}
.holdings-command-note{margin-top:10px;font:11px/1.7 var(--mono);color:var(--dim)}
.holdings-dialog{width:min(560px,92vw);padding:0;border:1px solid var(--line);background:var(--panel);color:var(--ink)}
.holdings-dialog::backdrop{background:rgba(6,7,8,.7)}
.holdings-dialog-inner{padding:22px}
.holdings-dialog-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:18px;flex-wrap:wrap}
.holdings-danger{border-color:var(--red);color:var(--red)}
.holdings-receipt{margin-top:16px;font:11px/1.7 var(--mono);color:var(--muted);border-left:2px solid var(--amber);padding:10px 12px}
.holdings-tray{margin-top:22px;padding:16px 18px;background:var(--panel);border:1px solid var(--soft-line)}
.holdings-tray-members{margin-top:8px;font:12px/1.7 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.holdings-tray-missing{margin-top:6px;font:10px var(--mono);letter-spacing:.08em;color:var(--dim)}
.holdings-tray-batch{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding-top:12px}
.holdings-tray-batch input[type=text]{flex:1 1 220px;min-width:0;padding:9px 10px;background:var(--raised);border:1px solid var(--line);color:var(--ink);font:12px var(--mono)}
.holdings-tray-actions{padding-top:12px}
@media(max-width:1120px){.holdings-browser{grid-template-columns:minmax(0,1fr) 300px;gap:22px}.holdings-inspector{position:static}}
@media(max-width:900px){.holdings-browser{grid-template-columns:minmax(0,1fr)}.holdings-jump{display:inline-block}.holdings-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}
@media(max-width:680px){.holdings-fields{grid-template-columns:minmax(0,1fr)}.holdings-tally{gap:18px}.holdings-figure dd{font-size:24px}.holdings-grid{grid-template-columns:minmax(0,1fr)}.holdings-inspector{padding:16px}.holdings-inspector-facts,.holdings-stats-list{grid-template-columns:minmax(0,1fr)}}
@media(max-width:360px){.holdings-figure dd{font-size:20px}.holdings-bar{flex-basis:100%}.holdings-card-copy{padding:12px}}

.search{max-width:1180px;margin-inline:auto;padding-top:6px}
.search-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:0 0 16px;border-bottom:1px solid var(--line)}







.search-state--failed h2{color:var(--red)}


















.search-detail--private{color:var(--muted)}



@media(max-width:1120px){}
@media(max-width:900px){}
@media(max-width:680px){}
@media(max-width:360px){}

/* ── INDEX (TASK-2425.8) ──
   The index molecule, and its row. The properties are the ARCHIVE directory's own - the shape was
   measured there and this is that drawing under a name the other surfaces can reach. A row is a
   grid of position, copy and denotation over a rule, and every non-archive surface that draws an
   index takes the row and adds its own look through a DESCENDANT selector rooted at its own page
   class, which is why nothing below names a surface. */
.index{display:block;border-top:1px solid var(--line)}
.index-cell{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:20px;align-items:center;padding:26px 14px;border-bottom:1px solid var(--soft-line)}
.index-cell:hover{background:var(--panel)}
.index-cell-number{font:700 26px var(--display);color:var(--amber)}
.index-cell-copy{min-width:0}
.index-cell-copy h2{font-size:24px}
.index-cell-copy p{margin-top:8px;font:12px/1.8 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.index-cell-arrow{font-size:20px;color:var(--muted)}
@media(max-width:680px){.index-cell{grid-template-columns:40px minmax(0,1fr);gap:12px 14px;padding:20px 10px}.index-cell-arrow{grid-column:2;justify-self:start}.index-cell-copy h2{font-size:20px}}
@media(max-width:360px){.index-cell{grid-template-columns:minmax(0,1fr);padding:18px 8px}.index-cell-number{font-size:22px}.index-cell-arrow{grid-column:1}}

.archive{max-width:1180px;margin-inline:auto;padding-top:6px}
.archive-directory{display:block}











.archive .eyebrow{padding-bottom:8px}
@media(max-width:680px){}
/* ── MECH GANTRY (TASK-2403.47) ──
   The Gantry bench and nothing else: every selector below begins at .gantry, which only this
   document draws, so no dossier and no job page is reached. Two columns lead with the identity
   and the LIVE stage and put the four command panels beside them; below 1000px the grid becomes
   one column in DOM order, which is the ticket's own requirement (identity and stage first,
   controls next, roster last). */
.gantry{display:flex;flex-direction:column;gap:22px;min-width:0}
.gantry .pagehead{align-items:flex-end}
.gantry-state,.gantry-failure{padding:18px 0}.gantry-failure-word{font:700 19px var(--display);letter-spacing:.03em}
.gantry-failure-word{color:var(--red)}
.gantry-failure-line{color:var(--muted);font-size:12px;margin:6px 0 0}
.gantry-notice{font:11px/1.7 var(--mono);color:var(--amber);border-left:2px solid var(--amber);padding:8px 12px;margin:10px 0 0;overflow-wrap:anywhere}
.gantry-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:26px;align-items:start;min-width:0}
.gantry-subject{display:flex;flex-direction:column;gap:16px;min-width:0}
.gantry-subject-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.gantry-subject-head h2{font:700 34px/1.05 var(--display);letter-spacing:.02em;overflow-wrap:anywhere}

.gantry-badge{font:10px var(--mono);color:var(--amber);border:1px solid var(--line);padding:4px 9px;white-space:nowrap;flex:none}
.gantry-stage{position:relative;height:420px;background:var(--panel);border:1px solid var(--line);overflow:hidden}
.gantry-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.gantry-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gantry-placeholder-art{max-width:100%;max-height:100%;object-fit:contain;opacity:.9}
.gantry-placeholder-glyph{font:700 120px var(--display);color:var(--raised)}
.gantry-placeholder-plate{position:absolute;left:14px;right:14px;bottom:26px;height:1px;background:var(--soft-line)}
.gantry-placeholder-baseline{position:absolute;left:0;right:0;bottom:0;height:14px;background:repeating-linear-gradient(90deg,var(--soft-line) 0 1px,transparent 1px 12px)}
.gantry-status{position:absolute;top:12px;left:14px;z-index:1;font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.gantry-tick{position:absolute;top:12px;right:14px;width:12px;height:12px;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.gantry-tick--br{top:auto;right:auto;bottom:12px;left:14px;border:0;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
.gantry-stage-label,.gantry-stage-fallback{font:9px/1.7 var(--mono);color:var(--dim);margin:8px 0 0;overflow-wrap:anywhere}
.gantry-readings{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.gantry-reading{min-width:0}
.gantry-reading-label{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.gantry-reading strong{display:block;font:700 27px var(--display);letter-spacing:.02em;overflow-wrap:anywhere}
.gantry-reading-note{color:var(--dim);font-size:10px}
.gantry-bar{margin-top:6px;height:6px;background:var(--raised)}
.gantry-bar-fill{display:block;height:100%;width:var(--gantry-pct,0%);background:var(--gantry-accent,var(--amber))}
.gantry-links,.gantry-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.gantry-link{font:10px var(--mono);letter-spacing:.06em;color:var(--blue)}
.gantry-link:hover{color:var(--amber)}
.gantry-controls{display:flex;flex-direction:column;gap:18px;min-width:0}

.gantry-press{font:10px var(--mono);letter-spacing:.06em;background:var(--raised);border:1px solid var(--line);padding:8px 13px}
.gantry-press:hover{border-color:var(--amber);color:var(--amber)}
.gantry-press:disabled{border-color:var(--soft-line);color:var(--dim);cursor:not-allowed}
.gantry-press--primary{background:var(--amber);border-color:var(--amber);color:#191b19;font-weight:700}
.gantry-press--primary:hover{background:#f6c66f;color:#0c0e0e}
.gantry-press--danger{border-color:var(--red);color:var(--red)}
.gantry-press--ghost{background:transparent}
.gantry-fit-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--soft-line);min-width:0}
.gantry-fit-art{width:44px;height:44px;object-fit:contain;background:var(--raised)}
.gantry-fit-copy{min-width:0;overflow-wrap:anywhere}
.gantry-paint{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--soft-line);min-width:0}
.gantry-paint-art{width:52px;height:52px;object-fit:contain;background:var(--raised)}
.gantry-paint-copy{min-width:0;overflow-wrap:anywhere}
.gantry-paint-copy h3{font:700 16px var(--display)}
.gantry-paint-copy p{margin-top:3px}
.gantry-link-line{margin-top:5px}
.gantry-energy-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 12px}
.gantry-field,.gantry-energy-field,.gantry-order{display:flex;flex-direction:column;gap:5px;font:9px var(--mono);letter-spacing:.06em;color:var(--muted);min-width:0}
.gantry-input{width:100%;min-width:0;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:8px 9px;font:12px var(--mono)}
.gantry-order-note{font:9px/1.6 var(--mono);color:var(--dim)}
.gantry-orders-form{display:flex;flex-direction:column;gap:11px}
.gantry-ask{margin-top:12px;border:1px solid var(--amber);padding:13px;display:flex;flex-direction:column;gap:9px}
.gantry-ask-title{font:700 12px var(--mono);color:var(--amber)}
.gantry-ask-copy{font-size:12px;color:var(--muted)}
.gantry-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:12px}
.gantry-roster{display:flex;flex-direction:column;gap:14px;min-width:0}
.gantry-roster-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.gantry-roster-head h2{font:700 22px var(--display);letter-spacing:.02em}
.gantry-browse{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.gantry-browse .gantry-field{flex:1 1 200px}
.gantry-roster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}
.gantry-mech{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;padding:14px;border:1px solid var(--line);background:var(--panel);min-width:0}
.gantry-mech--selected{border-color:var(--amber)}
.gantry-mech-art{width:56px;height:56px;object-fit:contain;background:var(--raised)}
.gantry-mech-copy{min-width:0;overflow-wrap:anywhere}
.gantry-mech-copy h3{font:700 17px var(--display)}
.gantry-mech-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gantry-pager{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
@media(max-width:1000px){.gantry-workspace{grid-template-columns:minmax(0,1fr)}.gantry-stage{height:410px}}
@media(max-width:680px){.gantry-roster-grid{grid-template-columns:minmax(0,1fr)}.gantry-subject-head h2{font-size:28px}}
@media(max-width:520px){.gantry-stage{height:290px}.gantry-fit-row,.gantry-paint{grid-template-columns:auto minmax(0,1fr)}.gantry-roster-head{display:block}}
/* ── MARKETPLACE BOARD (TASK-2403.49, reference marketplace-r1) ─────────────────
   APPENDED AT EOF ON PURPOSE, and every rule is scoped under .marketboard so no
   existing component can be reached by it: four lanes share this file and a union of
   two appends is only mechanical when neither one edits a rule above it. Line 1 is
   never touched - it is the minified base sheet. */
.marketboard .pagehead{align-items:end;gap:20px;margin-bottom:26px}
.marketboard .pagehead h1{text-transform:none}
.marketboard .market-wallet{text-align:right}
.marketboard .market-wallet .wallet-label{display:block;font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}
.marketboard .market-wallet strong{display:block;font:700 30px var(--display);margin-top:6px}
.marketboard .market-tabs{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:26px;overflow:auto}
.marketboard .market-tab{font:700 13px var(--display);letter-spacing:.06em;color:var(--muted);padding:17px 24px;border-bottom:2px solid transparent;white-space:nowrap}
.marketboard .market-tab[aria-current=page]{color:var(--amber);border-bottom-color:var(--amber)}
.marketboard .market-toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap}
.marketboard .market-field{font:10px var(--mono);color:var(--muted);display:block;min-width:0}
.marketboard .market-field-search{flex:1;min-width:160px}
.marketboard .market-field input,.marketboard .market-field select{display:block;margin-top:7px;width:100%;background:#17191a;color:var(--ink);border:1px solid var(--line);padding:10px}
.marketboard .market-scope{margin:16px 0;font:10px var(--mono);color:var(--muted)}
.marketboard .market-exchange{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:26px;align-items:start}
.marketboard .market-browse{min-width:0}
.marketboard .market-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.marketboard .market-lot{border:1px solid var(--line);background:#17191a;padding:18px;min-width:0}
.marketboard .market-lot[data-selected=true]{border-color:var(--amber)}
.marketboard .market-lot-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.marketboard .badge{font:9px var(--mono);letter-spacing:.08em;color:var(--blue);white-space:nowrap}
.marketboard .badge-state{color:var(--muted)}
.marketboard .market-lot .media,.marketboard .market-inspector .media{margin:13px 0;min-height:120px;display:grid;place-items:center;background:radial-gradient(ellipse,#232626,transparent 70%);overflow:hidden}
.marketboard .market-lot .media img{max-width:100%;max-height:150px;object-fit:contain}
.marketboard .market-inspector .media img{max-width:100%;max-height:210px;object-fit:contain}
.marketboard .palette{display:flex;justify-content:center;gap:6px;width:100%;padding:12px}
.marketboard .palette span{height:52px;width:28%;border:1px solid #ffffff30}
.marketboard .palette-note{font:9px var(--mono);color:var(--muted);text-align:center}
.marketboard .market-lot h3{font-size:22px;margin-top:4px}
.marketboard .market-lot .id,.marketboard .market-inspector .id{font:10px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.marketboard .market-lot .meta,.marketboard .market-lot .seller,.marketboard .market-inspector .meta{font:10px var(--mono);color:var(--muted);margin-top:8px}
.marketboard .market-lot-price{font:700 26px var(--display);margin-top:12px}
.marketboard .market-lot-price small,.marketboard .market-inspector-price small{font:10px var(--mono);color:var(--muted)}
.marketboard .market-lot-actions{margin-top:15px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.marketboard .link{color:var(--amber);font:10px var(--mono);text-decoration:underline}
/* ── THE PICK ROW (TASK-2430) ─────────────────────────────────────────────────────────────────
   The kit's one "choose one of these" row. Base rules, and `min-width:0` on the row and its name
   so a long mech name wraps inside a narrow column instead of forcing the page wider. */


.pick-row--pressed{border-color:var(--amber);background:#20201c}



/* ── THE BUSY MACHINERY (TASK-2430) ───────────────────────────────────────────────────────────
   The bar a slow request moves. THE UI4 SHELL SHIPPED WITHOUT IT: the body carried no
   hx-indicator and drew no #hx-progress, so no migrated document showed that a press was in
   flight - the reader pressed, nothing moved, and the answer appeared whenever it arrived.
   The UI3 shell has had both since the port began (platform/ui3/menu_foundations.go), and this
   is the same pair in this kit's own class: htmx adds .htmx-request to the element named by
   hx-indicator while a request is out, which is the only thing that reveals the bar. */
.progress{position:fixed;inset:0 0 auto;height:3px;z-index:100;opacity:0;background:var(--amber)}
.htmx-request .progress,.progress.htmx-request{opacity:1}
.marketboard .link-plain{color:var(--muted);text-decoration:none}
.marketboard .market-inspector{position:sticky;top:20px;max-height:calc(100vh - 40px);overflow-y:auto;border-top:2px solid var(--amber);background:#17191a;padding:22px;min-width:0;scrollbar-color:var(--line) transparent}
.marketboard .market-inspector:focus{outline:none}
.marketboard .market-inspector:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
.marketboard .market-inspector h2{font-size:30px;margin-top:8px}
.marketboard .market-inspector-price{font:700 34px var(--display);margin:18px 0}
.marketboard .market-inspector p{color:var(--muted);font-size:12px;margin-top:12px}
.marketboard .market-inspector .note{border-left:2px solid var(--amber);padding:12px;background:#20201c;margin-top:16px}
.marketboard .market-inspector-actions{margin-top:18px;display:grid;gap:10px}
.marketboard .market-inspector-secondary{margin-top:10px;display:flex;gap:14px;flex-wrap:wrap}
.marketboard .facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--line);padding-top:16px;margin-top:16px}
.marketboard .fact span{display:block;font:9px var(--mono);color:var(--muted);margin-bottom:5px}
.marketboard .fact strong{font:500 19px var(--display)}
.marketboard .health{margin-top:16px;font:11px var(--mono)}
.marketboard .health-unknown{color:var(--muted)}
.marketboard .bar{height:6px;background:var(--line);margin-top:9px}
.marketboard .bar span{height:100%;display:block;background:var(--amber)}
.marketboard .market-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap}
.marketboard .market-pager span{font:10px var(--mono);color:var(--muted)}
.marketboard .market-review{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;margin:auto;border:1px solid var(--amber);background:#191b1d;color:var(--ink);padding:28px;box-shadow:0 20px 60px #0009}
.marketboard .market-review::backdrop{background:#000c}
.marketboard .market-review h2{font-size:34px;margin:8px 0 14px}
.marketboard .market-review>.id,.marketboard .market-receipt>.id{font:10px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.marketboard .market-review>p{color:var(--muted);font-size:12px;line-height:1.6;margin-top:18px}
.marketboard .market-review .facts{border:0;padding:0;margin:20px 0 0}
.marketboard .market-review .fact strong{color:var(--ink)}
.marketboard .market-review-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}
.marketboard .market-receipt{border:1px solid var(--amber);background:#191b1d;padding:18px;margin-bottom:22px}
.marketboard .market-receipt h2{font-size:24px}
.marketboard .market-receipt p{color:var(--muted);margin-top:8px}
.marketboard .market-receipt .links{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px}
.marketboard .market-state{padding:24px 0;border-top:1px solid var(--line)}
.marketboard .market-state h2{font-size:26px}
.marketboard .market-state p{color:var(--muted);margin-top:12px}
.marketboard .market-state .button{margin-top:14px}
.marketboard .market-state[data-market-state=unread] h2{color:var(--amber)}
.marketboard .market-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;font:9px var(--mono);color:var(--muted)}
.marketboard .button.small{font-size:10px;padding:9px 12px}

/* Trade boards share the exchange palette without borrowing Marketplace's grid. */
.trade-index-head{padding:18px 0 32px;border-bottom:1px solid var(--line)}
.trade-index-head h1{margin:17px 0 22px;font:700 clamp(59px,7vw,105px)/.86 var(--display);letter-spacing:-.025em}
.trade-index-head h1 em{color:var(--amber);font-style:normal}
.trade-index-head p{max-width:57ch;color:var(--muted);font-size:13px}
.trade-index-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:24px;border:1px solid var(--line);background:var(--line)}
.trade-index-card{position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:190px;padding:24px;background:#1b2020;overflow:hidden;min-width:0;transition:background .15s ease}
.trade-index-card:hover{background:#262d2c}
.trade-index-card--hero{grid-column:1/-1;min-height:240px;background:radial-gradient(circle at 88% 40%,#b2863229,transparent 40%),linear-gradient(115deg,#242a29,#1b2020 65%)}
.trade-index-card .trade-index-num{font:10px var(--mono);letter-spacing:.1em;color:var(--amber)}
.trade-index-card strong{margin-top:auto;font:700 clamp(29px,3.7vw,54px)/.96 var(--display);text-transform:uppercase}
.trade-index-card>span:nth-last-of-type(1){max-width:42ch;margin-top:10px;color:var(--muted);font-size:12px}
.trade-index-card b{margin-top:20px;padding-top:11px;border-top:1px solid var(--line);font:10px var(--mono);letter-spacing:.07em;color:var(--amber)}
.trade-index-card--hero strong{font-size:clamp(47px,5.7vw,83px)}
.trade-commodities .pagehead h1,.trade-auction .pagehead h1{font:700 clamp(54px,5.6vw,78px)/.9 var(--display);letter-spacing:-.025em}
.trade-commodities .pagehead p,.trade-auction .pagehead p{color:var(--muted);font-size:13px}
.trade-commodities .market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.trade-commodities .market-lot{display:flex;flex-direction:column;min-height:335px;padding:22px;background:radial-gradient(circle at 94% 7%,#64736f1a,transparent 36%),#1a1f1f;border:0}
.trade-commodities .market-lot h2{font:700 clamp(28px,3vw,40px)/.98 var(--display);text-transform:uppercase}
.trade-commodities .market-lot dl{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:8px;margin-top:23px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trade-commodities .market-lot dt{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.trade-commodities .market-lot dd{margin:0;font:700 18px var(--display);text-align:right}
.trade-commodities .market-lot dd:first-of-type{font-size:31px;color:var(--amber)}
.trade-commodity-actions{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:22px}
.trade-commodity-actions label,.trade-bid-actions label{display:grid;gap:6px;flex:1 1 140px;font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.trade-commodity-actions input,.trade-bid-actions input{width:100%;min-height:41px;padding:9px;border:1px solid var(--line);background:#111617;color:var(--text);font:14px var(--mono)}
.trade-commodity-actions .button,.trade-bid-actions .button{min-height:41px;padding:10px 16px}
.trade-commodity-actions .button:nth-last-child(2),.trade-bid-actions .button{border-color:var(--amber);background:var(--amber);color:#17191a}
.trade-auction .market-grid{grid-template-columns:minmax(0,1fr);gap:14px}
.trade-auction .market-lot{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);align-items:start;gap:12px 25px;min-height:350px;padding:25px;border-top:2px solid var(--amber);background:radial-gradient(circle at 23% 60%,#b585281c,transparent 36%),#1b2020}
.trade-auction .market-lot>.badge{grid-column:1;grid-row:1;color:var(--amber)}
.trade-auction .market-lot>h2{grid-column:1;grid-row:2;font:700 clamp(38px,5vw,72px)/.9 var(--display);text-transform:uppercase}
.trade-auction .market-lot>h2 a{color:inherit}.trade-auction .market-lot>h2 a:hover{color:var(--amber)}
.trade-auction .market-lot>dl{grid-column:2;grid-row:1/4;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:17px;border:1px solid var(--line);background:#202525}
.trade-auction .market-lot dt{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.trade-auction .market-lot dd{margin:0;text-align:right;font:700 18px var(--display)}
.trade-auction .market-lot dd:first-of-type{font-size:33px;color:var(--amber)}
.trade-auction .market-lot>p{grid-column:1;grid-row:3;font:700 16px var(--display);color:var(--amber)}
.trade-bid-actions{grid-column:2;grid-row:4;display:flex;align-items:end;gap:8px}
@media(max-width:800px){.trade-index-grid{grid-template-columns:1fr}.trade-index-card--hero{grid-column:1}.trade-auction .market-lot{grid-template-columns:1fr}.trade-auction .market-lot>.badge,.trade-auction .market-lot>h2,.trade-auction .market-lot>dl,.trade-auction .market-lot>p,.trade-bid-actions{grid-column:1;grid-row:auto}.trade-commodities .market-grid{grid-template-columns:1fr}}
@media(max-width:450px){.trade-index-card strong{font-size:clamp(25px,8vw,33px)}.trade-index-card--hero strong{font-size:clamp(28px,9vw,39px)}.trade-commodity-actions label{flex-basis:100%}.trade-auction .market-lot>dl{grid-template-columns:1fr;gap:3px}.trade-auction .market-lot dd{margin-bottom:12px;text-align:left}.trade-auction .market-lot dd:last-child{margin-bottom:0}}

#trade-salvage-report .pagehead h1,#trade-storefront .pagehead h1{font:700 clamp(52px,5.6vw,78px)/.9 var(--display);letter-spacing:-.025em}
#trade-salvage-report .pagehead p,#trade-storefront .pagehead p{font-size:13px;color:var(--muted)}
#trade-salvage-report .collection>.panel,#trade-storefront .collection>.panel{background:#1a1e1f;border-color:var(--line)}
#trade-salvage-report .collection>.panel:first-of-type{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:90px;background:repeating-linear-gradient(90deg,transparent 0,transparent 95px,#ffffff07 96px),#1b2020}
#trade-salvage-report .collection>.panel:first-of-type .panel-head{border:0;padding:0}
#trade-salvage-report .holdings-figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
#trade-salvage-report .holdings-figure{display:grid;align-content:start;gap:5px;min-height:115px;padding:17px;background:#202526}
#trade-salvage-report .holdings-figure dd{font-size:clamp(24px,2.7vw,40px);color:var(--amber)}
#trade-salvage-report .holdings-browser{gap:20px;grid-template-columns:minmax(0,1fr) minmax(250px,31%);padding-top:0}
#trade-salvage-report .holdings-browser>.panel{min-height:220px;background:#1a1e1f}
#trade-salvage-report .holdings-browser>.panel h3,#trade-salvage-report .collection>.panel h3{font:700 24px var(--display);text-transform:uppercase}
#trade-salvage-report .salvage-chart{min-height:180px;align-items:end}
#trade-salvage-report .salvage-day-track{height:140px;background:repeating-linear-gradient(0deg,#ffffff0a 0 1px,transparent 1px 28px),#202526}
#trade-salvage-report .salvage-day-fill{background:var(--amber)}
#trade-salvage-report .salvage-split{height:14px;margin:26px 0 15px}
#trade-salvage-report .salvage-total{font:11px var(--mono);border-bottom:1px solid var(--line)}
#trade-salvage-report .salvage-total strong{font:700 16px var(--display)}
#trade-storefront .collection>.panel{padding:21px}
#trade-storefront .collection>.panel>.panel-head h2{font:700 28px var(--display)}
#trade-storefront .collection-rows{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
#trade-storefront .collection-row[data-slot]{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(150px,22%) auto;align-items:start;gap:18px;min-height:155px;padding:19px;background:#202525}
#trade-storefront .collection-row[data-slot]>.pill{font:9px var(--mono);letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);padding:6px;text-align:center}
#trade-storefront .trade-row-main h3{font:700 27px var(--display);text-transform:uppercase}
#trade-storefront .trade-row-main>.meta{font:10px var(--mono);color:var(--muted)}
#trade-storefront .holdings-stats-list{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:5px;gap:10px}
#trade-storefront .holdings-fact{border-top:1px solid var(--line);padding-top:7px}
#trade-storefront .holdings-fact dd{font:700 16px var(--display)}
#trade-storefront .collection-row>.holdings-figures{display:block}
#trade-storefront .holdings-figure dd{font-size:clamp(23px,2.8vw,39px);color:var(--amber);white-space:nowrap}
#trade-storefront .holdings-card-actions .button{min-height:41px;padding:10px 15px;border-color:var(--amber);background:var(--amber);color:#17191a}
#trade-storefront .collection-row>.holdings-card-actions{justify-content:flex-end}
@media(max-width:900px){#trade-salvage-report .holdings-figures{grid-template-columns:repeat(2,minmax(0,1fr))}#trade-storefront .collection-row[data-slot]{grid-template-columns:minmax(0,1fr) auto}#trade-storefront .collection-row[data-slot]>.pill{grid-column:1/-1;justify-self:start}#trade-storefront .collection-row>.holdings-figures{grid-column:1}#trade-storefront .collection-row>.holdings-card-actions{grid-column:2;grid-row:3}}
@media(max-width:680px){#trade-salvage-report .holdings-browser{grid-template-columns:1fr}#trade-salvage-report .collection>.panel:first-of-type{display:block}#trade-storefront .collection-row[data-slot]{gap:12px}#trade-storefront .trade-row-main{grid-column:1/-1}#trade-storefront .collection-row>.holdings-figures{grid-column:1;grid-row:auto}#trade-storefront .collection-row>.holdings-card-actions{grid-column:2;grid-row:auto}}

.trade-record .pagehead{display:grid;gap:12px;padding:13px 0 24px;border-bottom:1px solid var(--line)}
.trade-record .pagehead h1{font:700 clamp(50px,6vw,84px)/.9 var(--display);text-transform:uppercase;letter-spacing:-.025em}
.trade-record .pagehead p{font-size:13px;color:var(--muted)}
.trade-record-return{display:inline-flex;width:max-content;margin-top:13px;font:10px var(--mono);letter-spacing:.1em;color:var(--amber);text-decoration:underline;text-underline-offset:4px}
.trade-record>.id{padding:15px 0;font:10px var(--mono);letter-spacing:.04em;color:var(--muted);overflow-wrap:anywhere}
.trade-record .market-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:#202525}
.trade-record-fact{display:grid;align-content:start;gap:6px;min-height:92px;padding:17px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#202525;min-width:0}
.trade-record-fact dt{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.trade-record-fact dd{margin:0;font:700 22px/1.1 var(--display);overflow-wrap:anywhere}
.trade-record .market-facts>.trade-record-fact:nth-child(4) dd{color:var(--amber)}
.trade-record>nav[aria-label="Related records"]{display:flex;gap:12px;flex-wrap:wrap;padding:17px 0;border-bottom:1px solid var(--line)}
.trade-record>nav[aria-label="Related records"] a,.trade-record .market-row>a{font:10px var(--mono);color:var(--amber);text-decoration:underline;text-underline-offset:3px}
.trade-record .market-section{padding:24px 0;margin-top:20px;border-top:1px solid var(--line);border-bottom:0}
.trade-record .market-section h2{font:700 27px var(--display);text-transform:uppercase}
.trade-record .market-section>p{padding:35px;border:1px solid var(--line);background:#1d2222;color:var(--muted);font:11px var(--mono);letter-spacing:.07em}
.trade-record .market-row{display:grid;gap:12px;padding:17px;border:1px solid var(--line);background:#1d2222}
.trade-record .market-row h3{font:700 21px var(--display)}
.trade-record .market-row>p{color:var(--muted)}
.trade-record .market-row dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
.trade-record-notice,.market[data-entity="marketplace-listing"]>.market-notice{display:grid;align-content:center;gap:15px;max-width:none;min-height:360px;padding:34px;border:1px solid var(--line);border-top:3px solid var(--amber);background:radial-gradient(circle at 85% 30%,#b88c2f1d,transparent 38%),#1b2020}
.trade-record-notice h1,.market[data-entity="marketplace-listing"]>.market-notice h1{margin:0;font:700 clamp(41px,5vw,69px)/.94 var(--display);text-transform:uppercase}
.trade-record-notice p,.market[data-entity="marketplace-listing"]>.market-notice p{color:var(--muted)}
@media(max-width:750px){.trade-record .market-facts,.trade-record .market-row dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){.trade-record .market-facts,.trade-record .market-row dl{grid-template-columns:minmax(0,1fr)}.trade-record-notice,.market[data-entity="marketplace-listing"]>.market-notice{padding:22px;min-height:290px}}
@media(max-width:1050px){.marketboard .market-exchange{grid-template-columns:minmax(0,1fr)}.marketboard .market-inspector{position:static;grid-row:1;max-height:none;overflow:visible}.marketboard .market-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:550px){.marketboard .pagehead{display:grid;justify-content:stretch;gap:28px}.marketboard .market-wallet{text-align:left}.marketboard .market-tab{flex:1;padding:15px 8px;font-size:10px;text-align:center}.marketboard .market-field-search{flex-basis:100%}.marketboard .market-toolbar .button{width:100%}.marketboard .facts{gap:10px}.marketboard .fact strong{font-size:17px}.marketboard .market-review{padding:20px}.marketboard .market-review-actions .button{flex:1}}

/* ── ROTATIONS (TASK-2403.55, reference rotations-r1) ──────────────────────────────────────
   EVERY SELECTOR IS SCOPED UNDER .rotations, which is the root class the leaf's own body
   carries, so nothing here can reach another surface. The sheet's own tokens (--mono,
   --display, --amber, --muted, --line, --soft-line) and its shared .button / .badge / .facts /
   .note / .bar classes are reused rather than restated: this block owns the LAYOUT of the
   rotations board and nothing else.

   THE EXACT AMOUNTS WRAP. .rot-amount wraps rather than truncates at 320px, because a spend
   limit that is elided is the one field a reader cannot safely review. */
.rotations{max-width:1500px;margin-inline:auto}
.rotations .rot-alpha{display:grid;gap:6px;text-align:right;font:10px var(--mono);color:var(--muted)}
.rotations .rot-alpha strong{font:700 14px var(--display);color:var(--ink,#e9edee)}
.rotations .rot-state{padding:26px 0;border-top:1px solid var(--line)}
.rotations .rot-state h2{font-size:26px}
.rotations .rot-state p{color:var(--muted);margin-top:12px}
.rotations .rot-state .button{margin-top:14px}
.rotations .rot-state[data-rot-state=unread] h2{color:var(--amber)}
.rotations .rot-banner{border-left:3px solid var(--amber);padding:12px 14px;background:#20201c;margin-bottom:18px;font-size:12px}
.rotations .rot-banner[data-rot-banner=refused]{border-color:#c0554f}
.rotations .rot-banner[data-rot-banner=paused]{border-color:#c0554f}
.rotations .rot-clock{border-top:2px solid var(--amber);padding:18px 0;margin-bottom:20px}
.rotations .rot-clock h2{font-size:20px}
.rotations .rot-clock-value{font:700 34px var(--display);margin-top:8px}
.rotations .rot-clock-value[data-rot-clock=waiting]{font-size:22px;color:var(--muted);letter-spacing:.06em}
.rotations .rot-clock .note{margin-top:8px}
.rotations .rot-strips{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:22px}
.rotations .rot-strip{display:grid;gap:8px}
.rotations .rot-strip-label{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.rotations .rot-strip-count{font:700 26px var(--display);white-space:nowrap}
.rotations .rot-strip-count.rot-unread{font-size:15px;color:var(--muted);letter-spacing:.05em}
.rotations .rot-cells{display:flex;gap:4px}
.rotations .rot-cells span{height:8px;flex:1;background:#22282a;border:1px solid var(--soft-line)}
.rotations .rot-cells span[data-filled=true]{background:var(--amber);border-color:var(--amber)}
.rotations .rot-strip[data-rot-strip=flight] .rot-cells span[data-filled=true]{background:#7fb6c9;border-color:#7fb6c9}
.rotations .rot-strip-note{font:9px var(--mono);color:var(--muted);line-height:1.6}
.rotations .rot-plan,.rotations .rot-notices,.rotations .rot-list{border-top:1px solid var(--line);padding-top:18px;margin-bottom:26px}
.rotations .rot-plan h2,.rotations .rot-notices h2,.rotations .rot-list h2{font-size:22px;display:inline-block;margin-right:12px}
.rotations .rot-plan .badge,.rotations .rot-notices .badge,.rotations .rot-list .badge{font:10px var(--mono);letter-spacing:.06em;border:1px solid var(--line);padding:4px 8px}
.rotations .rot-plan[data-rot-plan=unsaved-draft] .badge{border-color:var(--amber);color:var(--amber)}
.rotations .rot-field{display:grid;gap:7px;margin-top:16px}
.rotations .rot-field label{font:10px var(--mono);letter-spacing:.07em;color:var(--muted)}
.rotations .rot-amount{font:700 20px var(--display);background:#14181a;border:1px solid var(--soft-line);color:inherit;padding:10px 12px;width:100%;min-width:0;overflow-wrap:anywhere}
.rotations .rot-field[data-rot-invalid=true] .rot-amount{border-color:#c0554f}
.rotations .rot-field[data-rot-invalid=true] label{color:#c0554f}
.rotations .rot-health{display:grid;gap:10px;margin-top:20px}
.rotations .rot-health-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}
.rotations .rot-lapse{border-left:2px solid var(--amber);padding:10px 12px;background:#20201c}
.rotations .rot-health-mode{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:14px;font:11px var(--mono)}
.rotations .rot-choice{display:inline-flex;align-items:center;gap:8px}
.rotations .rot-percent{width:88px;background:#14181a;border:1px solid var(--soft-line);color:inherit;padding:8px}
.rotations .rot-plan-form{display:grid}
.rotations .rot-plan-actions,.rotations .rot-review-actions,.rotations .rot-list-actions,.rotations .rot-notices-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.rotations .rot-disclosure{font:9px var(--mono);letter-spacing:.05em;color:var(--muted);line-height:1.7;border-top:1px solid var(--soft-line);padding-top:12px;margin-top:16px}
.rotations .rot-review,.rotations .rot-receipt{border:1px solid var(--amber);padding:18px;margin-bottom:22px}
.rotations .rot-review h2,.rotations .rot-receipt h2{font-size:24px}
.rotations .rot-review h3{font:10px var(--mono);letter-spacing:.08em;color:var(--muted);margin-top:16px}

.rotations .rot-outcome{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;border-bottom:1px solid var(--soft-line);padding-bottom:8px}
.rotations .rot-outcome-name{font:700 16px var(--display)}
.rotations .rot-outcome-state{font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}
.rotations .rot-outcome[data-rot-outcome=unknown] .rot-outcome-state{color:#c0554f}
.rotations .rot-outcome[data-rot-outcome=not-sent] .rot-outcome-state{color:var(--muted)}
.rotations .rot-stale{border-left:2px solid #c0554f;padding:10px 12px;background:#20201c}
.rotations .rot-notices[data-rot-notices=unread] .rot-unread{color:var(--amber)}
.rotations .rot-sort{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:14px 0}
.rotations .rot-sort select{background:#14181a;border:1px solid var(--soft-line);color:inherit;padding:8px}
.rotations .rot-rows{display:grid;gap:12px}
.rotations .rot-row{border-top:1px solid var(--soft-line);padding:14px 0}
.rotations .rot-row[data-selected=true]{background:#1d2224;box-shadow:inset 3px 0 0 var(--amber)}
.rotations .rot-row-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.rotations .rot-row-identity{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;min-width:0}
.rotations .rot-name{font:700 18px var(--display);overflow-wrap:anywhere}
.rotations .rot-art{width:100%;max-width:220px;aspect-ratio:1;object-fit:cover;margin-top:12px;background:#14181a}
.rotations .rot-meter{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:12px;font:11px var(--mono)}
.rotations .rot-meter .bar{flex:1;min-width:120px;margin-top:0}
.rotations .rot-gate{color:var(--muted)}
.rotations .rot-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;flex-wrap:wrap;font:10px var(--mono);color:var(--muted)}
.rotations .rot-pager .button{margin-top:0}
.rotations .rot-missing-note{display:flex;flex-wrap:wrap;gap:10px;border-left:2px solid #c0554f;padding:10px 12px;background:#20201c}
.rotations .rot-missing{font:10px var(--mono);overflow-wrap:anywhere}
.rotations .rot-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;font:9px var(--mono);color:var(--muted)}
.rotations .button.small{font-size:10px;padding:9px 12px}
.rotations .facts{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.rotations .rot-row .facts,.rotations .rot-review .facts,.rotations .rot-notices .facts{display:grid;gap:12px;border-top:1px solid var(--soft-line);padding-top:12px;margin-top:14px}
@media(max-width:1050px){.rotations .rot-plan,.rotations .rot-notices{order:0}}
@media(max-width:550px){.rotations .rot-health-mode,.rotations .rot-sort{flex-direction:column;align-items:stretch}.rotations .rot-strip-count{font-size:22px}.rotations .rot-amount{font-size:17px}.rotations .button{width:100%;text-align:center}}
/* ── GANTRY CONFIGURATION (TASK-2403.53) ── */
/* The layout is the reference's own: the selected-mech anchor first, the two editors beside it,
   and one column at and below 900px in exactly that order. Placement only — the copy, the values
   and every claim arrive as props. */
.gantry-config-layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:20px;align-items:start;min-width:0}
.gantry-config-intro{margin:0 0 16px}
.gantry-config-intro h2{margin:2px 0 4px}
.gantry-config-work{display:grid;gap:18px;min-width:0}
.gantry-config-subject{border:1px solid var(--line);background:var(--panel);padding:16px;display:grid;gap:12px;min-width:0}
.gantry-config-subject-head h2{margin:2px 0 0;font-size:26px;overflow-wrap:anywhere}
.gantry-config-subject .gantry-subject-art,.gantry-config-subject .gantry-art-fallback{width:100%;aspect-ratio:1/1;object-fit:contain;border:1px solid var(--soft-line);background:var(--raised);display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.gantry-config-state{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--amber);overflow-wrap:anywhere}
.gantry-config-pick{display:grid;gap:8px}
.gantry-config-anchor{display:block}
.gantry-config-read-tools{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.gantry-notice--error{border-color:var(--red)}
.gantry-notice h3,.gantry-notice strong{margin:0 0 4px;display:block}
.gantry-notice p{margin:0}
.gantry-bias-form,.gantry-slots-form{display:grid;gap:12px;min-width:0}
.gantry-split{display:flex;height:16px;border:1px solid var(--soft-line);background:var(--raised);overflow:hidden}
.gantry-segment{display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;color:var(--bg);min-width:0}
.gantry-segment--weapons{background:var(--amber)}
.gantry-segment--movement{background:var(--blue)}
.gantry-segment--shields{background:var(--muted)}
.gantry-share-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gantry-share{display:grid;gap:4px;font-family:var(--mono);font-size:12px}
.gantry-share .gantry-input{width:100%}
.gantry-weight{font-family:var(--mono);font-size:11px;color:var(--muted)}
.gantry-dividers{display:grid;gap:10px}
.gantry-divider{display:grid;gap:4px;font-family:var(--mono);font-size:12px}
.gantry-range{width:100%}
.gantry-validation{font-family:var(--mono);font-size:12px;color:var(--muted)}
.gantry-validation--bad{color:var(--red)}
.gantry-outlook{border:1px solid var(--soft-line);background:var(--raised);padding:14px;display:grid;gap:10px;min-width:0}
.gantry-outlook-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.gantry-outlook-head h3{margin:0;font-size:15px;font-family:var(--display);letter-spacing:.08em}
.gantry-rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gantry-rate{display:grid;gap:4px;min-width:0}
.gantry-slots{display:grid;gap:10px}
.gantry-slot{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,180px);gap:12px;align-items:center;border-top:1px solid var(--soft-line);padding-top:10px;min-width:0}
.gantry-slot-number{font-family:var(--mono);font-size:16px;color:var(--muted)}
.gantry-slot-saved{display:grid;gap:2px;min-width:0;overflow-wrap:anywhere}
.gantry-slot-draft{display:grid;gap:4px;font-family:var(--mono);font-size:12px;min-width:0}
.gantry-summary{margin:0}
.gantry-review{border:1px solid var(--amber);background:var(--raised);padding:16px;display:grid;gap:10px;min-width:0}
.gantry-review h3{margin:0}
.gantry-changes{display:grid;gap:6px}
.gantry-change{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-family:var(--mono);font-size:13px}
@media(max-width:900px){.gantry-config-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.gantry-share-inputs,.gantry-rates{grid-template-columns:minmax(0,1fr)}.gantry-slot{grid-template-columns:auto minmax(0,1fr)}}
.repair-bay{display:flex;flex-direction:column;gap:18px;min-width:0}
.repair-head{display:flex;flex-direction:column;gap:6px}
.repair-head h1{font:700 34px var(--display);letter-spacing:.02em}
.repair-head p{color:var(--muted);max-width:70ch}
.repair-notice{border:1px solid var(--line);background:var(--panel);padding:16px;display:flex;flex-direction:column;gap:8px}
.repair-notice--amber{border-color:var(--amber)}
.repair-notice--failed{border-color:var(--red)}
.repair-notice h2{font:700 18px var(--display)}
.repair-notice p,.repair-inline-failure p{color:var(--muted)}
.repair-inline-failure{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px dashed var(--line)}
.repair-panel-meta{display:flex;gap:10px;flex-wrap:wrap}
.repair-inspect{font:10px var(--mono);color:var(--cyan)}
.repair-bay-workspace{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:18px;align-items:start;min-width:0}
.repair-bay-station-column{display:flex;flex-direction:column;gap:18px;min-width:0}
.repair-rack{display:flex;flex-wrap:wrap;gap:10px}
.repair-slot{border:1px solid var(--line);background:var(--raised);padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:170px;flex:1 1 170px}
.repair-slot--open{border-style:dashed;color:var(--dim)}
.repair-slot--manual{border-color:var(--green)}
.repair-slot--auto{border-color:var(--violet)}
.repair-slot--unclassified{border-color:var(--amber)}
.repair-slot-label{font:10px var(--mono);color:var(--dim);letter-spacing:.08em}
.repair-slot-name{font:700 14px var(--display)}
repair-slot-meta,.repair-slot-clock{font:10px/1.5 var(--mono);color:var(--muted)}
.repair-search{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}
.repair-search label{font:10px var(--mono);color:var(--dim);text-transform:uppercase}
.repair-search input{background:var(--raised);border:1px solid var(--line);color:var(--ink);padding:8px 9px;font:12px var(--mono)}
.repair-filters{display:flex;flex-wrap:wrap;gap:8px}
.repair-roster{display:flex;flex-direction:column;gap:10px}
.repair-row{display:flex;flex-direction:column;gap:6px;text-align:left;width:100%;border:1px solid var(--line);background:var(--raised);padding:11px 12px;color:inherit}
.repair-row--selected{border-color:var(--amber)}
.repair-row-name{font:700 15px var(--display)}
.repair-row-tags{display:flex;flex-wrap:wrap;gap:6px}
.repair-row-facts{display:flex;flex-direction:column;gap:3px;font:11px var(--mono);color:var(--muted)}
.repair-row-link{font:10px var(--mono);color:var(--cyan)}
.repair-cost{color:var(--amber)}

.repair-empty{border:1px dashed var(--line);padding:16px;display:flex;flex-direction:column;gap:6px;color:var(--muted)}
.repair-pager{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.repair-button--off{opacity:.45;pointer-events:none}
.repair-station-head{display:flex;flex-direction:column;gap:4px}
.repair-station-head h2{font:700 26px var(--display)}
.repair-station-chassis{font:12px var(--mono);color:var(--muted)}
.repair-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.repair-fact{display:flex;flex-direction:column;gap:4px}
.repair-fact-label{font:10px var(--mono);color:var(--dim);letter-spacing:.08em;text-transform:uppercase}
.repair-fact strong{font:700 16px var(--display)}
.repair-meter{display:flex;align-items:center;gap:8px}
.repair-meter-cells{display:flex;gap:2px}
.repair-cell{width:11px;height:9px;background:var(--line);display:inline-block}
.repair-cell--on{background:var(--green)}
.repair-meter-value{font:11px var(--mono);color:var(--muted)}
.repair-routes{display:flex;flex-direction:column;gap:12px}
.repair-route{display:flex;flex-direction:column;gap:7px;border:1px solid var(--line);background:var(--raised);padding:12px}
.repair-route--guarded{border-style:dashed;opacity:.75}
.repair-route-label{font:700 13px var(--mono);letter-spacing:.06em;color:var(--green)}
.repair-route-copy{font-size:12px;color:var(--muted)}
.repair-route-terms{display:flex;flex-wrap:wrap;gap:10px}
.repair-route-term{font:10px var(--mono);color:var(--dim)}
.repair-press{border:1px solid var(--green);background:transparent;color:var(--green);padding:8px 12px;font:11px var(--mono);letter-spacing:.06em}
.repair-press--primary{background:var(--green);color:#04120b}
.repair-press:disabled{opacity:.45;cursor:not-allowed}
.repair-pot-form{display:flex;flex-direction:column;gap:7px}
.repair-pot-form label{font:10px var(--mono);color:var(--dim);text-transform:uppercase}
.repair-pot-form input{background:var(--raised);border:1px solid var(--line);color:var(--ink);padding:7px 8px;font:12px var(--mono)}
.repair-receipt{border:1px solid var(--amber);padding:12px;display:flex;flex-direction:column;gap:6px}
.repair-receipt-title{font:700 12px var(--mono);color:var(--amber)}
.repair-receipt p,.repair-receipt-pot small{font:11px var(--mono);color:var(--muted)}
.repair-receipt-pot{display:flex;flex-direction:column;gap:2px;color:var(--cyan);font:11px var(--mono)}
.repair-lift{display:flex;flex-direction:column;gap:6px}
.repair-lift-name{font:700 17px var(--display)}
.repair-links{display:flex;flex-wrap:wrap;gap:12px}
.repair-link{font:10px var(--mono);color:var(--cyan)}
.repair-handoff-mechs{display:flex;flex-wrap:wrap;gap:10px}
.repair-handoff-mech{display:flex;flex-direction:column;font:11px var(--mono);color:var(--cyan)}
@media(max-width:1000px){.repair-bay-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:520px){.repair-slot{min-width:0;flex:1 1 100%}.repair-cell{width:8px}}
:root{--green:#7ec98f;--violet:#b49bff;--cyan:#8fd0d8}
.repair-row{display:flex;flex-direction:column;gap:6px;text-align:left;width:100%;border:1px solid var(--line);background:var(--raised);padding:11px 12px;color:inherit}
.repair-row--selected{border-color:var(--amber)}
.repair-row-pick{display:flex;flex-direction:column;gap:6px;text-align:left;width:100%;border:0;background:transparent;color:inherit;padding:0;font:inherit}
/* TASK-2403.54 (reference tours-r1): the TOURS board. EVERY selector is scoped under
   .toursboard, so this block cannot reach any other surface, and it is appended at EOF
   because four lanes share this file. */
.toursboard{display:block;min-width:0}
.toursboard .tours-head{min-width:0}
.toursboard .pagehead-blurb{max-width:70ch}
.toursboard .tours-consequence{border-left:2px solid var(--amber);background:#20201c;padding:12px 14px;color:var(--ink);font-size:12px;margin-top:12px}
.toursboard .tours-poll{display:none}
.toursboard .tours-stale{border-left:2px solid var(--amber);background:#20201c;padding:12px 14px;font:11px var(--mono);color:var(--amber)}
.toursboard .tours-scope{font:10px var(--mono);color:var(--muted);margin:14px 0}
.toursboard .tours-writes-stopped{border:1px solid var(--line);padding:12px 14px;font:11px var(--mono);color:var(--muted)}
.toursboard .tours-linesband{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:24px}
.toursboard .tours-lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.toursboard .tours-line{border:1px solid var(--line);background:#17191a;padding:16px;min-width:0}
.toursboard .tours-line.bc{border-top:2px solid var(--blue)}
.toursboard .tours-line.zhi{border-top:2px solid var(--blue)}
.toursboard .tours-line.rm{border-top:2px solid var(--blue)}
.toursboard .tours-line-head{display:flex;align-items:center;gap:10px}
.toursboard .tours-line-name{font:700 14px var(--display);letter-spacing:.06em}
.toursboard .tours-line-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.toursboard .tours-line-figs dt{display:block;font:9px var(--mono);color:var(--muted)}
.toursboard .tours-line-figs dd{font:500 24px var(--display);margin-top:4px}
.toursboard .tours-line-unread{font:10px var(--mono);color:var(--muted);margin-top:12px}
.toursboard .tours-line-note{font:9px var(--mono);color:var(--muted);margin-top:10px}
.toursboard .tours-partition{display:flex;height:8px;background:var(--line);margin-top:14px}
.toursboard .tours-part-station{display:block;height:100%;background:var(--blue)}
.toursboard .tours-part-waiting{display:block;height:100%;background:var(--amber)}
.toursboard .tours-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:26px;align-items:start}
.toursboard .tours-service{min-width:0;display:grid;gap:20px}
.toursboard .tours-section{border:1px solid var(--line);background:#17191a;padding:20px;min-width:0}
.toursboard .tours-section .section-head h2{font-size:22px}
.toursboard .tours-section .eyebrow{font:9px var(--mono);color:var(--blue);letter-spacing:.08em}
.toursboard .tours-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.toursboard .tours-list>li{border:1px solid var(--line);background:#131516;padding:16px;min-width:0;display:grid;gap:10px}
.toursboard .tours-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.toursboard .tours-row-head h3{font:500 18px var(--display);overflow-wrap:anywhere}
.toursboard .tours-faction{font:9px var(--mono);letter-spacing:.08em;color:var(--blue);white-space:nowrap}



.toursboard .tours-row-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}


.toursboard .tours-frame{margin:0;min-height:96px;display:grid;place-items:center;background:radial-gradient(ellipse,#232626,transparent 70%);overflow:hidden}
.toursboard .tours-frame img{max-width:100%;max-height:132px;object-fit:contain}

.toursboard .tours-position{font:10px var(--mono);color:var(--amber)}

.toursboard .hull{font:11px var(--mono)}
.toursboard .hull-unknown{color:var(--muted)}
.toursboard .bar{height:6px;background:var(--line);margin-top:8px}
.toursboard .bar span{display:block;height:100%;background:var(--amber)}
.toursboard .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.toursboard .facts dt{display:block;font:9px var(--mono);color:var(--muted)}
.toursboard .facts dd{font:500 16px var(--display);margin-top:4px;overflow-wrap:anywhere}
.toursboard .tours-candidate[data-selected=true]{border-color:var(--amber)}
.toursboard .tours-candidate.tours-locked{opacity:.72}
.toursboard .badge{font:9px var(--mono);letter-spacing:.08em;color:var(--amber)}
.toursboard .tours-sort{display:flex;gap:12px;align-items:end;flex-wrap:wrap;border:1px solid var(--line);padding:16px;background:#17191a}
.toursboard .tours-field{display:block;font:10px var(--mono);color:var(--muted);min-width:0}
.toursboard .tours-field select{display:block;margin-top:7px;width:100%;background:#17191a;color:var(--ink);border:1px solid var(--line);padding:9px}
.toursboard .tours-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.toursboard .tours-pager span{font:10px var(--mono);color:var(--muted)}
.toursboard .tours-manifest{border-top:2px solid var(--amber);background:#17191a;padding:22px;min-width:0;position:sticky;top:20px}
.toursboard .tours-manifest h2{font-size:26px;margin-top:8px}
.toursboard .tours-manifest .id{font:10px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.toursboard .tours-targets{display:grid;gap:10px;margin-top:14px}
.toursboard .tours-target{border:1px solid var(--line);padding:12px;display:grid;gap:5px;min-width:0}
.toursboard .tours-target-name{font:500 15px var(--display);overflow-wrap:anywhere}
.toursboard .tours-target-estimate{font:10px var(--mono);color:var(--amber)}
.toursboard .tours-missing{border:1px dashed var(--amber);padding:12px;margin-top:14px}
.toursboard .tours-missing ul{font:10px var(--mono);color:var(--muted);margin-top:8px}
.toursboard .tours-manifest-actions{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}
.toursboard .tours-runboard{border:1px solid var(--amber);background:#17191a;padding:20px;margin-bottom:20px;min-width:0}
.toursboard .tours-runboard h2{font-size:22px}
.toursboard .tours-run-progress{font:10px var(--mono);color:var(--muted);margin-top:8px}
.toursboard .tours-run-rows{display:grid;gap:8px;margin-top:14px}
.toursboard .tours-run-row{border-left:2px solid var(--line);padding:10px 12px;display:grid;gap:4px;min-width:0}
.toursboard .tours-run-row[data-run-state=accepted]{border-left-color:var(--blue)}
.toursboard .tours-run-row[data-run-state=refused]{border-left-color:var(--red,#e2664f)}
.toursboard .tours-run-row[data-run-state=unknown]{border-left-color:var(--amber)}
.toursboard .tours-run-name{font:500 15px var(--display);overflow-wrap:anywhere}
.toursboard .tours-run-state{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.toursboard .tours-run-row[data-run-state=accepted] .tours-run-state{color:var(--blue)}
.toursboard .tours-run-row[data-run-state=refused] .tours-run-state{color:var(--amber)}
.toursboard .tours-run-detail{font:10px var(--mono);color:var(--muted);overflow-wrap:anywhere}

.toursboard .tours-run-stale{font:11px var(--mono);color:var(--amber);margin-top:12px}
.toursboard .tours-run-unsent{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.toursboard .tours-run-unsent .tours-run-row{opacity:.6}
.toursboard .tours-run-stop{border:1px solid var(--amber);padding:14px;margin-top:14px}
.toursboard .tours-run-stop h3{font:500 16px var(--display)}
.toursboard .tours-run-next{margin-top:16px;display:grid;gap:10px;justify-items:start}
.toursboard .tours-terms{border:1px solid var(--line);padding:20px;background:#17191a;margin-top:20px}
.toursboard .tours-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;font:9px var(--mono);color:var(--muted)}
.toursboard .tours-state{border-top:1px solid var(--line);padding:24px 0}
.toursboard .tours-state h2{font-size:26px}
.toursboard .tours-state p{color:var(--muted);margin-top:12px}
.toursboard .tours-state[data-tours-state=stale] h2{color:var(--amber)}
.toursboard .note{margin-top:10px}
.toursboard .button.small{font-size:10px;padding:9px 12px}
@media(max-width:1050px){.toursboard .tours-layout{grid-template-columns:minmax(0,1fr)}.toursboard .tours-manifest{order:-1;position:static}.toursboard .tours-lines{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.toursboard .tours-list{grid-template-columns:minmax(0,1fr)}.toursboard .tours-sort .button{width:100%}.toursboard .tours-field{flex:1 1 100%}.toursboard .facts{grid-template-columns:minmax(0,1fr)}}

/* ── TASK-2403.48: the EXPEDITIONS board ──────────────────────────────────────────────
   APPENDED AT EOF UNDER ITS OWN ROOT CLASS, the way every lane before this one appended:
   nothing above this line is touched, so two lanes' blocks cannot collide. Every selector is
   scoped to .exp-board, so no rule here can reach another leaf's markup.

   THE WIDE COMPOSITION IS THE APPROVED REFERENCE'S: the commitment manifest sits beside the
   planning column and sticks while the reader scrolls, because the plan is what the reader is
   assembling. THE NARROW COMPOSITION IS THE TICKET'S OWN ORDER and the manifest comes FIRST
   (grid-row:1), so a reader on a phone sees what they have assembled before the catalogue they
   assemble it from. */
.exp-board{display:block;min-width:0}














/* THE ANSWER A PRESS LEFT ON THE BOARD. It is local markup rather than a floating toast, so a
   refusal, a partial batch or an unknown outcome is still readable after the moment passed. */
.exp-board-notice{border:1px solid var(--amber);background:var(--panel);padding:18px;margin:0 0 22px;display:grid;gap:8px}
.exp-board-notice strong{font:700 18px var(--display);letter-spacing:.05em}
.exp-board-notice p{font:12px/1.7 var(--mono);color:var(--muted);margin:0}



/* CURRENT COMMITMENTS LEAD, because the reader planning another launch needs the ones already
   out in front of them. The count is a count of returned rows and their recorded members; it is
   never a fleet capacity, which is a figure this read cannot see. */
.exp-board-active{border-top:2px solid var(--blue);padding:22px 0 34px}

.exp-board-run{border:1px solid var(--line);background:linear-gradient(110deg,#1d262b,transparent 75%);padding:22px;min-width:0}









/* THE TWO COLUMNS. `.exp-board-manifest` is sticky ONLY here: below 1050px the media query at
   the end of this block unpins it and moves it first. */
.exp-board-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:32px;align-items:start}
.exp-board-planning{min-width:0}


/* ROUTE COMPARISON: each card is the complete rule set the owner publishes for that route. */
.exp-board-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
.exp-board-route{display:block;text-align:left;border:1px solid var(--line);background:transparent;color:var(--ink);padding:18px;min-width:0;cursor:pointer;text-decoration:none}
.exp-board-route[aria-pressed=true]{border-color:var(--amber);background:#28241c}
.exp-board-route h3{margin:9px 0;font-family:var(--display);font-size:25px;line-height:1.1}







/* THE ROSTER: real art where the bounded identity read answered, a labelled missing state where
   it did not, a hull bar only where the batch health quote returned a denominator. */
.exp-board-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.exp-board-candidate{padding:16px;border:1px solid var(--line);display:grid;grid-template-columns:70px minmax(0,1fr);gap:14px;min-width:0}
.exp-board-candidate-selected{border-color:var(--amber)}
.exp-board-candidate-unavailable{opacity:.66}
.exp-board-candidate-art{display:grid;align-content:start;gap:8px;min-width:0}
.exp-board-art{width:70px;height:95px;object-fit:contain}

.exp-board-candidate-body{min-width:0}
.exp-board-candidate-body h3{margin:3px 0;font-family:var(--display);font-size:22px;line-height:1.1;overflow-wrap:anywhere}





.exp-board-candidate-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px}






/* THE MANIFEST IS THE FOCAL ELEMENT: three slots that always exist, the count, and the one press
   that opens the review. Sticky only on a wide screen (the media query below). */
.exp-board-manifest{position:sticky;top:20px;border-top:2px solid var(--amber);background:var(--panel);padding:22px;min-width:0}
.exp-board-manifest h2{margin:8px 0 0;font-family:var(--display);font-size:30px;line-height:1.1}
.exp-board-slot{border-top:1px solid var(--line);padding:14px 0;display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}
.exp-board-slot strong{display:block;font:700 20px var(--display);overflow-wrap:anywhere}



.exp-board-waves{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.exp-board-wave{border:1px solid var(--line);color:var(--ink);padding:6px 10px;font:11px var(--mono);min-height:34px;display:inline-flex;align-items:center;text-decoration:none}
.exp-board-wave[aria-pressed=true]{border-color:var(--amber);color:var(--amber)}







.exp-board-review{width:100%;margin-top:18px}
.exp-board-manifest .button{width:100%;margin-top:10px;text-align:center}

/* THE REVIEW IS A REAL <dialog>, so the browser owns focus trapping, Escape and the backdrop. */

.exp-board-dialog::backdrop{background:#000c}






/* RETURNED REPORTS: what came back, who was affected, and whether the owner's own record says the
   amounts were PAID. A null payment marker says so and claims neither state. */
.exp-board-log{border-top:1px solid var(--line);margin-top:38px;padding-top:24px}
.exp-board-report{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(150px,.8fr) 110px;gap:20px;border-top:1px solid var(--line);padding:22px 0;align-items:start;min-width:0}
.exp-board-report h3{margin:0 0 8px;font-family:var(--display);font-size:22px;overflow-wrap:anywhere}






@media(max-width:1050px){
  .exp-board-layout{grid-template-columns:minmax(0,1fr)}
  .exp-board-manifest{position:static;grid-row:1}

  .exp-board-report{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:550px){
  /* THE BOARD'S OWN TITLE HAS TO FIT A PHONE. The kit's page head is sized for a wide document,
     and at 320px the word broke mid-letter ("EXPEDITION S"), which reads as a typo rather than as
     a title. The band keeps its own scale below the breakpoint. */
  .exp-board .pagehead h1{font-size:34px;overflow-wrap:anywhere}
  .exp-board-routes,.exp-board-roster{grid-template-columns:minmax(0,1fr)}
  .exp-board-run{padding:18px}
  .exp-board-candidate{grid-template-columns:60px minmax(0,1fr)}
  .exp-board-art{width:60px}




}
/* ── REPAIR JOBS BOARD (TASK-2403.57, reference repair-jobs-r1) ──────────────────
   APPENDED AT EOF ON PURPOSE, and every rule is scoped under .repairjobs so no existing
   component can be reached by it: several lanes share this file and a union of two appends
   is only mechanical when neither one edits a rule above it. Line 1 is never touched - it is
   the minified base sheet. The --rj-* tokens are declared HERE rather than at :root for the
   same reason: this block owns the green a repair action wears, and it must not depend on a
   variable another lane's append happens to define. */
.repairjobs{--rj-green:#7fae7a;--rj-line:#2a2f31;display:flex;flex-direction:column;gap:26px;min-width:0}
.repairjobs .pagehead{align-items:end;gap:18px;margin-bottom:0;flex-wrap:wrap}
.repairjobs .pagehead h1{font:700 34px var(--display);letter-spacing:.02em;overflow-wrap:anywhere}
.repairjobs .pagehead p{color:var(--muted);font-size:13px;margin-top:8px;max-width:70ch}




.repairjobs-board,.repairjobs-station{min-width:0;display:flex;flex-direction:column;gap:14px}
repairjobs-panel-meta,.repairjobs-chassis{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}










.repairjobs-row{display:flex;gap:14px;align-items:flex-start;text-align:left;background:var(--panel);border:1px solid var(--rj-line);padding:14px;min-height:44px;min-width:0;cursor:pointer;font:inherit;color:inherit}
.repairjobs-row[data-state=selected]{border-color:var(--amber)}
.repairjobs-row[data-state=working]{border-color:var(--rj-green)}






























.repairjobs-notice{border:1px solid var(--rj-line);padding:18px;display:flex;flex-direction:column;gap:8px}
.repairjobs-notice h2{font:700 20px var(--display)}
.repairjobs-notice p{color:var(--muted);font-size:12px}
.repairjobs-notice--failed{border-color:var(--amber)}
.repairjobs-notice--amber{border-color:var(--amber)}
.repairjobs-notice--cyan{border-color:var(--blue)}
@media(max-width:1050px){}
@media(max-width:680px){.repairjobs .pagehead h1{font-size:26px}}
@media(max-width:420px){}



/* ── REPAIR ORDERS (TASK-2403.58, reference repair-orders-r1) ─────────────────────
   THE THIRD REPAIR LEAF, and the only one that is an OWNER CONTROL PANEL: the standing
   allowance that pays for work, the per-mech permission and escrow that let work reach a
   hull, and the settled record of what the order has bought. It REUSES the .repair-* bench
   vocabulary above (panel, meter, chip, facts, routes, press, roster row, pager) and adds
   only what its own three panels need. */
.repair-orders{display:flex;flex-direction:column;gap:18px;min-width:0}
.repair-orders-nav{display:flex;gap:16px;flex-wrap:wrap}
.repair-orders-spend{display:flex;align-items:baseline;gap:8px}
.repair-orders-spend strong{font:700 34px var(--display);overflow-wrap:anywhere}
.repair-orders-spend small{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.repair-orders-split{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}
.repair-orders-warning{color:var(--amber);font-size:12px;max-width:70ch}
.repair-orders-terms-block{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}
.repair-orders-terms{display:flex;flex-direction:column;gap:10px}
.repair-orders-field{display:flex;flex-direction:column;gap:4px;font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}
.repair-orders-input{min-height:44px;background:var(--bg);border:1px solid var(--line);color:inherit;padding:8px 10px;font:13px var(--mono)}
.repair-orders-switch{display:flex;align-items:center;gap:8px;min-height:44px;font:10px var(--mono);letter-spacing:.08em}
.repair-orders-check{width:18px;height:18px;accent-color:var(--amber)}
.repair-orders-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:18px;align-items:start;min-width:0}
.repair-orders-roster-column,.repair-orders-station-column{display:flex;flex-direction:column;gap:12px;min-width:0}
.repair-orders-inspector{gap:14px}
.repair-orders-portrait{display:grid;place-items:center;background:var(--raised);overflow:hidden;min-height:56px}
.repair-orders-portrait--large{min-height:150px;max-height:220px}
.repair-orders-portrait img{max-width:100%;max-height:220px;object-fit:contain}
.repair-orders-no-art{color:var(--muted);font:10px var(--mono);letter-spacing:.08em;padding:12px;text-align:center}
.repair-orders-pot{border:1px solid var(--line);border-left:2px solid var(--amber);padding:14px;display:flex;flex-direction:column;gap:8px}
.repair-orders-pot-value{font:700 24px var(--display)}
.repair-orders-command{display:flex;flex-direction:column;gap:8px}
.repair-orders-press{display:flex;flex-direction:column;gap:10px}
.repair-orders-history{display:flex;flex-direction:column;gap:0}
.repair-orders-total{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.repair-orders-total .repair-cost{font:700 15px var(--display)}
.repair-orders-total small{font:9px var(--mono);color:var(--muted)}
@media(max-width:1000px){.repair-orders-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:420px){.repair-orders-spend strong{font-size:26px}}

/* ── DEPLOY CLAN LEAF (TASK-2403.59, reference clan-leaf-r1) ──────────────────────
   The reader's crew workbench: the roster with each member's contribution, the founder's
   form and the browse wall. It keeps the deploy bench's panel/row rhythm and adds only its
   own three shapes. THE CONTRIBUTION GRID IS THE REFERENCE'S ONE DELIBERATE CHANGE: the
   five figures are labelled cells a reader can compare down a column, not a trail of
   chips. */
.clan-leaf{display:flex;flex-direction:column;gap:18px;min-width:0}
.clan-leaf-head{margin-bottom:4px}
.clan-leaf-head h1{font-size:38px}
.clan-leaf-head p{color:var(--muted);margin-top:8px;max-width:70ch}
.clan-leaf-notice{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:10px}
.clan-leaf-notice--failed{border-color:var(--red)}
.clan-leaf-notice--amber{border-color:var(--amber)}
.clan-leaf-notice h2{font:700 20px var(--display)}
.clan-leaf-notice p{color:var(--muted)}
.clan-leaf-roster,.clan-leaf-wall{display:flex;flex-direction:column;gap:0}
.clan-leaf-member,.clan-leaf-wall-row{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);background:var(--raised);padding:13px 14px;min-height:44px;min-width:0}
.clan-leaf-member+.clan-leaf-member,.clan-leaf-wall-row+.clan-leaf-wall-row{border-top:0}
.clan-leaf-member[data-state=leader]{border-left:2px solid var(--amber)}
.clan-leaf-member-main{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 auto}
.clan-leaf-member-name{font:700 16px var(--display);overflow-wrap:anywhere}
.clan-leaf-member-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:0 0 auto}
.clan-leaf-tags{display:flex;gap:8px;flex-wrap:wrap}
.clan-leaf-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.clan-leaf-fact{display:flex;flex-direction:column;gap:3px;min-width:0}
.clan-leaf-fact small{font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.clan-leaf-fact strong{font:500 14px var(--display);overflow-wrap:anywhere}
.clan-leaf-confirm{border:1px solid var(--amber);padding:16px;display:flex;flex-direction:column;gap:10px}
.clan-leaf-confirm h3{font:700 13px var(--display);letter-spacing:.08em;color:var(--amber)}
.clan-leaf-confirm p{color:var(--muted);max-width:70ch}
.clan-leaf-buttons{display:flex;gap:10px;flex-wrap:wrap}
.clan-leaf-refusal{border-left:2px solid var(--amber);padding:10px 12px;color:var(--amber);font-size:12px}
.clan-leaf-empty{border:1px dashed var(--line);padding:18px;color:var(--muted);display:flex;flex-direction:column;gap:8px}
.clan-leaf-form{display:flex;flex-direction:column;gap:10px;max-width:420px}
.clan-leaf-form label{display:flex;flex-direction:column;gap:5px;font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}
.clan-leaf-form input{min-height:44px;background:var(--bg);border:1px solid var(--line);color:inherit;padding:9px 11px;font:13px var(--mono)}

@media(max-width:680px){
  .clan-leaf-head h1{font-size:28px}
  .clan-leaf-member,.clan-leaf-wall-row{flex-direction:column;gap:10px}
  .clan-leaf-member-actions{align-items:stretch;width:100%}
  .clan-leaf-facts{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}
}

/* ── PREFERENCES BENCH (TASK-2403.60, reference prefs-audio-r1) ─────────────────────
   SETTINGS' six leaves. The bench's own vocabulary: labelled bus panels, one row per
   preference with its note and its control, and THE WRITE'S ANSWER ON THE ROW IT BELONGS
   TO — a refusal colours that row and nothing else, which is the one thing this bench
   changes about the shipped panel's single shared status line. */
.prefs{display:flex;flex-direction:column;gap:18px;min-width:0}



/* THE JOB PAGE'S INDEX, AND WHY EVERY SELECTOR IS ROOTED HERE. The index molecule is the ARCHIVE
   directory's own drawing at its default geometry; settings is a narrow column beside the context
   rail, so the row takes settings' own spacing and type scale on top. The rules are DESCENDANT
   selectors rooted at .prefs-index rather than overrides of .index-cell itself, so the archive row
   is not moved by the settings page's correction - which is the whole reason the molecule owns the
   class and the surface owns the look. */





@media(max-width:680px){}
.prefs-buses{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;align-items:start;min-width:0}
.prefs-bus{border:1px solid var(--line);background:var(--panel);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.prefs-bus h2{font-family:var(--display);font-size:20px;letter-spacing:.02em;text-transform:uppercase;overflow-wrap:anywhere}
.prefs-bus--card,.prefs-bus--account,.prefs-bus--inbox{grid-column:1/-1}
.prefs-row{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;min-height:44px;border-top:1px solid var(--soft-line);padding-top:12px;min-width:0}
.prefs-bus>.prefs-row:first-of-type,.prefs-row:first-child{border-top:0;padding-top:0}
.prefs-row-copy{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.prefs-row-copy strong{font-family:var(--display);font-size:14px;letter-spacing:.04em;overflow-wrap:anywhere}
.prefs-row-copy small{font-family:var(--mono);font-size:10px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}

.prefs-row-control{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:0 0 auto}


.prefs-outcome--saved{color:var(--green)}
.prefs-outcome--refused{color:var(--red)}
.prefs-outcome--saving{color:var(--amber)}
.prefs-switch{display:inline-flex;align-items:center;gap:10px;min-height:44px;min-width:120px;justify-content:center;border:1px solid var(--line);background:var(--raised);padding:8px 12px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--muted);cursor:pointer}
.prefs-switch[aria-pressed=true]{border-color:var(--amber);color:var(--amber)}
.prefs-switch[disabled]{opacity:.45;cursor:default}

.prefs-slider{width:100%;min-height:44px;accent-color:var(--amber)}
.prefs-readout{font-family:var(--mono);font-size:10px;color:var(--muted)}
.prefs-pick{min-height:44px;min-width:180px;max-width:100%;background:var(--raised);color:var(--ink);border:1px solid var(--line);padding:10px 12px;font-family:var(--mono);font-size:10px;letter-spacing:.08em}
.prefs-pick[disabled]{opacity:.45}
.prefs-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch}
.prefs-action{display:flex;flex-direction:column;gap:6px;min-width:0}
.prefs-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid var(--line);background:var(--raised);color:var(--ink);font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.prefs-button--primary{border-color:var(--amber);color:var(--amber)}
.prefs-button--danger{border-color:var(--red);color:var(--red)}
.prefs-button--ghost{background:transparent}
.prefs-button[disabled]{opacity:.4;cursor:default}

.prefs-confirm{border:1px solid var(--red);padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.prefs-confirm h3{font-family:var(--display);font-size:13px;letter-spacing:.08em;color:var(--red)}

.prefs-confirm-field{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted)}
/* THE TYPED WORD IS A CONTROL, NOT A CAPTION: it takes the same 44px minimum as every other
   control on the bench, because it is the one a reader must reach on a phone. */
.prefs-confirm-field input{display:block;width:100%;min-height:44px;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:10px 12px;font-family:var(--mono);font-size:12px;letter-spacing:.12em}
.prefs-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.prefs-fact{display:flex;flex-direction:column;gap:4px;min-width:0}


.prefs-danger{font-family:var(--display);font-size:13px;letter-spacing:.08em;color:var(--red)}
.prefs-notice{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.prefs-notice h2{font-family:var(--display);font-size:20px;overflow-wrap:anywhere}
.prefs-notice p{color:var(--muted);max-width:70ch}
.prefs-notice--failed{border-color:var(--red)}
.prefs-notice--warn{border-color:var(--amber)}

.prefs-row--notice{border:1px solid var(--line);background:var(--raised);padding:13px 14px}
.prefs-row--notice+.prefs-row--notice{border-top:0}
.prefs-read{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--green)}




/* The bus's own head: the panel's title, the contract's subtitle and any state chip it carries. */
.prefs-bus-head{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;min-width:0}



.prefs-desc{font-family:var(--mono);font-size:10px;color:var(--muted)}
/* THE HAND-OFF FORM IS THE BROWSER'S OWN SUBMIT, not an htmx swap: the reader leaves this
   document for the answer, so the form takes the surface's own frame and nothing else. */
.prefs-handoff{display:flex;flex-direction:column;gap:8px;min-width:0}


/* ── WATCH CONSOLE (TASK-2403.61, reference watch-arena-r1) ──────────────────────
   The /watch job. THE STAGE IS A MOUNT POINT, NOT A RENDERER, and THE STATES ARE DIFFERENT
   DOCUMENTS: a quiet floor is not a broken one, a stale reading is not a live one, and an
   expired recording is not an unopened one. */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--body)}
body>header{border-bottom:1px solid var(--line);padding:18px 24px;display:flex;gap:18px;align-items:baseline}
body>header b{font:700 18px var(--display);letter-spacing:.08em}
body>header span{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.eyebrow{font:10px var(--mono);letter-spacing:.14em;color:var(--muted);display:block}
.watch{display:flex;flex-direction:column;gap:18px;min-width:0}
.watch-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.watch-head h1{font-size:42px;text-transform:uppercase;letter-spacing:.01em;margin:8px 0 0}
.watch-head p{color:var(--muted);margin-top:8px;max-width:70ch}
.chip--live{border-color:var(--amber);color:var(--amber)}
.chip--ok{border-color:var(--green);color:var(--green)}
.chip--warn{border-color:var(--amber);color:var(--amber)}
.chip--quiet{border-color:var(--muted);color:var(--muted)}

/* THE STAGE IS THE ONE SURFACE THIS REFERENCE DOES NOT DRAW ITSELF: it frames the mount point
   production fills, and says so rather than inventing a renderer. */
.watch-stage{aspect-ratio:16/9;border:1px solid var(--line);background:linear-gradient(160deg,rgba(255,255,255,.03),transparent 60%);display:flex;align-items:center;justify-content:center;min-height:220px}
.watch-stage-mount{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;padding:18px}
.watch-stage-mount strong{font:700 13px var(--display);letter-spacing:.1em}
.watch-stage-mount small{font:10px var(--mono);color:var(--muted);max-width:44ch}
.watch-log{display:flex;flex-direction:column;gap:0;max-height:320px;overflow-y:auto;border:1px solid var(--line);min-width:0}
.watch-log-line{display:flex;gap:12px;align-items:baseline;padding:9px 12px;font:11px var(--mono);border-bottom:1px solid var(--soft-line);min-width:0}
.watch-log-line:last-child{border-bottom:0}
.watch-log-line time{color:var(--muted);flex:0 0 auto}
.watch-log-line span{overflow-wrap:anywhere;min-width:0}
.log-line--kill span{color:var(--red)}
.log-line--spoil span{color:var(--green)}
.log-line--phase span{color:var(--amber)}
.watch-rows{display:flex;flex-direction:column;gap:0;min-width:0}
.watch-run{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);background:var(--raised);padding:13px 14px;min-width:0}
.watch-run+.watch-run{border-top:0}
.watch-run-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.watch-run-copy strong{font:700 14px var(--display);letter-spacing:.04em;overflow-wrap:anywhere}
.watch-run-marks{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.watch-run-control{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex:0 0 auto}
.watch-field{display:flex;flex-direction:column;gap:6px;font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}
.watch-field select{min-height:44px;min-width:170px;max-width:100%;background:var(--raised);color:var(--ink);border:1px solid var(--line);padding:10px 12px;font:10px var(--mono)}
.watch-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid var(--line);background:var(--raised);color:inherit;font:700 12px var(--display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none}
.button--primary{border-color:var(--amber);color:var(--amber)}
.button--danger{border-color:var(--red);color:var(--red)}
.button--ghost{background:transparent}
.watch-button[disabled]{opacity:.4;cursor:default}
.watch-actions{display:flex;gap:10px;flex-wrap:wrap}
.watch-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;min-width:0}
.watch-standing{display:flex;flex-direction:column;gap:0}
.watch-standing-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--soft-line);padding:11px 0;min-width:0}
.watch-standing-row:last-child{border-bottom:0}
.watch-standing-name{display:flex;flex-direction:column;gap:3px;min-width:0}
.watch-standing-name strong{font:700 13px var(--display);letter-spacing:.04em}
.watch-standing-name small{font:10px var(--mono);color:var(--muted)}
.watch-bar{height:7px;background:var(--raised);border:1px solid var(--line);min-width:80px;flex:1 1 auto}
.watch-bar>i{display:block;height:100%;background:var(--amber)}
.watch-standing-value{font:11px var(--mono);color:var(--muted);flex:0 0 auto}
.watch-notice{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.watch-notice h2{font:700 20px var(--display);overflow-wrap:anywhere}
.watch-notice p{color:var(--muted);max-width:70ch}
.notice--failed{border-color:var(--red)}
.notice--warn{border-color:var(--amber)}
.notice--quiet{border-color:var(--line)}

.foot{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.watch :focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.watch-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}
.watch-stat{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);background:var(--raised);padding:8px 10px;min-width:0}
.watch-stat small{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--muted)}
.watch-stat strong{font-family:var(--display);font-size:15px}
.watch-log-link{color:var(--amber);min-height:44px;display:inline-flex;align-items:center;text-underline-offset:3px}
.watch-standing-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--soft-line);padding:11px 0;min-width:0}
.watch-standing-row:last-child{border-bottom:0}

/* ── SOCIAL OPERATIONS WORKBENCH (TASK-2403.62, reference social-desk-r1) ─────────────
   The /faction job's four remaining UI3 surfaces: the war effort and the three desks. THE RULE
   IS THE TICKET'S OWN: a desk workspace contains supported actions and correspondence, NOT
   another copy of the dossier, so a station LINKS its canonical records and repeats none.  */
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--body)}
body>header{border-bottom:1px solid var(--line);padding:18px 24px;display:flex;gap:18px;align-items:baseline}
body>header b{font:700 18px var(--display);letter-spacing:.08em}
body>header span{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.eyebrow{font:10px var(--mono);letter-spacing:.14em;color:var(--muted);display:block}
.social{display:flex;flex-direction:column;gap:18px;min-width:0}
.social-head h1{font-size:42px;text-transform:uppercase;letter-spacing:.01em;margin:8px 0 0;overflow-wrap:anywhere}
.social-head p{color:var(--muted);margin-top:8px;max-width:70ch}
.chip--cyan{border-color:var(--cyan);color:var(--cyan)}
.chip--amber{border-color:var(--amber);color:var(--amber)}
.chip--ok{border-color:var(--green);color:var(--green)}
.chip--warn{border-color:var(--amber);color:var(--amber)}
.social-card-sub{font:10px var(--mono);color:var(--muted)}
.card--primary{border-color:var(--cyan)}
.social-stations{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}
.social-identity{display:flex;flex-direction:column;gap:12px;min-width:0}
.social-record{border:1px solid var(--line);background:var(--raised);padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.social-record strong{font:700 14px var(--display);letter-spacing:.04em;overflow-wrap:anywhere}
.social-record small{font:10px var(--mono);color:var(--muted)}
.social-record a{color:var(--amber);text-underline-offset:3px;overflow-wrap:anywhere;min-height:44px;display:inline-flex;align-items:center}
.social-rows{display:flex;flex-direction:column;gap:0;min-width:0}
.social-row{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;border:1px solid var(--line);background:var(--raised);padding:13px 14px;min-width:0}
.social-row+.social-row{border-top:0}
.social-row-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.social-row-copy strong{font:700 13px var(--display);letter-spacing:.04em;overflow-wrap:anywhere}
.social-row-copy small{font:10px/1.6 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.social-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.social-fact{display:flex;flex-direction:column;gap:4px;min-width:0}
.social-fact small{font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}
.social-fact strong{font:700 15px var(--display);overflow-wrap:anywhere}
.social-kv{display:flex;gap:12px;align-items:baseline;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--soft-line);min-width:0}
.social-kv:last-child{border-bottom:0}
.social-kv small{font:10px var(--mono);letter-spacing:.06em;color:var(--muted)}
.social-kv strong{font:700 13px var(--mono)}
.kv--net{border-top:1px solid var(--line);margin-top:6px;padding-top:10px}
.kv--net strong{color:var(--amber)}
.social-run{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.social-run>h3{font:700 14px var(--display);letter-spacing:.04em;text-transform:uppercase}
.social-line{font:11px var(--mono);color:var(--muted);max-width:70ch}
.social-axis{border:1px solid var(--line);background:var(--raised);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.social-axis-head{display:flex;gap:12px;align-items:baseline;justify-content:space-between;min-width:0}
.social-axis-head strong{font:700 14px var(--display);letter-spacing:.04em}
.social-axis-head small{font:10px var(--mono);color:var(--muted)}
.social-meter{height:9px;background:var(--bg);border:1px solid var(--line);min-width:0}
.social-meter>i{display:block;height:100%;background:var(--cyan)}
.meter--yours>i{background:var(--amber)}
.social-axis-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;min-width:0}
.social-notice{border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:10px;min-width:0}
.social-notice h2{font:700 20px var(--display);overflow-wrap:anywhere}
.social-notice p{color:var(--muted);max-width:70ch}
.notice--failed{border-color:var(--red)}
.notice--warn{border-color:var(--amber)}
.notice--quiet{border-color:var(--line)}
.social-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid var(--line);background:var(--raised);color:inherit;font:700 12px var(--display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none}
.button--primary{border-color:var(--cyan);color:var(--cyan)}
.button--amber{border-color:var(--amber);color:var(--amber)}
.button--ghost{background:transparent}
.social-button[disabled]{opacity:.4;cursor:default}
.social-actions{display:flex;gap:10px;flex-wrap:wrap}

.social-brief{border-left:2px solid var(--amber);padding:10px 14px;display:flex;flex-direction:column;gap:8px}
.social-foot{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px}
.social-books{display:flex;flex-direction:column;gap:0;min-width:0}
.social-record-link{color:var(--amber);font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px}
.social :focus-visible{outline:2px solid var(--amber);outline-offset:2px}

.prefs :focus-visible{outline:2px solid var(--amber);outline-offset:2px}
@media(max-width:680px){

  .prefs-buses{grid-template-columns:minmax(0,1fr)}
  .prefs-row{flex-direction:column;gap:10px}
  .prefs-row-control{align-items:stretch;width:100%}

  .prefs-pick,.prefs-switch{width:100%;min-width:0}
}

/* THE RAIL'S LEAF ROWS (TASK-2403.62 follow-up). A job row opens its job; its leaves are drawn beneath
   it so a converted leaf is reachable from the document the reader is already on. They are quieter
   than the job row they sit under, and they hide with the rail's labels at the width where the rail
   becomes an icon column. */





/* ── THE RAIL ROW'S INSTRUMENT: ITS READING AND ITS SUMMON DOT (TASK-2286 carried into UI4) ───
   The UI3 rail has drawn both since TASK-2286 and three behaviour tests pin them, but ui4.RailRow
   carried no equivalent field, so every row that migrated SILENTLY stopped stating its number.
   The INVENTORY row read "" over a reader holding four sealed crates. These two base rules are
   what the row draws now; .rail-instrument is the wrapper that keeps the read and the dot
   together at the row's right edge, and a row with neither draws no wrapper at all. */





@media(max-width:960px){}

/* RESTORED (TASK-2403.35, TASK-2403.36): this whole section was lost when 967132970
   recorded the integration of task/stuck-session-recovery-7417ee and wrote the OTHER branch's
   copy of this file. 34 of its classes are still drawn by the two WATCH collections, so the
   pages lost their head rules, their rows, their empty and failure blocks and their legend,
   and a short page floated to the middle of the workspace. Nothing here was retired.
*/
/* ── WATCH COLLECTIONS: YOUR BATTLES AND TOP BUILDS (TASK-2403.35, TASK-2403.36) ──
   The two UI4 collections and nothing else: every selector below begins at .collection or
   .build-, which only these two documents draw, so no dossier and no job page is reached.
   The collection head IS the page's title band: these documents set ShellProps.NoHead, so
   the h1 here is the only one on the page. */
/* A PAGE SHORTER THAN THE VIEWPORT STILL STARTS AT THE TOP. The kit's .page carries
   margin:auto (for max-width centring), and on a GRID item auto margins centre BOTH axes, so
   a short page floated to the middle of the workspace with a ~260px band above it. The bank
   pages are taller than the viewport, which is why this only showed once a collection landed.
   Scoped to the workspace's own page child, and it leaves the horizontal centring alone. */
.workspace>.page{align-self:start;margin-top:0;margin-bottom:0}
/* A page without a context column uses the available width. */
.report-grid:has(>.report-main:only-child){grid-template-columns:minmax(0,1fr)}
/* Shared job indexes restore the existing compact rows inside a panel. Archive
   directories keep their larger standalone index rows. Number, copy and arrow
   retain their columns at 320px rather than each taking a separate line. */
.job-index{display:block;border-top:0}
.job-index-panel{margin-block:var(--section-gap)}
.job-index-panel>.panel-head{padding-bottom:var(--panel-gap);border-bottom:var(--frame-border)}
.job-index .index-cell:last-child{border-bottom:0}
.shared-page-head{padding-bottom:var(--panel-padding);border-bottom:var(--frame-border)}
.shared-page-head p{max-width:72ch}
.job-index .index-cell-copy{grid-column:2}
.job-index .index-cell-arrow{grid-column:3;grid-row:1}
/* A JOB PAGE THAT IS NOT A .collection STILL NEEDS THE SEAM. The JobPage family wraps the
   index in its own panel inside a .collection column, which supplies the twenty pixel gap; BANK
   draws its body as a kit-owned wallet region plus this panel as a SIBLING, inside .report-main,
   which is a bare block with no gap of its own. So a panel that FOLLOWS a sibling element takes
   the same spacing, and the two containers read alike. A panel that is the first child is not a
   sibling of one and is not moved, so the JobPage family's own panels are untouched. */
.report-main>.panel:not(:first-child){margin-top:20px}
.job-index .index-cell{grid-template-columns:38px minmax(0,1fr) auto;gap:14px;padding:14px 6px}
.job-index .index-cell-number{font-size:19px}
.job-index .index-cell-copy h2{font-size:18px;font-family:var(--display);letter-spacing:.03em}
.job-index .index-cell-copy p{margin-top:5px;font-size:11px;line-height:1.7;max-width:78ch}
.job-index .index-cell-arrow{font-size:16px}
@media(max-width:680px){.job-index .index-cell{grid-template-columns:24px minmax(0,1fr) auto;gap:9px 10px;padding:14px 0;align-items:start}.job-index .index-cell-number{font-size:18px}.job-index .index-cell-arrow{font-size:16px}.job-index .index-cell-copy h2{font-size:16px}}

.collection{display:flex;flex-direction:column;gap:20px;min-width:0}
.collection-head{min-width:0;padding-bottom:15px;border-bottom:1px solid var(--line)}
.collection-head h1{margin-top:7px;overflow-wrap:anywhere}
.collection-lead{color:var(--muted);font-size:12px;margin-top:8px;max-width:70ch}

.collection-rows,.history-page,.build-rows{display:flex;flex-direction:column;min-width:0}
.collection-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;gap:14px;align-items:baseline;padding:15px 4px;border-bottom:1px solid var(--soft-line);min-width:0}
a.collection-row:hover{background:#202324}
.history-result{color:var(--muted)}
.history-title{font:700 19px var(--display);letter-spacing:.02em;overflow-wrap:anywhere}
.history-combatants{color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.history-tail{display:flex;flex-direction:column;gap:3px;text-align:right;font:10px var(--mono);color:var(--muted);white-space:nowrap}
.history-earned{color:var(--amber)}

.collection-more{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-top:15px}
.collection-status{font:10px var(--mono);color:var(--amber)}
.collection-note{font:10px/1.7 var(--mono);color:var(--muted)}.collection-failure{padding:20px 0}.collection-failure strong{font:700 19px var(--display);letter-spacing:.03em}.collection-failure-line{color:var(--muted);font-size:12px;margin-top:7px}
.collection-failure .button{margin-top:14px}
.collection-legend{font:10px/1.7 var(--mono);color:var(--muted);padding-top:14px;border-top:1px solid var(--line)}

.build-board{display:flex;flex-direction:column;gap:12px;padding-top:14px;border-top:1px solid var(--line);min-width:0}
.build-board-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.build-board-head h2{font-size:21px;text-transform:uppercase}
.build-legend{display:none}
.build-row{display:grid;grid-template-columns:56px minmax(0,1fr) minmax(0,320px) auto;gap:14px;align-items:center;padding:15px 4px;border-bottom:1px solid var(--soft-line);min-width:0}
.build-row:hover{background:#202324}
.build-rank{display:flex;flex-direction:column}
.build-rank strong{font:500 24px var(--display)}
.build-copy{min-width:0}
.build-name{display:block;font:700 19px var(--display);letter-spacing:.02em;overflow-wrap:anywhere}
.build-owner{font:10px var(--mono);color:var(--muted);overflow-wrap:anywhere}
.build-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0;min-width:0}
.build-fact dt{font:8px var(--mono);letter-spacing:.1em;color:var(--muted)}
.build-fact dd{margin:3px 0 0;font:12px var(--mono);overflow-wrap:anywhere}
.build-loadout-block{grid-column:1/-1;margin-top:12px;padding:14px;border:1px solid var(--line);background:#191c1d;min-width:0}
.build-loadout{margin:8px 0 0;padding-left:18px;font-size:12px;color:#c8cccb}
.build-loadout li{margin:3px 0}
.build-empty{color:var(--muted);font-size:12px;margin-top:8px}
.build-loadout-block[data-loadout=unread] .collection-failure{padding:6px 0}

@media(max-width:900px){
  .collection-row{grid-template-columns:auto minmax(0,1fr)}
  .history-combatants{grid-column:2}
  .history-tail{grid-column:1/-1;text-align:left}
  .build-row{grid-template-columns:44px minmax(0,1fr)}
  .build-facts{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}
  .build-row .button{grid-column:1/-1;justify-self:start}
}
@media(max-width:680px){
  .collection{gap:16px}
  .collection-row{grid-template-columns:minmax(0,1fr)}
  .history-combatants,.history-tail{grid-column:1}
  .build-facts{grid-template-columns:minmax(0,1fr)}
}

/* ── TASK-2426: THE TONES AND STATES THE PORTS NAMED AND NEVER STYLED ─────────────────────────
   Every selector below styles a class the kit already DRAWS. The ports named their tone variants,
   the sheet never carried a rule for them, and the elements fell back to browser defaults. The
   values are this sheet's own tokens and idioms rather than new ones: --red is the loss colour
   (.tour-lost, .exp-affected), --green the ok colour (.repair-chip--ok), --amber the attention
   and live colour (.button.primary, .live-indicator, .bank-unread), and the chip and press boxes
   copy .watch-chip and .button. The four surface roots below take the kit's standard column. */
.watch-button--primary{background:var(--amber);border-color:var(--amber);color:#191b19}
.watch-button--ghost{background:transparent;border-color:var(--line);color:var(--muted)}
/* ── THE REPLAY CONSOLE'S OWN CONTROLS (TASK-2430) ────────────────────────────────────────────
   `.watch-slider` and `.watch-pick` were DRAWN AND NEVER STYLED. Both are form controls, so the
   browser's own defaults applied: 13px tall, which is roughly a third of a touch target and the
   smallest thing on the page. The drawn-class guard did not catch them because the replay player
   is its own document, rendered by a capture route rather than by one of the 58 baseline routes,
   so its classes were never in the set that guard walks. `TestUI4WatchAtThreeViewports` found
   them instead, by measuring the rendered control boxes in a real browser - which is the check
   that does not depend on a route list.
   BOTH TAKE THE 44 PIXEL FLOOR the rest of the kit uses (see .watch-button above), because a
   reader on a phone has to be able to hit them. */

.watch-pick{min-height:44px;background:var(--bg);border:1px solid var(--line);color:inherit;padding:8px 10px;font:13px var(--mono)}
.watch-slider:disabled,.watch-pick:disabled{opacity:.5;cursor:default}
/* THE PAIR IS TWO COLUMNS ON A DESKTOP AND ONE ON A PHONE (TASK-2430). `.watch-pair` shipped with
   a fixed `grid-template-columns:1fr 1fr` and NO responsive rule, so on 320 and 390 the two
   columns were forced to a width the viewport does not have and the console scrolled sideways.
   The kit's other two-column boards already collapse at the same 520 threshold. */
@media(max-width:520px){.watch-pair{grid-template-columns:minmax(0,1fr);gap:14px}}
/* ── THE REPLAY PLAYER'S OWN FRAME (TASK-2430) ────────────────────────────────────────────────
   `.watch-player` and `.watch-player-readouts` were DRAWN AND NEVER STYLED, like the two controls
   above. A flex or grid item defaults to `min-width:auto`, which means it refuses to shrink below
   its content - so with no `min-width:0` anywhere in this subtree the player forced the console
   wider than a 390 or 320 viewport and the document scrolled sideways. That is the overflow the
   capture test measured. The kit's other boards all carry the same `min-width:0` guard. */



.watch-notice--failed{border-color:var(--red)}
.watch-notice--quiet{border-color:var(--soft-line)}
.watch-log-line--info{color:var(--muted)}
.watch-log-line--output{color:var(--ink)}
.watch-log-line--success{color:var(--green)}
.watch-log-line--warning{color:var(--amber)}
.social-notice--failed{border-color:var(--red)}
.social-notice--warn{border-color:var(--amber)}
.bank-section--amber{border-bottom-color:var(--amber)}
.bank-section--cyan{border-bottom-color:var(--cyan)}
.bank-section--green{border-bottom-color:var(--green)}
.bank-status-mark{border:1px solid var(--muted);color:var(--muted);padding:3px 8px;font:9px var(--mono);letter-spacing:.08em}
.bank-unread-line{margin-top:7px;font-size:12px;color:var(--muted)}.craft-signed-out{padding:20px 0}
.button.holdings-quiet{background:transparent;border-color:var(--soft-line);color:var(--muted)}
.button.holdings-outline{background:transparent;border-color:var(--line);color:var(--ink)}
.holdings-sheet{display:flex;flex-direction:column;gap:14px;min-width:0}
.holdings-stats{display:flex;flex-direction:column;gap:10px;padding-top:18px}
.craft-bench,.craft-combiner{display:flex;flex-direction:column;gap:18px;min-width:0}
.pagehead-top{display:flex;align-items:center;gap:12px;min-width:0}

.prefs-button--save{border-color:var(--amber);color:var(--amber)}

/* ── THE PILL: one small label for the whole kit (TASK-2425.5) ────────────────────────────────
   Nine surfaces drew this label under their own name - bank-chip, codex-chip, holdings-chip,
   repair-chip, repairjobs-chip, clan-leaf-chip, prefs-chip, social-chip and watch-chip - over 63
   sites, in six base looks and seventeen tone rules, and two of those tone rules even carried
   their own hex pairs. It is one class now, and the tones are the sheet's own colour roles plus
   the dim one: --ok green, --warn red, --info blue, --accent amber, --alt violet, --quiet dim.
   THE CLASS IS CALLED .pill BECAUSE .chip IS TAKEN: the CHIP surface (an item, not a label) owns
   .chip as its page root, and .tag is the report's live tag.
   A TONE IS ALWAYS WRITTEN WITH THE BASE, never alone: pillClass is the only composer of a tone
   in Go, so "pill pill--ok" is the only shape the kit draws and a lone "--ok" is not a class a
   document can carry. */
.pill{display:inline-block;border:1px solid var(--line);color:var(--muted);padding:3px 8px;font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.pill--ok{border-color:var(--green);color:var(--green)}
.pill--warn{border-color:var(--red);color:var(--red)}
.pill--info{border-color:var(--blue);color:var(--blue)}
.pill--accent{border-color:var(--amber);color:var(--amber)}
.pill--alt{border-color:var(--violet);color:var(--violet)}
.pill--quiet{border-color:var(--dim);color:var(--dim)}

/* ── THE EMPTY: one look for a state that has nothing to show (TASK-2425.6) ───────────────────
   Twenty-two surface names drew this look over the kit, and the dominant one is a single muted
   line at eleven pixels of mono with five hundredths of a letter of tracking: desk, resource,
   faction, clan, donation, letter and player carried it VERBATIM, and the table and palette
   empties carried a slightly tighter version at fourteen pixels of vertical padding. The block
   form - a title over its copy - had already been written twice, for the two collections and for
   the craft bench, and the two were identical. They are one family now: .empty is the line,
   .empty-block wraps a title over a copy, and Empty() in molecule.go draws the line that most
   sites draw. */
.empty{margin:0;padding:18px 0 4px;font:11px var(--mono);letter-spacing:.05em;color:var(--muted)}
.empty-block{padding:20px 0}
.empty-title{font:700 19px var(--display);letter-spacing:.03em}
.empty-copy{margin-top:7px;font-size:12px;color:var(--muted)}

/* ── THE PANEL: one frame and one head (TASK-2425.7) ───────────────────────────────────────────
   Three surfaces drew this frame - repair-panel over nine sites including its five station
   markers, clan-leaf-panel over four and gantry-panel over two - and four surfaces drew its head
   over eighteen sites, in four title sizes. The frame is a column with a gap, which is what
   repair-panel already drew, and the head is the flex row the three agreed on with the majority
   title size. THE SURFACE MARKERS ARE GONE with it: repair-station-panel, -rack-, -roster-,
   -routes- and -lift-panel carried no rule and nothing outside the kit read them. */
.panel{border:var(--frame-border);background:var(--panel);padding:var(--panel-padding);display:flex;flex-direction:column;gap:var(--panel-gap);min-width:0}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--panel-gap);flex-wrap:wrap}
.panel-head h2{font:700 19px var(--display);letter-spacing:.03em}
/* A PANEL WHOSE TITLE IS A DIRECT CHILD has no head row: the watch console's cards and the social
   cards each put an h2 straight into the frame. Its treatment is the one those two rules carried
   (20px, uppercase), recorded here rather than merged with the head's 19px, because merging either
   changes the case of every panel title or the size of every card title. */
.panel>h2{font:700 20px var(--display);text-transform:uppercase;letter-spacing:.02em}

/* THE KICKER IS THE META LABEL (TASK-2425.8). Two more names drew the small tracked muted
   label - bank-kicker at nine pixels over fourteen sites and social-kicker at ten pixels over
   one - and the concept already had its unification, so no new molecule was made and no
   new class was added: those fifteen sites carry .meta. */

/* THE CARD WAS THE PANEL (a follow-up sweep after TASK-2425.7). watch-card over nine sites and
   social-card over two drew the same frame at eighteen pixels of padding, so they take .panel and
   the two rules are gone. repairjobs-station-card KEEPS its own rule: it is an amber-topped card,
   which is a notice rather than the frame. */

/* ── REWARDS (TASK-2403.65) ───────────────────────────────────────────────────────────────────
   The job's four leaves. Two shapes here are this surface's own and the kit's row grid is not, so
   they are named for the surface the way .history-title is named for the battle rows: the
   seven-day strip's cell, and the two-ended row a leaf closes its panels with. The four rows
   themselves take the SHARED .collection-row grid rather than a second grid, and a row's own
   cells carry the type the grid does not set.
   THE SEAT IS A STATE, NOT A COLOUR: data-state is the OWNER's own day token, so the one day the
   owner says is claimable is the one the amber rule reaches, and a token nothing recognises
   cannot paint itself as ready. */
.rewards-row-name{font:700 15px var(--display);letter-spacing:.03em;text-transform:uppercase;overflow-wrap:anywhere}
.rewards-row-line{display:block;margin-top:3px;font:10px/1.6 var(--mono);color:var(--muted);overflow-wrap:anywhere}
.rewards-seats{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:0;padding:14px 0 0;list-style:none}
.rewards-seat{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px;border:1px solid var(--line);background:var(--raised)}
.rewards-seat[data-state=available]{border-color:var(--amber)}
.rewards-seat-day{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.rewards-seat-payout{font:700 14px var(--display);overflow-wrap:anywhere}
.rewards-seat-state{font:9px var(--mono);letter-spacing:.09em;color:var(--dim)}
.rewards-seat[data-state=available] .rewards-seat-state{color:var(--amber)}
/* THE TWO-ENDED ROW IS THE COMMAND ROW AND THE STANDING ROW, and it is one class because it is
   one shape: whatever the caller puts left and right, at the two ends of a line. The kit's own
   .collection-more is the PAGER's row (a count and a LOAD MORE) and .panel-head is a panel's own
   head, so neither is this. */
.rewards-split{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:14px}
.rewards-label{font:700 15px var(--display);letter-spacing:.03em;overflow-wrap:anywhere}
/* A READING IS A PAIR, which is why the facts are a definition list and not another row grid: a
   label over its value, in as many columns as fit. */
.rewards-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0;padding-top:12px}
.rewards-fact dt{font:9px var(--mono);letter-spacing:.09em;color:var(--muted)}
.rewards-fact dd{margin:4px 0 0;font:700 15px var(--display);overflow-wrap:anywhere}
/* THE CODE BOX IS ONE FIELD AND ONE PRESS, and it is a native form: the address it posts to is
   the owner's, so the control is a submit and the field carries the code's own name. */
.rewards-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding-top:6px}
.rewards-field{flex:1 1 260px;min-width:0;display:block}
.rewards-field span{display:block;font:9px var(--mono);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);padding-bottom:6px}
.rewards-field input{width:100%;padding:10px 12px;background:var(--panel);border:1px solid var(--line);color:var(--ink);font:13px var(--mono)}
/* THE STRIP AND THE FACTS COLLAPSE ON A NARROW WINDOW, at the same thresholds the kit's other
   boards use, because seven columns of a 320 pixel viewport is a sideways scroll. */
@media(max-width:900px){.rewards-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){
  .rewards-seats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rewards-facts{grid-template-columns:minmax(0,1fr)}
  .rewards-split{flex-direction:column;align-items:flex-start}
}

/* ── THE DOCUMENT ENVELOPE (TASK-2403.68) ────────────────────────────────────
   The shell platform/ui3 still drew, re-expressed in this kit's tokens. Values
   are ui3's own, mapped onto --ink/--muted/--panel/--line rather than restated
   as literals, so the two kits' chrome reads the same in either document. */
.host{position:relative;z-index:1;isolation:isolate;min-height:100vh;background:var(--bg);font:17px/1.4 var(--display)}







.host #job{min-width:0}
.host #main-crumbs:empty,.host #section-index:empty{display:none}
.host #global-topbar{position:relative;z-index:5}




.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;text-decoration:none}







.world-search{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;min-width:0;width:100%;z-index:40}


.search-quick{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:65vh;overflow:auto;background:#17191b;box-shadow:0 12px 30px #0009;z-index:40}
.search-quick:empty{display:none}
.search-quick>*{padding:14px}







.search-notice{display:grid;gap:6px;padding:14px;background:var(--panel);border:1px solid var(--line);color:var(--muted)}
.search-notice--danger{border-color:#7d3c38}


.stack{display:grid;gap:16px;min-width:0}

.wallet-label{color:var(--muted)}









/* THE BATCH TRAY. It draws nothing at all when nothing is selected, so these
   rules only ever style a tray that has something to say. */
.tray{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;background:var(--panel);border:1px solid var(--line)}


.tray-count--none{color:var(--dim)}

.tray-members{font-size:12px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}


.tray-actions{display:flex;align-items:center;gap:8px;margin-left:auto}

/* THE SEAT RACK (TASK-2403.70). Five slots for the next battle, each either naming its mech or
   saying who fills it. The list is a flex row that wraps, so five seats read as one line on a
   wide bench and as a stack on a phone without a media query. An OPEN seat is dashed rather than
   bordered - the same "nothing is here yet" the UI3 seat drew - and takes the dim ink, because a
   seat nobody filled is not a reading about a mech. */
.seats{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.seat{display:grid;gap:6px;padding:12px;border:1px solid var(--line);min-width:120px}
.seat--open{border-style:dashed;color:var(--dim)}
.seat-label{font:10px var(--mono);color:var(--muted);letter-spacing:.08em}
.seat-title{font:500 20px var(--display)}
.seat-meta,.seat-hint{font:10px var(--mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Page-owned documents that were converted after the original style census. */
#rewards-body>h2{padding:12px 0;border-bottom:1px solid var(--line);font-size:19px}
.pagehead-stack,.marketboard .pagehead-stack{display:block}
.pagehead-stack h1{margin-top:7px}
.pagehead-stack p{margin-top:8px;max-width:72ch;color:var(--muted)}
.rewards-leaf{display:grid;gap:16px;max-width:1120px}
.rewards-leaf>.pagehead{display:block;margin-bottom:2px}
.rewards-leaf>h2{padding:12px 0;border-bottom:1px solid var(--line)}
.rewards-leaf>p{color:var(--muted)}
.rewards-leaf>div{display:grid;gap:10px}
.rewards-leaf article{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px;border:1px solid var(--line);background:var(--panel)}
.rewards-leaf article strong{font:700 20px var(--display)}
.rewards-leaf article span{font:11px var(--mono);color:var(--muted)}
.rewards-leaf article p{width:100%;color:var(--muted)}
.rewards-leaf form{display:inline-flex;max-width:100%}
.rewards-leaf button{min-height:44px;padding:10px 16px;border:1px solid var(--amber);background:var(--amber);color:var(--bg);font:700 14px var(--display);letter-spacing:.05em}
.rewards-leaf button:hover{background:#f6c66f;color:var(--bg)}

.repairjobs-context{padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:10px/1.7 var(--mono);letter-spacing:.05em;color:var(--muted)}
.repair-head{align-items:flex-start;padding-bottom:15px;border-bottom:1px solid var(--line)}
.repairjobs-notice .button,.repair-orders>.panel .button{align-self:flex-start}
.repairjobs-row{flex-wrap:wrap}
.repairjobs-row .repairjobs-name{font:700 20px var(--display);color:var(--ink)}
.repairjobs-row p{font:11px var(--mono);color:var(--muted)}
.repairjobs-row form{margin-left:auto}
.repair-orders-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}
.repair-orders-form .repair-orders-switch{grid-column:1/-1}
.repair-orders-form .button{justify-self:start}
.repair-order-unit{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.repair-order-unit form{margin-left:auto}
@media(max-width:680px){.repair-orders-form{grid-template-columns:minmax(0,1fr)}}

/* Repair stations: the approved maintenance palette and three-panel owner view. */
.repair-index{max-width:1500px;margin-inline:auto}
.repair-index-head{position:relative;overflow:hidden;min-height:265px;padding:28px 32px;border-top:2px solid #91b49a;background:radial-gradient(circle at 83% 45%,#31513b55,transparent 35%),repeating-linear-gradient(90deg,transparent 0,transparent 79px,#ffffff06 80px),#191e1b}
.repair-index-head:after{content:'R';position:absolute;right:3%;bottom:-.28em;font:700 clamp(200px,29vw,390px)/1 var(--display);color:#a7c9ab0d;pointer-events:none}
.repair-index-head h1{position:relative;z-index:1;margin:20px 0 16px;font:700 clamp(55px,7.5vw,108px)/.84 var(--display);letter-spacing:-.025em}
.repair-index-head>p:last-child{position:relative;z-index:1;max-width:52ch;color:var(--muted);font-size:13px}
.repair-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:18px;background:var(--line);border:1px solid var(--line)}
.repair-index-cell{position:relative;display:flex;flex-direction:column;min-height:260px;padding:22px 24px;background:#1a1f1c;overflow:hidden;border-top:3px solid #91b49a}
.repair-index-cell:nth-child(2){border-color:#c0b076}.repair-index-cell:nth-child(3){border-color:#818f91}
.repair-index-cell:hover{background:#232b26}
.repair-index-number,.repair-index-open{font:10px var(--mono);letter-spacing:.12em;color:#a3bea6}
.repair-index-mark{position:absolute;right:10px;top:25px;font:700 150px/.85 var(--display);color:#ffffff0a;pointer-events:none}
.repair-index-name{position:relative;margin-top:56px;font:700 clamp(27px,2.7vw,41px)/1 var(--display)}
.repair-index-copy{position:relative;max-width:36ch;margin-top:13px;color:var(--muted);font:11px/1.6 var(--mono)}
.repair-index-open{position:relative;margin-top:auto;padding-top:25px}
.repair-leaf-nav{display:flex;gap:20px;border-bottom:1px solid var(--line);font:10px var(--mono);letter-spacing:.1em}
.repair-leaf-nav a{display:inline-flex;padding:0 0 13px;border-bottom:2px solid transparent;color:var(--muted)}
.repair-leaf-nav a[aria-current=page]{border-color:#91b49a;color:var(--ink)}
.repairjobs .repair-head h1,.repair-orders .repair-head h1{font:700 clamp(40px,5vw,68px)/.95 var(--display)}
.repairjobs .repair-head p,.repair-orders .repair-head p{max-width:66ch;margin-top:12px;color:var(--muted)}
.repairjobs-summary{display:flex;gap:28px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:10px 0 17px;font:10px var(--mono);letter-spacing:.09em;color:var(--muted)}
.repairjobs-summary strong{font:700 18px var(--display);color:#a5c9a7}
.repairjobs-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.65fr);gap:16px;align-items:start}
.repairjobs-board{gap:0;border:1px solid var(--line)}
.repairjobs-board-head{display:flex;justify-content:space-between;padding:12px 16px;background:#1a1f1c;color:var(--muted);font:9px var(--mono);letter-spacing:.1em}
.repairjobs-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:16px 18px;border:0;border-top:1px solid var(--line);background:#171c19;min-height:115px}
.repairjobs-row:hover{background:#222b24}.repairjobs-row[data-state=selected]{border-left:3px solid #9ec2a1;background:#202922}
.repairjobs-row-main,.repairjobs-row-terms{display:grid;gap:6px;min-width:0}.repairjobs-row-main strong{font:700 21px var(--display)}
.repairjobs-row-terms{text-align:right}.repairjobs-row-terms strong{font:700 25px var(--display);color:#a5c9a7}
.repairjobs-row small,.repairjobs-inspector small{font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.repairjobs-inspector{display:grid;gap:13px;padding:20px;border:1px solid #425847;border-top:3px solid #91b49a;background:#1b241e}
.repairjobs-inspector>img{width:100%;max-height:210px;object-fit:contain;background:#121815}
.repairjobs-chassis-mark{position:relative;overflow:hidden;min-height:150px;padding:16px;border:1px solid #415846;background:repeating-linear-gradient(90deg,transparent 0,transparent 38px,#ffffff07 39px),linear-gradient(135deg,#182b20,#101a15);display:flex;flex-direction:column;justify-content:space-between}
.repairjobs-chassis-mark span{position:relative;z-index:1;font:10px var(--mono);letter-spacing:.1em;color:#b8d1ba}.repairjobs-chassis-mark strong{align-self:end;font:700 100px/.75 var(--display);color:#a5c9a71a}
.repairjobs-inspector h2{font:700 34px var(--display)}.repairjobs-inspector-owner{font:10px var(--mono);color:var(--muted)}
.repairjobs-inspector-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#3d4a40;border:1px solid #3d4a40}
.repairjobs-inspector-figures>div{display:grid;gap:6px;padding:12px;background:#1a211c}
.repairjobs-inspector-figures span{font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}
.repairjobs-inspector-figures strong{font:700 20px var(--display)}
.repairjobs-pot{display:flex;justify-content:space-between;gap:10px;padding:12px;border:1px solid #425847;font:10px var(--mono)}
.repairjobs-pot strong{color:#a5c9a7}.repairjobs-inspector form{display:flex}.repairjobs-inspector button{width:100%;background:#a5c9a7;border-color:#a5c9a7;color:#111b14}
.repairjobs-empty{position:relative;min-height:320px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:15px;padding:34px;border:1px solid #3a4c3d;background:radial-gradient(circle at 85% 50%,#34544144,transparent 42%),#18201b}
.repairjobs-empty:after{content:'00';position:absolute;right:25px;bottom:0;font:700 clamp(100px,18vw,240px)/.8 var(--display);color:#ffffff09;pointer-events:none}
.repairjobs-empty strong{font:700 clamp(36px,5vw,62px)/1 var(--display)}.repairjobs-empty p{color:var(--muted)}.repairjobs-empty .button{position:relative;z-index:1}
.repair-orders-allowance,.repair-orders-units,.repair-orders-history{border:1px solid var(--line);background:#1a1e1b;min-width:0}
.repair-orders-columns{display:grid;grid-template-columns:minmax(280px,350px) minmax(0,1fr);gap:22px;align-items:start}.repair-orders-main{display:grid;gap:16px;min-width:0}
.repair-orders-funding{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.repair-orders-funding>div{display:grid;gap:8px;align-content:start;min-height:112px;padding:18px;border-left:3px solid #9bbca0;background:#1b251e}.repair-orders-funding>div:nth-child(2){border-color:#b6a978;background:#24231d}.repair-orders-funding span{font:700 24px var(--display)}.repair-orders-funding p{color:var(--muted);font-size:11px}
.repair-orders-allowance{padding:22px;border-top:3px solid #91b49a}
.repair-orders-allowance-head,.repair-orders-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.repair-orders-allowance-head>strong{padding:6px 8px;border:1px solid #4c6a50;color:#a5c9a7;font:9px var(--mono);letter-spacing:.1em}
.repair-orders-spend{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap;margin:24px 0 7px}.repair-orders-spend strong{font:700 clamp(52px,7vw,92px)/.9 var(--display);color:#b6d7b5}
.repair-orders-cap{height:9px;margin:17px 0 10px;border:1px solid #596b5c;background:#313a33}.repair-orders-cap span{display:block;height:100%;background:#a8cba8}.repair-orders-remaining{font:10px var(--mono);color:#b8d1ba}
.repair-orders-spend span{font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.repair-orders-allowance>p{max-width:72ch;color:var(--muted);font-size:12px}
.repair-orders-form{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.repair-orders-allowance .repair-orders-form{grid-template-columns:minmax(0,1fr)}
.repair-orders-form .button{background:#a5c9a7;border-color:#a5c9a7;color:#111b14}
.repair-orders-section-head{padding:18px 20px;border-bottom:1px solid var(--line)}
.repair-orders-section-head h2{font:700 26px var(--display)}
.repair-orders-empty{padding:26px 20px;display:grid;gap:7px}.repair-orders-empty strong{font:700 20px var(--display)}.repair-orders-empty p{color:var(--muted)}
.repair-order-unit{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.5fr) auto;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);background:#191f1b}
.repair-orders-workspace{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1fr);min-width:0}.repair-orders-roster{border-right:1px solid var(--line);min-width:0}.repair-orders-roster .repair-order-unit{grid-template-columns:minmax(0,1fr);gap:10px;padding:14px}.repair-orders-roster .repair-order-unit-terms{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}.repair-orders-roster .repair-order-unit-terms strong{font-size:16px}.repair-orders-roster .repair-order-unit-actions{display:flex;flex-wrap:wrap}.repair-orders-roster .repair-order-unit-actions .button{font-size:10px;min-height:34px}
.repair-order-unit:last-child{border-bottom:0}.repair-order-unit-main h3{margin:6px 0;font:700 24px var(--display)}.repair-order-unit-main p{font:10px var(--mono);color:var(--muted)}
.repair-order-unit-terms{display:grid;gap:5px;font:9px var(--mono);color:var(--muted)}.repair-order-unit-terms strong{font:700 18px var(--display);color:#a5c9a7}.repair-order-unit-terms a{color:#d4bd82}
.repair-order-unit form{align-self:center}.repair-orders-contribution{display:grid;grid-template-columns:1fr auto auto;gap:24px;padding:16px 20px;border-bottom:1px solid var(--line)}
.repair-order-unit-actions{display:grid;gap:7px;align-self:center}.repair-order-unit-actions form{margin:0}.repair-order-unit-actions .button{width:100%}
.repair-order-inspect{display:inline-flex;justify-content:center;align-items:center}.repair-orders-inspector{display:grid;gap:12px;margin:16px 20px 20px;padding:19px;border:1px solid #45604a;border-top:3px solid #91b49a;background:#1c2820}
.repair-orders-workspace .repair-orders-inspector{margin:14px}
.repair-orders-inspector h3{font:700 32px var(--display)}.repair-orders-inspector>p{font:10px var(--mono);color:var(--muted)}
.repair-orders-inspector-facts{display:flex;gap:10px;flex-wrap:wrap;font:10px var(--mono);letter-spacing:.06em}.repair-orders-inspector-facts span{padding:8px;border:1px solid #435849}
.repair-orders-inspector .repair-orders-pot{display:grid;gap:9px;border-color:#608563;background:#1b3021}.repair-orders-inspector .repair-orders-pot strong{font:700 30px var(--display)}.repair-orders-inspector .repair-orders-pot a{font:10px var(--mono);color:#bed8bd}.repair-orders-inspector .repair-orders-pot button{justify-self:start}
.repair-orders-contribution>span{display:grid;gap:5px}.repair-orders-contribution strong{font:700 16px var(--display)}.repair-orders-contribution small{font:9px var(--mono);color:var(--muted)}
.repair-rack-pools{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:12px}
.repair-rack-pools:has(> :only-child){grid-template-columns:minmax(0,1fr)}
.repair-rack-pool{border:1px solid #425847;background:#1a211c;min-width:0}.repair-rack-pool--auto{border-color:#504755;background:#211d23}
.repair-rack-pool-head{display:grid;grid-template-columns:1fr auto;gap:5px 10px;padding:15px;border-bottom:1px solid var(--line)}
.repair-rack-pool-head .eyebrow,.repair-rack-pool-head small{grid-column:1/-1}.repair-rack-pool-head strong{font:700 22px var(--display)}.repair-rack-pool-head>span:last-of-type{font:700 25px var(--display)}.repair-rack-pool-head small{font:10px var(--mono);color:var(--muted)}
.repair-rack-pool .repair-rack{padding:12px}.repair-rack-pool--manual .repair-rack{grid-template-columns:1fr}
.repair-bay .repair-head h1{font:700 clamp(41px,5vw,65px)/.95 var(--display)}
.repair-bay .repair-search{display:grid;gap:8px}.repair-bay .repair-search input{width:100%;min-height:42px}.repair-bay .repair-search button{min-height:38px;border:1px solid var(--line);background:#252c27;font:10px var(--mono);letter-spacing:.07em}
.repair-bounty-overview{display:flex;gap:0;border:1px solid var(--line);margin-top:20px;background:#191d1e}
.repair-bounty-overview .repair-bounty-figure small{font:9px var(--mono);color:var(--muted)}
.repair-bounty-record{margin-top:20px}.repair-bounty-record h2{font:700 19px var(--display)}
.repair-bounty-aside{margin-top:20px;padding:18px;border:1px solid var(--line);display:grid;gap:8px}.repair-bounty-aside strong{font:700 22px var(--display);text-transform:uppercase}.repair-bounty-aside p,.repair-bounty-aside small{color:var(--muted)}
.repair-bounty .repair-bounty-notice{display:grid;align-content:center;gap:18px;max-width:none;min-height:390px;padding:36px;border:1px solid #425847;border-top:3px solid #91b49a;background:radial-gradient(circle at 86% 50%,#2e4d3855,transparent 39%),#19211c}
.repair-bounty .repair-bounty-notice h1{margin:0;font:700 clamp(42px,6vw,78px)/.95 var(--display)}.repair-bounty .repair-bounty-notice p{color:var(--muted)}.repair-bounty .repair-bounty-notice a{justify-self:start}
.repair-bounty-return{font:10px var(--mono);letter-spacing:.1em;color:#b7d4b8}
@media(max-width:1000px){.repairjobs-workspace{grid-template-columns:minmax(0,1fr)}.repairjobs-inspector{grid-row:1}.repair-rack-pools{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1050px){.repair-orders-columns{grid-template-columns:minmax(0,1fr)}.repair-orders-workspace{grid-template-columns:minmax(0,1fr)}.repair-orders-roster{border-right:0;border-bottom:1px solid var(--line)}}
@media(max-width:900px){.repair-index-grid{grid-template-columns:minmax(0,1fr)}.repair-index-cell{min-height:175px}.repair-index-name{margin-top:22px}}
@media(max-width:680px){.repair-index-head{min-height:245px;padding:24px 20px}.repair-index-head h1{font-size:clamp(52px,14vw,74px)}.repair-index-cell{padding:20px}.repair-order-unit{grid-template-columns:minmax(0,1fr)}.repair-order-unit form{margin-left:0}.repair-orders-contribution{grid-template-columns:1fr 1fr}.repair-orders-contribution>span:first-child{grid-column:1/-1}.repair-bounty-overview{display:block}}
@media(max-width:680px){.repair-orders-funding{grid-template-columns:minmax(0,1fr)}.repair-orders-funding>div{min-height:0}.repair-orders-workspace .repair-orders-inspector{margin:12px}}

.craft-bench .collection-head p,.craft-combiner .collection-head p{margin-top:8px;max-width:72ch;color:var(--muted);font-size:12px}
.craft-empty,.craft-stale,.craft-unread,.craft-unavailable,.craft-chamber,.craft-notice{display:grid;gap:10px;padding:20px;border:1px solid var(--line);background:var(--panel);min-width:0}
.craft-empty strong,.craft-stale strong,.craft-unread strong,.craft-chamber>strong{font:700 22px var(--display)}
.craft-empty p,.craft-stale p,.craft-unread p,.craft-unavailable p,.craft-chamber p{color:var(--muted);max-width:72ch}
.craft-signed-out{padding:0}
.craft-control{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid var(--line);background:var(--raised);font:700 14px var(--display);letter-spacing:.05em;white-space:normal;text-align:center}
.craft-control--primary{border-color:var(--amber);background:var(--amber);color:var(--bg)}
.craft-control--primary:hover{background:#f6c66f;color:var(--bg)}
.craft-empty .craft-control{justify-self:start}
.craft-jump{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--line)}
.craft-layout{min-width:0;align-items:start}
.craft-layout>*{min-width:0}
.craft-station,.craft-catalog,.craft-workbench,.craft-queue,.craft-stock,.craft-history,.craft-group-catalog{display:grid;gap:14px;min-width:0;padding:18px;border:1px solid var(--line);background:var(--panel)}
.craft-station--locked{border-top:2px solid var(--amber)}
.craft-station--unknown,.craft-unread,.craft-stale{border-color:var(--red)}
.craft-station-facts,.craft-chamber-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.craft-fact{min-width:0;padding-top:8px;border-top:1px solid var(--soft-line)}
.craft-fact dt{font:10px var(--mono);color:var(--muted)}
.craft-fact dd{margin:4px 0 0;font:500 18px var(--display);overflow-wrap:anywhere}
.craft-station-actions,.craft-preview-actions,.craft-review-actions,.craft-notice-actions{display:flex;gap:8px;flex-wrap:wrap}
.craft-catalog-rows,.craft-groups{display:grid;gap:10px}
.craft-catalog-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:14px;border:1px solid var(--soft-line);min-width:0}
.craft-group{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--soft-line);min-width:0}
.craft-catalog-row--selected,.craft-group--selected{border-color:var(--amber)}
.craft-catalog-body,.craft-catalog-facts{display:grid;gap:7px;min-width:0}
.craft-catalog-body{flex:1 1 180px}
.craft-catalog-facts{font:10px var(--mono);color:var(--muted)}
.craft-catalog-line strong{font:700 19px var(--display)}
.craft-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;padding:10px 0;border-bottom:1px solid var(--soft-line)}
.craft-input-track{grid-column:1/-1;height:5px;background:var(--soft-line);overflow:hidden}
.craft-input-fill{height:100%;background:var(--amber)}
.craft-review{display:grid;gap:12px;padding:16px;border:1px solid var(--amber)}
.craft-group-counts{display:flex;gap:15px;flex-wrap:wrap;font:10px var(--mono);color:var(--muted)}
.craft-link{color:var(--amber);text-decoration:underline;text-underline-offset:3px}
.craft-link small{margin-left:5px;font:9px var(--mono);letter-spacing:.08em;text-transform:uppercase}
@media(max-width:680px){.craft-group{grid-template-columns:minmax(0,1fr)}}

/* Craft: a compact catalog beside the production stage. */
.craft-index-head{padding:17px 0 27px;border-bottom:1px solid var(--line)}
.craft-index-head h1{margin:15px 0;font:700 clamp(58px,7vw,104px)/.86 var(--display);letter-spacing:-.025em}
.craft-index-head p{max-width:52ch;color:var(--muted)}
.craft-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:23px;border:1px solid var(--line);background:var(--line)}
.craft-index-cell{position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:340px;padding:24px;background:#1b2020;overflow:hidden;min-width:0;transition:background .15s ease}
.craft-index-cell:hover{background:#262d2c}
.craft-index-number,.craft-index-open{position:relative;z-index:1;font:10px var(--mono);letter-spacing:.1em;color:var(--amber)}
.craft-index-mark{position:absolute;right:9px;top:6px;font:700 165px/.9 var(--display);color:#ffffff09;pointer-events:none}
.craft-index-name{position:relative;z-index:1;margin-top:auto;font:700 clamp(30px,3vw,47px)/.93 var(--display);text-transform:uppercase}
.craft-index-copy{position:relative;z-index:1;max-width:28ch;color:var(--muted);font-size:12px}
.craft-index-open{margin-top:28px;padding-top:14px;border-top:1px solid var(--line)}
.craft-bench .collection-head h1,.craft-combiner .collection-head h1{font:700 clamp(48px,5.2vw,78px)/.9 var(--display);letter-spacing:-.02em}
.craft-bench .collection-head p,.craft-combiner .collection-head p{font-size:13px}
.craft-bench .craft-jump{padding:0 0 5px;border:0;gap:18px}
.craft-bench .craft-jump .button{min-height:0;padding:0;border:0;background:none;color:var(--amber);font:10px var(--mono);letter-spacing:.08em;text-decoration:underline;text-underline-offset:4px}
.craft-bench .craft-station,.craft-combiner .craft-station{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 16px;padding:17px 20px;background:#181c1d}
.craft-bench .craft-station>.eyebrow,.craft-combiner .craft-station>.eyebrow{grid-column:1/-1}
.craft-bench .craft-station .craft-station-copy,.craft-combiner .craft-station>p{margin:0;color:var(--muted)}
.craft-bench .craft-station .craft-station-actions,.craft-combiner .craft-station form{grid-column:2;grid-row:2}
.craft-layout{display:grid;grid-template-columns:minmax(300px,33%) minmax(0,1fr);gap:24px;align-items:start}
.craft-bench .craft-catalog{padding:0;border:0;background:transparent;gap:11px}
.craft-bench .craft-workbench{padding:27px;border-color:#43443b;border-top:2px solid var(--amber);background:#1b1d1e}
.craft-bench .section-head h2,.craft-combiner .section-head h2{font:700 clamp(24px,2.6vw,36px)/.98 var(--display)}
.craft-bench .craft-counts{font:10px var(--mono);color:var(--muted)}
.craft-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.craft-search{grid-column:1/-1;display:grid;gap:6px}
.craft-search label,.craft-target label{font:10px var(--mono);letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.craft-search-input,.craft-target select{width:100%;min-height:40px;border:1px solid var(--line);background:#1b1d1e;color:var(--text);padding:9px;font:12px var(--mono)}
.craft-filter{display:grid;align-content:start;gap:6px;min-width:0}
.craft-filter-values{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.craft-chip-wrap{display:inline-flex;align-items:center;min-width:0;border:1px solid var(--line);background:#1a1d1e}
.craft-chip-wrap--current{border-color:var(--amber);background:#473a25}
.craft-chip-wrap .button{min-height:29px;padding:5px 7px;border:0;background:none;font:10px var(--mono);text-align:left;letter-spacing:.02em}
.craft-chip-wrap small{padding-right:5px;color:var(--muted);font:9px var(--mono)}
.craft-filter-reset{grid-column:1/-1;display:flex}
.craft-filter-reset .button{padding:6px 10px;min-height:30px;font:10px var(--mono)}
.craft-bench .craft-columns{display:none}
.craft-bench .craft-catalog-rows{gap:0;border-top:1px solid var(--line)}
.craft-bench .craft-catalog-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:transparent}
.craft-bench .craft-catalog-row .craft-row-art{display:none}
.craft-bench .craft-catalog-line strong{font:700 20px var(--display)}
.craft-bench .craft-catalog-facts{gap:4px}
.craft-bench .craft-catalog-facts .craft-input{display:none}
.craft-bench .craft-catalog-facts .craft-link{display:block;width:max-content}
.craft-bench .craft-catalog-select{grid-column:2;grid-row:1/3}
.craft-bench .craft-catalog-select .button{min-height:32px;padding:7px 10px;background:var(--amber);border-color:var(--amber);color:#17191a;font:700 10px var(--display)}
.craft-bench .craft-catalog-row--selected{box-shadow:inset 3px 0 var(--amber);padding-left:9px}
.craft-bench .craft-workbench>.craft-empty{min-height:300px;place-content:center;background:radial-gradient(circle at 85% 20%,#c49c3018,transparent 42%),#1a1d1e}
.craft-bench .craft-workbench>.craft-empty strong{font-size:34px}
.craft-bench .craft-inputs,.craft-bench .craft-target,.craft-bench .craft-review{border-top:1px solid var(--line);padding-top:16px}
.craft-bench .craft-inputs h3,.craft-bench .craft-review h3{font:700 18px var(--display)}
.craft-bench .craft-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.craft-bench .craft-input-label{color:var(--amber)}
.craft-bench .craft-preview-actions .button,.craft-bench .craft-review-actions .button{min-height:40px}
.craft-bench .craft-media{max-width:130px}
.craft-bench .craft-media-image{max-width:130px;max-height:150px;object-fit:contain}
.craft-bench .craft-queue,.craft-bench .craft-stock,.craft-bench .craft-history{background:#191d1d}
.craft-bench .craft-bins{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.craft-bench .craft-bins>h3{grid-column:1/-1;padding:12px 14px;background:#191d1d;font:700 18px var(--display)}
.craft-bench .craft-bin{display:grid;gap:5px;align-content:start;min-height:100px;padding:14px;background:#202525;min-width:0}
.craft-bench .craft-bin .craft-media{font:9px var(--mono);letter-spacing:.07em;color:var(--muted)}
.craft-bench .craft-bin strong{font:700 17px var(--display);overflow-wrap:anywhere}
.craft-bench .craft-bin-count{font:700 22px var(--display);color:var(--amber)}
.craft-bench .craft-orders{display:grid;gap:12px}
.craft-bench .craft-order{display:grid;gap:12px;padding:17px;border:1px solid var(--line);background:#202525}
.craft-bench #production-line,.craft-bench #stock,.craft-bench [tabindex="-1"]{scroll-margin-top:85px}
.craft-combiner-workspace{display:grid;grid-template-columns:minmax(260px,34%) minmax(0,1fr);gap:22px;align-items:start}
.craft-combiner-workspace .craft-group-catalog{grid-column:1;grid-row:1;padding:17px;background:transparent}
.craft-combiner-workspace .craft-chamber{grid-column:2;grid-row:1;min-height:330px;padding:26px;border-top:2px solid var(--amber);background:radial-gradient(circle at 95% 15%,#9b7f3020,transparent 43%),#1b1e1f}
.craft-combiner .craft-chamber>strong{font-size:32px}
.craft-combiner .craft-chamber-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.craft-conversion{display:grid;grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);align-items:center;gap:10px;min-height:220px;padding:24px;border-block:1px solid var(--line);background:radial-gradient(circle at 76% 50%,#c4a45314,transparent 35%)}
.craft-conversion-pool,.craft-conversion-result{display:grid;justify-items:center;gap:8px;text-align:center}
.craft-conversion-pool strong,.craft-conversion-result strong{font:700 36px var(--display)}
.craft-conversion-parts{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:95px}
.craft-conversion-parts span,.craft-conversion-part{display:block;width:63px;height:78px;border:2px solid #679784;background:linear-gradient(135deg,#45695e77,#1b2725 58%,#354d4977);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px);box-shadow:inset 0 0 0 6px #13201bcc}
.craft-conversion-parts span+span{margin-left:-26px}.craft-conversion-parts span:first-child{transform:translateY(-7px)}.craft-conversion-parts span:last-child{transform:translateY(7px)}
.craft-conversion-arrow{font:700 48px var(--display);color:var(--amber);text-align:center}
.craft-conversion-result .craft-conversion-part{width:77px;height:92px;border-color:#c4a560;background:linear-gradient(135deg,#9b814166,#1b2725 57%,#6e593577)}
.craft-combiner .craft-group{background:#1c2020}
.craft-combiner .craft-blocked{display:grid;gap:12px;padding:20px;border:1px solid var(--line);background:#181c1d}
@media(max-width:1050px){.craft-layout{grid-template-columns:minmax(270px,40%) minmax(0,1fr)}.craft-combiner-workspace{grid-template-columns:minmax(240px,39%) minmax(0,1fr)}}
@media(max-width:760px){.craft-index-grid{grid-template-columns:1fr}.craft-index-cell{min-height:205px}.craft-index-name{margin-top:20px}.craft-layout,.craft-combiner-workspace{grid-template-columns:minmax(0,1fr)}.craft-combiner-workspace .craft-group-catalog,.craft-combiner-workspace .craft-chamber{grid-column:1;grid-row:auto}.craft-combiner-workspace .craft-chamber{grid-row:1}.craft-bench .craft-station,.craft-combiner .craft-station{grid-template-columns:1fr}.craft-bench .craft-station .craft-station-actions,.craft-combiner .craft-station form{grid-column:1;grid-row:auto}.craft-bench .craft-workbench{padding:20px}.craft-filter-reset{grid-row:auto}.craft-conversion{grid-template-columns:1fr;gap:4px}.craft-conversion-arrow{transform:rotate(90deg);line-height:1}}
.navrail{position:sticky;top:0;height:calc(100vh - 68px);overflow-y:auto;padding-bottom:32px}
.navlinks{gap:1px}
.navlink{padding-block:9px}
.navlink:not(.navlink-child):not(:first-child){margin-top:9px;padding-top:15px;border-top:1px solid var(--line)}
.navlink-child{padding-left:24px;font-size:12px;color:var(--muted)}
.navlink-child>span:first-child{flex:0 0 17px;font:10px var(--mono)}
@media(min-width:681px) and (max-width:960px){.workspace{grid-template-columns:170px minmax(0,1fr)}.navrail>.eyebrow,.navlink .label{display:block}.navlink{justify-content:flex-start;padding-inline:9px}.navlink-child{padding-left:24px}}
@media(max-width:680px){.workspace>.navrail{height:auto}.workspace>.navrail .navlink-child{padding-left:24px}}

/* Deploy section: page-owned compositions over the shared command-deck palette. */
.mech .mech-machine,.mech .mech-layout,.mech .mech-main,.mech .mech-aside,.expedition .exp-layout,.expedition .exp-main,.expedition .exp-aside,.tour .tour-hero-body,.tour .tour-layout,.tour .tour-main,.tour .tour-aside{display:grid;gap:24px}
.expedition .exp-credits{display:grid;gap:16px}
.deploy-index{min-width:0}
.deploy-index-head{border-bottom:1px solid var(--line);padding-bottom:22px}
.deploy-index-head h1{font:700 clamp(64px,8vw,112px)/.86 var(--display);letter-spacing:-.025em;margin:9px 0 16px}
.deploy-index-head h1 span{color:var(--amber)}
.deploy-index-head>p:last-child{max-width:64ch;color:var(--muted)}
.deploy-index-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,42%);min-height:350px;margin-top:22px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(120deg,#202928 0%,#151a1b 52%,#121516 100%)}
.deploy-index-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0,transparent 77px,#ffffff09 78px),linear-gradient(135deg,transparent 54%,#d6a65414 54.2%,transparent 54.5%)}
.deploy-index-hero-copy{position:relative;z-index:1;align-self:center;padding:38px}
.deploy-index-hero-copy h2{font:700 clamp(42px,5vw,74px)/.94 var(--display);letter-spacing:-.015em;margin:15px 0}
.deploy-index-hero-copy>p:not(.eyebrow){max-width:38ch;color:var(--muted)}
.deploy-index-open{display:inline-flex;gap:40px;align-items:center;justify-content:space-between;margin-top:26px;min-width:180px;padding:13px 17px;background:var(--amber);color:#17191a;font:700 12px var(--display);letter-spacing:.08em;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.deploy-index-open:hover{color:#17191a;background:#f6c66f}
.deploy-index-art{position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#54706a33,transparent 66%)}
.deploy-index-art img{width:min(92%,360px);max-height:335px;object-fit:contain;filter:drop-shadow(0 18px 22px #0009)}
.deploy-index-art-label{position:absolute;right:16px;bottom:12px;font:9px var(--mono);letter-spacing:.08em;color:var(--muted)}
.deploy-index-list-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);padding:19px 0 11px}
.deploy-index-list-head h2{font:700 23px var(--display)}
.deploy-index-list-head span{font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}
.deploy-index-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:12px;background:var(--line);border:1px solid var(--line)}
.deploy-index-route{display:grid;grid-template-columns:32px minmax(0,1fr) 16px;gap:14px;align-items:start;min-height:104px;padding:21px;background:#191d1e;min-width:0;transition:background .15s ease}
.deploy-index-route:hover{background:#232a2a}
.deploy-index-route-number{font:700 18px var(--display);color:var(--amber)}
.deploy-index-route-copy{display:grid;gap:6px;min-width:0}
.deploy-index-route-copy strong{font:700 22px var(--display);letter-spacing:.02em}
.deploy-index-route-copy small{font:10px/1.5 var(--mono);letter-spacing:0;color:var(--muted);max-width:58ch}
.deploy-index-route-arrow{color:var(--amber)}
.deploy-index-route:first-child{grid-column:1/-1;background:linear-gradient(105deg,#252e2c,#191d1e 65%)}
.deploy-index-route:first-child .deploy-index-route-copy strong{font-size:29px}

.gantry>.pagehead>a{display:inline-flex;align-items:center;min-height:40px;padding:9px 14px;border:1px solid var(--amber);color:var(--amber);font:700 11px var(--display);letter-spacing:.07em}
.gantry-empty-deck{display:grid;grid-template-columns:minmax(260px,.95fr) minmax(0,1fr);min-height:370px;border:1px solid var(--line);border-top:2px solid var(--amber);background:#181d1e}
.gantry-empty-art{position:relative;display:grid;place-items:center;min-width:0;overflow:hidden;border-right:1px solid var(--line);background:radial-gradient(ellipse at center,#53746b31,transparent 65%),repeating-linear-gradient(90deg,transparent 0,transparent 49px,#ffffff07 50px)}
.gantry-empty-art img{width:min(82%,280px);height:300px;object-fit:contain;opacity:.72;filter:grayscale(.35)}
.gantry-empty-art span{position:absolute;left:18px;bottom:14px;font:9px var(--mono);letter-spacing:.06em;color:var(--muted)}
.gantry-empty-copy{display:flex;flex-direction:column;justify-content:center;align-items:start;gap:17px;padding:32px;min-width:0}
.gantry-empty-copy small{font:10px var(--mono);letter-spacing:.1em;color:var(--amber)}
.gantry-empty-copy strong{font:700 clamp(35px,4.5vw,62px)/.95 var(--display);max-width:14ch}
.gantry-empty-copy p{max-width:42ch;color:var(--muted)}

.exp-board .pagehead{align-items:end;gap:25px}
.exp-board .pagehead>div:first-child{min-width:0;flex:1}
.exp-board .pagehead>div:last-child{flex:0 0 auto;max-width:190px;text-align:right}
.exp-board .exp-board-active>small{display:inline-block;color:var(--amber);margin:6px 0 12px}
.exp-board .exp-board-routes{display:block;margin-top:0}
.exp-board .exp-board-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.exp-board .exp-board-route{min-height:232px;background:#171b1c}
.exp-board .exp-board-route[aria-pressed=true]{background:linear-gradient(145deg,#31281b,#1e201f 75%)}
.exp-board .exp-board-route strong{display:block;font:700 32px var(--display);margin:8px 0 13px}
.exp-board .exp-board-route p{font:10px/1.5 var(--mono);color:var(--muted)}
.exp-board .exp-board-route h3{font-size:24px}

.rotations>.pagehead h1{font-size:clamp(42px,5vw,62px)}
.rotations .rot-overview{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,1.4fr);border:1px solid var(--line);border-top:2px solid var(--amber);margin:20px 0 25px;background:#191d1e}
.rotations .rot-overview .rot-clock{border:0;border-right:1px solid var(--line);padding:22px;margin:0;min-width:0}
.rotations .rot-overview .rot-clock-value{font-size:48px;line-height:1.05}
.rotations .rot-overview .rot-strips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:0;padding:0;margin:0}
.rotations .rot-overview .rot-strip{padding:22px;border-right:1px solid var(--line);min-width:0}
.rotations .rot-overview .rot-strip:last-child{border:0}
.rotations .rot-overview .rot-strip-count{font-size:35px}
.rotations .rot-layout{display:grid;grid-template-columns:minmax(0,1fr) 355px;gap:24px;align-items:start}
.rotations .rot-aside{grid-column:2;grid-row:1;min-width:0}
.rotations .rot-work{grid-column:1;grid-row:1;min-width:0}
.rotations .rot-aside .rot-plan,.rotations .rot-aside .rot-notices,.rotations .rot-work .rot-list{border:1px solid var(--line);border-top:2px solid var(--line);background:#191d1e;padding:22px;margin:0 0 18px;min-width:0}
.rotations .rot-aside .rot-plan{border-top-color:var(--amber)}
.rotations .rot-work .rot-list h2{font-size:27px}

.toursboard>.pagehead{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:end;gap:28px;border-bottom:1px solid var(--line);padding-bottom:22px}
.toursboard .tours-head-copy{min-width:0}
.toursboard .tours-head-copy h1{font:700 clamp(44px,5vw,64px)/.98 var(--display);margin:7px 0 12px;overflow-wrap:normal}
.toursboard .tours-head-copy .pagehead-blurb{color:var(--muted)}
.toursboard .tours-consequence{margin:0;align-self:end}
.toursboard .tours-linesband{border-top:0}
.toursboard .tours-line{background:linear-gradient(145deg,#1d2324,#17191a 70%);min-height:170px}
.toursboard .tours-line-name{font-size:20px}
.toursboard .tours-line-figs .fact:first-child dd{font-size:36px;line-height:1}
.toursboard .tours-partition{height:9px}

.clan-leaf-head{border-bottom:1px solid var(--line);padding-bottom:18px}
.clan-leaf-head h1{font-size:clamp(42px,5vw,64px);line-height:1;margin-top:5px}
.clan-leaf--founder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.clan-leaf--founder>.clan-leaf-head,.clan-leaf--founder>.note{grid-column:1/-1}
.clan-leaf--founder>.panel{margin:0;min-width:0;background:#191d1e;border-top:2px solid var(--line)}
.clan-leaf--founder>.panel:first-of-type{border-top-color:var(--amber)}
.clan-leaf--founder .clan-leaf-form{max-width:none;margin-top:15px}
.clan-leaf--founder .clan-leaf-empty{min-height:185px;justify-content:center;background:repeating-linear-gradient(135deg,transparent 0,transparent 18px,#ffffff05 19px)}
.clan-leaf--founder .clan-leaf-empty strong{font:700 24px var(--display);color:var(--ink)}

@media(max-width:1050px){.rotations .rot-layout{grid-template-columns:minmax(0,1fr)}.rotations .rot-aside,.rotations .rot-work{grid-column:1;grid-row:auto}.exp-board .exp-board-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.deploy-index-hero{grid-template-columns:minmax(0,1fr);min-height:0}.deploy-index-hero-copy{padding:27px 22px 135px}.deploy-index-hero-copy h2{font-size:54px}.deploy-index-art{position:absolute;right:0;bottom:0;width:48%;height:165px;opacity:.65}.deploy-index-art img{max-height:160px}.deploy-index-routes,.clan-leaf--founder,.gantry-empty-deck{grid-template-columns:minmax(0,1fr)}.gantry-empty-art{border-right:0;border-bottom:1px solid var(--line);min-height:230px}.gantry-empty-art img{height:215px}.gantry-empty-copy{padding:26px}.deploy-index-route:first-child{grid-column:auto}.toursboard>.pagehead{grid-template-columns:minmax(0,1fr);gap:13px}.toursboard .tours-consequence{max-width:none}.exp-board .pagehead{display:grid;grid-template-columns:minmax(0,1fr);gap:15px}.exp-board .pagehead>div:last-child{max-width:none;text-align:left}.exp-board .exp-board-route-grid{grid-template-columns:minmax(0,1fr)}.rotations .rot-overview{grid-template-columns:minmax(0,1fr)}.rotations .rot-overview .rot-clock{border-right:0;border-bottom:1px solid var(--line)}.rotations .rot-overview .rot-strips{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.deploy-index-head h1{font-size:72px}.deploy-index-hero-copy h2{font-size:44px}.deploy-index-hero-copy{padding-bottom:145px}.deploy-index-art{width:55%}.deploy-index-list-head h2{font-size:20px}.deploy-index-route{min-height:89px;padding:17px;grid-template-columns:25px minmax(0,1fr) 14px}.deploy-index-route-copy strong,.deploy-index-route:first-child .deploy-index-route-copy strong{font-size:20px}.rotations .rot-overview .rot-strips{grid-template-columns:minmax(0,1fr)}.rotations .rot-overview .rot-strip{border-right:0;border-bottom:1px solid var(--line)}.rotations .rot-overview .rot-strip:last-child{border-bottom:0}.clan-leaf--founder>.panel{padding:17px}.toursboard .tours-head-copy h1{font-size:46px}}

/* Inventory index: three destinations with a shared armoury identity. */
.inventory-index{max-width:1500px;margin-inline:auto}
.inventory-index-head{position:relative;overflow:hidden;min-height:260px;padding:28px 32px;border-top:2px solid var(--amber);background:radial-gradient(circle at 85% 55%,#4a3b2233,transparent 34%),repeating-linear-gradient(90deg,transparent 0,transparent 79px,#ffffff06 80px),#1b1e1e}
.inventory-index-head:after{content:'03';position:absolute;right:34px;bottom:-75px;font:700 clamp(160px,23vw,330px)/1 var(--display);color:#ffffff0a;pointer-events:none}
.inventory-index-head h1{position:relative;z-index:1;margin:18px 0 13px;font:700 clamp(62px,8vw,118px)/.82 var(--display);letter-spacing:-.025em}
.inventory-index-head>p:last-child{position:relative;z-index:1;max-width:47ch;color:var(--muted);font-size:13px}
.inventory-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:18px;background:var(--line);border:1px solid var(--line)}
.inventory-index-cell{position:relative;display:flex;flex-direction:column;min-height:260px;padding:22px 24px 20px;background:#1a1d1e;overflow:hidden}
.inventory-index-cell:hover{background:#252a2a}
.inventory-index-cell:first-child{border-top:3px solid var(--amber)}
.inventory-index-cell:nth-child(2){border-top:3px solid var(--blue)}
.inventory-index-cell:nth-child(3){border-top:3px solid #8b8580}
.inventory-index-number,.inventory-index-open{font:10px var(--mono);letter-spacing:.13em;color:var(--muted)}
.inventory-index-mark{position:absolute;right:13px;top:30px;font:700 150px/.8 var(--display);color:#ffffff0a;pointer-events:none}
.inventory-index-name{position:relative;margin-top:58px;font:700 clamp(25px,2.7vw,40px)/1 var(--display)}
.inventory-index-copy{position:relative;max-width:31ch;margin-top:12px;color:var(--muted);font:11px/1.6 var(--mono)}
.inventory-index-open{position:relative;margin-top:auto;padding-top:24px;color:var(--amber)}

/* Owner labels belong to their card; their controls stay available at every width. */
.holdings-card>.player-labels{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:auto;padding:10px 14px 13px;border-top:1px solid var(--soft-line);min-width:0}
.holdings-card>.player-labels>p{width:100%;font:9px var(--mono);letter-spacing:.1em;color:var(--muted)}
.holdings-card>.player-labels form{display:flex;align-items:center;min-width:0}
.holdings-card>.player-labels form:last-child{flex:1 1 100%;gap:6px}
.holdings-card>.player-labels input[name=label]{width:100%;min-width:0;padding:6px 7px;border:1px solid var(--line);background:var(--raised);color:var(--ink);font:10px var(--mono)}
.holdings-card>.player-labels button:not(.pill){padding:7px 9px;border:1px solid var(--line);font:9px var(--mono);letter-spacing:.08em}

/* A collection without owned stock still has a legible inspection stage. */
.collection[data-collection=owned-skins] .holdings-browser,.collection[data-collection=sealed-crates] .holdings-browser{grid-template-columns:minmax(0,1fr) minmax(300px,360px)}
.collection[data-collection=owned-skins] .holdings-quiet,.collection[data-collection=sealed-crates] .holdings-quiet{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;padding:28px;background:radial-gradient(circle at 50% 38%,#78919a13,transparent 28%),repeating-linear-gradient(0deg,transparent 0,transparent 36px,#ffffff06 37px),#1a1e1f;border:1px solid var(--line);overflow:hidden}
.collection[data-collection=owned-skins] .holdings-quiet:before,.collection[data-collection=sealed-crates] .holdings-quiet:before{content:'';position:absolute;left:50%;top:42%;width:130px;height:130px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid #77858a66;box-shadow:0 0 0 24px #77858a0b,0 0 0 52px #77858a08}
.collection[data-collection=sealed-crates] .holdings-quiet:before{width:112px;height:112px;transform:translate(-50%,-50%) rotate(0deg);border-color:#af8b5866}
.collection[data-collection=owned-skins] .holdings-quiet h3,.collection[data-collection=sealed-crates] .holdings-quiet h3{position:relative;font:700 clamp(32px,3vw,50px)/1 var(--display)}
.collection[data-collection=owned-skins] .holdings-quiet p,.collection[data-collection=sealed-crates] .holdings-quiet p{position:relative;margin-top:10px;max-width:48ch;color:var(--muted);font:11px/1.6 var(--mono)}
.collection[data-collection=owned-skins] .holdings-inspector,.collection[data-collection=sealed-crates] .holdings-inspector{min-height:360px;border-top:2px solid var(--blue);background:#1a1e1f}
.collection[data-collection=sealed-crates] .holdings-inspector{border-top-color:var(--amber)}
.collection[data-collection=owned-skins] .holdings-inspector h2,.collection[data-collection=sealed-crates] .holdings-inspector h2{margin:20px 0 12px;font:700 clamp(25px,2.4vw,34px)/1.05 var(--display)}
.collection[data-collection=owned-skins] .holdings-inspector .copy,.collection[data-collection=sealed-crates] .holdings-inspector .copy{margin-top:14px;color:var(--muted);font:11px/1.7 var(--mono)}
.collection[data-collection=sealed-crates] .holdings-section{margin-top:25px;border-top:1px solid var(--line)}

/* The eleven inventory dossiers share one data-first composition. */
.inventory-dossier{max-width:1500px;margin-inline:auto}
.inventory-dossier>nav{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 18px;font:10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.inventory-dossier>nav a{color:var(--amber)}
.inventory-dossier>header{position:relative;overflow:hidden;min-height:225px;padding:26px 30px 28px;border-top:2px solid var(--amber);background:radial-gradient(circle at 88% 50%,#aa8d5722,transparent 32%),repeating-linear-gradient(90deg,transparent 0,transparent 83px,#ffffff05 84px),#1b1f20}
.inventory-dossier>header:after{content:'';position:absolute;right:8%;top:50%;width:170px;height:170px;transform:translateY(-50%) rotate(45deg);border:1px solid #ffffff1a;box-shadow:0 0 0 30px #ffffff08,0 0 0 60px #ffffff05;pointer-events:none}
.inventory-dossier>header>p:first-child{font:10px var(--mono);letter-spacing:.16em;color:var(--amber)}
.inventory-dossier>header h1{position:relative;z-index:1;margin:28px 0 16px;max-width:17ch;font:700 clamp(47px,6vw,82px)/.9 var(--display);overflow-wrap:anywhere}
.inventory-dossier>header>p:nth-of-type(2){position:relative;z-index:1;display:inline-block;padding:6px 9px;border:1px solid var(--line);font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.inventory-dossier>header>p:last-child:not(:nth-of-type(2)){position:relative;z-index:1;margin-top:16px;max-width:70ch;color:var(--muted);font-size:13px}
.inventory-dossier-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,300px);gap:22px;margin-top:24px;align-items:start}
.inventory-dossier-layout>section{min-width:0;border-top:1px solid var(--line);padding:18px 0 23px}
.inventory-dossier-layout>section:first-child{grid-column:1/-1;padding:20px;background:#1a1e1f;border-top:2px solid var(--blue)}
.inventory-dossier-layout>section:not(:first-child){grid-column:1}
.inventory-dossier-layout>section:last-child{grid-column:2;grid-row:2;align-self:start;padding:18px;background:#1a1e1f}
.inventory-dossier-layout>section h2{font:700 22px/1 var(--display);margin-bottom:18px;text-transform:uppercase}
.inventory-dossier-layout>section:first-child>dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0}
.inventory-dossier-layout dl div{min-width:0}
.inventory-dossier-layout dt{font:9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.inventory-dossier-layout dd{margin:5px 0 0;font:700 clamp(19px,2vw,30px)/1.1 var(--display);overflow-wrap:anywhere}
.inventory-dossier-layout>section:first-child>dl>div:first-child dd{font-size:clamp(30px,3vw,46px);color:var(--amber)}
.inventory-dossier-layout ul{list-style:none;margin:0;padding:0}
.inventory-dossier-layout li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 16px;padding:13px 0;border-bottom:1px solid var(--soft-line);font:11px/1.5 var(--mono)}
.inventory-dossier-layout li:first-child{border-top:1px solid var(--soft-line)}
.inventory-dossier-layout li>a,.inventory-dossier-layout li>strong{font:700 17px/1.2 var(--display)}
.inventory-dossier-layout li>a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.inventory-dossier-layout li>span{font:700 19px var(--display);color:var(--blue)}
.inventory-dossier-layout li>small,.inventory-dossier-layout li>p,.inventory-dossier-layout li>dl{grid-column:1/-1}
.inventory-dossier-layout li>dl{display:flex;flex-wrap:wrap;gap:18px;margin:6px 0 0}
.inventory-dossier-layout li>dl dd{font-size:16px}
.inventory-dossier-layout>section>p{max-width:75ch;font:11px/1.7 var(--mono);color:var(--muted)}
.inventory-dossier [class$='-notice']{max-width:760px;min-height:260px;padding:32px;background:#1b1f20;border-top:2px solid var(--red)}
.inventory-dossier [class$='-notice']>p:first-child{font:10px var(--mono);letter-spacing:.14em;color:var(--red)}
.inventory-dossier [class$='-notice'] h1{margin:28px 0 14px;font-size:clamp(40px,5vw,68px)}
.inventory-dossier [class$='-notice']>p:last-of-type{max-width:60ch;color:var(--muted)}
@media(max-width:900px){.inventory-index-grid{grid-template-columns:minmax(0,1fr)}.inventory-index-cell{min-height:180px}.inventory-index-name{margin-top:26px}.collection[data-collection=owned-skins] .holdings-browser,.collection[data-collection=sealed-crates] .holdings-browser,.inventory-dossier-layout{grid-template-columns:minmax(0,1fr)}.inventory-dossier-layout>section:last-child{grid-column:1;grid-row:auto}}
@media(max-width:680px){.inventory-index-head{padding:25px 21px;min-height:245px}.inventory-index-head h1{font-size:67px}.inventory-index-cell{padding:19px}.inventory-dossier>header{min-height:190px;padding:22px 20px}.inventory-dossier>header h1{font-size:clamp(42px,12vw,62px)}.inventory-dossier-layout>section:first-child>dl{grid-template-columns:repeat(2,minmax(0,1fr))}.collection[data-collection=owned-skins] .holdings-quiet,.collection[data-collection=sealed-crates] .holdings-quiet{min-height:300px}.collection[data-collection=owned-skins] .holdings-inspector,.collection[data-collection=sealed-crates] .holdings-inspector{min-height:0}}

/* Faction command desks and public records. All numbers come from their owners. */
.faction-index{max-width:1540px;margin:auto;min-width:0}
.faction-index-head{position:relative;min-height:310px;padding:34px 38px;border-top:2px solid var(--amber);border-bottom:1px solid var(--line);background:repeating-linear-gradient(90deg,transparent 0 59px,#ffffff08 60px),linear-gradient(116deg,#232728 0%,#191d1f 55%,#111415 100%);overflow:hidden}
.faction-index-head:after{content:'F / 03';position:absolute;right:35px;bottom:-25px;font:900 clamp(100px,17vw,260px)/1 var(--display);letter-spacing:-.07em;color:#ffffff09;pointer-events:none}
.faction-index-head h1{position:relative;z-index:1;margin:22px 0 16px;font:900 clamp(55px,7vw,108px)/.82 var(--display);letter-spacing:-.035em}
.faction-index-head h1 em{font-style:normal;color:var(--amber)}
.faction-index-head p{position:relative;z-index:1;max-width:56ch;color:var(--muted);font-size:14px}
.faction-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:24px 0 0;border:1px solid var(--line)}
.faction-index-card{min-width:0;min-height:250px;display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:25px;background:linear-gradient(150deg,#232829,#181c1e);border:0;border-right:1px solid var(--line);border-top:2px solid var(--social-accent,var(--line));text-decoration:none}
.faction-index-card:last-child{border-right:0}
.faction-index-card--war{grid-column:1/-1;min-height:245px;--social-accent:var(--amber);background:linear-gradient(110deg,#272820,#1a1d1d 64%,#161919)}
.faction-index-card--rm{--social-accent:var(--red)}
.faction-index-card--bc{--social-accent:var(--blue)}
.faction-index-card--zhi{--social-accent:#e6e9e8}
.faction-index-card:hover,.faction-index-card:focus-visible{background:#2b3030;outline:1px solid var(--social-accent)}
.faction-index-num{font:10px var(--mono);letter-spacing:.14em;color:var(--social-accent)}
.faction-index-card strong{font:800 clamp(32px,3.2vw,60px)/.95 var(--display);letter-spacing:-.02em;overflow-wrap:normal;word-break:normal}
.faction-index-card--war strong{font-size:clamp(52px,6vw,88px)}
.faction-index-card>span:nth-of-type(2){max-width:44ch;color:var(--muted);font-size:12px}
.faction-index-card b{margin-top:auto;width:100%;padding-top:15px;border-top:1px solid var(--line);font:10px var(--mono);letter-spacing:.1em;color:var(--social-accent)}

.social{--social-accent:var(--amber);max-width:1540px;margin:auto;gap:20px}
#faction-red-mountain-salvage{--social-accent:var(--red);--social-mark:url('/static/ui4/assets/rm-logo.svg')}
#faction-borealis-rd{--social-accent:var(--blue);--social-mark:url('/static/ui4/assets/bc-logo.svg')}
#faction-zenkoku-clearing-authority{--social-accent:#e6e9e8;--social-mark:url('/static/ui4/assets/zai-logo.svg')}
#faction-war-effort{--social-mark:url('/static/ui4/assets/zai-logo.svg')}
.social-head{position:relative;isolation:isolate;overflow:hidden;min-height:205px;padding:30px 35px;border-top:2px solid var(--social-accent);background:repeating-linear-gradient(90deg,transparent 0 44px,#ffffff07 45px),linear-gradient(115deg,#252a2b,#171b1d 65%,#111516)}
.social-head:before{content:'';position:absolute;right:4%;top:-70px;width:420px;height:420px;border:1px solid #ffffff13;transform:rotate(45deg);z-index:-1}
.social-head:after{content:'';position:absolute;right:7%;top:18px;width:165px;height:165px;opacity:.8;background:var(--social-mark) center/contain no-repeat;z-index:-1}
.social-head .eyebrow{color:var(--social-accent)}
.social-head h1{max-width:75%;font:900 clamp(46px,6vw,86px)/.91 var(--display);letter-spacing:-.025em;margin:22px 0 14px;text-wrap:balance}
.social-head p{max-width:60ch;font-size:13px;color:#c5cac9}
.social>.social-notice{background:#1c2021;border-left:3px solid var(--social-accent);padding:23px 27px}
.social>.social-notice--failed{border-left-color:var(--red)}
.social-brief{display:grid;grid-template-columns:185px minmax(0,1fr);gap:15px 25px;align-items:start;padding:22px 26px;background:#1b1f20;border:1px solid var(--line);border-left:3px solid var(--social-accent)}
.social-brief .eyebrow{grid-row:span 2;color:var(--social-accent)}
.social-brief p{max-width:86ch;margin:0;color:#c3c8c7;font-size:12px}
.social>.panel,.social-card{min-width:0;padding:22px 24px;background:#1d2223;border:1px solid var(--line);border-top:2px solid var(--social-accent)}
.social>.panel h2,.social-card h2{font:800 clamp(20px,2vw,31px)/1.1 var(--display);letter-spacing:.015em;margin:0 0 12px;text-transform:uppercase}
.social-card--cyan{border-top-color:var(--social-accent)}
.social-card-sub{display:block;margin:-3px 0 17px;font:10px var(--mono);letter-spacing:.08em;color:var(--muted);text-transform:uppercase}
.social-stations{gap:14px}
.social-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.social-record{min-height:185px;padding:18px;background:#252a2b;border-top:2px solid var(--social-accent)}
.social-record strong{font:800 clamp(20px,2vw,30px)/1.05 var(--display);letter-spacing:.015em}
.social-record a{margin-top:auto;font:10px var(--mono);letter-spacing:.07em;color:var(--social-accent)}
.social-card>.social-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin:6px 0 20px;gap:0;border-block:1px solid var(--line)}
.social-card .social-fact{padding:18px 14px;border-right:1px solid var(--line)}
.social-card .social-fact:last-child{border-right:0}
.social-card .social-fact strong{font:800 clamp(26px,3vw,44px)/1 var(--display);color:var(--social-accent)}
.social-card .social-fact small{font-size:10px}
.social-card .social-fact small:last-child{color:var(--muted)}
.social-card .social-kv{padding:11px 2px;gap:16px}
.social-card .social-kv small{font-size:10px}
.social-card .social-kv strong{font:700 15px var(--mono);text-align:right}
.social-card .social-kv--net{border-top:2px solid var(--social-accent);margin-top:14px}
.social-card .social-kv--net strong{color:var(--social-accent);font-size:20px}
.social-card .meta{display:block;margin:20px 0 4px;color:var(--social-accent)}
.social-card .social-notice{background:#24292a;border-color:var(--line)}
.social-card .social-notice h2{font-size:21px}
.social-row{background:#252a2b;align-items:center}
.social-row-copy strong{font-size:17px}
.social-button--amber{background:var(--social-accent);color:#151819;border-color:var(--social-accent)}
.social-button--ghost{background:transparent}
.social-axis{margin-top:12px;padding:17px;background:#252a2b}
.social-axis-head strong{font-size:18px}
.social-axis-head small{font-size:11px}
.social-meter{height:13px}
.social-meter--yours>i{background:var(--social-accent)}
.social-run{padding:20px 0 8px}
.social-run>h3{font-size:20px}
.social-foot{font:10px/1.65 var(--mono);color:var(--muted)}

#faction-dossier{--faction-accent:var(--amber);max-width:1540px;margin:auto;display:grid;gap:18px;min-width:0}
#faction-dossier[data-faction=RM]{--faction-accent:var(--red)}
#faction-dossier[data-faction=BC]{--faction-accent:var(--blue)}
#faction-dossier[data-faction=ZHI]{--faction-accent:#e6e9e8}
#faction-dossier .faction-dossier-hero{display:grid;grid-template-columns:minmax(220px,32%) minmax(0,1fr);min-height:340px;padding:0;border:1px solid var(--line);border-top:2px solid var(--faction-accent);background:repeating-linear-gradient(90deg,transparent 0 49px,#ffffff08 50px),linear-gradient(115deg,#252a2b,#171b1c 75%)}
.faction-dossier-mark{display:grid;place-items:center;border-right:1px solid var(--line);background:linear-gradient(140deg,#202525,#121617);padding:28px}
.faction-dossier-mark img{display:block;width:min(70%,220px);height:220px;object-fit:contain}
.faction-dossier-title{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:32px 40px}
.faction-dossier-title .eyebrow{color:var(--faction-accent)}
#faction-dossier .faction-dossier-title h1{font:900 clamp(56px,6vw,100px)/.9 var(--display);letter-spacing:-.03em;text-transform:uppercase;overflow-wrap:normal;word-break:normal;margin:18px 0 8px}
.faction-dossier-title p{font:700 24px var(--display);color:var(--faction-accent);margin:0 0 30px}
.faction-dossier-title a,.faction-dossier-section a{display:inline-flex;align-items:center;min-height:44px;font:10px var(--mono);letter-spacing:.08em;color:var(--faction-accent);text-underline-offset:4px}
.faction-dossier-reading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);background:#222728}
.faction-dossier-reading>div{display:grid;gap:11px;padding:22px 26px;border-right:1px solid var(--line)}
.faction-dossier-reading>div:last-child{border-right:0}
.faction-dossier-reading small{font:10px var(--mono);letter-spacing:.13em;color:var(--muted)}
.faction-dossier-reading strong{font:800 clamp(25px,3vw,43px)/1 var(--display)}
.faction-dossier-nav{display:flex;flex-wrap:wrap;gap:4px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.faction-dossier-nav a{padding:11px 16px;border:1px solid var(--line);font:10px var(--mono);letter-spacing:.07em;text-decoration:none}
.faction-dossier-nav a:hover{border-color:var(--faction-accent);color:var(--faction-accent)}
.faction-dossier-section{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:23px 26px;border:1px solid var(--line);border-top:2px solid var(--faction-accent);background:#1e2324}
.faction-dossier-section .eyebrow{color:var(--faction-accent)}
.faction-dossier-section h2{font:800 27px var(--display);margin:2px 0 3px}
.faction-dossier-section p{margin:0;color:var(--muted)}
.faction-dossier-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#faction-dossier:not(.faction)>header{padding:32px 35px;border-top:2px solid var(--amber);background:linear-gradient(120deg,#24292a,#171b1c)}
#faction-dossier:not(.faction)>header h1{font:800 clamp(43px,5vw,75px)/.98 var(--display);text-transform:uppercase}
#faction-dossier:not(.faction)>section{padding:23px 26px;background:#202526;border:1px solid var(--line);min-width:0}
#faction-dossier:not(.faction)>section h2{font:700 24px var(--display);margin:0 0 16px}
#faction-dossier:not(.faction)>section p{max-width:80ch}
#faction-dossier:not(.faction)>section a{display:inline-block;margin:4px 10px 4px 0;color:var(--amber);text-underline-offset:4px}

@media(max-width:900px){.faction-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.faction-index-card--war{grid-column:1/-1}.faction-index-card:last-child{border-right:1px solid var(--line)}.social-head h1{max-width:85%}.social-head:after{width:125px;height:125px;opacity:.5}.social-stations{grid-template-columns:minmax(0,1fr)}.faction-dossier-title{padding:26px}.faction-dossier-mark img{height:180px}}
@media(max-width:600px){.faction-index-head{min-height:290px;padding:25px 21px}.faction-index-head h1{font-size:clamp(50px,13vw,78px)}.faction-index-grid{grid-template-columns:minmax(0,1fr)}.faction-index-card,.faction-index-card--war{grid-column:1;min-height:200px;padding:20px;border-right:0}.faction-index-card strong,.faction-index-card--war strong{font-size:clamp(34px,10vw,56px)}.social-head{min-height:210px;padding:23px 21px}.social-head h1{font-size:clamp(40px,11vw,60px);max-width:100%;padding-right:50px}.social-head:after{width:80px;height:80px;right:14px;top:14px;opacity:.4}.social-brief{grid-template-columns:minmax(0,1fr);padding:18px}.social-brief .eyebrow{grid-row:auto}.social>.panel,.social-card{padding:18px}.social-identity{grid-template-columns:minmax(0,1fr)}.social-card>.social-facts{grid-template-columns:minmax(0,1fr)}.social-card .social-fact{border-right:0;border-bottom:1px solid var(--line)}.social-card .social-fact:last-child{border-bottom:0}.faction-dossier-pair,.faction-dossier-reading{grid-template-columns:minmax(0,1fr)}.faction-dossier-reading>div{border-right:0;border-bottom:1px solid var(--line)}.faction-dossier-reading>div:last-child{border-bottom:0}#faction-dossier .faction-dossier-hero{grid-template-columns:minmax(0,1fr)}.faction-dossier-mark{min-height:160px;border-right:0;border-bottom:1px solid var(--line)}.faction-dossier-mark img{height:130px}.faction-dossier-title{padding:24px}.faction-dossier-title h1{font-size:clamp(45px,11vw,65px)}.faction-dossier-section{padding:19px}}

#faction-dossier:not(.faction)>.social-dossier-hero{min-height:215px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:11px;padding:30px 35px}
#faction-dossier:not(.faction)>.social-dossier-hero .eyebrow{color:var(--amber)}
#faction-dossier:not(.faction)>.social-dossier-hero h1{margin:0;overflow-wrap:anywhere}
#faction-dossier:not(.faction)>.social-dossier-hero p{margin:0;color:var(--muted)}
#faction-dossier:not(.faction)>.social-dossier-hero a{color:var(--amber)}
#faction-dossier:not(.faction)>.social-dossier-section{padding:25px 30px;border-top:2px solid var(--amber)}
.social-dossier-section--desk,.social-dossier-section--books{display:grid;gap:16px}
.social-dossier-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));border-block:1px solid var(--line)}
.social-dossier-metrics>div{min-width:0;display:grid;align-content:center;gap:9px;min-height:110px;padding:17px 20px;border-right:1px solid var(--line)}
.social-dossier-metrics>div:last-child{border-right:0}
.social-dossier-metrics small,.social-dossier-officer small{font:10px var(--mono);letter-spacing:.12em;color:var(--muted)}
.social-dossier-metrics strong{font:800 clamp(23px,3vw,39px)/1 var(--display);overflow-wrap:anywhere}
.social-dossier-section--books .social-dossier-metrics>div:last-child strong{color:var(--amber)}
.social-dossier-officer{display:flex;gap:18px;align-items:center;padding:13px;background:#272c2d}
.social-dossier-officer img{width:140px;height:130px;object-fit:cover}
.social-dossier-officer>div{display:grid;gap:8px}
.social-dossier-officer strong{font:800 26px var(--display)}
.social-dossier-roster{display:grid}
.social-dossier-member{padding:15px 5px;border-top:1px solid var(--line);font:11px/1.6 var(--mono)}
.social-dossier-member a{font:700 18px var(--display)}
.social-dossier-transfer{display:flex;flex-wrap:wrap;gap:20px;align-items:center;padding:20px;border:1px solid var(--line);font:800 clamp(21px,3vw,36px)/1.1 var(--display)}
.social-dossier-transfer span{color:var(--amber)}
.social-dossier-award{font:800 35px var(--display);color:var(--amber)}
.social-dossier-letter-meta{font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}
.social-dossier-letter-body{padding:24px;max-width:75ch;white-space:pre-wrap;background:#292e2f;border-left:2px solid var(--amber);font-size:16px;line-height:1.8}
.social-dossier-section--letter img{display:block;max-width:100%;max-height:550px;object-fit:contain}
.social-dossier-section--letter audio{display:block;width:min(100%,520px);margin:20px 0}
@media(max-width:600px){#faction-dossier:not(.faction)>.social-dossier-hero{padding:24px 21px;min-height:170px}#faction-dossier:not(.faction)>.social-dossier-section{padding:20px}.social-dossier-metrics{grid-template-columns:minmax(0,1fr)}.social-dossier-metrics>div{border-right:0;border-bottom:1px solid var(--line)}.social-dossier-metrics>div:last-child{border-bottom:0}.social-dossier-transfer{gap:8px}.social-dossier-officer{flex-direction:column;align-items:flex-start}}

/* Archive pages follow the Trade/Faction boards: large type, measured panels, real records. */
.archive-page{min-width:0;max-width:1500px;margin:auto}
.archive-page:has([data-archive-directory]) .pagehead{position:relative;min-height:270px;align-items:start;padding:32px 36px;border-top:2px solid var(--amber);border-bottom:1px solid var(--line);background:repeating-linear-gradient(90deg,transparent 0 59px,#ffffff08 60px),linear-gradient(115deg,#242929,#171b1c 65%);overflow:hidden}
.archive-page:has([data-archive-directory]) .pagehead:after{content:'A / 02';position:absolute;right:28px;bottom:-22px;font:900 clamp(100px,16vw,230px)/1 var(--display);color:#ffffff09;pointer-events:none}
.archive-page:has([data-archive-directory]) .pagehead h1{font:900 clamp(62px,8vw,110px)/.85 var(--display);letter-spacing:-.03em;margin:22px 0 16px}
.archive-page:has([data-archive-directory]) .pagehead p{font-size:14px;max-width:52ch}
.archive-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line);margin-top:24px}
.archive-directory .index-cell{display:grid;grid-template-columns:50px minmax(0,1fr);grid-template-rows:1fr auto;align-items:start;gap:20px;min-height:250px;padding:24px;border:0;background:linear-gradient(140deg,#242a2a,#181c1e 72%)}
.archive-directory .index-cell:hover{background:#2a3030}
.archive-directory .index-cell-number{font:700 28px var(--display);color:var(--amber)}
.archive-directory .index-cell-copy h2{font:800 clamp(36px,4vw,60px)/.95 var(--display)}
.archive-directory .index-cell-copy p{max-width:42ch;margin-top:14px;color:var(--muted);font:12px/1.65 var(--body)}
.archive-directory .index-cell-arrow{grid-column:2;grid-row:2;width:100%;padding-top:12px;border-top:1px solid var(--line);font:10px var(--mono);color:var(--amber)}
.archive-directory .index-cell-arrow:before{content:'OPEN COLLECTION';margin-right:12px;letter-spacing:.09em}
.archive-directory-footer{padding:19px 0;margin-top:20px;border-top:1px solid var(--line);font:11px/1.7 var(--mono);color:var(--muted)}
.archive-directory-footer a{color:var(--amber);text-decoration:underline;text-underline-offset:4px}
.archive-type-index{padding:22px;border-top:2px solid var(--amber);background:linear-gradient(130deg,#232828,#181c1d 75%);border-bottom:1px solid var(--line)}
.archive-type-index>h2:first-child{font:11px var(--mono);letter-spacing:.12em;color:var(--amber)}
.archive-type-index>p:first-of-type{margin:12px 0;color:var(--muted);font:10px var(--mono)}
.archive-type-index form{display:flex;gap:10px;align-items:end;margin:20px 0 34px}
.archive-type-index label{flex:1;display:grid;gap:8px;font:10px var(--mono);letter-spacing:.09em;color:var(--muted)}
.archive-type-index input,.collection-scanner .collection-search input{width:100%;min-width:0;padding:12px;background:#131718;border:1px solid #555e5e;color:var(--ink);font:13px var(--mono)}
.archive-type-index button,.collection-scanner .collection-search button{border:1px solid #6a715f;min-height:44px;padding:11px 17px;font:11px var(--mono)}
.archive-type-index>h2:nth-of-type(2){font:800 clamp(34px,5vw,65px)/.95 var(--display);margin-top:12px}
.archive-type-index>p:nth-of-type(2){font-size:13px;color:var(--muted);margin:14px 0 25px}
.archive-type-index>a{display:inline-flex;align-items:center;margin:0 8px 8px 0;border:1px solid var(--line);padding:10px 14px;font:10px var(--mono)}
.archive-type-index>a:first-of-type{border-color:var(--amber);color:var(--amber)}
.collection-scanner{min-width:0;max-width:1500px;margin:auto;padding:16px;border-top:2px solid var(--amber);background:#1a1f20}
.collection-scanner .collection-controls,.collection-scanner .collection-chips{display:flex;gap:6px;flex-wrap:wrap}
.collection-scanner .collection-controls button,.collection-scanner .collection-chips button{border:1px solid #535d5d;background:#252b2b;min-height:38px;padding:8px 12px;font:10px var(--mono);text-transform:uppercase;letter-spacing:.05em}
.collection-scanner .collection-controls button[aria-pressed=true]{border-color:var(--amber);color:var(--amber)}
.collection-scanner .collection-search{display:flex;flex:0 0 auto;align-items:end;gap:8px;margin:13px 0}
.collection-scanner .collection-search label{display:grid;gap:7px;flex:1;font:10px var(--mono);text-transform:uppercase;color:var(--muted)}
.collection-scanner #codex-results,.collection-scanner #manual-results{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;margin:0 0 14px}
.collection-scanner #codex-results>p,.collection-scanner #manual-results>p{margin-top:10px;font:10px var(--mono);letter-spacing:.08em;color:var(--muted)}
.collection-scanner .collection-browser{display:grid;grid-template-columns:minmax(260px,36%) minmax(0,1fr);gap:12px;align-items:start}
.collection-scanner .collection-browser-index,.collection-scanner .collection-browser-detail,.collection-scanner .codex-record{min-width:0;border:1px solid var(--line);background:#202626}
.collection-scanner .collection-browser-index{max-height:min(75vh,920px);overflow:auto;scrollbar-color:#586262 #1a1f20}
.collection-scanner .collection-browser-index>h2,.collection-scanner .collection-browser-detail>h2,.collection-scanner #codex-entry>h2{padding:13px 16px;border-bottom:1px solid var(--line);font:800 21px var(--display)}
.collection-scanner .collection-record{display:grid;gap:5px;text-align:left;width:100%;padding:14px 16px;border-bottom:1px solid var(--line);background:#1c2222;font:11px/1.5 var(--mono)}
.collection-scanner .collection-record:hover{background:#2a3030}
.collection-scanner .collection-record[data-current=true]{background:#302c21;border-left:3px solid var(--amber);padding-left:13px}
.collection-scanner .collection-record>span:first-child,.collection-scanner .collection-record-summary{color:var(--muted);font-size:10px}
.collection-scanner .collection-record>strong,.collection-scanner .collection-record-title{font:700 19px/1.1 var(--display)}
.collection-scanner .collection-browser-index>button:not(.collection-record){border:1px solid var(--line);padding:8px 13px;margin:10px;font:10px var(--mono)}
.collection-scanner #codex-entry{min-height:370px;padding:18px}
.collection-scanner #codex-entry>h2,.collection-scanner #codex-entry>p{padding:0;border:0}
.collection-scanner #codex-entry>p{margin-top:10px;font:11px var(--mono);color:var(--muted)}
.collection-scanner .codex-record>h2{font:800 clamp(33px,3.5vw,55px)/.95 var(--display);padding:0 0 14px;border-bottom:1px solid var(--line)}
.collection-scanner .codex-record>p{font:10px/1.6 var(--mono);letter-spacing:.08em;color:var(--amber);text-transform:uppercase;margin:12px 0 18px}
.collection-scanner .codex-record>button{border:1px solid var(--line);padding:8px 12px;margin-bottom:12px;font:10px var(--mono)}
.collection-scanner .codex-art{min-height:190px;display:grid;place-content:center;text-align:center;padding:18px;background:repeating-linear-gradient(135deg,#1b2021,#1b2021 10px,#222829 10px,#222829 11px)}
.collection-scanner .codex-art img{width:100%;max-height:410px;object-fit:cover}
.collection-scanner .codex-art strong{font:700 30px var(--display)}
.collection-scanner .codex-art p{font:11px var(--mono);color:var(--muted)}
.collection-scanner .codex-record [data-section]{padding:18px 0;border-bottom:1px solid var(--line)}
.collection-scanner .codex-record [data-section] h3{font:700 20px var(--display);margin-bottom:10px}
.collection-scanner .codex-record [data-section] p{font:12px/1.7 var(--mono);margin:8px 0;color:#c6cdcb}
.collection-scanner .codex-fragment{margin-top:8px}
.collection-scanner #manual-telemetry{display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;padding:13px 15px;margin-bottom:13px;border:1px solid var(--line);color:var(--amber);font:10px var(--mono);letter-spacing:.08em}
.collection-scanner .briefing-shelf-title{padding:12px 16px;background:#282e2d;color:var(--amber);font:10px var(--mono);letter-spacing:.12em}
.collection-scanner .briefing{padding:0 18px 25px}
.collection-scanner .briefing>h2{margin:0 -18px 20px}
.collection-scanner .briefing>h3{font:800 clamp(30px,3.2vw,49px)/1 var(--display);max-width:20ch}
.collection-scanner .briefing>span{display:block;margin:10px 0;color:var(--amber);font:10px var(--mono);letter-spacing:.1em}
.collection-scanner .briefing>p{font-size:13px;color:var(--muted);line-height:1.7;margin:17px 0}
.collection-scanner .briefing>button{float:right;border:1px solid var(--line);padding:9px 12px;font:10px var(--mono)}
.collection-scanner .briefing-prose{max-width:72ch;padding:10px 0;font-size:14px;line-height:1.8}
.collection-scanner .briefing-prose p,.collection-scanner .briefing-prose ul{margin:0 0 17px}
.collection-scanner .briefing-prose-heading{font:700 23px var(--display);padding-top:12px;margin-bottom:11px}
.collection-scanner .briefing-callout{padding:14px 17px;margin:14px 0;border-left:2px solid var(--amber);background:#2a2c27}
.collection-scanner .briefing-callout h3{font:700 18px var(--display)}
.collection-scanner .briefing-callout p{margin-top:7px;font:12px/1.7 var(--mono)}
.collection-scanner .briefing>h3:last-of-type{border-top:1px solid var(--line);padding-top:18px;margin-top:18px;font-size:20px}
.collection-scanner .briefing>a{display:inline-flex;margin:8px 7px 0 0;border:1px solid #766b46;padding:9px 12px;color:var(--amber);font:10px var(--mono)}
#job:has([data-archive-codex])>.pagehead,#job:has(.archive-page .collection-scanner) .archive-page>.pagehead{padding:10px 0 25px;border-bottom:1px solid var(--line)}
#job:has([data-archive-codex])>.pagehead h1,#job:has(.archive-page .collection-scanner) .archive-page>.pagehead h1{font:900 clamp(52px,7vw,95px)/.9 var(--display);letter-spacing:-.025em;margin:14px 0}
#codex-dossier-region{max-width:1500px;margin:auto;min-width:0}
#codex-dossier{border-top:2px solid var(--amber);background:linear-gradient(120deg,#242929,#191e1f 65%);padding:clamp(22px,3vw,43px)}
#codex-dossier>a:first-child{display:inline-flex;padding:9px 14px;border:1px solid var(--line);color:var(--amber);font:10px var(--mono);letter-spacing:.1em}
#codex-dossier>h2{font:900 clamp(46px,6.5vw,94px)/.88 var(--display);letter-spacing:-.03em;margin:25px 0 12px;max-width:19ch}
#codex-dossier>p:first-of-type{padding-bottom:22px;border-bottom:1px solid var(--line);font:11px var(--mono);letter-spacing:.1em;color:var(--amber);text-transform:uppercase}
#codex-dossier .codex-art{min-height:260px;display:grid;align-content:center;justify-items:center;gap:8px;text-align:center;margin:23px 0 0;padding:25px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,#191e1e,#191e1e 11px,#202626 11px,#202626 12px)}
#codex-dossier .codex-art img{max-width:100%;max-height:480px;object-fit:contain}
#codex-dossier .codex-art strong{font:800 clamp(25px,3vw,42px) var(--display)}
#codex-dossier .codex-art p{font:11px var(--mono);color:var(--muted)}
#codex-dossier [data-section]{padding:25px 0;border-bottom:1px solid var(--line)}
#codex-dossier [data-section] h3{font:800 25px var(--display);margin-bottom:15px}
#codex-dossier [data-section]>p{max-width:90ch;font:13px/1.7 var(--body);color:#c4ccca;margin:9px 0}
#codex-dossier [data-section=relationships]>p{padding:9px 0;border-top:1px solid #3a4545;margin:0;font:11px/1.6 var(--mono)}
#codex-dossier [data-section=relationships] a{color:var(--amber);text-decoration:underline;text-underline-offset:3px}
#codex-dossier .codex-unlock-all{margin-bottom:12px}
#codex-dossier .codex-unlock-all button{border:1px solid var(--amber);color:var(--amber);padding:10px 15px;font:10px var(--mono)}
#codex-dossier .codex-fragment{margin:8px 0;padding:16px 20px;border:1px solid var(--line);border-left:2px solid #8c6958}
#codex-dossier .codex-fragment button{justify-self:start;border:1px solid #756c53;color:var(--amber);padding:9px 13px;font:10px var(--mono)}
@media(max-width:850px){.collection-scanner .collection-browser{grid-template-columns:minmax(0,1fr)}.collection-scanner .collection-browser-index{max-height:380px}.collection-scanner #codex-entry{min-height:210px}}
@media(max-width:600px){.archive-page:has([data-archive-directory]) .pagehead{min-height:220px;padding:24px}.archive-page:has([data-archive-directory]) .pagehead h1{font-size:clamp(54px,15vw,80px)}.archive-directory{grid-template-columns:1fr}.archive-directory .index-cell{min-height:190px;padding:20px}.archive-directory .index-cell-copy h2{font-size:clamp(30px,9vw,45px)}.archive-type-index form{align-items:stretch;flex-direction:column}.collection-scanner{padding:9px}.collection-scanner .collection-controls button,.collection-scanner .collection-chips button{font-size:9px;padding:7px}.collection-scanner .briefing{padding-inline:12px}.collection-scanner .briefing>h2{margin-inline:-12px}}

/* Bank uses the same editorial hierarchy as the shipped Trade and Faction boards. */
.bank-page{max-width:1500px;margin:auto;min-width:0}
.bank-page>.pagehead{padding:12px 0 24px;border-bottom:1px solid var(--line)}
.bank-page>.pagehead h1{font:900 clamp(55px,7vw,95px)/.9 var(--display);letter-spacing:-.025em;margin:15px 0}
.bank-page>.pagehead p{font-size:13px;max-width:65ch}
.bank-page:has(.job-index)>.pagehead{position:relative;min-height:280px;padding:33px 38px;border-top:2px solid var(--amber);background:repeating-linear-gradient(90deg,transparent 0 59px,#ffffff08 60px),linear-gradient(118deg,#242929,#171b1c 65%);overflow:hidden}
.bank-page:has(.job-index)>.pagehead:after{content:'B / 05';position:absolute;right:28px;bottom:-25px;font:900 clamp(100px,16vw,240px)/1 var(--display);color:#ffffff09;pointer-events:none}
.bank-page:has(.job-index)>.pagehead h1{font-size:clamp(70px,8vw,115px)}
.bank-page .job-index-panel{border:0;background:none;padding:0;margin-top:22px}
.bank-page .job-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.bank-page .job-index>.index-cell{display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:210px;padding:22px 24px;background:linear-gradient(140deg,#232929,#181d1e 70%);border:0}
.bank-page .job-index>.index-cell:first-child{grid-column:1/-1;min-height:250px;background:radial-gradient(circle at 90% 30%,#c3913540,transparent 39%),linear-gradient(115deg,#272c29,#1b2020 70%)}
.bank-page .job-index>.index-cell:hover{background:#2b3130}
.bank-page .job-index .index-cell-number{font:10px var(--mono);letter-spacing:.12em;color:var(--amber)}
.bank-page .job-index .index-cell-copy{margin-top:auto}
.bank-page .job-index .index-cell-copy h2{font:800 clamp(32px,4vw,58px)/.95 var(--display)}
.bank-page .job-index>.index-cell:first-child .index-cell-copy h2{font-size:clamp(52px,6vw,86px)}
.bank-page .job-index .index-cell-copy p{margin:12px 0 0;max-width:50ch;color:var(--muted);font:12px/1.6 var(--body)}
.bank-page .job-index .index-cell-arrow{display:block;align-self:stretch;border-top:1px solid var(--line);margin-top:21px;padding-top:11px;color:var(--amber);font:10px var(--mono)}
.bank-page .job-index .index-cell-arrow:before{content:'OPEN ACCOUNT';margin-right:12px;letter-spacing:.1em}
.bank-page .bank-head{padding:0 0 17px;margin:0 0 20px}
.bank-page .bank-head h2{font:800 clamp(26px,3vw,41px)/1 var(--display);margin-top:8px}
.bank-page .bank-head .bank-lead{font:12px/1.7 var(--body);max-width:48ch}
.bank-page #bank-fleet-pnl>.bank-head h2,.bank-page #bank-cashflow>.bank-head h2,.bank-page #bank-buy-nxr>.bank-head h2,.bank-page #bank-alpha-citizen>.bank-head h2,.bank-page #bank-fleet-pnl>.bank-head .bank-lead,.bank-page #bank-cashflow>.bank-head .bank-lead,.bank-page #bank-buy-nxr>.bank-head .bank-lead,.bank-page #bank-alpha-citizen>.bank-head .bank-lead{display:none}
.bank-page #bank-fleet-pnl>.bank-head,.bank-page #bank-cashflow>.bank-head,.bank-page #bank-buy-nxr>.bank-head,.bank-page #bank-alpha-citizen>.bank-head{margin-bottom:13px;padding-bottom:10px}
.bank-page .bank-card{background:linear-gradient(140deg,#232929,#191e1f 75%);border:1px solid var(--line);border-top:2px solid var(--amber);padding:clamp(18px,2vw,30px)}
.bank-page .bank-card>strong:first-child{font:800 clamp(22px,2.4vw,32px)/1.05 var(--display)}
.bank-page #bank-wallet .bank-hero{padding:18px 0 21px}
.bank-page #bank-wallet .bank-hero strong{font:900 clamp(68px,7.5vw,114px)/.9 var(--display);letter-spacing:-.03em}
@media(max-width:420px){.bank-page #bank-wallet .bank-hero strong{font-size:clamp(38px,12vw,50px);overflow-wrap:normal}}
.bank-access-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:16px 20px;border-left:3px solid var(--amber);background:#202220;color:var(--muted);font-size:12px}
.bank-access-note a{flex:none;color:var(--amber);font:700 12px var(--display);letter-spacing:.03em}
@media(max-width:520px){.bank-access-note{align-items:flex-start;flex-direction:column;gap:10px}}
.bank-page #bank-wallet .bank-figures{grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:#1b2020;margin:15px 0 25px;padding:0}
.bank-page #bank-wallet .bank-figure{padding:20px;border-left:1px solid var(--line)}
.bank-page #bank-wallet .bank-figure:first-child{border:0}
.bank-page #bank-wallet .bank-figure dd{font-size:clamp(24px,3vw,42px)}
.bank-page .bank-waterfall{gap:8px}
.bank-page .bank-water-track{height:105px;background:repeating-linear-gradient(0deg,#1a2020,#1a2020 19px,#2b3433 20px)}
.bank-page .bank-water--opening .bank-water-fill{background:#626d6d}
.bank-page .bank-water--inflow .bank-water-fill{background:#86a28a}
.bank-page .bank-water--outflow .bank-water-fill{background:#a87e78}
.bank-page .bank-water--closing .bank-water-fill{background:#c9a05d}
.bank-page .bank-water-amount{font-size:clamp(24px,2.8vw,40px)}
.bank-page #bank-fleet-pnl>.bank-empty{display:grid;align-content:center;min-height:270px;padding:30px;border-top:2px solid var(--amber);border-bottom:1px solid var(--line);background:linear-gradient(115deg,#262c2c,#191e1f 68%);font:13px/1.7 var(--body);max-width:none}
.bank-page #bank-fleet-pnl>.bank-empty strong{font:900 clamp(40px,5vw,68px)/.95 var(--display);letter-spacing:-.02em;margin-bottom:18px}
.bank-page #bank-cashflow>.bank-figures{grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);background:#202626;margin:15px 0 22px;padding:0}
.bank-page #bank-cashflow>.bank-figures .bank-figure{padding:22px;border-left:1px solid var(--line)}
.bank-page #bank-cashflow>.bank-figures .bank-figure:first-child{border:0}
.bank-page #bank-cashflow>.bank-figures dd{font-size:clamp(29px,3.5vw,51px)}
.bank-page #bank-cashflow>.bank-card{margin-top:12px}
.bank-page #bank-buy-nxr .bank-row{grid-template-columns:minmax(0,1fr) auto;padding:17px 0}
.bank-page #bank-buy-nxr .bank-row-copy strong{font:800 clamp(24px,2.8vw,38px)/1 var(--display)}
.bank-page #bank-buy-nxr .bank-row-copy small{font:10px var(--mono);letter-spacing:.08em;margin-top:5px}
.bank-page #bank-buy-nxr .bank-row-tail .bank-amount{font:800 24px var(--display)}
.bank-page #bank-buy-nxr .bank-notice{margin-top:14px}
.bank-page #bank-alpha-citizen>.bank-card{margin-top:15px}
.bank-page #bank-alpha-citizen .bank-card:first-of-type>.bank-status .bank-amount{font:900 clamp(38px,4.5vw,64px)/.95 var(--display)}
.bank-page #bank-alpha-citizen .bank-card:first-of-type form{display:inline-flex;margin-right:8px}
.bank-page #bank-alpha-citizen .bank-card:first-of-type .bank-notice{margin-top:12px}
@media(max-width:850px){.bank-page #bank-cashflow>.bank-figures{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-page #bank-cashflow>.bank-figures .bank-figure:nth-child(odd){border-left:0}.bank-page #bank-cashflow>.bank-figures .bank-figure:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:600px){.bank-page:has(.job-index)>.pagehead{padding:24px;min-height:220px}.bank-page:has(.job-index)>.pagehead h1{font-size:clamp(58px,16vw,82px)}.bank-page .job-index{grid-template-columns:1fr}.bank-page .job-index>.index-cell:first-child{grid-column:1}.bank-page .job-index>.index-cell,.bank-page .job-index>.index-cell:first-child{min-height:185px;padding:19px}.bank-page .job-index .index-cell-copy h2,.bank-page .job-index>.index-cell:first-child .index-cell-copy h2{font-size:clamp(32px,9vw,48px)}.bank-page #bank-wallet .bank-figures{grid-template-columns:1fr}.bank-page #bank-wallet .bank-figure{border:0;border-bottom:1px solid var(--line)}.bank-page #bank-wallet .bank-figure:last-child{border-bottom:0}.bank-page #bank-cashflow>.bank-figures dd{font-size:30px}.bank-page #bank-buy-nxr .bank-row{grid-template-columns:1fr}.bank-page #bank-buy-nxr .bank-row-tail{justify-content:flex-start}.bank-page #bank-buy-nxr .bank-row-tail>.meta{display:none}.bank-page #bank-buy-nxr .bank-row-tail .bank-amount{min-width:58px}}

/* Rewards keeps the recent Go pages' large type and panel geometry, while using
   the daily cycle and owner-backed progress as its own visual rhythm. */
.rewards-page{max-width:1500px;min-width:0;margin:auto}
.rewards-page>.pagehead{padding:12px 0 26px;border-bottom:1px solid var(--line)}
.rewards-page>.pagehead h1{font:900 clamp(55px,7vw,94px)/.9 var(--display);letter-spacing:-.025em;margin:15px 0}
.rewards-page>.pagehead p{font:13px/1.6 var(--body);max-width:65ch}
.rewards-index-page>.pagehead{position:relative;min-height:280px;padding:33px 38px;border-top:2px solid var(--amber);background:repeating-linear-gradient(90deg,transparent 0 59px,#ffffff08 60px),linear-gradient(118deg,#262a28,#171b1c 65%);overflow:hidden}
.rewards-index-page>.pagehead:after{content:'G / 04';position:absolute;right:28px;bottom:-25px;font:900 clamp(100px,16vw,240px)/1 var(--display);color:#ffffff09;pointer-events:none}
.rewards-index-page>.pagehead h1{font-size:clamp(70px,8vw,115px)}
.rewards-index-page #rewards-body>h2{font:800 27px/1 var(--display);margin:30px 0 0;padding:0 0 13px}
.rewards-index-page #rewards-body .index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.rewards-index-page #rewards-body .index-cell{display:flex;flex-direction:column;align-items:stretch;min-height:240px;padding:24px;background:linear-gradient(145deg,#232826,#181d1d 70%);border:0}
.rewards-index-page #rewards-body .index-cell:first-child{background:radial-gradient(circle at 85% 20%,#d6ab6540,transparent 42%),linear-gradient(130deg,#2b2c27,#1b2020 70%)}
.rewards-index-page #rewards-body .index-cell:hover{background:#2b3130}
.rewards-index-page #rewards-body .index-cell-number{color:var(--amber);font:10px var(--mono)}
.rewards-index-page #rewards-body .index-cell-copy{margin-top:auto}
.rewards-index-page #rewards-body .index-cell-copy h2{font:800 clamp(36px,4vw,62px)/.95 var(--display)}
.rewards-index-page #rewards-body .index-cell-copy p{font:12px/1.6 var(--body);color:var(--muted);margin-top:12px}
.rewards-index-page #rewards-body .index-cell-arrow{align-self:stretch;border-top:1px solid var(--line);margin-top:22px;padding-top:11px;color:var(--amber);font:10px var(--mono)}
.rewards-index-page #rewards-body .index-cell-arrow:before{content:'OPEN RECORD';margin-right:12px;letter-spacing:.1em}
.rewards-leaf{display:block;max-width:1500px}
.rewards-leaf>h2{font:800 clamp(28px,3vw,42px)/1 var(--display);margin:24px 0 0;padding:0 0 14px}
.rewards-leaf>.rewards-status-line{display:block;margin:0 0 19px;padding:12px 16px;border:1px solid var(--line);background:#202626;font:11px var(--mono);letter-spacing:.08em}
.rewards-leaf>.rewards-status-line strong{font:900 31px var(--display);color:var(--ink);letter-spacing:0;margin:0 4px}
.rewards-leaf#rewards-daily-ops>h2,.rewards-leaf#rewards-veteran-pack>h2,.rewards-leaf#rewards-referrals>h2{display:none}
.rewards-leaf>.rewards-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line);margin-top:18px}
.rewards-leaf .rewards-day{display:flex;flex-direction:column;align-items:stretch;gap:12px;min-height:230px;padding:18px;background:linear-gradient(155deg,#242928,#1a1f20);border:0}
.rewards-leaf .rewards-day[data-state=READY]{background:radial-gradient(circle at 80% 15%,#d5a65445,transparent 60%),linear-gradient(155deg,#34342a,#202524);border-top:3px solid var(--amber)}
.rewards-leaf .rewards-day[data-state=CLAIMED]{opacity:.68}
.rewards-leaf .rewards-day strong{font:800 29px var(--display)}
.rewards-leaf .rewards-day .rewards-day-payout{margin-top:auto;font:800 clamp(18px,2vw,27px)/1 var(--display);color:var(--ink)}
.rewards-leaf .rewards-day .rewards-day-state{font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}
.rewards-leaf .rewards-day[data-state=READY] .rewards-day-state{color:var(--amber)}
.rewards-leaf .rewards-claim{margin-top:20px}
.rewards-leaf .rewards-claim button{min-width:150px}
.rewards-leaf .rewards-op{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 20px;margin:12px 0;padding:24px;border:1px solid var(--line);border-top:2px solid var(--amber);background:linear-gradient(140deg,#222828,#191e1f 75%)}
.rewards-leaf .rewards-op>strong{font:800 clamp(26px,3vw,40px)/1 var(--display)}
.rewards-leaf .rewards-op>p{grid-column:1/-1;margin:0;color:var(--muted);font:13px/1.5 var(--body)}
.rewards-leaf .rewards-op .rewards-op-reading{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font:10px var(--mono)}
.rewards-leaf .rewards-op progress{grid-column:1/-1;width:100%;height:6px;border:0;accent-color:var(--amber);background:#303737}
.rewards-leaf .rewards-op progress::-webkit-progress-bar{background:#303737}
.rewards-leaf .rewards-op progress::-webkit-progress-value{background:var(--amber)}
.rewards-leaf .rewards-op form{grid-column:1/-1;margin-top:4px}
.rewards-leaf .rewards-code{padding:20px 24px;border:1px solid var(--line);border-top:2px solid var(--amber);background:#212727;overflow-wrap:anywhere}
.rewards-leaf .rewards-code .eyebrow{display:block;margin-bottom:12px}
.rewards-leaf .rewards-code strong{display:block;font:900 clamp(38px,5vw,68px)/1 var(--display);letter-spacing:.06em;color:var(--amber)}
.rewards-leaf .rewards-rank{display:grid;gap:10px;padding:18px 0;border-bottom:1px solid var(--line)}
.rewards-leaf .rewards-rank strong{font:800 clamp(22px,3vw,36px)/1.1 var(--display);color:var(--ink)}
.rewards-leaf .rewards-grant,.rewards-leaf .rewards-veteran-account{display:flex;gap:12px 20px;align-items:center;padding:24px;border:1px solid var(--line);border-top:2px solid var(--amber);background:linear-gradient(140deg,#222828,#191e1f 75%)}
.rewards-leaf .rewards-grant strong,.rewards-leaf .rewards-veteran-account strong{font:800 clamp(25px,3vw,38px)/1 var(--display)}
.rewards-leaf .rewards-veteran-message{font:13px/1.6 var(--body);color:var(--muted)}
.rewards-leaf .rewards-empty{display:grid;align-content:center;min-height:275px;padding:30px;border-top:2px solid var(--amber);border-bottom:1px solid var(--line);background:linear-gradient(115deg,#262c2c,#191e1f 68%)}
.rewards-leaf .rewards-empty strong{font:900 clamp(42px,5vw,70px)/.95 var(--display);letter-spacing:-.02em}
.rewards-leaf .rewards-empty p{font:13px/1.6 var(--body);color:var(--muted);margin-top:16px}
.rewards-leaf .rewards-empty-note{grid-column:1/-1;display:block;margin:0;padding:24px;border:1px solid var(--line);border-left:2px solid var(--amber);background:#202626;color:var(--muted);font:12px/1.6 var(--mono)}
@media(max-width:1000px){.rewards-leaf>.rewards-day-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.rewards-index-page>.pagehead{min-height:220px;padding:24px}.rewards-index-page>.pagehead h1{font-size:clamp(58px,16vw,82px)}.rewards-index-page #rewards-body .index{grid-template-columns:1fr}.rewards-index-page #rewards-body .index-cell{min-height:190px;padding:19px}.rewards-index-page #rewards-body .index-cell-copy h2{font-size:clamp(32px,9vw,48px)}.rewards-leaf>.rewards-day-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rewards-leaf .rewards-day{min-height:165px;padding:14px}.rewards-leaf .rewards-day strong{font-size:23px}.rewards-leaf .rewards-day .rewards-day-payout{font-size:18px}.rewards-leaf .rewards-op{grid-template-columns:1fr;padding:18px}}

/* Settings uses the same large Go-page hierarchy. Controls keep their existing
   addresses and state; the wider bus layout gives each explanation room to read. */
.settings-page{max-width:1500px;min-width:0;margin:auto}
.settings-page>.pagehead{padding:12px 0 24px;border-bottom:1px solid var(--line)}
.settings-page>.pagehead h1{font:900 clamp(55px,7vw,95px)/.9 var(--display);letter-spacing:-.025em;margin:15px 0}
.settings-page>.pagehead p{font:13px/1.6 var(--body);max-width:65ch}
.settings-page:has(.job-index)>.pagehead{position:relative;min-height:280px;padding:33px 38px;border-top:2px solid var(--amber);background:repeating-linear-gradient(90deg,transparent 0 59px,#ffffff08 60px),linear-gradient(118deg,#252a29,#171b1c 65%);overflow:hidden}
.settings-page:has(.job-index)>.pagehead:after{content:'S / 06';position:absolute;right:28px;bottom:-25px;font:900 clamp(100px,16vw,240px)/1 var(--display);color:#ffffff09;pointer-events:none}
.settings-page:has(.job-index)>.pagehead h1{font-size:clamp(70px,8vw,115px)}
.settings-page .job-index-panel{border:0;background:none;padding:0;margin-top:28px}
.settings-page .job-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.settings-page .job-index>.index-cell{display:flex;flex-direction:column;align-items:stretch;min-height:220px;padding:22px 24px;background:linear-gradient(145deg,#222827,#181d1e 70%);border:0}
.settings-page .job-index>.index-cell:first-child{background:radial-gradient(circle at 85% 20%,#c9a25e40,transparent 42%),linear-gradient(130deg,#292d29,#1b2020 70%)}
.settings-page .job-index>.index-cell:hover{background:#2b3130}
.settings-page .job-index .index-cell-number{font:10px var(--mono);color:var(--amber)}
.settings-page .job-index .index-cell-copy{margin-top:auto}
.settings-page .job-index .index-cell-copy h2{font:800 clamp(34px,4vw,59px)/.95 var(--display)}
.settings-page .job-index .index-cell-copy p{font:12px/1.6 var(--body);color:var(--muted);margin-top:12px;max-width:52ch}
.settings-page .job-index .index-cell-arrow{align-self:stretch;border-top:1px solid var(--line);margin-top:20px;padding-top:10px;color:var(--amber);font:10px var(--mono)}
.settings-page .job-index .index-cell-arrow:before{content:'OPEN SETTINGS';margin-right:12px;letter-spacing:.1em}
.settings-page .prefs{gap:18px;margin-top:24px}
.settings-page .prefs-buses{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.settings-page .prefs-bus{gap:16px;padding:clamp(18px,2.2vw,30px);border-top:2px solid var(--amber);background:linear-gradient(145deg,#222828,#191e1f 75%)}
.settings-page .prefs-bus h2{font:800 clamp(27px,3vw,39px)/1 var(--display);letter-spacing:0}
.settings-page .prefs-bus-head{padding-bottom:14px;border-bottom:1px solid var(--line)}
.settings-page .prefs-bus>.prefs-row:first-of-type{border-top:0}
.settings-page .prefs-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,220px);align-items:center;gap:18px;min-height:78px;padding:15px 0;border-top:1px solid var(--line)}
.settings-page .prefs-row-copy strong{font:800 19px/1 var(--display);letter-spacing:0}
.settings-page .prefs-row-copy small{font:12px/1.55 var(--body);color:var(--muted)}
.settings-page .prefs-row-control{align-items:stretch;min-width:0;width:100%}
.settings-page .prefs-row-control form{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;max-width:100%}
.settings-page .prefs-row-control .prefs-slider{flex:1 1 135px;min-width:90px}
.settings-page .prefs-row-control .prefs-readout{font:11px var(--mono)}
.settings-page .prefs-row-control .prefs-pick{flex:1 1 145px;min-width:0}
.settings-page .prefs-switch{font-size:11px}
.settings-page .prefs-button{font-size:13px}
.settings-page .prefs-bus--account{min-height:360px}
.settings-page #settings-account .prefs-bus--account>h2{display:none}
.settings-page .prefs-bus--account .prefs-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.settings-page .prefs-bus--account .prefs-fact{padding:20px;background:#202626;min-height:130px}
.settings-page .prefs-bus--account .prefs-fact strong{font:10px var(--mono);letter-spacing:.1em;color:var(--muted)}
.settings-page .prefs-bus--account .prefs-fact small{font:800 clamp(24px,2.6vw,40px)/1 var(--display);color:var(--ink);overflow-wrap:anywhere}
.settings-page .prefs-bus--account .prefs-fact:last-child small{font-size:clamp(18px,2vw,27px);line-height:1.2}
.settings-page .prefs-bus--account .prefs-actions{margin-top:4px}
.settings-page .prefs-bus--account .prefs-danger{border-top:1px solid var(--line);padding-top:17px;margin-top:10px;font:800 21px var(--display)}
.settings-page .prefs-bus--account>.prefs-button{align-self:flex-start;border-color:var(--red);color:var(--red)}
.settings-page .prefs-bus--inbox{margin-top:10px}
.settings-page #settings-notifications .prefs-buses{grid-template-columns:1fr}
.settings-page .prefs-bus--inbox>p{font:800 23px var(--display)}
.settings-page .prefs-row--notice{display:block;min-height:0;padding:18px}
.settings-page .prefs-row--notice h3{font:800 23px var(--display)}
.settings-page .prefs-bus--card{min-height:300px;border-top-color:var(--red);background:linear-gradient(130deg,#292523,#1b1e1e 70%)}
.settings-page .prefs-bus--card h2{font-size:clamp(35px,4vw,57px)}
.settings-page .prefs-bus--card>p{font:13px/1.6 var(--body);max-width:65ch}
.settings-page .prefs-bus--card>.prefs-button{align-self:flex-start;border-color:var(--red);color:var(--red);min-width:180px}
.settings-page #settings-visual .prefs-bus:last-child{grid-column:1/-1}
@media(max-width:850px){.settings-page .prefs-buses{grid-template-columns:1fr}.settings-page #settings-visual .prefs-bus:last-child{grid-column:1}.settings-page .prefs-row{grid-template-columns:minmax(0,1fr) minmax(160px,220px)}}
@media(max-width:600px){.settings-page:has(.job-index)>.pagehead{min-height:220px;padding:24px}.settings-page:has(.job-index)>.pagehead h1{font-size:clamp(58px,16vw,82px)}.settings-page:has(#settings-notifications)>.pagehead h1{font-size:clamp(38px,11vw,52px)}.settings-page .job-index{grid-template-columns:1fr}.settings-page .job-index>.index-cell{min-height:185px;padding:19px}.settings-page .job-index .index-cell-copy h2{font-size:clamp(32px,9vw,48px)}.settings-page .prefs-bus--account .prefs-facts{grid-template-columns:1fr}.settings-page .prefs-bus--account .prefs-fact{min-height:85px}.settings-page .prefs-row{grid-template-columns:1fr;gap:10px}.settings-page .prefs-row-control{align-items:flex-start}.settings-page .prefs-row-control form{justify-content:flex-start}.settings-page .prefs-bus--card{min-height:0}}
/* World Search: Archive's public index in the current command-deck language. */
.search-page{max-width:1240px;margin:auto;min-width:0}
.search-page-head{position:relative;min-height:300px;padding:34px 38px;border:1px solid var(--line);border-top:3px solid var(--amber);background:linear-gradient(125deg,#252b2b,#14191b 70%);clip-path:polygon(0 0,100% 0,100% calc(100% - 24px),calc(100% - 24px) 100%,0 100%)}
.search-page-head h1{margin:35px 0 14px;font:800 clamp(58px,7vw,108px)/.82 var(--display);letter-spacing:-.02em}
.search-page-head h1 em{font-style:normal;color:var(--amber)}
.search-page-head p{max-width:55ch;font:13px/1.6 var(--body);color:var(--muted)}
.search-page-form{display:grid;gap:12px;margin:24px 0 28px;padding:20px;border:1px solid var(--line);background:#202626}
.search-page-form label{font:10px var(--mono);letter-spacing:.15em;color:var(--amber)}
.search-page-control{display:flex;gap:10px}
.search-page-control input{min-width:0;flex:1;padding:14px 16px;background:#111718;border:1px solid var(--line);color:var(--ink);font:16px var(--body)}
.search-page-control button{padding:10px 20px;border:1px solid var(--amber);background:var(--amber);color:#111;cursor:pointer;font:800 15px var(--display);letter-spacing:.05em}
.search-page-readout>p{padding:26px;border:1px solid var(--line);font:12px var(--mono);letter-spacing:.1em;color:var(--muted)}
.search-page-group{margin:28px 0}.search-page-group h2{margin:0 0 10px;font:800 clamp(28px,3vw,42px) var(--display);letter-spacing:.02em}
.search-page-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.search-page-result{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-width:0;min-height:130px;padding:20px;background:#202626;color:var(--ink);text-decoration:none}
.search-page-result:hover{background:#293030}.search-page-result-type{grid-column:1/-1;font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--amber)}
.search-page-result strong{font:800 clamp(23px,2.4vw,34px)/1 var(--display);overflow-wrap:anywhere}.search-page-result>span:last-of-type{grid-column:1/-1;color:var(--muted);font:12px/1.5 var(--body)}
.search-page-result b{grid-column:2;grid-row:2;font:16px var(--mono);color:var(--amber)}
#world-search-quick:empty{display:none}#world-search-quick:not(:empty){position:absolute;z-index:60;top:100%;right:12%;width:min(430px,80vw);background:#151b1d;border:1px solid var(--line);box-shadow:0 15px 35px #0009}
.search-quick{padding:10px;font:11px var(--mono)}.search-quick a{display:flex;justify-content:space-between;gap:16px;padding:10px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.search-quick a:hover{background:#273031}.search-quick a span{color:var(--amber);text-transform:uppercase}.search-quick-all{color:var(--amber)!important}
@media(max-width:700px){.search-page-head{min-height:230px;padding:24px}.search-page-head h1{font-size:clamp(54px,15vw,80px)}.search-page-results{grid-template-columns:1fr}.search-page-control{flex-direction:column}.search-page-control button{min-height:44px}#world-search-quick:not(:empty){right:10px;width:calc(100vw - 20px)}}
/* Faction enlistment: the one-time choice uses the same three identity channels as Faction. */
.faction-picker-entry{display:block;margin:14px 0;padding:17px 20px;border:1px solid var(--amber);background:#322d1c;color:var(--amber);font:800 17px var(--display);text-decoration:none;letter-spacing:.04em}
.faction-picker-entry:hover{background:#473b1d}
.faction-picker{max-width:1280px;margin:auto;min-width:0}
.faction-picker-head{padding:34px 38px;min-height:290px;border:1px solid var(--line);border-top:3px solid var(--amber);background:linear-gradient(125deg,#2b2925,#151a1b 72%);clip-path:polygon(0 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%)}
.faction-picker-head h1{margin:35px 0 14px;font:800 clamp(58px,7vw,106px)/.82 var(--display)}.faction-picker-head h1 em{font-style:normal;color:var(--amber)}
.faction-picker-head p{max-width:52ch;font:13px/1.6 var(--body);color:var(--muted)}
.faction-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}
.faction-picker-card{--faction-accent:#e3e6e3;display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:380px;padding:22px;border:1px solid var(--line);border-top:4px solid var(--faction-accent);background:linear-gradient(150deg,#252b2b,#15191b);color:var(--ink)}
.faction-picker-card--BC{--faction-accent:#669bde}.faction-picker-card--RM{--faction-accent:#d75b55}
.faction-picker-code{font:10px var(--mono);letter-spacing:.1em;color:var(--faction-accent)}
.faction-picker-card img{width:110px;height:110px;object-fit:contain;margin:24px auto 20px;filter:drop-shadow(0 8px 16px #0008)}
.faction-picker-card h2{margin:0;font:800 clamp(30px,3vw,46px)/.95 var(--display);text-transform:uppercase}
.faction-picker-card p{margin:12px 0 20px;color:var(--muted);font:10px var(--mono);letter-spacing:.08em}
.faction-picker-card button{width:100%;margin-top:auto;min-height:47px;border:1px solid var(--faction-accent);background:transparent;color:var(--faction-accent);font:800 15px var(--display);cursor:pointer}
.faction-picker-card button:hover{background:var(--faction-accent);color:#15191b}
#faction-picker-message{padding:15px;border:1px solid var(--amber);color:var(--amber);font:11px var(--mono)}
.faction-picker-notice{margin-top:24px;min-height:180px;padding:30px;border:1px solid var(--line);border-top:3px solid var(--amber);background:#202626}
.faction-picker-notice h2{font:800 clamp(31px,4vw,52px) var(--display)}.faction-picker-notice p{color:var(--muted)}
.faction-picker-notice a{display:inline-block;margin-top:18px;padding:11px 17px;border:1px solid var(--amber);color:var(--amber);font:800 15px var(--display);text-decoration:none}
@media(max-width:900px){.faction-picker-grid{grid-template-columns:1fr}.faction-picker-card{min-height:220px}.faction-picker-card img{width:75px;height:75px;margin:15px auto}.faction-picker-card button{margin-top:18px}}
@media(max-width:600px){.faction-picker-head{min-height:230px;padding:23px}.faction-picker-head h1{font-size:clamp(55px,15vw,78px)}.faction-picker-grid{gap:8px}.faction-picker-card{padding:18px;min-height:215px}}
