:root{--color-primary: #16233A;--color-secondary: #1F5F8B;--color-bg: #D3E0E6;--color-surface: #F4F8FA;--color-text: #12202B;--color-text-muted: #5C7180;--color-line: #BFCED6;--color-green: #0F6E52;--color-green-bg: #D8EDE5;--color-amber: #97570C;--color-amber-bg: #F7E7CA;--color-red: #B02A2A;--color-red-bg: #F8DEDE;--font-heading: "Libre Franklin", "Segoe UI", system-ui, sans-serif;--font-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;--radius: 12px;--shadow-card: 0 8px 28px rgba(18, 32, 43, .1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-heading);color:var(--color-primary);line-height:1.2}.site-header{background:var(--color-primary);color:#fff;padding:14px 28px;display:flex;align-items:baseline;gap:12px}.site-header .brand{font-family:var(--font-heading);font-weight:700;font-size:1.05rem;letter-spacing:.02em;color:#fff}.site-header .strap{font-size:.8rem;color:#b8c7da;letter-spacing:.06em;text-transform:uppercase}.site-main{display:flex;justify-content:center;padding:48px 20px 32px}.site-footer{text-align:center;padding:20px;font-size:.8rem;color:#44566a}.card{background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow-card);width:100%;max-width:560px;padding:36px 40px 32px;animation:rise .42s cubic-bezier(.2,.7,.3,1) both}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.card{animation:none}}.card h1{font-size:1.5rem;margin-bottom:6px}.card .lede{color:var(--color-text-muted);margin-bottom:22px}.token-line{display:inline-block;background:#e1edf3;color:var(--color-secondary);border:1px solid #A9C9DA;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.04em;padding:4px 12px;margin-bottom:18px}.field{margin-bottom:20px}.field label{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px;color:var(--color-primary)}.field .hint{font-size:.8rem;color:var(--color-text-muted);margin-top:4px}input[type=text],textarea{width:100%;font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:#fff;border:1px solid var(--color-line);border-radius:8px;padding:10px 12px;transition:border-color .12s ease,box-shadow .12s ease}input[type=text]:focus,textarea:focus{outline:2px solid var(--color-secondary);outline-offset:1px;border-color:var(--color-secondary)}textarea{resize:vertical;min-height:96px}.score-group{display:flex;gap:8px}.score-option{position:relative}.score-option input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.score-option span{pointer-events:none;display:flex;align-items:center;justify-content:center;width:52px;height:44px;border:1px solid var(--color-line);border-radius:8px;background:#fff;font-weight:600;color:var(--color-text);cursor:pointer;transition:transform .1s ease,background .12s ease,color .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.score-option:hover span{transform:translateY(-2px);border-color:var(--color-secondary)}.score-option input:focus-visible+span{outline:2px solid var(--color-secondary);outline-offset:2px}.score-option input:checked+span{background:var(--color-secondary);border-color:var(--color-secondary);color:#fff}.score-legend{display:flex;justify-content:space-between;width:292px;font-size:.72rem;color:var(--color-text-muted);margin-top:4px}.btn-primary{font-family:var(--font-heading);font-weight:600;font-size:1rem;color:#fff;background:var(--color-primary);border:none;border-radius:8px;padding:12px 26px;cursor:pointer;transition:background .12s ease,transform .1s ease}.btn-primary:hover:not(:disabled){background:#1e3252;transform:translateY(-1px)}.btn-primary:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px}.btn-primary:disabled{opacity:.6;cursor:wait}.error-text{color:var(--color-red);background:var(--color-red-bg);border-radius:8px;padding:10px 14px;font-size:.9rem;margin-bottom:16px}.notice-local{color:var(--color-amber);background:var(--color-amber-bg);border-radius:8px;padding:10px 14px;font-size:.9rem;margin-bottom:16px}.success-box{text-align:center;padding:26px 8px 10px}.success-box .tick{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--color-green-bg);color:var(--color-green);font-size:1.7rem;margin-bottom:14px}.success-box h2{margin-bottom:8px}.success-box p{color:var(--color-text-muted)}
