/* Original approved eight mockups: presentation rules, scoped to desktop.
 * Final overrides below remove the mockup frame and adapt its geometry to the viewport. */


.zb-desktop .ffb-preview{--ff-bg:light-dark(#f4f3ec,#1b231f);--ff-paper:light-dark(#fffefa,#26322b);--ff-ink:light-dark(#203c30,#edf3e9);--ff-muted:light-dark(#63756a,#b6c5bb);--ff-line:light-dark(#e3e7dd,#3e5145);--ff-green:light-dark(#215c43,#b4dcc2);--ff-on-green:light-dark(#fffefa,#143827);--ff-soft:light-dark(#e7eee4,#334b3c);--ff-warm:light-dark(#fcf0dc,#483b28);--ff-note:light-dark(#f9edba,#4a432a);--ff-red:light-dark(#a74935,#ffb7a0);--ff-red-bg:light-dark(#fff0e9,#49332c);--ff-radius:20px;background:var(--ff-bg);color:var(--ff-ink);font-family:"Noto Sans KR",system-ui,sans-serif;font-size:14px;line-height:1.5;border:1px solid var(--ff-line);border-radius:24px;overflow:hidden;position:relative;min-height:800px;display:flex;flex-direction:column}
.zb-desktop .ffb-preview *{box-sizing:border-box}
.zb-desktop .ffb-preview button{font:inherit;color:inherit;border:0;background:transparent;min-height:42px;border-radius:12px;padding:8px 12px;touch-action:manipulation}
.zb-desktop .ffb-preview button:focus-visible{outline:3px solid var(--ff-green);outline-offset:2px}
.zb-desktop .ffb-preview button:hover{background:var(--ff-soft)}
.zb-desktop .ffb-preview h1,.zb-desktop .ffb-preview h2,.zb-desktop .ffb-preview h3,.zb-desktop .ffb-preview p{margin:0}
.zb-desktop .ffb-preview h1{font-size:27px;letter-spacing:-1px;font-weight:700;line-height:1.3}
.zb-desktop .ffb-preview h2{font-size:19px;letter-spacing:-.5px;font-weight:700}
.zb-desktop .ffb-preview h3{font-size:16px;font-weight:650}
.zb-desktop .ffb-preview small{font-size:12px;color:var(--ff-muted)}
.zb-desktop .ff-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--ff-line);gap:12px;background:var(--ff-paper)}
.zb-desktop .ff-brand{display:flex;align-items:center;gap:10px;font-weight:700;white-space:nowrap}
.zb-desktop .ff-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--ff-green);color:var(--ff-on-green);border-radius:12px}
.zb-desktop .ff-header-right{display:flex;align-items:center;gap:6px}
.zb-desktop .ff-header-right button{display:flex;gap:6px;align-items:center;font-size:12px}
.zb-desktop .ff-count{background:var(--ff-red);color:var(--ff-paper);border-radius:50%;font-size:11px;width:17px;height:17px;display:grid;place-items:center}
.zb-desktop .ff-main{padding:24px;flex:1}
.zb-desktop .ff-greeting{display:flex;align-items:end;justify-content:space-between;margin-bottom:22px;gap:14px}
.zb-desktop .ff-kicker{font-size:12px;letter-spacing:1px;color:var(--ff-muted);margin-bottom:7px!important}
.zb-desktop .ff-weather{display:flex;align-items:center;gap:10px;flex-shrink:0}
.zb-desktop .ff-weather .ff-weather-icon{font-size:30px}
.zb-desktop .ff-box{padding:20px;border-radius:var(--ff-radius);background:var(--ff-paper);border:1px solid var(--ff-line);min-width:0}
.zb-desktop .ff-box-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:15px}
.zb-desktop .ff-box-head button{font-size:12px;min-height:32px;padding:3px 8px;color:var(--ff-muted)}
.zb-desktop .ff-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:16px}
.zb-desktop .ff-bottom-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:16px;margin-top:16px}
.zb-desktop .ff-pill{display:inline-flex;align-items:center;gap:5px;background:var(--ff-soft);color:var(--ff-green);border-radius:30px;font-size:12px;padding:4px 9px;white-space:nowrap}
.zb-desktop .ff-pill.due{background:var(--ff-red-bg);color:var(--ff-red)}
.zb-desktop .ff-food-row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--ff-line)}
.zb-desktop .ff-food-row:last-child{border:0;padding-bottom:0}
.zb-desktop .ff-food-row:first-child{padding-top:0}
.zb-desktop .ff-food-icon{width:42px;height:42px;display:grid;place-items:center;background:var(--ff-bg);border-radius:13px;font-size:25px;flex-shrink:0}
.zb-desktop .ff-grow{flex:1;min-width:0}
.zb-desktop .ff-food-row button{border:1px solid var(--ff-line);font-size:12px;min-height:34px;padding:5px 10px}
.zb-desktop .ff-eaten{opacity:.5}
.zb-desktop .ff-eaten h3{text-decoration:line-through}
.zb-desktop .ff-primary{background:var(--ff-green)!important;color:var(--ff-on-green)!important;font-weight:600!important}
.zb-desktop .ff-subtle{background:var(--ff-soft)!important}
.zb-desktop .ff-meal{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}
.zb-desktop .ff-meal-art{display:grid;place-items:center;border-radius:50%;background:var(--ff-warm);width:110px;height:110px;font-size:62px;box-shadow:inset 0 0 0 9px var(--ff-paper),0 0 0 1px var(--ff-line);transform:rotate(-8deg)}
.zb-desktop .ff-meal h3{font-size:25px;margin:7px 0 5px}
.zb-desktop .ff-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.zb-desktop .ff-actions button{font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px}
.zb-desktop .ff-meal-slots{display:flex;gap:16px;border-top:1px solid var(--ff-line);margin-top:18px;padding-top:12px;font-size:12px;flex-wrap:wrap}
.zb-desktop .ff-meal-slots span{display:block;color:var(--ff-muted)}
.zb-desktop .ff-event{display:grid;grid-template-columns:43px 1fr;gap:10px;margin-bottom:14px;font-size:13px}
.zb-desktop .ff-event:last-child{margin-bottom:0}
.zb-desktop .ff-time{font-variant-numeric:tabular-nums;color:var(--ff-muted);font-size:12px}
.zb-desktop .ff-event b{display:block;font-weight:600}
.zb-desktop .ff-note{padding:16px;background:var(--ff-note);border-radius:3px 13px 13px 13px;margin-top:12px;transform:rotate(-1deg)}
.zb-desktop .ff-note p{font-size:16px;margin-top:8px!important;line-height:1.65}
.zb-desktop .ff-shopping{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.zb-desktop .ff-shopping span{padding:7px 10px;background:var(--ff-bg);border-radius:9px;font-size:13px}
.zb-desktop .ff-nav{display:grid;grid-template-columns:repeat(6,1fr);padding:9px 24px;gap:6px;border-top:1px solid var(--ff-line);background:var(--ff-paper)}
.zb-desktop .ff-nav button{display:flex;justify-content:center;align-items:center;gap:8px;font-size:12px;min-height:48px}
.zb-desktop .ff-nav .selected{background:var(--ff-green);color:var(--ff-on-green)}
.zb-desktop .ff-example{padding:7px 24px;text-align:right;font-size:11px;color:var(--ff-muted)}
.zb-desktop .dayflow .ff-main{display:grid;grid-template-columns:235px 1fr;gap:24px}
.zb-desktop .ff-day-intro{border-right:1px solid var(--ff-line);padding-right:24px;display:flex;flex-direction:column;gap:20px}
.zb-desktop .ff-day-intro .ff-day-date{font-size:72px;font-weight:500;line-height:1.1;letter-spacing:-4px}
.zb-desktop .ff-day-intro .ff-weather{margin-top:12px}
.zb-desktop .ff-rail{display:grid;gap:15px;position:relative}
.zb-desktop .ff-time-card{display:grid;grid-template-columns:54px 1fr;gap:14px}
.zb-desktop .ff-time-card>.ff-time{padding-top:17px;border-right:2px solid var(--ff-line);position:relative}
.zb-desktop .ff-time-card>.ff-time:after{content:"";position:absolute;right:-5px;top:22px;width:8px;height:8px;background:var(--ff-green);border-radius:50%}
.zb-desktop .ff-inline-note{background:var(--ff-note);padding:14px 18px;border-radius:var(--ff-radius)}
.zb-desktop .ff-due-strip{display:flex;align-items:center;gap:10px;padding:14px 18px;margin-bottom:20px;background:var(--ff-red-bg);border-radius:14px;font-size:13px;flex-wrap:wrap}
.zb-desktop .ff-due-strip strong{color:var(--ff-red);margin-right:auto}
.zb-desktop .glance .ff-main{padding:26px}
.zb-desktop .ff-big-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:18px}
.zb-desktop .ff-big-dinner{background:var(--ff-green);color:var(--ff-on-green);padding:26px;border-radius:var(--ff-radius);display:flex;flex-direction:column;justify-content:space-between;min-height:300px;position:relative;overflow:hidden}
.zb-desktop .ff-big-dinner h2{font-size:18px;font-weight:500}
.zb-desktop .ff-big-dinner h3{font-size:40px;line-height:1.3;letter-spacing:-1px;max-width:270px;position:relative;z-index:1;margin:12px 0}
.zb-desktop .ff-big-dinner small{color:inherit;opacity:.85}
.zb-desktop .ff-big-dinner .ff-meal-art{position:absolute;right:-22px;top:30px;width:160px;height:160px;font-size:84px;opacity:.8}
.zb-desktop .ff-big-dinner button{background:var(--ff-paper);color:var(--ff-ink);position:relative;z-index:1}
.zb-desktop .ff-big-food{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.zb-desktop .ff-food-tile{background:var(--ff-red-bg);border-radius:15px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.zb-desktop .ff-food-tile h3{font-size:22px}
.zb-desktop .ff-family-message{padding:22px;background:var(--ff-note);border-radius:var(--ff-radius);margin-bottom:18px}
.zb-desktop .ff-family-message p{font-size:26px;line-height:1.5;margin:12px 0!important;letter-spacing:-.5px}
.zb-desktop .glance .ff-event{font-size:17px;grid-template-columns:52px 1fr}
.zb-desktop .glance .ff-time{font-size:14px}
.zb-desktop .ff-glance-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding:16px 20px;background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:var(--ff-radius);gap:12px;flex-wrap:wrap}
.zb-desktop .ff-week-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(215px,1fr);gap:18px}
.zb-desktop .ff-week-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}
.zb-desktop .ff-week-nav button{padding:5px 9px;min-height:32px}
.zb-desktop .ff-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:18px}
.zb-desktop .ff-week-grid button{padding:9px 2px;min-width:0;background:var(--ff-bg)}
.zb-desktop .ff-week-grid button span{display:block;font-size:11px;color:var(--ff-muted)}
.zb-desktop .ff-week-grid button b{display:block;font-size:21px;font-weight:600;margin:6px 0}
.zb-desktop .ff-week-grid button.selected{background:var(--ff-green);color:var(--ff-on-green)}
.zb-desktop .ff-week-grid button.selected span{color:inherit}
.zb-desktop .ff-week-dot{width:4px;height:4px;margin:auto;background:currentColor;border-radius:50%}
.zb-desktop .ff-week-agenda{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--ff-line);padding-top:18px}
.zb-desktop .ff-week-agenda h3{margin-bottom:13px}
.zb-desktop .ff-today-menu{padding:16px;background:var(--ff-warm);border-radius:15px}
.zb-desktop .ff-today-menu p{font-size:21px;font-weight:650;margin:8px 0!important}
.zb-desktop .ff-week-footer{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
.zb-desktop .ff-side-stack{display:flex;flex-direction:column;gap:16px}
.zb-desktop .ff-popup{position:absolute;inset:0;z-index:4;background:light-dark(#203c3055,#0008);display:grid;place-items:center;padding:25px}
.zb-desktop .ff-popup[hidden]{display:none}
.zb-desktop .ff-popup-box{width:min(430px,100%);padding:25px;background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:24px;box-shadow:0 20px 60px #0003}
.zb-desktop .ff-popup-box h2{margin-bottom:15px}
.zb-desktop .ff-popup-box p{margin:12px 0;line-height:1.8}
.zb-desktop .ff-popup-box button{margin-top:14px}
.zb-desktop .ff-popup-box label{display:block;margin-top:15px}
.zb-desktop .ff-popup-box input{font:inherit;background:var(--ff-bg);color:var(--ff-ink);border:1px solid var(--ff-line);border-radius:10px;padding:8px;width:85px;margin-left:12px}
.zb-desktop .ff-toast{position:absolute;bottom:100px;left:20px;right:20px;background:var(--ff-green);color:var(--ff-on-green);padding:14px 20px;border-radius:14px;z-index:5;text-align:center;font-size:13px}
.zb-desktop .ff-toast:empty{display:none}
.zb-desktop .ff-landscape-viewport{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden}
.zb-desktop .ffb-preview{position:absolute;left:0;top:0;width:1280px;height:800px;min-height:0;box-sizing:border-box;transform:scale(var(--ff-preview-scale,1));transform-origin:top left;display:grid;grid-template-rows:70px 654px 60px 16px;font-size:16px}
.zb-desktop .ff-header{padding:12px 24px;height:70px}
.zb-desktop .ff-brand{font-size:20px}
.zb-desktop .ff-header-right button{font-size:14px;min-height:42px}
.zb-desktop .ff-main{padding:20px 24px;min-height:0}
.zb-desktop .ff-greeting{height:64px;margin-bottom:16px;align-items:center}
.zb-desktop .ff-kicker{margin-bottom:4px!important;font-size:13px}
.zb-desktop .ffb-preview h1{font-size:29px}
.zb-desktop .ffb-preview h2{font-size:21px}
.zb-desktop .ffb-preview h3{font-size:19px}
.zb-desktop .ffb-preview small{font-size:13px}
.zb-desktop .ff-box{padding:18px;min-height:0}
.zb-desktop .ff-box-head{margin-bottom:12px}
.zb-desktop .ff-box-head button{font-size:13px}
.zb-desktop .ff-nav{padding:7px 20px 8px;gap:12px;background:light-dark(#244331,#13281c);border-top:1px solid light-dark(#193321,#59735c)}
.zb-desktop .ff-nav button{min-height:44px;background:#ffffff13;border:1px solid #ffffff24;color:#f6f6e6;border-radius:11px;font-size:17px;font-weight:700;gap:10px;padding:6px 12px}
.zb-desktop .ff-nav button svg{width:23px;height:23px;flex-shrink:0}
.zb-desktop .ff-nav button:hover{background:#ffffff25}
.zb-desktop .ff-nav button.selected{background:#e1edb6;color:#243c25;border-color:#e1edb6}
.zb-desktop .ff-nav button:focus-visible{outline-color:#e1edb6}
.zb-desktop .ff-example{padding:0 20px;font-size:10px;line-height:16px;background:var(--ff-paper);white-space:nowrap}
.zb-desktop .ff-pill{font-size:13px}
.zb-desktop .ff-food-icon{width:45px;height:45px;font-size:29px}
.zb-desktop .ff-food-row{padding:11px 0}
.zb-desktop .ff-food-row button{font-size:13px}
.zb-desktop .ff-event{font-size:15px;grid-template-columns:49px 1fr;gap:12px;margin-bottom:12px}
.zb-desktop .ff-time{font-size:14px}
.zb-desktop .ff-meal h3{font-size:28px}
.zb-desktop .ff-meal-art{width:114px;height:114px;font-size:66px}
.zb-desktop .ff-actions{margin-top:13px}
.zb-desktop .ff-actions button{font-size:14px;min-height:40px}
.zb-desktop .ff-meal-slots{font-size:13px;margin-top:14px;padding-top:10px;gap:24px}
.zb-desktop .balanced .ff-layout{height:308px;gap:14px;grid-template-columns:1.16fr 1fr}
.zb-desktop .balanced .ff-bottom-grid{height:212px;margin-top:14px;gap:14px;grid-template-columns:1fr 1.2fr 1fr}
.zb-desktop .balanced .ff-layout .ff-food-row{padding:12px 0}
.zb-desktop .balanced .ff-layout .ff-food-row:first-child{padding-top:0}
.zb-desktop .balanced .ff-note{margin-top:5px;padding:12px;transform:rotate(-.7deg)}
.zb-desktop .balanced .ff-note p{font-size:19px;line-height:1.5;margin-top:6px!important}
.zb-desktop .balanced .ff-shopping{margin-top:12px}
.zb-desktop .balanced .ff-shopping span{font-size:15px;padding:8px 11px}
.zb-desktop .dayflow .ff-main{display:grid;grid-template-columns:240px 1.2fr 1fr;gap:22px}
.zb-desktop .dayflow .ff-day-intro{padding-right:20px;gap:24px;min-width:0}
.zb-desktop .dayflow .ff-day-date{font-size:78px;letter-spacing:-3px}
.zb-desktop .dayflow .ff-day-intro h1{font-size:31px}
.zb-desktop .dayflow .ff-day-intro .ff-box{padding:16px;margin-top:auto}
.zb-desktop .dayflow .ff-day-intro .ff-shopping{margin-top:12px;gap:8px}
.zb-desktop .dayflow .ff-day-intro .ff-shopping span{font-size:14px}
.zb-desktop .dayflow .ff-day-events{min-width:0}
.zb-desktop .dayflow .ff-rail{gap:12px}
.zb-desktop .dayflow .ff-time-card{grid-template-columns:49px 1fr;gap:12px;min-height:89px}
.zb-desktop .dayflow .ff-time-card>.ff-time{padding-top:18px}
.zb-desktop .dayflow .ff-time-card .ff-box,.zb-desktop .dayflow .ff-inline-note{padding:15px 17px}
.zb-desktop .dayflow .ff-time-card h3{font-size:18px;margin-top:3px}
.zb-desktop .dayflow .ff-evening{background:var(--ff-soft)}
.zb-desktop .dayflow .ff-dinner-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.zb-desktop .dayflow .ff-dinner-side>.ff-box:first-child{flex:1;background:var(--ff-paper)}
.zb-desktop .dayflow .ff-dinner-side .ff-meal{grid-template-columns:1fr;gap:18px}
.zb-desktop .dayflow .ff-dinner-side .ff-meal-art{grid-row:1;justify-self:center;width:130px;height:130px;font-size:78px}
.zb-desktop .dayflow .ff-dinner-side .ff-meal h3{font-size:28px}
.zb-desktop .dayflow .ff-meal-slots{display:none}
.zb-desktop .dayflow .ff-dinner-side>.ff-box:last-child{height:162px}
.zb-desktop .dayflow .ff-dinner-side .ff-shopping{margin-top:10px}
.zb-desktop .dayflow .ff-dinner-side .ff-actions{gap:8px}
.zb-desktop .glance .ff-main{padding:20px 24px}
.zb-desktop .glance .ff-big-layout{height:450px;gap:18px;grid-template-columns:1.1fr 1fr}
.zb-desktop .glance .ff-big-layout>div{display:flex;flex-direction:column;min-height:0}
.zb-desktop .glance .ff-big-dinner{min-height:0;height:324px;flex-shrink:0;padding:24px}
.zb-desktop .glance .ff-big-dinner h3{font-size:45px;line-height:1.16;margin:10px 0}
.zb-desktop .glance .ff-big-dinner .ff-meal-art{width:190px;height:190px;font-size:106px;right:5px;top:30px}
.zb-desktop .glance .ff-big-dinner small{font-size:15px}
.zb-desktop .glance .ff-big-food{height:110px;margin-top:16px;gap:14px}
.zb-desktop .glance .ff-food-tile h3{font-size:29px}
.zb-desktop .glance .ff-food-tile{padding:18px}
.zb-desktop .glance .ff-family-message{height:264px;min-height:0;padding:20px 24px;margin-bottom:16px}
.zb-desktop .glance .ff-family-message p{font-size:29px;line-height:1.25;margin:10px 0!important}
.zb-desktop .glance .ff-family-message button{padding:4px 0;min-height:32px;font-size:14px}
.zb-desktop .glance .ff-big-layout>div>.ff-box{height:170px;padding:17px 22px}
.zb-desktop .glance .ff-event{font-size:18px;grid-template-columns:55px 1fr;margin-bottom:10px}
.zb-desktop .glance .ff-event small{font-size:13px}
.zb-desktop .glance .ff-glance-footer{height:68px;padding:10px 18px;margin-top:16px;font-size:17px}
.zb-desktop .weekly .ff-week-layout{height:534px;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:16px}
.zb-desktop .weekly .ff-week-layout>div{display:grid;grid-template-rows:340px 180px;gap:14px;min-height:0}
.zb-desktop .weekly .ff-week-nav{margin-bottom:12px}
.zb-desktop .weekly .ff-week-grid{margin-bottom:14px;gap:6px}
.zb-desktop .weekly .ff-week-grid button{padding:6px 2px}
.zb-desktop .weekly .ff-week-grid button b{font-size:22px;margin:3px 0}
.zb-desktop .weekly .ff-week-grid button span{font-size:12px}
.zb-desktop .weekly .ff-week-agenda{padding-top:13px;gap:18px}
.zb-desktop .weekly .ff-week-agenda h3{font-size:17px;margin-bottom:8px}
.zb-desktop .weekly .ff-event{font-size:13px;grid-template-columns:43px 1fr;margin-bottom:8px}
.zb-desktop .weekly .ff-event small{font-size:12px}
.zb-desktop .weekly .ff-time{font-size:12px}
.zb-desktop .weekly .ff-week-agenda>section>button{font-size:12px;min-height:29px;padding:4px 9px}
.zb-desktop .weekly .ff-today-menu{padding:13px}
.zb-desktop .weekly .ff-today-menu p{font-size:23px;margin:7px 0!important}
.zb-desktop .weekly .ff-today-menu .ff-actions{gap:5px;margin-top:9px;flex-wrap:nowrap}
.zb-desktop .weekly .ff-today-menu .ff-actions button{font-size:12px;min-height:32px;padding:6px 10px}
.zb-desktop .weekly .ff-week-footer{margin:0;gap:14px;grid-template-columns:1.15fr 1fr}
.zb-desktop .weekly .ff-week-footer .ff-box{padding:14px 16px}
.zb-desktop .weekly .ff-week-footer .ff-box-head{margin-bottom:7px}
.zb-desktop .weekly .ff-week-footer h2{font-size:18px}
.zb-desktop .weekly .ff-note{margin-top:3px;padding:9px 10px;transform:none}
.zb-desktop .weekly .ff-note p{font-size:15px;line-height:1.5;margin-top:3px!important}
.zb-desktop .weekly .ff-week-footer .ff-shopping{margin-top:7px;gap:5px}
.zb-desktop .weekly .ff-week-footer .ff-shopping span{padding:5px 8px;font-size:12px}
.zb-desktop .weekly .ff-week-footer .ff-actions{margin-top:5px}
.zb-desktop .weekly .ff-week-footer .ff-actions button{font-size:12px;min-height:28px;padding:4px 7px}
.zb-desktop .weekly .ff-side-stack{display:grid;grid-template-rows:308px 212px;gap:14px}
.zb-desktop .weekly .ff-side-stack .ff-food-row{gap:8px;padding:10px 0}
.zb-desktop .weekly .ff-side-stack .ff-food-row button{padding:4px 7px;font-size:12px;min-height:32px}
.zb-desktop .weekly .ff-side-stack .ff-food-row h3{font-size:18px}
.zb-desktop .weekly .ff-side-stack .ff-food-row small{font-size:11px}
.zb-desktop .weekly .ff-side-stack .ff-food-icon{width:37px;height:39px;font-size:25px}
.zb-desktop .weekly .ff-side-stack .ff-pill{font-size:11px;padding:4px 7px}
.zb-desktop .ffb-preview[data-large="true"] .ff-food-row h3{font-size:22px}
.zb-desktop .ff-popup-box select{font:inherit;background:var(--ff-bg);color:var(--ff-ink);border:1px solid var(--ff-line);padding:8px 10px;border-radius:8px;margin-left:12px}



.zb-desktop .hb-viewport{width:100%;aspect-ratio:16/10;position:relative;overflow:hidden}
.zb-desktop .hb-app{--hb-bg:light-dark(#eeeae1,#242820);--hb-paper:light-dark(#fffdf7,#30382d);--hb-ink:light-dark(#28352a,#eef0df);--hb-muted:light-dark(#73796a,#c3c8b8);--hb-line:light-dark(#e0dfd1,#4a5342);--hb-accent:light-dark(#415c36,#c1d8a2);--hb-soft:light-dark(#eaf0dc,#414e33);--hb-note:light-dark(#f4edc9,#514a30);--hb-alert:light-dark(#a8452c,#ffb99b);--hb-alertbg:light-dark(#fae9dd,#543b2d);--hb-nav:light-dark(#273c2b,#101c13);--hb-navtext:#f5f4e5;--hb-selected:#e3eeab;--hb-onselected:#24361f;position:absolute;left:0;top:0;width:1024px;height:640px;box-sizing:border-box;transform-origin:top left;transform:scale(var(--hb-scale,1));background:var(--hb-bg);color:var(--hb-ink);border-radius:22px;overflow:hidden;font:14px/1.45 "Noto Sans KR",system-ui,sans-serif;display:grid;grid-template-rows:70px 522px 48px}
.zb-desktop .hb-app *{box-sizing:border-box}
.zb-desktop .hb-app button{font:inherit;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border:0;border-radius:10px;padding:8px 12px;background:transparent;touch-action:manipulation}
.zb-desktop .hb-app button:focus-visible{outline:3px solid var(--hb-accent);outline-offset:2px}
.zb-desktop .hb-app h1,.zb-desktop .hb-app h2,.zb-desktop .hb-app h3,.zb-desktop .hb-app p{margin:0}
.zb-desktop .hb-app h2{font-size:18px;font-weight:700;letter-spacing:-.5px}
.zb-desktop .hb-app h3{font-size:17px;font-weight:650}
.zb-desktop .hb-app small{font-size:11px;color:var(--hb-muted)}
.zb-desktop .hb-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 24px}
.zb-desktop .hb-brand{display:flex;align-items:center;gap:9px;font-size:23px;font-weight:800;letter-spacing:-1px}
.zb-desktop .hb-brand>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--hb-accent);color:var(--hb-accent);border-radius:50%}
.zb-desktop .hb-brand small{font-size:11px;letter-spacing:0;font-weight:500;margin-left:5px}
.zb-desktop .hb-header-center{display:flex;align-items:center;gap:15px;color:var(--hb-muted);font-size:12px}
.zb-desktop .hb-header-center strong{font-size:26px;letter-spacing:-1px;font-weight:500;color:var(--hb-ink)}
.zb-desktop .hb-header-tools{display:flex;gap:6px}
.zb-desktop .hb-header-tools button{min-width:42px;background:var(--hb-paper);border:1px solid var(--hb-line);font-size:12px;position:relative}
.zb-desktop .hb-alert-dot{height:6px;width:6px;border-radius:50%;background:var(--hb-alert);position:absolute;right:9px;top:7px}
.zb-desktop .hb-main{padding:0 16px 16px;display:grid;gap:12px;min-height:0;grid-template-columns:1fr 1fr 1.04fr;grid-template-rows:256px 238px;grid-template-areas:"memo memo calendar" "food meal calendar"}
.zb-desktop .hb-panel{border-radius:17px;background:var(--hb-paper);border:1px solid var(--hb-line);padding:18px;min-width:0;min-height:0;position:relative}
.zb-desktop .hb-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}
.zb-desktop .hb-panel-head button{font-size:11px;padding:0 4px;min-height:26px;color:var(--hb-muted)}
.zb-desktop .hb-memo{grid-area:memo;background:var(--hb-note);padding:22px 25px}
.zb-desktop .hb-memo-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}
.zb-desktop .hb-memo-inner>div+div{border-left:1px solid var(--hb-line);padding-left:24px}
.zb-desktop .hb-memo .hb-note-text{font-size:27px;line-height:1.45;letter-spacing:-.8px;font-weight:600;margin:8px 0 15px}
.zb-desktop .hb-memo .hb-note-text.secondary{font-size:21px}
.zb-desktop .hb-tag{display:inline-flex;border-radius:30px;background:var(--hb-paper);padding:4px 9px;font-size:11px;color:var(--hb-muted)}
.zb-desktop .hb-food{grid-area:food}
.zb-desktop .hb-food-row{display:flex;align-items:center;gap:11px;padding:8px 0;border-bottom:1px solid var(--hb-line)}
.zb-desktop .hb-food-row:last-child{border-bottom:0}
.zb-desktop .hb-food-symbol{width:41px;height:41px;background:var(--hb-soft);display:grid;place-items:center;border-radius:11px;font-size:26px;flex-shrink:0}
.zb-desktop .hb-fill{flex:1;min-width:0}
.zb-desktop .hb-expiry{padding:5px 8px;border-radius:8px;background:var(--hb-alertbg);color:var(--hb-alert);font-size:11px;white-space:nowrap;font-weight:650}
.zb-desktop .hb-food-row.third{display:none}
.zb-desktop .hb-food-foot{margin-top:10px;font-size:11px;color:var(--hb-muted)}
.zb-desktop .hb-meal{grid-area:meal;background:var(--hb-accent);color:light-dark(#fffbed,#24341c);display:flex;flex-direction:column;overflow:hidden;border:0}
.zb-desktop .hb-meal small{color:inherit;opacity:.8}
.zb-desktop .hb-meal h2{font-size:26px;line-height:1.3;max-width:210px;margin:8px 0;letter-spacing:-1px;position:relative;z-index:1}
.zb-desktop .hb-meal-desc{font-size:12px;position:relative;z-index:1}
.zb-desktop .hb-plate{position:absolute;right:-24px;top:22px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,#ecdcbb 0 51%,#fff6de 52% 62%,#d5c8a8 63% 65%,#fff6de 66%);box-shadow:0 12px 24px #142a2433;display:grid;place-items:center;font-size:76px;transform:rotate(-12deg);opacity:.8}
.zb-desktop .hb-meal-actions{display:flex;gap:7px;margin-top:auto;position:relative;z-index:1;padding-top:12px}
.zb-desktop .hb-meal-actions button{background:var(--hb-paper);color:var(--hb-ink);font-size:12px;font-weight:650;flex:1}
.zb-desktop .hb-meal-actions button+button{background:light-dark(#ffffff22,#24341c18);color:inherit;border:1px solid light-dark(#ffffff30,#24341c30)}
.zb-desktop .hb-calendar{grid-area:calendar;display:flex;flex-direction:column}
.zb-desktop .hb-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-bottom:15px}
.zb-desktop .hb-week button{flex-direction:column;gap:5px;padding:7px 2px;border-radius:12px;min-width:0;background:var(--hb-bg)}
.zb-desktop .hb-week button span{font-size:11px;color:var(--hb-muted)}
.zb-desktop .hb-week button b{font-size:18px}
.zb-desktop .hb-week .chosen{background:var(--hb-accent);color:light-dark(#fffbed,#24341c)}
.zb-desktop .hb-week .chosen span{color:inherit}
.zb-desktop .hb-day-label{font-size:12px;color:var(--hb-muted);margin-bottom:14px!important}
.zb-desktop .hb-event{display:flex;gap:10px;align-items:start;margin-bottom:16px;border-left:3px solid var(--hb-accent);padding-left:11px}
.zb-desktop .hb-event.repeat{border-color:light-dark(#bb8e3d,#dfbe74)}
.zb-desktop .hb-event time{font-size:12px;color:var(--hb-muted);margin-left:auto;white-space:nowrap}
.zb-desktop .hb-event h3{font-size:16px}
.zb-desktop .hb-calendar-bottom{border-top:1px solid var(--hb-line);padding-top:16px;margin-top:auto}
.zb-desktop .hb-shopping{grid-area:shopping}
.zb-desktop .hb-shopping-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}
.zb-desktop .hb-shopping-chips span{padding:7px 10px;background:var(--hb-soft);border-radius:9px;font-size:12px}
.zb-desktop .hb-calendar-bottom>p{font-size:12px;color:var(--hb-muted);margin-bottom:8px}
.zb-desktop .hb-shopping p{font-size:12px;color:var(--hb-muted);margin-top:12px}
.zb-desktop .hb-nav{background:var(--hb-nav);color:var(--hb-navtext);display:grid;grid-template-columns:repeat(6,1fr);gap:9px;padding:2px 18px;border-top:1px solid light-dark(#203023,#486453)}
.zb-desktop .hb-nav button{min-height:43px;background:#ffffff10;color:inherit;border:1px solid #ffffff20;border-radius:10px;font-size:16px;font-weight:700;gap:9px;position:relative}
.zb-desktop .hb-nav button svg{width:22px;height:22px;flex-shrink:0}
.zb-desktop .hb-nav button.active{background:var(--hb-selected);color:var(--hb-onselected);border-color:var(--hb-selected)}
.zb-desktop .hb-nav button:hover{background:#ffffff25}
.zb-desktop .hb-nav button.active:hover{background:var(--hb-selected)}
.zb-desktop .hb-nav button:focus-visible{outline:3px solid var(--hb-selected);outline-offset:2px}
.zb-desktop .studio{--hb-bg:light-dark(#f1ede7,#29231e);--hb-accent:light-dark(#85533a,#dfb395);--hb-soft:light-dark(#f3e5d7,#4b3b30);--hb-note:light-dark(#f8f4eb,#3d352c);--hb-nav:light-dark(#493329,#221b17);--hb-selected:#eed2af;--hb-onselected:#493022}
.zb-desktop .studio .hb-main{grid-template-columns:1.05fr 1fr 1fr;grid-template-rows:286px 208px;grid-template-areas:"meal food calendar" "meal memo shopping"}
.zb-desktop .studio .hb-meal{padding:28px;background:linear-gradient(160deg,light-dark(#a46b45,#78543e),light-dark(#61452e,#403024));color:#fff4e4}
.zb-desktop .studio .hb-meal h2{font-size:34px;max-width:250px;margin-top:18px}
.zb-desktop .studio .hb-plate{top:160px;left:50%;right:auto;transform:translateX(-50%) rotate(-10deg);width:210px;height:210px;font-size:120px;opacity:1}
.zb-desktop .studio .hb-meal-desc{font-size:13px;max-width:210px}
.zb-desktop .studio .hb-food-row.third{display:flex}
.zb-desktop .studio .hb-food-foot{display:none}
.zb-desktop .studio .hb-memo{padding:18px}
.zb-desktop .studio .hb-memo-inner{display:block}
.zb-desktop .studio .hb-memo-inner>div+div{display:none}
.zb-desktop .studio .hb-memo .hb-note-text{font-size:20px;margin:8px 0}
.zb-desktop .studio .hb-calendar-bottom{display:none}
.zb-desktop .studio .hb-event{margin-bottom:12px}
.zb-desktop .studio .hb-event h3{font-size:14px}
.zb-desktop .studio .hb-calendar{padding:16px}
.zb-desktop .studio .hb-week{margin-bottom:11px}
.zb-desktop .studio .hb-day-label{margin-bottom:10px!important}
.zb-desktop .planner{--hb-bg:light-dark(#e9eef0,#202a31);--hb-accent:light-dark(#345c70,#b8d8e5);--hb-soft:light-dark(#e7eff5,#354751);--hb-note:light-dark(#f1f5f8,#303f48);--hb-nav:light-dark(#243e51,#142b3c);--hb-selected:#d5e8f3;--hb-onselected:#203c50}
.zb-desktop .planner .hb-main{grid-template-columns:1fr 1fr .9fr;grid-template-rows:304px 190px;grid-template-areas:"planning planning food" "memo meal shopping"}
.zb-desktop .hb-planning{grid-area:planning;padding:17px}
.zb-desktop .hb-week-plan{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:204px;border:1px solid var(--hb-line);border-radius:12px;overflow:hidden}
.zb-desktop .hb-plan-day{min-width:0;padding:9px 5px;border-right:1px solid var(--hb-line);background:var(--hb-paper)}
.zb-desktop .hb-plan-day:last-child{border:0}
.zb-desktop .hb-plan-day.today{background:var(--hb-soft)}
.zb-desktop .hb-plan-day button{display:flex;flex-direction:column;gap:2px;width:100%;padding:2px;min-height:44px}
.zb-desktop .hb-plan-day small{font-size:11px}
.zb-desktop .hb-plan-day button b{font-size:22px;font-weight:600}
.zb-desktop .hb-plan-day.today button b{background:var(--hb-accent);color:light-dark(#fffbed,#24341c);border-radius:50%;width:31px}
.zb-desktop .hb-plan-entry{font-size:11px;padding:7px 5px;background:var(--hb-soft);border-radius:7px;margin-top:9px;word-break:keep-all;line-height:1.5}
.zb-desktop .hb-plan-entry.meal{background:var(--hb-note);border:1px solid var(--hb-line)}
.zb-desktop .hb-plan-entry span{display:block;font-size:10px;color:var(--hb-muted)}
.zb-desktop .planner .hb-food-row.third{display:flex}
.zb-desktop .planner .hb-food-foot{display:none}
.zb-desktop .planner .hb-food{padding:16px}
.zb-desktop .planner .hb-memo{padding:17px}
.zb-desktop .planner .hb-memo-inner{display:block}
.zb-desktop .planner .hb-memo-inner>div+div{display:none}
.zb-desktop .planner .hb-note-text{font-size:19px;margin:5px 0 6px}
.zb-desktop .planner .hb-memo .hb-tag{display:none}
.zb-desktop .planner .hb-meal{padding:16px}
.zb-desktop .planner .hb-meal h2{font-size:22px;max-width:180px;margin:4px 0}
.zb-desktop .planner .hb-meal h2 br{display:none}
.zb-desktop .planner .hb-meal-desc{display:none}
.zb-desktop .planner .hb-plate{width:94px;height:94px;font-size:55px;right:-13px;top:16px}
.zb-desktop .focus{--hb-bg:light-dark(#e4e9e1,#171f1a);--hb-paper:light-dark(#f8faf5,#29352d);--hb-accent:light-dark(#365547,#b9d4c0);--hb-note:light-dark(#f0eee1,#454536);--hb-nav:light-dark(#19382d,#0e211a);--hb-selected:#d9eccd}
.zb-desktop .focus .hb-main{grid-template-columns:.68fr 1.05fr 1.05fr;grid-template-rows:244px 250px;grid-template-areas:"clock memo meal" "clock food calendar"}
.zb-desktop .hb-clock-panel{grid-area:clock;background:var(--hb-accent);color:light-dark(#fffbed,#24341c);padding:27px 23px;display:flex;flex-direction:column;border:0}
.zb-desktop .hb-clock-panel .hb-time-large{font-size:65px;letter-spacing:-4px;font-weight:450;line-height:1.2;margin:18px 0}
.zb-desktop .hb-clock-panel p{font-size:18px;line-height:1.7}
.zb-desktop .hb-clock-panel small{color:inherit;opacity:.8}
.zb-desktop .hb-clock-panel .hb-clock-bottom{margin-top:auto;border-top:1px solid light-dark(#ffffff40,#24341c40);padding-top:20px}
.zb-desktop .hb-clock-bottom strong{font-size:28px;font-weight:500;display:block;margin:5px 0}
.zb-desktop .focus .hb-header-center strong{display:none}
.zb-desktop .focus .hb-memo{padding:23px}
.zb-desktop .focus .hb-memo-inner{display:block}
.zb-desktop .focus .hb-memo-inner>div+div{display:none}
.zb-desktop .focus .hb-note-text{font-size:24px}
.zb-desktop .focus .hb-meal h2{font-size:30px}
.zb-desktop .focus .hb-calendar .hb-week{display:none}
.zb-desktop .focus .hb-calendar-bottom{display:none}
.zb-desktop .focus .hb-calendar .hb-day-label{margin-bottom:17px!important}
.zb-desktop .hb-overlay{position:absolute;inset:0;z-index:9;background:#18261f66;display:grid;place-items:center;padding:28px}
.zb-desktop .hb-overlay[hidden]{display:none}
.zb-desktop .hb-dialog{width:430px;background:var(--hb-paper);color:var(--hb-ink);border:1px solid var(--hb-line);padding:27px;border-radius:21px;box-shadow:0 24px 60px #0003}
.zb-desktop .hb-dialog h2{font-size:24px;margin-bottom:15px}
.zb-desktop .hb-dialog p{font-size:14px;line-height:1.8;margin:10px 0}
.zb-desktop .hb-setting-row{display:flex;justify-content:space-between;align-items:center;min-height:50px;border-bottom:1px solid var(--hb-line);font-size:14px}
.zb-desktop .hb-setting-row select{font:inherit;max-width:185px;background:var(--hb-bg);color:var(--hb-ink);border:1px solid var(--hb-line);padding:7px;border-radius:8px}
.zb-desktop .hb-setting-row input{width:19px;height:19px;accent-color:var(--hb-accent)}
.zb-desktop .hb-done{width:100%;background:var(--hb-accent)!important;color:light-dark(#fffbed,#24341c)!important;margin-top:18px;font-weight:650!important}
.zb-desktop .hb-app[data-font="large"] .hb-food-row h3,.zb-desktop .hb-app[data-font="large"] .hb-event h3{font-size:20px}
.zb-desktop .hb-app[data-notes="off"] .hb-memo-inner{visibility:hidden}

/* Live tablet canvas. Scale the typography with the layout, not empty card space. */
@media (min-width:768px) and (orientation:landscape){
 .zb-enabled[data-board-device=tablet]{--zb-bg:#f4f3ec;--zb-nav:#244331;--zb-selected:#e1edb6;min-height:100dvh}
 .zb-enabled[data-board-device=tablet][data-board-theme=focus]{--zb-bg:#e4e9e1;--zb-nav:#19382d;--zb-selected:#d9eccd}
 .zb-enabled[data-board-device=tablet][data-board-theme=wall]{--zb-bg:#eeeae1;--zb-nav:#273c2b;--zb-selected:#e3eeab}
 .zb-enabled[data-board-device=tablet][data-board-theme=studio]{--zb-bg:#f1ede7;--zb-nav:#493329;--zb-selected:#eed2af}
 .zb-enabled[data-board-device=tablet][data-board-theme=planner]{--zb-bg:#e9eef0;--zb-nav:#243e51;--zb-selected:#d5e8f3}
 .zb-enabled[data-board-device=tablet] .top{zoom:var(--zb-scale);width:var(--zb-canvas-width);height:70px;min-height:70px;padding:13px 24px!important;background:var(--zb-bg)!important;border:0!important;gap:16px;box-sizing:border-box}
 .zb-enabled[data-board-device=tablet] .brand{gap:9px!important}.zb-enabled[data-board-device=tablet] .brand>div:last-child{display:flex;align-items:center;gap:14px}
 .zb-enabled[data-board-device=tablet] .brand h1{font-size:23px!important;margin:0!important}.zb-enabled[data-board-device=tablet] .brand p{font-size:11px!important;margin:0!important}.zb-enabled[data-board-device=tablet] .brand .logo{width:34px!important;height:34px!important;flex:0 0 34px}
 .zb-enabled[data-board-device=tablet] .date{flex:0 0 auto;margin-left:auto;font-size:12px!important;font-weight:400}.zb-enabled[data-board-device=tablet] .weather{flex:0 0 auto;display:flex!important;gap:5px!important;overflow:visible}.zb-enabled[data-board-device=tablet] .weather>div:nth-child(2){display:none!important}.zb-enabled[data-board-device=tablet] .weather #temp{font-size:12px!important;font-weight:400}.zb-enabled[data-board-device=tablet] .weather .wi{font-size:17px!important}
 .zb-enabled[data-board-device=tablet] .zb-header-tools{margin-left:auto}.zb-enabled[data-board-device=tablet] .zb-header-tools>button{min-width:42px;min-height:38px;font-size:18px}
 .zb-enabled[data-board-device=tablet] .nav{zoom:var(--zb-scale);width:var(--zb-canvas-width)!important;height:var(--zb-nav-height)!important;min-height:var(--zb-nav-height)!important;padding:2px 18px!important;gap:9px!important;box-sizing:border-box;position:relative!important}
 .zb-enabled[data-board-device=tablet] .nav>button{min-height:43px!important;font-size:19px!important;gap:9px!important}.zb-enabled[data-board-device=tablet] .nav>button span{font-size:16px!important}
 .zb-enabled[data-board-device=tablet] .nav svg{width:22px;height:22px;flex-shrink:0}
 .zb-enabled[data-board-device=tablet] #home{flex:0 0 auto}
 .zb-dashboard.zb-desktop{display:block!important;height:calc(var(--zb-main-height) * var(--zb-scale));min-height:0;max-height:none;padding:0;gap:0}
 .zb-desktop .hb-app,.zb-desktop .ffb-preview{position:relative;left:auto;top:auto;transform:none;zoom:var(--zb-scale);width:var(--zb-canvas-width);height:var(--zb-main-height);min-height:0;display:block;border:0;border-radius:0;overflow:visible;color-scheme:light}
 .zb-desktop .hb-main{height:100%;grid-template-rows:minmax(0,256fr) minmax(0,238fr)}
 .zb-desktop .focus .hb-main{grid-template-rows:minmax(0,244fr) minmax(0,250fr)}
 .zb-desktop .studio .hb-main{grid-template-rows:minmax(0,286fr) minmax(0,208fr)}
 .zb-desktop .planner .hb-main{grid-template-rows:minmax(0,304fr) minmax(0,190fr)}
 .zb-desktop .hb-panel{overflow:hidden}
 .zb-desktop .hb-clock-panel .hb-time-large{font-size:65px;white-space:nowrap;letter-spacing:-4px;margin:24px 0}
 .zb-desktop .hb-clock-bottom strong{font-size:24px;white-space:nowrap;letter-spacing:-1px}.zb-desktop .hb-clock-bottom>small{display:block;line-height:1.5}
 .zb-desktop .hb-meal h2{max-width:68%;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
 .zb-desktop .hb-meal-desc{max-width:76%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .zb-desktop .hb-meal-actions{padding-top:9px}
 .zb-desktop .hb-memo-inner{min-height:0}.zb-desktop .hb-memo-inner>div{min-width:0}
 .zb-desktop .hb-app .bd-note-open,.zb-desktop .ffb-preview .bd-note-open{padding:0;border-radius:0;display:block;text-align:left;width:100%;white-space:normal;min-height:0}
 .zb-desktop .hb-note-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
 .zb-desktop .bd-note-body{font-size:14px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:5px 0!important;white-space:pre-line;overflow-wrap:anywhere}
 .zb-desktop .hb-app .bd-note-more{position:absolute;right:18px;bottom:10px;padding:0;min-height:24px;font-size:11px;color:var(--hb-muted)}
 .zb-desktop .hb-memo{padding-bottom:34px!important}.zb-desktop .hb-memo .hb-note-text{margin:8px 0 10px}
 .zb-desktop .hb-food-row{padding:8px 0;min-width:0}.zb-desktop .hb-app .bd-food-open,.zb-desktop .ffb-preview .bd-food-open{display:flex;gap:11px;align-items:center;text-align:left;width:100%;min-width:0;padding:0;border:0;background:none;min-height:42px}
 .zb-desktop .bd-food-open h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zb-desktop .bd-food-open small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .zb-desktop .ff-food-row>.bd-food-open{flex:1}.zb-desktop .ff-food-row>button:last-child:not(.bd-food-open){flex-shrink:0}
 .zb-desktop .hb-app .bd-event-open{display:flex;justify-content:space-between;align-items:start;padding:0;gap:10px;width:100%;min-height:0;text-align:left;border-radius:0}
 .zb-desktop .bd-event-open>span{min-width:0;flex:1}.zb-desktop .bd-event-open h3,.zb-desktop .bd-event-open b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
 .zb-desktop .bd-event-open small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
 .zb-desktop .hb-calendar .hb-event{margin-bottom:16px}.zb-desktop .hb-calendar .hb-day-label{flex-shrink:0}
 .zb-desktop .hb-app .hb-shopping-chips button{font-size:12px;min-height:30px;padding:5px 9px;background:var(--hb-soft);border-radius:9px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .zb-desktop .bd-calendar-shopping{margin-top:14px}.zb-desktop .hb-calendar-bottom{padding-top:12px}
 .zb-desktop .hb-calendar-bottom>p{margin-bottom:6px}.zb-desktop .hb-calendar-bottom h3{font-size:15px}
 .zb-desktop .hb-week-plan{height:calc(100% - 40px)}.zb-desktop .hb-app .hb-plan-entry{display:block;min-height:0;font-size:11px;padding:7px 5px;width:100%;text-align:left;white-space:normal}
 .zb-desktop .hb-plan-entry span{font-size:10px}.zb-desktop .bd-empty{font-size:13px!important;font-weight:400;line-height:1.6;color:var(--hb-muted,var(--ff-muted));padding:10px 0}
 .zb-desktop .ff-main{height:100%;display:flex;flex-direction:column;padding:16px 20px 18px;gap:0}
 .zb-desktop .ff-greeting{height:auto;min-height:55px;margin-bottom:12px;flex-shrink:0}.zb-desktop .ffb-preview h1{font-size:27px}.zb-desktop .ffb-preview h2{font-size:19px}.zb-desktop .ffb-preview h3{font-size:17px}
 .zb-desktop .ff-box{overflow:hidden;padding:16px}.zb-desktop .ff-box-head{margin-bottom:10px}.zb-desktop .ff-box-head h2{white-space:nowrap}.zb-desktop .ff-box-head button{white-space:nowrap;font-size:11px}
 .zb-desktop .balanced .ff-layout{flex:1.4;height:auto;min-height:0}.zb-desktop .balanced .ff-bottom-grid{flex:1;height:auto;min-height:0;margin-top:12px}
 .zb-desktop .ff-meal-art{width:92px;height:92px;font-size:55px}.zb-desktop .ff-meal h3{font-size:25px;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .zb-desktop .ff-actions{gap:7px;margin-top:10px}.zb-desktop .ff-actions button{font-size:12px;background:var(--ff-soft);min-height:34px}.zb-desktop .ff-actions button:first-child{background:var(--ff-green);color:var(--ff-on-green)}
 .zb-desktop .ff-meal-slots{margin-top:9px;padding-top:6px;gap:10px;flex-wrap:nowrap;min-width:0}.zb-desktop .ff-meal-slots button{flex:1;min-width:0;text-align:left;padding:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .zb-desktop .ff-food-row{padding:8px 0!important}.zb-desktop .ff-food-icon{width:37px;height:37px;font-size:25px}.zb-desktop .ff-pill{font-size:11px;padding:4px 6px}
 .zb-desktop .ff-event{grid-template-columns:43px minmax(0,1fr);margin-bottom:12px}.zb-desktop .ffb-preview .bd-event-open{display:block;text-align:left;padding:0;min-height:0;font-size:15px}.zb-desktop .ff-time{font-size:12px}.zb-desktop .ff-event small{font-size:12px}
 .zb-desktop .ff-note p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:19px!important;line-height:1.5!important;white-space:pre-line;overflow-wrap:anywhere}.zb-desktop .ff-note .bd-note-body{font-size:12px;-webkit-line-clamp:1}
 .zb-desktop .ff-shopping{gap:6px;margin-top:10px}.zb-desktop .ff-shopping button{font-size:12px;padding:5px 8px;min-height:28px;background:var(--ff-soft);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .zb-desktop .dayflow .ff-main{display:grid;grid-template-columns:190px 1.2fr 1fr;gap:20px}.zb-desktop .dayflow .ff-day-intro{gap:20px}.zb-desktop .dayflow .ff-day-date{font-size:72px}.zb-desktop .dayflow .ff-day-intro h1{font-size:27px}.zb-desktop .dayflow .ff-day-intro .ff-box{padding:14px}.zb-desktop .dayflow .ff-day-intro .bd-note-open{padding:8px 0;display:grid}
 .zb-desktop .dayflow .ff-rail{gap:14px}.zb-desktop .dayflow .ff-event{min-height:54px;margin:0;padding-top:12px;border-top:1px solid var(--ff-line)}.zb-desktop .dayflow .ff-inline-note{margin-top:12px;padding:8px}.zb-desktop .dayflow .ff-note{background:transparent;transform:none;margin:0;padding:7px}
 .zb-desktop .dayflow .ff-dinner-side>.ff-box:last-child{height:auto;flex:0 0 30%}.zb-desktop .dayflow .ff-meal-art{height:115px;width:115px;font-size:68px}.zb-desktop .dayflow .ff-meal{gap:10px}.zb-desktop .dayflow .ff-meal h3{font-size:24px}
 .zb-desktop .glance .ff-main{padding:16px 20px 18px}.zb-desktop .glance .ff-big-layout{height:auto;flex:1;min-height:0}.zb-desktop .glance .ff-big-dinner{height:auto;flex:1;padding:22px}.zb-desktop .glance .ff-big-dinner h3{font-size:35px;max-width:65%;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.zb-desktop .glance .ff-big-dinner .ff-meal-art{width:145px;height:145px;font-size:85px;top:24px;right:-12px}.zb-desktop .glance .ff-big-dinner small{font-size:12px}
 .zb-desktop .glance .ff-big-food{height:90px;flex-shrink:0;margin-top:12px;gap:10px}.zb-desktop .glance .ff-food-tile{padding:12px}.zb-desktop .glance .ff-food-tile h3{font-size:22px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.zb-desktop .glance .ff-food-tile>span:last-child{min-width:0}
 .zb-desktop .glance .ff-family-message{height:auto;flex:1;min-height:0;padding:18px;margin-bottom:12px}.zb-desktop .glance .ff-note{padding:0;transform:none;background:none;margin:0}.zb-desktop .glance .ff-note p{font-size:25px!important;-webkit-line-clamp:3}.zb-desktop .glance .ff-big-layout>div>.ff-box{height:38%;flex-shrink:0;padding:16px}.zb-desktop .glance .ff-glance-footer{height:48px;min-height:48px;margin-top:12px;padding:8px 16px;font-size:14px;flex-wrap:nowrap}.zb-desktop .glance .ff-glance-footer>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.zb-desktop .glance .ff-glance-footer button{white-space:nowrap;font-size:13px}
 .zb-desktop .weekly .ff-week-layout{height:auto;flex:1;min-height:0;grid-template-columns:1.85fr 1fr}.zb-desktop .weekly .ff-week-layout>div{grid-template-rows:minmax(0,1.65fr) minmax(0,1fr);gap:12px}.zb-desktop .weekly .ff-side-stack{grid-template-rows:minmax(0,1.5fr) minmax(0,1fr);gap:12px}
 .zb-desktop .weekly .ff-week-agenda{gap:14px;padding-top:10px}.zb-desktop .weekly .ff-week-grid{margin-bottom:10px}.zb-desktop .weekly .ff-week-grid button{min-height:45px;padding:3px 2px}.zb-desktop .weekly .ff-week-grid button b{font-size:18px;margin:2px 0}.zb-desktop .weekly .ff-week-agenda h3{font-size:15px;margin-bottom:10px}.zb-desktop .weekly .ff-today-menu{padding:10px}.zb-desktop .weekly .ff-today-menu p{font-size:19px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.zb-desktop .weekly .ff-week-footer{margin:0;min-height:0;gap:12px}
 .zb-desktop .weekly .ff-week-footer .ff-box{padding:12px}.zb-desktop .weekly .ff-week-footer h2{font-size:16px}.zb-desktop .weekly .ff-week-footer .ff-box-head{margin-bottom:6px}.zb-desktop .weekly .ff-week-footer .ff-note p{font-size:16px!important}.zb-desktop .weekly .ff-week-footer .ff-shopping{margin-top:6px;gap:4px}.zb-desktop .weekly .ff-week-footer .ff-shopping button{font-size:11px;min-height:25px;padding:4px 6px}.zb-desktop .weekly .ff-side-stack .ff-food-row{gap:6px}.zb-desktop .weekly .ff-side-stack .ff-food-row h3{font-size:16px}.zb-desktop .weekly .ff-side-stack .ff-food-icon{width:30px;height:32px;font-size:23px}.zb-desktop .weekly .ff-side-stack .bd-food-open{gap:6px}.zb-desktop .bd-recommend{margin:12px 0!important}
}

@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .dayflow .ff-main{grid-template-rows:minmax(0,1fr)}
 .zb-desktop .dayflow .ff-dinner-side{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,.38fr);gap:12px}
 .zb-desktop .dayflow .ff-dinner-side>.ff-box:last-child{height:auto;min-height:0}
 .zb-desktop .dayflow .ff-dinner-side .ff-shopping{margin:7px 0}
 .zb-desktop .dayflow .ff-dinner-side>.ff-box:last-child>small{display:none}
 .zb-desktop .dayflow .ff-dinner-side>.ff-box:last-child .ff-actions{display:none}
}

@media (min-width:768px) and (orientation:landscape){
 .zb-enabled[data-board-device=tablet]:is([data-board-theme=balanced],[data-board-theme=dayflow],[data-board-theme=glance],[data-board-theme=weekly]) .date,.zb-enabled[data-board-device=tablet]:is([data-board-theme=balanced],[data-board-theme=dayflow],[data-board-theme=glance],[data-board-theme=weekly]) .weather{display:none!important}
 .zb-desktop .ff-main{padding:20px 24px}.zb-desktop .ff-greeting{height:64px;min-height:64px;margin-bottom:16px}.zb-desktop .ffb-preview h1{font-size:29px}.zb-desktop .ffb-preview h2{font-size:21px}.zb-desktop .ffb-preview h3{font-size:19px}
 .zb-desktop .balanced .ff-layout{flex:1.45}.zb-desktop .balanced .ff-bottom-grid{margin-top:14px}
 .zb-desktop .ff-box{padding:18px}.zb-desktop .ff-food-row{padding:11px 0!important}.zb-desktop .ff-food-icon{width:45px;height:45px;font-size:29px}.zb-desktop .ff-meal-art{width:114px;height:114px;font-size:66px}.zb-desktop .ff-meal h3{font-size:28px}.zb-desktop .ff-actions button{min-height:40px;font-size:14px}.zb-desktop .ff-meal-slots{margin-top:14px;padding-top:10px}
 .zb-desktop .dayflow .ff-main{grid-template-columns:240px 1.2fr 1fr;gap:22px}.zb-desktop .dayflow .ff-dinner-side>.ff-box:first-child{display:flex;flex-direction:column}.zb-desktop .dayflow .ff-dinner-side>.ff-box:first-child>.ff-actions{margin-top:auto}.zb-desktop .dayflow .ff-meal-art{width:130px;height:130px;font-size:78px}
 .zb-desktop .glance .ff-main{padding:20px 24px}.zb-desktop .glance .ff-big-dinner h3{font-size:45px}.zb-desktop .glance .ff-family-message{padding:20px 24px}.zb-desktop .glance .ff-note p{font-size:29px!important}.zb-desktop .glance .ff-big-food{height:110px;margin-top:16px}.zb-desktop .glance .ff-glance-footer{height:68px;min-height:68px;margin-top:16px;font-size:17px}
}

@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .glance .ff-big-layout>div>.ff-box{padding-top:12px;padding-bottom:12px}
 .zb-desktop .hb-clock-bottom>small:first-child{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 .zb-header-tools>button{display:grid;place-items:center}
}

@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .dayflow .ff-day-events{display:flex;flex-direction:column;min-height:0}
 .zb-desktop .dayflow .ff-rail{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}
 .zb-desktop .dayflow .ff-time-card{flex:1;min-height:0;grid-template-columns:49px minmax(0,1fr)}
 .zb-desktop .dayflow .ff-time-card>.ff-inline-note{margin:0;padding:10px 15px;overflow:hidden}
 .zb-desktop .dayflow .ff-time-card .ff-note{margin:0;padding:0}.zb-desktop .dayflow .ff-time-card .ff-note p{-webkit-line-clamp:1;font-size:18px!important;margin:4px 0!important}.zb-desktop .dayflow .ff-time-card .bd-note-body{display:none}
 .zb-desktop .dayflow .ff-time-card h3{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
}
.zb-header-clock{display:none}
@media (min-width:768px) and (orientation:landscape){
 .zb-enabled[data-board-device=tablet]:is([data-board-theme=wall],[data-board-theme=studio],[data-board-theme=planner]) .zb-header-clock{display:block;margin-left:auto;font-size:26px;letter-spacing:-1px;font-weight:500;color:#28352a}
 .zb-enabled[data-board-device=tablet]:is([data-board-theme=wall],[data-board-theme=studio],[data-board-theme=planner]) .date{margin-left:0}
}
@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .hb-plan-day{overflow:hidden}.zb-desktop .hb-app .hb-plan-entry{overflow-wrap:anywhere;word-break:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 .zb-desktop .ff-meal{grid-template-columns:minmax(0,1fr) auto}.zb-desktop .ff-meal>div,.zb-desktop .ff-week-agenda>section{min-width:0}
 .zb-desktop .ff-week-agenda{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .zb-desktop .ff-meal h3,.zb-desktop .ff-today-menu p,.zb-desktop .bd-recommend{overflow-wrap:anywhere}
}
@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .balanced .ff-meal h3{line-height:1.2;margin:6px 0}
 .zb-desktop .balanced .ff-meal small{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:13px;line-height:18px}
 .zb-desktop .balanced .ff-meal-slots{padding-top:6px;margin-top:9px}.zb-desktop .balanced .ff-meal-slots button{min-height:36px;line-height:18px}
 .zb-desktop .balanced .ff-meal .ff-pill{line-height:18px;padding:4px 8px}
}
@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .glance .ff-big-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.zb-desktop .ff-big-layout>div{min-width:0}.zb-desktop .ff-food-tile{min-width:0}
 .zb-desktop .glance .ff-big-dinner h3{overflow-wrap:anywhere}.zb-desktop .glance .ff-big-dinner>div{min-width:0}
 .zb-desktop .ff-week-layout>div{min-width:0}
}
@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .glance .ff-big-dinner .ff-meal-art{right:12px}
 .zb-desktop .glance .ff-event{grid-template-columns:55px minmax(0,1fr)}
 .zb-desktop .glance .ff-note p{line-height:1.25!important;margin:8px 0!important}
 .zb-desktop .glance .ff-note .bd-note-body{-webkit-line-clamp:1}
}
@media (min-width:768px) and (orientation:landscape){.zb-desktop .weekly .ff-event{grid-template-columns:43px minmax(0,1fr)}}

@media (min-width:768px) and (orientation:landscape){
 .zb-desktop .bd-plate-window{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
 .zb-desktop .hb-memo .hb-note-text{-webkit-line-clamp:2;margin:5px 0}
 .zb-desktop .hb-memo .bd-note-body{-webkit-line-clamp:1;font-size:13px}
 .zb-desktop .hb-memo .hb-panel-head{margin-bottom:10px}
}
@media (min-width:768px) and (orientation:landscape){.zb-desktop .studio .hb-memo .hb-note-text{margin:4px 0}}

/* Keep navigation in the viewport on every page, including long settings. */
.zb-enabled{--zb-footer-space:calc(60px + env(safe-area-inset-bottom,0px));padding-bottom:var(--zb-footer-space)!important}
.zb-enabled .nav{position:fixed!important;inset:auto 0 0!important;width:100%!important;zoom:1!important;transform:none!important;height:var(--zb-footer-space)!important;margin:0!important;box-sizing:border-box}
.zb-enabled>.view:not(#home){min-height:0}
.zb-enabled .brand .logo{width:44px!important;height:44px!important;flex:0 0 44px}
.zb-enabled .brand .logo img{width:100%;height:100%;object-fit:contain}
.zb-header-tools svg{display:block;overflow:visible}
.zb-enabled .filters,.zb-enabled .tablewrap{margin-left:0;margin-right:0;max-width:100%}
@media (min-width:768px) and (orientation:landscape){
 .zb-enabled[data-board-device=tablet]{--zb-footer-space:calc(var(--zb-nav-height) * var(--zb-scale))}
 .zb-enabled[data-board-device=tablet] .brand .logo{width:46px!important;height:46px!important;flex:0 0 46px}
 .zb-enabled[data-board-device=tablet] .nav{position:fixed!important;inset:auto 0 0!important;zoom:1!important;width:100%!important;height:var(--zb-footer-space)!important;min-height:var(--zb-footer-space)!important;padding:calc(2px * var(--zb-scale)) calc(18px * var(--zb-scale))!important;gap:calc(9px * var(--zb-scale))!important}
 .zb-enabled[data-board-device=tablet] .nav>button{min-height:calc(43px * var(--zb-scale))!important;border-radius:calc(10px * var(--zb-scale))!important;gap:calc(9px * var(--zb-scale))!important;padding:calc(5px * var(--zb-scale))!important}
 .zb-enabled[data-board-device=tablet] .nav>button span{font-size:calc(16px * var(--zb-scale))!important}
 .zb-enabled[data-board-device=tablet] .nav svg{width:calc(22px * var(--zb-scale));height:calc(22px * var(--zb-scale))}
 /* Side artwork gets its own reserved width; text never sits beneath the plate. */
 .zb-desktop .hb-meal h2,.zb-desktop .hb-meal-desc{max-width:calc(100% - 112px)}
 .zb-desktop .planner .hb-meal h2{max-width:calc(100% - 94px)}
 /* Studio preserves its title / illustration / actions composition in normal flow. */
 .zb-desktop .studio .hb-meal{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto}
 .zb-desktop .studio .hb-meal h2,.zb-desktop .studio .hb-meal-desc{max-width:100%;min-width:0}
 .zb-desktop .studio .bd-plate-window{position:relative;inset:auto;min-height:0;width:100%;display:grid;place-items:center;border-radius:0;container-type:size}
 .zb-desktop .studio .hb-plate{position:relative;top:auto;left:auto;right:auto;transform:rotate(-10deg);width:min(210px,80cqw,80cqh);height:min(210px,80cqw,80cqh);font-size:min(120px,48cqw,48cqh)}
 .zb-desktop .studio .hb-meal-actions{margin-top:0}
 .zb-desktop .glance .ff-big-dinner h2,.zb-desktop .glance .ff-big-dinner h3,.zb-desktop .glance .ff-big-dinner small{display:block;max-width:calc(100% - 145px);overflow-wrap:anywhere}
 .zb-desktop .glance .ff-big-dinner h3{display:-webkit-box}
}
/* Every displayed food uses the same icon, name, location and expiry row. */
@media(min-width:768px) and (orientation:landscape){
 .zb-desktop .hb-food-row.third{display:flex}
 .zb-desktop .focus .hb-food-row,.zb-desktop .wall .hb-food-row{padding:5px 0}
 .zb-desktop .focus .hb-food .hb-panel-head,.zb-desktop .wall .hb-food .hb-panel-head{margin-bottom:8px}
}
/* Keep the whole plate and menu emoji inside the card, with a separate text lane. */
@media(min-width:768px) and (orientation:landscape){
 .zb-desktop .hb-app:not(.studio) .hb-plate{right:14px;top:24px;width:104px;height:104px;font-size:62px;transform:rotate(-10deg)}
 .zb-desktop .hb-app:not(.studio) .hb-meal h2,.zb-desktop .hb-app:not(.studio) .hb-meal-desc{max-width:calc(100% - 124px)}
}
@media(min-width:768px) and (orientation:landscape){
 .zb-desktop .hb-app.planner .hb-plate{top:16px;width:80px;height:80px;font-size:48px}
}

.zb-desktop .hb-plate.has-photo{border:0!important;background:none!important;box-shadow:none!important;transform:none!important;border-radius:0!important;display:block!important}.hb-plate.has-photo .menu-photo{margin:0;width:100%;max-width:none}.hb-plate.has-photo .menu-photo img{aspect-ratio:1}.hb-plate.has-photo figcaption{font-size:7px;line-height:1.2}.ff-meal-art .menu-photo{max-width:130px;font-size:8px}.zb-dish .menu-photo{width:72px;margin:0}.zb-dish .menu-photo figcaption{font-size:6px}
