header{background:#fff;border-bottom:1px solid var(--border);padding:18px 28px;position:sticky;top:0;z-index:5}
header h1{margin:0;font-size:20px;display:flex;align-items:center;gap:10px}
header h1 .badge{font-size:11px;font-weight:600;color:#fff;background:var(--accent);padding:3px 8px;border-radius:999px}
header p{margin:4px 0 0;color:var(--muted);font-size:13px}

.tabs{display:flex;gap:6px;padding:12px 28px;background:#fff;border-bottom:1px solid var(--border)}
.tab{border:1px solid var(--border);background:#fff;padding:8px 16px;border-radius:8px 8px 0 0;font-size:14px;cursor:pointer;color:#374151}
.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}

main{padding:24px 28px;max-width:1200px;margin:0 auto}

.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:18px;box-shadow:0 1px 2px rgba(0,0,0,.02)}
.panel h2{margin:0 0 12px;font-size:16px;display:flex;align-items:center;gap:8px}
.panel h2 .num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent);color:#fff;border-radius:50%;font-size:12px}

.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:12px;color:var(--muted);font-weight:600}

.splitGrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.splitGrid > div{min-width:0}
.splitGrid h3{margin:0 0 10px;font-size:14px;color:#374151;display:flex;align-items:center;gap:6px}
.splitGrid h3::before{content:"";width:3px;height:14px;background:var(--accent);border-radius:2px}

/* 상단 두 패널(시험 정보 + 결측치 규정) 2단 배치 */
.topSplit{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;margin-bottom:18px}
.topSplit > .panel{margin-bottom:0}

.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.muted{color:var(--muted);font-size:13px}

.tabcontent{display:none}
.tabcontent.active{display:block}

canvas{max-width:100%}

@media (max-width:980px){
  .splitGrid{grid-template-columns:1fr}
  .topSplit{grid-template-columns:1fr}
}
@media (max-width:640px){
  header,.tabs,main{padding-left:14px;padding-right:14px}
  .scoreInputBig{font-size:28px;width:140px}
  .studentResult .grade{font-size:48px}
}
