:root { --bg:#f4f6f9; --card:#fff; --ink:#1d2433; --muted:#667085; --line:#d8dde6; --pri:#1f5fbf; --ok:#1a7f4b; --warn:#b54708; --bad:#c0362c; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family: 'Pretendard','Malgun Gothic','Apple SD Gothic Neo',sans-serif; font-size:16px; line-height:1.55; }
.top { background:#16325c; color:#fff; padding:12px 16px; font-size:15px; }
main { max-width:720px; margin:0 auto; padding:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:18px 16px; margin-bottom:14px; }
h1 { font-size:20px; margin:0 0 10px; } h2 { font-size:18px; margin:0 0 10px; }
.muted { color:var(--muted); font-size:14px; } .center { text-align:center; }
.hidden { display:none !important; }
.btn { display:inline-block; border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:8px; padding:10px 14px; font-size:15px; cursor:pointer; margin:4px 4px 4px 0; font-family:inherit; }
.btn.primary { background:var(--pri); border-color:var(--pri); color:#fff; }
.btn.small { padding:6px 10px; font-size:13px; }
.btn:disabled { opacity:.5; }
input, textarea, select { width:100%; font-size:16px; padding:10px; border:1px solid var(--line); border-radius:8px; font-family:inherit; margin-top:4px; }
label { display:block; margin:10px 0; font-size:15px; }
.opt { display:flex; align-items:center; gap:8px; margin:6px 0; padding:10px 12px; border:1px solid var(--line); border-radius:8px; }
.opt input { width:auto; margin:0; }
.row { display:flex; gap:8px; } .row .opt { flex:1; }
.q { margin-bottom:14px; } .ql { font-weight:600; margin:10px 0 6px; }
.req { color:var(--bad); font-weight:400; font-size:14px; }
.sub { padding:4px 0 0 12px; border-left:3px solid var(--line); }
.names { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; margin-bottom:12px; }
.names button { padding:14px; font-size:17px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer; font-family:inherit; }
.names button.on { border-color:var(--pri); background:#eaf1fc; }
.names small { display:block; color:var(--muted); font-size:13px; }
#pin { font-size:24px; letter-spacing:8px; text-align:center; max-width:200px; }
.msg { min-height:1em; color:var(--bad); font-size:14px; } .msg.good { color:var(--ok); }
.info { width:100%; border-collapse:collapse; margin:8px 0 12px; font-size:15px; }
.info th { text-align:left; width:70px; color:var(--muted); font-weight:500; padding:6px 0; vertical-align:top; }
.info td { padding:6px 0; }
.steps { list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.steps li { display:flex; justify-content:space-between; gap:8px; padding:8px 10px; border-radius:8px; background:#f7f8fa; font-size:15px; }
.tag { font-size:13px; padding:2px 8px; border-radius:20px; white-space:nowrap; }
.tag.ok { background:#e6f4ec; color:var(--ok); } .tag.no { background:#fdf0e6; color:var(--warn); }
.ok { background:#eef8f2; border-radius:8px; padding:10px 12px; margin-bottom:12px; }
.rrn { display:flex; align-items:center; gap:6px; } .rrn span { font-size:17px; white-space:nowrap; } .rrn input { max-width:160px; letter-spacing:2px; }
.sigwrap { border:2px dashed var(--line); border-radius:8px; background:#fff; touch-action:none; }
#sig { width:100%; height:160px; display:block; }
.up { margin:14px 0; } .upbtns { display:flex; flex-wrap:wrap; }
.thumb { max-width:100%; max-height:200px; border:1px solid var(--line); border-radius:6px; margin-top:6px; }
.agree { display:flex; gap:8px; align-items:flex-start; font-size:14px; } .agree input { width:auto; margin-top:4px; }
#pvPages canvas { width:100%; border:1px solid var(--line); margin:6px 0; box-shadow:0 1px 4px rgba(0,0,0,.08); }
.bar { height:8px; background:#e6e9ef; border-radius:4px; overflow:hidden; margin:8px 0; } .bar div { height:100%; width:0; background:var(--pri); transition:width .2s; }
#crop { position:fixed; inset:0; background:#111; z-index:50; display:flex; flex-direction:column; }
.cropbar { color:#fff; padding:10px 12px; font-size:14px; display:flex; flex-wrap:wrap; gap:4px; justify-content:center; align-items:center; }
#cropView { flex:1; overflow:auto; display:flex; align-items:center; justify-content:center; padding:16px; touch-action:none; }
.cropbox { position:relative; line-height:0; }
#cropImg { max-width:calc(100vw - 32px); max-height:calc(100vh - 150px); width:auto; height:auto; display:block; }
#cropSel { position:absolute; border:2px solid #4da3ff; box-shadow:0 0 0 9999px rgba(0,0,0,.55); cursor:move; touch-action:none; }
#cropSel i { position:absolute; width:26px; height:26px; background:#4da3ff; border:3px solid #fff; border-radius:50%; touch-action:none; }
#cropSel i[data-h=tl] { left:-3px; top:-3px; cursor:nwse-resize; } #cropSel i[data-h=tr] { right:-3px; top:-3px; cursor:nesw-resize; }
#cropSel i[data-h=bl] { left:-3px; bottom:-3px; cursor:nesw-resize; } #cropSel i[data-h=br] { right:-3px; bottom:-3px; cursor:nwse-resize; }
.cropbox { overflow:hidden; }
table.adm { width:100%; border-collapse:collapse; font-size:14px; }
table.adm th, table.adm td { border-bottom:1px solid var(--line); padding:8px 6px; text-align:left; vertical-align:top; }
textarea.sms { height:110px; font-size:14px; }
