:root{--color-bg: #f5ead8;--color-surface: #ebddc5;--color-text: #201e1d;--color-accent: #c67139;--color-accent-2: #7a8a5e;--color-divider: color-mix(in srgb, #201e1d 16%, transparent);--color-neutral-100: #f9f4ed;--color-neutral-200: #eee7db;--color-neutral-300: #dcd3c4;--color-neutral-400: #c0b6a5;--color-neutral-500: #a19786;--color-neutral-600: #82796a;--color-neutral-700: #645c50;--color-neutral-800: #474238;--color-neutral-900: #2e2b25;--color-accent-100: #fff2eb;--color-accent-200: #ffe1d0;--color-accent-300: #ffc6a5;--color-accent-400: #f6a06b;--color-accent-500: #d67f48;--color-accent-600: #b2622d;--color-accent-700: #8c491a;--color-accent-800: #643312;--color-accent-900: #402310;--color-danger: #a3413f;--font-heading: "Caprasimo", system-ui, sans-serif;--font-heading-weight: 400;--font-body: "Figtree", system-ui, sans-serif;--space-1: 4.4px;--space-2: 8.8px;--space-3: 13.2px;--space-4: 17.6px;--space-6: 26.4px;--space-8: 35.2px;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 28px;--shadow-sm: 0 1px 2px color-mix(in srgb, #2e2b25 14%, transparent);--shadow-md: 0 3px 10px color-mix(in srgb, #2e2b25 16%, transparent);--shadow-lg: 0 12px 32px color-mix(in srgb, #2e2b25 22%, transparent)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);font-size:15px;line-height:1.55;background:var(--color-neutral-300);color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);line-height:1.12;letter-spacing:-.015em;margin:0 0 var(--space-2)}h1{font-size:34px}h2{font-size:25px}h3{font-size:19px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent-700);text-underline-offset:3px}a:hover{color:var(--color-accent-900)}img{display:block;max-width:100%}::-webkit-scrollbar{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;text-decoration:none;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:14.5px;line-height:1.2;color:var(--color-text);background:transparent;border:1px solid transparent;padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:999px}.btn svg{display:block}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover:not(:disabled){background:var(--color-accent-600)}.btn-primary:active:not(:disabled){background:var(--color-accent-700)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--color-text) 7%,transparent)}.btn-ghost{color:var(--color-accent-700);padding-inline:var(--space-2);border-color:transparent}.btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.btn-icon{width:36px;height:36px;padding:0;font-size:16px}.btn-block{width:100%}.field{display:block}.field>span{display:block;font-size:12px;margin-bottom:5px;color:color-mix(in srgb,var(--color-text) 70%,transparent)}.input{width:100%;min-height:36px;padding:6px 14px;font:inherit;font-size:14px;color:var(--color-text);caret-color:var(--color-accent);background:var(--color-surface);border:1px solid var(--color-divider);border-radius:999px}.input:hover{border-color:color-mix(in srgb,var(--color-text) 45%,transparent)}.input:focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:0}textarea.input{min-height:90px;resize:vertical;font-family:var(--font-body);border-radius:var(--radius-md)}.card{background:var(--color-surface);border:none;border-radius:calc(var(--radius-lg) * 1.15);padding:var(--space-3)}.elev-sm{box-shadow:var(--shadow-sm)}.tag{display:inline-flex;align-items:center;font-size:13.5px;letter-spacing:.02em;padding:8px 16px;border-radius:999px;font-family:var(--font-body);border:none;cursor:pointer}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent-700);background:transparent}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:var(--space-4);background:color-mix(in srgb,var(--color-neutral-900) 50%,transparent)}.dialog{width:min(340px,100%);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:calc(var(--radius-lg) * 1.15);text-align:center;background:var(--color-surface);box-shadow:var(--shadow-lg)}.dialog-icon{font-size:34px;margin-bottom:2px}.dialog-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:20px;margin:0}.dialog-body{font-size:14px;opacity:.85;margin:0}.dialog-actions{display:flex;justify-content:center;gap:var(--space-2);margin-top:var(--space-2)}.error{color:var(--color-danger);font-size:14px}.hr{height:1px;border:0;margin:var(--space-4) 0;background:var(--color-divider)}.app{min-height:100vh;display:flex;justify-content:center;background:var(--color-neutral-300)}.app-sidebar{width:240px;flex-shrink:0;padding:var(--space-6) var(--space-4);position:sticky;top:0;align-self:flex-start;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-1);background:var(--color-bg)}.app-sidebar-brand{display:flex;align-items:center;gap:10px;margin-bottom:var(--space-6);padding:0 var(--space-2)}.app-sidebar-brand h1{margin:0;font-size:24px}.app-sidebar-brand .emoji{font-size:26px;line-height:1}.nav-item{display:flex;align-items:center;gap:10px;background:none;border:none;cursor:pointer;padding:12px var(--space-3);font-size:15px;font-family:var(--font-heading);font-weight:var(--font-heading-weight);text-align:left;width:100%;border-radius:var(--radius-md);color:var(--color-neutral-700)}.nav-item .emoji{font-size:18px;line-height:1}.nav-item.active{color:var(--color-accent-800);background:var(--color-accent-100)}.app-column{max-width:460px;width:100%;margin:0 auto;height:100vh;background:var(--color-bg);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.app-column.is-desktop{max-width:1000px}.screen-header{position:sticky;top:0;z-index:5;background:var(--color-bg);padding:var(--space-6) var(--space-4) var(--space-3)}.screen-header-brand{display:flex;align-items:center;gap:10px}.screen-header-brand .emoji{font-size:30px;line-height:1}.screen-header-brand h1{margin:0;font-size:34px;line-height:1}.screen-header-sub{margin:6px 0 0;color:var(--color-neutral-700);font-size:14.5px}.detail-header,.form-header{position:sticky;top:0;z-index:5;background:var(--color-bg);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.icon-btn{background:none;border:none;cursor:pointer;padding:6px;margin-left:-8px;display:flex;color:var(--color-text);font-size:18px}.filter-section{padding:0}.filter-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4)}.filter-title{margin:0 0 3px;font-size:17px}.filter-hint{margin:0 0 var(--space-3);font-size:13px;color:var(--color-neutral-700)}.filter-chips{display:flex;flex-wrap:wrap;gap:8px}.filter-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-divider)}.filter-footer-count{font-size:13px;color:var(--color-neutral-700)}.filter-footer-reset{background:none;border:none;color:var(--color-accent-700);font-size:13px;cursor:pointer;font-family:var(--font-body);font-weight:600}.home-main{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-4) var(--space-8);display:flex;flex-direction:column;gap:var(--space-6)}.recipe-grid{display:flex;flex-direction:column;gap:var(--space-4)}.app-column.is-desktop .recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}.recipe-card{cursor:pointer;padding:0;overflow:hidden;gap:0;border-radius:calc(var(--radius-lg) * 1.15)}.recipe-card-image{width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:calc(var(--radius-lg) * 1.15) calc(var(--radius-lg) * 1.15) 0 0}.recipe-card-body{padding:var(--space-3) var(--space-3) var(--space-4)}.recipe-card-body h3{margin:0 0 4px;font-size:19px}.recipe-card-desc{margin:0 0 var(--space-2);font-size:13.5px;color:var(--color-neutral-700);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.recipe-card-meta{display:flex;gap:14px;font-size:13px;color:var(--color-neutral-700)}.recipe-card-meta span{display:flex;align-items:center;gap:5px}.weekplan-nav{display:flex;align-items:center;gap:var(--space-1)}.weekplan-grid{display:flex;flex-direction:column;gap:var(--space-3)}.app-column.is-desktop .weekplan-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-3);align-items:start}.weekplan-day{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.weekplan-day.is-today{outline:2px solid var(--color-accent);outline-offset:-2px}.weekplan-day-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13.5px;font-weight:600}.weekplan-day-date{color:var(--color-neutral-700);font-weight:400}.weekplan-add{background:none;border:1px dashed var(--color-divider);border-radius:var(--radius-md);padding:var(--space-3);font-size:13.5px;color:var(--color-accent-700);cursor:pointer;font-family:var(--font-body)}.weekplan-entry{display:flex;align-items:center;gap:var(--space-2)}.weekplan-entry-recipe{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);background:none;border:none;padding:0;cursor:pointer;text-align:left;font-family:var(--font-body);font-size:13.5px}.weekplan-entry-recipe span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekplan-entry-image{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden}.picker-dialog{width:min(420px,100%);text-align:left}.picker-list{display:flex;flex-direction:column;gap:var(--space-1);max-height:320px;overflow-y:auto}.picker-item{display:flex;align-items:center;gap:var(--space-3);background:none;border:none;padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-body);font-size:14.5px}.picker-item:hover{background:var(--color-surface)}.picker-item-image{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-md);overflow:hidden}.empty-state{text-align:center;padding:var(--space-8) var(--space-3)}.empty-state.centered{flex:1;display:flex;align-items:center;justify-content:center}.empty-state-icon{margin-bottom:var(--space-3);font-size:48px;line-height:1}.empty-state h3{margin:0 0 4px;font-size:19px}.empty-state p{margin:0 0 var(--space-4);font-size:14px;color:var(--color-neutral-700);max-width:280px;margin-inline:auto}.detail-main{flex:1;overflow-y:auto;padding-bottom:var(--space-8)}.detail-layout{display:flex;flex-direction:column}.detail-image{width:100%;aspect-ratio:4/3;overflow:hidden}.detail-body{padding:var(--space-4);flex:1;min-width:0}.detail-body h1{margin:0 0 6px;font-size:32px}.detail-desc{margin:0 0 var(--space-3);font-size:15.5px;color:var(--color-neutral-700)}.detail-meta{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}.detail-time{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--color-neutral-800);font-weight:600}.servings-stepper{display:flex;align-items:center;gap:var(--space-2)}.servings-stepper span{font-size:14px;min-width:92px;text-align:center;font-weight:600}.servings-stepper .btn-icon{width:34px;height:34px;background:var(--color-bg)}.ingredient-list{list-style:none;margin:0 0 var(--space-6);padding:0;display:flex;flex-direction:column;gap:0}.ingredient-list li{display:flex;justify-content:space-between;font-size:15px;padding:11px 0;border-bottom:1px solid var(--color-divider)}.ingredient-list .amount{color:var(--color-accent-700);font-weight:600;font-variant-numeric:tabular-nums;margin-left:var(--space-3);white-space:nowrap}.step-list{display:flex;flex-direction:column;gap:var(--space-4);margin:0 0 var(--space-6);padding:0;list-style:none}.step-row-head{display:flex;gap:var(--space-3);align-items:flex-start}.step-num{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--color-accent);color:var(--color-bg);display:flex;align-items:center;justify-content:center;font-size:13px;font-family:var(--font-heading);font-variant-numeric:tabular-nums}.step-row-head p{margin:0;font-size:15.5px;padding-top:4px}.step-image{width:100%;aspect-ratio:16/9;overflow:hidden;margin-top:var(--space-2);border-radius:var(--radius-md)}.detail-actions{display:flex;gap:var(--space-2)}.bottom-nav{flex-shrink:0;background:var(--color-bg);box-shadow:var(--shadow-md);display:flex;padding-bottom:2px}.bottom-nav-item{flex:1;background:none;border:none;cursor:pointer;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;font-family:var(--font-body);color:var(--color-neutral-700)}.bottom-nav-item .emoji{font-size:20px;line-height:1}.bottom-nav-item.active{color:var(--color-accent-800)}.bottom-nav-item span:last-child{font-size:11px;font-weight:600}.form-header-top{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.form-header-top h1{margin:0;font-size:19px}.form-progress{display:flex;gap:5px;margin-bottom:6px}.form-progress-bar{flex:1;height:4px;border-radius:2px;background:var(--color-divider)}.form-progress-bar.done{background:var(--color-accent)}.form-step-label{margin:0;font-size:13px;color:var(--color-neutral-700)}.form-main{flex:1;overflow-y:auto;padding:var(--space-4);padding-bottom:100px}.form-fields{display:flex;flex-direction:column;gap:var(--space-4)}.form-add-image-btn{align-self:flex-start;margin-bottom:var(--space-4);background:var(--color-surface);border:none;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-neutral-700);font-size:13px;cursor:pointer;font-family:var(--font-body);font-weight:600}.form-image-picker{display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start;margin-bottom:var(--space-4)}.form-image-picker .btn{cursor:pointer}.form-image-preview{position:relative;display:inline-block;max-width:240px;max-height:180px;margin-bottom:var(--space-4);overflow:hidden;border-radius:var(--radius-lg)}.form-image-preview img{display:block;width:100%;height:100%;max-height:180px;object-fit:cover}.form-image-remove{position:absolute;top:6px;right:6px;background:color-mix(in srgb,black 55%,transparent);color:#fff;border:none}.form-row-2{display:flex;gap:var(--space-3)}.form-row-2 .field{flex:1}.ingredient-rows,.step-rows{display:flex;flex-direction:column;gap:var(--space-3)}.ingredient-row{display:flex;gap:var(--space-2);align-items:center}.ingredient-row .input:nth-child(1){flex:2}.ingredient-row .input:nth-child(2),.ingredient-row select{flex:1;min-width:0}.step-editor-row-head{display:flex;gap:var(--space-2);align-items:flex-start}.step-editor-row-head textarea{flex:1}.step-editor-image{width:100%;aspect-ratio:16/9;margin:var(--space-2) 0 0 38px;max-width:calc(100% - 38px);overflow:hidden;border-radius:var(--radius-md)}.step-editor-image img{width:100%;height:100%;object-fit:cover}.step-add-image-btn{margin:6px 0 0 38px;background:none;border:none;color:var(--color-accent-700);font-size:13px;cursor:pointer;display:flex;align-items:center;gap:4px;font-family:var(--font-body);font-weight:600}.import-box .field{margin-bottom:0}.import-row{display:flex;gap:var(--space-2)}.import-row .input{flex:1}.import-success{font-size:13px;color:var(--color-accent-700);margin-top:var(--space-2);font-weight:600}.form-footer{position:sticky;bottom:0;background:var(--color-bg);box-shadow:var(--shadow-md);padding:var(--space-3) var(--space-4);display:flex;gap:var(--space-2)}.form-footer .btn{flex:1}.loading-state{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);color:var(--color-neutral-700);font-size:14px}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--color-divider);border-top-color:var(--color-accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
