:root {
  /* The preferred 125% browser view is the default UI size. */
  font-size: 125%;
  /* base surfaces — warm charcoal stack, dark by default */
  --void: #080706;
  --ink-900: #12100e;
  --ink-800: #1a1714;
  --ink-700: #241f1b;
  --ink-600: #2e2823;
  --ink-500: #3d352e;
  --ink-400: #4d443c;
  --ink-300: #6b6058;

  /* foreground ramp */
  --paper-000: #ffffff;
  --paper-100: #f5efe8;
  --paper-200: #d8cec3;
  --paper-300: #b8ada1;
  --paper-400: #8c8177;
  --paper-500: #6b6058;

  /* primary accent — magenta */
  --mag-100: #ffd0e2;
  --mag-300: #ff6aa5;
  --mag-500: #ff3d8b;
  --mag-700: #d92b71;
  --mag-900: #3d0f24;

  /* signal colors */
  --sig-ok: #4ade5e;
  --sig-ok-dim: #12331a;
  --sig-warn: #ffb000;
  --sig-warn-dim: #33260a;
  --sig-err: #ff4d3d;
  --sig-err-dim: #3b1310;
  --sig-info: #4dc4ff;
  --sig-info-dim: #0e2733;

  /* semantic aliases: surfaces */
  --surface-page: var(--ink-900);
  --surface-panel: var(--ink-800);
  --surface-inset: var(--void);
  --surface-raised: var(--ink-700);
  --surface-hover: var(--ink-600);
  --surface-active: var(--ink-500);
  --surface-selected: var(--mag-900);

  /* semantic aliases: text */
  --text-primary: var(--paper-100);
  --text-secondary: var(--paper-300);
  --text-muted: var(--paper-400);
  --text-disabled: var(--ink-300);
  --text-accent: var(--mag-500);
  --text-inverse: var(--void);
  --text-link: var(--mag-500);
  --text-link-hover: var(--mag-300);

  /* semantic aliases: lines */
  --line-hairline: var(--ink-600);
  --line-default: var(--ink-500);
  --line-strong: var(--ink-300);
  --line-accent: var(--mag-500);

  /* semantic aliases: interactive */
  --accent: var(--mag-500);
  --accent-hover: var(--mag-300);
  --accent-press: var(--mag-700);
  --accent-wash: var(--mag-900);
  --focus-ring: var(--mag-500);
  --selection-bg: var(--mag-500);
  --selection-fg: var(--void);
}

/* light scope: inverted terminal, for print and docs pages */
[data-theme="paper"] {
  --surface-page: #f5efe8;
  --surface-panel: #ffffff;
  --surface-inset: #ebe3d9;
  --surface-raised: #ffffff;
  --surface-hover: #ebe3d9;
  --surface-active: #ddd2c5;
  --surface-selected: var(--mag-100);
  --text-primary: #12100e;
  --text-secondary: #3d352e;
  --text-muted: #6b6058;
  --text-disabled: #b8ada1;
  --text-inverse: #ffffff;
  --line-hairline: #ddd2c5;
  --line-default: #b8ada1;
  --line-strong: #3d352e;
  --accent: var(--mag-700);
  --text-accent: var(--mag-700);
  --text-link: var(--mag-700);
  --selection-fg: #ffffff;
}

