@charset "UTF-8";
:root{--ink:#25364c;--muted:#6c7787;--orange:#dd6540;--orange-dark:#a74326;--blue:#304e73;--bg:#f6f7fb;--line:#e7eaf0;--radius:20px;--font:system-ui,-apple-system,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:var(--font);color:var(--ink);font-size:18px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button,a{touch-action:manipulation}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #557fb6;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.3;letter-spacing:-.8px;font-weight:750}h2{font-size:23px;line-height:1.4}h3{font-size:20px}small,.small{font-size:16px}svg{display:inline-block;vertical-align:middle;flex:none}.icon{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:fixed;top:-60px;left:15px;z-index:100;background:var(--ink);color:white;padding:10px}.skip-link:focus{top:10px}
.shell{max-width:1600px;margin:auto;min-height:100vh;display:grid;grid-template-columns:246px 1fr}.sidebar{position:sticky;top:0;align-self:start;height:100vh;padding:35px 22px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#fff}.brand{display:flex;align-items:center;gap:11px;padding:0 8px}.brand img{width:47px;height:47px;border-radius:13px}.brand strong{font-size:22px;letter-spacing:1px}.brand span{display:block;color:var(--muted);font-size:14px;letter-spacing:2px;margin-top:1px}.side-nav{display:grid;gap:10px;margin-top:51px}.nav-link{display:flex;align-items:center;gap:15px;min-height:58px;border-radius:14px;padding:12px 19px;font-size:19px;font-weight:600;color:#6a7585}.nav-link.active{background:#eef2f9;color:var(--blue)}.nav-link.active .icon{stroke-width:2.3}.side-bottom{margin-top:auto;border-top:1px solid var(--line);padding:23px 9px 0}.side-note{font-size:16px;color:var(--muted);line-height:1.8;margin:16px 0}.plain-btn{padding:9px 0;border:0;background:none;text-align:left;min-height:46px;display:flex;align-items:center;gap:10px;font-size:16px}.version{margin-top:15px;font-size:13px;color:#9299a5;letter-spacing:.3px}.workspace{min-width:0}.topbar{height:91px;padding:0 43px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.7);display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar-date{color:#6a7686;font-size:16px}.topbar-date strong{color:var(--ink);margin-right:14px}.top-actions{display:flex;align-items:center;gap:10px}.demo-pill{color:#6d5a3b;background:#f6efdf;border:1px solid #ebdfc8;padding:6px 12px;border-radius:8px;font-size:14px;white-space:nowrap}.circle-btn{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:white}.main{padding:33px 42px 35px;max-width:1380px;margin:auto;outline:none}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:13px;color:#7b8596;letter-spacing:2px;margin-bottom:6px}.subtitle{color:var(--muted);margin-top:8px;font-size:17px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:51px;padding:11px 22px;border:1px solid transparent;border-radius:12px;font-size:18px;font-weight:650;line-height:1.4}.btn-primary{color:white;background:var(--blue)}.btn-primary:hover{background:#243f61}.btn-orange{color:white;background:var(--orange-dark)}.btn-secondary{border-color:#d9e0e9;background:white;color:var(--blue)}.btn-quiet{background:#eef2f7;color:var(--blue)}.btn-danger{color:#9f4037;background:#faeeeb}.btn-wide{width:100%}.text-btn{border:0;background:none;padding:10px 0;min-height:48px;color:var(--blue);display:inline-flex;align-items:center;gap:6px;font-weight:600}.hero{position:relative;border-radius:22px;background:#edf1f7;min-height:198px;display:flex;align-items:center;justify-content:space-between;padding:26px 32px;overflow:hidden;margin-bottom:27px}.hero-content{max-width:68%;position:relative;z-index:1}.hero-kicker{color:#5c718a;font-size:15px;display:flex;align-items:center;gap:8px;margin-bottom:9px}.hero h2{font-size:29px;font-weight:700;letter-spacing:.3px;margin-bottom:9px}.hero p{font-size:17px;color:#627288;max-width:530px}.hero .text-btn{font-size:17px;margin-top:8px;padding:4px 0;min-height:36px}.hero-art{position:relative;width:208px;height:164px;flex:none;margin-right:9px}.hero-art .fridge-svg{position:absolute;width:105px;height:155px;right:35px;bottom:-5px;transform:rotate(8deg)}.hero-art .halo{position:absolute;width:166px;height:166px;border-radius:50%;background:#e1e7f0;left:10px;top:4px}.hero-art .leaf{position:absolute;width:62px;height:79px;left:0;bottom:-4px;transform:rotate(-18deg)}.hero-art .sun{position:absolute;right:6px;top:2px;color:#dc855f;font-size:31px}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:27px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.section-head .count{color:var(--muted);font-size:16px;font-weight:400;margin-left:9px}.search-field{display:flex;align-items:center;gap:9px;min-height:51px;border:1px solid #e0e5ed;background:#fff;border-radius:12px;padding:0 14px}.search-field .icon{width:20px;color:#818c9a}.search-field input{background:transparent;border:0;outline:none;width:100%;min-width:0;padding:12px 0;font-size:17px;color:var(--ink)}.search-field input:focus-visible{outline:none}.search-field:focus-within{outline:2px solid #6488b2;outline-offset:1px}.search-field input::placeholder{color:#8b929e}.filter-row{display:flex;gap:8px;align-items:center;margin:16px 0 22px;flex-wrap:wrap}.filter{display:flex;align-items:center;gap:8px;border:1px solid #e1e6ee;background:white;border-radius:11px;padding:9px 15px;min-height:47px;font-size:17px;white-space:nowrap}.filter[aria-pressed="true"]{background:var(--blue);color:white;border-color:var(--blue)}.filter-count{font-size:13px;opacity:.8}.food-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.food-card{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #e4e8ee;border-radius:17px;background:white;padding:17px 16px;min-height:141px;width:100%;transition:transform .15s,border-color .15s}.food-card:hover{transform:translateY(-2px);border-color:#a7b5c7}.food-art{width:65px;height:77px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex:none;background:#f6f5f0}.food-art svg{width:52px;height:59px}.food-art.milk,.food-art.yogurt{background:#eef2f9}.food-art.tomato,.food-art.beef{background:#fbefea}.food-art.greens{background:#edf5ef}.food-body{min-width:0;flex:1}.food-title{font-size:19px;font-weight:700;overflow-wrap:anywhere;line-height:1.4}.food-qty{color:#6f7987;font-size:16px;margin:3px 0 9px}.opened{color:#7c6853;font-size:13px;margin-left:7px;white-space:nowrap}.badge{display:inline-block;border-radius:6px;padding:3px 7px;line-height:1.6;font-size:13px;color:#6c7885;background:#f0f3f6}.badge.urgent{color:#a53e31;background:#fceae5}.badge.soon{color:#95602a;background:#fbf0da}.badge.plan{color:#3a6f66;background:#eaf3ef}.badge.expired{color:#924b54;background:#f8e9ed}.date-legend{display:flex;flex-wrap:wrap;gap:16px;color:#7a8492;font-size:14px;margin-top:19px}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d48b64;margin-right:6px}.legend-dot.green{background:#69a391}.panel{background:white;border:1px solid var(--line);border-radius:18px;padding:21px}.reminder-panel{background:#fffaf3;border-color:#efe5d5;margin-bottom:20px}.reminder-title{display:flex;align-items:center;gap:9px;margin-bottom:16px;font-size:19px;font-weight:700}.reminder-title .icon{color:#bc7547;width:21px}.priority-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid #eee6da;font-size:17px}.priority-item:last-of-type{border-bottom:0}.priority-item small{display:block;color:#8b7561;font-size:14px;margin-top:2px}.panel-foot{font-size:14px;color:#8a8071;line-height:1.7;margin-top:13px}.mini-recipe{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.mini-recipe:last-of-type{border-bottom:0}.mini-recipe img{width:71px;height:65px;object-fit:cover;border-radius:11px}.mini-recipe strong{font-size:16px}.mini-recipe small{display:block;color:var(--muted);font-size:14px;margin-top:4px}.prototype-note{display:flex;gap:8px;align-items:flex-start;color:#818996;font-size:14px;margin-top:27px}.prototype-note .icon{width:17px;height:20px;flex:none}.mobile-nav{display:none}.mobile-brand{display:none}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.recipe-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:white;display:block;text-align:left;padding:0;width:100%;transition:transform .15s}.recipe-card:hover{transform:translateY(-3px)}.recipe-image{width:100%;display:block;aspect-ratio:1.62;object-fit:cover}.recipe-content{padding:18px}.recipe-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:15px;margin:7px 0 12px}.recipe-meta .icon{width:17px;height:17px}.recipe-status{font-size:15px;color:#426e69;margin-top:8px}.recipe-status.need{color:#936d45}.recipe-description{color:var(--muted);font-size:16px;margin:5px 0 14px}.section-note{font-size:16px;color:var(--muted);margin:-8px 0 21px}.back-link{display:inline-flex;align-items:center;gap:8px;min-height:45px;color:#68788c;font-size:17px;margin-bottom:15px}.detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:30px;align-items:start}.detail-image{width:100%;border-radius:21px;display:block}.detail-panel{background:#fff;border:1px solid var(--line);border-radius:20px;padding:25px;margin-top:20px}.ingredient-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:63px;border-bottom:1px solid var(--line);padding:12px 0}.ingredient-row:last-child{border-bottom:0}.ingredient-row small{display:block;color:var(--muted);font-size:15px}.ingredient-tag{color:#426d68;font-size:15px;white-space:nowrap}.ingredient-tag.missing{color:#a15e34}.steps{padding-left:26px;margin:15px 0 0}.steps li{padding:6px 0 12px 7px}.steps li::marker{color:var(--orange-dark);font-weight:700}.detail-actions{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.form-shell{max-width:760px;margin:0 auto}.form-panel{background:white;border:1px solid var(--line);border-radius:20px;padding:29px}.field{display:block;margin-bottom:24px}.field-label{display:block;font-size:18px;font-weight:650;margin-bottom:9px}.field input,.field select{width:100%;border:1px solid #dce2ea;border-radius:11px;min-height:53px;padding:12px 14px;background:white;color:var(--ink)}.field small{display:block;font-size:15px;color:var(--muted);margin-top:7px}.field input[type="date"]{min-width:0;max-width:100%;font-size:16px;appearance:none;-webkit-appearance:none}.required{color:var(--orange-dark);font-size:15px;margin-left:5px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:17px}.location-options{display:flex;gap:10px;flex-wrap:wrap}.location-option{position:relative}.location-option input{position:absolute;opacity:0;width:1px;height:1px}.location-option span{display:flex;min-height:50px;align-items:center;padding:10px 24px;border:1px solid #dce2ea;border-radius:11px;background:white}.location-option input:checked+span{background:#edf2f9;border-color:#6883a7;color:var(--blue)}.location-option input:focus-visible+span{outline:3px solid #557fb6;outline-offset:3px}.optional-dates{border-top:1px solid var(--line);padding-top:19px;margin-bottom:23px}.optional-dates summary{cursor:pointer;min-height:48px;font-size:18px;font-weight:650}.optional-dates .field-row{padding-top:14px}.hint{padding:13px 15px;background:#f1f4f9;border-radius:10px;font-size:15px;color:#62728a;line-height:1.7;margin-bottom:23px}.form-error{font-size:16px;color:#a84132;margin-bottom:16px}.empty{background:white;border:1px dashed #d1d9e5;border-radius:18px;text-align:center;padding:45px 20px;grid-column:1/-1}.empty .icon{width:38px;height:38px;color:#8c9bb1;margin-bottom:13px}.empty p{color:var(--muted);font-size:17px;margin:8px 0 20px}.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:27px}.shopping-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:9px 22px}.shop-item{display:flex;align-items:center;gap:15px;padding:19px 0;border-bottom:1px solid var(--line)}.shop-item:last-child{border:0}.check-control{width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}.check-control input{accent-color:var(--blue);width:25px;height:25px;cursor:pointer}.shop-item-content{flex:1;min-width:0}.shop-item-content small{display:block;color:var(--muted);font-size:15px;margin-top:3px}.shop-item.bought .shop-item-content strong{text-decoration:line-through;color:#8993a0}.shop-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.shopping-summary p{color:var(--muted);font-size:16px;line-height:1.8;margin:11px 0 18px}.shopping-summary .summary-number{font-size:42px;font-weight:750;color:var(--blue);line-height:1.1;margin-top:18px}.detail-food-header{display:flex;align-items:center;gap:23px}.detail-food-header .food-art{width:100px;height:112px}.detail-food-header .food-art svg{width:75px;height:85px}.data-list{margin:22px 0 0}.data-list div{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);font-size:17px}.data-list dt{color:var(--muted)}.data-list dd{margin:0;text-align:right;overflow-wrap:anywhere}.attention{color:#985849;font-size:16px;padding:13px 16px;background:#fcf0e9;border-radius:10px;margin-top:20px}dialog{padding:0;width:min(490px,calc(100% - 32px));border:0;border-radius:22px;background:white;color:var(--ink);box-shadow:0 20px 70px #20304833;max-height:calc(100dvh - 48px);overflow:auto}dialog::backdrop{background:#25364c77;backdrop-filter:blur(3px)}.dialog-inner{padding:27px}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.dialog-inner p{font-size:17px;color:var(--muted);line-height:1.85;margin:12px 0}.dialog-inner ol{font-size:17px;color:#617086;padding-left:24px}.dialog-inner li{margin:10px 0}.dialog-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(30px);max-width:min(620px,calc(100% - 32px));border-radius:13px;padding:13px 20px;background:#25364c;color:white;font-size:16px;z-index:100;box-shadow:0 6px 25px #25364c22;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.offline-strip{background:#f5e8cd;color:#795c2a;text-align:center;font-size:15px;padding:7px 12px}.page-footer{margin-top:29px;border-top:1px solid var(--line);padding-top:15px;color:#8d94a0;font-size:13px;display:flex;justify-content:space-between;gap:10px}.install-state{font-size:15px;color:#727d8e;margin-top:17px}
@media(min-width:1450px){.content-layout{grid-template-columns:minmax(0,1fr) 310px}.food-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.food-card{padding:18px 14px;gap:8px}.food-art{width:57px}}
@media(max-width:1180px){.shell{grid-template-columns:207px 1fr}.sidebar{padding:30px 14px}.brand{gap:9px;padding:0 5px}.brand strong{font-size:20px}.brand img{width:40px;height:40px}.topbar{padding:0 27px}.main{padding:30px 27px}.content-layout{grid-template-columns:minmax(0,1fr) 247px;gap:20px}.food-grid{grid-template-columns:1fr}.recipe-grid{gap:17px;grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:25px}.hero h2{font-size:27px}.hero-art{width:173px;margin:0}.shop-layout{grid-template-columns:1fr 250px}.food-card{min-height:120px}.hero-content{max-width:70%}}
@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{height:77px;padding:0 24px;background:#fff}.topbar-date{display:none}.mobile-brand{display:flex;align-items:center;gap:9px;font-weight:750;font-size:21px}.mobile-brand img{width:35px;height:35px;border-radius:10px}.top-actions .circle-btn{width:40px;height:40px}.main{padding:27px 24px 109px}.content-layout{grid-template-columns:minmax(0,1fr) 260px}.food-card{padding:16px 14px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;border-top:1px solid var(--line);background:rgba(255,255,255,.97);display:flex;align-items:center;justify-content:space-around;z-index:20;padding:7px 8px max(8px,env(safe-area-inset-bottom));min-height:75px;backdrop-filter:blur(15px)}.mobile-nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-height:54px;min-width:82px;font-size:14px;color:#7d8796}.mobile-nav a.active{color:var(--blue);font-weight:750}.mobile-nav a.active .icon{stroke-width:2.5}.mobile-nav a.add-nav{border-radius:13px;background:#f8eee8;color:var(--orange-dark)}.toast{bottom:96px}.detail-grid{gap:23px}.page-footer{margin-bottom:10px}}
@media(max-width:650px){body{font-size:18px}.topbar{padding:0 18px;height:71px}.demo-pill{font-size:12px;padding:5px 8px}.main{padding:24px 18px 102px}.page-head{align-items:center;margin-bottom:21px;gap:12px}h1{font-size:28px}.page-head>.btn{min-height:48px;font-size:16px;padding:10px 13px}.page-head>.btn .icon{width:19px}.eyebrow{font-size:11px}.subtitle{font-size:16px;margin-top:7px}.hero{padding:23px 20px;min-height:196px;border-radius:18px;margin-bottom:24px}.hero h2{font-size:24px;line-height:1.5}.hero-content{max-width:76%}.hero p{font-size:15px;max-width:225px}.hero-kicker{font-size:13px;gap:5px}.hero-kicker .icon{width:17px}.hero-art{position:absolute;right:-20px;bottom:10px;width:130px;height:151px;opacity:.85}.hero-art .halo{width:123px;height:123px;left:0;top:15px}.hero-art .fridge-svg{width:81px;height:119px;right:19px;bottom:8px}.hero-art .leaf{width:44px;height:61px;left:0;bottom:0}.hero-art .sun{font-size:23px;right:14px;top:7px}.hero .text-btn{font-size:16px}.content-layout{display:flex;flex-direction:column;gap:25px}.fridge-aside{display:grid;grid-template-columns:1fr;gap:18px}.reminder-panel{margin:0}.food-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.food-card{display:block;position:relative;padding:15px 12px;min-height:202px}.food-art{width:58px;height:61px;background:transparent!important;margin-bottom:10px}.food-art svg{width:48px;height:56px}.food-title{font-size:18px}.food-qty{font-size:15px;margin-bottom:8px}.opened{position:absolute;right:10px;top:19px;font-size:12px;margin:0}.badge{font-size:12px;padding:3px 5px}.filter{font-size:15px;padding:8px 11px;gap:5px;min-height:45px}.filter-row{gap:7px;margin-top:14px;margin-bottom:17px}.filter-count{font-size:12px}.section-head{margin-bottom:14px}h2{font-size:21px}.section-head .count{font-size:14px;margin-left:5px}.date-legend{gap:12px;font-size:12px}.panel{padding:20px}.fridge-aside .meal-panel{display:none}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recipe-card{border-radius:15px}.recipe-content{padding:13px 12px}.recipe-content h3{font-size:18px}.recipe-description{display:none}.recipe-meta{font-size:13px;gap:5px;margin:7px 0}.recipe-status{font-size:13px;line-height:1.7}.recipe-meta .badge{font-size:12px}.recipe-image{aspect-ratio:1.5}.section-note{font-size:14px}.detail-grid{display:flex;flex-direction:column;gap:0}.detail-grid>div{width:100%}.detail-panel{padding:21px}.detail-actions .btn{flex:1;font-size:16px;padding:11px 13px;white-space:normal}.detail-image{max-height:260px;object-fit:cover}.form-panel{padding:21px 18px}.field-row{grid-template-columns:1fr;gap:0}.field{margin-bottom:23px}.location-option span{padding:10px 22px}.form-panel>.btn{font-size:18px}.shop-layout{grid-template-columns:1fr;gap:22px}.shopping-card{padding:6px 14px}.shop-item{gap:8px;flex-wrap:wrap}.shop-item .text-btn{font-size:15px}.shop-actions .btn{flex:1;font-size:16px;padding:11px 12px}.shopping-summary .summary-number{display:inline-block;margin:0 10px 0 0;font-size:33px}.shopping-summary p{margin:9px 0 14px}.detail-food-header{gap:19px}.detail-food-header .food-art{margin:0}.data-list div{font-size:16px;gap:10px}.data-list dt{max-width:45%}.data-list dd{max-width:55%}.page-footer{font-size:12px}.prototype-note{font-size:13px}.prototype-note .icon{width:16px}.dialog-inner{padding:23px}.dialog-head h2{font-size:22px}.mobile-brand{font-size:20px}.top-actions{gap:7px}}
@media(max-width:360px){.topbar{padding:0 13px}.main{padding-left:13px;padding-right:13px}.demo-pill{font-size:11px}.mobile-brand{font-size:18px}.hero p{max-width:195px}.hero h2{font-size:22px}.filter{font-size:14px;padding:8px 9px}.food-title{font-size:17px}.badge{font-size:11px}.recipe-content{padding:11px 10px}.recipe-content h3{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Keep all storage positions visible without wrapping on common phones. */
@media(max-width:650px){.hero p{max-width:200px}.filter-row[aria-label="按存放位置筛选"]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.filter-row[aria-label="按存放位置筛选"] .filter{justify-content:center;padding:8px 4px}}

@media(max-width:650px){.mobile-nav a{min-width:0;flex:1}.detail-food-header h1{overflow-wrap:anywhere}.hero h2{overflow-wrap:anywhere}}

.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.settings-grid .btn{white-space:normal}.history-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #e4e8ef}.history-item small{display:block;color:#667286;margin-top:6px}#import-preview .btn{margin-top:10px}dialog .dialog-inner{overflow-wrap:anywhere}@media(max-width:420px){.settings-grid{grid-template-columns:1fr}.top-actions{gap:6px}.demo-pill{font-size:11px}}

.cook-batch{border:1px solid #dce2eb;border-radius:16px;padding:18px;margin:18px 0}.cook-batch legend{font-weight:700;padding:0 8px}.cook-batch select{font:inherit;width:100%;padding:13px;border:1px solid #cdd5e1;border-radius:10px;background:white}.recipe-priority{font-size:14px;color:#51683d;line-height:1.7}.shop-item-content details{font-size:14px;margin-top:8px}.ingredient-row span{overflow-wrap:anywhere}.history-item>span{min-width:0}.history-item .btn{flex-shrink:0}

.scan-choices{display:grid;gap:12px;margin:18px 0}.scan-choices .btn{display:flex;flex-direction:column;align-items:flex-start;white-space:normal}.scan-choices input{max-width:100%;font-size:14px;margin-top:8px}.scan-preview{display:block;max-width:100%;max-height:340px;margin:18px auto;object-fit:contain}.scan-card{min-width:0;border:1px solid #dce2eb;border-radius:15px;padding:16px;margin:18px 0}.scan-card legend{font-weight:700;padding:0 8px}.scan-check{display:flex;gap:10px;align-items:center;margin:10px 0 18px}.scan-check input{width:24px;height:24px}.scan-card select,#scan-mode,#scan-text{font:inherit;max-width:100%;width:100%;padding:12px;border:1px solid #cdd5e1;border-radius:10px;background:white}#scan-text{resize:vertical;box-sizing:border-box}.scan-card .small{overflow-wrap:anywhere}.scan-card .field input{min-width:0}

.scan-choices{grid-template-columns:minmax(0,1fr)}.scan-choices .btn,.scan-choices input{min-width:0;max-width:100%;width:100%}

.cloud-strip{display:flex;justify-content:space-between;gap:16px;padding:12px 24px;background:#eef3f8;border-bottom:1px solid #dce4ed;font-size:15px;overflow-wrap:anywhere}.cloud-strip span{min-width:0}.cloud-strip span:last-child{flex-shrink:0}@media(max-width:600px){.cloud-strip{padding:10px 18px;font-size:13px;gap:10px}}[hidden]{display:none!important}

.advice-item{padding:16px 0;border-bottom:1px solid #e2e7ed}.advice-item h3{font-size:19px}.usage-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.usage-number{font-size:38px;color:#304e70}.usage-number span{font-size:18px}.usage-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 0;border-bottom:1px solid #e2e7ed;overflow-wrap:anywhere}.usage-row .btn{flex-shrink:0}.usage-row p{margin:6px 0}.advice-panel .text-btn{white-space:normal}@media(max-width:420px){.usage-metrics{gap:10px}.usage-metrics .panel{padding:16px}.usage-row{align-items:flex-start;flex-direction:column}.usage-metrics h2{font-size:20px}}

.photo-queue{display:grid;gap:12px;margin:18px 0}.photo-queue-item{display:flex;gap:14px;align-items:flex-start;border:1px solid #e0e6ed;border-radius:16px;padding:14px}.photo-queue-item img{width:76px;height:84px;object-fit:cover;border-radius:10px;flex-shrink:0}.photo-queue-item>div{min-width:0;flex:1}.photo-actions{display:flex;gap:8px 14px;flex-wrap:wrap}.photo-actions .text-btn{white-space:normal;text-align:left;font-size:16px}.photo-queue-item p{margin:6px 0;overflow-wrap:anywhere}@media(max-width:380px){.photo-queue-item{gap:10px;padding:10px}.photo-queue-item img{width:58px;height:70px}}

#voice-text{width:100%;max-width:100%;box-sizing:border-box;font:inherit;line-height:1.7;padding:14px;border:1px solid #cdd5e1;border-radius:12px;resize:vertical;background:#fff}#voice-text:disabled{background:#f1f4f8}.voice-actions{display:flex;flex-wrap:wrap;gap:12px}.voice-actions .btn{flex:1;min-width:130px}.voice-actions .text-btn{white-space:normal}#voice-interim{overflow-wrap:anywhere}#voice-error{scroll-margin-bottom:110px}#voice-form{scroll-margin-top:90px}

[data-action="voice-keyboard"]{margin-top:12px;margin-bottom:12px}

.ingredient-emoji{display:flex;align-items:center;justify-content:center;font-size:49px}.food-suggestions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:6px 0 12px;padding:10px;background:#f0f5ef;border:1px solid #d8e5d5;border-radius:12px}.food-suggestions button{font:inherit;min-height:44px;text-align:left;border:1px solid #dae2d5;border-radius:9px;background:#fff;padding:8px 12px;cursor:pointer}.food-suggestions [aria-selected="true"]{outline:2px solid #45694c;background:#e5f0e3}.recipe-cover{min-height:168px;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:linear-gradient(135deg,#eaf2e7,#f7ecd9);border-radius:18px 18px 0 0;color:#536149}.recipe-cover>span{font-size:51px;letter-spacing:7px}.recipe-cover>small{font-size:12px;opacity:.75}.recipe-cover.mini{min-height:72px;width:90px;flex-shrink:0;border-radius:12px;gap:4px}.recipe-cover.mini>span{font-size:19px;letter-spacing:0}.recipe-cover.mini>small{font-size:10px}.recipe-detail-art{min-height:270px;border-radius:22px}.recipe-detail-art>span{font-size:65px}.book-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.book-summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 22px;background:#eaf2e6;border-radius:16px;margin-bottom:20px}.book-summary strong{font-size:24px}.book-ingredient{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 0;border-bottom:1px solid #dde5da}.book-food-chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.book-preview{border-bottom:1px solid #dfe7dd;padding:15px 0}.cookbook-shell{max-width:1100px}.cookbook-shell textarea{font:inherit;width:100%;min-width:0;box-sizing:border-box;border:1px solid #cdd5e1;border-radius:12px;padding:12px;line-height:1.65;resize:vertical}.cookbook-shell select{font:inherit;padding:12px;max-width:100%;border:1px solid #cdd5e1;border-radius:10px;background:#fff}.cookbook-shell .form-panel{max-width:760px;margin-left:auto;margin-right:auto}.cookbook-shell .field{min-width:0}.cookbook-shell .field input{min-width:0}.book-ingredient .scan-check{margin:0}.book-preview input{width:22px;height:22px;vertical-align:middle;margin-right:8px}
@media(max-width:900px){.mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.mobile-nav a{min-width:0;padding-left:2px;padding-right:2px}.mobile-nav a span{font-size:13px;line-height:1.25;white-space:normal}.book-summary{align-items:flex-start;flex-direction:column}.book-actions .btn{flex:1;min-width:135px}.book-ingredient{gap:9px}.recipe-cover{min-height:145px}.recipe-cover>span{font-size:38px;letter-spacing:2px}}
@media(max-width:360px){.mobile-nav a span{font-size:12px}.book-actions .btn{min-width:110px}.recipe-cover>span{font-size:32px}.food-suggestions{grid-template-columns:minmax(0,1fr)}}

.recipe-cover{position:relative;overflow:hidden;margin:0;aspect-ratio:4/3;min-height:0;display:block;background:#eeeee7}.recipe-cover img{display:block;width:100%;height:100%;object-fit:cover}.recipe-cover figcaption{position:absolute;bottom:0;right:0;padding:4px 8px;background:#ffffffdf;color:#4f554c;font-size:11px;border-radius:8px 0 0 0}.recipe-cover.mini{height:72px;min-height:72px;aspect-ratio:auto}.recipe-cover.mini figcaption{display:none}.recipe-detail-art{aspect-ratio:4/3;min-height:0}.recipe-no-photo{display:flex;align-items:center;justify-content:center}.recipe-no-photo>span{font-size:17px;letter-spacing:0;padding:12px;text-align:center}.book-photo-editor{margin:20px 0;padding:18px;border:1px solid #dce3dc;border-radius:16px}.book-photo-editor .recipe-cover{max-width:360px;border-radius:12px}.book-photo-editor h2{margin-top:0}

.finance-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.finance-total{font-size:30px;display:block;overflow-wrap:anywhere}.finance-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 0;border-bottom:1px solid #e0e6e3}.finance-row>div{min-width:0;overflow-wrap:anywhere}.finance-row p{margin:5px 0}.finance-voided{opacity:.65}.finance-month{max-width:250px}.finance-month input{font:inherit;padding:12px;border:1px solid #cbd4d8;border-radius:10px}.finance-trend{display:grid;grid-template-columns:80px 1fr 135px;align-items:center;gap:12px;margin:15px 0}.finance-trend small{display:block;color:#66716a}.finance-track{height:15px;background:#e9eee9;border-radius:6px;overflow:hidden}.finance-track span{display:block;height:100%;background:#55745d}.finance-trend>span:last-child{text-align:right}#finance-form textarea{width:100%;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #cbd4d8;border-radius:10px}@media(max-width:700px){.finance-metrics{grid-template-columns:1fr}.finance-trend{grid-template-columns:65px 1fr 110px;gap:6px;font-size:14px}.finance-row{align-items:flex-start;flex-wrap:wrap}}

.date-review{margin:22px 0 30px;padding:26px;border:1px solid #d6dfe9;border-radius:24px;background:linear-gradient(135deg,#f0f5fb,#fff8ed);scroll-margin-top:85px}.date-review-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.date-review-eyebrow{font-size:15px;color:#536a83;margin:0 0 6px}.date-review h2{font-size:27px;line-height:1.4;margin:0;color:#294a6b}.date-review-settings{font-size:16px;line-height:1.6;color:#294a6b;font-weight:700;flex-shrink:0;text-decoration:underline;text-underline-offset:4px}.date-review-rule{font-size:15px;line-height:1.8;color:#526375;margin:12px 0 18px}.date-review-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-bottom:18px}.date-review-filters button{font:inherit;min-height:66px;border:1px solid #ccd7e3;background:#fff;border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#42566d;cursor:pointer}.date-review-filters button span{font-size:15px;line-height:1.45}.date-review-filters button strong{font-size:23px;line-height:1.2}.date-review-filters [aria-pressed=true]{background:#294d71;color:#fff;border-color:#294d71;box-shadow:0 3px 9px #294d711c}.date-review-list{display:grid;gap:14px}.date-review-item{background:#fff;border:1px solid #dce3ea;border-left:5px solid #ba7f31;border-radius:16px;padding:18px;min-width:0}.date-review-item-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:13px}.date-review-food{font-size:32px;line-height:1.3;flex-shrink:0}.date-review-item-head>div{flex:1;min-width:0}.date-review h3{font-size:21px;line-height:1.45;margin:0 0 3px;overflow-wrap:anywhere}.date-review h3 a{color:#294a6b;text-decoration:none}.date-review-item-head p{font-size:16px;line-height:1.6;margin:0;color:#536275;overflow-wrap:anywhere}.date-review-badge{padding:5px 9px;border-radius:8px;background:#fff0d9;color:#7d5317;font-size:14px;font-weight:700;line-height:1.5;flex-shrink:0}.date-review-expired{border-left-color:#ab4d42}.date-review-expired .date-review-badge{background:#fbece8;color:#943c32}.date-review-planned{border-left-color:#527456}.date-review-planned .date-review-badge{background:#edf4e9;color:#456448}.date-review-undated{border-left-color:#8493a2}.date-review-undated .date-review-badge{background:#edf0f3;color:#526273}.date-review-date{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:8px 0;font-size:17px;line-height:1.65}.date-review-date>span{min-width:68px;color:#607085}.date-review-date strong{color:#354c65;font-weight:700}.date-review-date time{font-size:14px;color:#65768b}.date-review-caution{font-size:15px;line-height:1.7;color:#8b4a3e;margin:10px 0}.date-review-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:15px}.date-review-actions .btn{display:flex;align-items:center;justify-content:center;min-height:45px;padding:9px;font-size:16px;white-space:normal;text-align:center}.date-review-more{margin-top:16px}.date-review-collapse{display:block;margin:14px auto 0}.date-review-foot{font-size:14px;line-height:1.8;color:#617185;margin:16px 0 0}.date-review-empty{padding:23px 16px;border:1px dashed #cad6e2;border-radius:14px;background:#ffffffa8;font-size:17px;line-height:1.7}.date-review-empty p{font-size:16px;margin:8px 0 0;color:#627286}.date-review button:focus-visible,.date-review a:focus-visible{outline:3px solid #d88c39;outline-offset:3px}@media(max-width:700px){.date-review{padding:18px 14px;border-radius:19px;margin-top:16px}.date-review-head{align-items:flex-start;flex-direction:column;gap:8px}.date-review h2{font-size:24px}.date-review-settings{font-size:15px}.date-review-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.date-review-filters button{min-height:52px;flex-direction:row;justify-content:space-between;padding:10px 12px}.date-review-filters button:last-child{grid-column:1/-1}.date-review-filters button span{font-size:16px}.date-review-filters button strong{font-size:22px}.date-review-item{padding:15px 12px}.date-review-badge{font-size:12px;padding:4px 6px;max-width:88px;white-space:normal}.date-review-item-head{gap:8px;flex-wrap:wrap}.date-review h3{font-size:20px}.date-review-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.date-review-date{gap:6px 9px;font-size:17px}.date-review-date time{flex-basis:100%;padding-left:77px}.date-review-rule{font-size:14px}.date-review-food{font-size:28px}}@media(max-width:360px){.date-review-item-head>div{min-width:120px}.date-review-badge{margin-left:36px;max-width:none}.date-review-actions .btn{font-size:15px}}

.start-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border:1px solid #d7dfd4;border-radius:18px;background:#f1f6ef;margin:20px 0}.start-banner h2{font-size:20px;line-height:1.5;margin:0 0 6px;color:#395a42}.start-banner p{font-size:16px;line-height:1.7;margin:0;color:#58695b}.start-actions,.start-nav{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.start-actions .btn,.start-nav .btn{min-height:48px;white-space:normal;text-align:center}.start-nav{margin:24px 0}.start-notice{border:1px solid #dce3e9;border-radius:18px;background:#f8fafb;padding:22px;margin:18px 0}.start-notice h2,.start-step h2{font-size:23px;line-height:1.5;margin:0 0 12px;color:#294a6b}.start-notice p,.start-step p{font-size:18px;line-height:1.85;margin:10px 0 16px;overflow-wrap:anywhere}.start-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.start-step{position:relative;padding:24px;border:1px solid #dce3e9;border-radius:18px;background:white;min-width:0}.start-number{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-size:18px;font-weight:700;background:#e8eff5;color:#294a6b;margin-bottom:12px}.start-step .small{font-size:15px}.start-step [aria-disabled=true]{opacity:.65;cursor:default}.start-actions{margin-top:12px}.start-nav a:focus-visible,.start-banner a:focus-visible,.start-banner button:focus-visible{outline:3px solid #d88c39;outline-offset:3px}@media(max-width:700px){.start-banner{align-items:stretch;flex-direction:column;padding:17px 15px}.start-steps{grid-template-columns:1fr}.start-step,.start-notice{padding:20px 16px}.start-nav,.start-actions{align-items:stretch}.start-nav .btn,.start-actions .btn{flex:1 1 150px}.start-step h2,.start-notice h2{font-size:22px}}

.brand .brand-wordmark{min-width:0}.brand .brand-wordmark strong{display:block;font-size:24px;line-height:1.16;color:#0b603d;letter-spacing:1px}.brand .brand-en{font-size:14px;line-height:1.45;font-weight:650;letter-spacing:.2px;color:#0b603d;margin-top:4px}.brand .brand-tagline{font-size:12px;line-height:1.5;letter-spacing:0;color:#637256;margin-top:5px;white-space:nowrap}.topbar-date strong{color:#0b603d}.mobile-brand-text{display:block;min-width:0}.mobile-brand-text strong{display:block;font-size:21px;line-height:1.25;color:#0b603d;white-space:nowrap}.mobile-brand-text small{font-size:12px;font-weight:650;letter-spacing:0}.mobile-brand-text>span{display:block;font-size:11.5px;line-height:1.6;color:#637256;font-weight:500;white-space:nowrap;margin-top:2px}.page-footer{flex-wrap:wrap}@media(max-width:1180px){.brand .brand-wordmark strong{font-size:22px}.brand .brand-en{font-size:13px}.brand .brand-tagline{font-size:11.5px}}@media(max-width:850px){.mobile-brand{gap:9px;min-width:0;flex-shrink:1}.mobile-brand img{flex-shrink:0}.top-actions{flex-shrink:0}}@media(max-width:650px){.topbar{gap:10px}.top-actions .demo-pill:not(.is-demo){display:none}.is-demo-mode .mobile-brand-text small{display:none}.mobile-brand-text strong{font-size:20px}}@media(max-width:360px){.mobile-brand-text strong{font-size:19px}.mobile-brand-text small{font-size:11px}.mobile-brand-text>span{font-size:11px}.topbar .top-actions{gap:6px}}
