.time-row[data-v-5b6d3c3c]{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);justify-content:center}.time-field[data-v-5b6d3c3c]{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.time-field__label[data-v-5b6d3c3c]{font-size:var(--font-xs);color:var(--text-secondary);font-weight:500}.time-field__separator[data-v-5b6d3c3c]{color:var(--text-muted);font-size:var(--font-lg);margin-top:var(--space-lg)}.tag-display[data-v-5b6d3c3c]{display:flex;justify-content:center;gap:var(--space-lg);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid var(--border)}.tag-display__item[data-v-5b6d3c3c]{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.tag-display__meal[data-v-5b6d3c3c]{font-size:var(--font-xs);color:var(--text-muted);font-weight:600}.slide-enter-active[data-v-5b6d3c3c],.slide-leave-active[data-v-5b6d3c3c]{transition:all var(--duration-normal) var(--ease-out);max-height:120px;overflow:hidden}.slide-enter-from[data-v-5b6d3c3c],.slide-leave-to[data-v-5b6d3c3c]{opacity:0;max-height:0}.bulk-actions[data-v-cd64ceb6]{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border)}.category-group[data-v-cd64ceb6]{margin-bottom:var(--space-md)}.category-header[data-v-cd64ceb6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm);padding-left:var(--space-xs)}.header-left-group[data-v-cd64ceb6]{display:flex;align-items:center;gap:var(--space-sm)}.category-bulk-actions[data-v-cd64ceb6]{display:flex;align-items:center;gap:4px}.link-btn[data-v-cd64ceb6]{background:none;border:none;color:var(--text-muted);font-size:12px;cursor:pointer;padding:0 4px}.link-btn[data-v-cd64ceb6]:hover{color:var(--accent-green)}.divider[data-v-cd64ceb6]{width:1px;height:10px;background:var(--border)}.category-group__title[data-v-cd64ceb6]{font-size:var(--font-sm);font-weight:700;color:var(--text-secondary);margin-bottom:0}.add-trigger[data-v-cd64ceb6]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .2s ease}.add-trigger[data-v-cd64ceb6]:hover,.add-trigger[data-v-cd64ceb6]:active{border-color:var(--accent-green);color:var(--accent-green);background:#2dd29e1a}.inline-input-wrapper[data-v-cd64ceb6]{flex:1;max-width:150px}.inline-input[data-v-cd64ceb6]{width:100%;padding:2px 6px;font-size:var(--font-xs);color:var(--text);background:#ffffff0d;border:1px dashed var(--accent-green);border-radius:var(--radius-sm);outline:none;transition:border-color .2s}.inline-input[data-v-cd64ceb6]:focus{border-color:var(--accent-green);background:#ffffff1a}.inline-input[data-v-cd64ceb6]::placeholder{color:var(--text-muted);font-style:italic}.checkbox--custom .checkbox__label[data-v-cd64ceb6]{color:var(--accent-amber);font-style:italic}.ingredient-content[data-v-cd64ceb6]{padding:var(--space-md) var(--space-lg)}.trigger-group[data-v-cd64ceb6]{display:flex;gap:var(--space-xs)}.delete-trigger[data-v-cd64ceb6]:hover,.delete-trigger[data-v-cd64ceb6]:active{border-color:var(--accent-red, #ef4444);color:var(--accent-red, #ef4444);background:#f377771a}.delete-actions[data-v-cd64ceb6]{display:flex;gap:var(--space-xs)}.delete-btn[data-v-cd64ceb6]{padding:2px 8px;font-size:var(--font-xs)}.btn--danger[data-v-cd64ceb6]{background:var(--accent-red, #ef4444);color:#fff;border-color:var(--accent-red, #ef4444);border-radius:var(--radius-sm);cursor:pointer;transition:opacity .2s}.btn--danger[data-v-cd64ceb6]:hover{opacity:.9}.checkbox--delete-mode input[type=checkbox][data-v-cd64ceb6]{accent-color:var(--accent-red, #ef4444)}.checkbox--delete-mode input:checked+.checkbox__label[data-v-cd64ceb6]{color:var(--accent-red, #ef4444);text-decoration:line-through}.toast-notification[data-v-cd64ceb6]{position:fixed;bottom:var(--space-xl);left:50%;transform:translate(-50%);background:var(--accent-green);color:#0a0f1a;font-weight:700;padding:8px 16px;border-radius:20px;font-size:var(--font-sm);z-index:9999;box-shadow:0 4px 12px #2dd4a04d;animation:fadeUp-cd64ceb6 .3s ease-out;pointer-events:none}@keyframes fadeUp-cd64ceb6{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.category-group[data-v-313957fc]{margin-bottom:var(--space-md)}.category-header[data-v-313957fc]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm);padding-left:var(--space-xs)}.header-left-group[data-v-313957fc]{display:flex;align-items:center;gap:var(--space-sm)}.category-bulk-actions[data-v-313957fc]{display:flex;align-items:center;gap:4px}.link-btn[data-v-313957fc]{background:none;border:none;color:var(--text-muted);font-size:12px;cursor:pointer;padding:0 4px}.link-btn[data-v-313957fc]:hover{color:var(--accent-green)}.divider[data-v-313957fc]{width:1px;height:10px;background:var(--border)}.category-group__title[data-v-313957fc]{font-size:var(--font-sm);font-weight:700;color:var(--text-secondary);margin-bottom:0;display:flex;align-items:center;gap:4px}.category-tooltip-wrapper[data-v-313957fc]{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:help;outline:none}.tooltip-icon[data-v-313957fc]{display:inline-block;width:16px;height:16px;border-radius:50%;border:1px solid var(--text-muted);color:var(--text-muted);font-size:10px;text-align:center;line-height:14px;font-weight:400}.global-tooltip-content{background-color:#fff;color:#1e1e1e;text-align:left;border-radius:8px;padding:10px 14px;z-index:99999;width:max-content;max-width:220px;min-width:160px;font-size:13px;font-weight:500;line-height:1.5;border:none;box-shadow:0 10px 24px #0006,0 4px 8px #0003;pointer-events:none;animation:tooltipFadeIn .2s ease-out}.tooltip-pop-up{transform:translate(-50%,-100%)}.tooltip-pop-down{transform:translate(-50%)}.tooltip-pop-up:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:7px;border-style:solid;border-color:#ffffff transparent transparent transparent}.tooltip-pop-down:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:7px;border-style:solid;border-color:transparent transparent #ffffff transparent}@keyframes tooltipFadeIn{0%{opacity:0;margin-top:4px}to{opacity:1;margin-top:0}}.add-trigger[data-v-313957fc]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px dashed var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);font-size:14px;cursor:pointer;transition:all .2s ease}.add-trigger[data-v-313957fc]:hover{border-color:var(--accent-green);color:var(--accent-green);background:#2dd29e1a}.delete-trigger[data-v-313957fc]:hover{border-color:var(--accent-red, #ef4444);color:var(--accent-red, #ef4444);background:#f377771a}.delete-actions[data-v-313957fc]{display:flex;gap:var(--space-xs)}.delete-btn[data-v-313957fc]{padding:2px 8px;font-size:var(--font-xs);cursor:pointer}.btn--danger[data-v-313957fc]{background:var(--accent-red, #ef4444);color:#fff;border:none;border-radius:4px}.recipe-grid[data-v-313957fc]{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:var(--space-xs)}.recipe-card[data-v-313957fc]{padding:var(--space-sm);background:#ffffff0d;border:1px solid transparent;border-radius:var(--radius-sm);transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none}.recipe-card--natural[data-v-313957fc]{border-color:#2dd29e4d}.recipe-card--force[data-v-313957fc]{border-color:#f4a8254d}.recipe-card--disabled[data-v-313957fc]{opacity:.5;filter:grayscale(.8)}.recipe-card[data-v-313957fc]:hover{background:#ffffff1a}.recipe-card--delete-mode[data-v-313957fc]{border-color:var(--border)}.recipe-card--to-delete[data-v-313957fc]{border-color:var(--accent-red, #ef4444);background:#f377771a}.recipe-card__header[data-v-313957fc]{display:flex;flex-direction:column;gap:4px}.recipe-card__name[data-v-313957fc]{font-size:var(--font-xs);font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge--small[data-v-313957fc]{padding:2px 4px;font-size:10px;align-self:flex-start}.delete-checkbox[data-v-313957fc]{align-self:flex-end;color:var(--accent-red, #ef4444);font-size:14px}.modal-overlay[data-v-313957fc]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn-313957fc .2s ease-out}.bottom-sheet[data-v-313957fc]{background:var(--surface-light);width:100%;max-width:600px;padding:var(--space-lg);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);box-shadow:0 -4px 20px #0003;animation:slideUp-313957fc .3s cubic-bezier(.16,1,.3,1)}.sheet-desc[data-v-313957fc]{font-size:var(--font-sm);color:var(--text-muted);margin-top:4px;margin-bottom:16px}.missing-ingredients[data-v-313957fc]{display:flex;flex-wrap:wrap;gap:8px}.missing-ing-btn[data-v-313957fc]{background:#ffffff0d;border:1px solid var(--border);color:var(--text);padding:6px 12px;border-radius:var(--radius-full);cursor:pointer;transition:all .2s}.missing-ing-btn[data-v-313957fc]:hover{background:var(--accent-green);color:#000;border-color:var(--accent-green)}@keyframes fadeIn-313957fc{0%{opacity:0}to{opacity:1}}@keyframes slideUp-313957fc{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-overlay[data-v-e77f3b62]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:2000;display:flex;align-items:center;justify-content:center}.modal[data-v-e77f3b62]{width:90%;max-width:500px;background:var(--surface);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:90vh}.modal-header[data-v-e77f3b62]{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-header h3[data-v-e77f3b62]{margin:0;font-size:var(--font-md)}.close-btn[data-v-e77f3b62]{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer}.close-btn[data-v-e77f3b62]:hover{color:var(--text)}.modal-body[data-v-e77f3b62]{padding:var(--space-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md)}.form-group[data-v-e77f3b62]{display:flex;flex-direction:column;gap:8px}.form-group>span[data-v-e77f3b62]{font-size:var(--font-sm);font-weight:500}.required[data-v-e77f3b62]{color:var(--accent-red, #ef4444)}.hint[data-v-e77f3b62]{font-size:12px;color:var(--text-muted);font-weight:400}.form-input[data-v-e77f3b62]{background:#ffffff0d;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;color:var(--text);font-family:inherit;outline:none;width:100%}.form-input[data-v-e77f3b62]:focus{border-color:var(--accent-green)}.form-select[data-v-e77f3b62]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23888'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}.radio-group[data-v-e77f3b62]{display:flex;gap:16px}.radio-group label[data-v-e77f3b62]{display:flex;align-items:center;gap:4px;font-size:var(--font-sm);cursor:pointer}.radio-group input[type=radio][data-v-e77f3b62]{accent-color:var(--accent-green)}.ingredient-search-wrapper[data-v-e77f3b62]{position:relative;display:flex;flex-direction:column;gap:8px}.selected-tags[data-v-e77f3b62]{display:flex;flex-wrap:wrap;gap:6px}.tag[data-v-e77f3b62]{background:#26de8126;border:1px solid var(--accent-green);color:var(--accent-green);padding:4px 8px;border-radius:var(--radius-full);font-size:12px;display:inline-flex;align-items:center;gap:6px}.tag-close[data-v-e77f3b62]{background:none;border:none;color:inherit;cursor:pointer;padding:0;font-size:10px}.search-dropdown[data-v-e77f3b62]{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface-light);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:150px;overflow-y:auto;z-index:10;box-shadow:0 4px 12px #0003}.search-item[data-v-e77f3b62]{padding:8px 12px;font-size:var(--font-sm);cursor:pointer;display:flex;justify-content:space-between;align-items:center}.search-item[data-v-e77f3b62]:hover{background:#ffffff0d}.modal-footer[data-v-e77f3b62]{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);display:flex;justify-content:flex-end;align-items:center;gap:16px}.error-msg[data-v-e77f3b62]{color:var(--accent-red, #ef4444);font-size:var(--font-sm)}.slot-viewport--spinning[data-v-e9ce92b9]{animation:slot-shake-e9ce92b9 .4s infinite ease-in-out alternate;box-shadow:0 0 15px #26de8166;position:relative;overflow:hidden}.slot-viewport--spinning[data-v-e9ce92b9]:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.8) 10%,transparent 10%),radial-gradient(circle,rgba(255,255,255,.8) 10%,transparent 10%);background-size:20px 20px;background-position:0 0,10px 10px;animation:flash-particles-e9ce92b9 .3s infinite linear;opacity:.15;z-index:10}@keyframes slot-shake-e9ce92b9{0%{transform:translateY(-2px) scale(.99)}to{transform:translateY(2px) scale(1.005)}}@keyframes flash-particles-e9ce92b9{0%{background-position:0 0,10px 10px}to{background-position:0 50px,10px 60px}}.meal-slot[data-v-e9ce92b9]{margin-bottom:var(--space-lg)}.lock-active[data-v-e9ce92b9]{color:var(--accent-amber)!important;background:#f4a8251a!important}.slot-static[data-v-e9ce92b9]{display:flex;align-items:center;justify-content:center;height:100%}.result-area__hint[data-v-e9ce92b9]{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-sm);text-align:right}.slot-reel.is-animating[data-v-e9ce92b9]{transition:transform 2.6s cubic-bezier(.15,1,.3,1)}.slot-reel.is-settling[data-v-e9ce92b9]{transition:transform .8s cubic-bezier(.3,.05,.2,1)}.result-area--disabled[data-v-e9ce92b9]{cursor:not-allowed!important;opacity:.8}.result-area--disabled .result-area__hint[data-v-e9ce92b9]{color:var(--text-muted)}.empty-hint[data-v-e9ce92b9]{text-align:center;color:var(--text-muted);font-size:var(--font-sm);padding:var(--space-md);border:1px dashed var(--border);border-radius:var(--radius-md);margin-top:var(--space-sm)}.spin-action[data-v-52122a9f]{margin-top:var(--space-lg);text-align:center}.pool-hint[data-v-52122a9f]{font-size:var(--font-xs);color:var(--text-muted);margin-top:var(--space-sm)}.detail-header[data-v-27940b44]{margin-bottom:var(--space-lg)}.detail-header__top[data-v-27940b44]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.detail-header__name[data-v-27940b44]{font-size:var(--font-2xl);font-weight:900;line-height:1.3;color:var(--text-primary)}.nutrition-summary[data-v-27940b44]{display:flex;justify-content:space-between;margin-bottom:var(--space-md);padding:var(--space-md);background:var(--bg-base);border-radius:var(--radius-md)}.nutrition-summary__item[data-v-27940b44]{display:flex;flex-direction:column;align-items:center;gap:2px}.nutrition-summary__value[data-v-27940b44]{font-size:var(--font-md);font-weight:700}.nutrition-summary__label[data-v-27940b44]{font-size:var(--font-xs);color:var(--text-muted)}.detail-section[data-v-27940b44]{margin-top:var(--space-lg)}.detail-section__title[data-v-27940b44]{font-size:var(--font-md);font-weight:700;margin-bottom:var(--space-md);color:var(--text-secondary)}.portions-grid[data-v-27940b44]{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.portion-chip[data-v-27940b44]{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-base);border-radius:var(--radius-sm);border:1px solid var(--border)}.portion-chip__name[data-v-27940b44]{font-weight:600;font-size:var(--font-sm)}.portion-chip__amount[data-v-27940b44]{font-size:var(--font-xs);color:var(--accent-green);font-weight:500}.custom-steps-block[data-v-27940b44]{font-size:var(--font-sm);line-height:1.6;color:var(--text);white-space:pre-wrap;background:#ffffff0d;padding:var(--space-md);border-radius:var(--radius-sm)}.empty-text[data-v-27940b44]{color:var(--text-muted);font-style:italic;text-align:center}.toast-enter[data-v-b3f17f91]{animation:toastIn var(--duration-slow) var(--ease-spring)}.toast-leave[data-v-b3f17f91]{animation:toastOut var(--duration-normal) var(--ease-out) forwards}.snack-toast__portion[data-v-b3f17f91]{font-size:var(--font-xs);color:#b3884d;margin-top:4px}.snack-toast[data-v-b3f17f91]{cursor:pointer}:root{--bg-base: hsl(220, 40%, 6%);--bg-surface: hsl(220, 30%, 11%);--bg-surface-hover: hsl(220, 30%, 15%);--bg-surface-active: hsl(220, 30%, 18%);--bg-glass: rgba(255, 255, 255, .04);--bg-glass-hover: rgba(255, 255, 255, .08);--accent-green: hsl(155, 75%, 52%);--accent-green-dim: hsl(155, 75%, 30%);--accent-green-glow: hsla(155, 75%, 52%, .3);--accent-blue: hsl(210, 90%, 58%);--accent-blue-dim: hsl(210, 60%, 30%);--accent-amber: hsl(38, 90%, 55%);--accent-amber-dim: hsl(38, 60%, 25%);--accent-red: hsl(0, 75%, 55%);--text-primary: hsl(0, 0%, 94%);--text-secondary: hsl(220, 15%, 55%);--text-muted: hsl(220, 15%, 35%);--border: hsl(220, 20%, 18%);--border-focus: var(--accent-green);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.25rem;--font-xl: 1.5rem;--font-2xl: 1.75rem;--font-3xl: 2.25rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .6);--shadow-glow-green: 0 0 20px var(--accent-green-glow)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.6;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 20% 0%,hsla(155,75%,52%,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 100%,hsla(210,90%,58%,.04) 0%,transparent 50%);pointer-events:none;z-index:-1}a{color:var(--accent-green);text-decoration:none}button{font-family:inherit;cursor:pointer}input,select{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:border-color var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.card:hover{border-color:var(--accent-green-dim)}.glass{background:var(--bg-glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.06)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px 10px;font-size:var(--font-xs);font-weight:700;border-radius:var(--radius-full);letter-spacing:.02em;text-transform:uppercase}.badge--green{background:#29e09426;color:var(--accent-green);border:1px solid hsla(155,75%,52%,.3)}.badge--amber{background:#f4a82526;color:var(--accent-amber);border:1px solid hsla(38,90%,55%,.3)}.badge--blue{background:#3494f426;color:var(--accent-blue);border:1px solid hsla(210,90%,58%,.3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;font-size:var(--font-md);font-weight:600;border:none;border-radius:var(--radius-md);transition:all var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.1),transparent);opacity:0;transition:opacity var(--duration-fast)}.btn:hover:after{opacity:1}.btn:active{transform:scale(.96)}.btn--primary{background:linear-gradient(135deg,var(--accent-green),hsl(155,65%,42%));color:#0c1d16;box-shadow:var(--shadow-sm),var(--shadow-glow-green)}.btn--primary:hover{box-shadow:var(--shadow-md),0 0 30px var(--accent-green-glow)}.btn--secondary{background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border)}.btn--secondary:hover{background:var(--bg-surface-hover);border-color:var(--accent-green-dim)}.btn--ghost{background:transparent;color:var(--text-secondary);padding:6px 12px}.btn--ghost:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.btn--sm{padding:6px 14px;font-size:var(--font-sm);border-radius:var(--radius-sm)}.btn--full{width:100%}.btn--spin{background:linear-gradient(135deg,var(--accent-green),hsl(170,75%,40%));color:#08120e;font-size:var(--font-lg);font-weight:900;padding:14px 32px;border-radius:var(--radius-xl);letter-spacing:.05em;box-shadow:var(--shadow-md),var(--shadow-glow-green)}.btn--spin:hover{box-shadow:var(--shadow-lg),0 0 40px var(--accent-green-glow);transform:translateY(-1px)}.btn--spin:active{transform:translateY(0) scale(.97)}.btn--spin:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.toggle-group{display:flex;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:3px;gap:3px}.toggle-group__item{flex:1;padding:8px 16px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-weight:600;font-size:var(--font-sm);transition:all var(--duration-fast) var(--ease-out)}.toggle-group__item--active{background:var(--accent-green);color:#0c1d16;box-shadow:var(--shadow-sm)}.time-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;color:var(--text-primary);font-size:var(--font-md);outline:none;transition:border-color var(--duration-fast);width:120px;text-align:center}.time-input:focus{border-color:var(--accent-green);box-shadow:0 0 0 3px var(--accent-green-glow)}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.5;cursor:pointer}.checkbox{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);transition:background var(--duration-fast);-webkit-user-select:none;user-select:none}.checkbox:hover{background:var(--bg-glass-hover)}.checkbox input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid var(--text-muted);border-radius:4px;transition:all var(--duration-fast);position:relative;flex-shrink:0;cursor:pointer}.checkbox input[type=checkbox]:checked{background:var(--accent-green);border-color:var(--accent-green)}.checkbox input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:900;color:#0c1d16}.checkbox__label{font-size:var(--font-sm);color:var(--text-primary)}.slot-viewport{position:relative;height:90px;overflow:hidden;border-radius:var(--radius-md);background:var(--bg-base);border:2px solid var(--border)}.slot-viewport--spinning{border-color:var(--accent-green);box-shadow:inset 0 0 20px #0009,var(--shadow-glow-green)}.slot-viewport--locked{border-color:var(--accent-amber);box-shadow:inset 0 0 15px #0006}.slot-viewport:before,.slot-viewport:after{content:"";position:absolute;left:0;right:0;height:20px;z-index:2;pointer-events:none}.slot-viewport:before{top:0;background:linear-gradient(to bottom,var(--bg-base),transparent)}.slot-viewport:after{bottom:0;background:linear-gradient(to top,var(--bg-base),transparent)}.slot-reel{position:absolute;left:0;right:0;will-change:transform}.slot-item{height:90px;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 var(--space-md)}.slot-item__name{font-size:var(--font-2xl);font-weight:900;line-height:1.2;color:var(--text-primary)}.slot-item--empty{color:var(--text-muted);font-size:var(--font-md);font-weight:400}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:100;display:flex;align-items:flex-end;justify-content:center;padding:var(--space-md);animation:fadeIn var(--duration-normal) var(--ease-out)}@media(min-width:768px){.modal-overlay{align-items:center}}.modal-content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:85dvh;width:100%;max-width:520px;overflow-y:auto;padding:var(--space-xl);animation:slideUp var(--duration-slow) var(--ease-spring)}@media(min-width:768px){.modal-content{border-radius:var(--radius-xl)}}.snack-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:200;background:linear-gradient(135deg,#492912,#2e170f);border:1px solid hsl(30,50%,30%);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:var(--space-md);box-shadow:var(--shadow-lg),0 0 30px #ad661f33;animation:toastIn var(--duration-slow) var(--ease-spring);max-width:calc(100vw - 32px)}.snack-toast__icon{font-size:2rem;flex-shrink:0}.snack-toast__text{font-size:var(--font-sm);color:#ebd1ad;line-height:1.5}.snack-toast__title{font-weight:700;font-size:var(--font-md);color:var(--accent-amber);margin-bottom:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(30px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;transform:translate(-50%) translateY(30px) scale(.9)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.app-container{max-width:480px;margin:0 auto;padding:var(--space-md);padding-bottom:calc(var(--space-2xl) + env(safe-area-inset-bottom,0px))}.app-header{text-align:center;padding:var(--space-lg) 0 var(--space-xl)}.app-header__title{font-size:var(--font-3xl);font-weight:900;background:linear-gradient(135deg,var(--accent-green),var(--accent-blue));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.3}.app-header__subtitle{font-size:var(--font-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.section{margin-bottom:var(--space-lg)}.section__title{font-size:var(--font-md);font-weight:700;color:var(--text-secondary);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.collapse-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-md) var(--space-lg);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--font-md);font-weight:600;cursor:pointer;transition:all var(--duration-fast)}.collapse-trigger:hover{background:var(--bg-surface-hover);border-color:var(--accent-green-dim)}.collapse-trigger__arrow{transition:transform var(--duration-normal) var(--ease-out);font-size:var(--font-sm);color:var(--text-secondary)}.collapse-trigger__arrow--open{transform:rotate(180deg)}.collapse-body{overflow:hidden;transition:max-height var(--duration-slow) var(--ease-out),opacity var(--duration-normal) var(--ease-out)}.collapse-body--closed{max-height:0;opacity:0}.collapse-body--open{max-height:2000px;opacity:1}.ingredient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:2px}.nutrition-bar{display:flex;gap:2px;height:8px;border-radius:var(--radius-full);overflow:hidden;background:var(--bg-base)}.nutrition-bar__segment{border-radius:var(--radius-full);transition:width var(--duration-slow) var(--ease-out)}.steps-list{list-style:none;counter-reset:step}.steps-list__item{counter-increment:step;display:flex;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border);font-size:var(--font-sm);line-height:1.7}.steps-list__item:last-child{border-bottom:none}.steps-list__item:before{content:counter(step);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent-green-dim);color:var(--accent-green);font-size:var(--font-xs);font-weight:700;flex-shrink:0;margin-top:2px}.tip-card{background:linear-gradient(135deg,#29e09414,#3494f40d);border:1px solid hsla(155,75%,52%,.2);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-sm);color:var(--text-secondary);line-height:1.7}.tip-card__icon{margin-right:var(--space-xs)}.meal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.meal-header__label{font-size:var(--font-lg);font-weight:700;display:flex;align-items:center;gap:var(--space-sm)}.meal-header__actions{display:flex;gap:var(--space-xs)}.result-area{margin-top:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);background:var(--bg-glass);border:1px solid var(--border);cursor:pointer;transition:all var(--duration-fast)}.result-area:hover{background:var(--bg-glass-hover);border-color:var(--accent-green-dim)}.result-area__portions{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-sm);margin-top:var(--space-sm)}.result-area__portion-item{font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-surface);padding:2px 8px;border-radius:var(--radius-sm)}@media(min-width:768px){.app-container{max-width:560px;padding:var(--space-xl)}.app-header__title{font-size:2.5rem}.slot-viewport,.slot-item{height:100px}.slot-item__name{font-size:var(--font-3xl)}}@supports (padding-top: env(safe-area-inset-top)){.app-container{padding-top:calc(var(--space-md) + env(safe-area-inset-top))}}.custom-input-row{display:flex;gap:var(--space-sm);margin-top:var(--space-sm);padding:0 var(--space-sm)}.custom-input-row input{flex:1;background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;color:var(--text-primary);font-size:var(--font-sm);outline:none;transition:border-color var(--duration-fast)}.custom-input-row input:focus{border-color:var(--accent-green)}.custom-input-row input::placeholder{color:var(--text-muted)}
