:root{--ink:#17181C;--ink2:#5B6068;--ink3:#8A8F98;--accent:#BC262C;--accent-on-dark:#E4635F;--accent-soft:#FAEDEC;--line:#DFDBD6;--disp:"Archivo";--ui:"IBM Plex Sans KR";--read:"Source Serif 4";--pb:#2B57AC;--py:#8A6420;--pr:#B4103F;--c1:#1F4E9E;--c2:#B06A17;--c3:#C00000;--c4:#2E8B57}*{box-sizing:border-box}html,body{margin:0}:root{--bg:#fff;--card:#fff;--muted:var(--ink2);--soft:#F6F5F3;--ok:#2E8B57;--bad:var(--accent)}body{background:var(--bg);color:var(--ink);font-family:var(--ui),system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;line-height:1.5;-webkit-text-size-adjust:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.shell{max-width:480px;margin:0 auto;padding:24px 16px 120px;min-height:100dvh;display:flex;flex-direction:column;gap:20px}.brand{font-family:var(--disp),system-ui,sans-serif;font-weight:900;font-size:28px;letter-spacing:2px;display:flex;flex-direction:column;margin-top:24px}.brand small{font-family:var(--ui),system-ui,sans-serif;font-weight:600;font-size:14px;letter-spacing:1px;color:var(--muted)}.colon{color:var(--accent)}.lead{margin:0;color:var(--muted);font-weight:600}.demo-banner,.note{margin:0;font-size:13px;color:var(--muted);background:var(--soft);border-radius:10px;padding:10px 12px}.entries{display:grid;gap:12px}.entry,.card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;background:var(--card)}.entry strong,.card strong{font-size:16px}.entry span,.card span{font-size:14px;color:var(--muted)}.tap:active,.entry:active{background:var(--soft)}.locked{opacity:.6}.topbar{display:flex;align-items:center;gap:12px}.topbar h1{font-size:18px;margin:0}.back{font-size:15px;color:var(--muted);padding:6px 0}section{display:flex;flex-direction:column;gap:8px}h2{font-size:14px;margin:0;color:var(--muted);font-weight:700}.seg{display:flex;gap:8px}.seg button{flex:1;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 8px;font-size:14px}.seg button.on{border-color:var(--accent);background:var(--accent-soft);font-weight:700}.pill{align-self:flex-start;font-size:12px!important;font-weight:700;border-radius:999px;padding:2px 10px;margin-top:4px}.pill.ok{background:#e8f3ec;color:var(--ok)!important}.pill.todo{background:var(--accent-soft);color:var(--accent)!important}.bar-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 4.6em;align-items:center;gap:8px;font-size:13px}.bar-label{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar{height:8px;background:var(--soft);border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--ink2)}.bar.hot i{background:var(--accent)}.bar-val{text-align:right;font-variant-numeric:tabular-nums}.omr{gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.omr-row,.res-row{display:grid;grid-template-columns:2em 4.5em 1fr;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}.omr-row{grid-template-columns:3.6em 1fr;gap:8px}.qhead{display:flex;flex-direction:column;line-height:1.2}.omr-row:last-child,.res-row:last-child{border-bottom:0}.qno{font-weight:800;font-variant-numeric:tabular-nums}.qtype{font-size:12px;color:var(--muted)}.opts{display:flex;justify-content:space-between;gap:4px;min-width:0}.opt{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:18px;line-height:1;padding:0}.opt.on{background:var(--ink);color:#fff;border-color:var(--ink)}.submit-bar{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.confirm{display:flex;gap:8px}.primary{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:12px 18px;font-weight:700;font-size:15px}.primary.block{display:block;text-align:center}.ghost{background:none;border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:14px;color:var(--muted)}.mini{grid-column:3;justify-self:start;border:1px solid var(--accent);color:var(--accent);background:none;border-radius:8px;padding:4px 10px;font-size:13px}.score{display:flex;flex-direction:column;gap:2px}.score strong{font-size:44px;font-family:var(--disp),system-ui,sans-serif;font-weight:900;line-height:1}.score small{font-size:18px;color:var(--muted);font-weight:600}.score span{color:var(--muted);font-size:14px}.result{gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.res-row{grid-template-columns:2em 3.2em 3.2em 1fr}.res-row .mark{font-weight:900;color:var(--ok)}.res-row.wrong .mark{color:var(--bad)}.res-row .ans{font-size:13px;color:var(--muted)}.res-row .mini{grid-column:4}textarea{width:100%;font:inherit;font-size:15px;border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--card);color:var(--ink)}.keygrid{display:flex;flex-wrap:wrap;gap:6px}.keygrid span{border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-size:14px}.keygrid b{margin-right:4px}.hint{font-size:12px;color:var(--muted);margin:0}.error{color:var(--bad);font-size:14px;margin:0}@media (prefers-color-scheme:dark){:root{--bg:#111214;--card:#17181B;--soft:#1E2024;--line:#2A2C31;--muted:#A4A8B0;--ink:#ECEDEF;--accent-soft:#3A1E20}.opt.on{background:#ecedef;color:#111214;border-color:#ecedef}.pill.ok{background:#16301f}}.steps{margin:0;padding-left:20px;font-size:13px;color:var(--muted);display:grid;gap:2px}.flag{font-style:normal;font-size:10px;font-weight:700;color:var(--accent);margin-left:4px}.ghost.block{display:block;text-align:center}.card .primary{margin-top:8px;align-self:stretch}.res-row .mark{white-space:nowrap}.npage{gap:16px;padding-top:0}.ncover{height:110px;margin:0 -16px;background:#1a1a1a;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.18) 1px,transparent 0);background-size:14px 14px}.nicon{font-size:56px;line-height:1;margin-top:-34px}.ntitle{display:flex;flex-direction:column;gap:2px}.ntitle h1{margin:0;font-size:26px;font-weight:800}.ntitle .back{font-size:13px}.ncallout{background:var(--soft);border-radius:10px;padding:12px 14px;font-size:14px}.ncallout p{margin:2px 0}.ntoggle{border-top:1px solid var(--line);padding-top:10px}.ntoggle summary{display:flex;align-items:baseline;gap:8px;cursor:pointer;list-style:none}.ntoggle summary::-webkit-details-marker{display:none}.ntoggle summary h2{font-size:18px;color:var(--ink);font-weight:800}.ntoggle summary h2:before{content:"▸";display:inline-block;margin-right:6px;transition:transform .15s;color:var(--muted)}.ntoggle[open] summary h2:before{transform:rotate(90deg)}.ntable-wrap{margin-top:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}.ntable{border-collapse:collapse;width:100%;min-width:480px;font-size:13px}.ntable th{font-weight:600;color:var(--muted);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.ntable td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}.nowrap{white-space:nowrap}.nlink{text-decoration:underline;text-underline-offset:3px;font-weight:600}.nbtn{display:inline-block;border:1px solid var(--line);border-radius:6px;padding:3px 10px;font-weight:600}.npill{display:inline-block;white-space:nowrap;border-radius:4px;padding:1px 7px;font-size:12px;font-weight:600}.npill.green{background:#dbeddb;color:#1c3829}.npill.pink{background:#f5e0e9;color:#4c2337}.npill.red{background:#ffe2dd;color:#5d1715}.npill.blue{background:#d3e5ef;color:#183347}.npill.gray{background:#e3e2e0;color:#32302c}.npill.purple{background:#e8deee;color:#412454}.npill.orange{background:#fadec9;color:#49290e}.ncols{display:grid;grid-template-columns:1fr;gap:12px;border-top:1px solid var(--line);padding-top:12px}@media (min-width:560px){.ncols{grid-template-columns:1fr 1fr}}.ncols h3{margin:0 0 6px;font-size:15px}.nvideos{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px;color:var(--muted)}.formhead{display:flex;flex-direction:column;border-left:4px solid var(--accent);padding:2px 0 2px 12px}.formhead span{font-size:13px;color:var(--muted)}.grid-form{border:1px solid var(--line);border-radius:12px;overflow:hidden}.gf-row{display:grid;grid-template-columns:4.4em repeat(5,1fr);align-items:center;border-bottom:1px solid var(--line);padding:6px 8px;gap:4px}.gf-row:last-child{border-bottom:0}.gf-row:nth-child(2n):not(.gf-head){background:var(--soft)}.gf-head{font-size:15px;color:var(--muted);text-align:center;position:sticky;top:0;background:var(--bg);z-index:1}.gf-head span:first-child{text-align:left;font-size:12px}.gf-q{display:flex;flex-direction:column;line-height:1.2}.gf-q small{font-size:11px;color:var(--muted)}.sq{justify-self:center;width:36px;height:36px;border:2px solid #9A9EA6;border-radius:6px;background:var(--card);font-size:20px;font-weight:900;line-height:1;padding:0;color:#fff}.sq.on{background:var(--accent);border-color:var(--accent)}@media (prefers-color-scheme:dark){.npill.green{background:#2b593f;color:#e0eee4}.npill.pink{background:#69314c;color:#f5e0e9}.npill.red{background:#6e3630;color:#ffe2dd}.npill.blue{background:#28456c;color:#d3e5ef}.npill.gray{background:#454545;color:#e3e2e0}.npill.purple{background:#492f64;color:#e8deee}.npill.orange{background:#854c1d;color:#fadec9}.sq{border-color:#5a5e66}}.clinicbox{display:flex;flex-direction:column;gap:2px;border:2px solid var(--accent);border-radius:14px;padding:14px 16px;background:var(--accent-soft)}.clinicbox:active{opacity:.85}.cb-kicker{font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.5px}.clinicbox strong{font-size:18px}.cb-sub{font-size:13px;color:var(--muted)}.cb-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;flex-wrap:wrap}.cb-steps{display:flex;gap:6px}.cb-steps span{font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px;background:var(--card);border:1px solid var(--line);color:var(--muted)}.cb-steps span.done{background:#dbeddb;border-color:#dbeddb;color:#1c3829}.cb-go{background:var(--accent);color:#fff;font-weight:700;font-size:14px;border-radius:10px;padding:8px 14px}@media (prefers-color-scheme:dark){.cb-steps span.done{background:#2b593f;border-color:#2b593f;color:#e0eee4}}
