:root{--bg: #faf7f2;--surface: #ffffff;--text: #2a2522;--muted: #6f665f;--border: #e6ded4;--accent: #b5532c;--accent-text: #ffffff;--accent-soft: #f6e6dc;--danger: #b3261e;--warning-bg: #fff4d6;--radius: 10px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #1b1816;--surface: #25211e;--text: #efe9e3;--muted: #a89e95;--border: #3a3430;--accent: #e07a4f;--accent-text: #1b1816;--accent-soft: #3d2a20;--danger: #f2827a;--warning-bg: #3a3218;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2{line-height:1.2;margin:0 0 .5rem}h1{font-size:1.75rem}h2{font-size:1.15rem}a{color:var(--accent)}.muted{color:var(--muted)}.loading{padding:2rem;text-align:center;color:var(--muted)}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;text-decoration:none;cursor:pointer}button:disabled{opacity:.6;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.danger{color:var(--danger)}button.link{border:none;background:none;color:var(--accent);padding:.25rem 0}button.icon{padding:.25rem .6rem;color:var(--muted)}input,select,textarea{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}label{display:flex;flex-direction:column;gap:.3rem;font-weight:500}kbd{padding:.05rem .35rem;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;font:.85em ui-monospace,monospace}.error{color:var(--danger)}.warning{background:var(--warning-bg);padding:.75rem 1rem;border-radius:var(--radius)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.brand{font-weight:700;font-size:1.15rem;color:var(--text);text-decoration:none}.topbar nav{display:flex;align-items:center;gap:1rem}.topbar nav a:not(.button){color:var(--muted);text-decoration:none}.topbar nav a.active:not(.button){color:var(--text);font-weight:600}.page{max-width:960px;margin:0 auto;padding:1.5rem 1rem 4rem}.page.wide{max-width:1200px}.login{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(360px,100%);padding:2rem;display:flex;flex-direction:column;gap:1rem}.filters{display:flex;flex-direction:column;gap:.75rem}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem}.filter-row select{width:auto;flex:1 1 160px}.segmented{display:inline-flex;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.segmented label,.segmented button{flex-direction:row;padding:.45rem .8rem;font-weight:400;border:none;border-radius:0;cursor:pointer;font-size:.95rem}.segmented label input{position:absolute;opacity:0;pointer-events:none;width:auto}.segmented .active{background:var(--accent-soft);font-weight:600}.count{margin:1rem 0 .5rem;font-size:.9rem}.recipe-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.recipe-card{display:flex;flex-direction:column;gap:.35rem;height:100%;padding:1rem;color:inherit;text-decoration:none}.recipe-card:hover{border-color:var(--accent)}.recipe-card h2{margin:0}.recipe-card p{margin:0;font-size:.9rem}.category{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-weight:600}.tags{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.tag{padding:.1rem .6rem;border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:.85rem;text-decoration:none;border:none}.tag-input{width:180px}.empty{padding:2rem;text-align:center}.dropzone{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1.5rem;border:2px dashed var(--border);text-align:center}.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone-title{font-size:1.15rem;font-weight:600;margin:0}.dropzone-preview{max-height:240px;max-width:100%;border-radius:var(--radius);opacity:.6}.working{font-weight:600;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.4}}.review{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.5rem;align-items:start}.review-image{position:sticky;top:4.5rem}.review-image img{width:100%;max-height:calc(100vh - 6rem);object-fit:contain;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface)}.recipe-form{display:flex;flex-direction:column;gap:1rem}.recipe-form fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.4rem;min-width:0}.recipe-form legend{font-weight:600;padding:0 .25rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.ingredient-head,.ingredient-row{display:grid;grid-template-columns:4.5rem 7rem minmax(0,1fr) auto;gap:.4rem}.ingredient-head{font-size:.8rem;color:var(--muted)}.actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.recipe-header{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.recipe-actions{display:flex;flex-direction:column;gap:.75rem;align-items:flex-end}.recipe-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:2rem}.ingredients{padding-left:1.2rem}.ingredients li{margin-bottom:.3rem}.steps{padding-left:1.4rem}.steps li{margin-bottom:.9rem}.notes{white-space:pre-wrap}.original{margin-top:2rem}.original summary{cursor:pointer;color:var(--accent)}.original img{margin-top:1rem;max-width:100%;border-radius:var(--radius);border:1px solid var(--border)}@media(max-width:760px){.review,.recipe-body{grid-template-columns:1fr}.review-image{position:static}.review-image img{max-height:50vh}.grid-3{grid-template-columns:1fr 1fr}.recipe-actions{align-items:stretch}.ingredient-head,.ingredient-row{grid-template-columns:3.5rem 5rem minmax(0,1fr) auto}.topbar nav{gap:.6rem}}
