/* Each module classroom follows its own island and generated visual palette. */
body.module-chinese-learning #qarea .mt-pickopt .mt-ring{inset:0;border-radius:14px}
body.module-chinese-learning[data-module-subject=ms] #v-game{background-image:url('../assets/module-learning/v5/ms-background.webp')}
body.module-chinese-learning[data-module-subject=en] #v-game{background-image:url('../assets/module-learning/v5/en-background.webp')}
body.module-chinese-learning[data-module-subject=ma] #v-game{background-image:url('../assets/module-learning/v5/ma-background.webp')}
body.module-chinese-learning[data-module-subject=sc] #v-game{background-image:url('../assets/module-learning/v5/sc-background.webp')}
#v-module-map #shelf[data-module-subject=ms] .library-thumbnail:after{background-image:url('../assets/module-map/v1/ms-island.webp')}
#v-module-map #shelf[data-module-subject=en] .library-thumbnail:after{background-image:url('../assets/module-map/v1/en-island.webp')}
#v-module-map #shelf[data-module-subject=ma] .library-thumbnail:after{background-image:url('../assets/module-map/v1/ma-island.webp')}
#v-module-map #shelf[data-module-subject=sc] .library-thumbnail:after{background-image:url('../assets/module-map/v1/sc-island.webp')}
#v-module-map #shelf{--module-fallback-art:url('../assets/module-map/v1/zh-island.webp')}
#v-module-map #shelf[data-module-subject=ms]{ --module-fallback-art:url('../assets/module-map/v1/ms-island.webp') }
#v-module-map #shelf[data-module-subject=en]{ --module-fallback-art:url('../assets/module-map/v1/en-island.webp') }
#v-module-map #shelf[data-module-subject=ma]{ --module-fallback-art:url('../assets/module-map/v1/ma-island.webp') }
#v-module-map #shelf[data-module-subject=sc]{ --module-fallback-art:url('../assets/module-map/v1/sc-island.webp') }
#v-module-map #shelf[data-module-subject] .lib-ch[data-ch] .library-thumbnail:after{background-image:var(--module-chapter-art,var(--module-fallback-art))}
.mz-save-state{font:600 13px/1.6 var(--f-body);color:#537443;margin:8px 0;min-height:21px}.mz-save-state.error{color:#a54d23}.mz-save-retry{min-height:44px;margin:0 0 9px}.mz-draft-conflict{padding:12px;margin:9px 0;border:2px solid #b27744;border-radius:12px;background:#fff1d1;display:flex;flex-wrap:wrap;gap:8px}.mz-draft-conflict .btn{min-height:44px}
.module-visual{margin:0 0 15px;padding:12px;border:2px solid #c1a06c;border-radius:18px;background:#fff8df}.module-visual-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px}.module-count-group{padding:9px;background:#f3edda;border-radius:13px;min-width:0}.module-count-group h4{font:700 17px var(--f-body);margin:0 0 8px}.module-object-tray{display:flex;flex-wrap:wrap;gap:6px}.module-count-object{width:clamp(44px,4.7vw,60px);height:clamp(44px,4.7vw,60px);border:0;background:transparent;padding:0;cursor:pointer}.module-count-object img{width:100%;height:100%;object-fit:contain;pointer-events:none}.module-count-object.counted{filter:drop-shadow(0 0 3px #6ea438);opacity:.65;transform:translateY(-3px)}.module-count-note{font:600 13px var(--f-body);margin:10px 0 0;color:#755b39}.module-scene img{display:block;max-width:100%;width:auto;max-height:220px;object-fit:contain;margin:auto}.module-data-table{width:100%;border-collapse:collapse;text-align:center;font:600 17px var(--f-body)}.module-data-table th,.module-data-table td{border:2px solid #b38f5e;padding:8px}.module-visual-caption{font:600 15px/1.5 var(--f-body);margin:8px 0 0}.module-visual [tabindex]{touch-action:manipulation}
@media(max-width:700px){.module-scene img{max-height:150px}.module-data-table{font-size:14px}.module-data-table td,.module-data-table th{padding:5px}.module-count-object{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.module-count-object{transition:none;transform:none}}
/* T18-D05: objects taken away / eaten / flown off are shown faded with a cross */
.module-count-removed{background:#efe6d6}.module-count-removed .module-count-object{position:relative}.module-count-removed .module-count-object img{opacity:.42;filter:grayscale(.7)}.module-count-removed .module-count-object::after{content:'✕';position:absolute;inset:0;display:grid;place-items:center;color:#c0392b;font:800 30px/1 sans-serif;pointer-events:none}
