/* ══════════════════════════════════════════════════════════════
   LIFTRPG — BOOKLET RENDERER STYLESHEET
   All page types for the printed saddle-stitch booklet.
   Pages: 5.5in × 8.5in (half-letter). Spreads: 11in × 8.5in.
   ══════════════════════════════════════════════════════════════ */

/* ── RESET + VARIABLES ───────────────────────────────────── */
*{margin:0;padding:0;box-sizing:border-box;}

:root{
  --ink:#181714;
  --paper:#f1ebe0;
  --page-secondary-paper:#efe5d7;
  --secondary-paper:var(--page-secondary-paper,#efe5d7);
  --fog:#ddd6c5;
  --accent:#8b2a2a;
  --muted:#857d72;
  --rule:#ccc5b6;
  --warm:#efe5d7;
  --card:#ece6d8;
  --paper-2:#f6f1e7;
  --line-soft:#d8cfbf;
  --accent-soft:rgba(139,42,42,.14);
  --theme-page-filter:none;
  --theme-title-family:'Playfair Display',Georgia,serif;
  --theme-title-style:italic;
  --theme-title-weight:700;
  --theme-title-case:none;
  --theme-title-spacing:normal;
  --theme-body-family:'Libre Baskerville',Georgia,serif;
  --theme-body-leading:1.6;
  --theme-label-family:'Share Tech Mono',monospace;
  --theme-label-style:normal;
  --theme-label-weight:400;
  --theme-label-case:uppercase;
  --theme-label-spacing:.18em;
  --theme-designation-color:var(--accent);
  --theme-designation-fill:transparent;
  --theme-designation-border:var(--rule);
  --theme-designation-padding:0;
  --theme-designation-opacity:1;
  --theme-designation-transform:none;
  --theme-doc-badge-color:var(--accent);
  --theme-panel-fill:rgba(241,235,224,.96);
  --theme-panel-border:var(--rule);
  --theme-panel-radius:3px;
  --theme-panel-shadow:0 12px 24px rgba(0,0,0,.06);
  --theme-doc-fill:rgba(232,223,200,.78);
  --theme-session-fill:rgba(236,230,216,.92);
  --theme-session-border:var(--rule);
  --theme-session-separator:var(--line-soft);
  --theme-prompt-fill:rgba(255,255,255,.36);
  --theme-prompt-border:var(--rule);
  --theme-header-border:var(--ink);
  --theme-box-border:var(--rule);
  --theme-field-rule:var(--line-soft);
  --theme-cover-rule:var(--accent);
  --theme-cover-rule-gap:16px;
  --theme-page-overlay:linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(0,0,0,.02) 100%);
  --theme-page-noise-opacity:.35;
  --theme-page-atmosphere-size:200px;
  --cipher-attachment-label:"Cipher Attachment";
  --boss-document-label:"Final Document";
  --boss-attachment-label:"Convergence Attachment";
  --mono:var(--theme-label-family, 'Share Tech Mono', monospace);
  --serif:var(--theme-body-family, 'Libre Baskerville', Georgia, serif);
  --display:var(--theme-title-family, 'Playfair Display', Georgia, serif);
}

/* ── APP CHROME (screen only) ────────────────────────────── */
body{
  background:
    radial-gradient(circle at top, rgba(139,42,42,.2), transparent 38%),
    linear-gradient(180deg, #25211c 0%, #171411 100%);
  font-family:var(--theme-body-family,var(--serif));
  color:var(--ink);
  min-height:100vh;
  padding:0;
  line-height:var(--theme-body-leading,1.6);
}

body[data-review-mode="true"] .app-chrome,
body[data-review-mode="true"] .reader-unlock{
  display:none !important;
}

body[data-demo-view="true"] .app-chrome{
  display:none !important;
}
body[data-demo-view="true"] .renderer-empty-state{
  display:none !important;
}

body[data-demo-view="true"] #booklet-container{
  padding-top:92px;
  padding-bottom:28px;
}

