:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:"Noto Serif SC", "SimSun", "Source Han Serif SC", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Noto Serif SC", "SimSun", "Source Han Serif SC", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:100%;max-width:1126px;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--bg-primary:#faf7f2;--bg-secondary:#f5f0e8;--bg-tertiary:#ebe4d8;--bg-hover:#e0d9ca;--border:#d4c9b8;--text-primary:#2c2416;--text-secondary:#5c4d3a;--text-muted:#8b7b66;--accent:#7c5cbf;--accent-hover:#6b4eb0;--accent-bg:#7c5cbf1f;--esml-主:#c94d7c;--esml-谓:#4a7dc9;--esml-宾:#2e9e6e;--esml-定:#c9913d;--esml-状:#7c5cbf;--esml-补:#c96a3d;--esml-同:#3d9ec9;--shadow:0 4px 20px #2c241626}@media (prefers-color-scheme:dark){:root{--bg-primary:#1e1b16;--bg-secondary:#29251e;--bg-tertiary:#33302a;--bg-hover:#3e3a32;--border:#4a453d;--text-primary:#e8dfd0;--text-secondary:#b5a99a;--text-muted:#8b7d6e;--accent:#a78bfa;--accent-hover:#c4b5fd;--accent-bg:#a78bfa26;--shadow:0 4px 20px #0006}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);line-height:1.8;font-family:Noto Serif SC,SimSun,Source Han Serif SC,Source Serif Pro,Georgia,serif!important}.app{flex-direction:column;min-height:100vh;display:flex}.header{border-bottom:1px solid var(--border);background:var(--bg-secondary);padding:24px 40px}.header h1{color:var(--text-primary);letter-spacing:.02em;font-size:24px;font-weight:600}.subtitle{color:var(--text-secondary);margin-top:4px;font-size:13px}.main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:32px 40px}.input-section{flex-direction:column;align-items:center;gap:16px;display:flex}.article-input{background:var(--bg-secondary);border:1px solid var(--border);width:100%;min-height:160px;color:var(--text-primary);resize:vertical;border-radius:8px;padding:16px 20px;font-family:Source Han Serif SC,Noto Serif SC,Source Serif Pro,Georgia,SimSun,serif;font-size:15px;line-height:1.8;transition:border-color .2s,box-shadow .2s}.article-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.article-input::placeholder{color:var(--text-muted)}.parse-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:10px 32px;font-size:14px;font-weight:500;transition:background .2s,border-color .2s;font-family:Noto Serif SC,SimSun,serif!important}.parse-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.parse-btn:disabled{opacity:.6;cursor:not-allowed}.result-section{margin-top:32px}.article-content{word-spacing:.05em;font-size:17px;line-height:2.6}.translation-line{color:var(--text-secondary);margin-top:4px;padding-left:20px;font-size:13px;font-style:italic;display:block;font-family:Noto Serif SC,SimSun,serif!important}.esml-type{border-radius:3px;padding:1px 4px;font-size:15px;font-weight:600;font-family:Noto Serif SC,SimSun,serif!important}.esml-type.esml-主{color:#fff;background:var(--esml-主)}.esml-type.esml-谓{color:#fff;background:var(--esml-谓)}.esml-type.esml-宾{color:#fff;background:var(--esml-宾)}.esml-type.esml-定{color:#fff;background:var(--esml-定)}.esml-type.esml-状{color:#fff;background:var(--esml-状)}.esml-type.esml-补{color:#fff;background:var(--esml-补)}.esml-type.esml-同{color:#fff;background:var(--esml-同)}.esml-clause-type{border-radius:3px;padding:1px 3px;font-size:13px;font-weight:600;font-family:Noto Serif SC,SimSun,serif!important}.esml-clause-type.esml-定{color:#fff;background:var(--esml-定)}.esml-clause-type.esml-状{color:#fff;background:var(--esml-状)}.esml-clause-type.esml-补{color:#fff;background:var(--esml-补)}.esml-clause-type.esml-同{color:#fff;background:var(--esml-同)}.esml-clause-type.esml-主{color:#fff;background:var(--esml-主)}.esml-clause-type.esml-宾{color:#fff;background:var(--esml-宾)}.esml-annotation{color:var(--text-secondary);padding:0 2px;font-size:13px;font-style:italic}.tooltip-translation{font-size:13px;line-height:1.6;font-family:Noto Serif SC,SimSun,serif!important}.tooltip-audio-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:16px;transition:background .2s;position:absolute;top:8px;right:8px}.tooltip-audio-btn:hover{background:#fff3}.tooltip-buttons{gap:4px;display:flex;position:absolute;top:8px;right:8px}.tooltip-fav-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:16px;transition:background .2s,transform .2s}.tooltip-fav-btn:hover{background:#fff3;transform:scale(1.2)}.tooltip-fav-btn.favorited{opacity:1}.tooltip-review-btn{background:var(--accent-bg);border:1px solid var(--accent);color:var(--accent);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:12px;transition:background .2s}.tooltip-review-btn:hover{background:var(--accent);color:#fff}.tooltip-word{color:var(--bg-primary);font-size:22px;font-weight:600;line-height:1.2}.tooltip-phonetic{color:#faf7f2b3;text-align:left;margin-bottom:4px;font-size:13px}.tooltip-ai-actions{gap:4px;margin-top:6px;margin-bottom:4px;display:flex}.tooltip-ai-btn{color:#faf7f2b3;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #fff3;border-radius:4px;flex:1;padding:3px 4px;font-size:11px;transition:all .15s}.tooltip-ai-btn:hover:not(:disabled){color:var(--bg-primary);background:#ffffff2e}.tooltip-ai-btn.active{color:var(--bg-primary);background:#ffffff40;border-color:#fff6}.tooltip-ai-btn:disabled{opacity:.4;cursor:not-allowed}.tooltip-cognates{flex-direction:column;gap:3px;max-height:160px;margin-top:6px;display:flex;overflow-y:auto}.tooltip-cognate-item{cursor:pointer;text-align:left;background:#ffffff14;border:none;border-radius:4px;align-items:center;gap:6px;padding:4px 6px;transition:background .15s;display:flex}.tooltip-cognate-item:hover{background:#ffffff2e}.tc-word{color:var(--bg-primary);font-size:12px;font-weight:600}.tc-pos{color:#faf7f299;min-width:1.8rem;font-size:10px}.tc-meaning{color:#faf7f2cc;flex:1;font-size:11px}.tooltip-explanation{color:#faf7f2d9;text-align:left;max-height:160px;margin-top:6px;font-size:12px;line-height:1.6;overflow-y:auto}.tooltip-empty{color:#faf7f280;text-align:center;padding:8px 0;font-size:12px}.review-retention,.tooltip-review-retention{margin-bottom:8px;font-size:14px;font-weight:500}.tooltip-expand{color:#faf7f280;cursor:pointer;padding:2px 0;font-size:12px;transition:color .2s}.tooltip-expand:hover{color:#faf7f2cc}@keyframes loading-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.sentence-play-btn{background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;margin-right:8px;font-size:10px;transition:background .2s,border-color .2s;display:inline-flex}.sentence-play-btn:hover:not(:disabled){background:var(--accent-bg);border-color:var(--accent)}.sentence-play-btn:disabled{cursor:default}.sentence-play-btn.playing{background:var(--accent);border-color:var(--accent)}@media (width<=768px){.header,.main{padding:20px}.article-content{font-size:16px}.chat-messages{padding:12px}.message{max-width:95%}.chat-input-area{gap:8px;padding:12px 16px}.chat-input{padding:10px 14px;font-size:14px}.send-btn{padding:10px 18px;font-size:13px}.mention-dropdown{left:16px;right:16px}.translation-tooltip{max-width:min(300px,100vw - 32px)}.layout-header{padding:10px 16px}.layout-header .nav-link{padding:6px 12px;font-size:14px}.welcome-features{gap:20px}.stats-container{padding:16px}}@media (width<=480px){.chat-messages{padding:8px}.chat-input-area{flex-direction:column;padding:10px 12px}.chat-input{min-height:40px;font-size:14px}.send-btn{align-self:stretch;padding:12px}.message{max-width:98%}.message-sender{font-size:11px}.msg-action-btn{padding:3px 8px;font-size:11px}.translation-tooltip{max-width:calc(100vw - 16px);left:50%!important}.layout-header .nav-link{padding:6px 8px;font-size:13px}.welcome-features{flex-direction:column;gap:16px;padding:0 16px}.feature-card{padding:16px}.review-header{flex-direction:column;gap:4px}.review-nav{flex-direction:column;gap:8px}.review-nav-btn{padding:10px}.rating-dialog{width:95%;padding:16px}.stats-summary{flex-direction:column;gap:8px}}.header-content{justify-content:space-between;align-items:center;max-width:900px;margin:0 auto;display:flex}.logo{color:var(--text-primary);letter-spacing:.05em;font-size:20px;font-weight:700;text-decoration:none}.nav{gap:24px;display:flex}.nav a{color:var(--text-secondary);font-size:14px;text-decoration:none;transition:color .2s}.nav a:hover,.nav a.active{color:var(--accent)}.back-link{color:var(--text-secondary);font-size:14px;text-decoration:none;transition:color .2s}.back-link:hover{color:var(--accent)}.page-title{color:var(--text-primary);margin-bottom:8px;font-size:24px;font-weight:600}.page-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:14px}.welcome-page{background:linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.welcome-content{text-align:center;z-index:1;position:relative}.welcome-title{color:var(--text-primary);letter-spacing:.08em;margin-bottom:12px;font-family:Noto Serif SC,SimSun,serif;font-size:42px;font-weight:700}.welcome-subtitle{color:var(--text-secondary);letter-spacing:.1em;margin-bottom:48px;font-size:18px}.welcome-features{justify-content:center;gap:40px;margin-bottom:48px;display:flex}.feature-item{color:var(--text-secondary);align-items:center;gap:8px;font-size:14px;display:flex}.feature-icon{font-size:20px}.welcome-btn{background:var(--accent);color:#fff;border-radius:8px;padding:14px 48px;font-size:16px;font-weight:500;text-decoration:none;transition:background .2s,transform .2s;display:inline-block}.welcome-btn:hover{background:var(--accent-hover);transform:translateY(-2px)}.welcome-decoration{pointer-events:none;position:absolute;inset:0}.deco-circle{opacity:.1;border-radius:50%;position:absolute}.deco-1{background:var(--accent);width:400px;height:400px;top:-100px;right:-100px}.deco-2{background:var(--esml-主);width:300px;height:300px;bottom:-50px;left:-50px}.deco-3{background:var(--esml-谓);width:200px;height:200px;top:50%;left:10%}.learn-page{max-width:900px;min-height:100vh;margin:0 auto;padding:80px 40px}.learn-title{color:var(--text-primary);margin-bottom:8px;font-size:32px;font-weight:600}.learn-subtitle{color:var(--text-secondary);margin-bottom:48px;font-size:16px}.module-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}.module-card{background:var(--bg-secondary);border:1px solid var(--border);color:inherit;border-radius:12px;padding:32px;text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;display:block}.module-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-4px)}.module-card.external{position:relative}.module-icon{margin-bottom:16px;font-size:36px}.module-card h2{color:var(--text-primary);margin-bottom:8px;font-size:20px;font-weight:600}.module-card p{color:var(--text-secondary);font-size:14px;line-height:1.6}.module-tag{background:var(--accent-bg);color:var(--accent);border-radius:4px;margin-top:16px;padding:4px 12px;font-size:12px;display:inline-block}.module-tag.external-tag{background:var(--bg-tertiary);color:var(--text-muted)}.chat-page{background:var(--bg-primary);flex-direction:column;min-height:100vh;display:flex}.chat-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:12px;display:flex}.header-nav{gap:8px;display:flex}.nav-link{color:var(--text-muted);border-radius:8px;padding:8px 16px;font-size:14px;text-decoration:none;transition:all .2s}.nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.nav-link.active{color:var(--accent);font-weight:500}.nav-link.disabled{opacity:.5;cursor:not-allowed}.nav-link.disabled:hover{color:var(--text-muted);background:0 0}.menu-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:20px;transition:background .2s}.menu-btn:hover{background:var(--bg-hover)}.chat-logo{color:var(--text-primary);letter-spacing:.05em;font-size:20px;font-weight:700}.chat-functions{gap:8px;display:flex}.func-tab{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:8px;padding:8px 16px;font-size:14px;transition:all .2s}.func-tab:hover{background:var(--bg-hover)}.func-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.chat-welcome{text-align:center;color:var(--text-secondary);padding:60px 20px}.chat-welcome h2{color:var(--text-primary);margin-bottom:8px;font-size:24px}.chat-welcome p{font-size:14px}.message{flex-direction:column;max-width:85%;display:flex}.message-sender{color:var(--text-muted);margin-bottom:4px;padding:0 4px;font-size:12px}.message-user .message-sender{text-align:right}.message-assistant .message-sender{text-align:left;color:var(--accent)}.message-user{align-self:flex-end}.message-assistant{align-self:flex-start}.message-content{border-radius:12px;padding:12px 16px;font-size:15px;line-height:1.6}.message-user .message-content{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.user-original-text{margin-bottom:8px;font-weight:500}.message-assistant .message-content{background:var(--bg-secondary);color:var(--text-primary);border-bottom-left-radius:4px}.message-loading{gap:4px;padding:16px 24px;display:flex}.message-loading-inline{vertical-align:middle;gap:4px;margin-left:8px;display:inline-flex}.message-loading-inline .loading-dot{width:6px;height:6px}.esml-overlay{background:#f8f0ff99;border:1px dashed #c8b4e666;border-radius:8px;margin-top:12px;padding:12px}.esml-overlay .sentence-line{color:var(--text-primary)}.esml-overlay .esml-content{background:0 0;border:none;margin:0;padding:0}.message-user .message-content .esml-overlay .word-btn,.message-user .message-content .esml-overlay .word-btn.word-主,.message-user .message-content .esml-overlay .word-btn.word-谓,.message-user .message-content .esml-overlay .word-btn.word-宾,.message-user .message-content .esml-overlay .word-btn.word-定,.message-user .message-content .esml-overlay .word-btn.word-状,.message-user .message-content .esml-overlay .word-btn.word-补,.message-user .message-content .esml-overlay .word-btn.word-同{color:var(--text-primary)}.message-actions{gap:8px;margin-top:8px;padding:0 4px;display:flex}.message-user .message-actions{justify-content:flex-end}.message-assistant .message-actions{justify-content:flex-start}.msg-action-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px;font-size:12px;transition:all .2s}.msg-action-btn:hover{background:var(--bg-hover);color:var(--text-secondary)}.chat-input-area{background:var(--bg-secondary);border-top:1px solid var(--border);gap:12px;padding:16px 24px;display:flex;position:relative}.mention-dropdown{background:var(--bg-primary);border:1px solid var(--border);z-index:100;border-radius:8px;max-height:200px;position:absolute;bottom:100%;left:24px;right:24px;overflow-y:auto;box-shadow:0 -4px 12px #00000026}.mention-item{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 14px;display:flex}.mention-item:last-child{border-bottom:none}.mention-item:hover{background:var(--bg-hover)}.mention-name{color:var(--accent);font-weight:600}.mention-desc{color:var(--text-muted);font-size:12px}.chat-input{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);resize:none;border-radius:8px;flex:1;min-height:44px;max-height:120px;padding:12px 16px;font-family:inherit;font-size:15px;line-height:1.5}.chat-input:focus{border-color:var(--accent);outline:none}.chat-input::placeholder{color:var(--text-muted)}.send-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-end;padding:10px 24px;font-size:14px;font-weight:500;transition:background .2s}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:disabled{opacity:.6;cursor:not-allowed}.esml-content{word-spacing:.05em;font-size:17px;line-height:2.4}.rating-dialog{background:var(--bg-primary);width:90%;max-width:400px;box-shadow:var(--shadow);border-radius:12px;padding:24px}.rating-dialog h3{color:var(--text-primary);margin-bottom:8px;font-size:16px}.rating-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;padding:12px 16px;transition:background .2s,border-color .2s;display:flex}.rating-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.rating-label{color:var(--text-primary);font-size:14px;font-weight:500}.rating-cancel{border:1px solid var(--border);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:10px;font-size:14px}.stats-container h3{color:var(--text-primary);margin-bottom:16px;font-size:18px}.stats-summary{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-bottom:24px;font-size:14px;display:flex}.stats-summary span{background:var(--bg-tertiary);border-radius:4px;padding:4px 12px}.stats-container h4{color:var(--text-secondary);margin-bottom:12px;font-size:14px}.stat-bars{flex-direction:column;gap:8px;display:flex}.stat-bar-item{align-items:center;gap:12px;display:flex}.stat-word{width:80px;color:var(--text-primary);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.stat-bar{background:var(--bg-tertiary);border-radius:4px;flex:1;height:16px;overflow:hidden}.stat-bar-fill{border-radius:4px;height:100%;transition:width .3s}.stat-rate{width:40px;color:var(--text-muted);font-size:12px}.review-hint{text-align:center;color:var(--text-muted);margin-top:16px;font-size:13px}.review-window{background:var(--bg-tertiary);border-radius:8px;margin-top:8px;padding:16px}.review-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.review-title{color:var(--text-primary);font-weight:600}.review-progress{color:var(--text-muted);font-size:13px}.review-content{margin-bottom:12px}.review-nav{justify-content:space-between;gap:12px;display:flex}.review-nav-btn{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:6px;flex:1;padding:8px 16px;font-size:14px;transition:background .2s,border-color .2s}.review-nav-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.review-nav-btn:disabled{opacity:.5;cursor:not-allowed}.app-layout{flex-direction:column;min-height:100vh;display:flex}.layout-menu-btn{cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:20px}.layout-menu-btn:hover{background:var(--bg-hover)}.layout-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.layout-header .header-nav{gap:8px;display:flex}.layout-header .nav-link{color:var(--text-muted);border-radius:6px;padding:8px 16px;font-size:15px;text-decoration:none;transition:all .2s}.layout-header .nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.layout-header .nav-link.active{color:var(--accent);font-weight:500}.layout-header .nav-link.disabled{opacity:.5;cursor:not-allowed}.layout-content{flex-direction:column;flex:1;display:flex}.header-balance{align-items:center;gap:8px;display:flex}.balance-badge{background:var(--accent-bg);color:var(--accent);border:1px solid var(--accent-border);border-radius:12px;padding:4px 10px;font-size:13px;font-weight:500}.balance-badge.balance-zero{color:#ef4444;background:#ef44441a;border-color:#ef444466}.balance-error-toast{color:#fff;z-index:200;cursor:pointer;background:#ef4444;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;animation:.3s slideDown;position:fixed;top:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.streaming-text{white-space:pre-wrap;word-break:break-word;color:var(--text);font-size:16px;line-height:1.6}.streaming-tail{white-space:pre-wrap;word-break:break-word;color:var(--text);background:var(--bg-secondary);border-radius:6px;margin-top:4px;padding:8px 12px;font-size:16px;line-height:1.6}.login-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-container{background:var(--bg-secondary);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:12px;padding:40px}.login-title{color:var(--text-primary);text-align:center;letter-spacing:.05em;margin-bottom:8px;font-size:20px;font-weight:700}.login-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:32px;font-size:14px}.login-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-primary);font-size:14px;font-weight:500}.form-group input{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:8px;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.form-group input::placeholder{color:var(--text-muted)}.form-hint{color:var(--text-muted);font-size:12px}.form-error{color:#dc2626;background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;padding:10px 14px;font-size:13px}.login-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px 24px;font-family:inherit;font-size:15px;font-weight:500;transition:background .2s}.login-btn:hover:not(:disabled){background:var(--accent-hover)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-switch{text-align:center;color:var(--text-secondary);margin-top:24px;font-size:14px}.login-switch button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-size:14px;font-weight:500}.login-switch button:hover{text-decoration:underline}.drawer-overlay{z-index:998;opacity:0;visibility:hidden;background:#0006;transition:opacity .2s,visibility .2s;position:fixed;inset:0}.drawer-overlay.open{opacity:1;visibility:visible}.session-drawer{background:var(--bg-secondary);border-right:1px solid var(--border);z-index:999;flex-direction:column;width:300px;height:100vh;transition:transform .3s;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.session-drawer.open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-header h2{color:var(--text-primary);font-size:16px;font-weight:600}.drawer-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:24px;line-height:1}.drawer-close:hover{color:var(--text-primary)}.drawer-user{background:var(--bg-tertiary);flex-direction:column;gap:2px;padding:12px 20px;display:flex}.user-label{color:var(--text-muted);font-size:11px}.user-name{color:var(--text-primary);font-size:14px;font-weight:500}.new-session-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:calc(100% - 40px);margin:12px 20px;padding:10px 16px;font-size:14px;font-weight:500;transition:background .2s}.new-session-btn:hover{background:var(--accent-hover)}.sessions-list{border-top:1px solid var(--border);flex:1;padding:8px 20px 16px;overflow-y:auto}.sessions-loading,.sessions-empty{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.session-item{border:1px solid var(--border);cursor:pointer;background:var(--bg-primary);border-radius:8px;justify-content:space-between;align-items:center;min-height:52px;margin-bottom:6px;padding:10px 12px;transition:background .2s,border-color .2s;display:flex}.session-item:hover{background:var(--bg-hover);border-color:var(--accent)}.session-item.active{background:var(--accent-bg);border-color:var(--accent)}.session-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.session-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;line-height:1.3;overflow:hidden}.session-date{color:var(--text-muted);flex-shrink:0;font-size:11px;line-height:1.2}.session-actions{opacity:0;gap:4px;transition:opacity .2s;display:flex}.session-item:hover .session-actions{opacity:1}.session-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:14px}.session-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.session-action-btn.delete:hover{color:#dc2626}.session-edit-input{border:1px solid var(--accent);background:var(--bg-primary);color:var(--text-primary);border-radius:6px;flex:1;padding:6px 10px;font-family:inherit;font-size:14px}.session-edit-input:focus{outline:none}.drawer-footer{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:16px 20px;display:flex}.settings-btn,.logout-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:6px;padding:10px 16px;font-family:inherit;font-size:13px;transition:background .2s,border-color .2s}.settings-btn:hover,.logout-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.logout-btn{color:#dc2626;border-color:#dc26264d}.logout-btn:hover{background:#dc26261a;border-color:#dc2626}.settings-content{flex-direction:column;flex:1;gap:20px;padding:20px;display:flex}.settings-form{flex-direction:column;gap:16px;display:flex}.settings-form .form-group{flex-direction:column;gap:6px;display:flex}.settings-form label{color:var(--text-primary);font-size:14px;font-weight:500}.settings-form input{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:10px 12px;font-family:inherit;font-size:14px}.settings-form input:focus{border-color:var(--accent);outline:none}.settings-form .form-hint{color:var(--text-muted);font-size:12px}.settings-msg{background:var(--accent-bg);color:var(--accent);border-radius:6px;padding:8px 12px;font-size:13px}.settings-submit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px 16px;font-family:inherit;font-size:14px;transition:background .2s}.settings-submit-btn:hover:not(:disabled){background:var(--accent-hover)}.settings-submit-btn:disabled{opacity:.5;cursor:not-allowed}.back-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:10px 16px;font-family:inherit;font-size:13px;transition:background .2s}.back-btn:hover{background:var(--bg-hover)}@media (width<=768px){.session-drawer{width:85vw;max-width:300px}}@media (width<=480px){.session-drawer{width:100vw;max-width:100vw}.drawer-header{padding:14px 16px}.drawer-user{padding:10px 16px}.new-session-btn{width:calc(100% - 32px);margin:10px 16px}.sessions-list{padding:8px 16px 16px}.drawer-footer{padding:12px 16px}.settings-content{padding:16px}}.dashboard-page{flex-direction:column;min-height:100vh;display:flex}.dashboard-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.dashboard-header-left{flex:1}.dashboard-nav-links{gap:24px;display:flex}.dashboard-nav-links .nav-link{color:var(--text-muted);border-radius:6px;padding:6px 12px;font-size:15px;text-decoration:none;transition:all .2s}.dashboard-nav-links .nav-link:hover{color:var(--text-primary);background:var(--bg-hover)}.dashboard-nav-links .nav-link.active{color:var(--accent);font-weight:500}.dashboard-nav-links .nav-link.disabled{opacity:.5;cursor:not-allowed}.dashboard-nav-links .nav-link.disabled:hover{color:var(--text-muted);background:0 0}.dashboard-body{flex:1;display:flex}.dashboard-loading{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:16px;display:flex}.dashboard-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);flex-shrink:0;width:240px;padding:24px 16px}.dashboard-sidebar h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 20px 8px;font-size:14px;font-weight:600}.dashboard-nav{flex-direction:column;gap:4px;display:flex}.dashboard-nav-item{width:100%;color:var(--text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;padding:12px 16px;font-size:15px;transition:all .2s}.dashboard-nav-item:hover{background:var(--bg-hover)}.dashboard-nav-item.active{background:var(--accent);color:#fff}.dashboard-main{flex:1;max-width:800px;padding:32px 40px}.dashboard-section-header{margin-bottom:28px}.dashboard-section-header h2{color:var(--text-primary);margin:0 0 8px;font-size:24px}.dashboard-section-desc{color:var(--text-muted);margin:0;font-size:14px}.dashboard-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:28px;padding-bottom:1px;display:flex}.dashboard-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:12px 20px;font-size:14px;transition:all .2s}.dashboard-tab:hover{color:var(--text-primary)}.dashboard-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.dashboard-content{animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.setting-group{margin-bottom:32px}.setting-label{color:var(--text-primary);margin-bottom:6px;font-size:16px;font-weight:600;display:block}.setting-desc{color:var(--text-muted);margin:0 0 16px;font-size:13px}.setting-options{flex-wrap:wrap;gap:10px;display:flex}.setting-option{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:10px;min-width:120px;padding:12px 20px;font-size:14px;transition:all .2s}.setting-option:hover{border-color:var(--accent);background:var(--bg-hover)}.setting-option.selected{background:var(--accent);border-color:var(--accent);color:#fff}.setting-option:disabled{opacity:.6;cursor:not-allowed}.setting-row{justify-content:space-between;align-items:center;gap:24px;display:flex}.setting-row>div:first-child{flex:1}.toggle-btn{cursor:pointer;white-space:nowrap;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);border-radius:8px;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s}.toggle-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.toggle-btn:hover:not(:disabled){border-color:var(--accent)}.toggle-btn:disabled{opacity:.6;cursor:not-allowed}.dashboard-message{background:var(--accent);color:#fff;border-radius:8px;padding:12px 24px;font-size:14px;animation:.3s slideUp;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media (width<=768px){.dashboard-body{flex-direction:column}.dashboard-sidebar{border-right:none;border-bottom:1px solid var(--border);flex-shrink:1;width:100%;padding:16px}.dashboard-nav{flex-flow:wrap}.dashboard-nav-item{flex:1;min-width:100px;padding:10px 12px;font-size:14px}.dashboard-main{max-width:100%;padding:20px 16px}.dashboard-section-header h2{font-size:20px}.dashboard-tab{padding:10px 14px;font-size:13px}.setting-option{min-width:100px;padding:10px 14px;font-size:13px}.setting-row{flex-direction:column;align-items:flex-start;gap:12px}.toggle-btn{align-self:flex-start}}@media (width<=480px){.dashboard-sidebar{padding:12px 8px}.dashboard-nav-item{padding:8px 10px;font-size:13px}.dashboard-main{padding:16px 12px}.setting-group{margin-bottom:24px}.setting-label{font-size:14px}.setting-desc{font-size:12px}.setting-option{min-width:90px;padding:8px 12px;font-size:12px}.agents-list-dashboard{flex-direction:column;gap:12px;display:flex}.agent-card-dashboard{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:16px 20px;transition:all .2s;display:flex}.agent-card-dashboard:hover{border-color:var(--accent)}.agent-card-info{flex:1}.agent-card-name{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:600}.agent-card-desc{color:var(--text-muted);margin-bottom:4px;font-size:13px}.agent-card-model{color:var(--text-muted);opacity:.7;font-size:12px}.agent-remove-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#ef4444;border:none;border-radius:6px;padding:8px 16px;font-size:13px;transition:all .2s}.agent-remove-btn:hover{background:#dc2626}}.agent-edit-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:24px}.agent-edit-form h3{color:var(--text-primary);margin:0 0 20px;font-size:18px}.agent-edit-form .form-group{margin-bottom:16px}.agent-edit-form .form-group label{color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.agent-edit-form .form-group input,.agent-edit-form .form-group textarea,.agent-edit-form .form-group select{background:var(--bg-primary);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px}.agent-edit-form .form-group textarea{resize:vertical;min-height:120px}.agent-edit-form .form-group input:focus,.agent-edit-form .form-group textarea:focus,.agent-edit-form .form-group select:focus{border-color:var(--accent);outline:none}.agent-edit-form .form-actions{gap:12px;margin-top:20px;display:flex}.agent-edit-form .form-actions button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:500;transition:all .2s}.agent-edit-form .form-actions button:hover{opacity:.85}.agent-card-dashboard{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px;transition:all .2s;display:flex}.agent-card-dashboard:hover{border-color:var(--accent)}.agent-card-info{flex:1}.agent-card-name{color:var(--text-primary);font-size:15px;font-weight:600}.agent-card-desc{color:var(--text-muted);margin-top:2px;font-size:13px}.agent-card-model{color:var(--accent);margin-top:4px;font-size:12px}.agent-card-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.agent-card-tag{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.agent-card-tag.tag-public{color:#10b981;background:#10b9811a}.agent-card-tag.tag-private{color:#6b7280;background:#6b72801a}.agent-card-tag.tag-english{color:#3b82f6;background:#3b82f61a}.agent-card-tag.tag-esml{color:var(--accent);background:#aa3bff1a}.agent-card-actions{flex-shrink:0;gap:8px;display:flex}.agent-edit-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:13px;transition:all .2s}.agent-edit-btn:hover{opacity:.85}.custom-model-form{flex-direction:column;gap:10px;margin-top:10px;display:flex}.custom-model-form input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:8px;padding:10px 14px;font-size:15px}.custom-model-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.custom-model-item{border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.custom-model-info{flex-direction:column;gap:2px;display:flex}.custom-model-name{color:var(--text-h);font-weight:500}.custom-model-meta{color:var(--text);opacity:.7;font-size:12px}.custom-model-item button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.community-page{max-width:800px;margin:0 auto;padding:24px;position:relative}:root{--esml-主:#c94d7c;--esml-谓:#4a7dc9;--esml-宾:#2e9e6e;--esml-定:#c9913d;--esml-状:#7c5cbf;--esml-补:#c96a3d;--esml-同:#3d9ec9}.community-loading{height:200px;color:var(--text-muted);justify-content:center;align-items:center;display:flex}.community-tabs{border-bottom:1px solid var(--border);gap:8px;margin-bottom:24px;padding-bottom:1px;display:flex}.community-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:12px 20px;font-size:15px;transition:all .2s}.community-tab:hover{color:var(--text-primary)}.community-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.post-list{flex-direction:column;gap:16px;display:flex}.post-card{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:16px;transition:all .2s}.post-card:hover{border-color:var(--accent);transform:translateY(-1px)}.post-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.post-avatar{background:var(--accent-bg);width:40px;height:40px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.post-author-info{flex:1}.post-author-name{color:var(--text-primary);font-size:14px;font-weight:500}.post-time{color:var(--text-muted);font-size:12px}.post-content{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.6}.post-preview{color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;max-height:4.5em;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.post-preview-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.post-preview-more{color:var(--text-muted)}.post-actions{border-top:1px solid var(--border);gap:16px;margin-top:12px;padding-top:12px;display:flex}.post-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:14px;transition:all .2s;display:flex}.post-action-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.post-action-btn.liked{color:#ef4444}.post-action-btn.liked:hover{background:#ef44441a}.create-post-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:28px;transition:all .2s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 12px #aa3bff4d}.create-post-btn:hover{transform:scale(1.1);box-shadow:0 6px 16px #aa3bff66}.post-detail-page{max-width:800px;margin:0 auto;padding:24px}.back-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin-bottom:16px;padding:8px 0;font-size:14px;display:flex}.back-btn:hover{color:var(--accent)}.post-detail-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:20px}.post-detail-actions{border-top:1px solid var(--border);gap:16px;margin-top:16px;padding-top:16px;display:flex}.comments-section{margin-top:24px}.comments-header{color:var(--text-primary);margin-bottom:16px;font-size:16px;font-weight:500}.comment-item{border-bottom:1px solid var(--border);gap:12px;padding:12px 0;display:flex}.comment-avatar{background:var(--accent-bg);width:32px;height:32px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.comment-body{flex:1}.comment-author{color:var(--text-primary);font-size:14px;font-weight:500}.comment-content{color:var(--text);margin-top:4px;font-size:14px}.comment-time{color:var(--text-muted);margin-top:4px;font-size:12px}.comment-form{gap:12px;margin-top:16px;display:flex}.comment-input{border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);resize:none;border-radius:8px;flex:1;min-height:60px;padding:12px;font-size:14px}.comment-input:focus{border-color:var(--accent);outline:none}.comment-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-self:flex-end;padding:12px 20px;font-size:14px}.comment-submit:hover{opacity:.9}.comment-submit:disabled{opacity:.5;cursor:not-allowed}.community-page{width:100%;max-width:100%;padding:24px}.create-post-page{width:100%;max-width:100%}.create-post-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.create-post-title{color:var(--text-primary);font-size:20px;font-weight:500}.create-post-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:20px}.create-post-textarea{border:1px solid var(--border);background:var(--bg-secondary);width:100%;min-height:500px;color:var(--text-primary);font-size:15px;font-family:var(--mono);resize:vertical;border-radius:8px;padding:16px;line-height:1.6}.create-post-textarea:focus{border-color:var(--accent);outline:none}.create-post-hint{color:var(--text-muted);margin-top:8px;font-size:12px}.create-post-actions{justify-content:flex-end;gap:12px;margin-top:16px;display:flex}.btn-cancel{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:10px 20px;font-size:14px}.btn-cancel:hover{background:var(--bg-hover)}.btn-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px}.btn-submit:hover{opacity:.9}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.agents-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.agent-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:16px;transition:all .2s}.agent-card:hover{border-color:var(--accent);transform:translateY(-2px)}.agent-avatar{background:var(--accent-bg);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:12px;font-size:24px;display:flex}.agent-name{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:500}.agent-author{color:var(--text-muted);margin-bottom:8px;font-size:12px}.agent-description{color:var(--text);margin-bottom:12px;font-size:14px}.agent-model{color:var(--accent);background:var(--accent-bg);border-radius:4px;padding:4px 8px;font-size:12px;display:inline-block}.agent-use-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:12px;padding:8px;font-size:14px;font-weight:500;transition:all .2s}.agent-use-btn:hover{opacity:.85;transform:translateY(-1px)}.agent-badge{background:var(--accent-bg);color:var(--accent);border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.agent-tags{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.agent-tag{background:var(--accent-bg);color:var(--accent);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.agent-delete-btn{cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:12px;padding:8px;font-size:14px;font-weight:500;transition:all .2s}.agent-delete-btn:hover{opacity:.85;transform:translateY(-1px)}.create-agent-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;max-width:600px;margin:0 auto;padding:24px}.create-agent-form .form-group{margin-bottom:16px}.create-agent-form label{color:var(--text-primary);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.create-agent-form input,.create-agent-form textarea,.create-agent-form select{border:1px solid var(--border);background:var(--bg-tertiary,#f5f5f5);width:100%;color:var(--text-primary);border-radius:8px;padding:10px 12px;font-family:inherit;font-size:14px}.create-agent-form textarea{resize:vertical;min-height:120px}.create-agent-form .form-actions{gap:12px;margin-top:20px;display:flex}.create-agent-form .form-actions button{cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:500}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px}.empty-state-icon{margin-bottom:16px;font-size:48px}.empty-state-text{font-size:16px}.loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.esml-code-block{background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);border-radius:8px;margin:12px 0;padding:16px;font-size:14px;line-height:1.6;overflow-x:auto}.markdown-content{line-height:1.7}.markdown-content p{margin:12px 0}.markdown-content code{background:var(--code-bg);font-family:var(--mono);border-radius:4px;padding:2px 6px;font-size:.9em}.markdown-content pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:16px;overflow-x:auto}.markdown-content pre code{background:0 0;padding:0}.markdown-content blockquote{border-left:3px solid var(--accent);color:var(--text-muted);margin:12px 0;padding-left:16px}.md-h1{color:var(--text-primary);border-bottom:2px solid var(--border);margin:16px 0 8px;padding-bottom:6px;font-size:24px;font-weight:600}.md-h2{color:var(--text-primary);margin:14px 0 6px;font-size:20px;font-weight:600}.md-h3{color:var(--text-primary);margin:12px 0 6px;font-size:17px;font-weight:600}.md-paragraph{margin:6px 0;line-height:1.65}.md-blockquote{border-left:3px solid var(--accent);background:var(--bg-tertiary,#00000008);color:var(--text-secondary);border-radius:0 4px 4px 0;margin:8px 0;padding:8px 12px}.md-inline-code{background:var(--code-bg);font-family:var(--mono);border-radius:4px;padding:2px 6px;font-size:.9em}.md-list-item{margin:8px 0 8px 24px;list-style:outside}.esml-content{word-spacing:.05em;color:var(--text-primary);background:0 0;border:none;margin:0;padding:0;font-size:17px;line-height:2.4}.markdown-content .esml-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin:12px 0;padding:12px 16px}.sentence-block{margin-bottom:16px;display:block}.sentence-block:last-child{margin-bottom:0}.sentence-line{text-indent:-20px;padding-left:20px;display:block}.sentence-marker{color:var(--text-muted);margin-right:4px;font-family:SF Mono,Fira Code,monospace;font-size:11px}.translation-line{color:var(--text-muted);margin-top:4px;padding-left:20px;font-size:13px;font-style:italic;display:block}.word-btn{font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:3px;margin:0;padding:2px 4px;font-family:inherit;transition:background .15s,color .15s;display:inline}.word-btn:hover{background:var(--accent-bg);color:var(--accent)}.word-btn.word-主{background:#c94d7c26}.word-btn.word-谓{background:#4a7dc926}.word-btn.word-宾{background:#2e9e6e26}.word-btn.word-定{background:#c9913d26}.word-btn.word-状{background:#7c5cbf26}.word-btn.word-补{background:#c96a3d26}.word-btn.word-同{background:#3d9ec926}.esml-bracket{color:#8b7b66;font-family:SF Mono,Fira Code,monospace;font-size:15px}.esml-type{color:#fff;border-radius:3px;padding:1px 4px;font-family:inherit;font-size:15px;font-weight:600}.esml-type.esml-主{background:var(--esml-主)}.esml-type.esml-谓{background:var(--esml-谓)}.esml-type.esml-宾{background:var(--esml-宾)}.esml-type.esml-定{background:var(--esml-定)}.esml-type.esml-状{background:var(--esml-状)}.esml-type.esml-补{background:var(--esml-补)}.esml-type.esml-同{background:var(--esml-同)}.esml-colon{color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;font-size:15px}.esml-clause-bracket{color:var(--accent);opacity:.6;font-family:SF Mono,Fira Code,monospace;font-size:14px}.esml-clause-type{border-radius:3px;padding:1px 3px;font-family:inherit;font-size:13px;font-weight:600}.esml-clause-type.esml-主{background:var(--esml-主);color:#fff}.esml-clause-type.esml-谓{background:var(--esml-谓);color:#fff}.esml-clause-type.esml-宾{background:var(--esml-宾);color:#fff}.esml-clause-type.esml-定{background:var(--esml-定);color:#fff}.esml-clause-type.esml-状{background:var(--esml-状);color:#fff}.esml-clause-type.esml-补{background:var(--esml-补);color:#fff}.esml-clause-type.esml-同{background:var(--esml-同);color:#fff}.esml-annotation{color:#f59e0b;font-size:.9em;font-style:italic}.sentence-fav-btn{cursor:pointer;opacity:.6;vertical-align:middle;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;margin-right:4px;font-size:12px;transition:opacity .2s,transform .2s;display:inline-flex}.sentence-fav-btn:hover{opacity:1;transform:scale(1.2)}.sentence-fav-btn.favorited{opacity:1}.sentence-play-btn{cursor:pointer;opacity:.6;vertical-align:middle;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;margin-right:4px;font-size:12px;transition:opacity .2s,transform .2s;display:inline-flex}.sentence-play-btn:hover,.sentence-play-btn.playing{opacity:1}.word-btn.memorized{font-weight:600}.word-btn.word-主.memorized{color:var(--esml-主)}.word-btn.word-谓.memorized{color:var(--esml-谓)}.word-btn.word-宾.memorized{color:var(--esml-宾)}.word-btn.word-定.memorized{color:var(--esml-定)}.word-btn.word-状.memorized{color:var(--esml-状)}.word-btn.word-补.memorized{color:var(--esml-补)}.word-btn.word-同.memorized{color:var(--esml-同)}@keyframes community-loading-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.community-rating-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.community-rating-dialog{background:var(--bg-primary);width:90%;max-width:400px;box-shadow:var(--shadow);border-radius:12px;padding:24px}.community-rating-dialog h3{color:var(--text-primary);margin-bottom:8px;font-size:16px}.community-rating-hint{color:var(--text-muted);margin-bottom:16px;font-size:13px}.community-rating-options{flex-direction:column;gap:8px;display:flex}.community-rating-btn{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .2s;display:flex}.community-rating-btn:hover{background:var(--accent-bg);border-color:var(--accent)}.community-rating-label{color:var(--text-primary);font-weight:500}.community-rating-desc{color:var(--text-muted);font-size:12px}.community-rating-cancel{background:var(--bg-secondary);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;margin-top:16px;padding:12px;transition:all .2s}.community-rating-cancel:hover{background:var(--bg-hover)}@media (width<=768px){.community-page{padding:16px}.agents-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.create-post-textarea{min-height:300px}.post-detail-page{padding:0}.create-agent-form{max-width:100%;padding:16px}.translation-tooltip{max-width:280px}}@media (width<=480px){.community-page{padding:12px}.community-tabs{gap:4px}.community-tab{padding:10px 14px;font-size:14px}.post-card{padding:12px}.post-header{gap:8px}.post-avatar{width:32px;height:32px;font-size:14px}.post-actions{gap:8px}.post-action-btn{padding:4px 6px;font-size:13px}.agents-grid{grid-template-columns:1fr}.agent-card{padding:12px}.create-post-textarea{min-height:200px;font-size:14px}.create-post-page{padding:12px}.comment-form{flex-direction:column}.comment-submit{align-self:stretch}.community-rating-dialog{width:95%}}.memory-page{background:var(--bg-primary);min-height:100vh}.memory-loading{height:60vh;color:var(--text-secondary);justify-content:center;align-items:center;font-size:1.1rem;display:flex}.pulse{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.memory-inner{flex-direction:column;gap:1.25rem;max-width:960px;margin:0 auto;padding:1.5rem;display:flex}.overview{background:var(--bg-secondary);border-radius:18px;flex-direction:row;align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.overview-score{flex-shrink:0;width:160px;height:160px;position:relative}.gauge-svg{width:100%;height:100%}.gauge-arc{transform-origin:60px 60px;transition:stroke-dashoffset 1.2s cubic-bezier(.34,1.56,.64,1);animation:1.2s cubic-bezier(.34,1.56,.64,1) forwards gaugeSpin;transform:rotate(-90deg)}@keyframes gaugeSpin{0%{transform:rotate(-450deg)}to{transform:rotate(-90deg)}}.gauge-label{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gauge-number{color:var(--text-primary);font-size:2.8rem;font-weight:800;line-height:1;display:block}.gauge-text{color:var(--text-secondary);font-size:.8rem}.overview-stats{flex-direction:column;flex:1;gap:.75rem;display:flex}.dist-bar{background:var(--bg-tertiary);border-radius:4px;height:8px;display:flex;overflow:hidden}.dist-seg{height:100%;transition:width .5s}.stat-chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{background:var(--bg-primary);border-radius:6px;padding:.2rem .5rem;font-size:.8rem}.chip b{margin-left:.15rem}.suggestion{color:var(--text-secondary);font-size:.85rem;line-height:1.4}.panel-tabs{background:var(--bg-secondary);border-radius:12px;gap:.4rem;padding:.3rem;display:flex}.ptab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:.55rem .75rem;font-size:.85rem;font-weight:500;transition:all .2s}.ptab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.ptab.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px var(--accent-alpha)}.panel{background:var(--bg-secondary);border-radius:18px;min-height:240px;padding:1.25rem}.empty{text-align:center;color:var(--text-secondary);padding:3rem 1rem;font-size:.95rem}.carousel{scrollbar-width:thin;scrollbar-color:var(--bg-tertiary) transparent;-webkit-overflow-scrolling:touch;gap:.5rem;padding-bottom:.5rem;display:flex;overflow:auto visible}.carousel::-webkit-scrollbar{height:5px}.carousel::-webkit-scrollbar-track{background:0 0}.carousel::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:3px}.bar-col{background:var(--bg-primary);cursor:pointer;border:1px solid var(--bg-tertiary);-webkit-user-select:none;user-select:none;border-radius:10px;flex-direction:column;flex-shrink:0;align-items:center;min-width:60px;max-width:60px;padding:.5rem .35rem .45rem;transition:transform .15s,box-shadow .15s;display:flex}.bar-col:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0000001f}.bar-col.reviewing{opacity:.4;pointer-events:none}.session-bar{min-width:110px;max-width:130px}.sentence-bar{min-width:70px;max-width:none}.sentence-bar.expanded{min-width:320px;max-width:400px}.bar-label{color:var(--text-primary);text-align:center;word-break:break-all;-webkit-line-clamp:2;-webkit-box-orient:vertical;-webkit-box-pack:center;max-width:100%;height:28px;margin-bottom:.1rem;font-size:.65rem;font-weight:600;line-height:1.15;display:-webkit-box;overflow:hidden}.session-label{font-size:.72rem}.bar-meta{color:var(--text-secondary);margin-bottom:.25rem;font-size:.6rem}.bar-track{background:var(--bg-tertiary);border-radius:5px;flex-direction:column;justify-content:flex-end;width:100%;height:80px;margin:.15rem 0;display:flex;position:relative;overflow:hidden}.bar-track.tall{height:140px}.bar-fill{transform-origin:bottom;border-radius:5px 5px 0 0;width:100%;animation:.55s cubic-bezier(.34,1.56,.64,1) forwards barGrow;position:relative;box-shadow:inset 0 5px 8px -3px #ffffff1a}.bar-fill .wave-layer{pointer-events:none;opacity:0;width:100%;animation:.4s .5s forwards waveFadeIn;position:absolute;left:0}.bar-fill .wave-layer-1{background:repeating-radial-gradient(18px 5px at 18px 5px,#ffffff38 0% 35%,#0000 65%) 0 0/36px 10px;height:10px;animation:.4s .5s forwards waveFadeIn,2.5s linear infinite waveSlide1;top:-5px}.bar-fill .wave-layer-2{background:repeating-radial-gradient(12px 4px at 12px 4px,#ffffff24 0% 35%,#0000 65%) 0 0/24px 8px;height:8px;animation:.4s .5s forwards waveFadeIn,3.5s linear infinite waveSlide2;top:-3px}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes waveSlide1{0%{background-position-x:0}to{background-position-x:36px}}@keyframes waveSlide2{0%{background-position-x:0}to{background-position-x:24px}}@keyframes waveFadeIn{0%{opacity:0}to{opacity:1}}.bar-value{text-align:center;margin-top:.1rem;font-size:.65rem;font-weight:700}.bar-tags{flex-wrap:wrap;justify-content:center;gap:.15rem;margin-top:.15rem;display:flex}.bar-tag{border-radius:3px;padding:.08rem .25rem;font-size:.55rem;font-weight:500}.sentence-expand{border-top:1px solid var(--bg-tertiary);max-height:200px;margin-top:.4rem;padding-top:.4rem;overflow-y:auto}.sentence-esml-view{font-size:.8rem;line-height:1.7}.sentence-esml-inner{font-size:.8rem}.sentence-expand-meta{color:var(--text-secondary);margin-top:.3rem;font-size:.65rem}.review-overlay{z-index:1000;background:#0000008c;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.review-panel{background:var(--bg-secondary,#1e1e2e);border-radius:20px;width:90vw;max-width:520px;max-height:85vh;padding:1.5rem;animation:.2s scaleIn;overflow-y:auto;box-shadow:0 20px 60px #0006}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.review-header{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.review-word{letter-spacing:-.02em;font-size:1.6rem;font-weight:800}.review-retention{color:var(--text-secondary);flex:1;font-size:.85rem}.review-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;margin-left:auto;padding:.2rem .4rem;font-size:1.2rem;line-height:1;transition:background .15s}.review-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.review-context{background:var(--bg-primary);border-radius:12px;margin-bottom:1rem;padding:1rem}.review-context-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem}.review-esml{font-size:.9rem;line-height:1.8}.review-no-context{color:var(--text-secondary);text-align:center;margin-bottom:1rem;padding:1rem;font-size:.85rem}.translation-tooltip{background:var(--text-primary);color:var(--bg-primary);box-shadow:var(--shadow);z-index:10000;pointer-events:auto;border-radius:6px;max-width:300px;padding:10px 14px;position:fixed;transform:translate(-50%,-110%)}.translation-tooltip:after{content:"";border:6px solid #0000;border-top-color:var(--text-primary);position:absolute;top:100%;left:50%;transform:translate(-50%)}.tooltip-loading{justify-content:center;align-items:center;gap:4px;padding:8px 0;display:flex}.loading-dot{background:var(--bg-primary);border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite both loading-bounce}.loading-dot:first-child{animation-delay:-.32s}.loading-dot:nth-child(2){animation-delay:-.16s}.tooltip-content{text-align:left;flex-direction:column;gap:4px;display:flex}.tooltip-header{justify-content:space-between;align-items:flex-start;margin-bottom:4px;display:flex}.tooltip-header .tooltip-word{color:var(--bg-primary);font-size:22px;font-weight:600;line-height:1.2}.tooltip-actions{flex-shrink:0;gap:6px;display:flex}.tooltip-action-btn{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px;font-size:16px;transition:background .2s}.tooltip-action-btn:hover{background:#fff3}.translation-tooltip .tooltip-phonetic{color:#faf7f2b3;text-align:left;margin-bottom:4px;font-size:13px}.tooltip-definitions{text-align:left;flex-direction:column;gap:2px;display:flex}.tooltip-def-item{color:var(--bg-primary);text-align:left;font-size:13px;line-height:1.4}.tooltip-def-wrapper{flex-direction:column;gap:2px;display:flex}.tooltip-def-item.truncated{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;max-height:4.2em;display:-webkit-box;overflow:hidden}.def-expand-btn{color:#faf7f280;cursor:pointer;text-align:left;padding:2px 0;font-size:11px;transition:color .2s}.def-expand-btn:hover{color:#faf7f2cc}.def-pos{color:#faf7f299;margin-right:6px;font-size:12px}.def-tran{color:var(--bg-primary)}.tooltip-review{border-top:1px solid #fff3;margin-top:8px;padding-top:8px}.tooltip-review-retention{margin-bottom:8px;font-size:14px;font-weight:500}.review-buttons{gap:6px;display:flex}.review-option-btn{color:var(--bg-primary);cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:4px;flex:1;padding:6px 8px;font-size:12px;transition:background .2s,border-color .2s}.review-option-btn:hover{background:#ffffff40;border-color:#ffffff80}.tooltip-exam-types{color:#faf7f280;text-align:left;border-top:1px solid #ffffff26;margin-top:8px;padding-top:6px;font-size:11px}.review-rating-section{border-top:1px solid var(--bg-tertiary);padding-top:1rem}.review-rating-title{color:var(--text-primary);margin-bottom:.6rem;font-size:.85rem;font-weight:600}.review-rating-grid{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.review-rating-btn{border:1px solid var(--bg-tertiary);background:var(--bg-primary);cursor:pointer;color:var(--text-primary);border-radius:10px;flex-direction:column;align-items:center;gap:.1rem;padding:.5rem .4rem;transition:all .15s;display:flex}.review-rating-btn:hover:not(:disabled){border-color:var(--accent);background:rgba(var(--accent-rgb,99,102,241), .08)}.review-rating-btn:disabled{opacity:.5;cursor:not-allowed}.rrb-label{font-size:.78rem;font-weight:600}.rrb-desc{color:var(--text-secondary);font-size:.6rem}.rating-overlay{z-index:1001;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rating-dialog{background:var(--bg-secondary,#1e1e2e);border-radius:16px;width:340px;padding:1.5rem;box-shadow:0 20px 60px #0006}.rating-dialog h3{color:var(--text-primary);margin:0 0 .5rem;font-size:1.1rem}.rating-hint{color:var(--text-secondary);margin-bottom:1rem;font-size:.82rem}.rating-options{flex-direction:column;gap:.4rem;margin-bottom:.75rem;display:flex}.rating-btn{border:1px solid var(--bg-tertiary);background:var(--bg-primary);cursor:pointer;color:var(--text-primary);border-radius:8px;justify-content:space-between;align-items:center;padding:.55rem .75rem;transition:all .15s;display:flex}.rating-btn:hover:not(:disabled){border-color:var(--accent)}.rating-btn:disabled{opacity:.5;cursor:not-allowed}.rating-label{font-size:.9rem;font-weight:600}.rating-desc{color:var(--text-secondary);font-size:.75rem}.rating-cancel{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.5rem;font-size:.85rem;transition:background .15s}.rating-cancel:hover{background:var(--bg-tertiary)}.word-detail-panel{background:var(--bg-secondary,#1e1e2e);border-radius:20px;width:90vw;max-width:440px;max-height:85vh;padding:1.5rem;animation:.2s scaleIn;overflow-y:auto;box-shadow:0 20px 60px #0006}.wd-header{flex-wrap:wrap;align-items:baseline;gap:.5rem;margin-bottom:1rem;display:flex}.wd-word{color:var(--text-primary);letter-spacing:-.02em;font-size:1.8rem;font-weight:800}.wd-retention{flex:1;font-size:.9rem;font-weight:600}.wd-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;margin-left:auto;padding:.2rem .4rem;font-size:1.2rem;line-height:1;transition:background .15s}.wd-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.wd-actions{gap:.5rem;margin-bottom:.75rem;display:flex}.wd-action-btn{border:1px solid var(--bg-tertiary);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:8px;align-items:center;gap:.3rem;padding:.4rem .7rem;font-size:.8rem;transition:all .15s;display:flex}.wd-action-btn:hover{border-color:var(--accent)}.wd-phonetic{color:var(--text-secondary);margin-bottom:.75rem;font-size:.85rem}.wd-definitions{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.wd-def-item{gap:.5rem;font-size:.88rem;line-height:1.5;display:flex}.wd-pos{color:var(--accent);flex-shrink:0;min-width:2.2rem;font-weight:600}.wd-tran{color:var(--text-primary)}.wd-empty{color:var(--text-secondary);text-align:center;padding:.5rem 0;font-size:.85rem}.wd-exams{flex-wrap:wrap;gap:.3rem;margin-bottom:1rem;display:flex}.wd-exam{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px;padding:.15rem .4rem;font-size:.7rem}.wd-review-section{border-top:1px solid var(--bg-tertiary);padding-top:1rem}.wd-review-title{color:var(--text-primary);margin-bottom:.6rem;font-size:.85rem;font-weight:600}.wd-review-buttons{gap:.4rem;display:flex}.wd-review-btn{border:1px solid var(--bg-tertiary);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:8px;flex:1;padding:.5rem .3rem;font-size:.8rem;transition:all .15s}.wd-review-btn:hover{border-color:var(--accent);background:rgba(var(--accent-rgb,99,102,241), .08)}.review-rating-btn.wide{grid-column:1/-1}.fade-in{animation:.3s fadeIn}.slide-in{animation:.2s slideIn}@keyframes slideIn{0%{opacity:0}to{opacity:1}}@media (width<=768px){.memory-inner{padding:1rem}.overview{flex-direction:column;align-items:center;gap:1rem;padding:1.25rem}.overview-stats{width:100%}.overview-score{width:100px;height:100px}.gauge-number{font-size:1.6rem}.ptab{padding:.45rem .5rem;font-size:.8rem}.bar-col{min-width:50px;max-width:50px}.session-bar{min-width:100px;max-width:120px}.bar-track{height:60px}.bar-track.tall{height:100px}.review-panel{width:95vw;padding:1rem}.review-rating-grid{grid-template-columns:1fr}}.admin-page{max-width:1200px;margin:0 auto;padding:24px}.admin-login-card{border:1px solid var(--border);background:var(--bg-secondary);border-radius:12px;max-width:360px;margin:60px auto;padding:32px}.admin-login-card h2{text-align:center;margin-bottom:20px}.admin-form{flex-direction:column;gap:12px;display:flex}.admin-form input{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);border-radius:8px;padding:10px 14px;font-size:15px}.admin-error{color:#ef4444;font-size:13px}.admin-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px;font-size:15px}.admin-header{margin-bottom:24px}.admin-header h2{margin-bottom:16px}.admin-stats{flex-wrap:wrap;gap:16px;display:flex}.admin-stat-card{border:1px solid var(--border);background:var(--bg-secondary);text-align:center;border-radius:10px;flex:1;min-width:140px;padding:16px}.admin-stat-value{color:var(--text-h);font-size:22px;font-weight:600}.admin-stat-label{color:var(--text);margin-top:4px;font-size:13px}.admin-tabs{border-bottom:1px solid var(--border);gap:8px;margin-bottom:20px;display:flex}.admin-tab{color:var(--text);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:15px}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.admin-loading{text-align:center;color:var(--text);padding:40px}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.admin-table th{color:var(--text-h);background:var(--code-bg);font-weight:500}.admin-table button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.admin-edit-row{align-items:center;gap:6px;display:flex}.admin-edit-row input{border:1px solid var(--border);background:var(--bg-primary);width:80px;color:var(--text-primary);border-radius:6px;padding:4px 8px;font-size:13px}.admin-chart-section{padding:16px 0}.admin-bar-chart{align-items:flex-end;gap:6px;height:200px;padding:16px 0;display:flex;overflow-x:auto}.admin-bar-item{flex-direction:column;align-items:center;min-width:36px;display:flex;position:relative}.admin-bar{background:var(--accent);border-radius:4px 4px 0 0;width:24px;transition:height .3s}.admin-bar-label{color:var(--text);white-space:nowrap;margin-top:4px;font-size:11px}.admin-bar-tooltip{background:var(--text-h);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;border-radius:4px;margin-bottom:4px;padding:4px 8px;font-size:11px;transition:opacity .2s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.admin-bar-item:hover .admin-bar-tooltip{opacity:1}.admin-empty{text-align:center;color:var(--text);width:100%;padding:40px}
