@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{font-family:'Noto Sans KR',sans-serif;color:#25372d;background:#f6f7f2;font-synthesis:none;--green:#245b43;--line:#e0e5dc}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}a{color:inherit;text-decoration:none}button{transition:background .16s,transform .16s}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b8d773;outline-offset:3px}[hidden]{display:none!important}header{height:88px;border-bottom:1px solid var(--line);padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-size:25px;font-weight:900;letter-spacing:-1px}.logo{background:var(--green);color:white;width:34px;height:37px;border-radius:10px;text-align:center;font-size:26px}.brand-note{font-size:12px;font-weight:400;margin-left:10px;letter-spacing:0;color:#778276}.header-note{font-size:12px;color:#778276}main{max-width:1220px;margin:auto;padding:48px 32px 60px}.intro{margin-bottom:38px}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:700;color:#688370}.intro h1{font-size:49px;letter-spacing:-2.8px;margin:10px 0 12px;font-weight:800;line-height:1.3}.intro h1 span{color:var(--green)}.intro p{font-size:14px;color:#778276;margin:0}.mobile{display:none}.layout{display:grid;grid-template-columns:324px minmax(0,1fr);gap:26px;align-items:start}.panel{border:1px solid var(--line);border-radius:19px;background:white}.filters{padding:25px}.section-title{display:flex;justify-content:space-between;align-items:center}h2{font-size:17px;margin:0;letter-spacing:-.5px}h3{font-size:13px;margin:0 0 12px}.text-btn{background:none;border:0;padding:0;color:#7c867a;font-size:11px;text-decoration:underline;text-underline-offset:3px}.hint{font-size:12px;color:#929b8e;margin:8px 0 19px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{border:1px solid #e2e6dd;border-radius:8px;background:#fff;color:#75816f;font-size:12px;padding:9px 12px}.chip.active{background:#eaf1e6;border-color:#9db591;color:#28563b;font-weight:700}.chip:hover{background:#f1f5ec}details{margin-top:18px}summary{font-size:12px;color:#626f60;list-style:none;display:flex;gap:6px;align-items:center}summary:before{content:'+';font-size:16px}details[open]>summary:before{content:'−'}summary span{margin-left:auto;color:var(--green);font-size:11px}#subjects{max-height:290px;overflow:auto;padding-top:10px}.subject-group{margin-bottom:12px}.subject-group strong{display:block;font-size:11px;margin:9px 0}.subject-group label,#exams label{display:flex;gap:7px;font-size:11px;align-items:start;padding:6px 0;color:#5c6959}input[type=checkbox]{accent-color:var(--green);margin:2px 0;width:14px;height:14px;flex-shrink:0}.divider{height:1px;background:#edf0e9;margin:24px 0}.years{display:flex;align-items:center;gap:12px;margin-top:18px}.years label{font-size:10px;color:#7e8878;flex:1}.years span{margin-top:15px;color:#afb7aa}select{width:100%;margin-top:5px;background:#f9faf6;border:1px solid var(--line);border-radius:7px;padding:8px;color:#46553e;font-size:12px}#exam-search{width:100%;border:1px solid var(--line);border-radius:7px;padding:8px;font-size:11px;margin:12px 0}.exam-actions{display:flex;justify-content:space-between;margin-bottom:10px}#exams{max-height:200px;overflow:auto}.check-option{display:flex;gap:8px;font-size:11px;margin-top:22px;color:#6e7b66}.pool-info{background:#f7f9f3;border-radius:9px;padding:13px 11px;margin:22px 0 12px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#7a8573}.pool-info strong{font-size:16px;color:#35562e}.primary{border:0;background:var(--green);color:white;border-radius:9px;padding:13px 19px;font-size:13px;font-weight:600}.primary:hover{background:#194a34}#draw{width:100%;font-size:15px;padding:15px}#draw span{font-size:21px;margin-right:7px}.fine{text-align:center;font-size:10px;color:#9aa18f;line-height:1.8;margin:12px 0 0}.empty{min-height:550px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:radial-gradient(ellipse at 50% 35%,#f7faef 0,white 65%);position:relative}.dice{width:86px;height:86px;border:1px solid #d7e3cc;border-radius:23px;transform:rotate(-10deg);background:#f0f5e6;color:#6c8b4a;font-size:58px;line-height:78px;box-shadow:7px 9px 0 #f4f6ee;margin:0 0 32px}.empty h2{font-size:24px;margin:14px 0}.empty p{font-size:13px;line-height:1.9;color:#8e9685;margin:0}.empty-bottom{display:flex;gap:16px;margin-top:55px;font-size:10px;color:#95a08e}.empty-bottom span:before{content:'·';margin-right:8px}.source-note{display:flex;gap:9px;padding:22px 6px;color:#8f9887;font-size:10px;line-height:1.8}.source-note strong{font-weight:500;color:#748169}.source-note p{margin:5px 0}.source-note a{text-decoration:underline}.source-dot{width:6px;height:6px;border-radius:50%;background:#94b07c;flex-shrink:0;margin-top:6px}footer{max-width:1156px;margin:auto;padding:24px 0 34px;border-top:1px solid var(--line);color:#a0a791;font-size:11px;display:flex;justify-content:space-between}footer span{font-weight:700;color:#6f7d62}.question-head{padding:25px;display:flex;justify-content:space-between;gap:10px}.tags{font-size:10px;color:#5b7b49;margin-bottom:9px}.question-head h2{font-size:27px}.question-head p{font-size:11px;color:#86907e;line-height:1.7;margin:8px 0 0}.session-count{font-size:10px;color:#879478;white-space:nowrap}.paper-toolbar{display:flex;justify-content:space-between;align-items:center;background:#f8faf5;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 18px;font-size:11px;color:#68785d}.paper-toolbar button{background:white;border:1px solid var(--line);border-radius:5px;padding:4px 9px;color:#54684b}.paper-toolbar span{margin:0 12px}.viewer-status{font-size:11px;color:#859177;margin:12px 18px;line-height:1.7}.answer-area{padding:23px;border-top:1px solid var(--line)}.choices{display:flex;gap:9px}.choice{width:45px;height:43px;border-radius:9px;border:1px solid var(--line);background:white;color:#6a795f;font-size:17px}.choice.selected{background:#e7f0df;border-color:#70945c;color:#295635}.short-answer{border:1px solid var(--line);border-radius:7px;padding:10px;width:170px}.answer-actions{display:flex;align-items:center;gap:16px;margin-top:19px;flex-wrap:wrap}.answer-actions a{font-size:11px;color:#738167}.answer-actions .primary{margin-left:auto}.secondary{background:#edf3e8;border:1px solid #d2dfc8;border-radius:8px;padding:11px 15px;color:#3d6130;font-size:12px}#answer-result{font-size:13px;line-height:1.8;margin-top:13px;color:#3f6632}#audio-wrap{padding:10px 22px;font-size:11px;color:#839074}audio{width:100%;height:36px}@media(min-width:950px){.filters{position:sticky;top:20px}}@media(max-width:900px){header{height:70px;padding:0 20px}.brand{font-size:22px}.brand-note{font-size:10px}.header-note{display:none}main{padding:30px 17px}.intro{margin-bottom:25px}.intro h1{font-size:37px}.intro p{font-size:12px}.layout{grid-template-columns:1fr;gap:18px}.filters{padding:21px}.empty{min-height:370px}.empty h2{font-size:21px}.empty-bottom{margin-top:35px}.dice{width:68px;height:68px;font-size:46px;line-height:64px;margin-bottom:24px}footer{margin:0 20px}.question-head{padding:20px}.answer-actions{gap:10px}.answer-actions .primary{font-size:12px}.source-note{padding-top:15px}}

#question-images{padding:18px 22px 25px;overflow-x:auto}.crop-group{margin:0 0 24px}.crop-group:last-child{margin-bottom:0}.crop-group h3{color:#6b805c;font-size:11px;margin:0 0 16px}.crop-group img{display:block;max-width:100%;height:auto;margin:0 auto 12px}.crop-group img:last-child{margin-bottom:0}.zoomed{overflow:auto}#solution-images{border-top:1px solid var(--line);margin-top:22px;padding-top:22px;font-size:12px;color:#76856c}@media(max-width:900px){#question-images{padding:15px 12px}.answer-area{padding:18px 12px}}

/* Keep oversized crop images inside their own scroller, not the page. */
.layout>*{min-width:0}.question-head>div{min-width:0}.question-head h2,.question-head p{overflow-wrap:anywhere}#solution-images{max-width:100%;overflow-x:auto}#filter-toggle{display:none}
@media(max-width:900px){
 html{-webkit-text-size-adjust:100%;scroll-padding-top:64px}
 main{padding:24px 12px 36px}.intro{margin-bottom:20px}.intro h1{font-size:34px}.intro p{line-height:1.6}
 .filters{padding:0;overflow:hidden}#filter-options{padding:0 18px 20px}.filters.collapsed #filter-options{display:none}
 #filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:12px 18px;border:0;background:#edf3e8;color:#31583f;text-align:left;font-size:14px;font-weight:600}
 .section-title{padding-top:18px}.text-btn{min-height:44px;padding:8px 3px;font-size:12px}.chip{min-height:44px;font-size:13px;padding:10px 13px}summary{min-height:44px;font-size:14px}
 .subject-group label,#exams label{min-height:44px;padding:10px 0;font-size:13px;align-items:center;gap:10px}.subject-group strong{font-size:13px}input[type=checkbox]{width:18px;height:18px}
 .check-option{align-items:center;min-height:44px;font-size:13px}.years label{font-size:12px;min-width:0}select,#exam-search,.short-answer{font-size:16px;min-height:46px}.short-answer{width:min(100%,220px)}
 .fine{font-size:11px}.pool-info{font-size:12px}.question-head{padding:18px 14px;gap:8px}.question-head h2{font-size:23px}.question-head p{font-size:12px}.session-count{font-size:11px}
 .paper-toolbar{position:sticky;top:0;z-index:2;padding:6px 12px;gap:8px}.paper-toolbar span{margin:0;font-size:12px}.paper-toolbar button,.paper-toolbar a{min-height:44px;display:flex;align-items:center;justify-content:center;padding:8px 13px;font-size:13px}
 #question-images{padding:16px 8px;overscroll-behavior-x:contain}.crop-group h3{font-size:12px}.answer-area{padding:18px 12px}.choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.choices:has(.short-answer){display:block}.choice{width:100%;min-height:48px;height:48px}
 .answer-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answer-actions .secondary,.answer-actions .primary{min-height:48px;margin:0;font-size:14px;padding:12px 8px}.answer-actions #solution{grid-column:1/-1;grid-row:2;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:12px}
 #solution-images{overscroll-behavior-x:contain}.viewer-status{font-size:13px}.source-note{font-size:11px}.empty{min-height:300px;padding:24px 12px}.empty h2{font-size:20px}.empty-bottom{flex-wrap:wrap;justify-content:center;gap:10px}
 footer{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.zoomed .crop-group img{margin-left:0;margin-right:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}button{transition:none}}

.years{display:grid;grid-template-columns:1fr;gap:0}.year-summary{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:16px;color:#626f60}.year-summary strong{color:var(--green)}.years label{display:flex;justify-content:space-between;align-items:center;font-size:12px}.years output{color:var(--green);font-weight:600}.years input[type=range]{width:100%;height:44px;margin:0;accent-color:var(--green);cursor:pointer}

.paper-toolbar{flex-wrap:wrap}.ink-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-basis:100%;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.ink-tools button{min-height:44px;padding:8px 14px}.ink-tools button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}#ink-hint{flex-basis:100%;font-size:11px;line-height:1.5}.ink-sheet{position:relative;width:min(var(--crop-width),100%);margin:0 auto 12px}.ink-sheet:last-child{margin-bottom:0}.crop-group .ink-sheet img{width:100%;max-width:100%;height:auto;margin:0;user-select:none;-webkit-user-drag:none}.zoomed .ink-sheet{width:min(calc(var(--crop-width) * 1.5),150%);margin-left:0;margin-right:0}



#page-ink{position:fixed;inset:0;width:100%;height:100%;z-index:50;pointer-events:none}body[data-ink-mode=pen] #page-ink,body[data-ink-mode=eraser] #page-ink{pointer-events:auto;touch-action:none}.ink-tools button{background:#f8faf5;border:1px solid var(--line);border-radius:7px;color:#31583f;font-size:13px}

.intro{margin-bottom:20px}.draw-tools{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#f6f7f2;padding:10px 0;margin-bottom:24px}.draw-tools #draw{width:324px;max-width:100%;flex-shrink:0}.draw-tools .ink-tools{flex:1;min-width:300px;border:0;margin:0;padding:0}.ink-color{display:flex;align-items:center;gap:6px;font-size:12px;color:#54684b}.ink-color select{margin:0;width:auto;min-height:44px;font-size:13px}.draw-tools #ink-hint{color:#778276}@media(max-width:700px){.draw-tools{gap:10px;padding:8px 0;margin-bottom:18px}.draw-tools #draw{width:100%;max-width:none}.draw-tools .ink-tools{min-width:0;gap:6px}.ink-tools button{padding:8px 10px}.ink-color{gap:4px}.ink-color select{padding:6px}#ink-hint{font-size:10px}}
/* Refined workspace and aligned drawing toolbar. */
:root{font-family:Inter,'Noto Sans KR',system-ui,sans-serif;background:#f5f6f8;color:#202c29;--green:#22624d;--line:#e5e9e7}
header{height:72px;background:#fff;border-bottom:1px solid #e9edeb}.brand{font-size:23px}.logo{border-radius:11px;background:#22624d}.brand-note{color:#87928c}.header-note{color:#87928c}
main{max-width:1240px;padding-top:38px}.intro{margin-bottom:24px}.eyebrow{font-size:10px;color:#88948e;letter-spacing:2px}.intro h1{font-size:46px;letter-spacing:-2px;font-weight:750;margin:12px 0}.intro p{color:#7c8982}.panel{border-radius:16px;border-color:#e3e8e5;box-shadow:0 2px 6px #172c2003}.layout{gap:24px}.filters{padding:24px}.section-title h2{font-size:16px}.hint{line-height:1.6}.chip{border-radius:8px;border-color:#e3e8e5;background:#fff;color:#65736a}.chip.active{background:#eaf4ee;border-color:#a7c8b4;color:#22624d}.divider{margin:22px 0}.pool-info{background:#f3f7f4}.empty{background:#fff;min-height:540px}.empty h2{font-size:23px;font-weight:650}.dice{background:#eef6f0;border:1px solid #d9e9df;box-shadow:none;transform:rotate(-7deg);color:#63967a}.question-head h2{font-weight:700}.paper-toolbar{background:#fafcfb}.source-note{color:#929d96}.primary{background:#22624d;box-shadow:0 3px 8px #1e614d12}.primary:hover{background:#194d3c}.secondary{background:#edf5f0;border-color:#dce9e0}
.draw-tools{align-items:center;flex-wrap:nowrap;gap:24px;background:#f5f6f8;padding:12px 0;margin-bottom:24px}.draw-tools #draw{width:324px;height:56px;min-height:56px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:12px;font-size:15px}.draw-tools #draw span{margin:0;font-size:21px}
.draw-tools .ink-tools{height:56px;min-width:0;flex:0 1 auto;display:flex;flex-wrap:nowrap;align-items:center;gap:4px;padding:7px;background:#fff;border:1px solid #e1e7e3;border-radius:12px;box-shadow:0 2px 5px #172c2004}.ink-tools button{height:40px;min-height:40px;border:0;border-radius:7px;background:transparent;color:#738078;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;font-size:12px;white-space:nowrap}.ink-tools button:hover{background:#f1f5f2}.ink-tools button[aria-pressed=true]{background:#e9f3ed;color:#22624d}.ink-tools svg{flex-shrink:0}.ink-colors{display:flex;align-items:center;gap:2px;border-left:1px solid #e6ebe7;margin-left:6px;padding-left:10px}.ink-tools .color-swatch{width:32px;height:36px;min-height:36px;padding:4px;border:0;background:transparent}.color-swatch span{display:block;width:18px;height:18px;border-radius:50%;background:var(--swatch);border:1px solid #0000000a}.ink-tools .color-swatch[aria-pressed=true]{background:transparent}.color-swatch[aria-pressed=true] span{outline:2px solid var(--swatch);outline-offset:3px}.color-swatch:hover span{transform:scale(1.08)}
#ink-hint{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:901px){.filters{top:92px}}
@media(max-width:1050px) and (min-width:701px){.tool-label{display:none}.ink-tools button{width:36px;padding:0}.ink-colors{padding-left:7px;margin-left:3px}}
@media(max-width:700px){header{height:64px}main{padding:24px 12px 36px}.intro{margin-bottom:16px}.intro h1{font-size:34px;letter-spacing:-1.5px}.intro p{font-size:12px}.draw-tools{flex-wrap:wrap;gap:8px;padding:8px 0;margin-bottom:16px}.draw-tools #draw{width:100%;height:50px;min-height:50px}.draw-tools .ink-tools{height:52px;flex:1 1 100%;justify-content:center;padding:5px}.tool-label{display:none}.ink-tools button{width:40px;padding:0}.ink-colors{margin-left:6px;padding-left:10px;gap:3px}.ink-tools .color-swatch{width:30px}.filters{padding:0}#filter-toggle{background:#fff;border-bottom:1px solid #edf1ee;font-weight:600}.empty{min-height:320px}.empty h2{font-size:21px}.question-head h2{font-size:24px}}
@media(max-width:360px){.ink-tools button{width:34px}.ink-tools .color-swatch{width:26px}.ink-colors{gap:1px;padding-left:7px;margin-left:3px}}

.ink-history{display:flex;gap:2px;border-right:1px solid #e6ebe7;margin-right:4px;padding-right:6px}.ink-history button{width:34px;padding:0}.ink-history button:disabled{opacity:.28;background:transparent;transform:none}@media(max-width:700px){.draw-tools .ink-tools{height:auto;min-height:52px;flex-wrap:wrap;gap:2px}.ink-history{padding-right:5px;margin-right:3px}.ink-history button{width:32px}.ink-tools button{width:34px}.ink-colors{margin-left:4px;padding-left:6px;gap:1px}.ink-tools .color-swatch{width:27px}}@media(max-width:380px){.ink-colors{flex-basis:100%;justify-content:center;border-left:0;border-top:1px solid #edf1ee;padding:4px 0 0;margin:2px 0 0}.ink-tools .color-swatch{width:34px}}

body[data-ink-mode=pen] #page-ink{cursor:url("/pen-cursor.svg") 4 28, crosshair}body[data-ink-mode=eraser] #page-ink{cursor:url("/eraser-cursor.svg") 10 22, crosshair}
/* Only visible controls intercept ink; toolbar spacing stays drawable. */
.draw-tools{background:transparent;pointer-events:none}.draw-tools>#draw,.draw-tools>.ink-tools{pointer-events:auto}
