:root{--bg: #faf7f2;--surface: #ffffff;--surface-2: #f3eee6;--text: #2b2420;--dim: #7a6f66;--line: #e6ddd2;--accent: #b4532a;--accent-text: #ffffff;--accent-soft: #f6e3d8;--danger: #b3261e;--warning-bg: #fff4d6;--warning-line: #e8c76a;--error-bg: #fde7e4;--star: #e0a423;--radius: 10px;--shadow: 0 1px 2px rgb(0 0 0 / .06), 0 2px 8px rgb(0 0 0 / .04);color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #1b1816;--surface: #24201d;--surface-2: #2e2925;--text: #f1ebe5;--dim: #a89c91;--line: #3b352f;--accent: #e07b4c;--accent-text: #1b1816;--accent-soft: #3d2a20;--danger: #ff8a80;--warning-bg: #3a3118;--warning-line: #7a6424;--error-bg: #3d1f1c;--star: #f0b84a;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.6rem;margin:0;line-height:1.2}h2{font-size:1.1rem;margin:0}h3{font-size:1rem;margin:0}.dim{color:var(--dim)}.text{white-space:pre-wrap;margin:.5rem 0}.hint{color:var(--dim);font-size:.85rem;margin:.25rem 0}.error{color:var(--danger)}.grow{flex:1;min-width:0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.25rem;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--line);overflow-x:auto}.topbar a{padding:.4rem .7rem;border-radius:8px;color:var(--text);white-space:nowrap}.topbar a:hover{background:var(--surface-2);text-decoration:none}.topbar a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.brand{font-weight:700;margin-right:.75rem;white-space:nowrap}.spacer{flex:1}.sync-status{background:none;color:var(--dim);border:none;font-size:.85rem;padding:.3rem .5rem;white-space:nowrap;max-width:16rem;overflow:hidden;text-overflow:ellipsis}.sync-status.error{color:var(--danger)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#4caf50;vertical-align:middle}.dot.syncing{background:var(--star)}.dot.error{background:var(--danger)}main{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 4rem}button,.button{font:inherit;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:var(--accent-text);padding:.45rem .9rem;border-radius:8px;display:inline-flex;align-items:center;gap:.3rem}.button:hover{text-decoration:none}button:disabled{opacity:.5;cursor:default}button.secondary,.button.secondary{background:var(--surface);color:var(--accent);border-color:var(--line)}button.danger{background:var(--surface);color:var(--danger);border-color:var(--line)}button.small{padding:.15rem .55rem}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem;min-width:0}textarea{width:100%;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}input.num{width:6rem;text-align:right}.search{min-width:12rem}.check{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.check input{width:auto}.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.page-header p{margin:.25rem 0 0}.page-header.sticky{position:sticky;top:49px;z-index:5;background:var(--bg);padding:.75rem 0;border-bottom:1px solid var(--line)}.list-header{align-items:center}.filters{display:flex;gap:.5rem;flex-wrap:wrap;flex:1;align-items:center}.count{color:var(--dim);font-weight:400;font-size:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;color:var(--text);box-shadow:var(--shadow);display:flex;flex-direction:column}.card:hover{text-decoration:none;border-color:var(--accent)}.card .photo{width:100%;aspect-ratio:4 / 3;border-radius:0}.card-body{padding:.6rem .8rem .8rem;display:flex;flex-direction:column;gap:.2rem;flex:1}.card-body p{margin:0;font-size:.9rem}.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto!important;padding-top:.3rem}.fav{color:var(--danger)}.status{font-size:.75rem;padding:.1rem .45rem;border-radius:99px;background:var(--surface-2);color:var(--dim)}.status.signature{background:var(--accent-soft);color:var(--accent)}.rows{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.rows li+li{border-top:1px solid var(--line)}.row{display:flex;align-items:center;gap:.75rem;padding:.55rem .8rem;color:var(--text)}.row:hover{background:var(--surface-2);text-decoration:none}.row .grow{display:flex;flex-direction:column}.clamp{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}.empty{text-align:center;color:var(--dim);padding:3rem 1rem}.photo{display:block;object-fit:cover;border-radius:8px;background:var(--surface-2)}.photo.placeholder{display:flex;align-items:center;justify-content:center;color:var(--dim);font-size:1.6rem;aspect-ratio:4 / 3}.photo.small{width:52px;height:52px;aspect-ratio:auto;font-size:1.1rem;flex:none}.gallery{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.4rem;margin:.5rem 0}.gallery figure{margin:0;flex:none;width:220px}.gallery .photo{width:220px;height:165px;cursor:zoom-in}.gallery figcaption{font-size:.85rem;color:var(--dim);margin-top:.2rem}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;cursor:zoom-out}.lightbox .photo{max-width:100%;max-height:85vh;width:auto;height:auto;object-fit:contain;background:none}.lightbox p{color:#fff}.section{margin:1.5rem 0}.section>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;border-bottom:1px solid var(--line);padding-bottom:.3rem;flex-wrap:wrap}.meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.6rem 1rem;margin:1rem 0}.meta div{min-width:0}.meta dt{color:var(--dim);font-size:.8rem}.meta dd{margin:0;overflow-wrap:anywhere}.chips{display:inline-flex;flex-wrap:wrap;gap:.35rem}.chip{background:var(--surface-2);border-radius:99px;padding:.15rem .6rem;font-size:.85rem;display:inline-flex;align-items:center;gap:.25rem}.chip button{background:none;border:none;color:var(--dim);padding:0 .1rem}.badge{font-size:.75rem;background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:.05rem .4rem;margin-left:.4rem}.stars{color:var(--star);letter-spacing:1px;white-space:nowrap}.stars .dim{color:var(--line)}.dots{display:inline-flex;gap:3px}.dots span{width:9px;height:9px;border-radius:50%;background:var(--line)}.dots span.on{background:var(--accent)}.lines h3{font-size:.9rem;color:var(--dim);margin:.75rem 0 .25rem;text-transform:uppercase;letter-spacing:.03em}.lines ul,.links{margin:0;padding-left:1.2rem}.lines li{margin:.2rem 0}.lines li.optional{color:var(--dim)}.amount{font-weight:600;font-variant-numeric:tabular-nums}.servings{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem}.steps{padding-left:1.4rem}.steps>li{margin-bottom:1rem;padding-left:.3rem}.steps>li::marker{font-weight:700;color:var(--accent)}.step-meta{display:flex;gap:.75rem;align-items:center;font-size:.9rem;flex-wrap:wrap}.step-meta .badge{margin:0}.months{display:flex;gap:.3rem;flex-wrap:wrap}.months span{padding:.15rem .5rem;border-radius:6px;background:var(--surface-2);color:var(--dim);font-size:.85rem}.months span.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.nutrients{border-collapse:collapse;min-width:280px}.nutrients th{text-align:left;font-weight:400;padding:.2rem 1.5rem .2rem 0}.nutrients td{text-align:right;font-variant-numeric:tabular-nums}.nutrients tr+tr{border-top:1px solid var(--line)}.nutrients tr.sub th{padding-left:1rem;color:var(--dim)}.allergens{color:var(--danger)}.history-layout{display:grid;grid-template-columns:240px 1fr;gap:1.25rem;align-items:start}.versions{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem}.version{width:100%;flex-direction:column;align-items:flex-start;background:var(--surface);color:var(--text);border-color:var(--line);gap:0;font-size:.9rem}.version.active{border-color:var(--accent);background:var(--accent-soft)}.version .dim{font-size:.8rem}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.8rem 1rem;align-items:end}.grid.compact{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-top:.5rem}.field{display:flex;flex-direction:column;gap:.25rem;min-width:0}.field>span{font-size:.8rem;color:var(--dim)}.field.wide,.wide{grid-column:1 / -1}.field input:not([type=checkbox]),.field select,.field textarea{width:100%}.stars-input{display:inline-flex}.stars-input button{background:none;border:none;color:var(--line);font-size:1.4rem;padding:0 .1rem}.stars-input button.on{color:var(--star)}.ids-picker{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.ids-picker select{width:auto!important}.checks{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}.row-buttons{display:inline-flex;gap:.2rem;flex:none}.row-buttons button{padding:.2rem .5rem;background:var(--surface);color:var(--dim);border-color:var(--line)}.row-buttons button.danger{color:var(--danger)}.line-edit{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;padding:.4rem 0;border-bottom:1px dashed var(--line)}.line-edit input.num{width:5rem}.section-input{width:8rem}.lines-editor>button,.steps-editor>button,.portions-editor>button{margin-top:.6rem}.step-edit{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;margin-bottom:.6rem}.step-edit-head{display:flex;gap:.5rem;align-items:center;margin-bottom:.4rem}.step-edit-head input{flex:1}.step-number{font-weight:700;color:var(--accent);width:1.5rem;text-align:center}.step-edit details{margin-top:.5rem}.step-edit summary{cursor:pointer;color:var(--dim);font-size:.9rem}.photo-rows{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.6rem}.photo-row{display:flex;gap:.75rem;align-items:center}.photo-row .photo{width:90px;height:68px;aspect-ratio:auto;flex:none}.photo-row>div{flex:1;display:flex;gap:.4rem;align-items:center}.photo-row input{flex:1}.file-button{cursor:pointer}.edit-footer{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line)}.banner{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.7rem .9rem;border-radius:var(--radius);background:var(--surface-2);margin-bottom:1rem}.banner.warning{background:var(--warning-bg);border:1px solid var(--warning-line)}.banner.error{background:var(--error-bg);color:var(--danger)}.banner.conflict{background:var(--warning-bg);border:1px solid var(--warning-line);flex-direction:column;align-items:flex-start}.banner.conflict p{margin:0}.settings form{max-width:640px}.settings h2{margin-top:2rem}@media (max-width: 700px){main{padding:1rem .75rem 3rem}.history-layout{grid-template-columns:1fr}.gallery figure,.gallery .photo{width:160px}.gallery .photo{height:120px}.page-header.sticky{top:49px}.search{min-width:0;flex:1}}
