*{box-sizing:border-box}
button,textarea{font-family:inherit}
body{font-family:'Gowun Dodum',sans-serif;background:#f8f3ee;color:#333333;padding:20px 10px;line-height:1.6;margin:0;display:flex;flex-direction:column;align-items:center;overflow-x:hidden}
.wrap{width:100%;max-width:600px;display:flex;flex-direction:column;gap:20px}
.tw{text-align:center}
.ttl{display:inline-flex;gap:8px;font-family:'Jua',sans-serif;font-size:1.5em;color:#ffffff;background:#5f3d1f;padding:12px 30px;border-radius:30px;box-shadow:0 4px 12px rgba(95,61,31,.25);cursor:pointer;border:2px dashed #937153}
.dash,.card{background:#ffffff;border-radius:20px;padding:25px 15px;box-shadow:0 4px 15px rgba(95,61,31,.06);border:1px solid #f4ebe3}
.dash{background:linear-gradient(145deg,#ffffff,#fdf9f5);padding:25px 20px}
.sh{font:1.1em 'Jua',sans-serif;color:#3f2814;margin-bottom:18px}
.ph{display:flex;justify-content:space-between;align-items:flex-end;font-size:.9em;font-weight:bold;margin-bottom:10px;color:#6b5848}
.pp{font:1.8em/1 'Jua',sans-serif;color:#43a047}
.pb{height:16px;background:#f4ebe3;border-radius:10px;overflow:hidden;box-shadow:inset 0 2px 4px rgba(0,0,0,.05)}
#bar{height:100%;width:0;background:linear-gradient(90deg,#81c784,#4caf50);border-radius:10px;transition:width .8s}
.mt{text-align:center;font-weight:bold;margin-bottom:20px;color:#6b5848;border-bottom:2px dashed #f4ebe3;padding-bottom:15px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.wd{font-weight:bold;color:#a9927f;font-size:.8em;padding-bottom:8px}
.wd:first-child{color:#ef5350}.wd:nth-child(7){color:#e68937}
.dc{position:relative;display:flex;flex-direction:column;align-items:center;background:#ffffff;border:1px solid #e0e0e0;border-radius:12px;padding:8px 4px;min-height:85px;box-shadow:0 2px 4px rgba(0,0,0,.02)}
.dc[data-act]{cursor:pointer;transition:.2s}
.dc[data-act]:hover{transform:translateY(-3px);box-shadow:0 6px 12px rgba(95,61,31,.1)}
.dc.rest{background:#fdf9f5;border:1px dashed #e8dbcf;box-shadow:none}
.dc.pf{background:#f1f8e9;border-color:#81c784}.dc.wr{background:#ffebee;border-color:#e57373}
.dt{font-size:.7em;color:#937153;font-weight:bold}
.dn{font-weight:bold;font-size:.8em;color:#e53935;margin:3px 0;background:#ffebee;padding:2px 6px;border-radius:10px}
.sc,.wl{font-size:.55em;line-height:1.3;word-break:break-all;margin-top:4px;font-weight:bold;color:#5f3d1f;padding:0 2px}
.wl{color:#6b5848}.wl.red{color:#ef5350}.wl.blue{color:#e68937}
.paw{position:absolute;bottom:5px;font-size:1.2em;transform:rotate(-10deg);text-shadow:1px 2px 4px rgba(0,0,0,.15)}
.qh{font:1.4em 'Jua',sans-serif;color:#5f3d1f;margin-bottom:20px;border-bottom:2px dashed #e8dbcf;padding-bottom:12px}
.rs{text-align:right;margin-bottom:15px;cursor:pointer;font-size:.85em;color:#6b5848;text-decoration:underline;font-weight:bold}
.rst{text-align:center;margin-bottom:15px;cursor:pointer;font-size:.8em;color:#a9927f;text-decoration:underline;font-weight:bold}
.qi{margin-bottom:25px;padding-bottom:20px;border-bottom:1px solid #f4ebe3}
.qi.w{border-left:4px solid #c62828;padding-left:10px}.qi.b{border-left:4px solid #ffb300;padding-left:10px}
.stk{display:inline-block;background:#fff3e0;color:#e65100;border:1px dashed #ffb74d;padding:4px 12px;border-radius:15px;font-size:.8em;font-weight:bold;margin-bottom:15px;transform:rotate(-1deg)}
.stk.info{background:#fcefe4;color:#a75915;border-color:#f2c197}
.qt{font-weight:bold;margin-bottom:15px;white-space:pre-wrap;word-break:keep-all;line-height:1.7}
.ox{display:flex;gap:15px;justify-content:center;margin-bottom:10px}
.ob{width:65px;height:65px;border-radius:50%;border:2px solid #e8dbcf;background:#ffffff;font:1.5em 'Jua',sans-serif;cursor:pointer;transition:.2s;box-shadow:0 4px 8px rgba(0,0,0,.06)}
.ob.o{color:#ba6317}.ob.x{color:#d84315}
.ob:hover:not(:disabled){background:#fdf9f5;transform:translateY(-3px)}
.ob:disabled{opacity:.5;cursor:not-allowed}.ob.sel{opacity:1}.ob.sel.o{background:#fcefe4}.ob.sel.x{background:#fbe9e7}
.ex{display:none;font-size:.9em;padding:15px;border-radius:12px;margin-top:10px;white-space:pre-wrap;line-height:1.6;border:1px solid}
.ex.good{border-color:#c8e6c9;background:#f1f8e9;color:#2e7d32}.ex.bad{border-color:#ef9a9a;background:#ffebee;color:#c62828}
.acts{margin-top:15px;display:flex;gap:10px}
.btn{flex:1;padding:10px;border:0;border-radius:10px;background:#937153;color:#ffffff;font-weight:bold;font-size:.9em;cursor:pointer}
.btn.on{background:#ffb300}
.btn.sm{flex:none;width:100%;padding:12px;margin-bottom:12px;background:#5f3d1f;font-size:.95em}
.pi{background:#fff9c4;border-left:4px solid #fbc02d;padding:15px;margin-top:15px;box-shadow:2px 4px 8px rgba(0,0,0,.05);transform:rotate(.5deg)}
.pt{font-weight:bold;font-size:.85em;color:#f57f17;margin-bottom:8px}
.qi.w .pi{background:#ffebee;border-color:#ef5350}.qi.w .pt{color:#c62828}
.mm{width:100%;background:transparent;border:0;outline:0;font-size:.9em;line-height:1.5;color:#333333;resize:vertical;min-height:60px}
.sb{width:100%;padding:16px;background:#5f3d1f;color:#ffffff;border:0;border-radius:12px;font-weight:bold;font-size:1.05em;cursor:pointer;margin-top:15px;box-shadow:0 4px 12px rgba(95,61,31,.25);transition:.2s}
.sb:hover{background:#3f2814}
.emp{text-align:center;padding:20px;color:#6b5848;font-weight:bold}
.bb{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding-bottom:30px}
.bb button{background:#ffffff;border:2px solid #e0e0e0;color:#5f3d1f;border-radius:30px;padding:12px 20px;font-size:.9em;font-weight:bold;cursor:pointer;transition:.2s;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.bb button:hover{background:#fdf9f5;border-color:#e8dbcf;transform:translateY(-2px)}
.quiz-input{-webkit-appearance:none;appearance:none;border:0;border-bottom:2px solid #937153;border-radius:0;background:transparent;outline:0;width:60px;height:25px;font:bold 16px inherit;text-align:center;padding:0 1px;margin:0 2px;vertical-align:middle;color:#ba6317}
.quiz-input.correct{border-bottom-color:#df771c}.quiz-input.wrong{border-bottom-color:#f44336;color:#d84315}
table{border:1px solid #e8dbcf;width:100%;border-collapse:collapse;margin-top:10px}
td,th{padding:10px;border:1px solid #eeeeee;vertical-align:middle;line-height:1.5}
.align-left{text-align:left!important;padding-left:10px!important;word-break:keep-all}
mark{padding:0 1px;border-radius:2px;color:inherit;cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone}
mark.hl-y{background:#fff59d}mark.hl-p{background:#f4bfc9}mark.hl-b{background:#f6d5b9}mark.hl-g{background:#c8e6c9}
#hb{position:fixed;z-index:10000;display:none;align-items:center;gap:7px;background:#4a4a4a;padding:8px 12px;border-radius:25px;box-shadow:0 4px 15px rgba(0,0,0,.35)}
#hb .sw{width:24px;height:24px;border-radius:50%;border:2px solid rgba(255,255,255,.9);padding:0;cursor:pointer}
#hb .y{background:#fff59d}#hb .p{background:#f4bfc9}#hb .b{background:#f6d5b9}#hb .g{background:#c8e6c9}
#hb .er{border:0;background:#7a7a7a;color:#ffffff;border-radius:14px;padding:0 12px;height:24px;font-size:.75em;cursor:pointer;font-weight:bold}
button,.dc{touch-action:manipulation}
/* ===== 첫 화면 업그레이드 ===== */
body{background-image:radial-gradient(#f1e5db 1px,transparent 1px);background-size:20px 20px}
.sub{margin-top:8px;font-size:.85em;color:#a9927f;font-weight:bold;letter-spacing:.5px}
.dash{position:relative;padding:28px 20px 20px}
.dash::before{content:'';position:absolute;top:-10px;left:50%;width:96px;height:22px;background:rgba(255,202,40,.55);transform:translateX(-50%) rotate(-3deg);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.hero{display:flex;align-items:center;gap:16px;padding-bottom:18px;margin-bottom:16px;border-bottom:2px dashed #f4ebe3}
.dd{flex:none;text-align:center;background:#5f3d1f;color:#ffffff;border-radius:18px;padding:10px 16px;border:2px dashed #937153;transform:rotate(-2deg);box-shadow:0 4px 12px rgba(95,61,31,.25)}
.dd small{display:block;font-size:.75em;opacity:.85}
.dd b{font:2.2em/1.1 'Jua',sans-serif;color:#ffca28}
.td{flex:1;min-width:0}
.tl{font-size:.8em;color:#a9927f;font-weight:bold}
.tt{font:1.2em 'Jua',sans-serif;color:#3f2814;margin-bottom:8px;word-break:keep-all}
.go{display:none;padding:9px 16px;border:0;border-radius:20px;background:#43a047;color:#ffffff;font-weight:bold;font-size:.9em;cursor:pointer;box-shadow:0 3px 8px rgba(67,160,71,.3)}
.pb{position:relative;overflow:visible}
.runner{position:absolute;top:-9px;left:0;transform:translateX(-50%) rotate(-10deg);font-size:1.1em;transition:left .8s}
.chips{display:flex;gap:8px;margin-top:16px}
.chip{flex:1;background:#ffffff;border:1px dashed #e8dbcf;border-radius:12px;padding:8px 4px;text-align:center;font-size:.75em;color:#6b5848;font-weight:bold}
button.chip{cursor:pointer}
.chip b{display:block;font:1.3em 'Jua',sans-serif;color:#5f3d1f}
.mt{font:1.05em 'Jua',sans-serif}
.mh{grid-column:1/-1;display:flex;align-items:center;gap:8px;margin:12px 0 2px;font:1.05em 'Jua',sans-serif;color:#5f3d1f}
.mh::after{content:'';flex:1;border-top:2px dashed #f1e5db}
.dc.now{box-shadow:0 0 0 2px #ffca28,0 4px 10px rgba(95,61,31,.15)}
.dc.now::before{content:'오늘';position:absolute;top:-8px;left:50%;transform:translateX(-50%) rotate(-3deg);background:#ffca28;color:#5f3d1f;font-size:.6em;font-weight:bold;padding:1px 8px;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.lg{margin-top:14px;text-align:center;font-size:.75em;color:#a9927f}
/* ===== 디자인 v3: 동글동글 + 정돈 ===== */
:root{--ink:#3f2814;--ink2:#6b5848;--line:#f4ebe3;--gold2:#fae5d2}
body{background:#f8f3ee}
.dash::before{content:none}
.dash{background:linear-gradient(145deg,#5f3d1f,#3a2410);color:#fdf4ec;border:0;border-radius:28px;padding:26px 20px 18px;box-shadow:0 12px 26px rgba(63,40,20,.25)}
.hero{border-bottom:2px dashed rgba(255,255,255,.18);padding-bottom:18px;margin-bottom:16px}
.dd{background:none;border:0;box-shadow:none;transform:none;padding:0;text-align:left;color:inherit}
.dd small{font-size:.8em;opacity:.75}
.dd b{font-size:2.8em;color:var(--gold2)}
.td{text-align:right}
.tl{color:rgba(253,244,236,.65)}
.tt{color:#ffffff}
.go{background:var(--gold2);color:var(--ink);box-shadow:none}
.sh{color:rgba(253,244,236,.88)}
.ph{color:rgba(253,244,236,.7)}
.pp{color:var(--gold2)}
.pb{height:12px;background:rgba(255,255,255,.14);border-radius:12px}
#bar{background:linear-gradient(90deg,#ffca28,#fbebdd);border-radius:12px}
.runner{top:-8px}
.chips{gap:8px}
.chip{background:rgba(255,255,255,.1);border:0;border-radius:16px;color:rgba(253,244,236,.75);padding:10px 4px;font-size:.78em}
.chip b{color:#ffffff}
.card{border-radius:26px;border-color:var(--line);box-shadow:0 6px 18px rgba(95,61,31,.06)}
.dc{border-radius:16px;border-color:var(--line);padding:9px 4px 8px}
.dc.rest{border:1px solid var(--line);background:#fdf9f5}
.dn{background:#fdecea;color:#e0685c;font-size:.68em;padding:1px 7px;margin:3px 0 4px}
.sc,.wl{font-size:.66em;line-height:1.4;word-break:keep-all;overflow-wrap:anywhere}
.dc.pf{background:#f1f8e9;border-color:#a5d6a7}.dc.wr{background:#fff0ee;border-color:#ef9a9a}
/* 폰 세로 화면 대응: D-day 줄바꿈 방지 + 좁은 화면에서는 위아래로 배치 */
.dd b{display:block;white-space:nowrap;font-size:clamp(2.2em,12vw,2.8em)}
@media (max-width:420px){
.hero{flex-direction:column;align-items:flex-start;gap:12px}
.td{width:100%;text-align:left}
.go{width:100%;padding:11px 18px}
}
/* ===== 겨울 테마 + 보정 ===== */
.dash{background:radial-gradient(circle at 88% -10%,rgba(255,255,255,.22),transparent 50%),linear-gradient(145deg,#8f5929,#5a3616);box-shadow:0 12px 26px rgba(90,54,22,.3)}
.dash::before{content:'';position:absolute;inset:0;width:auto;height:auto;transform:none;box-shadow:none;background-color:transparent;border-radius:inherit;pointer-events:none;opacity:.55;background-image:radial-gradient(circle,rgba(255,255,255,.7) 1.6px,transparent 2.2px),radial-gradient(circle,rgba(255,255,255,.45) 1px,transparent 1.6px);background-size:52px 52px,31px 31px;background-position:0 0,14px 22px}
.dash>*{position:relative}
#bar{background:linear-gradient(90deg,#f3c49b,#fcf2e9)}
.runner{top:-11px;font-size:1.25em;transform:translateX(-50%)}
.dn{background:#fbf0e6;color:#b06f35;white-space:nowrap;padding:1px 6px}
.qt,.ex{word-break:normal;overflow-wrap:break-word}
.qt td,.ex td,.align-left{word-break:normal}
/* ===== 눈 쌓인 카드: 눈송이는 줄이고 윗면에 쌓인 눈 표현 ===== */
.dash{overflow:hidden;padding-top:38px}
.dash::before{opacity:.35;background-image:radial-gradient(circle,rgba(255,255,255,.8) 1.6px,transparent 2.2px);background-size:97px 83px;background-position:20px 40px}
.dash::after{content:'';position:absolute;left:0;right:0;top:0;height:30px;pointer-events:none;background-repeat:repeat-x;background-size:84px 24px,61px 30px;background-position:0 0,20px 0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 24'%3E%3Cpath fill='%23ffffff' d='M0 0H84V9C78 9 76 20 68 20C60 20 60 11 52 11C44 11 42 22 32 22C24 22 22 12 14 12C8 12 6 9 0 9Z'/%3E%3C/svg%3E"),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 61 30'%3E%3Cpath fill='%23fae6d4' d='M0 0H61V12C55 12 53 26 44 26C36 26 36 14 27 14C19 14 17 24 9 24C4 24 3 12 0 12Z'/%3E%3C/svg%3E")}
/* 달력 D-day 칩: 칸 너비에 맞춰 크기 자동 조절 (옆 칸에 가려 잘리는 문제 방지) */
.dc{container-type:inline-size}
.dn{box-sizing:border-box;max-width:100%;padding:1px 3px;line-height:1.5;overflow:hidden;font-size:.6em;font-size:clamp(7px,30cqw,11px)}
/* ===== 시그니처 핑크 + 진도표 + 오답률 스티커 ===== */
:root{--pink:#e35878;--pink2:#fbbbca;--pink3:#fef1f4}
.ttl{background:var(--pink);border-color:rgba(255,255,255,.55)}
.dd b,.pp,.sh span{color:#fcd4de}
.go{background:var(--pink);color:#ffffff}
#bar{background:linear-gradient(90deg,var(--pink),#fbbbca)}
.dc.now{box-shadow:0 0 0 2px var(--pink)}
.dc.now::before{background:var(--pink);color:#ffffff}
.dc[data-act]:hover{border-color:var(--pink2)}
.dn{background:var(--pink3);color:var(--pink)}
.sb,.btn.sm{background:var(--pink)}
.sb{box-shadow:0 8px 18px rgba(227,88,120,.28)}
.sb:hover{background:#d0486a}
.bb button:hover{border-color:var(--pink);color:var(--pink)}
.stk,.stk.info{background:var(--pink3);color:#cd4669;border-color:var(--pink2)}
.sg{display:flex;flex-direction:column;gap:8px}
.sr{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#ffffff}
.ck{position:relative;flex:none;width:28px;height:28px}
.ck input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.ck i{position:absolute;inset:0;border:2px solid #e8dbcf;border-radius:9px;background:#ffffff;transition:.15s}
.ck input:checked+i{background:var(--pink);border-color:var(--pink)}
.ck input:checked+i::after{content:'✓';position:absolute;inset:0;color:#ffffff;font:700 16px/24px 'Gowun Dodum',sans-serif;text-align:center}
.si{flex:1;min-width:0}
.s1{font-size:.75em;color:#a9927f;font-weight:700}
.s2{line-height:1.45;word-break:normal;overflow-wrap:anywhere}
.sr:has(input:checked) .s2{color:#a9927f;text-decoration:line-through}
.sgo{flex:none;padding:7px 12px;border:0;border-radius:999px;background:var(--pink3);color:var(--pink);font-weight:700;font-size:.8em;cursor:pointer}
/* 정답 확인 버튼 작게 */
.btn.sm{width:auto;padding:6px 16px;margin-bottom:10px;font-size:.8em;border-radius:999px}
/* ===== 상단 카드·제목: 겨울 블루로 통일 ===== */
.ttl{background:linear-gradient(145deg,#8f5929,#5a3616);border-color:rgba(255,255,255,.4)}
.dd,.td{display:block;visibility:visible;opacity:1}
.dd small{color:rgba(253,244,236,.85);opacity:1}
.dd b,.pp,.sh span{color:#fae5d2}
.tl{color:rgba(253,244,236,.78)}
.tt{color:#ffffff}
.go{background:#fae5d2;color:#3f2814}
#bar{background:linear-gradient(90deg,#f3c49b,#fcf2e9)}
/* ===== v2: 전체 화면 시트(문제·진도표·오답·북마크) + 버튼 크기 축소 ===== */
body.lock{overflow:hidden}
.ov{position:fixed;inset:0;z-index:9000;display:none;justify-content:center;align-items:flex-end;background:rgba(63,40,20,.5)}
.ov.on{display:flex}
.sheet{width:100%;max-width:600px;height:94vh;height:94dvh;display:flex;flex-direction:column;overflow:hidden;background:#ffffff;border-radius:26px 26px 0 0;box-shadow:0 -8px 30px rgba(63,40,20,.25);animation:up .22s ease-out}
@keyframes up{from{transform:translateY(28px);opacity:.4}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.sheet{animation:none}}
.shh{flex:none;display:flex;align-items:center;gap:10px;padding:14px 16px 12px 20px;border-bottom:2px dashed #e8dbcf}
.shh .qh{flex:1;min-width:0;margin:0;padding:0;border:0;font-size:1.15em;line-height:1.35;word-break:keep-all}
.shx{flex:none;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#f8f3ee;color:#6b5848;font-size:.95em;font-weight:700;line-height:1;cursor:pointer}
.shx:hover{background:var(--pink3);color:var(--pink)}
.shb{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 18px 28px}
.shf{display:flex;justify-content:center;gap:8px;margin-top:18px}
.pill{padding:7px 18px;border:0;border-radius:999px;font-weight:700;font-size:.82em;line-height:1.4;cursor:pointer;transition:.15s}
.pill.main{background:var(--pink);color:#ffffff}
.pill.main:hover{background:#d0486a}
.pill.ghost{background:#f8f3ee;color:#6b5848}
.pill.ghost:hover{background:#f4ebe3}
.eb{font:1.15em 'Jua',sans-serif;color:#5f3d1f;margin-bottom:6px}
.warn{background:#fff3e0;color:#bf360c;border:1px dashed #ffb74d;border-radius:14px;padding:12px 14px;font-weight:700;font-size:.9em;line-height:1.5}
/* 버튼 크기 축소 */
.go{padding:6px 16px;font-size:.82em}
@media (max-width:420px){.go{width:auto;padding:7px 18px}}
.chip{padding:7px 4px;font-size:.72em}
.chip b{font-size:1.15em;line-height:1.3}
.bb{gap:8px}
.bb button{padding:7px 14px;font-size:.78em;border-width:1.5px}
.ob{width:52px;height:52px;font-size:1.25em}
.ox{gap:12px}
.acts{gap:8px;flex-wrap:wrap;margin-top:12px}
.btn{flex:none;padding:6px 14px;font-size:.8em;border-radius:999px}
.sgo{padding:5px 12px;font-size:.75em}

.sr.hl{border-color:var(--pink);box-shadow:0 0 0 2px var(--pink2)}
.dc.pf{background:#fcf2e9;border-color:#ea9b56}
.dc.wr{background:#ffe9e9;border-color:#e57373}
/* ===== v6 ===== */
/* 달력: 칸 넓히고 '~일차' 글씨 키움 */
.card.calcard{padding:22px 8px}
.cal{gap:4px}
.dc{padding:9px 1px 8px}
.dc .sc{white-space:nowrap;font-weight:700;font-size:11px;font-size:clamp(9px,27cqw,13px);letter-spacing:-.4px;margin-top:5px}
/* 정답=파랑 (초록 제거) */
.dc.pf{background:#fcf2e9;border-color:#ea9b56}
.dc.wr{background:#ffe9e9;border-color:#e57373}
.ex.good{border-color:#f7d9bf;background:#fcf3eb;color:#a75915}
/* 상단 새로고침 · 학원 로고 */
.logo{display:flex;justify-content:center;margin-bottom:-6px}
.logo[hidden]{display:none}
.logo img{display:block;max-height:64px;max-width:70%;width:auto;height:auto;object-fit:contain}
.subrow{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:8px}
.subrow .sub{margin:0}
.rf{flex:none;width:30px;height:30px;padding:0;border:1px solid #e8dbcf;border-radius:50%;background:#ffffff;font-size:.85em;line-height:1;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.05)}
.rf:active{background:#f8f3ee}
.shx.spin{animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.shx.spin{animation:none}}
/* 중요 문제 별표 (붉은색) */
.qi{position:relative}
.star{position:absolute;top:-4px;right:0;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:transparent;color:#ded3c9;font-size:1.5em;line-height:1;cursor:pointer;transition:.15s}
.star.on{color:#e53935;text-shadow:0 1px 4px rgba(229,57,53,.35)}
.star:active{transform:scale(.88)}
.qi.i{border-left:4px solid #e53935;padding-left:10px}
.bb button.red{color:#e53935;border-color:#f3c1bf}
.bb button.red:hover{border-color:#e53935;color:#e53935}
/* 도장이 글씨와 겹치지 않도록 칸 높이 확보 · '오늘' 띠 줄바꿈 방지 */
.dc{min-height:114px}
.paw{bottom:4px;font-size:1.15em}
.dc.now::before{white-space:nowrap;padding:1px 5px}
/* 학원 마크: 제목 위 한 줄, 왼쪽/오른쪽 끝에 작게 */
.logo{justify-content:flex-start;margin-bottom:-8px;padding:0 4px}
.logo.right{justify-content:flex-end}
.logo img{max-height:36px;max-width:40%}
/* 중요 별표: 문제 본문(번호) 바로 아래, 왼쪽 */
.strow{display:flex;justify-content:flex-start;margin:-6px 0 12px}
.star{position:static;top:auto;right:auto;width:auto;height:auto;min-height:32px;display:inline-flex;align-items:center;gap:5px;padding:3px 12px 3px 8px;border:1px dashed #e8dbcf;border-radius:999px;background:#ffffff;color:#af9c8b;font-size:1em;font-weight:700;line-height:1.2}
.star .sy{font-size:1.35em;line-height:1}
.star .sl{font-size:.8em}
.star.on{color:#e53935;border:1px solid #f3a9a6;background:#fff1f0;text-shadow:none}

/* ===== 수배자 오답노트 ===== */
.qi.w{background:#fff8f5;border:2px dashed #c62828;border-radius:14px;padding:14px;margin-bottom:22px;overflow:hidden}
.qi.w .wt{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin:-14px -14px 12px;padding:8px 14px;background:#c62828;color:#ffffff;font-weight:800;letter-spacing:.5px}
.wt .wp{margin-left:auto;letter-spacing:3px}
.wt small{width:100%;font-weight:600;opacity:.85;font-size:.72em}
.qi.w.caught::after{content:'검거 완료';position:absolute;right:10px;top:42%;transform:rotate(-14deg);border:5px double #2e7d32;color:#2e7d32;font-family:'Jua',sans-serif;font-size:2em;padding:4px 16px;border-radius:10px;background:rgba(255,255,255,.88);pointer-events:none}
/* ===== 편지 · 순찰일지 카드 ===== */
.lw p{color:#6b5848;font-size:.9em;line-height:1.6;margin-bottom:12px}
.ltb{min-height:220px;background:#fff9fb;border:1.5px solid var(--pink2);border-radius:12px;padding:14px;font-family:inherit}
.lp{white-space:pre-wrap;line-height:1.8;background:#fff9fb;border:1.5px solid var(--pink2);border-radius:12px;padding:18px;color:#3f2814}
.lf{text-align:right;margin-top:10px;color:#6b5848;font-size:.85em}
.lbt{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.cd{text-align:center}.cd img{width:100%;max-width:420px;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.18)}

/* 입력칸 글자를 16px로 고정: 이보다 작으면 폰(iOS)이 입력할 때 화면을 확대함 */
.quiz-input{font-family:inherit;font-size:16px;font-weight:700}
.mm,.ltb{font-size:16px}

/* ===== 오늘의 다짐 ===== */
.vh{font-weight:800;color:#5f3d1f;margin-bottom:8px}
.vt{min-height:110px}
.vl{margin:20px 0 8px;font-weight:800;color:#6b5848;font-size:.9em}
.vi{background:#fff9fb;border:1.5px solid var(--pink2);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.vd{display:flex;justify-content:space-between;align-items:center;font-size:.8em;font-weight:700;color:#cd4669;margin-bottom:6px}
.vx{border:0;background:transparent;color:#c6b7a9;font-size:1em;cursor:pointer;padding:2px 6px}
.vp{white-space:pre-wrap;line-height:1.7;color:#3f2814;font-size:.95em}

/* 다짐 칩: 오늘 아직 안 썼으면 노란 점으로 살짝 알려줌 */
.chip.nudge b::after{content:' ●';color:#ffd54f;font-size:.7em;vertical-align:middle}

/* 상단 카드의 오늘 다짐 한 줄 (D-day 옆, 세로 화면에서는 아래) */
.vowline{display:block;width:100%;margin:4px 0 10px;padding:8px 12px;border:1.5px dashed rgba(255,255,255,.7);border-radius:12px;background:rgba(255,255,255,.18);color:#ffffff;font:inherit;font-size:.88em;font-weight:700;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vowline:active{background:rgba(255,255,255,.32)}

/* 다짐이 길어도 잘리지 않게 줄바꿈해서 전부 보여줌 */
.vowline{white-space:pre-wrap;overflow:visible;text-overflow:clip;word-break:keep-all;overflow-wrap:anywhere;line-height:1.55}

/* 다짐 글자 수 안내 */
.vc{text-align:right;font-size:.8em;font-weight:700;color:#a9927f;margin-top:4px}

/* ===== 취약점 분석 ===== */
.wk{display:block;width:100%;text-align:left;background:#ffffff;border:1.5px solid #f4ebe3;border-radius:14px;padding:12px 14px;margin-bottom:10px;font:inherit;cursor:pointer}
.wkh{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;color:#5f3d1f}
.wkh span{flex:none;font-size:.78em;font-weight:800;padding:2px 8px;border-radius:10px}
.wkb{height:10px;background:#f8f3ee;border-radius:6px;overflow:hidden}
.wkb i{display:block;height:100%;border-radius:6px}
.wk small{display:block;margin-top:6px;color:#99806b;font-size:.8em}
.wk.hi .wkh span{background:#fde5e5;color:#d32f2f}.wk.hi i{background:#e6636a}
.wk.mid .wkh span{background:#fff1d6;color:#c77700}.wk.mid i{background:#ffb74d}
.wk.low .wkh span{background:#e0f5e6;color:#2e7d32}.wk.low i{background:#66bb6a}
.wk.few{opacity:.65}.wk.few .wkh span{background:#f8f3ee;color:#99806b}.wk.few i{background:#d6c6b8}

/* ===== 하단 노트 버튼: 같은 크기의 타일로 통일 (핑크·하늘 교차), 초기화는 작은 글씨로 ===== */
.bb{display:block;padding:0 4px 30px}
.bb .bg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bb .bg button{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 8px;font-size:.84em;font-weight:800;color:#5f3d1f;background:#ffffff;border:1.5px solid #f1dbe3;border-radius:18px;box-shadow:0 4px 12px rgba(227,88,120,.08);transform:none}
.bb .bg button i{font-style:normal;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#feeaef;font-size:1.25em;color:#f0a21b}
.bb .bg button:nth-child(even) i{background:#fcefe4}
.bb .bg button:hover{background:#fffafb;border-color:var(--pink2);color:#5f3d1f;transform:translateY(-2px)}
.bb .rs0{all:unset;display:block;width:max-content;margin:14px auto 0;padding:6px 14px;cursor:pointer;color:#b29d8b;font-size:.78em;font-weight:700;text-decoration:underline;-webkit-tap-highlight-color:transparent}
.bb .rs0:focus-visible{outline:2px solid var(--pink2);outline-offset:2px;border-radius:6px}
.bb .rs0:hover{background:transparent;border:0;color:#e53935;transform:none}
/* 다짐 줄바꿈: 단어째로 넘기지 않고 글자 단위로 채워서 오른쪽 빈 공간을 줄임 */
.vowline{word-break:normal;overflow-wrap:anywhere}

/* ===== 가을 분위기: 단풍잎 (구성은 그대로, 장식·색만 변경) ===== */
body{background:#fff6ec;background-image:none}
.dash{padding-top:34px}
.dash::before{opacity:.36;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='160'%20height='140'%20viewBox='0%200%20160%20140'%3E%3Cg%20transform='translate%2834%2040%29%20rotate%2830%29%20scale%280.3%29%20translate%28-50%20-50%29'%20opacity='0.8'%3E%3Cpath%20d='M50%204L58%2022L72%2014L68%2038L90%2031L80%2050L96%2058L68%2068L72%2082L54%2077L54%2098L46%2098L46%2077L28%2082L32%2068L4%2058L20%2050L10%2031L32%2038L28%2014L42%2022Z'%20fill='%23f0a95a'%20stroke='%23c27a2a'%20stroke-width='2'%20stroke-linejoin='round'/%3E%3Cpath%20d='M50%2097V30M50%2074L30%2062M50%2074L70%2062M50%2056L32%2042M50%2056L68%2042'%20fill='none'%20stroke='%23c27a2a'%20stroke-width='2.4'%20stroke-linecap='round'%20opacity='.75'/%3E%3C/g%3E%3Cg%20transform='translate%28118%2096%29%20rotate%28-35%29%20scale%280.26%29%20translate%28-50%20-50%29'%20opacity='0.75'%3E%3Cpath%20d='M50%204L58%2022L72%2014L68%2038L90%2031L80%2050L96%2058L68%2068L72%2082L54%2077L54%2098L46%2098L46%2077L28%2082L32%2068L4%2058L20%2050L10%2031L32%2038L28%2014L42%2022Z'%20fill='%23d9654a'%20stroke='%23a24632'%20stroke-width='2'%20stroke-linejoin='round'/%3E%3Cpath%20d='M50%2097V30M50%2074L30%2062M50%2074L70%2062M50%2056L32%2042M50%2056L68%2042'%20fill='none'%20stroke='%23a24632'%20stroke-width='2.4'%20stroke-linecap='round'%20opacity='.75'/%3E%3C/g%3E%3C/svg%3E");background-size:160px 140px;background-position:6px 24px}
.dash::after{height:30px;background:none;background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='124'%20height='30'%20viewBox='0%200%20124%2030'%3E%3Cg%20transform='translate%2818%208%29%20rotate%28-25%29%20scale%280.22%29%20translate%28-50%20-50%29'%20opacity='1'%3E%3Cpath%20d='M50%204L58%2022L72%2014L68%2038L90%2031L80%2050L96%2058L68%2068L72%2082L54%2077L54%2098L46%2098L46%2077L28%2082L32%2068L4%2058L20%2050L10%2031L32%2038L28%2014L42%2022Z'%20fill='%23e8923b'%20stroke='%23b5611c'%20stroke-width='2'%20stroke-linejoin='round'/%3E%3Cpath%20d='M50%2097V30M50%2074L30%2062M50%2074L70%2062M50%2056L32%2042M50%2056L68%2042'%20fill='none'%20stroke='%23b5611c'%20stroke-width='2.4'%20stroke-linecap='round'%20opacity='.75'/%3E%3C/g%3E%3Cg%20transform='translate%2862%2014%29%20rotate%2820%29%20scale%280.28%29%20translate%28-50%20-50%29'%20opacity='1'%3E%3Cpath%20d='M50%204L58%2022L72%2014L68%2038L90%2031L80%2050L96%2058L68%2068L72%2082L54%2077L54%2098L46%2098L46%2077L28%2082L32%2068L4%2058L20%2050L10%2031L32%2038L28%2014L42%2022Z'%20fill='%23c8553d'%20stroke='%238f3224'%20stroke-width='2'%20stroke-linejoin='round'/%3E%3Cpath%20d='M50%2097V30M50%2074L30%2062M50%2074L70%2062M50%2056L32%2042M50%2056L68%2042'%20fill='none'%20stroke='%238f3224'%20stroke-width='2.4'%20stroke-linecap='round'%20opacity='.75'/%3E%3C/g%3E%3Cg%20transform='translate%28104%206%29%20rotate%28-10%29%20scale%280.2%29%20translate%28-50%20-50%29'%20opacity='1'%3E%3Cpath%20d='M50%204L58%2022L72%2014L68%2038L90%2031L80%2050L96%2058L68%2068L72%2082L54%2077L54%2098L46%2098L46%2077L28%2082L32%2068L4%2058L20%2050L10%2031L32%2038L28%2014L42%2022Z'%20fill='%23f2b84b'%20stroke='%23c4861c'%20stroke-width='2'%20stroke-linejoin='round'/%3E%3Cpath%20d='M50%2097V30M50%2074L30%2062M50%2074L70%2062M50%2056L32%2042M50%2056L68%2042'%20fill='none'%20stroke='%23c4861c'%20stroke-width='2.4'%20stroke-linecap='round'%20opacity='.75'/%3E%3C/g%3E%3C/svg%3E");background-repeat:repeat-x;background-size:124px 30px;background-position:0 0}

/* ===== 하단 노트 버튼: 작고 납작하게 (아이콘 옆에 글자) ===== */
.bb{padding:0 4px 24px}
.bb .bg{gap:8px}
.bb .bg button{flex-direction:row;justify-content:center;gap:6px;padding:8px 10px;font-size:.76em;line-height:1.25;border-radius:12px;box-shadow:0 2px 6px rgba(227,88,120,.07)}
.bb .bg button i{width:22px;height:22px;font-size:.95em;flex:none}
.bb .bg button:hover{transform:none}
.bb .rs0{margin-top:10px;padding:4px 12px;font-size:.72em}

/* ===== 수강생 승인 화면 ===== */
html.gl .wrap,html.gl .ov{display:none!important}
html.gl body{background:#fff6ec}
#gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;background:#fff6ec}
#gate .gc{width:100%;max-width:340px;background:#fff;border:1px solid #f4ebe3;border-radius:20px;padding:26px 20px;box-shadow:0 4px 15px rgba(95,61,31,.08);text-align:center;color:#5f3d1f}
#gate h1{font:1.3em 'Jua',sans-serif;margin:0 0 10px}
#gate p{font-size:.9em;line-height:1.55;color:#6b5848;margin:0 0 14px;word-break:keep-all}
#gate p.ge{color:#e53935;font-size:.82em;margin:-4px 0 10px;min-height:0}
#gate p.ge:empty{display:none}
#gate input{width:100%;box-sizing:border-box;padding:11px 12px;border:1.5px solid #f1dbe3;border-radius:12px;font:inherit;font-size:1em;margin-bottom:10px;text-align:center;color:#5f3d1f;background:#fffafb}
#gate input:focus{outline:2px solid var(--pink2);outline-offset:1px}
#gate .pill{display:block;width:100%;padding:11px 18px;font-size:.9em}
#gate .pill:disabled{opacity:.6}
