:root{--bg: #0f172a;--panel: #1e293b;--text: #e2e8f0;--muted: #94a3b8;--accent: #3b82f6;--error: #f87171;--border: #334155}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.muted{color:var(--muted)}.error{color:var(--error);font-size:.9rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1.5rem}.auth{width:min(380px,100%);display:flex;flex-direction:column;gap:.75rem}.auth h1{margin:0;font-size:1.4rem}.auth p{margin:0 0 .5rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}input{padding:.6rem .7rem;border-radius:9px;border:1px solid var(--border);background:#0b1220;color:var(--text);font-size:1rem}input:focus{outline:2px solid var(--accent);border-color:var(--accent)}button{padding:.65rem .9rem;border-radius:9px;border:none;background:var(--accent);color:#fff;font-size:1rem;cursor:pointer}button:disabled{opacity:.6;cursor:default}button.link{background:none;color:var(--muted);font-size:.85rem;padding:.3rem}button.link:hover{color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--border)}.spacer{flex:1}.content{padding:1.5rem;max-width:900px;width:100%;margin:0 auto}.content .card h2{margin-top:0}.nav{display:flex;gap:.25rem;margin-left:1rem}.tab{background:none;color:var(--muted);padding:.4rem .7rem;font-size:.9rem}.tab.on{background:#0b1220;color:var(--text)}.stack{display:flex;flex-direction:column;gap:1rem}.card.stack{gap:.75rem}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.small{font-size:.85rem}.search{width:100%}.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chips.mini{gap:.3rem}.chip{background:#0b1220;color:var(--muted);border:1px solid var(--border);padding:.3rem .6rem;border-radius:999px;font-size:.8rem}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.chip.static{cursor:default}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.recipe-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:0;overflow:hidden;text-align:left;color:var(--text);display:flex;flex-direction:column}.recipe-card:hover{border-color:var(--accent)}.recipe-thumb{width:100%;height:120px;object-fit:cover;background:#0b1220}.recipe-thumb.placeholder{display:grid;place-items:center;font-size:2rem}.recipe-card-body{padding:.7rem;display:flex;flex-direction:column;gap:.35rem}.import-box{border-style:dashed}.ingredient-row .qty{width:70px}.ingredient-row .unit{width:90px}.ingredient-row input:not(.qty):not(.unit){flex:1;min-width:120px}button.icon{background:none;color:var(--muted);padding:.3rem .5rem}button.secondary{background:#0b1220;color:var(--text);border:1px solid var(--border)}button.danger{background:none;color:var(--error);border:1px solid var(--error)}textarea{padding:.6rem .7rem;border-radius:9px;border:1px solid var(--border);background:#0b1220;color:var(--text);font-size:.95rem;font-family:inherit;resize:vertical}.recipe-hero{width:100%;max-height:320px;object-fit:cover;border-radius:12px}.ingredients{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem}.steps{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.6rem}.steps li{padding-left:.3rem}select{padding:.6rem .7rem;border-radius:9px;border:1px solid var(--border);background:#0b1220;color:var(--text);font-size:1rem}.badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;vertical-align:middle}.badge.red{background:#f8717126;color:#fca5a5}.badge.amber{background:#fbbf2426;color:#fcd34d}.badge.muted-badge{background:#0b1220;color:var(--muted);font-weight:400}.anti-gaspi{border-color:#fbbf2466}.stock-row{padding:.5rem 0;border-bottom:1px solid var(--border)}.stock-row:last-child{border-bottom:none}button.danger-icon{color:var(--error)}.scan-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:grid;place-items:center;z-index:50;padding:1rem}.scan-modal{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:1rem;display:flex;flex-direction:column;gap:.6rem;align-items:center;width:min(420px,100%)}.scan-video{width:100%;border-radius:10px;background:#000;max-height:60vh}.recipe-card{position:relative}.recipe-open{cursor:pointer;display:flex;flex-direction:column}.recipe-card.sel{outline:2px solid var(--accent)}.select-box{position:absolute;top:6px;left:6px;z-index:2;background:#0000008c;border-radius:6px;padding:3px 5px;display:flex}.select-box input{width:18px;height:18px;cursor:pointer}.selection-bar{border-color:var(--accent)}.green-badge{background:#2dd4bf26;color:#5eead4}.availability{list-style:none;padding-left:0}.availability li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:8px}.availability li.missing{background:#f8717114}.availability li.in-stock{background:#2dd4bf0f}.shopping-row{padding:.3rem 0}.shopping-row.done span{text-decoration:line-through;color:var(--muted)}
