:root{--bg:#f6f5f0;--surface:#fff;--border:#ddd8c9;--text:#262420;--muted:#6b675d;--accent:#3f6c34;--accent-contrast:#fff;--danger:#a3382c;--warn:#b8791b;--chip-bg:#eef1e6;--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#1b1b16;--surface:#26251f;--border:#3a382f;--text:#eeece3;--muted:#a5a190;--accent:#7fbf6a;--accent-contrast:#12200e;--danger:#e07a6a;--warn:#e0b357;--chip-bg:#33321f}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent)}.app-shell{max-width:980px;margin:0 auto;padding:0 1rem 3rem}.login-shell{max-width:340px;margin:15vh auto;padding:1rem}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.login-card h1{margin-top:0;font-size:1.3rem}.topbar{justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.topbar h1{margin:0;font-size:1.3rem}.logout-link{color:var(--muted);cursor:pointer;background:0 0;border:none;text-decoration:underline}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;margin-bottom:1.25rem;display:flex}.tabs button{cursor:pointer;color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem .9rem;font-size:.95rem}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem}.field{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.field label{color:var(--muted);font-size:.85rem}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:.5rem .6rem}.row{flex-wrap:wrap;align-items:flex-end;gap:.6rem;display:flex}.row>.field{flex:1;min-width:140px}button.btn{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:none;border-radius:6px;padding:.55rem 1rem;font-weight:600}button.btn.secondary{background:var(--chip-bg);color:var(--text)}button.btn.danger{background:var(--danger);color:#fff}button.btn:disabled{opacity:.5;cursor:not-allowed}button.icon-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:.25rem}.chip{background:var(--chip-bg);border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.8rem;display:inline-flex}.chip button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.9rem;display:grid}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;position:relative;overflow:hidden}.recipe-card img{object-fit:cover;background:var(--chip-bg);width:100%;height:130px;display:block}.recipe-card .body{padding:.7rem}.recipe-card h3{margin:0 0 .3rem;font-size:1rem}.recipe-card .meta{color:var(--muted);font-size:.8rem}.carb-badge{background:var(--chip-bg);border-radius:999px;padding:.15rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.carb-badge.over{background:var(--warn);color:#1a1300}.carb-badge.low{background:var(--accent);color:var(--accent-contrast)}.nutrition-grid{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.5rem;margin:.75rem 0;display:grid}.nutrition-grid .stat{background:var(--chip-bg);text-align:center;border-radius:8px;padding:.5rem}.nutrition-grid .stat .value{font-size:1.1rem;font-weight:700}.nutrition-grid .stat .label{color:var(--muted);font-size:.72rem}.step-list,.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--border);justify-content:space-between;gap:.5rem;padding:.35rem 0;display:flex}.step-list li{border-bottom:1px solid var(--border);padding:.6rem 0}.step-list .tm-params{color:var(--accent);margin-top:.2rem;font-size:.8rem}.step-list.numbered li{padding:.85rem 0}.step-list.numbered li:last-child{border-bottom:none}.step-heading{text-transform:uppercase;letter-spacing:.03em;color:var(--accent);margin-bottom:.25rem;font-size:.82rem;font-weight:700}.chip.unknown-nutrition{background:color-mix(in srgb, var(--danger) 18%, var(--surface));color:var(--danger);white-space:nowrap;font-size:.72rem}.import-tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.import-tabs button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;padding:.5rem .8rem}.import-tabs button.active{border-color:var(--accent);color:var(--accent)}table.plain{border-collapse:collapse;width:100%}table.plain th,table.plain td{text-align:left;border-bottom:1px solid var(--border);padding:.4rem .3rem}.meal-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid;overflow-x:auto}.meal-day{background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:130px;padding:.5rem}.meal-day h4{margin:0 0 .3rem;font-size:.85rem}.meal-slot{color:var(--muted);margin-top:.4rem;font-size:.75rem}.meal-entry{background:var(--chip-bg);border-radius:6px;margin-top:.2rem;padding:.3rem .4rem;font-size:.8rem}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}@keyframes smoker-pulse{0%,to{box-shadow:0 0 #ff64148c}50%{box-shadow:0 0 0 6px #ff641400}}.smoker-badge{color:#fff;background:linear-gradient(90deg,#d84315,#ff7043);align-items:center;gap:.35rem;padding:.4rem .6rem;font-size:.85rem;font-weight:700;animation:2s ease-in-out infinite smoker-pulse;display:flex;position:absolute;top:0;left:0;right:0}@keyframes smoker-card-pulse{0%,to{box-shadow:0 0 #ff641473}50%{box-shadow:0 0 0 5px #ff641400}}.smoker-card-active{animation:2s ease-in-out infinite smoker-card-pulse;border:2px solid #ff7043!important}.smoker-card-active>h3{color:#d84315}.smoker-active-pill{color:#fff;vertical-align:middle;background:linear-gradient(90deg,#d84315,#ff7043);border-radius:999px;align-items:center;gap:.3rem;margin-left:.5rem;padding:.15rem .6rem;font-size:.75rem;font-weight:700;display:inline-flex}.error-text{color:var(--danger);font-size:.85rem}.muted{color:var(--muted);font-size:.85rem}.thermomix-block{white-space:pre-wrap;background:var(--chip-bg);border-radius:8px;padding:.75rem;font-family:ui-monospace,monospace;font-size:.85rem}
