/* YSSCHOOL Game Polish V11: consolidated UI, no decorative mascots, anti-text-collision & responsive layout */
:root{--ys-v9-accent:#38bdf8;--ys-v9-panel:rgba(15,23,42,.93);--ys-v9-line:rgba(255,255,255,.24)}
html{overscroll-behavior:none;scroll-behavior:auto}
body.ys-v4-game-page,body.ys-v9-game-page{overscroll-behavior:none}
body.ys-v4-game-page button,body.ys-v4-game-page a,body.ys-v4-game-page .btn,body.ys-v4-game-page .choice{touch-action:manipulation}
body.ys-v4-game-page .ctrl,body.ys-v4-game-page .pad button,body.ys-v4-game-page .joystick button,body.ys-v9-game-page .ctrl,body.ys-v9-game-page .pad button,body.ys-v9-game-page .joystick button{touch-action:none;user-select:none;-webkit-user-select:none}
body.ys-v4-game-page .btn,body.ys-v4-game-page .choice,body.ys-v4-game-page .ctrl,body.ys-v4-game-page .chip,body.ys-v4-game-page .cell,body.ys-v4-game-page .memo{border-radius:18px!important;transition:transform .08s ease, filter .12s ease, box-shadow .12s ease}
body.ys-v4-game-page .btn:active,body.ys-v4-game-page .choice:active,body.ys-v4-game-page .ctrl:active,body.ys-v4-game-page .pad button:active,body.ys-v4-game-page .joystick button:active{transform:scale(.96)!important;filter:brightness(1.12)}
.ys-v4-mascot,.ys-v4-corner,.ys-v4-sparkle,#ys-v8-mainboard-fixed,#ys-difficulty-badge,#ys-v7-tools{display:none!important;visibility:hidden!important;pointer-events:none!important}
.ys-v4-settings-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:6px 8px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);font-size:12px;font-weight:1000}
.ys-v4-no-shake-note{font-size:12px;color:#cbd5e1;margin-top:5px}

/* 상단 수업메뉴 버튼 플로팅 및 제목 겹침 방지 */
#ys-v9-hub{position:fixed;left:calc(env(safe-area-inset-left,0px) + 10px);top:calc(env(safe-area-inset-top,0px) + 10px);z-index:2147483646;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#fff;pointer-events:auto}
#ys-v9-menu-btn,#ys-v9-hub button{border:1px solid var(--ys-v9-line);background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;border-radius:999px;padding:8px 12px;font:1000 12px/1 system-ui;box-shadow:0 10px 28px rgba(2,6,23,.35);cursor:pointer;touch-action:manipulation}
#ys-v9-menu{margin-top:7px;display:grid;gap:7px;width:min(230px,calc(100vw - 22px));padding:10px;border:1px solid var(--ys-v9-line);background:var(--ys-v9-panel);border-radius:18px;box-shadow:0 18px 52px rgba(0,0,0,.40);backdrop-filter:blur(10px)}
#ys-v9-menu[hidden]{display:none!important}
#ys-v9-hub-label,#ys-v9-star-status,#ys-v9-class-timer{font:900 12px/1.35 system-ui;color:#e0f2fe;background:rgba(255,255,255,.08);border-radius:12px;padding:7px 8px}
#ys-v9-hub button{width:100%;text-align:left;justify-content:flex-start;background:rgba(255,255,255,.12);box-shadow:none;border-radius:13px}
#ys-v9-home,#ys-v9-result-home{background:linear-gradient(135deg,#0ea5e9,#2563eb)!important}
#ys-v9-star-save,.ys-v9-star{background:linear-gradient(135deg,#f59e0b,#facc15)!important;color:#111827!important}
#ys-v9-recap-open,#ys-v9-result-recap{background:linear-gradient(135deg,#8b5cf6,#ec4899)!important}
#ys-v9-toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%);z-index:2147483647;background:rgba(15,23,42,.94);color:white;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:10px 14px;font:900 13px system-ui;box-shadow:0 12px 36px rgba(0,0,0,.35);opacity:0;transition:.2s;pointer-events:none;text-align:center;max-width:90vw}
#ys-v9-toast.show{opacity:1}

/* 상단바 수업메뉴 버튼과의 글씨 겹침 완전 차단 */
.game .top, .wrap .top, .topbar, header.top, .page .topbar, .brand {
  padding-left: 105px !important;
}

/* 사이드 패널 넘침 및 푸터 버튼 겹침 차단 */
.side {
  overflow-y: auto !important;
  max-height: 100% !important;
  padding-right: 2px !important;
}
.side::-webkit-scrollbar {
  width: 6px;
}
.side::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.2);
  border-radius: 999px;
}
.footer {
  flex-shrink: 0 !important;
  position: relative !important;
  z-index: 5 !important;
}

