/* OFICINA UI-098 — ações de item em um único lugar.
 * Menus criados por JS com Lucide, dois toques para executar. O painel fica
 * no body (portal) para não ser cortado pela grade GridStack nem pelos cards.
 */
.ofc-context-item098{position:relative;isolation:isolate;min-width:0}
.ofc-context098{position:relative;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;z-index:2}
.ofc-context-trigger098{
 display:inline-grid;place-items:center;flex:none;
 width:42px;height:42px;min-height:42px;min-width:42px;
 border:1px solid rgba(175,218,157,.46);border-radius:50%;
 color:#e3f3da;background:linear-gradient(145deg,#3b5740,#22362b);
 box-shadow:inset 0 1px rgba(255,255,255,.13),0 4px 15px #0003;
 cursor:pointer;touch-action:manipulation;
}
.ofc-context-trigger098[aria-expanded=true]{background:#a5d978;color:#162717;border-color:#dbffa8}
.ofc-context-trigger098:hover{filter:brightness(1.13)}
.ofc-context-icon098{display:block;width:18px;height:18px;flex:none;stroke:currentColor;fill:none;pointer-events:none}
.ofc-context-radial098{
 position:fixed!important;z-index:2147482500;
 width:204px;min-height:197px;
 display:none;isolation:isolate;overflow:visible;
 border-radius:45%;border:1px solid rgba(192,244,173,.4);
 background:radial-gradient(circle at 45% 34%,rgba(70,105,71,.98),rgba(21,33,25,.98) 75%);
 box-shadow:0 18px 45px #0009,inset 0 1px #ffffff28;
 -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
}
.ofc-context-radial098.is-open{display:block}
.ofc-context-action098{
 display:grid;place-items:center;position:absolute;
 width:43px;height:43px;min-height:43px;min-width:43px;
 border:1px solid rgba(200,243,171,.34);border-radius:50%;
 background:rgba(36,58,40,.96);color:#e6f4df;cursor:pointer;
 transition:background .14s ease,transform .14s ease;touch-action:manipulation;
}
.ofc-context-action098:hover,
.ofc-context-action098:focus-visible,
.ofc-context-action098.is-armed{
 background:#c4f496;color:#13231a;border-color:#edffc7;
 transform:scale(1.07);
}
.ofc-context-action098[data-ofc-action098=delete]{border-color:#ca817e;color:#ffe1dc}
.ofc-context-action098[data-ofc-action098=delete].is-armed{background:#f0a59d;color:#3d1418}
.ofc-context-action098:nth-child(1){left:80px;top:12px}
.ofc-context-action098:nth-child(2){left:135px;top:46px}
.ofc-context-action098:nth-child(3){left:135px;top:104px}
.ofc-context-action098:nth-child(4){left:24px;top:104px}
.ofc-context-action098:nth-child(5){left:24px;top:46px}
.ofc-context-action098:nth-child(6){left:80px;top:72px}
.ofc-context-tip098{
 position:absolute;bottom:9px;left:8px;right:8px;
 display:block;min-height:30px;padding:3px 6px;
 font:750 .66rem/1.25 system-ui,sans-serif;
 color:#deefd3;text-align:center;overflow-wrap:anywhere;
 pointer-events:none;
}
.ofc-context-radial098 .ofc-context-action098:focus-visible,
.ofc-context-trigger098:focus-visible,
.ofc-dialog-close098:focus-visible,
.ofc-edit-dialog098 :is(input,select,textarea,button):focus-visible{
 outline:2px solid #ddff9e;outline-offset:3px;
}
/* Catálogo Pandinha: um botão de ações junto da disponibilidade; o details
   antigo fica no DOM como fallback dos handlers/API, mas não aparece duplicado. */
#workbench .inventory-item.ofc-context-item098{
 display:flex;align-items:center;gap:10px;
 padding-inline:10px!important;overflow:visible!important;
 border-radius:14px;
}
#workbench .inventory-item.ofc-context-item098>.inv-actions-076.ofc-context-legacy098{display:none!important}
#workbench .inventory-item.ofc-context-item098 .inventory-item-text{flex:1 1 0;min-width:0}
#workbench .inventory-item.ofc-context-item098>.ofc-context098{margin-left:auto}
#workbench .ofc-inventory-create-replaced098{display:none!important}
#workbench .pd-ingredient-new098{
 display:inline-flex;align-items:center;justify-content:center;gap:9px;
 width:100%;min-height:46px;margin:7px 0 14px;
 background:linear-gradient(125deg,#b3e482,#a0d878);color:#17281a;
 border:1px solid #c2f49b;border-radius:12px;
 font-size:.84rem;font-weight:850;cursor:pointer;
}
#workbench[data-access=reader] .pd-ingredient-new098{display:none!important}
/* O form de ingrediente foi movido, sem clonar listeners ou alterar schema. */
.ofc-edit-dialog098{
 width:min(690px,calc(100vw - 18px));max-width:calc(100vw - 18px);
 max-height:min(90dvh,960px);min-height:0;
 margin:auto;padding:0;border:1px solid #698467;border-radius:20px;
 background:#16241a;color:#f0f7ec;
 box-shadow:0 24px 85px #000b,inset 0 1px #ffffff24;
 overflow-y:auto;overscroll-behavior:contain;
}
.ofc-edit-dialog098::backdrop{background:rgba(4,9,6,.76);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.ofc-dialog-shell098{padding:clamp(14px,3vw,25px);min-width:0}
.ofc-dialog-head098{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 border-bottom:1px solid #4d6b4c;padding-bottom:11px;margin-bottom:12px;
}
.ofc-dialog-head098 h2{margin:0;font-size:clamp(1.1rem,3.2vw,1.55rem);color:#f3f8ed;line-height:1.25}
.ofc-dialog-close098{
 display:grid;place-items:center;flex:none;width:43px;height:43px;min-height:43px;
 border:1px solid #789071;border-radius:50%;background:#2b402f;color:#f0f6eb;cursor:pointer
}
.ofc-dialog-caption098{
 margin:0 0 16px;line-height:1.5;font-size:.8rem;color:#b7ceb2;
}
#pd-ingredient-editor098 .inventory-form{
 display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
 gap:12px;max-width:none!important;min-width:0;
}
#pd-ingredient-editor098 .inventory-form>label{
 display:flex;flex-direction:column;gap:6px;
 font-size:.77rem;font-weight:780;color:#d7eacb;min-width:0;
}
#pd-ingredient-editor098 .inventory-form label:has(> textarea),
#pd-ingredient-editor098 .inventory-form>.inventory-form-actions,
#pd-ingredient-editor098 .inventory-form>.inventory-fill-setting{
 grid-column:1/-1;
}
#pd-ingredient-editor098 .inventory-form :is(input:not([type=checkbox]),select,textarea){
 width:100%;min-width:0;min-height:43px;
 background:#203323;color:#ecf9e6;border:1px solid #597b5d;
 border-radius:10px;padding:9px 11px;font:inherit;
}
#pd-ingredient-editor098 .inventory-form-actions{
 display:flex;align-items:center;gap:10px;flex-wrap:wrap;
 margin-top:5px;padding-top:12px;border-top:1px solid #456146;
}
#pd-ingredient-editor098 .inventory-form-actions button{
 min-height:46px;padding:10px 14px;border-radius:11px;
}
#pd-ingredient-editor098 .inventory-form-actions button[type=submit]{
 background:#b8ea82;color:#14241b;border:1px solid #d9ff9f;font-weight:900
}
#pd-ingredient-editor098 #inventory-feedback{flex:1 1 170px;min-width:0;font-size:.76rem}
body[data-theme=light] .ofc-edit-dialog098{
 background:#f2f8ee;color:#203723;border-color:#adc3a8;
}
body[data-theme=light] .ofc-dialog-head098{border-color:#bed1b8}
body[data-theme=light] .ofc-dialog-head098 h2{color:#264629}
body[data-theme=light] .ofc-dialog-caption098{color:#567051}
body[data-theme=light] #pd-ingredient-editor098 .inventory-form>label{color:#385a36}
body[data-theme=light] #pd-ingredient-editor098 .inventory-form :is(input:not([type=checkbox]),select,textarea){
 background:#fff;color:#223c27;border-color:#b3ccb2
}
body[data-theme=light] .ofc-dialog-close098{background:#dcebd6;color:#254326}
/* Cardápio Studio: uma lista focada e um editor dedicado sem segundo painel
   de dezenas de campos sempre exposto no desktop. */
#screen-products .products-grid{display:block!important;min-width:0}
#screen-products .product-browser{width:min(100%,1080px);max-width:1080px;margin-inline:auto}
#screen-products .ofc-catalog-item098{
 display:flex;align-items:center;gap:8px;min-width:0;padding:6px;
 border-radius:13px;border:1px solid #48614c;background:rgba(35,52,38,.75);
 margin:7px 0;
}
#screen-products .ofc-catalog-item098 .item-button{
 display:flex;align-items:center;flex:1 1 0;min-width:0;
 margin:0;border:0!important;background:transparent!important;
}
#screen-products .ofc-catalog-item098 .item-button.active{
 color:var(--studio-accent,#c6ff00)
}
#screen-products .ofc-catalog-item098 .ofc-context098{margin-right:3px}
#screen-products .ofc-catalog-item098 .item-price{margin-left:auto}
#ofc-product-editor098 #item-form{display:grid;gap:14px;width:100%;min-width:0}
#ofc-product-editor098 #item-form .fields{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
#ofc-product-editor098 #item-form label{display:grid;gap:6px;min-width:0}
#ofc-product-editor098 #item-form :is(input:not([type=checkbox]),select,textarea){
 min-height:43px;width:100%;min-width:0;max-width:100%;
 color:#f1faed;background:#253629;border:1px solid #5b7c5d;
 border-radius:9px;padding:9px 11px;
}
#ofc-product-editor098 #item-form :is(button,.upload-control){min-height:43px}
#ofc-product-editor098 #item-form .form-actions{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;
}
#ofc-product-editor098 #item-form .form-actions>*{min-width:0}
#ofc-product-editor098 #item-form .form-actions button[type=submit]{grid-column:1/-1}
body[data-panel-theme=light] #ofc-product-editor098 #item-form :is(input:not([type=checkbox]),select,textarea){
 background:#fff;color:#24412a;border-color:#adbea9
}
body[data-panel-theme=light] #screen-products .ofc-catalog-item098{background:#eaf5e8;color:#294e2c}
.ofc-move-dialog098 .ofc-move-choices098{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ofc-move-dialog098 .ofc-move-choices098 button{
 min-height:46px;padding:8px;border:1px solid #769975;border-radius:11px;
 background:#29452f;color:#edf7e6;font-weight:800;cursor:pointer
}
/* Dentro da página de grid, preservar apenas as duas alças e 1 ícone de contexto.
   Os handlers antigos ficam disponíveis pelo menu (inclusive via teclado). */
body.ofc-book-frame .ofc-context-book098{
 display:flex;align-items:center;justify-content:flex-end;gap:5px;
 overflow:visible!important;flex-wrap:nowrap!important;min-height:48px;
}
body.ofc-book-frame .ofc-context-book098>button[data-book-action],
body.ofc-book-frame .ofc-context-book098>select.book-move-select{display:none!important}
body.ofc-book-frame .ofc-context-book098>button[data-book-drag],
body.ofc-book-frame .ofc-context-book098>.book-grid-handle{display:inline-flex!important}
body.ofc-book-frame .ofc-context-book098>.ofc-context098{margin-left:auto}
body.ofc-book-frame .ofc-context-book098 .ofc-context-trigger098{
 width:38px;height:38px;min-width:38px;min-height:38px
}
body.ofc-book-frame .ofc-context-book098 .ofc-context-radial098{font-family:system-ui,sans-serif}
@media(max-width:650px){
 #pd-ingredient-editor098 .inventory-form{grid-template-columns:1fr}
 #pd-ingredient-editor098 .inventory-form>label{grid-column:1/-1}
 #screen-products .ofc-catalog-item098{gap:2px}
 #screen-products .ofc-catalog-item098 .item-button{padding:7px;gap:6px}
 #screen-products .ofc-catalog-item098 .item-price{font-size:.72rem}
 #ofc-product-editor098 #item-form .fields{grid-template-columns:1fr}
 #ofc-product-editor098 #item-form .form-actions{grid-template-columns:1fr}
 #ofc-product-editor098 #item-form .form-actions button[type=submit]{grid-column:1}
 .ofc-edit-dialog098{width:calc(100vw - 12px);max-width:calc(100vw - 12px);max-height:94dvh;border-radius:14px}
 .ofc-dialog-shell098{padding:13px}
 .ofc-move-dialog098 .ofc-move-choices098{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
 .ofc-context098 *, .ofc-context-radial098 *,
 .ofc-edit-dialog098 *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}


/* UI-098 — edição de ingredientes que pertencem a uma receita.
   A lista exibe apenas nome+medida; a ficha original é editada no diálogo. */
#workbench #ingredients-editor>.pd-recipe-ingredient-hidden098{display:none!important}
#workbench #ingredients-editor>.pd-recipe-ingredient-row098{
 display:flex;align-items:center;gap:11px;min-height:74px;min-width:0;
 border:1px solid #557355;border-radius:14px;
 background:linear-gradient(125deg,rgba(44,69,48,.9),rgba(25,37,29,.92));
 padding:10px 12px;
}
#workbench #ingredients-editor>.pd-recipe-ingredient-row098>svg{
 width:29px;height:29px;flex:none;color:#c8ee97
}
#workbench .pd-recipe-ingredient-text098{
 min-width:0;flex:1 1 auto;display:grid;gap:3px
}
#workbench .pd-recipe-ingredient-text098 strong{font-size:.89rem;color:#f3f8ed;overflow-wrap:anywhere}
#workbench .pd-recipe-ingredient-text098 small{font-size:.73rem;color:#b9d2b6;overflow-wrap:anywhere}
#workbench .pd-recipe-ingredient-row098>.ofc-context098{margin-left:auto}
#pd-recipe-ingredient-dialog098{width:min(790px,calc(100vw - 14px))}
#pd-recipe-ingredient-dialog098 .pd-recipe-ingredient-content098{display:block;min-width:0}
#pd-recipe-ingredient-dialog098 .pd-recipe-ingredient-content098>.edit-card{
 display:grid;gap:12px;background:transparent!important;border:0!important;
 box-shadow:none!important;padding:0!important;margin:0!important;
}
#pd-recipe-ingredient-dialog098 .edit-top{margin:0;padding-bottom:6px}
#pd-recipe-ingredient-dialog098 .edit-top .edit-controls{display:none!important}
#pd-recipe-ingredient-dialog098 .ingredient-extra[open]>summary{display:none!important}
#pd-recipe-ingredient-dialog098 .ingredient-extra .ingredient-advanced{display:grid;gap:11px;grid-template-columns:repeat(2,minmax(0,1fr))}
#pd-recipe-ingredient-dialog098 .ingredient-fields{
 display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;
}
#pd-recipe-ingredient-dialog098 .edit-card label{
 min-width:0;display:grid;gap:6px;font-size:.78rem;color:#d4e9d0;
}
#pd-recipe-ingredient-dialog098 .edit-card label:has(textarea){grid-column:1/-1}
#pd-recipe-ingredient-dialog098 .edit-card :is(input:not([type=checkbox]),select,textarea){
 width:100%;min-width:0;min-height:43px;padding:9px;
 background:#243929;border:1px solid #587b5b;border-radius:10px;
 color:#f1faeb;
}
#pd-recipe-ingredient-dialog098 .edit-card .micro-preview{
 padding:9px 10px;background:#283c2c;border:1px solid #51714e;
 border-radius:10px;color:#cefa9d
}
#pd-recipe-ingredient-dialog098 .pd-recipe-dialog-actions098{
 display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;
 gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid #50694c;
}
#pd-recipe-ingredient-dialog098 .pd-recipe-dialog-actions098 button{
 min-height:47px;padding:11px 14px;border-radius:11px;
}
#pd-ingredient-editor098 .inventory-reset-054{display:none!important}
#ofc-product-editor098 #item-form .form-actions :is(#move-item-up,#move-item-down,#duplicate-item,#delete-item){display:none!important}
body[data-theme=light] #workbench #ingredients-editor>.pd-recipe-ingredient-row098{
 background:linear-gradient(120deg,#edf6e7,#dcebd6);border-color:#a2c199
}
body[data-theme=light] #workbench .pd-recipe-ingredient-text098 strong{color:#234527}
body[data-theme=light] #workbench .pd-recipe-ingredient-text098 small{color:#4c744a}
body[data-theme=light] #pd-recipe-ingredient-dialog098 .edit-card label{color:#325737}
body[data-theme=light] #pd-recipe-ingredient-dialog098 .edit-card :is(input:not([type=checkbox]),select,textarea){
 background:#fff;color:#28432d;border-color:#adcba5
}
@media(max-width:600px){
 #pd-recipe-ingredient-dialog098 .ingredient-fields,
 #pd-recipe-ingredient-dialog098 .ingredient-extra .ingredient-advanced{grid-template-columns:1fr}
 #pd-recipe-ingredient-dialog098 .ingredient-fields>*,
 #pd-recipe-ingredient-dialog098 .ingredient-extra .ingredient-advanced>*{grid-column:1/-1}
 #pd-recipe-ingredient-dialog098 .pd-recipe-dialog-actions098{display:grid;grid-template-columns:1fr}
}
