:root{--bg:#ffffff;--fg:#0f172a;--muted:#64748b;--accent:#2563eb;--accent-2:#16a34a;--border:#e5e7eb;--warn:#b45309;--card:#ffffff;--shadow:0 2px 8px rgba(0,0,0,.06)}
@media (prefers-color-scheme: dark){:root{--bg:#0b1020;--fg:#e6e8ee;--muted:#9aa4b2;--accent:#60a5fa;--accent-2:#34d399;--border:#1f2937;--card:#0f162a;--shadow:0 2px 10px rgba(0,0,0,.35)}}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font:16px/1.7 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,"Noto Sans KR",Arial,sans-serif;color:var(--fg);background:linear-gradient(180deg,rgba(99,102,241,.06),transparent 220px),var(--bg)}
.site-header{position:sticky;top:0;background:rgba(255,255,255,.8);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);padding:12px 16px}
@media (prefers-color-scheme: dark){.site-header{background:rgba(15,22,42,.6)}}
.site-header h1{margin:0 0 6px;font-size:20px}
nav{display:flex;flex-wrap:wrap;gap:8px}
nav a{padding:6px 10px;border:1px solid var(--border);border-radius:999px;color:var(--accent);text-decoration:none;transition:.15s ease-in-out}
nav a:hover{background:var(--accent);color:#fff;border-color:transparent}
.container{max-width:960px;margin:24px auto;padding:0 16px}
.chapters{padding-left:18px}
.progress{margin-left:8px;color:var(--muted);font-size:12px}
.card{border:1px solid var(--border);border-radius:12px;padding:18px;margin:18px 0;background:var(--card);box-shadow:var(--shadow)}
.quiz h3{margin:0 0 12px}
.quiz .q{margin:14px 0}
.btn{display:inline-block;padding:10px 14px;border:1px solid var(--border);background:linear-gradient(#ffffff,#f8fafc);color:var(--fg);border-radius:10px;cursor:pointer;transition:transform .05s ease,box-shadow .15s}
.btn:hover{box-shadow:0 6px 18px rgba(0,0,0,.08)}
.btn:active{transform:translateY(1px)}
@media (prefers-color-scheme: dark){.btn{background:linear-gradient(#1b243b,#131a2d)}}
.quiz .result{margin-top:10px;font-weight:700}
.ok{color:var(--accent-2)}
.bad{color:var(--warn)}
label{display:block;margin:10px 0}
textarea{width:100%;min-height:160px;padding:10px;border:1px solid var(--border);border-radius:10px;background:transparent;color:inherit}
.site-footer{border-top:1px solid var(--border);padding:18px;text-align:center;color:var(--muted);font-size:14px}
.pill{display:inline-block;padding:4px 8px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px}
.rubric{margin-top:12px;font-size:14px}
.rubric .row{display:flex;justify-content:space-between;border-bottom:1px dashed var(--border);padding:6px 0}
.rubric .row:last-child{border-bottom:none}

/* Progress bar */
.progressbar{position:relative;height:12px;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:rgba(0,0,0,.03);margin-top:10px}
.progressbar .fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .3s ease}
.progressbar .label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}

/* Quiz answer states */
.quiz .q.correct{border-left:3px solid var(--accent-2);padding-left:8px;background:rgba(22,163,74,.06)}
.quiz .q.wrong{border-left:3px solid var(--warn);padding-left:8px;background:rgba(180,83,9,.06)}
.quiz .actions{display:flex;gap:8px;align-items:center;margin:8px 0}