.app-chrome{
  width:min(980px, calc(100vw - 24px));
  margin:12px auto 0;
  background:rgba(39,35,30,.82);
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  box-shadow:0 14px 28px rgba(0,0,0,.18);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  padding:10px 14px 12px;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  align-items:center;
  gap:8px 14px;
  position:sticky;
  top:12px;
  z-index:1000;
}
.app-header{
  display:flex;
  align-items:center;
  gap:10px;
}
.app-back{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-family:var(--mono);
  font-size:8pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--paper);
  text-decoration:none;
}
.app-back:hover{
  color:#fff;
}
.back-chevron{
  font-size:11pt;
  line-height:1;
}
.app-logo{
  font-family:var(--mono);
  font-size:11pt;
  letter-spacing:.3em;
  color:var(--paper);
  font-weight:700;
}
.app-version{
  font-family:var(--mono);
  font-size:6.4pt;
  color:color-mix(in srgb, var(--paper) 52%, var(--muted) 48%);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.app-toolbar{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  margin-left:auto;
}
body[data-booklet-loaded="false"] .app-toolbar{
  display:none;
}
.app-action-group{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  padding:6px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(255,255,255,.035);
}
.app-action-group--reader{
  justify-content:flex-end;
}
.app-toolbar button,
.upload-btn,
.app-link-btn{
  font-family:var(--mono);
  font-size:6.8pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:rgba(241,235,224,.96);
  color:#1b1814;
  border:1px solid rgba(255,255,255,.12);
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
  transition:opacity .15s, transform .15s, background .15s, color .15s, border-color .15s;
  text-decoration:none;
}
.app-toolbar button:disabled{
  opacity:.3;
  cursor:default;
}
.app-toolbar button:not(:disabled):hover,
.upload-btn:hover,
.app-link-btn:hover{
  opacity:.92;
  transform:translateY(-1px);
}
.upload-icon{
  font-size:9pt;
  margin-right:3px;
}
.view-toggle{
  font-family:var(--mono);
  font-size:5.9pt;
  color:color-mix(in srgb, var(--paper) 56%, var(--muted) 44%);
  letter-spacing:.12em;
  display:flex;
  align-items:center;
  gap:5px;
  cursor:pointer;
  text-transform:uppercase;
  padding:0 2px 0 4px;
}
.mode-select{
  min-width:124px;
  font-family:var(--mono);
  font-size:6.8pt;
  letter-spacing:.08em;
  color:var(--ink);
  background:rgba(241,235,224,.96);
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  padding:8px 12px;
}
.author-tools{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding-top:2px;
}
.author-tools-label{
  font-family:var(--mono);
  font-size:6.3pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--paper) 48%, var(--muted) 52%);
  margin-right:2px;
}
.author-tools input,
.author-tools button{
  font-family:var(--mono);
  font-size:6.9pt;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.author-tools input{
  min-width:170px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:2px;
  background:rgba(0,0,0,.18);
  color:var(--paper);
}
.author-tools input::placeholder{
  color:color-mix(in srgb, var(--paper) 42%, var(--muted) 58%);
}
.author-tools button{
  background:rgba(241,235,224,.96);
  color:#1b1814;
  border:1px solid rgba(255,255,255,.12);
  padding:7px 12px;
  border-radius:2px;
  cursor:pointer;
}
.author-tools button:hover{
  opacity:.92;
}
.encrypt-status{
  font-family:var(--mono);
  font-size:6.3pt;
  letter-spacing:.08em;
  color:color-mix(in srgb, var(--paper) 56%, var(--muted) 44%);
}
.app-status{
  font-family:var(--mono);
  width:100%;
  font-size:6.1pt;
  color:color-mix(in srgb, var(--paper) 58%, var(--muted) 42%);
  letter-spacing:.07em;
  min-height:1.2em;
  grid-column:1 / -1;
  text-align:right;
}
body[data-booklet-loaded="false"] .app-status{
  display:none;
}
.app-status[data-tone="success"]{
  color:#d9edd5;
}
.app-status[data-tone="warning"]{
  color:#f4d8a5;
}
.app-status[data-tone="error"]{
  color:#f0c1bb;
}

.renderer-empty-state{
  padding:30px 20px 4px;
}
body[data-booklet-loaded="true"] .renderer-empty-state{
  display:none;
}
.renderer-empty-panel{
  width:min(980px, calc(100vw - 40px));
  margin:0 auto;
  padding:24px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(241,235,224,.965), rgba(236,230,216,.92));
  box-shadow:0 22px 48px rgba(0,0,0,.18);
  display:grid;
  gap:18px;
}
.renderer-empty-kicker{
  font-family:var(--mono);
  font-size:6.1pt;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--accent);
}
.renderer-empty-title{
  font-family:var(--display);
  font-size:20pt;
  line-height:1.04;
  color:var(--ink);
  max-width:20ch;
}
.renderer-empty-copy{
  font-size:8.1pt;
  line-height:1.65;
  color:var(--muted);
  max-width:58ch;
}
.renderer-empty-steps{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.renderer-empty-step{
  padding:16px;
  border:1px solid rgba(24,23,20,.08);
  border-radius:18px;
  background:rgba(255,255,255,.46);
  display:grid;
  gap:8px;
}
.renderer-empty-step-index{
  width:26px;
  height:26px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  font-size:7.2pt;
  letter-spacing:.12em;
  background:rgba(24,23,20,.08);
  color:var(--ink);
}
.renderer-empty-step-title{
  font-family:var(--display);
  font-size:12pt;
  line-height:1.12;
  color:var(--ink);
}
.renderer-empty-step-copy{
  font-size:7pt;
  line-height:1.55;
  color:var(--muted);
}
.renderer-empty-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.renderer-empty-upload{
  justify-content:center;
}

/* ── BOOKLET CONTAINER ───────────────────────────────────── */
#booklet-container{
  padding:30px 20px 132px;
  display:flex;
  flex-direction:column;
  align-items:center;
  --ink:var(--page-ink,#181714);
  --paper:var(--page-paper,#f1ebe0);
  --secondary-paper:var(--page-secondary-paper,var(--paper));
  --fog:var(--page-fog,#ddd6c5);
  --accent:var(--page-accent,#8b2a2a);
  --muted:var(--page-muted,#857d72);
  --rule:var(--page-rule,#ccc5b6);
  --warm:var(--secondary-paper,var(--paper));
  --card:var(--card-surface,#ece6d8);
  --paper-2:var(--panel-surface,#f6f1e7);
  --line-soft:var(--page-rule,#d8cfbf);
  --accent-soft:var(--highlight-surface,rgba(139,42,42,.14));
  --theme-title-family:var(--font-display,'Playfair Display',Georgia,serif);
  --theme-title-style:var(--heading-style,italic);
  --theme-title-weight:var(--weight-heading,700);
  --theme-body-family:var(--font-body,'Libre Baskerville',Georgia,serif);
  --theme-body-leading:var(--body-line-height,1.6);
  --theme-label-family:var(--font-mono,'Share Tech Mono',monospace);
  --theme-label-weight:var(--weight-label,400);
  --theme-label-case:var(--label-transform,uppercase);
  --theme-label-spacing:var(--label-spacing,.18em);
  --theme-designation-color:var(--page-accent,#8b2a2a);
  --theme-panel-fill:var(--panel-surface,rgba(241,235,224,.96));
  --theme-panel-border:var(--page-rule,#ccc5b6);
  --theme-panel-shadow:var(--surface-shadow,0 12px 24px rgba(0,0,0,.06));
  --theme-doc-fill:var(--panel-secondary-surface,rgba(232,223,200,.78));
  --theme-session-fill:var(--card-surface,rgba(236,230,216,.92));
  --theme-session-border:var(--page-rule,#ccc5b6);
  --theme-session-separator:var(--page-rule,#d8cfbf);
  --theme-prompt-fill:var(--callout-surface,rgba(255,255,255,.36));
  --theme-prompt-border:var(--page-accent,#8b2a2a);
  --theme-header-border:var(--page-ink,#181714);
  --theme-box-border:var(--page-ink,#181714);
  --theme-field-rule:var(--page-rule,#d8cfbf);
  --theme-cover-rule:var(--page-accent,#8b2a2a);
  --theme-page-overlay:var(--page-underlay,linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(0,0,0,.02) 100%));
  --theme-page-noise-opacity:var(--noise-opacity,.35);
  --page-live-top:var(--page-margin,0.34in);
  --page-live-right:var(--page-margin,0.34in);
  --page-live-bottom:var(--page-margin,0.34in);
  --page-live-left:var(--page-margin,0.34in);
}

.booklet-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

[data-layout-mode="single"] .booklet-grid {
  gap: 20px;
}
[data-layout-mode="booklet"] .booklet-grid,
[data-layout-mode="spread"] .booklet-grid {
  gap: 40px;
}

.spread-row {
  display: flex;
  flex-direction: row;
  justify-content: center;
}

.reader-spread,
.printer-sheet {
  width: 11in;
  height: 8.5in;
  margin: 0 auto;
  overflow: hidden;
}

.reader-spread .booklet-page,
.printer-sheet .booklet-page {
  margin: 0 !important;
}

.spread-spacer {
  width: 5.5in;
  height: 8.5in;
  background: transparent;
}

/* ══════════════════════════════════════════════════════════════
   PAGE FOUNDATION
   Every page is 5.5in × 8.5in (half-letter, portrait).
   ══════════════════════════════════════════════════════════════ */
.booklet-page{
  width:5.5in;
  height:8.5in;
  background:var(--page-surface,var(--paper));
  position:relative;
  overflow:hidden;
  box-shadow:var(--page-shadow,0 4px 24px rgba(0,0,0,.5));
  flex-shrink:0;
  filter:var(--theme-page-filter);
}

/* Grain texture on all pages */
.booklet-page::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:var(--theme-page-noise-opacity,.35);
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  background-size:var(--theme-page-atmosphere-size) var(--theme-page-atmosphere-size);
}
.booklet-page::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:var(--theme-page-overlay);
}
.booklet-page > *{
  position:relative;
  z-index:1;
}

.booklet-page > .page-boundary{
  position:absolute;
  inset:var(--page-live-top,0.34in) var(--page-live-right,0.34in) var(--page-live-bottom,0.34in) var(--page-live-left,0.34in);
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  overflow:hidden;
}

.booklet-page[data-page-type="fragment-page"] > .page-boundary,
.booklet-page[data-page-type="overflow-doc"] > .page-boundary{
  inset:.26in .26in .28in .26in;
}

.booklet-page[data-page-type="field-ops"] > .page-boundary,
.booklet-page[data-page-type="oracle-overflow"] > .page-boundary,
.booklet-page[data-page-type="boss"] > .page-boundary{
  inset:.24in .24in .24in .24in;
}

.page-frame{
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.booklet-page[data-layout-overflow="true"] > .page-boundary{
  outline:1px solid rgba(139,42,42,.32);
  outline-offset:-1px;
}

.booklet-page[data-layout-missing-boundary="true"]{
  outline:2px solid rgba(139,42,42,.6);
  outline-offset:-2px;
}

.cover-title,
.rules-title,
.week-title,
.boss-title,
.password-assembly-title,
.endings-title,
.interlude-title,
.puzzle-title{
  font-family:var(--theme-title-family,var(--display));
  font-style:var(--theme-title-style,italic);
  font-weight:var(--theme-title-weight,700);
  letter-spacing:var(--theme-title-spacing,normal);
  text-transform:var(--theme-title-case,none);
}

.cover-designation,
.rules-header,
.page-header,
.rp-header,
.session-header,
.doc-label,
.fragment-doc-type,
.oracle-header,
.password-final-label,
.boss-components-label,
.boss-convergence-label,
.boss-proof-label,
.interlude-reason,
.companion-title,
.week-kicker{
  font-family:var(--theme-label-family,var(--mono));
  font-style:var(--theme-label-style,normal);
  font-weight:var(--theme-label-weight,400);
  letter-spacing:var(--theme-label-spacing,.18em);
  text-transform:var(--theme-label-case,uppercase);
}

.cover-tagline,
.rules-body,
.story-prompt,
.week-subtitle,
.password-log-subtitle,
.map-note,
.oracle-instruction,
.boss-narrative,
.endings-body,
.interlude-body,
.fragment-doc-body{
  font-family:var(--theme-body-family,var(--serif));
  line-height:var(--theme-body-leading,1.6);
}

/* Warm background variant for right-hand pages */
.booklet-page[data-page-type="field-ops"],
.booklet-page[data-page-type="oracle-overflow"],
.booklet-page[data-page-type="boss"],
.booklet-page[data-page-type="gauge-log"],
.booklet-page[data-page-type="rules-right"]{
  background:var(--warm);
}

/* ══════════════════════════════════════════════════════════════
   COVER PAGE
   ══════════════════════════════════════════════════════════════ */
.cover-page{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:8px 8px 0 8px;
}
.cover-page[data-shell-family="classified-packet"],
.rules-left[data-shell-family="classified-packet"],
.sealed-page[data-shell-family="classified-packet"],
.gauge-log-page[data-shell-family="classified-packet"],
.password-assembly-page[data-shell-family="classified-packet"],
.endings-page[data-shell-family="classified-packet"]{
  border-radius:0;
  box-shadow:none;
}
.cover-page[data-shell-family="classified-packet"]{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 92%, white 8%), color-mix(in srgb, var(--warm) 96%, white 4%)),
    repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 17px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 16%, transparent 84%) 17px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 16%, transparent 84%) 18px
    );
}
.cover-page[data-shell-family="classified-packet"] .cover-title,
.rules-left[data-shell-family="classified-packet"] .rules-title,
.password-assembly-page[data-shell-family="classified-packet"] .password-assembly-title,
.endings-page[data-shell-family="classified-packet"] .endings-title{
  text-align:left;
  font-family:var(--mono);
  font-style:normal;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cover-page[data-shell-family="classified-packet"] .cover-designation{
  display:inline-flex;
  padding:3px 8px;
  border:1.5px solid var(--ink);
  background:rgba(0,0,0,.03);
}
.cover-page[data-shell-family="classified-packet"] .cover-art{
  max-width:none;
  margin:0 0 8px;
  padding:6px;
}
.cover-page[data-shell-family="classified-packet"] .cover-hero{
  max-width:none;
}
.cover-page[data-shell-family="classified-packet"] .cover-tagline{
  max-width:88%;
  margin-bottom:16px;
}
.cover-page[data-shell-family="classified-packet"] .cover-colophon{
  margin-top:auto;
  padding-top:8px;
  border-top:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 55%, transparent 45%);
}
.cover-page[data-shell-family="ship-logbook"] .cover-hero,
.endings-page[data-shell-family="ship-logbook"] .endings-title{
  text-align:center;
}
.cover-page[data-shell-family="ship-logbook"] .cover-rule{
  width:100%;
  max-width:none;
}
.rules-left[data-shell-family="ship-logbook"] .rules-header,
.gauge-log-page[data-shell-family="ship-logbook"] .rules-header{
  justify-content:space-between;
  border-bottom:1px dashed var(--rule);
}
/* ── witness-binder: hand-labeled feel ── */
.cover-page[data-shell-family="witness-binder"] .cover-designation,
.rules-left[data-shell-family="witness-binder"] .doc-label,
.endings-page[data-shell-family="witness-binder"] .doc-label{
  transform:rotate(-1.5deg);
}
.cover-page[data-shell-family="witness-binder"] .cover-designation{
  display:inline-flex;
  padding:2px 10px;
  border:2px solid var(--ink);
  border-radius:0;
  letter-spacing:.08em;
}
.cover-page[data-shell-family="witness-binder"] .cover-hero{
  text-align:left;
  max-width:none;
}
.cover-page[data-shell-family="witness-binder"] .cover-tagline{
  font-style:normal;
  border-top:1px solid color-mix(in srgb, var(--rule) 60%, transparent 40%);
  padding-top:6px;
  margin-top:6px;
}
.cover-page[data-shell-family="witness-binder"] .cover-colophon{
  border-top:2px solid var(--ink);
  padding-top:8px;
  margin-top:auto;
}
.rules-left[data-shell-family="witness-binder"] .rules-header{
  text-transform:uppercase;
  letter-spacing:.14em;
  font-weight:700;
}
/* ── ship-logbook: center-anchored nautical register ── */
.cover-page[data-shell-family="ship-logbook"]{
  border-radius:0;
}
.cover-page[data-shell-family="ship-logbook"] .cover-designation{
  text-align:center;
  width:100%;
  letter-spacing:.22em;
  font-size:6pt;
}
.cover-page[data-shell-family="ship-logbook"] .cover-hero{
  text-align:center;
  align-items:center;
}
.cover-page[data-shell-family="ship-logbook"] .cover-title{
  letter-spacing:.06em;
}
.cover-page[data-shell-family="ship-logbook"] .cover-rule{
  width:100%;
  max-width:none;
  border-top-style:double;
  border-top-width:3px;
}
.cover-page[data-shell-family="ship-logbook"] .cover-tagline{
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:6pt;
  font-style:normal;
}
.cover-page[data-shell-family="ship-logbook"] .cover-colophon{
  text-align:center;
  border-top:1px dashed var(--rule);
  padding-top:6px;
  margin-top:auto;
}
.rules-left[data-shell-family="ship-logbook"] .rules-header,
.gauge-log-page[data-shell-family="ship-logbook"] .rules-header{
  justify-content:space-between;
  border-bottom:1px dashed var(--rule);
}
/* ── household-archive: intimate domestic register ── */
.cover-page[data-shell-family="household-archive"] .cover-hero{
  text-align:center;
  align-items:center;
}
.cover-page[data-shell-family="household-archive"] .cover-title{
  font-style:italic;
}
.cover-page[data-shell-family="household-archive"] .cover-designation{
  text-align:center;
  width:100%;
  font-size:5.5pt;
  letter-spacing:.2em;
  text-transform:uppercase;
  opacity:.6;
}
.cover-page[data-shell-family="household-archive"] .cover-rule{
  width:40%;
  margin:6px auto 0;
}
.cover-page[data-shell-family="household-archive"] .cover-tagline{
  font-style:italic;
  text-align:center;
}
.cover-page[data-shell-family="household-archive"] .cover-colophon{
  text-align:center;
  font-style:italic;
  opacity:.7;
  margin-top:auto;
}
.rules-left[data-shell-family="household-archive"] .rules-title{
  font-style:italic;
}
/* ── devotional-manual: centered liturgical register ── */
.cover-page[data-shell-family="devotional-manual"] .cover-title,
.endings-page[data-shell-family="devotional-manual"] .endings-title{
  text-align:center;
  font-style:italic;
}
.cover-page[data-shell-family="devotional-manual"] .cover-hero{
  text-align:center;
  align-items:center;
}
.cover-page[data-shell-family="devotional-manual"] .cover-designation{
  text-align:center;
  width:100%;
  font-size:5pt;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.cover-page[data-shell-family="devotional-manual"] .cover-rule{
  width:30%;
  margin:4px auto 0;
  border-top-style:dotted;
}
.cover-page[data-shell-family="devotional-manual"] .cover-colophon{
  text-align:center;
  font-style:italic;
  margin-top:auto;
}
.sealed-page[data-shell-family="devotional-manual"],
.endings-page[data-shell-family="devotional-manual"]{
  background:linear-gradient(180deg, rgba(246,240,227,.98) 0%, rgba(235,226,208,.98) 100%);
}
/* ── technical-manual: mono procedural register ── */
.cover-page[data-shell-family="technical-manual"] .cover-title,
.rules-left[data-shell-family="technical-manual"] .rules-title,
.password-assembly-page[data-shell-family="technical-manual"] .password-assembly-title{
  font-family:var(--mono);
  font-style:normal;
}
.gauge-log-page[data-shell-family="technical-manual"] .password-log-grid,
.password-assembly-page[data-shell-family="technical-manual"] .password-assembly-grid{
  gap:6px;
}
/* ── field-survey (default): left-aligned field report register ── */
.cover-page[data-shell-family="field-survey"] .cover-designation{
  display:inline-flex;
  padding:1px 6px;
  border-bottom:1.5px solid color-mix(in srgb, var(--ink) 40%, transparent 60%);
  font-size:5.5pt;
  letter-spacing:.14em;
}
.cover-page[data-shell-family="field-survey"] .cover-hero{
  text-align:left;
}
.cover-page[data-shell-family="field-survey"] .cover-colophon{
  border-top:1px solid color-mix(in srgb, var(--rule) 50%, transparent 50%);
  padding-top:6px;
  margin-top:auto;
}
.cover-hero{
  display:flex;
  flex-direction:column;
  max-width:92%;
}
.cover-designation{
  font-size:7pt;
  color:var(--theme-designation-color,var(--accent));
  margin-bottom:8px;
  background:var(--theme-designation-fill,transparent);
  border:1px solid var(--theme-designation-border,transparent);
  padding:var(--theme-designation-padding,0);
  opacity:var(--theme-designation-opacity,1);
  text-transform:var(--theme-designation-transform,uppercase);
}
.cover-subtitle{
  font-family:var(--mono);
  font-size:6.2pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.cover-packet-meta{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
  margin:0 0 10px;
}
.cover-packet-row{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:5px 6px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 70%, transparent 30%);
  background:color-mix(in srgb, var(--paper) 90%, white 10%);
}
.cover-packet-label{
  font-family:var(--mono);
  font-size:4.8pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.cover-packet-value{
  font-family:var(--mono);
  font-size:5.5pt;
  line-height:1.25;
  color:var(--ink);
  text-transform:uppercase;
}
.cover-art{
  margin:0 0 12px;
  max-width:92%;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 62%, transparent 38%);
  padding:8px;
  background:color-mix(in srgb, var(--paper) 88%, white 12%);
}
.cover-art svg{
  width:100%;
  height:auto;
  display:block;
  stroke:var(--ink);
  fill:none;
}
.cover-art-text{
  margin:0;
  font-family:var(--mono);
  font-size:5.6pt;
  line-height:1.35;
  color:var(--ink);
  white-space:pre-wrap;
}
.cover-art-caption{
  margin-top:6px;
  font-family:var(--mono);
  font-size:5pt;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--muted);
}
.cover-title{
  font-size:28pt;
  line-height:1.05;
  color:var(--ink);
  margin-bottom:12px;
}
.cover-tagline{
  font-style:italic;
  font-size:9pt;
  color:var(--muted);
  line-height:1.5;
  margin-bottom:32px;
  max-width:75%;
}
.cover-rule{
  width:40px;
  height:2px;
  background:var(--theme-cover-rule,var(--accent));
  margin-bottom:var(--theme-cover-rule-gap,16px);
}
.cover-colophon{
  font-family:var(--mono);
  font-size:6pt;
  letter-spacing:.12em;
  color:var(--muted);
  line-height:1.8;
}

.doc-label{
  font-family:var(--mono);
  font-size:5.8pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:5px;
}

.continuation-label{
  color:var(--muted);
}

.chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.chip{
  font-family:var(--mono);
  font-size:6pt;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:4px 8px;
  border:1px solid var(--rule);
  border-radius:999px;
  color:var(--ink);
}

.chip-muted{
  color:var(--muted);
  border-color:rgba(24,23,20,.18);
  background:rgba(255,255,255,.38);
}

/* ══════════════════════════════════════════════════════════════
   RULES SPREAD (LEFT: BRIEFING · RIGHT: PASSWORD LOG)
   ══════════════════════════════════════════════════════════════ */
.rules-left{
  padding:4px 6px 0 6px;
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
}
.rules-left[data-shell-family="classified-packet"]{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 94%, white 6%), color-mix(in srgb, var(--warm) 97%, white 3%)),
    repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 20px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 20px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 21px
    );
}
.rules-header{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-size:7pt;
  color:var(--muted);
  padding-bottom:6px;
  border-bottom:1.5px solid var(--theme-header-border,var(--ink));
  margin-bottom:14px;
}
.rules-title{
  font-size:16pt;
  line-height:1.15;
  color:var(--ink);
  margin-bottom:10px;
}
.rules-sidecar{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 10px;
  padding:6px 8px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 72%, transparent 28%);
  background:color-mix(in srgb, var(--paper) 91%, white 9%);
}
.rules-sidecar-item{
  flex:1 1 140px;
  font-family:var(--mono);
  font-size:5.6pt;
  line-height:1.35;
  color:var(--ink);
}
.rules-sidecar-chip{
  align-self:flex-start;
  padding:2px 6px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 80%, transparent 20%);
  font-family:var(--mono);
  font-size:5.1pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.rules-body{
  font-size:8pt;
  color:var(--ink);
  flex:1;
}
.rules-section{
  break-inside:avoid;
  page-break-inside:avoid;
  margin-bottom:8px;
}
.rules-body p{
  margin-bottom:6px;
}
.rules-body h3{
  font-size:7pt;
  color:var(--accent);
  margin:10px 0 4px;
}
.rules-left[data-shell-family="classified-packet"] .rules-sidecar{
  gap:4px;
  margin:0 0 8px;
  padding:4px 6px;
}
.rules-left[data-shell-family="classified-packet"] .rules-sidecar-item{
  font-size:4.9pt;
  line-height:1.24;
}
.rules-left[data-shell-family="classified-packet"] .rules-body{
  columns:2;
  column-gap:16px;
  font-size:6.8pt;
  line-height:1.36;
}
.rules-left[data-shell-family="classified-packet"] .rules-section{
  margin-bottom:7px;
}
.rules-left[data-shell-family="classified-packet"] .rules-body h3{
  margin:0 0 3px;
}
.rules-left[data-layout-variant="compact"]{
  padding:3px 5px 0 5px;
}
.rules-left[data-layout-variant="compact"] .rules-body{
  font-size:7.6pt;
  line-height:1.56;
}
.rules-left[data-layout-variant="compact"] .rules-body p{
  margin-bottom:6px;
}
.rules-left[data-layout-variant="dense"]{
  padding:2px 4px 0 4px;
}
.rules-left[data-layout-variant="dense"] .rules-title{
  font-size:14.5pt;
}
.rules-left[data-layout-variant="dense"] .rules-body{
  font-size:7.2pt;
  line-height:1.48;
}
.rules-left[data-layout-variant="dense"] .rules-body h3{
  margin:8px 0 3px;
}
.rules-left[data-shell-family="classified-packet"][data-layout-variant="dense"] .rules-body{
  font-size:6.3pt;
  line-height:1.28;
  column-gap:13px;
}
.rules-left[data-shell-family="classified-packet"][data-layout-variant="dense"] .rules-title{
  font-size:12.8pt;
  margin-bottom:5px;
}

/* Password Record (rules right) */
.rules-right{
  padding:8px 8px 4px 8px;
  display:flex;
  flex-direction:column;
}
.sealed-page{
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:18px;
}
.sealed-page[data-shell-family="classified-packet"]{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 94%, white 6%), color-mix(in srgb, var(--warm) 97%, white 3%));
}
.sealed-lock{
  font-size:28pt;
  line-height:1;
  opacity:.55;
}
.sealed-card{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:220px;
  max-width:280px;
  padding:10px 12px;
  border:1.5px solid var(--ink);
  background:color-mix(in srgb, var(--paper) 90%, white 10%);
}
.sealed-card-marking{
  font-family:var(--mono);
  font-size:5.2pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
}
.sealed-card-title{
  font-family:var(--mono);
  font-size:8.6pt;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink);
}
.sealed-card-note{
  font-family:var(--serif);
  font-size:6.4pt;
  line-height:1.35;
  font-style:italic;
  color:var(--muted);
}
.sealed-title{
  font-family:var(--mono);
  font-size:11pt;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--ink);
}
.sealed-body{
  max-width:72%;
}
.sealed-body p{
  font-family:var(--serif);
  font-style:italic;
  font-size:10pt;
  line-height:1.6;
  color:var(--muted);
}
.rules-right[data-layout-variant="compact"]{
  padding:6px 6px 2px 6px;
}
.rules-right[data-layout-variant="compact"] .sealed-body{
  max-width:84%;
}
.gauge-log-page .rules-header{
  letter-spacing:.22em;
}
.gauge-log-page[data-layout-variant="compact"] .password-log-grid{
  gap:12px;
}
.gauge-log-page[data-layout-variant="compact"] .password-log-row{
  padding-bottom:9px;
}
.gauge-log-page[data-layout-variant="compact"] .password-log-instruction{
  font-size:5.6pt;
}
.gauge-log-page[data-layout-variant="dense"] .password-log-grid{
  gap:8px;
}
.gauge-log-page[data-layout-variant="dense"] .password-log-row{
  padding-bottom:6px;
}
.gauge-log-page[data-layout-variant="dense"] .password-log-instruction{
  font-size:5.4pt;
}
.gauge-log-page[data-layout-variant="dense"] .password-log-subtitle{
  margin-bottom:12px;
}
.gauge-log-page[data-layout-variant="tight"] .password-log-grid{
  gap:2px;
}
.gauge-log-page[data-layout-variant="tight"] .password-log-row{
  padding-bottom:2px;
}
.gauge-log-page[data-layout-variant="tight"] .password-log-instruction{
  font-size:5pt;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.gauge-log-page[data-layout-variant="tight"] .password-log-box{
  width:22px;
  height:22px;
}
.gauge-log-page[data-layout-variant="tight"] .password-log-subtitle{
  margin-bottom:4px;
  font-size:7pt;
}
.gauge-log-page[data-layout-variant="tight"] .password-final{
  padding:6px 0;
}
.gauge-log-page[data-layout-variant="tight"] .rules-header{
  margin-bottom:8px;
}
.password-log-title{
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:4px;
}
.password-log-subtitle{
  font-family:var(--serif);
  font-style:italic;
  font-size:7.5pt;
  color:var(--muted);
  margin-bottom:20px;
}
.password-log-grid{
  display:flex;
  flex-direction:column;
  gap:16px;
  flex:1;
}
.password-log-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--rule);
}
.password-log-week{
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  min-width:60px;
}
.password-log-box{
  width:28px;
  height:28px;
  border:1.5px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
}
.password-log-instruction{
  font-family:var(--mono);
  font-size:6pt;
  color:var(--muted);
  letter-spacing:.06em;
  flex:1;
}

/* Final password assembly row */
.password-final{
  margin-top:auto;
  padding:12px 0;
  border-top:2px solid var(--ink);
}
.password-final-label{
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:8px;
}
.password-final-boxes,
.password-box-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.password-final-box{
  width:28px;
  height:28px;
  border:2px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
}

/* ══════════════════════════════════════════════════════════════
   WORKOUT LEFT PAGE (SESSION CARDS)
   Adapted from cartographer-week1.html prototype (proven fit)
   ══════════════════════════════════════════════════════════════ */
.workout-left{
  padding:4px 4px 0 4px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  height:100%;
}

/* Page Header */
.page-header{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  padding-bottom:6px;
  border-bottom:1.5px solid var(--ink);
  margin-bottom:10px;
}
.page-header .page-num{
  font-size:7.5pt;
  color:var(--ink);
}
.running-title{
  overflow-wrap:anywhere;
}

/* Week ID */
.week-id{
  margin-bottom:4px;
}
.week-kicker{
  font-family:var(--mono);
  font-size:6pt;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--accent);
  display:block;
  margin-bottom:4px;
  overflow-wrap: anywhere;
}
.week-title{
  font-family:var(--display);
  font-style:italic;
  font-size:16pt;
  line-height:1.1;
  color:var(--ink);
  display:block;
  margin-bottom:3px;
}
.week-subtitle{
  font-family:var(--serif);
  font-size:7.5pt;
  font-style:italic;
  color:var(--muted);
  display:block;
  margin-bottom:2px;
}
.week-meta{
  font-family:var(--mono);
  font-size:6pt;
  color:var(--muted);
  letter-spacing:.1em;
  display:block;
  margin-bottom:8px;
}

/* Session Cards */
.session-cards{
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
  min-height:0;
}
.session-cards > .session-card{
  flex:1 1 0;
}

.session-card{
  background:var(--theme-session-fill,var(--card));
  border:1px solid var(--theme-session-border,var(--fog));
  border-radius:var(--theme-panel-radius,4px);
  box-shadow:var(--theme-panel-shadow,none);
  padding:8px 10px 9px;
  display:flex;
  flex-direction:column;
  gap:3px;
  min-height:0;
  overflow:hidden;
}
.workout-left[data-page-compaction="1"] .session-cards{
  gap:7px;
}
.workout-left[data-page-compaction="1"] .session-card{
  padding:7px 10px 8px;
  gap:2px;
}
.workout-left[data-page-compaction="1"] .story-prompt{
  font-size:7.2pt;
  line-height:1.4;
}
.workout-left[data-page-compaction="2"] .session-cards{
  gap:6px;
}
.workout-left[data-page-compaction="2"] .session-card{
  padding:6px 9px 7px;
  gap:2px;
}
.workout-left[data-page-compaction="2"] .session-header{
  padding-bottom:3px;
}
.workout-left[data-page-compaction="2"] .story-prompt{
  font-size:7pt;
  line-height:1.35;
}
.workout-left[data-page-compaction="3"] .session-cards{
  gap:5px;
}
.workout-left[data-page-compaction="3"] .session-card{
  padding:4px 8px 5px;
  gap:1px;
}
.workout-left[data-page-compaction="3"] .session-header{
  padding-bottom:2px;
}
.workout-left[data-page-compaction="3"] .story-prompt{
  font-size:6.6pt;
  line-height:1.28;
}
.workout-left[data-page-compaction="3"] .session-meta{
  min-height:6px;
}
.workout-left[data-page-compaction="3"] .session-body{
  gap:2px;
}
.workout-left[data-page-compaction="3"] .notes-box{
  padding:3px 6px;
}
.workout-left[data-page-compaction="4"] .session-cards,
.workout-left[data-page-compaction="5"] .session-cards{
  gap:4px;
}
.workout-left[data-page-compaction="4"] .session-card,
.workout-left[data-page-compaction="5"] .session-card{
  padding:4px 7px 4px;
  gap:1px;
}
.workout-left[data-page-compaction="4"] .session-header,
.workout-left[data-page-compaction="5"] .session-header{
  font-size:6.6pt;
  padding-bottom:2px;
}
.workout-left[data-page-compaction="4"] .story-prompt,
.workout-left[data-page-compaction="5"] .story-prompt{
  font-size:6.35pt;
  line-height:1.24;
  padding:1px 0 1px 8px;
}
.workout-left[data-page-compaction="4"] .session-meta,
.workout-left[data-page-compaction="5"] .session-meta{
  min-height:5px;
}
.workout-left[data-page-compaction="4"] .session-fragment-ref,
.workout-left[data-page-compaction="5"] .session-fragment-ref{
  font-size:6.2pt;
}
.workout-left[data-page-compaction="4"] .session-body,
.workout-left[data-page-compaction="5"] .session-body{
  gap:2px;
}

.session-header{
  font-size:7pt;
  color:var(--ink);
  padding-bottom:4px;
  border-bottom:1px solid var(--theme-session-separator,var(--rule));
  font-weight:700;
}

/* Story Prompt */
.story-prompt{
  font-size:7.5pt;
  font-style:italic;
  color:var(--muted);
  border-left:1.5px solid var(--theme-prompt-border,var(--accent));
  padding:2px 0 2px 10px;
  background:var(--theme-prompt-fill,transparent);
  border-radius:0 3px 3px 0;
}

.session-meta{
  min-height:7px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.session-fragment-ref{
  font-family:var(--mono);
  font-size:7pt;
  color:var(--muted);
  letter-spacing:.1em;
  text-align:right;
  min-height:1em;
}

.session-body{
  display:flex;
  flex-direction:column;
  gap:3px;
  flex:1 1 auto;
  min-height:0;
}

/* Fragment Reference (shared class) */
.frag-ref{
  font-family:var(--mono);
  font-size:7pt;
  color:var(--muted);
  letter-spacing:.1em;
  text-align:right;
  margin:4px 0;
}

/* Exercise Table */
.exercise-table{
  --exercise-row-gap-block:5px;
  --exercise-row-padding-y:2px;
  --exercise-name-gap:1.2ch;
  --exercise-track-gap:4px;
  --exercise-load-width:44px;
  --rep-box-size:calc(16px * 1.07);
  width:100%;
  display:flex;
  flex-direction:column;
  gap:var(--exercise-row-gap-block);
}
.exercise-row{
  display:grid;
  grid-template-columns:minmax(0, var(--exercise-name-width, 120px)) var(--exercise-load-width) minmax(18px, 1fr) auto;
  align-items:end;
  width:100%;
  min-height:calc(var(--rep-box-size) + (var(--exercise-row-padding-y) * 2));
  padding-block:var(--exercise-row-padding-y);
}
.exercise-row[data-has-load="false"]{
  grid-template-columns:minmax(0, var(--exercise-name-width, 120px)) 0 minmax(18px, 1fr) auto;
}
.exercise-name-cell{
  min-width:0;
  align-self:stretch;
  padding-right:var(--exercise-name-gap);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:2px;
}
.exercise-name {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 8pt;
  color: var(--ink);
  white-space: nowrap;
}
.exercise-instruction{
  font-family:var(--mono);
  font-size:5.15pt;
  line-height:1.24;
  color:rgba(24,23,20,.54);
  white-space:normal;
  overflow-wrap:anywhere;
  max-width:100%;
}
.exercise-weight-cell {
  width:var(--exercise-load-width);
  align-self:end;
}
.exercise-row[data-has-load="false"] .exercise-weight-cell{
  width:0;
  overflow:hidden;
}
.exercise-load-entry{
  display:flex;
  align-items:flex-end;
  width:100%;
  font-family:var(--mono);
  font-size:7.25pt;
  color:var(--ink);
  letter-spacing:.04em;
}
.exercise-load-entry.is-empty{
  min-height:14px;
}
.exercise-row[data-has-load="false"] .exercise-load-entry{
  width:0;
  min-height:0;
}
.exercise-load-line{
  width:100%;
  height:14px;
  border-bottom:1px solid var(--theme-field-rule,rgba(24,23,20,.42));
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  gap:3px;
  padding-right:0;
}
.exercise-load-value{
  font-size:6.15pt;
  color:rgba(24,23,20,.68);
  letter-spacing:.02em;
  white-space:nowrap;
}
.exercise-load-unit{
  font-size:6.1pt;
  color:rgba(24,23,20,.66);
  text-transform:lowercase;
  white-space:nowrap;
}
.exercise-dots-cell{
  min-width:18px;
  padding-left:var(--exercise-track-gap);
  align-self:end;
}
.exercise-row[data-has-load="false"] .exercise-dots-cell{
  padding-left:0;
}
.exercise-dots{
  width:100%;
  border-bottom:1px dotted var(--theme-field-rule,var(--rule));
  height:1px;
  margin-bottom:1px;
}
.exercise-reps-cell{
  padding-left:var(--exercise-track-gap);
  align-self:end;
}
.rep-boxes{
  display:flex;
  gap:4px;
  align-items:flex-end;
  justify-content:flex-end;
}
.rep-box{
  width:var(--rep-box-size);
  height:var(--rep-box-size);
  border:1.5px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:var(--paper);
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.rep-box-target{
  font-family:var(--mono);
  font-size:5.6pt;
  line-height:1;
  color:rgba(24,23,20,.18);
  letter-spacing:0;
  text-transform:none;
  pointer-events:none;
}

/* Notes Box */
.notes-box{
  min-height:var(--notes-box-height, 30px);
  border:1px solid var(--theme-box-border,var(--rule));
  border-radius:3px;
  background:var(--paper-2);
  padding:4px 8px;
  margin-top:2px;
  position:relative;
  overflow:hidden;
  flex:1 1 auto;
}
.workout-left[data-page-compaction="4"] .exercise-table,
.workout-left[data-page-compaction="5"] .exercise-table{
  --exercise-row-gap-block:4px;
  --exercise-row-padding-y:1px;
  --exercise-track-gap:3px;
}
.workout-left[data-page-compaction="4"] .exercise-name,
.workout-left[data-page-compaction="5"] .exercise-name{
  font-size:7.6pt;
}
.workout-left[data-page-compaction="4"] .rep-box-target,
.workout-left[data-page-compaction="5"] .rep-box-target{
  font-size:5.1pt;
}
.workout-left[data-page-compaction="4"] .notes-box,
.workout-left[data-page-compaction="5"] .notes-box{
  padding:2px 6px;
}
.session-card[data-density-variant="compact"]{
  padding:7px 9px 7px;
  gap:2px;
}
.session-card[data-density-variant="compact"] .session-header{
  font-size:6.8pt;
  padding-bottom:3px;
}
.session-card[data-density-variant="compact"] .story-prompt{
  font-size:7pt;
  line-height:1.28;
  padding:2px 0 2px 8px;
}
.session-card[data-density-variant="compact"] .exercise-table{
  --exercise-row-gap-block:4px;
  --exercise-row-padding-y:1px;
  --exercise-track-gap:3px;
}
.session-card[data-density-variant="compact"] .exercise-name{
  font-size:7.6pt;
}
.session-card[data-density-variant="compact"] .exercise-instruction{
  font-size:4.95pt;
}
.session-card[data-density-variant="compact"] .rep-box-target{
  font-size:5.1pt;
}
.session-card[data-density-variant="compact"] .notes-box{
  padding:2px 6px;
}
.session-card[data-density-variant="dense"]{
  padding:5px 8px 5px;
  gap:1px;
}
.session-card[data-density-variant="dense"] .session-header{
  font-size:6.45pt;
  padding-bottom:2px;
}
.session-card[data-density-variant="dense"] .story-prompt{
  font-size:6.35pt;
  line-height:1.2;
  padding:1px 0 1px 7px;
}
.session-card[data-density-variant="dense"] .session-meta{
  min-height:6px;
}
.session-card[data-density-variant="dense"] .session-fragment-ref{
  font-size:6.3pt;
}
.session-card[data-density-variant="dense"] .session-body{
  gap:2px;
}
.session-card[data-density-variant="dense"] .exercise-table{
  --exercise-row-gap-block:3px;
  --exercise-row-padding-y:1px;
  --exercise-track-gap:2px;
  --exercise-load-width:40px;
  --rep-box-size:15px;
}
.session-card[data-density-variant="dense"] .exercise-name{
  font-size:7.2pt;
}
.session-card[data-density-variant="dense"] .exercise-instruction{
  font-size:4.8pt;
  line-height:1.18;
}
.session-card[data-density-variant="dense"] .exercise-load-entry{
  font-size:6.6pt;
}
.session-card[data-density-variant="dense"] .rep-boxes{
  gap:3px;
}
.session-card[data-density-variant="dense"] .rep-box-target{
  font-size:4.8pt;
}
.session-card[data-density-variant="dense"] .notes-box{
  padding:1px 5px;
}
.session-card[data-density-variant="tight"]{
  padding:4px 7px 4px;
  gap:1px;
}
.session-card[data-density-variant="tight"] .session-header{
  font-size:6.1pt;
  padding-bottom:1px;
}
.session-card[data-density-variant="tight"] .story-prompt{
  font-size:6.35pt;
  line-height:1.22;
  padding:1px 0 1px 6px;
}
.session-card[data-density-variant="tight"] .session-meta{
  min-height:5px;
}
.session-card[data-density-variant="tight"] .session-fragment-ref{
  font-size:6pt;
}
.session-card[data-density-variant="tight"] .session-body{
  gap:1px;
}
.session-card[data-density-variant="tight"] .exercise-table{
  --exercise-row-gap-block:2px;
  --exercise-row-padding-y:0px;
  --exercise-track-gap:2px;
  --exercise-load-width:38px;
  --rep-box-size:14px;
}
.session-card[data-density-variant="tight"] .exercise-name{
  font-size:6.9pt;
}
.session-card[data-density-variant="tight"] .exercise-instruction{
  font-size:4.65pt;
  line-height:1.16;
}
.session-card[data-density-variant="tight"] .exercise-load-entry{
  font-size:6.2pt;
}
.session-card[data-density-variant="tight"] .rep-boxes{
  gap:2px;
}
.session-card[data-density-variant="tight"] .rep-box-target{
  font-size:4.5pt;
}
.session-card[data-density-variant="tight"] .notes-box{
  padding:1px 4px;
}
.workout-left[data-card-count="1"] .session-cards{
  flex:0 0 auto;
}
.workout-left[data-card-count="1"] .session-card{
  flex:0 0 auto;
  padding:8px 10px 10px;
  gap:3px;
}
.workout-left[data-card-count="1"] .session-header{
  font-size:7pt;
  padding-bottom:4px;
}
.workout-left[data-card-count="1"] .story-prompt{
  font-size:7.4pt;
  line-height:1.38;
  padding:2px 0 2px 10px;
}
.workout-left[data-card-count="1"] .session-meta{
  min-height:7px;
}
.workout-left[data-card-count="1"] .session-body{
  gap:3px;
}
.workout-left[data-card-count="1"] .notes-box{
  min-height:260px;
  padding:4px 8px;
}
.notes-box::before{
  content:'NOTES';
  font-family:var(--mono);
  font-size:5.5pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--rule);
  position:absolute;
  top:4px;
  left:8px;
}

/* Full-page notes sheets */
.page-frame.page-notes-grid{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:4px 6px 2px;
}
.notes-grid-atom{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-height:0;
}
.notes-grid-heading{
  margin:0;
  font-family:var(--mono);
  font-size:6pt;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
}
.notes-grid-sheet{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  position:relative;
  border:1px solid var(--theme-box-border,var(--rule));
  border-radius:3px;
  background:linear-gradient(180deg, rgba(246,242,233,.94) 0%, rgba(240,234,223,.98) 100%);
  box-shadow:inset 0 0 0 1px rgba(24,23,20,.03);
  overflow:hidden;
  padding:14px 14px 12px;
}
.notes-grid-dots,
.notes-grid-lined,
.notes-grid-graph,
.notes-grid-blank{
  flex:1;
  min-height:0;
}
.notes-grid-dots,
.notes-grid-graph{
  display:grid;
  grid-template-columns:repeat(var(--notes-grid-cols), minmax(0, 1fr));
  grid-template-rows:repeat(var(--notes-grid-rows), minmax(0, 1fr));
}
.notes-grid-dot{
  width:1.5px;
  height:1.5px;
  border-radius:999px;
  background:rgba(78,96,112,.16);
  justify-self:center;
  align-self:center;
}
.notes-grid-lined{
  display:grid;
  grid-template-rows:repeat(28, minmax(0, 1fr));
}
.notes-grid-line{
  border-bottom:1px solid rgba(78,96,112,.12);
}
.notes-grid-graph{
  background-image:
    linear-gradient(rgba(78,96,112,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78,96,112,.08) 1px, transparent 1px);
  background-size:calc(100% / var(--notes-grid-cols)) calc(100% / var(--notes-grid-rows));
}
.notes-grid-cell{
  border-right:1px solid rgba(78,96,112,.08);
  border-bottom:1px solid rgba(78,96,112,.08);
}
.notes-grid-blank{
  background:
    radial-gradient(circle at center, rgba(78,96,112,.14) 0 0.8px, transparent 0.9px) 0 0 / 18px 18px;
  opacity:.55;
}

.week-progress{
  margin-top:auto;
  padding-top:8px;
  display:flex;
  align-items:center;
  gap:8px;
}
.workout-left[data-card-count="3"] .week-progress{
  padding-top:6px;
}
.workout-left[data-card-count="3"][data-page-compaction="4"] .week-progress,
.workout-left[data-card-count="3"][data-page-compaction="5"] .week-progress{
  padding-top:4px;
}
.boss-right > .week-progress{
  margin-top:8px;
  padding-top:0;
}

.week-progress-dots{
  display:flex;
  align-items:center;
  gap:4px;
}

.week-progress-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  border:1px solid rgba(24,23,20,.4);
  background:transparent;
}

.week-progress-dot[data-state="active"]{
  background:var(--accent);
  border-color:var(--accent);
}

.week-progress-label{
  font-family:var(--mono);
  font-size:5.4pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
}

/* ══════════════════════════════════════════════════════════════
   FIELD OPS RIGHT PAGE (MAP + CIPHER + ORACLE)
   Adapted from cartographer-week1.html prototype (proven fit)
   ══════════════════════════════════════════════════════════════ */
.field-ops-right{
  padding:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  height:100%;
}
.cipher-zone::before{
  content:var(--cipher-attachment-label);
  display:block;
  margin-bottom:3px;
  font-family:var(--theme-label-family,var(--mono));
  font-size:5.4pt;
  font-style:var(--theme-label-style,normal);
  font-weight:var(--theme-label-weight,400);
  letter-spacing:var(--theme-label-spacing,.18em);
  text-transform:var(--theme-label-case,uppercase);
  color:var(--theme-doc-badge-color,var(--accent));
}

/* Right Page Header */
.rp-header{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-family:var(--mono);
  font-size:5.7pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  padding-bottom:2px;
  border-bottom:1px solid var(--theme-header-border,var(--rule));
  margin-bottom:3px;
}
.ops-incident-strip{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin:0 0 6px;
}
.ops-incident-chip{
  padding:2px 6px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 78%, transparent 22%);
  background:color-mix(in srgb, var(--paper) 92%, white 8%);
  font-family:var(--mono);
  font-size:4.9pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.ops-directive-board{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin:0 0 6px;
  padding:6px 7px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 72%, transparent 28%);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 95%, white 5%), color-mix(in srgb, var(--paper-2) 94%, white 6%));
}
.ops-directive-meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.ops-directive-chip{
  padding:2px 5px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 72%, transparent 28%);
  font-family:var(--mono);
  font-size:4.8pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.ops-directive-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3px 5px;
}
.ops-directive-item{
  font-family:var(--body);
  font-size:6.1pt;
  line-height:1.35;
  min-height:18px;
}

