@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800;900&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800&display=swap";:root{--accent:#006747;--accent-dim:#004d35;--accent-bg:#0067470f;--pine-green:#1b5e3b;--fairway-green:#2d7a50;--gold:#c8a951;--gold-light:#d4b96a;--gold-pale:#f5edd4;--gold-badge:#d4a843;--silver:#8a8d8f;--bronze:#a0714f;--bg:#faf7f0;--cream-dark:#f0ebe0;--bg-card:#fff;--bg-input:#f0ebe0;--card-border:#e8e3d8;--text:#1a2e1a;--text-muted:#5c6b5c;--text-dim:#8a9589;--border:#e8e3d8;--border-light:#00674733;--positive:#2d7a50;--negative:#c4453c;--warning:#d4a843;--danger:#c4453c;--success:#2d7a50;--teal:#1b5e3b;--status-error:#ef4444;--status-warning:#f59e0b;--status-info:#3b82f6;--status-synced:#10b981;--gold-dark:#8b6914;--on-dark:#fff;--on-dark-muted:#ffffffb3;--on-dark-dim:#fff9;--on-dark-subtle:#fff6;--on-dark-ghost:#ffffff26;--on-dark-border:#ffffff80;--shadow-accent:0 4px 16px #0067474d;--shadow-accent-sm:0 2px 8px #00674740;--shadow-accent-xs:0 3px 10px #00674726;--shadow-accent-pulse:0 0 0 3px #00674726;--shadow-accent-ring:0 0 0 3px #00674714;--shadow-card:0 2px 12px #0000000d;--shadow-gold:0 2px 8px #c8a95166;--shadow-gold-sm:0 2px 8px #c8a9514d;--overlay:#004d35b3;--gradient-green:linear-gradient(180deg, #006747 0%, #004d35 100%);--gradient-green-135:linear-gradient(135deg, #006747, #1b5e3b);--gradient-gold:linear-gradient(90deg, transparent, #c8a951, transparent);--accent-alpha-06:#0067470f;--accent-alpha-08:#00674714;--accent-alpha-10:#0067471a;--gold-alpha-09:#c8a95117;--gold-alpha-12:#c8a9511f;--gold-badge-alpha:#d4a84317;--negative-alpha-05:#c4453c0d;--font-display:"Playfair Display", serif;--font-body:"DM Sans", sans-serif;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:15px;--text-xl:16px;--text-2xl:17px;--text-3xl:18px;--text-4xl:20px;--text-5xl:22px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23d4cfc4' fill-opacity='0.12'%3E%3Cpath d='M0 0h1v1H0zM4 4h1v1H4zM8 0h1v1H8zM12 4h1v1H12zM16 0h1v1H16zM20 4h1v1H20zM24 0h1v1H24zM28 4h1v1H28zM32 0h1v1H32zM36 4h1v1H36zM2 2h1v1H2zM6 6h1v1H6zM10 2h1v1H10zM14 6h1v1H14zM18 2h1v1H18zM22 6h1v1H22zM26 2h1v1H26zM30 6h1v1H30zM34 2h1v1H34zM38 6h1v1H38z'/%3E%3C/g%3E%3C/svg%3E");font-weight:400}body{overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700}input,button,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}input{background:var(--bg-card);border:1.5px solid var(--border);color:var(--text);border-radius:12px;outline:none;padding:14px 16px;font-size:16px;transition:border-color .15s,box-shadow .15s}input:focus{border-color:var(--accent);box-shadow:var(--shadow-accent-ring)}input::placeholder{color:var(--text-dim)}input:disabled{border:1.5px solid var(--border);background:var(--cream-dark);color:var(--text-dim);cursor:not-allowed}input.error{border:2px solid var(--negative);background:#c4453c05;box-shadow:0 0 0 3px #c4453c14}.input-error-message{font-family:var(--font-body);color:var(--negative);margin-top:4px;font-size:12px}.screen{flex-direction:column;max-width:440px;min-height:100%;margin:0 auto;padding:24px;display:flex}.card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:16px;padding:16px}.btn-primary{background:var(--accent);color:var(--on-dark);width:100%;box-shadow:var(--shadow-accent);border-radius:14px;padding:16px;font-size:17px;font-weight:700;transition:opacity .15s}.btn-primary:disabled{background:var(--cream-dark);color:var(--text-dim);box-shadow:none;cursor:not-allowed}.btn-primary:not(:disabled):hover{opacity:.9}.btn-secondary{border:2px solid var(--accent);color:var(--accent);width:100%;box-shadow:none;background:0 0;border-radius:14px;padding:16px;font-size:17px;font-weight:700;transition:border-color .15s}.btn-secondary:hover{border-color:var(--accent-dim);color:var(--accent-dim)}.pill{cursor:pointer;border:1px solid var(--border);background:var(--bg-card);min-height:44px;color:var(--text-muted);border-radius:20px;justify-content:center;align-items:center;padding:8px 20px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.pill.active{background:var(--accent);color:var(--on-dark);border-color:var(--accent)}.label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:12px;font-weight:600}.gold-divider{background:var(--gradient-gold);width:60px;height:2px;margin:0 auto}.section-label{font-family:var(--font-body);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:700}.body-label{font-family:var(--font-body);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.status-dot--connected{background:var(--accent);box-shadow:var(--shadow-accent-pulse);animation:2s ease-in-out infinite pulse}.status-dot--disconnected{background:var(--danger)}.score-status{font-family:var(--font-body);font-size:var(--text-xs);border-radius:4px;align-items:center;gap:3px;padding:1px 6px;font-weight:600;display:inline-flex}.score-status--pending{background:var(--gold-badge-alpha);color:var(--gold-badge)}.score-status--confirmed{color:var(--success);background:#2d7a5014}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes pulse{0%,to{box-shadow:var(--shadow-accent-pulse)}50%{box-shadow:var(--shadow-accent-ring)}}@keyframes splash-fill{0%{width:0}to{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
