:root{--bg: #0b1f3a;--surface: #ffffff;--ink: #0b1f3a;--muted: #5b6b82;--accent: #1a73e8;--danger: #c0392b;--radius: 16px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f4f6f9;color:var(--ink);-webkit-tap-highlight-color:transparent}.screen{min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);max-width:480px;margin:0 auto}.kiosk-screen{position:relative;min-height:100dvh;max-width:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;background:var(--bg);color:#fff;text-align:center;padding:24px}.header{padding:20px 4px 12px}.header h1{font-size:22px;margin:0 0 4px}.header p{margin:0;color:var(--muted);font-size:14px}.card{background:var(--surface);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px #0b1f3a14}.tap-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.tap-item{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 16px;background:var(--surface);border:1px solid #e4e8ef;border-radius:var(--radius);font-size:16px;font-weight:600;text-align:left;color:var(--ink);cursor:pointer}.tap-item:active{background:#eef2f8}.avatar{width:44px;height:44px;border-radius:50%;background:#dfe6f0;object-fit:cover;flex-shrink:0}.avatar-lg{width:128px;height:128px;border-radius:50%;background:#dfe6f0;object-fit:cover;margin:0 auto 16px;display:block}.search-input{width:100%;font-size:16px;padding:14px 16px;border-radius:999px;border:1px solid #d7dee8;outline:none}.search-input:focus{border-color:var(--accent)}.muted{color:var(--muted)}.center{text-align:center}.btn{display:inline-block;padding:14px 20px;border-radius:999px;border:none;background:var(--accent);color:#fff;font-size:16px;font-weight:600;cursor:pointer;text-align:center}.btn-secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}.field-row{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid #eef1f5}.field-row .label{width:96px;flex-shrink:0;color:var(--muted);font-size:13px}.field-row .value{font-size:16px;word-break:break-word}.qr-box{background:#fff;padding:20px;border-radius:20px;line-height:0}.countdown{font-variant-numeric:tabular-nums;font-size:14px;opacity:.8}.spinner{margin:40px auto;width:28px;height:28px;border-radius:50%;border:3px solid #dfe6f0;border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{background:#fdecea;color:var(--danger);padding:12px 16px;border-radius:12px;font-size:14px;margin-bottom:12px}.success-banner{background:#eafaf1;color:#1e7e42;padding:12px 16px;border-radius:12px;font-size:14px;margin-bottom:12px}.form-group{margin-bottom:14px}.field-label{display:block;font-size:13px;color:var(--muted);margin:0 0 6px}.field-input,.field-select{width:100%;font-size:16px;padding:14px 16px;border-radius:12px;border:1px solid #d7dee8;outline:none;background:#fff;color:var(--ink)}.field-input:focus,.field-select:focus{border-color:var(--accent)}.phone-row{display:flex;gap:8px}.phone-row .field-select{flex:0 0 112px}.badge-card{width:100%;max-width:280px;text-align:center;padding:24px 20px}.badge-label{font-size:12px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.badge-photo{width:96px;height:96px;margin-bottom:8px}.badge-name{font-size:20px;font-weight:600}.badge-divider{border-top:1px solid #eef1f5;margin:16px 0}.badge-visited-name{font-size:16px;font-weight:600}
