:root{--bg:#fbfaf7;--surface:#fff;--border:#e3e0d8;--text:#1d1c19;--muted:#6d6a62;--accent:#1f6f4a;--accent-soft:#e8f2ec;--danger:#a3301f;--radius:12px;--gutter:16px}@media (prefers-color-scheme:dark){:root{--bg:#15161a;--surface:#1e2026;--border:#32353d;--text:#ecebe8;--muted:#9b9891;--accent:#5dbb8c;--accent-soft:#1d3a2d;--danger:#e0806f}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.app{min-height:100dvh}.app-bar{z-index:10;padding:12px var(--gutter);background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand{color:var(--text);font-weight:650;text-decoration:none}.offline-pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.app-main{max-width:720px;padding:var(--gutter);margin:0 auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}h1{margin:0;font-size:24px}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px;font-size:15px}.muted{color:var(--muted)}.meta{color:var(--muted);margin-top:-8px}.input{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.input:focus-visible,.btn:focus-visible,.unit-select:focus-visible,.recipe-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search{margin-bottom:16px}.btn{font:inherit;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:6px;min-height:42px;padding:10px 14px;font-weight:550;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn-icon{min-width:42px;padding:0;font-size:20px;line-height:1}.header-actions{gap:8px;display:flex}.empty{text-align:center;color:var(--muted);justify-items:center;gap:16px;padding:48px 0;display:grid}.recipe-cards,.rows,.ingredient-list{margin:0;padding:0;list-style:none}.recipe-cards{gap:12px;display:grid}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;padding:14px;text-decoration:none;display:block}.recipe-card h2{text-transform:none;letter-spacing:0;color:var(--text);margin-bottom:4px;font-size:17px}.preview{color:var(--muted);margin:4px 0 0;font-size:14px}.section{margin-bottom:24px}.two-up{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{margin-bottom:16px;display:block}.field-label{margin-bottom:6px;font-size:14px;font-weight:550;display:block}.rows{gap:10px;margin-bottom:12px;display:grid}.ingredient-fields{grid-template-columns:72px 92px 1fr 42px;align-items:start;gap:6px;display:grid}.direction-fields{grid-template-columns:24px 1fr 42px;align-items:start;gap:6px;display:grid}.step-number{color:var(--muted);font-variant-numeric:tabular-nums;padding-top:12px}.step-input{resize:vertical}.unit-select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:42px;padding:10px 6px}.convert-hint{font:inherit;text-align:left;color:var(--accent);background:var(--accent-soft);cursor:pointer;border:none;border-radius:8px;margin-top:6px;padding:6px 10px;font-size:13px;display:inline-block}.ingredient-list li{border-bottom:1px solid var(--border);gap:10px;padding:8px 0;display:flex}.qty{font-variant-numeric:tabular-nums;min-width:92px;font-weight:600}.direction-list{gap:12px;padding-left:20px;display:grid}.editor-actions{justify-content:flex-end;gap:8px;padding-bottom:32px;display:flex}.error{border-radius:var(--radius);background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);margin-bottom:16px;padding:10px 12px}.confirm{inset-inline:var(--gutter);bottom:var(--gutter);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);justify-items:end;gap:12px;max-width:688px;margin:0 auto;padding:16px;display:grid;position:fixed;box-shadow:0 12px 32px #0000002e}.confirm p{justify-self:start;margin:0}@media (width<=420px){.ingredient-fields{grid-template-columns:64px 84px 1fr 42px}}.nav-group{align-items:baseline;gap:16px;display:flex}.nav-link{color:var(--muted);font-size:15px;font-weight:550;text-decoration:none}.nav-link:hover{color:var(--text)}.inline-form{flex:1;align-items:flex-start;gap:8px;display:flex}.inline-form .input{margin-bottom:0}.check-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.check{border-radius:var(--radius);cursor:pointer;align-items:center;gap:10px;padding:10px 8px;display:flex}.check:hover{background:var(--surface)}.check input{width:18px;height:18px;accent-color:var(--accent)}.check .count{font-variant-numeric:tabular-nums;margin-left:auto;font-size:14px}.cover-hero,.card-cover,.cover-thumb{background:var(--surface);object-fit:cover;width:100%;height:auto;display:block}.cover-hero{aspect-ratio:16/9;border-radius:var(--radius);margin-bottom:16px}.recipe-card.has-cover{padding-top:0;overflow:hidden}.card-cover{aspect-ratio:3;margin:0 -14px 12px}.cover-preview{margin-bottom:12px}.cover-thumb{aspect-ratio:16/9;border-radius:var(--radius);max-width:320px;margin-bottom:6px}.cover-preview .muted{font-size:14px}.cover-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden:focus-visible+label{outline:2px solid var(--accent);outline-offset:2px}
