@import url("/edition-fonts.css");
/* Shared shell tokens; page-specific reading typography remains local. */
:root {
  --site-paper: #f7f3ea; --site-ink: #242424; --site-muted: #615d55;
  --site-line: #ccc5b8; --site-accent: #973a1b; --site-hover: #eae3d6;
  --site-space-1: .25rem; --site-space-2: .5rem; --site-space-3: .75rem;
  --site-space-4: 1rem; --site-space-6: 1.5rem; --site-space-8: 2rem;
  --site-radius: .5rem; --site-measure: 90rem;
  --site-blue: #35585b; --site-success: #326248; --site-panel: #fffdf7; --site-danger: #a22b35; --site-on-accent: #fffdf7;
  --site-shadow: 0 4px 20px #2424240d;
  --site-font: system-ui, -apple-system, "Segoe UI", sans-serif;
  --site-serif: "Edition Garamond", Georgia, serif;
  --site-text-small: .875rem; --site-text: 1rem; --site-title: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
}
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] {
  color-scheme: dark; --site-paper: #201f1c; --site-ink: #eee8db;
  --site-muted: #c2bbae; --site-line: #514c43; --site-accent: #f0a484; --site-hover: #35312a;
  --site-blue: #a0c3c4; --site-success: #a2cbb2; --site-panel: #292722; --site-danger: #ff9da3; --site-on-accent: #241e18; --site-shadow: 0 4px 20px #0003;
}
.site-navigation, .site-footer {
  box-sizing: border-box; color: var(--site-ink); background: var(--site-paper);
  font: 14px/1.4 system-ui, sans-serif; padding: var(--site-space-3) max(var(--site-space-4), calc((100% - var(--site-measure)) / 2));
}
.site-navigation {
  position: sticky; top: 0; z-index: 1900; display: flex; flex-wrap: wrap;
  flex-direction: row; justify-content: flex-start; align-items: center; gap: var(--site-space-2); border-bottom: 1px solid var(--site-line);
  margin: 0; border-radius: 0; box-shadow: none;
}
.site-navigation :is(a, button, summary), .site-footer a {
  box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; min-width: 44px; padding: var(--site-space-2) var(--site-space-3);
  color: inherit; font: inherit; text-decoration: none; border-radius: var(--site-radius);
  white-space: normal; cursor: pointer; margin: 0;
}
.site-navigation button { background: transparent; border: 1px solid var(--site-line); box-shadow: none; }
.site-navigation > a { font-weight: 650; white-space: nowrap; }
.site-navigation :is(a,button,summary):hover, .site-footer a:hover { background: var(--site-hover); }
.site-navigation :is(a,button,summary):focus-visible, .site-footer a:focus-visible { outline: 2px solid var(--site-accent); outline-offset: 2px; }
.site-navigation [aria-current] { color: var(--site-accent); background: var(--site-hover); text-decoration: underline; text-underline-offset: .3em; }
.site-navigation nav { display: flex; flex: 1; flex-wrap: wrap; gap: var(--site-space-1); }
.site-navigation > button { display: none; }
.site-navigation details { position: relative; margin-left: auto; }
.site-navigation summary { max-width: 15rem; overflow-wrap: anywhere; }
.site-navigation details:not([open]) > :not(summary) { display: none; }
.site-navigation .site-account-panel {
  position: absolute; right: 0; top: calc(100% + .5rem); width: min(20rem, calc(100vw - 2rem));
  max-height: min(32rem, calc(100dvh - 100px)); overflow-y: auto;
  padding: var(--site-space-3); border: 1px solid var(--site-line); border-radius: var(--site-radius);
  background: var(--site-paper); box-shadow: var(--site-shadow);
}
.site-navigation .site-account-panel :is(a,button) { display: flex; width: 100%; justify-content: flex-start; }
.site-navigation .site-account-name { margin: 0 0 .5rem; padding: .5rem; overflow-wrap: anywhere; }
.site-navigation #user-section { display: block; }
.site-navigation #user-section.hidden { display: none; }
.site-navigation #token-display { margin: 0; padding: .5rem; font: inherit; }
.site-navigation .site-account-panel p[role] { white-space: normal; overflow-wrap: anywhere; }
.site-navigation details[open] > :not(summary) { display: block; }
.site-navigation details form { margin: 0; }
.site-navigation button:disabled { opacity: .6; cursor: wait; }
#edition-run-chip { flex-basis: 100%; max-width: 100%; min-width: 0; font-size: 12px; white-space: normal; overflow-wrap: anywhere; text-align: left; }
.site-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--site-space-4); border-top: 1px solid var(--site-line); margin-top: var(--site-space-8); }
.site-footer nav { display: flex; flex-wrap: wrap; gap: var(--site-space-2); }
.site-skip { position: fixed; top: -100px; left: 1rem; z-index: 3000; padding: 1rem; color: var(--site-ink); background: var(--site-paper); }
.site-skip:focus { top: 1rem; }
@media (max-width: 1100px) {
  .site-navigation { padding: var(--site-space-2); gap: var(--site-space-1); }
  .site-navigation > button { display: inline-flex; margin-left: auto; }
  .site-navigation nav { display: none; order: 4; flex-basis: 100%; }
  .site-navigation.menu-open nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-height: 45dvh; overflow-y: auto; }
  .site-navigation nav a { justify-content: flex-start; }
  .site-navigation details { margin-left: 0; }
  .site-navigation summary { max-width: 10rem; }
}
@media (max-width: 420px) {
  .site-navigation { font-size: 12px; }
  .site-navigation :is(a,button,summary) { padding-inline: .5rem; }
  .site-navigation summary { max-width: 100%; }
}
@media print { .site-navigation, .site-footer, .site-skip { display: none; } }
#edition-header{display:none}
.site-navigation~* #reader-view,#reader-view{top:var(--site-nav-height,64px)!important;height:calc(100dvh - var(--site-nav-height,64px))!important}