/* ── rp-content: flex-column row container ──────────────────────────── */
.rp-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-height: 0;
  gap: 5px;
}

.rp-row {
  min-height: 0;
}

.rp-row--full {
  display: block;
  min-height: 0;
}

.rp-row--halves {
  display: flex;
  flex-direction: row;
  gap: 6px;
  align-items: flex-start;
  min-height: 0;
}

.rp-row--halves > .rp-row-cell {
  flex: 1 1 0;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* Solo-surface map gets remaining vertical space */
.rp-content[data-solo-surface="map-panel"] .rp-row--full {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
}

/* Zone containers */
.cipher-zone{}
.map-zone{
  display:flex;
  flex-direction:column;
}
.oracle-zone{border-top:1px solid var(--rule);padding-top:3px;}
.oracle-zone{border-top-color:var(--theme-field-rule,var(--rule));}
.companion-zone{
  border-top:1px solid var(--rule);
  padding-top:6px;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-height:0;
}
.field-ops-right[data-shell-family="classified-packet"] .rp-header{
  border-bottom-width:2px;
}
.field-ops-right[data-shell-family="classified-packet"],
.fragment-page[data-shell-family="classified-packet"],
.boss-right[data-shell-family="classified-packet"]{
  --accent:#395a78;
  --rule:#97a3aa;
  --paper:#e3ded3;
  --paper-2:#d8d3c8;
  --warm:#dad5ca;
  --muted:#556169;
  background:
    linear-gradient(180deg, color-mix(in srgb, white 82%, var(--paper) 18%), color-mix(in srgb, white 70%, var(--paper-2) 30%)),
    repeating-linear-gradient(
      90deg,
      transparent,
      transparent 32px,
      color-mix(in srgb, var(--rule) 10%, transparent 90%) 32px,
      color-mix(in srgb, var(--rule) 10%, transparent 90%) 33px
    );
}
.field-ops-right[data-shell-family="classified-packet"] .rp-content{
  gap:6px 7px;
}
.field-ops-right[data-shell-family="classified-packet"] .cipher-zone,
.field-ops-right[data-shell-family="classified-packet"] .map-zone,
.field-ops-right[data-shell-family="classified-packet"] .oracle-zone,
.field-ops-right[data-shell-family="classified-packet"] .companion-zone{
  position:relative;
  padding:5px 6px 6px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 72%, transparent 28%);
  background:color-mix(in srgb, var(--paper) 92%, white 8%);
}
.field-ops-right[data-shell-family="classified-packet"] .cipher-zone::before,
.field-ops-right[data-shell-family="classified-packet"] .map-zone::before,
.field-ops-right[data-shell-family="classified-packet"] .oracle-zone::before,
.field-ops-right[data-shell-family="classified-packet"] .companion-zone::before{
  content:"";
  position:absolute;
  inset:5px;
  border:1px solid color-mix(in srgb, var(--rule) 12%, transparent 88%);
  pointer-events:none;
}
.field-ops-right[data-shell-family="classified-packet"] .oracle-zone{
  border-top:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 72%, transparent 28%);
}
.field-ops-right[data-shell-family="classified-packet"] .companion-zone{
  padding-top:5px;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-zone .companion-component{
  flex:1;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-zone:only-child{
  min-height:100%;
}
.field-ops-right[data-board-state-mode="node-graph"] .map-zone,
.field-ops-right[data-board-state-mode="timeline-reconstruction"] .map-zone,
.field-ops-right[data-board-state-mode="testimony-matrix"] .oracle-zone,
.field-ops-right[data-board-state-mode="ledger-board"] .cipher-zone{
  padding:5px 6px 6px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 78%, transparent 22%);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 92%, white 8%), color-mix(in srgb, var(--paper-2) 94%, white 6%));
}
.field-ops-right[data-board-state-mode="timeline-reconstruction"] .map-zone{
  position:relative;
}
.field-ops-right[data-board-state-mode="timeline-reconstruction"] .map-zone::after{
  content:"";
  position:absolute;
  left:9px;
  right:9px;
  bottom:-3px;
  border-bottom:1px dashed color-mix(in srgb, var(--accent) 55%, transparent 45%);
}
.field-ops-right[data-board-state-mode="testimony-matrix"] .oracle-zone{
  border-top:none;
  padding-top:5px;
}
.field-ops-right[data-board-state-mode="testimony-matrix"] .oracle-entries{
  grid-template-columns:1fr;
  gap:1px 0;
}
.field-ops-right[data-board-state-mode="testimony-matrix"] .oracle-entry{
  padding:3px 0;
}
.field-ops-right[data-board-state-mode="testimony-matrix"] .cipher-zone{
  border-left:2px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 72%, transparent 28%);
  padding-left:7px;
}
.field-ops-right[data-board-state-mode="node-graph"] .map-network{
  min-height:260px;
  background:
    radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--accent) 10%, transparent 90%), transparent 24%),
    color-mix(in srgb, var(--paper) 92%, white 8%);
}
.field-ops-right[data-board-state-mode="node-graph"] .map-node{
  min-width:44px;
  max-width:84px;
  box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 10%, transparent 90%);
}
.field-ops-right[data-shell-family="classified-packet"] .map-grid{
  gap:3px;
}
.field-ops-right[data-shell-family="classified-packet"] .map-cell{
  min-height:34px;
}
.field-ops-right[data-shell-family="classified-packet"] .map-network{
  min-height:280px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 95%, white 5%), color-mix(in srgb, var(--paper-2) 94%, white 6%)),
    repeating-linear-gradient(90deg, transparent, transparent 35px, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 35px, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 36px);
}
.field-ops-right[data-shell-family="classified-packet"] .map-network::before{
  content:"";
  position:absolute;
  inset:8px;
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--accent) 22%, transparent 78%) 0 14px, transparent 14px calc(100% - 14px), color-mix(in srgb, var(--accent) 22%, transparent 78%) calc(100% - 14px) 100%),
    linear-gradient(color-mix(in srgb, var(--accent) 22%, transparent 78%) 0 14px, transparent 14px calc(100% - 14px), color-mix(in srgb, var(--accent) 22%, transparent 78%) calc(100% - 14px) 100%);
  opacity:.32;
  pointer-events:none;
}
.field-ops-right[data-shell-family="classified-packet"] .map-network::after{
  content:"TOPOLOGY SURFACE";
  position:absolute;
  top:9px;
  left:10px;
  font-family:var(--mono);
  font-size:4.7pt;
  letter-spacing:.18em;
  color:color-mix(in srgb, var(--accent) 56%, var(--paper) 44%);
  pointer-events:none;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-component{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 95%, white 5%), color-mix(in srgb, var(--paper-2) 95%, white 5%));
  justify-content:flex-start;
  position:relative;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="stress-track"]::before,
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="token-sheet"]::before{
  content:"ACTIVE TRACK";
  align-self:flex-end;
  font-family:var(--mono);
  font-size:4.5pt;
  letter-spacing:.18em;
  color:color-mix(in srgb, var(--accent) 52%, var(--paper) 48%);
}
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="token-sheet"]::before{
  content:"CLEARANCE TRACK";
}
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="stress-track"]::after,
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="token-sheet"]::after{
  content:"";
  display:block;
  min-height:42px;
  margin-top:auto;
  border-top:1px solid color-mix(in srgb, var(--rule) 28%, transparent 72%);
  background:
    linear-gradient(90deg, transparent, transparent calc(33.333% - 1px), color-mix(in srgb, var(--rule) 24%, transparent 76%) calc(33.333% - 1px), color-mix(in srgb, var(--rule) 24%, transparent 76%) 33.333%, transparent 33.333%, transparent calc(66.666% - 1px), color-mix(in srgb, var(--rule) 24%, transparent 76%) calc(66.666% - 1px), color-mix(in srgb, var(--rule) 24%, transparent 76%) 66.666%, transparent 66.666%),
    repeating-linear-gradient(to bottom, transparent, transparent 12px, color-mix(in srgb, var(--rule) 18%, transparent 82%) 12px, color-mix(in srgb, var(--rule) 18%, transparent 82%) 13px);
}
.field-ops-right[data-shell-family="classified-packet"] .map-title,
.field-ops-right[data-shell-family="classified-packet"] .puzzle-title,
.field-ops-right[data-shell-family="classified-packet"] .oracle-header,
.field-ops-right[data-shell-family="classified-packet"] .companion-title{
  font-family:var(--mono);
  letter-spacing:.16em;
}
.field-ops-right[data-shell-family="classified-packet"] .map-note,
.field-ops-right[data-shell-family="classified-packet"] .map-annotation,
.field-ops-right[data-shell-family="classified-packet"] .oracle-text,
.field-ops-right[data-shell-family="classified-packet"] .companion-body{
  font-family:var(--mono);
  letter-spacing:.01em;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-token{
  border-style:solid;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="stress-track"] .companion-body,
.field-ops-right[data-shell-family="classified-packet"] .companion-component[data-component-type="token-sheet"] .companion-body{
  max-width:42em;
}
.field-ops-right[data-shell-family="classified-packet"] .companion-overlay-window{
  background:
    linear-gradient(transparent 0, transparent calc(50% - 1px), color-mix(in srgb, var(--accent) 35%, transparent 65%) calc(50% - 1px), color-mix(in srgb, var(--accent) 35%, transparent 65%) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), color-mix(in srgb, var(--accent) 35%, transparent 65%) calc(50% - 1px), color-mix(in srgb, var(--accent) 35%, transparent 65%) calc(50% + 1px), transparent calc(50% + 1px));
}
.rp-content[data-solo-surface="map-panel"] .map-network{
  min-height:0;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"]{
  gap:2px;
  position:relative;
  padding-left:16px;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"]::before{
  content:"SECTOR GRID";
  position:absolute;
  left:0;
  top:2px;
  bottom:18px;
  width:13px;
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-family:var(--mono);
  font-size:4.7pt;
  letter-spacing:.18em;
  color:color-mix(in srgb, var(--accent) 58%, var(--paper) 42%);
  background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 9%, transparent 91%), color-mix(in srgb, var(--accent) 3%, transparent 97%));
  border-right:1px solid color-mix(in srgb, var(--rule) 28%, transparent 72%);
  padding-right:3px;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-title{
  margin-bottom:1px;
  font-size:6.3pt;
  letter-spacing:.16em;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network::before,
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network::after{
  display:none;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network-rail{
  display:none;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network[data-has-rail="true"] .map-network-svg,
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network[data-has-rail="true"] .map-network-nodes{
  left:0;
  width:100%;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network{
  min-height:0;
  border-width:1.5px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 95%, white 5%), color-mix(in srgb, var(--paper-2) 94%, white 6%)),
    repeating-linear-gradient(90deg, transparent, transparent 35px, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 35px, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 36px);
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network-legend{
  top:8px;
  bottom:auto;
  right:8px;
  left:auto;
  width:max-content;
  max-width:52%;
  justify-content:flex-end;
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-network-chip{
  background:color-mix(in srgb, white 82%, var(--paper) 18%);
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-note{
  margin-top:2px;
  padding:4px 6px 0;
  border-top:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 54%, transparent 46%);
}
.rp-content[data-solo-surface="map-panel"] .map-content[data-shell-family="classified-packet"][data-board-state-mode="node-graph"] .map-route-key{
  margin-top:3px;
}
.rp-content[data-solo-surface="map-panel"] .map-grid{
  grid-auto-rows:minmax(42px, 1fr);
}
.rp-content[data-solo-surface="map-panel"] .map-zone,
.rp-content[data-solo-surface="map-panel"] .map-content{
  flex:1;
}
.rp-content[data-solo-surface="tracker"] .companion-zone{
  border-top:none;
  padding-top:0;
}
.rp-content[data-solo-surface="tracker"] .companion-zone:only-child{
  min-height:100%;
}
.rp-content[data-solo-surface="tracker"] .companion-component{
  min-height:0;
  flex:1;
}
.board-worksheet{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-height:0;
  padding-top:4px;
}
.board-worksheet-lines{
  display:grid;
  gap:8px;
}
.board-worksheet-line{
  min-height:18px;
  border-bottom:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 62%, transparent 38%);
}
.board-worksheet-ledger{
  display:grid;
  gap:0;
  border-top:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 52%, transparent 48%);
  border-left:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 34%, transparent 66%);
}
.board-decode-grid{
  display:grid;
  grid-template-columns:repeat(10, minmax(0, 1fr));
  gap:4px;
}
.board-decode-cell{
  aspect-ratio:1 / 1;
  border:1.5px solid color-mix(in srgb, var(--theme-box-border,var(--ink)) 76%, transparent 24%);
  background:color-mix(in srgb, white 88%, var(--paper) 12%);
}
.board-ledger-row{
  display:grid;
  grid-template-columns:minmax(0, .8fr) minmax(0, .9fr) minmax(0, 1.3fr);
}
.board-worksheet[data-worksheet-type="clearance-ledger"] .board-ledger-row,
.board-worksheet[data-worksheet-type="alignment-ledger"] .board-ledger-row{
  grid-template-columns:minmax(0, .7fr) minmax(0, 1.45fr) minmax(0, .7fr);
}
.board-ledger-header{
  background:color-mix(in srgb, white 76%, var(--paper) 24%);
}
.board-ledger-cell{
  min-height:20px;
  padding:4px 5px;
  border-right:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 34%, transparent 66%);
  border-bottom:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 34%, transparent 66%);
  font-family:var(--mono);
  font-size:4.9pt;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
}
.board-ledger-row:not(.board-ledger-header) .board-ledger-cell{
  color:transparent;
}
.board-ledger-row:not(.board-ledger-header) .board-ledger-cell-wide{
  background:
    linear-gradient(180deg, transparent 0, transparent calc(100% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 22%, transparent 78%) calc(100% - 1px));
}
.board-ledger-row:not(.board-ledger-header) .board-ledger-cell-mark{
  position:relative;
}
.board-ledger-row:not(.board-ledger-header) .board-ledger-cell-mark::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:9px;
  height:9px;
  border:1px solid color-mix(in srgb, var(--theme-box-border,var(--ink)) 74%, transparent 26%);
  transform:translate(-50%, -50%);
}
.rp-content[data-solo-surface="tracker"] .companion-component[data-component-type="stress-track"] .companion-track-dossier{
  min-height:320px;
}
.rp-content[data-solo-surface="tracker"] .companion-component[data-component-type="stress-track"] .companion-dossier-lines{
  flex:1;
  min-height:168px;
  align-content:start;
  grid-auto-rows:1fr;
}
.field-ops-right[data-shell-family="classified-packet"] .board-worksheet{
  border-top:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 56%, transparent 44%);
}
.rp-content[data-solo-surface="cipher-panel"] .board-worksheet,
.rp-content[data-solo-surface="oracle-table"] .board-worksheet{
  margin-top:2px;
  min-height:118px;
}
.rp-content[data-solo-surface="cipher-panel"] .board-worksheet-lines,
.rp-content[data-solo-surface="oracle-table"] .board-worksheet-lines{
  gap:6px;
}
.rp-content[data-solo-surface="cipher-panel"] .board-worksheet-line,
.rp-content[data-solo-surface="oracle-table"] .board-worksheet-line{
  min-height:15px;
}
.archive-footer{
  margin-top:auto;
  padding-top:6px;
  border-top:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 48%, transparent 52%);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.archive-footer-grid{
  display:grid;
  gap:0;
  border-top:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 40%, transparent 60%);
  border-left:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 28%, transparent 72%);
}
.archive-footer-row{
  display:grid;
  grid-template-columns:minmax(0, .7fr) minmax(0, 1.3fr) 52px;
}
.archive-footer-row-header{
  background:color-mix(in srgb, white 80%, var(--paper) 20%);
}
.archive-footer-cell{
  min-height:18px;
  padding:3px 5px;
  border-right:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 28%, transparent 72%);
  border-bottom:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 28%, transparent 72%);
  font-family:var(--mono);
  font-size:4.7pt;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
}
.archive-footer-cell-mark{
  display:flex;
  align-items:center;
  justify-content:center;
}
.archive-footer-checkbox{
  width:10px;
  height:10px;
  border:1px solid color-mix(in srgb, var(--theme-box-border,var(--ink)) 76%, transparent 24%);
}
.field-ops-right[data-board-state-mode="ledger-board"] .cipher-zone{
  background:
    repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 17px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 24%, transparent 76%) 17px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 24%, transparent 76%) 18px
    ),
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 94%, white 6%), color-mix(in srgb, var(--paper-2) 94%, white 6%));
}
.field-ops-right[data-board-state-mode="ledger-board"] .password-extract{
  border-left:none;
  border-top:1px solid color-mix(in srgb, var(--accent) 55%, transparent 45%);
  padding-left:0;
  padding-top:4px;
}
.field-ops-right[data-board-state-mode="ledger-board"] .oracle-zone{
  border-top-style:dashed;
}

