:root{--navy:#0b2545;--blue:#0078d4;--blue-light:#e8f2fc;--gray-bg:#f5f7fa;--line:#dfe4ea;--text:#1f2a37;--text-dim:#5b6673;--ok:#107c10;--warn:#c62828;--warn-bg:#fdeaea;--radius:10px}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw}body{min-height:100%;color:var(--text);background:var(--gray-bg);font-family:Segoe UI,Malgun Gothic,맑은 고딕,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font-family:inherit}.page{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1040px;margin:0 auto;padding:0 20px}.topbar{background:linear-gradient(135deg, var(--navy), var(--blue));color:#fff;padding:16px 0}.topbar .container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.topbar .brand{font-size:15px;font-weight:700;display:inline-block}.topbar .brand small{opacity:.8;font-size:11.5px;font-weight:400;display:block}.topbar-actions{align-items:center;gap:14px;font-size:13px;display:flex}.topbar-actions a,.topbar-actions button{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff4d;border-radius:999px;padding:5px 13px;font-size:12.5px}.topbar-actions a:hover,.topbar-actions button:hover{background:#ffffff38}.main{flex:1;padding:32px 0 60px}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-bottom:22px;padding:26px 30px}.card h2{color:var(--navy);margin:0 0 4px;font-size:19px}.card .lead{color:var(--text-dim);margin:4px 0 18px;font-size:13.5px}h3.section-title{color:var(--navy);margin:20px 0 10px;font-size:15px}.btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:13.5px;font-weight:600;transition:filter .1s;display:inline-flex}.btn:hover{filter:brightness(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-outline{border-color:var(--blue);color:var(--blue);background:0 0}.btn-danger{background:var(--warn);border-color:var(--warn);color:#fff}.btn-block{width:100%}.input{border:1px solid var(--line);border-radius:8px;width:100%;padding:10px 12px;font-size:14px}.input:focus{outline:2px solid var(--blue);outline-offset:1px}.pin-input{letter-spacing:8px;text-align:center;max-width:180px;font-size:20px}.field{margin-bottom:14px}.field label{color:var(--text-dim);margin-bottom:5px;font-size:12.5px;display:block}.badge{border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block}.badge-blue{background:var(--blue-light);color:var(--blue)}.badge-green{color:var(--ok);background:#e6f4e6}.badge-red{background:var(--warn-bg);color:var(--warn)}.badge-gray{color:var(--text-dim);background:#eef0f3}table{border-collapse:collapse;width:100%;margin:10px 0;font-size:13.5px}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:9px 12px}th{background:var(--blue-light);color:var(--navy);font-weight:600}tr:nth-child(2n) td{background:#fafbfc}.account-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.account-card{border:2px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:10px;padding:18px 12px;font-size:14px}.account-card:hover{border-color:var(--blue)}.account-card.selected{border-color:var(--blue);background:var(--blue-light)}.account-card .aname{margin-bottom:4px;font-weight:700}.account-card .aid{color:var(--text-dim);font-family:Consolas,monospace;font-size:11.5px}.domain-bar{background:var(--line);border-radius:6px;height:10px;margin:10px 0;display:flex;overflow:hidden}.domain-bar span{height:100%;display:block}.bar-track{background:var(--line);border-radius:6px;width:100%;height:8px;overflow:hidden}.bar-fill{background:var(--blue);border-radius:6px;height:100%}.domain-block{border:1px solid var(--line);border-radius:8px;margin-bottom:12px;overflow:hidden}.domain-head{background:var(--blue-light);color:var(--navy);align-items:center;gap:10px;padding:12px 16px;font-size:13.5px;font-weight:600;display:flex}.subtopic-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding:9px 16px;font-size:13px;display:flex}.subtopic-row .stname{flex:1}.subtopic-row .group-label{color:var(--text-dim);font-size:11px}.exam-layout{grid-template-columns:1fr 220px;align-items:start;gap:20px;display:grid}@media (max-width:780px){.exam-layout{grid-template-columns:1fr}}.exam-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.timer{font-variant-numeric:tabular-nums;background:var(--blue-light);color:var(--navy);border-radius:999px;padding:6px 14px;font-size:15px;font-weight:700}.timer.low{background:var(--warn-bg);color:var(--warn)}.choice{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;margin:8px 0;padding:11px 14px;font-size:13.5px;display:flex}.choice:hover{border-color:var(--blue)}.choice.selected{border-color:var(--blue);background:var(--blue-light)}.choice.correct{border-color:var(--ok);background:#f1faf1}.choice.wrong{border-color:var(--warn);background:var(--warn-bg)}.choice .cid{color:var(--navy);font-weight:700}.qnav{grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:5px;max-height:420px;padding-right:2px;display:grid;overflow-y:auto}.qnav button{aspect-ratio:1;border:1px solid var(--line);cursor:pointer;color:var(--text-dim);background:#fff;border-radius:5px;font-size:11px}.qnav button.done{background:var(--blue);color:#fff;border-color:var(--blue)}.qnav button.flag{color:var(--text);background:#fff3cd;border-color:#e6c66b}.qnav button.cur{outline:2px solid var(--navy);outline-offset:1px}.qnav-legend{color:var(--text-dim);flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:11px;display:flex}.qnav-legend span{align-items:center;gap:4px;display:inline-flex}.legend-dot{border:1px solid var(--line);border-radius:3px;width:10px;height:10px;display:inline-block}.note{border-left:3px solid var(--blue);background:var(--blue-light);border-radius:0 6px 6px 0;margin:12px 0;padding:10px 14px;font-size:13.5px}.note.warn{border-left-color:var(--warn);background:var(--warn-bg)}.modal-overlay{z-index:50;background:#0b254580;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:420px;padding:26px 28px}.modal h3{color:var(--navy);margin-bottom:10px;font-size:17px}.modal p{color:var(--text-dim);margin-bottom:18px;font-size:13.5px}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.hero{background:linear-gradient(135deg, var(--navy), var(--blue));color:#fff;text-align:center;padding:56px 0 40px}.hero h1{margin:0 0 10px;font-size:30px}.hero p{opacity:.9;max-width:520px;margin:0 auto;font-size:15px}.hero .cta{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;display:flex}.hero .cta .btn{color:#fff;background:#ffffff1a;border-color:#fff9}.hero .cta .btn-primary{color:var(--blue);background:#fff;border-color:#fff}.ad-slot{text-align:center;color:var(--text-dim);background:#fbfbfc;border:1.5px dashed #c9ccd1;border-radius:8px;margin:12px 0;padding:14px;font-size:12px}.empty{text-align:center;color:var(--text-dim);padding:40px 20px;font-size:13.5px}.center{text-align:center}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-0{margin-bottom:0}.flex-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.flex-gap{flex-wrap:wrap;gap:10px;display:flex}
