/* Journal theme shared by dashboards, landing, and account entry pages. */
body.journal-dashboard {
  --text: #302c27;
  --ink-light: #302c27;
  --accent: #793c42;
  --accent-deep: #592b30;
  --line: #cbbda9;
  --journal-paper: #faf5ec;
  --journal-inset: #e8dece;
  --journal-border: #cbbda9;
  --journal-handwriting: 'Source Serif 4', Georgia, serif;
  --journal-heading: 'Texturina', Georgia, serif;
  --journal-body: 'Source Serif 4', Georgia, serif;
  --journal-ink: #302c27;
  --journal-muted: #685a49;
  --journal-radius: 5px;
  --journal-space-1: 4px;
  --journal-space-2: 8px;
  --journal-space-3: 12px;
  --journal-space-4: 16px;
  --journal-space-5: 24px;
  --journal-space-6: 32px;
  --journal-page-title: clamp(30px, 3.5vw, 42px);
  --journal-section-title: 26px;
  --journal-card-title: 22px;
  --shadow: none;
  --shadow-soft: none;
  color: var(--text);
  background: radial-gradient(ellipse at 85% 0, #f8f3e8, transparent 65%), #eee8dc;
  font-family: 'Source Serif 4', Georgia, serif;
}
.journal-dashboard::before, .journal-dashboard::after, .journal-dashboard .snowfall-overlay { display: none; }
.journal-topbar { min-height: 88px; padding: 18px 4%; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; border-bottom: 1px solid #d9cfbe; background: #f7f3ea; }
.journal-wordmark { color: #302c27; font-size: 23px; text-decoration: none; letter-spacing: -.5px; }
.journal-wordmark span { display: block; color: #837767; font: 10px/1.8 'Cinzel', serif; text-transform: uppercase; letter-spacing: 2px; }
.journal-topbar nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; font-size: 14px; }
.journal-topbar a, .journal-topbar button { color: #534c43; }
.journal-topbar form { margin: 0; }
.journal-topbar button { border: 0; background: none; font: inherit; cursor: pointer; padding: 10px 0; }
.journal-mobile-nav { display: none; }
.journal-dashboard .shell-dashboard { width: min(1440px, 94%); padding-top: 0; margin: 0 auto; }
.journal-dashboard .dashboard-overview, .journal-dashboard .dashboard-page-content > .change-summary { display: none; }
.journal-dashboard .dashboard-page-grid { display: grid; grid-template-columns: 205px minmax(0, 1fr); gap: 0; }
.journal-dashboard .dashboard-sidebar { display: block; position: sticky; top: 20px; align-self: start; min-width: 0; width: 100%; margin: 0; max-height: calc(100dvh - 40px); overflow-y: auto; padding: 32px 20px 32px 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.journal-dashboard .dashboard-sidebar::before { display: none; }
.journal-dashboard .dashboard-sidebar { overflow: visible; z-index: 10; }
.journal-sidebar-menu { position: relative; }
.journal-sidebar-menu > summary { display: flex; justify-content: space-between; align-items: center; padding: 13px 16px; cursor: pointer; list-style: none; border: 1px solid #c9b9a6; border-radius: 4px; color: #793c42; background: #f7f2e8; font-size: 17px; }
.journal-sidebar-menu > summary::-webkit-details-marker { display: none; }
.journal-sidebar-menu[open] > summary { border-radius: 4px 4px 0 0; }
.journal-dashboard .journal-sidebar-menu:not([open]) > .dashboard-side-tabs { display: none; }
.journal-dashboard .journal-sidebar-menu > .dashboard-side-tabs { position: absolute; top: 100%; left: 0; width: max(100%, 220px); max-height: calc(100dvh - 145px); overflow-y: auto; overscroll-behavior: contain; padding: 8px; background: #f7f2e8; border: 1px solid #c9b9a6; border-top: 0; border-radius: 0 0 4px 4px; box-shadow: 0 12px 24px #302c2718; }
.journal-dashboard .dashboard-side-tabs { display: grid; grid-template-columns: minmax(0, 1fr); grid-auto-flow: row; grid-auto-columns: auto; height: auto; padding: 0; gap: 3px; overflow: visible; }
.journal-dashboard .dashboard-side-tab { display: block; min-height: 0; margin: 0; padding: 10px 13px; border: 0; border-radius: 3px; background: none; color: #685f53; box-shadow: none; transform: none; text-decoration: none; }
.journal-dashboard .dashboard-side-tab::before, .journal-dashboard .dashboard-side-tab::after, .journal-dashboard .dashboard-side-tab-icon, .journal-dashboard .dashboard-side-tab-meta { display: none; }
.journal-dashboard .dashboard-side-tab:hover { background: #e7dfd0; transform: none; }
.journal-dashboard .dashboard-side-tab.is-active { color: #793c42; background: #e7dcce; box-shadow: inset 2px 0 #793c42; transform: none; }
.journal-dashboard .dashboard-side-tab-label,
.journal-dashboard .dashboard-side-tab.is-active .dashboard-side-tab-label { color: inherit; font-family: 'Source Serif 4', Georgia, serif; font-size: 15px; line-height: 1.5; text-transform: none; letter-spacing: 0; white-space: normal; overflow-wrap: anywhere; }
.journal-dashboard .dashboard-side-tab-count { color: #793c42; background: #ded1c2; border: 0; font-size: 11px; }
.journal-dashboard .dashboard-side-tab-label-row { justify-content: space-between; }
.journal-dashboard .dashboard-page-content { min-width: 0; padding: 38px 0 72px 42px; border-left: 1px solid #d9cfbe; gap: 24px; }
.journal-dashboard .dashboard-page-grid > *,
.journal-dashboard .dashboard-page-content > *,
.journal-dashboard .dashboard-stack,
.journal-dashboard .dashboard-stack > *,
.journal-dashboard .character-form-grid > *,
.journal-dashboard .journal-columns > * { min-width: 0; max-width: 100%; }
.journal-dashboard .dashboard-section-header h2,
.journal-dashboard .section-heading h2,
.journal-dashboard .journal-home h1,
.journal-dashboard .journal-home h2,
.journal-dashboard .journal-home h3,
.journal-dashboard .journal-objective,
.journal-dashboard .journal-text-link { overflow-wrap: anywhere; white-space: normal; }
.journal-dashboard .form-actions { flex-wrap: wrap; }
.journal-dashboard input, .journal-dashboard textarea, .journal-dashboard select { min-width: 0; max-width: 100%; }
.journal-dashboard .dashboard-page-content > *, .journal-dashboard .dashboard-overview { animation: none; opacity: 1; transform: none; filter: none; }
.journal-dashboard .dashboard-page-content > :first-child:not(.journal-home):has(+ .journal-home) { display: none; }
.journal-kicker, .journal-section-line { color: #837565; font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; font-weight: 600; }
.journal-page-heading { padding-bottom: 30px; border-bottom: 1px solid #d9cfbe; margin-bottom: 32px; }
.journal-page-heading h1 { font-family: 'Source Serif 4', Georgia, serif; font-size: clamp(34px, 4vw, 52px); font-weight: 400; text-transform: none; letter-spacing: -1.8px; line-height: 1.15; margin: 10px 0 14px; color: #302c27; }
.journal-page-heading > p:last-child { color: #786d5f; margin: 0; font-size: 16px; }
.journal-columns { display: grid; grid-template-columns: minmax(0, 1fr) 265px; gap: 38px; }
.journal-reading, .journal-margin { min-width: 0; }
.journal-section-line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 14px; align-items: center; }
.journal-section-line a, .journal-text-link, .journal-tool-link { color: #793c42; text-decoration: none; }
.journal-home h2, .journal-home h3 { font-family: 'Source Serif 4', Georgia, serif; text-transform: none; letter-spacing: -.5px; color: #302c27; }
.journal-recap h2 { font-size: 32px; line-height: 1.25; font-weight: 500; margin: 22px 0; }
.journal-recap-copy { font-size: 17px; line-height: 1.9; white-space: pre-line; color: #554c41; overflow-wrap: anywhere; }
.journal-text-link { display: inline-block; font-size: 14px; margin-top: 20px; }
.journal-text-link:hover, .journal-tool-link:hover, .journal-section-line a:hover { text-decoration: underline; }
.journal-objectives { margin-top: 38px; padding-top: 23px; border-top: 1px solid #d9cfbe; }
.journal-objective { display: grid; grid-template-columns: 26px minmax(0, 1fr) 14px; gap: 12px; padding: 20px 0; border-bottom: 1px solid #e0d7c9; text-decoration: none; color: #793c42; }
.journal-entry-number { color: #a08c73; font-size: 13px; padding-top: 3px; }
.journal-objective strong { display: block; font-size: 18px; font-weight: 600; color: #302c27; }
.journal-objective strong + span { display: block; color: #786d5f; font-size: 14px; line-height: 1.6; margin-top: 6px; }
.journal-session { padding: 22px; background: #e8dfcf; border-top: 2px solid #793c42; }
.journal-session h2 { font-size: 23px; font-weight: 500; line-height: 1.35; }
.journal-margin p { color: #766a5b; font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.journal-margin .journal-session-date { color: #793c42; font-size: 19px; }
.journal-margin-section { margin-top: 26px; padding-top: 22px; border-top: 1px solid #d9cfbe; }
.journal-margin-section h3 { font-size: 20px; font-weight: 500; margin: 12px 0; }
.journal-margin .journal-text-link { margin-top: 8px; }
.journal-tool-link { display: block; padding: 9px 0; font-size: 14px; }
.journal-empty { color: #786d5f; font-style: italic; padding: 20px 0; }
.journal-dashboard .panel:not(.dashboard-sidebar) { background: #f7f2e8; color: #302c27; border: 1px solid #ddd4c5; border-radius: 4px; box-shadow: none; }
.journal-dashboard .panel::before, .journal-dashboard .panel::after { display: none; }
.journal-dashboard .button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 17px; border: 1px solid #793c42; border-radius: 5px; box-shadow: 0 1px 2px #302c2712; background: #793c42; color: #fff9ee; font-family: 'Source Serif 4', Georgia, serif; font-weight: 600; line-height: 1.4; text-transform: none; letter-spacing: 0; text-decoration: none; white-space: normal; text-align: center; cursor: pointer; transition: background-color 140ms ease, border-color 140ms ease; }
.journal-dashboard .button:hover { background: #592b30; border-color: #592b30; color: #fff9ee; transform: none; }
.journal-dashboard .button-ghost { background: #fffaf1; color: #793c42; border-color: #b7a28e; }
.journal-dashboard .button-ghost:hover { background: #e9ddcc; border-color: #793c42; color: #592b30; }
.journal-dashboard .button-small { min-height: 40px; padding: 8px 13px; }
.journal-dashboard .button-danger { background: #fff2ed; border-color: #b45d50; color: #8b3028; }
.journal-dashboard .button-danger:hover { background: #8b3028; border-color: #8b3028; color: #fff9ee; }
.journal-dashboard .button:disabled, .journal-dashboard .button[aria-disabled="true"] { opacity: .5; cursor: not-allowed; box-shadow: none; }
.journal-dashboard a:focus-visible, .journal-dashboard button:focus-visible, .journal-dashboard summary:focus-visible { outline: 2px solid #793c42; outline-offset: 4px; }
/* A compact navigation toolbar leaves the full page available for reading. */
.journal-dashboard .dashboard-page-grid { grid-template-columns: minmax(0, 1fr); }
.journal-dashboard .dashboard-sidebar { position: relative; top: auto; display: flex; justify-content: space-between; align-items: center; gap: 20px; max-height: none; padding: 20px 0; border-bottom: 1px solid #d9cfbe; }
.journal-location { display: flex; flex-wrap: wrap; gap: 10px; color: #837565; font-size: 14px; }
.journal-location a { color: #793c42; text-decoration: none; }
.journal-sidebar-menu { width: 170px; flex-shrink: 0; }
.journal-dashboard .journal-sidebar-menu > .dashboard-side-tabs { left: auto; right: 0; width: min(650px, 88vw); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 20px; max-height: min(650px, 70dvh); }
.journal-dashboard .journal-sidebar-menu:not([open]) > .dashboard-side-tabs { display: none; }
.journal-nav-group { min-width: 0; }
.journal-nav-group-title { margin: 0 0 8px; padding: 0 10px 8px; border-bottom: 1px solid #ddd4c5; color: #837565; font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase; }
.journal-nav-link { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; color: #534c43; font-size: 15px; text-decoration: none; overflow-wrap: anywhere; border-radius: 3px; }
.journal-nav-link:hover, .journal-nav-link[aria-current="page"] { background: #e7dcce; color: #793c42; }
.journal-nav-count { flex-shrink: 0; border-radius: 3px; padding: 1px 6px; background: #e4d7c6; color: #793c42; font-size: 11px; }
.journal-dashboard .dashboard-page-content { padding: 30px 0 72px; border-left: 0; }
.journal-start-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 34px; }
.journal-start-actions a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 14px 18px; border: 1px solid #b7a28e; border-radius: 5px; background: #fffaf1; box-shadow: 0 1px 2px #302c2712; color: #793c42; font-size: 15px; font-weight: 600; text-decoration: none; }
.journal-start-actions a:hover { border-color: #793c42; background: #e9ddcc; }
.journal-start-actions a:first-child { background: #793c42; color: #fff9ee; border-color: #793c42; }
.journal-start-actions a:first-child:hover { background: #592b30; }
.journal-dashboard .journal-text-link, .journal-dashboard .journal-tool-link, .journal-dashboard .journal-prep-links a { padding: 10px 13px; min-height: 44px; border: 1px solid #b7a28e; border-radius: 5px; background: #fffaf1; color: #793c42; font-weight: 600; line-height: 1.5; text-decoration: none; }
.journal-dashboard .journal-text-link:hover, .journal-dashboard .journal-tool-link:hover, .journal-dashboard .journal-prep-links a:hover { background: #e9ddcc; border-color: #793c42; text-decoration: none; }
.journal-dashboard .journal-tool-link + .journal-tool-link { margin-top: 8px; }
.journal-dashboard .journal-section-line a { text-decoration: underline; text-underline-offset: 3px; }
.journal-topbar nav > a, .journal-topbar nav button { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 9px 13px; border: 1px solid #c5b7a4; border-radius: 5px; background: #fffaf1; color: #534c43; font: inherit; line-height: 1.4; text-decoration: none; cursor: pointer; }
.journal-topbar nav > a:hover, .journal-topbar nav button:hover { background: #e9ddcc; border-color: #793c42; color: #793c42; }
.journal-topbar nav > a[aria-current="page"] { background: #793c42; color: #fff9ee; border-color: #793c42; }
.journal-preparation { margin-bottom: 32px; padding-bottom: 28px; border-bottom: 1px solid #d9cfbe; }
.journal-preparation h2 { margin: 18px 0 12px; font-size: 30px; font-weight: 500; }
.journal-prep-notes { color: #685e51; line-height: 1.8; white-space: pre-line; overflow-wrap: anywhere; }
.journal-prep-links { display: flex; flex-wrap: wrap; gap: 12px 24px; font-size: 14px; }
.journal-prep-links a { color: #793c42; }
.journal-dashboard .dashboard-section { min-width: 0; gap: 24px; }
.journal-dashboard .dashboard-section-header { padding: 0 0 22px; border-bottom: 1px solid #d9cfbe; }
.journal-dashboard .dashboard-section-header h2 { font-family: 'Source Serif 4', Georgia, serif; font-size: clamp(26px, 3vw, 36px); line-height: 1.25; text-transform: none; letter-spacing: -.7px; color: #302c27; }
.journal-dashboard .dashboard-section-header .helper-copy { max-width: 70ch; color: #786d5f; }
.journal-dashboard .dashboard-stack { gap: 28px; }
.journal-dashboard .form-cluster:not(.handout-card), .journal-dashboard .player-note-block:not(.handout-card), .journal-dashboard .overview-mini-card { background: #eee6d8; color: #302c27; border-color: #ddd4c5; border-radius: 4px; box-shadow: none; }
.journal-dashboard .stack-form label { color: #534c43; }
.journal-dashboard .stack-form input, .journal-dashboard .stack-form select, .journal-dashboard .stack-form textarea { background: #fffdf8; color: #302c27; border: 1px solid #cbbfae; border-radius: 3px; box-shadow: none; font: inherit; }
.journal-dashboard .stack-form .field-hint { color: #786d5f; }
.journal-dashboard .form-actions { gap: 12px; align-items: center; }
.journal-dashboard .character-form-grid, .journal-dashboard .account-settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.journal-inbox-tabs { display: flex; flex-wrap: wrap; gap: 10px; padding-bottom: 16px; border-bottom: 1px solid #d9cfbe; }
.journal-inbox-tabs[hidden], .journal-dashboard [data-inbox-view][hidden] { display: none; }
.journal-inbox-tabs button { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 48px; padding: 12px 16px; border: 1px solid #b7a28e; border-radius: 5px; background: #fffaf1; color: #685e51; font: inherit; font-weight: 600; cursor: pointer; }
.journal-inbox-tabs button:hover { background: #e9ddcc; border-color: #793c42; }
.journal-inbox-tabs button[aria-selected="true"] { border-color: #793c42; background: #793c42; color: #fff9ee; font-weight: 600; }
.journal-inbox-tabs button[aria-selected="true"] span { background: #ffffff24; color: #fff9ee; }
.journal-inbox-tabs button span { font-size: 11px; padding: 2px 6px; background: #e8dfcf; border-radius: 3px; font-weight: 400; }
.journal-dashboard .dm-page-inbox { display: flex; flex-direction: column; }
.journal-dashboard .dm-page-inbox .journal-inbox-messages { order: 1; }
.journal-dashboard .dm-page-inbox .dm-inbox-direct { order: 2; }
.journal-delivery-history { display: grid; gap: 28px; min-width: 0; }
.journal-dashboard .dm-inbox-handout > .dashboard-disclosure > summary .dashboard-disclosure-toggle { display: none; }
.journal-dashboard .dm-page-inbox .message-card:not(.handout-card) { background: #fffaf1; border: 1px solid #ddd4c5; border-radius: 4px; box-shadow: none; color: #302c27; }
.journal-dashboard .dm-page-inbox .message-card:not(.handout-card) h3 { font-family: 'Source Serif 4', Georgia, serif; text-transform: none; color: #302c27; }
.journal-dashboard .dm-page-inbox .message-card:not(.handout-card) .message-timestamp { color: #786d5f; }
.journal-dashboard .dm-page-inbox .message-card-unread:not(.handout-card) { border-left: 3px solid #793c42; }
.journal-dashboard .dm-inbox-handout .split-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.journal-dashboard .dm-inbox-handout .split-layout > * { min-width: 0; }
@media (max-width: 1100px) {
  .journal-columns { grid-template-columns: minmax(0, 1fr); }
  .journal-margin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .journal-margin-section { margin-top: 0; }
}
@media (max-width: 760px) {
  .journal-topbar { padding: 18px 5%; align-items: flex-start; }
  .journal-wordmark { font-size: 20px; }
  .journal-topbar nav { gap: 14px; font-size: 13px; }
  .journal-topbar nav > a:first-child { display: none; }
  .journal-mobile-nav { display: block; padding: 0 5%; background: #f7f3ea; border-bottom: 1px solid #d9cfbe; }
  .journal-mobile-nav summary { cursor: pointer; padding: 16px 0; color: #793c42; font-size: 14px; }
  .journal-mobile-nav summary span { float: right; color: #837565; }
  .journal-mobile-nav nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-bottom: 18px; max-height: 55dvh; overflow-y: auto; }
  .journal-mobile-nav nav a { padding: 12px 8px; color: #534c43; text-decoration: none; }
  .journal-mobile-nav nav a[aria-current] { color: #793c42; background: #e7dcce; }
  .journal-mobile-nav nav .journal-nav-link { padding: 12px 8px; }
  .journal-start-actions { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 28px; }
  .journal-dashboard .character-form-grid, .journal-dashboard .account-settings-grid { grid-template-columns: minmax(0, 1fr); }
  .journal-dashboard .dm-inbox-handout .split-layout { grid-template-columns: minmax(0, 1fr); }
  .journal-inbox-tabs { gap: 4px 12px; }
  .journal-dashboard .dashboard-page-grid { display: block; }
  .journal-dashboard .dashboard-sidebar { display: none; }
  .journal-dashboard .dashboard-page-content { padding: 28px 3px 48px; border: 0; }
  .journal-page-heading { margin-bottom: 24px; }
  .journal-columns { gap: 30px; }
  .journal-margin { grid-template-columns: minmax(0, 1fr); }
  .journal-recap h2 { font-size: 27px; }
}

/* Public journal cover and account entry. Map marker styles remain independent. */
.journal-public .shell { width: min(1120px, 90%); padding: 42px 0 64px; margin-inline: auto; }
.journal-public .landing-shell { display: grid; gap: 36px; }
.journal-public .landing-hero { display: block; padding: 0; }
.journal-public .landing-copy { min-height: 0; padding: 24px 0 40px; margin: 0; border: 0; border-bottom: 1px solid #d9cfbe; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
.journal-public .landing-copy::before, .journal-public .landing-copy::after { display: none; }
.journal-public .landing-copy h1 { max-width: 760px; margin: 20px 0; font-family: 'Source Serif 4', Georgia, serif; font-size: clamp(38px, 5.8vw, 68px); font-weight: 400; line-height: 1.08; letter-spacing: -2px; text-transform: none; color: #302c27; }
.journal-public .landing-copy .lede { max-width: 640px; color: #786d5f; font-size: 18px; line-height: 1.8; }
.journal-public .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.journal-public .landing-tags { display: none; }
.journal-public .landing-story-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px; }
.journal-public .landing-story-grid > *, .journal-public .landing-map-admin-grid > * { min-width: 0; }
.journal-public .landing-story-grid .panel, .journal-public .landing-map-panel, .journal-public .threat-card { padding: 24px; border-radius: 4px; background: #f7f2e8; color: #302c27; box-shadow: none; }
.journal-public h2, .journal-public h3 { font-family: 'Source Serif 4', Georgia, serif; color: #302c27; text-transform: none; letter-spacing: -.4px; line-height: 1.35; overflow-wrap: anywhere; }
.journal-public h2 { font-size: 27px; font-weight: 500; }
.journal-public .eyebrow, .journal-public .mini-heading { color: #837565; font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; }
.journal-public .notes-copy, .journal-public .recap-copy, .journal-public .helper-copy, .journal-public .form-intro, .journal-public .form-status { color: #685e51; line-height: 1.8; overflow-wrap: anywhere; }
.journal-public .landing-lore-points { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-top: 24px; }
.journal-public .landing-lore-points .player-note-block { padding: 14px 0 0; border: 0; border-top: 1px solid #ddd4c5; background: none; box-shadow: none; border-radius: 0; }
.journal-public .landing-map-panel .campaign-map { max-width: 100%; border-radius: 3px; }
.journal-public .landing-map-admin-card { background: #eee6d8; color: #302c27; border: 1px solid #d9cfbe; border-radius: 3px; }
.journal-public .threat-list { gap: 24px; }
.journal-public .threat-list p { color: #685e51; line-height: 1.8; }
.journal-public .journal-auth { max-width: 920px; padding-top: 54px; }
.journal-public .journal-auth-columns { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: start; gap: 36px; }
.journal-public .journal-auth-columns > .panel { min-width: 0; padding: 28px; }
.journal-public .journal-auth .section-heading { margin-bottom: 20px; }
.journal-public .journal-auth .stack-form { gap: 20px; }
.journal-public label { color: #534c43; font-weight: 600; font-size: 15px; }
.journal-public input, .journal-public textarea, .journal-public select { min-width: 0; max-width: 100%; padding: 12px 14px; background: #fffdf8; color: #302c27; border: 1px solid #cbbfae; border-radius: 3px; box-shadow: none; font: inherit; }
.journal-public input:focus-visible, .journal-public textarea:focus-visible, .journal-public select:focus-visible { outline: 2px solid #793c42; outline-offset: 2px; }
.journal-public .field-hint { color: #786d5f; font-weight: 400; }
.journal-public .journal-signup summary { cursor: pointer; font-size: 18px; color: #793c42; line-height: 1.6; }
.journal-public .journal-signup details[open] > summary { margin-bottom: 24px; }
.journal-public .button { padding: 12px 18px; min-height: 44px; font-family: 'Source Serif 4', Georgia, serif; text-transform: none; letter-spacing: 0; }
.journal-public .button:hover { transform: none; box-shadow: none; background: #592b30; color: #fff9ee; }
.journal-public .button-ghost:hover { background: #e7dcce; color: #793c42; }
@media (max-width: 760px) {
  .journal-public .shell { width: 92%; padding-top: 24px; }
  .journal-public .landing-story-grid, .journal-public .journal-auth-columns, .journal-public .landing-map-admin-grid, .journal-public .threat-list { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .journal-public .landing-copy { padding-top: 12px; }
  .journal-public .landing-copy h1 { letter-spacing: -1px; }
  .journal-public .landing-story-grid .panel, .journal-public .landing-map-panel, .journal-public .journal-auth-columns > .panel { padding: 20px; }
  .journal-public .hero-actions .button { flex: 1 1 160px; text-align: center; }
  .journal-public .journal-auth { padding-top: 30px; }
}

/* Cover legacy component surfaces as well as the outer page panels. */
body.journal-dashboard .shell :is(.panel, .player-card, .account-card, .session-card, .tableau-card, .npc-card, .search-result-card, .location-directory-card, .message-card):not(.dashboard-sidebar):not(.handout-card):not(.handout-card *) {
  background: var(--journal-paper);
  color: #302c27;
  border-color: var(--journal-border);
  box-shadow: none;
}
body.journal-dashboard .shell :is(.surface-primary, .surface-secondary, .surface-utility, .surface-utility-dark, .form-cluster, .character-summary, .character-portrait-frame, .player-note-block, .overview-mini-card, .quest-compass-card, .quest-group, .quest-next-step, .quest-state-strip, .map-pin-tools, .map-pin-legend-item, .reply-context, .onboarding-prompt, .journal-entry, .journal-find):not(.panel):not(.handout-card):not(.handout-card *) {
  background: var(--journal-inset);
  color: #302c27;
  border-color: var(--journal-border);
  box-shadow: none;
}
body.journal-dashboard .shell :is(.planner-panel, .clock-panel, .npc-panel, .location-panel) {
  background: var(--journal-paper);
  color: #302c27;
  border-color: var(--journal-border);
  border-radius: 4px;
  box-shadow: none;
}
body.journal-dashboard .shell :is(.planner-panel, .clock-panel, .npc-panel, .location-panel) > summary {
  background: var(--journal-inset);
  color: #302c27;
  border-color: var(--journal-border);
}
body.journal-dashboard .shell :is(.planner-panel, .clock-panel, .npc-panel, .location-panel)[open] > summary {
  background: #e7dcce;
  border-color: #c5b7a4;
}
body.journal-dashboard .shell :is(.panel, .player-card, .account-card, .session-card, .tableau-card, .overview-mini-card, .form-cluster):not(.handout-card):not(.handout-card *)::after {
  display: none;
}
body.journal-dashboard .shell :is(h1, h2, h3, h4):not(.handout-card *) {
  color: #302c27;
}
body.journal-dashboard .shell :is(.notes-copy, .helper-copy, .form-status, .empty-state, .form-intro, .character-snippet, .character-facts p, .message-timestamp, .player-review-date, .quest-next-preview):not(.handout-card *) {
  color: #685e51;
}
body.journal-dashboard .shell :is(.eyebrow, .mini-heading, .meta-label):not(.handout-card *) {
  color: #796957;
}
body.journal-dashboard .shell .clock-panel-critical { border-left: 3px solid #a44239; }
body.journal-dashboard .shell .clock-panel-advancing { border-left: 3px solid #a07937; }
body.journal-dashboard .shell .clock-panel-resolved { border-left: 3px solid #52704c; }
body.journal-dashboard .shell .message-card-unread:not(.handout-card) { border-left: 3px solid #793c42; }

/* A small contrast lift for paper, dividers, and supporting text. */
body.journal-dashboard :is(.journal-kicker, .journal-section-line, .journal-nav-group-title, .journal-wordmark span) { color: #71614f; }
body.journal-dashboard .shell :is(.notes-copy, .helper-copy, .form-status, .empty-state, .form-intro, .field-hint, .character-snippet, .character-facts p, .message-timestamp, .player-review-date, .quest-next-preview):not(.handout-card *) { color: #5e5346; }
body.journal-dashboard .shell :is(.eyebrow, .mini-heading, .meta-label):not(.handout-card *) { color: #6c5945; }
body.journal-dashboard .journal-page-heading > p:last-child,
body.journal-dashboard .journal-margin p,
body.journal-dashboard .journal-objective strong + span,
body.journal-dashboard .journal-prep-notes,
body.journal-dashboard .landing-copy .lede { color: #685a49; }
body.journal-dashboard :is(.journal-page-heading, .journal-objectives, .journal-objective, .journal-margin-section, .journal-preparation, .journal-nav-group-title, .journal-inbox-tabs, .dashboard-section-header, .dashboard-sidebar, .landing-copy) { border-color: var(--journal-border); }
body.journal-dashboard .journal-topbar { background: #faf6ee; border-bottom-color: var(--journal-border); }
body.journal-dashboard .journal-session { background: #e3d7c4; }
body.journal-dashboard .journal-nav-link[aria-current="page"] { background: #e1d1bd; color: #682f35; }

/* Medieval-inspired headings, with clear serif text for long-form reading. */
body.journal-dashboard .journal-wordmark {
  font-family: var(--journal-heading);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
}
body.journal-dashboard .shell :is(h1, h2, h3, h4):not(.handout-card *) {
  font-family: var(--journal-heading);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.3;
}
body.journal-dashboard .journal-home h2 { font-size: 34px; }
body.journal-dashboard .journal-home h3 { font-size: 27px; }
body.journal-dashboard .journal-session h2 { font-size: 29px; }
body.journal-dashboard .shell :is(.journal-recap-copy, .notes-copy, .recap-copy, .journal-prep-notes, .message-body):not(.handout-card):not(.handout-card *) {
  font-family: var(--journal-body);
  font-size: 17px;
  line-height: 1.8;
  letter-spacing: 0;
  max-inline-size: 68ch;
  overflow-wrap: anywhere;
}
body.journal-dashboard .shell .journal-entry :is(.notes-copy, .journal-entry-body):not(.handout-card *) {
  font-family: var(--journal-handwriting);
  font-size: 18px;
  line-height: 1.85;
  max-inline-size: 60ch;
}
body.journal-dashboard .shell .message-body > p:not(.handout-card *) {
  font: inherit;
  margin-block: 0 1em;
}
body.journal-dashboard .shell .message-body > p:last-child:not(.handout-card *) {
  margin-bottom: 0;
}
body.journal-dashboard .journal-objective strong { font-family: var(--journal-heading); font-size: 23px; line-height: 1.4; }
body.journal-dashboard .journal-page-heading h1 { font-size: clamp(42px, 4.5vw, 60px); }
body.journal-public .landing-copy h1 { font-size: clamp(36px, 5vw, 60px); }
body.journal-public .landing-copy .lede { font-family: var(--journal-body); font-size: 19px; line-height: 1.8; max-inline-size: 60ch; }
@media (max-width: 760px) {
  body.journal-dashboard .journal-wordmark { font-size: 24px; }
  body.journal-dashboard .journal-home h2 { font-size: 30px; }
}

/* Shared component rules: the same measurements on public and account pages. */
body.journal-dashboard { font-size: 16px; line-height: 1.6; }
body.journal-dashboard .shell { min-width: 0; }
body.journal-dashboard .shell > :not(script) + :not(script) { margin-top: var(--journal-space-5); }
body.journal-dashboard .shell :is(.dashboard-stack, .planner-stack, .location-stack, .search-results, .player-grid, .npc-grid, .session-timeline) { gap: var(--journal-space-5); }
body.journal-dashboard .shell :is(.panel, .player-card, .account-card, .session-card, .tableau-card, .search-result-card):not(.dashboard-sidebar):not(.handout-card):not(.handout-card *) {
  padding: var(--journal-space-5);
  border-width: 1px;
  border-style: solid;
  border-radius: var(--journal-radius);
  min-width: 0;
}
body.journal-dashboard .shell :is(.player-note-block, .form-cluster, .overview-mini-card, .quest-compass-card):not(.handout-card):not(.handout-card *) { border-radius: var(--journal-radius); padding: var(--journal-space-4); }
body.journal-dashboard .shell .section-heading { gap: var(--journal-space-2); margin-bottom: var(--journal-space-5); }
body.journal-dashboard .shell :is(.section-heading, .dashboard-section-header) > :is(h1, h2, h3, p) { margin-top: 0; margin-bottom: 0; }
body.journal-dashboard .shell :is(h1, h2, h3, h4):not(.handout-card *) { text-shadow: none; overflow-wrap: anywhere; }
body.journal-dashboard .shell h1:not(.handout-card *) { font-size: var(--journal-page-title); }
body.journal-dashboard .shell h2:not(.handout-card *) { font-size: var(--journal-section-title); }
body.journal-dashboard .shell h3:not(.handout-card *) { font-size: var(--journal-card-title); }
body.journal-dashboard .shell .dashboard-section-header h2 { font-size: var(--journal-page-title); }
body.journal-dashboard .shell :is(.eyebrow, .mini-heading, .meta-label):not(.handout-card *) { font-family: var(--journal-body); font-size: 11px; font-weight: 600; line-height: 1.6; letter-spacing: 1.2px; text-transform: uppercase; }
body.journal-dashboard .shell :is(.form-intro, .helper-copy, .empty-state, .form-status):not(.handout-card *) { font-family: var(--journal-body); font-size: 15px; line-height: 1.7; }
body.journal-dashboard .shell :is(.form-intro, .helper-copy):not(.handout-card *) { max-inline-size: 68ch; }
body.journal-dashboard .shell :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea):not(.handout-card *) { font-family: var(--journal-body); font-size: 16px; line-height: 1.5; }
body.journal-dashboard .shell textarea:not(.handout-card *) { line-height: 1.7; }
body.journal-dashboard .shell :is(.dashboard-banner, .character-hero > .hero-copy) {
  padding: 0 0 var(--journal-space-6);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--journal-border);
  border-radius: 0;
  box-shadow: none;
  color: var(--journal-ink);
  min-width: 0;
}
body.journal-dashboard .shell :is(.dashboard-banner, .character-hero > .hero-copy)::before,
body.journal-dashboard .shell :is(.dashboard-banner, .character-hero > .hero-copy)::after { display: none; }
body.journal-dashboard .shell :is(.dashboard-banner, .character-hero > .hero-copy) .lede { color: var(--journal-muted); max-width: 68ch; font-size: 17px; line-height: 1.75; }
body.journal-dashboard .shell :is(.hero-actions, .form-actions, .message-actions, .crosslink-row) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--journal-space-3); }
body.journal-dashboard .shell :is(.hero-actions, .message-actions) { margin-top: var(--journal-space-4); }
body.journal-dashboard .shell :is(.character-facts p, .tableau-label, .session-kicker, .session-date-chip, .player-review-date) { color: var(--journal-muted); }
body.journal-dashboard .shell .session-date-chip { background: var(--journal-inset); border-color: var(--journal-border); border-radius: var(--journal-radius); }
body.journal-dashboard .shell :is(.session-card-divider, .quest-group-header) { border-color: var(--journal-border); }
body.journal-dashboard .shell .session-card-divider { background: var(--journal-border); }
body.journal-dashboard .shell .badge:not(.handout-card *):not(.badge-attention) { background: var(--journal-inset); color: var(--journal-muted); border: 1px solid var(--journal-border); border-radius: var(--journal-radius); font: 600 11px/1.6 var(--journal-body); letter-spacing: .3px; }
body.journal-dashboard .shell .badge-attention:not(.handout-card *) { background: #f0ddd5; color: #7a302c; border: 1px solid #c58e7f; border-radius: var(--journal-radius); }
body.journal-dashboard .shell :is(.planner-panel, .npc-panel, .location-panel) > summary { padding: var(--journal-space-4); }
body.journal-dashboard .shell :is(.planner-panel, .npc-panel, .location-panel):not(.journal-list-entry) > summary span:not(.badge):not([class*="status"]):not([class*="priority"]) { font-family: var(--journal-body); font-size: 16px; line-height: 1.5; }
body.journal-dashboard .shell :is(.planner-panel, .npc-panel, .location-panel) > summary::after { content: 'Expand'; justify-self: end; color: var(--accent); font: 600 12px/1.5 var(--journal-body); }
body.journal-dashboard .shell :is(.planner-panel, .npc-panel, .location-panel)[open] > summary::after { content: 'Collapse'; }
body.journal-dashboard .shell :is(.planner-form-body, .location-panel-body) { padding: var(--journal-space-4); }
body.journal-dashboard .shell .planner-delete-row { padding: 0 var(--journal-space-4) var(--journal-space-4); }
body.journal-dashboard .shell :is(.empty-state, .onboarding-prompt) { padding: var(--journal-space-4); background: var(--journal-inset); border: 1px dashed var(--journal-border); border-radius: var(--journal-radius); }
body.journal-dashboard .shell :is(.dashboard-disclosure-summary, .dashboard-inline-disclosure-summary) { align-items: center; }
body.journal-dashboard .shell :is(.dashboard-disclosure-toggle, .dashboard-inline-disclosure-meta) { border-radius: var(--journal-radius); background: var(--journal-inset); border-color: var(--journal-border); color: var(--accent); }
body.journal-dashboard :is(input, select, textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
body.journal-dashboard .flash { background: var(--journal-paper); color: var(--journal-ink); border: 1px solid var(--journal-border); border-left: 3px solid var(--accent); border-radius: var(--journal-radius); box-shadow: none; }
body.journal-dashboard .flash-error { border-left-color: #a44239; }
body.journal-dashboard .flash-success { border-left-color: #52704c; }
body.journal-dashboard .flash { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; line-height: 1.6; overflow-wrap: anywhere; }
body.journal-dashboard .flash > div { min-width: 0; }
body.journal-dashboard .journal-feedback-title { display: block; font: 700 16px/1.5 var(--journal-body); margin-bottom: 4px; }
body.journal-dashboard .flash-success, body.journal-dashboard .shell .inline-feedback { background: #edf1e5; color: #35482f; border-color: #aab798; }
body.journal-dashboard .flash-error { background: #f8eae4; color: #7a302c; border-color: #c58e7f; }
body.journal-dashboard .journal-feedback-dismiss { flex: 0 0 auto; border: 1px solid currentColor; border-radius: var(--journal-radius); padding: 6px 10px; background: transparent; color: inherit; font: 600 14px/1.5 var(--journal-body); cursor: pointer; min-height: 44px; }
body.journal-dashboard .shell .inline-feedback { display: block; padding: 12px 16px; border: 1px solid #aab798; border-left-width: 3px; border-radius: var(--journal-radius); font: 400 15px/1.7 var(--journal-body); overflow-wrap: anywhere; }
body.journal-dashboard .shell [aria-invalid="true"] { border-color: #a44239; box-shadow: 0 0 0 1px #a44239; }
body.journal-dashboard .shell .journal-field-error { display: block; margin-top: 6px; color: #8a342d; font: 400 14px/1.6 var(--journal-body); }
body.journal-dashboard :is(.journal-feedback-dismiss, input, select, textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 480px) { body.journal-dashboard .flash { flex-wrap: wrap; } }
.journal-update-strip { padding: var(--journal-space-3) var(--journal-space-4); border: 1px solid var(--journal-border); border-radius: var(--journal-radius); background: var(--journal-inset); color: var(--journal-muted); font-size: 14px; }
.journal-update-strip > p { margin: 0; }
.journal-update-strip summary { cursor: pointer; line-height: 1.6; }
.journal-update-strip summary > span { display: inline-block; margin-left: 12px; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.journal-update-strip .change-summary-grid { margin-top: var(--journal-space-4); gap: var(--journal-space-3); }
.journal-update-strip .change-summary-card { background: var(--journal-paper); border: 1px solid var(--journal-border); border-radius: var(--journal-radius); color: var(--journal-ink); transform: none; }
.journal-update-strip .change-summary-card:hover { border-color: var(--accent); }
body.journal-dashboard .shell .journal-update-strip h3 { font-family: var(--journal-body); font-size: 16px; }
body.journal-dashboard .shell :is(.player-grid, .location-directory, .character-detail-grid, .location-profile-grid) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
body.journal-dashboard .shell :is(.player-grid, .location-directory, .character-detail-grid, .location-profile-grid) > * { min-width: 0; }
body.journal-dashboard .shell .character-hero { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
@media (max-width: 760px) {
  body.journal-dashboard { --journal-space-5: 20px; --journal-space-6: 28px; --journal-page-title: 30px; --journal-section-title: 25px; --journal-card-title: 21px; }
  body.journal-dashboard .shell .character-hero { grid-template-columns: minmax(0, 1fr); }
}

/* Long forms follow one rhythm: essentials, optional sections, then save. */
body.journal-dashboard .journal-form { gap: var(--journal-space-5); }
body.journal-dashboard .journal-form-intro { margin: 0; max-width: 70ch; color: var(--journal-muted); font-size: 15px; line-height: 1.7; }
body.journal-dashboard .journal-form :is(.form-cluster, .journal-form-options-body) { display: grid; gap: var(--journal-space-4); }
body.journal-dashboard .journal-form label { display: grid; gap: 6px; align-content: start; min-width: 0; font: 600 15px/1.5 var(--journal-body); }
body.journal-dashboard .journal-field-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
body.journal-dashboard .journal-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea, select) { width: 100%; min-height: 44px; padding: 11px 12px; }
body.journal-dashboard .journal-form textarea { resize: vertical; line-height: 1.65; }
body.journal-dashboard .journal-form .field-hint { font-size: 13px; font-weight: 400; line-height: 1.6; }
body.journal-dashboard .journal-form-options { border: 1px solid var(--journal-border); border-radius: var(--journal-radius); background: var(--journal-paper); min-width: 0; }
body.journal-dashboard .journal-form-options > summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; padding: 16px; font: 600 15px/1.5 var(--journal-body); color: var(--accent); cursor: pointer; list-style: none; }
body.journal-dashboard .journal-form-options > summary::-webkit-details-marker { display: none; }
body.journal-dashboard .journal-form-options > summary::before { content: '+'; width: 14px; flex-shrink: 0; font-size: 20px; line-height: 1; }
body.journal-dashboard .journal-form-options[open] > summary::before { content: '-'; }
body.journal-dashboard .journal-form-options[open] > summary { border-bottom: 1px solid var(--journal-border); background: var(--journal-inset); }
body.journal-dashboard .journal-form-options > summary > span { margin-left: auto; font-size: 12px; color: var(--journal-muted); font-weight: 400; }
body.journal-dashboard .journal-form-options-body { padding: 20px; min-width: 0; }
body.journal-dashboard .journal-form-options:not([open]) > .journal-form-options-body { display: none; }
body.journal-dashboard .journal-form .journal-form-actions { padding: 20px 0 0; margin: 0; border-top: 1px solid var(--journal-border); }
body.journal-dashboard :is(.journal-required, .journal-optional-label) { display: inline; font: 400 11px/1.5 var(--journal-body); color: var(--journal-muted); letter-spacing: .2px; }
body.journal-dashboard .journal-required { color: var(--accent); }
body.journal-dashboard .journal-form .handout-recipient-option { display: flex; align-items: center; }
@media (max-width: 760px) {
  body.journal-dashboard .journal-form-options-body { padding: 16px; }
  body.journal-dashboard .journal-form-options > summary { gap: 8px; }
  body.journal-dashboard .journal-form-options > summary > span { margin-left: 22px; }
}

/* Browsing tools and compact rows shared by quests, NPCs, and locations. */
.journal-list-filter { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; align-items: end; gap: 16px; margin: 0; }
.journal-list-filter:has([name="questTag"]) { grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)) auto; }
.journal-list-filter label, .journal-list-client-tools label { display: grid; gap: 6px; min-width: 0; color: var(--journal-muted); font: 600 13px/1.5 var(--journal-body); }
.journal-list-filter :is(input, select), .journal-list-client-tools select { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #cbbfae; border-radius: var(--journal-radius); background: #fffdf8; color: var(--journal-ink); font: 400 15px/1.5 var(--journal-body); }
body.journal-dashboard .shell .journal-list-filter :is(input, select), body.journal-dashboard .shell .journal-list-client-tools select { background: #fffdf8; box-shadow: none; }
body.journal-dashboard .shell :is(.journal-list-filter input, .journal-list-filter select, .journal-list-client-tools select):focus { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; }
.journal-list-filter-actions, .journal-list-client-tools { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; }
.journal-list-tools { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 0; margin: 12px 0 20px; border-bottom: 1px solid var(--journal-border); }
.journal-list-count { margin: 0; color: var(--journal-muted); font-size: 14px; }
.journal-list-client-tools[hidden] { display: none; }
.journal-list-client-tools label { display: flex; align-items: center; gap: 8px; }
.journal-list-client-tools select { width: auto; min-height: 40px; padding: 8px; font-size: 13px; }
.journal-list-context { margin-bottom: 24px; border-bottom: 1px solid var(--journal-border); }
.journal-list-context > summary, .journal-create-disclosure > summary { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 14px 0; cursor: pointer; color: var(--accent); list-style: none; font-weight: 600; }
.journal-list-context > summary::-webkit-details-marker, .journal-create-disclosure > summary::-webkit-details-marker { display: none; }
.journal-list-context > summary::before, .journal-create-disclosure > summary::before { content: '+'; font-size: 20px; }
.journal-list-context[open] > summary::before, .journal-create-disclosure[open] > summary::before { content: '-'; }
.journal-list-context > summary > span, .journal-create-disclosure > summary > span { color: var(--journal-muted); font-size: 12px; font-weight: 400; }
.journal-list-context:not([open]) > .quest-compass { display: none; }
body.journal-dashboard .shell .journal-list-create { padding: 8px 20px; }
.journal-create-disclosure > .section-heading { display: none; }
.journal-create-disclosure[open] { padding-bottom: 16px; }
.journal-create-disclosure[open] > summary { margin-bottom: 16px; border-bottom: 1px solid var(--journal-border); }
body.journal-dashboard .shell :is(.npc-grid, .location-stack, .quest-stack):has(> .journal-list-entry) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 56px; align-items: center; gap: 12px 20px; padding: 16px; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary::after { content: 'Open'; grid-column: 3; color: var(--accent); font: 600 12px/1.5 var(--journal-body); text-decoration: underline; text-underline-offset: 3px; }
body.journal-dashboard .shell .journal-list-entry[open] > .journal-list-summary::after { content: 'Close'; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary .journal-list-entry-main { display: grid; gap: 5px; min-width: 0; }
body.journal-dashboard .shell .journal-list-summary strong { font: 600 18px/1.5 var(--journal-body); color: var(--journal-ink); overflow-wrap: anywhere; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary .journal-list-preview { color: var(--journal-muted); font: 400 14px/1.6 var(--journal-body); white-space: normal; overflow-wrap: anywhere; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary .journal-list-entry-meta { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; min-width: 0; max-width: 240px; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary :is(.journal-list-status, .journal-list-priority, .journal-list-updated) { display: inline-flex; padding: 3px 7px; border: 1px solid var(--journal-border); border-radius: var(--journal-radius); background: var(--journal-inset); color: var(--journal-muted); font: 600 11px/1.5 var(--journal-body); text-transform: capitalize; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary .journal-list-updated { color: #793c42; background: #ecd9d2; border-color: #c69f92; }
body.journal-dashboard .shell .journal-list-entry > .journal-list-summary:hover { background: #e8dece; }
@media (max-width: 1000px) {
  .journal-list-filter, .journal-list-filter:has([name="questTag"]) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .journal-list-filter, .journal-list-filter:has([name="questTag"]) { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .journal-list-tools, .journal-list-client-tools { align-items: flex-start; }
  .journal-list-client-tools { width: 100%; }
  .journal-list-client-tools label { width: 100%; }
  .journal-list-client-tools select { flex: 1; }
  body.journal-dashboard .shell .journal-list-entry > .journal-list-summary { grid-template-columns: minmax(0, 1fr) 40px; gap: 10px; padding: 14px; }
  body.journal-dashboard .shell .journal-list-entry > .journal-list-summary .journal-list-entry-meta { grid-row: 2; grid-column: 1; justify-content: flex-start; max-width: none; }
  body.journal-dashboard .shell .journal-list-entry > .journal-list-summary::after { grid-column: 2; grid-row: 1 / span 2; }
}
