:root{--text:#3f3a45;--text-h:#08060d;--bg:#fff;--bg-subtle:#f7f6f9;--border:#e5e4e7;--accent:#aa3bff;--accent-text:#fff;--danger:#d1425a;--success:#3b8a3f;--warning:#b3720f;--bottom-nav-height:56px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#c7c5cc;--text-h:#f3f4f6;--bg:#16171d;--bg-subtle:#1d1e26;--border:#2e303a;--accent:#c084fc;--accent-text:#16171d;--danger:#e5798d;--success:#6bc26f;--warning:#e0a848}}*{box-sizing:border-box}body{margin:0}h1,h2{font-family:var(--sans);color:var(--text-h);font-weight:600}h1{margin:0;font-size:24px}h2{margin:0;font-size:16px}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.app{flex-direction:column;max-width:640px;min-height:100svh;margin:0 auto;display:flex}.app-main{padding-bottom:calc(var(--bottom-nav-height) + max(10px, env(safe-area-inset-bottom)));flex:1;overflow-y:auto}.page{padding:16px}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header-actions{flex-shrink:0;gap:8px;display:flex}.import-menu-wrapper{position:relative}.import-menu{z-index:10;background:var(--bg);border:1px solid var(--border);border-radius:8px;min-width:140px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 4px 12px #00000029}.import-menu li+li{margin-top:2px}.import-menu a{border-radius:6px;padding:8px 10px;font-size:14px;display:block}.import-menu a:hover,.import-menu a:focus{background:var(--bg-subtle)}.section-heading{margin:20px 0 8px}.empty-text{color:var(--text);opacity:.7;padding:12px 0}.error-text{color:var(--danger);margin:8px 0}.notice-banner{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, var(--bg-subtle));border-left:3px solid var(--warning);border-radius:6px;margin:12px 0;padding:10px 12px;font-weight:600}.import-mode-toggle{gap:8px;margin-bottom:16px;display:flex}.btn{border:1px solid var(--border);background:var(--bg-subtle);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:15px;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn-secondary{background:var(--bg-subtle)}.btn-danger{color:var(--danger);border-color:var(--danger);background:0 0}.btn-icon{color:var(--text);opacity:.6;background:0 0;border-color:#0000;padding:6px 10px}.btn:disabled{opacity:.6;cursor:default}.search-input{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;width:100%;margin-bottom:12px;padding:10px 12px}.checkbox-filter{align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.checkbox-filter input{width:18px;height:18px}.list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.list-item{border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.list-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.list-item-title{color:var(--text-h);font-weight:600}.list-item-sub{opacity:.7;font-size:13px}.stock-toggle input{width:20px;height:20px}.ingredient-type-group{margin-bottom:8px}.type-heading{opacity:.6;margin:14px 0 6px;font-size:13px;font-weight:600}.quantity-controls{flex-shrink:0;align-items:center;gap:2px;display:flex}.quantity-controls .btn-icon{padding:4px 8px;font-size:14px}.quantity-value{text-align:center;min-width:20px;font-size:14px;font-weight:600}.form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field span,.field-label{opacity:.75;font-size:13px;font-weight:600}.field-hint{opacity:.6;margin:-2px 0 4px;font-size:13px}.field input,.field select,.field textarea{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;width:100%;padding:10px 12px}.field-checkbox{flex-direction:row;align-items:center;gap:8px}.tag-input-wrapper{position:relative}.tag-suggestions{z-index:10;background:var(--bg);border:1px solid var(--border);border-radius:8px;max-height:180px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #00000029}.tag-suggestions button{text-align:left;cursor:pointer;width:100%;color:inherit;background:0 0;border:none;border-radius:6px;padding:8px 10px;font-size:14px;display:block}.tag-suggestions button:hover,.tag-suggestions button:focus{background:var(--bg-subtle)}.field-checkbox input{width:20px;height:20px}.form-actions{gap:10px;margin-top:8px;display:flex}.ingredients-editor{flex-direction:column;gap:8px;display:flex}.ingredient-row-wrapper.is-base-spirit{border-left:3px solid var(--accent);border-radius:0;padding-left:8px}.base-spirit-caption{color:var(--accent);text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px;font-size:11px;font-weight:600}.ingredient-row{align-items:center;gap:4px;display:flex}.drag-handle{width:20px;height:36px;color:var(--text);opacity:.45;cursor:grab;touch-action:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.drag-handle:active{cursor:grabbing;opacity:.9}.ingredient-row-name{flex:2;min-width:0}.ingredient-row-amount,.ingredient-row-unit{flex:1;min-width:0}.ingredient-row input[type=text],.ingredient-row input[type=number]{border:1px solid var(--border);background:var(--bg-subtle);border-radius:8px;width:100%;padding:8px 10px}.ingredient-row-optional{white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.recipe-view-meta{opacity:.7;margin-bottom:16px}.double-toggle{margin-bottom:12px}.recipe-view-ingredients{margin:0;padding-left:0;list-style:none}.recipe-view-ingredients li{align-items:center;gap:8px;margin-bottom:6px;display:flex}.stock-icon{flex-shrink:0}.stock-icon.in-stock{color:var(--success)}.stock-icon.missing{color:var(--danger)}.stock-icon.missing-optional{color:var(--warning)}.markdown-content p{margin:0 0 1em}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content ul,.markdown-content ol{padding-left:20px}.markdown-content a{color:var(--accent)}.markdown-content code{background:var(--bg-subtle);border-radius:4px;padding:1px 4px;font-size:.9em}.recipe-view-url{overflow-wrap:anywhere;margin-bottom:16px}.recipe-view-url a{color:var(--accent);text-decoration:underline}.recipe-grid{flex-direction:column;gap:8px;display:flex}.recipe-card{border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.recipe-card-body{flex:1;min-width:0}.recipe-card-title{color:var(--text-h);font-weight:600}.recipe-card-sub{opacity:.7;margin-top:2px;font-size:13px}.recipe-card-missing{color:var(--danger);margin-top:6px;font-size:13px}.bottom-nav{border-top:1px solid var(--border);background:var(--bg);max-width:640px;padding-bottom:max(10px, env(safe-area-inset-bottom));margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-link{text-align:center;opacity:.6;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 4px 4px;font-size:11px;display:flex}.bottom-nav-link.active{opacity:1;color:var(--accent);font-weight:600}.monogram{color:#fff;-webkit-user-select:none;user-select:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.photo-thumbnail{object-fit:cover;border-radius:8px;flex-shrink:0}.list-item-thumb{flex-shrink:0}.detail-hero{cursor:pointer;border-radius:16px;width:160px;height:160px;margin:0 auto 16px;display:flex;overflow:hidden}.detail-hero.photo-thumbnail{border-radius:16px;width:160px;height:160px}.detail-hero .monogram{border-radius:16px}.ingredient-view-details{grid-template-columns:1fr 1fr;gap:12px 16px;margin:16px 0;display:grid}.ingredient-view-details dt{opacity:.6;margin-bottom:2px;font-size:12px;font-weight:600}.ingredient-view-details dd{color:var(--text-h);margin:0}.photo-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;display:grid}.photo-gallery-item{aspect-ratio:1;border:1px solid var(--border);border-radius:10px;position:relative;overflow:hidden}.photo-gallery-item img{object-fit:cover;width:100%;height:100%;display:block}.photo-gallery-item-actions{background:linear-gradient(#0000,#0000008c);justify-content:flex-end;gap:2px;padding:4px;display:flex;position:absolute;inset:auto 0 0}.photo-gallery-item-actions .btn-icon{color:#fff;opacity:1;background:#00000059;border-radius:6px;padding:4px}.photo-gallery-add{aspect-ratio:1;border:1px dashed var(--border);cursor:pointer;opacity:.75;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:12px;display:flex}.photo-gallery-add.is-busy{opacity:.5;cursor:default}.photo-gallery-add input{display:none}.lightbox{z-index:100;background:#000000e6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-image{object-fit:contain;border-radius:8px;max-width:90vw;max-height:80vh}.lightbox-close{top:max(16px, env(safe-area-inset-top));color:#fff;cursor:pointer;background:0 0;border:none;padding:8px;position:absolute;right:16px}.lightbox-nav{color:#fff;cursor:pointer;background:#00000059;border:none;border-radius:50%;padding:8px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-prev{left:12px}.lightbox-next{right:12px}