/* Shared component vocabulary. Existing edition and legacy variables are aliases. */
:root, :root[data-theme] {
  --primary-color: var(--site-accent); --primary-dark: var(--site-ink);
  --secondary-color: var(--site-accent); --accent-color: var(--site-success);
  --danger-color: var(--site-danger); --text-color: var(--site-ink); --light-text: var(--site-muted);
  --border-color: var(--site-line); --light-bg: var(--site-panel); --dark-bg: var(--site-paper);
  --white: var(--site-on-accent); --button-text: var(--site-on-accent);
  --card-text: var(--site-ink); --card-light-text: var(--site-muted);
  --control-bg: var(--site-panel); --control-bg-hover: var(--site-hover); --control-border: var(--site-line);
  --shadow: var(--site-shadow);
  --paper: var(--site-paper); --ink: var(--site-ink); --muted: var(--site-muted);
  --blue: var(--site-blue); --panel: var(--site-panel); --line: var(--site-line); --accent: var(--site-accent); --soft: var(--site-hover);
}
body.site-standard { font: var(--site-text)/1.6 var(--site-font); color: var(--site-ink); background: var(--site-paper); }
.site-standard :is(h1,h2,h3,h4,h5,h6) {
  font-family: var(--site-serif); color: var(--site-ink); font-weight: 500;
  text-transform: none; letter-spacing: -.015em; text-shadow: none; padding: 0; border: 0;
}
.site-standard h1 { font-size: var(--site-title); }
.site-standard h2 { font-size: clamp(1.5rem,1.3rem + .5vw,2rem); }
.site-standard h3 { font-size: 1.375rem; }
.site-standard h3::before { content: none; }
.site-standard .app-container { max-width: var(--site-measure); padding: clamp(16px,3vw,40px); }
.site-standard .app-container > header { padding-block: 0 var(--site-space-6); margin-bottom: var(--site-space-6); }
.site-standard :is(.project-card,.admin-table-container,.wh-sidebar,.wh-main) { border-radius: var(--site-radius); box-shadow: var(--site-shadow); }
.site-standard .project-card h3 { overflow-wrap: normal; hyphens: auto; }
.site-standard :is(.button,.back-link,.primary-btn,.secondary-btn,.admin-tab-button,.user-actions button,.wh-nav-link) {
  min-height: 44px; border-radius: var(--site-radius); font-family: var(--site-font);
  padding: .625rem .875rem; text-decoration: none; box-shadow: none;
}
.site-standard :is(.button,.back-link,.secondary-btn,.wh-nav-link) { background: var(--site-panel); color: var(--site-accent); border: 1px solid var(--site-line); }
.site-standard :is(.button,.back-link,.secondary-btn,.wh-nav-link):hover { background: var(--site-hover); color: var(--site-ink); }
.site-standard :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { border-radius: var(--site-radius); font-family: var(--site-font); }
.site-standard :is(input:not([type=checkbox]):not([type=radio]),select) { min-height: 44px; }
.site-standard :is(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid var(--site-accent); outline-offset: 3px; }
.site-standard :is(button,input,select,textarea):disabled { opacity: .6; cursor: not-allowed; }
.site-standard [aria-busy=true] { cursor: wait; }
.site-standard .site-document { width: 100%; max-width: 76ch; margin: auto; padding: clamp(20px,4vw,48px) clamp(16px,3vw,32px); }
.site-standard .site-document :is(.policy-content,.changelog-content,.instructions-content,.instructions-container) { background: transparent; padding: 0; margin: 0; border: 0; box-shadow: none; max-height: none; overflow: visible; }
.site-document :is(h2,h3) { margin-top: 2rem; margin-bottom: 1rem; }
.site-document .version { border-bottom: 1px solid var(--site-line); margin-bottom: 2rem; padding-bottom: 1rem; }
.site-document .version:last-child { border: 0; }
.site-document .date { color: var(--site-muted); font-size: var(--site-text-small); }
:root[data-theme] .site-footer { background: var(--site-paper); border-color: var(--site-line); }
@media (prefers-reduced-motion: reduce) { .site-navigation *, .site-footer * { transition: none; scroll-behavior: auto; } }

