:root{--app-bg: #fdf8f2;--app-surface: #ffffff;--app-surface-2: #f6eee4;--app-text: #3d2c21;--app-hint: #7a6353;--app-divider: rgba(61, 44, 33, .08);--app-border: rgba(61, 44, 33, .12);--app-button: #bd5730;--app-button-fg: #ffffff;--app-link: #b4502c;--app-danger: #c0392b;--app-skeleton: #f0e4d6;--accent-warm: #e8895a;--accent-warm-soft: #fceee3;--accent-warm-fg: #ffffff;--accent-sage: #7fa084;--accent-sage-soft: #e7f1e8;--accent-sun: #f0b429;--accent-sun-soft: #fcf3d9;--accent-berry: #c96c82;--accent-berry-soft: #f9ecef;--accent-warm-text: #a34b21;--accent-sage-text: #3f6a48;--accent-sun-text: #815c11;--accent-berry-text: #a03f57;--plaque-bg: rgba(253, 248, 242, .85);--gradient-hero: linear-gradient(135deg, #d87046 0%, #d46a4e 55%, #c85e3c 100%);--hero-top: #d87046;--hero-fg: #ffffff;--hero-fg-dim: rgba(255, 255, 255, .92);--hero-cta-bg: rgba(255, 255, 255, .95);--hero-cta-fg: #a0472c;--product-icon-bg: #f5e6d3;--shadow-card: 0 1px 2px rgba(61, 44, 33, .04), 0 8px 20px rgba(61, 44, 33, .07);--card-border: rgba(61, 44, 33, .4);--divider: var(--app-divider);--r-control: 12px;--r-card: 18px;--r-bento: 22px;--r-pill: 999px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--app-bg);color:var(--app-text);font-size:15px;line-height:1.45;-webkit-tap-highlight-color:transparent}button,input,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}@keyframes screen-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes skeleton-pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes burst{0%{opacity:0;transform:translate(var(--x, 0px),8px) scale(.6)}25%{opacity:1}to{opacity:0;transform:translate(var(--x, 0px),-40px) scale(1)}}.stagger-item{animation:card-in .24s ease-out both;animation-delay:calc(var(--i, 0) * 30ms)}@media (prefers-reduced-motion: reduce){.page,.stagger-item,.skeleton,.celebrate span,.progress-seg-fill{animation:none!important;transition:none!important}.celebrate{display:none}}.app-shell{height:var(--tg-viewport-stable-height, 100vh);display:flex;flex-direction:column;background-color:var(--app-bg);background-image:url(../bg/pattern-soft.png);background-image:image-set(url(../bg/pattern-soft.webp) type("image/webp"),url(../bg/pattern-soft.png) type("image/png"));background-repeat:repeat;background-size:512px 512px;background-position:top center;overflow:hidden}.page{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px 16px calc(28px + var(--tg-safe-area-inset-bottom, 0px) + var(--tg-content-safe-area-inset-bottom, 0px));animation:screen-in .18s ease-out both}.page.page-flush{padding-top:0}.page-title{font-size:24px;font-weight:700;letter-spacing:-.01em;margin:2px 0 6px}.page-subtitle{color:var(--app-hint);font-size:14px;margin:0 0 14px;line-height:1.45}.step-title{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:2px 0 6px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--app-hint);margin:18px 0 6px;display:flex;align-items:center;gap:8px}.section-title:first-child{margin-top:0}.hint-text{color:var(--app-hint);font-size:13px;line-height:1.45}.section-title,.likes-head,.picker-category-title,.picker-count,.page-subtitle,.hint-text,.field-label,.admin-num-label,.source-note,.prompt-counter{background:var(--plaque-bg);border-radius:10px;padding:4px 10px;margin-left:-10px;width:fit-content}:is(.card,.list-menu,.bento-tile,.recipe-card,.recipe-hero,.hero,.notice,.banner,.stat-block,.admin-stat,.serving-note,.allergen-box,.feedback-note,.empty-state,.empty-inline,.picker-empty,.picker-suggestions,.tile,.option-tile) :is(.section-title,.likes-head,.picker-category-title,.picker-count,.page-subtitle,.hint-text,.field-label,.admin-num-label,.source-note,.prompt-counter){background:none;padding:0;margin-left:0;width:auto}.center-screen .hint-text{margin-left:0}.medallion{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;font-size:24px;line-height:1;background:var(--app-surface-2)}.medallion-xs{width:22px;height:22px;font-size:13px}.medallion-sm{width:30px;height:30px;font-size:16px}.medallion-md{width:32px;height:32px;font-size:19px}.medallion-lg{width:48px;height:48px;font-size:34px}.medallion-xl{width:76px;height:76px;font-size:44px}.m-warm{background:var(--accent-warm-soft)}.m-sage{background:var(--accent-sage-soft)}.m-sun{background:var(--accent-sun-soft)}.m-berry{background:var(--accent-berry-soft)}.m-neutral{background:var(--app-surface-2)}.product-medallion{background:var(--product-icon-bg);overflow:hidden}.product-medallion img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.soft-badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);padding:5px 11px;font-size:12px;font-weight:600}.soft-badge.b-warm{background:var(--accent-warm-soft);color:var(--accent-warm-text)}.soft-badge.b-sage{background:var(--accent-sage-soft);color:var(--accent-sage-text)}.soft-badge.b-sun{background:var(--accent-sun-soft);color:var(--accent-sun-text)}.soft-badge.b-berry{background:var(--accent-berry-soft);color:var(--accent-berry-text)}.card{background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:16px;margin-bottom:14px}.card-title{font-size:17px;font-weight:700;letter-spacing:-.01em}.card-head{display:flex;align-items:center;gap:12px}.card-head-body{flex:1;min-width:0}.list-menu{background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);overflow:hidden}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--r-control);padding:13px 18px;font-size:15px;font-weight:600;transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.98);opacity:.8}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn-block{width:100%}.btn-primary{background:var(--app-button);color:var(--app-button-fg)}.btn-secondary{background:var(--app-surface-2);color:var(--app-text)}.btn-danger{background:var(--plaque-bg);color:var(--app-danger)}.btn-ghost{background:var(--plaque-bg);border:none;border-radius:var(--r-pill);color:var(--app-link);font-weight:600;font-size:14px;padding:8px 12px}.btn-sm{padding:8px 12px;font-size:13px;border-radius:10px}.field{margin-bottom:16px}.field-label{display:block;font-size:13px;font-weight:600;color:var(--app-hint);margin-bottom:6px}.text-input,.textarea{width:100%;background:var(--app-surface-2);border:2px solid var(--app-border);border-radius:var(--r-control);padding:13px 14px;outline:none;transition:border-color .15s ease}.textarea{resize:vertical;min-height:90px;line-height:1.45}.text-input:focus,.textarea:focus{border-color:var(--accent-warm)}.progress-track{display:flex;gap:6px;margin:0 0 20px}.progress-seg{flex:1;height:5px;border-radius:var(--r-pill);background:var(--app-border);overflow:hidden}.progress-seg-fill{display:block;width:100%;height:100%;border-radius:inherit;background:var(--gradient-hero);transform:scaleX(0);transform-origin:left center;transition:transform .25s ease-out}.progress-seg.done .progress-seg-fill{transform:scaleX(1)}.tile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tile{display:flex;align-items:center;gap:8px;background:var(--app-surface-2);border:2px solid var(--app-border);border-radius:var(--r-control);padding:12px;text-align:left;font-size:14px;line-height:1.25;min-height:48px;transition:transform .12s ease,border-color .15s ease,background-color .15s ease}.tile:active{transform:scale(.97)}.tile.selected{border-color:var(--accent-warm);background:var(--accent-warm-soft)}.tile-check{flex-shrink:0;width:18px;height:18px;border-radius:50%;border:2px solid var(--app-hint);display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent}.tile.selected .tile-check{border-color:var(--accent-warm);background:var(--accent-warm);color:var(--accent-warm-fg)}.tile-product-name{min-width:0}.tile-emoji{flex-direction:column;align-items:flex-start;gap:8px;padding:14px;min-height:92px;border-radius:var(--r-card);font-weight:600;font-size:15px}.option-tile{display:flex;align-items:center;gap:12px;width:100%;background:var(--app-surface-2);border:2px solid var(--app-border);border-radius:var(--r-card);padding:12px 14px;text-align:left;margin-bottom:8px;transition:transform .12s ease,border-color .15s ease,background-color .15s ease}.option-tile:active{transform:scale(.985)}.option-tile.selected{border-color:var(--accent-warm);background:var(--accent-warm-soft)}.option-tile-body{flex:1;min-width:0}.option-tile-title{display:block;font-weight:600;font-size:15px}.option-tile-hint{display:block;color:var(--app-hint);font-size:13px;margin-top:2px}.option-tile-radio{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:2px solid var(--app-hint);display:flex;align-items:center;justify-content:center;font-size:12px;color:transparent}.option-tile.selected .option-tile-radio{border-color:var(--accent-warm);background:var(--accent-warm);color:var(--accent-warm-fg)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--app-surface-2);border:2px solid var(--app-border);border-radius:var(--r-pill);padding:8px 14px;font-size:14px;transition:transform .12s ease,border-color .15s ease,background-color .15s ease}button.chip:active{transform:scale(.96)}.chip>.product-medallion{margin-left:-6px}.chip.selected{background:var(--accent-warm-soft);border-color:var(--accent-warm)}.chip.c-sage{background:var(--accent-sage-soft)}.chip.c-sun{background:var(--accent-sun-soft)}.chip.c-berry{background:var(--accent-berry-soft)}.chip-remove{background:none;border:none;padding:0;margin:0 -2px 0 0;font-size:16px;line-height:1;opacity:.6}.chip-remove:active{opacity:1}.chip-remove:disabled{opacity:.3;cursor:default}.chip-action{background:none;border:none;padding:0 0 0 2px;margin:0 -4px 0 0;font-size:13px;line-height:1;opacity:.75}.chip-action:active{opacity:1}.chip-action:disabled{opacity:.35;cursor:default}.hero{position:relative;overflow:hidden;margin:0 -16px 18px;padding:26px 20px 22px;border-radius:0 0 var(--r-bento) var(--r-bento);background:var(--gradient-hero);color:var(--hero-fg)}.hero-decor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-decor span{position:absolute;font-size:40px;line-height:1;opacity:.12}.hero-decor span:nth-child(1){top:10px;right:14px;transform:rotate(14deg)}.hero-decor span:nth-child(2){bottom:-6px;right:64px;transform:rotate(-10deg)}.hero-decor span:nth-child(3){top:44px;right:96px;transform:rotate(22deg)}.hero-decor span:nth-child(4){bottom:18px;left:-8px;transform:rotate(-18deg)}.hero-inner{position:relative}.hero-eyebrow{font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--hero-fg-dim)}.hero-greeting{font-size:clamp(22px,6vw,28px);font-weight:800;letter-spacing:-.01em;line-height:1.15;margin:6px 0 0}.hero-sub{margin:8px 0 0;font-size:14px;color:var(--hero-fg-dim)}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.hero-actions .hero-cta{margin-top:0}.hero-cta{display:inline-flex;align-items:center;gap:8px;margin-top:18px;border:none;border-radius:var(--r-pill);padding:13px 22px;font-size:15px;font-weight:700;background:var(--hero-cta-bg);color:var(--hero-cta-fg);box-shadow:0 4px 14px #0000001f;transition:transform .12s ease,opacity .12s ease}.hero-cta:active{transform:scale(.97);opacity:.9}.hero-cta-ghost{background:#ffffff2e;color:var(--hero-fg);box-shadow:none;border:1px solid rgba(255,255,255,.4);font-weight:600}.hero-cta-ghost:disabled{opacity:.6;cursor:default}.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(74px,auto);gap:10px}.bento-tile{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;grid-column:span 2;background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-bento);box-shadow:var(--shadow-card);padding:14px;text-align:left;transition:transform .12s ease,opacity .12s ease}.bento-tile:active{transform:scale(.975);opacity:.85}.bento-lg{grid-row:span 2;justify-content:space-between;background:var(--accent-warm-soft);padding:16px}.bento-wide{grid-column:span 4;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px}.bento-title{display:block;font-size:15px;font-weight:700;line-height:1.25;overflow-wrap:break-word}.bento-lg .bento-title{font-size:18px;letter-spacing:-.01em}.bento-hint{display:block;color:var(--app-hint);font-size:13px;margin-top:3px}.bento-body{display:block;min-width:0}.stat-number{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1}.picker-search{position:relative;margin-bottom:12px}.picker-search-field{position:relative}.picker-search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:15px;line-height:1;opacity:.55;pointer-events:none}.picker-search-input{width:100%;background:var(--app-surface-2);border:2px solid var(--app-border);border-radius:var(--r-control);padding:12px 14px 12px 38px;outline:none;transition:border-color .15s ease}.picker-search-input:focus{border-color:var(--accent-warm)}.picker-suggestions{margin-top:8px;background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow-card)}.picker-suggestion{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;padding:10px 14px;font-size:14px;border-bottom:1px solid var(--divider)}.picker-suggestion-label{min-width:0}.picker-suggestion:last-child{border-bottom:none}.picker-suggestion:active{background:var(--accent-warm-soft)}.picker-suggestion mark{background:none;color:var(--accent-warm-text);font-weight:700}.picker-suggestion-alias{color:var(--app-hint);font-size:12px;margin-left:6px}.picker-empty{padding:14px;background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);margin-top:8px;font-size:14px;color:var(--app-hint)}.picker-empty .btn{margin-top:10px}.picker-selected-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 8px}.picker-count{font-size:13px;font-weight:600;color:var(--app-hint)}.picker-category{margin-bottom:16px}.picker-category-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--app-hint);margin-bottom:6px}.picker-toggle-all{text-align:center;margin:6px 0 16px}.recent-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px}.recent-chip{flex-shrink:0;background:var(--accent-sun-soft);border:none;border-radius:var(--r-pill);padding:8px 13px;font-size:13px;font-weight:600;white-space:nowrap;transition:transform .12s ease,opacity .12s ease}.recent-chip:active{transform:scale(.96);opacity:.8}.stat-block{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;background:var(--accent-sage-soft);border:1px solid var(--card-border);border-radius:var(--r-card);padding:14px 16px;margin-bottom:14px}.stat-figures{display:flex;gap:18px;flex-shrink:0}.stat-figure-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--app-hint);margin-top:2px}.stat-body{flex:1 1 170px;min-width:0}.stat-sub{color:var(--app-hint);font-size:13px;line-height:1.4}.notice{display:flex;gap:12px;align-items:flex-start;background:var(--accent-berry-soft);border-radius:var(--r-card);padding:13px 15px;margin-bottom:14px;font-size:14px;line-height:1.4}.notice-title{font-weight:700;margin-bottom:3px}.notice-body{min-width:0}.notice-sub{color:var(--app-hint);font-size:13px}.notice.n-sun{background:var(--accent-sun-soft)}.notice.n-sage{background:var(--accent-sage-soft)}.banner{background:color-mix(in srgb,var(--app-danger) 12%,transparent);border:1px solid color-mix(in srgb,var(--app-danger) 35%,transparent);border-radius:var(--r-card);padding:12px 14px;margin-bottom:14px;font-size:14px;line-height:1.4}.recipe-card{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:14px;margin-bottom:12px;transition:transform .12s ease,opacity .12s ease}.recipe-card:active{transform:scale(.985);opacity:.85}.recipe-body{flex:1;min-width:0}.recipe-name{display:block;font-weight:700;font-size:17px;letter-spacing:-.01em;line-height:1.25}.recipe-meta{display:block;color:var(--app-hint);font-size:13px;margin-top:3px}.recipe-why{display:block;font-size:13px;line-height:1.4;margin-top:10px;padding-left:10px;border-left:2px solid var(--accent-warm);opacity:.85}.recipe-label{display:block;margin-top:10px}.meta-row{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.meta-pill{display:inline-flex;align-items:center;gap:6px;background:var(--app-surface-2);border-radius:var(--r-pill);padding:7px 13px;font-size:13px;font-weight:600}.meta-pill.p-warm{background:var(--accent-warm-soft)}.meta-pill.p-sage{background:var(--accent-sage-soft)}.meta-pill.p-sun{background:var(--accent-sun-soft)}.source-note{text-align:center;color:var(--app-hint);font-size:12px;margin-top:10px;margin-left:auto;margin-right:auto}.recipe-hero{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--accent-warm-soft);border:1px solid var(--card-border);border-radius:var(--r-bento);padding:22px 18px 18px;margin-bottom:14px}.recipe-hero-title{font-size:24px;font-weight:700;letter-spacing:-.01em;line-height:1.2;margin-top:12px}.ingredient-list{list-style:none;margin:0;padding:0}.ingredient-list li{display:flex;align-items:flex-start;gap:10px;padding:8px 0;line-height:1.4;border-bottom:1px solid var(--divider)}.ingredient-list li:last-child{border-bottom:none}.ingredient-list li:before{content:"";flex-shrink:0;width:6px;height:6px;margin-top:9px;border-radius:50%;background:var(--accent-sage)}.step-list{list-style:none;counter-reset:step;margin:0;padding:0}.step-list li{counter-increment:step;display:flex;gap:12px;align-items:flex-start;margin-bottom:12px;line-height:1.45}.step-list li:last-child{margin-bottom:0}.step-list li:before{content:counter(step);flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--accent-warm-soft);color:var(--accent-warm-text);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}.serving-note{display:flex;gap:12px;align-items:flex-start;background:var(--accent-sage-soft);border-radius:var(--r-card);padding:14px;line-height:1.45}.allergen-box{background:var(--accent-berry-soft);border-radius:var(--r-card);padding:14px;margin-top:18px}.allergen-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;margin-bottom:10px}.allergen-list{display:flex;flex-wrap:wrap;gap:8px}.allergen-item{display:inline-flex;align-items:center;gap:6px;background:var(--app-surface);border-radius:var(--r-pill);padding:6px 12px;font-size:13px;font-weight:600}.feedback-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}.feedback-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px 10px;border-radius:var(--r-card);border:2px solid var(--app-border);background:var(--app-surface-2);font-weight:600;font-size:14px;text-align:center;transition:transform .12s ease,border-color .15s ease,background-color .15s ease}.feedback-btn:active{transform:scale(.97)}.feedback-btn.selected{border-color:var(--accent-warm);background:var(--accent-warm-soft)}.feedback-note{display:flex;gap:12px;align-items:flex-start;background:var(--accent-berry-soft);border-radius:var(--r-card);padding:14px;font-size:13px;line-height:1.45;margin-bottom:18px}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:900}.celebrate span{position:absolute;font-size:30px;line-height:1;opacity:0;animation:burst .52s ease-out forwards;animation-delay:calc(var(--i, 0) * 40ms)}.history-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--divider)}.history-item:last-child{border-bottom:none}.history-body{flex:1;min-width:0}.history-name{font-weight:600;font-size:15px}.history-comment{color:var(--app-hint);font-size:13px;margin-top:2px}.history-date{color:var(--app-hint);font-size:12px;font-variant-numeric:tabular-nums;flex-shrink:0;white-space:nowrap}.likes-head{display:flex;align-items:center;gap:10px;margin-top:18px;margin-bottom:6px;margin-right:0}.likes-head:first-child{margin-top:0}.likes-title{font-size:17px;font-weight:700;letter-spacing:-.01em}.likes-count{margin-left:auto;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--app-hint)}.empty-state{text-align:center;padding:36px 20px;background:radial-gradient(ellipse at center,var(--app-bg) 0%,var(--app-bg) 75%,rgba(253,248,242,0) 100%)}.empty-state-emoji{font-size:52px;line-height:1;margin-bottom:12px}.empty-state-spot{display:block;width:150px;max-width:55%;height:auto;margin:0 auto 10px}.empty-state-title{font-size:17px;font-weight:700;margin-bottom:6px}.empty-state-text{color:var(--app-hint);font-size:14px;line-height:1.45}.empty-inline{display:flex;align-items:center;gap:10px;color:var(--app-hint);font-size:13px;padding:12px 14px;background:var(--app-surface-2);border-radius:var(--r-card);margin-bottom:18px}.skeleton{background:var(--app-skeleton);border-radius:var(--r-card);animation:skeleton-pulse 1.1s ease-in-out infinite}.skeleton-circle{border-radius:50%}.skeleton-card{display:flex;gap:14px;align-items:center;background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:14px;margin-bottom:12px}.skeleton-card-body{flex:1;min-width:0}.skeleton-bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:74px;gap:10px}.skeleton-bento .skeleton{grid-column:span 2}.skeleton-bento .skeleton:first-child{grid-row:span 2}.center-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;gap:12px}.memory-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--divider)}.memory-row:last-child{border-bottom:none}.memory-body{flex:1;min-width:0}.memory-name{display:block;font-weight:600;font-size:15px}.memory-note{display:block;color:var(--app-hint);font-size:13px;margin-top:2px}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;margin-bottom:18px}.admin-grid .field{margin-bottom:0}.admin-stat{background:var(--app-surface);border:1px solid var(--card-border);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:12px 14px}.admin-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-bottom:1px solid var(--divider);background:none;border-left:none;border-right:none;border-top:none}.admin-row:last-child{border-bottom:none}.admin-row-nav{transition:opacity .12s ease}.admin-row-nav:active{opacity:.6}.admin-row-body{flex:1;min-width:0}.admin-row-title{display:block;font-weight:600;font-size:15px;line-height:1.3;overflow-wrap:break-word}.admin-row-meta{display:block;color:var(--app-hint);font-size:12px;line-height:1.35;margin-top:2px;overflow-wrap:break-word}.admin-row-quote{display:block;font-size:13px;line-height:1.4;margin-top:6px;padding-left:10px;border-left:2px solid var(--accent-warm);opacity:.85}.admin-row-chevron{flex-shrink:0;color:var(--app-hint);font-size:20px;line-height:1}.admin-nums{flex-shrink:0;display:flex;gap:8px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--app-hint)}.admin-toggle{display:flex;align-items:flex-start;gap:10px;padding:10px 0;font-size:15px;font-weight:600}.admin-toggle input{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--accent-warm)}.admin-toggle span{min-width:0}.admin-num-field{display:block}.admin-num-label{display:block;font-size:12px;font-weight:600;color:var(--app-hint);margin-bottom:4px;padding:3px 7px;margin-left:-7px}select.text-input{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--app-hint) 50%),linear-gradient(135deg,var(--app-hint) 50%,transparent 50%);background-position:calc(100% - 19px) calc(50% - 2px),calc(100% - 14px) calc(50% - 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}.text-input:disabled,.textarea:disabled{opacity:.6}.string-list-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}.string-list-num{flex-shrink:0;width:22px;padding-top:13px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--app-text)}.string-list-input{flex:1;min-width:0}.string-list-row .chip-remove{padding-top:12px}.prompt-area{min-height:340px;font-size:14px;line-height:1.5}.prompt-counter{text-align:right;font-size:12px;font-variant-numeric:tabular-nums;color:var(--app-hint);margin-top:6px;margin-left:auto;margin-right:-10px}.prompt-counter.invalid{color:var(--accent-berry-text);font-weight:700}.web-header{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--app-bg);border-bottom:1px solid var(--app-divider)}.web-header-back,.web-header-exit{border:1px solid var(--app-border);background:var(--app-surface);color:var(--app-text);border-radius:10px;cursor:pointer;font-family:inherit}.web-header-back{flex-shrink:0;width:38px;height:38px;font-size:18px;line-height:1}.web-header-back:active{background:var(--app-surface-2)}.web-header-logo{flex-shrink:0;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;font-size:20px}.web-header-title{flex:1;font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--app-text)}.web-header-exit{flex-shrink:0;padding:8px 12px;font-size:13px;font-weight:600;color:var(--app-hint)}.web-header-spacer{flex-shrink:0;width:38px}.web-mainbutton-bar{flex-shrink:0;padding:10px 12px calc(10px + var(--tg-safe-area-inset-bottom, 0px));background:var(--app-bg);border-top:1px solid var(--app-divider)}.web-mainbutton{display:block;width:100%;background:var(--app-button);color:var(--app-button-fg);border:none;border-radius:12px;padding:14px;font-family:inherit;font-size:16px;font-weight:700;cursor:pointer}.web-mainbutton:disabled{opacity:.5;cursor:default}.login-page{display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:420px;text-align:center;padding:28px 20px}.login-emoji{font-size:44px;line-height:1;margin-bottom:10px}.login-title{font-size:24px;font-weight:700;letter-spacing:-.01em;margin:0 0 8px}.login-lead{color:var(--app-hint);font-size:15px;line-height:1.45;margin:0 0 20px}.login-tg-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:280px;padding:14px 18px;border:none;border-radius:12px;background:var(--app-button);color:var(--app-button-fg);font-family:inherit;font-size:16px;font-weight:700;cursor:pointer}.login-tg-button:active{transform:translateY(1px)}.login-tg-button:disabled{opacity:.6;cursor:default}.login-tg-icon{width:20px;height:20px;flex-shrink:0}.login-alt{display:block;margin:12px auto 0;padding:4px;border:none;background:none;color:var(--app-hint);font-family:inherit;font-size:13px;text-decoration:underline;cursor:pointer}.login-widget-holder{display:flex;justify-content:center}.login-widget-holder:not(:empty){margin:14px 0 4px}.login-error{color:var(--app-danger);font-size:14px;margin:8px 0 0}.login-bot-link{color:var(--app-link);font-weight:600}.login-note{color:var(--app-hint);font-size:13px;line-height:1.4;margin:16px 0 0}@media (min-width: 768px){html,body{background:var(--app-surface-2)}.app-shell.web-mode{width:min(560px,calc(100% - 32px));height:calc(100vh - 48px);margin:24px auto;border:1px solid var(--app-border);border-radius:20px;box-shadow:0 18px 48px #3d2c2124}.app-shell.web-mode .page{padding-left:24px;padding-right:24px}}.dev-badge{position:fixed;top:6px;right:6px;z-index:1000;background:#fc0;color:#333;font-size:10px;font-weight:700;padding:3px 6px;border-radius:6px;opacity:.85;pointer-events:none}
