/* Loaded last: application surfaces and text only; images and map tiles stay unchanged. */
body { --appearance-font-scale:1; --appearance-text-base:14px; --appearance-small-base:12px; }
body[data-view=field] { --appearance-text-base:16px; }
body[data-font-size=large] { --appearance-font-scale:1.15; }
body[data-font-size=xlarge] { --appearance-font-scale:1.3; }
#appearance-toggle { white-space:normal; }
#appearance-panel { position:fixed; z-index:100; width:300px; padding:14px; box-sizing:border-box; overflow:auto; overscroll-behavior:contain; border:1px solid #a9c2b5; border-radius:9px; background:#fff; color:#203b33; box-shadow:0 8px 28px #102a2833; font-size:calc(14px * var(--appearance-font-scale)); line-height:1.5; }
#appearance-panel[hidden] { display:none; }
.appearance-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
#appearance-panel label { display:block; margin:10px 0; font-weight:600; }
#appearance-panel select { display:block; width:100%; margin-top:4px; }
#appearance-panel :is(button,select) { min-height:36px; padding:6px 9px; font-size:inherit; }
#appearance-panel > button { margin-top:4px; }
/* Preserve the existing normal typography; enlarged modes reach fixed-pixel controls too. */
body[data-font-size]:not([data-font-size=normal]) { font-size:calc(var(--appearance-text-base) * var(--appearance-font-scale)); }
body[data-font-size]:not([data-font-size=normal]) :is(button,input:not([type=checkbox]),select,textarea,label,p,th,td,summary,legend,li,dt,dd,span,strong,b,caption,.reference-legend,.reference-map-detail,.reference-map-status) { font-size:calc(var(--appearance-text-base) * var(--appearance-font-scale))!important; }
body[data-font-size]:not([data-font-size=normal]) :is(small,.note,.field-unit,.field-error,.input-source,.required,.jv-eval-source,.jv-eval-grade,.jv-eval-reason,.jv-eval-author,.field-record-summary,.field-record-meta,.field-record-number,.jv-map-attribution) { font-size:calc(var(--appearance-small-base) * var(--appearance-font-scale))!important; }
body[data-font-size]:not([data-font-size=normal]) h1 { font-size:calc(18px * var(--appearance-font-scale))!important; }
body[data-font-size]:not([data-font-size=normal]) h2 { font-size:calc(16px * var(--appearance-font-scale))!important; }
body[data-font-size]:not([data-font-size=normal]) h3 { font-size:calc(14px * var(--appearance-font-scale))!important; }
body[data-font-size]:not([data-font-size=normal]) #pc-navigation :is(button,span),body[data-font-size]:not([data-font-size=normal]) #account :is(button,span),body[data-font-size]:not([data-font-size=normal]) #network { font-size:calc(11px * var(--appearance-font-scale))!important; }
body[data-font-size]:not([data-font-size=normal]) :is(input,select,textarea) { line-height:1.5; }
body[data-font-size]:not([data-font-size=normal]) :is(.map-display label,.map-display-toolbar,#pc-toolbar,.appearance-heading) { flex-wrap:wrap; }
body[data-theme=light] { color-scheme:only light; }
body[data-theme=dark] { color-scheme:dark; --line:#40584b; --ink:#e4eee8; --bg:#111b16; --green:#368764; --green-hover:#52aa82; --muted:#b2c8bb; --appearance-surface:#19271f; --appearance-raised:#23372b; --appearance-soft:#203126; background:var(--bg); color:var(--ink); }
body[data-theme=dark] :is(main,section,main>details,#pc-workspace,#pc-editor,#inspector-panel,.access-card,#device-storage,#survey,#field-list,#field-view-tabs,.field-record-row,.jv-eval-category,.jv-eval-source,.jv-eval-grade,.reference-map-detail,#appearance-panel) { background:var(--appearance-surface)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body[data-theme=dark] :is(#pc-toolbar,#field-preparation) { background:transparent!important; }
body[data-theme=dark] :is(input:not([type=checkbox]),select,textarea) { background:#111e17!important; color:var(--ink)!important; border-color:#688574!important; caret-color:#e4eee8; }
body[data-theme=dark] input::placeholder,body[data-theme=dark] textarea::placeholder { color:#9ab3a3; opacity:1; }
body[data-theme=dark] input[type=checkbox] { accent-color:#5eb991; }
body[data-theme=dark] button:not(:where(.reference-heatmap button,.reference-day-chart button)) { background:var(--appearance-raised)!important; color:var(--ink)!important; border-color:#6b8c79!important; }
body[data-theme=dark] button:not(:where(.reference-heatmap button,.reference-day-chart button)):hover { background:#304d3c!important; }
body[data-theme=dark] :is(button.primary,#save-device,button[aria-pressed=true],button[aria-selected=true],#pc-navigation button[aria-current=true]) { background:#28674b!important; color:#f3fff7!important; border-color:#75c79b!important; }
body[data-theme=dark] :is(#account,#pc-navigation) { background:#10271d!important; color:#edf7f1!important; }
body[data-theme=dark] #pc-navigation button { background:transparent!important; color:#cfe3d7!important; }
body[data-theme=dark] #pc-navigation button[aria-current=true] { background:#28674b!important; color:#fff!important; }
body[data-theme=dark] :is(nav,.tabbar,.pc-layout-divider,.check-list label,.readonly-value,.photo-slot,.confirm,.jv-eval-category>summary,.jv-eval-subject,.table-scroll th,.evaluation-status[open],#field-position-bar) { background:var(--appearance-soft)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body[data-theme=dark] :is(.field-group,td,th,.jv-eval-item,.jv-eval-level,.jv-eval-level-heading,.record-views,.composition-row,.assignment-person,.reference-legend,.reference-ds-row) { border-color:var(--line)!important; }
body[data-theme=dark] :is(.save-bar,.map-display,.map-display-primary>fieldset,.map-display details>summary,.map-display-body,.map-display-legend>div,#map-reference-legend>.reference-legend,.map-poi-direct>div>label,.reference-map-status,#field-map-host #map-caption) { background:var(--appearance-surface)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body[data-theme=dark] .map-poi-direct>div>label:has(input:checked) { background:#274735!important; border-color:#6eaa88!important; }
body[data-theme=dark] .category-options .category-option:has(input:checked) { background:#274735; border-color:#6eaa88; color:#f3fff7; }
body[data-theme=dark] .map-display fieldset { border-color:var(--line); }
body[data-theme=dark] :is(.note,#freshness,#map-caption,.field-unit,.input-source,#field-list-count,.field-record-number,.field-record-summary,.field-record-meta,.field-empty,.map-display legend,.jv-eval-subject,#network,footer) { color:var(--muted)!important; }
body[data-theme=dark] :is(a,.jv-eval-evidence) { color:#8fdcc0; }
body[data-theme=dark] #message { background:var(--appearance-soft)!important; color:var(--ink)!important; border-color:var(--line)!important; }
body[data-theme=dark] :is(.jv-eval-item .badge,.required,.jv-eval-grade[data-grade=Nothing],.jv-eval-grade[data-grade='未評価あり'],.jv-eval-item[data-state=manual-mismatch],.jv-eval-item[data-state=manual-empty],.reference-map-status[data-reference-state=failed],.reference-map-status[data-reference-state=stale]) { background:#3c3320!important; color:#f6d992!important; border-color:#9f8749!important; }
body[data-theme=dark] :is(#message.error,.field-error,.jv-eval-reason[data-mark=fail]) { color:#ffb7a3!important; }
body[data-theme=dark] :is(.jv-eval-reason[data-mark=empty],.evaluation-status[data-status=stale]>summary,.evaluation-status[data-status=incomplete]>summary) { color:#f6d992!important; }
body[data-theme=dark] .reference-day-chart button { color:var(--ink); background:transparent; }
body[data-theme=dark] #elevation-panel svg text { fill:var(--ink); }
body[data-theme=dark] :focus-visible { outline-color:#f1c769; }
