:root{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#28272c;background:#eeedf1;font-synthesis:none;font-size:15px;line-height:1.55;font-weight:400;--paper:#f8f7f3;--lavender:#dcd2f8;--cream:#fff0bf;--ink:#28272c;--muted:#85818d;--line:#ece9e5;--purple:#72618e}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button{border:0;background:none}input,textarea,select{max-width:100%;color:var(--ink);background:#f4f3f0;border:1px solid transparent;border-radius:13px;padding:12px 14px;outline:none;font-size:16px}input:focus,textarea:focus,select:focus{border-color:#9d8bbf;box-shadow:0 0 0 3px #dcd2f855}textarea{resize:vertical;min-height:100px;width:100%}input::placeholder,textarea::placeholder{color:#a19ca5}button:focus-visible{outline:3px solid #9a83bf;outline-offset:3px}button:disabled{cursor:default;opacity:.42}button,a,input,select,textarea{touch-action:manipulation}button:not(:disabled):active{transform:translateY(1px)}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:600}img{display:block;max-width:100%}svg{flex-shrink:0;vertical-align:middle}em{font-style:normal}small{font-size:12px}button{min-height:44px}input[type=file]{display:none}.app-shell{max-width:620px;min-height:100dvh;margin:auto;background:var(--paper);position:relative;box-shadow:0 0 100px #25202506}.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(18px + env(safe-area-inset-top)) 24px 10px}.wordmark{display:flex;align-items:center;gap:9px;padding:0}.wordmark img{width:32px;height:32px;border-radius:10px}.wordmark strong{font-size:19px;letter-spacing:2px}.wordmark>span{font-size:11px;color:var(--muted);border-left:1px solid #dcd8d4;padding-left:10px;margin-left:1px;letter-spacing:1px}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff8;flex-shrink:0}.topbar .icon-button{background:#eeece8}main{padding:0 24px calc(116px + env(safe-area-inset-bottom))}.page-title{position:relative;padding:30px 0 25px}.eyebrow{display:block;font-size:9px;font-weight:600;letter-spacing:2.2px;color:#8a8491;margin-bottom:13px}.page-title h1{font-size:32px;font-weight:500;line-height:1.35;letter-spacing:-.9px}.title-dot{color:#a993d2}.page-title p{font-size:12px;color:var(--muted);margin-top:12px;letter-spacing:.2px}.title-flower{font-family:Arial,sans-serif;position:absolute;right:2px;top:48px;font-size:62px;line-height:1;color:#bba7dd;transform:rotate(13deg)}.page-title.compact h1{font-size:28px}.dashboard-tiles{display:grid;grid-template-columns:1.6fr 1fr;gap:12px;margin-bottom:28px}.tile{border-radius:24px;min-height:170px;padding:20px;text-align:left;position:relative;overflow:hidden}.lavender{background:var(--lavender)}.cream{background:var(--cream)}.tile.lavender{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between}.tile.lavender:after{content:"";width:110px;height:110px;border:22px solid #ffffff21;border-radius:50%;position:absolute;right:-40px;top:-18px;pointer-events:none}.tile-icon{display:grid;place-items:center;width:40px;height:40px;background:#ffffff69;border-radius:50%;margin-bottom:20px}.tile strong{display:block;font-size:17px;line-height:1.4;font-weight:550}.tile small{display:block;font-size:10px;color:#675e78;margin-top:6px}.tile>svg{position:absolute;right:17px;bottom:23px}.collection-tile{display:flex;flex-direction:column;justify-content:space-between;padding:22px 18px}.collection-tile .eyebrow{font-size:8px;letter-spacing:1.2px;color:#9d8953;margin-bottom:0}.collection-tile>strong{font-size:48px;letter-spacing:-3px;line-height:1.2;font-weight:400}.collection-tile strong small{display:inline;font-size:13px;letter-spacing:0;margin-left:7px;color:#8e7f58}.collection-tile>span:last-child{font-size:11px;color:#8d7a48}.section-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:24px 0 12px}.section-label h2,.section-label h3{font-size:18px;letter-spacing:-.3px}.section-label>span{font-size:11px;color:var(--muted)}.count{font-size:11px;vertical-align:middle;border-radius:30px;background:#ebe7e0;padding:3px 7px;margin-left:5px;font-weight:400}.text-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:#76658d;padding:0 3px}.search-box{display:flex;align-items:center;gap:9px;background:#eeece8;border:1px solid transparent;border-radius:15px;min-height:48px;padding:0 14px;color:#8f8993}.search-box:focus-within{border-color:#b4a2cd}.search-box input{background:none;border:0;padding:12px 0;font-size:14px;min-width:0;width:100%;box-shadow:none}.search-box .icon-button{width:28px;min-height:30px;height:30px;background:none}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.scroll-chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;margin:15px 0 20px}.scroll-chips::-webkit-scrollbar{display:none}.chip{min-height:36px;flex-shrink:0;white-space:nowrap;border-radius:22px;padding:7px 16px;font-size:12px;background:#efede9;color:#87818b}.chip.active{background:var(--ink);color:#fff}.tag{border-radius:14px;background:#eae3f6;color:#79668f;padding:4px 11px;font-size:11px}.recipe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 13px}.recipe-card{min-width:0;border-radius:21px;background:#fff;overflow:hidden;border:1px solid #eeebe6}.card-main{display:block;text-align:left;width:100%;padding:0}.card-image{position:relative;aspect-ratio:1.17;overflow:hidden}.photo{object-fit:cover;width:100%;height:100%}.placeholder{background:#eee9e1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#b6a38e;background-image:radial-gradient(ellipse at 80% 10%,#ffffffaa,transparent 70%)}.placeholder>svg{width:46px;height:46px}.placeholder span{font-size:9px;letter-spacing:.5px}.card-content{padding:12px 13px 15px}.card-categories{font-size:9px;letter-spacing:.8px;color:#93859c;margin-bottom:6px;min-height:14px}.card-content h3{font-size:16px;line-height:1.45;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.3px}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:10px;color:#9a949e;margin-top:9px}.image-badge{position:absolute;top:10px;left:10px;display:flex;gap:3px;align-items:center;background:#ffffffed;padding:4px 7px;border-radius:12px;font-size:9px;color:#5c6c51}.empty{text-align:center;padding:25px 12px 22px;display:flex;flex-direction:column;align-items:center}.empty-illustration{position:relative;display:grid;place-items:center;width:115px;height:105px;border-radius:50% 44% 42% 48%;background:#eae3f4;color:#9780b4;margin-bottom:24px;transform:rotate(-5deg)}.empty-illustration>svg{transform:rotate(5deg)}.spark{position:absolute;color:#baa7d2}.spark.one{top:-4px;right:-6px;font-size:25px}.spark.two{left:-10px;bottom:0;font-size:22px;color:#d4bb78}.empty h3{font-size:18px;font-weight:500}.empty p{font-size:12px;color:var(--muted);max-width:260px;line-height:1.9;margin:10px 0 22px}.button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:8px;border-radius:15px;padding:12px 20px;font-size:13px;font-weight:500;line-height:1.5}.primary{background:var(--ink);color:#fff}.secondary{background:#eeeae4}.outline{border:1px solid #ded9d2;background:transparent}.dark{background:var(--ink);color:#fff}.danger{color:#b8605c}.danger-button{background:#ac514d;color:#fff}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(100%,620px);padding:9px 28px calc(12px + env(safe-area-inset-bottom));display:flex;gap:10px;background:#f8f7f3f2;backdrop-filter:blur(18px);border-top:1px solid #e9e5df;z-index:20}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;color:#938b97;padding:0;min-height:48px}.bottom-nav button>span{height:31px;min-width:56px;border-radius:17px;display:grid;place-items:center;position:relative}.bottom-nav button.active{color:#3b3048;font-weight:600}.bottom-nav button.active>span{background:var(--lavender)}.bottom-nav i{position:absolute;width:5px;height:5px;background:#b78f40;top:4px;right:14px;border-radius:50%}.draft-banner{width:100%;border-radius:13px;background:#ebe5f5;display:flex;align-items:center;gap:9px;padding:12px;text-align:left;font-size:12px;margin:0 0 15px}.draft-banner span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.muted{color:var(--muted)}.small{font-size:12px}.quiet-note{font-size:12px;color:#8c8490;line-height:1.9;background:#f2efea;border-radius:15px;padding:18px;margin:18px 0}.install-banner{margin-top:30px;background:#eee9e2;border-radius:18px;display:flex;align-items:center;padding:7px 8px}.install-banner>button:first-child{display:flex;align-items:center;text-align:left;gap:10px;padding:8px;flex:1;min-width:0}.install-banner img{width:34px;height:34px;border-radius:11px}.install-banner strong,.install-banner small{display:block}.install-banner strong{font-size:11px;font-weight:500}.install-banner small{font-size:9px;color:#9a8f86;margin-top:3px}.install-banner .icon-button{width:28px;background:none}.install-banner>button>svg{margin-left:auto}.status-strip,.update-strip{font-size:11px;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px;width:100%;background:#eee4d3}.update-strip{background:#e9e1f6;min-height:36px}.recommend-hero{display:flex;align-items:center;gap:15px;padding:22px 18px;border-radius:24px;width:100%;text-align:left}.hero-symbol{border-radius:19px;background:#ffffff59;display:grid;place-items:center;width:60px;height:65px;flex-shrink:0}.recommend-hero>div:nth-child(2){flex:1;min-width:0}.recommend-hero small{font-size:10px;color:#7e6e96}.recommend-hero strong{font-size:17px;display:block;font-weight:500;margin:5px 0}.recommend-hero span{font-size:10px;color:#8c7d9f}.segmented{display:flex;padding:4px;border-radius:16px;background:#ece9e3;margin:24px 0 18px;gap:5px}.segmented button{flex:1;min-height:40px;border-radius:12px;font-size:12px;color:#958d99}.segmented button.selected{background:var(--paper);color:#38313f;box-shadow:0 2px 8px #35293b07}.segmented small{font-size:10px;opacity:.65;margin-left:4px}.list-card{background:#fff;border:1px solid #eeeae5;border-radius:22px;padding:0 15px;margin:18px 0}.stock-row,.shopping-row{display:flex;align-items:center;gap:9px;min-height:82px;border-bottom:1px solid #f0ede8}.stock-row:last-child,.shopping-row:last-child{border-bottom:0}.row-main{display:flex;align-items:center;gap:12px;text-align:left;flex:1;min-width:0;padding:13px 0}.row-main strong{display:block;font-size:14px;font-weight:500;overflow-wrap:anywhere}.row-main small{display:block;color:#a29ba5;font-size:10px;margin-top:4px}.ingredient-avatar{display:grid;place-items:center;width:41px;height:44px;border-radius:13px;background:#ede7f6;color:#8e7ba8;flex-shrink:0}.stock-row:nth-child(3n+2) .ingredient-avatar{background:#fff1cf;color:#aa9163}.stock-row:nth-child(3n) .ingredient-avatar{background:#e7eddf;color:#859577}.stock-used{font-size:11px;color:#9c929f;background:#f5f2f5;border-radius:13px;min-height:34px;padding:6px 11px}.page-footnote{color:#aaa1a8;font-size:10px;text-align:center;margin:22px 0;line-height:1.8}.rule-note{font-size:11px;color:#968e9b;line-height:1.9;margin:0 0 20px}.recommend-grid{display:grid;grid-template-columns:1fr;gap:16px}.recommendation .card-main{display:flex}.recommendation .card-image{width:112px;aspect-ratio:1;flex-shrink:0;margin:12px;border-radius:14px;align-self:flex-start}.recommendation .card-content{padding:17px 12px 10px 0;flex:1}.recommendation .placeholder span{display:none}.recommendation .card-content h3{font-size:18px}.card-match{padding:13px 17px;border-top:1px solid #f2efea;font-size:11px}.card-match>p{line-height:1.8;color:#95869b}.card-match .text-button{min-height:32px;font-size:10px;margin-top:5px}.card-match .ready-text{color:#7d8d6a;display:flex;align-items:center;gap:7px}.missing-label{color:#a57d47;margin-right:7px}.shopping-summary{border-radius:24px;padding:24px 20px;display:flex;align-items:center;gap:17px;margin-bottom:26px}.shopping-summary>div{flex:1}.shopping-summary strong{font-size:34px;font-weight:400;line-height:1.3;letter-spacing:-1px}.shopping-summary strong small{font-size:12px;letter-spacing:0;margin-left:8px}.shopping-summary p{font-size:10px;color:#a28c52;margin-top:6px}.shopping-summary .icon-button{width:39px;height:39px;min-height:39px}.shopping-row.checked .row-main strong{text-decoration:line-through;color:#9b91a4}.check-button{display:grid;place-items:center;width:25px;height:25px;min-height:25px;border:1.5px solid #ddd5e3;border-radius:8px;padding:0;margin:10px 3px 10px 0;flex-shrink:0;position:relative}.check-button:before{content:"";position:absolute;inset:-10px}.checked .check-button{background:#dcd2f8;border-color:#dcd2f8;color:#68577b}.source-note{font-size:9px!important;color:#aa9cae!important}.checkout-bar{background:#eae3f3;border-radius:19px;padding:12px 14px;display:flex;align-items:center;gap:10px;justify-content:space-between;margin:17px 0}.checkout-bar>span{font-size:11px;color:#887696}.checkout-bar .button{min-height:41px;font-size:12px;padding:10px 16px}.undo-banner{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background:#e7eddf;border-radius:14px;font-size:12px}.history-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:12px;color:#9c909f;margin-top:22px}.history-toggle small{margin-left:7px}.rotate{transform:rotate(90deg)}.history-list>div{display:flex;align-items:center;gap:9px;color:#a299a6;font-size:12px;padding:12px;border-bottom:1px solid #eae5e9}.history-list small{margin-left:auto;font-size:10px}.modal-open{overflow:hidden}.sheet{border:0;padding:0;background:#fbfaf7;color:var(--ink);width:calc(100% - 24px);max-width:530px;max-height:calc(100dvh - env(safe-area-inset-top) - 24px);border-radius:27px;margin:auto auto max(12px,env(safe-area-inset-bottom));box-shadow:0 20px 80px #25202d25;overflow:hidden}.sheet[open]{display:flex;flex-direction:column;animation:sheet-in .2s ease-out}.sheet::backdrop{background:#211b2b55;backdrop-filter:blur(3px)}.sheet.wide{max-width:620px;width:100%;height:calc(100dvh - env(safe-area-inset-top) - 10px);max-height:calc(100dvh - env(safe-area-inset-top) - 10px);margin:auto auto 0;border-radius:27px 27px 0 0}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:13px 20px 11px;border-bottom:1px solid #eee9e2;flex-shrink:0;background:#fbfaf7}.sheet-head h2{font-size:17px}.sheet-head .icon-button{width:36px;min-height:36px;height:36px;background:#eeebe6}.sheet-content{padding:20px;overflow-y:auto;overscroll-behavior:contain;min-height:0;-webkit-overflow-scrolling:touch;padding-bottom:calc(25px + env(safe-area-inset-bottom))}.sheet-foot{padding:12px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid #ece6df;background:#fbfaf7;flex-shrink:0}.field{display:flex;flex-direction:column;gap:8px;margin:20px 0}.field>span{font-size:13px;font-weight:500}.field>span em{font-size:10px;font-weight:400;color:#9a919f;margin-left:6px}.field small{color:#9c91a1;font-size:10px;line-height:1.8}.field input,.field select{width:100%}.field .chips{margin:0}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.two-fields .field{margin-top:0}.cover-editor{height:190px;border-radius:20px;overflow:hidden;position:relative}.cover-editor>.photo{height:100%}.cover-editor .placeholder>svg{width:55px;height:55px}.cover-editor .placeholder>span{font-size:11px;margin-bottom:38px}.photo-upload{position:absolute;left:50%;bottom:16px;transform:translate(-50%);white-space:nowrap;background:#ffffffda;backdrop-filter:blur(8px);font-size:11px;min-height:36px;padding:7px 14px;color:#766783;border-radius:24px;cursor:pointer}.photo-upload:active{transform:translate(-50%)}.cover-remove{position:absolute;right:10px;top:10px;width:30px;height:30px;min-height:30px;background:#fffd}.editor-group{background:#f2efeb;border-radius:18px;padding:9px 13px;margin:12px 0}.group-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px}.group-title h4{font-size:12px;font-weight:500;display:flex;align-items:center;gap:8px}.role-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#b4a0d0;margin-right:1px}.role-dot.side{background:#a0b28b}.role-dot.seasoning{background:#d7ba70}.empty-group{font-size:11px;color:#afa1b4;text-align:left;width:100%;min-height:38px;padding:4px 0}.recipe-ingredient-edit{display:flex;align-items:center;gap:7px;border-top:1px solid #e7e2da;padding:9px 0}.recipe-ingredient-edit>div{flex:1;min-width:0}.recipe-ingredient-edit strong{font-size:13px;display:block;overflow-wrap:anywhere}.recipe-ingredient-edit select{font-size:10px;background:transparent;padding:4px 0;border:0;color:#9e90a8;width:auto;box-shadow:none}.recipe-ingredient-edit>input{width:100px;background:#fff9;font-size:12px;padding:9px;border-radius:10px}.recipe-ingredient-edit .icon-button{width:28px;min-height:36px;background:transparent}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.editor-footer .small{font-size:10px}.step-editor{background:#f2efeb;border-radius:18px;padding:13px;margin:13px 0}.row-actions{display:flex}.row-actions .icon-button{width:30px;min-height:34px;height:34px;background:none}.step-number{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:#e5dbf4;font-size:12px;color:#9077ad;font-weight:500;flex-shrink:0}.step-editor textarea{margin-top:10px;background:#fff9;font-size:14px}.step-photo{position:relative;margin-top:10px}.step-photo .photo{max-height:220px;border-radius:12px}.step-photo .icon-button{position:absolute;right:5px;top:5px;background:#fffd;width:30px;min-height:30px;height:30px}.upload-link{cursor:pointer;margin-top:7px}.ingredient-cloud{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.ingredient-chip{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:#f0ece6;font-size:13px}.ingredient-chip.selected{background:#e0d4f7;color:#6c5787}.create-ingredient{background:#fff0c8;display:flex;align-items:center;gap:7px;border-radius:13px;padding:12px 15px;width:100%;font-size:12px;overflow-wrap:anywhere;text-align:left}.detail-cover{height:230px;border-radius:18px;overflow:hidden}.recipe-title{font-size:30px;line-height:1.4;margin-top:13px;overflow-wrap:anywhere;letter-spacing:-.5px}.detail-meta{display:flex;flex-wrap:wrap;gap:15px;color:#9b90a3;font-size:11px;margin-top:12px}.detail-meta>span{display:flex;align-items:center;gap:6px}.match-banner{display:flex;gap:12px;padding:17px;border-radius:18px;margin:24px 0;align-items:center}.match-banner strong{font-size:13px;font-weight:500}.match-banner p{font-size:10px;color:#8f7c80;margin-top:5px;line-height:1.8}.detail-section{font-size:19px;margin:28px 0 17px}.detail-ingredients{margin:16px 0}.detail-ingredients h4{font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px;color:#91819c;margin:12px 0}.ingredient-line{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #ece8e1;font-size:13px}.ingredient-line>span{flex:1;overflow-wrap:anywhere}.ingredient-line small{color:#a094a6;font-size:11px;max-width:40%}.ingredient-line em{font-size:10px;min-width:37px;display:flex;align-items:center;justify-content:center;gap:4px}.in-stock{color:#8a9977}.out-stock{color:#bf9758;background:#fff0cb;padding:3px 7px;border-radius:6px}.detail-step{display:flex;gap:13px;margin:23px 0}.detail-step>div{flex:1;min-width:0}.detail-step p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.9;padding-top:2px}.detail-step .photo{height:auto;max-height:320px;border-radius:14px;margin-top:13px}.recipe-note{background:#f0eaf7;border-radius:17px;padding:18px;margin:26px 0}.recipe-note span{font-size:11px;color:#8a719f}.recipe-note p{white-space:pre-wrap;font-size:13px;line-height:1.9;margin-top:8px}.detail-footer{display:flex;gap:12px}.detail-footer .button:first-child{flex:1}.detail-footer .button:last-child{flex:2}.delete-recipe{margin:15px 0}.check-row{display:flex;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid #ede6df;cursor:pointer}.check-row input{width:20px;height:20px;accent-color:#a58cbe}.check-row>span{flex:1}.check-row strong{display:block;font-size:14px;font-weight:500}.check-row small{display:block;font-size:11px;color:#a195a6;margin-top:4px}.check-row em{font-size:10px;color:#ac9cb5}.settings-brand{display:flex;align-items:center;gap:14px;margin:3px 0 26px}.settings-brand img{width:52px;height:52px;border-radius:17px}.settings-brand h2{font-size:24px;letter-spacing:3px;font-weight:500}.settings-brand p{font-size:10px;color:#9c90a3;margin-top:3px}.settings-group{margin:24px 0}.settings-group h3{font-size:12px;color:#a194a5;font-weight:400;margin:0 0 10px}.settings-row{display:flex;align-items:center;gap:13px;width:100%;padding:15px 5px;text-align:left;min-height:65px;border-bottom:1px solid #ede7e0}.settings-row>svg:first-child{color:#9b87ae}.settings-row>span{flex:1}.settings-row strong{font-size:13px;display:block;font-weight:500}.settings-row small{font-size:10px;color:#a598ab;display:block;margin-top:4px;line-height:1.7}.settings-row>svg:last-child:not(:first-child){color:#b4a8bb}.local-note{display:flex;align-items:center;gap:10px;background:#ece6f4;border-radius:15px;padding:13px 15px;color:#927da7}.local-note p{font-size:10px;line-height:1.9}.backup-date{font-size:9px;color:#afa3b4;margin-top:13px;line-height:1.8}.settings-version{text-align:center;color:#bbafc0;font-size:10px;margin-top:24px}.inline-create{display:flex;align-items:center;gap:7px;margin:17px 0}.inline-create input{width:100%;min-width:0}.inline-create .icon-button{background:var(--lavender)}.manager-row{display:flex;align-items:center;gap:2px;border-bottom:1px solid #ece7e1;padding:7px 0}.manager-name{text-align:left;flex:1;font-size:13px;padding:7px 0}.manager-name small{display:block;color:#a599aa;font-size:10px;margin-top:3px}.manager-row .icon-button{width:33px;min-height:44px;background:none}.manager-row input{width:100%;min-width:0;padding:8px;font-size:14px}.install-art{display:flex;flex-direction:column;align-items:center;gap:7px;margin:10px 0 20px}.install-art img{width:70px;height:70px;border-radius:20px;box-shadow:0 8px 22px #9e83c92a}.install-art span{font-size:12px;letter-spacing:3px}.center{text-align:center}.install-steps{padding:0;margin:25px 0;list-style:none}.install-steps li{display:flex;align-items:flex-start;gap:13px;margin:19px 0;font-size:12px;line-height:1.8}.install-steps li>span{width:25px;height:25px;border-radius:50%;background:#e7dcf5;color:#977fae;display:grid;place-items:center;font-size:11px;flex-shrink:0}.install-steps strong{font-weight:500}.restore-stats{display:flex;justify-content:space-around;background:#e7ddf4;border-radius:18px;padding:22px;margin-bottom:20px}.restore-stats strong{font-size:26px;font-weight:400}.restore-stats span{display:block;font-size:10px;color:#9c84af}.restore-stats+p{font-size:13px;line-height:1.9;margin-bottom:20px}.confirm-copy{font-size:14px;line-height:1.9;color:#8c7f94;margin-bottom:25px}.confirm-actions{display:flex;gap:12px}.confirm-actions>.button{flex:1}.toast{position:fixed;z-index:1000;left:50%;bottom:calc(94px + env(safe-area-inset-bottom));transform:translate(-50%);background:#302936f0;color:#fff;border-radius:16px;padding:13px 20px;max-width:calc(100% - 36px);width:max-content;font-size:12px;text-align:center;box-shadow:0 8px 24px #33283b26;pointer-events:none}.boot{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;background:var(--paper);text-align:center;padding:30px;gap:20px}.boot img{width:72px;border-radius:24px}.boot h2{font-size:26px;letter-spacing:4px}.boot p{font-size:13px;color:#9e8fa8;max-width:330px}.loading-dot{width:7px;height:7px;background:#bba6d6;border-radius:50%;animation:pulse 1s infinite alternate}.sub-header{display:flex;align-items:center;justify-content:space-between}.sub-header h2{font-size:17px}.header-spacer{width:44px}[hidden]{display:none!important}@keyframes pulse{to{opacity:.3}}@keyframes sheet-in{0%{transform:translateY(12px);opacity:.7}to{transform:translateY(0);opacity:1}}@media(min-width:620px){.app-shell{border-left:1px solid #e8e3ec;border-right:1px solid #e8e3ec}.page-title{padding-top:35px}.page-title h1{font-size:39px}.page-title.compact h1{font-size:34px}.dashboard-tiles{grid-template-columns:1.8fr 1fr}.tile{min-height:178px}.recipe-grid{gap:20px}.card-image{aspect-ratio:1.4}.recommend-grid{grid-template-columns:1fr 1fr}.recommendation .card-main{display:block}.recommendation .card-image{width:100%;margin:0;border-radius:0;aspect-ratio:1.3}.recommendation .card-content{padding:15px}.sheet,.sheet.wide{margin:auto;max-height:90dvh;border-radius:27px;height:auto}.sheet.wide{height:90dvh;width:calc(100% - 32px)}.sheet-content{padding:24px}.sheet-foot{padding-bottom:16px}.title-flower{right:12px;font-size:76px}}@media(max-width:370px){main{padding-left:18px;padding-right:18px}.topbar{padding-left:18px;padding-right:18px}.page-title h1{font-size:29px}.title-flower{font-size:48px;right:0}.tile{padding:16px}.tile strong{font-size:15px}.tile small{font-size:9px}.tile>svg{right:12px;bottom:20px;width:17px}.collection-tile>strong{font-size:43px}.recommend-hero{gap:10px;padding:18px 13px}.hero-symbol{width:45px;height:55px}.recommend-hero strong{font-size:15px}.shopping-summary{gap:12px;padding:20px 15px}.card-content{padding:11px}.recipe-ingredient-edit>input{width:85px}.wordmark>span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}.page-toolbar{position:sticky;top:0;z-index:15;display:flex;align-items:center;justify-content:space-between;min-height:68px;padding:calc(10px + env(safe-area-inset-top)) 0 12px;margin-bottom:8px;background:var(--paper)}.page-toolbar>div{display:flex;align-items:center;gap:10px}.page-toolbar h1{font-size:23px;font-weight:600;line-height:1.3;letter-spacing:0}.toolbar-count{font-size:11px;color:#a092ab;padding-top:3px}.page-toolbar .icon-button{background:transparent}.page-toolbar .toolbar-add{background:#e6dcf6;width:38px;height:38px;min-height:44px}.page-toolbar .icon-button:last-child{margin-right:-7px}.recommend-hero{padding:13px 15px;border-radius:18px;gap:11px}.hero-symbol{width:40px;height:42px;border-radius:12px}.hero-symbol svg{width:24px;height:24px}.recommend-hero strong{font-size:14px;margin:0 0 3px}.recommend-hero span{font-size:10px}.recommend-hero>svg{width:19px}.segmented{margin:15px 0}.shopping-hint{font-size:12px;color:#97899f}.page-toolbar+.section-label{margin-top:8px}.empty{padding-top:28px}.empty-illustration{width:85px;height:78px;margin-bottom:19px}.empty-illustration>svg{width:34px;height:34px}.empty h3{font-size:16px}.empty p{margin-bottom:17px}.install-banner{margin-top:24px}.recipe-grid{gap:14px 12px}.recipe-title{font-size:24px}.detail-cover{height:200px}.chip{min-height:40px}.collection-tile{display:none}@media(min-width:620px){.page-toolbar h1{font-size:23px}.recommend-hero strong{font-size:15px}}.toast{inset:auto auto calc(94px + env(safe-area-inset-bottom)) 50%;margin:0;border:0}.toast:popover-open{display:block}@media(max-width:619px){.app-shell input,.app-shell textarea,.app-shell select,.sheet input,.sheet textarea,.sheet select{font-size:16px}.recipe-ingredient-edit>input{width:112px}}.sheet{max-height:calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - 24px)}.sheet.wide{height:calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - 10px);max-height:calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - 10px)}.keyboard-open .bottom-nav{display:none}.keyboard-open .sheet-foot{padding-bottom:10px}.keyboard-open .sheet-content{padding-bottom:16px}.keyboard-open .sheet{margin-bottom:0}.chip,.stock-used,.upload-link,.photo-upload{min-height:44px}.recipe-ingredient-edit .icon-button,.row-actions .icon-button,.manager-row .icon-button{position:relative}.recipe-ingredient-edit .icon-button:before,.row-actions .icon-button:before,.manager-row .icon-button:before{content:"";position:absolute;inset:0 -5px}.detail-section{font-size:17px}.sheet-head h2{font-size:16px}@media(min-width:620px){.sheet.wide{height:min(90dvh,var(--viewport-height,90dvh));max-height:90dvh}}.offline-error{font-size:13px;overflow-wrap:anywhere;color:var(--muted);margin:12px 0}.offline-error summary{min-height:44px;display:flex;align-items:center;cursor:pointer}.offline-error p{padding:12px;background:#fff0bf;border-radius:12px}:root{--accent:#dcd2f8;--accent-ink:#69538e;--accent-soft:#f0eaf9;--mint:#c8e9da;--chip:#efede9;--muted:#756f7d;background:#eeece8;color:#28272c}.theme-drink{--accent:#c8e9da;--accent-ink:#286a53;--accent-soft:#eaf4ef}.app-shell{max-width:480px}.app-shell main{padding:0 20px calc(140px + env(safe-area-inset-bottom))}.page-toolbar{min-height:84px;padding:calc(18px + env(safe-area-inset-top)) 0 18px;margin:0;gap:8px}.page-toolbar h1{font-size:22px;line-height:1.5;white-space:nowrap}.page-toolbar>.domain-switch{gap:4px}.page-toolbar>div{gap:0}.page-toolbar .icon-button{width:40px}.page-toolbar>div:last-child{margin-right:-6px}.domain-switch{background:var(--chip);padding:4px;border-radius:24px;display:flex}.domain-switch button{min-height:36px;width:44px;display:grid;place-items:center;border-radius:20px;color:var(--accent-ink)}.domain-switch .selected{background:var(--accent)}.menu-filters{display:flex;gap:8px;margin:4px 0 16px}.menu-filters>.chip{flex:1;gap:5px;white-space:nowrap;padding:8px 10px;min-height:44px;font-size:12px}.chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:22px;background:var(--chip);color:var(--muted);padding:10px 16px}.chip.active{background:var(--accent);color:var(--accent-ink)}.menu-list{display:flex;flex-direction:column;gap:16px}.menu-card{border-radius:20px;background:#fff;position:relative;overflow:hidden;transition:transform .18s ease;touch-action:pan-y}.menu-card-open{display:block;width:100%;padding:0;text-align:left}.menu-card-open>.photo{width:100%;height:auto;aspect-ratio:362/156;object-fit:cover;border-radius:16px;min-height:156px}.menu-card-info{padding:12px 16px 18px;min-height:102px}.menu-card h3{font-size:17px;line-height:1.5;padding-right:50px;overflow-wrap:anywhere}.menu-card-tags{font-size:12px;color:var(--muted);padding-right:44px;margin:5px 0}.menu-card-stock{font-size:12px;color:var(--accent-ink);line-height:1.7;overflow-wrap:anywhere}.todo-toggle{position:absolute;right:16px;top:calc((100vw - 40px)*156/362 + 14px);width:44px;height:44px;background:var(--accent-soft);color:var(--accent-ink);border-radius:50%;display:grid;place-items:center}.todo-toggle.added{background:var(--accent)}.swipe-wrap{position:relative;overflow:hidden;border-radius:20px;background:#ae4949}.swipe-delete{position:absolute;inset:0 0 0 auto;width:84px;background:#ae4949;color:#fff;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center}.bottom-nav{max-width:480px;width:100%;height:calc(76px + env(safe-area-inset-bottom));padding:8px 12px calc(8px + env(safe-area-inset-bottom));border:0;background:var(--paper);box-shadow:none;z-index:20;bottom:0;left:50%;transform:translate(-50%);display:flex}.bottom-nav button{flex:1;font-size:11px;color:var(--muted);gap:5px}.bottom-nav button>span{width:48px;height:28px;border-radius:16px;display:grid;place-items:center}.bottom-nav button.active{color:var(--ink)}.bottom-nav button.active>span{background:var(--accent);color:var(--accent-ink)}.global-fab{position:fixed;right:max(20px,calc((100vw - 480px)/2 + 20px));bottom:calc(94px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;z-index:30;box-shadow:0 4px 16px #0003}.global-fab:active{transform:scale(.95)}.bulk-float{position:fixed;left:max(20px,calc((100vw - 480px)/2 + 20px));right:max(86px,calc((100vw - 480px)/2 + 86px));bottom:calc(94px + env(safe-area-inset-bottom));height:58px;padding:6px;background:#fff;border-radius:20px;box-shadow:0 4px 18px #0002;display:flex;align-items:center;justify-content:space-around;z-index:30}.bulk-float .icon-button{width:42px;background:none}.bulk-float small{font-size:11px;min-width:12px}.bulk-float .status-dot{width:21px;height:21px;border:1px solid #83788b;border-radius:50%}.status-dot.present{background:var(--mint)}.status-dot.absent{background:var(--chip)}.stock-groups{display:flex;flex-direction:column;gap:12px}.stock-group{background:#fff;border-radius:20px;outline:2px solid transparent;transition:outline-color .18s}.stock-group.drop-target{outline-color:var(--accent-ink);background:var(--accent-soft)}.stock-group-header{min-height:56px;display:flex;align-items:center;padding:0 12px 0 16px}.stock-group-header>button:first-child{flex:1;display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;min-height:56px;padding:8px 0}.stock-group-header h2{font-size:17px;line-height:1.5;overflow-wrap:anywhere}.stock-group-header svg{color:var(--muted);transition:transform .2s}.stock-group-header .folded{transform:rotate(-90deg)}.stock-group-header>.icon-button{width:44px;background:none;order:-1;margin-left:-8px}.accordion{display:grid;grid-template-rows:1fr;transition:grid-template-rows .22s ease}.accordion.collapsed{grid-template-rows:0fr}.accordion>div{min-height:0;overflow:hidden}.ingredient-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;padding:12px}.ingredient-tile{border-radius:16px;min-height:64px;position:relative;font-size:13px;padding:10px 6px;overflow-wrap:anywhere;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;border:2px solid transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y}.ingredient-tile.present{background:var(--mint)}.ingredient-tile.absent{background:var(--chip)}.ingredient-tile.is-selected{border-color:var(--accent-ink)}.ingredient-tile small{font-size:10px;max-width:100%;color:var(--muted)}.ingredient-tile .new-marker{position:absolute;right:-3px;top:-8px;background:var(--cream);border-radius:7px;padding:1px 6px;color:var(--ink)}.selection-mark{position:absolute;right:-3px;top:-6px;background:var(--accent-ink);color:#fff;border-radius:50%;padding:2px}.drag-source{opacity:.35}.drag-ghost{position:fixed;pointer-events:none;z-index:1000;min-width:88px;min-height:64px;border-radius:16px;box-shadow:0 8px 24px #0003;background:var(--mint);display:flex;align-items:center;justify-content:center;gap:4px;transform:scale(1.07)}.empty-category{grid-column:1/-1;text-align:left;color:var(--muted);font-size:13px}.stock-switch{display:flex;gap:14px;margin:12px 0 24px}.stock-choice{flex:1;border-radius:16px;border:2px solid transparent;position:relative;height:52px;display:flex;align-items:center;justify-content:center}.stock-choice.present{background:var(--mint)}.stock-choice.absent{background:var(--chip)}.stock-choice.selected{border-color:var(--accent-ink)}.stock-choice>span{width:18px;height:18px;border-radius:50%;border:1px solid #7d7883}.stock-choice.present>span{background:#629e87}.stock-choice.absent>span{background:#fff}.stock-choice svg{position:absolute;right:12px}.sheet,.sheet.wide{width:calc(100% - 24px);max-width:456px;margin:auto auto max(12px,env(safe-area-inset-bottom));border-radius:28px;height:auto;max-height:calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - 48px);background:var(--paper)}.sheet.wide{height:min(790px,calc(var(--viewport-height,100dvh) - env(safe-area-inset-top) - 48px))}.sheet:before{content:"";position:absolute;top:10px;left:calc(50% - 18px);width:36px;height:4px;border-radius:2px;background:var(--line);pointer-events:none;z-index:1}.sheet-head{padding:22px 20px 6px;background:var(--paper);border:0}.sheet-head h2{font-size:18px;overflow-wrap:anywhere}.sheet-head .icon-button{background:none;min-width:44px;min-height:44px}.sheet-content{padding:16px 20px 24px}.sheet-foot{border:0;background:var(--paper);padding:12px 20px 20px}.sheet::backdrop{background:#0004;backdrop-filter:blur(1px)}.quick-editor-top{display:grid;grid-template-columns:100px minmax(0,1fr);gap:16px;align-items:center;margin-bottom:24px}.quick-photo{height:92px;padding:0;border-radius:16px;overflow:hidden;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px}.quick-photo>.photo{width:100%;height:100%;object-fit:cover}.quick-photo span{font-size:12px}.quick-editor-top .field{margin:0}.field{margin:24px 0}.field>span{color:var(--muted);font-size:12px;font-weight:400}.field input,.field textarea,.field select{background:#fff}.select-field{background:#fff;border-radius:14px;min-height:52px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;font-size:14px;overflow-wrap:anywhere}.section-label{display:flex;justify-content:space-between;align-items:center;margin:24px 0 12px}.section-label h3{font-size:15px}.selected-ingredients{margin:0 0 24px;gap:8px}.ingredient-chip{font-size:13px;padding:10px 16px;background:var(--chip);border-radius:22px;min-height:44px}.ingredient-chip.selected{background:var(--accent);color:var(--accent-ink)}.action-row{display:flex;align-items:center;gap:12px;min-height:56px;width:100%;padding:16px;background:#fff;border-radius:16px;text-align:left;margin:10px 0;font-size:14px}.action-row>svg{color:var(--accent-ink)}.action-row>small,.action-row>svg:last-child:not(:first-child){margin-left:auto}.taxonomy-options{display:flex;flex-direction:column;gap:8px}.taxonomy-options>div{display:flex;gap:8px}.taxonomy-options .chip{flex:1}.taxonomy-options .icon-button{background:none}.picker-group{margin:20px 0}.picker-group h3{font-size:14px}.picker-group .ingredient-cloud{margin:12px 0}.detail-cover{height:auto;aspect-ratio:338/176;object-fit:cover;width:100%;border-radius:16px}.detail-tags{font-size:12px;color:var(--accent-ink);margin:16px 0 24px;line-height:1.8}.detail-stock-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.detail-stock-grid .ingredient-tile{min-height:44px;font-size:13px;border-radius:22px}.tutorial-card{background:#fff;border-radius:20px;padding:10px;display:flex;gap:16px;text-decoration:none;color:var(--ink);min-height:132px}.tutorial-card>.photo{width:102px;height:112px;object-fit:cover;border-radius:12px;flex-shrink:0}.tutorial-card>div{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;padding:4px 0}.tutorial-card small{font-size:12px;color:var(--accent-ink)}.tutorial-card strong{font-size:16px;line-height:1.5;overflow-wrap:anywhere}.tutorial-card svg{align-self:flex-end;margin-top:auto;color:var(--muted)}.detail-footer .button:first-child{flex:0 0 48px;padding:12px}.detail-footer .button:last-child{flex:1}.button{border-radius:14px;font-size:14px;min-height:48px}.button.primary{background:var(--ink);color:#fff}.button.secondary{background:var(--chip);color:var(--ink)}.full{width:100%}.mt{margin-top:16px}.list-card.shopping-list{margin-top:12px;background:transparent;border:0;padding:0}.shopping-row{border:0;border-radius:16px;background:#fff;padding:8px 14px;min-height:64px;margin-bottom:12px}.shopping-row .row-main small{font-size:11px}.checkout-bar{position:fixed;left:max(20px,calc((100vw - 480px)/2 + 20px));right:max(86px,calc((100vw - 480px)/2 + 86px));bottom:calc(94px + env(safe-area-inset-bottom));z-index:30;background:transparent;margin:0;padding:0}.checkout-bar>span{display:none}.checkout-bar .button{width:100%;min-height:48px}.demo-button{margin:auto;display:flex;color:var(--accent-ink)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.keyboard-open .global-fab,.keyboard-open .bulk-float{display:none}.editor-group h3{font-size:13px;margin:6px 0}.placeholder{background:var(--accent-soft);color:var(--accent-ink)}.placeholder span{font-size:11px}@media(min-width:480px){.todo-toggle{top:calc(440px*156/362 + 14px)}}@media(min-width:620px){.sheet,.sheet.wide{margin:auto auto 16px;max-width:456px;max-height:calc(var(--viewport-height,100dvh) - 48px)}.sheet.wide{height:min(790px,calc(var(--viewport-height,100dvh) - 48px))}.sheet-content{padding:16px 20px 24px}}@media(prefers-reduced-motion:reduce){.accordion,.menu-card,.stock-group-header svg{transition:none}}:root[data-theme=drink]{--accent:#c8e9da;--accent-ink:#286a53;--accent-soft:#eaf4ef}.add-launcher{position:relative;z-index:50}.add-scrim{position:fixed;inset:0;background:#28272c22;backdrop-filter:blur(3px);z-index:50;animation:launcher-fade .18s ease-out}.add-options{position:fixed;right:max(20px,calc((100vw - 480px)/2 + 20px));bottom:calc(164px + env(safe-area-inset-bottom));z-index:52;display:flex;flex-direction:column;gap:12px;pointer-events:none;visibility:hidden;transition:visibility .22s}.add-options button{display:flex;align-items:center;gap:14px;min-height:58px;padding:14px 22px;border-radius:22px;background:var(--paper);box-shadow:0 8px 30px #28272c18;font-weight:600;opacity:0;transform:translateY(25px) scale(.88);transform-origin:bottom right;transition:transform .24s cubic-bezier(.2,.8,.2,1.2),opacity .18s,background .12s}.add-options button:first-child{transition-delay:35ms}.is-open .add-options{visibility:visible;pointer-events:auto}.is-open .add-options button{opacity:1;transform:translateY(0) scale(1)}.add-options button.highlighted,.add-options button:focus-visible{background:var(--accent);transform:translate(-8px) scale(1.04);outline:2px solid var(--accent-ink);outline-offset:3px}.add-launcher .global-fab{z-index:53;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.global-fab svg{transition:transform .24s cubic-bezier(.2,.8,.2,1.2)}.is-open .global-fab svg{transform:rotate(45deg)}@keyframes launcher-fade{0%{opacity:0}to{opacity:1}}.sheet[data-keyboard=true],.sheet.wide[data-keyboard=true]{position:fixed;top:var(--sheet-keyboard-top);bottom:auto;margin:0 auto;height:auto;max-height:var(--sheet-keyboard-height);min-height:0}.sheet.wide[data-keyboard=true]{height:var(--sheet-keyboard-height)}.sheet-content{min-height:0;overscroll-behavior:contain;scroll-padding-block:20px;-webkit-overflow-scrolling:touch}.sheet[data-keyboard=true] .sheet-foot{padding-bottom:10px}.sheet input,.sheet textarea,.sheet select{scroll-margin-block:20px;font-size:16px}.sheet:focus{outline:none}@media(prefers-reduced-motion:reduce){.add-options button,.global-fab svg{transition:none}.add-scrim{animation:none}}:root{--ease-sheet:cubic-bezier(.32,.72,0,1);--ease-pop:cubic-bezier(.34,1.56,.64,1);--ease-out:cubic-bezier(.2,.8,.2,1)}.sheet[open]{animation:sheet-up .42s var(--ease-sheet)}.sheet[open]::backdrop{animation:backdrop-in .3s ease-out}.sheet.closing{animation:sheet-down .24s cubic-bezier(.4,0,1,1) forwards}.sheet.closing::backdrop{animation:backdrop-out .24s ease-in forwards}@keyframes sheet-up{0%{transform:translateY(105%)}to{transform:translateY(0)}}@keyframes sheet-down{0%{transform:translateY(var(--drag,0))}to{transform:translateY(105%)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}.sheet-head{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}button{-webkit-tap-highlight-color:transparent}.button,.chip,.action-row,.icon-button,.add-row,.ingredient-tile,.todo-toggle,.bottom-nav button,.quick-photo{transition:transform .16s var(--ease-out),background-color .2s,color .2s,box-shadow .2s}.button:active:not(:disabled),.chip:active,.action-row:active,.add-row:active,.ingredient-tile:active,.quick-photo:active{transform:scale(.97)}.icon-button:active:not(:disabled),.todo-toggle:active{transform:scale(.88)}.menu-card-open{transition:transform .2s var(--ease-out)}.menu-card-open:active{transform:scale(.985)}.menu-card{transition:transform .32s var(--ease-sheet)}.menu-card.tracking{transition:none}.menu-list>.swipe-wrap{animation:card-in .42s var(--ease-sheet) both;animation-delay:calc(var(--i,0) * 35ms)}@keyframes card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}main>div:not([hidden]){animation:tab-in .28s var(--ease-out)}@keyframes tab-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bottom-nav button.active span{animation:nav-pop .34s var(--ease-pop)}@keyframes nav-pop{0%{transform:scale(.8)}to{transform:scale(1)}}.ingredient-tile{transition:background-color .25s,transform .16s var(--ease-out)}.ingredient-tile[aria-pressed]:active{transform:scale(.94)}.todo-toggle.added svg,.ingredient-tile.present{animation:pop .32s var(--ease-pop)}@keyframes pop{0%{transform:scale(.85)}to{transform:scale(1)}}.toast{animation:toast-in .3s var(--ease-pop)}@keyframes toast-in{0%{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}.toast.has-action{pointer-events:auto;display:flex;align-items:center;gap:16px;padding:10px 10px 10px 18px}.toast.has-action:popover-open{display:flex}.toast button{color:#d8ccff;font-weight:600;font-size:13px;padding:6px 10px;border-radius:10px;background:#ffffff14}.title-input{font-size:20px!important;font-weight:600;background:transparent!important;border:0!important;box-shadow:none!important;padding:6px 0!important;width:100%;outline:none}.title-input::placeholder{color:#bbb5c0;font-weight:500}.quick-editor-top{grid-template-columns:84px minmax(0,1fr);margin-bottom:8px}.quick-photo{height:84px;border:1.5px dashed #d9d1e8;background:transparent}.quick-photo.has-photo{border:0}.edit-section{padding:14px 0 6px;border-top:1px solid var(--line)}.edit-section-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 10px}.edit-section-head h3{font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.2px}.edit-section-head h3 em{font-style:normal;color:var(--accent-ink);margin-left:4px}.edit-section-head .hint{font-size:11px;color:#b0a9b6}.text-button.small{font-size:12px;display:inline-flex;align-items:center;gap:4px;color:var(--accent-ink);min-height:32px}.chip-scroll{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -20px 12px;padding:2px 20px}.chip-scroll::-webkit-scrollbar{display:none}.chip-scroll .chip{min-height:36px;padding:7px 15px;font-size:13px}.chip.dashed{background:transparent;border:1.5px dashed #d9d1e8;color:var(--accent-ink)}.chip.active{animation:pop .28s var(--ease-pop)}.edit-list{display:flex;flex-direction:column;gap:6px}.ing-row{display:grid;grid-template-columns:minmax(0,1fr) auto 76px 32px;align-items:center;gap:8px;background:#fff;border-radius:14px;padding:6px 6px 6px 14px;min-height:50px}.ing-row strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.ing-row input{font-size:16px;padding:7px 9px;border-radius:10px;background:var(--paper);border:0;box-shadow:none;width:100%;min-width:0}.mini-segment{display:flex;background:var(--chip);border-radius:9px;padding:2px;position:relative}.mini-segment button{font-size:11px;padding:5px 7px;border-radius:7px;color:var(--muted);min-height:28px;transition:background-color .22s,color .22s,box-shadow .22s}.mini-segment button.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px #0001}.row-remove,.icon-button.ghost{background:transparent!important;width:32px;min-width:32px;min-height:32px;height:32px;color:#a8a1ad}.add-row{display:flex;align-items:center;gap:8px;min-height:46px;padding:10px 14px;border-radius:14px;color:var(--accent-ink);font-size:14px;background:transparent;border:1.5px dashed #ddd6e8;justify-content:flex-start;width:100%}.row-in{animation:row-in .3s var(--ease-sheet)}@keyframes row-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}.step-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:6px;align-items:start;background:#fff;border-radius:14px;padding:8px 4px 8px 6px;transition:transform .28s var(--ease-sheet),box-shadow .2s}.steps.dragging .step-row{animation:none}.step-row.lifted{transition:box-shadow .2s;box-shadow:0 12px 30px #2d23401f;z-index:2;position:relative}.drag-handle{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;touch-action:none;cursor:grab;color:#c3bcc9;min-height:44px}.step-num{font-size:13px;font-weight:600;color:var(--accent-ink);width:22px;height:22px;border-radius:11px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.step-body textarea,.note-input{width:100%;border:0!important;background:transparent!important;box-shadow:none!important;resize:none;font-size:16px;line-height:1.55;padding:6px 2px!important;min-height:0;overflow:hidden;outline:none}.note-input{background:#fff!important;border-radius:14px;padding:12px 14px!important;min-height:52px}.step-tools{display:flex;flex-direction:column}.step-tools label input{display:none}.step-tools label{display:flex;align-items:center;justify-content:center;cursor:pointer}.link-field{display:flex;align-items:center;gap:8px;background:#fff;border-radius:14px;padding:6px 6px 6px 14px;color:#b0a9b6;transition:color .2s}.link-field.ok{color:var(--accent-ink)}.link-field textarea{flex:1;border:0!important;background:transparent!important;box-shadow:none!important;resize:none;font-size:16px;padding:8px 0!important;overflow:hidden;outline:none;color:var(--ink)}.link-title{margin-top:8px;width:100%;font-size:16px;background:#fff;border:0;border-radius:14px;padding:12px 14px}.field-error{color:#ae4949;font-size:12px;margin:6px 4px}.editor-undo{position:sticky;bottom:0;margin:16px 0 0;display:flex;align-items:center;justify-content:space-between;background:#302936f0;color:#fff;border-radius:14px;padding:8px 8px 8px 16px;font-size:13px;animation:toast-in .3s var(--ease-pop)}.editor-undo .text-button{color:#d8ccff;display:inline-flex;gap:4px;align-items:center;font-weight:600}@media(prefers-reduced-motion:reduce){*,*:before,*:after,.sheet[open],.sheet[open]::backdrop{animation-duration:.01ms!important;transition-duration:.01ms!important}}.link-field textarea,.step-body textarea{min-height:24px!important;height:auto}.sheet-head .icon-button:focus:not(:focus-visible){outline:none;box-shadow:none}.sheet.no-enter[open]:not(.closing){animation:none}.sheet.no-enter[open]:not(.closing)::backdrop{animation:none}.zoom-clone{position:fixed;margin:0;padding:0;border:0;inset:auto;overflow:hidden;pointer-events:none;background:transparent;z-index:2147483647}.zoom-clone>img,.zoom-clone>*{width:100%;height:100%;object-fit:cover;display:block;border-radius:0!important;min-height:0!important;aspect-ratio:auto!important}.ing-add{display:flex;flex-direction:column;gap:8px}.ing-add-input{display:flex;align-items:center;gap:8px;background:#fff;border-radius:14px;padding:4px 8px 4px 14px;min-height:50px;color:var(--accent-ink);border:1.5px dashed #ddd6e8;transition:border-color .2s}.ing-add-input:focus-within{border-style:solid;border-color:var(--accent)}.ing-add-input input{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;font-size:16px;padding:8px 0!important;outline:none;color:var(--ink)}.ing-suggest{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ing-suggest .chip{min-height:36px;padding:6px 13px;font-size:13px}.ing-suggest .chip small{margin-left:4px;opacity:.7;font-size:11px}.ing-suggest .chip.hi{background:var(--accent);color:var(--accent-ink)}.ing-suggest .hint{font-size:12px;color:var(--muted)}.draft-strip{background:#efe6d2}.page-toolbar+.search-box{margin:2px 0 4px}
