:root{--text:#4a4238;--text-h:#2c2419;--text-muted:#7a6f62;--bg:#faf6f0;--border:#e8dfd2;--surface:#fffefb;--surface-hover:#f5efe6;--sidebar-bg:#f3ebe0;--header-bg:linear-gradient(180deg, #fff9f2 0%, #faf6f0 100%);--input-bg:#fff;--accent:#c45c26;--accent-strong:#a34a1c;--accent-soft:#c45c261f;--danger:#b42318;--sans:"Segoe UI", system-ui, Roboto, sans-serif;--heading:Georgia, "Times New Roman", serif;--mono:ui-monospace, Consolas, monospace;font:16px/145% var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--text:#c4bbb0;--text-h:#f2ebe3;--text-muted:#9a9085;--bg:#1a1714;--border:#3d3630;--surface:#221e1a;--surface-hover:#2d2823;--sidebar-bg:#161412;--header-bg:linear-gradient(180deg, #221e1a 0%, #1a1714 100%);--input-bg:#1a1714;--accent:#e8955c;--accent-strong:#f0a876;--accent-soft:#e8955c26;--danger:#f07167}}*,:before,:after{box-sizing:border-box}body{min-height:100svh;margin:0}#root{text-align:left;border:none;width:100%;max-width:100%;min-height:100svh;margin:0}h1,h2,h3{font-family:var(--heading);color:var(--text-h);font-weight:600}code{font-family:var(--mono);font-size:.9em}p{margin:0}.app{text-align:left;flex-direction:column;min-height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--header-bg);padding:1.25rem 1.5rem}.brand{align-items:center;gap:.85rem;max-width:72rem;margin:0 auto;display:flex}.brand-mark{font-size:2rem;line-height:1}.brand h1{letter-spacing:-.03em;margin:0;font-size:1.5rem}.tagline{color:var(--text-muted);margin:.15rem 0 0;font-size:.9rem}.app-body{box-sizing:border-box;flex:1;width:100%;max-width:72rem;margin:0 auto;display:block}.sidebar-head{flex-direction:column;gap:.65rem;padding:0 .5rem .75rem;display:flex}.sidebar-head h2{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0;font-size:.75rem}.recipe-list{margin:0;padding:0;list-style:none}.recipe-list-row{align-items:stretch;gap:.35rem;margin-bottom:.35rem;display:flex}.recipe-list-row.drag-over{outline:2px dashed var(--accent);outline-offset:2px;border-radius:10px}.recipe-list-row.dragging{opacity:.55}.drag-handle{cursor:grab;-webkit-user-select:none;user-select:none;color:var(--text-muted);letter-spacing:-.12em;touch-action:none;border:1px solid var(--border);background:var(--surface);border-radius:6px;flex:0 0 2.1rem;justify-content:center;align-self:stretch;align-items:center;padding:0;font-size:.78rem;line-height:1;display:flex}.drag-handle:hover{background:var(--surface-hover);color:var(--text-h)}.drag-handle:active{cursor:grabbing}.reorder-buttons{flex-direction:column;justify-content:center;gap:.2rem;display:flex}.reorder-btn{min-width:1.5rem;padding:.1rem .35rem;font-size:.8rem}.sidebar-hint{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.35}.recipe-list-item{text-align:left;background:var(--surface);color:inherit;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;flex-direction:column;flex:1;gap:.15rem;padding:.5rem .65rem;transition:background .15s,border-color .15s;display:flex}.recipe-list-item:hover{background:var(--surface-hover)}.recipe-list-item.active{border-color:var(--accent);background:var(--accent-soft)}.recipe-list-name{color:var(--text-h);font-size:.95rem;font-weight:600}.recipe-list-meta{color:var(--text-muted);font-size:.75rem}.recipe-list-empty{color:var(--text-muted);padding:.75rem .5rem;font-size:.9rem}.main{min-width:0;padding:1.25rem 1.25rem 2.5rem}.recipes-browser{max-width:30rem}.recipes-footer{gap:.5rem;margin-top:.75rem;padding:0 .5rem;display:flex}.empty-main{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty-main p{margin-bottom:1rem}.editor-header{margin-bottom:1.25rem}.editor-actions{flex-wrap:wrap;gap:.5rem;display:flex}.scale-field{min-width:6rem}.scale-control{align-items:stretch;gap:.25rem;display:flex}.scale-input{text-align:center;font-variant-numeric:tabular-nums;width:3.8ch;min-width:3.8ch;padding:.35rem .2rem}.scale-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.scale-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.scale-input[type=number]{appearance:textfield}.scale-stepper{flex-direction:column;gap:.15rem;display:flex}.scale-step-btn{place-items:center;width:2.7rem;min-width:2.7rem;height:1.1rem;padding:0;display:grid}.scale-step-glyph{font-size:.58rem;line-height:1;display:block;transform:translateY(-.03em)}.recipe-title-field{max-width:28rem;display:block}.field-label{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem;font-weight:600;display:block}.field{display:block}.field.compact{flex-direction:column;gap:.25rem;display:flex}.field.compact.grow{flex:1;min-width:0}.field.compact.grams-field{flex:none}.title-input{font-size:1.35rem;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:1rem;padding:1rem 1.1rem 1.15rem}.card h3{margin:0 0 .35rem;font-size:1rem}.hint{color:var(--text-muted);margin:0 0 .75rem;font-size:.85rem;line-height:1.4}.muted{color:var(--text-muted)}.empty-inline{margin:0 0 .5rem}.input{box-sizing:border-box;width:100%;font:inherit;border:1px solid var(--border);background:var(--input-bg);color:var(--text-h);border-radius:8px;padding:.45rem .6rem}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input.select{cursor:pointer}.input.notes{resize:vertical;min-height:8rem;line-height:1.45}.ingredient-row{grid-template-columns:5.5rem 1fr auto 2rem;align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}@media (width<=640px){.ingredient-row{grid-template-rows:auto auto;grid-template-columns:1fr 1fr}.ingredient-label,.ingredient-row .name{grid-column:1/-1}.grams-pct{grid-column:1/-1;justify-content:flex-start}}.ingredient-row.single{grid-template-columns:5.5rem 1.5rem minmax(14rem,1fr)}.ingredient-label{color:var(--text-muted);font-size:.8rem;font-weight:600}.ingredient-name{font-size:.9rem}.grams-pct{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.grams-pct.dual{gap:.35rem .5rem}.input.grams{font-variant-numeric:tabular-nums;width:5.5rem}.input.pct{font-variant-numeric:tabular-nums;width:4.75rem}.b-pct-readonly{color:var(--accent-strong);text-align:right;font-variant-numeric:tabular-nums;min-width:3.25rem;padding:.35rem 0;font-size:.85rem;font-weight:600}.unit{color:var(--text-muted);font-size:.85rem}.b-pct{color:var(--accent-strong);text-align:right;font-variant-numeric:tabular-nums;min-width:3.25rem;font-size:.85rem;font-weight:600}.row-spacer{width:2rem}.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:8px;padding:.45rem .85rem;transition:background .15s,border-color .15s}.btn:hover{background:var(--surface-hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.05)}.btn.secondary{background:0 0;font-size:.9rem}.btn.icon{align-self:center;padding:.25rem .45rem;font-size:1.1rem;line-height:1}.btn.icon.danger:hover{border-color:var(--danger);color:var(--danger)}.add-row{margin-top:.35rem}.total-flour{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;font-size:.95rem;display:flex}.leavening-block{margin-bottom:.65rem}.leavening-row{flex-wrap:wrap;align-items:flex-end;gap:.5rem;display:flex}.leavening-row .field.compact:first-of-type{flex:0 0 11rem;min-width:9rem}.leavening-weight{flex:14rem;min-width:0}.leavening-weight .grams-pct.dual{width:100%}.grams-inline{align-items:center;gap:.35rem;display:flex}.summary-card{overflow-x:auto}.summary-actions{margin-top:.75rem}.summary-section-meta{border:1px solid var(--border);background:var(--surface-hover);border-radius:10px;margin-top:1rem;padding:.75rem}.summary-section-meta .summary-table{background:0 0}.summary-table{border-collapse:collapse;width:100%;font-size:.9rem}.summary-table th,.summary-table td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .5rem}.summary-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.summary-table td:last-child,.summary-table th:last-child{text-align:right;font-variant-numeric:tabular-nums}.summary-table td:last-child .grams-inline{justify-content:flex-end}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
