:root{--font-sans: "Geist", "Noto Sans KR", system-ui, sans-serif;--font-mono: "Geist Mono", monospace;--zinc-50: #fafafa;--zinc-100: #f4f4f5;--zinc-200: #e4e7eb;--zinc-300: #d4d4d8;--zinc-400: #a1a1aa;--zinc-500: #71717a;--zinc-700: #3f3f46;--zinc-900: #18181b;--accent: #8a6d3b;--green: #16a34a;--amber: #d97706;--red: #dc2626;--radius: 8px}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-sans);background:var(--zinc-50);color:var(--zinc-900);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.6}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}.shell{max-width:880px;margin:0 auto;padding:24px 16px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 0 18px;border-bottom:1px solid var(--zinc-200);margin-bottom:24px}.brand{display:flex;flex-direction:column;gap:1px}.brand .academy{font-family:var(--font-mono);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent)}.brand .title{font-size:17px;font-weight:700;letter-spacing:-.3px}.topbar .user{font-size:13px;color:var(--zinc-500);display:flex;align-items:center;gap:10px}.topbar .user b{color:var(--zinc-900)}.card{background:#fff;border:1px solid var(--zinc-200);border-radius:var(--radius);padding:22px 24px;margin-bottom:14px}.card h2{font-size:16px;font-weight:600;margin-bottom:6px;letter-spacing:-.2px}.card .sub{font-size:13px;color:var(--zinc-500);margin-bottom:14px}.badge{display:inline-block;font-family:var(--font-mono);font-size:11px;padding:2px 9px;border-radius:999px;border:1px solid var(--zinc-200);background:var(--zinc-100);color:var(--zinc-700)}.badge.dark{background:var(--zinc-900);color:#fff;border-color:var(--zinc-900)}.badge.gold{background:#faf7f0;color:var(--accent);border-color:#e8dcc3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:14px;font-weight:500;padding:9px 18px;border-radius:var(--radius);border:1px solid var(--zinc-200);background:#fff;color:var(--zinc-900);transition:background .15s}.btn:hover{background:var(--zinc-100)}.btn.primary{background:var(--zinc-900);color:#fff;border-color:var(--zinc-900)}.btn.primary:hover{background:var(--zinc-700)}.btn.ghost{border-color:transparent;color:var(--zinc-500)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{font-size:12.5px;padding:5px 12px}.mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.mode-card{background:#fff;border:1px solid var(--zinc-200);border-radius:var(--radius);padding:18px 20px;text-align:left;transition:border-color .15s,transform .1s}.mode-card:hover{border-color:var(--zinc-400)}.mode-card .m-label{font-weight:600;font-size:15px;margin-bottom:3px}.mode-card .m-desc{font-size:12.5px;color:var(--zinc-500);margin-bottom:10px}.mode-card .m-meta{font-family:var(--font-mono);font-size:11px;color:var(--zinc-400)}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:500;margin-bottom:5px}.field input[type=text],.field input[type=tel],.field input[type=password],.field select{width:100%;padding:9px 12px;border:1px solid var(--zinc-300);border-radius:var(--radius);font-size:14px;background:#fff}.field input:focus,.field select:focus{outline:none;border-color:var(--zinc-900)}.check{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--zinc-700);margin-bottom:10px}.check input{margin-top:4px}.error{color:var(--red);font-size:13px;margin-top:6px}.test-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.timer{font-family:var(--font-mono);font-size:20px;font-weight:500;padding:6px 14px;border:1px solid var(--zinc-200);border-radius:var(--radius);background:#fff}.timer.low{color:var(--red);border-color:var(--red)}.progress-note{font-size:13px;color:var(--zinc-500)}.qnav{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:14px}.qnav button{width:32px;height:32px;border-radius:6px;border:1px solid var(--zinc-200);background:#fff;font-family:var(--font-mono);font-size:11.5px;color:var(--zinc-500)}.qnav button.answered{background:var(--zinc-900);color:#fff;border-color:var(--zinc-900)}.qnav button.current{border:2px solid var(--accent);color:var(--zinc-900);font-weight:700}.qnav button.flagged{box-shadow:0 0 0 2px #fbbf24 inset}.passage-box{background:#fff;border:1px solid var(--zinc-200);border-left:3px solid #d8cdb8;border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;max-height:320px;overflow-y:auto;font-size:14.5px}.passage-box h3{font-size:14px;margin-bottom:8px}.passage-box p{margin-bottom:10px}.qcard{background:#fff;border:1px solid var(--zinc-200);border-radius:var(--radius);padding:22px 24px}.qcard .qsection{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.qcard .qstem{font-size:16px;font-weight:500;margin-bottom:16px}.qcard .qstem .capword{font-weight:700;letter-spacing:.5px}.choice{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;padding:11px 14px;margin-bottom:8px;border:1px solid var(--zinc-200);border-radius:var(--radius);background:#fff;font-size:14.5px;transition:border-color .1s}.choice:hover{border-color:var(--zinc-400)}.choice.selected{border:2px solid var(--zinc-900);background:var(--zinc-50)}.choice .letter{font-family:var(--font-mono);font-size:12px;font-weight:600;min-width:22px;height:22px;border:1px solid var(--zinc-300);border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.choice.selected .letter{background:var(--zinc-900);color:#fff;border-color:var(--zinc-900)}.test-actions{display:flex;justify-content:space-between;margin-top:16px;gap:10px}.flagbtn{font-size:13px}.flagbtn.on{color:var(--amber);font-weight:600}.score-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--zinc-50);border:1px solid var(--zinc-200);border-radius:var(--radius);padding:14px 16px}.tile .t-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--zinc-500)}.tile .t-num{font-size:26px;font-weight:700;letter-spacing:-.5px;margin-top:4px}.tile .t-num small{font-size:13px;color:var(--zinc-500);font-weight:500}.cat-row{display:grid;grid-template-columns:130px 1fr 70px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--zinc-100);font-size:13.5px}.cat-row:last-child{border-bottom:none}.track{height:8px;background:var(--zinc-100);border-radius:999px;overflow:hidden}.fill{height:100%;background:var(--zinc-900);border-radius:999px}.cat-row .pct{font-family:var(--font-mono);font-size:12px;text-align:right;color:var(--zinc-700)}.review-item{border:1px solid var(--zinc-200);border-radius:var(--radius);padding:14px 16px;margin-bottom:10px;background:#fff;font-size:14px}.review-item.wrong{border-left:3px solid var(--red)}.review-item.right{border-left:3px solid var(--green)}.review-item.blank{border-left:3px solid var(--zinc-400)}.review-item .r-stem{font-weight:500;margin-bottom:6px}.review-item .r-line{font-size:13px;color:var(--zinc-700)}.review-item .r-exp{font-size:12.5px;color:var(--zinc-500);margin-top:5px;padding-top:5px;border-top:1px dashed var(--zinc-200)}table.admin{width:100%;border-collapse:collapse;font-size:13px}table.admin th,table.admin td{border-bottom:1px solid var(--zinc-200);padding:8px 10px;text-align:left}table.admin th{font-family:var(--font-mono);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--zinc-400)}.footer{text-align:center;margin-top:40px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:1px;color:var(--zinc-400)}.warn-box{border:1px solid var(--amber);background:#fffbeb;color:#92400e;border-radius:var(--radius);padding:12px 16px;font-size:13.5px;margin-bottom:12px}@media (max-width: 560px){.qcard{padding:16px}.cat-row{grid-template-columns:100px 1fr 56px}}
