/* Welcome cover and readable, spacious gameplay. Loaded after the original theme. */
body { padding:32px 24px; font-size:16px; background:radial-gradient(ellipse at 16% 0,#fff8e8 0,transparent 65%),#f1e9dc; }
[hidden] { display:none!important; }
#intro-screen { width:min(1180px,100%); margin:auto; color:#40364f; }
.intro-topline { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:0 0 34px; border-bottom:1px solid #d8c7ad; }
.intro-brand { display:inline-flex; align-items:center; gap:12px; color:#44364f; text-decoration:none; font-weight:800; font-size:18px; letter-spacing:-.5px; }
.intro-brand-mark { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; background:#443751; color:#f7d58e; font-size:30px; }
.intro-edition { color:#958371; font-size:14px; }
.intro-topline-end { display:flex; align-items:center; gap:8px; }
.intro-install { min-height:38px; padding:0 14px; border:1px solid #d8c7ad; border-radius:999px; background:#fffaf1; color:#443751; font:inherit; font-size:14px; font-weight:700; white-space:nowrap; cursor:pointer; }
.intro-install:hover { background:#f7ecd9; }
@media (max-width: 560px) { .intro-topline-end .intro-edition { display:none; } .intro-install { min-height:38px; padding:0 11px; font-size:14px; } }
.intro-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:64px; padding:46px 0 40px; }
.intro-kicker { display:flex; align-items:center; gap:9px; font-size:14px; color:#8b725b; font-weight:650; letter-spacing:.3px; }
.intro-kicker span { color:#c99d5d; font-size:22px; }
#intro-title { font-family:Georgia,'Malgun Gothic','Apple SD Gothic Neo',serif; font-size:66px; line-height:1.15; font-weight:850; letter-spacing:-3px; color:#493b54; margin:16px 0 24px; }
#intro-title em { color:#8b6e95; font-style:normal; }
.intro-description { font-size:22px; line-height:1.7; color:#766579; letter-spacing:-.5px; }
.intro-detail { font-size:16px; line-height:1.8; color:#a08b81; margin:14px 0 26px; max-width:440px; }
.character-picker { border:0; padding:0; margin:0; min-width:0; }
.character-picker legend { font-size:16px; font-weight:750; color:#6a596d; margin-bottom:12px; padding:0; }
.character-options { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.character-option { position:relative; min-width:0; cursor:pointer; }
.character-option input { position:absolute; opacity:0; width:1px; height:1px; }
.character-card { display:flex; align-items:center; gap:8px; min-height:110px; padding:10px; border:1px solid #d4c1a5; border-radius:15px; background:#fff9eb; box-shadow:0 3px 0 #e4d5bc; position:relative; transition:border-color 150ms,background 150ms; }
.character-card img { width:64px; height:79px; object-fit:contain; flex:none; }
.character-card strong { display:block; font-size:18px; font-weight:800; color:#736176; }
.character-card small { display:block; font-size:12px; color:#aa9589; margin-top:5px; line-height:1.6; }
.character-check { position:absolute; right:10px; top:9px; display:grid; place-items:center; width:19px; height:19px; border:1px solid #d8c8ae; border-radius:50%; color:transparent; font-size:11px; }
.character-option input:checked+.character-card { border:2px solid #849b80; padding:9px; background:#f1f5e6; box-shadow:0 3px 0 #cad5b5; }
.character-option input:checked+.character-card .character-check { background:#859e80; border-color:#859e80; color:#fff; }
.character-option input:focus-visible+.character-card { outline:3px solid #9372b0; outline-offset:4px; }
.character-note { font-size:13px; color:#a49383; line-height:1.7; margin:12px 0 8px; }
.intro-progress { font-size:14px; color:#768c72; margin:12px 0; line-height:1.6; }
.intro-progress:empty { display:none; }
.intro-start { width:100%; min-height:60px; margin-top:14px; display:flex; justify-content:center; align-items:center; gap:18px; padding:15px; border:1px solid #574463; border-radius:13px; background:#66516f; color:#fff4dd; box-shadow:0 4px 0 #c7b99d; font-size:18px; font-weight:800; letter-spacing:.3px; }
.intro-start .icon { width:24px; height:24px; }
.intro-start:hover:not(:disabled) { background:#55435f; }
.intro-start:disabled { opacity:.65; cursor:default; }
.intro-start-note { text-align:center; font-size:13px; line-height:1.7; color:#ad9784; margin-top:15px; }
.intro-error { font-size:14px; color:#b16f70; line-height:1.7; margin-top:12px; }
.intro-error:empty { display:none; }
.intro-art { margin:0; border:1px solid #b39876; border-radius:28px; background:#3e344e; box-shadow:0 8px 0 #d5c2a2,0 24px 54px #6e4e4213; overflow:hidden; transform:rotate(1deg); }
.intro-art-top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:17px 22px; color:#e8d1ac; font-size:14px; font-weight:650; border-bottom:2px solid #b8986b; }
.intro-art-top span+span { color:#bdaac9; font-weight:500; }
.intro-classroom { position:relative; height:450px; background:#ebd4ae url('assets/classroom.svg') center/cover no-repeat; isolation:isolate; overflow:hidden; }
.intro-scene-label { position:absolute; top:20px; left:20px; padding:6px 10px; border:1px solid #d2b795; border-radius:20px; background:#fff1dccc; color:#9c806f; font-size:13px; }
.intro-teacher { position:absolute; width:270px; height:332px; object-fit:contain; bottom:46px; left:14px; z-index:2; }
.intro-male { display:none; }
#intro-screen:has(#character-male:checked) .intro-male { display:block; }
#intro-screen:has(#character-male:checked) .intro-female { display:none; }
.intro-slime { position:absolute; width:170px; height:170px; right:15px; bottom:45px; z-index:2; object-fit:contain; }
.intro-spell { position:absolute; left:57%; bottom:44%; font-size:40px; color:#fff4ac; text-shadow:0 0 12px #ffdc84; z-index:3; }
.intro-art-caption { position:absolute; bottom:16px; left:0; right:0; text-align:center; font-size:13px; color:#8f6c6a; background:#f5e8cc80; padding:5px; }
.intro-art figcaption { display:flex; align-items:center; justify-content:center; gap:10px; padding:22px 14px; color:#d8c2de; font-size:16px; letter-spacing:.1px; }
.intro-caption-star { color:#f3cd81; font-size:25px; }
.intro-features { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:28px; padding:26px 10px 0; border-top:1px solid #d8c7ad; color:#a18d80; font-size:14px; }
.intro-features span { display:inline-flex; align-items:center; gap:7px; }
.intro-features .icon { width:19px; height:19px; color:#9d9e83; }
/* No height-dependent compression: the page scrolls naturally on small screens. */
#game-app { width:min(1260px,100%); }
#header { padding:20px 24px; margin-bottom:22px; }
.topline { flex-wrap:wrap; gap:14px; margin-bottom:18px; }
.brand h1 { font-size:26px; }
.brand p { display:block; font-size:14px; margin-top:4px; }
.brand-mark { width:48px; height:48px; }
.header-actions { gap:12px; flex-wrap:wrap; }
.work-clock { font-size:16px; }
.work-clock .icon { display:block; width:18px; height:18px; }
.clock-target { display:inline; font-size:14px; }
#btn-sound { width:46px; height:46px; }
.return-intro-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:46px; padding:9px 13px; border:1px solid #87708e; border-radius:11px; background:#51425f; color:#e5d3e8; font-size:14px; font-weight:650; }
.return-intro-button .icon { width:19px; height:19px; }
.overview-row { grid-template-columns:1.3fr 1fr; gap:24px; }
.progress-label { gap:10px; margin-bottom:8px; }
#player-level { font-size:24px; }
#player-xp,#level-notice { font-size:14px; }
#player-xp-track { height:10px; }
.growth-caption { display:block; font-size:14px; }
.hud-badge { padding:13px 16px; flex-direction:column; align-items:flex-start; }
.resource-label { font-size:14px; gap:6px; }
.resource-label .icon { width:18px; height:18px; }
.hud-badge strong { font-size:24px; margin-top:4px; }
.game-layout { grid-template-columns:1.4fr 1fr; gap:22px; }
.play-column { display:flex; flex-direction:column; gap:14px; }
#battle-view { padding:12px; }
.battle-top { margin-bottom:12px; gap:12px; }
.battle-top .eyebrow,.live-status { font-size:14px; }
.battle-top .icon { width:18px; height:18px; }
.battle-body { height:460px; overflow:hidden; }
.scene-caption { display:inline-block; font-size:14px; padding:6px 10px; }
#teacher-hero { left:20px; bottom:24px; width:280px; height:346px; --hero-hop:-8px; }
#teacher-sprite { width:100%; height:calc(100% - 25px); object-fit:contain; }
.hero-badge,.hero-badge strong { font-size:14px; }
.hero-badge { padding:3px 10px; }
.hero-celebration { font-size:18px; }
#monster { width:190px; height:190px; right:27px; bottom:21px; }
.battle-copy { width:224px; top:18px; right:18px; padding:12px; }
.battle-label { display:block; font-size:13px; }
#mob-name { font-size:24px; margin:4px 0 10px; }
.hp-label,.hp-label strong { font-size:14px; margin-bottom:6px; }
.hp-track { height:10px; }
#next-boss { display:block; font-size:13px; margin-top:8px; }
.battle-foot { font-size:14px; min-height:36px; margin-top:10px; }
#boss-timer-wrap { bottom:13px; left:15px; right:15px; font-size:14px; }
.boss-track { height:4px; }
#attack-projectile { font-size:38px; --projectile-travel:250px; }
.combat-metrics>div { flex-direction:row; padding:14px 17px; }
.metric-label,.combat-metrics small { font-size:14px; }
.metric-label .icon { width:18px; height:18px; }
.combat-metrics strong { font-size:25px; }
.skill-btn,#btn-s2 { min-height:90px; padding:14px; gap:12px; }
.skill-icon { width:44px; height:44px; }
.skill-icon .icon { width:26px; height:26px; }
.s-title { font-size:18px; }.s-sub { display:block; font-size:13px; }.skill-state { font-size:14px; }
.goal-card { display:flex; font-size:14px; }.goal-card .eyebrow,#day-progress-text { font-size:14px; }.goal-card strong { font-size:16px; }
.tab-btn { height:58px; font-size:16px; gap:7px; }.tab-btn .icon { width:19px; height:19px; }
.tab-view { padding:22px 20px; max-height:none; overflow:visible; }
#tab-stat .panel-heading { display:flex; }.panel-heading { margin-bottom:18px; }
.panel-heading h2 { font-size:24px; }.panel-heading .eyebrow { display:block; font-size:13px; }.panel-caption { display:block; font-size:13px; }
.upgrade-list { gap:12px; }.up-card { min-height:98px; padding:13px 12px; gap:12px; }
.upgrade-icon { width:40px; height:44px; }.upgrade-icon .icon { width:24px; height:24px; }
.up-title { font-size:17px; gap:8px; }.upgrade-level { font-size:14px; }.up-stat { font-size:14px; margin-top:5px; }.up-desc { display:block; font-size:13px; }
.up-btn { min-width:78px; min-height:48px; font-size:15px; padding:9px; }.up-btn .icon { width:17px; height:17px; }
#tab-stat .help-details { display:block; }.help-details,.help-details p { font-size:14px; }.help-details summary { padding:12px 0; }
#tab-stat .quiet-note { display:flex; }.quiet-note { font-size:14px; padding-top:13px; }
.gacha-banner strong,.relic-name,.ach-title,.setting-header { font-size:17px; }
.gacha-banner p,.relic-eff,.relic-status,.relic-owned,.ach-desc,.setting-panel>p,.save-note,.prestige-preview,.reset-row,.reset-button { font-size:14px; }
.relic-item { padding:18px 13px; }.btn-claim,.btn-half { min-height:46px; font-size:15px; }.backup-actions { flex-wrap:wrap; }
.app-footnote { display:flex; font-size:13px; }
@media (min-width:700px) and (max-width:1050px) {
    .intro-layout { gap:30px; }.intro-classroom { height:390px; }#intro-title { font-size:54px; }
    .intro-teacher { width:230px; height:283px; left:-4px; }.intro-slime { width:128px; height:128px; right:5px; }
    .character-card { padding:8px; }.character-card img { width:52px; height:65px; }.character-card strong { font-size:17px; }.character-card small { font-size:11px; }
    .game-layout { grid-template-columns:1.2fr 1fr; }.battle-body { height:400px; }#teacher-hero { width:220px; height:274px; left:3px; }#monster { width:145px; height:145px; right:12px; }
    .battle-copy { width:200px; right:12px; }.scene-caption { display:none; }.combat-metrics>div { flex-direction:column; align-items:flex-start; padding:12px; gap:4px; }
    .skill-btn,#btn-s2 { padding:12px 9px; gap:8px; }.skill-icon { width:35px; height:39px; }.s-title { font-size:16px; }.s-sub { font-size:13px; }
    .tab-view { padding:18px 13px; }.panel-heading h2 { font-size:21px; }.panel-caption { display:none; }.up-card { padding:12px 8px; gap:8px; }.upgrade-icon { width:32px; height:38px; }.up-btn { min-width:66px; }.up-title { font-size:16px; }
    #attack-projectile { --projectile-travel:170px; }
}
@media (max-width:699px) {
    body { padding:18px 14px 28px; }
    .intro-topline { padding-bottom:18px; }.intro-brand { font-size:15px; gap:8px; }.intro-brand-mark { width:34px; height:34px; font-size:25px; border-radius:11px; }.intro-edition { font-size:12px; }
    .intro-layout { grid-template-columns:1fr; gap:0; padding:26px 0 28px; }.intro-copy { display:contents; }.intro-copy>* { grid-column:1; }.intro-kicker { font-size:13px; }
    #intro-title { font-size:46px; letter-spacing:-2px; margin:12px 0 16px; }.intro-description { font-size:19px; line-height:1.55; }
    .intro-detail { font-size:15px; line-height:1.7; margin:8px 0 23px; max-width:none; }
    .intro-art { grid-row:4; grid-column:1; margin:23px 0 18px; transform:none; border-radius:20px; }
    .intro-art-top { padding:11px 14px; font-size:13px; }.intro-classroom { height:230px; }
    .intro-scene-label { top:12px; left:12px; font-size:12px; padding:4px 8px; }
    .intro-teacher { width:172px; height:211px; bottom:20px; left:8px; }.intro-slime { width:112px; height:112px; right:17px; bottom:26px; }
    .intro-spell { left:53%; bottom:45%; font-size:29px; }.intro-art-caption { display:none; }.intro-art figcaption { padding:11px; font-size:14px; gap:8px; }.intro-caption-star { font-size:22px; }
    .character-picker legend { font-size:16px; margin-bottom:10px; }.character-options { gap:10px; }.character-card { min-height:96px; padding:9px 6px; gap:5px; border-radius:12px; }.character-card img { width:57px; height:70px; }.character-card strong { font-size:16px; }.character-card small { font-size:11px; margin-top:3px; }
    .character-option input:checked+.character-card { padding:8px 5px; }.character-note { font-size:13px; margin:11px 0 3px; }.character-check { right:7px; top:7px; width:17px; height:17px; }
    .intro-start { min-height:56px; font-size:17px; margin-top:13px; }.intro-start-note { font-size:12px; }.intro-features { font-size:13px; gap:13px 22px; padding-top:22px; }
    #game-app { max-width:600px; }#header { padding:14px; margin-bottom:16px; border-radius:15px; }.topline { gap:13px; margin-bottom:14px; }
    .brand { gap:9px; }.brand h1 { font-size:21px; letter-spacing:-.8px; }.brand p { font-size:13px; display:block; }.brand-mark { width:42px; height:42px; font-size:18px; }
    .header-actions { width:100%; gap:9px; flex-wrap:nowrap; justify-content:space-between; }.work-clock { font-size:15px; }.work-clock .icon { display:block; width:16px; height:16px; }.clock-target { display:none; }#btn-sound { width:44px; height:44px; flex:none; }#btn-sound .icon { width:20px; height:20px; }
    .return-intro-button { font-size:13px; min-height:44px; padding:9px 10px; }.return-intro-button .icon { width:17px; height:17px; }
    .overview-row { grid-template-columns:1fr; gap:13px; }#player-progress { grid-row:2; }.progress-label { gap:7px; margin-bottom:6px; }#player-level { font-size:22px; }#player-xp { font-size:13px; }#level-notice { font-size:13px; }#player-xp-track { height:8px; }.growth-caption { display:block; font-size:13px; margin-top:6px; }
    .hud-badge { padding:9px 10px; flex-direction:column; align-items:flex-start; justify-content:flex-start; }.resource-label { font-size:13px; gap:4px; }.resource-label .icon { width:15px; height:15px; }.hud-badge strong { font-size:20px; margin-top:3px; }
    .game-layout { grid-template-columns:1fr; gap:17px; }.play-column { display:flex; gap:12px; }#battle-view { padding:9px; border-radius:15px; }.battle-top { margin-bottom:10px; }.battle-top .eyebrow,.live-status { font-size:13px; }.battle-top .icon { width:15px; height:15px; }
    .battle-body { height:300px; }.scene-caption { display:none; }#teacher-hero { width:176px; height:218px; left:2px; bottom:17px; --hero-hop:-6px; }#teacher-sprite { height:calc(100% - 24px); }
    .hero-badge,.hero-badge strong { font-size:13px; }.hero-badge { padding:3px 9px; }.hero-celebration { font-size:15px; }
    #monster { width:115px; height:115px; right:16px; bottom:15px; }.battle-copy { width:164px; top:12px; right:10px; padding:10px; }.battle-label { display:block; font-size:13px; }#mob-name { font-size:20px; margin:4px 0 8px; }.hp-label,.hp-label strong { font-size:13px; margin-bottom:5px; }.hp-track { height:8px; }#next-boss { display:block; font-size:13px; margin-top:7px; line-height:1.5; }
    .battle-foot { font-size:13px; min-height:31px; margin-top:9px; }.battle-foot>.icon { width:16px; height:16px; }.keyboard-hint { display:none; }#boss-timer-wrap { font-size:13px; bottom:11px; left:12px; right:12px; }.boss-track { height:3px; }
    #attack-projectile { font-size:29px; left:35%; top:54%; --projectile-travel:140px; }
    .combat-metrics>div { padding:12px 11px; flex-direction:column; align-items:flex-start; gap:4px; }.metric-label { font-size:13px; gap:5px; }.metric-label .icon { width:16px; height:16px; }.combat-metrics strong { font-size:23px; }.combat-metrics small { font-size:13px; }
    #skill-dock { gap:9px; }.skill-btn,#btn-s2 { padding:12px 9px; min-height:98px; align-items:flex-start; gap:7px; }.skill-icon { width:32px; height:36px; }.skill-icon .icon { width:22px; height:22px; }.s-title { font-size:16px; }.s-sub { display:block; font-size:13px; line-height:1.5; }.skill-state { font-size:13px; margin-top:4px; }.skill-copy { gap:3px; }
    .goal-card { display:none; }#tab-nav { padding:0 5px; }.tab-btn { height:54px; font-size:14px; gap:4px; }.tab-btn .icon { width:16px; height:16px; }.tab-view { padding:17px 12px; max-height:none; overflow:visible; }
    #tab-stat .panel-heading { display:flex; }.panel-heading { margin-bottom:14px; }.panel-heading h2 { font-size:22px; }.panel-heading .eyebrow { display:none; }.panel-caption { display:none; }
    .upgrade-list { gap:11px; }.up-card { min-height:88px; padding:12px 9px; gap:9px; }.upgrade-icon { width:31px; height:39px; }.upgrade-icon .icon { width:20px; height:20px; }.up-title { font-size:16px; gap:5px; }.upgrade-level { font-size:13px; }.up-stat { font-size:14px; margin-top:4px; }.up-desc { display:block; font-size:13px; }.up-btn { min-width:68px; min-height:46px; font-size:14px; padding:8px; }.up-btn .icon { width:15px; height:15px; }
    #tab-stat .help-details { display:block; }.help-details,.help-details p { font-size:14px; }.help-details { margin-top:14px; }.help-details summary { padding:11px 0; }#tab-stat .quiet-note { display:flex; }.quiet-note { font-size:13px; padding-top:12px; margin-top:10px; }
    .app-footnote { display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; font-size:13px; margin-top:20px; }.gacha-banner p,.relic-eff,.relic-status,.relic-owned,.ach-desc,.setting-panel>p,.save-note,.prestige-preview,.reset-row,.reset-button { font-size:13px; }.relic-status,.relic-owned { position:static; display:block; margin-top:7px; }.relic-owned { display:none; }.relic-item.unlocked .relic-owned { display:block; }.relic-item.unlocked .relic-status { display:none; }
}
@media (max-width:359px) {
    body { padding:14px 10px 24px; }.intro-brand { font-size:14px; }.intro-edition { display:none; }#intro-title { font-size:41px; }.intro-description { font-size:18px; }.intro-classroom { height:207px; }.intro-teacher { width:158px; height:194px; bottom:15px; left:0; }.intro-slime { width:99px; height:99px; right:11px; bottom:20px; }
    .character-card { min-height:97px; gap:2px; }.character-card img { width:48px; height:59px; }.character-card small { font-size:11px; }.character-card strong { font-size:16px; }
    #header { padding:12px 10px; }.brand h1 { font-size:19px; }.brand p { font-size:13px; }.brand-mark { width:37px; height:37px; }.resource-label { font-size:13px; gap:3px; }.resource-label .icon { width:13px; height:13px; }.hud-badge { padding:8px 7px; }.hud-badge strong { font-size:19px; }
    #player-xp { font-size:13px; }#level-notice { font-size:13px; }.progress-label { flex-wrap:wrap; }.return-intro-button { padding:9px 8px; }.work-clock .icon { display:none; }
    .battle-body { height:290px; }#teacher-hero { width:144px; height:181px; left:0; bottom:18px; }#monster { width:97px; height:97px; right:10px; bottom:15px; }.battle-copy { width:147px; right:8px; padding:8px; }#mob-name { font-size:19px; }.battle-label { font-size:13px; }#next-boss { font-size:13px; }.hero-badge,.hero-badge strong { font-size:13px; }
    .skill-btn,#btn-s2 { flex-direction:column; gap:7px; padding:11px 10px; min-height:145px; }.s-title { font-size:16px; }.tab-btn { font-size:13px; gap:3px; }.tab-btn .icon { width:14px; height:14px; }
    .up-card { padding:11px 8px; gap:7px; }.upgrade-icon { width:25px; height:35px; }.up-btn { min-width:57px; font-size:13px; }.up-title { font-size:15px; }.up-desc { font-size:13px; }.up-stat { font-size:13px; }
    #attack-projectile { --projectile-travel:100px; }
}
@media (max-height:450px) and (min-width:500px) {
    .intro-layout { display:grid; grid-template-columns:1fr 1fr; gap:24px; }.intro-copy { display:block; }.intro-art { grid-row:auto; grid-column:auto; align-self:start; margin-top:16px; }#intro-title { font-size:42px; }.intro-classroom { height:255px; }
    .intro-teacher { width:174px; height:214px; bottom:20px; left:0; }.intro-slime { width:94px; height:94px; right:8px; }.intro-description { font-size:18px; }.intro-detail { font-size:15px; }.character-card { flex-direction:column; align-items:flex-start; }.character-card img { height:70px; width:57px; }
    .game-layout { grid-template-columns:1fr; }.overview-row { grid-template-columns:1fr; }#player-progress { grid-row:2; }.battle-body { height:320px; }#teacher-hero { width:210px; height:257px; left:12px; bottom:20px; }#monster { width:148px; height:148px; right:30px; bottom:17px; }.battle-copy { width:202px; right:15px; }
    #attack-projectile { --projectile-travel:205px; }
}
/* Keep supporting copy readable even at 320px and in landscape. */
.intro-edition,.intro-kicker,.intro-scene-label,.intro-art-top,.intro-art-caption,.intro-art figcaption,.intro-features,.intro-start-note,.character-note,.character-card small { font-size:14px; }
.intro-detail { color:#76665f; }.character-note,.intro-start-note,.intro-features { color:#78675e; }.character-card small { color:#76645f; }.intro-edition { color:#7e6c60; }
.character-card { min-height:120px; }.character-option input:checked+.character-card { min-height:120px; }
.brand p,#player-xp,#level-notice,.growth-caption,.resource-label,.hero-badge,.hero-badge strong,.battle-top .eyebrow,.live-status,.battle-label,.hp-label,.hp-label strong,#next-boss,.battle-foot,#boss-timer-wrap,.metric-label,.combat-metrics small,.s-sub,.skill-state,.upgrade-level,.up-stat,.up-desc,.help-details,.help-details p,.quiet-note,.gacha-banner p,.relic-eff,.relic-status,.relic-owned,.ach-desc,.setting-panel>p,.save-note,.prestige-preview,.reset-row,.reset-button,.app-footnote,.panel-caption,.panel-heading .eyebrow { font-size:14px; }
.tab-btn { font-size:16px; }.up-title { font-size:16px; }#mob-name { font-size:24px; }.up-btn { font-size:15px; min-height:46px; }.return-intro-button { font-size:14px; }
.character-card small { line-height:1.5; }.intro-start-note,.character-note { line-height:1.7; }
.character-option input { opacity:1; width:20px; height:20px; top:10px; right:10px; z-index:2; margin:0; accent-color:#859e80; cursor:pointer; }
.character-check { display:none; }
.keyboard-hint,kbd { font-size:14px; }
.app-credit { font-size:14px; }
.reset-button { min-height:44px; }.app-footnote { color:#7f6b85; }
.progress-label { flex-wrap:wrap; }.hud-badge strong { max-width:100%; overflow-wrap:anywhere; }
dialog p,dialog label,dialog textarea,#import-error,.session-card p { font-size:14px; }dialog h2,.session-card h2 { font-size:22px; }.dialog-button { font-size:16px; min-height:46px; }
@media (max-width:699px) {
    .battle-body { height:320px; }#mob-name { font-size:22px; }.tab-btn { gap:4px; }.tab-btn .icon { width:15px; height:15px; }
    .intro-scene-label { left:auto; right:12px; z-index:3; }
    .skill-btn,#btn-s2 { min-height:112px; }.s-sub { line-height:1.55; }.skill-state { margin-top:5px; }
    .character-card img { width:55px; height:68px; }.character-card small { font-size:14px; }.intro-features { gap:14px; }
}
@media (max-width:359px) {
    #mob-name { font-size:20px; }.battle-body { height:310px; }.tab-btn { gap:3px; }.tab-btn .icon { width:13px; height:13px; }
    .character-card img { width:43px; height:53px; }.up-title { font-size:16px; }.up-btn { min-width:57px; font-size:14px; }.up-card { min-height:103px; }
    .skill-btn,#btn-s2 { min-height:160px; }.hero-badge { padding:3px 7px; }
}
/* Expanded collections retain their buttons while press-and-hold repeats. */
.copyright-note { font-size:14px; color:#77626c; text-align:center; line-height:1.8; margin:22px 0 0; }
.copyright-note a { color:#65527c; text-underline-offset:3px; }
.hold-hint,.repeat-purchase-note,.catalog-summary { font-size:14px; line-height:1.7; }
.hold-hint { color:#c6bbd7; }.battle-foot { align-items:center; }
.repeat-purchase-note { color:#81705f; margin:0 0 14px; }
.catalog-summary { color:#557569; background:#edf2e0; border:1px solid #c6d2b2; border-radius:10px; padding:10px 12px; margin:0 0 13px; }
#tab-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.tab-btn { width:100%; min-width:0; min-height:48px; height:52px; font-size:16px; }
.item-shop-list { display:flex; flex-direction:column; gap:12px; }
.item-category-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 17px; }
.item-category-filters button { min-height:44px; padding:9px 12px; border:1px solid #d0bfa4; border-radius:10px; background:#faf1df; color:#826b70; font-size:14px; font-weight:700; }
.item-category-filters button[aria-pressed='true'] { background:#776286; border-color:#685377; color:#fff5dc; }
.item-shop-card { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; padding:16px 12px; border:1px solid #daccae; border-radius:12px; background:#fffaf0; }
.item-shop-icon { width:42px; height:46px; border:1px solid #dec8a3; border-radius:11px; background:#f4e8cf; display:grid; place-items:center; font-size:25px; }
.item-shop-info { min-width:0; }.item-shop-category { color:#648677; font-size:14px; }.item-shop-title { font-size:17px; color:#5f4d6e; line-height:1.5; margin:4px 0; }
.item-shop-description { font-size:14px; color:#887363; line-height:1.7; margin:0; overflow-wrap:anywhere; }
.item-shop-level { display:block; color:#8d7497; font-size:14px; font-weight:700; margin-top:7px; }
.item-buy-button { flex-direction:column; align-items:center; gap:3px; min-height:58px; min-width:79px; max-width:120px; font-size:14px; padding:8px; }
.item-cost { overflow-wrap:anywhere; }.item-buy-label { font-size:15px; }
#relic-list .relic-status,#relic-list .relic-owned { position:static; font-size:14px; margin-top:10px; }
#relic-list .relic-owned { display:none; }#relic-list .unlocked .relic-owned { display:block; }#relic-list .unlocked .relic-status { display:none; }
#relic-list .relic-eff { font-size:14px; line-height:1.65; }#relic-list .relic-icon { font-size:24px; }
@media (min-width:1200px) { #tab-nav { grid-template-columns:repeat(6,minmax(0,1fr)); }.tab-btn { font-size:16px; gap:4px; }.tab-btn .icon { width:16px; height:16px; } }
.up-btn[data-holding='true'] { border-color:#d8b36d; outline:2px solid #e0c38e; outline-offset:2px; }
#battle-view[data-holding='true'] { border-color:#ecd08c; box-shadow:0 0 0 2px #d8ba7744,0 5px 0 #d8c6aa; }
#battle-view, #battle-view *, [data-repeat-action], [data-repeat-action] * { -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }
@media (max-width:699px) {
    .copyright-note { font-size:14px; margin-top:20px; }#tab-nav { grid-template-columns:repeat(3,minmax(0,1fr)); }.tab-btn { height:49px; }
    .item-shop-card { grid-template-columns:32px minmax(0,1fr); gap:10px; padding:14px 11px; }.item-shop-icon { width:32px; height:38px; font-size:22px; }
    .item-buy-button { grid-column:2; min-height:46px; min-width:116px; max-width:none; flex-direction:row; justify-self:start; gap:9px; margin-top:1px; }
    .item-shop-title { font-size:16px; }#relic-list { gap:10px; }#relic-list .relic-item { padding:15px 10px; }
}

/* PRD v1.1 (Save Schema v5) UI enhancements: readable >=14px text, >=44px touch targets, zero clipping */
#panel-area, .up-card { overflow:visible; }
.up-info, .ach-info, .boss-pending-info { min-width:0; overflow-wrap:anywhere; }
.up-preview-line { font-size:14px; color:#6d597a; margin-top:4px; line-height:1.5; overflow-wrap:anywhere; }
.up-preview-line:empty { display:none; }

/* Decorative & cosmetic layers inside battle-body */
.classroom-decor-layer { position:absolute; left:14px; top:48px; display:flex; gap:6px; pointer-events:none; z-index:2; font-size:20px; }
.decor-badge { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:9px; background:#fff8e8cc; border:1px solid #d7be96; }
.hero-cosmetic-layer { position:absolute; top:6px; right:8px; display:flex; flex-direction:column; gap:4px; pointer-events:none; z-index:3; font-size:18px; }
.cosmetic-badge { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#fff9ecdd; border:1px solid #d5b67e; }
#battle-view[data-bg="playground"] .battle-body, #battle-view[data-bg="loc-gym"] .battle-body { box-shadow:inset 0 0 60px #e8f5c855; }
#battle-view[data-bg="library"] .battle-body, #battle-view[data-bg="loc-library"] .battle-body { box-shadow:inset 0 0 60px #f3d9b166; }
#battle-view[data-bg="music-room"] .battle-body, #battle-view[data-bg="bg-festival"] .battle-body { box-shadow:inset 0 0 60px #e4d0f766; }
#battle-view[data-bg="science-room"] .battle-body, #battle-view[data-bg="loc-science"] .battle-body { box-shadow:inset 0 0 60px #c7eef566; }
#battle-view[data-bg="rooftop-garden"] .battle-body, #battle-view[data-bg="bg-sunset"] .battle-body, #battle-view[data-bg="loc-gate"] .battle-body { box-shadow:inset 0 0 60px #ffe3a877; }

/* Quickbar, Boss Pending, Boss Failure, Onboarding, Goal Tracking */
.adventure-quickbar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.quick-tool-btn { min-height:46px; padding:8px 10px; border:1px solid #b59b73; border-radius:11px; background:#463d5a; color:#f9ecd2; font-size:14px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; gap:6px; text-align:center; overflow-wrap:anywhere; }
.quick-tool-btn:hover { background:#584c70; border-color:#ebd09a; }

.boss-pending-banner, .boss-failure-card, .onboarding-card { padding:12px 14px; border-radius:13px; border:1px solid #c9ae82; background:#3d3552; color:#f8ebd4; font-size:14px; line-height:1.6; }
.boss-pending-banner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; background:#4b3854; border-color:#e5b97d; }
.boss-pending-banner strong, .boss-failure-card strong, .onboarding-head strong { font-size:15px; color:#ffe3a3; display:block; }
.boss-pending-banner p, .boss-failure-card p { font-size:14px; color:#f3e2c7; margin-top:4px; overflow-wrap:anywhere; }
.onboarding-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.onboarding-dismiss-btn { min-height:44px; min-width:64px; padding:6px 12px; border:1px solid #a58f74; border-radius:9px; background:#544868; color:#f5e6cc; font-size:14px; font-weight:650; }
.onboarding-steps-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.onboarding-step, .ob-step { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-radius:10px; background:#322b44; border:1px solid #6f5e78; font-size:14px; color:#f2e5d2; overflow-wrap:anywhere; }
.onboarding-step.done, .ob-step.done { opacity:.82; border-color:#6d8c74; }
.onboarding-step-text { flex:1 1 160px; min-width:0; font-size:14px; color:#f2e5d2; overflow-wrap:anywhere; }
.onboarding-step-btn { min-height:44px; min-width:72px; padding:6px 12px; border:1px solid #b89c72; border-radius:8px; background:#685682; color:#fff6e5; font-size:14px; font-weight:700; }

.tracked-goals-list { flex-basis:100%; display:flex; flex-direction:column; gap:6px; margin-top:6px; font-size:14px; }
.tracked-goal-item, .tracked-goal-chip { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; padding:6px 9px; border-radius:8px; background:#2c283d; border:1px solid #63556b; font-size:14px; color:#f0dfc3; overflow-wrap:anywhere; }

/* Purchase Toolbars, Recommendation Banners, Companions, Achievements, Automation */
.purchase-toolbar { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 12px; padding:10px; border:1px solid #dfd0b4; border-radius:11px; background:#faf2e1; }
.toolbar-group { display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; }
.toolbar-label { font-size:14px; font-weight:700; color:#69576f; margin-right:2px; }
.mode-chip, .preset-chip, .preset-btn, .preset-save-btn { min-height:44px; min-width:52px; padding:6px 11px; border:1px solid #cbb798; border-radius:9px; background:#fffaf0; color:#6a5870; font-size:14px; font-weight:700; }
.mode-chip.active, .mode-chip[aria-pressed='true'], .preset-chip.active, .preset-btn.active { background:#776286; border-color:#634f72; color:#fff6e3; }

.rec-banner { font-size:14px; line-height:1.6; color:#4f415d; background:#f2ebd9; border:1px solid #d5c3a1; border-radius:10px; padding:10px 12px; margin:0 0 12px; overflow-wrap:anywhere; }
.rec-banner:empty { display:none; }

.companion-loadout-box { padding:12px; margin:0 0 14px; border:1px solid #dccab0; border-radius:12px; background:#faf2e2; font-size:14px; line-height:1.6; }
.companion-summary-line, .companion-synergy-line { font-size:14px; color:#5a4966; margin:0 0 6px; overflow-wrap:anywhere; }
.companion-presets-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.comp-card-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; flex:none; }
.comp-equip-btn { min-height:46px; min-width:74px; padding:8px 10px; border:1px solid #b8a384; border-radius:9px; background:#f5ebd6; color:#5d4c66; font-size:14px; font-weight:700; }
.comp-equip-btn[aria-pressed='true'] { background:#597665; border-color:#486353; color:#fff8ea; }
.extra-companions-list { margin-top:12px; }

.panel-heading { flex-wrap:wrap; }
.claim-all-btn { min-height:46px; font-size:14px; padding:8px 12px; }
.ach-top-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.ach-pin-toggle { display:inline-flex; align-items:center; gap:5px; min-height:32px; padding:3px 8px; border:1px solid #d4c4a8; border-radius:8px; background:#faf1df; color:#69566d; font-size:14px; font-weight:650; cursor:pointer; }
.ach-pin-input { width:16px; height:16px; margin:0; accent-color:#6f5b7e; }
.ach-progress-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:6px; }
.ach-progress-bar { flex:1 1 90px; height:7px; border-radius:5px; background:#e5dac7; overflow:hidden; }
.ach-progress-fill { height:100%; width:0; background:#7b9b78; }
.ach-progress-text { font-size:14px; color:#6e5d70; font-variant-numeric:tabular-nums; }

.auto-form-grid { display:grid; grid-template-columns:1fr; gap:10px; margin:12px 0; }
.auto-field-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; font-size:14px; color:#4f415b; font-weight:650; }
.auto-field-row select, .auto-field-row input[type='number'] { min-height:44px; padding:6px 10px; border:1px solid #cbb798; border-radius:8px; background:#fffdf8; color:#3d3247; font:inherit; font-size:14px; max-width:100%; }
.auto-field-row input[type='checkbox'] { width:20px; height:20px; accent-color:#6e5982; }
.auto-targets-fieldset { border:1px solid #d8c6a8; border-radius:10px; padding:10px 12px; margin:10px 0; display:flex; flex-wrap:wrap; gap:10px 14px; font-size:14px; color:#52435d; }
.auto-targets-fieldset legend { font-size:14px; font-weight:700; padding:0 6px; }
.auto-targets-fieldset label { display:inline-flex; align-items:center; gap:6px; font-size:14px; min-height:36px; cursor:pointer; }
.auto-targets-fieldset input[type='checkbox'] { width:18px; height:18px; accent-color:#6e5982; }
.auto-budget-summary { font-size:14px; color:#5c4b66; margin:10px 0; line-height:1.6; overflow-wrap:anywhere; }

/* Dialogs: Boss Prep, Map, Cosmetics, Reports, Prestige */
dialog { width:min(480px, calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow-x:hidden; overflow-y:auto; font-size:14px; }
.dialog-body-box, .map-locations-list, .cosmetics-slots-container, .report-history-list { font-size:14px; line-height:1.65; color:#4d3f57; margin:10px 0; overflow-wrap:anywhere; }
.dialog-body-box p, .dialog-body-box li, .dialog-body-box div, .dialog-body-box span, .dialog-body-box strong, .dialog-body-box h3 { font-size:14px; }
.map-locations-list, .report-history-list { display:flex; flex-wrap:wrap; gap:8px; }
.map-loc-btn, .cosmetic-chip, .cosmetic-item-btn, .report-tab-btn, .report-hist-btn { min-height:44px; padding:8px 12px; border:1px solid #ccb899; border-radius:9px; background:#faf2e1; color:#594865; font-size:14px; font-weight:700; }
.map-loc-btn.active, .map-loc-btn.selected, .map-loc-btn.current, .cosmetic-chip.active, .cosmetic-item-btn.selected, .report-tab-btn.active, .report-hist-btn.active { background:#735e83; border-color:#5f4b6e; color:#fff7e6; }
.cosmetics-slot-group, .cosmetic-slot-group { margin:10px 0; padding:10px; border:1px solid #dfd0b5; border-radius:10px; background:#fbf5e8; }
.cosmetics-slot-group h3, .cosmetic-slot-group h3 { font-size:15px; margin:0 0 8px; color:#52425e; }
.cosmetics-chip-row, .cosmetic-options-row { display:flex; flex-wrap:wrap; gap:8px; }

.return-intro-button:hover { background:#635074; border-color:#b89fc2; }
.header-save-button { border-color:#6d9a7e; background:#3b5649; color:#e4f5ea; }
.header-save-button:hover { background:#486959; border-color:#95c4a6; }
.header-exit-button { border-color:#9e7676; background:#593d45; color:#f5e1e4; }
.header-exit-button:hover { background:#6d4b55; border-color:#c69898; }

@media (max-width:699px) {
    .header-actions { flex-wrap:wrap; gap:8px; justify-content:flex-start; }
    .header-actions .work-clock { margin-left:auto; }
    .up-card { flex-wrap:wrap; }
    .comp-card-actions { width:100%; justify-content:flex-end; }
    .achieve-item { flex-wrap:wrap; }
}