.companion-page{
  padding:0;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.companion-page-body{
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
  min-height:0;
}

.companion-intro{
  font-family:var(--mono);
  font-size:6pt;
  line-height:1.32;
  color:color-mix(in srgb, var(--ink) 76%, var(--muted) 24%);
  border-left:2px solid var(--accent);
  padding-left:6px;
  margin:0 0 2px;
}

.companion-clock-zone{
  border-top:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 82%, transparent 18%);
  border-bottom:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 82%, transparent 18%);
  padding:6px 0;
}

.companion-stack{
  display:flex;
  flex-direction:column;
  gap:7px;
  flex:1;
  min-height:0;
}

.companion-empty-note{
  font-family:var(--mono);
  font-size:5.6pt;
  line-height:1.35;
  color:color-mix(in srgb, var(--ink) 68%, var(--muted) 32%);
  border:1px dashed color-mix(in srgb, var(--theme-panel-border,var(--rule)) 68%, transparent 32%);
  padding:6px 8px;
}

.companion-page[data-layout-variant="clock-dominant"] .companion-page-body{
  gap:6px;
}

.companion-page[data-layout-variant="clock-dominant"] .companion-clock-zone{
  padding-top:4px;
  padding-bottom:7px;
}

.companion-page[data-layout-variant="companion-dominant"] .companion-clock-zone .clock-grid{
  grid-template-columns:repeat(auto-fit, minmax(108px, 1fr));
}

.companion-page[data-layout-variant="dense"] .companion-page-body{
  gap:5px;
}

.companion-page[data-layout-variant="dense"] .companion-stack{
  gap:5px;
}

.companion-page[data-layout-variant="dense"] .companion-component{
  padding-bottom:5px;
}

