/* barcode-scanner.js */
body.camera-open .native-app-menu{display:none!important}
    .scan-lookup-content > div{display:grid;gap:3px;min-width:0}
    .scan-lookup-content > div > strong,.scan-lookup-content > div > span{display:block}
    .scanner-gallery-trigger{grid-column:1/-1;background:rgba(115,198,87,.2);border-color:rgba(168,231,146,.48);margin-bottom:10px}
    .scanner-gallery-input{position:absolute!important;left:0!important;top:0!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:auto!important;z-index:-1!important}
    .scanner-image-reader{position:fixed;left:-10000px;top:0;width:420px;height:320px;overflow:hidden;pointer-events:none;opacity:.01}

/* diary-drag-meals.js */
.meal-list .entry{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
      .meal-list .entry.meal-dragging{z-index:30;opacity:.72;transform:scale(.985);box-shadow:0 10px 28px rgba(31,45,29,.14);border-radius:14px;background:#fff}
      .meal-group.meal-drop-target{border-color:#9fc594;box-shadow:0 0 0 3px rgba(126,174,112,.14)}
      .meal-group.meal-drop-target .meal-group-head{background:#edf5e9}
      .meal-drag-toast{position:fixed;z-index:1000;left:50%;bottom:max(28px,calc(env(safe-area-inset-bottom) + 18px));transform:translateX(-50%);padding:9px 13px;border-radius:999px;background:rgba(31,45,29,.92);color:#fff;font-size:12px;font-weight:800;box-shadow:0 6px 24px rgba(0,0,0,.16);pointer-events:none}

/* diary-favorites.js */
.universal-favorite-star{border:1px solid var(--line);background:#fff;color:#a7afa3;border-radius:12px;min-width:38px;height:38px;display:inline-grid;place-items:center;font-size:22px;line-height:1;cursor:pointer}.universal-favorite-star.active{color:#d9a514;background:#fffaf0}.universal-favorite-star:disabled{opacity:.45}.drawer-favorite-row{display:flex;justify-content:flex-end;margin:-4px 0 10px}

/* favorites.js */
.preparation-card-summary{margin:18px 0 0;color:var(--muted,#7a8476);font-size:16px;line-height:1.45}.preparation-card-weights{margin:6px 0 0;color:var(--muted,#7a8476);font-size:15px;line-height:1.45}.preparation-card-ingredients{display:grid;gap:8px;margin:18px 0}.preparation-card-ingredient{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:var(--soft,#f2f5f0);color:var(--ink,#1d241e)}.preparation-card-ingredient small{color:var(--muted,#7a8476)}.preparation-card-shelf-add,.preparation-card-editor{display:grid;gap:10px;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line,#e1e8df)}.preparation-card-shelf-add[hidden],.preparation-card-editor[hidden]{display:none}.preparation-card-weight-label,.preparation-card-field{display:grid;gap:6px;color:var(--muted,#7a8476);font-size:13px;font-weight:800}.preparation-card-weight-label input,.preparation-card-field input{min-height:46px;box-sizing:border-box;border:1px solid var(--line,#dfe7dc);border-radius:14px;padding:0 12px;background:#fff;color:var(--text);font:inherit;font-size:17px}.preparation-card-edit-grid,.preparation-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preparation-card-edit-note,.preparation-card-edit-status,.preparation-card-shelf-status{min-height:18px;margin:0;color:var(--muted,#7a8476);font-size:13px;line-height:1.4}.preparation-card-edit-status.error{color:var(--danger,#a6423c)}.preparation-card-close-action{width:100%}@media(max-width:420px){.preparation-card-edit-grid,.preparation-card-actions{grid-template-columns:1fr}}

/* feedback-widget.js */
.feedback-bug{position:fixed;right:18px;bottom:max(88px,calc(env(safe-area-inset-bottom) + 78px));z-index:88;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#fff;box-shadow:0 10px 28px rgba(31,45,29,.16);font-size:22px;display:grid;place-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.feedback-bug:active{transform:scale(.96)}
      .feedback-modal{position:fixed;inset:0;z-index:120;background:rgba(25,30,24,.28);display:none;align-items:flex-end;justify-content:center;padding:12px}.feedback-modal.open{display:flex}.feedback-sheet{width:min(560px,100%);max-height:min(760px,92vh);overflow:auto;background:#fff;border-radius:24px;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.22)}.feedback-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.feedback-head h2{margin:0;font-size:21px}.feedback-head p{margin:4px 0 0;font-size:12px;color:var(--muted)}.feedback-close{width:36px;height:36px;border:0;border-radius:50%;background:#f1f4ef;font-size:22px}.feedback-sheet .field{display:grid;gap:6px;margin:10px 0}.feedback-sheet input,.feedback-sheet textarea,.feedback-sheet select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px 12px;font:inherit}.feedback-sheet textarea{min-height:130px;resize:vertical}.feedback-files{font-size:12px;color:var(--muted)}.feedback-status{min-height:18px;margin:8px 0 0;font-size:12px;color:var(--muted)}.feedback-build{position:fixed;left:12px;bottom:max(8px,env(safe-area-inset-bottom));z-index:20;font-size:9px;color:#a0a99d;pointer-events:none;letter-spacing:.02em}

/* food-history-units.js */
.unit-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:4px;margin:12px 0;background:#eef2ec;border-radius:15px}
      .unit-switch button{border:1px solid transparent;border-radius:11px;padding:10px 8px;background:transparent;color:var(--muted);font-weight:850;cursor:pointer;transition:background .12s ease,color .12s ease,transform .12s ease}
      .unit-switch button.active{background:var(--accent-dark);color:#fff;border-color:var(--accent-dark);box-shadow:0 3px 12px rgba(31,45,29,.14)}
      .unit-switch button.active::before{content:'✓ ';font-weight:900}
      .unit-switch button:active{transform:scale(.97)}
      .unit-switch button:disabled{opacity:.28;cursor:not-allowed}
      .unit-switch-compact{margin:8px 0 2px}
      .history-search{position:relative;margin:15px 0 4px}
      .history-search input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:16px;padding:13px 42px 13px 14px;background:#fff;color:var(--text);font:inherit;outline:none}
      .history-search input:focus{border-color:var(--accent-dark);box-shadow:0 0 0 3px rgba(31,45,29,.07)}
      .history-search span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:18px;pointer-events:none}
      .history-heading{margin:14px 2px 2px;font-size:13px;font-weight:850;color:var(--muted)}
      .history-list{display:grid;gap:9px;margin:9px 0 14px}
      .history-card{width:100%;border:1px solid var(--line);border-radius:17px;padding:13px 14px;background:#f8faf7;color:var(--text);display:grid;gap:5px;text-align:left;cursor:pointer}
      .history-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
      .history-card-top strong{font-size:15px;line-height:1.25}
      .history-card-top b{font-size:13px;color:var(--accent-dark);white-space:nowrap}
      .history-card-meta{font-size:12px;color:var(--muted);line-height:1.35}
      .history-card:active{transform:scale(.99)}
      .history-empty{display:grid;gap:5px;padding:24px 16px;text-align:center;background:#f7f9f6;border:1px dashed #d9e1d5;border-radius:18px}
      .history-empty span{font-size:13px;line-height:1.4;color:var(--muted)}

/* freshness.js */
.freshness-block{margin:10px 0 14px;padding:12px;border:1px solid var(--line);border-radius:17px;background:#f7f9f6}.freshness-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer}.freshness-toggle-copy{display:grid;gap:2px}.freshness-toggle-copy strong{font-size:14px}.freshness-toggle-copy small{font-size:11px;color:var(--muted)}.freshness-switch{position:relative;width:48px;height:28px;flex:0 0 auto}.freshness-switch input{position:absolute;opacity:0}.freshness-switch i{position:absolute;inset:0;border-radius:999px;background:#dde3da}.freshness-switch i:after{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.16);transition:.18s}.freshness-switch input:checked+i{background:#9bcb8c}.freshness-switch input:checked+i:after{transform:translateX(20px)}.freshness-details{display:grid;gap:9px;margin-top:12px}.freshness-details[hidden]{display:none}.freshness-presets,.freshness-life-options{display:flex;flex-wrap:wrap;gap:7px}.freshness-chip{border:1px solid #dce6d8;border-radius:999px;background:#fff;padding:8px 11px;font:inherit;font-size:12px;font-weight:850;color:var(--text);cursor:pointer}.freshness-chip.active{background:#eaf4e6;border-color:#b9d9b0;color:#347d29}.freshness-chip small{display:block;font-size:9px;color:var(--muted);font-weight:700}.freshness-remember{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.freshness-note{font-size:11px;color:var(--muted);line-height:1.35}.shelf-freshness{display:grid;gap:4px;margin-top:7px}.shelf-freshness span{height:4px;border-radius:999px;background:#e5e9e2;overflow:hidden}.shelf-freshness span i{display:block;height:100%;border-radius:inherit;background:#9bc987}.shelf-freshness small{font-size:10px;font-weight:850;color:#62705e}.shelf-freshness.warn span i{background:#dcb75b}.shelf-freshness.danger span i{background:#d98278}.shelf-freshness.danger small{color:#a74f48}.shelf-dialog-freshness{margin:8px 0 14px;padding:10px 12px;border-radius:14px;background:#f7f9f6}.shelf-dialog-freshness-actions{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.shelf-dialog-freshness .btn{min-height:44px}

/* gallery-editor-v4.js */
.gallery-v4,.gallery-v4 *{-webkit-user-select:none!important;user-select:none!important;-webkit-touch-callout:none!important}.gallery-v4{position:absolute;inset:0;z-index:42;display:none;background:#050705;color:#fff;overflow:hidden}.gallery-v4.open{display:block}.gallery-v4-top{position:absolute;z-index:7;left:0;right:0;top:0;padding:max(14px,env(safe-area-inset-top)) 18px 12px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;background:linear-gradient(rgba(0,0,0,.75),transparent)}.gallery-v4-close{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:28px}.gallery-v4-stage{position:absolute;inset:0 0 216px;overflow:hidden;background:#e8ede5;touch-action:none!important;overscroll-behavior:none}.gallery-v4-img{position:absolute;left:50%;top:50%;max-width:none!important;max-height:none!important;transform-origin:center center;pointer-events:none;-webkit-user-drag:none}.gallery-v4-frame{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:min(86vw,400px);height:150px;border:2px solid rgba(255,255,255,.84);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.35);pointer-events:none}.gallery-v4-frame:after{content:"";position:absolute;left:7%;right:7%;top:50%;height:2px;background:var(--accent);box-shadow:0 0 12px rgba(115,198,87,.75)}.gallery-v4-hint{position:absolute;z-index:4;left:18px;right:18px;bottom:18px;text-align:center;display:grid;gap:4px;text-shadow:0 1px 10px #000;pointer-events:none}.gallery-v4-hint span{font-size:13px;color:rgba(255,255,255,.8)}.gallery-v4-hint .scanner-error{color:#ffd0cb}.gallery-v4-hint .scanner-success{color:#d9ffd0}.gallery-v4-foot{position:absolute;z-index:7;left:0;right:0;bottom:0;padding:10px 18px max(18px,env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(0,0,0,.96) 18%)}.gallery-v4-rotate{display:grid;grid-template-columns:62px 1fr 48px;gap:10px;align-items:center;margin-bottom:8px}.gallery-v4-rotate label,.gallery-v4-angle{font-size:12px;font-weight:850}.gallery-v4-rotate input{width:100%;accent-color:var(--accent)}.gallery-v4-angle{text-align:right}.gallery-v4-tools{display:grid;grid-template-columns:56px 1fr 56px;gap:8px;margin-bottom:8px}.gallery-v4-tools button,.gallery-v4-secondary{min-height:42px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.1);color:#fff;font-weight:850}.gallery-v4-scan{width:100%;min-height:50px;border:0;border-radius:16px;background:var(--accent);color:#fff;font-size:16px;font-weight:900;margin-bottom:8px}.gallery-v4-secondary{width:100%}.gallery-v4 button:disabled{opacity:.5}.gallery-v4-reader{position:fixed;left:-10000px;top:0;width:1000px;height:700px;opacity:.01;pointer-events:none}.gallery-v4{background:#f4f6f2;color:var(--text)}.gallery-v4-top{color:var(--text);text-shadow:none;background:linear-gradient(#f4f6f2,rgba(244,246,242,.82),transparent)}.gallery-v4-close{border:1px solid var(--line);background:#fff;color:var(--text)}.gallery-v4-frame{border-color:var(--accent-dark);box-shadow:0 0 0 999px rgba(31,45,29,.22)}.gallery-v4-hint{text-shadow:none;color:var(--text)}.gallery-v4-hint span{color:var(--muted)}.gallery-v4-foot{background:linear-gradient(transparent,rgba(244,246,242,.98) 24%)}.gallery-v4-tools button,.gallery-v4-secondary{border-color:var(--line);background:#fff;color:var(--text)}@media(max-width:390px){.gallery-v4-stage{bottom:212px}.gallery-v4-frame{width:88vw;height:138px}}

/* gallery-editor.js */
.gallery-editor{position:absolute;inset:0;z-index:30;display:none;background:#050705;color:#fff;overscroll-behavior:none}
    .gallery-editor.open{display:block}
    .gallery-editor-topbar{position:absolute;z-index:5;left:0;right:0;top:0;padding:max(14px,env(safe-area-inset-top)) 18px 12px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;background:linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,0));touch-action:manipulation}
    .gallery-editor-topbar strong{font-size:17px}
    .gallery-editor-close{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:28px;line-height:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
    .gallery-editor-stage{position:absolute;inset:0 0 184px;overflow:hidden;background:#080a08;touch-action:none;user-select:none;-webkit-user-select:none}
    .gallery-editor-image{position:absolute;max-width:none!important;max-height:none!important;transform:translate(-50%,-50%);transform-origin:center center;pointer-events:none;-webkit-user-drag:none}
    .gallery-editor-frame{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:min(82vw,380px);height:138px;border:1px solid rgba(255,255,255,.28);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.34);pointer-events:none}
    .gallery-editor-frame::before{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;border-radius:99px;background:var(--accent);box-shadow:0 0 12px rgba(115,198,87,.75)}
    .gallery-editor-corner{position:absolute;width:34px;height:34px;border-style:solid;border-color:#fff;border-width:0}.gallery-editor-corner.tl{left:-1px;top:-1px;border-left-width:4px;border-top-width:4px;border-radius:17px 0 0 0}.gallery-editor-corner.tr{right:-1px;top:-1px;border-right-width:4px;border-top-width:4px;border-radius:0 17px 0 0}.gallery-editor-corner.bl{left:-1px;bottom:-1px;border-left-width:4px;border-bottom-width:4px;border-radius:0 0 0 17px}.gallery-editor-corner.br{right:-1px;bottom:-1px;border-right-width:4px;border-bottom-width:4px;border-radius:0 0 17px 0}
    .gallery-editor-hint{position:absolute;z-index:4;left:20px;right:20px;bottom:22px;text-align:center;display:grid;gap:4px;text-shadow:0 1px 10px rgba(0,0,0,.9);pointer-events:none}.gallery-editor-hint strong{font-size:17px}.gallery-editor-hint span{font-size:13px;color:rgba(255,255,255,.78)}.gallery-editor-hint .scanner-error{color:#ffd0cb}.gallery-editor-hint .scanner-success{color:#d9ffd0}
    .gallery-editor-footer{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:12px 18px max(18px,env(safe-area-inset-bottom));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.94) 24%);touch-action:manipulation;-webkit-user-select:none;user-select:none}
    .gallery-zoom-controls{display:grid;grid-template-columns:64px 1fr 64px;gap:12px;margin-bottom:10px;touch-action:manipulation}.gallery-zoom-button,.gallery-fit-button{min-height:52px;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(255,255,255,.11);color:#fff;font-weight:850;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}.gallery-zoom-button{font-size:28px}
    .gallery-editor-actions{display:grid;gap:8px;touch-action:manipulation}.gallery-scan-button{min-height:52px;border:0;border-radius:16px;background:var(--accent);color:#fff;font-weight:900;font-size:16px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gallery-other-button{min-height:44px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.09);color:#fff;font-weight:800;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.gallery-scan-button:disabled,.gallery-other-button:disabled,.gallery-zoom-button:disabled,.gallery-fit-button:disabled{opacity:.55}
    .gallery-hidden-reader{position:fixed;left:-10000px;top:0;width:720px;height:420px;overflow:hidden;pointer-events:none;opacity:.01}
    @media(max-width:390px){.gallery-editor-stage{bottom:178px}.gallery-editor-frame{width:86vw;height:124px}.gallery-zoom-controls{grid-template-columns:60px 1fr 60px;gap:10px}}

/* liquid-edit-toggle.js */
.liquid-edit-toggle{display:none;align-items:center;justify-content:space-between;gap:14px;padding:13px 2px;margin:8px 0 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
      .liquid-edit-toggle.visible{display:flex}.liquid-edit-copy{display:grid;gap:2px}.liquid-edit-copy strong{font-size:14px}.liquid-edit-copy small{font-size:12px;line-height:1.35;color:var(--muted)}
      .liquid-edit-switch{position:relative;width:48px;height:28px;flex:0 0 auto}.liquid-edit-switch input{position:absolute;opacity:0;pointer-events:none}.liquid-edit-switch i{position:absolute;inset:0;border-radius:999px;background:#dde3da;transition:.18s}.liquid-edit-switch i:after{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.16);transition:.18s}.liquid-edit-switch input:checked+i{background:#9bcb8c}.liquid-edit-switch input:checked+i:after{transform:translateX(20px)}
      body.edit-entry-modal-open{position:fixed;left:0;right:0;width:100%;overflow:hidden;overscroll-behavior:none}
      #editEntryModal.open{overscroll-behavior:contain;touch-action:none}
      #editEntryModal.open .sheet{touch-action:pan-y;overscroll-behavior:contain}

/* liquid-toggle-polish.js */
.count-liquid-option.liquid-toggle-polished{padding:13px 14px!important;margin:12px 0 10px!important;border:1px solid var(--line)!important;border-radius:16px;background:#f7faf6;align-items:center!important;cursor:pointer}
      .count-liquid-option.liquid-toggle-polished>span:first-child{display:grid;gap:3px;min-width:0}.count-liquid-option.liquid-toggle-polished strong{font-size:14px}.count-liquid-option.liquid-toggle-polished small{font-size:11px!important;line-height:1.35}
      .liquid-switch{position:relative;flex:0 0 auto;width:50px;height:30px}.liquid-switch input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none}.liquid-switch i{position:absolute;inset:0;border-radius:999px;background:#dfe5dc;transition:.18s ease}.liquid-switch i:after{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(31,45,29,.18);transition:.18s ease}.liquid-switch input:checked+i{background:var(--accent)}.liquid-switch input:checked+i:after{transform:translateX(20px)}

/* liquid-tracker.js */
:root{--water:#67bdd8;--water-dark:#2e86a2;--water-soft:#f1f8ee;--water-line:#dcebd6}
      .liquid-card{margin:10px 0 12px;padding:14px 16px;border:1px solid var(--water-line);border-radius:18px;background:#f7faf6;cursor:pointer;box-shadow:0 4px 18px rgba(31,45,29,.045);transition:transform .16s ease,box-shadow .16s ease}
      .liquid-card:active{transform:scale(.995);box-shadow:0 2px 10px rgba(31,45,29,.06)}
      body.liquid-modal-open{overflow:hidden;overscroll-behavior:none}
      .liquid-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.liquid-head strong{font-size:16px}.liquid-icon{margin-right:4px}.liquid-head small{color:var(--water-dark);font-weight:850}
      .liquid-progress{height:8px;border-radius:999px;background:#e6eee3;overflow:hidden;margin:10px 0 8px}.liquid-progress span{display:block;height:100%;background:var(--water);border-radius:999px;transition:width .2s ease}
      .liquid-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.liquid-add-inline{border:0;border-radius:10px;background:#eef5eb;color:var(--text);font:inherit;font-size:12px;font-weight:900;padding:7px 10px;cursor:pointer}.liquid-add-inline:active{transform:scale(.97)}
      .liquid-modal{position:fixed;inset:0;z-index:220;display:none;align-items:flex-end;justify-content:center;background:rgba(20,25,19,.35);backdrop-filter:blur(8px);padding:12px}.liquid-modal.open{display:flex}.liquid-sheet{width:min(520px,100%);max-height:90vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:26px 26px 18px 18px;padding:20px;box-shadow:0 20px 60px rgba(31,45,29,.18)}
      .liquid-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.liquid-kicker{display:block;margin-bottom:5px;color:var(--accent-dark);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.liquid-sheet-head h2{margin:0;font-size:24px;letter-spacing:-.035em}.liquid-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#f7f9f6;color:var(--text);font-size:24px;line-height:1;cursor:pointer}
      .liquid-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 14px}.liquid-preset{min-height:44px;border:1px solid var(--line);border-radius:14px;background:#f7f9f6;color:var(--text);font:inherit;font-weight:850;cursor:pointer}.liquid-preset:active{transform:scale(.98);background:#eef5eb}.liquid-name-presets{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}.liquid-name-preset{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:#f7f9f6;color:var(--text);font:inherit;font-size:13px;font-weight:750;cursor:pointer}.liquid-name-preset:active{transform:scale(.98);background:#eef5eb}
      .liquid-sheet .field input{width:100%}.liquid-history{display:grid;gap:6px;margin-top:14px}.liquid-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:12px}.liquid-history-row form{margin:0}.liquid-history-row button{border:0;background:transparent;color:#a6423c;font-size:18px}
      .count-liquid-option{display:none;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;margin:8px 0;border-top:1px solid var(--line);font-size:13px}.count-liquid-option.visible{display:flex}.count-liquid-option input{width:20px;height:20px}
      .scanner-footer-actions.liquid-enabled{grid-template-columns:repeat(3,minmax(0,1fr))}.scanner-footer-actions.liquid-enabled .manual-trigger{font-size:12px;padding-inline:6px}

/* meal-sections.js */
.meal-day-heading{position:relative;display:flex!important;align-items:center;justify-content:center;min-height:42px;margin-bottom:0!important}
      .meal-day-title{margin:0;text-align:center;white-space:nowrap;font-size:16px;font-weight:900;letter-spacing:-.015em;text-transform:none}
      .meal-day-title.history{color:var(--text)}
      .diary-day-meta{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px 0 12px;min-height:28px}.diary-day-meta.history{justify-content:center}
      .diary-day-meta .pill{flex:0 0 auto}.diary-history-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
      .diary-history-chip{font-size:11px;font-weight:850;color:#8b5a18;background:#fff4d8;border:1px solid #f0d9a9;border-radius:999px;padding:5px 8px;white-space:nowrap}
      .diary-today-link{display:none!important}
      .meal-groups{display:grid;gap:10px;margin-top:7px}
      .meal-group{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 3px 12px rgba(31,45,29,.025)}
      .meal-group-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:58px;padding:9px 10px 9px 14px;background:#eef5eb;border-bottom:1px solid #dfe9db}
      .meal-group.collapsed .meal-group-head{border-bottom:0}
      .meal-group-title{display:grid;gap:2px;min-width:0}
      .meal-group-name{display:flex;align-items:baseline;gap:8px;min-width:0}
      .meal-group-name strong{font-size:17px;font-weight:900;letter-spacing:-.02em;color:var(--text)}
      .meal-group-name small{font-size:11px;color:var(--muted);font-weight:800}
      .meal-group-summary{display:flex;align-items:baseline;gap:8px;min-width:0;white-space:nowrap}
      .meal-group-summary strong{font-size:12px;font-weight:900;color:var(--accent-dark)}
      .meal-group-summary span{font-size:11px;line-height:1.2;color:var(--muted);font-weight:750}
      .meal-collapse,.meal-add{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--text);font:inherit;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}
      .meal-collapse{font-size:18px;font-weight:800}.meal-add{font-size:21px;font-weight:600}
      .meal-collapse:active,.meal-add:active{transform:scale(.94)}
      .meal-list{display:grid;padding:0 12px;overflow:hidden}
      .meal-group.collapsed .meal-list{display:none}
      .meal-list .entry{display:block;width:100%;position:relative;min-height:74px;border-bottom:1px solid var(--line);overflow:visible;padding:0;background:transparent;touch-action:pan-y}
      .meal-list .entry:last-child{border-bottom:0}
      .meal-entry-content{position:relative;z-index:2;display:flex;align-items:center;width:100%;max-width:100%;min-width:0;box-sizing:border-box;gap:12px;min-height:74px;padding:10px 0;background:#fff}
      .meal-list .entry.actions-open .meal-entry-content{transform:none}
      .meal-list .entry .entry-main{display:flex;flex-direction:column;align-items:flex-start;gap:3px;flex:1 1 auto;min-width:0}
      .meal-list .entry .entry-main strong{display:-webkit-box;min-width:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:15px;line-height:1.2;font-weight:650;margin-bottom:0}
      .entry-category-tag{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:3px 8px;border:1px solid;border-radius:999px;font-size:10px;font-weight:900;line-height:1;letter-spacing:.02em;white-space:nowrap}.entry-category-product{border-color:#626a63;background:#626a63;color:#fff}.entry-category-prep{border-color:#efc58d;background:#fff4e4;color:#a46221}.entry-category-dish{border-color:#b9a6d9;background:#f3edfb;color:#73539c}html.diary-entry-tags-disabled .entry-category-tag{display:none!important}.entry-nutrition{display:flex;align-items:center;gap:5px;width:100%;min-width:0;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.25;letter-spacing:-.025em;white-space:nowrap;padding-bottom:1px}.entry-nutrition span{flex:0 0 auto}.entry-nutrition span{flex:0 0 auto}.entry-nutrition span+span:before{content:"·";margin-right:5px;color:#aab3a7}.meal-list .entry .entry-main .muted{font-size:12px;line-height:1.35}
      .meal-entry-side{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}.meal-entry-calories{font-size:18px;font-weight:900;min-width:42px;text-align:right}.entry-more{font-size:25px;flex:0 0 34px}
      .meal-entry-calories{font-size:18px;font-weight:900;min-width:42px;text-align:right}
      .entry-more{width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:23px;line-height:1;display:grid;place-items:center;cursor:pointer;padding:0}
      .entry-more:active{background:#eef1ec}
      .meal-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:0;overflow:hidden;padding:0;opacity:0;visibility:hidden;pointer-events:none;transition:max-height .18s ease,opacity .16s ease,padding .18s ease}
      .meal-list .entry.actions-open .meal-entry-actions{max-height:62px;opacity:1;visibility:visible;pointer-events:auto;padding:0 0 10px;transition-delay:0s}
      .meal-entry-action{border:0;border-radius:13px;font:inherit;font-size:11px;font-weight:850;display:grid;place-items:center;align-content:center;gap:3px;cursor:pointer;text-decoration:none;padding:6px}
      .meal-entry-action.edit{background:#eef2ec;color:var(--text)}
      .meal-entry-action.delete{background:#f9e8e6;color:#a6423c}
      .meal-entry-action span{font-size:17px;line-height:1}
      .meal-entry-action form{display:contents}
      .meal-empty{margin:12px 2px 14px;font-size:12px;color:var(--muted)}
      .meal-choice-field{margin:10px 0 12px}.meal-choice-field select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--text);font:inherit;padding:0 12px}
      .meal-choice-field select:invalid{color:var(--muted)}
      
      body.diary-history-mode .entry-more,body.diary-history-mode .meal-entry-actions{display:none!important}
      @media(max-width:390px){.diary-history-actions{gap:5px}.diary-history-chip{font-size:10px;padding:4px 6px}.diary-today-link{font-size:11px}.meal-group-head{padding-left:12px}.meal-list{padding:0 10px}.meal-entry-content{gap:8px}.entry-nutrition{font-size:9px;gap:3px}.entry-nutrition span+span:before{margin-right:3px}.meal-entry-calories{font-size:16px}}

/* package-suggestion-ux.js */
#foundProductForm .package-suggestions{text-align:center;padding:14px 14px 13px;margin:10px 0 14px}
      #foundProductForm .package-suggestions-title{font-size:12px;line-height:1.35;margin-bottom:10px}
      #foundProductForm .package-suggestion-list{justify-content:center;align-items:center}
      #foundProductForm .package-suggestion-choice{box-shadow:0 3px 10px rgba(31,45,29,.05)}
      #foundProductForm .package-suggestion{min-width:122px;padding:10px 14px;font-size:14px}
      #foundProductForm .package-suggestion small{font-size:10px;margin-top:2px}
      #foundProductForm .package-save{display:block;margin:9px auto 0;text-align:center}

/* product-card-refinements.js */
.product-primary-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
      .product-primary-actions .btn{min-height:54px;padding:8px 6px;border-radius:17px;font-size:13px;line-height:1.1;font-weight:850;white-space:normal}
      .product-primary-actions .btn-primary{background:#eef2ec;color:var(--text);box-shadow:none}.product-primary-actions .btn-primary:first-child{background:#eaf4e6;color:#347d29}.product-primary-actions .drawer-secondary{margin:0}
      .optional-control-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 2px;margin:8px 0;border-top:1px solid var(--line)}.optional-control-copy{display:grid;gap:2px}.optional-control-copy strong{font-size:14px}.optional-control-copy small{font-size:12px;color:var(--muted);line-height:1.35}.optional-control-switch{position:relative;width:48px;height:28px;flex:0 0 auto}.optional-control-switch input{position:absolute;opacity:0;pointer-events:none}.optional-control-switch i{position:absolute;inset:0;border-radius:999px;background:#dde3da;transition:.18s}.optional-control-switch i:after{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.16);transition:.18s}.optional-control-switch input:checked+i{background:#9bcb8c}.optional-control-switch input:checked+i:after{transform:translateX(20px)}.optional-meal-select,.optional-portion-field{margin-top:8px}
      .package-suggestions{margin:8px 0 12px;padding:11px 12px;border-radius:15px;background:#f5f8f3}.package-suggestions-title{font-size:11px;color:var(--muted);font-weight:800;margin-bottom:8px}.package-suggestion-list{display:flex;flex-wrap:wrap;gap:7px}.package-suggestion-choice{display:flex;align-items:stretch;border:1px solid #dce6d8;border-radius:999px;background:#fff;overflow:hidden}.package-suggestion{border:0;background:#fff;padding:8px 10px 8px 11px;color:var(--text);font:inherit;font-size:12px;font-weight:850;cursor:pointer}.package-suggestion small{display:block;font-size:9px;color:var(--muted);font-weight:700;margin-top:1px}.package-suggestion-remove{width:30px;border:0;border-left:1px solid #edf1eb;background:#fff;color:#9a5a54;font:inherit;font-size:17px;cursor:pointer}.package-save{margin-top:8px;border:0;background:transparent;color:#52704a;font:inherit;font-size:11px;font-weight:800;padding:4px 0;cursor:pointer}
      .meal-entry-content{grid-template-columns:minmax(0,1fr) 96px!important;column-gap:12px!important}
      .meal-entry-side{display:grid!important;grid-template-columns:52px 36px!important;align-items:center!important;gap:8px!important;width:96px!important;min-width:96px!important}
      .meal-entry-calories{width:52px!important;min-width:52px!important;text-align:right!important;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
      .entry-more{width:36px!important;min-width:36px!important;height:36px!important}
      .meal-list .entry .entry-main strong{max-width:100%;overflow-wrap:anywhere}
      .meal-list .entry .entry-main .muted{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
      .meal-list .entry.actions-open .meal-entry-content{}
      .meal-entry-actions{width:118px!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;padding:9px 0 9px 6px!important}
      .meal-entry-actions form{display:block!important;margin:0!important;width:54px!important;height:54px!important;flex:0 0 54px!important}
      .meal-entry-action{width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;flex:0 0 54px!important;padding:0!important;border-radius:16px!important;font-size:0!important;display:grid!important;place-items:center!important;align-content:center!important;box-sizing:border-box!important}
      .meal-entry-action span{font-size:23px!important;line-height:1!important;display:block!important}
      .meal-entry-action.edit span{font-size:21px!important}.meal-entry-action.delete span{font-size:29px!important;font-weight:500!important}
      @media(max-width:380px){.product-primary-actions{gap:6px}.product-primary-actions .btn{font-size:12px;padding:7px 4px}.meal-entry-content{grid-template-columns:minmax(0,1fr) 90px!important;column-gap:9px!important}.meal-entry-side{grid-template-columns:48px 34px!important;gap:8px!important;width:90px!important;min-width:90px!important}.meal-entry-calories{width:48px!important;min-width:48px!important}.entry-more{width:34px!important;min-width:34px!important;height:34px!important}.meal-list .entry.actions-open .meal-entry-content{}.meal-entry-actions{width:110px!important;gap:6px!important}.meal-entry-action,.meal-entry-actions form{width:51px!important;height:51px!important;min-width:51px!important;min-height:51px!important;flex-basis:51px!important}}

/* product-card.js */
.product-card-modal{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;background:rgba(25,31,24,.38);backdrop-filter:blur(10px);padding:16px}.product-card-modal.open{display:flex}.product-card-sheet{width:min(620px,100%);max-height:min(760px,88vh);overflow:auto;background:#fff;border-radius:30px;padding:22px;box-sizing:border-box;box-shadow:0 24px 70px rgba(24,31,23,.24)}.product-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.product-card-context{margin:0 0 9px;color:var(--accent-dark);font-size:13px;font-weight:850}.product-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}.product-card-tag{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eef3eb;color:#52634e;font-size:11px;font-weight:850}.product-card-tag.source{background:#f1f2ef;color:#6b7168}.product-card-close{width:42px;height:42px;border:0;border-radius:50%;background:#f2f4f0;font-size:24px;cursor:pointer}.product-card-title{margin:2px 0 5px;font-size:30px;line-height:1.05;letter-spacing:-.03em}.product-card-brand{margin:0;color:var(--muted);font-size:14px}.product-card-macros{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.product-card-macro{padding:12px 8px;border:1px solid var(--line);border-radius:16px;background:#fafbf9;text-align:center}.product-card-macro b{display:block;font-size:18px}.product-card-macro span{font-size:10px;color:var(--muted);font-weight:800}.product-card-package{padding:12px 14px;background:#f6f8f4;border-radius:16px;margin:10px 0 16px}.product-card-package>span{display:block;font-size:11px;color:var(--muted);font-weight:800;margin-bottom:8px}.product-card-package-options{display:flex;flex-wrap:wrap;gap:7px}.product-card-package-choice{display:flex;align-items:stretch;border:1px solid #dce6d8;border-radius:999px;background:#fff;overflow:hidden}.product-card-package-option{border:0;background:transparent;padding:8px 10px 8px 11px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.product-card-package-option small{display:block;font-size:9px;color:var(--muted);font-weight:700}.product-card-package-remove{width:30px;border:0;border-left:1px solid #edf1eb;background:#fff;color:#9a5a54;font:inherit;font-size:17px;cursor:pointer}.product-card-amount{display:grid;gap:6px;margin:12px 0}.product-card-amount span{font-size:13px}.product-card-amount input{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:17px;padding:14px 16px;font:inherit;font-size:22px;font-weight:850;text-align:center}.product-card-save-package{border:0;background:transparent;color:#52704a;font:inherit;font-size:11px;font-weight:800;padding:2px 0 8px;cursor:pointer;text-align:left}.product-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.product-card-action{min-height:54px;border:1px solid var(--line);border-radius:17px;background:#eef2ec;color:var(--text);font:inherit;font-size:13px;font-weight:850;cursor:pointer}.product-card-action.primary{background:#eaf4e6;color:#347d29}.product-card-action:active{transform:scale(.98)}@media(max-width:390px){.product-card-sheet{padding:18px;border-radius:26px}.product-card-title{font-size:27px}.product-card-actions{gap:6px}.product-card-action{font-size:12px;padding:5px}.product-card-macros{gap:5px}.product-card-macro b{font-size:16px}}

/* section-swipe-navigator.js */
.section-swipe-current{position:relative;z-index:3;touch-action:pan-y;overscroll-behavior-x:none;backface-visibility:hidden;transform-origin:center center}.section-swipe-current.is-host-hidden{visibility:hidden;pointer-events:none}.section-swipe-preview{position:fixed;inset:0;z-index:2;display:block;overflow:hidden;overscroll-behavior-x:none;visibility:hidden;pointer-events:none;background:var(--bg,#f5f7f3);transform:translate3d(0,0,0);backface-visibility:hidden;will-change:transform;contain:layout paint style}.section-swipe-preview.is-visible{visibility:visible}.section-swipe-preview.is-route-active{z-index:3;pointer-events:auto}.section-swipe-preview.is-inactive,.section-swipe-preview.is-inactive iframe{pointer-events:none!important}.section-swipe-preview iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;background:var(--bg,#f5f7f3);touch-action:pan-y}.section-swipe-shade{position:absolute;inset:0;z-index:2;display:block;background:transparent;opacity:0;pointer-events:none;will-change:opacity}.section-swipe-current.is-dragging,.section-swipe-preview.is-dragging{transition:none!important}.section-swipe-current.is-card-motion,.section-swipe-preview.is-card-motion{overflow:visible;border-radius:0;background:transparent;box-shadow:none;will-change:transform}.section-swipe-preview.is-card-edge-left,.section-swipe-preview.is-card-edge-right{border-radius:0}.section-swipe-current.is-releasing,.section-swipe-preview.is-releasing{transition:transform var(--jroon-swipe-settle-ms,160ms) cubic-bezier(.22,1,.36,1)!important}.section-swipe-preview.is-releasing .section-swipe-shade{transition:opacity var(--jroon-swipe-settle-ms,160ms) ease-out}.section-swipe-shell-active>.feedback-bug,.section-swipe-shell-active>.feedback-build{display:none!important}.shelf-alpha-products{touch-action:pan-x pan-y}body.section-swipe-active{overflow:hidden;overscroll-behavior-x:none}@media(prefers-reduced-motion:reduce){.section-swipe-current,.section-swipe-preview,.section-swipe-shade{transition:none!important}}

/* shelf-alpha.js */
html,body.shelf-page{max-width:100%!important;overflow-x:hidden!important;overflow-x:clip!important}
      .shelf-page{background:#f5f6f3!important}
      .shelf-shell{display:block!important;width:calc(100% - 28px)!important;max-width:720px!important;min-width:0!important;margin:0 auto!important;padding:18px 0 96px!important;box-sizing:border-box!important;transform:none!important;left:auto!important;right:auto!important}
      .shelf-topbar-core{margin:0 0 18px!important}.shelf-v2-title{font-size:30px!important}.shelf-v2-subtitle{font-size:13px!important}.shelf-share-trigger::before{content:none!important;display:none!important}
      .cabinet.shelf-alpha-cabinet{padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;border-radius:0!important}.cabinet.shelf-alpha-cabinet::before,.cabinet.shelf-alpha-cabinet::after{display:none!important}
      .shelf-alpha-list{display:grid;gap:20px;width:100%}.shelf-alpha-section{background:#fff;border-radius:28px;padding:14px 16px;box-shadow:0 8px 28px rgba(31,45,29,.045);overflow:hidden;min-width:0}.shelf-alpha-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 2px 10px}.shelf-alpha-heading{min-width:0;display:flex;align-items:center;gap:8px}.shelf-alpha-heading h2{margin:0;font-size:18px;line-height:1.15;letter-spacing:-.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelf-alpha-shared{font-size:11px;color:var(--muted)}.shelf-alpha-edit{width:32px;height:32px;margin:-6px 0 -6px -4px;border:0;border-radius:10px;background:transparent;color:#7b8577;font-size:14px;display:grid;place-items:center;cursor:pointer;flex:0 0 auto}.shelf-alpha-edit:active{background:#f1f3ef}
      .shelf-alpha-products{display:flex!important;align-items:flex-start!important;justify-content:flex-start!important;gap:14px!important;overflow-x:auto!important;overflow-y:hidden!important;touch-action:pan-x pan-y!important;padding:2px 2px 8px!important;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.shelf-alpha-products::-webkit-scrollbar{display:none} .shelf-alpha-products>.shelf-object,.shelf-alpha-products>.shelf-empty,.shelf-alpha-products>.shelf-alpha-spacer{flex:0 0 92px!important;min-width:92px!important;height:132px!important;padding:0!important;display:flex!important;align-items:stretch!important;scroll-snap-align:start}
       .shelf-object-button{width:100%!important;height:132px!important;border:0!important;border-radius:18px!important;background:transparent!important;padding:2px 2px 4px!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:center!important;gap:3px!important;overflow:visible!important;box-shadow:none!important}.shelf-object-button:active{background:#f7f9f6!important}.shelf-item-visual{position:relative!important;display:grid!important;place-items:center!important;width:56px!important;height:52px!important;min-width:56px!important;min-height:52px!important;margin:0 auto!important;flex:0 0 52px!important}
      .shelf-item-visual .shelf-item-icon{margin:0!important}
      .shelf-expiry-badge{top:-5px!important;right:-10px!important;min-width:32px!important;min-height:18px!important;padding:2px 5px!important;border-width:2px!important;border-radius:8px!important;font-size:8px!important;box-shadow:0 3px 8px rgba(31,45,29,.13)!important}
      .shelf-item-icon{width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;margin:0 auto!important;border-radius:18px!important;background:#f0f3ee!important;display:grid!important;place-items:center!important;font-size:33px!important;line-height:1!important;filter:none!important;border:0!important;overflow:hidden!important}.shelf-item-icon::before,.shelf-item-icon::after,.shelf-item-icon i,.shelf-item-icon b{display:none!important}.shelf-object-button strong{font-size:11.5px!important;line-height:1.18!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;overflow:hidden!important;height:27px!important;min-height:27px!important;max-width:88px!important;text-align:center!important}.shelf-object-added{display:none!important}.shelf-object-kind{display:none!important}.shelf-object-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:54px!important;height:15px!important;min-height:15px!important;padding:2px 6px!important;box-sizing:border-box!important;border-radius:8px!important;font-size:8px!important;line-height:1!important}.shelf-health{width:82px!important;margin-top:auto!important;display:block!important}.shelf-health-track{height:4px!important;background:#e8ece6!important;border-radius:999px!important;overflow:hidden!important}.shelf-health small{display:block!important;margin-top:5px!important;font-size:10px!important;color:#7a8476!important;font-weight:750!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;text-align:center!important}.shelf-health-track i{background:#6fba50!important}
      .shelf-empty{align-items:flex-start!important;justify-content:center!important}.shelf-empty>span{width:52px!important;height:52px!important;margin:4px auto 0!important;transform:none!important;border-radius:18px!important;border:1px dashed #d7ddd4!important;background:#fafbf9!important;opacity:1!important;display:grid!important;place-items:center!important}.shelf-empty>span b{font-size:23px!important;color:#aab3a6!important;font-weight:500!important}
      .shelf-row-plaque-layer,.shelf-row-plaque,.shelf-name-plaque{display:none!important}.shelf-available.card{margin-top:24px!important;border:0!important;border-radius:28px!important;background:#fff!important;box-shadow:0 8px 28px rgba(31,45,29,.045)!important;padding:16px!important}.shelf-available .section-title{margin:0 0 10px!important}.shelf-available .section-title h2{font-size:18px!important}.shelf-available .section-title p{display:none!important}.shelf-prep-list{margin-top:0!important}.shelf-prep-row{padding:12px 0!important}
      .shelf-alpha-dialog{width:min(400px,calc(100vw - 28px));border:0;border-radius:24px;padding:0;background:#fff;box-shadow:0 30px 90px rgba(20,28,18,.28)}.shelf-alpha-dialog::backdrop{background:rgba(18,25,17,.38)}.shelf-alpha-dialog-body{padding:20px}.shelf-alpha-dialog h2{margin:0 0 14px;font-size:22px}.shelf-alpha-dialog input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:14px;padding:0 12px;font:inherit;font-size:16px;box-sizing:border-box}.shelf-alpha-dialog-actions{display:flex;gap:8px;margin-top:12px}.shelf-alpha-dialog-actions button{flex:1;min-height:44px;border:0;border-radius:14px;font:inherit;font-weight:800}.shelf-alpha-cancel{background:#eef1ec}.shelf-alpha-save{background:var(--accent-dark);color:#fff}
      @media(max-width:390px){.shelf-shell{width:calc(100% - 24px)!important}.shelf-alpha-section{padding:14px;border-radius:26px}.shelf-alpha-products{gap:12px!important}.shelf-alpha-products>.shelf-object,.shelf-alpha-products>.shelf-empty,.shelf-alpha-products>.shelf-alpha-spacer{flex-basis:88px!important;min-width:88px!important}.shelf-item-icon,.shelf-empty>span{width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important}.shelf-object-button strong{max-width:84px!important}}

/* shelf-dialog-lock.js */
body.shelf-dialog-open .cabinet,
    body.shelf-dialog-open .shelf-switcher,
    body.shelf-dialog-open .shelf-topbar,
    body.shelf-dialog-open .shelf-intro,
    body.shelf-dialog-open .shelf-available{pointer-events:none}
    .shelf-dialog[open]{max-height:min(88dvh,760px);overflow:hidden;overscroll-behavior:contain}
    .shelf-dialog[open] .shelf-dialog-body{max-height:calc(min(88dvh,760px) - 56px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}

/* shelf-freshness.js */
.shelf-dialog-freshness{display:grid;gap:10px;margin:10px 0 14px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fafbf9}
      .shelf-expiry-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
      .shelf-expiry-toggle-copy{display:grid;gap:2px}.shelf-expiry-toggle-copy strong{font-size:14px}.shelf-expiry-toggle-copy small{font-size:11px;color:var(--muted);line-height:1.35}
      .shelf-expiry-toggle{position:relative;width:50px;height:30px;flex:0 0 auto;border:0;border-radius:999px;background:#dfe4dd;padding:0;cursor:pointer;transition:background .18s ease}
      .shelf-expiry-toggle::after{content:'';position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(31,45,29,.18);transition:transform .18s ease}
      .shelf-expiry-toggle[aria-checked="true"]{background:var(--accent-dark)}.shelf-expiry-toggle[aria-checked="true"]::after{transform:translateX(20px)}
      .shelf-expiry-fields{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.shelf-expiry-fields[hidden]{display:none!important}
      .shelf-expiry-fields .field{margin:0}.shelf-expiry-fields input{font-size:16px!important}
      .shelf-expiry-fields .btn{min-height:46px}

/* shelf-prep-conversion.js */
.shelf-dialog-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.shelf-dialog-heading-row h2{min-width:0;margin-right:auto}
      .shelf-prep-edit-button{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font:inherit;font-size:19px;font-weight:900;cursor:pointer}.shelf-prep-edit-button[hidden]{display:none}
      .shelf-prep-conversion{display:grid;gap:12px;padding:14px 0 2px;border-top:1px solid var(--line)}.shelf-prep-conversion[hidden]{display:none}
      .shelf-prep-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer}.shelf-prep-switch-copy{display:grid;gap:3px}.shelf-prep-switch-copy strong{font-size:14px}.shelf-prep-switch-copy small{color:var(--muted);font-size:11px;line-height:1.35}
      .shelf-prep-switch{position:relative;flex:0 0 auto;width:50px;height:30px}.shelf-prep-switch input{position:absolute;opacity:0;pointer-events:none}.shelf-prep-switch i{position:absolute;inset:0;border-radius:999px;background:#dfe5dc;transition:.18s ease}.shelf-prep-switch i::after{content:"";position:absolute;width:24px;height:24px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(31,45,29,.18);transition:.18s ease}.shelf-prep-switch input:checked+i{background:var(--accent)}.shelf-prep-switch input:checked+i::after{transform:translateX(20px)}
      .shelf-prep-weight-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shelf-prep-weight-fields[hidden]{display:none}.shelf-prep-weight-fields .field{margin:0}.shelf-prep-weight-note{grid-column:1/-1;margin:0;color:var(--muted);font-size:11px;line-height:1.4}
      .shelf-prep-editor{display:grid;gap:12px;margin:4px 0 14px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#f8faf7}.shelf-prep-editor[hidden]{display:none}.shelf-prep-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shelf-prep-editor-grid .field{margin:0}.shelf-prep-ingredients{display:grid;gap:8px}.shelf-prep-ingredients-title{font-size:12px;font-weight:900;color:var(--muted);letter-spacing:.02em}.shelf-prep-editor-note,.shelf-prep-editor-status{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.shelf-prep-editor-status.error{color:var(--danger)}.shelf-prep-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
      @media(max-width:420px){.shelf-prep-weight-fields,.shelf-prep-editor-grid{grid-template-columns:1fr}.shelf-prep-editor-actions{grid-template-columns:1fr}}


/* Source-owned native settings menu. */
.native-app-toolbar{display:flex;align-items:center;gap:8px}.native-app-menu{position:relative;z-index:81}.native-app-menu summary{list-style:none}.native-app-menu summary::-webkit-details-marker{display:none}.native-app-menu-trigger{width:48px;height:48px;padding:0;display:grid;place-items:center;font-size:21px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 18px rgba(31,45,29,.04);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.native-app-theme-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.native-app-theme-copy{display:grid;gap:3px}.native-app-theme-icon{font-size:21px;line-height:1;flex:0 0 auto}.native-app-menu-popover{position:absolute;right:0;top:calc(100% + 9px);z-index:80;width:min(310px,calc(100vw - 32px));display:grid;gap:7px;padding:11px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 50px rgba(31,45,29,.18);max-height:min(72vh,520px);overflow:auto;overscroll-behavior:contain}.native-app-menu:not([open]) .native-app-menu-popover{display:none}.native-app-menu-label{padding:3px 5px 5px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.native-app-menu-item{width:100%;display:grid;gap:3px;text-align:left;text-decoration:none;border:0;border-radius:14px;padding:12px 13px;background:#f7f9f6;color:var(--text);cursor:pointer;font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.native-app-menu-item strong{font-size:15px}.native-app-menu-item small{font-size:12px;line-height:1.35;color:var(--muted)}.native-app-menu-popover form{margin:0}.native-app-menu-divider{height:1px;background:var(--line);margin:2px 4px}.native-app-menu-danger{color:var(--danger)}body.native-menu-open{overflow:hidden}@media(max-width:759px){.native-app-menu-popover{position:fixed;left:12px;right:12px;top:max(72px,calc(env(safe-area-inset-top) + 58px));width:auto;max-height:calc(100dvh - max(88px,calc(env(safe-area-inset-top) + 76px)));border-radius:22px;padding:12px}.native-app-menu-item{min-height:52px;padding:12px 14px}.native-app-menu-item strong{font-size:16px}.native-app-menu-item small{font-size:12px}}


/* Source-owned diary notice. */
.jroon-toast{position:fixed;left:50%;bottom:112px;transform:translateX(-50%);z-index:90;width:max-content;max-width:calc(100vw - 32px);padding:12px 16px;border-radius:16px;background:#20251f;color:#fff;font-size:14px;font-weight:800;box-shadow:0 12px 36px rgba(31,45,29,.24)}


/* Chromium mobile: keep the expanded action tray in normal flow and above the
   row surface. A translated z-index:2 content layer otherwise intercepts taps. */
.meal-list .entry.actions-open{z-index:3}
.meal-list .entry.actions-open .meal-entry-content{transform:none!important}
.meal-list .entry.actions-open .meal-entry-actions{
  position:relative;
  z-index:4;
  width:100%!important;
  max-height:72px!important;
  overflow:visible;
  padding:0 0 10px!important;
  pointer-events:auto;
}

.product-card-liquid-option{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:12px 14px;border:1px solid #dce8d9;border-radius:16px;background:#f4f8f2;cursor:pointer}.product-card-liquid-option[hidden]{display:none}.product-card-liquid-option span{display:grid;gap:3px}.product-card-liquid-option strong{font-size:13px}.product-card-liquid-option small{color:var(--muted);font-size:11px}.product-card-liquid-option input{width:22px;height:22px;accent-color:var(--accent-dark)}

/* product-card.js */
.product-card-meal-choice{width:min(440px,calc(100% - 24px));padding:0;border:0;border-radius:24px;background:transparent;color:var(--text);box-shadow:0 20px 60px rgba(31,45,29,.2)}
.product-card-meal-choice::backdrop{background:rgba(31,45,29,.28)}
.product-card-meal-choice-sheet{display:grid;gap:14px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:24px}
.product-card-meal-choice-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.4}
.product-card-meal-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.product-card-meal-choice-grid .product-card-action{min-height:48px}
@media(max-width:420px){.product-card-meal-choice-grid{grid-template-columns:1fr}}

html.section-swipe-frame-active{width:100%!important;height:100%!important;overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}body.section-swipe-shell-active{width:100%!important;height:100%!important;overflow:hidden!important;overscroll-behavior:none!important;touch-action:none!important}

/* Entry actions: one roomy modal instead of an inline mobile tray. */
.entry-open-modal{cursor:pointer}
.entry-open-modal:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:12px}
.entry-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.entry-edit-grid .field{margin:0}
.edit-entry-liquid{display:flex;align-items:center;gap:8px;margin:12px 0;color:var(--muted);font-size:13px;font-weight:700}
.edit-entry-liquid input{accent-color:var(--accent)}
.entry-modal-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.entry-modal-actions .btn{min-height:44px;padding:8px 6px;font-size:13px}
.entry-modal-actions .btn-danger{background:#fff0ee;color:#a94139;border-color:#f4c7c2}
#entryFavoriteButton.active{background:#fff5d5;color:#9b7300;border-color:#edcf72}
.product-card-quantity{display:grid;grid-template-columns:minmax(0,1fr) minmax(116px,.62fr);gap:10px;align-items:end}
.product-card-quantity .product-card-amount{margin:0}
.product-card-quantity.restaurant-quantity{grid-template-columns:1fr}
.product-card-unit[hidden],.product-card-save-package[hidden],.product-card-action[hidden]{display:none!important}
.product-card-unit{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--muted)}
.product-card-unit select{min-height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 12px;font:inherit;color:var(--ink)}
@media(max-width:420px){.entry-edit-grid{grid-template-columns:1fr}.entry-modal-actions{grid-template-columns:1fr}.product-card-quantity{grid-template-columns:1fr 1fr}}

/* Diary entry modal refinements. */
.entry-modal-heading{align-items:center}
.entry-modal-heading-actions{display:flex;align-items:center;gap:8px}
.entry-favorite-button{width:44px;height:44px;padding:0;border:1px solid #e8d38a;border-radius:50%;background:#fff8dc;color:#a27400;font:900 28px/1 system-ui;display:grid;place-items:center;cursor:pointer}
.entry-favorite-button.active{background:#ffeaa8;color:#956700}
.entry-favorite-button:active{transform:scale(.94)}
.entry-favorite-button[hidden]{display:none}
.edit-entry-liquid{position:relative;min-height:32px}
.edit-entry-liquid input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.liquid-toggle-track{position:relative;display:inline-block;flex:0 0 46px;width:46px;height:26px;border-radius:999px;background:#d9dfd5;transition:background .18s ease;cursor:pointer}
.liquid-toggle-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(31,45,29,.22);transition:transform .18s ease}
.edit-entry-liquid input:checked + .liquid-toggle-track{background:var(--accent)}
.edit-entry-liquid input:checked + .liquid-toggle-track::after{transform:translateX(20px)}


.feedback-bug[hidden],body.feedback-open .feedback-bug{display:none}

/* Diary meal-card contract — issues #357 and #369 */
[data-diary-day-card]{
  --meal-line:#E1E8DF;
  --meal-ink:#191D18;
  --meal-muted:#6F786C;
  --meal-filled:#F4F8F2;
  --meal-empty:#FAFCF9;
  container-type:inline-size;
  max-width:100%;
  padding:16px;
  border-radius:28px;
  box-sizing:border-box;
  overflow:visible;
}
.meal-groups{gap:12px;margin-top:8px}
.meal-group{
  --meal-accent:#6F786C;
  width:100%;
  max-width:100%;
  border:1px solid var(--meal-line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 4px 16px rgba(31,45,29,.035);
  box-sizing:border-box;
  overflow:hidden;
}
.meal-group-breakfast{--meal-accent:#3E9B36}
.meal-group-lunch{--meal-accent:#C8780A}
.meal-group-dinner{--meal-accent:#7252D6}
.meal-group-snack{--meal-accent:#CC4B6A}
.meal-group-head{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 44px;
  align-items:center;
  gap:12px;
  min-height:92px;
  padding:12px 14px;
  border-bottom:1px solid var(--meal-line);
  background:var(--meal-filled);
  box-sizing:border-box;
}
.meal-group.is-empty .meal-group-head{
  min-height:72px;
  border-bottom:0;
  background:var(--meal-empty);
}
.meal-group-icon{
  display:block;
  width:48px;
  height:48px;
  object-fit:contain;
  filter:none;
}
.meal-group-title.meal-collapse{
  width:100%;
  height:auto;
  min-width:0;
  min-height:44px;
  display:grid;
  align-content:center;
  justify-items:stretch;
  gap:4px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--meal-ink);
  text-align:left;
  font:inherit;
  cursor:pointer;
  transform:none;
}
.meal-group-title.meal-collapse:active{transform:none}
.meal-group-title.meal-collapse:disabled{cursor:default;opacity:1}
.meal-group-name{display:flex;align-items:center;gap:6px;min-width:0}
.meal-group-name strong{
  min-width:0;
  color:var(--meal-ink);
  font-size:20px;
  line-height:26px;
  font-weight:780;
  letter-spacing:-.02em;
}
.meal-group-name small{
  min-width:20px;
  min-height:20px;
  display:inline-grid;
  place-items:center;
  padding:1px 6px;
  border-radius:999px;
  background:#E9EEE7;
  color:#586253;
  font-size:12px;
  line-height:16px;
  font-weight:700;
  box-sizing:border-box;
}
.meal-group-name small:empty{display:none}
.meal-collapse-icon{
  flex:0 0 auto;
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  color:var(--meal-muted);
  font-size:16px;
  line-height:1;
}
.meal-collapse-icon[hidden]{display:none}
.meal-group-summary{
  min-width:0;
  display:grid;
  gap:3px;
  color:var(--meal-muted);
  white-space:normal;
}
.meal-group-summary[hidden]{display:none}
.meal-group-summary>strong{
  color:var(--meal-ink);
  font-size:16px;
  line-height:20px;
  font-weight:750;
  white-space:nowrap;
}
.meal-macros{
  display:flex;
  flex-wrap:wrap;
  gap:0 7px;
  color:var(--meal-muted);
  font-size:13px;
  line-height:18px;
  font-weight:600;
}
.meal-macros>span{white-space:nowrap}
.meal-macros>span+span::before{content:"·";margin-right:7px;color:#9AA397}
.meal-empty-label{color:var(--meal-muted);font-size:13px;line-height:18px;font-weight:600}
.meal-add{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--meal-line);
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 8px rgba(31,45,29,.04);
  color:#20241F;
  font:700 22px/1 system-ui;
}
.meal-add:active{transform:scale(.96);background:#F6F8F5}
.meal-group.is-empty .meal-list{display:none}
.meal-group.collapsed .meal-list{display:none}
.meal-list{
  display:grid;
  padding:0 14px;
  overflow:visible;
  background:#fff;
}
.meal-list .entry{
  display:block;
  width:100%;
  min-height:0;
  padding:0;
  border-bottom:1px solid var(--meal-line);
  background:#fff;
  overflow:visible;
  box-sizing:border-box;
}
.meal-list .entry:last-child{border-bottom:0}
.meal-entry-content{
  position:relative;
  z-index:2;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:88px;
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-content:center;
  align-items:start;
  gap:4px 12px!important;
  padding:12px 0;
  background:#fff;
  box-sizing:border-box;
  cursor:pointer;
}
.meal-list .entry .entry-main{
  min-width:0;
  display:grid;
  justify-items:start;
  align-content:start;
  gap:4px;
}
.meal-list .entry .entry-main strong{
  width:100%;
  min-width:0;
  display:block;
  margin:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:var(--meal-ink);
  font-size:17px;
  line-height:22px;
  font-weight:720;
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
}
.entry-category-tag{
  width:max-content;
  max-width:100%;
  min-height:20px;
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border:0;
  border-radius:999px;
  background:#E9EEE7;
  color:#586253;
  font-size:12px;
  line-height:16px;
  font-weight:600;
  letter-spacing:0;
  box-sizing:border-box;
  white-space:nowrap;
}
.entry-category-product,.entry-category-prep,.entry-category-dish{
  border:0;
  background:#E9EEE7;
  color:#586253;
}
.meal-entry-side{
  width:auto!important;
  min-width:max-content!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  justify-items:end;
  align-content:start;
  row-gap:4px!important;
  column-gap:0!important;
  margin:0!important;
  overflow:visible;
}
.meal-entry-quantity{
  color:var(--meal-muted);
  font-size:13px;
  line-height:18px;
  font-weight:500;
  white-space:nowrap;
}
.meal-entry-calories{
  min-width:0;
  color:var(--meal-ink);
  font-size:17px;
  line-height:22px;
  font-weight:780;
  text-align:right;
  white-space:nowrap;
}
.meal-entry-content>.entry-nutrition{
  grid-column:1/-1;
  width:100%;
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0 7px;
  padding:0;
  overflow:visible;
  color:var(--meal-muted);
  font-size:13px;
  line-height:18px;
  font-weight:600;
  letter-spacing:0;
  white-space:normal;
}
.meal-entry-content>.entry-nutrition>span{flex:0 0 auto;white-space:nowrap}
.meal-entry-content>.entry-nutrition>span+span::before{content:"·";margin-right:7px;color:#9AA397}
.meal-entry-content:focus-visible{
  outline:3px solid color-mix(in srgb,var(--meal-accent) 34%,transparent);
  outline-offset:-3px;
  border-radius:12px;
}
@container (max-width:340px){
  .meal-group-head{grid-template-columns:40px minmax(0,1fr) 44px;gap:8px;padding:10px 8px}
  .meal-group-icon{width:40px;height:40px}
  .meal-group-name strong{font-size:18px;line-height:24px}
  .meal-list{padding:0 12px}
  .meal-entry-content{gap:4px 8px}
  .meal-list .entry .entry-main strong{font-size:16px;line-height:22px}
}
@media(max-width:360px){
  [data-diary-day-card]{padding:8px;border-radius:28px}
  .meal-group{border-radius:20px}
}
@media(prefers-reduced-motion:reduce){
  .meal-add{transition:none}
}

/* Issue #366: one host-owned blocking loading overlay. */
.jroon-loading-overlay{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:max(20px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  background:rgba(28,36,27,.42);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  box-sizing:border-box;
}
.jroon-loading-overlay[hidden]{display:none!important}
.jroon-loading-card{
  width:min(100%,360px);
  display:grid;
  justify-items:center;
  gap:10px;
  padding:24px 20px 20px;
  border:1px solid rgba(80,99,75,.12);
  border-radius:24px;
  background:#fff;
  color:#263224;
  box-shadow:0 20px 60px rgba(22,30,21,.2);
  text-align:center;
  outline:none;
}
.jroon-loading-spinner{
  width:42px;
  height:42px;
  border:4px solid #dfe8dc;
  border-top-color:#6f8f65;
  border-radius:50%;
  animation:jroon-loading-spin .85s linear infinite;
}
.jroon-loading-stage{
  margin:2px 0 0;
  color:#70806c;
  font-size:13px;
  line-height:18px;
  font-weight:750;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.jroon-loading-message{
  margin:0;
  max-width:30ch;
  color:#263224;
  font-size:20px;
  line-height:26px;
  font-weight:800;
}
.jroon-loading-reference{
  margin:0;
  color:#6a7466;
  font-size:13px;
  line-height:18px;
  overflow-wrap:anywhere;
}
.jroon-loading-cancel{
  min-width:120px;
  min-height:44px;
  margin-top:4px;
  padding:10px 16px;
  border:1px solid #d8e0d5;
  border-radius:14px;
  background:#f4f7f2;
  color:#42513f;
  font:inherit;
  font-weight:750;
  cursor:pointer;
}
.jroon-loading-overlay.is-error .jroon-loading-spinner{display:none}
.jroon-loading-overlay.is-error .jroon-loading-stage{color:#9a473f}
body.jroon-loading-open{overflow:hidden!important;touch-action:none}
@keyframes jroon-loading-spin{to{transform:rotate(360deg)}}
@media(max-width:360px){
  .jroon-loading-overlay{padding-left:12px;padding-right:12px}
  .jroon-loading-card{padding:22px 16px 18px;border-radius:20px}
  .jroon-loading-message{font-size:18px;line-height:24px}
}
@media(prefers-reduced-motion:reduce){
  .jroon-loading-spinner{animation-duration:1.8s}
}


/* JBR-107: sequential package entry */
.product-card-package-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:66px;padding:12px 14px;border:1px solid var(--line,#dce3d9);border-radius:18px;background:var(--surface-soft,#f6f8f4);cursor:pointer}
.product-card-package-toggle>span:first-child{display:grid;gap:4px;text-align:left}
.product-card-package-toggle strong{color:var(--ink,#17201a);font-size:14px;line-height:1.25}
.product-card-package-toggle small{color:var(--muted,#737d73);font-size:11px;line-height:1.3}
.product-card-switch{position:relative;flex:0 0 auto;width:48px;height:28px}
.product-card-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.product-card-switch i{display:block;width:48px;height:28px;border-radius:999px;background:#cfd6cd;transition:background .16s ease;pointer-events:none}
.product-card-switch i::after{content:"";display:block;width:22px;height:22px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(24,39,27,.2);transition:transform .16s ease}
.product-card-switch input:checked+i{background:var(--accent,#4ba83d)}
.product-card-switch input:checked+i::after{transform:translateX(20px)}
.product-card-switch input:focus-visible+i{outline:3px solid rgba(75,168,61,.24);outline-offset:2px}
.product-card-package-count{display:grid;gap:8px}
.product-card-package-count>span{color:var(--muted,#697469);font-size:13px;font-weight:700}
.product-card-count-stepper{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;min-height:50px;border:1px solid var(--line,#dce3d9);border-radius:17px;overflow:hidden;background:#fff}
.product-card-count-stepper button{min-width:48px;min-height:48px;border:0;background:var(--surface-soft,#f4f7f2);color:var(--ink,#17201a);font:inherit;font-size:24px;font-weight:700;cursor:pointer}
.product-card-count-stepper button:active{background:#e8f2e4}
.product-card-count-stepper input{width:100%;min-width:0;min-height:48px;border:0;border-inline:1px solid var(--line,#dce3d9);border-radius:0;background:#fff;color:var(--ink,#17201a);font:inherit;font-size:20px;font-weight:800;text-align:center;appearance:textfield}
.product-card-count-stepper input::-webkit-inner-spin-button,.product-card-count-stepper input::-webkit-outer-spin-button{appearance:none;margin:0}
.product-card-save-package{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px!important;padding:10px 14px!important;border:1px solid var(--line,#dce3d9)!important;border-radius:15px!important;background:var(--surface-soft,#f4f7f2)!important;color:#42683a!important;font-size:13px!important;font-weight:800!important;text-align:center!important}
.product-card-save-package>span:first-child{font-size:20px;line-height:1}
.product-card-package-count[hidden],.product-card-package-toggle[hidden]{display:none!important}

/* JBR-116: unified nutrition summary and compact unit picker. */
:root{
  --jroon-control-height:52px;
  --jroon-control-radius:17px;
  --jroon-unit-picker-width:152px;
}
.jroon-unit-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  margin:-1px!important;
  padding:0!important;
  border:0!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  pointer-events:none!important;
}
.jroon-unit-picker{
  width:var(--jroon-unit-picker-width);
  min-height:var(--jroon-control-height);
  display:grid;
  grid-template-columns:repeat(3,minmax(44px,1fr));
  border:1px solid var(--line);
  border-radius:var(--jroon-control-radius);
  background:#f5f8f3;
  overflow:hidden;
}
.jroon-unit-picker button{
  min-width:44px;
  min-height:50px;
  padding:0 7px;
  border:0;
  border-left:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  font:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
.jroon-unit-picker button:first-child{border-left:0}
.jroon-unit-picker button.active{
  position:relative;
  z-index:1;
  background:#eaf4e6;
  color:var(--accent-dark);
  box-shadow:inset 0 0 0 2px var(--accent-dark);
}
.jroon-unit-picker button:focus-visible{
  position:relative;
  z-index:2;
  outline:3px solid rgba(79,159,55,.28);
  outline-offset:-3px;
}
.jroon-unit-picker button:disabled{opacity:.38;cursor:not-allowed}
.product-card-quantity{
  grid-template-columns:minmax(0,1fr) var(--jroon-unit-picker-width);
  align-items:end;
}
.product-card-amount input{min-height:var(--jroon-control-height)}
.product-card-unit{position:relative;display:grid;gap:6px}
.product-card-unit>span{font-size:13px;font-weight:500;color:var(--text)}
.entry-modal-macros{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:14px 0 16px;
}
.entry-modal-macros-caption{
  grid-column:1/-1;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
}
.entry-modal-macro{
  min-width:0;
  padding:11px 5px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fafbf9;
  text-align:center;
}
.entry-modal-macro b{
  display:block;
  overflow:hidden;
  color:var(--text);
  font-size:17px;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
  text-overflow:ellipsis;
}
.entry-modal-macro span{
  display:block;
  margin-top:4px;
  overflow-wrap:anywhere;
  color:var(--muted);
  font-size:9px;
  line-height:1.1;
  font-weight:800;
}
.entry-edit-grid{
  grid-template-columns:minmax(0,1fr) var(--jroon-unit-picker-width);
  align-items:end;
}
.entry-edit-grid .entry-meal-field{grid-column:1/-1}
.entry-edit-grid .field input,
.entry-edit-grid .field select{min-height:var(--jroon-control-height)}
.entry-unit-field{position:relative}
.entry-unit-field>span{font-size:13px}
@media(max-width:420px){
  .entry-edit-grid{grid-template-columns:minmax(0,1fr) var(--jroon-unit-picker-width)}
}
@media(max-width:350px){
  :root{--jroon-unit-picker-width:144px}
  .product-card-quantity,
  .entry-edit-grid{grid-template-columns:1fr}
  .entry-unit-field,
  .product-card-unit{justify-items:start}
}

.entry-edit-grid.restaurant-quantity{grid-template-columns:1fr}
.entry-edit-grid.restaurant-quantity .entry-amount-field{grid-column:1/-1}


/* JBR-124: independent meal-colour oval totals; no enclosing semi-square surface. */
.meal-entry-side{
  width:122px!important;
  min-width:122px!important;
  display:flex!important;
  flex-direction:column;
  align-items:flex-end!important;
  justify-content:center;
  gap:5px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  box-sizing:border-box;
}
.meal-entry-quantity,
.meal-entry-calories{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content!important;
  max-width:122px;
  box-sizing:border-box;
  border-radius:999px;
  text-align:center!important;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.meal-entry-quantity{
  min-width:58px!important;
  min-height:26px;
  padding:3px 10px;
  border:1px solid color-mix(in srgb,var(--meal-accent) 22%,#e6ebe3);
  background:color-mix(in srgb,var(--meal-accent) 8%,#fff);
  color:color-mix(in srgb,var(--meal-accent) 58%,#596357);
  font-size:12px;
  line-height:18px;
  font-weight:650;
}
.meal-entry-calories{
  min-width:96px!important;
  min-height:34px;
  padding:6px 11px;
  border:1px solid color-mix(in srgb,var(--meal-accent) 30%,#e6ebe3);
  background:color-mix(in srgb,var(--meal-accent) 13%,#fff);
  color:color-mix(in srgb,var(--meal-accent) 30%,#20251f);
  box-shadow:0 3px 10px color-mix(in srgb,var(--meal-accent) 10%,transparent);
  font-size:15px;
  line-height:20px;
  font-weight:800;
  letter-spacing:-.02em;
}
@container (max-width:340px){
  .meal-entry-side{width:112px!important;min-width:112px!important}
  .meal-entry-quantity{min-width:54px!important;padding-inline:8px;font-size:11px}
  .meal-entry-calories{min-width:92px!important;max-width:112px;padding-inline:9px;font-size:14px;line-height:19px}
}

/* JBR-127: calm, explicit target overage indicators. */
.target-overage{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  width:max-content;
  max-width:100%;
  margin:6px auto 0;
  padding:4px 8px;
  border:1px solid #efd9c2;
  border-radius:999px;
  background:#fff6ea;
  color:#945d2f!important;
  font-size:10px!important;
  line-height:14px!important;
  font-weight:800!important;
  letter-spacing:-.01em;
  white-space:normal;
  text-align:center;
}
.macro .target-overage{
  display:grid!important;
  grid-template-rows:auto auto;
  width:min(100%,96px);
  min-height:36px;
  margin-top:6px;
  padding:3px 6px;
  border-radius:12px;
  line-height:12px!important;
}
.macro .target-overage span{display:block}
.target-overage-calories{
  margin-top:9px!important;
  padding:5px 10px;
  font-size:11px!important;
  line-height:15px!important;
}
@media(max-width:350px){
  .macro{padding-inline:8px}
  .target-overage{padding-inline:6px;font-size:9px!important}
}

/* JBR-120: local PNG meal sharing. */
.meal-footer-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  margin:4px 14px 14px;
}
.meal-group.collapsed>.meal-footer-actions{display:none}
.meal-share-open{
  width:100%;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0;
  padding:11px 16px;
  border:1px solid #dce7d9;
  border-radius:16px;
  background:#f2f8ef;
  color:#3d7836;
  font:750 15px/20px system-ui,sans-serif;
  cursor:pointer;
}
.meal-share-open span{font-size:20px;line-height:1}
.meal-share-open:active{transform:scale(.985);background:#eaf5e6}
.meal-share-open:focus-visible{outline:3px solid rgba(100,201,77,.32);outline-offset:2px}
@font-face{
  font-family:"Jroon Share Display";
  src:url("/static/fonts/Rubik-VariableFont_wght.ttf") format("truetype");
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
}
.meal-share-dialog{
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  overflow:hidden;
}
.meal-share-dialog::backdrop{
  background:rgba(31,38,30,.5);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}
.meal-share-sheet{
  position:absolute;
  left:50%;
  bottom:0;
  width:min(100%,620px);
  max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));
  display:grid;
  grid-template-rows:auto auto minmax(180px,1fr) auto auto;
  gap:14px;
  padding:20px 18px max(18px,env(safe-area-inset-bottom));
  border:1px solid rgba(78,97,73,.12);
  border-radius:30px 30px 0 0;
  background:#fff;
  box-shadow:0 -18px 60px rgba(24,33,23,.2);
  box-sizing:border-box;
  transform:translateX(-50%);
  overflow:auto;
  overscroll-behavior:contain;
}
.meal-share-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.meal-share-kicker{
  display:block;
  margin-bottom:2px;
  color:#778274;
  font-size:12px;
  line-height:16px;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.meal-share-head h2{margin:0;color:#20251f;font-size:26px;line-height:32px}
.meal-share-close{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:#f0f4ee;
  color:#20251f;
  font:500 30px/1 system-ui,sans-serif;
}
.meal-share-layouts{
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:4px;
  border-radius:16px;
  background:#eef3ec;
}
.meal-share-layouts button{
  min-height:42px;
  padding:9px 14px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:#687364;
  font:750 15px/20px system-ui,sans-serif;
}
.meal-share-layouts button.is-active{
  background:#fff;
  color:#2f7330;
  box-shadow:0 2px 8px rgba(31,47,29,.09);
}
.meal-share-preview{
  min-height:210px;
  display:grid;
  place-items:center;
  padding:12px;
  border:1px solid #dfe6dc;
  border-radius:20px;
  background-color:#f5f6f4;
  background-image:linear-gradient(45deg,#e7eae5 25%,transparent 25%),linear-gradient(-45deg,#e7eae5 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e7eae5 75%),linear-gradient(-45deg,transparent 75%,#e7eae5 75%);
  background-position:0 0,0 10px,10px -10px,-10px 0;
  background-size:20px 20px;
  overflow:auto;
  box-sizing:border-box;
}
.meal-share-preview canvas{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:52dvh;
  object-fit:contain;
  filter:drop-shadow(0 8px 16px rgba(29,42,27,.12));
}
.meal-share-status{
  min-height:18px;
  margin:0;
  color:#778274;
  font-size:12px;
  line-height:18px;
  text-align:center;
}
.meal-share-send{
  width:100%;
  min-height:54px;
  padding:14px 18px;
  border:0;
  border-radius:18px;
  background:#64c94d;
  color:#fff;
  font:800 18px/24px system-ui,sans-serif;
  box-shadow:0 8px 20px rgba(74,151,61,.2);
}
.meal-share-send:disabled{opacity:.6}
body.meal-share-open{overflow:hidden!important}
@media(min-width:700px){
  .meal-share-sheet{
    top:50%;
    bottom:auto;
    max-height:calc(100dvh - 48px);
    border-radius:30px;
    transform:translate(-50%,-50%);
  }
}
@media(max-width:360px){
  .meal-share-sheet{gap:11px;padding:16px 12px max(14px,env(safe-area-inset-bottom));border-radius:24px 24px 0 0}
  .meal-share-preview{padding:8px;border-radius:16px}
}
@media(prefers-reduced-motion:reduce){
  .meal-share-caption-control i,.meal-share-caption-control i::after{transition:none}
}


/* JBR-143: elastic pull-to-refresh for the three core live pages. */
html.jroon-pull-refresh-enabled,
html.jroon-pull-refresh-enabled body{
  overscroll-behavior-y:contain;
}
.jroon-pull-refresh-reveal{
  position:fixed;
  z-index:0;
  inset:0 0 auto;
  height:var(--jroon-pull-distance,0px);
  overflow:hidden;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 16px,rgba(255,255,255,.9),transparent 70%),
    linear-gradient(180deg,#eaf6e5 0%,#f5f8f3 100%);
  opacity:0;
  transition:opacity .12s ease,height .02s linear;
}
body.jroon-pull-refresh-active .jroon-pull-refresh-reveal,
body.jroon-pull-refreshing .jroon-pull-refresh-reveal{opacity:1}
body.jroon-pull-refresh-active [data-jroon-pull-surface],
body.jroon-pull-refresh-resetting [data-jroon-pull-surface],
body.jroon-pull-refreshing [data-jroon-pull-surface]{
  position:relative;
  z-index:1;
  transform:translate3d(0,var(--jroon-pull-distance,0px),0);
  will-change:transform;
}
body.jroon-pull-refresh-resetting [data-jroon-pull-surface],
body.jroon-pull-refreshing [data-jroon-pull-surface]{
  transition:transform .26s cubic-bezier(.22,1,.36,1);
}
body.jroon-pull-refresh-resetting .jroon-pull-refresh-reveal{
  transition:height .26s cubic-bezier(.22,1,.36,1),opacity .2s ease;
}
.jroon-pull-refresh{
  position:fixed;
  z-index:1550;
  top:max(8px,env(safe-area-inset-top));
  left:50%;
  width:var(--jroon-pull-size,34px);
  height:var(--jroon-pull-size,34px);
  display:grid;
  place-items:center;
  opacity:0;
  pointer-events:none;
  transform:translate3d(-50%,-58px,0) scale(.68);
  transform-origin:center;
  will-change:transform,opacity,width,height;
}
.jroon-pull-refresh.is-resetting,
.jroon-pull-refresh.is-refreshing{
  transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .18s ease,width .18s ease,height .18s ease;
}
.jroon-pull-refresh-ring{
  position:relative;
  width:100%;
  height:100%;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  padding:4px;
  border-radius:50%;
  background:conic-gradient(#62b84b var(--jroon-pull-angle,0deg),rgba(98,184,75,.16) 0);
  box-shadow:0 5px 16px rgba(44,74,37,.16);
}
.jroon-pull-refresh-ring::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(79,159,55,.1);
}
.jroon-pull-refresh-ring img{
  position:relative;
  z-index:1;
  display:block;
  width:calc(100% - 6px);
  height:calc(100% - 6px);
  object-fit:contain;
  filter:drop-shadow(0 2px 3px rgba(117,76,20,.18));
}
.jroon-pull-refresh.is-armed .jroon-pull-refresh-ring{
  background:conic-gradient(#4f9f37 360deg,rgba(98,184,75,.16) 0);
  box-shadow:0 6px 19px rgba(79,159,55,.24);
}
.jroon-pull-refresh.is-refreshing .jroon-pull-refresh-ring{
  animation:jroon-pull-refresh-ring-spin .72s linear infinite;
}
.jroon-pull-refresh.is-refreshing .jroon-pull-refresh-ring img{
  animation:jroon-pull-refresh-coin-spin .86s cubic-bezier(.4,0,.2,1) infinite;
}
.jroon-pull-refresh-label{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
html.jroon-night .jroon-pull-refresh-reveal{
  background:linear-gradient(180deg,#202920,#192019);
}
html.jroon-night .jroon-pull-refresh-ring::before{background:#202920}
@keyframes jroon-pull-refresh-ring-spin{to{transform:rotate(360deg)}}
@keyframes jroon-pull-refresh-coin-spin{
  0%{transform:rotateY(0deg) scale(1)}
  50%{transform:rotateY(180deg) scale(.88)}
  100%{transform:rotateY(360deg) scale(1)}
}
@media(prefers-reduced-motion:reduce){
  body.jroon-pull-refresh-resetting [data-jroon-pull-surface],
  body.jroon-pull-refreshing [data-jroon-pull-surface],
  .jroon-pull-refresh.is-resetting,
  .jroon-pull-refresh.is-refreshing{transition-duration:.12s}
  .jroon-pull-refresh.is-refreshing .jroon-pull-refresh-ring{animation-duration:1.5s}
  .jroon-pull-refresh.is-refreshing .jroon-pull-refresh-ring img{animation:none}
}
