.favorites-nav{order:-100}
.nav-group>summary.menu-order-heading{display:flex;align-items:center;gap:2px;padding:4px 6px}
.menu-order-heading::before{flex:0 0 1.1em}
.menu-order-name{flex:1;min-width:0;overflow-wrap:anywhere}
.menu-order-button{flex:0 0 28px;width:28px;height:36px;padding:0;border:1px solid transparent;border-radius:4px;background:transparent;color:#52657a;font:inherit;font-size:17px;cursor:pointer}
.menu-order-button:hover:not(:disabled){background:#fff}
.menu-order-button:focus-visible{outline:2px solid #315f92;outline-offset:-2px;background:#fff}
.menu-order-button:disabled{opacity:.25;cursor:default}
.menu-order-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(pointer:coarse){.menu-order-button{flex-basis:44px;width:44px;height:44px}}
.favorite-source-row,.favorite-entry{display:flex;align-items:center;gap:4px;min-width:0}
.favorite-source-row>a,.favorite-entry>a{min-width:0;flex:1 1 auto}
.favorite-star,.favorite-order-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;padding:0;border:0;border-radius:5px;background:transparent;color:#a8afb8;font-size:18px;line-height:1;cursor:pointer}
.favorite-star:hover,.favorite-star:focus-visible,.favorite-order-button:hover,.favorite-order-button:focus-visible{background:#e8f1fa;outline:2px solid transparent}
.favorite-star.is-favorite,.favorite-entry-controls .favorite-order-button:last-child{color:#f2b705;text-shadow:0 0 1px #8a6500}
.favorite-entry{padding:2px 0}
.favorite-entry-controls{display:inline-flex;align-items:center;gap:1px}
.favorite-order-button{width:24px;height:26px;color:#52657a;font-size:14px}
.favorite-order-button:disabled{opacity:.28;cursor:default;background:transparent}
.favorites-empty{padding:7px 10px;color:#718096;font-size:.86rem}
@media(max-width:800px){.favorite-star{width:32px;height:32px}.favorite-order-button{width:28px;height:30px}}

/* Readability standard v1 (2026-10-08).
   Bundled at the end of the existing favorites-v1.css, after page-specific CSS.
   Explicit component selectors preserve maps, positioning, state and table lines. */
:root { --muted: #526174; --canvas: #edf2f7; --readable-focus: #174f83; }
body { background: var(--canvas); font-size: 1rem; line-height: 1.7; }
button, input, select, textarea { font-family: inherit; }
.page-card p, .hero p, .detail-note, .detail-selected, .simulation-warning,
.intro-copy, .site-footer p { text-align: start; }
/* Short download invitation is centered by explicit user request. */
.game-store-links .game-store-developer,
.game-store-links .game-store-guidance { text-align: center; }
.page-card p, .hero p, .job-description, .article-description, .disease-detail,
.base-information p, .quest-detail-info-card p, .quest-note-text,
.character-heading h4, .comparison-jobs { word-break: normal; overflow-wrap: break-word; }
.job-description, .article-description, .disease-detail,
.facility-table caption, .facility-quest-table caption, .training-sort-status,
.base-information, .base-extra, .quest-detail-technique span { text-align: start; }

/* Hierarchy is typography and spacing, including dynamically rendered headings. */
h1 { border: 0; padding-block-end: 0; font-weight: 750; }
h2 { border: 0; background: transparent; padding: 0; font-weight: 700; }
.update-history-list > h2 { border: 0; background: transparent; padding: 0; margin-block: 2rem 1rem; font-size: 1.35rem; }
.quest-detail-dialog-header h2 { border: 0; border-radius: 0; background: transparent; padding: 0; }
.equipment-result-card > header { border: 0; padding-block-end: .5rem; }
.result-title-row, .result-name.source-name { border: 0; }

/* Group surfaces; controls, disclosures and tables retain their interaction cues. */
.page-card, .job-card, .results, .detail-panel, .ranking-card, .character-card,
.selector-card, .result-card, .equipment-result-card,
.quest-detail-dialog, .quest-note-dialog, .training-trap-dialog,
.hair-color-delete-dialog, .quest-search-suggestions,
.quest-page-search--sidebar .quest-search-suggestions { box-shadow: none; }
.job-card, .results, .detail-panel, .ranking-card, .character-card,
.selector-card, .result-card, .equipment-result-card { border: 0; border-radius: .35rem; }
.main-card, .sub-card, .ranking-card.sub-ranking { border-top: 0; }
.sub-section { border: 0; border-radius: .35rem; background: #e8f0f7; }
.job-card, .results, .detail-panel { margin-block-end: 1.5rem; }
.character-card, .ranking-card, .equipment-result-card { background: #f3f7fa; }
.route-card, .route-result, .route-notice, .notice,
.common-faq-item, .base-information, .faq-post { border-inline-start: 0; border-left: 0; }
.route-card, .common-faq-item, .base-town, .base-tavern, .base-shop,
.base-tavern-info, .home-menu-group, .game-store-links,
.equipment-search-form, .equipment-ability-filters, .equipment-acquisitions > li,
.training-settings, .training-map-tabs, .quest-list-guide,
.quest-detail-summary, .quest-detail-info-card,
.faq-form, .faq-post, .faq-admin { border: 0; border-radius: .35rem; }
.base-tavern, .base-shop, .base-tavern-info { margin-block: 1.25rem; }
.base-town[open] > summary, .base-tavern-info[open] > summary { border-bottom: 0; }
.quest-detail-info-card { background: #f3f7fa; }
.quest-detail-dialog, .quest-note-dialog, .training-trap-dialog,
.hair-color-delete-dialog { border: 1px solid #60758a; border-radius: .35rem; }
.sidebar > .quest-page-search--sidebar { border: 0; border-radius: .35rem; padding: .5rem 0; background: transparent; }

/* Flat semantic badges: labels and attribute colors remain visible. */
.quest-enemy-badge--boss { box-shadow: none; border-radius: .25rem; }
.quest-threat-holy { box-shadow: none; }
.quest-threat-badge, .quest-enemy-badge, .quest-enemy-badge--boss { font-size: .85rem; }
.quest-enemy-badge--weak { clip-path: none; text-shadow: none; border: 1px solid currentColor; border-radius: .25rem; padding: .15rem .4rem; }
.quest-enemy-badge--weak.quest-enemy-badge--water,
.quest-enemy-badge--weak.quest-enemy-badge--ice { background: #126ba8; }
.quest-enemy-badge--weak.quest-enemy-badge--wind { background: #11764f; }
.home-notice-new { background: #ffe080; box-shadow: none; font-size: .8rem; }
.favorite-star.is-favorite, .favorite-entry-controls .favorite-order-button:last-child,
.quest-favorite-star.is-favorite, .training-favorite-star.is-favorite { color: #896500; text-shadow: none; }
.favorite-star, .quest-favorite-star, .training-favorite-star { color: #617085; }
.hair-color-result-swatch, .hair-color-swatch,
.hair-color-sample:hover .hair-color-swatch { box-shadow: none; }
.hair-color-name, .hair-color-name--long { font-family: inherit; font-size: .9rem; line-height: 1.4; letter-spacing: normal; word-break: normal; overflow-wrap: break-word; }
.hair-color-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 6.5rem), 1fr)); }
.hair-color-sample { min-width: 0; }

/* Readable supporting information and mobile tables; user font scaling is inherited. */
.nav-links a, .nav-sublinks a, .nav-subtitle, .nav-placeholder { font-size: .95rem; }
.breadcrumbs, .page-footer, .site-footer, .sidebar-title, .eyebrow,
.map-label, .level-max, .job-card > label, .level-row label,
.sim-save-status, .detail-note, .detail-selected, .detail-action-status,
.sim-preset label, .comparison-jobs, .character-stats,
.quest-page-search--sidebar .quest-search-status,
.quest-detail-technique span, .quest-detail-none, .quest-detail-no-battles,
.home-notices time, .home-notice-description, .home-notices-empty,
.favorites-empty, .hair-color-source, .simulation-warning, .source-detail dt,
.result-caption, .option-caption, .showcase-message { font-size: .9rem; color: #526174; }
.job-card > label, .level-row label { font-weight: 600; }
.quest-page-search--sidebar input[type=search], .quest-detail-button,
.quest-copy-button, .training-location .training-detail-button,
.remove-button, .sim-presets button, .showcase-button { font-size: .95rem; }
.quest-detail-enemy-table, .ranking-card th, .ranking-card td,
.character-comparison table, .training-ranking th, .training-ranking td,
.base-town th, .base-town td { font-size: 1rem; }
.training-ranking table { min-width: 50rem; }
.training-sort-button small { font-size: .9rem; }
.training-map-label { font-size: .9rem; color: #526174; }
.table-scroll, .table-wrap, .quest-detail-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.training-sort-button, .training-location-content [data-training-location-name],
.training-location [data-training-location-name], .training-ranking .training-terrain,
.training-ranking .training-trap-job, .sim-presets button { word-break: normal; overflow-wrap: break-word; }
.shell .sub-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.card-heading, .section-heading, .card-actions, .sub-section-heading { flex-wrap: wrap; }
.shell .level-row { grid-template-columns: auto minmax(4rem, 7rem) minmax(0, 1fr); }
.shell .hero h1 { overflow-wrap: break-word; }
.option-list { grid-auto-rows: minmax(44px, auto); }
.option-item { border-radius: .25rem; }

/* Flat enhancement action; state, history, result and semantic colors are intact. */
.enhance-button { background: #126ba8; box-shadow: none; border-radius: .35rem; }
.enhance-button:active { transform: none; box-shadow: none; }
.enhance-button:disabled, .enhance-button:disabled:active { box-shadow: none; background: #60758a; color: #fff; }
.enhance-button:hover:not(:disabled) { background: #174f83; }
.category-button, .history-button, .field select, .favorite-button,
.back-nav a, .source-detail { border-radius: .35rem; }
.intro-copy { font-weight: 600; }

/* Keyboard focus is a functional outline, with >=3:1 contrast on light surfaces. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--readable-focus); outline-offset: 3px;
}
.site-header .brand:focus-visible, .site-header .menu-button:focus-visible { outline-color: #fff; }
.quest-detail-button:focus-visible, .training-map-tab:focus-visible,
.training-sort-button:focus-visible, #faq-app button:focus-visible,
#faq-app input:focus-visible, #faq-app textarea:focus-visible,
#faq-app select:focus-visible { outline: 3px solid var(--readable-focus); outline-offset: 3px; }
.shell select:focus { outline: 3px solid var(--readable-focus); outline-offset: 3px; }
.search, .quest-search-controls input, .equipment-search-grid input,
.equipment-search-grid select, .equipment-search-actions button[type="reset"],
.field select, .shell select, .sim-preset input, .character-form input,
.site-contact input, .site-contact textarea, .quest-note-dialog textarea,
.quest-note-card textarea, .display-preference select,
.secondary-button, .remove-button, .quest-detail-dialog-close,
.quest-columns-panel button, .hair-color-family select,
#faq-app input, #faq-app textarea, #faq-app select { border-color: #60758a; }
.favorite-star:focus-visible, .favorite-order-button:focus-visible,
.menu-order-button:focus-visible, .quest-favorite-star:focus-visible,
.training-favorite-star:focus-visible, .quest-note-button:focus-visible,
.hair-color-sample:focus-visible, .hair-color-saved-item:focus-visible,
.hair-color-save:focus-visible, .enhance-button:focus-visible,
.category-button:focus-visible, .favorite-button:focus-visible,
.history-button:focus-visible, .showcase-button:focus-visible,
.game-store-button:focus-visible, .back-nav a:focus-visible {
  outline: 3px solid var(--readable-focus); outline-offset: 3px;
}
.quest-note-status:not(:empty) { border-inline-start: 0; }
.quest-note-card, .race-card { border: 0; border-radius: .35rem; background: #f3f7fa; }
.race-card[open] summary { border-bottom: 0; }
.race-traits td, .race-job-table tbody th { text-align: start; }
.route-step small { font-size: .9rem; }
.equipment-saved { border: 0; border-radius: .35rem; }
.equipment-saved-item { border: 0; border-radius: .25rem; }
.equipment-ability-filters label { border: 0; border-radius: 0; background: transparent; min-height: 44px; padding: .35rem .25rem; font-size: 1rem; }
.equipment-saved-item strong span, .equipment-result-card dt,
.equipment-result-card header span, .faq-meta { font-size: .9rem; }
.equipment-saved-item a, .equipment-result-actions a,
.equipment-saved-item button, .equipment-result-actions button { font-size: .95rem; }
.faq-showcase-options { grid-template-columns: repeat(3, minmax(8rem, 1fr)); max-width: 100%; overflow-x: auto; }
.faq-showcase-option { border: 0; border-radius: .25rem; font-size: 1rem; line-height: 1.5; word-break: normal; overflow-wrap: break-word; }
.faq-post p { overflow-wrap: break-word; }
.shell select, .secondary-button, .remove-button, .add-button { border-radius: .35rem; }
.sim-tabs button { border-radius: .35rem .35rem 0 0; }

/* Logical alignment for long translations, without changing numeric table alignment. */
[dir="rtl"] .nav-links, [dir="rtl"] .training-conditions { padding-left: 0; padding-inline-start: 1.5rem; }
[dir="rtl"] .site-contact, [dir="rtl"] .quest-search-suggestions button { text-align: start; }
.home-menu-group > ul { padding-inline-start: 2.5rem; padding-inline-end: 1rem; }
@media (max-width: 600px) {
  .display-preferences .display-preference select { height: auto; min-height: 44px; font-size: 1rem; }
  .hair-color-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 6.5rem), 1fr)); }
  .hair-color-name, .hair-color-name--long { font-size: .9rem; }
  .training-ranking th, .training-ranking td, .base-town th, .base-town td { font-size: 1rem; padding: .45rem .5rem; }
  .training-ranking table { min-width: 50rem; }
  .training-location .training-detail-button { font-size: .95rem; }
  .home-notices time, .home-notice-description { font-size: .9rem; }
  .home-menu-group > ul { columns: 1; }
  .source-details, .character-fields, .character-stats { grid-template-columns: 1fr; }
  .sim-tabs button { flex: 1 1 auto; min-width: min-content; max-width: 100%; word-break: keep-all; overflow-wrap: break-word; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .game-store-button { transition: none; }
  .result-card.has-result { animation: none; }
}

/* TOP: task links precede explanation and download, using logical alignment. */
.home-entry-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem 1rem; margin-block: .5rem 1rem; }
.home-entry-links a { display: flex; align-items: center; min-block-size: 44px; padding: .35rem .5rem; background: #e8f0f7; color: #174f83; font-weight: 650; overflow-wrap: break-word; }
.home-page-search { margin-block: 1rem; max-inline-size: 42rem; }
.home-page-search > label { display: block; font-weight: 650; }
.home-page-search input { box-sizing: border-box; inline-size: 100%; min-block-size: 44px; padding: .5rem; border: 1px solid #60758a; border-radius: .25rem; font: inherit; }
.home-page-search p { margin-block: .35rem; color: #526174; }
.home-page-search ul { max-block-size: 18rem; overflow: auto; padding-inline-start: 1.5rem; }
.home-page-search li a { display: inline-flex; align-items: center; min-block-size: 44px; }
.game-store-links { margin-block: .75rem 1rem; padding-block: .5rem; }
.game-store-links .game-store-developer { margin-block: .1rem .25rem; }
.game-store-links .game-store-guidance { margin-block: 0 .35rem; font-weight: 600; line-height: 1.4; }

/* Local two-axis scrolling and pinned names/headers on quest lists only. */
html { scroll-padding-block-start: calc(var(--wiki-preferences-height, 0px) + var(--wiki-header-height, 58px) + 1rem); }
.quest-table, .quest-table.is-overflowing { max-block-size: min(70vh, calc(100vh - var(--wiki-preferences-height, 0px) - var(--wiki-header-height, 58px) - 2rem)); overflow: auto; scroll-margin-block-start: 1rem; }
.quest-table .quest-detail-table { border-collapse: separate; border-spacing: 0; }
.quest-table .quest-detail-table thead th { position: sticky; inset-block-start: 0; z-index: 3; background: #e8f0f7; }
.quest-table .quest-detail-table [data-quest-column="name"] { position: sticky; inset-inline-start: 0; z-index: 2; box-sizing: border-box; inline-size: 16rem; min-inline-size: 12rem; max-inline-size: 16rem; white-space: normal; word-break: normal; overflow-wrap: break-word; text-align: start !important; background: #fff; }
.quest-table .quest-detail-table thead [data-quest-column="name"] { z-index: 4; background: #e8f0f7; }
.quest-table .quest-detail-table td[data-quest-field="name"] { padding: .5rem !important; }
.quest-table td[data-quest-field="name"] .quest-note-button,
.quest-table td[data-quest-field="name"] .quest-favorite-star,
.quest-table td[data-quest-field="name"] .quest-copy-button,
.quest-table td[data-quest-field="name"] .quest-detail-button { position: static; transform: none; display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; min-inline-size: 44px; min-block-size: 44px; margin: .15rem; }
.quest-detail-buttons-hidden .quest-table .quest-detail-button,
.quest-copy-buttons-hidden .quest-table .quest-copy-button { display: none !important; }
.quest-table-scroll-hint { margin-block: .5rem; color: #526174; }
.quest-list-help { flex: 1 1 100%; }
.quest-list-help > summary { min-block-size: 44px; cursor: pointer; font-weight: 650; }
.quest-list-help p { margin-block: .5rem; }
.quest-column-presets { flex: 1 1 100%; margin-block: 0; }
.quest-column-presets button { min-block-size: 44px; font: inherit; }
.quest-column-presets button[aria-pressed="true"] { background: #174f83; color: #fff; border-color: #174f83; }
.quest-column-presets [data-quest-preset-status] { align-self: center; color: #526174; }
@media (max-width: 700px) {
  .home-entry-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quest-table .quest-detail-table [data-quest-column="name"] { inline-size: 42vw; min-inline-size: 0 !important; max-inline-size: 42vw; }
}
.home-intro {
  white-space: pre-line;
}

/* Training names occupy their own row; controls never compete with the label. */
.training-location-content {
  grid-template-columns: max-content 44px 44px;
  justify-content: start;
  gap: .25rem;
}
.training-location-content [data-training-location-name] {
  grid-column: 1 / -1;
  white-space: normal;
  text-align: start;
  line-height: 1.5;
}
.training-location-content .training-detail-button,
.training-location-content .quest-note-button,
.training-location-content .training-favorite-star {
  position: static;
  transform: none;
  min-inline-size: 44px;
  min-block-size: 44px;
  margin: 0;
}