/* ── Cipher ──────────────────────────────────────────── */
.puzzle-title{
  font-family:var(--display);
  font-style:italic;
  font-size:8.6pt;
  color:var(--ink);
  margin-bottom:2px;
  line-height:1.15;
}
.cipher-sequence{
  font-family:var(--mono);
  font-size:6.7pt;
  line-height:1.42;
  color:var(--ink);
  margin-bottom:3px;
  word-break:normal;
  overflow-wrap:break-word;
}
.cipher-key{
  margin-bottom:6px;
}
.cipher-key-table{
  display:flex;
  flex-direction:column;
  gap:2px;
  font-family:var(--mono);
  font-size:6pt;
}
.cipher-key-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(44px, 1fr));
  gap:2px;
}
.cipher-key-cell{
  border:1px solid var(--theme-panel-border,var(--rule));
  padding:2px 4px;
  background:color-mix(in srgb, var(--paper) 86%, white 14%);
}
.cipher-reference-list{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.cipher-reference-item,
.cipher-route-step{
  font-family:var(--mono);
  font-size:5.8pt;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:2px 4px;
  border:1px solid var(--theme-panel-border,var(--rule));
  background:color-mix(in srgb, var(--paper) 88%, white 12%);
}
.key-grid{
  font-family:var(--mono);
  font-size:7.5pt;
  line-height:1.5;
  color:var(--ink);
  white-space:pre-wrap;
}
.cipher-family-note{
  font-family:var(--serif);
  font-size:5.9pt;
  line-height:1.3;
  font-style:italic;
  color:color-mix(in srgb, var(--ink) 68%, var(--muted) 32%);
  margin-top:4px;
}
.cipher-route-strip{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  margin-top:4px;
}
.position-sequence{
  margin-bottom:6px;
}
.pos-numbers{
  font-family:var(--mono);
  font-size:8pt;
  line-height:1.5;
  color:var(--ink);
  letter-spacing:.08em;
}
.cipher-instruction{
  font-family:var(--mono);
  font-size:6.1pt;
  line-height:1.32;
  color:var(--muted);
  margin-bottom:4px;
}

/* Plaintext workspace */
.plaintext-grid{
  display:flex;
  gap:3px;
  flex-wrap:wrap;
  margin-top:8px;
  margin-bottom:6px;
}
.cipher-lined-workspace,
.cipher-blank-workspace,
.cipher-boxed-workspace{
  margin-top:8px;
  margin-bottom:6px;
}
.cipher-lined-workspace{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.cipher-lined-row{
  border-bottom:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 88%, transparent 12%);
  min-height:10px;
}
.cipher-blank-workspace{
  min-height:calc(var(--workspace-rows, 3) * 20px);
  border:1px solid var(--theme-panel-border,var(--rule));
  background:linear-gradient(to bottom, transparent 0, transparent calc(100% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 65%, transparent 35%) calc(100% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 65%, transparent 35%) 100%);
}
.cipher-boxed-workspace{
  display:grid;
  grid-template-columns:repeat(var(--workspace-cols, 4), minmax(0, 1fr));
  gap:4px;
}
.cipher-boxed-cell{
  aspect-ratio:1 / 1;
  border:1px solid var(--theme-box-border,var(--ink));
  background:rgba(255,255,255,.45);
}
.plaintext-cell{
  width:16px;
  height:16px;
  border:1px solid var(--ink);
  border-radius:1px;
  background:white;
}

/* Password extract instruction */
.password-extract{
  font-family:var(--mono);
  font-size:6pt;
  line-height:1.32;
  color:color-mix(in srgb, var(--ink) 82%, var(--muted) 18%);
  border-left:2px solid var(--accent);
  padding-left:6px;
  margin:4px 0 0;
}

/* ── Map ─────────────────────────────────────────────── */
.map-title{
  font-family:var(--theme-label-family,var(--mono));
  font-size:7.5pt;
  letter-spacing:var(--theme-label-spacing,.08em);
  color:var(--ink);
  margin-bottom:3px;
  text-transform:var(--theme-label-case,uppercase);
}
.map-content{
  display:flex;
  flex-direction:column;
  min-height:0;
}
.map-grid{
  display:grid;
  gap:2px;
  margin-bottom:4px;
  grid-auto-rows:minmax(28px, 1fr);
}
.map-network{
  position:relative;
  min-height:214px;
  margin-bottom:4px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 70%, transparent 30%);
  background:color-mix(in srgb, var(--paper) 92%, white 8%);
  overflow:hidden;
  flex:1;
}
.map-network-svg,
.map-network-nodes{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.map-network[data-has-rail="true"] .map-network-svg,
.map-network[data-has-rail="true"] .map-network-nodes{
  left:46px;
  width:calc(100% - 46px);
}
.map-network-nodes{
  pointer-events:none;
}
.map-network-rail{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:42px;
  padding:24px 4px 8px;
  border-right:1px solid color-mix(in srgb, var(--rule) 28%, transparent 72%);
  background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 8%, transparent 92%), color-mix(in srgb, var(--accent) 3%, transparent 97%));
  display:flex;
  flex-direction:column;
  gap:8px;
  z-index:1;
}
.map-network-rail-item{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.map-network-rail-label{
  font-family:var(--mono);
  font-size:4.4pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--accent) 56%, var(--paper) 44%);
}
.map-network-rail-value{
  font-family:var(--mono);
  font-size:4.9pt;
  line-height:1.15;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
  overflow-wrap:anywhere;
}
.map-network-legend{
  position:absolute;
  left:8px;
  right:8px;
  bottom:8px;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
  z-index:2;
}
.map-network-chip{
  padding:2px 4px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 78%, transparent 22%);
  background:color-mix(in srgb, var(--paper) 94%, white 6%);
  font-family:var(--mono);
  font-size:4.9pt;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.map-edge{
  stroke:color-mix(in srgb, var(--ink) 70%, var(--muted) 30%);
  stroke-width:1.4;
  stroke-dasharray:2.5 1.8;
}
.map-edge[data-state="locked"]{
  stroke:color-mix(in srgb, var(--muted) 75%, var(--paper) 25%);
  stroke-dasharray:1.5 2.2;
}
.map-edge[data-state="current"]{
  stroke:var(--accent);
  stroke-width:2;
  stroke-dasharray:none;
}
.map-edge-label{
  font-family:var(--mono);
  font-size:2.1px;
  letter-spacing:.03em;
  fill:color-mix(in srgb, var(--ink) 76%, var(--muted) 24%);
  paint-order:stroke fill;
  stroke:color-mix(in srgb, var(--paper) 94%, white 6%);
  stroke-width:.9px;
  stroke-linejoin:round;
}
.map-node{
  position:absolute;
  transform:translate(-50%, -50%);
  min-width:32px;
  max-width:66px;
  padding:5px 4px 4px;
  border:1px solid var(--theme-panel-border,var(--rule));
  background:color-mix(in srgb, var(--paper) 90%, white 10%);
  display:flex;
  flex-direction:column;
  gap:2px;
  align-items:flex-start;
}
.map-node[data-state="locked"]{
  background:color-mix(in srgb, var(--paper) 74%, var(--fog) 26%);
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
}
.map-node[data-state="anomaly"]{
  background:
    repeating-linear-gradient(45deg, transparent, transparent 3px, color-mix(in srgb, var(--ink) 38%, transparent 62%) 3px, color-mix(in srgb, var(--ink) 38%, transparent 62%) 4px),
    color-mix(in srgb, var(--paper) 92%, white 8%);
  border-width:2px;
}
.map-node[data-state="inaccessible"]{
  background:#2b3027;
  border-color:#2b3027;
  color:rgba(255,255,255,.82);
}
.map-node[data-current="true"],
.map-track-step[data-state="current"]{
  border-color:var(--accent);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent 78%);
}
.map-node-name{
  font-family:var(--mono);
  font-size:5.05pt;
  line-height:1.04;
  text-transform:uppercase;
}
.map-node-meta{
  font-family:var(--mono);
  font-size:4.35pt;
  color:color-mix(in srgb, var(--ink) 58%, var(--muted) 42%);
}

/* Half-width context: tighter node sizing to prevent collision in narrow containers */
.rp-row-cell .map-node{
  max-width:54px;
}
/* --- PTP density-aware node scaling --- */
.map-network[data-ptp-density="dense"] .map-node{
  min-width:26px;
  max-width:54px;
  padding:3px 3px 2px;
  gap:1px;
}
.map-network[data-ptp-density="dense"] .map-node-name{
  font-size:4.5pt;
}
.map-network[data-ptp-density="dense"] .map-node-meta{
  font-size:3.8pt;
}
.map-network[data-ptp-density="packed"] .map-node{
  min-width:22px;
  max-width:46px;
  padding:2px 2px 1px;
  gap:0;
}
.map-network[data-ptp-density="packed"] .map-node-name{
  font-size:4pt;
  line-height:1;
}
.map-network[data-ptp-density="packed"] .map-node-meta{
  font-size:3.4pt;
}
/* Tone down anomaly hatching in dense/packed maps */
.map-network[data-ptp-density="dense"] .map-node[data-state="anomaly"],
.map-network[data-ptp-density="packed"] .map-node[data-state="anomaly"]{
  border-width:1px;
  background:
    repeating-linear-gradient(45deg, transparent, transparent 4px, color-mix(in srgb, var(--ink) 22%, transparent 78%) 4px, color-mix(in srgb, var(--ink) 22%, transparent 78%) 5px),
    color-mix(in srgb, var(--paper) 92%, white 8%);
}
/* Reduce edge label size in dense maps */
.map-network[data-ptp-density="dense"] .map-edge-label,
.map-network[data-ptp-density="packed"] .map-edge-label{
  font-size:1.8px;
}

