:root{font-family:Segoe UI,system-ui,sans-serif;color:#183a37;background:#f8f4ec;font-synthesis:none;--ink: #183a37;--cream: #f8f4ec;--paper: #fffdf8;--orange: #e36642;--gold: #e7ad42;--line: #d9d4c8}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:4px solid #e7ad42;outline-offset:3px}.app-shell{min-height:100vh;overflow:hidden}.topbar{height:84px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(24,58,55,.13);background:#fffdf8e0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:21px;letter-spacing:-.4px}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;color:#fff;background:var(--ink);transform:rotate(-3deg)}.profile{min-width:56px;height:46px;padding:0 11px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:99px;border:0;background:#dce9df;font-weight:700}.profile:disabled{opacity:.55}.auth-shell{min-height:100vh;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(231,173,66,.14),transparent 28%),linear-gradient(180deg,#fffdf8,#f3eee5)}.auth-card{width:min(580px,100%);padding:clamp(34px,8vw,70px);border:1px solid var(--line);border-radius:32px;background:#ffffffe0;box-shadow:0 24px 70px #183a371f;text-align:center}.auth-card .brand-mark{width:62px;height:62px;margin:0 auto 24px}.auth-card h1{font-size:clamp(38px,7vw,58px)}.auth-card>p:not(.eyebrow){margin:20px 0 0;color:#5e716f;font-size:19px;line-height:1.55}.auth-login{min-height:62px;margin-top:30px;padding:0 24px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:18px;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;font-size:17px}.hero{position:relative;text-align:center;padding:76px 20px 66px;background:radial-gradient(circle at 50% 55%,rgba(231,173,66,.11),transparent 32%),linear-gradient(180deg,#fffdf8,#f8f4ec)}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(1px);opacity:.4}.hero:before{width:240px;height:240px;background:#dbe8dd;left:-110px;top:80px}.hero:after{width:180px;height:180px;background:#f4d7b8;right:-85px;bottom:60px}.eyebrow{margin:0 0 14px;text-transform:uppercase;letter-spacing:2.2px;font-size:12px;font-weight:700;color:#ba5a3b}h1,h2,h3{font-family:Georgia,Times New Roman,serif}h1{position:relative;max-width:800px;margin:0 auto;font-size:clamp(38px,6vw,68px);line-height:1.04;letter-spacing:-2px}.hero-copy{font-size:clamp(18px,2vw,22px);color:#5e716f;margin:18px 0 34px}.mic-button{position:relative;z-index:1;width:188px;height:188px;margin:0 auto 34px;border:10px solid #efe4d2;border-radius:50%;background:var(--orange);color:#fff;box-shadow:0 18px 45px #b74f313d;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;transition:transform .2s,box-shadow .2s}.mic-button:hover{transform:translateY(-4px);box-shadow:0 24px 50px #b74f314d}.mic-button span{font-size:14px;font-weight:700}.mic-button.listening{animation:pulse 1.3s infinite;background:#bc4436}@keyframes pulse{50%{box-shadow:0 0 0 20px #e3664221}}.text-entry{position:relative;z-index:1;max-width:630px;height:68px;padding:0 9px 0 22px;margin:0 auto;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px #183a3712}.text-entry input{flex:1;min-width:0;border:0;outline:0;font-size:17px;color:var(--ink);background:transparent}.text-entry button{width:48px;height:48px;border:0;border-radius:16px;display:grid;place-items:center;color:#fff;background:var(--ink)}.text-entry button:disabled{opacity:.45;cursor:default}.suggestions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:18px}.suggestions button{padding:10px 15px;border:1px solid #d8d2c6;border-radius:99px;background:transparent}.suggestions button:hover{background:#fff}.ingredient-search{position:relative;z-index:1;width:min(700px,100%);margin:34px auto 0;padding:26px;border:1px solid var(--line);border-radius:24px;background:#ffffffc7;box-shadow:0 12px 35px #183a370f;text-align:left}.ingredient-search h2{margin:0 0 18px;font-size:clamp(25px,4vw,34px)}.ingredient-entry{display:grid;grid-template-columns:1fr auto;gap:10px}.ingredient-entry input{min-width:0;height:54px;padding:0 16px;border:1px solid var(--line);border-radius:15px;background:#fff}.ingredient-entry button,.ingredient-submit{min-height:54px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:15px;background:var(--ink);color:#fff;font-weight:700}.ingredient-entry button:disabled,.ingredient-submit:disabled{opacity:.45;cursor:default}.ingredient-chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:15px}.ingredient-chip{min-height:40px;padding:0 7px 0 14px;display:inline-flex;align-items:center;gap:7px;border-radius:99px;background:#dfeadf;font-weight:700}.ingredient-chip button{width:29px;height:29px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffffb3}.ingredient-submit{width:100%;margin-top:18px;background:var(--orange)}.notice{max-width:650px;margin:20px auto 0;padding:14px 18px;border-radius:14px;background:#fff1cf;font-weight:600}.content-section{max-width:1220px;margin:0 auto;padding:76px 26px 48px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.section-heading h2{margin:0;font-size:clamp(31px,4vw,44px)}.quiet-button{display:flex;align-items:center;gap:6px;border:0;background:transparent;font-weight:700}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.recipe-card{overflow:hidden;min-width:0;border-radius:26px;background:var(--paper);border:1px solid rgba(24,58,55,.1);box-shadow:0 16px 40px #183a3712;transition:transform .2s}.recipe-card:hover{transform:translateY(-5px)}.recipe-open{width:100%;height:100%;padding:0;display:block;border:0;background:transparent;text-align:left}.recipe-open:focus-visible{outline-offset:-5px;border-radius:25px}.card-art{position:relative;height:190px;display:grid;place-items:center;background:#dfeadf}.tone-2 .card-art{background:#f0d9bd}.tone-3 .card-art{background:#edc8b5}.card-art>span{font-size:86px;filter:drop-shadow(0 12px 10px rgba(24,58,55,.15))}.card-art>img{width:100%;height:100%;object-fit:cover}.heart{position:absolute;right:16px;top:16px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffffe6}.card-body{padding:24px}.card-meta{display:flex;gap:18px;font-size:14px;color:#647775}.card-meta span{display:flex;align-items:center;gap:6px}.card-body h3{margin:13px 0 7px;font-size:25px;line-height:1.15}.card-body p{margin:0;min-height:48px;color:#63716f;line-height:1.5}.card-link{display:flex;align-items:center;gap:4px;margin-top:19px;padding:0;border:0;background:transparent;font-weight:700;color:#b75237}.quick-actions{max-width:1168px;margin:10px auto 70px;padding:0 26px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.quick-actions button{display:flex;align-items:center;gap:16px;min-height:88px;padding:16px;border:1px solid var(--line);border-radius:20px;background:#fffdf9;text-align:left}.quick-actions button:disabled{opacity:.55;cursor:wait}.action-icon{width:52px;height:52px;flex:0 0 auto;display:grid;place-items:center;border-radius:17px;background:#e3ece3}.quick-actions span:last-child{display:flex;flex-direction:column;gap:3px}.quick-actions small{color:#71807e}footer{padding:30px;text-align:center;background:var(--ink);color:#d6e1df}.dialog-backdrop{position:fixed;inset:0;z-index:10;padding:22px;display:grid;place-items:center;background:#091c1ab8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.recipe-dialog{position:relative;max-width:930px;max-height:92vh;overflow:auto;width:100%;padding:clamp(28px,5vw,55px);border-radius:30px;background:var(--paper);box-shadow:0 30px 90px #0000004d}.close{position:absolute;top:20px;right:20px;width:46px;height:46px;border:0;border-radius:50%;background:#eee9df}.recipe-dialog h2,.confirm-dialog h2{margin:0 50px 12px 0;font-size:clamp(31px,5vw,47px)}.recipe-columns{display:grid;grid-template-columns:.8fr 1.2fr;gap:38px;margin:32px 0}.recipe-columns h3{font-size:23px}.recipe-columns ul{padding-left:20px;line-height:1.8}.recipe-columns ol{padding:0;list-style:none}.recipe-columns ol li{display:flex;gap:13px;margin-bottom:16px}.recipe-columns ol li>span{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--orange);font-weight:700}.recipe-columns ol p{margin:5px 0;line-height:1.5}.recipe-columns ol small{display:block;margin-top:5px;font-weight:700;color:#b75237}.primary-action,.secondary-action{min-height:58px;padding:0 24px;border-radius:17px;font-weight:700;font-size:16px}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;color:#fff;background:var(--ink)}.cookidoo-meta{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:22px;color:#647775;font-weight:700}.cookidoo-meta span{display:inline-flex;align-items:center;gap:7px}.cookidoo-columns{grid-template-columns:1fr 1fr}.cookidoo-link{margin-top:20px;text-decoration:none}.cookidoo-actions{display:grid;gap:12px;margin-top:24px}.cookidoo-actions .secondary-action{display:flex;align-items:center;justify-content:center;gap:9px}.cookidoo-actions label{display:grid;gap:7px;font-weight:700;color:#647775}.cookidoo-actions input{min-height:50px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit}.profile-dialog{width:min(820px,100%)}.profile-sections{display:grid;gap:20px;margin-top:28px}.profile-group{padding:22px;border:1px solid var(--line);border-radius:20px;background:#fff}.profile-group h3{margin:0 0 14px;font-size:24px}.profile-group>p:not(.profile-empty){margin:-5px 0 16px;color:#63716f;line-height:1.5}.profile-recipe-list{display:grid;gap:9px}.profile-recipe-list button{min-height:62px;padding:10px 13px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid #e4dfd5;border-radius:15px;background:var(--paper);text-align:left}.profile-recipe-list button>span{display:grid;gap:3px}.profile-recipe-list small{color:#71807e}.profile-empty{margin:24px 0 0;padding:22px;border-radius:16px;background:#f3efe7;color:#63716f;line-height:1.5}.shopping-items{margin:0;padding:0;display:grid;gap:8px;list-style:none}.shopping-items li{min-height:52px;padding:9px 12px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:11px;border-radius:13px;background:#f8f4ec}.shopping-items li>span:last-child{display:grid;gap:2px}.shopping-items small{color:#71807e}.shopping-items .owned{opacity:.62}.shopping-items .owned strong{text-decoration:line-through}.item-check{width:26px;height:26px;display:grid;place-items:center;border:2px solid #9bad9f;border-radius:8px;color:#fff;background:#fff}.owned .item-check{border-color:var(--ink);background:var(--ink)}.week-picker{display:grid;gap:8px;font-weight:700;color:#647775}.week-picker input{min-height:52px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit}.wish-form label{display:grid;gap:7px;margin-bottom:14px;font-weight:700;color:#647775}.wish-form input,.wish-form textarea,.wish-edit input,.wish-edit textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink)}.wish-form textarea,.wish-edit textarea{min-height:86px;resize:vertical}.wish-form .primary-action{width:100%}.wish-list{display:grid;gap:10px}.wish-list article{min-height:76px;padding:13px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;border:1px solid #e4dfd5;border-radius:16px;background:var(--paper)}.wish-status{width:38px;height:38px;padding:0;display:grid;place-items:center;border:2px solid #99aaa7;border-radius:50%;background:#fff}.fulfilled .wish-status{border-color:var(--ink);background:var(--ink);color:#fff}.wish-copy{min-width:0;display:grid;gap:4px}.wish-copy>strong{font-family:Georgia,Times New Roman,serif;font-size:20px}.wish-copy p{margin:0;color:#63716f}.wish-copy small{color:#71807e}.fulfilled .wish-copy{opacity:.6}.fulfilled .wish-copy>strong{text-decoration:line-through}.wish-actions{display:flex;gap:6px}.wish-actions button{width:39px;height:39px;padding:0;display:grid;place-items:center;border:0;border-radius:12px;background:#eee9df}.wish-edit{grid-column:1 / -1;display:grid;gap:10px}.wish-edit>div{display:flex;justify-content:flex-end;gap:9px}.wish-edit .primary-action,.wish-edit .secondary-action{min-height:48px}.secondary-action{border:1px solid var(--line);background:transparent}.confirm-dialog{width:min(600px,100%);padding:clamp(30px,6vw,56px);border-radius:30px;background:var(--paper);text-align:center}.confirm-dialog h2{margin-right:0}.confirm-icon{width:74px;height:74px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;background:#dce9df}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:840px){.recipe-grid{grid-template-columns:1fr 1fr}.recipe-card:last-child{display:none}.quick-actions{grid-template-columns:1fr 1fr}}@media(max-width:600px){.topbar{height:72px}.hero{padding-top:52px}.mic-button{width:164px;height:164px}.recipe-grid{grid-template-columns:1fr}.recipe-card:last-child{display:block}.section-heading{align-items:start}.quiet-button{display:none}.recipe-columns{grid-template-columns:1fr;gap:10px}.confirm-actions{grid-template-columns:1fr}.confirm-actions .primary-action{order:-1}.ingredient-entry,.quick-actions{grid-template-columns:1fr}.wish-list article{grid-template-columns:auto 1fr}.wish-actions{grid-column:2}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