/* 오류 팝업 발생 시 수업메뉴 버튼과 겹치지 않도록 여백 확보 */
.errorBox {
  position: fixed !important;
  left: 12px !important;
  right: 12px !important;
  top: 56px !important;
  z-index: 999999 !important;
}

/* 글씨 넘침 및 텍스트 겹침 방지 */
.card, .panel, .hud, .quest, .tip, .q, .sub, .desc, .stat, .how {
  overflow-wrap: break-word !important;
  line-height: 1.45 !important;
}

#ys-v9-recap,#ys-v9-result{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(2,6,23,.72);z-index:2147483647;padding:14px;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#fff}
#ys-v9-recap.show,#ys-v9-result.show{display:flex}
.ys-v9-recap-card,.ys-v9-result-card{width:min(560px,96vw);background:linear-gradient(135deg,#0f172a,#1e293b);color:white;border:1px solid rgba(255,255,255,.2);border-radius:26px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.55);position:relative;text-align:left}
.ys-v9-result-card{text-align:center}
.ys-v9-x{position:absolute;right:14px;top:12px;border:0;border-radius:50%;width:34px;height:34px;font-size:24px;background:rgba(255,255,255,.14);color:#fff}
.ys-v9-recap-card h2,.ys-v9-result-card h2{margin:0 0 8px;font-size:26px;line-height:1.35}
.ys-v9-recap-card h3,.ys-v9-result-card h3{margin:0 0 12px;color:#fde68a;line-height:1.35}
.ys-v9-recap-card p,.ys-v9-result-card p{color:#dbeafe;line-height:1.55}
.ys-v9-recap-card textarea{width:100%;min-height:90px;border-radius:16px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;padding:12px;font-family:inherit;margin-top:8px}
.ys-v9-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;justify-content:center}
.ys-v9-row button{border:0;border-radius:14px;padding:11px 13px;font-weight:1000;background:#38bdf8;color:#fff;cursor:pointer}
.ys-v9-small{font-size:13px;color:#cbd5e1!important}
body.ys-teacher-muted:before{content:'무음 수업 모드';position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 10px);transform:translateX(-50%);z-index:999999;background:rgba(15,23,42,.78);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:999px;padding:6px 10px;font:900 11px system-ui;pointer-events:none}

/* legacy end overlay support */
#ys-arcade-end-overlay{position:fixed;inset:0;z-index:2147482500;display:none;place-items:center;background:rgba(2,6,23,.72);backdrop-filter:blur(8px);padding:18px;color:#fff}
#ys-arcade-end-overlay.show{display:grid}
.ys-arcade-end-box{width:min(520px,94vw);background:rgba(15,23,42,.94);border:1px solid rgba(255,255,255,.2);border-radius:26px;padding:22px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.45)}
.ys-arcade-end-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.ys-v8-mainboard-end{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;margin:6px!important;background:linear-gradient(135deg,#0ea5e9,#2563eb)!important;color:#fff!important;border:1px solid rgba(255,255,255,.28)!important;border-radius:16px!important;padding:11px 14px!important;font-weight:1000!important;text-decoration:none!important;cursor:pointer!important;min-height:42px!important}

@media(max-width:720px){
  #ys-v9-hub{left:7px;top:calc(env(safe-area-inset-top,0px) + 7px)}
  #ys-v9-menu-btn{padding:8px 10px;font-size:11px}
  #ys-v9-menu{width:min(218px,calc(100vw - 14px));gap:6px;padding:8px}
  .ys-v9-row button{flex:1 1 120px}
  .ys-v9-recap-card,.ys-v9-result-card{padding:18px}
  body.ys-v4-game-page .ctrl,body.ys-v4-game-page .pad button,body.ys-v4-game-page .joystick button{min-width:48px;min-height:44px}
  .game .top, .wrap .top, .topbar, header.top, .page .topbar, .brand {
    padding-left: 90px !important;
  }
}
@media(max-width:800px){.game-shell{overflow-y:auto!important;height:auto!important;min-height:100dvh;padding-top:42px}}
