:root{--concrete:#e8ebed;--blue:#1463ff;--orange:#ff6b18;--white:#f8faf9;--charcoal:#24292d;--muted:#697177;--line:#cbd1d5;--danger:#cf3d2e;--ok:#177752;color:var(--charcoal);background:var(--concrete);font-synthesis:none;font-family:Arial,Apple SD Gothic Neo,Noto Sans KR,sans-serif}*{box-sizing:border-box}html{background:var(--concrete)}body{min-width:320px;margin:0}button{font:inherit;color:inherit}.app-shell{min-height:100dvh;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.topbar{height:64px;padding:env(safe-area-inset-top) 20px 0;z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#e8ebedeb;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{background:0 0;border:0;align-items:center;gap:9px;padding:8px 0;font-size:18px;font-weight:900;display:flex}.brand-mark{color:#fff;background:var(--orange);clip-path:polygon(50% 0,100% 100%,0 100%);place-items:center;width:28px;height:28px;padding-top:8px;font-size:13px;display:grid}.day-badge{border:1px solid var(--charcoal);padding:6px 9px;font-size:12px;font-weight:800}.page{max-width:680px;margin:auto;padding:20px 18px 40px}.hero{padding:28px 2px 22px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin:0 0 12px;font-size:12px;font-weight:900}.hero h1,.page-title h1{letter-spacing:-.055em;margin:0;font-family:Arial Narrow,Arial,sans-serif;font-size:clamp(36px,10vw,58px);font-stretch:75%;line-height:1.04}.hero h1 em{color:var(--blue);font-style:normal}.hero>p:last-child,.page-title>p:last-child{color:var(--muted);margin:16px 0 0;line-height:1.6}.today-panel{background:var(--charcoal);color:var(--white);box-shadow:7px 7px 0 var(--orange);padding:22px 18px 18px}.panel-heading{justify-content:space-between;align-items:end;display:flex}.panel-heading small{letter-spacing:.16em;color:#aeb6bb;font-size:11px}.panel-heading h2{margin:3px 0 0;font-size:25px}.panel-heading>span{color:#d9dee0;font-size:12px}.mini-route{color:#c8ced1;align-items:center;margin:22px 0 15px;font-size:11px;font-weight:800;display:flex}.mini-route i{background:var(--blue);flex:1;height:2px;margin:0 5px}.today-list{border-top:1px solid #485057}.today-list button{width:100%;min-height:54px;color:inherit;text-align:left;background:0 0;border:0;border-bottom:1px solid #485057;grid-template-columns:32px 1fr 24px;align-items:center;padding:5px 0;display:grid}.today-list b{color:var(--orange);font-size:12px}.today-list span:nth-child(2){font-weight:700}.primary{background:var(--blue);color:#fff;border:0;justify-content:space-between;align-items:center;width:100%;min-height:52px;margin-top:18px;padding:0 16px;font-weight:900;display:flex}.primary span{font-size:22px}.quick-grid{grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;display:grid}.quick-grid button{border:1px solid var(--line);background:var(--white);text-align:left;flex-direction:column;align-items:flex-start;min-height:128px;padding:16px;display:flex}.quick-grid button:disabled{opacity:.55}.quick-grid button>span{color:var(--blue);height:39px;font-size:28px;font-weight:900}.quick-grid .orange-icon{color:var(--orange)}.quick-grid b{margin-top:auto;font-size:15px}.quick-grid small{color:var(--muted);margin-top:5px}.tip{border-left:5px solid var(--orange);padding:4px 14px}.tip p{color:var(--muted);margin:6px 0;line-height:1.55}.bottom-nav{height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--white);border-top:1px solid var(--line);z-index:20;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:60px;color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:800;display:flex}.bottom-nav button span{font-size:20px}.bottom-nav button.active{color:var(--blue)}.page-title{padding:24px 2px}.page-title h1{font-size:43px}.filters{scrollbar-width:none;gap:8px;margin:0 -18px 18px;padding:0 18px 8px;display:flex;overflow-x:auto}.filters button{white-space:nowrap;border:1px solid var(--line);background:var(--white);min-height:44px;padding:0 14px;font-size:13px;font-weight:800}.filters button.active{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.flow-list,.plan-list{border-top:2px solid var(--charcoal)}.flow-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:38px 1fr 24px 16px;align-items:center;gap:8px;width:100%;min-height:72px;padding:8px 2px;display:grid}.flow-number{color:var(--orange);font-size:12px;font-weight:900}.flow-list small,.plan-list small{color:var(--muted);letter-spacing:.08em;margin-bottom:4px;font-size:10px;font-weight:800;display:block}.flow-list b{font-size:16px}.status-dot{border:1px solid var(--line);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:900;display:grid}.status-dot.known{background:var(--ok);color:#fff;border-color:var(--ok)}.status-dot.unsure{background:var(--orange);color:#fff;border-color:var(--orange)}.status-dot.unknown{background:var(--danger);color:#fff;border-color:var(--danger)}.study-page{max-width:680px;min-height:100dvh;padding:calc(12px + env(safe-area-inset-top)) 18px calc(160px + env(safe-area-inset-bottom));margin:auto}.study-head{grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;display:grid}.study-head button{background:0 0;border:0;width:44px;height:44px;font-size:28px}.study-head>div{background:#ccd2d5;height:5px}.study-head>div span{background:var(--blue);height:100%;transition:width .25s;display:block}.study-head>b{text-align:right;font-size:12px}.study-meta{color:var(--blue);letter-spacing:.12em;justify-content:space-between;margin-top:25px;font-size:11px;font-weight:900;display:flex}.study-page>h1{letter-spacing:-.05em;margin:10px 0 22px;font-family:Arial Narrow,Arial,sans-serif;font-size:clamp(31px,9vw,47px);line-height:1.08}.route-card{background:var(--white);border:1px solid var(--line);padding:20px 17px 14px;box-shadow:5px 5px #cbd0d3}.route-step{grid-template-columns:36px 1fr;min-height:78px;display:grid}.route-rail{flex-direction:column;align-items:center;display:flex}.route-rail span{background:var(--charcoal);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:11px;font-weight:900;display:grid}.route-rail i{background:var(--line);flex:1;width:3px}.step-3 .route-rail span{background:var(--blue)}.route-step>div:last-child{padding:2px 0 15px 7px}.route-step small{letter-spacing:.12em;color:var(--muted);font-size:10px;font-weight:900}.step-1 small,.step-2 small{color:var(--orange)}.step-3 small{color:var(--blue)}.route-step p{margin:5px 0;font-size:16px;font-weight:750;line-height:1.5}.route-step.hidden button{width:100%;min-height:46px;color:var(--muted);text-align:left;background:#edf0f1;border:1px dashed #9aa2a7;padding:0 12px;font-size:13px;font-weight:800}.reveal{border:1px solid var(--blue);width:100%;min-height:48px;color:var(--blue);background:0 0;font-weight:900}.review-sentence{border-left:5px solid var(--orange);margin:19px 0 5px;padding:2px 13px}.review-sentence small{color:var(--muted);font-weight:800}.review-sentence p{margin:7px 0;font-size:16px;font-weight:800;line-height:1.55}.study-actions{border-top:1px solid var(--line);padding:8px max(14px,calc((100vw - 680px)/2 + 18px)) calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#f8faf9f5;position:fixed;bottom:0;left:0;right:0}.pager{justify-content:space-between;display:flex}.pager button{min-height:44px;color:var(--muted);background:0 0;border:0;font-size:12px;font-weight:800}.grade{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.grade button{border:1px solid var(--line);background:#fff;justify-content:center;align-items:center;gap:5px;min-height:54px;font-size:12px;font-weight:900;display:flex}.grade button span{font-size:18px}.grade .unknown span{color:var(--danger)}.grade .unsure span{color:var(--orange)}.grade .known span{color:var(--ok)}.grade button[aria-pressed=true]{border:2px solid var(--charcoal)}.plan-list button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:44px 1fr 18px;align-items:center;gap:12px;width:100%;min-height:80px;padding:8px 0;display:grid}.day{background:var(--charcoal);color:#fff;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.day.done{background:var(--ok)}.plan-list b{font-size:14px;line-height:1.35;display:block}.empty{text-align:center;color:var(--muted);margin:60px auto}.empty b{color:var(--charcoal);font-size:20px;display:block}.empty .primary{max-width:240px;margin:20px auto}button:focus-visible{outline:3px solid var(--orange);outline-offset:3px}button:not(:disabled){cursor:pointer}@media (width>=800px){.app-shell{padding-bottom:0}.bottom-nav{border:1px solid var(--line);width:520px;bottom:18px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 8px 30px #60686e30}.page{padding-bottom:110px}.today-panel{padding:28px}.study-page{padding-left:40px;padding-right:40px}.route-card{padding:28px}.topbar{max-width:760px;margin:auto}.quick-grid button:hover,.flow-list button:hover,.plan-list button:hover{background:#fff}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--blue:#0b4fd6;--orange:#b84300;--muted:#566066}.route-step.hidden button{color:#566066}.grade button:disabled{cursor:not-allowed;opacity:.42;background:#eef0f1}.search-box{background:var(--white);border:2px solid var(--charcoal);grid-template-columns:26px 1fr 44px;align-items:center;gap:8px;min-height:52px;margin-bottom:16px;padding-left:12px;display:grid}.search-box>span{color:var(--blue);font-size:24px;font-weight:900}.search-box input{font:inherit;background:0 0;border:0;outline:0;min-width:0;font-size:16px}.search-box button{background:0 0;border:0;align-self:stretch;font-size:22px}.detail-toggle{background:var(--charcoal);color:#fff;border:0;justify-content:space-between;align-items:center;width:100%;min-height:54px;margin:20px 0;padding:0 16px;font-weight:900;display:flex}.flow-detail{border-top:8px solid var(--blue);margin:8px -2px 12px}.flow-detail h2{letter-spacing:-.035em;margin:4px 0 12px;font-family:Arial Narrow,Arial,sans-serif;font-size:22px}.detail-lead{background:var(--charcoal);color:#fff;padding:22px 18px}.detail-lead small,.self-check small{color:var(--orange);letter-spacing:.16em;font-size:10px;font-weight:900}.detail-lead p{color:#e6eaec;margin:0;line-height:1.7}.detail-block,.self-check{background:var(--white);border-bottom:1px solid var(--line);padding:20px 18px}.detail-block ol,.detail-block ul{gap:11px;margin:0;padding-left:21px;line-height:1.55;display:grid}.detail-block li span{color:var(--blue);margin-right:8px;font-weight:900}.self-check details{border-top:1px solid var(--line);padding:13px 0}.self-check summary{cursor:pointer;font-weight:800;line-height:1.45}.self-check p{color:var(--muted);padding-left:18px;line-height:1.55}.source-link{background:var(--blue);color:#fff;min-height:52px;padding:17px;font-weight:900;text-decoration:none;display:block}.exam-page section{background:var(--white);border-bottom:1px solid var(--line);margin-bottom:14px;padding:20px 18px}.exam-page section h2{letter-spacing:-.03em;margin:0 0 10px;font-size:20px}.exam-page section>p{color:var(--muted);margin:0 0 14px;line-height:1.6}.exam-guide ul{gap:10px;margin:0 0 14px;padding-left:18px;line-height:1.55;display:grid}.exam-guide .exam-coverage{border-left:4px solid var(--orange);color:var(--muted);margin:0;padding-left:12px;line-height:1.6}.essay-list details{border-top:1px solid var(--line);padding:13px 0}.essay-list summary{cursor:pointer;min-height:30px;font-weight:800;line-height:1.45}.essay-question{margin:12px 0 4px;font-weight:700;line-height:1.6}.essay-note{color:var(--orange);margin:0 0 8px;font-size:13px}.essay-outline{border-left:4px solid var(--blue);gap:7px;margin:10px 0;padding:4px 0 4px 12px;display:grid}.essay-outline p{margin:0;line-height:1.55}.essay-outline p.sub{color:var(--muted);padding-left:16px}.essay-past{color:var(--muted);font-size:13px;line-height:1.55}.essay-past b{color:var(--charcoal);margin-bottom:4px;display:block}.essay-past p{margin:0 0 4px}.quiz-page .quiz-card{background:var(--white);border:2px solid var(--charcoal);gap:8px;margin-bottom:16px;padding:18px;display:grid}.quiz-card small{color:var(--blue);font-weight:900}.quiz-card p{margin:0;font-size:18px;line-height:1.65}.quiz-card button{background:var(--charcoal);color:#fff;border:0;justify-self:start;min-height:44px;padding:0 14px;font-weight:800}.quiz-grade{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.quiz-grade button{border:2px solid var(--charcoal);min-height:54px;font-size:16px;font-weight:900}.quiz-grade .miss{color:var(--orange);background:#fbe9e4}.quiz-grade .hit{color:#1d6b3a;background:#e7f0ea}.quiz-exit{color:var(--muted);background:0 0;border:0;width:100%;min-height:44px;margin-top:4px;font-weight:700;text-decoration:underline}.topic-stats{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.topic-stats>button{background:var(--white);border:1px solid var(--line);cursor:pointer;font:inherit;text-align:left;grid-template-columns:1fr auto;gap:4px;min-height:44px;padding:10px 12px;display:grid;position:relative}.topic-stats>button:disabled{cursor:default}.topic-stats b{letter-spacing:-.02em;font-size:13px}.topic-stats span{color:var(--muted);font-size:13px;font-weight:800}.topic-stats i{background:var(--blue);height:3px;position:absolute;bottom:0;left:0}.topic-stats>button.done i{background:#1d6b3a}.exam-guide .source-link{margin-top:14px}.essay-checklist{border-left:4px solid var(--charcoal);background:#f4f6f8;margin-bottom:14px;padding:12px 14px}.essay-checklist b{letter-spacing:.04em;margin-bottom:8px;font-size:13px;display:block}.essay-checklist ul{color:var(--muted);gap:6px;margin:0;padding-left:18px;line-height:1.5;display:grid}.past-exam-lines{gap:8px;margin:12px 0;display:grid}.past-exam-lines p{margin:0;line-height:1.6}.past-exam-lines .head{border-bottom:2px solid var(--charcoal);margin-top:8px;padding-bottom:4px;font-weight:900}.past-exam-lines .sub{color:var(--muted);padding-left:18px}.past-exam-list .source-link{margin-bottom:8px}.exam-links{border-left:4px solid var(--blue);background:#f4f6f8;margin:12px 0;padding:12px 14px}.exam-links b{margin-bottom:8px;font-size:13px;display:block}.exam-links p{flex-wrap:wrap;align-items:baseline;gap:6px;margin:0 0 7px;line-height:1.5;display:flex}.exam-links p span{margin-right:2px;font-weight:800}.exam-links button{background:var(--white);border:1px solid var(--charcoal);cursor:pointer;min-height:32px;padding:2px 8px;font-size:13px;font-weight:700}.exam-links em{color:var(--muted);font-style:normal}.first-exam-year{border-top:1px solid var(--line);padding:12px 0}.first-exam-year>b{margin-bottom:8px;display:block}.first-exam-year>div{gap:8px;display:grid}.first-exam-year button{background:var(--white);border:1px solid var(--charcoal);cursor:pointer;font:inherit;text-align:left;justify-content:space-between;align-items:center;min-height:48px;padding:0 14px;font-weight:700;display:flex}.first-exam-year button small{color:var(--muted);font-weight:800}.mcq-choices{gap:8px;margin-bottom:14px;display:grid}.mcq-choices button{background:var(--white);border:1.5px solid var(--line);cursor:pointer;font:inherit;text-align:left;align-items:baseline;gap:8px;min-height:48px;padding:12px 14px;line-height:1.5;display:flex}.mcq-choices button span{color:var(--blue);font-weight:900}.mcq-choices button.correct{background:#e7f0ea;border-color:#1d6b3a}.mcq-choices button.incorrect{border-color:var(--orange);background:#fbe9e4}.mcq-choices button:disabled{opacity:.45}.mcq-answer-text{color:#1d6b3a;font-weight:700}
