:root{
  --bg:#eef1f5; --surface:#ffffff; --text:#1f2430; --muted:#5b6472;
  --accent:#1f3a5f; --accent-ink:#ffffff; --border:#d7dce3;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#181c22; --surface:#232830; --text:#e7eaee; --muted:#98a2b0;
    --accent:#7aa6e0; --accent-ink:#10141a; --border:#333a44;
  }
}
:root[data-theme="dark"]{
  --bg:#181c22; --surface:#232830; --text:#e7eaee; --muted:#98a2b0;
  --accent:#7aa6e0; --accent-ink:#10141a; --border:#333a44;
}
*{box-sizing:border-box;}
body{background:var(--bg); color:var(--text); font-family:"Noto Sans KR",system-ui,sans-serif; margin:0;}
button{font:inherit; font-weight:700; font-size:13.5px; padding:9px 16px; border-radius:8px; border:1px solid transparent; cursor:pointer;}
.btn-print{background:var(--accent); color:var(--accent-ink);}
.btn-submit{background:#1c7c4c; color:#fff;}
.btn-admin{background:transparent; color:var(--accent); border-color:var(--accent);}
.btn-reset{background:transparent; color:var(--muted); border-color:var(--border);}
button:disabled{opacity:.55; cursor:not-allowed;}
.status{margin:0 0 16px; padding:10px 14px; border-radius:8px; font-size:13px; font-weight:600; display:none;}
.status.show{display:block;}
.status.ok{background:#e4f6ea; color:#186a3d; border:1px solid #b7e4c7;}
.status.warn{background:#fff4e0; color:#8a5a00; border:1px solid #ffdca3;}
.status.err{background:#fde8e8; color:#9c2626; border:1px solid #f6c1c1;}

.admin-table{width:100%; border-collapse:collapse; font-size:12.5px;}
.admin-table th,.admin-table td{border-bottom:1px solid var(--border); text-align:left; padding:8px 6px; vertical-align:top;}
.admin-table th{color:var(--muted); font-weight:600; font-size:11.5px; text-transform:uppercase; letter-spacing:.02em;}
.admin-table tr:last-child td{border-bottom:none;}
.tag{display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:700; background:var(--bg); border:1px solid var(--border);}
.load-btn{background:var(--accent); color:var(--accent-ink); font-size:12px; padding:6px 10px; border-radius:6px;}
.empty-row{color:var(--muted); font-size:12.5px; padding:12px 4px;}

.page-scroll{overflow-x:auto;}
.page-frame{position:relative; width:793.33px; height:1122.67px; margin:0 auto; background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.25); flex:none;}
.page-frame img{position:absolute; inset:0; width:100%; height:100%; display:block; user-select:none; pointer-events:none;}

.ov{position:absolute; font-family:"Noto Sans KR",sans-serif; color:#111;}
input.ov{border:none; background:transparent; padding:0; margin:0; font-size:11px; line-height:1.1;}
input.ov[type=text]{border-bottom:1px dotted rgba(20,80,180,.45);}
input.ov[type=text].ov-c{text-align:center;}
input.ov[type=text]:focus{outline:none; background:rgba(255,235,80,.35);}
input.ov[type=radio]{appearance:none; -webkit-appearance:none; border-radius:50%; border:1.1px dashed rgba(20,80,180,.55); cursor:pointer; margin:0;}
input.ov[type=radio]:checked{border:1.6px solid #111;}
input.ov[type=radio]:focus{outline:none; box-shadow:0 0 0 2px rgba(255,235,80,.6);}
input.ov[type=radio].ov-box{border-radius:2px; background-repeat:no-repeat; background-position:center; background-size:78% 78%;}
input.ov[type=radio].ov-box:checked{border:1.3px solid #111; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.5 L6.5 12 L13 4' fill='none' stroke='%23111' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");}
@media print{ input.ov[type=radio].ov-box{border-radius:2px;} }

@media print{
  @page{ size:A4; margin:0; }
  body{background:#fff;}
  .no-print{display:none !important;}
  .page-scroll{display:block !important; overflow:visible; padding:0;}
  .page-frame{box-shadow:none; margin:0; transform:scale(.96); transform-origin:top center;}
  input.ov[type=text]{border-bottom:none;}
  input.ov[type=radio]{border-color:transparent;}
  input.ov[type=radio]:checked{border-color:#000;}
}
