.app-icon{color:currentColor;vertical-align:-.16em;flex:none;display:inline-block}.app-icon svg,svg.app-icon{overflow:visible}.fav-page{padding:0 var(--page-gutter) calc(var(--app-mobile-bottom-space,128px) + 26px)}.fav-header{margin-bottom:1rem;padding-top:.5rem}.fav-hero{background:linear-gradient(135deg,#8b5cf61a,#4f8cff14);border:1px solid #8b5cf621;border-radius:22px;align-items:center;gap:14px;margin-bottom:.78rem;padding:15px 16px;display:flex;box-shadow:0 12px 28px #583baa0f}.fav-hero-icon{width:56px;height:56px;color:var(--primary,#8b5cf6);background:#8b5cf61a;border-radius:20px;justify-content:center;align-items:center;display:inline-flex;box-shadow:inset 0 1px #ffffffa6}.fav-hero-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.fav-title{color:var(--text);letter-spacing:-.04em;margin:0;font-size:clamp(1.18rem,5vw,1.45rem);font-weight:950;line-height:1.2}.fav-hero-meta{gap:14px;display:flex}.fav-stat{align-items:baseline;gap:4px;display:inline-flex}.fav-stat-num{color:var(--primary,#8b5cf6);font-size:1.05rem;font-weight:950}.fav-stat-label{color:var(--text-muted);font-size:.72rem;font-weight:750}.fav-search-row{margin-bottom:.7rem;position:relative}.fav-search-icon{color:color-mix(in srgb, var(--text-secondary) 70%, transparent);pointer-events:none;align-items:center;display:inline-flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.fav-search-input{width:100%;height:50px;color:var(--text);box-sizing:border-box;background:#ffffffc7;border:1px solid #8b5cf61a;border-radius:18px;outline:none;padding:0 42px 0 43px;font-size:.94rem;font-weight:750;transition:all .18s;box-shadow:0 8px 20px #0f172a09}.fav-search-input:focus{border-color:#8b5cf661;box-shadow:0 0 0 3px #8b5cf61a,0 8px 20px #0f172a09}.fav-search-clear{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:#8b5cf612;border:none;border-radius:12px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.fav-search-clear:hover{background:#8b5cf61f}.fav-chips{scrollbar-width:none;-ms-overflow-style:none;gap:8px;margin-bottom:.65rem;padding:0 0 7px;display:flex;overflow-x:auto}.fav-chips::-webkit-scrollbar{display:none}.fav-chip{min-height:38px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:#ffffffb3;border:1px solid #8b5cf61a;border-radius:999px;flex-shrink:0;padding:0 14px;font-size:.82rem;font-weight:850;transition:all .15s}.fav-chip:hover{border-color:var(--primary,#8b5cf6);color:var(--primary,#8b5cf6)}.fav-chip.active{background:linear-gradient(135deg, var(--primary,#8b5cf6), #4f8cff);color:#fff;border-color:#0000;box-shadow:0 8px 18px #8b5cf638}.fav-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.fav-sort-group,.fav-action-group{flex-wrap:wrap;gap:7px;display:flex}.fav-sort-btn{min-height:38px;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffffb8;border:1px solid #8b5cf61a;border-radius:13px;justify-content:center;align-items:center;gap:5px;padding:0 12px;font-size:.8rem;font-weight:850;transition:all .18s;display:inline-flex}.fav-sort-btn:hover:not(:disabled){border-color:var(--primary,#8b5cf6);color:var(--primary,#8b5cf6)}.fav-sort-btn:disabled{opacity:.48;cursor:not-allowed}.fav-sort-btn.active{background:var(--primary,#8b5cf6);color:#fff;border-color:#0000;box-shadow:0 8px 18px #8b5cf638}.fav-sort-btn.danger:not(:disabled){color:#dc2626;background:#ef444412;border-color:#ef44442e}.fav-sort-btn.danger:hover:not(:disabled){background:#ef44441a}.fav-retry-btn{min-width:40px;padding:0 10px}.fav-group-title{color:color-mix(in srgb, var(--text-secondary) 82%, transparent);text-transform:none;letter-spacing:.02em;align-items:center;gap:8px;padding:1rem .25rem .45rem;font-size:.78rem;font-weight:950;display:flex}.fav-group-title .app-icon{color:var(--primary,#8b5cf6)}.fav-group-count{min-width:22px;height:19px;color:var(--primary,#8b5cf6);letter-spacing:0;text-transform:none;background:#8b5cf61f;border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:.66rem;font-weight:900;display:inline-flex}.fav-grid{flex-direction:column;gap:.55rem;display:flex}.fav-empty{text-align:center;flex-direction:column;align-items:center;gap:.55rem;padding:4rem 2rem;display:flex}.fav-empty-icon{width:82px;height:82px;color:var(--primary,#8b5cf6);background:#8b5cf614;border-radius:28px;justify-content:center;align-items:center;margin-bottom:.45rem;display:inline-flex;box-shadow:inset 0 1px #ffffffa6}.fav-empty-title{color:var(--text);margin:0;font-size:1.05rem;font-weight:900}.fav-empty-hint{color:var(--text-muted);opacity:.85;margin:0;font-size:.85rem;font-weight:750}[data-theme=dark] .fav-hero{background:linear-gradient(135deg,#8b5cf61f,#4f8cff14);border-color:#8b5cf62e}[data-theme=dark] .fav-sort-btn,[data-theme=dark] .fav-chip,[data-theme=dark] .fav-search-input{background:#ffffff0d;border-color:#ffffff14}[data-theme=dark] .fav-search-clear{background:#ffffff1a}[data-theme=dark] .fav-group-count{background:#8b5cf638}@media (width<=380px){.fav-hero{gap:10px;padding:13px 14px}.fav-hero-icon{border-radius:18px;width:50px;height:50px}.fav-title{font-size:1.08rem}.fav-stat-num{font-size:.95rem}}.tp-expand-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);background:#000000b8;justify-content:center;align-items:center;animation:.2s ease-out both tpExpandIn;display:flex;position:fixed;inset:0}@keyframes tpExpandIn{0%{opacity:0}to{opacity:1}}.tp-expand-modal{background:var(--surface,#fff);border-radius:20px;flex-direction:column;width:min(90vw,560px);max-height:88vh;animation:.28s cubic-bezier(.34,1.56,.64,1) both tpModalIn;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 80px #00000047,0 0 0 1px #0000000f}@keyframes tpModalIn{0%{opacity:0;transform:scale(.88)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}[data-theme=dark] .tp-expand-modal{background:var(--surface)}.tp-expand-header{border-bottom:1px solid var(--border,#eee);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}[data-theme=dark] .tp-expand-header{border-bottom-color:var(--border-dark,#2a2a3c)}.tp-expand-lang{color:var(--primary,#6366f1);background:var(--primary-soft,#6366f11f);letter-spacing:.04em;text-transform:uppercase;border-radius:20px;padding:3px 10px;font-size:.78rem;font-weight:700}.tp-expand-header-actions{align-items:center;gap:6px;display:flex}.tp-expand-action-btn{border:1px solid var(--border,#e5e5e5);background:var(--bg-secondary,#f5f5f7);width:34px;height:34px;color:var(--text-secondary,#666);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.tp-expand-action-btn:hover{background:var(--bg,#fff);border-color:var(--border-strong,#ccc);color:var(--text,#333);transform:scale(1.08)}.tp-expand-action-btn:active{transform:scale(.94)}.tp-expand-action-btn.active{background:var(--primary,#6366f1);border-color:var(--primary,#6366f1);color:#fff}[data-theme=dark] .tp-expand-action-btn{background:var(--surface-hover);border-color:var(--border);color:var(--text-secondary)}[data-theme=dark] .tp-expand-action-btn:hover{background:var(--surface,#252536);color:var(--text-dark,#eee)}.tp-expand-close:hover{color:var(--danger)!important;background:#ef44441a!important;border-color:#ef444459!important}.tp-expand-text{color:var(--text,#1a1a1a);letter-spacing:.02em;text-align:center;word-break:break-word;-webkit-user-select:all;user-select:all;filter:drop-shadow(0 2px 16px #6366ea1a);max-height:70vh;padding:32px 24px 40px;font-size:clamp(2rem,14vw,5rem);font-weight:900;line-height:1.2;overflow-y:auto}[data-theme=dark] .tp-expand-text{color:var(--text-dark,#f0f0f0);filter:drop-shadow(0 2px 20px #8278ff26)}:-webkit-any(:fullscreen .tp-expand-text,:-webkit-full-screen .tp-expand-text){padding:40px 24px;font-size:clamp(3rem,10vw,8rem)}:is(:fullscreen .tp-expand-text,:fullscreen .tp-expand-text){padding:40px 24px;font-size:clamp(3rem,10vw,8rem)}:-webkit-any(:fullscreen .tp-expand-modal,:-webkit-full-screen .tp-expand-modal){border-radius:0;width:100%;height:100%;max-height:100%;padding:48px 72px}:is(:fullscreen .tp-expand-modal,:fullscreen .tp-expand-modal){border-radius:0;width:100%;height:100%;max-height:100%;padding:48px 72px}:-webkit-any(:fullscreen .tp-expand-overlay,:-webkit-full-screen .tp-expand-overlay){background:#000000e0}:is(:fullscreen .tp-expand-overlay,:fullscreen .tp-expand-overlay){background:#000000e0}@media (orientation:landscape) and (height<=500px){.tp-expand-modal{border-radius:0;flex-direction:row;align-items:center;width:100%;height:100%;max-height:100vh;padding:20px 32px}.tp-expand-text{padding:16px 0;font-size:clamp(2.4rem,18vw,7rem)}.tp-expand-header{flex-direction:column;align-items:flex-start;gap:12px;padding:0 0 8px}.tp-expand-header-actions{flex-direction:column;gap:8px}.tp-expand-overlay{background:#000000d9}}.phrase-card{border:1px solid var(--line-strong);background:var(--surface-strong);-webkit-backdrop-filter:blur(12px)saturate(180%);box-shadow:var(--shadow-md);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:20px;padding:1rem .9rem .85rem;transition:all .22s;animation:.3s both cardIn;position:relative;overflow:hidden}@keyframes cardIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.phrase-card:before{content:"";background:linear-gradient(180deg, var(--primary-soft) 0%, transparent 100%);pointer-events:none;opacity:.7;height:54px;position:absolute;inset:0 0 auto}.phrase-card:hover{box-shadow:var(--shadow-lg), 0 0 0 1px var(--primary-glow);transform:translateY(-1px)}.phrase-card:active{background:var(--surface-hover);box-shadow:var(--shadow);transform:scale(.985)}.phrase-card.playing{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow), var(--shadow-md)}[data-theme=dark] .phrase-card.playing{box-shadow:0 0 0 3px var(--primary-glow), 0 0 24px var(--primary-glow)}[data-theme=dark] .phrase-card:before{background:linear-gradient(180deg, var(--primary-soft) 0%, transparent 60%);opacity:1}.card-lao-row{align-items:flex-start;gap:.75rem;margin-bottom:.8rem;display:flex}.card-lao{color:var(--text);letter-spacing:.01em;flex:1;font-size:1.25rem;font-weight:800;line-height:1.35}.card-roman{color:var(--text-secondary);opacity:.88;margin-top:-.1rem;margin-bottom:.5rem;font-size:.88rem;font-style:italic;line-height:1.4}.card-actions{flex-shrink:0;gap:.5rem;display:flex}.card-trans{flex-direction:column;gap:.55rem;margin-bottom:.75rem;display:flex}.card-trans-item{align-items:flex-start;gap:.55rem;display:flex}.trans-lang-label{letter-spacing:.06em;opacity:.85;border-radius:999px;flex-shrink:0;padding:.28rem .5rem;font-size:.68rem;font-weight:800}.tag-zh .trans-lang-label{color:#dc2626;background:#dc26261f}.tag-en .trans-lang-label{color:#2563eb;background:#2563eb1f}.tag-lo .trans-lang-label{color:var(--primary);background:#667eea1f}.tag-th .trans-lang-label{color:#d97706;background:#faaf0024}.tag-vi .trans-lang-label{color:#db2777;background:#dc26781f}.trans-text{color:var(--text);word-break:break-word;font-size:1rem;line-height:1.62}.card-source-tag{color:var(--text-muted);background:linear-gradient(#ecf0fff2,#e5eaf9eb);border-radius:999px;width:fit-content;padding:.38rem .8rem;font-size:.76rem;font-weight:700}[data-theme=dark] .phrase-card{background:linear-gradient(#181d38f5,#12172cf0);border-color:#8895ff29;box-shadow:0 18px 32px #0000003d,inset 0 1px #ffffff0a}[data-theme=dark] .card-lao{color:#eef2ff}[data-theme=dark] .card-source-tag{background:#ffffff0d}.card-ai-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#a78bfa 0%,#7c3aed 100%);border:none;border-radius:999px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s cubic-bezier(.4,0,.2,1);animation:3s infinite ai-button-pulse;display:flex;position:relative;overflow:visible;box-shadow:0 4px 12px #7c3aed4d}@keyframes ai-button-pulse{0%{box-shadow:0 0 #7c3aed66}70%{box-shadow:0 0 0 10px #7c3aed00}to{box-shadow:0 0 #7c3aed00}}.card-ai-btn:hover{animation-play-state:paused;transform:scale(1.1)rotate(5deg);box-shadow:0 6px 20px #7c3aed73}.card-ai-btn:after{content:"";pointer-events:none;background:linear-gradient(45deg,#0000 40%,#fff9 50%,#0000 60%);border-radius:999px;animation:2s linear infinite ai-shimmer;position:absolute;inset:0}@keyframes ai-shimmer{0%{transform:translate(-100%)rotate(45deg)}to{transform:translate(100%)rotate(45deg)}}.icon-sparkles{z-index:1;font-size:1.1rem}.swipeable-card{border-radius:18px;position:relative;overflow:hidden}.swipe-delete-bg{background:linear-gradient(90deg, var(--danger) 0%, #e02d1f 100%);z-index:0;border-radius:18px;justify-content:flex-end;align-items:center;padding-right:24px;display:flex;position:absolute;inset:0}.swipe-delete-text{color:#fff;letter-spacing:.02em;white-space:nowrap;font-size:.85rem;font-weight:700}.swipe-card-inner{z-index:1;background:var(--bg);will-change:transform;transition:transform .2s cubic-bezier(.25,.46,.45,.94);position:relative}.swipe-checkbox-wrap{z-index:2;cursor:pointer;justify-content:center;align-items:center;width:56px;padding-left:8px;display:flex;position:absolute;top:0;bottom:0;left:0}.swipe-checkbox{background:#fff;border:2px solid #c7c7cc;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.swipe-checkbox.checked{background:#007aff;border-color:#007aff}
