/* Cool white, soft jade and small brass accents. Original ink theme remains available. */
:root:not([data-theme=night]){color-scheme:light;--paper:#eef6f3;--panel:#ffffff;--ink:#36423d;--muted:#68756e;--line:#dce6e1;--green:#426c5d;--red:#9b5d55;--folio-accent:#365e50;--folio-soft:#f1f6f3;--folio-gold:#f5f1e7;--folio-brass:#8b7447;--folio-control:#f3f6f4;--folio-selected:#e8f0eb;--folio-edge:#bfcec5;--folio-lilac:#f1edf7}
:root[data-theme=night]{--folio-accent:#e5c783;--folio-soft:#24372f;--folio-gold:#383b29;--folio-control:#23342c;--folio-selected:#304339;--folio-edge:#526456}
html:not([data-theme=night]),html:not([data-theme=night]) body{background:var(--paper);color:var(--ink);background-image:none}
:root:not([data-theme=night]) .viewport-shell .main{background:var(--panel);border-color:var(--line)}
:root:not([data-theme=night]) :is(.brand strong,.page-title,.home-banner strong,.section-top h1,.camp-rank,.roster-heading>strong,.roster-tile>strong,.roster-stars,.building-heading b,.camp-stock b,.battle-state){color:var(--folio-accent)}
:root:not([data-theme=night]) :is(.card,.location,.fold-section,.savebox-current,.realm-card,.realm-section,.building-card,.duty-card,.roster-tile,.roster-filters,.story-door,.battle-unit,.growth-skill,.growth-mount,.camp-status,.camp-orders,.camp-goals,.camp-duties,.quality-panel,.activity-panel,.section-picker,.page-sections,.journey-sections,.battle-transport,.sortie-cost,.recruit-target,.hero-invitation,.recruit-batch-card){background:var(--panel);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) .viewport-shell :is(article,section)>:is(h2,h3,strong),:root:not([data-theme=night]) :is(.activity-text,.roster-tile-meta,.building-heading,.roster-selected,.quality-steps .quality-reached){color:var(--ink)}
:root:not([data-theme=night]) :is(.viewport-shell .note,.viewport-shell .meta,.activity-meta,.activity-caption,.home-banner span,.roster-title,.roster-seat,.camp-stock span,.guide-heading,.roster-pager span){color:var(--muted)}
:root:not([data-theme=night]) :is(.notice,.warning,.town-notice,.complete,.story-guide,.journey-home,.mechanic-preview,.field-preview,.battle-receipt,.staffing-impact,.result-rewards,.batch-changes){background:var(--folio-soft);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) :is(.notice.error,.error,.danger){background:#f7eae6;color:#8a3f31;border-color:#d9b0a6}
:root:not([data-theme=night]) .primary{background:var(--folio-selected);border-color:var(--folio-edge);color:var(--green)}
:root:not([data-theme=night]) .primary:hover{background:#e0eae4;border-color:#aebfb4}
:root:not([data-theme=night]) .secondary{background:var(--folio-control);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) :is(.text-action,summary,.log-toggle,.log-latest,.log-controls button){color:var(--green)}
:root:not([data-theme=night]) :is(input,select,textarea){background:var(--panel);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) :is(.badge,.quality-badge){background:var(--folio-soft);color:var(--muted);border-color:var(--line);border-radius:6px}
:root:not([data-theme=night]) .quality-1{color:var(--green)}:root:not([data-theme=night]) .quality-2{color:#78618d}
:root:not([data-theme=night]) .quality-badge.quality-1{background:#eaf3ee;border-color:#ccdcd2}
:root:not([data-theme=night]) .quality-badge.quality-2{background:var(--folio-lilac);border-color:#ded5e9}
:root:not([data-theme=night]) :is(.viewport-shell .tabs button,.section-choice){background:transparent;color:var(--muted);border-color:transparent}
:root:not([data-theme=night]) :is(.viewport-shell .tabs button[aria-current=page],.section-choice[aria-current=page],.journey-sections button[aria-current=page]){color:var(--green);background:var(--folio-soft);border-color:var(--folio-edge)}
:root:not([data-theme=night]) .roster-selected{border-color:var(--folio-edge);box-shadow:inset 0 0 0 1px var(--folio-edge)}
:root:not([data-theme=night]) :is(.compact-dialog .dialog-footer,.screen-pager){background:var(--panel)}
:root:not([data-theme=night]) dialog{background:var(--panel);color:var(--ink);box-shadow:0 16px 48px #243d3226;border-color:var(--line);border-radius:16px}
:root:not([data-theme=night]) dialog::backdrop{background:#263c3459}
:root:not([data-theme=night]) :is(button,a,summary,input,select,textarea):focus-visible{outline-color:var(--green)}
:root:not([data-theme=night]) .log-controls button[aria-pressed=true]{color:var(--green)}
:root:not([data-theme=night]) .hero-portrait{border-color:var(--line)}
/* Common control shapes and restrained spacing work in both themes. */
.viewport-shell :is(.secondary,.primary,.danger,input,select,textarea,.roster-tile),dialog :is(button,select,input,textarea){border-radius:10px}
.viewport-shell :is(.realm-card,.building-card,.story-guide,.quality-panel,.notice){border-radius:12px}
.viewport-shell .masthead{border-bottom-width:1px}.viewport-shell .brand strong{letter-spacing:1px}.viewport-shell .seal{border-radius:5px}
.theme-switch{padding:0 9px;border:1px solid var(--line);background:var(--panel);border-radius:8px;font-size:12px;min-height:36px;color:var(--green)}
.theme-night{display:none}:root[data-theme=night] .theme-night{display:inline}:root[data-theme=night] .theme-day{display:none}
.camp-dashboard{max-width:920px;margin:0 auto}.folio-next{border:1px solid var(--line);border-radius:12px;background:var(--folio-soft);padding:12px;position:relative;margin:8px 0}
.folio-eyebrow{color:var(--green);font-size:11px;letter-spacing:1px}.viewport-shell .folio-next h2{font-size:19px;margin:3px 0 5px}.viewport-shell .folio-next p{font-size:13px;margin:4px 0 8px}.folio-next>.primary{width:100%}
.folio-story{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);margin:0 0 9px}.folio-story>div{min-width:0}.folio-story small{color:var(--muted);font-size:11px}.folio-story strong{display:block;font-size:14px}.folio-story button{flex:none;white-space:nowrap}
.folio-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.folio-shortcuts button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;padding:6px;font-size:12px!important}
.folio-more{margin:8px 0;border-top:1px solid var(--line);padding:0}.folio-more>summary{padding:8px 0;min-height:40px;line-height:24px}.folio-more .function-grid{margin:6px 0}
.hero-dossier{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;max-width:850px;margin:0 auto}.dossier-identity{display:flex;align-items:center;gap:12px}.dossier-identity>.hero-portrait{width:62px!important;height:76px!important;border-radius:9px;float:none;margin:0;flex:none;aspect-ratio:auto}.dossier-identity h2{margin:2px 0!important;font-size:22px!important}.dossier-identity p{margin:0!important}.dossier-experience{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;padding:9px 0;font-size:12px}.dossier-experience progress{height:6px;width:100%;border-radius:4px;overflow:hidden}
.dossier-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:0}.dossier-stats div{display:flex;align-items:center;justify-content:space-between;gap:6px;border-radius:7px;background:var(--folio-soft);padding:7px 9px;font-size:12px}.dossier-stats dt{color:var(--muted)}.dossier-stats dd{margin:0;font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}.dossier-stats div:first-child{grid-column:1/-1}.viewport-shell .dossier-stat-note{font-size:10px;margin:5px 0}
.dossier-ability{padding:9px 0;margin:8px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.viewport-shell .dossier-ability h3{font-size:14px;color:var(--green);margin:0}.viewport-shell .dossier-ability p{font-size:12px;margin:5px 0}.dossier-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dossier-actions button{padding:5px;font-size:12px!important}.hero-dossier>details{margin:8px 0 0}.hero-dossier>details>summary{min-height:36px;line-height:36px}#roster-detail{margin-top:8px}
.inventory-search{display:flex;align-items:center;gap:7px;margin:4px 0 10px}.inventory-search input{flex:1;min-width:0;padding:8px}.inventory-search button{flex:none}.inventory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.inventory-row{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--panel);min-width:0}.inventory-row-title{display:flex;justify-content:space-between;gap:8px;align-items:start}.viewport-shell .inventory-row h3{font-size:14px;margin:0}.inventory-row b{color:var(--folio-accent);font-size:13px;white-space:nowrap}.viewport-shell .inventory-row p{font-size:12px;line-height:1.5;margin:6px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}.inventory-row button{width:100%;padding:4px 8px}.inventory-pagination{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:9px 0}.inventory-pagination>span{font-size:11px;color:var(--muted)}.inventory-pagination button{padding:5px 9px}.inventory-empty{grid-column:1/-1}.inventory-detail .dialog-header{display:flex;justify-content:space-between;align-items:center}.inventory-detail .dialog-header button{background:transparent;border:0;font-size:24px;color:var(--muted);min-width:44px}.inventory-detail .realm-card{border:0;padding:4px;background:transparent}.inventory-detail .dialog-body button{margin:4px;max-width:calc(100% - 8px)}
@media(max-width:900px) and (min-height:501px),(max-width:599px){
 .shell.viewport-shell{grid-template-rows:42px 28px minmax(0,1fr) 20px;padding-inline:max(8px,env(safe-area-inset-left))}
 .viewport-shell .masthead{padding-bottom:3px}.viewport-shell .brand strong{font-size:17px}.viewport-shell .mast-links{gap:7px}.viewport-shell .mast-links>a{font-size:10px;min-height:36px}.theme-switch{min-height:34px;font-size:11px;padding-inline:7px}
 .shell.viewport-shell .viewport-layout,html[data-short-viewport] .shell.viewport-shell .viewport-layout{grid-template-rows:minmax(0,1fr) 50px;gap:4px}
 .viewport-shell .main{grid-row:1;border-radius:12px;padding:8px}.viewport-shell .rail{grid-row:2;background:var(--panel);border-top:1px solid var(--line);border-radius:10px;overflow:hidden}.viewport-shell .tabs{height:50px}.viewport-shell .tabs button{border:0!important;border-radius:8px;gap:3px;min-height:48px}.viewport-shell .tabs .game-icon{width:18px;height:18px;flex-basis:18px}
 .activity-panel{grid-row:2;border-radius:8px;border-top-width:1px}.activity-heading{padding:0 8px}.activity-heading h2{font-size:12px}.log-toggle{min-height:34px;font-size:11px}.log-latest{min-height:34px}
 html:not([data-log-expanded=true]) .activity-panel{grid-template-rows:34px}
 .viewport-shell .footer,.viewport-shell .footer .text-action{font-size:9px;min-height:20px;padding:0}.viewport-shell .footer .game-icon{width:12px;height:12px;flex-basis:12px}
 .viewport-shell .resource-strip .resources{font-size:11px;gap:10px}.resource-strip .text-action{min-height:26px;font-size:11px}.resource-strip .resources>.with-icon{order:3}.resource-strip .resources .game-icon{width:13px;height:13px;flex-basis:13px}
 .home-banner{min-height:24px}.home-banner strong{font-size:15px}.home-banner span{font-size:10px}
 .folio-next{padding:9px;margin:4px 0 5px}.viewport-shell .folio-next h2{font-size:16px;margin:2px 0 3px}.viewport-shell .folio-next p{font-size:12px;line-height:1.5;margin:3px 0 6px}.folio-eyebrow{font-size:10px}.folio-next>.primary{min-height:40px!important}
 .folio-story{padding:5px 0;margin-bottom:7px}.folio-story strong{font-size:12px}.folio-story small{font-size:10px}.folio-story button{font-size:11px!important;padding:5px 8px}
 .folio-shortcuts{gap:5px}.folio-shortcuts button{min-height:42px!important;padding:5px 2px;font-size:11px!important}.folio-shortcuts .game-icon{width:15px;height:15px;flex-basis:15px}.folio-more{margin:5px 0}.folio-more>summary{padding:3px 0;min-height:36px;font-size:12px!important}
 .page-sections[data-section-nav=bag]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:2px 0;margin:0 0 7px}.page-sections[data-section-nav=bag]>.section-choice{display:block;min-height:40px!important;padding:4px 2px;font-size:11px!important;border-radius:8px;border:1px solid transparent;line-height:1.4}.page-sections[data-section-nav=bag]>.mobile-section-select{display:none}
 .hero-dossier{padding:9px}.dossier-identity{gap:9px}.dossier-identity>.hero-portrait{width:50px!important;height:62px!important}.dossier-identity h2{font-size:19px!important}.dossier-stats div{padding:5px 8px}.dossier-stats dd{font-size:14px}.dossier-actions button{min-height:40px!important}.dossier-ability{padding:7px 0;margin:6px 0}.section-hero-picker{margin:5px 0}
 .inventory-list{grid-template-columns:1fr;gap:5px}.inventory-row{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:3px 7px;padding:7px 9px;break-inside:avoid}.inventory-row-title{grid-column:1}.viewport-shell .inventory-row p{grid-column:1;margin:0;font-size:11px;min-height:0;-webkit-line-clamp:1}.inventory-row button{grid-column:2;grid-row:1/3;min-height:40px!important;font-size:11px!important;padding:3px}.viewport-shell .inventory-row h3{font-size:13px}.inventory-row b{font-size:11px}.inventory-search{margin:2px 0 6px}.inventory-search input{padding:5px 8px;min-height:40px}.inventory-search button{min-height:40px!important;padding:5px 9px}.inventory-pagination{margin:5px 0}.inventory-pagination button{min-height:36px!important;font-size:12px!important}
 .inventory-browser .inventory-list{display:grid!important}.screen-paper .dossier-stats{display:grid!important}.screen-paper .folio-shortcuts{display:grid!important}.screen-paper .inventory-row{display:grid!important}
}
@media(max-width:599px) and (max-height:650px){.folio-next .folio-eyebrow{display:none}.viewport-shell .folio-next p{font-size:11px}.folio-story strong{font-size:11px}.folio-story small{font-size:9px}.folio-next>.primary{min-height:36px!important}.folio-shortcuts button{min-height:40px!important}.home-banner{min-height:22px}}
/* Detail panels show one purpose at a time, including on small phones. */
:root:not([data-theme=night]) :is(dialog.compact-dialog,dialog .dialog-header,dialog .dialog-body){background:var(--panel);color:var(--ink)}
:root:not([data-theme=night]) dialog h2{color:var(--folio-accent)}
.dossier-navigation{display:flex;align-items:center;gap:7px}.dossier-navigation>button{flex:none;padding:5px 9px}.dossier-navigation .section-hero-picker{flex:1;min-width:0;margin:0}.dossier-navigation select{width:100%;margin:0!important}.dossier-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;border-bottom:1px solid var(--line);padding:6px 0;margin:4px 0 6px}.dossier-tabs .secondary{border:0;background:transparent;color:var(--muted);min-height:36px!important;padding:4px}.dossier-tabs [aria-current=page]{color:var(--green)!important;background:var(--folio-soft)!important;box-shadow:inset 0 -2px var(--green)}.dossier-panel[hidden]{display:none!important}
@media(max-width:599px) and (max-height:650px){
 .folio-next{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:3px 8px;padding:8px}.viewport-shell .folio-next h2{font-size:14px;margin:0}.viewport-shell .folio-next p{grid-column:1;margin:0;font-size:11px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.folio-next>.primary{grid-column:2;grid-row:1/3;align-self:center;min-height:44px!important;font-size:11px!important;padding:5px}
 [data-page-section^="bag:"]>.section-top{display:none}
 .viewport-shell .dossier-navigation :is(select,button){min-height:38px!important;height:38px;font-size:13px;padding:5px}.dossier-navigation+.dossier-navigation{display:none}#roster-detail{margin-top:6px}.hero-dossier{padding:8px}.dossier-identity>.hero-portrait{height:54px!important;width:44px!important}.dossier-identity h2{font-size:18px!important}.dossier-identity .note,.dossier-identity .meta{font-size:11px!important}.dossier-tabs{padding:3px 0;margin:4px 0}.dossier-experience{padding:5px 0;gap:3px}.dossier-stats div{padding:5px 8px}.viewport-shell .dossier-stat-note{margin:4px 0;font-size:10px;line-height:1.4}
}
.dossier-identity h2{line-height:1.25!important}.dossier-identity .meta,.dossier-identity .note{line-height:1.4!important}.dossier-identity .note{display:block}.dossier-stats{line-height:1.3}.dossier-experience{line-height:1.25}
@media(max-width:599px) and (max-height:650px){.dossier-stats div{padding:5px 8px;min-height:28px}.dossier-experience{padding:5px 0;gap:3px}.dossier-identity h2{margin:2px 0!important}}
.viewport-shell .main [data-page-section="heroes:profile"]{padding-top:0}
.viewport-shell .main .dossier-stat-note{font-size:10px;line-height:1.4;margin:4px 0}
@media(max-width:599px) and (max-height:650px){.viewport-shell .main [data-page-section^="bag:"]{padding-top:0}}

/* Quiet light surfaces: ink-green headings, grey-green controls, brass only in small markers. */
:root:not([data-theme=night]) .viewport-shell .main{background:var(--paper);border-color:transparent}
:root:not([data-theme=night]) .folio-next{background:var(--panel)}
:root:not([data-theme=night]) .folio-next>.primary{background:var(--folio-selected);border-color:var(--folio-edge);color:var(--green)}
:root:not([data-theme=night]) .folio-next>.primary:hover{background:#e0eae4;border-color:#aebfb4}
:root:not([data-theme=night]) .folio-eyebrow{color:var(--folio-accent)}
:root:not([data-theme=night]) :is(.folio-shortcuts .secondary,.inventory-row button){background:var(--folio-control);border-color:var(--line)}
:root:not([data-theme=night]) .folio-shortcuts{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:3px}
:root:not([data-theme=night]) .folio-shortcuts .game-icon{color:var(--folio-accent)}
:root:not([data-theme=night]) .secondary:hover{background:var(--folio-soft)}
:root:not([data-theme=night]) .dossier-stats div{background:var(--folio-soft)}
:root:not([data-theme=night]) .dossier-stats dd{color:var(--green)}
:root:not([data-theme=night]) .dossier-stats div:first-child dd{color:#97594f}
:root:not([data-theme=night]) progress{background:#dfe9e3;accent-color:var(--green)}
:root:not([data-theme=night]) progress::-webkit-progress-bar{background:#dfe9e3;border-radius:4px}
:root:not([data-theme=night]) progress::-webkit-progress-value{background:#719788;border-radius:4px}
:root:not([data-theme=night]) progress::-moz-progress-bar{background:#719788;border-radius:4px}
:root:not([data-theme=night]) .theme-switch{color:var(--muted);background:transparent}
:root:not([data-theme=night]) .viewport-shell .seal{background:#5f8273;color:#ffffff;border-color:#5f8273}
.resource-strip .text-action::before,.resource-strip .text-action::after{content:none}

.viewport-shell .main .story-rules{font-size:12px;line-height:1.55;margin:8px 0;padding:7px 9px;border-left:2px solid var(--line);color:var(--muted)}

/* Older feature screens share the light palette without changing their layout. */
:root:not([data-theme=night]) :is(.helper-card,.helper-summary,.rotation-section,.rotation-card,.corps-panel,.material-target,.production-panel,.frontier-map,.frontier-intro,.frontier-post,.atlas-target,.atlas-node,.local-benefit,.battle-orders,.equipment-tools,.hero-specialty,.objective-panel,.affairs-panel,.equipment-comparison,.camp-overview,.focus-panel,.sweep-controls,.debrief-panel,.debrief-grid article,.reward-grid article,.save-comparison article){background:var(--panel);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) .viewport-shell .main .hero-card,:root:not([data-theme=night]) #roster-detail>.hero-card{background:var(--panel);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) :is(.corps-line>div,.rotation-calendar>div,.raid-intel,.enemy-intel,.martial-trait,.weekly-progress,.frontier-routes,.doctrine,.combat-log){background:var(--folio-soft);color:var(--ink);border-color:var(--line)}
:root:not([data-theme=night]) :is(.camp-arrival h1,.roster-heading h2,.hero-card h2,.hero-card h3,.goal-heading h2,.goal-heading h3,.duty-card h3,.helpers-heading h2,.helper-identity h3,.rotation-section h2,.rotation-card h3,.production-panel h2,.frontier-map h2,.frontier-intro h2,.frontier-post h3,.atlas-heading h1,.atlas-region>h2,.local-benefit h2,.hero-specialty h3,.objective-panel h2,.savebox-files h2){color:var(--folio-accent)}
:root:not([data-theme=night]) :is(.camp-status>p:first-child,.atlas-place,.atlas-route,.camp-goal .requirement-done,.duty-yield b,.helper-card .helper-effect,.helper-summary b,.martial-trait b,.objective-panel strong,.rotation-calendar b,.reward-grid b,.production-count,.intel-active,.target-ready b){color:var(--green)}
:root:not([data-theme=night]) :is(.roster-filters label,.roster-heading small,.goal-heading>span,.camp-goal ul,.duty-yield span,.hero-exp label,.intel-pending,.helpers-heading>span,.helper-card .helper-story,.helper-card .helper-status,.corps-line span,.target-row span,.production-count small,.atlas-place>span,.atlas-exits,.atlas-feature){color:var(--muted)}
:root:not([data-theme=night]) :is(.camp-rank,.roster-heading,.hero-card details,.activity-entry,.activity-heading,.log-controls,.camp-goal,.hero-duty,.rotation-stage,.target-row,.atlas-region,.atlas-region>h2,.atlas-feature,.leaderboard :is(th,td),.equipment-comparison :is(th,td),.verified-ranking,.verified-ranking :is(th,td),.batch-changes p,.compact-dialog .reward-grid article){border-color:var(--line)}
:root:not([data-theme=night]) :is(.atlas-regions button,.rotation-shortcuts a){background:var(--folio-control);color:var(--green);border-color:var(--line);border-radius:10px}
:root:not([data-theme=night]) :is(.battle-speed button[aria-pressed=true],.skill-mode button[aria-pressed=true],.battle-orders [aria-pressed=true],.battle-skill button:not(:disabled),.atlas-node.node-current,.rotation-calendar>.rotation-today){background:var(--folio-selected);color:var(--green);border-color:var(--folio-edge)}
:root:not([data-theme=night]) .atlas-node.node-selected{box-shadow:inset 3px 0 var(--folio-edge)}
:root:not([data-theme=night]) :is(.page-sections [aria-current=page],.journey-sections button[aria-current=page],.compact-dialog .dialog-tabs button[aria-selected=true]){background:var(--folio-soft);box-shadow:inset 0 -2px var(--folio-edge)}
:root:not([data-theme=night]) .quality-steps span{background:var(--folio-soft);color:var(--muted);border-color:var(--line)}
:root:not([data-theme=night]) .quality-steps .quality-reached{background:var(--folio-selected);color:var(--green);border-color:var(--folio-edge)}
:root:not([data-theme=night]) .helper-role{background:var(--folio-lilac);color:#78618d;border-color:#ded5e9}
:root:not([data-theme=night]) :is(.roster-stars,.rotation-reward){color:var(--folio-brass)}
:root:not([data-theme=night]) :is(.enemy-intent,.atlas-locks,.atlas-exits small,.stat-down){color:var(--red)}
:root:not([data-theme=night]) .stat-up{color:var(--green)}
:root:not([data-theme=night]) .equipment-inventory .card[data-locked=true]{border-left-color:var(--folio-brass)}

/* Keep both seal characters inside the compact header. */
.viewport-shell .brand>.seal{display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;width:26px;height:32px;padding:2px;font-size:12px;line-height:1;letter-spacing:1px;white-space:nowrap;overflow:hidden}

/* Full-width hero pickers must not inherit the inline label select offset. */
.section-hero-picker select{margin-left:0;min-width:0;box-sizing:border-box}

.build-guides details,.gear-refine{border:1px solid var(--line,#d6e1dc);border-radius:8px;padding:8px;margin-block:6px}.build-guides summary,.gear-refine summary{cursor:pointer}.tactics-target h2{font-size:1rem}.tracked-goal{gap:8px}.tracked-goal>div{min-width:0}.tracked-goal .note{display:block;font-size:.75rem;overflow-wrap:anywhere}.gear-trait{line-height:1.5}.tactics-report p{margin-block:5px}@media(max-width:600px){.tactics-target{padding:8px}.tactics-target p{margin-block:5px}.build-guides h2{font-size:1rem}.build-guides details{padding:6px}.gear-refine{padding:5px}}

.battle-threat{padding:8px 10px;border-left:3px solid var(--gold,#b39755);background:var(--surface,#f6faf8);border-radius:6px;margin-bottom:8px}.battle-threat p{margin:4px 0}.threat-countdown{font-weight:600;color:var(--ink,#284d46)}.starter-guide,.replacement-panel,.growth-budget{margin:8px 0;padding:8px;border:1px solid #d9e4df;border-radius:6px}.phase-goals .actions{display:flex;flex-wrap:wrap;gap:6px}

/* Story is always the first decision. Preparation remains a compact optional row. */
.folio-shortcuts small{display:block;font-size:10px;color:var(--muted)}
.camp-support{flex-wrap:wrap;margin-top:6px}.camp-support>div{flex:1;min-width:120px}
.lesson-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.lesson-heading h1{margin:0!important}
.lesson-card[data-completed=true]{padding:9px}.lesson-card h2{margin:0 0 5px!important}.lesson-card h2 span{color:var(--green)}
.lesson-card details{margin:4px 0}.lesson-card summary{font-size:12px;min-height:32px}.lesson-card[data-completed=true] .secondary{min-height:36px}
@media(max-width:599px){.folio-next[data-mainline] h2{font-size:16px}.folio-next[data-mainline] p{font-size:12px;line-height:1.5}.lesson-heading .primary{min-height:40px;font-size:12px}.lesson-card p{font-size:12px;line-height:1.5}.camp-duties>details{margin:4px 0}}
@media(max-width:599px) and (max-height:650px){.folio-next[data-mainline] h2{font-size:14px}.folio-next[data-mainline] p{font-size:11px}.folio-next[data-mainline] .folio-eyebrow{display:block;grid-column:1;font-size:10px}.folio-next[data-mainline]>.primary{grid-row:1/4}}

.onboarding-guide{flex:none;border-left:3px solid var(--green);background:var(--folio-soft);padding:6px 8px;margin:0 0 7px;font-size:12px;line-height:1.4}
.onboarding-guide>div{display:flex;align-items:center;justify-content:space-between;gap:6px}.onboarding-guide strong{font-size:12px;color:var(--green)}
.viewport-shell .onboarding-guide p{font-size:11px;line-height:1.4;margin:3px 0}.onboarding-guide nav{display:flex;gap:8px;flex-wrap:wrap}.viewport-shell .onboarding-guide button{font-size:11px;min-height:28px!important;padding:3px 7px;margin:0;background:var(--panel);color:var(--green);border:1px solid var(--line);border-radius:5px}.guide-closed{padding:0;border:0;background:none;text-align:right}
button[data-guide-target]{border-color:var(--folio-brass,#8b7447)!important;box-shadow:inset 3px 0 0 var(--folio-brass,#8b7447)!important}
button[data-guide-target]:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:900px){#main[data-guided=true] .scene-banner{display:none}#main>.onboarding-guide{order:-2}.onboarding-guide{margin-bottom:5px;padding:4px 7px}}

/* Grain-road choices use compact cards; existing screen pagination stays available. */
.grain-road-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.grain-road-choices>article,.grain-road-summary{border:1px solid var(--line,#ccd8d3);border-radius:10px;padding:12px;background:var(--panel,#f7faf8);margin:8px 0}
.grain-road-choices h3,.grain-road-summary h2,.grain-road-summary h3{margin:0 0 8px;font-size:15px}
.grain-road-choices p,.grain-road-summary p,.grain-road-brief p{margin:7px 0;line-height:1.55}
.grain-road-choices label{display:block}.grain-road-choices select{max-width:100%;margin:5px 0}
@media(max-width:600px){.grain-road-choices{display:block}.grain-road-choices>article,.grain-road-summary{padding:9px}.grain-road-choices p,.grain-road-summary p,.grain-road-brief p{font-size:12px}}

.grain-route-tabs{display:flex;gap:6px;margin:8px 0}.grain-route-tabs button{flex:1}.grain-route-tabs [aria-pressed=true]{background:var(--folio-accent,#397969);color:var(--panel,#fff)}
.grain-road-brief h2{font-size:17px;margin:10px 0}.grain-road-entry{margin-top:8px}

.grain-route-tabs button[aria-pressed=true]{box-shadow:inset 0 -3px var(--folio-accent,#397969);font-weight:700}
.grain-road-investments h3{font-size:14px;margin:9px 0 5px}.grain-road-investments>.note{margin:6px 0}
.grain-road-investments .grain-road-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grain-road-investments .grain-road-choices>article{margin:0}

.idle-hub h2{font-size:17px;margin:10px 0}.idle-tabs{display:flex;gap:6px;margin:8px 0}.idle-tabs button{flex:1}.idle-tabs button[aria-pressed=true]{font-weight:700;box-shadow:inset 0 -3px var(--folio-accent,#397969)}
.idle-card{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0;background:var(--panel)}.idle-card h3{font-size:14px;margin:0 0 6px}.idle-card p,.idle-hub>.note{margin:6px 0;font-size:12px;line-height:1.5}.idle-hub label{display:block;margin:6px 0}.idle-hub select{width:100%;min-width:0}.idle-production{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.idle-production .idle-card{margin:0}

.idle-production .idle-card{padding:8px 10px}.idle-production .idle-card h3{margin:0}.idle-production .idle-card p{margin:5px 0 0}.idle-production .idle-card h3 small{font-size:11px;font-weight:400;color:var(--muted)}

.gathering-ready{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0}.gathering-ready span{min-width:0}.gathering-ready button{flex:none}.gathering-discovery{margin:6px 0}.gathering-discovery summary{font-size:12px}.regional-recipe select{width:100%}.gathering-uses .idle-card{margin:6px 0}.idle-tabs button{min-width:0}

.regional-workshop .recipe-categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin:6px 0}.regional-workshop .recipe-categories button{padding:6px 3px;font-size:11px;white-space:normal;min-width:0}.regional-workshop .idle-card{margin:6px 0}.regional-recipe>label{display:block;font-size:12px}.gathering-uses>h3{font-size:14px;margin:6px 0}

.region-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.region-heading h2{font-size:1.15rem;margin:0}.region-heading span,.region-action small{font-size:.8rem;color:var(--muted)}.region-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.region-map button{padding:8px 4px;min-height:40px;font-size:.8rem;white-space:normal}.region-map button[aria-pressed=true]{outline:2px solid var(--accent,#407369);outline-offset:-2px}.region-goal{border-left:3px solid #71978e;padding:6px 9px;background:rgba(113,151,142,.08);font-size:.84rem}.region-detail{padding:10px;border:1px solid var(--line,#d6e3df);border-radius:10px}.region-detail h3{margin:0 0 6px;font-size:1rem}.region-detail p{margin:6px 0}.region-action{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:7px 0}.region-action small{flex-basis:100%}.region-panel>.actions{margin-top:8px}.region-panel details{margin:7px 0}.region-camp [hidden]{display:none!important}.contact-panel{margin:6px 0}

.battle-field{border:1px solid var(--line,#d6e3df);border-radius:10px;padding:7px;background:rgba(113,151,142,.06)}.battle-field-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.battle-field-unit{min-width:0;padding:4px}.battle-field-unit button,.battle-field-unit strong{display:block;min-height:34px;padding:4px;font-size:.78rem;line-height:1.4;white-space:normal;width:100%}.battle-field-unit button[aria-pressed=true]{outline:2px solid #99654f;outline-offset:-2px}.battle-field-unit progress{display:block;width:100%;height:5px;margin:4px 0}.battle-field-unit small{display:block;min-height:1em;font-size:.72rem}.battle-field p{margin:4px 0;font-size:.74rem}.field-down{opacity:.5}

.region-map{break-inside:avoid;page-break-inside:avoid}.region-overview>.actions{display:flex;gap:6px}.region-roads{line-height:1.5}.region-detail+.actions{margin:6px 0}@media(max-width:600px){.journey-sections{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px!important;padding:3px!important}.journey-sections button{min-height:34px!important;padding:3px 1px!important;font-size:11px!important;line-height:1.3!important;white-space:normal}.region-map{gap:5px;margin:7px 0}.region-map button{min-height:40px!important;padding:4px!important;font-size:11px!important;line-height:1.35!important}.region-overview .region-goal{margin:7px 0}.region-heading{margin:4px 0}}

.region-tabs{display:flex;gap:6px;margin:5px 0}.region-tabs button{flex:1;min-height:34px;padding:4px 8px}.region-tabs [aria-pressed=true]{font-weight:700;box-shadow:inset 0 -3px var(--folio-accent,#397969)}.region-camp select{max-width:100%;min-width:0}.region-panel .notice{font-size:12px;line-height:1.5}

@media(max-width:600px) and (max-height:650px){.viewport-shell .region-tabs{margin:3px 0;gap:4px}.viewport-shell .region-tabs button{min-height:30px!important;padding:3px 5px!important;font-size:11px!important}.viewport-shell .region-map{margin:4px 0;gap:4px}.viewport-shell .region-map button{min-height:34px!important}.viewport-shell .region-overview>.actions{margin-top:4px}.viewport-shell .region-overview>.actions button{min-height:32px!important;padding:4px 6px!important;font-size:11px!important}.viewport-shell .region-overview .region-goal{padding:4px 6px;margin:4px 0;font-size:11px}.viewport-shell .region-roads{margin:4px 0!important;font-size:10px!important}}

/* Keep the map's current objective beside its places on short phone screens. */
@media(max-width:600px) and (max-height:650px){
 .viewport-shell .region-heading h2{font-size:15px!important;line-height:1.3!important;margin:2px 0!important}
 .viewport-shell .region-heading span{font-size:10px}
 .viewport-shell .region-map button{line-height:1.1!important;padding:3px 2px!important}
 .viewport-shell .region-overview .region-goal{line-height:1.35!important}
}
@media(max-width:600px){
 .viewport-shell .region-camp .idle-card{padding:8px;margin:6px 0;min-height:0}
 .viewport-shell .region-camp .idle-card h3{font-size:14px;margin:0 0 4px}
 .viewport-shell .region-camp .idle-card p{font-size:12px;line-height:1.45;margin:5px 0}
 .viewport-shell .region-camp label{font-size:12px}
 .viewport-shell .region-camp select{min-height:34px!important;padding:5px 7px;margin:3px 0}
 .viewport-shell .region-camp button{min-height:36px!important;padding:5px 9px;font-size:12px}
}

@media(max-width:600px) and (max-height:650px){
 .viewport-shell .region-roads{line-height:1.25!important}
 .viewport-shell .region-overview>.actions{margin-bottom:0!important}
 .viewport-shell .region-tabs{margin-top:0!important}
}

.exploration-goal-select{display:grid;grid-template-columns:1fr 2fr;gap:8px}.exploration-goal-select label{font-size:12px;color:var(--muted)}.exploration-goal-select select{display:block;width:100%;min-width:0;margin-top:4px}.exploration-target{border:1px solid var(--line);border-radius:10px;padding:10px;margin:8px 0}.exploration-target header{display:flex;align-items:center;justify-content:space-between;gap:8px}.exploration-target h3{margin:0}.exploration-target header span{font-size:11px;color:var(--green)}.exploration-target p{margin:6px 0}.exploration-target details{margin-top:8px}.exploration-goal-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:4px 0;font-size:12px}.goal-home-tools{display:flex;gap:10px;grid-column:1/-1}.exploration-home+.folio-next[data-mainline]{background:transparent;padding:7px 9px}.exploration-home+.folio-next[data-mainline] h2{font-size:12px}.exploration-home+.folio-next[data-mainline] p{display:none}.exploration-home+.folio-next[data-mainline]>.primary{font-size:12px;min-height:32px}.exploration-home+.folio-next[data-mainline] .folio-eyebrow{font-size:10px}
@media(max-width:599px){.exploration-goals>h2{font-size:16px;margin:4px 0}.exploration-target{padding:8px}.exploration-home{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:3px 8px}.exploration-home .folio-eyebrow,.exploration-home h2,.exploration-home p{grid-column:1}.exploration-home>.primary{grid-column:2;grid-row:1/4;width:100%;align-self:center;min-height:44px!important}.exploration-home .goal-home-tools{grid-row:4}.goal-home-tools button{font-size:11px!important;min-height:30px!important}.exploration-home+.folio-next[data-mainline]{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:3px 8px}.exploration-home+.folio-next[data-mainline]>.primary{grid-column:2;grid-row:1/3}.exploration-home+.folio-next[data-mainline] .folio-eyebrow{display:block}.exploration-home~.camp-support{display:none}}

@media(max-width:900px){.viewport-shell .exploration-goals>h2{font-size:15px;margin:3px 0 6px}.viewport-shell .exploration-goal-select{gap:6px}.viewport-shell .exploration-goal-select select{height:36px;min-height:36px;padding:4px;font-size:12px}.viewport-shell .exploration-target{padding:7px;margin:6px 0}.viewport-shell .exploration-target h3{font-size:14px;line-height:1.4;margin:0}.viewport-shell .exploration-target p{font-size:12px;line-height:1.5;margin:4px 0}.viewport-shell .exploration-goals .actions{margin:4px 0;gap:5px}.viewport-shell .exploration-goals .actions button{min-height:36px!important;padding:5px 9px;font-size:12px}.viewport-shell .exploration-target summary{min-height:28px;font-size:12px;padding:3px 0}.viewport-shell .exploration-goals>.note{font-size:11px;margin:4px 0}.exploration-target details{margin-top:4px}}
@media(max-width:599px) and (max-height:650px){.viewport-shell .main:has(.camp-dashboard) .scene-banner{height:28px;min-height:28px;margin:3px 0}.viewport-shell .main:has(.camp-dashboard) .scene-banner img{height:28px}.viewport-shell .main:has(.camp-dashboard) .scene-banner span{padding:2px 5px}.viewport-shell .main:has(.camp-dashboard) .scene-banner b{font-size:11px}.viewport-shell .main:has(.camp-dashboard) .scene-banner small{display:none}.viewport-shell .main:has(.camp-dashboard) .scene-banner em{font-size:10px;padding:3px 5px}.viewport-shell .camp-secondary summary,.viewport-shell .camp-dashboard>.folio-more summary{font-size:11px;min-height:24px;padding:3px 0}.viewport-shell .exploration-home+.folio-next[data-mainline]{padding:5px 7px}.viewport-shell .exploration-home+.folio-next[data-mainline]>.primary{min-height:32px!important}}

@media(max-width:900px){.viewport-shell .exploration-goal-select label{margin:0;line-height:18px}.viewport-shell .exploration-target details{margin:4px 0 0}.viewport-shell .exploration-goals>h2{line-height:20px;margin:0 0 4px}}
@media(max-width:599px) and (max-height:650px){.viewport-shell .exploration-goals>h2{display:none}.viewport-shell .exploration-goals{margin-top:0}}

@media(max-width:599px) and (max-height:650px){.viewport-shell .exploration-home{padding:7px;margin:4px 0}.viewport-shell .exploration-home h2{grid-row:1;font-size:14px;line-height:20px}.viewport-shell .exploration-home p{grid-row:2/4;line-height:16px;margin:0}.viewport-shell .exploration-home>.primary{grid-row:2/4;min-height:38px!important}.viewport-shell .exploration-home .goal-home-tools{grid-column:2;grid-row:1;justify-content:flex-end;gap:2px}.viewport-shell .exploration-home .goal-home-tools button{min-height:22px!important;padding:0;font-size:10px!important}.viewport-shell .exploration-home .goal-home-tools button+button{display:none}.viewport-shell .exploration-home+.folio-next[data-mainline]{margin:4px 0}.viewport-shell .folio-shortcuts{margin:4px 0;gap:4px}.viewport-shell .folio-shortcuts button{min-height:36px!important;padding:4px}.viewport-shell .camp-dashboard>.folio-more{margin:4px 0}}

@media(max-width:599px) and (max-height:650px){.viewport-shell [data-page-section="camp:home"]{margin:0;padding:0}.viewport-shell .folio-shortcuts small{display:none}.viewport-shell .folio-shortcuts button span{line-height:18px}.viewport-shell .exploration-home+.folio-next[data-mainline] h2{font-size:12px;line-height:17px;margin:0}.viewport-shell .exploration-home+.folio-next[data-mainline] .folio-eyebrow{line-height:16px}}

@media(max-width:600px){.viewport-shell .region-tabs button{min-width:0;white-space:nowrap;padding-inline:2px!important}.viewport-shell .mine-smelt p{font-size:11px;line-height:1.4}.viewport-shell .mine-smelt summary{font-size:12px}}

.region-camp-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(92px,1fr);gap:8px}.region-camp-controls label{min-width:0}.region-camp-controls select{display:block;width:100%}.mine-forge-page .mine-smelt{margin-bottom:0}.mine-forge-page .mine-smelt .actions{margin:4px 0}

@media(max-width:600px){.viewport-shell .region-camp-controls label{margin:0;line-height:18px}.viewport-shell .region-camp-controls select{font-size:12px;margin:2px 0}.viewport-shell .mine-forge-page>.idle-card{margin:4px 0;padding:7px}.viewport-shell .mine-forge-page h3{line-height:20px}.viewport-shell .mine-forge-page details{margin:5px 0!important}.viewport-shell .mine-forge-page .note{margin:3px 0!important;line-height:1.4!important}}

.region-camp-footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:6px}
.region-camp-footer button{min-width:0;padding-inline:4px!important}
.region-camp-cost{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;margin:6px 0;padding:6px 0;border-block:1px solid var(--line);font-size:12px}
.region-camp-cost>div{display:flex;justify-content:space-between;gap:4px;align-items:center;min-width:0}
.region-camp-cost dt{color:var(--muted)}.region-camp-cost dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.region-camp .material-short,.region-camp-info .material-short{color:var(--red)}
#region-camp-info{width:440px;height:fit-content;min-height:0}
#region-camp-info .dialog-header h2{font-size:18px}
#region-camp-info .dialog-body{flex:0 1 auto;padding:6px 12px 10px}
#region-camp-info .dialog-header>button{min-width:36px;min-height:36px;padding:4px 8px}
#region-camp-info .dialog-body h3{font-size:13px;margin:6px 0 3px}
#region-camp-info .dialog-body p{font-size:12px;line-height:1.5;margin:5px 0}
#region-camp-info .dialog-tabs button{min-height:36px}
#region-camp-info .dialog-footer button{min-height:38px;flex:1}
.region-material-sources{list-style:none;padding:0;margin:0}
.region-material-sources li{padding:6px 0;border-bottom:1px solid var(--line)}
.region-material-sources li:last-child{border-bottom:0}
.region-material-sources li>div{display:flex;justify-content:space-between;align-items:center;gap:8px}
.region-material-sources li>div+div{margin-top:3px}
#region-camp-info .region-material-sources button{min-height:32px;padding:4px 8px;font-size:12px}
.region-material-sources strong,.region-material-sources span{font-size:12px}

/* Keep the latest action feedback without a separate journal panel. */
.viewport-shell .main .action-notice{padding:6px 9px;margin:0 0 7px;font-size:12px;line-height:1.5}
