/* Keep the cream / forest palette while giving text and controls a clear hierarchy. */
:root{--text-primary:#294535;--text-secondary:#53634a;--text-muted:#5b6b52;--surface-page:#fbfcf8;--surface-card:#fffef8;--surface-soft:#e7eddc;--state-active:#345d43;--state-on-active:#fffef8;--border-control:#7b8f70}
body{color:var(--text-primary)}
/* Explanations and translations stay readable instead of becoming decorative pale green. */
body :is(.date-pill,.destination-label,.lesson-time,.journey-stats span,.section-title>span,.region-card p,.region-card-bottom,.companion-note p,.map-count,.map-guide-copy,.map-region-banner p,.map-region-total small,.place-order,.place-description>span:last-child,.place-progress,.place-progress small,.trail-label,.trail-copy p,.trail-meta,.trail-wait,.stamp-place,.stamp-card>p,.onboarding-card>p,.choice-hint){color:var(--text-secondary);opacity:1}
body :is(.section-heading>span,.speaker,.speaker span,.translation,.vocab-title>span,.vocab>p>span,.vocab .example,.vocab .example-zh,.reading-translation,.shadow-progress-head span,.shadow-guide,.shadow-full-heading span,.shadow-transcript-line small,.record-status,.speech-controls>span,.speech-disclosure summary,.speech-disclosure p,.speech-feedback>span,.quiz-score small,.lookup-label,.lookup-ipa,.lookup-pos,.lookup-example>p:last-child){color:var(--text-secondary);opacity:1}
body .shadow-current-card p:not([lang=en]){color:var(--text-secondary)}
body .reading-chunk>.reading-translation{color:var(--text-secondary)}
body :is(.text-button,.translation-toggle,.sentence-feedback-button,.shadow-navigation button,.side-bottom a){color:var(--text-secondary)}
body :is(.trail-meta,.trail-label,.place-order,.place-progress,.place-progress small,.map-count,.section-title>span){font-size:12px;line-height:1.65}
body .is-complete .trail-label{color:#765b28}
body .is-ready .trail-number{background:var(--state-active);color:var(--state-on-active)}
body .vocab-title>span{color:var(--text-muted)}
body .speech-controls>span:empty{display:none}

/* A frequent scene switch and a low-frequency native level selector share one row. */
.map-selectors{display:grid;grid-template-columns:minmax(0,1fr) 116px;align-items:stretch;gap:12px;min-width:0;width:min(100%,440px)}
.map-selectors .region-tabs{display:flex;gap:4px;width:100%;padding:4px;border-radius:12px;background:#e7eddc}
.map-selectors .region-tabs button{flex:1;min-width:0;min-height:44px;padding:8px 14px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-secondary);font-size:15px;border:1px solid transparent}
.map-selectors .region-tabs button[aria-pressed=true]{background:var(--state-active);color:var(--state-on-active);border-color:var(--state-active);font-weight:700;box-shadow:0 2px 3px #29453520}
.map-selectors .region-tabs button[aria-pressed=true]:after{content:'✓';font-size:13px}
.map-level-select{min-width:0;display:flex;align-items:stretch}
.map-level-select select{width:100%;min-width:0;min-height:52px;padding:10px 12px;border:1px solid var(--border-control);border-radius:12px;font:inherit;font-size:15px;font-weight:650;color:var(--text-primary);background:var(--surface-card);cursor:pointer}
.map-level-select select:focus-visible{outline:3px solid var(--state-active);outline-offset:3px}
body .available-filter{color:var(--text-secondary)}
body .map-search input{color:var(--text-primary);border-color:var(--border-control)}
body .map-search input::placeholder{color:var(--text-muted);opacity:1}

/* Scene content has one place, directly under the page title; no empty action row. */
.practice-options{position:relative;flex-shrink:0}
.practice-options summary{display:flex;align-items:center;justify-content:center;list-style:none;width:44px;min-height:44px;border:1px solid #cad6bf;border-radius:12px;background:var(--surface-card);color:var(--state-active);font-size:25px;line-height:1;cursor:pointer}
.practice-options summary::-webkit-details-marker{display:none}
.practice-options>div{position:absolute;right:0;top:calc(100% + 8px);min-width:144px;padding:6px;background:var(--surface-card);border:1px solid #cad6bf;border-radius:12px;box-shadow:0 8px 24px #29453525}
.practice-options button{width:100%;min-height:44px;border-radius:8px;padding:10px 14px;text-align:left;color:var(--text-primary);font-size:14px;white-space:nowrap}
.practice-options button:hover{background:var(--surface-soft)}
.practice-scene{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:center;gap:24px;margin:0 0 22px}
.practice-scene>.scene{padding:0;margin:0;background:transparent;min-width:0}
.practice-scene .role-legend,.practice-scene .scene-header{display:none}
body:has(.practice-header) .practice-scene .scene.single-scene .course-scene-image[src]{width:100%;height:auto;max-height:none;aspect-ratio:3/2;object-fit:contain;border-radius:12px}
.practice-scene-intro{margin:0;font-size:15px;line-height:1.8;color:var(--text-secondary)}
@media(max-width:760px){
 .map-selectors{width:100%;grid-template-columns:minmax(0,1fr) 108px;gap:10px}
 .map-controls .map-filters{width:100%}
 .practice-header{gap:8px}
 .practice-options summary,.practice-share{width:40px;min-height:44px;height:44px;border-radius:10px}
 #app[data-mobile-module] main{padding-top:12px}
 .practice-scene{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin:0 0 14px}
 .practice-scene-intro{font-size:14px;line-height:1.75}
 .practice-scene .scene{max-width:none}
 .practice-scene .role-grid{gap:8px}
 .practice-scene .role img{max-height:220px;aspect-ratio:1.3}
}
body .map-region-total{color:var(--text-primary)}
body .trail-enter{color:var(--text-primary)}
@media(max-width:760px){
 .lesson-trail .trail-stop{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:12px;row-gap:12px;align-items:start;min-height:0}
 .lesson-trail .trail-number{grid-column:1;grid-row:1 / span 2}
 .lesson-trail .trail-copy{grid-column:2;width:auto;min-width:0}
 .lesson-trail .trail-enter,.lesson-trail .trail-wait{grid-column:2;justify-self:start;margin:0;font-size:13px}
}
