:root{--brand-header-bg: linear-gradient(135deg, #131F39 0%, #1c2d52 100%);--brand-header-text: #FFFFFF;--brand-navy: #131F39;--brand-steel-blue: #234F6C;--brand-taupe: #78766A;--brand-tomato-red: #DF3E34;--brand-sand-cream: #DED7C5;--brand-charcoal: #2B2D2C;--white: #FFFFFF;--body-text: #2B2D2C;--tomato-jam: #DF3E34;--tomato-jam-hover: #c8332a;--pale-slate: #78766A;--light-bg: #f7f5f0;--border-color: #dcd6c8;--card-shadow: 0 8px 24px -4px rgba(19,31,57,.06), 0 2px 6px -1px rgba(19,31,57,.03);--card-shadow-hover: 0 14px 28px -4px rgba(19,31,57,.1);--food-theme-bg: linear-gradient(135deg, #ab4b44 0%, #c45851 100%);--food-theme-badge-bg: #f9ebe9;--food-theme-badge-text: #8f2821;--bev-theme-bg: linear-gradient(135deg, #386380 0%, #4a7796 100%);--bev-theme-badge-bg: #e8f1f6;--bev-theme-badge-text: #193d54;--brand-purple: #6d28d9;--brand-purple-hover: #5b21b6;--brand-purple-bg: #ede9fe;--brand-purple-border: #c4b5fd;--brand-copy: #0d9488;--brand-copy-hover: #0f766e;--brand-copy-bg: #ccfbf1;--brand-copy-border: #5eead4;--brand-missing: #c2410c;--brand-missing-bg: #ffedd5;--brand-missing-border: #fdba74;--surface-warm: #f7f4ee}*{box-sizing:border-box}body{font-family:Plus Jakarta Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased;background-color:var(--light-bg);background-image:radial-gradient(at 0% 0%,rgba(223,62,52,.03) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(35,79,108,.04) 0px,transparent 50%);background-attachment:fixed;padding:0 24px 24px;margin:0;min-height:100vh;color:var(--body-text);font-size:13px}body[data-company=esplanade]{--brand-header-bg: linear-gradient(135deg, #131F39 0%, #1c2d52 100%)}body[data-company=piccolo]{--brand-header-bg: linear-gradient(135deg, #00338D 0%, #002d86 100%);--brand-navy: #00338D;--brand-steel-blue: #7A7771;--brand-tomato-red: #81252E;--tomato-jam: #81252E;--tomato-jam-hover: #631b23;--light-bg: #F2F3EA;--border-color: #d2d4c5}body[data-company=no7balmac]{--brand-header-bg: linear-gradient(135deg, #1B1917 0%, #494441 100%);--brand-navy: #1B1917;--brand-steel-blue: #555555;--brand-tomato-red: #1B1917;--tomato-jam: #1B1917;--tomato-jam-hover: #33302d;--light-bg: #f4f4f4;--border-color: #dcdcdc}body[data-company=sorella]{--brand-header-bg: linear-gradient(135deg, #612C38 0%, #6a303e 100%);--brand-navy: #612C38;--brand-steel-blue: #63454D;--brand-tomato-red: #E39F61;--tomato-jam: #E39F61;--tomato-jam-hover: #cb8b52;--light-bg: #E0DEC7;--border-color: #B3A19D}button,select,input,textarea{font-family:inherit}.sticky-top-wrapper{position:sticky;top:0;z-index:200;margin:0 -24px;padding:0 24px;background:var(--light-bg)}header{background:var(--brand-header-bg);color:var(--brand-header-text);padding:14px 26px;border-radius:0 0 14px 14px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:0 12px 28px -8px #131f394d;border:1px solid rgba(255,255,255,.15)}header h1{font-size:1.65rem;font-weight:800;letter-spacing:-.025em;margin:0}header .sub{font-size:.78rem;opacity:.75}.header-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.header-controls input[type=text]{min-width:200px}.sync-status-badge{font-size:.78rem;background:#ffffff1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:5px 12px;border-radius:9999px;font-weight:700;color:#ffffffe6;border:1px solid rgba(255,255,255,.18)}.sync-status-badge.is-loading{animation:pulse-border 1.5s infinite ease-in-out}.sync-status-badge.err{color:#fca5a5}@keyframes pulse-border{0%,to{opacity:1}50%{opacity:.5}}.area-switch{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:9999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-decoration:none;cursor:pointer;color:#fff;border:1px solid rgba(255,255,255,.5);background:transparent}.area-switch svg{width:14px;height:14px;display:block}.area-switch svg path{fill:currentColor}.area-switch:hover{background:#ffffff26;transform:translateY(-1px)}.area-switch.on{background:#fff;color:var(--brand-navy);border-color:#fff}.quick-links-bar{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 10px;align-items:center}.quick-link-pill{border-radius:9999px;font-size:.75rem;font-weight:700;padding:5px 12px;background:#fff;border:1px solid var(--border-color);color:var(--brand-navy);cursor:pointer;box-shadow:0 1px 3px #00000014;text-decoration:none}.quick-link-pill:hover{transform:translateY(-1px)}.quick-link-pill.active{background:var(--brand-steel-blue);color:#fff;border-color:var(--brand-steel-blue)}.quick-link-pill.sort-pill{display:inline-flex;align-items:center;gap:5px}.quick-link-pill svg{width:14px;height:14px;display:block}.quick-link-pill svg path{fill:currentColor}.pill-sep{width:1px;height:18px;background:var(--border-color);margin:0 3px;align-self:center}.cat-group{font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--pale-slate);align-self:center;margin:0 1px 0 9px}.cat-group.bev{color:var(--bev-theme-badge-text)}.pick-group{font-size:.66rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--pale-slate);align-self:center;margin-right:3px}.badge-pick .pick.pick-bev{border-color:var(--bev-theme-badge-bg)}.badge-pick .pick.pick-bev.active{background:var(--bev-theme-badge-text);border-color:var(--bev-theme-badge-text);color:#fff}.search-row{padding:2px 0 10px}.search-row input[type=text]{width:100%;max-width:440px}.content-spacer{height:20px}.container{display:flex;flex-direction:column;gap:22px;max-width:1100px;margin:0 auto;position:relative}.container .card{scroll-margin-top:170px}.card{background:var(--white);border:1px solid var(--border-color);border-radius:14px;padding:24px;box-shadow:var(--card-shadow);transition:box-shadow .25s ease}.card:hover{box-shadow:var(--card-shadow-hover)}.category-section{border:1px solid var(--border-color);border-radius:12px;overflow:hidden;scroll-margin-top:120px;margin-bottom:18px}.category-header{padding:14px 20px;display:flex;justify-content:space-between;align-items:center;color:#fff;background:var(--food-theme-bg)}.category-header.bev{background:var(--bev-theme-bg)}.category-header h2{font-size:1.1rem;font-weight:800;letter-spacing:-.01em;margin:0}.category-badge{font-size:.72rem;border-radius:9999px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:#fff3;padding:3px 10px}.cat-chev{font-size:.8rem;color:#ffffffe6}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}th,td{padding:9px 12px;border-bottom:1px solid var(--border-color);border-right:1px solid var(--border-color);vertical-align:middle;text-align:left}th:last-child,td:last-child{border-right:none}tbody tr:last-child td{border-bottom:none}th{background:#f3efe6;color:var(--brand-navy);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;border-top:1px solid var(--border-color)}tbody tr:nth-child(2n) td{background:#faf8f5}tbody tr:hover td{background:#faf8f5}button{background-color:var(--brand-tomato-red);color:#fff;border:none;padding:9px 16px;font-weight:700;border-radius:8px;box-shadow:0 2px 6px #00000026;transition:all .2s ease;cursor:pointer;font-size:.85rem}button:hover{background-color:var(--tomato-jam-hover);transform:translateY(-1px)}button.btn-secondary{background:var(--brand-navy)}button.btn-ghost{background:#fff;border:1px solid var(--border-color);color:var(--brand-navy);box-shadow:none}button.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;box-shadow:none}button.btn-danger{background:#dc2626}button.btn-small{padding:5px 10px;font-size:.78rem;border-radius:6px}button:disabled{opacity:.5;cursor:default;transform:none}input[type=text],input[type=date],input[type=number],select,textarea{padding:7px 12px;border:1px solid var(--pale-slate);border-radius:6px;font-size:.85rem;color:var(--body-text);background:#faf8f5;transition:border-color .2s,box-shadow .2s}:is(input,select,textarea):focus{outline:none;border-color:var(--brand-tomato-red);background:#fff;box-shadow:0 0 0 3px #df3e3426}.badge{border-radius:9999px;font-weight:800;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;display:inline-block}.badge-dish{background:var(--food-theme-badge-bg);color:var(--food-theme-badge-text)}.badge-bev{background:var(--bev-theme-badge-bg);color:var(--bev-theme-badge-text)}.badge-archived{background:#eee;color:#666}.badge-arch{background:#fbeadd;color:#a8541c;display:inline-flex;align-items:center;gap:5px}.badge-arch svg{width:11px;height:11px}.badge-arch svg path{fill:currentColor}.badge-imp{background:var(--brand-purple-bg);color:var(--brand-purple);display:inline-flex;align-items:center;gap:5px}.badge-imp svg{width:11px;height:11px}.badge-imp svg path{fill:currentColor}.gap-badge{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid transparent}.gap-badge svg{width:12px;height:12px;display:block}.gap-badge.ok{background:#eee;color:#666}.gap-badge.miss{background:var(--brand-missing-bg);border-color:var(--brand-missing-border);color:var(--brand-missing)}.cat-head{display:flex;align-items:baseline;gap:6px;font-size:.85rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-navy);background:#f3efe6;border-radius:8px;padding:8px 12px;margin-top:14px}.cat-head .cat-n{color:var(--pale-slate);font-weight:700}.sec-ico{width:15px;height:15px;flex-shrink:0}.sec-ico path{fill:currentColor}@property --snake-ang{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.snake-btn{position:relative;z-index:0}.snake-btn:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:11px;padding:2px;z-index:-1;background:conic-gradient(from var(--snake-ang),var(--brand-purple),rgba(109,40,217,.12) 35%,var(--brand-purple-hover) 55%,rgba(109,40,217,.12) 75%,var(--brand-purple));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:snake-spin 1.4s linear infinite;pointer-events:none}@keyframes snake-spin{to{--snake-ang: 360deg}}.badge-kw{background:#f3efe6;color:var(--brand-navy);text-transform:none;letter-spacing:0;font-weight:600}.badge-style{text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.62rem}.badge-miss{background:var(--brand-missing-bg);border:1px solid var(--brand-missing-border);color:var(--brand-missing);text-transform:none;letter-spacing:0}.badge-changed{background:var(--brand-missing-bg);color:var(--brand-missing)}.badge-new{background:var(--brand-copy-bg);color:var(--brand-copy)}.badge-state-ok{background:#4e8a7424;border:1px solid rgba(78,138,116,.5);color:#2f5f4e}.badge-state-warn{background:#c26a1b1f;border:1px solid #e8c39a;color:#a8541c}.badge-state-new{background:var(--brand-purple-bg);border:1px solid var(--brand-purple-border);color:var(--brand-purple)}.badge-loaded-ok,.badge-update,.badge-matched{background:#eddbb7;color:#263d51}.ico-btn.state-ok{background:#4e8a7424;border-color:#4e8a7480;color:#2f5f4e}.ico-btn.state-ok svg path{fill:#4e8a74}.ico-btn.state-ok:hover{background:#4e8a74;border-color:#4e8a74;color:#fff}.ico-btn.state-ok:hover svg path{fill:#fff}.ico-btn.state-warn{background:#c26a1b1f;border-color:#e8c39a;color:#a8541c}.ico-btn.state-warn svg path{fill:#c26a1b}.ico-btn.state-warn:hover{background:#c26a1b;border-color:#c26a1b;color:#fff}.ico-btn.state-warn:hover svg path{fill:#fff}.conv-frac{display:inline-flex;flex-direction:column;align-items:flex-start;margin-top:5px;font-size:.74rem;color:var(--pale-slate);line-height:1.25}.conv-frac span:first-child{padding-bottom:2px;border-bottom:1px solid var(--border-color)}.conv-frac span:last-child{padding-top:2px}.conv-err{color:var(--brand-missing);font-size:.84rem}tr.plan-blocked td{color:var(--pale-slate)}.plan-panel{border:1px solid var(--brand-missing-border);background:var(--brand-missing-bg);border-radius:8px;padding:8px 10px;margin:8px 0}.plan-panel.done{border-color:#4e8a74;background:#4e8a741f}.plan-panel-head{font-size:.75rem;font-weight:800;color:var(--brand-missing);text-transform:uppercase;letter-spacing:.04em}.plan-panel-head.with-meta{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.plan-panel-meta{font-size:.72rem;font-weight:600;color:var(--pale-slate);text-transform:none;letter-spacing:0}.plan-panel.done .plan-panel-head{color:#4e8a74}.plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin:0 0 8px}.plan-head h3.plan-title{display:flex;align-items:center;gap:8px;margin:0;color:var(--brand-navy);font-size:1.05rem;letter-spacing:.02em}.plan-head h3.plan-title svg{width:20px;height:20px;flex-shrink:0}.plan-head h3.plan-title svg path{fill:currentColor}.plan-now{text-align:right}.plan-now-name{font-size:1.05rem;font-weight:700;color:var(--brand-navy);line-height:1.3}.plan-now-yield{font-size:.84rem;margin-top:2px}.plan-line-ico{display:inline-block;vertical-align:-2px;margin-right:6px;color:var(--brand-steel-blue)}.plan-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:6px}.plan-map{border-top:1px dashed var(--brand-missing-border);margin-top:6px;padding-top:6px}.plan-map-row{display:grid;grid-template-columns:minmax(140px,210px) 108px minmax(0,1fr);align-items:center;gap:6px 10px;margin-top:4px}.plan-map-name{line-height:1.25}.plan-map-row>.badge{white-space:nowrap;justify-self:start}.plan-map-row input{min-width:0}@media(max-width:600px){.plan-map-row{grid-template-columns:minmax(0,1fr)}}.plan-counts{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:8px}.plan-actions{margin-top:16px}#loadedPushModal{z-index:900}.plan-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;background:#131f3959}.badge-flash{background:#4e8a74;border-color:#4e8a74;color:#fff;box-shadow:0 0 0 6px #4e8a7473;transform:scale(1.12);transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .12s ease}.badge-drift{background:var(--brand-missing-bg);border:1px solid var(--brand-tomato-red);color:var(--brand-tomato-red)}.mini-badge{display:inline-flex;align-items:center;gap:4px}.mini-badge svg{width:11px;height:11px;flex-shrink:0}.mini-badge svg:not([fill]) path{fill:currentColor}.loaded-state{text-transform:none;letter-spacing:0}button.badge{font-size:.68rem;box-shadow:none;padding:3px 10px}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.recipe-card{border:1px solid var(--border-color);border-radius:12px;overflow:hidden;cursor:pointer;background:#fff;transition:box-shadow .2s,transform .2s}.recipe-card:hover{box-shadow:var(--card-shadow-hover);transform:translateY(-2px)}.recipe-card img{width:100%;height:140px;object-fit:cover;display:block;background:#f3efe6}.recipe-card .rc-body{padding:12px 14px}.recipe-card h3{margin:0 0 6px;font-size:1rem;font-weight:800;color:var(--brand-navy);letter-spacing:-.01em}.recipe-card .rc-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.recipe-card .rc-kw{font-size:.75rem;color:var(--pale-slate)}.rc-spec{font-size:.78rem;color:var(--pale-slate);font-weight:600;margin:0 0 6px}.r-title{text-transform:uppercase;font-size:1.7rem;font-weight:800;letter-spacing:.01em;color:var(--brand-navy);margin:0 0 4px}.r-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.r-top .r-title{flex:1;min-width:0;margin:0}.r-h{text-transform:uppercase;font-weight:800;letter-spacing:.08em;font-size:1.05rem;color:var(--brand-navy);margin:18px 0 8px;border-bottom:2px solid var(--brand-navy);padding-bottom:4px}.r-notes{font-size:.88rem;line-height:1.55;color:#444;white-space:pre-wrap}.r-footer{margin-top:18px;font-size:.75rem;color:var(--pale-slate);border-top:1px solid var(--border-color);padding-top:8px;display:flex;gap:16px;flex-wrap:wrap}.r-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.spec-pron{display:inline-flex;gap:5px;align-items:center;background:var(--bev-theme-badge-bg);color:var(--bev-theme-badge-text);border-radius:9999px;padding:3px 11px;font-size:.78rem;font-weight:700}.spec-pron svg{width:13px;height:13px}.spec-pron svg path{fill:currentColor}.spec-menu{font-size:.85rem;color:var(--pale-slate);font-weight:600;margin:2px 0 10px}.spec-desc{font-size:.98rem;line-height:1.55;color:#444;margin:8px 0}.spec-photo{max-width:100%;max-height:320px;border-radius:10px;margin:10px 0;object-fit:cover}.pair-line{display:flex;gap:8px;align-items:baseline;font-size:.95rem;margin-bottom:5px}.pair-label{font-weight:800;color:var(--brand-navy);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;white-space:nowrap}.pair-note{color:var(--pale-slate)}.allergen-list{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:6px}.allergen-list li{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;color:var(--brand-navy)}.plating-list{list-style:none;margin:6px 0;padding:0}.plating-list li{font-size:.98rem;padding:5px 0;border-bottom:1px solid var(--border-color)}.plating-list li:last-child{border-bottom:none}.plating-list .pl-qty{color:var(--brand-steel-blue);font-weight:700}.crockery-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.service-list{margin:0;padding-left:22px}.service-list li{font-size:.98rem;line-height:1.5;margin-bottom:6px}.step-note{margin:2px 0 8px;color:#555;font-size:.85rem;list-style:none}.pairs-with{border:1px solid var(--border-color);border-radius:10px;padding:12px 14px;background:var(--surface-warm);margin-top:14px}.pairs-with .r-h{margin-top:0}.ing-row{display:grid;grid-template-columns:26px 84px 92px minmax(0,1fr) auto auto auto;gap:6px;margin-bottom:6px;align-items:center}.ing-row input,.ing-row select{min-width:0;width:100%}.ing-row input[type=number]{text-align:right}.ing-row [data-del-ing]:hover{background:#dc2626;border-color:#dc2626;color:#fff;transform:none}.ing-row.is-nested input[data-k=item]{font-weight:700;color:var(--brand-navy);background:var(--surface-warm)}.ing-row .nest-name{width:100%;min-width:0;text-align:left;font-family:inherit;font-size:.85rem;font-weight:700;color:var(--brand-navy);background:var(--surface-warm);border:1px solid var(--pale-slate);border-radius:6px;padding:7px 12px;box-shadow:none;transform:none;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ing-row .nest-name:hover{background:#fff;border-color:var(--brand-tomato-red);transform:none}.ing-row .nest-name.is-miss{color:var(--pale-slate);cursor:default;background:#faf8f5}.ing-row .nest-name.is-miss:hover{border-color:var(--pale-slate)}.ing-row.is-cost .nest-name{background:#eddbb7}.ing-note{font-size:.78rem;color:var(--pale-slate);margin:-2px 0 8px 26px}.ing-note.miss{color:#c0392b}.ing-link{color:var(--brand-navy);font-weight:700;text-decoration:none;border-bottom:1px dotted var(--pale-slate)}.ing-link:hover{color:var(--brand-tomato-red)}.drag-handle{cursor:grab;color:var(--pale-slate);font-size:1rem;-webkit-user-select:none;user-select:none;padding:2px 4px;touch-action:none}.ing-row.dragging{opacity:.5}.ing-row.drop-before{box-shadow:0 -3px 0 var(--brand-tomato-red)}.ing-row.drop-after{box-shadow:0 3px 0 var(--brand-tomato-red)}.pill-auto{background:#eef3f6;color:var(--brand-steel-blue);padding:4px 12px}.t-hl{font-weight:700;background:#f3efe6;padding:0 4px;border-radius:4px}.nest-list{max-height:320px;overflow:auto;margin-top:8px;border:1px solid var(--border-color);border-radius:8px}.nest-pick{display:block;width:100%;text-align:left;background:none;border:none;border-bottom:1px solid var(--border-color);padding:8px 10px;cursor:pointer;font:inherit}.nest-pick:last-child{border-bottom:none}.nest-pick b{display:block;color:var(--brand-navy)}.nest-pick span{font-size:.78rem;color:var(--pale-slate)}.nest-pick:hover{background:var(--surface-warm)}.nest-pick.is-staged{box-shadow:inset 3px 0 0 var(--brand-steel-blue)}.nest-pick.is-staged b,.nest-pick.is-staged span{color:var(--brand-steel-blue)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-grid .full{grid-column:1 / -1}label.f{font-size:.78rem;font-weight:700;color:var(--brand-navy);text-transform:uppercase;letter-spacing:.03em;display:block;margin:10px 0 4px}.req{padding:0 8px 4px;margin:0 -8px;border:1px solid transparent;border-radius:10px}.req-missing{background:var(--brand-missing-bg);border-color:var(--brand-missing-border)}.req-missing>label.f{color:var(--brand-missing)}.req-missing>label.f:after{content:" · required";letter-spacing:.02em}.req-missing input,.req-missing select,.req-missing textarea{border-color:var(--brand-missing-border)}.admin-list-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-color)}.empty{text-align:center;color:var(--pale-slate);padding:40px 20px;font-size:.9rem}.local-banner{background:#fff8e6;border:1px solid #e8c547;border-radius:8px;padding:8px 12px;font-size:.8rem;margin-bottom:12px}.badge-pick{display:flex;gap:6px;flex-wrap:wrap}.badge-pick .pick{border-radius:9999px;font-size:.75rem;font-weight:800;letter-spacing:.04em;padding:6px 13px;background:#fff;border:1px solid var(--border-color);color:var(--brand-navy);cursor:pointer;box-shadow:none;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}.badge-pick .pick svg{width:12px;height:12px;flex-shrink:0}.badge-pick .pick svg path{fill:currentColor}.badge-pick .pick.active{background:var(--brand-steel-blue);color:#fff;border-color:var(--brand-steel-blue)}.badge-pick .pick:hover{transform:translateY(-1px)}.badge-pick .pick-new{background:var(--brand-tomato-red);border-color:var(--brand-tomato-red);color:#fff}.badge-pick .pick-new:hover{background:var(--tomato-jam-hover)}.ico-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:none;cursor:pointer}.ico-btn[hidden]{display:none}.ico-btn svg{width:18px;height:18px}.ico-btn svg path{fill:var(--brand-navy)}.ico-btn:hover{background:#f3efe6;transform:translateY(-1px)}.ico-btn.danger svg path{fill:#dc2626}.ico-btn.danger:hover{background:#dc2626;border-color:#dc2626}.ico-btn.danger:hover svg path{fill:#fff}.ico-btn.warn svg path{fill:#c26a1b}.ico-btn.warn:hover{background:#fbeadd;border-color:#e8c39a}.ico-btn.warn:hover svg path{fill:#a8541c}.ico-btn.labeled{width:auto;height:auto;padding:7px 12px;gap:7px;font-size:.8rem;font-weight:700;color:var(--brand-navy)}.ico-btn.primary{background:#4e8a74;border-color:#4e8a74;color:#fff}.ico-btn.primary svg path{fill:#fff}.ico-btn.primary:hover{background:#406f5e}.ico-btn.primary-p{background:var(--brand-purple);border-color:var(--brand-purple);color:#fff}.ico-btn.primary-p svg path{fill:#fff}.ico-btn.primary-p:hover{background:var(--brand-purple-hover)}.ico-btn.tint-g svg path{fill:#4e8a74}.ico-btn.tint-g:hover{background:#4e8a7424;border-color:#4e8a7466}.ico-btn.tint-p svg path{fill:var(--brand-purple)}.ico-btn.tint-p:hover{background:var(--brand-purple-bg);border-color:var(--brand-purple-border)}.ico-btn.copy svg path{fill:var(--brand-copy)}.ico-btn.copy:hover{background:var(--brand-copy-bg);border-color:var(--brand-copy-border)}.ico-btn.copy:hover svg path{fill:var(--brand-copy-hover)}.ico-btn.on{background:var(--brand-steel-blue);border-color:var(--brand-steel-blue)}.ico-btn.on svg path{fill:#fff}.ico-btn.on:hover{background:var(--brand-steel-blue)}a.ico-btn{text-decoration:none}.ico-btn:disabled,.ico-btn:disabled:hover{opacity:.4;cursor:default;transform:none;background:#fff;border-color:var(--border-color);box-shadow:none}.ico-btn:disabled svg path{fill:var(--pale-slate)}.brand-logo{height:40px;width:40px;border-radius:10px;object-fit:cover}#tabToggle{display:inline-flex;align-items:center;gap:7px}#tabToggle svg{width:16px;height:16px}#tabToggle svg path{fill:#fff}.brand-wrap{display:flex;align-items:center;gap:12px}.edit-cols{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:14px;align-items:start}.edit-cols .edit-side{min-width:0}.edit-mark svg{width:1em;height:1em}.edit-mark svg path{fill:var(--brand-tomato-red)}.edit-mark.copy svg path{fill:var(--brand-copy)}.edit-mark.imported svg path{fill:var(--brand-purple)}@media(max-width:760px){.edit-cols{grid-template-columns:minmax(0,1fr)}}#printSheet{display:none}#printSheet{--p-h-margin: 14px 0 6px;--p-title: 22pt;--p-h-size: 12pt;--p-body: 11.5pt;--p-step: 11.5pt;--p-note: 10pt;--p-photo-w: 120mm;--p-gap: 10px}#printSheet.fit-1{--p-h-margin: 11px 0 5px;--p-photo-w: 104mm;--p-gap: 8px}#printSheet.fit-2{--p-title: 19pt;--p-h-size: 11pt;--p-h-margin: 9px 0 4px;--p-body: 10.5pt;--p-step: 10.5pt;--p-note: 9pt;--p-photo-w: 92mm;--p-gap: 7px}#printSheet.fit-3{--p-title: 17pt;--p-h-size: 10.5pt;--p-h-margin: 7px 0 3px;--p-body: 10pt;--p-step: 10pt;--p-note: 8.5pt;--p-photo-w: 80mm;--p-gap: 6px}#printSheet.grow-1{--p-h-margin: 18px 0 8px;--p-gap: 13px}#printSheet.grow-2{--p-h-margin: 22px 0 10px;--p-gap: 16px}#printSheet .p-title{text-transform:uppercase;font-size:var(--p-title);font-weight:800;letter-spacing:.01em;color:var(--brand-navy);margin:0 0 4px}#printSheet .p-pron{display:flex;align-items:center;gap:6px;font-size:var(--p-body);font-weight:700;color:var(--bev-theme-badge-text);margin:0 0 6px}#printSheet .p-pron svg{width:14px;height:14px;flex-shrink:0}#printSheet .p-pron svg path{fill:currentColor}#printSheet .p-desc{font-size:var(--p-body);line-height:1.45;color:#333;margin:0 0 8px}#printSheet .p-desc.p-italic{font-style:italic}#printSheet .p-pair{font-size:var(--p-body);margin:0 0 4px}#printSheet .p-pair-label{font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:.8em}#printSheet .p-h{display:flex;align-items:center;gap:6px;font-size:var(--p-h-size);font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-navy);border-bottom:2px solid var(--brand-navy);padding-bottom:3px;margin:var(--p-h-margin)}#printSheet .p-h .sec-ico{width:14px;height:14px}#printSheet .p-photo{display:block;width:100%;max-width:var(--p-photo-w);aspect-ratio:4 / 3;height:auto;object-fit:cover;border-radius:8px;margin:8px 0}#printSheet .p-allergens{list-style:none;margin:0;padding:0}#printSheet .p-allergens li{font-size:var(--p-body);font-weight:700;padding:3px 0}#printSheet .p-list{list-style:none;margin:0;padding:0}#printSheet .p-list li{font-size:var(--p-body);padding:4px 0;border-bottom:1px solid #e6e1d6}#printSheet .p-list li:last-child{border-bottom:none}#printSheet .p-steps{margin:0;padding-left:24px}#printSheet .p-steps li{font-size:var(--p-step);line-height:1.45;margin-bottom:var(--p-gap)}#printSheet .p-steps-note{font-size:var(--p-note);color:#555;margin:2px 0 6px 4px}#printSheet .cb-steps{margin:0;padding-left:24px}#printSheet .cb-steps li{font-size:var(--p-step);line-height:1.45;margin-bottom:var(--p-gap)}#printSheet .cb-step-note{font-size:var(--p-note);color:#555}@media print{@page{size:A4 portrait;margin:10mm}body{background:#fff;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.no-print,header,#catBar,#searchRow,.sticky-top-wrapper,.veil,.modal-backdrop,.admin-actions,button,select,input,textarea{display:none!important}body.printing #view-list,body.printing #view-detail,body.printing #view-admin{display:none!important}body.printing #printSheet{display:block!important}#printSheet .p-h,#printSheet .p-list li,#printSheet .p-steps li,#printSheet .cb-steps li,#printSheet .p-photo{break-inside:avoid}}body.print-measure{background:#fff;padding:0}body.print-measure .sticky-top-wrapper,body.print-measure #view-list,body.print-measure #view-detail,body.print-measure #view-admin,body.print-measure .veil,body.print-measure .modal-backdrop{display:none!important}body.print-measure #printSheet{display:block!important;width:190mm;margin:0 auto}.veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#f7f5f0b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center}.veil-inner{background:#fff;border-radius:14px;padding:22px 30px;display:flex;flex-direction:column;gap:10px;font-weight:700;color:var(--brand-navy);box-shadow:var(--card-shadow-hover);min-width:260px}.veil-row{display:flex;align-items:center;gap:12px}.veil-spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--border-color);border-top-color:var(--brand-tomato-red);animation:veil-spin .8s linear infinite;flex-shrink:0}@keyframes veil-spin{to{transform:rotate(360deg)}}.veil-progress{width:100%;height:6px;border-radius:3px;background:var(--border-color);overflow:hidden}.veil-bar{height:100%;width:0%;background:var(--brand-tomato-red);transition:width .2s ease}.veil-count{font-size:.78rem;font-weight:600;color:var(--brand-navy);opacity:.7}.save-spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--border-color);border-top-color:var(--brand-tomato-red);animation:veil-spin .8s linear infinite;flex-shrink:0}.badge-saving{background:#f3efe6;color:var(--brand-navy);display:inline-flex;align-items:center;gap:6px}.badge-saving .save-spin{width:11px;height:11px}.admin-list-row.is-saving{opacity:.72}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#131f3980;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{background:#fff;border-radius:14px;padding:22px;max-width:400px;width:100%;box-shadow:var(--card-shadow-hover)}.modal-card h3{margin:0 0 8px;color:var(--brand-navy);font-size:1.05rem}.modal-card p{margin:0 0 16px;color:#555;font-size:.88rem;white-space:pre-wrap}.modal-card.wide{max-width:920px;max-height:88vh;overflow-y:auto}.op-note{background:var(--surface-warm);border:1px solid var(--border-color);border-radius:8px;padding:8px 10px;font-size:.82rem;color:#444;margin:8px 0}.op-needs{background:var(--brand-missing-bg);border:1px solid var(--brand-missing-border);color:var(--brand-missing);border-radius:8px;padding:8px 10px;font-size:.82rem;margin:8px 0}.op-needs.op-done{background:#4e8a741f;border-color:#4e8a74;color:var(--brand-navy)}.op-json{white-space:pre-wrap;font-size:.72rem;background:var(--surface-warm);border:1px solid var(--border-color);border-radius:8px;padding:8px;max-height:240px;overflow:auto;margin:6px 0 0}.op-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border-color);flex-wrap:wrap}.op-row:last-child{border-bottom:none}.op-row .op-cat{font-weight:800;color:var(--brand-navy);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;min-width:150px}.settings-card{max-width:780px;width:100%;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:88vh}.settings-head{display:flex;align-items:center;gap:8px;padding:18px 20px 10px}.settings-head svg{width:18px;height:18px;flex-shrink:0}.settings-head svg path{fill:var(--brand-navy)}.settings-head h3{margin:0;font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;color:var(--brand-navy)}.settings-shell{display:flex;min-height:360px;overflow:hidden;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.settings-tabs{display:flex;flex-direction:column;gap:6px;flex:0 0 200px;width:200px;min-width:0;padding:14px 10px;border-right:1px solid var(--border-color);background:#faf8f5}.settings-tab{display:flex;align-items:center;gap:8px;text-align:left;background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:9px 12px;font-family:inherit;font-size:.82rem;font-weight:700;color:var(--brand-navy);cursor:pointer;letter-spacing:.01em;transition:all .15s ease;box-shadow:none;transform:none}.settings-tab svg{width:16px;height:16px;display:block;flex-shrink:0}.settings-tab svg path{fill:currentColor}.settings-tab:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 10px #131f391f}.settings-tab.active,.settings-tab.active:hover{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}.settings-content{flex:1;min-width:0;min-height:0;padding:16px 18px;overflow-y:auto;background:#fff}.settings-foot{display:flex;justify-content:flex-end;padding:12px 20px;background:#faf8f5}.settings-explainer{margin:0 0 12px;font-size:.85rem;line-height:1.45;color:var(--pale-slate)}.settings-box{border:1px solid var(--border-color);border-radius:12px;padding:16px 18px;margin:0 0 12px}.settings-box:last-child{margin-bottom:0}.settings-box h4{margin:0 0 8px;font-size:.9rem;font-weight:800;color:var(--brand-navy)}.settings-quiet{margin:0;font-size:.78rem;line-height:1.45;color:var(--pale-slate)}.kv-headline{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.kv-headline strong{font-size:2.1rem;line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--brand-navy)}.kv-headline-k{font-size:.85rem;font-weight:700;color:var(--pale-slate)}.kv-pct{margin-left:auto;font-size:.8rem;font-weight:800;color:var(--brand-steel-blue)}.kv-bar{position:relative;height:10px;margin-top:14px;border-radius:9999px;background:#f3efe6;overflow:hidden}.kv-bar-fill{position:absolute;top:0;bottom:0;left:0;border-radius:9999px;background:var(--brand-steel-blue);transition:width .3s ease}.kv-mark{position:absolute;top:0;bottom:0;width:1px;background:#131f3947}.kv-mark-end{background:#131f3980}.kv-scale{position:relative;height:14px;margin-top:4px;font-size:.66rem;font-weight:700;color:var(--pale-slate)}.kv-scale span{position:absolute;transform:translate(-50%);white-space:nowrap}.kv-scale span:last-child{transform:translate(-100%)}.kv-band{margin:10px 0 0;font-size:.82rem;font-weight:700;color:var(--brand-navy)}.kv-advice{margin:8px 0 0;font-size:.8rem;line-height:1.45;color:#a8541c}.settings-box.is-warn .kv-bar-fill{background:#c26a1b}.settings-box.is-warn .kv-pct{color:#a8541c}.settings-box.is-critical .kv-bar-fill{background:#dc2626}.settings-box.is-critical .kv-pct{color:#b91c1c}.kv-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:10px}.kv-facts>div{display:flex;flex-direction:column;gap:2px;min-width:0}.kv-fact-k{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--pale-slate)}.kv-fact-v{font-size:1rem;font-weight:800;color:var(--brand-navy)}.kv-facts+.settings-quiet,.kv-projection{margin-top:10px}.kv-projection{margin-bottom:0;font-size:.82rem;font-weight:700;color:var(--brand-navy)}.kv-apps{display:flex;flex-direction:column}.kv-app{padding:8px 0;border-bottom:1px dashed var(--border-color)}.kv-app:last-child{border-bottom:0;padding-bottom:0}.kv-app-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.kv-app-name{font-size:.82rem;font-weight:700;color:var(--brand-navy);overflow-wrap:anywhere}.kv-app-num{font-size:.76rem;color:var(--pale-slate);white-space:nowrap}.kv-app-num b{color:var(--brand-navy);font-weight:800}.kv-app-bar{height:6px;margin-top:5px;border-radius:9999px;background:#f3efe6;overflow:hidden}.kv-app-bar span{display:block;height:100%;border-radius:9999px;background:var(--brand-steel-blue)}.kv-app-total{margin-top:4px;padding-top:10px;border-top:2px solid var(--border-color)}.kv-app-total .kv-app-name{font-weight:800}.kv-apps+.settings-quiet{margin-top:12px}@media(max-width:640px){.settings-card{max-height:92vh}.settings-shell{flex-direction:column;min-height:0}.settings-tabs{flex:0 0 auto;width:auto;flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border-color);padding:10px}.settings-tab{flex:0 0 auto}}.modal-actions{display:flex;justify-content:flex-end;gap:8px}#modalOk.danger{background:#dc2626}#modalOk.danger:hover{background:#b91c1c}.pill-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.pill{border-radius:9999px;font-size:.75rem;font-weight:700;padding:4px 8px 4px 12px;background:#f3efe6;color:var(--brand-navy);display:inline-flex;align-items:center;gap:6px}.pill button{background:none;border:none;box-shadow:none;padding:0 2px;font-size:.85rem;color:var(--pale-slate);cursor:pointer}.pill button svg{width:12px;height:12px;display:block}.pill button svg path{fill:#dc2626}.pill button:hover svg path{fill:#b91c1c}.combo-wrap{position:relative}.combo-list{position:absolute;left:0;right:0;top:100%;z-index:50;background:#fff;border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--card-shadow-hover);max-height:220px;overflow-y:auto;margin-top:2px}.combo-list button{display:block;width:100%;text-align:left;background:none;border:none;box-shadow:none;border-radius:0;color:var(--body-text);font-weight:600;padding:8px 12px;font-size:.82rem}.combo-list button:hover,.combo-list button.hl{background:#f3efe6;transform:none}.img-wrap{position:relative;display:inline-block;max-width:100%}.img-wrap img{display:block;max-width:240px;border-radius:8px}.img-overlay{position:absolute;top:6px;left:6px;display:flex;gap:6px}.ico-btn.sm{width:28px;height:28px;border-radius:7px;background:#fffffff0}.ico-btn.sm svg{width:15px;height:15px}@media(max-width:640px){body{padding:0 12px 12px}.sticky-top-wrapper{margin:0 -12px;padding:0 12px}header{padding:12px 14px}header h1{font-size:1.25rem}.form-grid{grid-template-columns:1fr}.recipe-card img{aspect-ratio:16 / 9;height:auto}.ing-row{grid-template-columns:22px 1fr 1fr auto auto;grid-template-areas:"h q u l c" "h i i i d";row-gap:5px}.ing-row>:nth-child(1){grid-area:h}.ing-row>:nth-child(2){grid-area:q}.ing-row>:nth-child(3){grid-area:u}.ing-row>:nth-child(4){grid-area:i}.ing-row>:nth-child(5){grid-area:l;align-self:center}.ing-row>:nth-child(6){grid-area:c;align-self:center}.ing-row>:nth-child(7){grid-area:d;justify-self:end}body.viewing header{padding:8px 10px}body.viewing header h1{font-size:1.05rem}body.viewing .sub,body.viewing #catBar,body.viewing #searchRow{display:none}body.viewing .brand-logo{height:30px;width:30px}body.viewing .sync-status-badge{display:none}}.sec-head{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;user-select:none;-webkit-user-select:none}.sec-head .chev{display:inline-block;flex-shrink:0;line-height:1;font-size:.8rem;color:var(--pale-slate);transition:transform .2s ease}.sec-head:hover .chev{color:var(--brand-navy)}.card.is-collapsed>:not(.sec-head){display:none!important}.card.is-collapsed .sec-head .chev{transform:rotate(-90deg)}.staging-release{border:1px solid var(--border-color);border-radius:10px;padding:10px 12px;margin-top:12px}.staging-release:first-of-type{margin-top:6px}.staging-rel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.staging-rel-head h3,.staging-rel-head h4{margin:0;font-size:.95rem;font-weight:800;color:var(--brand-navy)}.badge-cat-row{flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.badge-staged{background:var(--surface-warm);color:var(--brand-navy);border:1px solid var(--border-color);display:inline-flex;align-items:center;gap:5px}.badge-staged svg{width:11px;height:11px}.badge-staged svg path{fill:currentColor}.badge-costing{background:var(--surface-warm);color:var(--brand-steel-blue);border:1px solid var(--border-color);display:inline-flex;align-items:center;gap:5px;text-transform:none;letter-spacing:0}.ing-row.is-cost input[data-k=item]{font-weight:700;color:#263d51;background:#eddbb7}.ing-row [data-k=cost],.ing-row [data-link-ing],.ing-row [data-unlink-ing]{flex-shrink:0}
