:root{--card-radius:18px;--shadow:0 8px 30px rgba(30,41,59,.07)}
body{background:#f7f8fb;color:#162032}.navbar-brand{font-weight:800;letter-spacing:-.03em}.app-card{border:0;border-radius:var(--card-radius);box-shadow:var(--shadow);background:#fff}.stat{font-size:1.7rem;font-weight:800;letter-spacing:-.04em}.muted{color:#7a8699}.thumb{width:64px;height:64px;border-radius:14px;object-fit:cover;background:#eef1f5}.hero-thumb{width:100%;height:190px;border-radius:16px;object-fit:cover}.table>tbody>tr>td{vertical-align:middle}.nav-link.active{font-weight:700}.nutri-pill{background:#eef3ff;border-radius:999px;padding:.28rem .55rem;font-size:.8rem;white-space:nowrap}.ingredient-row{background:#fafbfc;border:1px solid #eef0f3;border-radius:14px;padding:.75rem;margin-bottom:.6rem}.form-control,.form-select{border-radius:12px}.btn{border-radius:12px}.progress{height:8px;border-radius:8px}.small-label{font-size:.78rem;color:#728096;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.sidebar-note{background:linear-gradient(135deg,#f2f6ff,#f8f5ff);border-radius:16px;padding:1rem}.image-strip{display:flex;gap:.5rem;overflow:auto}.image-strip img{width:110px;height:90px;object-fit:cover;border-radius:12px}@media(max-width:768px){.stat{font-size:1.35rem}.desktop-only{display:none}}

/* Deletion UX: master data gets visible red actions, transient rows use quiet grey × buttons. */
.btn-icon-subtle{border:0;background:transparent;color:#9aa3b2;border-radius:999px;width:34px;height:34px;padding:0;display:inline-grid;place-items:center;font-size:1.2rem;line-height:1;transition:.15s ease}
.btn-icon-subtle:hover{background:#eef1f5;color:#4b5563}
.btn-icon-xs{width:25px;height:25px;font-size:1rem}
.photo-wrap{position:relative;flex:0 0 auto}
.photo-wrap img{display:block}
.photo-delete{position:absolute;right:5px;top:5px;border:0;border-radius:999px;width:24px;height:24px;line-height:20px;background:rgba(255,255,255,.9);color:#6b7280;box-shadow:0 2px 8px rgba(15,23,42,.16)}
.photo-delete:hover{background:#fff;color:#dc3545}
.manual-entry-list{background:#fafbfc;border-radius:12px;padding:.35rem .6rem}

/* In-app confirmation modal: no browser-native confirm dialogs. */
.app-confirm-modal{border:0;border-radius:22px;box-shadow:0 24px 70px rgba(15,23,42,.18)}
.app-confirm-modal .modal-body{border-radius:22px}
.confirm-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#fff0f1;color:#dc3545;font-size:1.3rem}
.modal-backdrop.show{opacity:.34}

/* Multiple photos + explicit summary/cover photo selection. */
.cover-photo-grid{display:flex;flex-wrap:wrap;gap:10px}
.cover-photo-card{position:relative;width:132px;height:112px;border:2px solid transparent;border-radius:15px;padding:0;background:#f1f3f6;overflow:hidden;transition:.15s ease;cursor:pointer}
.cover-photo-card>img{width:100%;height:100%;object-fit:cover;display:block}
.cover-photo-card.selected{border-color:#0d6efd;box-shadow:0 0 0 3px rgba(13,110,253,.1)}
.cover-select{position:absolute;left:7px;bottom:7px;border:0;border-radius:999px;background:rgba(255,255,255,.93);color:#5e6978;padding:4px 8px;font-size:.72rem;display:flex;align-items:center;gap:4px;box-shadow:0 2px 8px rgba(15,23,42,.12)}
.cover-photo-card.selected .cover-select{background:#0d6efd;color:#fff}
.new-photo-card .cover-select{pointer-events:none}
.cover-photo-card .photo-delete{z-index:3}

@media(max-width:576px){
  .ingredient-list-item{padding:10px 12px;gap:10px;min-height:70px}
  .ingredient-list-photo{width:48px;height:48px;flex-basis:48px;border-radius:11px}
  .ingredient-name{font-size:.96rem}
  .ingredient-brand,.ingredient-protein{font-size:.78rem}
  .ingredient-kcal{font-size:.92rem}
  .cover-photo-card{width:calc(50% - 5px);height:125px}
}






/* Library-style list: one soft panel per group, flush rows, responsive trailing metadata. */
.library-page{max-width:1180px;margin:0 auto;padding:0 6px}
.library-head{align-items:center}
.library-search .input-group-text,.library-search .form-control{border-color:#dfe5ec;background:#fff}
.library-search .input-group-text{padding-left:16px}
.library-search .form-control{height:46px}
.library-group{margin-bottom:22px}
.library-group-title{font-size:.83rem;font-weight:800;color:#687386;letter-spacing:.025em;text-transform:uppercase;margin:0 0 8px 4px}
.library-list{background:#fff;border:1px solid #e5e9ef;border-radius:16px;overflow:hidden;box-shadow:0 4px 16px rgba(23,36,56,.035)}
.library-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px;min-height:78px;padding:11px 20px;color:inherit;text-decoration:none;background:#fff;transition:background .12s ease}
.library-row + .library-row{border-top:1px solid #e9edf2}
a.library-row:hover{background:#fafbfd;color:inherit}
.library-row-main{display:flex;align-items:center;gap:15px;min-width:0;color:inherit;text-decoration:none}
a.library-row-main:hover{color:inherit}
.library-thumb{width:66px;height:54px;flex:0 0 66px;object-fit:cover;border-radius:10px;background:#eef1f5}
.recipe-library-thumb{width:82px;height:62px;flex-basis:82px}
.library-copy{min-width:0}
.library-title{font-size:1.02rem;font-weight:750;color:#202938;line-height:1.22;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-subtitle{font-size:.84rem;color:#7a8596;line-height:1.35;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recipe-description{max-width:650px}
.library-macros{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:#748092;font-size:.84rem;white-space:nowrap}
.library-macros .macro-kcal{font-weight:750;color:#2a3443}
.macro-separator{color:#c0c6cf}
.library-empty{padding:42px 22px;text-align:center;color:#8792a2;background:#fff;border:1px solid #e5e9ef;border-radius:16px}
.recipe-library-group{margin-top:6px}
.recipe-library-row{min-height:88px}
.recipe-row-right{display:flex;align-items:center;gap:16px}
.recipe-compact-actions{display:flex;align-items:center;gap:7px}
.recipe-compact-actions form{margin:0}
.icon-action{width:35px;height:35px;border-radius:10px;display:inline-grid;place-items:center;border:1px solid transparent;background:transparent;text-decoration:none;padding:0;transition:.12s ease}
.icon-action-primary{color:#0d6efd;background:#eef5ff;border-color:#dbe9ff}
.icon-action-primary:hover{background:#e0edff;color:#0b5ed7}
.icon-action-danger{color:#dc3545;background:#fff6f7;border-color:#f6dadd}
.icon-action-danger:hover{background:#ffeaed;color:#bb2d3b}

@media(max-width:991px){
  .library-page{max-width:820px}
  .library-row{padding-left:17px;padding-right:17px;gap:16px}
  .recipe-description{max-width:390px}
}

@media(max-width:767px){
  .library-page{max-width:none;padding:0 2px}
  .library-group{margin-bottom:18px}
  .library-list{border-radius:14px}
  .library-row{min-height:72px;padding:10px 14px;gap:12px}
  .library-thumb{width:58px;height:50px;flex-basis:58px;border-radius:9px}
  .recipe-library-thumb{width:66px;height:54px;flex-basis:66px}
  .library-title{font-size:.98rem}
  .library-subtitle{font-size:.8rem}
  .library-macros{font-size:.78rem;gap:6px}
  .recipe-row-right{gap:9px}
  .icon-action{width:32px;height:32px;border-radius:9px}
}

@media(max-width:520px){
  .library-head{align-items:flex-start}
  .library-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:10px 12px}
  .library-row-main{gap:10px}
  .library-thumb{width:50px;height:46px;flex-basis:50px}
  .recipe-library-thumb{width:58px;height:50px;flex-basis:58px}
  .library-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .library-subtitle{white-space:normal;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical}
  .library-macros{font-size:.74rem;gap:5px}
  .recipe-library-row{grid-template-columns:minmax(0,1fr) auto}
  .recipe-row-right{align-items:flex-end;flex-direction:column;gap:7px}
  .recipe-compact-actions{gap:5px}
}

@media(max-width:390px){
  .library-row{gap:8px}
  .library-macros{flex-direction:column;align-items:flex-end;gap:1px;line-height:1.2}
  .macro-separator{display:none}
}

/* v6: account, household, planner, inventory and shopping */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.auth-wrap{min-height:calc(100vh - 3rem);display:grid;place-items:center}.auth-card{width:min(460px,100%)}.brand-mark{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#0d6efd;color:#fff;font-weight:900;font-size:1.25rem}.account-menu{min-width:240px}
.flat-mini-list{border-top:1px solid #eef1f4}.flat-mini-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid #eef1f4;color:inherit}.flat-mini-row:last-child{border-bottom:0}
.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #eef1f4}.setting-row:last-of-type{border-bottom:0}.setting-row .form-check-input{width:2.6em;height:1.35em}
.context-pill{display:inline-flex;align-items:center;gap:7px;background:#eef5ff;border-radius:999px;padding:7px 11px;color:#48637f;font-size:.84rem}
.inventory-row{width:100%;border-left:0;border-right:0;border-bottom:0;text-align:left}.inventory-total{font-weight:800;white-space:nowrap}.inventory-lots{background:#fafbfc;border-top:1px solid #edf0f3}.inventory-lot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 10px 28px;border-bottom:1px solid #eef1f4}.inventory-lot:last-child{border-bottom:0}
.week-nav{display:flex;justify-content:center}.meal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.meal-day{background:#fff;border:1px solid #eceff3;border-radius:16px;min-width:0;overflow:hidden}.meal-day-head{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #edf0f3}.meal-day-name{font-weight:800}.meal-entry{display:flex;align-items:flex-start;gap:4px;padding:11px 10px;border-bottom:1px solid #edf0f3}.meal-entry:last-child{border-bottom:0}.meal-entry-main{display:block;min-width:0;flex:1;text-decoration:none;color:inherit}.meal-entry-main:hover{color:inherit}.meal-entry .small-label{font-size:.67rem}.meal-empty{padding:14px 10px;color:#9aa3b2;font-size:.83rem}
.choice-card{display:flex;flex-direction:column;gap:5px;height:100%;padding:14px;border:1px solid #e6e9ef;border-radius:14px;cursor:pointer}.choice-card input{align-self:flex-start}.choice-card span{font-size:.82rem;color:#7a8699}
.date-chip-grid{display:flex;flex-wrap:wrap;gap:8px}.date-chip{cursor:pointer}.date-chip input{position:absolute;opacity:0;pointer-events:none}.date-chip span{display:flex;flex-direction:column;align-items:center;min-width:64px;padding:10px 12px;border:1px solid #e5e8ed;border-radius:14px;background:#fff}.date-chip small{color:#7a8699}.date-chip input:checked+span{border-color:#0d6efd;background:#eef5ff;color:#0d6efd;box-shadow:0 0 0 2px rgba(13,110,253,.08)}
.shopping-list-shell{background:#fff;border:1px solid #eceff3;border-radius:18px;overflow:hidden;box-shadow:0 4px 18px rgba(30,41,59,.04)}.shopping-group+.shopping-group{border-top:1px solid #e9edf2}.shopping-row{border-top:1px solid #edf0f3;background:#fff}.shopping-group .shopping-row:nth-child(2){border-top:0}.shopping-main,.shopping-click-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px}.shopping-click-row{border:0;background:transparent;text-align:left;color:inherit}.shopping-covered .shopping-click-row{opacity:.58}.shopping-covered .shopping-name{text-decoration:line-through}.shopping-covered:hover{background:#fafbfc}.shopping-name{font-weight:750}.shopping-status{font-size:.8rem;color:#6d7785;white-space:nowrap}.shopping-amount-form{display:flex;align-items:center;gap:7px;flex:0 0 auto}.shopping-amount-form input{width:100px}.shopping-amount-form span{font-size:.85rem;color:#7a8699}.review-list{border-top:1px solid #edf0f3}.review-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(230px,320px);gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0f3}.review-check{margin:0}.review-amount{display:grid;grid-template-columns:1fr 90px;gap:8px}

@media(max-width:1199px){.navbar-nav{padding-top:10px;padding-bottom:10px}.meal-week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.page-head{align-items:flex-start}.meal-week{grid-template-columns:1fr}.meal-day{border-radius:14px}.shopping-main,.shopping-click-row{padding:12px}.shopping-main{align-items:flex-start}.shopping-amount-form{flex-wrap:wrap;justify-content:flex-end}.review-row{grid-template-columns:auto 1fr}.review-amount{grid-column:2;grid-template-columns:1fr 90px}.inventory-lot{padding-left:18px}}
@media(max-width:576px){body{background:#fff}main.container{padding-left:12px;padding-right:12px}.app-card,.flat-list-shell,.shopping-list-shell,.flat-empty{box-shadow:none;border-radius:14px}.page-head .btn{white-space:nowrap}.shopping-main{display:block}.shopping-amount-form{margin-top:8px;justify-content:flex-start}.shopping-amount-form input{width:110px}.shopping-status{font-size:.75rem}.review-amount{grid-template-columns:1fr 78px}}


/* Searchable, editable category combobox (replaces browser-native datalist UI). */
.category-combobox{position:relative;z-index:30}
.category-combobox-control{position:relative;display:flex;align-items:stretch}
.category-combobox-input{padding-right:44px!important}
.category-combobox-toggle{position:absolute;right:2px;top:2px;bottom:2px;width:40px;border:0;background:transparent;color:#768195;border-radius:10px;display:grid;place-items:center;transition:.15s ease}
.category-combobox-toggle:hover{background:#f2f5f9;color:#273449}
.category-combobox.open .category-combobox-toggle i{transform:rotate(180deg)}
.category-combobox-toggle i{transition:transform .15s ease}
.category-combobox-menu{display:none;position:absolute;z-index:1055;left:0;right:0;top:calc(100% + 6px);max-height:240px;overflow-y:auto;padding:6px;background:#fff;border:1px solid #dfe5ed;border-radius:12px;box-shadow:0 14px 34px rgba(25,38,58,.14)}
.category-combobox.open .category-combobox-menu{display:block}
.category-combobox-option{width:100%;border:0;background:#fff;text-align:left;padding:10px 12px;border-radius:8px;color:#273449;font-size:.92rem;line-height:1.25}
.category-combobox-option:hover,.category-combobox-option:focus{background:#eef5ff;color:#0d6efd;outline:0}
.category-combobox-empty{padding:11px 12px;color:#8a94a3;font-size:.84rem;line-height:1.35}

/* Fluid-equivalent configuration for foods measured in g/db as well as ml. */
.fluid-equivalent-box{padding:16px 18px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fbff}
.fluid-equivalent-box .input-group-text{background:#fff;color:#657287;border-color:#dee4ec}

@media(max-width:576px){
  .category-combobox-menu{max-height:210px}
  .fluid-equivalent-box{padding:14px}
}


/* Inventory ingredient searchable selector. */
.stock-combobox{position:relative;z-index:1080}
.stock-combobox-control{position:relative;display:flex;align-items:center}
.stock-combobox-search-icon{position:absolute;left:13px;z-index:2;color:#8a94a3;pointer-events:none}
.stock-combobox-input{padding-left:38px!important;padding-right:44px!important}
.stock-combobox-toggle{position:absolute;right:2px;top:2px;bottom:2px;width:40px;border:0;background:transparent;color:#768195;border-radius:10px;display:grid;place-items:center;transition:.15s ease}
.stock-combobox-toggle:hover{background:#f2f5f9;color:#273449}
.stock-combobox.open .stock-combobox-toggle i{transform:rotate(180deg)}
.stock-combobox-toggle i{transition:transform .15s ease}
.stock-combobox-menu{display:none;position:absolute;z-index:1090;left:0;right:0;top:calc(100% + 6px);max-height:300px;overflow-y:auto;padding:6px;background:#fff;border:1px solid #dfe5ed;border-radius:12px;box-shadow:0 14px 34px rgba(25,38,58,.16)}
.stock-combobox.open .stock-combobox-menu{display:block}
.stock-combobox-option{width:100%;border:0;background:#fff;text-align:left;padding:10px 12px;border-radius:8px;color:#273449;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.stock-combobox-option:hover,.stock-combobox-option:focus,.stock-combobox-option.selected{background:#eef5ff;color:#0d6efd;outline:0}
.stock-option-name{font-weight:650;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-option-brand{font-size:.8rem;color:#8a94a3;flex:0 0 auto;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stock-combobox-option:hover .stock-option-brand,.stock-combobox-option.selected .stock-option-brand{color:#5f79a0}
.stock-combobox-empty{padding:12px;color:#8a94a3;font-size:.84rem;line-height:1.4}
@media(max-width:576px){.stock-combobox-menu{max-height:250px}.stock-combobox-option{padding:11px 10px}.stock-option-brand{max-width:38%}}


/* v11: image-free ingredient list, visual recipe thumbnails and detail galleries. */
.ingredient-list-main-no-photo{gap:0!important}
.ingredient-list-main-no-photo .library-copy{padding-left:0}

.recipe-library-thumb,.recipe-feature-thumb,.recipe-image-placeholder{
  width:112px!important;height:82px!important;flex:0 0 112px!important;border-radius:12px!important;
}
.recipe-feature-thumb{object-fit:cover;background:#eef1f5}
.recipe-image-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#f4f6f9,#e9edf3);color:#a2adba;font-size:2rem;border:1px solid #e5e9ef}
.recipe-main-link{gap:18px!important}

.photo-gallery-section{border-top:1px solid #e7ebf0;padding-top:20px}
.detail-photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px}
.detail-photo-item{position:relative;min-width:0;border:1px solid #e3e8ef;border-radius:14px;background:#fff;overflow:hidden;transition:.15s ease}
.detail-photo-item:hover{border-color:#cbd4df;box-shadow:0 7px 22px rgba(28,40,58,.08)}
.detail-photo-item.is-cover{border-color:#0d6efd;box-shadow:0 0 0 2px rgba(13,110,253,.1)}
.detail-photo-open{position:relative;width:100%;height:112px;padding:0;border:0;background:#f2f4f7;display:block;overflow:hidden;cursor:zoom-in}
.detail-photo-open img{width:100%;height:100%;display:block;object-fit:cover}
.detail-photo-zoom{position:absolute;right:8px;bottom:8px;width:30px;height:30px;border-radius:9px;background:rgba(17,24,39,.66);color:#fff;display:grid;place-items:center;opacity:0;transform:translateY(3px);transition:.15s ease}
.detail-photo-open:hover .detail-photo-zoom{opacity:1;transform:none}
.gallery-cover-button{width:100%;border:0;border-top:1px solid #edf0f4;background:#fff;color:#657287;padding:8px 10px;font-size:.76rem;display:flex;align-items:center;justify-content:center;gap:6px}
.gallery-cover-button:hover{background:#f7f9fc;color:#0d6efd}
.detail-photo-item.is-cover .gallery-cover-button{color:#0d6efd;font-weight:700}
.detail-photo-delete{top:7px;right:7px;z-index:4}
.new-photo-item{min-height:112px}

.photo-lightbox-modal .modal-dialog{max-width:min(1120px,calc(100vw - 32px))}
.photo-lightbox-modal .modal-content{background:#0f1218;border:0;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.38)}
.photo-lightbox-modal .modal-body{min-height:min(78vh,820px);display:grid;place-items:center;background:#0f1218;position:relative}
.photo-lightbox-image{display:block;max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain}
.photo-lightbox-close{position:absolute;z-index:5;right:14px;top:14px;width:42px;height:42px;border:0;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);color:#fff;font-size:1.05rem;backdrop-filter:blur(8px)}
.photo-lightbox-close:hover{background:rgba(255,255,255,.2)}
.photo-lightbox-nav{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:48px;height:58px;border:0;border-radius:14px;background:rgba(15,18,24,.62);color:#fff;font-size:1.45rem;display:grid;place-items:center;backdrop-filter:blur(7px)}
.photo-lightbox-nav:hover{background:rgba(15,18,24,.82)}
.photo-lightbox-prev{left:14px}.photo-lightbox-next{right:14px}
.photo-lightbox-counter{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:6px 11px;border-radius:999px;background:rgba(15,18,24,.66);color:#fff;font-size:.8rem;letter-spacing:.03em;backdrop-filter:blur(7px)}

@media(max-width:768px){
  .recipe-library-thumb,.recipe-feature-thumb,.recipe-image-placeholder{width:92px!important;height:72px!important;flex-basis:92px!important}
  .recipe-main-link{gap:13px!important}
  .detail-photo-gallery{grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px}
  .detail-photo-open{height:100px}
  .photo-lightbox-modal .modal-dialog{max-width:calc(100vw - 16px);margin:8px auto}
  .photo-lightbox-modal .modal-body{min-height:70vh}
  .photo-lightbox-nav{width:42px;height:52px;border-radius:12px}
  .photo-lightbox-prev{left:8px}.photo-lightbox-next{right:8px}
}
@media(max-width:520px){
  .recipe-library-thumb,.recipe-feature-thumb,.recipe-image-placeholder{width:80px!important;height:68px!important;flex-basis:80px!important;border-radius:10px!important}
  .recipe-image-placeholder{font-size:1.55rem}
  .detail-photo-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .detail-photo-open{height:92px}
  .gallery-cover-button{font-size:.7rem;padding:7px 5px}
  .photo-lightbox-modal .modal-content{border-radius:12px}
  .photo-lightbox-close{right:8px;top:8px;width:38px;height:38px}
}


/* v12: reusable ingredient search, shopping manual items and stock-review flow. */
.stock-combobox.open{z-index:1110}
.recipe-ingredient-row{position:relative}
.recipe-ingredient-row .stock-combobox-menu{max-height:280px}
.shopping-mode-switch{display:inline-flex;gap:4px;padding:4px;background:#f1f4f8;border-radius:12px}
.shopping-mode-btn{border:0;background:transparent;color:#687588;border-radius:9px;padding:8px 12px;font-size:.86rem;font-weight:650;display:inline-flex;align-items:center;gap:6px;transition:.15s ease}
.shopping-mode-btn:hover{background:rgba(255,255,255,.7);color:#273449}
.shopping-mode-btn.active{background:#fff;color:#0d6efd;box-shadow:0 2px 8px rgba(28,42,63,.08)}
.stock-review-card{padding:16px 0;border-bottom:1px solid #e9edf2}
.stock-review-card:first-child{padding-top:0}.stock-review-card:last-child{border-bottom:0;padding-bottom:0}
.stock-review-top{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(220px,300px);gap:12px;align-items:center}
.review-amount-inline{display:grid;grid-template-columns:minmax(100px,1fr) 82px;gap:8px}
.review-warning-icon{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:#fff3cd;color:#946c00}
.unlinked-review-box{margin-left:40px;padding:13px 14px;border:1px solid #f0df9a;border-radius:12px;background:#fffaf0}
.library-title .badge{font-size:.65rem;font-weight:700;vertical-align:2px}
@media(max-width:768px){
  .stock-review-top{grid-template-columns:auto minmax(0,1fr)}
  .review-amount-inline{grid-column:2;grid-template-columns:minmax(90px,1fr) 74px}
  .unlinked-review-box{margin-left:40px}
  .shopping-mode-switch{display:flex;width:100%}.shopping-mode-btn{flex:1;justify-content:center}
}
@media(max-width:520px){
  .recipe-ingredient-row .stock-combobox-menu{max-height:220px}
  .stock-review-card{padding:14px 0}
  .unlinked-review-box{margin-left:0;margin-top:12px!important}
}

/* v14: Strong-inspired workout templates and per-set tracking. */
.workout-page,.workout-editor-page,.workout-session-page{max-width:1100px;margin:0 auto}
.workout-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.workout-template-card{background:#fff;border:1px solid #e5e9ef;border-radius:16px;padding:16px;box-shadow:0 3px 14px rgba(28,40,58,.035)}
.workout-template-name{font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workout-empty-panel{grid-column:1/-1;padding:22px;border:1px dashed #d9e0e8;border-radius:14px;color:#7b8797;background:#fbfcfe}
.workout-history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid #e9edf2;text-decoration:none;color:inherit}
.workout-history-row:hover{color:inherit;background:#fbfcfd}
.workout-history-row:first-of-type{border-top:0}
.legacy-row{background:#fafbfc;padding-left:10px;padding-right:10px}
.exercise-library-list{border-top:1px solid #e9edf2}
.exercise-library-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #e9edf2}
.template-selected-list{border-top:1px solid #e8ecf1}
.template-selected-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid #e8ecf1}
.workout-exercise-picker{position:relative;z-index:20}
.workout-exercise-picker.open .stock-combobox-menu{display:block}
.min-w-0{min-width:0}

.workout-session-topbar{display:flex;align-items:end;justify-content:space-between;gap:18px}
.workout-title-input{display:block;width:min(560px,70vw);border:0;background:transparent;padding:0;font-size:1.85rem;font-weight:800;letter-spacing:-.035em;color:#162032;outline:0}
.workout-title-input:focus{border-bottom:2px solid #0d6efd}
.workout-date-input{width:155px}
.workout-exercise-card{background:#fff;border:1px solid #e3e8ef;border-radius:18px;padding:18px;margin-bottom:16px;box-shadow:0 4px 18px rgba(28,40,58,.035)}
.workout-exercise-head{display:flex;align-items:start;justify-content:space-between;gap:14px}
.workout-exercise-note{margin:13px 0 10px;border:0;border-bottom:1px solid #edf0f4;border-radius:0;padding-left:0;padding-right:0;font-size:.86rem;color:#667287;box-shadow:none!important}
.workout-exercise-note:focus{border-color:#bfc9d5}
.workout-set-table{margin-top:4px}
.workout-set-header,.workout-set-row{display:grid;grid-template-columns:58px minmax(90px,1.1fr) 94px 84px 42px;align-items:center;gap:8px}
.workout-set-header{padding:6px 4px 8px;font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em;color:#919baa}
.workout-set-row{min-height:54px;padding:6px 4px;border-top:1px solid #edf0f4}
.workout-set-row.unilateral-row{min-height:50px}
.set-type-cell{display:flex;align-items:center;gap:7px;min-width:0}
.set-tag{width:32px;height:32px;border:0;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:.78rem;box-shadow:inset 0 0 0 1px rgba(33,45,62,.06)}
.set-tag-normal{background:#eef1f4;color:#7c8795}
.set-tag-warmup{background:#fff0c2;color:#9b6200}
.set-tag-failure{background:#ffe1e4;color:#c5303f}
.set-tag-drop{background:#eee2ff;color:#7645b5}
.set-tag-demo{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;margin-right:8px;font-size:.68rem;font-weight:800;vertical-align:middle}
.set-tag-menu{min-width:160px;border:1px solid #e0e5eb;border-radius:12px;box-shadow:0 12px 28px rgba(27,39,57,.14)}
.set-tag-menu .dropdown-item{border-radius:8px;padding:7px 9px;font-size:.86rem}
.set-index-label{font-size:.78rem;color:#7f8997;min-width:16px;text-align:center}
.set-index-label span{display:block;font-size:.58rem;font-weight:800;color:#9aa4b2;margin-top:-2px}
.previous-performance{font-size:.78rem;color:#98a2af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-input{height:38px;text-align:center;padding:6px 8px;border-radius:10px;border-color:#e2e7ed;background:#fbfcfd;font-weight:650}
.set-input::placeholder{color:#b3bac4;font-weight:500}
.set-row-actions{display:flex;justify-content:center}
.set-complete-check input{position:absolute;opacity:0;pointer-events:none}
.set-complete-check span{width:30px;height:30px;border-radius:9px;border:1px solid #dfe5eb;background:#fff;color:transparent;display:grid;place-items:center;cursor:pointer;transition:.14s ease}
.set-complete-check input:checked+span{background:#dff6e8;border-color:#b7e4c9;color:#20834f}
.workout-session-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:30px}
.workout-session-footer>form:first-child{max-width:520px;flex:1}
.workout-add-exercise-picker.open .stock-combobox-menu{display:block}

@media(max-width:900px){
  .workout-template-grid{grid-template-columns:1fr}
  .workout-set-header,.workout-set-row{grid-template-columns:54px minmax(78px,1fr) 88px 78px 38px;gap:6px}
}
@media(max-width:640px){
  .workout-session-topbar{align-items:stretch;flex-direction:column}
  .workout-title-input{width:100%;font-size:1.55rem}
  .workout-session-topbar>.d-flex{justify-content:space-between}.workout-date-input{width:155px;max-width:55vw}
  .workout-exercise-card{margin-left:-4px;margin-right:-4px;padding:14px;border-radius:15px}
  .workout-set-header,.workout-set-row{grid-template-columns:48px 76px 72px 36px;gap:6px}
  .workout-set-header .previous-col,.workout-set-row .previous-col{display:none}
  .set-tag{width:30px;height:30px}
  .set-input{height:36px;font-size:.88rem}
  .workout-session-footer{align-items:stretch;flex-direction:column}.workout-session-footer>form{width:100%!important;max-width:none!important}.workout-session-footer .btn{white-space:nowrap}
}
.workout-set-header.tracking-reps,.workout-set-row.tracking-reps,
.workout-set-header.tracking-bodyweight,.workout-set-row.tracking-bodyweight,
.workout-set-header.tracking-time,.workout-set-row.tracking-time{grid-template-columns:58px minmax(90px,1.2fr) 100px 42px}
@media(max-width:900px){
  .workout-set-header.tracking-reps,.workout-set-row.tracking-reps,
  .workout-set-header.tracking-bodyweight,.workout-set-row.tracking-bodyweight,
  .workout-set-header.tracking-time,.workout-set-row.tracking-time{grid-template-columns:54px minmax(78px,1fr) 88px 38px}
}
@media(max-width:640px){
  .workout-set-header.tracking-reps,.workout-set-row.tracking-reps,
  .workout-set-header.tracking-bodyweight,.workout-set-row.tracking-bodyweight,
  .workout-set-header.tracking-time,.workout-set-row.tracking-time{grid-template-columns:48px minmax(80px,1fr) 36px}
}

/* v15: calmer workout home, history, libraries and chip multi-select. */
.workout-home-page,.workout-history-page,.workout-full-list,.exercise-group-list{max-width:1100px;margin:0 auto}
.workout-journal-card,.workout-library-panel{background:#fff;border:1px solid #e5e9ef;border-radius:18px;box-shadow:0 4px 18px rgba(28,40,58,.035);overflow:hidden}
.workout-section-head,.workout-library-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px}
.workout-section-title-link{text-decoration:none;color:inherit}.workout-section-title-link:hover{color:#0d6efd}
.workout-day-input{width:155px}
.workout-journal-content{border-top:1px solid #edf0f4;padding:0 20px}
.workout-today-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px solid #edf0f4;text-decoration:none;color:inherit}.workout-today-row:last-child{border-bottom:0}.workout-today-row:hover{color:inherit}
.workout-empty-trigger{position:relative;display:flex;align-items:stretch;margin:16px 0;border:1px dashed #d9e1ea;border-radius:14px;background:#fbfcfe;overflow:hidden}
.workout-empty-trigger-main{border:0;background:transparent;display:flex;align-items:center;gap:12px;padding:18px;text-align:left;flex:1;color:#445063}.workout-empty-trigger-main span:not(.workout-empty-icon){display:flex;flex-direction:column}.workout-empty-trigger-main small{color:#8b95a3;margin-top:2px}.workout-empty-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef5ff;color:#0d6efd;font-size:1.05rem;flex:0 0 auto}.workout-empty-close{width:42px;border:0;background:transparent;color:#9ba4b1;font-size:1.2rem}.workout-empty-close:hover{background:#f2f4f7;color:#4d5867}
.workout-library-panel{display:flex;flex-direction:column;max-height:450px}.workout-library-head{padding-bottom:12px}.workout-library-search{margin:0 18px 10px;display:flex;align-items:center;gap:8px;border:1px solid #e4e8ee;border-radius:12px;background:#fafbfc;padding:0 11px;color:#9aa4b2}.workout-library-search input{border:0;outline:0;background:transparent;width:100%;height:38px;color:#273142}.workout-scroll-list{overflow:auto;border-top:1px solid #edf0f4;min-height:0;scrollbar-width:thin}.workout-template-list-row,.exercise-quick-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid #edf0f4;color:inherit;text-decoration:none}.workout-template-list-row:last-child,.exercise-quick-row:last-child{border-bottom:0}.workout-list-main{display:block;text-decoration:none;color:inherit;flex:1}.workout-list-main:hover,.exercise-quick-row:hover{color:inherit}.workout-template-list-row:hover,.exercise-quick-row:hover{background:#fbfcfd}

.workout-start-modal{border-radius:20px}.workout-start-choice{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1px solid #dfe5ec;border-radius:14px;background:#fff;padding:13px;text-align:left;color:#273142}.workout-start-choice:hover{background:#f8fbff;border-color:#bed4f5}.workout-start-choice span:nth-child(2){display:flex;flex-direction:column}.workout-start-choice small,.workout-modal-template-button small{color:#8a95a4;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workout-start-choice-icon{width:36px;height:36px;border-radius:10px;background:#eef5ff;color:#0d6efd;display:grid;place-items:center}.workout-modal-template-list{border:1px solid #e7ebf0;border-radius:14px;overflow:hidden;max-height:290px;overflow-y:auto}.workout-modal-template-row{border-bottom:1px solid #edf0f4}.workout-modal-template-row:last-child{border-bottom:0}.workout-modal-template-button{width:100%;border:0;background:#fff;padding:12px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:#273142}.workout-modal-template-button>span{display:flex;flex-direction:column;min-width:0}.workout-modal-template-button:hover{background:#fafbfc}

.history-session-list{display:grid;gap:12px}.history-session-card{display:block;background:#fff;border:1px solid #e5e9ef;border-radius:16px;padding:16px 18px;text-decoration:none;color:inherit;box-shadow:0 3px 14px rgba(28,40,58,.03)}.history-session-card:hover{color:inherit;border-color:#d8dee7}.history-session-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-exercise-summary{margin-top:12px;border-top:1px solid #edf0f4}.history-exercise-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid #f0f2f5;font-size:.88rem}.history-exercise-row:last-child{border-bottom:0}.history-exercise-row strong{font-weight:700;color:#4b5666;white-space:nowrap}
.workout-full-list{background:#fff;border:1px solid #e5e9ef;border-radius:18px;overflow:hidden}.workout-full-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid #edf0f4}.workout-full-row:last-child{border-bottom:0}.workout-bodypart-line{display:flex;flex-wrap:wrap;gap:5px}.workout-bodypart-line span{font-size:.72rem;padding:3px 7px;border-radius:999px;background:#f0f3f7;color:#6d7888}
.exercise-group-section{margin-bottom:22px}.exercise-group-title{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.055em;color:#7b8695;margin:0 0 8px 4px}.exercise-group-panel{background:#fff;border:1px solid #e5e9ef;border-radius:16px;overflow:hidden}.exercise-library-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid #edf0f4;text-decoration:none;color:inherit}.exercise-library-link:last-child{border-bottom:0}.exercise-library-link:hover{background:#fbfcfd;color:inherit}

.multi-select-combobox{position:relative}.multi-select-control{min-height:46px;border:1px solid #dfe5ec;border-radius:12px;background:#fff;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 38px 6px 8px;position:relative}.multi-select-combobox.open .multi-select-control{border-color:#86b7fe;box-shadow:0 0 0 .25rem rgba(13,110,253,.14)}.multi-select-chips{display:contents}.multi-select-chip{display:inline-flex;align-items:center;gap:6px;background:#f0f3f7;border:1px solid #e0e5ec;color:#394456;border-radius:8px;padding:5px 7px;font-size:.8rem;line-height:1}.multi-select-chip button{border:0;background:transparent;color:#9aa3b0;padding:0;font-size:1rem;line-height:.8}.multi-select-chip button:hover{color:#dc3545}.multi-select-input{border:0;outline:0;background:transparent;min-width:160px;flex:1;height:30px}.multi-select-toggle{position:absolute;right:7px;top:7px;width:30px;height:30px;border:0;background:transparent;color:#778291;border-radius:8px}.multi-select-menu{display:none;position:absolute;z-index:1050;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid #dde3ea;border-radius:12px;box-shadow:0 14px 30px rgba(26,39,58,.14);padding:5px;max-height:240px;overflow:auto}.multi-select-combobox.open .multi-select-menu{display:block}.multi-select-option{width:100%;border:0;background:#fff;border-radius:8px;text-align:left;padding:9px 10px;color:#364153;font-size:.88rem}.multi-select-option:hover{background:#f4f7fb}.multi-select-empty{padding:9px 10px;color:#8a95a3;font-size:.82rem}

@media(max-width:768px){.workout-section-head,.workout-library-head{padding:15px}.workout-journal-content{padding:0 15px}.workout-library-panel{max-height:390px}.workout-template-list-row,.exercise-quick-row{padding:12px 14px}.workout-full-row{align-items:flex-start;flex-direction:column}.workout-full-row>form{width:100%}.workout-full-row>form .btn{width:100%}.history-session-card{padding:14px}.workout-history-page .page-head{display:block}.workout-history-page .page-head>.d-flex{margin-top:12px}.workout-history-page .page-head .btn{flex:1}.multi-select-input{min-width:120px}}
@media(max-width:520px){.workout-day-input{width:140px}.workout-section-head{align-items:flex-start}.workout-empty-trigger-main{padding:14px}.workout-library-grid{--bs-gutter-y:16px}.workout-library-panel{max-height:350px}.workout-start-modal .modal-header,.workout-start-modal .modal-body{padding-left:15px;padding-right:15px}}

/* v16 workout timing */
.workout-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#f3f5f8;padding:5px;border-radius:15px}.workout-mode-button{display:flex;align-items:center;gap:10px;border:0;background:transparent;border-radius:11px;padding:10px 11px;text-align:left;color:#637083;transition:.15s ease}.workout-mode-button>i{font-size:1.15rem}.workout-mode-button span{display:flex;flex-direction:column;min-width:0}.workout-mode-button strong{font-size:.9rem;color:#344054}.workout-mode-button small{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workout-mode-button.active{background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.08);color:#0d6efd}.workout-mode-button.active strong{color:#0d6efd}.workout-live-hint{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border-radius:13px;background:#f6f9ff;color:#536278;font-size:.84rem}.workout-live-hint i{color:#0d6efd;margin-top:1px}.workout-time-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #e7ebf0;border-radius:16px;padding:12px 14px}.workout-time-status,.workout-time-label{display:flex;align-items:center;gap:10px;min-width:0}.workout-time-status>div,.workout-time-label>div{display:flex;flex-direction:column}.workout-time-status small,.workout-time-label small{font-size:.75rem;color:#8490a0}.workout-live-dot{width:10px;height:10px;border-radius:50%;background:#28a745;box-shadow:0 0 0 5px rgba(40,167,69,.12);flex:0 0 auto}.workout-live-timer{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:800;letter-spacing:.03em;color:#202733}.workout-time-inputs{display:flex;align-items:end;gap:8px}.workout-time-inputs label{display:flex;flex-direction:column;gap:4px}.workout-time-inputs label>span{font-size:.72rem;color:#7d8898;font-weight:700}.workout-time-inputs .form-control{width:116px}.workout-time-separator{padding-bottom:9px;color:#9aa3b2}.workout-duration-badge{background:#f1f4f7;border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700;color:#596575;white-space:nowrap}.workout-session-time-summary{margin-top:4px;color:#778395}
@media(max-width:768px){.workout-time-strip{align-items:flex-start;flex-wrap:wrap}.workout-live-timer{margin-left:auto}.workout-time-inputs{order:3;width:100%}.workout-time-inputs label{flex:1}.workout-time-inputs .form-control{width:100%}.workout-duration-badge{margin-left:auto}}
@media(max-width:520px){.workout-mode-switch{grid-template-columns:1fr}.workout-live-timer{font-size:1.2rem}.workout-time-running .btn{width:100%}.workout-time-inputs{gap:6px}}


/* Workout pause/resume */
.workout-live-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.workout-time-paused{background:#fffaf2;border-color:#f0dfbd}
.workout-live-dot-paused{background:#e59b2f;box-shadow:0 0 0 5px rgba(229,155,47,.14)}
.workout-time-paused .workout-live-timer{color:#9a641a}
@media(max-width:520px){.workout-live-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.workout-live-actions .btn{width:100%}}
