:root{--bg: #f4f6fa;--card: #ffffff;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--accent: #2563eb;--accent-ink: #ffffff;--ok: #16a34a;--warn: #d97706;--bad: #dc2626;--radius: 14px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Apple SD Gothic Neo,Pretendard,Malgun Gothic,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}#root{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 12px) 18px 12px;background:#f4f6faeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar h1{font-size:17px;margin:0;letter-spacing:-.02em}.topbar nav{display:flex;gap:4px}.topbar nav a{text-decoration:none;color:var(--muted);font-size:13.5px;font-weight:600;padding:7px 10px;border-radius:9px}.topbar nav a.active{color:var(--accent);background:#e8efff}main{flex:1;padding:16px 16px calc(env(safe-area-inset-bottom) + 28px)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:14px}.card h2{font-size:15px;margin:0 0 12px;letter-spacing:-.01em}.hint{color:var(--muted);font-size:12.5px;line-height:1.6;margin:6px 0 0}label.field{display:block;margin-bottom:12px}label.field span{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin-bottom:5px}input[type=text],input[type=tel],input[type=email],input[type=password],textarea{width:100%;padding:11px 12px;font-size:16px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe;color:var(--ink);font-family:inherit}input:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:var(--accent)}textarea{resize:vertical;min-height:96px;line-height:1.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 16px;font-size:16px;font-weight:700;border:none;border-radius:12px;cursor:pointer;background:var(--accent);color:var(--accent-ink);font-family:inherit}.btn:disabled{opacity:.5;cursor:default}.btn.secondary{background:#eef2f7;color:var(--ink)}.btn.small{width:auto;padding:9px 14px;font-size:14px;border-radius:10px}.btn.danger{background:#fee2e2;color:var(--bad)}.scan-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:100%;padding:44px 20px;margin:6px 0 4px;border:2px dashed #c7d2e2;border-radius:18px;background:#fff;color:var(--ink);font-size:17px;font-weight:700;cursor:pointer;font-family:inherit}.scan-cta .icon{font-size:40px}.scan-cta small{color:var(--muted);font-weight:500;font-size:13px}.preview-img{width:100%;border-radius:12px;border:1px solid var(--line)}.row{display:flex;gap:10px}.row>*{flex:1}.badge{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px}.badge.ok{background:#dcfce7;color:var(--ok)}.badge.warn{background:#fef3c7;color:var(--warn)}.badge.bad{background:#fee2e2;color:var(--bad)}.badge.muted{background:#eef2f7;color:var(--muted)}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.toggle-row:last-child{border-bottom:none}.history-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}.history-item:last-child{border-bottom:none}.history-item .who{font-weight:700;font-size:15px}.history-item .sub{color:var(--muted);font-size:12.5px;margin-top:3px}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid #dbeafe;border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;text-align:center}.error-text{color:var(--bad);font-size:13.5px;margin:8px 0 0}.mock-banner{background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:14px;line-height:1.5}.result-line{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.result-line:last-child{border-bottom:none}.kv{margin:0}.kv dt{font-size:12px;color:var(--muted);font-weight:600;margin-top:10px}.kv dd{margin:2px 0 0;font-size:15px;white-space:pre-wrap;word-break:break-all}
