:root{--text:#554d3f;--text-muted:#847768;--text-h:#18130c;--bg:#fbf4e6;--surface:#fffaf0;--border:#dfd0b7;--border-strong:#c8b693;--accent:#a45f13;--accent-border:#a45f1359;--olive:#64723b;--gold:#c87818;--warning:#c7532c;--chip-bg:#ece9d5;--metric-border:#c7c08d;--shadow:#2a1f1014 0 18px 40px -20px;--sans:Inter, ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--heading:Georgia, "Times New Roman", serif;--mono:"Courier New", ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{box-sizing:border-box;width:100%;max-width:100%;min-height:100svh}body{background:linear-gradient(#a45f130f 1px, transparent 1px), linear-gradient(90deg, #a45f130f 1px, transparent 1px), var(--bg);background-size:32px 32px;margin:0}*,:before,:after{box-sizing:border-box}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:700}h1{letter-spacing:-1.68px;margin:0 0 24px;font-size:56px;line-height:.95}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}button,input{font:inherit}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}.bar-app{grid-template-columns:320px minmax(0,1fr) 260px;max-width:100%;min-height:100svh;display:grid}.inventory-rail,.odd-rail{border-right:1px solid var(--border);min-width:0;padding:24px}.odd-rail{border-left:1px solid var(--border);border-right:0}.brand-block{align-items:flex-start;gap:14px;margin-bottom:24px;display:flex}.brand-mark{border:2px solid var(--text-h);color:var(--text-h);font:700 24px/1 var(--mono);border-radius:9px;place-items:center;width:44px;height:44px;display:grid}.brand-block h1,.home-title{color:var(--text-h);cursor:pointer;font-family:var(--mono);letter-spacing:-2px;text-align:left;background:0 0;border:0;margin:0 0 8px;padding:0;font-size:38px}.brand-block p,.paper-card p,.drink-card p,.section-heading p,.substitution-header p{color:var(--text)}.main-stage{min-width:0;padding:32px}.top-bar{border-bottom:1px solid var(--border);grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:16px;margin:-32px -32px 32px;padding:24px 32px;display:grid}.search-box{border:1px solid var(--border-strong);background:#fffaf0b8;border-radius:8px;align-items:center;gap:10px;padding:0 14px;display:flex}.search-box input{color:var(--text-h);font:inherit;background:0 0;border:0;outline:0;flex:1;min-width:0;padding:15px 0}.view-tabs{border:1px solid var(--border-strong);border-radius:8px;inline-size:max-content;display:flex;overflow:hidden}.view-tabs button{color:var(--text-h);cursor:pointer;font:700 14px/1 var(--sans);white-space:nowrap;background:0 0;border:0;padding:15px 16px}.view-tabs button.active{background:var(--olive);color:#fffaf0}.view-tabs button:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.52}.inventory-count{font-family:var(--mono);white-space:nowrap}.inventory-count strong{color:var(--olive)}.inventory-list{gap:12px;min-width:0;display:grid}.inventory-list.compact{margin-top:18px}.ingredient-search{border:1px solid var(--border-strong);background:#fffaf0b8;border-radius:10px;gap:8px;padding:12px;display:grid}.ingredient-search span{color:var(--text);font:700 11px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase}.ingredient-search input{border:0;border-bottom:1px solid var(--border);color:var(--text-h);font:14px/1.3 var(--sans);background:0 0;outline:0;padding:4px 0 8px}.ingredient-search input:focus-visible{border-color:var(--olive)}.ingredient-search em{color:var(--text-muted);font:12px/1 var(--mono)}.ingredient-group{border:1px solid var(--border);background:#fffaf07a;border-radius:10px;overflow:hidden}.ingredient-group h2{border-bottom:1px solid var(--border);font:700 15px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;margin:0;padding:12px 14px;display:flex}.ingredient-group h2 span{color:var(--text-muted);font-family:var(--sans);letter-spacing:0}.check-row{cursor:pointer;align-items:center;gap:10px;padding:5px 14px;display:flex}.check-row input{accent-color:var(--olive)}.check-row span{color:var(--text-h);overflow-wrap:anywhere;flex:auto;min-width:0;font-size:14px}.check-row em,.unlock-badge{border:1px solid var(--metric-border);color:var(--olive);font:700 11px/1 var(--mono);border-radius:999px;flex:none;padding:4px 6px}.unlock-badge{cursor:help;background:#64723b14;position:relative}.unlock-badge:focus-visible{outline:2px solid var(--olive);outline-offset:2px}.unlock-tooltip{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow);color:var(--text-h);opacity:0;pointer-events:none;white-space:normal;z-index:10;border-radius:10px;gap:6px;inline-size:max-content;min-inline-size:180px;max-inline-size:260px;padding:10px;transition:opacity .16s .7s,transform .16s .7s;display:grid;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-2px)}.unlock-tooltip strong{color:var(--text-h);font:700 12px/1 var(--mono)}.unlock-tooltip span{color:var(--text);font:12px/1.25 var(--sans)}.unlock-badge:hover .unlock-tooltip,.unlock-badge:focus .unlock-tooltip{opacity:1;transform:translate(-50%)translateY(0)}.paper-card,.drink-card,.empty-state,.sub-row{border:1px solid var(--border-strong);box-shadow:var(--shadow);background:#fffaf0c7;border-radius:12px}.paper-card{padding:20px}.paste-card{margin-top:18px}.inline-paste-card{margin-top:0}.paste-card textarea{border:1px solid var(--border-strong);color:var(--text-h);font:14px/1.45 var(--mono);resize:vertical;min-block-size:170px;background:#fffaf0db;border-radius:8px;width:100%;padding:12px;display:block}.paste-card textarea:focus-visible{outline:2px solid var(--olive);outline-offset:2px}.taped{position:sticky;top:24px}.rail-kicker{color:var(--text-h);font:700 13px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}.paper-card strong{color:var(--warning);text-transform:uppercase;margin-bottom:14px;font-size:13px;display:block}.small-note{border-top:1px dashed var(--border-strong);margin-top:18px;padding-top:14px;font-style:italic}.recommendation-stack{gap:28px;display:grid}.section-heading{margin-bottom:12px}.section-heading h2{font-family:var(--mono);margin:0 0 4px;font-size:26px}.section-heading h2 span{background:var(--gold);color:#fff;font:700 15px/1 var(--sans);border-radius:999px;place-items:center;width:26px;height:26px;margin-left:8px;display:inline-grid}.wild-section{border-top:1px dashed var(--border-strong);margin-top:8px;padding-top:24px}.wild-section .section-heading h2 span{background:var(--warning)}.wild-section .drink-card{border-color:#c7532c61}.wild-section .score-ring{border-color:var(--warning);color:var(--warning)}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.drink-card{padding:20px}.clickable-card{cursor:pointer;transition:border-color .18s,transform .18s}.clickable-card:hover{border-color:var(--olive);transform:translateY(-1px)}.card-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.drink-card h3,.original-card h2,.substitution-header h2{color:var(--text-h);font-family:var(--mono);margin:0 0 8px;font-size:25px;line-height:1.1}.score-ring{border:3px solid var(--olive);color:var(--olive);font:700 19px/1 var(--mono);border-radius:999px;flex:none;place-items:center;width:46px;height:46px;display:grid}.ingredient-chips,.metric-pills,.metric-bars{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.ingredient-chips span,.metric-pills span,.metric-bars span{background:var(--chip-bg);color:var(--text-h);font:13px/1 var(--mono);border:1px solid #0000;border-radius:5px;padding:6px 8px}.ingredient-chips span.missing{color:var(--warning);background:#c7532c14;border-color:#c7532c73}.metric-pills span,.metric-bars span{border-color:var(--metric-border);background:0 0}.warning-line{font-family:var(--mono);margin-top:14px;font-size:13px;color:var(--warning)!important}.text-button,.back-button{color:var(--olive);cursor:pointer;font:700 14px/1 var(--mono);background:0 0;border:0;margin-top:14px;padding:0}.back-button{margin:0 0 20px}.empty-state{padding:28px}.empty-state h2{font-family:var(--mono);margin-top:0}.drink-layout{grid-template-columns:320px minmax(0,1fr);gap:32px;min-width:0;max-width:100%;display:grid}.drink-layout>*,.sub-table,.substitution-header,.mode-switch,.workflow-switch{min-width:0}.back-link{color:var(--text-h);cursor:pointer;font:inherit;background:0 0;border:0;margin-bottom:18px;padding:0;text-decoration:none;display:inline-block}.recipe-lines{border-block:1px dashed var(--border-strong);margin:18px 0;padding:12px 0;list-style:none}.recipe-lines li{justify-content:space-between;align-items:center;padding:8px 0;display:flex}.recipe-lines li.missing{color:var(--warning)}.recipe-lines strong{color:inherit;text-transform:none;margin:0;font-size:14px}.substitution-stage{gap:24px;min-width:0;display:grid}.substitution-header{border-bottom:1px dashed var(--border-strong);padding-bottom:20px}.workflow-switch{border:1px solid var(--border-strong);border-radius:10px;inline-size:max-content;display:flex;overflow:hidden}.workflow-switch button{color:var(--text-h);cursor:pointer;font:700 14px/1 var(--mono);background:0 0;border:0;padding:12px 14px}.workflow-switch button+button{border-left:1px solid var(--border-strong)}.workflow-switch button.active{background:var(--olive);color:#fffaf0}.mode-switch{border:1px solid var(--border-strong);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));max-inline-size:760px;display:grid;overflow:hidden}.mode-switch button{color:var(--text-h);cursor:pointer;font:700 15px/1.1 var(--mono);text-align:left;background:0 0;border:0;padding:16px 18px}.mode-switch button+button{border-left:1px solid var(--border-strong)}.mode-switch button span{color:var(--text-muted);font:13px/1.2 var(--sans);margin-top:5px;display:block}.mode-switch button.active{background:var(--olive);color:#fffaf0}.mode-switch button.active span{color:#fffaf0c7}.mode-switch button.danger{color:var(--warning)}.mode-switch button.danger.active{background:var(--warning);color:#fffaf0}.mode-switch button.chaos{color:#7d2f91}.mode-switch button.chaos.active{color:#fffaf0;background:#7d2f91}.sub-table h3{font-family:var(--mono);align-items:baseline;gap:8px;display:flex}.sub-table small{color:var(--text-muted);font-family:var(--sans);font-weight:400}.sub-row{grid-template-columns:minmax(0,1.35fr) 78px 96px minmax(0,1fr) minmax(0,.9fr);align-items:start;gap:16px;min-width:0;margin-top:10px;padding:14px;display:grid}.sub-row>*{min-width:0}.sub-row strong,.score-text{color:var(--text-h);font-family:var(--mono)}.empty-inline{color:var(--text-muted)}.validation-view{gap:24px;display:grid}.validation-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);align-items:start;gap:20px;display:grid}.validation-hero h2{color:var(--text-h);font-family:var(--mono);margin:0 14px 10px 0;font-size:clamp(30px,4vw,42px);line-height:1.05;display:inline-block}.status-chip{border:1px solid var(--gold);color:var(--gold);font:700 14px/1 var(--mono);border-radius:7px;margin:0 8px 8px 0;padding:8px 10px;display:inline-flex}.status-chip.good{border-color:var(--olive);color:var(--olive)}.identity-card{border:1px dashed var(--border-strong);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;display:grid}.identity-card span{color:var(--text)}.identity-card strong{color:var(--text-h)}.validation-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.45fr);gap:20px;display:grid}.detail-card h3{color:var(--text-h);font-family:var(--mono);align-items:center;margin:0 0 16px;font-size:22px;display:flex}.scorecard-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.scorecard-heading h3{margin-bottom:16px}.scorecard-heading .text-button{flex:none;margin-top:4px}.text-button:disabled{color:var(--text-muted);cursor:not-allowed;opacity:.58}.recipe-build-table{grid-template-columns:56px minmax(120px,1fr) minmax(120px,1fr) 80px;display:grid;overflow-x:auto}.recipe-build-table>span{border-bottom:1px solid var(--border);color:var(--text);font:700 12px/1 var(--mono);background:#ece9d59e;padding:10px}.recipe-build-row{display:contents}.recipe-build-row span{border-bottom:1px solid var(--border);color:var(--text-h);padding:12px 10px}.recipe-build-row span.substituted{color:var(--olive);background:#c878181f;font-weight:700}.metric-comparison{border-bottom:1px solid var(--border);grid-template-columns:92px 80px minmax(120px,1fr) minmax(160px,1.2fr);align-items:center;gap:12px;padding:10px 0;display:grid}.metric-comparison span,.metric-comparison em{color:var(--text)}.metric-comparison strong{color:var(--text-h);font-family:var(--mono)}.range-track{background:#64723b29;border-radius:999px;height:8px;position:relative}.range-track i{background:var(--olive);border-radius:inherit;height:100%;min-inline-size:8px;display:block}.detail-card ul{margin:0;padding-left:20px}.detail-card li+li{margin-top:10px}.manual-workflow{gap:24px;min-width:0;display:grid}.creator-layout{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:start;gap:20px;min-width:0;display:grid}.creator-card,.import-card,.metric-card{min-width:0}.creator-side-stack{gap:20px;min-width:0;display:grid}.field-stack{gap:8px;display:grid}.field-stack span,.creator-row label span{color:var(--text);font:700 12px/1 var(--mono);text-transform:uppercase}.field-stack select,.field-stack input,.creator-row input,.creator-row select{border:1px solid var(--border-strong);color:var(--text-h);font:14px/1.3 var(--sans);background:#fffaf0db;border-radius:8px;min-width:0;padding:10px}.recipe-name-field{margin-bottom:18px}.creator-rows{gap:12px;margin-top:18px;display:grid}.creator-row{border:1px solid var(--border);border-radius:10px;grid-template-columns:90px 120px minmax(160px,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.creator-row label{gap:6px;min-width:0;display:grid}.save-recipe-button{margin-left:16px}.saved-recipe-stack{gap:10px;display:grid}.saved-recipe-row{border:1px solid var(--border);border-radius:10px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px;display:grid}.saved-recipe-row strong{color:var(--text-h);font-family:var(--mono);display:block}.saved-recipe-row span{color:var(--text);margin-top:4px;display:block}.danger-text{color:var(--warning)}.confirmed-list{border-top:1px dashed var(--border-strong);margin-top:18px;padding-top:14px}.confirmed-list h3,.confirmed-list p{margin-bottom:8px}.custom-ingredient-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.config-card textarea{border:1px solid var(--border-strong);color:var(--text-h);font:13px/1.45 var(--mono);resize:vertical;min-block-size:180px;background:#fffaf0db;border-radius:8px;width:100%;padding:12px;display:block}.config-actions{flex-wrap:wrap;gap:16px;margin-bottom:14px;display:flex}.match-stack{gap:12px;display:grid}.match-row{border:1px solid var(--border);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:12px;display:grid}.match-row strong,.confirmed-list strong{color:var(--text-h);font-size:inherit;text-transform:none;margin:0;display:inline}.match-row span,.match-row em{color:var(--text);margin-top:5px;display:block}.warning-match{border-color:#c7532c7a}@media (width<=1280px){.bar-app{grid-template-columns:280px minmax(0,1fr)}.odd-rail{border-left:0;border-top:1px solid var(--border);grid-column:1/-1}.taped{position:static}}@media (width>=1181px) and (width<=1320px){.top-bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"search count""tabs tabs"}.search-box{grid-area:search}.view-tabs{grid-area:tabs;justify-self:start}.workflow-switch{inline-size:100%}.workflow-switch button{flex:1 1 0}.inventory-count{grid-area:count}}@media (width<=860px){.bar-app,.drink-layout,.card-grid,.top-bar{grid-template-columns:1fr}.inventory-rail{border-bottom:1px solid var(--border);border-right:0;padding:18px 18px 12px}.brand-block{align-items:center}.brand-block h1,.home-title{font-size:32px}.brand-block p{display:none}.inventory-list:not(.compact){gap:8px}.inventory-list:not(.compact) .ingredient-group{grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);display:grid}.inventory-list:not(.compact) .ingredient-group h2{border-bottom:0;border-right:1px solid var(--border)}.inventory-list:not(.compact) .check-row{padding:9px 10px;display:inline-flex}.inventory-list:not(.compact) .check-row span{white-space:normal}.main-stage{padding:20px}.top-bar{margin:-20px -20px 20px;padding:20px}.view-tabs{background:var(--surface);z-index:4;grid-template-columns:repeat(3,minmax(0,1fr));inline-size:100%;display:grid;position:sticky;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #2a1f101f}.inventory-count{white-space:normal}.odd-rail{padding:18px}.sub-row,.validation-hero,.validation-grid,.identity-card,.creator-layout,.creator-row,.custom-ingredient-row,.saved-recipe-row,.match-row,.metric-comparison{grid-template-columns:1fr}.scorecard-heading{display:grid}}@media (width<=520px){.inventory-list:not(.compact) .ingredient-group{grid-template-columns:1fr}.inventory-list:not(.compact) .ingredient-group h2{border-bottom:1px solid var(--border);border-right:0}.check-row span,.ingredient-chips span,.metric-pills span,.metric-bars span{font-size:12px}.drink-card h3,.original-card h2,.substitution-header h2{font-size:22px}.recipe-build-table{grid-template-columns:42px 128px 128px 72px}}