.site-standard :is(button, .button, input, select, textarea) { font-family: var(--site-font); }
.site-standard .project-card:hover { transform: none; box-shadow: var(--site-shadow); }

.site-standard .site-document :is(p,li) { font: var(--site-text)/1.8 var(--site-font); }
.site-standard .site-document h2 { text-align: left; }

@media (max-width: 359px) { .site-navigation > a { padding-inline: .25rem; } .site-navigation { gap: 0; } }

/* Application controls share one vocabulary; book and plate typography stay local. */
body:not(.capture) { color: var(--site-ink); background: var(--site-paper); font-family: var(--site-font); }
body:not(.capture) :is(.collection,.landing,.studio) :is(h1,h2,h3) { font-family:var(--site-serif); font-weight:500; }
body:not(.capture) :is(.collection,.landing,.studio) h1 { font-size:var(--site-title); }
body:not(.capture) :is(.actions,.modes,.tabs,.workbench-steps,.reader-tools,.cover-breadcrumbs) :is(button,a,summary) {
  display:inline-flex; align-items:center; min-height:44px; min-width:44px; padding:.5rem .75rem; font-family:var(--site-font); border-radius:var(--site-radius);
}
body:not(.capture) :is(.primary,.primary-btn) { display:inline-flex; align-items:center; text-decoration:none; background:var(--site-accent); color:var(--site-on-accent); border:1px solid var(--site-accent); border-radius:var(--site-radius); min-height:44px; padding:.625rem .875rem; }
body:not(.capture) :is(.edition-card,.project-card) { border:1px solid var(--site-line); border-radius:var(--site-radius); background:var(--site-panel); box-shadow:var(--site-shadow); }
body:not(.capture) .edition-card:hover { transform:none; }

/* Internal navigation uses the same target and control tokens as the shell. */
body:not(.capture) :is(#reader-view,.ra-dialog,.sa-toolbar,.sa-inspector,.ra-project-bar,#preparation-segment) :is(button,select) {
  min-height:44px; min-width:44px; box-sizing:border-box;
  font-family:var(--site-font); border-radius:var(--site-radius);
}
body:not(.capture) :is(.rd-bar,.sa-toolbar,.ra-toolbar) button {
  color:var(--site-ink); background:var(--site-panel); border-color:var(--site-line);
}
.dialog-error { color:var(--site-danger); padding:var(--site-space-3); border:1px solid currentColor; }
.publication-summary { font-size:var(--site-text-small); color:var(--site-muted); }
body:not(.capture) :is(.workbench-summary,.edition-dialog) summary { min-height:44px; padding:.5rem .75rem; box-sizing:border-box; cursor:pointer; }

.cover-breadcrumbs a { color:var(--site-ink); }
