:root{--paper:#f7f3eb;--paper-light:#fffdf8;--ink:#2d2621;--muted:#756b63;--rust:#7f4327;--rust-dark:#5f2f1d;--sage:#667157;--gold:#c59548;--line:#ded5c8;--shadow:0 20px 60px #3d271a1f;--radius:18px}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{background:radial-gradient(circle at 90% 5%, #c5954821, transparent 26rem), var(--paper);min-width:320px;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{color:inherit}button,label,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #7f432747}.app-shell{min-height:100vh}.site-header{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f7f3ebf0;border-bottom:1px solid #7f43271f;justify-content:space-between;align-items:center;min-height:78px;padding:12px clamp(20px,4vw,64px);display:flex;position:sticky;top:0}.brand{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.brand-mark{width:46px;height:46px;color:var(--paper-light);background:var(--rust);border-radius:50%;place-items:center;font:700 1.7rem Georgia,serif;display:grid;box-shadow:0 6px 18px #7f43273d}.brand strong,.brand small{display:block}.brand strong{font:700 1.08rem Georgia,serif}.brand small{color:var(--muted);margin-top:2px;font-size:.75rem}.top-navigation{gap:4px;display:flex}.nav-button{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:10px 13px;font-size:.88rem;font-weight:650;position:relative}.nav-button:hover,.nav-button.active{color:var(--rust);background:#7f432717}.nav-button span{color:#fff;background:var(--rust);border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:6px;font-size:.68rem;display:inline-grid}main{width:min(1480px,100%);margin:0 auto;padding:0 clamp(20px,4vw,64px) 72px}.hero{justify-content:space-between;align-items:end;gap:40px;padding:clamp(54px,8vw,100px) 0 44px;display:flex}.eyebrow{color:var(--rust);letter-spacing:.16em;text-transform:uppercase;margin:0 0 10px;font-size:.74rem;font-weight:800}.hero h1,.page-intro h1{letter-spacing:-.045em;max-width:760px;margin:0;font:700 clamp(2.5rem,6vw,5.4rem)/.98 Georgia,Times New Roman,serif}.hero>div:first-child>p:last-child,.page-intro>p:last-child{max-width:650px;color:var(--muted);margin:20px 0 0;font-size:clamp(1rem,1.8vw,1.22rem);line-height:1.65}.hero-stats{flex:none;gap:8px;display:flex}.hero-stats div{border:1px solid var(--line);border-radius:var(--radius);background:#fffdf894;width:132px;padding:20px}.hero-stats strong,.hero-stats span{display:block}.hero-stats strong{font:700 2rem Georgia,serif}.hero-stats span{color:var(--muted);margin-top:4px;font-size:.78rem}.search-panel{border:1px solid var(--line);background:var(--paper-light);box-shadow:var(--shadow);border-radius:22px;grid-template-columns:minmax(260px,1fr) minmax(190px,280px) auto;gap:12px;padding:14px;display:grid}.search-field,.filter-field,.add-item-form label{gap:6px;display:grid}.search-field>span,.filter-field>span,.add-item-form label>span,.schedule-control label>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:750}.search-field input,.filter-field select,.add-item-form input,.schedule-control input{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:#fff;border-radius:12px;padding:0 14px}.favourite-toggle{cursor:pointer;background:#f2ecdf;border-radius:12px;align-self:end;align-items:center;gap:9px;min-height:48px;padding:0 16px;font-size:.85rem;font-weight:700;display:flex}.favourite-toggle input{width:18px;height:18px}.favourite-toggle span{color:var(--gold)}.results-heading{justify-content:space-between;align-items:end;gap:20px;padding:52px 0 24px;display:flex}.results-heading h2{margin:0;font:700 clamp(1.8rem,3vw,2.6rem) Georgia,serif}.text-button{color:var(--rust);cursor:pointer;background:0 0;border:0;border-bottom:1px solid;padding:8px 4px;font-weight:750}.text-button:disabled{opacity:.4;cursor:not-allowed}.text-button.danger{margin-top:22px}.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;display:grid}.recipe-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-light);transition:transform .18s,box-shadow .18s;overflow:hidden}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px #3d271a24}.recipe-card-main{cursor:pointer;text-align:left;background:0 0;border:0;width:100%;padding:0;display:block}.recipe-card-image{aspect-ratio:4/3;background:#e9e1d5;position:relative;overflow:hidden}.recipe-card-image img{object-fit:cover;width:100%;height:100%;transition:transform .35s}.recipe-card:hover .recipe-card-image img{transform:scale(1.035)}.recipe-card-image>span:not(.favourite-badge){height:100%;color:var(--muted);place-items:center;font:italic 1rem Georgia,serif;display:grid}.favourite-badge{color:#fff6d3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2d2621c2;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:12px;right:12px}.recipe-card-copy{min-height:152px;padding:18px}.recipe-card-copy>p{color:var(--rust);letter-spacing:.11em;text-transform:uppercase;margin:0 0 8px;font-size:.68rem;font-weight:800}.recipe-card-copy h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:52px;margin:0;font:700 1.25rem/1.3 Georgia,serif;display:-webkit-box;overflow:hidden}.recipe-card-copy>div{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.recipe-card-copy>div span{color:var(--muted);background:#f0ebe2;border-radius:6px;padding:5px 8px;font-size:.7rem}.book-toggle{border:0;border-top:1px solid var(--line);width:100%;min-height:42px;color:var(--rust);cursor:pointer;background:0 0;font-size:.75rem;font-weight:750}.book-toggle:hover,.book-toggle.selected{color:#fff;background:var(--rust)}.load-more{justify-content:center;padding:42px 0 0;display:flex}.primary-button,.secondary-button{cursor:pointer;border-radius:12px;min-height:46px;padding:0 18px;font-weight:750}.primary-button{border:1px solid var(--rust);color:#fff;background:var(--rust)}.primary-button:hover{background:var(--rust-dark)}.secondary-button{border:1px solid var(--line);color:var(--rust);background:var(--paper-light)}.secondary-button:hover,.secondary-button.selected{border-color:var(--rust);background:#efe2d8}.primary-button:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}.empty-state,.empty-workspace{border-radius:var(--radius);text-align:center;border:1px dashed #c9baa8;padding:64px 24px}.empty-state strong,.empty-workspace strong{font:700 1.5rem Georgia,serif}.empty-state p,.empty-workspace p{color:var(--muted)}.workspace-page{min-height:75vh;padding-top:clamp(54px,8vw,96px)}.page-intro{padding-bottom:36px}.page-intro h1{font-size:clamp(2.5rem,5vw,4.6rem)}.local-data-notice{border-left:4px solid var(--gold);color:#69543a;background:#f4ead6;margin:0 0 28px;padding:13px 16px;font-size:.84rem}.schedule-list,.shopping-list,.book-selection{gap:10px;display:grid}.schedule-item{border:1px solid var(--line);background:var(--paper-light);border-radius:14px;grid-template-columns:68px 1fr auto auto;align-items:center;gap:16px;padding:13px 16px;display:grid}.schedule-item.completed{opacity:.6}.schedule-item time{color:#fff;background:var(--rust);border-radius:10px;place-items:center;padding:8px;display:grid}.schedule-item time strong{font:700 1.45rem Georgia,serif}.schedule-item time span{text-transform:uppercase;font-size:.68rem}.schedule-recipe{cursor:pointer;text-align:left;background:0 0;border:0;gap:4px;display:grid}.schedule-recipe strong{font:700 1.1rem Georgia,serif}.schedule-recipe span{color:var(--muted);font-size:.76rem}.schedule-item>label{cursor:pointer;align-items:center;gap:7px;font-size:.8rem;font-weight:700;display:flex}.remove-button{color:#9a3d32;cursor:pointer;background:0 0;border:0;padding:7px 4px;font-size:.72rem;font-weight:750}.add-item-form{border:1px solid var(--line);background:var(--paper-light);border-radius:16px;grid-template-columns:1fr auto;align-items:end;gap:12px;margin-bottom:28px;padding:14px;display:grid}.shopping-item{border:1px solid var(--line);background:var(--paper-light);cursor:pointer;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.shopping-item>input{width:19px;height:19px}.shopping-item>span{gap:3px;display:grid}.shopping-item small{color:var(--muted)}.shopping-item>button{color:#9a3d32;cursor:pointer;background:0 0;border:0;font-size:.72rem}.shopping-item.checked>span{color:var(--muted);text-decoration:line-through}.book-toolbar{flex-wrap:wrap;gap:10px;margin-bottom:28px;display:flex}.book-toolbar .primary-button{margin-left:auto}.book-selection article{border:1px solid var(--line);background:var(--paper-light);border-radius:14px;grid-template-columns:42px 82px 1fr auto;align-items:center;gap:14px;min-height:82px;display:grid;overflow:hidden}.book-selection article>span{color:var(--gold);text-align:right;font:700 1.1rem Georgia,serif}.book-selection img,.book-placeholder{object-fit:cover;background:#e9e1d5;width:82px;height:82px}.book-selection article>button:not(.remove-button){cursor:pointer;text-align:left;background:0 0;border:0;gap:4px;padding:10px 0;display:grid}.book-selection strong{font:700 1.05rem Georgia,serif}.book-selection small{color:var(--muted)}.book-selection .remove-button{margin-right:18px}.site-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;gap:20px;padding:28px clamp(20px,4vw,64px);font-size:.78rem;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#221c18ad;place-items:start center;padding:32px;display:grid;position:fixed;inset:0;overflow-y:auto}.recipe-detail{background:var(--paper-light);border-radius:24px;width:min(1120px,100%);margin:auto;position:relative;overflow:hidden;box-shadow:0 30px 100px #1b120d59}.close-button{z-index:2;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#221c18b8;border:1px solid #ffffff80;border-radius:999px;min-height:40px;padding:0 14px;position:absolute;top:16px;right:16px}.recipe-detail-header{grid-template-columns:minmax(280px,42%) 1fr;display:grid}.recipe-detail-header>img,.detail-placeholder{object-fit:cover;background:#e9e1d5;width:100%;height:100%;min-height:420px}.detail-placeholder{color:var(--muted);place-items:center;font:italic 1.1rem Georgia,serif;display:grid}.recipe-detail-header>div:last-child{align-self:center;padding:clamp(32px,5vw,68px)}.recipe-detail-header h2{letter-spacing:-.04em;margin:0;font:700 clamp(2.2rem,4.5vw,4.6rem)/1 Georgia,serif}.recipe-meta,.recipe-tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.recipe-meta span,.recipe-tags span{color:var(--muted);background:#f0ebe2;border-radius:8px;padding:7px 10px;font-size:.76rem}.recipe-tags span{color:var(--rust);background:#efe2d8}.recipe-columns{grid-template-columns:minmax(260px,.82fr) minmax(360px,1.45fr);gap:clamp(36px,6vw,88px);padding:clamp(38px,6vw,72px);display:grid}.recipe-columns h3,.recipe-notes h3{margin:0 0 20px;font:700 1.65rem Georgia,serif}.recipe-columns ul,.recipe-columns ol{gap:13px;margin:0;padding-left:22px;line-height:1.55;display:grid}.recipe-columns li::marker{color:var(--rust);font-weight:800}.recipe-notes{border-left:4px solid var(--gold);background:#f5eddd;margin:0 clamp(38px,6vw,72px) clamp(38px,6vw,72px);padding:24px}.recipe-notes p{margin:8px 0;line-height:1.55}.missing-content{color:var(--muted);font-style:italic}.photo-strip{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;padding:0 clamp(38px,6vw,72px) clamp(38px,6vw,72px);display:grid}.photo-strip img{aspect-ratio:4/3;object-fit:cover;border-radius:12px;width:100%}.recipe-actions{border-top:1px solid var(--line);background:#f3ede3;flex-wrap:wrap;align-items:end;gap:10px;padding:20px clamp(28px,5vw,72px);display:flex}.schedule-control{align-items:end;gap:8px;display:flex}.schedule-control label{gap:5px;display:grid}.print-area{display:none}.book-cover{page-break-after:always;text-align:center;place-content:center;min-height:90vh;display:grid}.book-cover p{color:var(--rust);letter-spacing:.15em;text-transform:uppercase;font-weight:700}.book-cover h1{margin:12px 0 22px;font:700 4.5rem Georgia,serif}.book-cover span{color:var(--muted)}@media (max-width:1100px){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{flex-direction:column;align-items:start}}@media (max-width:820px){.site-header{flex-direction:column;align-items:start;gap:10px;padding-bottom:10px}.top-navigation{width:100%;overflow-x:auto}.nav-button{flex:1 0 auto}main{padding-left:16px;padding-right:16px}.hero{padding-top:46px}.search-panel{grid-template-columns:1fr 1fr}.search-field{grid-column:1/-1}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.recipe-detail-header{grid-template-columns:1fr}.recipe-detail-header>img,.detail-placeholder{aspect-ratio:4/3;min-height:auto}.recipe-columns{grid-template-columns:1fr}.modal-backdrop{padding:0}.recipe-detail{border-radius:0;min-height:100vh}}@media (max-width:560px){.brand small{display:none}.hero h1{font-size:2.7rem}.hero-stats{width:100%}.hero-stats div{flex:1;width:auto}.search-panel{grid-template-columns:1fr}.search-field{grid-column:auto}.recipe-grid{grid-template-columns:1fr}.recipe-card{grid-template-columns:1fr auto;display:grid}.recipe-card-main{grid-template-columns:112px 1fr;display:grid}.recipe-card-image{aspect-ratio:auto;height:100%;min-height:138px}.recipe-card-copy{min-height:138px;padding:14px}.recipe-card-copy h3{min-height:46px;font-size:1.08rem}.book-toggle{border-top:0;border-left:1px solid var(--line);width:42px;padding:0 6px;font-size:0}.book-toggle:after{content:"+";font-size:1.25rem}.book-toggle.selected:after{content:"✓"}.results-heading{flex-direction:column;align-items:start}.schedule-item{grid-template-columns:58px 1fr auto;gap:10px}.schedule-item>label{grid-column:2}.schedule-item>.remove-button{grid-column:3}.add-item-form{grid-template-columns:1fr}.book-toolbar .primary-button{width:100%;margin-left:0}.book-selection article{grid-template-columns:34px 64px 1fr}.book-selection img,.book-placeholder{width:64px;height:76px}.book-selection .remove-button{grid-column:3;justify-self:start;margin:-8px 0 6px}.recipe-detail-header>div:last-child,.recipe-columns{padding:30px 22px}.recipe-detail-header h2{font-size:2.35rem}.recipe-notes{margin:0 22px 30px}.photo-strip{padding:0 22px 30px}.recipe-actions{flex-direction:column;align-items:stretch;padding:18px}.schedule-control{grid-template-columns:1fr;display:grid}.site-footer{flex-direction:column}}@media print{@page{size:A4;margin:15mm}body{background:#fff}.app-shell>:not(.print-area){display:none!important}.print-area{display:block}.print-area .recipe-content{page-break-after:always}.print-area .recipe-detail-header{border-bottom:1px solid #aaa;grid-template-columns:34% 1fr}.print-area .recipe-detail-header>img,.print-area .detail-placeholder{min-height:220px;max-height:280px}.print-area .recipe-detail-header>div:last-child{padding:24px}.print-area .recipe-detail-header h2{font-size:2.3rem}.print-area .recipe-columns{grid-template-columns:38% 1fr;gap:32px;padding:28px 0}.print-area .recipe-columns h3{font-size:1.3rem}.print-area .recipe-columns ul,.print-area .recipe-columns ol{gap:7px;font-size:9.5pt}.print-area .recipe-notes{margin:0}.print-area .recipe-tags span,.print-area .recipe-meta span{padding:4px 7px;font-size:7.5pt}}
