.gallery-page{width:100%;max-width:860px;margin:0 auto;padding:1.5rem 1rem 7rem;animation:.4s cubic-bezier(.22,1,.36,1) both galleryFadeUp}@keyframes galleryFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.gallery-header{margin-bottom:1.25rem}.gallery-title{background:linear-gradient(to right, var(--text-primary), #a5b4fc);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 .25rem;font-size:2rem;font-weight:700}.gallery-sub{color:var(--text-secondary);margin:0 0 1rem;font-size:.92rem}.gallery-tabs{background:var(--input-bg);border:1px solid var(--border-color);border-radius:20px;gap:6px;padding:4px;display:inline-flex}.gallery-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:6px;padding:7px 16px;font-size:.88rem;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.gallery-tab.active{background:var(--accent-color);color:#fff}.gallery-tab-count{background:#ffffff40;border-radius:10px;padding:1px 7px;font-size:.7rem;font-weight:700}.gallery-tab:not(.active) .gallery-tab-count{background:var(--border-color);color:var(--text-secondary)}.gallery-hint{color:var(--text-secondary);opacity:.7;margin:10px 0 0;font-size:.75rem;font-style:italic}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.gallery-card{background:var(--input-bg);border:1px solid var(--border-color);border-radius:14px;flex-direction:column;transition:transform .25s cubic-bezier(.34,1.56,.64,1),border-color .2s;display:flex;position:relative;overflow:hidden}.gallery-card:hover{border-color:var(--accent-color);transform:translateY(-3px)}.gallery-card-img{aspect-ratio:1;object-fit:cover;cursor:zoom-in;background:var(--border-color);width:100%;display:block}.gallery-card-expired-msg,.gallery-card.expired .gallery-card-img{display:none}.gallery-card.expired .gallery-card-expired-msg{aspect-ratio:1;color:var(--text-secondary);opacity:.7;text-align:center;justify-content:center;align-items:center;padding:8px;font-size:.78rem;font-style:italic;display:flex}.gallery-card-footer{justify-content:space-between;align-items:center;gap:6px;padding:7px 9px;display:flex}.gallery-card-chat-link{color:var(--text-secondary);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:0 0;border:none;flex:1;min-width:0;padding:2px 0;font-size:.7rem;font-weight:500;transition:color .2s;overflow:hidden}.gallery-card-chat-link:hover{color:var(--accent-color)}.gallery-card-download{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;align-items:center;padding:4px;transition:color .2s,background .2s;display:flex}.gallery-card-download:hover{color:var(--text-primary);background:var(--border-color)}.gallery-music-list{flex-direction:column;gap:10px;display:flex}.gallery-music-card{background:var(--input-bg);border:1px solid var(--border-color);border-radius:14px;align-items:flex-start;gap:14px;padding:14px;transition:border-color .2s;display:flex}.gallery-music-card:hover{border-color:var(--accent-color)}.gallery-music-icon{flex-shrink:0;margin-top:2px;font-size:1.8rem}.gallery-music-info{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.gallery-music-prompt{color:var(--text-primary);font-size:.85rem;font-weight:500;line-height:1.35}.gallery-music-audio{width:100%;height:36px}.gallery-empty{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:56px 24px;display:flex}.gallery-empty-icon{opacity:.8;margin-bottom:6px;font-size:3rem}.gallery-empty-title{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:700}.gallery-empty-sub{color:var(--text-secondary);max-width:300px;font-size:.85rem;line-height:1.5}[data-theme=dark] .gallery-card,[data-theme=oled] .gallery-card,[data-theme=dark] .gallery-music-card,[data-theme=oled] .gallery-music-card{background:#ffffff0a;border-color:#ffffff1a}.reminder-create{margin-bottom:12px}.reminder-create-row{align-items:stretch;gap:8px;display:flex}.reminder-add-btn{white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;display:inline-flex}.reminder-add-btn:disabled{opacity:.4;cursor:not-allowed}.reminder-perm-warn{color:#f59e0b;background:#f59e0b1a;border:1px solid #f59e0b40;border-radius:10px;margin:12px 0 0;padding:8px 12px;font-size:.78rem;line-height:1.4}.reminder-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.reminder-item{background:var(--input-bg);border:1px solid var(--border-color);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.reminder-item.overdue{border-color:var(--accent-color);background:color-mix(in srgb, var(--accent-color) 8%, var(--input-bg))}.reminder-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.reminder-item-text{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.reminder-item-when{color:var(--text-secondary);font-size:.72rem}.reminder-item.overdue .reminder-item-when{color:var(--accent-color);font-weight:600}.reminder-item-actions{flex-shrink:0;gap:4px;display:flex}.reminder-done-btn,.reminder-del-btn{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.reminder-done-btn:hover{color:#22c55e;background:#22c55e26}.reminder-del-btn:hover{color:#ef4444;background:#ef44441f}[data-theme=dark] .reminder-item,[data-theme=oled] .reminder-item{background:#ffffff0a;border-color:#ffffff1a}.empty-reply-notice{background:var(--input-bg);border:1px dashed var(--border-color);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;display:inline-flex}.empty-reply-text{color:var(--text-secondary);font-size:.85rem}.empty-reply-retry{border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:12px;align-items:center;gap:5px;padding:5px 11px;font-size:.78rem;font-weight:600;transition:background .2s,border-color .2s;display:inline-flex}.empty-reply-retry:hover{background:var(--sidebar-hover);border-color:var(--text-secondary)}[data-theme=dark] .empty-reply-notice,[data-theme=oled] .empty-reply-notice{background:#ffffff08;border-color:#ffffff1f}.model-label-swap{animation:.32s cubic-bezier(.22,1,.36,1) both modelLabelSwap;display:inline-block}@keyframes modelLabelSwap{0%{opacity:0;filter:blur(2px);transform:translateY(5px)}to{opacity:1;filter:blur();transform:translateY(0)}}.v2-model-option{transition:background .2s,color .2s;animation:.28s cubic-bezier(.22,1,.36,1) both modelOptionIn}.v2-model-option:first-child{animation-delay:20ms}.v2-model-option:nth-child(2){animation-delay:60ms}.v2-model-option:nth-child(3){animation-delay:.1s}.v2-model-option:nth-child(4){animation-delay:.14s}@keyframes modelOptionIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.v2-model-option svg{animation:.25s cubic-bezier(.22,1,.36,1) both modelCheckIn}@keyframes modelCheckIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.model-label-swap,.v2-model-option,.v2-model-option svg{animation:none!important}}.activity-trail{flex-direction:column;gap:3px;margin-bottom:10px;display:flex}.activity-row{color:var(--text-secondary);align-items:center;gap:7px;font-size:.78rem;animation:.3s cubic-bezier(.22,1,.36,1) both activityIn;display:flex}@keyframes activityIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.activity-icon{opacity:.75;flex-shrink:0;justify-content:center;align-items:center;width:15px;display:inline-flex}.activity-running .activity-label{animation:1.8s ease-in-out infinite activityPulse}@keyframes activityPulse{0%,to{opacity:.65}50%{opacity:1}}.activity-spinner{border:1.5px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;width:11px;height:11px;animation:.7s linear infinite activitySpin;display:inline-block}@keyframes activitySpin{to{transform:rotate(360deg)}}.activity-done{opacity:.6}.activity-done .activity-icon{color:var(--accent-color)}.activity-error{opacity:.75}.activity-error .activity-icon,.activity-error .activity-label{color:#ef4444}.activity-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (prefers-reduced-motion:reduce){.activity-row,.activity-running .activity-label{animation:none}.activity-spinner{animation-duration:1.6s}}
