:root { --rbi-navy: #1C1A5C; --rbi-cyan: #1ED5FF; --rbi-text: #333333; --rbi-bg: #F5F5F7; --rbi-muted: #373289; --rbi-label: #595959; --rbi-border: #b7c0c8; --rbi-track: #cfd8e0; --rbi-error-bg: #fde8e8; --rbi-error: #8a1c1c; --rbi-notice-bg: #fff6df; --rbi-notice: #5a4410; }
* { box-sizing: border-box; }
body { margin: 0; font: 17px/1.4 system-ui, sans-serif; color: var(--rbi-text); background: var(--rbi-bg); }
main { max-width: 480px; margin: 0 auto; padding: 16px; }
h1 { color: var(--rbi-navy); font-size: 22px; margin: 8px 0 16px; }
.bar { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 24px; font-size: 14px; }
.btn { display: block; width: 100%; padding: 16px; border: 0; border-radius: 999px; background: var(--rbi-cyan); color: var(--rbi-navy); font-weight: 700; font-size: 18px; text-align: center; cursor: pointer; text-decoration: none; }
.btn.big { padding: 48px 16px; font-size: 24px; border-radius: 24px; }
.btn.small { width: auto; padding: 8px 12px; font-size: 14px; background: var(--rbi-muted); color: #fff; }
.btn.alt { background: var(--rbi-navy); color: #fff; margin-top: 12px; }
label { display: block; margin: 12px 0 4px; font-size: 14px; color: var(--rbi-label); }
input[type=text], input[type=email], input[type=tel], textarea { width: 100%; padding: 12px; font: inherit; border: 1px solid var(--rbi-border); border-radius: 8px; background: #fff; }
textarea { min-height: 90px; }
.thumb { max-width: 100%; max-height: 160px; border-radius: 8px; display: block; margin-bottom: 8px; }
.error { background: var(--rbi-error-bg); color: var(--rbi-error); padding: 12px; border-radius: 8px; margin: 12px 0; }
.spinner { width: 48px; height: 48px; border: 6px solid var(--rbi-track); border-top-color: var(--rbi-navy); border-radius: 50%; margin: 48px auto 12px; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.center { text-align: center; }
.hidden-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.site-header { background: #fff; border-bottom: 3px solid var(--rbi-navy); padding: 10px 16px; }
.site-header img { display: block; height: 56px; max-width: 480px; margin: 0 auto; }
:focus-visible, input:focus, textarea:focus { outline: 3px solid var(--rbi-cyan); outline-offset: 2px; }
.hidden-input:focus-visible + .btn, .btn:has(+ .hidden-input:focus-visible) { outline: 3px solid var(--rbi-cyan); outline-offset: 2px; }
.notice { background: var(--rbi-notice-bg); color: var(--rbi-notice); padding: 12px; border-radius: 8px; margin: 12px 0; }
