:root{--color-bg-primary:#121212;--color-surface:#1e1e1e;--color-border:#3f3f46;--color-accent:#22c55e;--color-focus-ring:#4ade80;--text-on-accent:#0a0a0a;--color-warning:#f59e0b;--color-error:#ef4444;--color-success:#22c55e;--color-info:#38bdf8;--color-pixel-1:#feffff;--color-pixel-2:#a0a0a0;--color-pixel-3:#525252;--color-pixel-4:#bed6fd;--color-pixel-5:#699efc;--color-pixel-6:#1e4a9d;--color-pixel-7:#011a51;--color-pixel-8:#ccf;--color-pixel-9:#8987ff;--color-pixel-10:#3837bc;--color-pixel-11:#0f0f65;--color-pixel-12:#ddc4ff;--color-pixel-13:#ae76ff;--color-pixel-14:#5828b8;--color-pixel-15:#230663;--color-pixel-16:#eac0f9;--color-pixel-17:#ce6df1;--color-pixel-18:#752194;--color-pixel-19:#36034b;--color-pixel-20:#f2c1df;--color-pixel-21:#e070b2;--color-pixel-22:#84235c;--color-pixel-23:#400426;--color-pixel-24:#f1c7c2;--color-pixel-25:#de7c70;--color-pixel-26:#822e24;--color-pixel-27:#3f0904;--color-pixel-28:#e8d0aa;--color-pixel-29:#c8913e;--color-pixel-30:#6f3f00;--color-pixel-31:#321300;--color-pixel-32:#d9da9d;--color-pixel-33:#a6a725;--color-pixel-34:#515200;--color-pixel-35:#1f2000;--color-pixel-36:#c9e29e;--color-pixel-37:#81ba28;--color-pixel-38:#316300;--color-pixel-39:#0b2a00;--color-pixel-40:#bce6ae;--color-pixel-41:#63c446;--color-pixel-42:#1a6b05;--color-pixel-43:#002f00;--color-pixel-44:#b4e5c7;--color-pixel-45:#54c17d;--color-pixel-46:#0e692e;--color-pixel-47:#002e0a;--color-pixel-48:#b5dfe4;--color-pixel-49:#56b3c0;--color-pixel-50:#105c68;--color-pixel-51:#00262d;--color-pixel-52:#a9a9a9;--color-pixel-53:#3c3c3c;--color-pixel-54:#000;--bg-primary:var(--color-bg-primary);--text-primary:#e4e4e7;--text-secondary:#a1a1aa;--text-accent:var(--color-accent);--text-accent-secondary:#4ade80;--link-color:var(--color-accent);--link-hover:#4ade80;--success-color:var(--color-success);--warning-color:var(--color-warning);--error-color:var(--color-error);--font-size:16px;--font-size-small:calc(var(--font-size)*.8);--font-size-medium:calc(var(--font-size)*1.2);--font-size-l:calc(var(--font-size)*1.5);--font-size-xl:calc(var(--font-size)*2);--font-size-2xl:calc(var(--font-size)*3);--font-size-3xl:calc(var(--font-size)*4);--pixel-icon-size:32px;--gap-small:.5rem;--gap-medium:1rem;--gap-large:2rem;--padding-small:.5rem;--padding-medium:1rem;--padding-large:2rem;--margin-small:.5rem;--margin-medium:1rem;--margin-large:2rem;--border-radius:.5rem}@layer base{*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;width:100dvw;height:100dvh;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-surface);color:var(--text-primary)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}h1{color:var(--text-secondary);font-size:var(--font-size-xl);margin:0}h2{color:var(--text-secondary);font-size:var(--font-size-l);margin:0}a{color:var(--link-color);text-decoration:none}a:hover{color:var(--link-hover)}a:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}button:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}img{width:100%;height:auto}button{border:none;background-color:#0000;cursor:pointer;padding:0;margin:0;border-radius:var(--border-radius)}i{font-style:italic}[data-disabled=true]{pointer-events:none}}@layer utilities{.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items: center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--gap-small)}.gap-md{gap:var(--gap-medium)}.gap-lg{gap:var(--gap-large)}.p-sm{padding:var(--padding-small)}.p-md{padding:var(--padding-medium)}.p-lg{padding:var(--padding-large)}.px-md{padding-inline:var(--padding-medium)}.py-lg{padding-block:var(--padding-large)}.m-0{margin:0}.mx-auto{margin-inline:auto}.m-lg{margin:var(--margin-large)}.max-w-content{max-width:650px;width:100%}.overflow-y-auto{overflow-y:auto}.text-center{text-align:center}.w-full{width:100%}.max-w-lg{max-width:300px}.h-full{height:100%}.grid{display:grid}.italic{font-style:italic}.align-self-end{align-self: end}.rounded-lg{border-radius:var(--border-radius)}.object-cover{object-fit:cover}}@layer components{.app-name{font-size:var(--font-size-l);font-weight:700;text-align:center;margin:0;color:var(--text-primary)}.app-name-accent{color:var(--color-accent)}.version{font-size:var(--font-size-small);color:var(--text-secondary);z-index:1000;font-family:monospace}.language-selector{font-size:var(--font-size-small);background:var(--color-surface);color:var(--text-primary);cursor:pointer;padding:.25rem .5rem;border:none;color-scheme:dark}.language-selector:hover,.language-selector:focus{background-color:var(--color-surface);outline:none}.card-overlay{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;align-items: center;justify-content:center;gap:var(--gap-medium);padding:var(--padding-medium);text-align:center;background:var(--color-bg-primary);color:var(--text-secondary)}.card-overlay[hidden]{display:none}.card-overlay-loading{margin:0;font-size:var(--font-size-medium)}.card-overlay-error{display:flex;flex-direction:column;align-items: center;gap:var(--gap-medium)}.card-overlay-error[hidden]{display:none}.card-overlay-error-message{margin:0;color:var(--text-primary);font-size:var(--font-size-medium)}.card-overlay-retry{margin-top:.5rem}.favorites-load-error,.recipes-load-error{display:flex;flex-direction:column;align-items: center;gap:var(--gap-medium);padding:var(--padding-medium);text-align:center;min-height:6rem;justify-content:center}.favorites-load-error[hidden],.recipes-load-error[hidden]{display:none}.favorites-load-error-message,.recipes-load-error-message{margin:0;color:var(--text-primary);font-size:var(--font-size-medium)}.favorites-load-error-retry,.recipes-load-error-retry{margin-top:.5rem}.btn{background-color:var(--color-accent);color:var(--text-on-accent);padding:.5rem 1rem;text-decoration:none;border:1px solid var(--color-accent)}.btn-cta{background:var(--color-accent);color:var(--text-on-accent);border:none;padding:.75rem 1.5rem;border-radius:2rem;font-weight:600;font-size:var(--font-size-medium);letter-spacing:.02em;transition:transform .2s}.btn-cta:hover{transform:translateY(-2px);box-shadow:0 4px 14px #0006}.btn-cta:active{transform:translateY(0)}#card-controls .btn-card-random{display:inline-flex;align-items: center;justify-content:center;width:auto;max-width:min(100%,15rem);margin:var(--gap-small)auto;padding:.4rem .85rem;border-radius:1.25rem;font-size:var(--font-size-small);font-weight:500;font-family:inherit;line-height:1.2;text-align:center;background-color:var(--color-bg-primary);color:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;transition:transform .2s,background-color .2s,box-shadow .2s}#card-controls .btn-card-random:hover{transform:translateY(-1px);box-shadow:0 2px 10px #00000038}#card-controls .btn-card-random:active{transform:translateY(0);background-color:color-mix(in srgb,var(--color-accent)16%,var(--color-bg-primary))}.recipes-page-layout{max-width:650px;width:100%;margin:0 auto}.main-card{height:100%;display:flex;flex-direction:column;gap:var(--gap-large);position:relative;overflow:hidden;max-width:650px;width:100%;margin:0 auto;background:var(--color-surface)}.main-card:before{content:"";position:absolute;bottom:-20px;left:-50px;right:-50px;height:75px;background-image:linear-gradient(0deg,var(--color-surface)60%,transparent 100%);z-index:1;filter:blur(5px);pointer-events:none}.card-container{position:absolute;inset:0;overflow-y:auto;display:flex;flex-direction:column;padding:var(--padding-medium)var(--padding-large)100px;scrollbar-width:none;-ms-overflow-style:none}.card-container::-webkit-scrollbar{display:none}.card-container::-webkit-scrollbar-thumb{background:0 0}.card-section{margin-top:var(--margin-large)}.card-section-title{font-size:var(--font-size-medium);font-weight:600;margin:0 0 var(--margin-small);color:var(--text-secondary)}.card-bento-area{margin-top:var(--margin-small);margin-bottom:var(--margin-small);padding:var(--padding-medium)0;border-top:1px dashed var(--color-border);border-bottom:1px dashed var(--color-border);display:flex;flex-direction:column;gap:var(--gap-medium)}.card-bento-recap{padding:0;margin:0;background:0 0;border:none}.card-bento-dl{margin:0;display:grid;grid-template-columns:minmax(5rem,auto)1fr;gap:var(--gap-small)var(--gap-medium);align-items: start}.card-bento-dl__term{margin:0;font-weight:600;color:var(--color-accent);font-size:.9em}.card-bento-dl__def{margin:0;line-height:1.4;color:var(--text-primary)}.card-bento-dl__link{color:inherit;text-decoration:underline;text-underline-offset:2px}.card-bento-export{display:flex;justify-content:center}.card-bento-export__row{display:flex;flex-wrap:wrap;gap:var(--gap-small);justify-content:center}.card-bento-export__btn{display:inline-flex;align-items: center;justify-content:center;min-height:2.25rem;padding:0 1rem;font-size:.8125rem;font-weight:500;line-height:1;border-radius:999px;border:1px solid var(--color-border);background:0 0;color:var(--text-secondary,#64748b);cursor:pointer;transition:border-color .2s,color .2s,background-color .2s}.card-bento-export__btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.card-bento-export__btn:active{background:color-mix(in srgb,var(--color-border)40%,transparent)}.card-bento-export__btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.card-bento-message{text-align:center;margin:0;font-size:.875rem;color:var(--text-secondary)}.card-bento-message--error{color:#b91c1c}.about-item__body--preline{white-space:pre-line}.card-serving{display:flex;width:100%;margin:var(--margin-medium)auto;align-items: center;justify-content:center;gap:var(--gap-medium)}.card-serving-btn{display:inline-flex;align-items: center;justify-content:center;min-width:2rem;height:2rem;padding:0;font-size:1.25rem;line-height:1;border:1px solid var(--color-border);background:var(--color-surface);color:var(--text-primary);cursor:pointer}.card-serving-btn:hover:not(:disabled){background:var(--color-accent);color:var(--text-on-accent)}.card-serving-btn:disabled{opacity:.5;cursor:not-allowed}.card-serving-value{min-width:1.5rem;font-weight:600;text-align:center}.card-list{margin:0;padding-left:var(--padding-large);display:flex;flex-direction:column;gap:var(--gap-small)}.card-list li{line-height:1.4}.card-list--steps{list-style:decimal}.card-list:not(.card-list--steps){list-style:disc}.card-notes{font-size:var(--font-size-small);font-style:italic;line-height:1.5;list-style-type:none;padding:var(--padding-medium)0 0;color:var(--text-secondary)}.card{position:relative;height:100%;display:grid;gap:var(--gap-small);grid-template-rows:1fr auto;grid-template-columns:1fr;grid-template-areas:"canvas" "controls"}.card-scrollable{grid-area:scrollable;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:var(--gap-small)}.card-scrollable h1{margin:0 var(--margin-medium);padding:0;font-size:var(--font-size-l);text-transform:uppercase}.btn-arrow{grid-area:arrow;background:0 0;border:none;color:var(--text-secondary);cursor:pointer;padding:var(--padding-small);display:flex;align-items: center;justify-content:center;transition:transform .2s,color .2s}.btn-arrow:hover{color:var(--color-success);transform:translateY(2px)}.btn-arrow-icon{width:2rem;height:2rem;flex-shrink:0}.card .bento-viewer-canvas{position:absolute;inset:0}}.app-footer-nav a[aria-current=page],:disabled{opacity:.75;filter:grayscale(100%);pointer-events:none;transition:all .3s}.app{display:grid;grid-template-rows:auto 1fr auto;grid-template-areas:"header" "main" "footer";overflow:hidden;width:100dvw;height:100dvh}.app-main{position:relative;height:100%}.app-main>*{position:absolute;inset:0}.app-header{grid-area:header;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-main{grid-area:main}.app-footer{grid-area:footer;display:flex;gap:var(--gap-medium);padding:var(--padding-small)var(--padding-medium)var(--padding-medium);text-align:center;flex-direction:column}.app-footer-nav{display:flex;justify-content:center;align-items: center;gap:var(--gap-large)}.crafter-canvas-container{grid-area:canvas;position:relative;height:100%}.bento-viewer-canvas{object-fit:cover;width:100%;height:100%}.crafter-page.mini-bento-viewer .crafter-canvas-container{height:calc(var(--pixel-icon-size)*1.5)}.crafter-page.mini-bento-viewer .bento-viewer-canvas{display:none}.bento-viewer-button{position:absolute;z-index:1000;cursor:pointer;top:1rem;right:1rem}.crafter-page{display:grid;grid-template-rows:1fr 1.3fr;grid-template-areas:"canvas" "stepper";height:100%}@media (min-width:768px){.app-name{margin-bottom:var(--margin-medium)}.crafter-page{display:grid;grid-template-rows:1fr;grid-template-columns:1.5fr 1fr;grid-template-areas:"stepper canvas";height:100%}.crafter-canvas-container{max-height:400px}.bento-viewer-button{display:none}}.crafter-page.mini-bento-viewer{grid-template-rows:auto 2fr auto}.crafter-stepper{grid-area:stepper;position:relative}.crafter-stepper-button{position:relative;text-decoration:none;cursor:pointer;width:var(--pixel-icon-size);height:var(--pixel-icon-size);border-bottom:3px solid #0000;transition:all .3s}.crafter-stepper-button[aria-current=true]{filter:grayscale(100%);opacity:.7;transform:translateY(-5px)}.base-container{position:absolute;inset:0}.base-choice-page{transition:all .2s}.base-choice-page[role=button]{display:flex;align-items: center;gap:var(--gap-medium);cursor:pointer;background-color:var(--color-surface);border:1px solid var(--color-border)}.base-choice-page[role=button]:hover{transform:translateY(-2px);box-shadow:0 4px #0006}.base-choice-page[role=button][disabled]{opacity:.5;cursor:not-allowed;transform:none}.base-choice-page[role=button][data-selected=true]{border:1px solid var(--color-accent)}.ingredient-choice-container{cursor:pointer;background-color:var(--color-surface);border:1px solid var(--color-border);transition:all .2s}.ingredient-choice-container h2{font-size:var(--font-size-medium);margin:0}.ingredient-choice-container[data-type=core]{border:1px solid var(--color-accent)}.ingredient-choice-container[data-type=core] h2{color:var(--color-accent)}.ingredient-choice-container[data-type=core] h2:after{content:" *";color:var(--color-accent);font-size:var(--font-size-small)}.ingredient-choice-container:hover{transform:translateY(-2px);box-shadow:0 4px #0006}.ingredient-choice-description[role=button]{cursor:pointer;background-color:var(--color-surface);border:1px solid var(--color-border)}.ingredient-choice-description[role=button][data-selected=true]{border:1px solid var(--color-accent)}.stepper-export-button{background-color:var(--color-surface);padding:var(--padding-small)var(--padding-medium);border:1px solid var(--color-border);cursor:pointer;color:var(--text-secondary);text-align:center;min-width:200px;transition:all .2s}.stepper-export-button:hover{transform:translateY(-2px);box-shadow:0 4px #0006}.stepper-export-button:active{transform:translateY(0);box-shadow:0 2px 4px #0006}.stepper-export-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.stepper-page-title{color:var(--text-secondary);font-size:var(--font-size-l);margin-bottom:var(--margin-medium);text-align:center}.stepper-page p{color:var(--text-secondary);font-size:var(--font-size-small);text-align:center;margin-bottom:var(--margin-large)}.stepper-export-quantity-selector{background-color:var(--color-surface);padding:var(--padding-small)var(--padding-medium);border:1px solid var(--color-border);cursor:pointer}.stepper-export-quantity-selector:hover{transform:translateY(-2px);box-shadow:0 4px #0006}.stepper-export-quantity-selector:active{transform:translateY(0);box-shadow:0 2px 4px #0006}.recipes-search-toolbar{position:relative;display:flex;gap:var(--gap-small);flex-direction:column;width:100%}.recipes-search-toolbar[hidden],input.recipes-search[hidden],.recipes-filter-add[hidden]{display:none!important}.recipes-search-row{display:flex;align-items:stretch;gap:var(--gap-small);flex-direction:row;width:100%}.recipes-filter-add{display:inline-flex;padding:0 var(--padding-small);box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-surface);color:var(--color-accent);cursor:pointer;flex-shrink:0;justify-content:center;align-self:stretch;align-items: center;min-width:2.75rem;font-size:1.1rem;font-weight:600;line-height:1}.recipes-filter-add:hover{border-color:var(--color-accent)}.recipes-search-row .recipes-search{flex:1;min-width:0}.recipes-filter-chips{display:flex;align-items: center;gap:var(--gap-small);flex-wrap:wrap;min-height:0}.recipes-filter-chips:empty{display:none}.recipes-filter-chip{display:inline-flex;border:1px solid var(--color-border);background:var(--color-surface);color:var(--text-primary);border-radius:999px;align-items: center;gap:.35rem;padding:.2rem .5rem .2rem .65rem;font-size:.85em}.recipes-filter-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.recipes-filter-chip__remove{display:inline-flex;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items: center;min-width:1.5rem;min-height:1.5rem;margin:0;padding:0;font-size:1.1rem;line-height:1}.recipes-filter-chip__remove:hover{color:var(--color-accent);background:#ffffff0f}.recipes-filter-popover[hidden]{display:none!important}.recipes-filter-popover:not([hidden]){position:fixed;z-index:100;display:flex;gap:var(--gap-small);padding:var(--padding-medium);border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg-elevated,var(--color-surface));overflow-y:auto;flex-direction:column;max-height:min(70vh,24rem);box-shadow:0 8px 24px #00000059}.recipes-filter-popover__label{color:var(--text-secondary);font-size:.85em;font-weight:600}.recipes-filter-select{padding:var(--padding-small)var(--padding-medium);font-size:var(--font-size);border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-surface);color:var(--text-primary);width:100%}.recipes-filter-apply{margin-top:var(--gap-small);align-self: flex-start}.recipes-list-wrap{position:relative;min-height:3.5rem}.recipes-list-loading{position:absolute;z-index:3;display:flex;border-radius:var(--border-radius);color:var(--text-secondary);font-size:var(--font-size-small);pointer-events:none;background:#0f0f12b8;justify-content:center;align-items: center;inset:0}.recipes-list-loading[hidden]{display:none!important}.recipes-list-loading__text{margin:0}#recipes-list{gap:var(--gap-small)}.recipes-list-item{display:flex;align-items:stretch;gap:var(--gap-small);border-radius:calc(var(--border-radius)*.85);border:1px solid var(--color-border);background:var(--color-surface);text-decoration:none;color:inherit;flex-direction:row;padding:.35rem .5rem;transition:border-color .15s,background .15s}.recipes-list-item:hover{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-surface)92%,var(--color-accent)8%)}.recipes-list-item:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.recipes-list-item__thumb{aspect-ratio:1;border-radius:calc(var(--border-radius)*.85);overflow:hidden;background:var(--color-bg-primary);flex-shrink:0;align-self: center;width:3.25rem}.recipes-list-item__thumb--empty{background:linear-gradient(145deg,color-mix(in srgb,var(--color-border)40%,var(--color-bg-primary))0%,var(--color-bg-primary)100%);border:1px dashed color-mix(in srgb,var(--color-border)80%,transparent)}.recipes-list-item__img{object-fit:cover;display:block;width:100%;height:100%}.recipes-list-item__body{display:flex;flex-direction:column;flex:1;justify-content:center;gap:.45rem;min-width:0}.recipes-list-item__title{font-weight:600;font-size:var(--font-size);color:var(--color-accent);line-height:1.25}.recipes-list-item__meta{display:flex;flex-direction:column;align-items: flex-start;gap:.1rem}.recipes-list-chip{font-size:calc(var(--font-size-small)*.92);color:var(--text-secondary);background:0 0;border:none;border-radius:0;max-width:100%;padding:0;line-height:1.35}.recipes-list-chip--transport{color:var(--text-primary)}@media (max-width:480px){.recipes-list-item__thumb{width:2.875rem}.recipes-list-item{padding:.3rem .4rem}}.favorites-search,.recipes-search{padding:var(--padding-medium);font-size:var(--font-size);border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-surface);color:var(--text-primary);width:100%;max-width:100%}.favorites-search::placeholder,.recipes-search::placeholder{opacity:.7}.not-found-page{color:var(--text-primary)}.not-found-code{font-size:var(--font-size-3xl);color:var(--color-accent);margin:0;font-weight:700;line-height:1}.not-found-home{margin-top:var(--gap-small)}
