:root{font-family:Arial,'Segoe UI',sans-serif;font-size:14px;color:#20252a;background:#a9a9a9;color-scheme:light;--red:#c84d40;--dark:#253036;--blue:#548fb7;--line:#adb4b9}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #8c949b;border-radius:2px;background:linear-gradient(#fff,#e8e8e8);padding:6px 10px;color:#20252a;min-height:32px}button:hover{background:#dcebf8}button:disabled{cursor:default;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ffc647;outline-offset:2px}input,select,textarea{border:1px solid #9ba3aa;border-radius:0;padding:5px 6px;min-height:32px;background:#fff;color:#17232b}input[type=number]{width:112px;text-align:right}input[type=date]{width:150px}input[type=search]{width:min(340px,80vw)}[hidden]{display:none!important}.app-title{background:#f4f4f4;padding:7px 12px;display:flex;justify-content:space-between;gap:12px;font-size:14px}.app-title span{color:#565e63;font-size:13px}#menus{background:var(--red);display:flex;gap:0;flex-wrap:wrap;padding:0 5px;position:relative;z-index:5}#menus details{position:relative}#menus summary,#menus>button{list-style:none;color:#fff;font-weight:normal;padding:11px 20px;background:none;border:0;border-radius:0;cursor:pointer;min-height:40px}#menus summary::-webkit-details-marker{display:none}#menus summary:hover,#menus details[open] summary,#menus>button:hover{background:#ae3e34}.dropdown{position:absolute;left:0;top:100%;background:#fafafa;box-shadow:2px 3px 7px #0005;border:1px solid #a0a0a0;min-width:265px;padding:4px;z-index:7}.dropdown button{display:block;width:100%;text-align:left;border:0;background:none;white-space:nowrap}.workbar{background:#ddd;padding:6px 12px;display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid #999;flex-wrap:wrap}.workbar>span{font-weight:bold}.workbar>div{display:flex;gap:5px;flex-wrap:wrap}.workbar button{font-size:13px}main{padding:20px 24px 52px}.window{background:var(--dark);border:1px solid #616c75;border-radius:3px;box-shadow:1px 2px 5px #0003;min-height:calc(100vh - 190px);padding:8px}.window-title{background:linear-gradient(#d2e0ec,#a4bfd5);margin:-8px -8px 8px;padding:7px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.window-title h1{font-size:16px;font-weight:normal;margin:0}.window-title span{font-size:12px;color:#405564}.filters{display:flex;flex-wrap:wrap;gap:8px 18px;color:white;padding:8px 8px 12px;align-items:end}.filters label{display:flex;flex-direction:column;gap:4px;font-size:13px}.filters .wide{min-width:260px;flex:1}.filters p{margin:0;font-size:13px;line-height:1.5;flex:1 0 100%;color:#e5edf2}.filters button{background:#555;color:#fff;min-width:90px;min-height:40px}#view{background:#fff;min-height:440px;padding:14px}#view h2{font-size:18px;margin:10px 0 12px}#view h3{font-size:15px;margin:20px 0 10px}.notice{background:#e6eff5;border-left:4px solid #548fb7;padding:10px 12px;line-height:1.5;margin:0 0 12px;font-size:14px}.warning{background:#fff4d2;border-left-color:#b48314}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.toolbar strong{margin-right:auto}.toolbar label{display:flex;align-items:center;gap:6px}.table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line);margin:8px 0 14px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{border-bottom:1px solid #c8cdd1;border-right:1px solid #d5d9dc;padding:7px 8px;text-align:left;vertical-align:top;line-height:1.3}th{background:#dedfe1;font-weight:normal;color:#171b1f;white-space:nowrap}tbody tr:nth-child(even){background:#e9fbfc}tbody tr:hover{background:#d9eaf8}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td small{display:block;max-width:350px;line-height:1.3;font-size:12px;color:#5e6871;margin-top:3px}.link-button{border:0;background:none;color:#174d8c;padding:0;min-height:0;text-align:left;text-decoration:underline}.summary-line{display:flex;gap:20px;flex-wrap:wrap;background:#eef0f2;border:1px solid #c4c8cc;padding:12px;font-size:16px;line-height:1.4}.summary-line strong{font-size:20px}.statusbar{position:fixed;bottom:0;left:0;right:0;display:flex;gap:5px;background:var(--red);color:#fff;padding:4px 7px;font-size:12px;z-index:4;flex-wrap:wrap}.statusbar span{border:1px solid #e09487;padding:2px 7px}.statusbar span:first-child{flex:1}#message{background:#fff4d2;color:#382c14;padding:10px;margin-bottom:8px;border:1px solid #d4a040;white-space:pre-line}.empty{padding:28px;color:#58636c;line-height:1.6;border:1px dashed #b7c0c7}.flow td:first-child{width:190px;font-weight:bold}.tag{font-size:12px;padding:3px 5px;background:#e9edf0;white-space:nowrap}.tag.partial{background:#fff0be}dialog{max-width:min(1040px,95vw);width:100%;border:1px solid #526a7f;border-radius:3px;padding:0;box-shadow:0 8px 30px #0007}dialog::backdrop{background:#0006}.dialog-head{background:#b7cddd;display:flex;align-items:center;padding:7px 12px;justify-content:space-between;gap:12px}.dialog-head h2{font-size:17px;margin:0}#dialog-body{padding:18px;max-height:80vh;overflow:auto}#dialog-body input[type=text],#dialog-body textarea{width:100%;margin:7px 0 12px}#dialog-body textarea{min-height:65px}.note{font-size:13px;line-height:1.5;color:#52606b}.sheets{display:flex;gap:5px;border-bottom:1px solid #a6a9ac;margin:0 0 8px}.sheets button[aria-pressed=true]{background:#d9e9f4;font-weight:bold}.report-paper{max-width:920px;border:1px solid #aaa;padding:22px;margin:12px auto;background:#fff}.report-paper h2{margin-top:0}.draft{border:2px solid #a45623;color:#894014;padding:6px;display:inline-block;font-size:13px}.route-link{color:#1d527e;text-decoration:underline}a{color:#195382}@media(max-width:800px){main{padding:10px 8px 75px}.window-title{align-items:start}.app-title{flex-wrap:wrap}#menus summary,#menus>button{padding:10px 12px}.workbar{align-items:flex-start}.filters .wide{min-width:200px}.window-title span{max-width:160px}.table-wrap{max-height:none}#view{padding:8px}.summary-line strong{font-size:18px}}@media print{body{background:#fff}header,nav,.workbar,.statusbar,.filters,.toolbar,#message,.window-title{display:none!important}main,.window,#view{padding:0;border:0;box-shadow:none}table{font-size:10pt}.table-wrap{overflow:visible;border:0}.report-paper{border:0;margin:0;padding:0}button{display:none!important}body:before{content:'MIO · OUTFOOD — DOCUMENTO DE VALIDACIÓN. NO ACREDITA EJECUCIÓN.';font-size:10pt;display:block;padding-bottom:10px}}
.recipe-fields{display:flex;gap:16px;flex-wrap:wrap;align-items:end}.recipe-fields label,.recipe-notes-field{display:flex;flex-direction:column;gap:6px}.recipe-fields .recipe-name{flex:1;min-width:240px}.recipe-fields input[type=text]{width:100%}fieldset{border:0;padding:0;margin:0;min-width:0}.ingredient-name{width:100%;min-width:180px}.recipe-summary{margin:16px 0}.recipe-summary small{flex-basis:100%;color:#625323}.recipe-notes-field{margin:20px 0}.recipe-notes-field textarea{width:100%;max-width:100%}.recipe-notes{white-space:pre-wrap}.primary-button{background:#235d88;color:#fff;border-color:#164869}.primary-button:hover{background:#164869}textarea:focus-visible{outline:3px solid #ffc647;outline-offset:2px}
.window-actions{display:flex;align-items:center;gap:8px}.window-actions button{min-height:28px;padding:3px 10px}.window-actions #close-window{font-size:23px;line-height:22px;padding:0 9px;min-width:32px;background:#edf2f6;border-color:#6f889a}.window-actions #close-window:hover{background:#bb4339;color:#fff;border-color:#973a32}.window-title{position:sticky;top:0;z-index:3}.window-title h1{line-height:1.4}.sheets{flex-wrap:wrap}#view>h2:first-child{margin-top:2px}.window-actions span{white-space:nowrap}@media(max-width:600px){.window-actions span{display:none}.window-title{align-items:center}.window-title h1{font-size:15px}.window-actions{gap:5px}}
.danger-button{color:#a02e29;border-color:#bd8986}.danger-button:hover{background:#a7352e;color:#fff;border-color:#862922}
.recipe-ingredients{display:grid;gap:12px}.recipe-ingredient{min-width:0;border:1px solid #adb4b9;background:#f9fbfc;padding:14px}.recipe-ingredient-heading{display:flex;align-items:end;gap:16px;margin-bottom:12px}.recipe-ingredient-heading>label{flex:1}.recipe-ingredient label{display:flex;flex-direction:column;gap:5px;font-weight:600;min-width:0}.recipe-ingredient input,.recipe-ingredient select{width:100%;min-width:0;max-width:none!important;font-weight:400}.recipe-ingredient-fields{display:grid;grid-template-columns:minmax(230px,2fr) repeat(4,minmax(100px,1fr));gap:12px}.recipe-ingredient-results{display:flex;gap:12px 32px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #d2dce2}.recipe-ingredient-results>div{display:flex;flex-direction:column;gap:4px;min-width:145px}.recipe-ingredient-results span{font-size:13px;color:#52606b}.recipe-ingredient-results strong{font-size:16px;font-variant-numeric:tabular-nums}.recipe-ingredient-results>div:nth-child(2){color:#174d8c}@media(max-width:1000px){.recipe-ingredient-fields{grid-template-columns:repeat(3,minmax(100px,1fr))}.recipe-ingredient-fields>label:first-child{grid-column:span 2}}@media(max-width:580px){.recipe-ingredient{padding:10px}.recipe-ingredient-fields{grid-template-columns:repeat(2,minmax(90px,1fr))}.recipe-ingredient-fields>label:first-child{grid-column:1/-1}.recipe-ingredient-heading{gap:8px}.recipe-ingredient-heading .ingredient-name{min-width:0}.recipe-ingredient-results{gap:12px}.recipe-ingredient-results>div{min-width:125px}.recipe-fields .recipe-name{min-width:0;flex-basis:100%}}
.recipe-formula-basis{display:flex;flex-direction:column;gap:8px;margin:16px 0;padding:14px 16px;border:1px solid #b8cbd8;border-left:4px solid #235d88;background:#f1f7fb;max-width:760px}.recipe-formula-basis label{display:flex;flex-direction:column;gap:6px;font-weight:700}.recipe-formula-basis select{width:min(100%,340px)}.recipe-formula-basis select[aria-invalid=true]{border:2px solid #b3261e;background:#fff4f2}.recipe-formula-help{margin:0;line-height:1.45;color:#405465}.recipe-formula-preserved{font-size:18px;font-variant-numeric:tabular-nums}
/* Compact plate editor, arranged like the TAPS reference form. */
.recipe-editor-header{padding:14px;background:#253036;color:#fff;align-items:center;gap:14px;margin-bottom:12px}.recipe-editor-header .recipe-name{flex:2;min-width:240px}.recipe-editor-header .recipe-formula-basis{flex:1;min-width:180px;max-width:280px;margin:0;padding:0;border:0;background:none;gap:6px}.recipe-editor-header .recipe-formula-basis>span{font-size:13px}.recipe-editor-header .recipe-formula-preserved{font-size:16px;color:#fff}.recipe-editor-header .recipe-formula-basis select{width:100%}.recipe-header-save{margin-left:auto}.recipe-header-save button{min-height:64px;max-width:160px;background:#f8fbfd;color:#173c58;font-weight:700;display:flex;flex-direction:column;justify-content:center;gap:6px}.recipe-header-save .app-icon{width:24px;height:24px}.recipe-products-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;background:#4387ad;color:white}#view .recipe-products-bar h3{font-size:15px;margin:0}.recipe-products-bar button{flex-shrink:0}.recipe-grid-wrap{overflow:auto;max-width:100%;border:1px solid #4387ad}.recipe-grid{min-width:870px;table-layout:fixed}.recipe-grid th{background:#2d6899;color:#fff;font-size:12px;padding:6px;font-weight:600}.recipe-grid th:nth-child(1){width:29%}.recipe-grid th:nth-child(2){width:8%}.recipe-grid th:nth-child(3),.recipe-grid th:nth-child(4){width:12%}.recipe-grid th:nth-child(5){width:8%}.recipe-grid th:nth-child(6){width:14%}.recipe-grid th:nth-child(7){width:12%}.recipe-grid th:nth-child(8){width:5%}.recipe-grid td{padding:6px;vertical-align:top;background:#f5f9fc;font-size:13px}.recipe-grid tr:nth-child(even) td{background:#e8f1f7}.recipe-grid input,.recipe-grid select{width:100%;max-width:none!important;min-width:0;font-size:13px;padding:5px;min-height:30px}.recipe-grid .ingredient-name{min-width:0}.recipe-grid td>strong{display:block;min-height:30px;padding:6px 2px;text-align:right;white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums;color:#254960}.recipe-grid td>span{display:block;font-size:10px;line-height:1.3;margin-top:4px;color:#536473}.recipe-grid td:last-child button{padding:0;width:28px;min-height:30px;font-size:20px}.recipe-row-options{margin-top:5px}.recipe-row-options summary{font-size:12px;color:#29587b;cursor:pointer}.recipe-row-options[open]{min-width:240px;position:relative;z-index:1;background:#fff;padding:8px;border:1px solid #b4c7d5;box-shadow:0 3px 8px #0002}.recipe-row-options label{display:flex;flex-direction:column;gap:5px;margin:8px 0;font-size:12px}.recipe-row-options .toolbar button{width:auto;min-height:30px;padding:4px 6px;font-size:12px}.recipe-editor-details{margin:10px 0;border-bottom:1px solid #d6e0e7;padding-bottom:10px}.recipe-editor-details>summary{cursor:pointer;color:#315774;font-weight:600}.recipe-editor-details[open]>summary{margin-bottom:10px}.recipe-editor-details .recipe-notes-field{margin:0}.recipe-editor-details .note{line-height:1.5}.recipe-summary{padding:12px 14px;background:#eaf2f6;border:1px solid #c1d1dc;gap:12px 24px}.recipe-summary strong{font-size:18px}@media(max-width:680px){.recipe-editor-header .recipe-name{min-width:0;flex-basis:100%}.recipe-header-save button{min-height:48px;max-width:none;flex-direction:row}.recipe-editor-header .recipe-formula-basis{min-width:160px}.recipe-products-bar{flex-wrap:wrap}.recipe-header-save{margin-left:0}}
.recipe-header-save button:hover{background:#dcebf8;color:#173c58}
.recipe-grid{min-width:650px}.recipe-grid th{white-space:normal}.recipe-grid th:nth-child(1){width:27%}.recipe-grid th:nth-child(2){width:8%}.recipe-grid th:nth-child(3),.recipe-grid th:nth-child(4){width:11%}.recipe-grid th:nth-child(5){width:9%}.recipe-grid th:nth-child(6){width:14%}.recipe-grid th:nth-child(7){width:15%}.recipe-grid th:nth-child(8){width:5%}.recipe-editor-intro{font-size:13px;margin:6px 0;line-height:1.4}@media(max-width:900px){.recipe-grid th,.recipe-grid td{padding:5px 3px}.recipe-grid input,.recipe-grid select{font-size:12px;padding:4px 2px}.recipe-grid td>strong{font-size:11px}.recipe-grid td:last-child button{width:24px}.recipe-editor-header{padding:10px}.recipe-header-save button{min-height:56px}}
.ingredient-picker{margin:5px 0;padding:6px;border:1px solid #90adc2;background:#fff;min-width:0}.ingredient-picker[hidden]{display:none}.ingredient-picker-options{display:grid;gap:4px}.recipe-grid .ingredient-picker-option{display:block;width:100%;min-width:0;padding:7px;text-align:left;white-space:normal;font-size:12px;line-height:1.35;background:#f1f7fb;border:1px solid #b2c8d8}.recipe-grid .ingredient-picker-option:hover,.recipe-grid .ingredient-picker-option:focus-visible{background:#d7eaf6;border-color:#2d6899}.ingredient-picker-note{font-size:12px;line-height:1.4;margin:5px 0}.recipe-grid input[readonly]{background:#edf1f4;color:#314b60;border-color:#c6d0d8}.recipe-grid input[aria-invalid=true]{border:2px solid #b42318;background:#fff2f0}

.cost-target-excess {color:#9e2020;font-weight:700;background:#fff0ef;border-radius:4px;padding:3px 5px;}
#dialog-body [aria-invalid=true] {border:2px solid #b3261e;background:#fff3f2;}