:root { --font-mono: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; --font-display: 'Martian Mono', var(--font-mono); }
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--surface-page); color: var(--text-primary); overflow: hidden; }
body { font: 400 0.8125rem/1.5 var(--font-mono); font-variant-ligatures: none; font-variant-numeric: tabular-nums; }
[hidden] { display: none !important; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; background: transparent; border: 0.0625rem solid transparent; padding: 0.125rem 0.5rem; line-height: 1.5; }
button:hover { background: var(--surface-hover); color: var(--text-primary); }
button:disabled { opacity: .5; cursor: default; }
button:focus-visible, a:focus-visible, canvas:focus-visible, [tabindex]:focus-visible { outline: 0.0625rem solid var(--accent); outline-offset: -0.0625rem; }
input, select { background: var(--surface-inset); border: 0.0625rem solid var(--line-default); padding: 0.1875rem 0.375rem; border-radius: 0; min-width: 0; }
input:focus, select:focus { outline: 0.0625rem solid var(--accent); }
::selection { background: var(--accent); color: var(--void); }
::-webkit-scrollbar { width: 0.625rem; height: 0.625rem; }
::-webkit-scrollbar-track { background: var(--surface-page); }
::-webkit-scrollbar-thumb { background: var(--ink-500); border: 0.125rem solid var(--surface-page); }
.app { display: grid; grid-template-rows: minmax(0, 1fr) 1.375rem; height: 100dvh; border: 0.0625rem solid var(--line-default); overflow: hidden; position: relative; }
.workspace { display: flex; min-height: 0; min-width: 0; }
.spacer { flex: 1; }
.muted { color: var(--text-muted); }
.accent-text, em { color: var(--accent); font-style: normal; }
small { font-size: 0.6875rem; }
strong { font-weight: 500; }
kbd { font: inherit; font-size: 0.6875rem; border: 0.0625rem solid var(--line-hairline); padding: 0 0.125rem; white-space: nowrap; }
h1, h2 { margin: 0; font-size: 0.6875rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.rail { width: 2.75rem; flex: none; border-right: 0.0625rem solid var(--line-default); background: var(--void); display: flex; flex-direction: column; align-items: center; gap: 0.25rem; padding: 0.5rem 0; }
.icon-button { display: inline-flex; justify-content: center; align-items: center; width: 2rem; height: 2rem; padding: 0.375rem; flex: none; color: var(--text-secondary); }
.icon-button svg { width: 1.25rem; height: 1.25rem; stroke: currentColor; fill: none; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.icon-button.active { background: var(--accent); color: var(--void); }
.icon-button.small { width: 1.5rem; height: 1.5rem; padding: 0.25rem; }
.bar { min-height: 2.25rem; flex: none; display: flex; align-items: center; gap: 0.625rem; padding: 0 0.75rem; border-bottom: 0.0625rem solid var(--line-default); white-space: nowrap; overflow: hidden; }
.bar button { font-size: 0.6875rem; }
.brand strong, .file-header strong { font-family: var(--font-display); letter-spacing: -.02em; }
.file-header strong { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.brand .muted, .file-header .muted { font-size: 0.6875rem; }
.files-panel { width: 16.5rem; flex: none; border-right: 0.0625rem solid var(--line-default); display: flex; flex-direction: column; min-height: 0; background: var(--surface-page); }
.dropzone { margin: 0.75rem; padding: 0.625rem 0.75rem; border: 0.0625rem dashed var(--line-default); display: flex; flex-direction: column; gap: 0.125rem; text-align: left; color: var(--text-secondary); }
.dropzone small { color: var(--text-muted); }
.files-heading { display: flex; align-items: baseline; justify-content: space-between; padding: 0 0.75rem 0.5rem; color: var(--text-secondary); font-size: 0.6875rem; gap: 0.5rem; }
.files-heading > span { text-transform: uppercase; letter-spacing: .12em; white-space: nowrap; }
.files-heading small { color: var(--text-muted); text-align: right; }
.file-list { flex: 1; min-height: 0; overflow: auto; border-top: 0.0625rem solid var(--line-hairline); }
.file-entry { width: 100%; display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) auto; gap: 0.5rem; padding: 0.375rem 0.75rem 0.375rem 0.625rem; border: 0; border-left: 0.125rem solid transparent; border-bottom: 0.0625rem solid var(--line-hairline); text-align: left; line-height: 1.25rem; }
.file-entry.selected { border-left-color: var(--accent); background: var(--surface-selected); }
.file-entry .file-info { min-width: 0; display: flex; flex-direction: column; color: var(--text-secondary); }
.file-entry .file-name, .file-entry .file-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.file-entry.selected .file-name { color: var(--text-primary); }
.file-entry .file-sub { font-size: 0.6875rem; line-height: 1rem; color: var(--text-muted); }
.file-entry .file-size { font-size: 0.6875rem; color: var(--text-muted); }
.file-glyph { font-size: 0.6875rem; }
.done { color: var(--sig-ok); } .error, .danger { color: var(--sig-err); } .analyzing { color: var(--accent); } .queued { color: var(--text-disabled); }
.files-panel footer { border-bottom: 0; border-top: 0.0625rem solid var(--line-default); }
main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; position: relative; }
.empty-view { padding: 1.5rem; max-width: 47.5rem; }
.empty-view h1 { margin-bottom: 1rem; }
.empty-drop { border: 0.0625rem dashed var(--line-default); padding: 2rem 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; text-align: left; }
.empty-drop strong { font: 500 1rem/1.3 var(--font-display); }
.empty-drop span { color: var(--text-secondary); }
.empty-drop small { color: var(--text-muted); }
.error-banner { padding: 0.5rem 0.75rem; color: var(--sig-err); background: var(--sig-err-dim); border-bottom: 0.0625rem solid var(--line-default); overflow-wrap: anywhere; }
.file-view, .batch-view { flex: 1; display: flex; flex-direction: column; min-height: 0; min-width: 0; }
.badge { font-size: 0.6875rem; text-transform: uppercase; border: 0.0625rem solid currentColor; padding: 0 0.25rem; line-height: 1.125rem; flex: none; }
.badge.accent { color: var(--accent); }
.classification-band { flex: none; display: flex; flex-wrap: wrap; align-items: stretch; border-bottom: 0.0625rem solid var(--line-default); background: var(--surface-panel); }
.hero { flex: 1 1 17.5rem; min-width: 0; padding: 0.75rem 1rem; border-right: 0.0625rem solid var(--line-hairline); }
.hero-label, .hero-field-label { font-size: 0.6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.hero-isa { font: 500 1.75rem/1.3 var(--font-display); letter-spacing: -.02em; overflow-wrap: anywhere; }
.hero-sub { color: var(--text-secondary); }
.hero-field { flex: 1 1 7.8125rem; min-width: 0; padding: 0.75rem 1rem; border-right: 0.0625rem solid var(--line-hairline); }
.hero-field-value { font-size: 1rem; overflow-wrap: anywhere; }
.hero-field-sub { display: block; font-size: 0.6875rem; color: var(--text-muted); }
.classification-band.compact { align-items: baseline; padding: 0.5rem 0.75rem; gap: 0.5rem 0; }
.compact .hero { display: flex; flex: 0 1 auto; align-items: baseline; gap: 0.625rem; padding: 0 0.875rem 0 0; border: 0; }
.compact .hero-isa { font-size: 0.9375rem; } .compact .hero-label { display: none; } .compact .hero-sub { font-size: 0.75rem; }
.compact .hero-field { flex: 0 1 auto; padding: 0 0.625rem; border-right: 0; border-left: 0.0625rem solid var(--line-hairline); }
.compact .hero-field-label { display: none; } .compact .hero-field-value { font-size: 0.75rem; } .compact .hero-field-sub { display: inline; margin-left: 0.3125rem; }
.tabs { display: flex; flex: none; min-width: 0; border-bottom: 0.0625rem solid var(--line-default); }
.tabs button { padding: 0.5rem 0.75rem; border: 0; border-bottom: 0.125rem solid transparent; color: var(--text-muted); white-space: nowrap; }
.tabs button[aria-selected=true], .tabs button.active { color: var(--accent); border-bottom-color: var(--accent); }
.tab-panel { flex: 1; min-height: 0; min-width: 0; }
.classification-view { overflow: auto; padding: 1.5rem; }
#classification-content { display: flex; flex-direction: column; gap: 1rem; max-width: 70rem; }
.classification-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 1rem; }
.panel { border: 0.0625rem solid var(--line-default); background: var(--surface-page); }
.panel > header { padding: 0.5rem 0.75rem; border-bottom: 0.0625rem solid var(--line-hairline); text-transform: uppercase; letter-spacing: .12em; font-size: 0.6875rem; display: flex; gap: 0.75rem; justify-content: space-between; }
.panel-body { padding: 0.5rem 1rem 0.75rem; }
.profile-panel { max-width: 70rem; margin-top: 1rem; }
.profile-panel canvas { width: 100%; height: 1.5rem; display: block; image-rendering: pixelated; cursor: crosshair; background: var(--surface-inset); }
.metadata-row { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 0.75rem; padding: 0.3125rem 0; border-bottom: 0.0625rem solid var(--line-hairline); overflow-wrap: anywhere; }
.metadata-row > :first-child { color: var(--text-muted); }
.tags { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.tag { border: 0.0625rem solid var(--line-default); padding: 0 0.3125rem; font-size: 0.6875rem; }
.candidate-row { display: grid; grid-template-columns: minmax(6.25rem, 10rem) 6.5rem minmax(5rem, 1fr) 6.25rem 3.25rem; gap: 1rem; padding: 0.375rem 1rem; align-items: center; border-bottom: 0.0625rem solid var(--line-hairline); }
.candidate-row .score { text-align: right; white-space: nowrap; }
.track { height: 0.5rem; background: var(--surface-inset); border: 0.0625rem solid var(--line-hairline); } .track > i { display: block; height: 100%; background: var(--accent); }
.note { padding: 0.375rem 1rem; border-bottom: 0.0625rem solid var(--line-hairline); overflow-wrap: anywhere; }
.toolbar { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem 0.5rem; min-height: 2.25rem; padding: 0.375rem 0.75rem; border-bottom: 0.0625rem solid var(--line-default); font-size: 0.6875rem; }
.toolbar label { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--text-muted); }
.range-label { flex: 1 1 7.5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-muted); }
.segments { display: inline-flex; border: 0.0625rem solid var(--line-default); flex: none; }
.segments button { font-size: 0.6875rem; padding: 0.125rem 0.5rem; border: 0; border-left: 0.0625rem solid var(--line-default); color: var(--text-muted); }
.segments button:first-child { border-left: 0; } .segments button.active { background: var(--accent-wash); color: var(--accent); }
.entropy-workspace, .hex-workspace { display: flex; }
.entropy-center, .hex-center { flex: 1; display: flex; flex-direction: column; min-width: 0; min-height: 0; overflow: auto; }
.map-stage { flex: 1; min-height: 16.25rem; position: relative; background: var(--surface-inset); padding: 1rem; overflow: auto; }
.map-frame { position: relative; width: 16rem; height: 16rem; overflow: hidden; background-color: var(--surface-page); background-image: linear-gradient(var(--ink-800) 0.0625rem, transparent 0.0625rem), linear-gradient(90deg, var(--ink-800) 0.0625rem, transparent 0.0625rem); background-size: 0.5rem 0.5rem; outline: 0.0625rem solid var(--line-hairline); cursor: crosshair; touch-action: none; }
.map-frame.panning { cursor: grabbing; }
.map-world { position: absolute; inset: 0; transform-origin: 0 0; will-change: transform; pointer-events: none; }
#entropy-map { display: block; width: 100%; height: 100%; image-rendering: pixelated; pointer-events: auto; }
#map-details { position: absolute; inset: 0; pointer-events: none; }
.map-detail { position: absolute; image-rendering: pixelated; }
.map-overview { position: absolute; right: 0.625rem; bottom: 0.625rem; width: 6rem; height: 6rem; background: var(--void); border: 0.0625rem solid var(--line-strong); cursor: move; box-shadow: 0 0 0 0.1875rem #080706cc; }
#map-minimap { display: block; width: 100%; height: 100%; image-rendering: pixelated; pointer-events: none; }
#minimap-view { position: absolute; border: 0.0625rem solid var(--mag-500); background: #ff3d8b18; pointer-events: none; }
.map-box { position: absolute; pointer-events: none; min-width: 0.375rem; min-height: 0.375rem; border: 0.0625rem solid white; outline: 0.0625rem solid var(--void); }
.cursor-box { border-width: 0.125rem; } .hover-box { border-color: var(--accent); }
.map-progress { position: absolute; top: 0.5rem; left: 0.5rem; padding: 0.125rem 0.5rem; background: var(--void); border: 0.0625rem solid var(--line-default); font-size: 0.6875rem; pointer-events: none; }
.map-legend { display: flex; flex-wrap: wrap; gap: 0.375rem 0.75rem; align-items: center; padding: 0.375rem 1rem; border-top: 0.0625rem solid var(--line-hairline); font-size: 0.6875rem; flex: none; }
#legend { width: 7.5rem; height: 0.5rem; image-rendering: pixelated; border: 0.0625rem solid var(--line-hairline); }
.swatch { display: inline-block; width: 0.625rem; height: 0.625rem; border: 0.0625rem solid var(--line-default); } .zero { background: var(--void); } .control { background: var(--ink-300); } .ascii { background: var(--paper-200); } .high { background: var(--accent); } .ff { background: white; }
.overview-strip { border-top: 0.0625rem solid var(--line-default); padding: 0.5rem 1rem 0.625rem; flex: none; }
.strip-ticks { display: flex; justify-content: space-between; font-size: 0.6875rem; color: var(--text-muted); gap: 0.5rem; }
@media (max-width: 1000px) { #strip-ticks span:nth-child(2), #strip-ticks span:nth-child(4) { display: none; } }
.strip-frame { position: relative; height: 1.375rem; margin-top: 0.25rem; }
#entropy-profile { display: block; width: 100%; height: 100%; image-rendering: pixelated; cursor: crosshair; border: 0.0625rem solid var(--line-hairline); }
#view-bracket { position: absolute; top: -0.1875rem; bottom: -0.1875rem; border: 0.0625rem solid var(--paper-100); min-width: 0.1875rem; pointer-events: none; }
#strip-cursor { position: absolute; top: -0.25rem; bottom: -0.25rem; width: 0.125rem; margin-left: -0.0625rem; background: var(--accent); pointer-events: none; }
.entropy-inspector { width: 22.5rem; flex: none; border-left: 0.0625rem solid var(--line-default); overflow: auto; }
.inspector-section { padding: 0.75rem; border-bottom: 0.0625rem solid var(--line-default); display: flex; flex-direction: column; gap: 0.5rem; }
.inspector-section h2 { color: var(--text-secondary); }
dl { display: grid; grid-template-columns: auto minmax(0, 1fr); margin: 0; gap: 0.5rem 0.75rem; } dt { color: var(--text-muted); } dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.metric { display: flex; align-items: baseline; gap: 0.5rem; } .metric strong { margin-left: auto; font: 500 1.25rem/1 var(--font-display); }
meter { display: block; width: 100%; height: 0.5rem; background: var(--surface-inset); border: 0.0625rem solid var(--line-hairline); border-radius: 0; appearance: none; }
meter::-webkit-meter-bar { background: var(--surface-inset); border: 0; border-radius: 0; height: 0.375rem; } meter::-webkit-meter-optimum-value { background: var(--accent); } meter::-moz-meter-bar { background: var(--accent); }
#histogram { display: block; width: 100%; height: 3rem; background: var(--surface-inset); image-rendering: pixelated; border: 0.0625rem solid var(--line-hairline); }
.mini-hex { padding: 0.5rem 0.75rem; background: var(--surface-inset); border-bottom: 0.0625rem solid var(--line-default); overflow-x: auto; }
.mini-row { display: flex; gap: 0.25rem; white-space: nowrap; line-height: 1.25rem; font-size: 0.75rem; }
.mini-offset { width: 4rem; flex: none; color: var(--text-muted); margin-right: 0.375rem; } .mini-row button { padding: 0; width: 1.1875rem; flex: none; font-size: 0.75rem; border: 0; } .mini-ascii { letter-spacing: 0.0625rem; margin-left: 0.375rem; color: var(--text-muted); }
.mini-ascii { display: inline-flex; } .mini-ascii button { width: 0.5rem; font-size: 0.6875rem; }
.byte-zero { color: var(--ink-400); } .byte-control { color: var(--paper-500); } .byte-ascii { color: var(--paper-100); } .byte-high { color: var(--paper-300); } .byte-ff { color: white; }
.byte-cursor { background: var(--accent) !important; color: var(--void) !important; } .byte-selected { background: var(--accent-wash); }
.data-inspector { width: 18.75rem; flex: none; border-left: 0.0625rem solid var(--line-default); overflow: auto; }
.inspector-note { padding: 0.5rem 0.75rem; border-bottom: 0.0625rem solid var(--line-default); font-size: 0.6875rem; color: var(--text-muted); }
.data-row { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 0.5rem; padding: 0.25rem 0.75rem; border-bottom: 0.0625rem solid var(--line-hairline); }
.data-row > :first-child { color: var(--text-muted); font-size: 0.6875rem; } .data-row .value { overflow-wrap: anywhere; font-size: 0.75rem; } .data-row small { display: block; color: var(--text-muted); }
.hex-content { flex: 1; display: flex; min-height: 6.25rem; overflow: hidden; background: var(--surface-inset); }
.hex-viewport { --hex-row-height: 1.25rem; flex: 1; min-width: 0; overflow-x: auto; overflow-y: hidden; padding: 0 0.75rem; user-select: none; }
.hex-row { display: flex; width: max-content; min-width: 100%; height: var(--hex-row-height); line-height: var(--hex-row-height); font-size: 0.75rem; align-items: center; }
.hex-head { height: 1.75rem; color: var(--text-muted); border-bottom: 0.0625rem solid var(--line-default); }
.hex-off { width: 5.5rem; flex: none; color: var(--text-muted); white-space: pre; }
.hex-bytes, .hex-text { display: flex; flex: none; }
.hex-byte { width: 1.375rem; flex: none; text-align: center; cursor: default; }
.hex-text { padding-left: 0.75rem; margin-left: 0.75rem; border-left: 0.0625rem solid var(--line-hairline); }
.hex-char { text-align: center; white-space: pre; flex: none; }
.hex-track { width: 0.875rem; flex: none; position: relative; border-left: 0.0625rem solid var(--line-default); cursor: ns-resize; touch-action: none; }
#hex-profile { width: 100%; height: 100%; display: block; image-rendering: pixelated; }
#hex-thumb { position: absolute; left: 0; right: 0; border: 0.0625rem solid var(--paper-100); min-height: 0.375rem; pointer-events: none; }
#hex-cursor-tick { position: absolute; left: -0.1875rem; right: 0; height: 0.125rem; background: var(--accent); pointer-events: none; }
.hex-footer { border-bottom: 0; border-top: 0.0625rem solid var(--line-default); font-size: 0.6875rem; }
.goto-label { margin-left: auto; } #goto-offset { width: 9.375rem; }
.json-view { display: flex; flex-direction: column; } #jsonRaw { flex: 1; min-height: 0; overflow: auto; margin: 0; padding: 1rem 1.5rem; background: var(--surface-inset); font: 400 0.75rem/1.7 var(--font-mono); color: var(--text-secondary); white-space: pre; tab-size: 2; }
.batch-controls { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; border-bottom: 0.0625rem solid var(--line-default); padding-right: 0.75rem; } .batch-controls .tabs { border: 0; } .batch-controls .tabs span { color: var(--text-disabled); font-size: 0.6875rem; }
#batch-progress { display: block; width: 100%; height: 0.1875rem; appearance: none; border: 0; background: var(--surface-inset); accent-color: var(--accent); flex: none; } #batch-progress::-webkit-progress-bar { background: var(--surface-inset); } #batch-progress::-webkit-progress-value { background: var(--accent); } #batch-progress::-moz-progress-bar { background: var(--accent); }
.batch-tallies { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; padding: 0.5rem 0.75rem; border-bottom: 0.0625rem solid var(--line-hairline); font-size: 0.6875rem; } .batch-tallies:empty { display: none; }
.batch-table-wrap { flex: 1; min-height: 0; overflow: auto; } .batch-table { width: 100%; min-width: 65.625rem; border-collapse: collapse; white-space: nowrap; }
.batch-table th { text-align: left; font-weight: 400; font-size: 0.6875rem; color: var(--text-muted); position: sticky; top: 0; background: var(--surface-panel); z-index: 1; }
.batch-table th, .batch-table td { padding: 0.375rem 0.75rem; border-bottom: 0.0625rem solid var(--line-hairline); } .batch-table tbody tr { cursor: pointer; } .batch-table tbody tr:hover { background: var(--surface-hover); } .batch-table tr.selected { background: var(--surface-selected); }
.batch-file { display: block; max-width: 16.25rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: left; padding: 0; border: 0; } .batch-error { display: block; max-width: 16.25rem; overflow: hidden; text-overflow: ellipsis; font-size: 0.6875rem; color: var(--text-muted); }
.batch-profile { width: 6.5rem; height: 0.625rem; display: inline-block; image-rendering: pixelated; vertical-align: middle; margin-right: 0.5rem; border: 0.0625rem solid var(--line-hairline); } #batch-no-match { padding: 0.75rem; }
.analysis-log { flex: none; height: 10rem; display: flex; flex-direction: column; border-top: 0.0625rem solid var(--line-default); background: var(--surface-inset); } #log-lines { flex: 1; min-height: 0; overflow: auto; padding: 0.25rem 0.75rem; font-size: 0.6875rem; } .log-line { overflow-wrap: anywhere; white-space: pre-wrap; }
.log-info { color: var(--text-muted); } .log-cmd { color: var(--accent); } .log-error { color: var(--sig-err); } .log-done { color: var(--sig-ok); }
.status-bar { display: flex; align-items: center; min-width: 0; overflow: hidden; border-top: 0.0625rem solid var(--line-default); white-space: nowrap; font-size: 0.6875rem; }
.status-classic { align-self: stretch; display: inline-flex; align-items: center; flex: none; padding: 0 0.625rem; color: var(--text-accent); background: var(--surface-raised); text-decoration: none; }
.status-classic:hover { background: var(--accent); color: var(--void); }
.status-bar > span:not(.spacer) { padding: 0 0.5rem; border-right: 0.0625rem solid var(--line-default); overflow: hidden; text-overflow: ellipsis; } .status-mode { background: var(--accent); color: var(--void); flex: none; } #status-file { max-width: 15.625rem; } #status-engine { color: var(--text-muted); flex: none; }
.drag-overlay { position: absolute; inset: 0; background: rgba(8,7,6,.82); padding: 0.75rem; z-index: 30; pointer-events: none; display: flex; }
.drag-overlay > div { border: 0.0625rem dashed var(--accent); padding: 1.5rem; flex: 1; display: flex; flex-direction: column; gap: 0.375rem; } .drag-overlay strong { font: 500 1.25rem var(--font-display); }
.context-menu { position: fixed; z-index: 50; width: 11.25rem; background: var(--surface-panel); border: 0.0625rem solid var(--line-strong); padding: 0.25rem; box-shadow: 0 0.25rem 1.25rem #0008; } .context-menu button { display: block; width: 100%; text-align: left; font-size: 0.75rem; }
.sr-only { position: absolute; width: 0.0625rem; height: 0.0625rem; padding: 0; margin: -0.0625rem; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 1500px) { .entropy-inspector { width: 19.375rem; } .files-panel { width: 15rem; } .key-hint { display: none; } .data-inspector { width: 16.25rem; } .candidate-row { gap: 0.5rem; grid-template-columns: minmax(5rem, 1fr) 5rem minmax(3.75rem, 1fr) 5rem 3rem; } }
@media (max-width: 1000px) { .file-view > .tabs button { padding-inline: 0.375rem; } .files-panel { position: absolute; top: 0; bottom: 1.375rem; left: 2.75rem; width: min(16.5rem, calc(100% - 2.75rem)); z-index: 20; box-shadow: 0.5rem 0 1.5rem #0008; } .entropy-workspace, .hex-workspace { flex-direction: column; overflow: auto; } .entropy-center { flex: none; min-height: 27.5rem; overflow: visible; } .map-stage { min-height: 18.75rem; } .entropy-inspector, .data-inspector { width: 100%; border-left: 0; border-top: 0.0625rem solid var(--line-default); flex: none; overflow: visible; } .hex-center { flex: none; height: 30rem; } .classification-view { padding: 1rem; } .classification-band:not(.compact) .hero { flex-basis: 100%; } .hero-field { padding: 0.5rem 0.75rem; } .compact .hero-sub { display: none; } .batch-view > .bar { flex-wrap: wrap; padding: 0.375rem 0.75rem; gap: 0.375rem; } .batch-controls { flex-wrap: wrap; padding: 0 0.5rem 0.375rem; gap: 0.25rem; } .batch-controls .tabs button { padding: 0.5rem; } #status-classification, #status-cursor, #status-engine { display: none; } #status-file { max-width: 6.875rem; } .candidate-row { grid-template-columns: minmax(5rem, 1fr) 4.375rem 4.375rem; } .candidate-row .track, .candidate-row .candidate-meta { display: none; } .goto-label { margin-left: 0; } .bar { gap: 0.375rem; } .analysis-log { height: 7.5rem; } }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('./fonts/dm-mono-regular.ttf?v=5c4379b6b88ffc40') format('truetype'); }
@font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('./fonts/dm-mono-medium.ttf?v=5c4379b6b88ffc40') format('truetype'); }
@font-face { font-family: 'Martian Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('./fonts/martian-mono-regular.ttf?v=5c4379b6b88ffc40') format('truetype'); }
@font-face { font-family: 'Martian Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('./fonts/martian-mono-medium.ttf?v=5c4379b6b88ffc40') format('truetype'); }
