:root{--bg:#f6f7f9;--surface:#ffffff;--text:#1a1d22;--muted:#5b6470;--border:#e2e6eb;--primary:#2660d4;--primary-dark:#1c4ba6;--success:#1f8f4a;--warning:#b85c00;--danger:#b3261e;--shadow:0 2px 10px rgba(20,30,50,0.06)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:inherit}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.app-header strong{font-size:16px}.app-header nav{display:flex;gap:14px;flex-wrap:wrap}.app-header nav a{color:var(--muted);font-size:14px}.app-header .who{font-size:13px;color:var(--muted)}.container{max-width:880px;margin:0 auto;padding:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px;box-shadow:var(--shadow);margin-bottom:16px}.card h2{margin:0 0 10px;font-size:18px}.card .row{display:flex;justify-content:space-between;margin:4px 0;color:var(--muted);font-size:14px}.button{display:inline-block;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:12px 18px;cursor:pointer;font-weight:600}.button:hover{background:var(--primary-dark)}.button.secondary{background:#fff;color:var(--primary);border:1px solid var(--primary)}.button.warn{background:var(--warning)}.button.danger{background:var(--danger)}.button:disabled{opacity:.6;cursor:not-allowed}.button-row{display:flex;gap:10px;flex-wrap:wrap}.big-cta{width:100%;padding:18px;font-size:18px;border-radius:12px}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#eef2f7;color:var(--muted)}.pill.ok{background:#e2f6ea;color:var(--success)}.pill.warn{background:#fbeed1;color:var(--warning)}.pill.danger{background:#fadcd9;color:var(--danger)}.banner{background:#fff8df;border:1px solid #f0d97a;color:#6e5510;padding:12px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.notice-banner{background:#eaf2ff;border:1px solid #b6cdf7;color:#1c4ba6;padding:10px 14px;border-radius:8px;font-size:13px}label{font-size:13px;font-weight:600;color:var(--muted);display:block;margin-bottom:6px}input[type=date],input[type=email],input[type=number],input[type=text],input[type=time],select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff}textarea{min-height:80px;resize:vertical}.form-row{margin-bottom:12px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}th{background:#f0f3f7;font-weight:600;color:var(--muted)}.thumb{width:64px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.muted{color:var(--muted);font-size:13px}.demo-warn{background:#fce4e3;border:1px solid #f1b3ae;color:#7a1f19;padding:10px 14px;border-radius:8px;font-size:13px;margin:10px 0}.checkin-stage{min-height:100vh;background:#07090d;color:#fff;display:flex;flex-direction:column}.checkin-clock{text-align:center;padding:18px 12px 6px;background:rgba(0,0,0,.6)}.checkin-date{font-size:16px;letter-spacing:1px;opacity:.85}.checkin-time{font-size:56px;font-weight:800;letter-spacing:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.05}.checkin-meta{font-size:13px;opacity:.8}.checkin-preview{flex:1 1;display:flex;align-items:center;justify-content:center;position:relative;background:#000;min-height:280px}.checkin-preview canvas,.checkin-preview img,.checkin-preview video{width:100%;max-height:70vh;object-fit:cover;background:#000}.checkin-guide{padding:12px 16px;background:rgba(0,0,0,.55);font-size:13px;text-align:center;line-height:1.55}.checkin-actions{display:flex;gap:10px;padding:14px;background:rgba(0,0,0,.8)}.checkin-actions .button{flex:1 1;border-radius:10px}