.map-track{
  display:flex;
  gap:4px;
  margin-bottom:4px;
}
.map-track[data-direction="vertical"]{
  flex-direction:column;
}
.map-track-step{
  flex:1;
  min-width:0;
  border:1px solid var(--theme-panel-border,var(--rule));
  background:color-mix(in srgb, var(--paper) 90%, white 10%);
  padding:4px 4px 5px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.map-track-index{
  font-family:var(--mono);
  font-size:4.8pt;
  letter-spacing:.14em;
  color:color-mix(in srgb, var(--ink) 56%, var(--muted) 44%);
}
.map-track-label{
  font-family:var(--mono);
  font-size:5.8pt;
  text-transform:uppercase;
}
.map-track-meta{
  font-family:var(--serif);
  font-size:5.4pt;
  font-style:italic;
  color:color-mix(in srgb, var(--ink) 68%, var(--muted) 32%);
}
.player-map{
  position:relative;
  min-height:176px;
  border:1px solid var(--theme-panel-border,var(--rule));
  background:
    linear-gradient(to right, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 28%, transparent 72%) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 28%, transparent 72%) 1px, transparent 1px);
  background-size:calc(100% / var(--grid-columns, 10)) calc(100% / var(--grid-rows, 8));
  margin-bottom:4px;
  overflow:hidden;
}
.player-map[data-canvas-type="blank"]{
  background:none;
}
.player-map[data-canvas-type="dot-grid"]{
  background:
    radial-gradient(circle, color-mix(in srgb, var(--theme-field-rule,var(--rule)) 45%, transparent 55%) 0 0.8px, transparent 1px);
  background-size:calc(100% / var(--grid-columns, 10)) calc(100% / var(--grid-rows, 8));
}
.player-map-seed{
  position:absolute;
  transform:translate(-50%, -50%);
  padding:1px 3px;
  border:1px solid var(--theme-panel-border,var(--rule));
  background:color-mix(in srgb, var(--paper) 92%, white 8%);
  font-family:var(--mono);
  font-size:5pt;
  text-transform:uppercase;
}
.player-map-prompt{
  position:relative;
  z-index:1;
  width:max-content;
  max-width:78%;
  margin:6px 0 0 6px;
  padding:1px 4px;
  background:color-mix(in srgb, var(--paper) 86%, white 14%);
  font-family:var(--mono);
  font-size:4.9pt;
  letter-spacing:.03em;
}
.map-cell{
  min-width:27px;
  min-height:30px;
  border:1px solid var(--rule);
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  font-size:5.4pt;
  color:var(--ink);
  position:relative;
}
.map-cell.empty{
  border:1px solid var(--rule);
  background:transparent;
}
.map-cell.cleared{
  background:repeating-linear-gradient(
    45deg,
    var(--paper),var(--paper) 3px,
    var(--fog) 3px,var(--fog) 4px
  );
}
.map-cell.locked{
  background:repeating-radial-gradient(
    circle at 50% 50%,
    transparent 0,transparent 2px,
    rgba(190,183,168,.78) 2px,rgba(190,183,168,.78) 3px
  );
  color:rgba(142,132,117,.68);
}
.map-cell.anomaly{
  background:
    repeating-linear-gradient(45deg,transparent,transparent 2px,var(--ink) 2px,var(--ink) 3px),
    repeating-linear-gradient(-45deg,transparent,transparent 2px,var(--ink) 2px,var(--ink) 3px);
  color:white;
  font-weight:700;
  border-width:2px;
}
.map-cell.current{
  background:var(--ink);
  color:var(--paper);
  font-weight:700;
}
.map-cell.inaccessible{
  background:#2b3027;
  border-color:#2b3027;
}
.map-annotation{
  font-family:var(--mono);
  font-size:5.9pt;
  line-height:1.3;
  color:color-mix(in srgb, var(--ink) 68%, var(--muted) 32%);
  font-style:italic;
  margin-top:3px;
}
.map-note{
  font-family:var(--serif);
  font-size:6.1pt;
  font-style:italic;
  line-height:1.28;
  color:color-mix(in srgb, var(--ink) 74%, var(--muted) 26%);
  margin-top:3px;
}
.map-route-key{
  margin-top:2px;
  padding-top:3px;
  border-top:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 54%, transparent 46%);
}
.map-route-key-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:3px 8px;
}
.map-route-key-row{
  display:grid;
  grid-template-columns:18px minmax(0, 1fr);
  gap:5px;
  align-items:start;
}
.map-route-key-code{
  font-family:var(--mono);
  font-size:5.3pt;
  line-height:1.1;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
}
.map-route-key-label{
  font-family:var(--mono);
  font-size:5.2pt;
  line-height:1.2;
  color:color-mix(in srgb, var(--ink) 74%, var(--muted) 26%);
}
.ops-clocks{
  margin-top:5px;
  border-top:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 82%, transparent 18%);
  padding-top:5px;
}
.clock-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));
  gap:6px;
}
.clock-item{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:6px;
  align-items:center;
  padding:4px 0;
}
.clock-visuals{
  width:42px;
  height:42px;
}
.progress-clock-svg{
  width:42px;
  height:42px;
}
.clock-name{
  font-family:var(--mono);
  font-size:5.8pt;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.clock-subtext,
.clock-consequence{
  font-family:var(--mono);
  font-size:5pt;
  line-height:1.25;
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
}
.clock-thresholds{
  display:flex;
  flex-wrap:wrap;
  gap:3px;
  margin-top:3px;
}
.clock-threshold{
  font-family:var(--mono);
  font-size:4.9pt;
  padding:1px 3px;
  border:1px solid var(--theme-panel-border,var(--rule));
}
.clock-item[data-clock-type="danger-clock"] .progress-clock-fill{
  fill:color-mix(in srgb, var(--accent) 56%, #7a0f0f 44%);
}
.clock-item[data-clock-type="linked-clock"] .progress-clock-fill{
  fill:color-mix(in srgb, var(--accent) 38%, var(--ink) 62%);
}
.clock-item[data-clock-type="tug-of-war-clock"] .progress-clock-fill{
  fill:color-mix(in srgb, var(--accent) 28%, var(--ink) 72%);
}

/* ── Oracle ──────────────────────────────────────────── */
.oracle-header{
  font-family:var(--mono);
  font-size:5.9pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  font-weight:700;
  padding-bottom:2px;
  border-bottom:1px solid var(--theme-field-rule,var(--rule));
  margin-bottom:3px;
}
.oracle-instruction{
  font-size:5.9pt;
  font-style:italic;
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
  margin-bottom:3px;
}
.oracle-entries{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px 8px;
}
.oracle-entry{
  display:flex;
  align-items:baseline;
  gap:3px;
  padding:2px 0;
  border-bottom:1px dotted var(--theme-field-rule,var(--rule));
}
.oracle-case-num{
  font-family:var(--mono);
  font-size:5pt;
  color:color-mix(in srgb, var(--ink) 58%, var(--muted) 42%);
  white-space:nowrap;
  letter-spacing:.04em;
}
.oracle-text{
  font-family:var(--serif);
  font-size:5.2pt;
  line-height:1.22;
  color:var(--ink);
  flex:1;
  overflow-wrap: anywhere;
}
.oracle-case .frag-ref{
  font-size:6.5pt;
  text-align:right;
  margin:0;
  white-space:nowrap;
}
.oracle-zone[data-density-variant="dense"] .oracle-entries{
  gap:1px 6px;
}
.oracle-zone[data-density-variant="dense"] .oracle-entry{
  padding:1px 0;
}
.oracle-zone[data-density-variant="dense"] .oracle-text{
  font-size:4.8pt;
  line-height:1.18;
}
.oracle-zone[data-density-variant="dense"] .oracle-header{
  margin-bottom:2px;
}
.oracle-zone[data-density-variant="dense"] .oracle-instruction{
  margin-bottom:2px;
}
.oracle-zone[data-density-variant="tight"] .oracle-entries{
  gap:0px 4px;
}
.oracle-zone[data-density-variant="tight"] .oracle-entry{
  padding:1px 0;
}
.oracle-zone[data-density-variant="tight"] .oracle-text{
  font-size:4.8pt;
  line-height:1.18;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.oracle-zone[data-density-variant="tight"] .oracle-header{
  margin-bottom:1px;
  padding-bottom:1px;
}
.oracle-zone[data-density-variant="tight"] .oracle-instruction{
  margin-bottom:1px;
}
.companion-component{
  border:1px solid var(--theme-panel-border,var(--rule));
  border-radius:var(--theme-panel-radius,3px);
  padding:6px 8px;
  background:var(--paper-2);
  box-shadow:none;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.companion-title{
  font-family:var(--mono);
  font-size:6.2pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:4px;
}
.companion-subtitle,
.companion-meta,
.companion-reminder{
  font-family:var(--mono);
  font-size:5pt;
  line-height:1.3;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--ink) 58%, var(--muted) 42%);
}
.companion-subtitle{
  margin:-2px 0 4px;
}
.companion-meta{
  margin:-1px 0 4px;
}
.companion-body{
  font-family:var(--serif);
  font-size:6.4pt;
  line-height:1.35;
  color:color-mix(in srgb, var(--ink) 74%, var(--muted) 26%);
}
.companion-slot-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:4px 8px;
}
.companion-slot{
  display:flex;
  align-items:center;
  gap:6px;
}
.companion-slot-label{
  font-family:var(--mono);
  font-size:5.6pt;
  color:var(--muted);
  letter-spacing:.08em;
  flex:1;
}
.companion-slot-box{
  width:20px;
  height:20px;
  border:1.5px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
}
.companion-cell-grid{
  display:grid;
  grid-template-columns:repeat(var(--companion-cols, 4), minmax(0, 1fr));
  gap:4px;
}
.companion-cell{
  aspect-ratio:1 / 1;
  border:1px solid var(--theme-box-border,var(--ink));
  background:rgba(255,255,255,.45);
}
.companion-dash-line{
  height:18px;
  border-bottom:1px dashed var(--rule);
}
.companion-dashboard{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.companion-dashboard-grid{
  gap:8px;
}
.companion-dashboard-row{
  display:flex;
  gap:6px;
}
.companion-dashboard-box{
  width:28px;
  height:28px;
  border:1.5px solid var(--theme-box-border,var(--ink));
  background:rgba(255,255,255,.45);
}
.companion-track{
  display:flex;
  align-items:center;
  gap:8px;
}
.companion-track-dossier{
  display:grid;
  gap:10px;
}
.companion-track-label{
  width:44px;
  font-family:var(--mono);
  font-size:5.2pt;
  text-transform:uppercase;
}
.companion-track-boxes{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(12px, 1fr));
  gap:3px;
  flex:1;
}
.companion-track-boxes-large{
  grid-template-columns:repeat(auto-fit, minmax(48px, 1fr));
  gap:8px;
}
.companion-track-box{
  height:12px;
  border:1px solid var(--theme-box-border,var(--ink));
  background:white;
}
.companion-track-box-large{
  height:auto;
  min-height:72px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:6px 5px 8px;
  background:
    linear-gradient(180deg, color-mix(in srgb, white 88%, var(--paper) 12%), color-mix(in srgb, white 72%, var(--paper) 28%));
}
.companion-track-box[data-filled="true"]{
  background:color-mix(in srgb, var(--accent) 24%, white 76%);
}
.companion-track-index{
  font-family:var(--mono);
  font-size:5pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--ink) 72%, var(--muted) 28%);
}
.companion-track-mark{
  border-top:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 72%, transparent 28%);
  min-height:22px;
}
.companion-threshold-list,
.companion-level-notes{
  display:grid;
  gap:5px;
}
.companion-threshold-note{
  font-family:var(--serif);
  font-size:6.1pt;
  line-height:1.3;
  padding:5px 7px;
  border-left:2px solid color-mix(in srgb, var(--accent) 55%, transparent 45%);
  background:color-mix(in srgb, white 74%, var(--paper) 26%);
}
.companion-dossier-lines{
  display:grid;
  gap:7px;
}
.companion-dossier-line{
  min-height:14px;
  border-bottom:1px dashed color-mix(in srgb, var(--theme-field-rule,var(--rule)) 68%, transparent 32%);
}
.companion-inventory-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:5px 8px;
}
.companion-inventory-slot{
  display:flex;
  align-items:center;
  gap:6px;
}
.companion-condition-chip{
  font-family:var(--mono);
  font-size:5pt;
  padding:2px 4px;
  border:1px dashed var(--theme-panel-border,var(--rule));
  text-transform:uppercase;
}
.companion-token-sheet{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:6px;
  min-height:220px;
  grid-auto-rows:1fr;
}
.companion-level-ladder{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:5px;
}
.companion-component[data-component-type="token-sheet"] .companion-level-ladder{
  flex:1;
  align-content:start;
  grid-auto-rows:minmax(56px, 1fr);
}
.companion-level-card{
  display:grid;
  grid-template-columns:90px 1fr auto;
  align-items:center;
  gap:8px;
  padding:6px 8px;
  border:1.4px solid var(--theme-box-border,var(--ink));
  background:
    linear-gradient(180deg, color-mix(in srgb, white 82%, var(--paper) 18%), color-mix(in srgb, white 70%, var(--paper) 30%));
}
.companion-level-card[data-active="true"]{
  border-width:2px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 9%, white 91%), color-mix(in srgb, var(--accent) 4%, var(--paper) 96%));
}
.companion-level-card:last-child:nth-child(odd){
  grid-column:1 / -1;
}
.companion-level-kicker{
  font-family:var(--mono);
  font-size:4.5pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:color-mix(in srgb, var(--ink) 64%, var(--muted) 36%);
}
.companion-level-label{
  font-family:var(--mono);
  font-size:6.6pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
}
.companion-level-status{
  font-family:var(--serif);
  font-size:5.8pt;
  font-style:italic;
  color:color-mix(in srgb, var(--ink) 76%, var(--muted) 24%);
  text-align:right;
}
.companion-token{
  aspect-ratio:1 / 1;
  border:1px dashed var(--theme-box-border,var(--ink));
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.36);
}
.companion-token-label{
  font-family:var(--mono);
  font-size:5pt;
  text-align:center;
  text-transform:uppercase;
}
.companion-overlay{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:6px;
}
.companion-overlay-window{
  aspect-ratio:1 / 1.2;
  border:1.4px solid var(--theme-box-border,var(--ink));
  background:
    linear-gradient(transparent 0, transparent calc(50% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 48%, transparent 52%) calc(50% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 48%, transparent 52%) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(90deg, transparent 0, transparent calc(50% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 48%, transparent 52%) calc(50% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 48%, transparent 52%) calc(50% + 1px), transparent calc(50% + 1px));
  position:relative;
}
.companion-overlay-label{
  position:absolute;
  left:4px;
  bottom:4px;
  font-family:var(--mono);
  font-size:4.9pt;
  text-transform:uppercase;
}
.companion-return-box{
  border:1.5px solid var(--theme-box-border,var(--ink));
  min-height:44px;
  position:relative;
}
.companion-return-slot{
  position:absolute;
  left:50%;
  top:8px;
  width:34px;
  height:2px;
  background:var(--ink);
  transform:translateX(-50%);
}
.companion-usage-die{
  display:flex;
  gap:4px;
  flex-wrap:wrap;
}
.companion-component[data-component-type="token-sheet"]{
  min-height:320px;
}
.companion-component[data-component-type="overlay-window"]{
  min-height:260px;
}
.companion-usage-step{
  min-width:28px;
  padding:3px 4px;
  border:1px solid var(--theme-box-border,var(--ink));
  font-family:var(--mono);
  font-size:5.6pt;
  text-align:center;
}
.companion-usage-step[data-active="true"]{
  background:color-mix(in srgb, var(--accent) 20%, white 80%);
  border-width:1.5px;
}
.companion-memory-slots{
  display:grid;
  gap:6px;
}
.companion-memory-slot{
  display:grid;
  grid-template-columns:40px 1fr;
  gap:8px;
  align-items:start;
}
.companion-memory-lines{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.companion-memory-line{
  border-bottom:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 82%, transparent 18%);
  min-height:9px;
}
.companion-reminder{
  margin-top:5px;
}

/* ══════════════════════════════════════════════════════════════
   BOSS ENCOUNTER PAGE (replaces field ops on boss week)
   ══════════════════════════════════════════════════════════════ */
.boss-right{
  padding:6px 6px 0 6px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.boss-right[data-shell-family="classified-packet"]{
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--paper) 94%, white 6%), color-mix(in srgb, var(--warm) 97%, white 3%)),
    repeating-linear-gradient(
      to bottom,
      transparent,
      transparent 20px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 20px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 14%, transparent 86%) 21px
    );
}
.boss-right::before{
  content:var(--boss-document-label);
  display:block;
  margin-bottom:6px;
  font-family:var(--theme-label-family,var(--mono));
  font-size:5.8pt;
  font-style:var(--theme-label-style,normal);
  font-weight:var(--theme-label-weight,400);
  letter-spacing:var(--theme-label-spacing,.18em);
  text-transform:var(--theme-label-case,uppercase);
  color:var(--theme-doc-badge-color,var(--accent));
}
.boss-incident-strip{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin:0 0 8px;
}
.boss-incident-chip{
  padding:2px 6px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 78%, transparent 22%);
  background:color-mix(in srgb, var(--paper) 92%, white 8%);
  font-family:var(--mono);
  font-size:4.9pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.boss-right[data-layout-variant="compact"]{
  padding:5px 5px 0 5px;
}
.boss-right[data-layout-variant="dense"]{
  padding:4px 4px 0 4px;
}
.boss-right[data-layout-variant="tight"]{
  padding:3px 3px 0 3px;
}
.boss-header{
  font-size:6pt;
  color:var(--accent);
  padding-bottom:4px;
  border-bottom:2px solid var(--theme-header-border,var(--ink));
  margin-bottom:12px;
}
.boss-title{
  font-size:20pt;
  line-height:1.05;
  color:var(--ink);
  margin-bottom:8px;
}
.boss-right[data-shell-family="classified-packet"] .boss-title{
  font-family:var(--mono);
  font-style:normal;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-size:16.5pt;
}
.boss-narrative{
  font-size:8pt;
  font-style:italic;
  color:var(--ink);
  margin-bottom:14px;
  border-left:2px solid var(--accent);
  padding-left:12px;
}
.boss-mechanism{
  font-family:var(--theme-label-family,var(--mono));
  font-size:7pt;
  line-height:1.5;
  color:var(--ink);
  margin-bottom:14px;
  padding:10px 12px;
  border:1px solid var(--theme-panel-border,var(--ink));
  border-radius:var(--theme-panel-radius,3px);
  background:var(--theme-panel-fill,var(--paper));
}
.boss-right[data-shell-family="classified-packet"] .boss-mechanism,
.boss-right[data-shell-family="classified-packet"] .boss-proof,
.boss-right[data-shell-family="classified-packet"] .boss-branch-note{
  background:color-mix(in srgb, var(--paper) 92%, white 8%);
  border-radius:0;
}
.boss-mechanism-label{
  margin-bottom:6px;
  display:block;
}
.boss-decoding-instruction{
  font-family:var(--mono);
  font-size:6.4pt;
  line-height:1.45;
  color:var(--ink);
  border-left:2px solid var(--accent);
  padding-left:8px;
  margin-top:8px;
}
.boss-decoding-table{
  margin-top:8px;
  padding:8px 10px;
  background:rgba(255,255,255,.35);
  border:1px solid var(--rule);
  border-radius:3px;
  font-family:var(--mono);
  font-size:6.2pt;
  line-height:1.45;
  color:var(--ink);
  white-space:pre-wrap;
}
.boss-components{
  margin-bottom:14px;
}
.boss-components-label{
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:6px;
}
.boss-component-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.boss-right[data-shell-family="classified-packet"] .boss-component-list{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:8px 5px;
}
.boss-component-item{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--mono);
  font-size:7pt;
  color:var(--ink);
}
.boss-right[data-shell-family="classified-packet"] .boss-component-item{
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
}
.boss-component-week{
  color:var(--muted);
  min-width:48px;
}
.boss-right[data-shell-family="classified-packet"] .boss-component-week{
  min-width:0;
}
.boss-component-box{
  width:24px;
  height:24px;
  border:1.5px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
}
.boss-convergence{
  margin-top:auto;
  padding-top:12px;
  border-top:2px solid var(--ink);
}
.boss-right[data-shell-family="classified-packet"] .boss-convergence{
  padding-top:10px;
  border-top-style:dashed;
}
.boss-appendix-grid{
  display:grid;
  grid-template-columns:minmax(0, .92fr) minmax(0, 1.08fr);
  gap:6px;
  margin-bottom:8px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"]{
  background:
    linear-gradient(180deg, color-mix(in srgb, white 89%, var(--paper) 11%), color-mix(in srgb, white 79%, var(--paper-2) 21%));
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-header{
  margin-bottom:4px;
  padding-bottom:3px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-title{
  font-size:13.2pt;
  margin-bottom:6px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-branch-note,
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-proof{
  min-height:0;
  margin-bottom:0;
  padding:6px 7px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-appendix-grid{
  grid-template-columns:1fr;
  gap:5px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-branch-note{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 8px;
  border:1px solid color-mix(in srgb, var(--theme-panel-border,var(--rule)) 72%, transparent 28%);
  background:color-mix(in srgb, white 88%, var(--paper) 12%);
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-branch-label{
  grid-column:1 / -1;
  margin-bottom:0;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-branch-note p{
  font-size:5.8pt;
  line-height:1.22;
  margin-bottom:0;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-proof{
  border-style:solid;
  background:color-mix(in srgb, white 86%, var(--paper) 14%);
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-proof-label{
  margin-bottom:3px;
  font-size:5.4pt;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-proof p{
  font-size:5.75pt;
  line-height:1.26;
  margin-bottom:3px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-convergence{
  margin-top:4px;
  padding-top:5px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-convergence-instruction{
  font-size:5.9pt;
  line-height:1.22;
  margin-bottom:4px;
}
.boss-right[data-continuation-segment="followup"][data-shell-family="classified-packet"] .boss-password-box{
  width:20px;
  height:20px;
}
.boss-right[data-layout-variant="dense"] .boss-convergence{
  margin-top:8px;
  padding-top:8px;
}
.boss-right[data-layout-variant="tight"] .boss-convergence{
  padding-top:8px;
}
.boss-convergence-label{
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:8px;
}
.boss-convergence-instruction{
  font-family:var(--serif);
  font-size:7.5pt;
  font-style:italic;
  line-height:1.5;
  color:var(--muted);
  margin-bottom:8px;
}
.boss-branch-note{
  margin-bottom:14px;
  padding:8px 10px;
  border:1px solid var(--theme-panel-border,var(--rule));
  border-radius:var(--theme-panel-radius,3px);
  background:var(--accent-soft);
}
.boss-branch-label{
  font-family:var(--mono);
  font-size:6pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:4px;
}
.boss-branch-note p{
  font-family:var(--serif);
  font-size:7pt;
  line-height:1.45;
  color:var(--ink);
  margin-bottom:4px;
}
.boss-branch-note p:last-child{
  margin-bottom:0;
}
.boss-proof{
  margin-bottom:12px;
  padding:8px 10px;
  border:1px solid var(--theme-panel-border,rgba(24,23,20,.18));
  border-radius:var(--theme-panel-radius,3px);
  background:var(--accent-soft);
}
.boss-proof::before{
  content:var(--boss-attachment-label);
  display:block;
  margin-bottom:4px;
  font-family:var(--theme-label-family,var(--mono));
  font-size:5.5pt;
  font-style:var(--theme-label-style,normal);
  font-weight:var(--theme-label-weight,400);
  letter-spacing:var(--theme-label-spacing,.16em);
  text-transform:var(--theme-label-case,uppercase);
  color:var(--theme-doc-badge-color,var(--accent));
}
.boss-proof-label{
  font-family:var(--mono);
  font-size:5.8pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:4px;
}
.boss-proof p{
  font-family:var(--serif);
  font-size:6.7pt;
  line-height:1.38;
  color:var(--muted);
  margin-bottom:3px;
}
.boss-proof p:last-child{
  margin-bottom:0;
}
.boss-password-boxes{
  display:flex;
  gap:4px;
}
.boss-password-box{
  width:24px;
  height:24px;
  border:2px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
}
.boss-right[data-layout-variant="tight"] .boss-header{
  font-size:5.4pt;
  padding-bottom:3px;
  margin-bottom:5px;
}
.boss-right[data-layout-variant="tight"] .boss-title{
  font-size:14.2pt;
  margin-bottom:5px;
}
.boss-right[data-layout-variant="tight"] .boss-narrative{
  font-size:6.8pt;
  line-height:1.33;
  margin-bottom:5px;
  padding-left:8px;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.boss-right[data-layout-variant="tight"] .boss-narrative p{
  display:inline;
}
.boss-right[data-layout-variant="tight"] .boss-mechanism{
  font-size:6pt;
  line-height:1.32;
  margin-bottom:5px;
  padding:6px 8px;
}
.boss-right[data-layout-variant="tight"] .boss-decoding-instruction{
  font-size:5.6pt;
  line-height:1.28;
  margin-top:5px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.boss-right[data-layout-variant="tight"] .boss-decoding-table{
  margin-top:5px;
  padding:5px 7px;
  font-size:5.4pt;
  line-height:1.28;
}
.boss-right[data-layout-variant="tight"] .boss-components{
  margin-bottom:8px;
}
.boss-right[data-layout-variant="tight"] .boss-components-label{
  font-size:6.2pt;
  margin-bottom:4px;
}
.boss-right[data-layout-variant="tight"] .boss-component-list{
  display:grid;
  grid-template-columns:repeat(5, minmax(0, 1fr));
  gap:6px 4px;
}
.boss-right[data-layout-variant="tight"] .boss-component-item{
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
  font-size:5.7pt;
}
.boss-right[data-layout-variant="tight"] .boss-component-week{
  min-width:0;
}
.boss-right[data-layout-variant="tight"] .boss-component-box{
  width:18px;
  height:18px;
}
.boss-right[data-layout-variant="tight"] .boss-convergence{
  padding-top:8px;
}
.boss-right[data-layout-variant="tight"] .boss-convergence-label{
  font-size:5.9pt;
  margin-bottom:4px;
}
.boss-right[data-layout-variant="tight"] .boss-convergence-instruction{
  font-size:6.4pt;
  line-height:1.3;
  margin-bottom:5px;
}
.boss-right[data-layout-variant="tight"] .boss-branch-note{
  margin-bottom:10px;
  padding:6px 8px;
}
.boss-right[data-layout-variant="tight"] .boss-branch-note p{
  font-size:6.4pt;
  line-height:1.34;
}
.boss-right[data-layout-variant="tight"] .boss-proof{
  margin-bottom:8px;
  padding:5px 7px;
}
.boss-right[data-layout-variant="tight"] .boss-proof p{
  font-size:5.9pt;
  line-height:1.24;
}
.boss-right[data-layout-variant="tight"] .boss-password-boxes{
  gap:3px;
}
.boss-right[data-layout-variant="tight"] .boss-password-box{
  width:20px;
  height:20px;
}
.boss-right[data-layout-variant="tight"] .boss-component-value{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-size:5pt;
  line-height:1.3;
}
.boss-right[data-layout-variant="dense"] .boss-component-value{
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ══════════════════════════════════════════════════════════════
   OVERFLOW PAGES
   ══════════════════════════════════════════════════════════════ */
/* Overflow left: same as workout-left but with continuation header */
.overflow-header-note{
  font-family:var(--mono);
  font-size:6pt;
  color:var(--muted);
  letter-spacing:.08em;
  margin-bottom:4px;
}

/* Overflow right: found document */
.overflow-doc-right{
  padding:24px 30px 20px 30px;
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
}
/* Tighter found-doc styles within overflow pages */
.overflow-doc-right .found-doc{
  padding:16px 20px;
  flex:1;
  overflow:hidden;
}
.overflow-doc-right .found-doc-title{
  font-size:11pt;
  margin-bottom:6px;
}
.overflow-doc-right .found-doc-body{
  font-size:6.5pt;
  line-height:1.4;
}
.overflow-doc-right .found-doc-body p{
  margin-bottom:2px;
}
.overflow-doc-right .found-doc-from,
.overflow-doc-right .found-doc-to{
  font-size:6pt;
  margin-bottom:1px;
}
.overflow-doc-right .found-doc-sig{
  font-size:5.5pt;
}
.fragment-page[data-page-type="overflow-doc"] .fragment-doc,
.fragment-page[data-layout-variant="compact"] .fragment-doc{
  padding:7px 12px;
}
.fragment-page[data-layout-variant="dense"] .fragment-doc,
.fragment-page[data-page-type="overflow-doc"][data-layout-variant="dense"] .fragment-doc{
  padding:5px 9px 6px;
}

/* ══════════════════════════════════════════════════════════════
   FRAGMENT PAGES (back of book)
   ══════════════════════════════════════════════════════════════ */
.fragment-page{
  padding:2px 2px 0 2px;
  display:flex;
  flex-direction:column;
  gap:6px;
  height:100%;
}
.fragment-page .page-header{
  margin-bottom:4px;
  padding-bottom:4px;
  font-size:5.6pt;
}
.fragment-page[data-layout-variant="tight"]{
  gap:4px;
  padding:1px 1px 0 1px;
}
.fragment-page[data-layout-variant="tight"] .fragment-doc{
  padding:6px 10px 7px;
}
.fragment-page[data-layout-variant="tight"] .fragment-doc-body{
  font-size:6.1pt;
  line-height:1.28;
}
.fragment-page[data-layout-variant="tight"] .fragment-doc-body p{
  margin-bottom:2px;
}
.fragment-page[data-layout-variant="dense"]{
  gap:3px;
  padding:0;
}
.fragment-page[data-layout-variant="dense"] .page-header{
  margin-bottom:3px;
  padding-bottom:3px;
}
.fragment-page[data-layout-variant="dense"] .fragment-doc-type{
  margin-bottom:2px;
}
.fragment-page[data-layout-variant="dense"] .fragment-doc-header{
  font-size:5.4pt;
  line-height:1.2;
  margin-bottom:2px;
}
.fragment-page[data-layout-variant="dense"] .fragment-doc-body{
  font-size:5.85pt;
  line-height:1.22;
}
.fragment-page[data-layout-variant="dense"] .fragment-doc-body p{
  margin-bottom:1px;
}
.fragment-page[data-layout-variant="dense"] .fragment-doc-sig{
  font-size:5.2pt;
  padding-top:4px;
}
.page-fragment-doc[data-fragment-count="2"]{
  justify-content:flex-start;
}
.fragment-evidence-layout{
  flex:1;
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap:8px;
  min-height:0;
}
.fragment-evidence-layout[data-fragment-count="3"],
.fragment-evidence-layout[data-fragment-count="4"]{
  grid-template-columns:1fr;
  grid-template-rows:minmax(0, 1.05fr) minmax(0, 0.95fr);
}
.fragment-evidence-primary,
.fragment-evidence-sidebar,
.fragment-evidence-secondary,
.fragment-evidence-cell{
  min-height:0;
}
.fragment-evidence-primary{
  display:flex;
  min-height:0;
}
.fragment-evidence-sidebar{
  display:flex;
  min-height:0;
}
.fragment-evidence-secondary{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:8px;
  min-height:0;
}
.fragment-evidence-layout[data-fragment-count="4"] .fragment-evidence-secondary{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.fragment-evidence-cell{
  display:flex;
}
.fragment-page[data-shell-family="classified-packet"]{
  position:relative;
}
.fragment-page[data-shell-family="classified-packet"]::before{
  content:"ARCHIVE PACKET";
  position:absolute;
  top:7px;
  right:10px;
  font-family:var(--mono);
  font-size:4.8pt;
  letter-spacing:.18em;
  color:color-mix(in srgb, var(--accent) 68%, var(--paper) 32%);
}
.fragment-page[data-shell-family="classified-packet"] .page-header{
  border-bottom-width:2px;
}
.fragment-page[data-shell-family="classified-packet"] .page-header,
.fragment-page[data-shell-family="classified-packet"] .fragment-doc-type,
.fragment-page[data-shell-family="classified-packet"] .fragment-doc-header,
.fragment-page[data-shell-family="classified-packet"] .fragment-doc-sig{
  font-family:var(--mono);
}
.fragment-page[data-shell-family="classified-packet"][data-fragment-count="2"] .fragment-block:first-of-type{
  max-width:97%;
  align-self:flex-start;
}
.fragment-page[data-shell-family="classified-packet"][data-fragment-count="2"] .fragment-block:nth-of-type(2){
  max-width:89%;
  align-self:flex-end;
}
.fragment-page[data-shell-family="classified-packet"] .fragment-doc-body{
  font-size:6.05pt;
  line-height:1.28;
}

/* Individual fragment */
.fragment-block{
  flex:1;
  display:flex;
  flex-direction:column;
  position:relative;
  min-height:0;
}
.fragment-block[data-paper-tone="aged"] .fragment-doc{
  background:linear-gradient(180deg, rgba(232,223,200,.88) 0%, rgba(226,214,189,.94) 100%);
}
.fragment-block[data-paper-tone="warm"] .fragment-doc{
  background:linear-gradient(180deg, rgba(244,238,228,.92) 0%, rgba(236,229,215,.96) 100%);
}
.fragment-block[data-paper-tone="cold"] .fragment-doc{
  background:linear-gradient(180deg, rgba(239,239,236,.92) 0%, rgba(229,231,229,.96) 100%);
}
.fragment-block[data-primary-typeface="mono"] .fragment-doc-body,
.fragment-block[data-primary-typeface="mono"] .fragment-doc-header,
.fragment-block[data-primary-typeface="mono"] .fragment-doc-sig{
  font-family:var(--mono);
}
.fragment-block[data-primary-typeface="serif"] .fragment-doc-body,
.fragment-block[data-primary-typeface="serif"] .fragment-doc-header,
.fragment-block[data-primary-typeface="serif"] .fragment-doc-sig{
  font-family:var(--serif);
}
.fragment-block[data-header-style="letterhead"] .fragment-doc-type{
  padding-bottom:5px;
  border-bottom:1px solid var(--rule);
}
.fragment-block[data-header-style="handwritten"] .fragment-doc-type{
  font-family:var(--display);
  font-style:italic;
  letter-spacing:.04em;
  text-transform:none;
}
.fragment-block[data-header-style="none"] .fragment-doc-type{
  opacity:.65;
  border-bottom:none;
  padding-bottom:0;
}
.fragment-block[data-has-annotations="true"] .fragment-doc{
  box-shadow:inset 0 0 0 1px rgba(139,42,42,.08);
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc{
  background:
    linear-gradient(180deg, color-mix(in srgb, white 82%, var(--paper) 18%), color-mix(in srgb, white 68%, var(--paper-2) 32%));
  border-width:1.4px;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--theme-panel-border,var(--rule)) 18%, transparent 82%);
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.form::before,
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.report::before,
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.inspection::before{
  content:"FILED SURFACE";
  display:block;
  margin-bottom:5px;
  padding-bottom:4px;
  border-bottom:1px solid color-mix(in srgb, var(--rule) 28%, transparent 72%);
  font-family:var(--mono);
  font-size:4.8pt;
  letter-spacing:.2em;
  color:color-mix(in srgb, var(--accent) 54%, var(--paper) 46%);
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.report::before{
  content:"ANALYSIS RECORD";
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.inspection::before{
  content:"INSPECTION SURFACE";
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc-header{
  border-bottom:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 62%, transparent 38%);
  padding-bottom:5px;
  margin-bottom:5px;
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc-body{
  background:
    linear-gradient(180deg, transparent 0, transparent calc(100% - 1px), color-mix(in srgb, var(--theme-field-rule,var(--rule)) 10%, transparent 90%) calc(100% - 1px));
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.form,
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.inspection{
  border-width:2px;
  background:
    linear-gradient(180deg, color-mix(in srgb, white 86%, var(--paper) 14%), color-mix(in srgb, white 74%, var(--paper-2) 26%));
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.form .fragment-doc-body,
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.inspection .fragment-doc-body,
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.report .fragment-doc-body{
  font-family:var(--mono);
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc.field-note{
  border-style:solid;
  background:
    repeating-linear-gradient(
      to bottom,
      color-mix(in srgb, white 88%, var(--paper) 12%),
      color-mix(in srgb, white 88%, var(--paper) 12%) 18px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 10%, white 90%) 18px,
      color-mix(in srgb, var(--theme-field-rule,var(--rule)) 10%, white 90%) 19px
    );
}
.fragment-block[data-shell-family="classified-packet"] .fragment-doc-type{
  letter-spacing:.16em;
}

/* Large fragment number in margin */
.fragment-number{
  font-family:var(--mono);
  font-size:12pt;
  color:var(--rule);
  position:absolute;
  top:1px;
  right:-1px;
  line-height:1;
  letter-spacing:-.02em;
}
.page-fragment-doc[data-fragment-count="2"] .fragment-block{
  flex:0 0 auto;
}
.page-fragment-doc[data-fragment-count="2"] .fragment-doc{
  flex:0 0 auto;
}
/* Left-hand pages: number on left margin */
.fragment-page[data-side="verso"] .fragment-number{
  right:auto;
  left:-8px;
}

/* Fragment document types */
.fragment-doc{
  border:1px solid var(--theme-panel-border,var(--rule));
  border-radius:var(--theme-panel-radius,3px);
  padding:7px 11px 8px;
  flex:1;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--theme-doc-fill,rgba(232,223,200,.78));
  box-shadow:none;
}
.fragment-doc-type{
  font-size:5.1pt;
  color:var(--theme-doc-badge-color,var(--accent));
  margin-bottom:3px;
  overflow-wrap: anywhere;
}
.fragment-doc-header{
  font-family:var(--mono);
  font-size:5.8pt;
  color:var(--muted);
  margin-bottom:3px;
  line-height:1.25;
}
.fragment-doc-continuation{
  font-family:var(--mono);
  font-size:5pt;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:3px;
}
.fragment-doc-body{
  font-family:var(--serif);
  font-size:6.35pt;
  line-height:1.31;
  color:var(--ink);
  flex:1;
  overflow-wrap: anywhere;
}
.fragment-doc-body p{
  margin-bottom:2px;
}
.fragment-doc-sig{
  font-family:var(--mono);
  font-size:5.7pt;
  color:var(--muted);
  margin-top:auto;
  padding-top:5px;
  border-top:1px solid var(--rule);
}

/* Memo variant */
.fragment-doc.memo{
  border-left:3px solid var(--ink);
}
.fragment-doc.memo .fragment-doc-header{
  border-bottom:1px solid var(--rule);
  padding-bottom:6px;
}

/* Letter variant */
.fragment-doc.letter{
  border-style:none;
  background:white;
  padding:16px 20px;
}
.fragment-doc.letter .fragment-doc-body{
  font-style:italic;
}
.fragment-doc.correspondence{
  border-style:none;
  background:white;
  padding:11px 13px;
}
.fragment-doc.correspondence .fragment-doc-body{
  font-style:italic;
  line-height:1.28;
}

/* Field note variant */
.fragment-doc.field-note{
  background:var(--card);
  border-style:dashed;
}
.fragment-doc.field-note .fragment-doc-body{
  font-family:var(--mono);
  font-size:6.45pt;
  line-height:1.34;
}

/* Transcript variant */
.fragment-doc.transcript{
  background:white;
}
.fragment-doc.transcript .fragment-doc-body{
  font-family:var(--mono);
  font-size:6.05pt;
  line-height:1.34;
}

/* Report variant */
.fragment-doc.report{
  border-left:3px solid var(--accent);
}
.fragment-doc.anomaly{
  border:2px solid var(--accent);
  background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(232,223,200,.9) 100%);
}
.fragment-doc.anomaly .fragment-doc-type{
  color:var(--ink);
}

/* Form variant */
.fragment-doc.form{
  border:2px solid var(--ink);
}
.fragment-doc.form .fragment-doc-type{
  color:var(--ink);
  font-weight:700;
}
.fragment-doc.inspection{
  border:2px solid var(--ink);
  background:rgba(255,255,255,.55);
}
.fragment-doc.inspection .fragment-doc-type{
  color:var(--ink);
  font-weight:700;
}
.fragment-doc.inspection .fragment-doc-body{
  font-size:5.95pt;
  line-height:1.24;
}

/* ══════════════════════════════════════════════════════════════
   PASSWORD ASSEMBLY PAGE
   ══════════════════════════════════════════════════════════════ */
.password-assembly-page{
  padding:6px 8px 0 8px;
  display:flex;
  flex-direction:column;
  height:100%;
}
.password-assembly-page[data-layout-variant="compact"]{
  padding:4px 6px 0 6px;
}
.password-assembly-page[data-layout-variant="compact"] .password-assembly-grid{
  gap:8px;
}
.password-assembly-page[data-layout-variant="compact"] .password-assembly-subtitle{
  margin-bottom:18px;
}
.password-assembly-title{
  font-size:18pt;
  color:var(--ink);
  margin-bottom:6px;
}
.password-assembly-subtitle{
  font-family:var(--serif);
  font-style:italic;
  font-size:8pt;
  color:var(--muted);
  margin-bottom:24px;
}
.password-assembly-grid{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:20px;
}
.password-assembly-hint{
  font-family:var(--mono);
  font-size:6pt;
  color:var(--muted);
  letter-spacing:.08em;
}
.password-assembly-row{
  display:flex;
  align-items:center;
  gap:16px;
}
.password-assembly-week-label{
  font-family:var(--mono);
  font-size:7.5pt;
  letter-spacing:.12em;
  color:var(--muted);
  min-width:80px;
}
.password-assembly-cell{
  width:32px;
  height:32px;
  border:2px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  font-size:14pt;
  font-weight:700;
}
.password-assembly-arrow{
  font-family:var(--mono);
  font-size:12pt;
  color:var(--rule);
}
.password-final-assembly{
  border-top:2px solid var(--ink);
  padding-top:20px;
  margin-top:auto;
}
.password-final-label{
  font-family:var(--mono);
  font-size:8pt;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:10px;
}
.password-final-row{
  display:flex;
  gap:6px;
  margin-bottom:16px;
}
.password-final-cell{
  width:32px;
  height:32px;
  border:2px solid var(--theme-box-border,var(--ink));
  border-radius:2px;
  background:white;
}
.password-unlock-instruction{
  font-family:var(--serif);
  font-size:8pt;
  font-style:italic;
  line-height:1.5;
  color:var(--muted);
}
.password-unlock-url{
  font-family:var(--mono);
  font-size:9pt;
  color:var(--ink);
  font-weight:700;
  margin-top:6px;
  display:block;
  overflow-wrap: anywhere;
}

/* ══════════════════════════════════════════════════════════════
   ENDINGS / UNLOCK PAGE
   ══════════════════════════════════════════════════════════════ */
.endings-page{
  padding:6px 8px 0 8px;
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
}
.endings-page[data-layout-variant="compact"]{
  padding:4px 6px 0 6px;
}
.endings-page[data-layout-variant="document"] .endings-title{
  text-align:left;
}
.endings-page[data-layout-variant="letter"]{
  padding:10px 12px 4px 12px;
}
.endings-page[data-ending-treatment="warm-letter"]{
  background:linear-gradient(180deg, #f4eee2 0%, #efe5d7 100%);
}
.endings-page[data-ending-treatment="official-document"]{
  background:linear-gradient(180deg, #ebe4d6 0%, #ded2be 100%);
}
.endings-title{
  font-size:22pt;
  color:var(--ink);
  margin-bottom:12px;
  text-align:center;
}
.endings-body{
  font-size:7pt;
  color:var(--ink);
  flex:1;
  overflow:hidden;
}
.endings-body p{
  margin-bottom:3px;
}
.endings-final-line{
  font-family:var(--display);
  font-style:italic;
  font-size:9pt;
  color:var(--ink);
  margin-top:10px;
  text-align:center;
  padding-top:8px;
  border-top:1px solid var(--rule);
}
.endings-url{
  font-family:var(--mono);
  font-size:8pt;
  letter-spacing:.08em;
  color:var(--ink);
  font-weight:700;
  text-align:center;
  margin-top:8px;
  padding:6px 12px;
  border:2px solid var(--ink);
  border-radius:3px;
  overflow-wrap: anywhere;
}

.interlude-page{
  padding:6px 8px 0 8px;
  display:flex;
  flex-direction:column;
  height:100%;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(246,240,227,.94) 0%, rgba(238,229,210,.98) 100%);
}
.interlude-page[data-layout-variant="artifact"]{
  background:linear-gradient(180deg, rgba(235,227,212,.94) 0%, rgba(226,214,192,.98) 100%);
}
.interlude-title{
  font-size:18pt;
  color:var(--ink);
  margin-bottom:10px;
}
.interlude-reason{
  font-family:var(--mono);
  font-size:6.2pt;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:10px;
}
.interlude-body{
  font-family:var(--serif);
  font-style:italic;
  font-size:10pt;
  line-height:1.65;
  color:var(--ink);
  max-width:88%;
}
.interlude-payload{
  margin-top:14px;
  padding-top:10px;
  border-top:1px solid color-mix(in srgb, var(--theme-field-rule,var(--rule)) 68%, transparent 32%);
}
.interlude-payload-body{
  font-family:var(--serif);
  font-size:7.4pt;
  line-height:1.45;
  max-width:88%;
}
.interlude-payload-note{
  font-family:var(--mono);
  font-size:5.6pt;
  line-height:1.3;
  color:var(--muted);
  margin-bottom:6px;
}
.interlude-fragment-row{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.interlude-password-element .password-box-row{
  margin-top:6px;
}
.password-box-hint{
  font-family:var(--mono);
  font-size:7pt;
  color:color-mix(in srgb, var(--ink) 32%, var(--paper) 68%);
}

@keyframes unlock-slide-in{
  from{transform:translateX(-50%) translateY(100%);opacity:0;}
  to{transform:translateX(-50%) translateY(0);opacity:1;}
}
.reader-unlock{
  position:fixed;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  width:min(calc(100vw - 96px), 5.8in);
  z-index:1200;
  animation:unlock-slide-in .4s ease-out;
}
#booklet-container[data-layout-mode="spread"] + .reader-unlock,
#booklet-container[data-layout-mode="booklet"] + .reader-unlock{
  width:min(calc(100vw - 88px), 11in);
}
body[data-demo-view="true"] .reader-unlock{
  top:12px;
  bottom:auto;
  width:min(calc(100vw - 32px), 5.8in);
}
.reader-unlock-bar{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:50px;
  padding:8px 16px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:4px;
  background:linear-gradient(90deg, rgba(18,16,14,.965) 0%, rgba(39,34,29,.965) 52%, rgba(18,16,14,.965) 100%);
  box-shadow:0 12px 30px rgba(0,0,0,.28);
}
.reader-unlock-copy{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.reader-unlock .unlock-icon{
  font-size:12pt;
  color:#c8ba78;
  line-height:1;
}
.reader-unlock-label{
  font-family:var(--mono);
  font-size:6.8pt;
  letter-spacing:.12em;
  color:rgba(241,235,224,.8);
  text-transform:none;
  white-space:nowrap;
}
.reader-unlock-input{
  width:108px;
  height:32px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:5px;
  background:rgba(255,255,255,.06);
  color:var(--paper);
  font-family:var(--mono);
  font-size:10.2pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-align:center;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.reader-unlock-input[data-demo-password="true"][data-revealed="false"]{
  color:transparent;
  text-shadow:0 0 10px rgba(241,235,224,.95);
  cursor:pointer;
  user-select:none;
}
.reader-unlock-input::placeholder{
  color:rgba(255,255,255,.2);
  letter-spacing:.18em;
}
.reader-unlock-input:focus{
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.09);
}
.reader-unlock-btn,
.reader-unlock-alt,
.reader-unlock-status{
  min-width:112px;
  height:32px;
  border-radius:5px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  font-family:var(--mono);
  font-size:8.5pt;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.reader-unlock-btn{
  border:none;
  background:#9e2f2a;
  color:#f8efe2;
  cursor:pointer;
  transition:background .18s ease, opacity .18s ease;
}
.reader-unlock-btn:hover{
  background:#b33631;
}
.reader-unlock-btn:disabled{
  opacity:.6;
  cursor:default;
}
.reader-unlock-alt{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
  color:rgba(241,235,224,.86);
  cursor:pointer;
}
.reader-unlock-alt:hover{
  background:rgba(255,255,255,.12);
}
.reader-unlock-status{
  display:none;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:rgba(241,235,224,.78);
}
.reader-unlock-hint{
  margin-top:8px;
  text-align:center;
  font-family:var(--mono);
  font-size:5.6pt;
  letter-spacing:.16em;
  text-transform:none;
  color:rgba(24,23,20,.42);
}
.reader-unlock[data-state="pending"] .reader-unlock-status{
  background:rgba(255,255,255,.08);
}
.reader-unlock[data-state="error"] .reader-unlock-input{
  border-color:rgba(158,47,42,.9);
  background:rgba(158,47,42,.12);
}
.reader-unlock[data-state="error"] .reader-unlock-status{
  color:#f2c0b7;
  background:rgba(158,47,42,.18);
  border-color:rgba(158,47,42,.5);
}
.reader-unlock[data-state="unlocked"] .reader-unlock-label{
  color:rgba(241,235,224,.72);
}
.reader-unlock[data-state="unlocked"] .reader-unlock-input{
  border-color:rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);
  color:rgba(241,235,224,.9);
}
.reader-unlock[data-state="unlocked"] .reader-unlock-btn{
  display:none;
}
.reader-unlock[data-state="unlocked"] .reader-unlock-status{
  min-width:132px;
  color:#cde7c7;
  background:rgba(45,104,53,.9);
  border-color:rgba(104,170,112,.9);
}

/* ══════════════════════════════════════════════════════════════
   BACK COVER
   ══════════════════════════════════════════════════════════════ */
.back-cover{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:8px 8px 0 8px;
}
.back-cover-colophon{
  font-family:var(--mono);
  font-size:6pt;
  letter-spacing:.1em;
  color:var(--muted);
  line-height:1.8;
}
.back-cover-meta{
  margin-top:14px;
  font-family:var(--mono);
  font-size:5.8pt;
  letter-spacing:.08em;
  color:var(--rule);
  line-height:1.7;
}
.back-cover-mark{
  font-family:var(--display);
  font-style:italic;
  font-size:12pt;
  color:var(--rule);
  margin-top:20px;
}

/* ══════════════════════════════════════════════════════════════
   FOUND DOCUMENT (shared — overflow right + fragment)
   ══════════════════════════════════════════════════════════════ */
.found-doc{
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.found-doc-type{
  font-family:var(--mono);
  font-size:5.5pt;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:6px;
  overflow-wrap: anywhere;
}
.found-doc-from{
  font-family:var(--mono);
  font-size:7pt;
  color:var(--muted);
  margin-bottom:4px;
}
.found-doc-to{
  font-family:var(--mono);
  font-size:7pt;
  color:var(--muted);
  margin-bottom:12px;
}
.found-doc-title{
  font-family:var(--display);
  font-style:italic;
  font-size:14pt;
  color:var(--ink);
  margin-bottom:10px;
  line-height:1.15;
}

#booklet-container[data-archetype="pastoral"]{
  --accent:#8b2a2a;
}

#booklet-container[data-archetype="pastoral"] .page-boundary{
  inset:var(--page-live-top,0.3in) var(--page-live-right,0.3in) var(--page-live-bottom,0.28in) var(--page-live-left,0.3in);
}

#booklet-container[data-archetype="pastoral"] .booklet-page{
  box-shadow:0 18px 30px rgba(0,0,0,.12);
}

#booklet-container[data-archetype="pastoral"] .cover-page{
  justify-content:flex-start;
  padding:0;
}

#booklet-container[data-archetype="pastoral"] .cover-designation{
  font-size:5.75pt;
  letter-spacing:.28em;
  color:var(--accent);
  border:none;
  margin-bottom:9px;
}

#booklet-container[data-archetype="pastoral"] .cover-subtitle{
  font-size:5.7pt;
  letter-spacing:.18em;
  color:#8c8274;
  margin-bottom:9px;
}

#booklet-container[data-archetype="pastoral"] .cover-hero{
  max-width:100%;
}

#booklet-container[data-archetype="pastoral"] .cover-title{
  max-width:100%;
  font-size:32pt;
  line-height:.92;
  letter-spacing:-.025em;
  margin-bottom:12px;
}

#booklet-container[data-archetype="pastoral"] .cover-tagline{
  max-width:78%;
  font-size:9.05pt;
  line-height:1.42;
  color:#8b8174;
  margin-bottom:30px;
}

#booklet-container[data-archetype="pastoral"] .cover-rule{
  width:44px;
  background:var(--accent);
  margin-bottom:16px;
}

#booklet-container[data-archetype="pastoral"] .cover-colophon{
  max-width:92%;
  font-size:5.9pt;
  letter-spacing:.15em;
  line-height:1.64;
  color:#8e8475;
}

#booklet-container[data-archetype="pastoral"] .rules-header,
#booklet-container[data-archetype="pastoral"] .page-header,
#booklet-container[data-archetype="pastoral"] .rp-header,
#booklet-container[data-archetype="pastoral"] .boss-header{
  font-size:6.1pt;
  letter-spacing:.24em;
  border-bottom-width:1px;
}

#booklet-container[data-archetype="pastoral"] .week-title{
  font-size:17pt;
  line-height:1.03;
}

#booklet-container[data-archetype="pastoral"] .session-card,
#booklet-container[data-archetype="pastoral"] .fragment-doc,
#booklet-container[data-archetype="pastoral"] .companion-component,
#booklet-container[data-archetype="pastoral"] .boss-mechanism,
#booklet-container[data-archetype="pastoral"] .boss-proof,
#booklet-container[data-archetype="pastoral"] .boss-branch-note{
  box-shadow:none;
}

#booklet-container[data-archetype="pastoral"] .session-card{
  background:rgba(244,239,228,.72);
  border-color:rgba(188,180,165,.8);
}

#booklet-container[data-archetype="pastoral"] .story-prompt{
  background:transparent;
  border-left-width:1px;
  border-left-color:var(--accent);
  padding-left:8px;
  color:#8b8174;
}

#booklet-container[data-archetype="pastoral"] .doc-label,
#booklet-container[data-archetype="pastoral"] .fragment-doc-type,
#booklet-container[data-archetype="pastoral"] .cipher-zone::before,
#booklet-container[data-archetype="pastoral"] .boss-right::before,
#booklet-container[data-archetype="pastoral"] .week-kicker{
  color:var(--accent);
}

#booklet-container[data-archetype="pastoral"] .fragment-doc{
  border-radius:2px;
  background:rgba(245,240,232,.84);
}

#booklet-container[data-archetype="pastoral"] .fragment-doc.report,
#booklet-container[data-archetype="pastoral"] .fragment-doc.memo{
  border-left-width:2px;
}

#booklet-container[data-archetype="pastoral"] .found-doc{
  padding:8px 10px;
}
.found-doc-body{
  font-family:var(--serif);
  font-size:8.5pt;
  line-height:1.6;
  color:var(--ink);
  flex:1;
  overflow-wrap: anywhere;
}
.found-doc-body p{
  margin-bottom:8px;
}
.found-doc-sig{
  font-family:var(--mono);
  font-size:6.5pt;
  color:var(--muted);
  margin-top:auto;
  padding-top:10px;
  border-top:1px solid var(--rule);
}

/* ══════════════════════════════════════════════════════════════
   BINARY CHOICE (one per block, on a session card)
   ══════════════════════════════════════════════════════════════ */
.binary-choice{
  padding-top:6px;
  border-top:1px solid var(--rule);
}
.workout-left[data-card-count="2"] .binary-choice{
  padding-top:4px;
}
.binary-choice-label{
  font-family:var(--serif);
  font-size:7pt;
  font-style:italic;
  color:var(--ink);
  margin-bottom:6px;
  line-height:1.4;
}
.workout-left[data-card-count="2"] .binary-choice-label{
  font-size:6.5pt;
  margin-bottom:4px;
  line-height:1.28;
}
.binary-choice-option{
  display:flex;
  align-items:flex-start;
  gap:6px;
  margin-bottom:4px;
}
.workout-left[data-card-count="2"] .binary-choice-option{
  gap:5px;
  margin-bottom:3px;
}
.binary-choice-marker{
  width:10px;
  height:10px;
  border:1.5px solid var(--ink);
  border-radius:50%;
  flex-shrink:0;
  margin-top:1px;
}
.workout-left[data-card-count="2"] .binary-choice-marker{
  width:9px;
  height:9px;
}
.binary-choice-text{
  font-family:var(--serif);
  font-size:7pt;
  line-height:1.4;
  color:var(--ink);
}
.session-card[data-density-variant="dense"] .binary-choice{
  padding-top:4px;
}
.session-card[data-density-variant="tight"] .binary-choice{
  padding-top:3px;
}
.session-card[data-density-variant="dense"] .binary-choice-label{
  font-size:6.2pt;
  margin-bottom:3px;
  line-height:1.2;
}
.session-card[data-density-variant="tight"] .binary-choice-label{
  font-size:5.9pt;
  margin-bottom:2px;
  line-height:1.14;
}
.session-card[data-density-variant="dense"] .binary-choice-option{
  gap:4px;
  margin-bottom:2px;
}
.session-card[data-density-variant="tight"] .binary-choice-option{
  gap:3px;
  margin-bottom:2px;
}
.session-card[data-density-variant="dense"] .binary-choice-marker{
  width:8px;
  height:8px;
}
.session-card[data-density-variant="tight"] .binary-choice-marker{
  width:7px;
  height:7px;
}
.session-card[data-density-variant="dense"] .binary-choice-text{
  font-size:6.1pt;
  line-height:1.18;
}
.session-card[data-density-variant="tight"] .binary-choice-text{
  font-size:5.8pt;
  line-height:1.1;
}
.workout-left[data-card-count="2"] .binary-choice-text{
  font-size:6.4pt;
  line-height:1.26;
}

.page-folio{
  position:absolute;
  bottom:0.14in;
  z-index:3;
  pointer-events:none;
  font-family:var(--mono);
  font-size:7pt;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink);
}
.booklet-page.page-right > .page-folio{
  left:0.18in;
}
.booklet-page.page-left > .page-folio{
  right:0.18in;
}

/* ══════════════════════════════════════════════════════════════
   SURVEY FOOTER (progress pips)
   ══════════════════════════════════════════════════════════════ */
.survey-footer{
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:6px;
  margin-top:auto;
}
.survey-pips{
  display:flex;
  gap:4px;
}
.survey-pip{
  width:8px;
  height:8px;
  border-radius:50%;
  border:1.5px solid var(--ink);
}
.survey-pip.filled{
  background:var(--ink);
}
.survey-pip.current{
  border-color:var(--accent);
  background:var(--accent);
}
.survey-footer-note{
  font-family:var(--mono);
  font-size:5.5pt;
  color:var(--muted);
  letter-spacing:.06em;
}

/* ══════════════════════════════════════════════════════════════
   PRINT MEDIA QUERIES
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 600px) {
  .app-chrome{
    width:calc(100vw - 20px);
    margin:10px auto 0;
    padding:12px;
    grid-template-columns:1fr;
    top:10px;
  }
  .app-toolbar {
    flex-direction: column;
    align-items: stretch;
    margin-left:0;
  }
  .app-action-group,
  .app-action-group--reader{
    width:100%;
    justify-content:stretch;
  }
  .app-action-group > *,
  .app-action-group--reader > *{
    width:100%;
  }
  .view-toggle{
    padding:0;
    align-items:stretch;
    flex-direction:column;
  }
  .renderer-empty-state{
    padding:18px 10px 2px;
  }
  .renderer-empty-panel{
    width:100%;
    padding:18px;
    border-radius:22px;
  }
  .renderer-empty-title{
    font-size:16pt;
  }
  .renderer-empty-steps{
    grid-template-columns:1fr;
  }
  .renderer-empty-actions > *{
    width:100%;
  }
  .author-tools{
    width: 100%;
  }
  .author-tools-label{
    width:100%;
  }
  .author-tools input,
  .author-tools button{
    width:100%;
  }
  
  .app-status,
  .encrypt-status,
  .unlock-status {
    overflow-wrap: anywhere;
    letter-spacing: normal;
  }

  .reader-unlock{
    width:calc(100vw - 20px);
    bottom:10px;
  }
  .reader-unlock-bar{
    flex-wrap:wrap;
    gap:12px;
    padding:14px 16px;
    min-height:auto;
  }
  .reader-unlock-copy{
    width:100%;
    justify-content:center;
  }
  .reader-unlock-label{
    white-space:normal;
    text-align:center;
  }
  .reader-unlock-input,
  .reader-unlock-btn,
  .reader-unlock-alt,
  .reader-unlock-status{
    width:100%;
    min-width:0;
  }
  .reader-unlock-hint{
    letter-spacing:.22em;
  }
}

@page{
  size:letter landscape;
  margin:0;
}
@media print{
  @page{
    size:letter landscape;
    margin:0;
  }
  html,body{
    background:white;
    padding:0;
    margin:0;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .no-print,
  .app-chrome{
    display:none !important;
  }
  #booklet-container{
    display:block;
    padding:0;
    margin:0;
  }
  .booklet-grid{
    gap:0 !important;
  }
  .spread-row{
    margin:0 !important;
    padding:0 !important;
  }
  .booklet-page{
    box-shadow:none;
    border-radius:0;
    overflow:hidden;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  [data-layout-mode="single"] .booklet-page{
    width:5.5in;
    height:8.5in;
    margin:0;
    page-break-after:always;
    page-break-inside:avoid;
    break-after:page;
    break-inside:avoid;
  }
  [data-layout-mode="single"] .booklet-page:last-child{
    page-break-after:auto;
    break-after:auto;
  }

  [data-layout-mode="spread"] .reader-spread,
  [data-layout-mode="booklet"] .printer-sheet{
    display:flex;
    flex-direction:row;
    width:11in;
    height:8.5in;
    margin:0;
    page-break-after:always;
    page-break-inside:avoid;
    break-after:page;
    break-inside:avoid;
    box-shadow:none;
  }
  [data-layout-mode="spread"] .reader-spread:last-child,
  [data-layout-mode="booklet"] .printer-sheet:last-child{
    page-break-after:auto;
    break-after:auto;
  }
  [data-layout-mode="spread"] .booklet-page,
  [data-layout-mode="booklet"] .booklet-page{
    width:5.5in;
    height:8.5in;
    flex-shrink:0;
    margin:0;
    page-break-after:auto;
    page-break-inside:avoid;
    break-after:auto;
    break-inside:avoid;
  }
  .blank-page{
    background:white;
  }
}
