:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#111827;background-color:#f3f4f6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html{height:100%;height:-webkit-fill-available}body{margin:0;min-width:320px;min-height:100vh;min-height:-webkit-fill-available;min-height:100dvh;background-color:#e5e7eb;display:flex;flex-direction:column}#root{flex:1;min-height:0;display:flex;flex-direction:column}button{font-family:inherit}:root{--color-primary: #1f2937;--color-secondary: #6b7280;--color-accent: #10b981;--color-light: #f9fafb;--color-border: #e5e7eb;--color-success: #ecfdf5;--color-success-border: #bbf7d0;--color-success-text: #166534}*{box-sizing:border-box}.app-root{min-height:100vh;display:flex;flex-direction:column;align-items:stretch;background:linear-gradient(135deg,#f9fafb,#f3f4f6,#e5e7eb);color:var(--color-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app-content{flex:1;min-height:0;display:flex;justify-content:center;align-items:stretch}.app-content-empty{align-items:center}.error-toast{position:fixed;top:72px;left:50%;transform:translate(-50%);z-index:100;max-width:min(92vw,560px);padding:10px 14px;border-radius:12px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;font-size:13px;font-weight:600;box-shadow:0 10px 24px #991b1b26}.admin-bar{position:static;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(92vw,720px);padding:10px 12px;border-radius:14px;background:#fffffff2;border:1px solid rgba(15,23,42,.12);box-shadow:0 16px 28px #0f172a1f;margin:16px auto 8px}.admin-bar-left{display:flex;align-items:center;gap:10px;flex:1}.admin-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:999px;background:#111827;color:#f9fafb;font-size:11px;font-weight:700;letter-spacing:.08em}.admin-token-input{flex:1;min-width:180px;padding:8px 10px;border-radius:10px;border:1px solid rgba(15,23,42,.15);background:#fff;font-size:12px;color:var(--color-primary)}.admin-token-input:focus{outline:none;border-color:#10b98199;box-shadow:0 0 0 2px #10b98126}.admin-delete-button{padding:8px 14px;border-radius:10px;border:none;background:#dc2626;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:transform .16s ease-out,box-shadow .16s ease-out,opacity .16s ease-out}.admin-delete-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px #dc262638}.admin-delete-button:disabled{opacity:.5;cursor:default}.admin-shell{display:flex;align-items:stretch;gap:16px;padding:16px;width:100%;overflow-x:auto}.admin-panel{flex:0 0 260px;width:260px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px;align-self:stretch}.admin-panel-right{flex:0 0 420px;width:420px;overflow:auto}.admin-panel-box{border:1px solid #e5e7eb;border-radius:8px;padding:10px;margin-bottom:12px}.admin-panel-heading{font-size:12px;font-weight:700;text-transform:uppercase;margin-bottom:10px;color:#111827}.admin-main{flex:1 0 520px;min-width:520px;display:flex;flex-direction:column;align-items:center}.admin-mode-title{margin:6px 0 12px;font-size:12px;font-weight:700;letter-spacing:.18em;color:#111827}.admin-panel-section{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.admin-panel-title{font-size:12px;font-weight:700;text-transform:uppercase;color:#111827}.admin-label{font-size:12px;color:#374151}.admin-text-input{width:100%;padding:8px 10px;border-radius:6px;border:1px solid #d1d5db;background:#fff;font-size:12px;color:#111827}.admin-text-input:focus{outline:none;border-color:#9ca3af}.admin-panel-placeholder{font-size:12px;color:#9ca3af}.admin-jump-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-jump-input{flex:1 1 120px;min-width:120px}.admin-jump-button{padding:7px 10px;border-radius:6px;border:1px solid #d1d5db;background:#f3f4f6;color:#111827;font-size:12px;font-weight:600;cursor:pointer}.admin-jump-button:hover:not(:disabled){background:#e5e7eb}.admin-jump-button:disabled{opacity:.45;color:#9ca3af;cursor:default;background:#f3f4f6}.admin-nav-buttons{display:flex;gap:4px}.admin-nav-button{width:28px;height:28px;border-radius:6px;border:1px solid #d1d5db;background:#fff;font-size:12px;font-weight:700;cursor:pointer}.admin-nav-button:disabled{opacity:.5;cursor:default}.admin-page-row{display:flex;align-items:center;gap:8px}.admin-page-label{min-width:140px;text-align:center;font-size:12px;font-weight:600;color:#111827}.admin-hint{font-size:11px;color:#b91c1c}.admin-main .app-content{width:100%}.admin-tools{display:flex;flex-direction:column;gap:12px;height:100%}.admin-tools-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.admin-tools-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-refresh-button{border:1px solid #d1d5db;background:#fff;color:#111827;font-size:11px;font-weight:700;padding:6px 10px;border-radius:8px;cursor:pointer}.admin-refresh-button:disabled{opacity:.5;cursor:default}.admin-auto-toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:#6b7280}.admin-logout-button{border:1px solid #d1d5db;background:#f9fafb;color:#111827;font-size:11px;font-weight:700;padding:6px 10px;border-radius:8px;cursor:pointer}.admin-auth{width:100%;display:flex;align-items:center;justify-content:center;min-height:320px}.admin-auth-only{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:24px}.admin-auth-card{width:100%;max-width:320px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;padding:16px;display:flex;flex-direction:column;gap:10px}.admin-auth-title{font-size:13px;font-weight:700;color:#111827}.admin-auth-subtitle{font-size:11px;color:#6b7280}.admin-auth-button{border:1px solid #111827;background:#111827;color:#fff;font-size:12px;font-weight:700;padding:8px 10px;border-radius:8px;cursor:pointer}.dashboard-check{min-height:100vh;width:100%;padding:24px;display:flex;flex-direction:column;gap:16px;background:#0f0f10;color:#fff}.dashboard-check-header{display:flex;flex-direction:column;gap:12px}.dashboard-check-title{font-size:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff}.dashboard-check-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.admin-tab-button{border:1px solid #d1d5db;background:#f9fafb;color:#111827;font-size:12px;font-weight:700;padding:8px 10px;border-radius:8px;cursor:pointer}.admin-tab-button.active{background:#111827;color:#fff}.admin-tools-content{display:flex;flex-direction:column;gap:12px}.admin-tools-empty{font-size:12px;color:#6b7280;padding:8px 6px}.admin-tools-error{font-size:12px;color:#b91c1c;padding:6px 8px;border-radius:6px;background:#fef2f2;border:1px solid #fecaca}.admin-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-kpi-card{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;background:#f9fafb}.admin-kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}.admin-kpi-value{margin-top:6px;font-size:20px;font-weight:700;color:#111827}.admin-kpi-value-button{margin-top:6px;font-size:20px;font-weight:700;color:#111827;border:none;background:transparent;padding:0;text-align:left;cursor:pointer}.admin-dashboard-detail{border-top:1px solid #e5e7eb;padding-top:10px;display:flex;flex-direction:column;gap:10px}.admin-dashboard-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#6b7280}.admin-filter-row{display:flex;gap:6px;flex-wrap:wrap}.admin-filter-pill{border:1px solid #d1d5db;background:#fff;color:#111827;font-size:11px;font-weight:600;padding:4px 8px;border-radius:999px;cursor:pointer}.admin-filter-pill.active{background:#111827;color:#fff}.admin-recipes-list,.admin-feedback-list,.admin-system-list{display:flex;flex-direction:column;gap:10px}.admin-row{display:flex;justify-content:space-between;gap:10px;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fff}.admin-row-main{display:flex;flex-direction:column;gap:6px}.admin-row-title{font-size:13px;font-weight:700;color:#111827}.admin-row-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;color:#6b7280}.admin-row-actions{display:flex;align-items:center}.admin-row-delete{border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;font-size:11px;font-weight:700;padding:6px 10px;border-radius:8px;cursor:pointer}.admin-badge{border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:#e5e7eb;color:#111827}.admin-badge--random{background:#dbeafe;color:#1d4ed8}.admin-badge--custom{background:#dcfce7;color:#15803d}.admin-badge--status{background:#f3f4f6;color:#374151}.admin-feedback-item{border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:8px}.admin-feedback-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.06em}.admin-feedback-message{font-size:12px;color:#111827;white-space:pre-wrap}.admin-feedback-screenshot{width:100%;border-radius:8px;border:1px solid #e5e7eb;object-fit:cover}.admin-system-row{display:flex;flex-direction:column;gap:6px;border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#fff}.admin-system-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:#6b7280}.admin-system-bar{height:8px;border-radius:999px;background:#f3f4f6;overflow:hidden}.admin-system-bar-fill{height:100%;background:linear-gradient(90deg,#22c55e,#f59e0b 60%,#ef4444);transition:width .2s ease-out}.admin-errors-list{display:flex;flex-direction:column;gap:10px}.admin-error-item{border:1px solid #fecaca;background:#fef2f2;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.admin-error-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:#991b1b}.admin-error-message{font-size:12px;color:#7f1d1d;white-space:pre-wrap}.screen-card{width:100%;max-width:480px;height:100%;padding:30px 16px 16px;position:relative;display:flex;justify-content:center;align-items:center}@keyframes slideInFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideOutToLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-40px)}}.screen-card-inner{width:100%;height:100%;border-radius:28px;padding:16px 16px 24px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 25px -5px #00000014,0 10px 10px -5px #0000000a,0 0 0 1px #0000000d;display:flex;flex-direction:column;gap:12px;transition:box-shadow .3s ease-out}.screen-card-inner:hover{box-shadow:0 25px 50px -12px #0000001f,0 0 0 1px #00000014}.screen-card-header{display:flex;justify-content:space-between;align-items:center;height:48px;flex-shrink:0;padding:0 4px;gap:6px}.header-left{flex:1}.app-title{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:slideInLeft .6s ease-out}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.header-right{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:6px}.time-of-day-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:20px;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid var(--color-success-border);color:var(--color-success-text);font-size:11px;font-weight:600;white-space:nowrap;animation:slideInRight .6s ease-out;transition:all .2s ease-out;cursor:default;flex-shrink:0}.time-of-day-pill:hover{background:linear-gradient(135deg,#dcfce7,#bbf7d0);transform:translateY(-2px);box-shadow:0 4px 12px #10b98126}.card-number-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:12px;background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.5);color:var(--color-primary);font-size:13px;font-weight:600;margin-right:8px;animation:slideInRight .6s ease-out;box-shadow:0 2px 8px #00000014}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:24px;text-align:center;color:var(--color-secondary);font-size:16px}.empty-state .action-button.generate{margin-top:16px;margin-bottom:16px}.empty-state p{margin-bottom:24px;font-size:18px}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.time-icon{display:inline-block;width:12px;height:12px;border-radius:50%}.time-icon.time-breakfast{background:#fbbf24;box-shadow:0 0 8px #fbbf2466}.time-icon.time-lunch{background:#f97316;box-shadow:0 0 8px #f9731666}.time-icon.time-dinner{background:#8b5cf6;box-shadow:0 0 8px #8b5cf666}.time-icon.time-snacks{background:#ec4899;box-shadow:0 0 8px #ec489966}.time-icon.time-other{background:#6b7280;box-shadow:0 0 8px #6b728066}.time-label{white-space:normal;line-height:1.3}.screen-card-image-wrapper{border-radius:20px;overflow:hidden;position:relative;height:var(--recipe-image-height, 220px);animation:fadeIn .8s ease-out .1s backwards}.screen-card-image{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.05) 100%);pointer-events:none;border-radius:20px}.screen-card-inner:hover .screen-card-image{transform:scale(1.08)}.screen-card-tabs{display:flex;gap:6px;padding:4px;border-radius:999px;background:#f3f4f6;border:1px solid var(--color-border)}.tab{flex:1;border-radius:999px;border:none;background:transparent;padding:8px 0;font-size:12px;font-weight:500;color:var(--color-secondary);cursor:pointer;transition:background-color .2s cubic-bezier(.34,1.56,.64,1),color .2s ease-out,transform .15s ease-out;position:relative}.tab-active{background:var(--color-primary);color:var(--color-light);box-shadow:0 4px 6px #0000001a}.tab:active{transform:scale(.97)}.tab:hover:not(.tab-active){color:var(--color-primary)}.screen-card-content{flex:1;overflow-y:auto;padding-right:8px;scroll-behavior:smooth;touch-action:pan-y;animation:slideContentIn .5s cubic-bezier(.34,1.56,.64,1) .1s backwards}@keyframes slideContentIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.screen-card-content::-webkit-scrollbar{width:4px}.screen-card-content::-webkit-scrollbar-track{background:transparent}.screen-card-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.screen-card-content::-webkit-scrollbar-thumb:hover{background:var(--color-secondary)}.panel{display:flex;flex-direction:column;gap:14px;animation:fadeInSmooth .4s ease-out}@keyframes fadeInSmooth{0%{opacity:0}to{opacity:1}}.recipe-title{margin:0;font-size:24px;line-height:1.2;letter-spacing:-.02em;font-weight:700;color:var(--color-primary)}.recipe-subtitle{margin:4px 0 0;font-size:14px;color:var(--color-secondary);line-height:1.4}.metrics-row{display:flex;gap:8px;margin-top:8px}.metric-block{flex:1;padding:10px 12px;border-radius:16px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:1px solid var(--color-border);transition:background .2s ease-out,border-color .2s ease-out,transform .2s ease-out}.metric-block:hover{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-color:var(--color-secondary);transform:translateY(-2px)}.metric-block.small{flex:.9}.metric-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-secondary);font-weight:600}.metric-value{margin-top:4px;font-size:16px;font-weight:700;color:var(--color-primary);line-height:1.2}.metric-sub{margin-top:2px;font-size:11px;color:var(--color-secondary);font-weight:500}.difficulty-section{margin-top:12px;display:flex;flex-direction:column;gap:8px}.difficulty-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-label{display:inline-block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-secondary);font-weight:600;white-space:nowrap}.difficulty-block{padding:12px 14px;border-radius:16px;background:var(--color-success);border:1px solid var(--color-success-border);display:flex;flex-direction:column;gap:8px;transition:all .2s ease-out}.difficulty-block-title{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--color-success-text);font-weight:600;text-align:center;opacity:.8}.difficulty-block:hover{background:#dcfce7;border-color:#a7f3d0;box-shadow:0 4px 12px #10b9811a}.difficulty-main{display:flex;align-items:center}.difficulty-pill{display:inline-block;padding:6px 12px;border-radius:999px;background:#16653414;color:var(--color-success-text);font-size:13px;font-weight:600;text-align:center;white-space:nowrap}.difficulty-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:11px;color:var(--color-success-text);font-weight:500;line-height:1.4}.difficulty-grid span{padding:4px 6px;background:#10b98114;border-radius:8px;transition:all .15s ease-out}.difficulty-grid span:hover{background:#10b98126;transform:translate(2px)}.complexity-note{font-size:12px;color:var(--color-success-text);background:#1665340a;padding:8px 10px;border-radius:12px;line-height:1.4;transition:all .2s ease-out}.complexity-note:hover{background:#16653414}.ingredients-groups{display:flex;flex-direction:column;gap:12px;margin-top:4px}.ingredients-list{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:6px}.ingredient-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:12px;background:linear-gradient(135deg,#f9fafb,#f3f4f6);border:1px solid var(--color-border);font-size:13px;transition:background .2s ease-out,border-color .2s ease-out,transform .15s ease-out;cursor:default}.ingredient-item:hover{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border-color:var(--color-secondary);transform:translate(4px)}.ingredient-item.key{border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.ingredient-item.key:hover{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#7dd3fc;box-shadow:0 4px 12px #3b82f61a}.ingredient-name{flex:1;font-weight:500;color:var(--color-primary)}.ingredient-amount{color:var(--color-secondary);font-size:12px;font-weight:500;background:#00000005;padding:2px 6px;border-radius:6px;white-space:nowrap}.ingredients-subtitle{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--color-secondary)}.steps-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.section-title{margin:0;font-size:16px;font-weight:700;color:var(--color-primary)}.step-modes{display:inline-flex;padding:2px;border-radius:999px;background:#f3f4f6;border:1px solid var(--color-border)}.step-mode-button{border:none;background:transparent;padding:5px 10px;font-size:11px;font-weight:500;border-radius:999px;color:var(--color-secondary);cursor:pointer;transition:background-color .2s cubic-bezier(.34,1.56,.64,1),color .2s ease-out,transform .15s ease-out}.step-mode-button:hover{color:var(--color-primary)}.step-mode-button.active{background:var(--color-primary);color:var(--color-light);box-shadow:0 2px 8px #0000001a}.steps-list{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:10px}.step-item{display:flex;gap:10px;align-items:flex-start;transition:transform .15s ease-out}.step-item:hover{transform:translate(4px)}.step-number{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--color-primary) 0%,#374151 100%);color:var(--color-light);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;box-shadow:0 4px 8px #0000001a;transition:all .2s ease-out}.step-item:hover .step-number{transform:scale(1.1);box-shadow:0 6px 12px #00000026}.step-text{margin:0;font-size:13px;color:var(--color-primary);line-height:1.5;padding:6px 0;font-weight:500}.screen-card-footer{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:12px;border-top:1px solid var(--color-border)}.screen-indicator{display:flex;gap:6px;animation:fadeIn .6s ease-out}.dot{width:6px;height:6px;border-radius:50%;background:var(--color-border);transition:width .3s cubic-bezier(.34,1.56,.64,1),background-color .3s ease-out;cursor:pointer}.dot:hover{background:var(--color-secondary)}.dot-active{width:20px;background:var(--color-primary);box-shadow:0 2px 8px #0003}.calorie-note{font-size:10px;color:var(--color-secondary);font-weight:500;letter-spacing:.03em}.recipe-actions{width:100%;display:flex;flex-direction:column;gap:10px;align-items:stretch}.generate-button,.action-button.generate{width:100%;padding:14px 18px;border-radius:999px;border:none;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#111827,#0f766e);box-shadow:0 12px 24px #0f172a40;cursor:pointer;transition:transform .2s ease-out,box-shadow .2s ease-out,opacity .2s ease-out}.generate-button.floating{position:relative}.generate-button:hover:not(:disabled),.action-button.generate:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 30px #0f172a4d}.generate-button:disabled,.action-button.generate:disabled{opacity:.7;cursor:default}.generate-button.is-loading,.action-button.generate.is-loading{animation:buttonPulse 1.2s ease-in-out infinite}.draft-actions{width:100%;display:flex;gap:8px}.draft-button{flex:1;padding:10px 12px;border-radius:12px;border:1px solid var(--color-border);background:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:transform .18s ease-out,box-shadow .18s ease-out,opacity .18s ease-out}.draft-button.confirm{background:#10b981;color:#fff;border:none}.draft-button.delete{background:#fee2e2;color:#991b1b;border-color:#fecaca}.draft-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 16px #0f172a26}.draft-button:disabled{opacity:.6;cursor:default}.draft-button.is-loading{animation:buttonPulse 1s ease-in-out infinite}.pipeline-panel{gap:12px}.pipeline-header{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}.pipeline-subtitle{font-size:11px;color:var(--color-secondary);font-weight:600}.pipeline-footer-note{margin-top:8px;font-size:11px;color:var(--color-secondary);font-weight:600;text-align:center}.pipeline-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.pipeline-step{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;border:1px solid var(--color-border);background:#f9fafb;opacity:.5;transform:scale(.95);transition:opacity .3s ease,transform .3s ease,background .3s ease,border-color .3s ease}.pipeline-step.waiting{opacity:.5}.pipeline-step.active{opacity:1;transform:scale(1);background:#f8fafc;border-color:#e2e8f0}.pipeline-step.done{opacity:1;transform:scale(1);background:#f0fdf4;border-color:#86efac}.pipeline-step.primary .pipeline-title{font-weight:700}.pipeline-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;background:#e5e7eb;border:1px solid #cbd5e1;color:#94a3b8;flex-shrink:0}.pipeline-step.active .pipeline-icon{background:#f8fafc;color:#0f766e;border-color:#0f766e80;box-shadow:0 0 0 2px #0f766e29;animation:pipelineIconPulse 1.2s ease-in-out infinite}.pipeline-step.waiting .pipeline-icon{background:#e5e7eb;border-color:#cbd5e1;color:#94a3b8}.pipeline-step.done .pipeline-icon{background:#16a34a;color:#fff;border-color:#16a34a}.pipeline-text{display:flex;flex-direction:column;gap:2px}.pipeline-title{font-size:13px;font-weight:600;color:var(--color-primary)}.pipeline-line{font-size:12px;color:var(--color-secondary)}.pipeline-message{margin-top:6px;padding:10px 12px;border-radius:12px;background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;font-size:12px;font-weight:600;line-height:1.35;text-align:center;white-space:pre-line;width:100%;max-width:100%;box-sizing:border-box;align-self:center}.recipe-delete-dissolve{position:relative;overflow:hidden}.recipe-delete-dissolve:after{content:"";position:absolute;inset:-8%;background-image:linear-gradient(90deg,rgba(15,23,42,.18) 1px,transparent 1px),linear-gradient(0deg,rgba(15,23,42,.18) 1px,transparent 1px);background-size:8px 8px;opacity:0;pointer-events:none;mix-blend-mode:multiply;animation:pixelScatter .62s steps(6,end) forwards}@keyframes pixelScatter{0%{opacity:0;transform:translateY(0) scale(1);filter:blur(0px)}55%{opacity:.42}to{opacity:0;transform:translateY(14px) scale(1.03);filter:blur(3px)}}@keyframes pipelineIconPulse{0%{transform:scale(.94);box-shadow:0 0 #0f766e38}50%{transform:scale(1);box-shadow:0 0 0 6px #0f766e1f}to{transform:scale(.94);box-shadow:0 0 #0f766e33}}@keyframes pipelinePulse{0%{transform:scale(.98)}50%{transform:scale(1)}to{transform:scale(.98)}}@keyframes buttonPulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.image-zoom-hint{position:absolute;bottom:8px;right:10px;font-size:16px;opacity:0;transition:opacity .2s ease;pointer-events:none;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}.screen-card-image-wrapper:hover .image-zoom-hint{opacity:.7}.lightbox-overlay{position:fixed;inset:0;z-index:9999;background:#000;display:flex;align-items:center;justify-content:center;animation:lightboxFadeIn .16s ease;cursor:pointer}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}.lightbox-header{position:absolute;top:0;left:0;right:0;z-index:10000;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:linear-gradient(to bottom,rgba(0,0,0,.7) 0%,transparent 100%);pointer-events:none}.lightbox-title{font-size:16px;font-weight:700;color:#fff;letter-spacing:-.01em;line-height:1.3;flex:1;text-shadow:0 1px 4px rgba(0,0,0,.6)}.lightbox-close{pointer-events:auto;width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:#00000073;color:#fff;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .16s ease,border-color .16s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox-close:hover{background:#000000b3;border-color:#fff9}.lightbox-body{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.lightbox-image{width:100%;height:100%;object-fit:contain;animation:lightboxImageIn .18s ease-out;cursor:pointer}@keyframes lightboxImageIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.recipe-feed{width:100%;height:100%;position:relative;display:flex;justify-content:center;align-items:stretch;padding-bottom:calc(36px + env(safe-area-inset-bottom));box-sizing:border-box;touch-action:pan-y}.recipe-feed-nav{position:fixed;inset:0;pointer-events:none;z-index:60;opacity:0;transition:opacity .28s ease}.recipe-feed-nav.is-transitioning{opacity:0!important;pointer-events:none!important}.arrow-button{width:38px;height:38px;border:2px solid currentColor;background:transparent;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s ease,color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;padding:0;pointer-events:none;opacity:0;color:#111827b3;background:#fff9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 6px 14px #0f172a24;-webkit-tap-highlight-color:transparent;outline:none;user-select:none;-webkit-user-select:none}.arrow-button:focus-visible{outline:2px solid rgba(16,185,129,.7);outline-offset:2px}.arrow-button:hover:not(:disabled){opacity:.95;color:#dbe0e5f2;background:#dbe0e524;box-shadow:0 6px 14px #0f172a33}.arrow-button:disabled{opacity:.2;cursor:default}.arrow-icon{width:16px;height:16px;box-sizing:border-box;border-left:2px solid currentColor;border-bottom:2px solid currentColor;border-radius:2px;transition:border-color .25s ease-out,transform .18s cubic-bezier(.34,1.56,.64,1)}.recipe-feed-nav.hint-top,.recipe-feed-nav.hint-bottom{opacity:1}.recipe-feed-nav.hint-top .arrow-up,.recipe-feed-nav.hint-bottom .arrow-down,.recipe-feed-nav.hint-top.hint-bottom .arrow-up,.recipe-feed-nav.hint-top.hint-bottom .arrow-down{opacity:.6;pointer-events:auto;animation:arrowFadeIn .62s ease-out}.recipe-feed-nav .arrow-up{position:absolute;top:calc(env(safe-area-inset-top) + 11px);left:50%;transform:translate(-50%)}.recipe-feed-nav .arrow-down{position:absolute;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%)}.arrow-down .arrow-icon{transform:rotate(-45deg)}.arrow-up .arrow-icon{transform:rotate(135deg)}.arrow-button:hover:not(:disabled) .arrow-icon{border-color:currentColor}@media(prefers-color-scheme:light){.arrow-button{color:#dbe0e5;background:transparent;box-shadow:0 3px 8px #0f172a0f}.recipe-feed-nav.hint-top .arrow-up,.recipe-feed-nav.hint-bottom .arrow-down{opacity:.5}}@keyframes arrowFadeIn{0%{opacity:0;transform:translate(-50%,14px) scale(.9)}60%{opacity:1}to{opacity:.6;transform:translate(-50%) scale(1)}}@media(hover:none)and (pointer:coarse){.recipe-feed-nav.mobile-arrows-visible{opacity:1}}@media(hover:none)and (pointer:coarse){.recipe-feed.edge-bump-top .screen-card-inner{animation:edge-bump-top .16s ease-out}.recipe-feed.edge-bump-bottom .screen-card-inner{animation:edge-bump-bottom .16s ease-out}}@keyframes edge-bump-top{0%{transform:translateY(0)}60%{transform:translateY(6px)}to{transform:translateY(0)}}@keyframes edge-bump-bottom{0%{transform:translateY(0)}60%{transform:translateY(-6px)}to{transform:translateY(0)}}.pages-container{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pan-y}.pages-track{display:flex;height:100%;transition:transform .42s cubic-bezier(.22,.61,.36,1)}.page{width:100%;flex:0 0 100%;display:flex;justify-content:center;align-items:stretch}.page-generation{padding:16px 16px calc(52px + env(safe-area-inset-bottom));box-sizing:border-box;align-items:center;overflow-y:auto}.page-indicator{position:absolute;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:8px;z-index:70}.page-dot{width:8px;height:8px;border-radius:50%;background:#0f172a40;transition:transform .2s ease,background .2s ease}.page-dot.active{transform:scale(1.3);background:#0f172ae6}.page-nav{position:absolute;left:50%;transform:translate(-50%);bottom:calc(18px + env(safe-area-inset-bottom));pointer-events:none;z-index:65;display:flex;justify-content:space-between;align-items:center;width:min(480px,100%);padding:0 40px;box-sizing:border-box}.page-arrow{pointer-events:auto;border:1px solid rgba(15,23,42,.2);background:#ffffffb3;color:#0f172acc;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px #0f172a26;transition:transform .18s ease,opacity .18s ease,box-shadow .18s ease}.page-arrow:disabled{opacity:.35;pointer-events:none;box-shadow:none}.page-arrow:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 22px #0f172a33}.recipe-feed-nav.page-inactive{opacity:0!important;pointer-events:none!important}.generation-card{width:100%;max-width:480px;height:100%;padding:18px 16px 22px;border-radius:28px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 25px -5px #00000014,0 10px 10px -5px #0000000a,0 0 0 1px #0000000d;display:flex;flex-direction:column;gap:14px}.generation-card.is-compact{height:auto;min-height:0;padding:20px;gap:0;align-items:stretch}.generation-finish-button{width:100%;padding:16px 18px;border-radius:999px;border:none;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#0f172a,#16a34a);box-shadow:0 12px 24px #0f172a40;cursor:pointer;transition:transform .2s ease-out,box-shadow .2s ease-out,opacity .2s ease-out}.generation-finish-button:hover{transform:translateY(-2px);box-shadow:0 16px 30px #0f172a4d}.generation-header{display:flex;justify-content:space-between;align-items:center}.generation-app-title{margin:0;font-size:28px;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.generation-title{font-size:18px;font-weight:700;color:var(--color-primary);text-align:center}.generation-image-placeholder{border-radius:20px;overflow:hidden;height:var(--recipe-image-height, 220px);background:#f1f5f9;border:1px solid #e2e8f0;position:relative;display:flex;align-items:center;justify-content:center}.generation-lottie{width:100%;height:100%;object-fit:contain}.generation-progress{display:flex;align-items:center;gap:10px}.progress-track{flex:1;height:14px;border-radius:999px;background:#e5e7eb;overflow:hidden;border:1px solid #d1d5db}.progress-fill{height:100%;background:linear-gradient(90deg,#0f172a,#0f766e);border-radius:inherit;transition:width .6s cubic-bezier(.4,0,.2,1),background .4s ease}.progress-fill--alert-1{background:linear-gradient(90deg,#b45309,#f59e0b 60%,#fcd34d)}.progress-fill--alert-2{background:linear-gradient(90deg,#9a3412,#ea580c 60%,#fb923c);animation:progress-pulse 1.4s ease-in-out infinite}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.72}}.progress-label{font-size:12px;font-weight:700;color:var(--color-primary);min-width:36px;text-align:right}.progress-label--alert-1{color:#92400e}.progress-label--alert-2{color:#c2410c}.generation-pipeline{gap:10px}.generation-ai-status{padding:10px 12px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0;text-align:center;color:var(--color-primary)}.ai-status-line{font-weight:700;font-size:14px}.ai-status-note{margin-top:4px;font-size:12px;color:var(--color-secondary);font-weight:600}.generation-actions{margin-top:auto}.generation-ai-status.alert-1{background:#fffbeb;border-color:#fcd34d;animation:alert-pulse-1 2s ease-in-out infinite}.generation-ai-status.alert-1 .ai-status-note{color:#92400e;text-align:center;white-space:pre-line}.generation-ai-status.alert-2{background:#fff7ed;border-color:#f97316;animation:alert-pulse-2 1.6s ease-in-out infinite}.generation-ai-status.alert-2 .ai-status-note{color:#7c2d12;text-align:center;white-space:pre-line}@keyframes alert-pulse-1{0%,to{box-shadow:0 0 #fcd34d00}50%{box-shadow:0 0 0 4px #fcd34d59}}@keyframes alert-pulse-2{0%,to{box-shadow:0 0 #f9731600}50%{box-shadow:0 0 0 6px #f973164d}}@media(min-width:768px){.screen-card{max-width:520px}.screen-card-image-wrapper,.generation-image-placeholder{height:var(--recipe-image-height, 260px)}.difficulty-grid{grid-template-columns:1fr 1fr 1fr}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.ux-pipeline-box{border-color:#c7d2fe;background:#f5f7ff}.ux-pipeline-status{padding:10px 10px 8px;border-radius:8px;background:#1e1b4b;color:#e0e7ff;margin-bottom:10px}.ux-pipeline-status-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#818cf8;margin-bottom:4px}.ux-pipeline-status-value{font-size:12px;font-weight:600;color:#e0e7ff;min-height:32px;line-height:1.4;margin-bottom:8px}.ux-pipeline-progress-row{display:flex;align-items:center;gap:8px}.ux-pipeline-progress-track{flex:1;height:5px;border-radius:999px;background:#ffffff26;overflow:hidden}.ux-pipeline-progress-fill{height:100%;background:#818cf8;border-radius:inherit;transition:width .3s ease}.ux-pipeline-step-counter{font-size:10px;font-weight:700;color:#818cf8;white-space:nowrap}.ux-pipeline-controls{display:flex;flex-direction:column;gap:8px}.ux-start-button{width:100%;padding:8px 10px;border-radius:8px;border:none;background:#4f46e5;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:opacity .16s ease,transform .16s ease}.ux-start-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.ux-start-button:disabled{opacity:.35;cursor:default}.ux-step-buttons{display:flex;gap:6px}.ux-step-btn{flex:1;text-align:center;justify-content:center}.ux-reset-button{width:100%;padding:6px 10px;border-radius:8px;border:1px solid #c7d2fe;background:transparent;color:#4338ca;font-size:11px;font-weight:600;cursor:pointer;transition:background .16s ease}.ux-reset-button:hover:not(:disabled){background:#e0e7ff}.ux-reset-button:disabled{opacity:.35;cursor:default}.lottie-debug-box{border-color:#dbeafe;background:#f8fbff;padding:8px}.lottie-debug-box .admin-panel-section{gap:4px;margin-bottom:8px}.lottie-debug-box .admin-panel-title{font-size:10px;letter-spacing:.06em}.lottie-debug-box .admin-panel-placeholder{font-size:11px;color:#475569;background:#eef2ff;border-radius:6px;padding:4px 6px}.admin-confirm-overlay{position:fixed;inset:0;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;display:flex;align-items:center;justify-content:center}.admin-confirm-dialog{background:#fff;border-radius:16px;padding:24px 20px 20px;width:min(320px,90vw);box-shadow:0 24px 48px #0f172a33;display:flex;flex-direction:column;gap:10px}.admin-confirm-title{font-size:15px;font-weight:700;color:#111827}.admin-confirm-body{font-size:13px;color:#6b7280}.admin-confirm-actions{display:flex;gap:8px;margin-top:6px}.admin-confirm-cancel{flex:1;padding:9px 12px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;color:#374151;font-size:13px;font-weight:600;cursor:pointer;transition:background .16s ease}.admin-confirm-cancel:hover{background:#e5e7eb}.admin-confirm-delete{flex:1;padding:9px 12px;border-radius:10px;border:none;background:#dc2626;color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:opacity .16s ease,transform .16s ease}.admin-confirm-delete:hover{opacity:.88;transform:translateY(-1px)}.create-recipe-block{width:100%;display:flex;flex-direction:column;gap:10px;align-items:stretch}.create-recipe-title{font-size:15px;font-weight:700;color:var(--color-primary);text-align:center}.create-recipe-buttons{display:flex;gap:10px}.create-recipe-button{flex:1;padding:12px 14px;border-radius:999px;border:1px solid var(--color-border);background:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.create-recipe-button.primary{background:#d1fae5;color:#065f46;border:1.5px solid #6ee7b7;box-shadow:0 2px 8px #10b98126;font-size:14px;font-weight:700}.create-recipe-button.secondary{background:linear-gradient(135deg,#065f46,#047857);color:#d1fae5;border:1.5px solid #059669;box-shadow:0 4px 12px #04785740;font-weight:600;font-size:14px}.create-recipe-button:hover:not(:disabled),.create-recipe-button:active:not(:disabled){transform:scale(.97);box-shadow:0 4px 12px #0f172a1a}.create-recipe-button:disabled{opacity:.6;cursor:default}.custom-page{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;padding:20px 16px 0;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.custom-header{width:min(92vw,480px);display:flex;align-items:center;justify-content:center;margin-bottom:20px;position:relative}.custom-back{position:absolute;left:0;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:1.5px solid var(--color-border);background:#fffc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--color-primary);font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;box-shadow:0 2px 8px #0f172a14;padding:0;line-height:1}.custom-back:hover{border-color:#9ca3af;box-shadow:0 4px 12px #0f172a24;transform:translateY(-50%) translate(-1px)}.custom-back-icon{display:inline-block;width:10px;height:10px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;border-radius:1px;transform:rotate(45deg);margin-right:-2px}.custom-title{font-size:19px;font-weight:700;color:var(--color-primary);letter-spacing:-.02em;text-align:center}.custom-body{width:min(92vw,480px);display:flex;flex-direction:column;gap:10px;padding-bottom:12px}.custom-card{background:#fffffff7;border:1px solid var(--color-border);border-radius:20px;padding:16px;box-shadow:0 4px 16px #0f172a0f,0 1px 4px #0f172a0a;transition:box-shadow .2s ease,opacity .22s ease}.custom-card--dimmed{opacity:.38;pointer-events:none}.custom-card-header{display:flex;align-items:baseline;gap:8px;margin-bottom:12px}.custom-card-number{display:none}.custom-card-title{font-size:15px;font-weight:700;color:var(--color-primary);line-height:1.2}.custom-card-subtitle{font-size:11px;color:var(--color-secondary);font-weight:500;margin-top:-8px;margin-bottom:10px;line-height:1.4}.custom-card--presets{background:linear-gradient(150deg,#d1fae5,#a7f3d0 55%,#6ee7b7);border-color:#34d399;box-shadow:0 6px 20px #10b98129,0 1px 4px #10b98114;padding:0;overflow:hidden}.custom-card--presets .custom-card-header{padding:14px 16px 10px;margin-bottom:0;display:flex;align-items:center;justify-content:space-between}.custom-card--presets .custom-card-title{color:#065f46}.preset-row{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 16px}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px 16px}.preset-chip{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:10px 6px;border-radius:12px;border:1.5px solid rgba(255,255,255,.7);background:#fff;font-size:12px;font-weight:600;color:#065f46;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;text-align:center;min-height:44px;box-shadow:0 1px 4px #065f461a}.preset-chip:hover:not(.preset-chip--disabled):not(.preset-chip--active){transform:translateY(-1px);box-shadow:0 4px 12px #065f4633}.preset-chip:active:not(.preset-chip--disabled){transform:scale(.95)}.preset-chip--active{background:linear-gradient(135deg,#065f46,#047857);color:#fff;border-color:#fff3;box-shadow:0 4px 14px #04785766}.preset-chip--active:hover{transform:translateY(-1px);box-shadow:0 6px 18px #0478577a}.preset-chip--disabled,.preset-chip--dimmed{opacity:.45;cursor:default}.chips-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start;margin-bottom:14px}.chips-col{display:flex;flex-direction:column;gap:6px}.chips-col-title{font-size:10px;font-weight:800;color:var(--color-secondary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px;display:flex;align-items:center;gap:5px}.chip-required{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#0f766e;background:#0f766e14;padding:1px 5px;border-radius:4px}.chip-row--vertical{flex-direction:column;gap:5px;align-items:stretch}.chip--sm{padding:6px 8px;font-size:11px;text-align:left;border-radius:10px;justify-content:flex-start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-block--optional{display:flex;flex-direction:column;gap:7px}.chip-block--optional+.chip-block--optional{margin-top:6px}.chip-block{display:flex;flex-direction:column;gap:7px;margin-bottom:0}.chip-block-title{font-size:10px;font-weight:800;color:var(--color-secondary);text-transform:uppercase;letter-spacing:.1em;display:flex;gap:6px;align-items:center}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;border:1.5px solid #e5e7eb;background:#f3f4f6;font-size:12px;font-weight:600;color:var(--color-primary);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;line-height:1}.chip:hover:not(:disabled):not(.chip-disabled):not(.chip-selected){border-color:#9ca3af;box-shadow:0 2px 8px #0f172a1a;transform:translateY(-1px)}.chip:active:not(:disabled):not(.chip-disabled){transform:scale(.95)}.chip-selected{background:#065f46;color:#fff;border-color:transparent;box-shadow:0 3px 10px #065f4647}.chip-selected:hover:not(:disabled){background:#047857;box-shadow:0 5px 14px #065f465c;transform:translateY(-1px)}.chip-dim{opacity:.42}.chip:disabled,.chip-disabled{cursor:default;opacity:.38}.custom-card--text .custom-card-title{color:var(--color-primary)}.custom-input{width:100%;min-height:80px;padding:11px 13px;border-radius:12px;border:1.5px solid var(--color-border);font-size:14px;resize:none;background:#f9fafb;color:var(--color-primary);font-family:inherit;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;line-height:1.5}.custom-input:focus{outline:none;border-color:#0f766e8c;background:#fff;box-shadow:0 0 0 3px #0f766e1a}.custom-input-meta{display:flex;justify-content:flex-end;margin-top:5px;font-size:11px;color:var(--color-secondary);font-weight:500}.custom-card-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:15px 16px;gap:8px;background:none;border:none;outline:none;-webkit-appearance:none;appearance:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;border-radius:20px}.custom-card-toggle:focus-visible{outline:2px solid rgba(16,185,129,.4);outline-offset:-2px}.custom-card-toggle-left{display:flex;align-items:center;gap:8px}.custom-card-chevron{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:#9ca3af;transition:transform .22s ease}.custom-card-chevron:before{content:"";display:block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;border-radius:1px}.custom-card-chevron.open{transform:rotate(-180deg)}.custom-card-chevron.open:before{margin-top:3px}.custom-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--color-border)}.custom-reset-btn{margin-left:auto;padding:4px 10px;border-radius:999px;border:1px solid #d1d5db;background:#ffffffb3;color:#6b7280;font-size:11px;font-weight:600;cursor:pointer;transition:color .14s ease,border-color .14s ease;white-space:nowrap;flex-shrink:0}.custom-reset-btn:hover{color:#dc2626;border-color:#fca5a5;background:#fff}.custom-reset-btn--inline{margin-left:auto}.custom-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);z-index:200;max-width:min(88vw,400px);padding:11px 16px;border-radius:14px;background:#1f2937;color:#f9fafb;font-size:13px;font-weight:500;line-height:1.4;text-align:center;box-shadow:0 8px 24px #0f172a47;pointer-events:none;opacity:0;transition:opacity .22s ease,transform .22s ease}.custom-toast em{font-style:normal;font-weight:700;color:#6ee7b7}.custom-toast--visible{opacity:1;transform:translate(-50%) translateY(0)}.chip-optional-label{font-size:10px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--color-secondary);opacity:.45;padding:0 4px}.time-slider-wrap{display:flex;flex-direction:column;gap:6px;padding:2px 0;-webkit-user-select:none;user-select:none}.time-slider-wrap--disabled{opacity:.4;pointer-events:none}.time-slider-label{display:flex;align-items:center;justify-content:space-between;gap:8px}.time-slider-range{font-size:13px;font-weight:700;color:var(--color-primary)}.time-slider-hint{font-size:10px;font-weight:500;color:var(--color-secondary);opacity:.65;font-style:italic}.time-slider-track-wrap{position:relative;height:32px;display:flex;align-items:center}.time-slider-track-wrap:before{content:"";position:absolute;left:0;right:0;height:4px;background:#d1d5db;border-radius:2px;pointer-events:none}.time-slider-fill{position:absolute;left:0;height:4px;background:linear-gradient(90deg,#065f46,#059669);border-radius:2px;pointer-events:none;transition:width .1s ease;max-width:100%}.time-slider-input{position:relative;width:100%;height:32px;margin:0;padding:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer;z-index:1;outline:none}.time-slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;border:2.5px solid #059669;box-shadow:0 1px 6px #0f172a33;cursor:grab;transition:transform .12s ease,box-shadow .12s ease}.time-slider-input::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.2);box-shadow:0 3px 14px #05966966}.time-slider-input::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:2.5px solid #059669;box-shadow:0 1px 6px #0f172a33;cursor:grab}.time-slider-ticks{display:flex;justify-content:space-between;padding:0 2px}.time-slider-tick{font-size:10px;font-weight:500;color:var(--color-secondary);opacity:.5;transition:opacity .15s ease,color .15s ease,font-weight .15s ease;text-align:center;min-width:20px}.time-slider-tick.active{color:#059669;opacity:1;font-weight:700}.custom-cta-block{display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:4px}.custom-floating-spacer{height:76px;flex-shrink:0}.custom-footer-anchor{padding-bottom:6px}.custom-footer-note{font-size:12px;font-weight:600;color:var(--color-secondary);text-align:center;padding:4px 0}.custom-floating-bar{position:sticky;bottom:0;left:0;right:0;z-index:50;display:flex;justify-content:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent 0%,rgba(243,244,246,.97) 28%);pointer-events:none}.custom-generate-button{pointer-events:auto;width:min(92vw,480px);padding:15px 18px;border-radius:999px;border:none;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,#111827,#065f46);box-shadow:0 10px 26px #0f172a42;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease;letter-spacing:-.01em}.custom-generate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 32px #0f172a4d}.custom-generate-button:active:not(:disabled){transform:scale(.97);box-shadow:0 8px 18px #0f172a38}.custom-generate-button:disabled{opacity:.55;cursor:default}.admin-panel-heading--collapsible{cursor:pointer;display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.admin-panel-heading--collapsible:hover{color:#4338ca}.admin-collapse-icon{font-size:14px;color:#9ca3af;transition:transform .2s ease;transform:rotate(-90deg)}.admin-collapse-icon.open{transform:rotate(0)}.admin-page-number{font-size:11px;font-weight:700;color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;padding:1px 6px;margin-left:auto}.ux-start-buttons{display:flex;flex-direction:column;gap:6px}.ux-start-button--random{background:#4f46e5}.ux-start-button--custom{background:#0f766e}.ux-start-button--custom:disabled{background:#374151;opacity:.45}.ux-start-button--llm{background:linear-gradient(135deg,#b45309,#d97706);border:1px solid rgba(251,191,36,.4);box-shadow:0 2px 8px #b453094d}.ux-start-button--llm:disabled{background:#374151;opacity:.45;box-shadow:none}.ux-llm-debug-panel{margin:8px 0;padding:10px;border-radius:10px;background:#0f172a;border:1px solid #1e3a5f;display:flex;flex-direction:column;gap:8px}.ux-llm-debug-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#f59e0b;margin-bottom:2px}.ux-llm-debug-section{display:flex;flex-direction:column;gap:4px}.ux-llm-debug-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.ux-llm-debug-value{font-size:11px;font-weight:600;color:#e2e8f0;background:#ffffff0d;padding:4px 8px;border-radius:6px;border-left:2px solid #f59e0b}.ux-llm-debug-loading{font-size:11px;color:#94a3b8;animation:loadingPulse 1.2s ease-in-out infinite}@keyframes loadingPulse{0%,to{opacity:1}50%{opacity:.4}}.ux-llm-debug-error{font-size:11px;color:#f87171;background:#f871711a;padding:6px 8px;border-radius:6px;border-left:2px solid #f87171}.ux-llm-ideas-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;max-height:180px;overflow-y:auto}.ux-llm-ideas-list::-webkit-scrollbar{width:3px}.ux-llm-ideas-list::-webkit-scrollbar-thumb{background:#334155;border-radius:2px}.ux-llm-idea-item{font-size:10px;color:#94a3b8;padding:3px 6px;border-radius:4px;display:flex;align-items:flex-start;gap:5px;transition:background .2s ease;line-height:1.4}.ux-llm-idea-num{flex-shrink:0;color:#475569;font-size:9px;min-width:14px;padding-top:1px}.ux-llm-idea-item.selected{background:#10b9811f;color:#34d399;font-weight:700}.ux-llm-idea-badge{font-size:9px;font-weight:700;color:#10b981;background:#10b98126;padding:1px 5px;border-radius:999px;margin-left:auto;white-space:nowrap}.ux-llm-debug-selected{font-size:12px;font-weight:700;color:#34d399;background:#10b9811a;padding:6px 10px;border-radius:8px;border-left:3px solid #10b981}.feedback-link{margin-top:12px;border:none;background:none;color:#0f172a8c;font-weight:600;font-size:12.5px;letter-spacing:.2px;text-decoration:none;cursor:pointer;padding:0}.feedback-link:hover{color:#0f172abf}.feedback-overlay{position:fixed;inset:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:120;animation:feedbackFadeIn .18s ease-out}.feedback-sheet{width:min(520px,100%);background:#fffffffa;border-radius:24px 24px 0 0;padding:18px 18px 24px;box-shadow:0 -10px 30px #0f172a40;animation:feedbackSlideUp .22s ease-out;max-height:88vh;overflow-y:auto}.feedback-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.feedback-title{font-size:18px;font-weight:800;color:#0f172a}.feedback-close{border:none;background:#0f172a14;color:#0f172a;width:34px;height:34px;border-radius:999px;font-size:18px;cursor:pointer}.feedback-form{display:flex;flex-direction:column;gap:16px}.feedback-section{display:flex;flex-direction:column;gap:8px}.feedback-label{font-size:13px;font-weight:700;color:#0f172acc}.feedback-chips{display:flex;flex-wrap:wrap;gap:8px}.feedback-chip{border:1px solid rgba(15,23,42,.15);background:#0f172a0a;color:#0f172a;border-radius:999px;padding:8px 12px;font-size:13px;cursor:pointer;transition:all .16s ease}.feedback-chip.active{border-color:#16a34ab3;background:#16a34a1f;color:#0f172a;font-weight:700}.feedback-textarea{min-height:120px;padding:12px;border-radius:14px;border:1px solid rgba(15,23,42,.12);background:#fff;font-size:14px;resize:vertical}.feedback-input{padding:10px 12px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fff;font-size:14px}.feedback-counter{align-self:flex-end;font-size:12px;color:#0f172a8c}.feedback-counter.is-invalid{color:#dc2626}.feedback-attach{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;border:1px dashed rgba(15,23,42,.2);background:#0f172a08;font-size:13px;cursor:pointer;width:fit-content}.feedback-attach input{display:none}.feedback-preview{display:flex;align-items:center;gap:12px;margin-top:8px}.feedback-preview img{width:64px;height:64px;object-fit:cover;border-radius:12px;border:1px solid rgba(15,23,42,.1)}.feedback-remove{border:none;background:#0f172a14;color:#0f172a;padding:8px 12px;border-radius:999px;font-size:12px;cursor:pointer}.feedback-error{color:#dc2626;font-size:13px;font-weight:600}.feedback-submit{width:100%;padding:14px 18px;border-radius:999px;border:none;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,#0f172a,#16a34a);box-shadow:0 12px 24px #0f172a40;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.feedback-submit:disabled{opacity:.5;cursor:default;box-shadow:none}.feedback-success{padding:24px 12px 8px;font-size:16px;font-weight:700;color:#0f172a;text-align:center}@keyframes feedbackFadeIn{0%{opacity:0}to{opacity:1}}@keyframes feedbackSlideUp{0%{transform:translateY(16px);opacity:.9}to{transform:translateY(0);opacity:1}}@media(max-width:540px){.feedback-sheet{border-radius:20px 20px 0 0;padding:16px 14px 22px}}.search-trigger-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--color-border);background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--color-primary);flex-shrink:0;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;box-shadow:0 2px 8px #0f172a12;-webkit-tap-highlight-color:transparent;outline:none}.search-trigger-btn:hover{border-color:var(--color-accent);background:#f0fdf4;box-shadow:0 4px 14px #10b9812e;transform:translateY(-1px);color:var(--color-accent)}.search-trigger-btn:active{transform:scale(.92)}.search-trigger-btn:focus-visible{outline:2px solid rgba(16,185,129,.5);outline-offset:2px}.search-overlay{position:fixed;inset:0;z-index:9000;background:#0f172a61;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:calc(env(safe-area-inset-top) + 12px) 16px 0;animation:searchOverlayIn .2s ease}@keyframes searchOverlayIn{0%{opacity:0}to{opacity:1}}.search-panel{width:min(92vw,480px);max-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px);background:#fffffffa;border-radius:24px;box-shadow:0 24px 60px #0f172a38,0 4px 16px #0f172a1a,0 0 0 1px #0f172a0f;display:flex;flex-direction:column;overflow:hidden;animation:searchPanelIn .22s cubic-bezier(.34,1.56,.64,1)}@keyframes searchPanelIn{0%{opacity:0;transform:translateY(-16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.search-input-row{display:flex;align-items:center;gap:6px;padding:14px 14px 10px;border-bottom:1px solid var(--color-border)}.search-input-icon{flex-shrink:0;color:var(--color-secondary);display:flex;align-items:center;justify-content:center;margin-left:2px}.search-input{flex:1;border:none;background:transparent;font-size:16px;font-weight:500;color:var(--color-primary);outline:none;caret-color:var(--color-accent);min-width:0}.search-input::placeholder{color:#c0c8d0;font-weight:400}.search-clear-btn{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:none;background:#f1f3f5;color:var(--color-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .14s ease,color .14s ease;outline:none}.search-clear-btn:hover{background:#e5e7eb;color:var(--color-primary)}.search-cancel-btn{flex-shrink:0;padding:6px 10px;border:none;background:transparent;color:var(--color-accent);font-size:13px;font-weight:700;cursor:pointer;border-radius:8px;transition:background .14s ease;white-space:nowrap;outline:none;-webkit-tap-highlight-color:transparent}.search-cancel-btn:hover{background:#f0fdf4}.search-meta{padding:8px 16px 6px;font-size:11px;font-weight:600;color:var(--color-secondary);letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.search-hint{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 24px 32px;color:#c0c8d0;font-size:14px;font-weight:500;text-align:center}.search-hint-icon{color:#d1d5db;opacity:.7}.search-results{list-style:none;padding:4px 0 8px;margin:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.search-results::-webkit-scrollbar{width:4px}.search-results::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.search-result-item{display:flex;align-items:center;gap:12px;padding:9px 14px;cursor:pointer;transition:background .12s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.search-result-item:hover,.search-result-item--active{background:#f7f8fa}.search-result-item--active{background:linear-gradient(135deg,#f0fdf4,#f7f8fa)}.search-result-img-wrap{flex-shrink:0;width:48px;height:48px;border-radius:12px;overflow:hidden;background:#f1f5f9;border:1px solid var(--color-border)}.search-result-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s ease}.search-result-item--active .search-result-img{transform:scale(1.04)}.search-result-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:22px}.search-result-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.search-result-title{font-size:14px;font-weight:600;color:var(--color-primary);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.search-result-meta{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--color-secondary);font-weight:500;white-space:nowrap;overflow:hidden}.search-result-sep{opacity:.45}.search-result-card-num{font-weight:700;color:var(--color-primary);opacity:.6}.search-result-dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;display:inline-block}.search-dot-breakfast{background:#fbbf24}.search-dot-lunch{background:#f97316}.search-dot-dinner{background:#8b5cf6}.search-dot-snacks{background:#ec4899}.search-dot-other{background:#9ca3af}.search-result-arrow{flex-shrink:0;color:#d1d5db;display:flex;align-items:center;transition:color .14s ease,transform .14s ease}.search-result-item--active .search-result-arrow,.search-result-item:hover .search-result-arrow{color:var(--color-accent);transform:translate(2px)}.search-highlight{background:#fef9c3;color:#713f12;border-radius:3px;padding:0 1px;font-weight:700}.search-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 24px;text-align:center;color:var(--color-secondary);font-size:13px;font-weight:500;line-height:1.5}.search-empty-icon{font-size:36px;filter:grayscale(.3)}.feedback-required{color:#dc2626;margin-left:3px;font-size:14px;line-height:1}.feedback-optional{font-size:12px;font-weight:400;color:#0f172a73;margin-left:2px}.feedback-field-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px;min-height:18px}.feedback-field-error{font-size:12px;font-weight:600;color:#dc2626;line-height:1.3}.feedback-field-hint{font-size:12px;color:#0f172a73;font-weight:400;line-height:1.3;margin-top:4px;display:block}.feedback-textarea.feedback-field--error,.feedback-input.feedback-field--error{border-color:#fca5a5;background:#fff5f5;box-shadow:0 0 0 3px #dc262614}.feedback-textarea.feedback-field--error:focus,.feedback-input.feedback-field--error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #dc262624;outline:none}.feedback-input.feedback-field--ok{border-color:#6ee7b7;background:#f0fdf9}.feedback-input.feedback-field--ok:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811f;outline:none}
