:root{--color-bg: #ffffff;--color-text: #1a1a2e;--color-text-secondary: #555770;--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--color-accent-light: #eff6ff;--color-border: #e2e8f0;--color-danger: #dc2626;--color-danger-bg: #fef2f2;--color-warning: #f59e0b;--color-warning-bg: #fffbeb;--color-success: #16a34a;--color-success-bg: #f0fdf4;--font-body: "Inter", system-ui, sans-serif;--max-width: 800px;--spacing-page: 1.5rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-page)}.hero{text-align:center;padding:4rem 0 3rem}.hero h1{font-size:clamp(2rem,5vw,2.75rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.75rem}.hero-tagline{font-size:1.25rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:1rem}.hero-description{max-width:560px;margin:0 auto 2rem;color:var(--color-text-secondary)}.hero-cta{display:inline-block;background:var(--color-accent);color:#fff;padding:.875rem 2rem;border-radius:8px;font-weight:600;text-decoration:none;transition:background .15s ease}.hero-cta:hover{background:var(--color-accent-hover)}.subscribe-section,.recall-feed{padding:3rem 0;border-top:1px solid var(--color-border)}.subscribe-section h2,.recall-feed h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.subscribe-description{color:var(--color-text-secondary);margin-bottom:1.5rem}.form-wrapper{max-width:480px}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.375rem}.form-input,.form-select{display:block;width:100%;padding:.625rem .75rem;font-size:1rem;font-family:var(--font-body);border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);transition:border-color .15s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px #2563eb1a}.filter-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.25rem 0}.btn-primary{display:inline-block;background:var(--color-accent);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:600;font-size:1rem;font-family:var(--font-body);cursor:pointer;transition:background .15s ease}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-text{background:none;border:none;color:var(--color-accent);font-size:.875rem;font-family:var(--font-body);cursor:pointer;padding:0;margin-top:.75rem}.btn-text:hover{text-decoration:underline}.alert{padding:1rem;border-radius:6px;margin-top:1rem;font-size:.9375rem}.alert-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid currentColor}.alert-error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid currentColor}.loading-text,.empty-text{color:var(--color-text-secondary);font-style:italic}.recall-list{list-style:none;display:flex;flex-direction:column;gap:1rem}.recall-card{padding:1.25rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);transition:border-color .15s ease}.recall-card:hover{border-color:var(--color-accent)}.recall-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.recall-date,.recall-region{font-size:.8125rem;color:var(--color-text-secondary)}.recall-badge{font-size:.75rem;font-weight:600;padding:.125rem .5rem;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-neutral{background:#f1f5f9;color:#64748b}.recall-title{font-size:1rem;font-weight:600;line-height:1.4;margin-bottom:.375rem}.recall-title a{color:var(--color-text);text-decoration:none}.recall-title a:hover{color:var(--color-accent);text-decoration:underline}.recall-reason{font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.375rem}.recall-brand{font-size:.8125rem;color:var(--color-text-secondary)}.unsubscribe-page{text-align:center;padding:6rem 0;max-width:480px;margin:0 auto}.unsubscribe-page h1{font-size:1.75rem;font-weight:700;margin-bottom:1rem}.unsubscribe-page p{color:var(--color-text-secondary);margin-bottom:2rem}.btn-secondary{display:inline-block;padding:.75rem 1.5rem;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text);font-weight:500;text-decoration:none;transition:border-color .15s ease,background .15s ease}.btn-secondary:hover{border-color:var(--color-accent);background:var(--color-accent-light)}.site-footer{border-top:1px solid var(--color-border);padding:2rem 0;margin-top:3rem}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.footer-built-by{font-size:.875rem;color:var(--color-text-secondary)}.footer-built-by a{color:var(--color-accent);text-decoration:none}.footer-built-by a:hover{text-decoration:underline}.footer-links{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:var(--color-text-secondary)}.footer-links a{color:var(--color-text-secondary);text-decoration:none}.footer-links a:hover{color:var(--color-accent)}.footer-divider{color:var(--color-border)}.footer-copyright{font-size:.75rem;color:var(--color-text-secondary);opacity:.7}@media(max-width:640px){:root{--spacing-page: 1rem}.hero{padding:2.5rem 0 2rem}.hero-cta{display:block;text-align:center}.subscribe-section,.recall-feed{padding:2rem 0}.filter-row{grid-template-columns:1fr;gap:.75rem}.form-select{min-height:44px}.recall-header{flex-direction:column;align-items:flex-start;gap:.375rem}.recall-card{padding:1rem}}
