/* qr-ui.css — PBS COLOR LAB QR 시스템 공통 디자인 (메인 사이트 톤: 블랙+마젠타+Pretendard) */
:root{
  --black:#0B0B0D; --paper:#FAFAF8; --magenta:#E6007E;
  --ink:#17171A; --ink-soft:#5C5C62; --line:#E3E1DC; --line-2:#EEECE7;
  --line-dark:#26262B; --on-black:#F4F2EE; --on-black-soft:#9A9AA1;
  --spectrum:linear-gradient(90deg,#7A1F12 0%,#C0341B 9%,#E2541C 18%,#F0871B 27%,#F2B11E 36%,#E7CE2A 44%,#B9C92F 52%,#5FA84A 60%,#2E9E7E 68%,#1E8FA8 76%,#2768B0 84%,#3B3DA0 92%,#5B2C8C 100%);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:inherit;text-decoration:none}
::selection{background:var(--magenta);color:#fff}

.eyebrow{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--magenta)}
.spectrum{height:4px;width:100%;background:var(--spectrum)}
.muted{color:var(--ink-soft)}

.card{background:#fff;border:1px solid var(--line);border-radius:4px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:inherit;font-size:.9rem;font-weight:700;padding:13px 22px;border:1px solid transparent;border-radius:3px;cursor:pointer;transition:background .18s,color .18s,border-color .18s;white-space:nowrap;letter-spacing:.01em}
.btn--primary{background:var(--magenta);color:#fff}
.btn--primary:hover{background:#c2006a}
.btn--dark{background:var(--black);color:var(--on-black)}
.btn--dark:hover{background:#000}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink)}
.btn.sm{padding:8px 13px;font-size:.78rem;font-weight:600;border-radius:2px}
.btn.block{width:100%}

input,select{font-family:inherit;width:100%;padding:13px 15px;font-size:1rem;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:3px;outline:none;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:#b7b4ad}
input:focus,select:focus{border-color:var(--magenta);box-shadow:0 0 0 3px rgba(230,0,126,.08)}
label{display:block;font-size:.7rem;letter-spacing:.1em;font-weight:700;color:var(--ink-soft);text-transform:uppercase;margin:0 0 7px 1px}

table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{padding:13px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}

/* 중앙 단일카드(로그인·출석) */
.stage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.sheet{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 30px 80px -40px rgba(11,11,13,.4)}
.sheet .pad{padding:38px 34px 34px}
.sheet .brandline{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.02em;font-size:.95rem}
.sheet .brandline b{color:var(--magenta)}

/* 관리자/토탈 페이지 폭 */
.page{max-width:920px;margin:0 auto;padding:clamp(20px,4vw,40px) clamp(16px,4vw,28px) 60px}
.page-head h1{font-size:clamp(1.5rem,3.4vw,2rem);font-weight:800;letter-spacing:-.02em;margin-top:8px}
.block-card{background:#fff;border:1px solid var(--line);border-radius:5px;padding:26px 26px;margin-bottom:18px}
.block-card>h2{font-size:1rem;font-weight:800;letter-spacing:-.01em;margin-bottom:18px;display:flex;align-items:center;gap:8px}
.field+.field{margin-top:14px}
