:root{--color-primary:#325adf;--color-primary-dark:#2b4090;--color-primary-light:#eef1fa;--color-accent:#375ca6;--color-bg:#fffcf9;--color-surface:#fff;--color-text-primary:#292929;--color-text-secondary:#7a7a80;--color-border:#e0dedd;--color-danger:#d94040;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-full:999px;--shadow-card:0 1px 4px #00000012;--shadow-sheet:0 -4px 32px #0000001f;--font:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}button{cursor:pointer;font-family:inherit;font-size:inherit;color:inherit;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:none;transition:transform .12s,opacity .12s}button:active{transform:scale(.95)}input{font-family:inherit;font-size:inherit}input[type=search]::-webkit-search-cancel-button{display:none}.day-list{flex-direction:column;display:flex}.day-row{text-align:left;border-bottom:1px solid var(--color-border);align-items:center;gap:12px;width:100%;padding:18px 20px;display:flex}.day-row:active{background:var(--color-primary-light)}.day-row-left{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.day-row-name{color:var(--color-text-primary);font-size:16px;font-weight:500}.day-row-summary{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:13.33px;overflow:hidden}.day-row-plus{color:var(--color-text-secondary);flex-shrink:0;font-size:22px;font-weight:300;line-height:1}.day-detail{flex-direction:column;display:flex}.meal-slot{border-bottom:1px solid var(--color-border);align-items:flex-start;gap:12px;padding:14px 20px;display:flex}.meal-slot:last-child{border-bottom:none}.meal-slot-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.6px;flex-shrink:0;width:56px;padding-top:3px;font-size:13.33px;font-weight:700}.meal-slot-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.meal-slot-row{align-items:center;gap:8px;min-height:28px;display:flex}.meal-slot-content{cursor:pointer;flex:1;min-width:0}.meal-slot-placeholder{color:var(--color-border);font-size:16px}.meal-slot-value{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;display:block;overflow:hidden}.meal-slot-value.muted{color:var(--color-text-secondary);font-style:italic;font-weight:400}.meal-slot-clear{border-radius:var(--radius-full);background:var(--color-bg);width:22px;height:22px;color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;line-height:1;display:flex}.meal-slot-clear:active{color:var(--color-danger);background:#f0e0e0}.second-dish{padding-left:2px}.second-dish-plus{color:var(--color-primary);flex-shrink:0;width:12px;font-size:16px;font-weight:600}.add-second-dish-btn{color:var(--color-primary);text-align:left;opacity:.7;padding:2px 0;font-size:13.33px;font-weight:500}.day-view{background:var(--color-bg);z-index:50;flex-direction:column;max-width:480px;margin:0 auto;animation:.36s cubic-bezier(.32,.72,0,1) forwards dvSlideIn;display:flex;position:fixed;inset:0}.day-view--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards dvSlideOut}@keyframes dvSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes dvSlideOut{0%{transform:translate(0)}to{transform:translate(100%)}}.dv-header{flex-shrink:0;align-items:center;gap:8px;padding:18px 20px 14px;display:flex}.dv-back{color:var(--color-text-primary);margin-left:-4px;padding:10px 16px 10px 4px;font-size:32px;font-weight:300;line-height:1}.dv-back:active{opacity:.5}.dv-title{color:var(--color-text-primary);font-size:19.2px;font-weight:600}.dv-divider{background:var(--color-border);flex-shrink:0;height:1px}.dv-content{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.dv-card{background:var(--color-bg);border:1px solid var(--color-text-primary);border-radius:var(--radius-md);flex-direction:column;min-height:9rem;padding:16px 16px 14px 24px;display:flex}.dv-card-label{color:var(--color-text-primary);margin-bottom:12px;font-size:16px;font-weight:500}.dv-card-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.dv-card-meal{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;font-size:16px;overflow:hidden}.dv-card-meal:active{opacity:.5}.dv-card-second{color:var(--color-text-primary);font-size:16px}.dv-card-clear{color:var(--color-text-secondary);flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.dv-card-clear:active{color:var(--color-danger)}.dv-card-row--clearing{pointer-events:none;animation:.25s ease-out forwards dvClearSlide}@keyframes dvClearSlide{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.dv-card-footer{justify-content:flex-end;margin-top:auto;display:flex}.dv-add-second{color:var(--color-text-secondary);text-align:left;padding:2px 0;font-size:13.33px}.dv-add-second:active{opacity:.5}.dv-action-btn{color:#fff;background:var(--color-primary);border-radius:var(--radius-full);padding:8px 20px;font-size:16px;font-weight:500}.dv-action-btn:active{opacity:.8}.sheet-overlay{z-index:100;background:0 0;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--color-bg);border:1.5px solid var(--color-text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:88dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-bottom:none;flex-direction:column;animation:.32s cubic-bezier(.32,.72,0,1) forwards sheetUp;display:flex}.sheet--closing{animation:.32s cubic-bezier(.4,0,1,1) forwards sheetDown}.sheet-handle{background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;width:36px;height:4px;margin:12px auto 4px;display:block}.sheet-title{color:var(--color-primary);border-bottom:1px solid var(--color-border);flex-shrink:0;padding:4px 20px 14px;font-size:16px;font-weight:600}.sheet-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheetDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.other-meal{flex-direction:column;flex:1;display:flex}.other-meal-name-row{border-bottom:1px solid var(--color-border);padding:16px 20px 14px}.other-meal-name-row input{width:100%;color:var(--color-text-primary);background:0 0;border:none;outline:none;font-size:16px;font-weight:500}.other-meal-name-row input::placeholder{color:var(--color-border)}.other-meal-ingredients{flex-direction:column;flex:1;gap:18px;padding:14px 20px 8px;display:flex;overflow-y:auto}.ingredient-row{flex-direction:column;gap:8px;display:flex}.ingredient-input-line{align-items:center;gap:8px;display:flex}.ingredient-bullet{color:var(--color-primary);flex-shrink:0;font-size:20px;line-height:1}.ingredient-input-line input{color:var(--color-text-primary);border:none;border-bottom:1.5px solid var(--color-border);background:0 0;outline:none;flex:1;min-width:0;padding-bottom:4px;font-size:16px}.ingredient-input-line input:focus{border-bottom-color:var(--color-primary)}.ingredient-remove{border-radius:var(--radius-full);background:var(--color-bg);width:22px;height:22px;color:var(--color-text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;display:flex}.ingredient-remove:active{color:var(--color-danger);background:#f0e0e0}.category-strip{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:6px;padding-left:28px;display:flex;overflow-x:auto}.category-strip::-webkit-scrollbar{display:none}.cat-chip{border-radius:var(--radius-full);color:var(--color-text-secondary);background:var(--color-bg);border:1.5px solid var(--color-border);flex-shrink:0;padding:4px 12px;font-size:13.33px;font-weight:500;transition:all .12s}.cat-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.add-ingredient-btn{color:var(--color-primary);text-align:left;padding:2px 0 2px 28px;font-size:16px;font-weight:500}.other-meal-save-row{border-top:1px solid var(--color-border);padding:12px 20px}.btn-save-meal{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;width:100%;padding:14px;font-size:16px;font-weight:600}.btn-save-meal:disabled{opacity:.35}.meal-picker{flex-direction:column;flex:1;min-height:0;display:flex}.meal-picker-search{border-bottom:1px solid var(--color-border);flex-shrink:0;padding:12px 16px}.meal-picker-search input{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);width:100%;color:var(--color-text-primary);outline:none;padding:9px 14px;font-size:16px}.meal-picker-search input:focus{border-color:var(--color-primary)}.meal-picker-search input::placeholder{color:var(--color-text-secondary)}.meal-picker-specials{border-bottom:1px solid var(--color-border);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-shrink:0;gap:8px;padding:12px 16px;display:flex;overflow-x:auto}.meal-picker-specials::-webkit-scrollbar{display:none}.special-btn{border-radius:var(--radius-full);background:var(--color-primary);color:#fff;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-size:13.33px;font-weight:500;display:flex}.special-btn:active{opacity:.8}.special-icon{font-size:16px}.meal-picker-list{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.meal-picker-item{text-align:left;width:100%;color:var(--color-text-primary);border-bottom:1px solid var(--color-border);padding:15px 20px;font-size:16px;display:block}.meal-picker-item:last-child{border-bottom:none}.meal-picker-item:active{background:var(--color-primary-light);color:var(--color-primary)}.no-results{text-align:center;color:var(--color-text-secondary);padding:32px;font-size:16px}.gl-page{background:var(--color-bg);z-index:50;flex-direction:column;max-width:480px;margin:0 auto;animation:.36s cubic-bezier(.32,.72,0,1) forwards glSlideIn;display:flex;position:fixed;inset:0}.gl-page--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards glSlideOut}@keyframes glSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes glSlideOut{0%{transform:translate(0)}to{transform:translate(100%)}}.gl-header{flex-shrink:0;align-items:center;gap:8px;padding:18px 20px 14px;display:flex}.gl-back{color:var(--color-text-primary);margin-left:-4px;padding:10px 16px 10px 4px;font-size:32px;font-weight:300;line-height:1}.gl-back:active{opacity:.5}.gl-title{color:var(--color-text-primary);flex:1;font-size:19.2px;font-weight:600}.gl-copy-btn{color:#fff;background:var(--color-primary);border-radius:var(--radius-full);flex-shrink:0;padding:7px 16px;font-size:13.33px;font-weight:400;transition:opacity .15s}.gl-copy-btn:active{opacity:.8}.gl-copy-btn:disabled{opacity:.35}.gl-copy-btn.copied{background:#3a9e6e}.gl-divider{background:var(--color-border);flex-shrink:0;height:1px}.gl-toggles{flex-shrink:0;gap:10px;padding:16px 20px 12px;display:flex}.gl-toggle{border-radius:var(--radius-full);border:1.5px solid var(--color-primary);color:var(--color-primary);background:0 0;padding:7px 18px;font-size:13.33px;font-weight:400;transition:background .15s,color .15s}.gl-toggle.active{background:var(--color-primary);color:#fff}.gl-toggle:active{opacity:.8}.gl-sections{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:90px;overflow-y:auto}.gl-empty{color:var(--color-text-secondary);text-align:center;white-space:pre-line;padding:48px 32px;font-size:16px;line-height:1.6}.gl-category{margin-bottom:8px}.gl-category-label{color:var(--color-text-primary);text-transform:lowercase;padding:14px 20px 6px;font-size:16px;font-weight:700}.gl-item{border-top:1px solid var(--color-border);align-items:center;gap:10px;padding:12px 20px;display:flex}.gl-item-name{color:var(--color-text-primary);flex:1;font-size:16px}.gl-item-qty{color:var(--color-text-secondary);flex-shrink:0;font-size:13.33px}.gl-item-remove{color:var(--color-text-secondary);flex-shrink:0;padding:0 2px;font-size:18px;line-height:1}.gl-item-remove:active{color:var(--color-danger)}.gl-item--removing{pointer-events:none;animation:.25s ease-out forwards glItemRemove}@keyframes glItemRemove{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.gl-add-sheet{background:var(--color-bg);border:1.5px solid var(--color-text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;flex-direction:column;gap:12px;padding:0 20px 28px;animation:.32s cubic-bezier(.32,.72,0,1) forwards sheetUp;display:flex;position:absolute;bottom:0;left:0;right:0}.gl-add-sheet--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards glSheetDown}@keyframes glSheetDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.gl-add-handle{background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;width:36px;height:4px;margin:14px auto 4px;display:block}.gl-add-handle:active{background:var(--color-text-secondary)}.gl-add-input-row,.gl-add-qty-row{gap:8px;display:flex}.gl-add-input{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);outline:none;flex:1;padding:9px 14px;font-size:16px}.gl-add-input:focus{border-color:var(--color-primary)}.gl-add-input::placeholder{color:var(--color-text-secondary)}.gl-add-confirm{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;flex-shrink:0;padding:9px 16px;font-size:16px;font-weight:400}.gl-add-confirm:disabled{opacity:.35}.gl-cat-chips{flex-wrap:wrap;gap:8px;display:flex}.gl-cat-chip{border-radius:var(--radius-full);color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0;flex-shrink:0;padding:4px 12px;font-size:13.33px;font-weight:400;transition:all .12s}.gl-cat-chip.active{background:var(--color-primary);color:#fff}.gl-fab{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;font-size:30px;font-weight:300;line-height:1;transition:transform .2s,background .2s;display:flex;position:absolute;bottom:28px;right:24px}.gl-fab.open{transform:rotate(45deg)}.gl-fab:active{opacity:.85}.ev-page{background:var(--color-bg);z-index:60;flex-direction:column;max-width:480px;margin:0 auto;animation:.36s cubic-bezier(.32,.72,0,1) forwards evSlideIn;display:flex;position:fixed;inset:0}.ev-page--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards evSlideOut}@keyframes evSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes evSlideOut{0%{transform:translate(0)}to{transform:translate(100%)}}.ev-header{flex-shrink:0;align-items:center;gap:8px;padding:18px 20px 14px;display:flex}.ev-back{color:var(--color-text-primary);margin-left:-4px;padding:10px 16px 10px 4px;font-size:32px;font-weight:300;line-height:1}.ev-back:active{opacity:.5}.ev-name-btn{color:var(--color-text-primary);text-align:left;flex:1;align-items:center;gap:8px;font-size:19.2px;font-weight:600;display:flex}.ev-name-btn:active{opacity:.6}.ev-name-pencil{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}.ev-name-input{color:var(--color-text-primary);border:none;border-bottom:2px solid var(--color-primary);background:0 0;outline:none;flex:1;padding:0 0 2px;font-family:inherit;font-size:19.2px;font-weight:600}.ev-divider{background:var(--color-border);flex-shrink:0;height:1px}.ev-sections{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:100px;overflow-y:auto}.ev-empty{color:var(--color-text-secondary);text-align:center;white-space:pre-line;padding:48px 32px;font-size:16px;line-height:1.6}.ev-category{margin-bottom:8px}.ev-category-label{color:var(--color-text-primary);text-transform:lowercase;padding:14px 20px 6px;font-size:16px;font-weight:700}.ev-item{border-top:1px solid var(--color-border);align-items:center;padding-right:12px;display:flex}.ev-item-main{text-align:left;flex:1;align-items:center;gap:8px;min-width:0;padding:12px 8px 12px 20px;display:flex}.ev-item-main:active{opacity:.5}.ev-item-name{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:16px;overflow:hidden}.ev-item-qty{color:var(--color-text-secondary);flex-shrink:0;font-size:13.33px}.ev-item-remove{color:var(--color-text-secondary);flex-shrink:0;padding:8px 4px;font-size:18px;line-height:1}.ev-item-remove:active{color:var(--color-danger)}.ev-item--removing{pointer-events:none;animation:.25s ease-out forwards evItemRemove}@keyframes evItemRemove{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}.ev-delete-meal{color:var(--color-danger);opacity:.8;font-size:16px;position:absolute;bottom:36px;left:24px}.ev-delete-meal:active{opacity:.5}.ev-fab{background:var(--color-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:54px;height:54px;font-size:30px;font-weight:300;line-height:1;transition:opacity .15s;display:flex;position:absolute;bottom:28px;right:24px}.ev-fab:active{opacity:.85}.ev-sheet{background:var(--color-bg);border:1.5px solid var(--color-text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;flex-direction:column;gap:12px;padding:0 20px 28px;animation:.32s cubic-bezier(.32,.72,0,1) forwards evSheetUp;display:flex;position:absolute;bottom:0;left:0;right:0}@keyframes evSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.ev-sheet--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards evSheetDown}@keyframes evSheetDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.ev-sheet-handle{background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;width:36px;height:4px;margin:14px auto 4px;display:block}.ev-sheet-handle:active{background:var(--color-text-secondary)}.ev-sheet-row,.ev-sheet-qty-row{gap:8px;display:flex}.ev-sheet-input{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);outline:none;flex:1;padding:9px 14px;font-family:inherit;font-size:16px}.ev-sheet-input:focus{border-color:var(--color-primary)}.ev-sheet-input::placeholder{color:var(--color-text-secondary)}.ev-sheet-confirm{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;flex-shrink:0;padding:9px 16px;font-size:16px;font-weight:400}.ev-sheet-confirm:disabled{opacity:.35}.ev-cat-chips{flex-wrap:wrap;gap:8px;display:flex}.ev-cat-chip{border-radius:var(--radius-full);color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0;flex-shrink:0;padding:4px 12px;font-size:13.33px;font-weight:400;transition:all .12s}.ev-cat-chip.active{background:var(--color-primary);color:#fff}.mv-page{background:var(--color-bg);z-index:50;flex-direction:column;max-width:480px;margin:0 auto;animation:.36s cubic-bezier(.32,.72,0,1) forwards mvSlideIn;display:flex;position:fixed;inset:0}.mv-page--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards mvSlideOut}@keyframes mvSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes mvSlideOut{0%{transform:translate(0)}to{transform:translate(100%)}}.mv-header{flex-shrink:0;align-items:center;gap:8px;padding:18px 20px 14px;display:flex}.mv-back{color:var(--color-text-primary);margin-left:-4px;padding:10px 16px 10px 4px;font-size:32px;font-weight:300;line-height:1}.mv-back:active{opacity:.5}.mv-title{color:var(--color-text-primary);flex:1;font-size:19.2px;font-weight:600}.mv-divider{background:var(--color-border);flex-shrink:0;height:1px}.mv-list{-webkit-overflow-scrolling:touch;flex:1;padding-bottom:90px;overflow-y:auto}.mv-row{border-bottom:1px solid var(--color-border);text-align:left;align-items:center;gap:10px;width:100%;padding:14px 20px;display:flex}.mv-row:active{opacity:.5}.mv-row--deleting{pointer-events:none;animation:.3s ease-out forwards mvRowDelete}@keyframes mvRowDelete{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(24px)}}.mv-row-name{color:var(--color-text-primary);flex:1;font-size:16px}.mv-row-chevron{color:var(--color-text-secondary);flex-shrink:0;font-size:20px;line-height:1}.mv-add-btn{border-radius:var(--radius-full);background:var(--color-primary);color:#fff;padding:12px 24px;font-size:16px;font-weight:400;transition:opacity .15s;position:absolute;bottom:28px;right:24px}.mv-add-btn:active{opacity:.8}.mv-add-sheet{background:var(--color-bg);border:1.5px solid var(--color-text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:none;flex-direction:column;gap:12px;padding:0 20px 28px;animation:.32s cubic-bezier(.32,.72,0,1) forwards mvSheetUp;display:flex;position:absolute;bottom:0;left:0;right:0}@keyframes mvSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mv-add-sheet--closing{animation:.3s cubic-bezier(.4,0,1,1) forwards mvSheetDown}@keyframes mvSheetDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.mv-sheet-handle{background:var(--color-border);border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;width:36px;height:4px;margin:14px auto 4px;display:block}.mv-sheet-handle:active{background:var(--color-text-secondary)}.mv-sheet-row{gap:8px;display:flex}.mv-sheet-input{border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);outline:none;flex:1;padding:9px 14px;font-family:inherit;font-size:16px}.mv-sheet-input:focus{border-color:var(--color-primary)}.mv-sheet-input::placeholder{color:var(--color-text-secondary)}.mv-sheet-confirm{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;flex-shrink:0;padding:9px 16px;font-size:16px;font-weight:400}.mv-sheet-confirm:disabled{opacity:.35}.skeleton-card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.skeleton-header{border-bottom:1px solid var(--color-border);padding:10px 16px}.skeleton-body{align-items:center;gap:16px;padding:14px 16px;display:flex}.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--color-border) 25%, #ece8e4 50%, var(--color-border) 75%);background-size:400px 100%;flex-shrink:0;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.app{background:var(--color-bg);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}.app-header{flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.app-title{color:var(--color-primary);letter-spacing:-.5px;cursor:default;font-size:23.04px;font-weight:800}.app-title-char{transition:transform .1s;display:inline-block}.app-title:hover .app-title-char{animation:.5s forwards letterBounce}@keyframes letterBounce{0%{transform:translateY(0)}35%{transform:translateY(-5px)}65%{transform:translateY(1px)}to{transform:translateY(0)}}.header-actions{gap:8px;display:flex}.header-btn{color:#fff;border-radius:var(--radius-full);background:var(--color-primary);padding:7px 14px;font-size:13.33px;font-weight:400}.header-btn:active{opacity:.8}.header-divider{background:var(--color-border);flex-shrink:0;height:1px}.app-main{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.app-empty{height:100%;color:var(--color-text-secondary);text-align:center;justify-content:center;align-items:center;padding:0 32px;font-size:13.33px;line-height:1.6;display:flex}.app-footer{padding:14px 16px;padding-bottom:calc(14px + env(safe-area-inset-bottom,0px));background:var(--color-bg);border:1.5px solid var(--color-text-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-shrink:0;gap:10px;display:flex}.btn-footer{border-radius:var(--radius-full);color:#fff;background:var(--color-primary);text-align:center;flex:1;padding:14px 12px;font-size:16px;font-weight:400}.btn-footer:active{opacity:.85}.share-toast{background:var(--color-text-primary);color:#fff;border-radius:var(--radius-full);pointer-events:none;z-index:200;padding:8px 18px;font-size:13.33px;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) forwards toastRise;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.share-toast--out{animation:.25s ease-in forwards toastSink}@keyframes toastRise{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastSink{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(8px)}}
