:root{--bg-primary:#F6F4EF;--bg-card:#FFFFFF;--bg-card-hover:#FAFAF8;--text-primary:#1A1A1A;--text-secondary:#6B6B6B;--text-muted:#9B9B9B;--accent:#E07A5F;--accent-hover:#C96A52;--accent-light:#F4D8D0;--border:#E8E5E0;--border-light:#F0EDE8;--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 24px rgba(0,0,0,0.1);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}@media (prefers-color-scheme:dark){:root{--bg-primary:#1A1A1E;--bg-card:#2A2A2E;--bg-card-hover:#32323A;--text-primary:#F0F0F0;--text-secondary:#A0A0A0;--text-muted:#707070;--accent:#E8907A;--accent-hover:#D47E68;--accent-light:rgba(232,144,122,0.15);--border:#3A3A40;--border-light:#2E2E34;--shadow-sm:0 1px 3px rgba(0,0,0,0.2);--shadow-md:0 4px 12px rgba(0,0,0,0.3);--shadow-lg:0 8px 24px rgba(0,0,0,0.4)}}*{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{padding-top:var(--safe-top);padding-bottom:calc(72px + var(--safe-bottom));overscroll-behavior:none;-webkit-overflow-scrolling:touch}.login-container,body{background-color:var(--bg-primary);min-height:100vh;min-height:100dvh}.login-container{display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:360px;background:var(--bg-card);border-radius:var(--radius-lg);padding:40px 28px;box-shadow:var(--shadow-md)}.login-title{font-size:28px;font-weight:700;text-align:center;margin-bottom:8px;color:var(--text-primary)}.login-subtitle{font-size:14px;text-align:center;color:var(--text-muted);margin-bottom:32px}.login-input{width:100%;height:48px;border:1.5px solid var(--border);border-radius:var(--radius-md);padding:0 16px;font-size:16px;background:var(--bg-primary);color:var(--text-primary);outline:none;transition:border-color .2s;-webkit-appearance:none}.login-input:focus{border-color:var(--accent)}.login-button{width:100%;height:48px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:16px;font-weight:600;cursor:pointer;margin-top:16px;transition:background-color .2s,transform .1s;-webkit-tap-highlight-color:transparent}.login-button:active{transform:scale(.98);background:var(--accent-hover)}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#D64545;font-size:13px;text-align:center;margin-top:12px;opacity:0;transition:opacity .3s ease-in}.login-error.visible{opacity:1}.page-container{padding:16px;padding-top:calc(72px + var(--safe-top));max-width:640px;margin:0 auto}.page-header{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + var(--safe-top)) 16px 12px 16px;background:rgba(246,244,239,.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);max-width:100%}.page-title{font-size:28px;font-weight:700;color:var(--text-primary)}.page-header-action{display:flex;gap:8px}.bottom-nav{position:fixed;bottom:calc(16px + var(--safe-bottom));left:50%;transform:translateX(-50%);width:min(80vw,400px);height:62px;background:rgba(255,255,255,.18);backdrop-filter:blur(5px) saturate(150%);-webkit-backdrop-filter:blur(5px) saturate(150%);border:1px solid rgba(255,255,255,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 24px rgba(0,0,0,.08);border-radius:32px;justify-content:space-around;z-index:100;padding:0;overflow:visible}.bottom-nav,.nav-item{display:flex;align-items:center}.nav-item{position:relative;z-index:1;flex-direction:column;gap:2px;text-decoration:none;color:var(--text-muted);font-size:10px;font-weight:500;padding:6px 20px;border-radius:20px;transition:color .25s ease,transform .15s ease;-webkit-tap-highlight-color:transparent}.nav-item.active{color:var(--accent)}.nav-item:active{transform:scale(.9)}.nav-item svg{width:22px;height:22px;transition:stroke-width .25s ease;stroke-width:1.8}.nav-item.active svg{stroke-width:2.5}.floating-add-btn{position:fixed;width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(224,122,95,.4);z-index:150;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s,box-shadow .15s,opacity .2s;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.9}.floating-add-btn.dragging,.floating-add-btn:active{transform:scale(1.1);box-shadow:0 6px 24px rgba(224,122,95,.5);opacity:1}.floating-add-btn svg{width:24px;height:24px}.recipe-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:12px;gap:12px}.recipe-card{background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;content-visibility:auto;contain-intrinsic-size:auto 220px;contain:layout style paint}.recipe-card:active{transform:scale(.97)}.recipe-card-image,.recipe-card-media-slot{width:100%;aspect-ratio:1;background:var(--border-light)}.recipe-card-image{object-fit:cover}.recipe-card-placeholder-slot{width:100%;aspect-ratio:1;background:var(--border-light)}.recipe-card-placeholder{width:100%;aspect-ratio:1;background:linear-gradient(135deg,var(--accent-light) 0,var(--border-light) 100%);display:flex;align-items:center;justify-content:center;font-size:40px}.recipe-card-video-placeholder{background:linear-gradient(135deg,#2A2A2E,#3A3A40)}.recipe-card-info{padding:10px 12px}.recipe-card-title{font-size:14px;font-weight:600;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-card-meta{font-size:12px;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;gap:4px}.load-more-sentinel{padding:16px 0;min-height:1px}.loading-more-container{display:flex;justify-content:center;padding:12px 0}.spinner-sm{width:24px;height:24px}.detail-navbar{position:fixed;top:calc(28px + var(--safe-top));left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:transparent}.detail-navbar-back{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%}.detail-navbar-back:active{background:rgba(0,0,0,.05)}.detail-navbar-back svg{width:22px;height:22px}.detail-navbar-title{font-size:16px;font-weight:600;color:var(--text-primary);flex:1 1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px}.detail-image-container{position:relative;margin-top:calc(-1 * var(--safe-top));overflow:hidden;touch-action:pan-y}.detail-image-track{display:flex;transition:transform .3s ease;will-change:transform}.detail-image-track.swiping{transition:none}.detail-image-slide{flex:0 0 100%;width:100%}.recipe-detail-hero{width:100%;height:auto;display:block}.recipe-detail-hero-placeholder{width:100%;aspect-ratio:4/3;background:linear-gradient(135deg,var(--accent-light) 0,var(--border-light) 100%);display:flex;align-items:center;justify-content:center;font-size:64px;margin-top:calc(-1 * var(--safe-top))}.detail-image-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px}.detail-image-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.5);cursor:pointer;padding:0;transition:background .2s,transform .2s}.detail-image-dot.active{background:#fff;transform:scale(1.3)}.lightbox-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0);display:flex;align-items:center;justify-content:center;transition:background .3s ease;cursor:pointer}.lightbox-overlay.active{background:rgba(0,0,0,.92)}.lightbox-close{position:fixed;top:calc(12px + var(--safe-top));left:12px;z-index:510;width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.15);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;opacity:0;transition:opacity .3s ease,background .2s}.lightbox-overlay.active .lightbox-close{opacity:1}.lightbox-close:active{background:rgba(255,255,255,.25)}.lightbox-image{max-width:92vw;max-height:85vh;object-fit:contain;border-radius:4px;transform:scale(.85);opacity:0;transition:transform .3s ease,opacity .3s ease;cursor:default}.lightbox-overlay.active .lightbox-image{transform:scale(1);opacity:1}.recipe-detail-content{padding:20px 16px;max-width:640px;margin:0 auto}.recipe-detail-title{font-size:26px;font-weight:700;margin-bottom:8px}.recipe-detail-date{font-size:14px;color:var(--text-muted);margin-bottom:16px}.recipe-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}.recipe-tag{font-size:12px;background:var(--accent-light);color:var(--accent);padding:4px 10px;border-radius:20px;font-weight:500;text-decoration:none}.recipe-tag-clickable{cursor:pointer;transition:background-color .2s,transform .1s;-webkit-tap-highlight-color:transparent}.recipe-tag-clickable:active{transform:scale(.95);background:var(--accent);color:#fff}.recipe-section-title{font-size:18px;font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--accent);display:inline-block}.ingredient-list{list-style:none;margin-bottom:24px}.ingredient-item{padding:10px 0;border-bottom:1px solid var(--border-light);font-size:15px;display:flex;justify-content:space-between}.ingredient-name{color:var(--text-primary);font-weight:500}.ingredient-amount{color:var(--text-secondary)}.step-list{list-style:none;margin-bottom:24px}.step-item{display:flex;gap:12px;margin-bottom:16px}.step-number{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-top:2px}.step-content{flex:1 1;font-size:15px;line-height:1.6;color:var(--text-primary)}.step-image{width:100%;border-radius:var(--radius-sm);margin-top:8px}.recipe-actions{display:flex;gap:10px;margin-top:32px;padding-bottom:20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 20px;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:transform .1s,background-color .2s;-webkit-tap-highlight-color:transparent;text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-hover)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1.5px solid var(--border)}.btn-danger{background:#FEE;color:#D64545;border:1.5px solid #fdd}.btn-full{width:100%}.btn-icon{width:40px;height:40px;padding:0;border-radius:50%;background:var(--bg-card);border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.btn-glass{background:rgba(246,244,239,.1);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.5);color:var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.05);border-radius:20px;font-weight:600;font-size:13px;height:32px;padding:0 16px;transition:transform .15s,background-color .15s,box-shadow .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn-glass:active{transform:scale(.95);background:rgba(224,122,95,.15);box-shadow:0 2px 5px rgba(0,0,0,.05)}.btn-glass-icon{background:rgba(246,244,239,.1);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.5);color:var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.05);border-radius:50%;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s,background-color .15s,box-shadow .15s;text-decoration:none;cursor:pointer;padding:0}.btn-glass-icon:active{transform:scale(.95);background:rgba(224,122,95,.15);box-shadow:0 2px 5px rgba(0,0,0,.05)}.btn-menu-item{background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.06);color:var(--text-primary);box-shadow:0 2px 8px rgba(0,0,0,.08);border-radius:12px;font-weight:500;font-size:15px;height:40px;padding:0 16px;transition:transform .12s,background-color .15s;text-decoration:none;display:inline-flex;align-items:center;justify-content:flex-start;cursor:pointer;-webkit-tap-highlight-color:transparent}.btn-menu-item:active{transform:scale(.97);background:rgba(0,0,0,.04)}.form-group{margin-bottom:20px}.form-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}.form-input,.form-label{color:var(--text-primary)}.form-input{width:100%;height:44px;border:1.5px solid var(--border);border-radius:var(--radius-md);padding:0 14px;font-size:15px;background:var(--bg-card);outline:none;transition:border-color .2s;-webkit-appearance:none}.form-input:focus{border-color:var(--accent)}.form-textarea{width:100%;min-height:88px;border:1.5px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;font-size:15px;font-family:var(--font-sans);background:var(--bg-card);color:var(--text-primary);outline:none;resize:vertical;transition:border-color .2s;-webkit-appearance:none}.form-textarea:focus{border-color:var(--accent)}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1 1}.dynamic-list-item{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.dynamic-list-item .form-input{flex:1 1}.dynamic-list-remove{width:36px;border:none;font-size:20px}.dynamic-list-add,.dynamic-list-remove{height:44px;background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.dynamic-list-add{border:1.5px dashed var(--border);border-radius:var(--radius-md);width:100%;font-size:14px;gap:6px;transition:border-color .2s,color .2s}.dynamic-list-add:active{border-color:var(--accent);color:var(--accent)}.multi-image-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.multi-image-item{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden}.multi-image-thumb{width:100%;height:100%;object-fit:cover}.multi-image-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:none;background:rgba(0,0,0,.5);color:#fff;font-size:16px;line-height:1}.multi-image-add,.multi-image-remove{display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent}.multi-image-add{aspect-ratio:1;border:2px dashed var(--border);border-radius:var(--radius-sm);flex-direction:column;background:var(--bg-card);transition:border-color .2s}.multi-image-add:active{border-color:var(--accent)}.multi-image-add-icon{font-size:28px;color:var(--text-muted);line-height:1}.multi-image-add-text{font-size:11px;color:var(--text-muted);margin-top:4px}.tags-container{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);min-height:44px;align-items:center}.tags-container:focus-within{border-color:var(--accent)}.tag-pill{display:flex;align-items:center;gap:4px;background:var(--accent-light);color:var(--accent);padding:4px 8px;border-radius:16px;font-size:13px;font-weight:500}.tag-pill button{border:none;background:none;color:var(--accent);font-size:14px;cursor:pointer;padding:0;line-height:1}.tags-input{border:none;outline:none;font-size:14px;flex:1 1;min-width:80px;background:transparent;color:var(--text-primary)}.tag-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:160px;overflow-y:auto;z-index:50;margin-top:4px}.tag-suggestion-item{display:block;width:100%;text-align:left;padding:10px 14px;border:none;background:none;font-size:14px;color:var(--text-primary);cursor:pointer;-webkit-tap-highlight-color:transparent}.tag-suggestion-item:active{background:var(--accent-light)}.home-tags-scroll{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;margin-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.home-tags-scroll::-webkit-scrollbar{display:none}.home-tag-chip{flex-shrink:0;padding:6px 14px;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;white-space:nowrap}.home-tag-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.home-tag-chip:active{transform:scale(.95)}.today-banner{display:block;position:relative;width:100%;height:12vh;min-height:72px;max-height:120px;margin:0 0 16px;border-radius:14px;overflow:hidden;text-decoration:none;box-shadow:0 2px 12px rgba(0,0,0,.1);transition:transform .2s ease,box-shadow .2s ease,opacity .35s ease,max-height .35s ease,margin-bottom .35s ease;-webkit-tap-highlight-color:transparent;flex-shrink:0;opacity:1}.today-banner.hidden{opacity:0;max-height:0;min-height:0;margin-bottom:0;pointer-events:none}.today-banner:active{transform:scale(.98);box-shadow:0 1px 6px rgba(0,0,0,.08)}.search-bar{position:relative;margin-bottom:12px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:18px;height:18px}.search-input{width:100%;height:44px;border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:0 14px 0 40px;font-size:15px;background:var(--bg-card);color:var(--text-primary);outline:none;transition:border-color .2s;-webkit-appearance:none}.search-input:focus{border-color:var(--accent)}.stats-summary{display:flex;align-items:baseline;gap:4px;margin-bottom:20px;padding:0;background:none;box-shadow:none}.stats-summary-number{font-size:20px;font-weight:700;color:var(--accent);line-height:1}.stats-summary-label{font-size:14px;color:var(--text-muted);font-weight:400}.stats-year-group{margin-bottom:24px}.stats-year-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;padding-bottom:10px;border-bottom:2px solid var(--accent);cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.stats-year-title{font-size:20px;font-weight:700;color:var(--text-primary)}.stats-year-count{font-size:14px;color:var(--text-muted);font-weight:500;margin-left:8px}.stats-year-chevron{width:16px;height:16px;color:var(--text-muted);flex-shrink:0;transition:transform .28s ease}.stats-year-chevron.expanded{transform:rotate(180deg)}.stats-year-body{overflow:hidden;max-height:0;opacity:0;transition:max-height .38s ease,opacity .3s ease,padding-top .3s ease;padding-top:0}.stats-year-body.expanded{max-height:99999px;opacity:1;padding-top:14px;overflow:visible}.stats-dashboard{display:flex;flex-direction:column;gap:16px}.stats-metrics-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.stats-metric-card{background:var(--bg-card);border-radius:var(--radius-md);padding:14px 10px;text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);animation:statCardIn .5s ease-out both}.stats-metric-card:first-child{animation-delay:0s}.stats-metric-card:nth-child(2){animation-delay:.05s}.stats-metric-card:nth-child(3){animation-delay:.1s}.stats-metric-card:nth-child(4){animation-delay:.15s}.stats-metric-card:nth-child(5){animation-delay:.2s}.stats-metric-card:nth-child(6){animation-delay:.25s}@keyframes statCardIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.stats-metric-value{font-size:26px;font-weight:800;color:var(--accent);line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats-metric-label{font-size:12px;color:var(--text-muted);font-weight:500;margin-top:2px}.stats-chart-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);animation:statCardIn .5s ease-out both;animation-delay:.3s}.stats-chart-title{font-size:16px;font-weight:700;color:var(--text-primary);margin-bottom:12px}.stats-chart-container{width:100%}.stats-comparison-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.stats-comparison-card{background:var(--bg-card);border-radius:var(--radius-md);padding:16px;text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);animation:statCardIn .5s ease-out both;animation-delay:.35s}.stats-comparison-year{font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.stats-comparison-value{font-size:32px;font-weight:800;color:var(--text-primary);line-height:1.2}.stats-comparison-value span{font-size:14px;font-weight:500;color:var(--text-muted);margin-left:2px}.stats-comparison-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:700;margin-top:6px}.stats-comparison-badge.up{background:rgba(129,178,154,.15);color:#4A9E75}.stats-comparison-badge.down{background:rgba(214,69,69,.1);color:#D64545}.stats-comparison-note{font-size:11px;color:var(--text-muted);margin-top:4px}.stats-comparison-sub{font-size:12px;color:var(--text-muted);margin-top:8px}.stats-tooltip{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;box-shadow:var(--shadow-md)}.stats-tooltip-label{font-size:12px;color:var(--text-muted);margin-bottom:2px}.stats-tooltip-value{font-size:14px;font-weight:700;color:var(--accent)}.stats-pie-active-text{color:var(--text-primary);fill:var(--text-primary)}.stats-pie-active-subtext{color:var(--text-muted);fill:var(--text-muted)}.stats-chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.stats-chart-header .stats-chart-title{margin-bottom:0}.stats-trend-toggle{display:flex;background:var(--bg-primary);border-radius:8px;padding:2px;gap:2px;border:1px solid var(--border-light)}.stats-trend-btn{padding:4px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;background:transparent;color:var(--text-muted);transition:all .2s ease;-webkit-tap-highlight-color:transparent}.stats-trend-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:var(--shadow-sm)}.stats-trend-btn:active{transform:scale(.95)}.stats-ingredients-list{display:flex;flex-direction:column;gap:8px}.stats-ingredient-row{display:flex;align-items:center;gap:8px}.stats-ingredient-rank{width:20px;font-size:12px;font-weight:700;color:var(--text-muted);text-align:center;flex-shrink:0}.stats-ingredient-row:first-child .stats-ingredient-rank,.stats-ingredient-row:nth-child(2) .stats-ingredient-rank,.stats-ingredient-row:nth-child(3) .stats-ingredient-rank{color:var(--accent)}.stats-ingredient-name{width:48px;font-size:13px;font-weight:500;color:var(--text-primary);flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-ingredient-bar-bg{flex:1 1;height:16px;background:var(--border-light);border-radius:4px;overflow:hidden}.stats-ingredient-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#81B29A);border-radius:4px;animation:barGrow .6s ease-out both}@keyframes barGrow{0%{width:0!important}}.stats-ingredient-count{font-size:12px;font-weight:600;color:var(--text-muted);width:30px;text-align:right;flex-shrink:0}.stats-section-divider{display:flex;align-items:center;gap:12px;margin:8px 0;font-size:14px;font-weight:600;color:var(--text-muted)}.stats-section-divider-line{flex:1 1;height:1px;background:var(--border)}.stats-dashboard .stats-year-group{margin-bottom:16px}.tag-detail-count{font-size:14px;color:var(--text-muted);margin-bottom:12px}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{font-size:48px;margin-bottom:16px}.empty-state-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.empty-state-text{font-size:14px;color:var(--text-muted);margin-bottom:24px}.loading-container{display:flex;align-items:center;justify-content:center;padding:60px 20px}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.back-button{gap:4px;background:none;border:none;color:var(--accent);font-size:15px;font-weight:500;cursor:pointer;padding:8px 0;-webkit-tap-highlight-color:transparent}.back-button,.dialog-overlay{display:flex;align-items:center}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);justify-content:center;z-index:200;padding:20px;animation:fadeIn .2s}.dialog-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:24px;max-width:320px;width:100%;box-shadow:var(--shadow-lg);animation:scaleIn .2s}.dialog-title{font-size:18px;font-weight:700;margin-bottom:8px}.dialog-message{font-size:14px;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.toast{position:fixed;top:calc(20px + var(--safe-top));left:50%;transform:translateX(-50%);background:var(--text-primary);color:#fff;padding:10px 20px;border-radius:var(--radius-md);font-size:14px;z-index:300;animation:slideDown .3s,fadeOut .3s 2.7s forwards;box-shadow:var(--shadow-lg)}@keyframes slideDown{0%{transform:translateX(-50%) translateY(-20px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.random-page{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px calc(40px + var(--safe-bottom));padding-bottom:calc(40px + var(--safe-bottom));background:var(--bg-primary);overflow:hidden;position:relative}.random-empty{text-align:center;padding:60px 20px}.radar-wrapper{flex:1 1;display:flex;align-items:center;justify-content:center;width:100%;max-width:360px;margin-top:-40px}.radar-container{position:relative;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:transparent}.radar-bg{position:absolute;inset:0;width:100%;height:100%}.radar-bg circle{fill:none;stroke:var(--accent);stroke-width:.5;opacity:.25}.radar-bg line{stroke:var(--accent);stroke-width:.4;opacity:.18}.radar-sweep{position:absolute;top:0;left:0;width:100%;height:100%;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,rgba(224,122,95,.06) 30deg,rgba(224,122,95,.02) 60deg,transparent 90deg);border-radius:50%;animation:radarSweep 4s linear infinite}.radar-sweep.fast{animation-duration:.8s}@keyframes radarSweep{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.radar-center-dot{position:absolute;top:50%;left:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--accent);opacity:.3;box-shadow:0 0 8px rgba(224,122,95,.2);z-index:5}.radar-item{position:absolute;transform:translate(-50%,-50%);font-size:13px;font-weight:600;color:var(--accent);white-space:nowrap;pointer-events:none;z-index:3;animation:radarItemFade 2s ease-in-out forwards;text-shadow:0 1px 4px rgba(224,122,95,.2)}@keyframes radarItemFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}70%{opacity:.8;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.9)}}.random-result-area{min-height:64px;margin:16px 0;max-width:360px}.random-result,.random-result-area{display:flex;align-items:center;justify-content:center;width:100%}.random-result{gap:8px;background:var(--bg-card);padding:14px 20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);cursor:pointer;transition:transform .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent;animation:resultAppear .4s ease-out}.random-result:active{transform:scale(.97)}.random-result-label{font-size:15px;color:var(--text-secondary);font-weight:500}.random-result-name{font-size:18px;font-weight:700;color:var(--accent)}.random-result-arrow{width:18px;height:18px;color:var(--text-muted);flex-shrink:0}@keyframes resultAppear{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.random-spinning-name{font-size:20px;font-weight:700;color:var(--accent);animation:spinPulse .15s ease-in-out infinite alternate}@keyframes spinPulse{0%{opacity:.5;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}.random-btn{width:100%;max-width:360px;height:52px;border:none;border-radius:28px;background:rgba(255,255,255,.18);backdrop-filter:blur(5px) saturate(150%);-webkit-backdrop-filter:blur(5px) saturate(150%);border:1px solid rgba(255,255,255,.3);color:var(--accent);font-size:18px;font-weight:700;letter-spacing:2px;cursor:pointer;transition:transform .15s,background-color .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 8px 24px rgba(0,0,0,.08);margin-bottom:calc(20px + var(--safe-bottom))}.random-btn:active{transform:scale(.97);background:rgba(224,122,95,.15)}.random-btn.spinning,.random-btn:disabled{opacity:.7;cursor:not-allowed}@media (prefers-color-scheme:dark){.bottom-nav{background:rgba(28,28,30,.12);border-color:rgba(255,255,255,.1);box-shadow:inset 0 1.5px .5px rgba(255,255,255,.1),0 12px 40px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.2)}.nav-indicator{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);box-shadow:inset 0 1px 1px rgba(255,255,255,.2),0 2px 8px rgba(0,0,0,.2)}.btn-glass{background:rgba(42,42,46,.7);border-color:rgba(255,255,255,.08);box-shadow:0 2px 10px rgba(0,0,0,.2)}.btn-glass:active{background:rgba(232,144,122,.15);box-shadow:0 2px 5px rgba(0,0,0,.2)}.btn-glass-icon{background:rgba(42,42,46,.7);border-color:rgba(255,255,255,.08);box-shadow:0 2px 10px rgba(0,0,0,.2)}.btn-glass-icon:active{background:rgba(232,144,122,.15);box-shadow:0 2px 5px rgba(0,0,0,.2)}.random-btn{background:rgba(28,28,30,.12);border-color:rgba(255,255,255,.1);box-shadow:inset 0 1.5px .5px rgba(255,255,255,.1),0 12px 40px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.2)}.btn-menu-item{background:rgba(50,50,54,.95);border-color:rgba(255,255,255,.08);color:var(--text-primary);box-shadow:0 2px 10px rgba(0,0,0,.3)}.btn-menu-item:active{background:rgba(70,70,74,.95)}.btn-danger{background:rgba(214,69,69,.15);border-color:rgba(214,69,69,.25)}.btn-danger,.login-error{color:#E85555}.dialog-overlay{background:rgba(0,0,0,.6)}.toast{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.detail-navbar-back:active{background:rgba(255,255,255,.05)}.page-header{background:rgba(26,26,30,.85)}.detail-image-dot{background:rgba(255,255,255,.4)}.detail-image-dot.active{background:#fff}.multi-image-remove{background:rgba(0,0,0,.6)}.home-tag-chip.active{color:#fff}.detail-dropdown-menu{background:rgba(42,42,46,.85);border-color:rgba(255,255,255,.08);box-shadow:0 8px 32px rgba(0,0,0,.4)}}.detail-dropdown-menu{background:rgba(255,255,255,.7);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.5);box-shadow:0 8px 32px rgba(0,0,0,.1)}.pull-refresh-indicator{display:flex;align-items:center;justify-content:center;height:0;overflow:hidden;transition:height .2s ease}.pull-refresh-indicator.pulling{transition:none}.pull-refresh-spinner{width:24px;height:24px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%}.pull-refresh-spinner.spinning{animation:spin .8s linear infinite}.pull-refresh-arrow{width:24px;height:24px;color:var(--text-muted);transition:transform .2s ease}.pull-refresh-arrow.flipped{transform:rotate(180deg)}.video-player-wrapper{position:relative;width:100%;line-height:0;-moz-user-select:none;user-select:none;-webkit-user-select:none}.video-controls-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(180deg,transparent 0,transparent 50%,rgba(0,0,0,.5));opacity:0;transition:opacity .25s ease;pointer-events:none}.video-controls-overlay.visible{opacity:1;pointer-events:auto}.video-play-icon{color:rgba(255,255,255,.92);filter:drop-shadow(0 2px 8px rgba(0,0,0,.4));flex:1 1;display:flex;align-items:center;justify-content:center;pointer-events:none}.video-bottom-bar{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:10px;padding:8px 14px 14px;pointer-events:auto}.video-time{font-size:11px;color:rgba(255,255,255,.85);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:32px;text-align:center;flex-shrink:0;text-shadow:0 1px 3px rgba(0,0,0,.5)}.video-progress-track{flex:1 1;height:4px;border-radius:2px;background:rgba(255,255,255,.25);position:relative;cursor:pointer;padding:10px 0;margin:-10px 0;background-clip:content-box}.video-progress-fill{position:absolute;top:10px;left:0;height:4px;border-radius:2px;background:var(--accent,#E07A5F);pointer-events:none;transition:none}.video-progress-thumb{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.4);transform:translate(-50%,-50%);pointer-events:none;transition:transform .1s}.video-progress-track:active .video-progress-thumb{transform:translate(-50%,-50%) scale(1.2)}.video-mini-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,.15);pointer-events:none;z-index:1;opacity:1;transition:opacity .25s ease}.video-mini-progress-fill{height:100%;background:var(--accent,#E07A5F);border-radius:0 1.5px 1.5px 0;transition:none}.video-controls-overlay.visible~.video-mini-progress{opacity:0}.video-speed-badge{position:absolute;top:12px;right:12px;background:rgba(0,0,0,.6);color:#fff;font-size:13px;font-weight:700;padding:4px 10px;border-radius:20px;pointer-events:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.multi-image-item{position:relative}.video-thumb-badge{position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;width:20px;height:20px;border-radius:50%;pointer-events:none}.save-overlay,.video-thumb-badge{display:flex;align-items:center;justify-content:center}.save-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.45);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);touch-action:none;pointer-events:all}.save-overlay-card{background:var(--bg-card);border-radius:var(--radius-lg);padding:32px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:var(--shadow-lg);min-width:160px}.save-overlay-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.save-overlay-text{font-size:15px;font-weight:500;color:var(--text-secondary)}.save-progress-container{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.save-overlay-title{color:var(--text-primary);font-size:16px;font-weight:600;text-align:center}.save-progress-bar{width:100%;height:6px;background-color:var(--bg-hover);border-radius:4px;overflow:hidden;margin-top:4px}.save-progress-fill{height:100%;background-color:var(--accent);border-radius:4px;transition:width .3s ease}