:root{font-family:DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#f4f1ea;background:#141210;--surface: #1e1c18;--border: #2e2a24;--accent: #c45c26;--accent-dim: #8a4020;--muted: #9a958a}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{max-width:960px;margin:0 auto;padding:1.25rem 1rem 3rem}header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}header h1{margin:0;font-size:1.35rem;font-weight:600;letter-spacing:-.02em}.card-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .15s ease}.card:hover{border-color:var(--accent-dim)}.card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#0c0b09}.card-body{padding:.9rem 1rem 1rem}.card-body h2{margin:0 0 .35rem;font-size:1rem;font-weight:600}.muted{color:var(--muted);font-size:.85rem}.tool-log{list-style:none;margin:0 0 .75rem;padding:0;display:grid;gap:.45rem}.tool-log li{display:grid;gap:.15rem;padding:.45rem .6rem;border-left:3px solid var(--accent);background:#ffffff08;border-radius:0 8px 8px 0;font-size:.85rem;color:var(--muted)}.tool-log-name{color:var(--text, #f4f1ea);font-weight:600;font-size:.78rem;letter-spacing:.01em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:#f4f1ea}.btn:hover{border-color:var(--accent-dim)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(1.05)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.field{margin-bottom:1rem}.field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.35rem}.field input,.field textarea{width:100%;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:#0c0b09;color:inherit}.field textarea{min-height:100px;resize:vertical}.recipe-detail h2{margin-top:0}.recipe-detail ul,.recipe-detail ol{padding-left:1.25rem}.chat-log{border:1px solid var(--border);border-radius:12px;background:#0c0b09;min-height:280px;max-height:50vh;overflow-y:auto;padding:1rem;margin-bottom:1rem}.msg{margin-bottom:.85rem;font-size:.95rem}.msg-user{color:#e8dcc8}.msg-assistant{color:#c8e0d0}.markdown-body{font-size:.95rem;line-height:1.55}.markdown-body p{margin:0 0 .55rem}.markdown-body p:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:.75rem 0 .4rem;font-size:1.05rem;font-weight:600;color:#f0ebe3}.markdown-body h1:first-child,.markdown-body h2:first-child,.markdown-body h3:first-child{margin-top:0}.markdown-body ul,.markdown-body ol{margin:.35rem 0 .55rem;padding-left:1.2rem}.markdown-body li{margin-bottom:.25rem}.markdown-body code{font-family:ui-monospace,monospace;font-size:.88em;background:#0c0b09;padding:.1em .35em;border-radius:4px;border:1px solid var(--border)}.markdown-body pre{margin:.5rem 0;padding:.65rem .75rem;overflow-x:auto;background:#0c0b09;border:1px solid var(--border);border-radius:8px;font-size:.85rem}.markdown-body pre code{border:none;padding:0;background:none}.markdown-body blockquote{margin:.5rem 0;padding-left:.75rem;border-left:3px solid var(--accent-dim);color:var(--muted)}.markdown-body a{color:var(--accent)}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:.65rem 0}.markdown-body table{border-collapse:collapse;width:100%;font-size:.88rem;margin:.5rem 0}.markdown-body th,.markdown-body td{border:1px solid var(--border);padding:.35rem .5rem;text-align:left}.msg-role{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.2rem}.cook-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem}.toggle{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--muted)}.row{display:flex;gap:.5rem;flex-wrap:wrap}.auth-card{max-width:420px;margin:2rem auto 0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem 1.35rem 1.5rem}.auth-card h2{margin:0 0 .5rem;font-size:1.15rem}.linkish{background:none;border:none;padding:0;color:var(--accent);font:inherit;cursor:pointer}.linkish:hover{text-decoration:underline}
