:root{--paper:#fff8ed;--ink:#302d35;--muted:#72696a;--red:#ac3c27;--peach:#f7dbc7;--lime:#e6edae;--line:#e1d5c6;--purple:#e7deec;--green:#346653;--white:#fffdf7}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic',sans-serif}button,input,select,textarea{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{min-height:48px;padding:10px 16px;border:1px solid var(--line);border-radius:14px;background:var(--white);cursor:pointer}button:hover{filter:brightness(.97)}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:3px}input:not([type=checkbox]),select,textarea{width:100%;min-height:48px;border:1px solid #b8aa9d;border-radius:12px;background:var(--white);padding:10px 12px}textarea{resize:vertical;min-height:95px}input[type=checkbox]{width:24px;height:24px;accent-color:var(--red);flex:none}label{display:block}h1,h2,h3,p{margin:0}h1{font-size:clamp(30px,3.5vw,46px);line-height:1.3;letter-spacing:-.045em}h2{font-size:24px;line-height:1.4;letter-spacing:-.025em}h3{font-size:18px}small{font-size:13px;color:var(--muted)}a{color:var(--red)}.app{height:100dvh;max-width:1600px;margin:auto;display:grid;grid-template-columns:215px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto auto}.sidebar{grid-column:1;grid-row:1/6;border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;gap:32px;overflow:auto}.brand{font-size:28px;letter-spacing:-.065em;color:var(--red);text-decoration:none;font-weight:800}.brand img{width:46px;height:46px;display:block;margin-bottom:12px}.brand span{display:block;font-size:12px;font-weight:500;letter-spacing:0;margin-top:6px}nav{display:grid;gap:8px}.navbutton{background:none;border:0;text-align:left;display:flex;gap:13px;align-items:center;font-weight:650}.navbutton svg{width:23px;height:23px;flex:none}.navbutton[aria-current=page]{background:var(--peach);color:#7f301e}.sideNote{margin-top:auto;border:1px dashed #b7a18e;border-radius:50% 50% 12px 12px;padding:35px 5px 22px;text-align:center;transform:rotate(-2deg);font-size:12px}.sideNote b{display:block;font-size:17px;margin:10px 0}.localBadge{font-size:12px;color:var(--muted)}.topbar{grid-column:2;display:flex;justify-content:space-between;align-items:center;padding:20px 32px;border-bottom:1px solid var(--line);gap:15px}.topbar b{display:block;font-size:18px}.eyebrow{display:block;font-size:12px;letter-spacing:.12em;color:var(--red);font-weight:700;margin-bottom:5px}.topActions{display:flex;align-items:center;gap:12px}.topActions span{font-size:12px;color:var(--green)}.iconButton{font-size:13px;min-width:48px;padding:8px 12px;background:transparent}.topActions .iconButton{border-radius:999px}main{grid-column:2;min-width:0;overflow:auto;overscroll-behavior:contain;scroll-padding:18px;padding:28px 32px 30px}#screen{max-width:1160px;margin:auto}.pagehead{margin-bottom:26px}.pagehead p{margin-top:12px;color:var(--muted);font-size:15px}.pagehead .eyebrow{margin:0 0 8px}.datebar{display:flex;align-items:center;gap:8px;margin-bottom:20px}.datebar input{max-width:180px;font-weight:650}.datebar .todayButton{margin-left:auto}.columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(245px,1fr);gap:24px;align-items:start}.stack{display:grid;gap:22px}.hero{background:var(--peach);padding:25px;border-radius:27px;position:relative;overflow:hidden}.heroTop,.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.pill{display:inline-block;padding:5px 11px;font-size:12px;background:#fff9;border-radius:8px}.pill.green{background:#e6eedf;color:#2d5942}.pill.purple{background:var(--purple)}.heroBody{display:grid;grid-template-columns:minmax(0,1fr) 170px;align-items:center;gap:10px;margin:20px 0}.hero h2{font-size:30px;line-height:1.45;overflow-wrap:anywhere}.heroBody p{font-size:14px;color:#705043;margin-top:12px}.plate{display:block;width:100%;height:auto}.ingredient{display:flex;gap:10px;align-items:center;padding:12px 0;border-top:1px solid #b46c4533;justify-content:space-between}.ingredient b{font-size:15px}.ingredient small{display:block}.ingredient .dot{width:12px;height:12px;background:#bd763a;border-radius:50%;flex:none}.ingredient .foodName{margin-right:auto;min-width:0;overflow-wrap:anywhere}.heroFoot{margin-top:8px;font-size:13px;color:#705043}.sectionhead{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}.sectionhead button{font-size:13px}.linkButton{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:14px;padding:8px 10px}.pillButton{border-radius:999px;background:#fff8;border-color:#c88a65;color:#7f301e;font-size:13px}.primary{background:var(--red);color:var(--white);border-color:var(--red)}.dark{background:var(--ink);color:var(--white);border-color:var(--ink)}.full{width:100%}.muted{color:var(--muted)}.small{font-size:13px}.paperNote{background:var(--lime);padding:24px;border-radius:4px 4px 20px 4px;position:relative;margin-top:8px;overflow-wrap:anywhere}.paperNote:before{content:'';position:absolute;width:64px;height:17px;background:#e9d6b2aa;top:-8px;left:35%;transform:rotate(-4deg)}.paperNote p{margin-top:12px;white-space:pre-wrap}.paperNote small{display:block;margin-top:12px}.summary{border-top:2px solid var(--ink);padding-top:16px}.listItem{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.listItem small{display:block}.listItem strong{font-size:23px;white-space:nowrap}.listItem .linkButton{flex:none}.mealItem{width:100%;text-align:left;background:transparent;border-width:0 0 1px;border-radius:0;display:grid;grid-template-columns:55px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 4px}.mealItem.active{border-left:4px solid var(--red);padding-left:10px;background:#f4e8d7}.mealItem b{display:block}.mealItem small{display:block}.empty{padding:35px 24px;border:1px dashed #bba58d;border-radius:24px;text-align:center}.empty h2{margin:16px 0 10px}.empty p{color:var(--muted);max-width:500px;margin:0 auto 18px}.empty .plate{width:150px;margin:auto}.hint{padding:14px 16px;border-radius:12px;background:#efe8dc;color:#655b59;font-size:13px;margin:16px 0;overflow-wrap:anywhere}.warning{background:#f8e1d0;color:#783622}.positive{color:var(--green)}.buttonrow{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.buttonrow button{flex:1;white-space:nowrap}.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tabs button[aria-pressed=true]{background:var(--ink);color:var(--white);border-color:var(--ink)}.daySection{border-top:2px solid var(--ink);padding:18px 0;margin-top:10px}.dayHeading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.dayHeading small{font-size:14px}.freezer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.pack{border:1px solid var(--line);background:var(--white);padding:20px;border-radius:8px 8px 24px 8px;min-width:0;overflow-wrap:anywhere}.pack:before{content:'';display:block;border-top:3px double var(--line);margin-bottom:16px}.pack h3{margin:12px 0 3px}.quantity{font-size:40px;letter-spacing:-.045em}.quantity small{font-size:14px}.steppers{display:flex;gap:5px}.steppers button{padding:8px 15px}.pack .row{margin-top:15px}.checkLabel{display:flex;gap:12px;align-items:center;min-height:48px;cursor:pointer;padding:10px 0;border-bottom:1px solid var(--line)}.checkLabel.done span{text-decoration:line-through;color:var(--muted)}.field{display:grid;gap:7px;margin:16px 0;font-size:14px;font-weight:650}.field small{font-weight:400}.fieldPair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fieldPair .field{min-width:0}.field details{font-weight:400}.formHint{font-size:13px;color:var(--muted);margin:10px 0}.entry{padding:20px 0;border-bottom:1px solid var(--line)}.entry h3{margin:10px 0}.entry p{white-space:pre-wrap;margin-top:8px;overflow-wrap:anywhere}.foodGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.foodTile{text-align:left;padding:18px}.foodTile b,.foodTile small{display:block}.foodTile small{margin-top:7px}.screenFoot{font-size:12px;color:var(--muted);margin-top:25px}.panel{border-top:2px solid var(--ink);padding-top:18px}.settingsPanel{max-width:750px}.settingsPanel section{margin:26px 0;border-bottom:1px solid var(--line);padding-bottom:22px}.settingsPanel h2{margin-bottom:12px}.settingsPanel p{margin:10px 0}.sharingCode{font-size:24px;font-family:monospace;user-select:all;overflow-wrap:anywhere}.addresses{overflow-wrap:anywhere}.statusError{border-color:var(--red)!important;color:#792d1c!important}.loading{padding:40px;text-align:center}#actionbar{grid-column:2;min-width:0;padding:0 24px 8px}#actionbar:empty{display:none}.dock{border-radius:21px;background:var(--ink);color:var(--white);padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;max-width:1160px;margin:auto}.dock b{font-size:14px;display:block}.dock small{font-size:12px;color:#ded3da}.dock .primary{padding:12px 22px;flex:1}.dock .primary b{font-size:17px}.dock .results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1}.dock .results button{font-size:14px;padding:12px 8px;border:2px solid transparent}.dock .results button[aria-pressed=true]{background:var(--lime);border-color:var(--lime);font-weight:700}.dock .linkButton{color:var(--paper);font-size:13px}.dockSide{min-width:120px}.dockSide .linkButton{padding:4px 0}.dock .recordOnly{background:var(--paper);color:var(--ink)}#statusbar{grid-column:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 24px 8px;padding:6px 12px;border:1px solid var(--line);border-radius:12px;font-size:13px;background:var(--white);max-height:130px;overflow:auto}#statusbar:empty{display:none}#statusbar button{flex:none;font-size:13px;border:0;padding:6px 10px;color:var(--red)}#mobileNav{display:none;grid-column:2}dialog{border:0;border-radius:23px;width:min(580px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:24px;background:var(--paper);color:var(--ink);overflow:auto}dialog::backdrop{background:#302d357a}.dialogTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;font-size:12px;color:var(--muted)}dialog h2{margin-bottom:14px}.dialogError{padding:12px;background:#f8dfcc;border-radius:10px;color:#792d1c;margin:12px 0;font-size:14px}.dialogError:empty{display:none}dialog .formActions{display:flex;gap:8px;position:sticky;bottom:-24px;background:var(--paper);padding:12px 0 2px}dialog .formActions button{flex:1}details{margin:18px 0}summary{cursor:pointer;min-height:48px;padding:10px 0;color:var(--red)}.batchChoice{display:grid;grid-template-columns:minmax(0,1fr) 85px;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.batchChoice b,.batchChoice small{display:block}.inlineForm{display:flex;gap:8px;margin:14px 0}.inlineForm input{min-width:0}.inlineForm button{flex:none}.login{max-width:430px;margin:40px auto}.mobileOnly{display:none}.readOnly{background:var(--purple);padding:8px 14px;border-radius:10px;font-size:13px;margin-bottom:16px}
@media(max-width:1100px){.columns{grid-template-columns:1fr}.aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.sidebar{padding:25px 16px}.app{grid-template-columns:185px minmax(0,1fr)}.dock{flex-wrap:wrap}.dockSide{width:100%;display:flex;align-items:center;justify-content:space-between}.dockSide .linkButton{min-height:44px}.heroBody{grid-template-columns:minmax(0,1fr) 155px}}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){.app{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.topbar,main,#actionbar,#statusbar,#mobileNav{grid-column:1}.topbar{padding:12px 16px;gap:8px}.topbar b{font-size:16px}.topbar .eyebrow{font-size:11px;letter-spacing:.05em}.topActions{gap:7px}.topActions span{font-size:11px;max-width:90px;text-align:right}.topActions .iconButton{font-size:12px;padding:6px 10px}.topbar .eyebrow{margin:0}.topbar b{max-width:180px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}main{padding:18px 16px 24px}.pagehead{margin-bottom:20px}.pagehead p{font-size:14px;margin-top:9px}h1{font-size:31px}h2{font-size:22px}.datebar{gap:6px}.datebar button{padding:8px 12px}.datebar input{max-width:158px;font-size:15px}.datebar .todayButton{padding:8px 10px}.hero{padding:19px;border-radius:24px}.hero h2{font-size:25px}.heroBody{grid-template-columns:minmax(0,1fr) 110px;margin:16px 0}.heroBody p{font-size:13px}.ingredient{padding:10px 0}.ingredient small{font-size:12px}.aside{grid-template-columns:1fr}.heroTop{gap:8px}.heroTop .pillButton{font-size:12px;padding:8px 10px}.freezer{gap:10px}.pack{padding:16px}.pack .row{gap:5px}.steppers button{padding:8px 12px}.foodGrid{gap:8px}.foodTile{padding:13px;font-size:14px}.foodTile small{font-size:12px}.quantity{font-size:34px}.fieldPair{gap:10px}.fieldPair .field{font-size:13px}.dock{padding:11px 12px;gap:7px;border-radius:18px}.dock .primary b{font-size:15px}.dock .results{width:100%;gap:6px}.dock .results button{font-size:13px;padding:10px 3px;min-height:50px}.dock small{font-size:12px}.dock .linkButton{font-size:12px}.dockSide{width:100%;min-width:0}.dock b{font-size:13px}#actionbar{padding:0 10px 6px}#statusbar{margin:0 10px 6px;font-size:12px;padding:4px 10px}#mobileNav{display:grid;grid-row:5;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px 10px max(8px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}#mobileNav .navbutton{display:flex;flex-direction:column;gap:1px;align-items:center;padding:5px 2px;min-height:54px;font-size:11px;border-radius:12px}#mobileNav .navbutton svg{width:21px;height:21px}dialog{padding:20px 18px}dialog .formActions{bottom:-20px}.mobileOnly{display:block}.empty{padding:25px 18px}.mealItem{grid-template-columns:35px minmax(0,1fr) auto;gap:9px}.mealItem .pill{font-size:11px;padding:4px 6px}.settingsPanel .buttonrow{display:grid;grid-template-columns:1fr}.login{margin:15px auto}.sharingCode{font-size:20px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .12s ease}dialog[open]{animation:appear .15s ease-out}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}
.dock .results button{color:var(--ink)}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){.heroBody{margin:13px 0}.hero h2{font-size:24px}}
/* 記録を最短にする画面。毎回のフォームと事前登録を不要にする。 */
.qHead{margin-bottom:18px}.qHead h1{font-size:34px}.qHead .eyebrow{margin-bottom:7px}.qSlots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:24px}.qSlots button{font-size:15px;font-weight:650;background:transparent}.qSlots button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.qSlotMark{font-size:11px;display:block;font-weight:400}.qRepeat{margin-bottom:24px}.qRepeat h2{font-size:21px}.qSets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.qSet{min-width:0}.qSetLog{width:100%;text-align:left;border:1px solid #df9f77;background:var(--peach);padding:17px 19px;border-radius:20px;display:flex;flex-direction:column;gap:10px}.qSetLog:disabled{opacity:.75;background:#eee9db;border-color:var(--line)}.qSetEyebrow{font-size:12px;color:#7d3925;font-weight:700}.qSetLog strong{font-size:19px;line-height:1.6;overflow-wrap:anywhere}.qSetBottom{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;color:var(--red)}.qSetBottom>span{display:grid;place-items:center;min-width:34px;min-height:34px;border-radius:50%;background:var(--red);color:white;font-size:18px}.qSetLinks{display:flex;justify-content:space-between;gap:8px}.qSetLinks .linkButton{font-size:12px;padding:6px}.qWelcome{display:flex;align-items:center;gap:14px;background:var(--lime);padding:16px 20px;border-radius:16px;margin:0 0 24px;font-size:14px}.qWelcome b{white-space:nowrap}.qWelcome span{color:#4f5733}.qComposer{min-width:0}.qComposer h2{font-size:22px}.qFoods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.qFood{position:relative;text-align:left;padding:14px 13px;background:var(--white);border-radius:15px;min-width:0;min-height:83px;overflow-wrap:anywhere}.qFood b{display:block;padding-right:16px;font-size:15px}.qFood small{font-size:12px;display:block;margin-top:7px}.qFood>span{position:absolute;right:10px;top:12px;color:var(--red);font-size:12px}.qFood.selected{background:#f7dbc7;border-color:#b66845}.qFood.selected>span{font-size:10px;top:auto;bottom:8px}.qPickHint{margin-top:18px}.qBasket{margin-top:24px;border-top:2px solid var(--ink);padding-top:17px}.qBasketItem{border-bottom:1px solid var(--line);padding:12px 0}.qBasketLine{display:flex;gap:8px;align-items:center}.qBasketLine>b{margin-right:auto;min-width:0;font-size:16px;overflow-wrap:anywhere}.qAmount{font-weight:750;background:var(--lime);min-width:85px;padding:8px 12px}.qAmount.empty{font-size:13px;background:#f3e6d8;color:#794526}.qRemove{padding:5px 8px;font-size:12px;border:0;background:transparent}.qAmountPicker{margin-top:12px;background:#f0e8db;border-radius:14px;padding:12px}.qUnitRow{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.qUnitRow button{flex:1;min-height:44px;font-size:13px;padding:6px 8px}.qUnitRow button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.qQuantities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.qQuantities button{font-size:14px;padding:8px 4px;font-weight:700}.qQuantities button[aria-pressed=true]{border:2px solid var(--red);background:var(--peach)}.qExact{display:flex;align-items:center;gap:7px;margin-top:12px}.qExact label{font-size:12px;white-space:nowrap}.qExact input{min-width:0;max-width:110px}.qExact button{font-size:12px;padding:7px}.qCurrent{border-top:2px solid var(--ink);padding-top:17px}.qCurrent h2{font-size:20px}.qRecorded>div{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}.qRecorded>div b{overflow-wrap:anywhere}.qRecorded>div span{white-space:nowrap;font-weight:700}.qRecorded>small{display:block;margin:12px 0}.qDock>.primary{flex:initial;min-width:230px;font-size:17px;font-weight:750}.qDock>div{min-width:0}.qOptional{border-top:1px solid var(--line);padding-top:18px}.qLegacyBack{margin-bottom:18px}
@media(max-width:1100px){.qColumns{grid-template-columns:1fr}.qAside{display:grid;grid-template-columns:1fr 1fr;align-items:start}.qAside .qOptional{grid-column:1/-1}.qSets{grid-template-columns:repeat(2,minmax(0,1fr))}.qDock{flex-wrap:nowrap}.qDock>.primary{min-width:210px}}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){.qHead{margin-bottom:16px}.qHead h1{font-size:27px}.qHead .eyebrow{font-size:11px;letter-spacing:.06em}.qSlots{margin-bottom:19px;gap:6px}.qSlots button{font-size:14px;padding:8px 5px}.qWelcome{display:block;padding:13px 16px;font-size:13px;margin-bottom:20px}.qWelcome b,.qWelcome span{display:block}.qWelcome span{margin-top:5px}.qSets{grid-template-columns:1fr}.qSetLog{padding:15px 17px;gap:6px}.qSetLog strong{font-size:18px}.qSetLinks .linkButton{min-height:44px}.qRepeat h2{font-size:20px}.qRepeat .sectionhead>small{font-size:12px}.qFoods{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.qFood{padding:12px 9px;min-height:83px}.qFood b{font-size:14px}.qFood small{font-size:11px;max-width:95%}.qFood>span{right:7px;top:9px}.qComposer h2{font-size:21px}.qBasketLine>b{font-size:15px}.qAmount{padding:8px;min-width:78px;font-size:15px}.qBasket{margin-top:22px}.qAside{grid-template-columns:1fr}.qDock>.primary{min-width:0;padding:13px 14px;font-size:15px}.qDock b{font-size:12px}.qDock small{font-size:11px}.qDock{gap:10px;align-items:center}.qQuantities{grid-template-columns:repeat(4,minmax(0,1fr))}.qExact{flex-wrap:wrap}.qExact input{flex:1}.qSetBottom{font-size:13px}}
.datebar .dateControl{position:relative;display:grid;place-items:center;flex:1;min-width:0;max-width:190px;height:48px;background:var(--white);border:1px solid #b8aa9d;border-radius:12px;font-size:15px;font-weight:650;white-space:nowrap}.datebar .dateControl input{position:absolute;inset:0;width:100%;height:100%;max-width:none;min-width:0;opacity:0;padding:0}.datebar .dateControl:focus-within{outline:3px solid var(--red);outline-offset:3px}@media(max-width:680px),(max-width:1000px) and (pointer:coarse){.datebar .dateControl{font-size:13px}}
/* スマートフォンで食材を最初の画面に集める。 */
.qHead{margin-bottom:12px}.qHead h1{font-size:26px}.qContext{display:flex;gap:12px;align-items:center;margin-bottom:18px}.qContext .dateControl{position:relative;height:48px;display:grid;place-items:center;min-width:120px;border:1px solid var(--line);border-radius:12px;background:var(--white);font-size:14px;font-weight:650}.qContext .dateControl input{position:absolute;inset:0;width:100%;height:100%;opacity:0;min-width:0;min-height:0;padding:0}.qContext .dateControl:focus-within{outline:3px solid var(--red);outline-offset:3px}.qContext .qSlots{display:flex;margin:0;gap:5px}.qContext .qSlots button{min-width:52px;padding:8px 12px}.qRepeat{margin-bottom:18px}.qSet{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:5px;align-items:stretch;max-width:690px}.qSetLog{padding:12px 15px;gap:3px;border-radius:16px}.qSetLog strong{font-size:16px;line-height:1.5}.qSetEyebrow{font-size:13px}.qSetBottom{font-size:13px}.qSetAdjust{min-height:48px;padding:8px 5px;font-size:13px;background:transparent;border:0}.qUnpin{grid-column:1/-1;justify-self:end}.qOtherSets{margin:0}.qOtherSets summary{font-size:13px;padding:8px 0;min-height:44px}.qOtherSets .qSet{margin:8px 0}.qComposer>.sectionhead{margin-bottom:8px}.qSearchArea{margin:8px 0}.qSearchArea>.linkButton{margin:0 0 6px}.qFoods{margin-top:0}.qFood b{padding-right:0}.qFood small{font-size:14px}.qFood.selected small{font-weight:750;color:#7d301e}.qBasket{margin-top:14px;padding-top:8px;border-top:1px solid var(--line)}.qBasket h3{font-size:14px}.qBasket>.sectionhead{margin-bottom:0}.qBasket details{margin:0}.qBasket summary{font-size:14px;min-height:44px;padding:8px 0}.qHelp{margin:16px 0 0}.qHelp summary{font-size:13px}.qHelp .screenFoot{margin-top:0}.qDraftSummary{overflow-wrap:anywhere}.qDraftSummary>b{font-size:15px;line-height:1.5}.qDraftSummary>small{display:block;margin-top:3px}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){
 body[data-quick=true] .topbar{padding:8px 14px}body[data-quick=true] .topbar .eyebrow{display:none}body[data-quick=true] #connection:not(.statusError){display:none}
 body[data-quick=true] main{padding:12px 14px 20px}.qHead{margin-bottom:8px}.qHead h1{font-size:22px}.qContext{gap:7px;margin-bottom:13px}.qContext .dateControl{flex:1;min-width:0;height:46px;font-size:13px}.qContext .qSlots{flex:1.4;gap:5px}.qContext .qSlots button{flex:1;min-width:44px;min-height:46px;padding:7px 5px;font-size:15px}.qContext>.linkButton{padding:5px;min-width:44px;font-size:13px}.qComposer h2{font-size:18px}.qComposer>.sectionhead>.linkButton{font-size:14px;min-height:44px}.qFoods{gap:7px}.qFood{min-height:78px;padding:10px 8px}.qFood b{font-size:15px;line-height:1.45}.qFood small{font-size:14px;max-width:none;margin-top:6px;line-height:1.4}.qFood.selected small{font-size:15px}.qRepeat{margin-bottom:12px}.qSetLog{padding:10px 13px;gap:2px}.qSetLog strong{font-size:16px}.qSetEyebrow,.qSetBottom{font-size:13px}.qSetAdjust{font-size:14px}.qDock{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}.qDock>.primary{width:100%;min-height:50px;font-size:17px;padding:10px 12px}.qDock .qDraftSummary>b{font-size:14px}.qDock .qDraftSummary>small{font-size:12px}.qAmountPicker{padding:10px}.qQuantities button{min-height:48px;font-size:16px}.qUnitRow button{min-height:44px;font-size:14px}input,textarea,select{font-size:16px!important}.qHelp{margin-top:12px}
}
@media(max-width:360px){.qFood b{font-size:14px}.qFood small{font-size:13px}.qFood{min-height:80px}.qSet{grid-template-columns:minmax(0,1fr) 46px}}
.qFoodTile{border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden;min-width:0}.qFoodTile .qFood{display:block;width:100%;min-height:44px;border:0;border-radius:0;padding:8px;text-align:center;background:transparent}.qFoodTile .qFood b{padding:0;font-size:15px;line-height:1.45}.qFoodDose{width:100%;display:block;min-height:44px;border:0;border-radius:0;border-top:1px solid #e8ded1;background:transparent;padding:7px 4px;font-size:14px;color:var(--muted)}.qFoodTile.selected{background:var(--peach);border-color:#b66845}.qFoodTile.selected .qFoodDose{color:#79311f;font-weight:750}.qFoodTile .qFood[aria-pressed=true]{color:#79311f}.qFoodTile button:focus-visible{outline-offset:-3px}@media(max-width:360px){.qFoodTile .qFood b{font-size:14px}.qFoodDose{font-size:13px}}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){.topbar{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}body[data-quick=true] main{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}#actionbar{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}#mobileNav{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}}
@media(max-height:500px) and (pointer:coarse){.qHead{display:none}.qFoods{grid-template-columns:repeat(6,minmax(0,1fr))}.qDock{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1fr);align-items:center}.qContext{margin-bottom:8px}.qComposer>.sectionhead{margin-bottom:4px}.qFoodTile .qFood{padding:6px}.qFoodTile .qFood b{font-size:14px}}
.qUnitRow button{min-width:44px}

/* Input and review occupy separate full-width sections on every device. */
body[data-quick=true]{overflow:clip;--muted:#665e5a;--line:#ded7cb}
body[data-quick=true] .app{overflow:clip}body[data-quick=true] main{min-height:0;position:relative}
body[data-quick=true] #screen{max-width:1200px}
body[data-quick=true] .topbar{padding-top:12px;padding-bottom:12px}
body[data-quick=true] .sideNote{display:none}
.qHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.qHead h1{font-size:28px;letter-spacing:-.035em}
.qWeekJump{min-height:44px;padding:8px 12px;background:var(--white);border:1px solid var(--line);border-radius:10px;font-size:14px;text-decoration:none}
.qWorkspace{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:28px}
.qContext{padding-bottom:16px;margin-bottom:14px;border-bottom:1px solid var(--line);gap:10px}
.qContext .dateControl{border-color:#bfb6a8}
.qContext .qSlots{background:#f2eee6;border-radius:12px;padding:3px;gap:2px}
.qContext .qSlots button{border:0;min-height:44px}
.qRepeat{margin-bottom:14px}.qSet{max-width:640px}.qOtherSets summary{padding:3px 0}
.qComposer h2{font-size:19px}.qComposer>.sectionhead{margin-bottom:10px}
.qFoods{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.qFoodTile{background:#fffdf8;border-radius:11px;border-color:#d9d0c3}
.qFoodTile .qFood{min-height:44px;padding:9px 8px}
.qFoodTile .qFood b{font-size:15px;font-weight:650}
.qFoodDose{color:#665e5a;background:#f7f3ec;font-size:14px}
.qFoodTile.selected{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.qFoodTile.selected .qFoodDose{background:#f6ddc9}
.qCurrentActions{border-top:0;display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap;padding:0 0 18px;margin-top:-10px}
.qCurrentActions .sectionhead{margin:0;gap:16px}.qCurrentActions h3{font-size:14px}.qCurrentActions .linkButton{font-size:13px}
.qWeek{position:relative;scroll-margin-top:12px;margin-bottom:26px;min-width:0}
.qWeekHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.qWeekHeader h2{font-size:23px;letter-spacing:-.03em}.qWeekHeader p{font-size:13px;color:var(--muted);margin-top:4px}
.qWeekHeader .linkButton{font-size:13px;flex:none}
.qWeekTable{width:100%;table-layout:fixed;border-spacing:0;border-collapse:separate;font-size:15px;line-height:1.5;background:var(--white);border:1px solid var(--line);border-radius:12px}
.qWeekDateCol{width:86px}
.qWeekTable th,.qWeekTable td{vertical-align:top;padding:12px 16px;border-bottom:1px solid var(--line)}
.qWeekTable th+th,.qWeekTable td{border-left:1px solid var(--line)}
.qWeekTable thead th{position:sticky;top:0;z-index:2;background:#eee8dd;text-align:left;font-size:14px;padding:12px 16px;border-bottom:1px solid #b9ac99}
.qWeekTable thead th:first-child{border-top-left-radius:12px}.qWeekTable thead th:last-child{border-top-right-radius:12px}
.qWeekTable tbody th{text-align:left;font-size:14px;background:#f7f2e9;font-weight:650}
.qWeekTable time{display:flex;flex-wrap:wrap;gap:2px 5px;align-items:center;font-variant-numeric:tabular-nums}
.qWeekTable time small{font-size:12px}.qWeekTable time em{width:100%;font-size:12px;font-style:normal;color:var(--red)}
.qWeekTable tr:last-child>*{border-bottom:0}
.qWeekTable tr.today>th{box-shadow:inset 3px 0 var(--red);background:#f6ddc9}
.qWeekTable td.currentMeal{background:#fff1e4}
.qWeekMeal{width:100%;min-height:44px;border:0;border-radius:6px;background:transparent;padding:2px 0;text-align:left;line-height:1.5}
.qWeekMeal+.qWeekMeal{margin-top:6px;padding-top:8px;border-top:1px dashed var(--line);border-radius:0}
.qWeekItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px;align-items:baseline;padding:3px 0;overflow-wrap:anywhere}
.qWeekFood{font-size:15px;min-width:0}.qWeekAmount{font-size:15px;font-weight:700;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}
.qWeekItem.notEaten{color:var(--muted)}.qWeekItem small{grid-column:2;text-align:right;font-size:11px}
.qWeekEmpty{display:block;font-size:13px;color:#726b63;padding:8px 0}
.qWeekDetail>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.qWeekDetail b{overflow-wrap:anywhere}.qWeekDetail strong{white-space:nowrap}
.qSupport{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--line);padding-top:16px}
.qSupport .qOptional{border:0;padding:0}.qSupport .paperNote{margin:0;padding:18px}.qEmptyNote .linkButton{font-size:14px}
.srOnly{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:1001px){body[data-quick=true] .app{grid-template-columns:190px minmax(0,1fr)}body[data-quick=true] .sidebar{padding:24px 18px}body[data-quick=true] main{padding:24px 28px}.qDock{max-width:1200px}}
@media(min-width:681px) and (max-width:1150px){.qFoods{grid-template-columns:repeat(4,minmax(0,1fr))}.qWeekTable th,.qWeekTable td{padding:10px}.qWeekDateCol{width:65px}}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){
 .qHead{min-height:44px;margin-bottom:10px}.qHead h1{font-size:23px}.qWeekJump{font-size:13px;padding:7px 10px;min-width:0}
 .qWorkspace{padding:12px;border-radius:14px;margin-bottom:24px}.qContext{gap:5px;margin-bottom:8px;padding-bottom:12px;flex-wrap:wrap}
 .qContext .dateControl{font-size:13px;min-width:100px;flex:1}.qContext .qSlots{flex:1.35;padding:2px}.qContext .qSlots button{font-size:14px;min-width:36px;padding:6px}
 .qContext>.linkButton{font-size:12px;min-width:36px;padding:6px}.qComposer h2{font-size:17px}.qComposer>.sectionhead{gap:4px;margin-bottom:8px}.qComposer>.sectionhead>.linkButton{font-size:13px;padding:6px 2px}
 .qFoods{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.qFoodTile .qFood{padding:8px 4px}.qFoodTile .qFood b{font-size:14px}.qFoodDose{font-size:13px;padding:7px 2px}
 .qSetLog{padding:10px}.qSetLog strong{font-size:14px}.qSetEyebrow,.qSetBottom{font-size:12px}.qRepeat{margin-bottom:10px}
 .qWeekHeader{gap:8px;margin-bottom:12px;align-items:flex-start}.qWeekHeader h2{font-size:21px}.qWeekHeader p{font-size:12px}.qWeekHeader .linkButton{font-size:12px;padding:6px 2px}
 .qWeekTable,.qWeekTable tbody{display:block;width:100%;border:0;border-radius:0;background:transparent}
 .qWeekTable colgroup{display:none}.qWeekTable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .qWeekTable tbody tr{display:block;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--white)}
 .qWeekTable tbody th{display:block;width:100%;padding:8px 12px;border-bottom:1px solid var(--line);background:#eee8dd;font-size:14px}
 .qWeekTable time{gap:8px;flex-wrap:nowrap}.qWeekTable time small,.qWeekTable time em{font-size:12px;width:auto}
 .qWeekTable tr.today>th{box-shadow:none;background:#f6ddc9}
 .qWeekTable td{display:grid;grid-template-columns:24px minmax(0,1fr);gap:0 10px;padding:6px 12px;border-left:0;border-bottom:1px solid var(--line);background:transparent}
 .qWeekTable td:last-child{border-bottom:0}.qWeekTable tr:last-child>th{border-bottom:1px solid var(--line)}.qWeekTable tr:last-child>td:not(:last-child){border-bottom:1px solid var(--line)}
 .qWeekTable td::before{content:attr(data-meal-label);grid-column:1;grid-row:1;padding-top:5px;font-size:13px;font-weight:650;color:var(--muted)}
 .qWeekMeal{grid-column:2;min-width:0;min-height:44px;border-radius:0}.qWeekMeal+.qWeekMeal{margin-top:3px;padding-top:6px}
 .qWeekItem{gap:0 10px;padding:2px 0}.qWeekFood,.qWeekAmount{font-size:15px}.qWeekEmpty{grid-column:2;text-align:left;font-size:13px;padding:5px 0}
 .qSupport{grid-template-columns:1fr;gap:12px}.qCurrentActions{gap:2px 8px;margin-top:-12px}.qCurrentActions .sectionhead{gap:8px}
}
@media(max-height:500px) and (pointer:coarse){.qHead{display:none}.qFoods{grid-template-columns:repeat(6,minmax(0,1fr))}.qWorkspace{padding:10px}.qContext{padding-bottom:8px}}

/* Compact food rows retain separate, full-size name and quantity targets. */
.qFoodTile{display:grid;grid-template-columns:minmax(0,1fr) minmax(44px,auto);align-items:stretch;border-radius:9px}
.qFoodTile .qFood{width:auto;min-height:44px;text-align:left;padding:8px 10px}
.qFoodTile .qFood b{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.qFoodDose{width:auto;min-width:44px;min-height:44px;border-top:0;border-left:1px solid var(--line);padding:4px 8px;background:transparent;font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.qFoodDose small{display:block;font-size:10px;line-height:1.2;color:var(--muted)}.qFoodDose span{display:block;line-height:1.4}
.qFoodTile.selected .qFoodDose{background:#f6ddc9}
.qFoods{gap:8px}.qWorkspace{padding:16px}.qContext{padding-bottom:12px;margin-bottom:8px}.qOtherSets summary{min-height:44px}.qComposer>.sectionhead{margin-bottom:6px}
@media(max-width:680px),(max-width:1000px) and (pointer:coarse){.qWorkspace{padding:10px}.qFoods{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.qFoodTile .qFood{padding:7px 8px}.qFoodDose{padding:3px 6px}.qFoodTile .qFood b{font-size:14px}.qHead{margin-bottom:8px}}
@media(max-height:500px) and (pointer:coarse){.qFoods{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Keep a large meal draft from consuming the phone's entire viewport. */
.qDock .qDraftSummary>b{display:block;max-height:4.5em;overflow:auto;overscroll-behavior:contain}
#draftNotice:not([hidden]){display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:10px 12px;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;background:#fff3dc;font-size:14px}
#draftNotice button{min-height:44px;font-size:14px;padding:6px 10px}
#draftNotice p{flex-basis:100%}
.qCatalogMore{display:block;margin:6px auto 0;font-size:13px;min-height:44px}
@media(max-height:500px){.qDock .qDraftSummary>b{max-height:3em}#statusbar:not(:empty){max-height:25dvh;overflow:auto}}

.webIntro{padding:12px 14px;margin-bottom:14px;border:1px solid #d9c9b6;background:#fff3dc;border-radius:12px;font-size:14px}.webIntro p{margin:0 0 6px}.webIntro button{font-size:13px;min-height:44px}.webIntro a{color:var(--red)}.webNotice{font-size:14px;padding:8px 0;color:#79311f}.webError{padding:20px}.settingsPanel a{color:var(--red)}
