/* Warm learning palette: ivory surfaces, subtle forest accents, clean reading space. */
body:has(.world-main){background:#f5f7f7;color:#354239}
body:has(.world-main) .layout{background:#f7f9f9ed}
body:has(.world-main):before{opacity:.14;filter:blur(2px) saturate(.55);mask-image:linear-gradient(to bottom,transparent 52%,black)}
body:has(.world-main) header{background:#ffffff;border-color:#e6e4da}
body:has(.world-main) aside{background:#fbfcfcf5;border-color:#e5e3d8}
body:has(.world-main) nav button{color:#7c8475}
body:has(.world-main) nav button.active{background:#e7ebdf;color:#455744;box-shadow:inset 2px 0 #849772}
body:has(.world-main) .nav-school{border-color:#e7e6dc!important}
.world-main h1,.world-main h2,.world-main h3{color:#3e4d40}
.world-main .eyebrow,.world-main .view-chip{color:#949a86}
.world-main .sub,.world-main .sample,.world-main .row p{color:#8a8e7f}
.world-main .card,.world-main .reader,.world-main .study-panel,.world-main .cd{background:#ffffffef;border-color:#e4e6d8;box-shadow:0 2px 8px #47523804}
.world-main .primary{background:#627a5e;color:#ffffff}
.world-main .secondary{background:#edf4f0;color:#738266;border-color:#dfe5d5}
.world-main .notice{background:#eff5f2;color:#808b74}
.world-main .input{border-color:#dce2d2;background:#ffffff;color:#4a5745}
.world-main .reader-art{background:#f1f6f4!important}
.world-main .record-tabs button{background:#eff4f2;color:#818a72}
.world-main .record-tabs button.active{background:#778b68;color:#ffffff}
.world-main .step{background:#e7ecdf;color:#7c8b6e}
.world-main .step.current{background:#7c936f;color:#fff}
.world-main .chips button{background:#edf4f0;color:#78886a}
.world-main .tag{background:#e7eddc;color:#819166}
.history-bar{background:#eff4f2;color:#939681;padding:9px 14px;font-size:10px}
.history-bar strong{color:#7c896e}
.history-bar span:nth-child(2){flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:100px}
.app-date{color:#4c5c43}
.lecture-footer{background:#fffffffa;border-color:#e0e4d3;box-shadow:0 3px 14px #52633c08}
.lecture-footer button{background:#ebefe0;color:#7c8b6c}
.lecture-footer .continue{background:#6d8461;color:#fff}
.student-label{background:transparent;border:0;padding:5px 4px;color:#46583e;font-size:13px;font-weight:600;white-space:nowrap}
.student-label:after{content:' ▾';font-size:10px;color:#9aA68E}
.student-top-input{width:100%;padding:13px;border:1px solid #d7dfca;background:#ffffff;border-radius:6px;margin:14px 0;color:#536748}
.modal{background:#ffffff;color:#49533f;border-color:#e0e5d4}
.modal .primary{background:#6c825e;color:#fff}
.modal .secondary,.modal .notice{background:#eff5f2;color:#829372}
.collection-table th,.collection-table td{border-color:#e6e8dc}
.world-main .lesson-record-card{border-color:#e3e7d8}
.world-main .reward-summary{color:#8d967e}
.world-main .locked,.world-main .step:disabled{background:#e9e9e1;color:#adb09f}
.world-main .back,.world-main .link{color:#8c957e}
body:has(.world-main) .side-bottom,body:has(.world-main) .side-bottom button{color:#a0a58f}
body:has(.world-main) nav button{color:#66725e}
.world-main .sub,.world-main .sample,.world-main .row p{color:#727d67}
.history-bar{color:#778168}
.history-bar strong{color:#647751}
.history-bar{max-width:870px;padding:6px 11px;font-size:9px;gap:9px;margin-bottom:14px;min-height:26px}

/* Bright neutral surfaces; retain sage only as an accent. */
body:has(.world-main){background:#f6f8f8;color:#37453f}
body:has(.world-main) .layout{background:transparent}
body:has(.world-main):before{opacity:.62;filter:blur(1px) saturate(.7);mask-image:none}
body:has(.world-main) .world-main{background:#f8fafaf0;border-radius:12px;margin:12px 18px 28px;box-shadow:0 4px 22px #334c3810}
body:has(.world-main) header,.modal{background:#fff}
body:has(.world-main) aside{background:#fbfdfcf5}
body:has(.game-home) header{background:#ffffffed}
.game-home{background:#eef5f2}.game-home:before{background:url('/quiet-forest.png') center/cover no-repeat;opacity:.92;filter:saturate(.85)}
.game-heading{padding:10px 24px;border-radius:12px;background:#f8fcf552;backdrop-filter:blur(3px)}
@media(max-width:620px){body:has(.world-main) .world-main{margin:8px 8px 18px;border-radius:9px}}
.sheet-sync-note{color:#587078;background:#edf3f5}

/* 2026-10-30 student readability: no horizontal page scroll, mobile menu, minimum label sizes. */
html body:has(.world-main) .world-main{width:auto}
html body .user>.account-login{font-size:12px!important}
html body .game-heading>p{font-size:12px!important}html body .portal>.num{font-size:11px!important}html body .portal>.desc{font-size:12px!important;line-height:1.45}html body .game-home>.game-version{font-size:10px!important}
html body.rami-word-screen #main .wp-range-controls>label,html body.rami-word-screen #main .wp5-status>button,html body.rami-word-screen #main .wp-counter>span,html body.rami-word-screen #main .wp-day-trigger,html body.rami-word-screen #main .wp-day-trigger>span{font-size:12px!important}html body.rami-word-screen #main .wp5-nav>button{font-size:13px!important}html body.rami-word-screen #main .wp-tile>.wp-number{font-size:11px!important}
html body .library-sort>span{font-size:12px!important}html body .library-book-caption>b{font-size:13px!important}html body .library-book-caption>small{font-size:12px!important}
html body .story-category-slots>button{font-size:12px!important;line-height:1.3}html body .story-tabs>button{font-size:12px!important}html body .story-shelf-label>h2{font-size:14px!important}html body .story-shelf-tools>small{font-size:11px!important}html body .story-book>.story-book-caption{font-size:12px!important}html body .story-book-caption>small{font-size:11px!important}
@media(max-width:620px){html body:not(.is-home):not(.rami-focused-screen) aside{width:auto!important;min-width:0!important}html body:not(.is-home):not(.rami-focused-screen) #nav{display:flex;flex-direction:row;gap:4px;overflow-x:auto;scrollbar-width:none}html body:not(.is-home):not(.rami-focused-screen) #nav button{flex:0 0 46px!important;width:46px!important;min-width:0!important;margin:0!important}html body .game-home{padding-bottom:64px!important}html body.rami-word-screen #main .wp5-status{position:static;justify-content:flex-end;margin:0 0 6px}html body.rami-word-screen #main .wp5-nav{grid-template-columns:repeat(5,minmax(0,1fr))}html body.rami-word-screen #main .wp5-nav>button{min-width:0;padding-left:2px!important;padding-right:2px!important;font-size:12px!important;white-space:nowrap;letter-spacing:-.3px}}
/* Class timer ring in the tablet header: no numbers; ended state pulses gently. */
.class-timer-ring{display:inline-flex;align-items:center;gap:5px;height:32px;box-sizing:border-box;padding:0 5px;cursor:pointer;margin-right:6px;background:#edf3fc;border:1px solid #cfdbeb;border-radius:6px;color:#365780;font:600 12px "Noto Sans KR",sans-serif;vertical-align:middle;white-space:nowrap}.class-timer-ring svg{flex:0 0 22px;width:22px;height:22px;transform:rotate(-90deg)}.class-timer-ring circle{fill:none;stroke-width:7}.class-timer-ring .track{stroke:#cfdbeb}.class-timer-ring .fill{stroke:#365780;transition:stroke-dasharray .8s ease}.class-timer-ring .label{display:none;font:inherit}.class-timer-ring.show-total{padding:0 9px 0 6px}.class-timer-ring.show-total .label{display:inline}.class-timer-ring:focus-visible{outline:3px solid #6f9fd8;outline-offset:2px}.class-timer-ring.ended{background:#fbefe9;border-color:#efc5b3;color:#b0563f}.class-timer-ring.ended .track{stroke:#e7a58c;animation:class-timer-pulse 2.4s ease-in-out infinite}@keyframes class-timer-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.class-timer-ring.ended .track{animation:none}}
