:root{--bg: #f8f8f6;--fg: #2c2c2c;--muted: #6b746f;--accent: #5a7d78;--accent-hover: #ff8577;--accent-fg: #fff;--dark: #2c3e3a;--card: #fff;--border: #e1e5e2;--ok: #2d7a3f;--err: #b03030}*{box-sizing:border-box}body{margin:0;padding:2rem 1rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);line-height:1.5}main{max-width:720px;margin:0 auto}h1{font-size:1.6rem;margin:0 0 1.25rem}.tabs{display:flex;gap:.25rem;border-bottom:2px solid var(--border);margin-bottom:1rem}.sub-tabs{border-bottom:none;margin-bottom:.5rem}.tab{background:transparent;border:none;padding:.5rem 1rem;font:inherit;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px}.tab.is-active{color:var(--fg);border-bottom-color:var(--accent);font-weight:600}form{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.panel{display:block}label{display:block;font-weight:600;margin-bottom:.5rem}input[type=url],input[type=file],textarea{display:block;width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);font:inherit;color:var(--fg)}textarea{resize:vertical;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem}.hint{margin:.5rem 0 0;color:var(--muted);font-size:.9rem}button[type=submit]{margin-top:1rem;padding:.65rem 1.2rem;border:none;border-radius:6px;background:var(--accent);color:var(--accent-fg);font:inherit;font-weight:600;cursor:pointer}button[type=submit]:hover:not(:disabled){background:var(--dark)}button:disabled{opacity:.6;cursor:not-allowed}.status{margin-top:1.25rem;padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--card)}.status.is-ok{border-color:var(--ok)}.status.is-err{border-color:var(--err)}.status.is-err .err-detail{color:var(--err)}.status p{margin:.4rem 0 0}.spinner{display:inline-block;width:.9em;height:.9em;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;vertical-align:-.15em;margin-right:.4em;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.manage{margin-top:.5rem}.muted{color:var(--muted)}.inline-err{color:var(--err);background:var(--card);border:1px solid var(--err);border-radius:6px;padding:.6rem .8rem}.recipe-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:8px;background:var(--card);overflow:hidden}.recipe-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem 1rem;border-bottom:1px solid var(--border)}.recipe-row:last-child{border-bottom:none}.recipe-main{display:flex;align-items:center;gap:.5rem;min-width:0}.recipe-main a{color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-main a:hover{color:var(--accent-hover);text-decoration:underline}.badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--err);border:1px solid var(--err);border-radius:4px;padding:.05rem .35rem}.recipe-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.btn-secondary,.btn-danger{padding:.35rem .7rem;border-radius:6px;font:inherit;font-size:.9rem;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--fg);text-decoration:none;display:inline-flex;align-items:center}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{border-color:var(--err);color:var(--err)}.build-stamp{margin-top:2.5rem;text-align:center;color:var(--muted);font-size:.8rem}
