:root{--bg:#fffaf3;--surface:#fff;--text:#15374d;--muted:#496276;--border:#e9eeee;--accent:#168d80;--accent-contrast:#fff;--coral:#fc918a;--yellow:#ffc756;--mint:#e5f7f2;--warn-bg:#fff5da;--warn-border:#ffc756;--severe:#c2413a;--moderate:#9a5b00;--mild:#2f6f9a;--radius:20px;--max:46rem;--display:"Fredoka", "Trebuchet MS", sans-serif;--body:"Nunito Sans", "Segoe UI", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:17px/1.6 var(--body);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-underline-offset:.15em}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}h1,h2,h3,h4{line-height:1.2;font-family:var(--display);margin:1.6em 0 .5em;font-weight:600}h1{margin-top:.6em;font-size:clamp(1.8rem,5vw,2.4rem)}p,ul,ol{margin:0 0 1em}.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}.site-header{border-bottom:1px solid var(--border);background:var(--surface)}.site-header .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.25rem;padding-top:.9rem;padding-bottom:.9rem;display:flex}.brand{color:#229f8e;align-items:baseline;line-height:1;text-decoration:none;display:inline-flex;position:relative}.brand-logo{width:auto;height:44px;display:block}.brand-word{font-family:var(--display);letter-spacing:-2px;font-size:34px;font-weight:600;display:inline-block;transform:rotate(-2deg)}.brand-word .coral{color:#f77779}.brand-word .orange{color:#ffc450}.brand-heart{color:#fa8681;font-size:10px;position:absolute;top:-7px;left:31px;transform:rotate(14deg)}.nav{flex-wrap:wrap;gap:.25rem 1rem;margin:0;padding:0;font-size:.95rem;list-style:none;display:flex}.nav a{color:var(--text);font-size:.85rem;font-weight:800;text-decoration:none}.nav a:hover{color:var(--accent)}main{padding:1.5rem 0 3rem}.lede{color:var(--muted);font-size:1.15rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1rem;padding:1.1rem 1.25rem}.steps{counter-reset:step;padding:0;list-style:none}.steps li{counter-increment:step;margin-bottom:1rem;padding-left:2.6rem;position:relative}.steps li:before{content:counter(step);background:var(--accent);width:1.8rem;height:1.8rem;color:var(--accent-contrast);border-radius:50%;place-items:center;font-size:.95rem;font-weight:700;display:grid;position:absolute;top:.05rem;left:0}.notice{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);margin:0 0 1.25rem;padding:.8rem 1rem}.draft{font-weight:600}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding:1.5rem 0 2rem;font-size:.9rem}.site-footer ul{flex-wrap:wrap;gap:.25rem 1rem;margin:0 0 .75rem;padding:0;list-style:none;display:flex}.btn{font-family:var(--body);background:var(--accent);color:var(--accent-contrast);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.6rem 1.2rem;font-weight:800;text-decoration:none;display:inline-block}.btn[disabled]{opacity:.6;cursor:default}dl.faq dt{margin-top:1.2rem;font-weight:650}dl.faq dd{color:var(--text);margin:.3rem 0 0}.share{padding:1.5rem 0 2.5rem}.share h1{margin-bottom:.25rem}.share .updated{color:var(--muted);margin-bottom:1.25rem;font-size:.9rem}.allergen-list{margin:0 0 1.25rem;padding:0;list-style:none}.allergen-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.allergen-list li:last-child{border-bottom:0}.level{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;font-size:.85rem;font-weight:700}.level-severe{color:var(--severe)}.level-moderate{color:var(--moderate)}.level-mild{color:var(--mild)}.emergency{border-left:4px solid var(--severe)}.emergency h2{text-transform:uppercase;letter-spacing:.04em;color:var(--severe);margin-top:0;font-size:1rem}.get-app{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.get-app p{margin:0}.pin-form label{margin-bottom:.4rem;font-weight:600;display:block}.pin-form input{font:inherit;letter-spacing:.3em;border:1px solid var(--border);background:var(--bg);width:10ch;color:var(--text);border-radius:8px;margin-right:.6rem;padding:.45rem .6rem;font-size:1.3rem}.pin-form .error{color:var(--severe);margin-top:.6rem}.center{text-align:center}.small{color:var(--muted);font-size:.9rem}.wrap.share{padding-left:16px;padding-right:16px}.nav .btn{color:#fff;padding:.45rem 1rem}.admin{background:var(--bg);min-height:100vh}.admin-bar{background:var(--surface);border-bottom:1px solid var(--border)}.admin-bar-inner{align-items:center;gap:.75rem;padding-top:.6rem;padding-bottom:.6rem;display:flex}.admin-bar .brand-logo{height:34px}.admin-bar-title{color:var(--muted);flex:1;font-weight:800}.admin-main{padding:1rem 16px 4rem}.admin-main h1{margin-top:.4em}.admin-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:.4rem 0;font-weight:700;text-decoration:underline}.admin-form{gap:.5rem;display:grid}.admin-form label{font-weight:700}.admin-input{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:.7rem .8rem;font-size:1.05rem}.admin-code{letter-spacing:.35em;text-align:center;font-size:1.4rem}.admin-inline{gap:.5rem;display:flex}.admin-inline .admin-input{flex:1}.admin-btn-wide{width:100%;min-height:50px;font-size:1.05rem}.admin-btn-secondary{background:var(--surface);color:var(--accent);border:2px solid var(--accent)}.admin-btn-danger{background:var(--surface);color:var(--severe);border:2px solid var(--severe)}.admin-actions{gap:.6rem;margin-top:1.5rem;display:grid}.admin-error{color:var(--severe);font-weight:700}.admin-ok{color:var(--accent);font-weight:700}.admin-warn{background:var(--warn-bg);border-left:4px solid var(--warn-border);border-radius:6px;margin:.5rem 0;padding:.4rem .6rem}.admin-meter{background:var(--mint);border-radius:999px;height:10px;margin-top:.5rem;overflow:hidden}.admin-meter span{background:var(--accent);height:100%;display:block}.admin-group h2{font-size:1.2rem}.admin-list{gap:.6rem;margin:0 0 1rem;padding:0;list-style:none;display:grid}.admin-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);gap:.2rem;padding:.9rem 1rem;text-decoration:none;display:grid}.admin-row:hover{border-color:var(--accent)}.admin-row-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.admin-row-food{text-transform:capitalize;font-size:1.1rem}.admin-badge{white-space:nowrap;background:var(--mint);color:var(--accent);border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:800}.admin-badge-ready{background:var(--yellow);color:#5a3d00}.admin-badge-failed,.admin-badge-publish_failed{color:var(--severe);background:#fde3e1}.admin-badge-rejected{color:var(--muted);background:#eceff1}.admin-badge-published{background:var(--accent);color:#fff}.admin-term-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;display:flex}.admin-term-word{font-family:var(--display);font-size:1.5rem;font-weight:600}.admin-term-warn{border-color:var(--warn-border)}.admin-sources{margin:.4rem 0 .8rem;padding-left:1.1rem}.admin-sources li{word-break:break-word;margin:.25rem 0}.admin-toggle{border:0;grid-template-columns:1fr 1fr;gap:.5rem;margin:0;padding:0;display:grid}.admin-toggle-opt{position:relative}.admin-toggle-opt input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.admin-toggle-opt span{text-align:center;border:2px solid var(--border);border-radius:12px;min-height:48px;padding:.8rem;font-weight:800;display:block}.admin-toggle-yes input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.admin-toggle-no input:checked+span{background:var(--severe);border-color:var(--severe);color:#fff}.admin-toggle-opt input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}.admin-toggle:disabled .admin-toggle-opt span{opacity:.6}.admin-lookalikes{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.admin-check{align-items:flex-start;gap:.6rem;display:flex}.admin-check input{flex:none;width:22px;height:22px;margin-top:.15rem}.admin-signin{max-width:26rem;margin:2rem auto}.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}
