@import"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=DM+Mono:wght@400;500&display=swap";.landing-page{font-family:var(--font-sans);color:var(--color-gray-800);overflow-x:hidden}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.3);transition:var(--transition-slow)}.landing-nav.scrolled{background:#fffffff2;box-shadow:var(--shadow-md)}.landing-nav-logo{display:flex;align-items:center;gap:var(--space-3);text-decoration:none}.landing-nav-logo-icon{width:36px;height:36px;background:var(--gradient-brand);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:18px}.landing-nav-logo-text{font-size:var(--text-xl);font-weight:var(--font-bold);background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-nav-links{display:flex;align-items:center;gap:var(--space-8);list-style:none;margin:0;padding:0}.landing-nav-links a{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-gray-600);text-decoration:none;transition:var(--transition-fast)}.landing-nav-links a:hover{color:var(--color-primary)}.landing-nav-cta{display:flex;align-items:center;gap:var(--space-3)}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-hero);position:relative;overflow:hidden;padding:var(--space-24) var(--space-6) var(--space-16)}.hero:before,.hero:after{content:"";position:absolute;border-radius:var(--radius-full);filter:blur(80px);opacity:.35;animation:blob-float 8s ease-in-out infinite}.hero:before{width:500px;height:500px;background:var(--color-primary);top:-100px;right:-100px}.hero:after{width:400px;height:400px;background:var(--color-secondary);bottom:-80px;left:-80px;animation-delay:-4s}@keyframes blob-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.95)}}.hero-content{position:relative;z-index:1;text-align:center;max-width:800px;margin:0 auto}.hero-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);color:#ffffffe6;font-size:var(--text-sm);font-weight:var(--font-medium);margin-bottom:var(--space-6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-badge-dot{width:8px;height:8px;background:#4ade80;border-radius:var(--radius-full);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}.hero-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:var(--font-extrabold);color:var(--color-white);line-height:var(--leading-tight);margin:0 0 var(--space-6);letter-spacing:-.02em}.hero-title-gradient{background:linear-gradient(135deg,#a78bfa,#60a5fa,#34d399);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:clamp(1rem,2.5vw,1.25rem);color:#ffffffbf;line-height:var(--leading-relaxed);margin:0 0 var(--space-10);max-width:600px;margin-inline:auto;margin-bottom:var(--space-10)}.hero-actions{display:flex;align-items:center;justify-content:center;gap:var(--space-4);flex-wrap:wrap}.hero-btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:var(--bg-surface);color:var(--color-primary);border:none;border-radius:var(--radius-xl);font-size:var(--text-base);font-weight:var(--font-bold);cursor:pointer;text-decoration:none;transition:var(--transition-spring);box-shadow:0 4px 20px #0003}.hero-btn-primary:hover{transform:translateY(-3px);box-shadow:0 8px 30px #0000004d}.hero-btn-secondary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:#ffffff1f;color:var(--color-white);border:1.5px solid rgba(255,255,255,.3);border-radius:var(--radius-xl);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;text-decoration:none;transition:var(--transition-slow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-btn-secondary:hover{background:#fff3;border-color:#ffffff80}.hero-stats{display:flex;align-items:center;justify-content:center;gap:var(--space-10);margin-top:var(--space-16);padding-top:var(--space-10);border-top:1px solid rgba(255,255,255,.1);flex-wrap:wrap}.hero-stat-value{font-size:var(--text-3xl);font-weight:var(--font-extrabold);color:var(--color-white);line-height:1}.hero-stat-label{font-size:var(--text-sm);color:#fff9;margin-top:var(--space-1)}.features-section{padding:var(--space-24) var(--space-6);background:var(--bg-surface)}.features-header{text-align:center;max-width:600px;margin:0 auto var(--space-16)}.features-eyebrow{display:inline-block;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-3)}.features-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--font-extrabold);color:var(--color-gray-900);line-height:var(--leading-tight);margin:0 0 var(--space-4)}.features-desc{font-size:var(--text-lg);color:var(--color-gray-500);line-height:var(--leading-relaxed);margin:0}.features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6);max-width:var(--container-xl);margin:0 auto}.feature-card{padding:var(--space-8);background:var(--color-gray-50);border-radius:var(--radius-2xl);border:1px solid var(--color-gray-100);transition:var(--transition-slow)}.feature-card:hover{background:var(--bg-surface);box-shadow:var(--shadow-xl);transform:translateY(-4px);border-color:#667eea33}.feature-icon{width:52px;height:52px;background:var(--gradient-brand-soft);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:var(--space-5)}.feature-title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0 0 var(--space-3)}.feature-desc{font-size:var(--text-sm);color:var(--color-gray-500);line-height:var(--leading-relaxed);margin:0}.how-section{padding:var(--space-24) var(--space-6);background:var(--color-gray-50)}.steps-list{display:flex;flex-direction:column;gap:var(--space-8);max-width:640px;margin:0 auto;counter-reset:step}.step-item{display:flex;gap:var(--space-6);align-items:flex-start}.step-number{flex-shrink:0;width:44px;height:44px;background:var(--gradient-brand);color:var(--color-white);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);font-weight:var(--font-bold);box-shadow:var(--shadow-brand)}.step-content-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-gray-900);margin:0 0 var(--space-2)}.step-content-desc{font-size:var(--text-sm);color:var(--color-gray-500);line-height:var(--leading-relaxed);margin:0}.cta-section{padding:var(--space-24) var(--space-6);background:var(--gradient-hero);text-align:center;position:relative;overflow:hidden}.cta-section:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.cta-content{position:relative;z-index:1;max-width:600px;margin:0 auto}.cta-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--font-extrabold);color:var(--color-white);margin:0 0 var(--space-4);line-height:var(--leading-tight)}.cta-desc{font-size:var(--text-lg);color:#ffffffbf;margin:0 0 var(--space-10);line-height:var(--leading-relaxed)}.landing-footer{background:var(--color-gray-900);color:var(--color-gray-400);padding:var(--space-12) var(--space-6) var(--space-8)}.landing-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-10);max-width:var(--container-xl);margin:0 auto var(--space-10)}.footer-brand-name{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-white);margin:0 0 var(--space-3)}.footer-brand-desc{font-size:var(--text-sm);line-height:var(--leading-relaxed);max-width:280px}.footer-col-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-white);margin:0 0 var(--space-4);text-transform:uppercase;letter-spacing:.05em}.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.footer-links a{font-size:var(--text-sm);color:var(--color-gray-400);text-decoration:none;transition:var(--transition-fast)}.footer-links a:hover{color:var(--color-white)}.footer-bottom{max-width:var(--container-xl);margin:0 auto;padding-top:var(--space-8);border-top:1px solid var(--color-gray-800);display:flex;align-items:center;justify-content:space-between;font-size:var(--text-sm);flex-wrap:wrap;gap:var(--space-4)}@media(max-width:1024px){.landing-footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.landing-nav-links{display:none}.hero-stats{gap:var(--space-6)}.landing-footer-grid{grid-template-columns:1fr;gap:var(--space-8)}.footer-bottom{flex-direction:column;text-align:center}}@media(max-width:480px){.hero-actions{flex-direction:column;align-items:stretch}.hero-btn-primary,.hero-btn-secondary{justify-content:center}}.auth-page{display:flex;min-height:100vh;font-family:var(--font-sans)}.auth-left{flex:1;background:var(--gradient-hero);display:flex;align-items:center;justify-content:center;padding:var(--space-12) var(--space-10);position:relative;overflow:hidden}.auth-left:before,.auth-left:after{content:"";position:absolute;border-radius:var(--radius-full);filter:blur(60px);opacity:.25}.auth-left:before{width:400px;height:400px;background:var(--color-primary);top:-80px;right:-80px}.auth-left:after{width:300px;height:300px;background:var(--color-secondary);bottom:-60px;left:-60px}.auth-left-content{position:relative;z-index:1;max-width:420px}.auth-brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-10)}.auth-brand-icon{width:44px;height:44px;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;font-size:22px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-brand-name{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-white);letter-spacing:-.02em}.auth-left-title{font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:var(--font-extrabold);color:var(--color-white);line-height:var(--leading-tight);margin:0 0 var(--space-5);letter-spacing:-.02em}.auth-left-highlight{background:linear-gradient(135deg,#a78bfa,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-left-desc{font-size:var(--text-base);color:#ffffffb3;line-height:var(--leading-relaxed);margin:0 0 var(--space-10)}.auth-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.auth-feature-item{display:flex;align-items:center;gap:var(--space-3);color:#ffffffd9;font-size:var(--text-sm);font-weight:var(--font-medium)}.auth-feature-icon{width:36px;height:36px;background:#ffffff1a;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.auth-right{width:480px;flex-shrink:0;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;padding:var(--space-10) var(--space-8);overflow-y:auto}.auth-form-wrap{width:100%;max-width:380px}.auth-tabs{display:flex;background:var(--color-gray-100);border-radius:var(--radius-xl);padding:4px;margin-bottom:var(--space-8);gap:4px}.auth-tab{flex:1;background:transparent;border:none;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-500);cursor:pointer;transition:var(--transition-base)}.auth-tab.active{background:var(--bg-surface);color:var(--color-gray-900);box-shadow:var(--shadow-sm)}.auth-tab:hover:not(.active){color:var(--color-gray-700)}.auth-form-title{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0 0 var(--space-2);letter-spacing:-.02em}.auth-form-subtitle{font-size:var(--text-sm);color:var(--color-gray-500);margin:0 0 var(--space-8)}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.auth-field{display:flex;flex-direction:column;gap:var(--space-2)}.auth-field label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-700);margin:0}.auth-field-icon{font-size:14px}.auth-field input,.auth-field select{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-gray-200);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-gray-800);background:var(--color-gray-50);transition:var(--transition-base);box-sizing:border-box}.auth-field input:focus,.auth-field select:focus{outline:none;border-color:var(--color-primary);background:var(--bg-surface);box-shadow:0 0 0 3px #4f6ef71f}.auth-field input::placeholder{color:var(--color-gray-400)}.auth-field-hint{font-size:var(--text-xs);color:var(--color-gray-400);margin:0}.auth-error{display:flex;align-items:center;gap:var(--space-2);background:var(--color-error-bg);border:1px solid rgba(239,68,68,.2);color:#991b1b;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium)}.auth-submit{width:100%;padding:var(--space-4);background:var(--gradient-brand);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-bold);cursor:pointer;transition:var(--transition-slow);margin-top:var(--space-2);letter-spacing:.01em}.auth-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 24px #4f6ef766}.auth-submit:active:not(:disabled){transform:translateY(0)}.auth-submit:disabled{opacity:.65;cursor:not-allowed}.auth-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.auth-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--color-white);border-radius:var(--radius-full);animation:spin .7s linear infinite}.auth-switch{text-align:center;font-size:var(--text-sm);color:var(--color-gray-500);margin:var(--space-6) 0 0}.auth-switch-btn{background:none;border:none;color:var(--color-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;padding:0;transition:var(--transition-fast)}.auth-switch-btn:hover{color:var(--color-primary-dark);text-decoration:underline}@media(max-width:900px){.auth-left{display:none}.auth-right{width:100%;padding:var(--space-8) var(--space-6)}}@media(max-width:480px){.auth-right{padding:var(--space-6) var(--space-4);align-items:flex-start;padding-top:var(--space-10)}.auth-form-wrap{max-width:100%}}.upload-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--overlay-backdrop);display:flex;align-items:center;justify-content:center;z-index:1000}.upload-modal{background:var(--bg-surface);border-radius:12px;width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.upload-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--border-subtle)}.upload-modal-header h2{margin:0;font-size:20px}.btn-close{background:none;border:none;font-size:28px;cursor:pointer;color:var(--text-muted);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}.btn-close:hover{background:var(--interactive-muted-bg)}.upload-tabs{display:flex;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.upload-tabs button{flex:1;padding:8px 12px;background:var(--interactive-muted-bg);color:var(--text-main);border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.upload-tabs button:hover{background:var(--interactive-muted-bg-hover)}.upload-tabs button.active{background:var(--color-primary);color:#fff}.upload-form{flex:1;display:flex;flex-direction:column;padding:20px;overflow-y:auto;gap:16px}.upload-textarea,.upload-input{width:100%;padding:12px;border:1px solid var(--border-subtle);border-radius:6px;font-family:inherit;font-size:14px;resize:vertical}.upload-textarea:focus,.upload-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.upload-file-area{border:2px dashed var(--border-subtle);border-radius:6px;padding:24px;text-align:center;background:var(--interactive-muted-bg)}.upload-file-input{display:block;width:100%;margin-bottom:12px}.upload-file-hint{font-size:12px;color:var(--text-muted);margin:0}.upload-file-name{font-size:14px;color:var(--color-success);margin:8px 0 0}.upload-error{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);color:var(--danger-soft-text);padding:12px;border-radius:6px;font-size:14px}.upload-actions{display:flex;gap:12px;margin-top:auto}:root[data-theme=dark] .upload-modal{background:var(--bg-surface)}:root[data-theme=dark] .upload-modal-header,:root[data-theme=dark] .upload-tabs{border-color:var(--border-subtle)}:root[data-theme=dark] .upload-modal-header h2{color:var(--text-main)}:root[data-theme=dark] .btn-close{color:var(--text-muted)}:root[data-theme=dark] .btn-close:hover{background:var(--interactive-muted-bg-hover)}:root[data-theme=dark] .upload-tabs button{background:var(--interactive-muted-bg);color:var(--text-main)}:root[data-theme=dark] .upload-tabs button:hover{background:var(--interactive-muted-bg-hover)}:root[data-theme=dark] .upload-textarea,:root[data-theme=dark] .upload-input{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .upload-file-area{background:var(--interactive-muted-bg);border-color:var(--border-subtle)}:root[data-theme=dark] .upload-file-hint{color:var(--text-muted)}.dashboard-page{min-height:100vh;background:var(--color-gray-50);font-family:var(--font-sans)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background:var(--bg-surface);border-bottom:1px solid var(--color-gray-100);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-xs)}.dashboard-header-left{display:flex;align-items:center}.dashboard-brand{display:flex;align-items:center;gap:var(--space-2)}.dashboard-brand-icon{font-size:24px}.dashboard-brand-name{font-size:var(--text-xl);font-weight:var(--font-bold);background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.dashboard-header-right{display:flex;align-items:center;gap:var(--space-3)}.dashboard-header-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-gray-700);cursor:pointer;transition:var(--transition-base)}.dashboard-header-btn:hover{background:var(--color-gray-50);border-color:var(--color-gray-300)}.dashboard-profile{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);padding-right:var(--space-4)}.dashboard-avatar{width:36px;height:36px;background:var(--gradient-brand);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--color-white);font-weight:var(--font-bold);font-size:var(--text-sm)}.dashboard-profile-info{display:flex;flex-direction:column}.dashboard-profile-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-900)}.dashboard-profile-lang{font-size:var(--text-xs);color:var(--color-gray-500)}.dashboard-logout-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--color-gray-200);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-base)}.dashboard-logout-btn:hover{background:var(--color-error-bg);border-color:#ef44444d}.dashboard-main{max-width:1200px;margin:0 auto;padding:var(--space-8) var(--space-6)}.dashboard-welcome{background:var(--gradient-hero);border-radius:var(--radius-2xl);padding:var(--space-10);margin-bottom:var(--space-8);display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.dashboard-welcome:before{content:"";position:absolute;width:300px;height:300px;background:#ffffff1a;border-radius:var(--radius-full);top:-100px;right:-50px;filter:blur(40px)}.dashboard-welcome-content{position:relative;z-index:1;max-width:600px}.dashboard-welcome-title{font-size:var(--text-3xl);font-weight:var(--font-extrabold);color:var(--color-white);margin:0 0 var(--space-3);letter-spacing:-.02em}.dashboard-welcome-subtitle{font-size:var(--text-base);color:#ffffffbf;margin:0;line-height:var(--leading-relaxed)}.dashboard-welcome-actions{position:relative;z-index:1}.dashboard-action-btn{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--bg-surface);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-lg)}.dashboard-action-btn:hover{transform:translateY(-2px);box-shadow:0 12px 32px #0003}.dashboard-action-icon{font-size:28px}.dashboard-action-text{display:flex;flex-direction:column;align-items:flex-start}.dashboard-action-text strong{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--color-gray-900)}.dashboard-action-text small{font-size:var(--text-xs);color:var(--color-gray-500)}.dashboard-action-arrow{font-size:var(--text-xl);color:var(--color-primary);margin-left:var(--space-4)}.dashboard-section-title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0 0 var(--space-6);letter-spacing:-.01em}.dashboard-actions{margin-bottom:var(--space-10)}.dashboard-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5)}.dashboard-feature-card{background:var(--bg-surface);border:1px solid var(--color-gray-100);border-radius:var(--radius-xl);padding:var(--space-6);cursor:pointer;transition:var(--transition-base);text-align:left;font-family:var(--font-sans)}.dashboard-feature-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.dashboard-feature-icon{font-size:32px;margin-bottom:var(--space-4)}.dashboard-feature-card h3{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0 0 var(--space-2)}.dashboard-feature-card p{font-size:var(--text-sm);color:var(--color-gray-500);margin:0 0 var(--space-4);line-height:var(--leading-relaxed)}.dashboard-feature-link{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-primary)}.dashboard-feature-arrow{transition:transform var(--transition-fast)}.dashboard-feature-card:hover .dashboard-feature-arrow{transform:translate(4px)}.dashboard-documents{margin-bottom:var(--space-10)}.dashboard-documents-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.dashboard-add-btn{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-base)}.dashboard-add-btn:hover{background:var(--color-primary-dark)}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12);color:var(--color-gray-500)}.dashboard-spinner{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .7s linear infinite;margin-bottom:var(--space-4)}.dashboard-empty{text-align:center;padding:var(--space-12);background:var(--bg-surface);border:2px dashed var(--color-gray-200);border-radius:var(--radius-xl)}.dashboard-empty-icon{font-size:48px;margin-bottom:var(--space-4)}.dashboard-empty h3{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0 0 var(--space-2)}.dashboard-empty p{font-size:var(--text-sm);color:var(--color-gray-500);margin:0 0 var(--space-6)}.dashboard-empty-btn{padding:var(--space-3) var(--space-6);background:var(--gradient-brand);color:var(--color-white);border:none;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-bold);cursor:pointer;transition:var(--transition-base)}.dashboard-empty-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.dashboard-documents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-5)}.dashboard-document-card{background:var(--bg-surface);border:1px solid var(--color-gray-100);border-radius:var(--radius-xl);padding:var(--space-5);cursor:pointer;transition:var(--transition-base)}.dashboard-document-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.dashboard-doc-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.dashboard-doc-type{font-size:24px}.dashboard-doc-delete{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-lg);cursor:pointer;opacity:0;transition:var(--transition-base)}.dashboard-document-card:hover .dashboard-doc-delete{opacity:1}.dashboard-doc-delete:hover{background:var(--color-error-bg)}.dashboard-doc-title{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0 0 var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-doc-meta{font-size:var(--text-sm);color:var(--color-gray-500);margin:0}.dashboard-doc-actions{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-gray-100)}.dashboard-doc-action{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-primary)}.dashboard-view-more{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-5);background:var(--color-gray-50);border:2px dashed var(--color-gray-200);border-radius:var(--radius-xl);cursor:pointer;transition:var(--transition-base);font-family:var(--font-sans)}.dashboard-view-more:hover{border-color:var(--color-primary);background:#4f6ef70d}.dashboard-view-more span:first-child{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-gray-700)}.dashboard-view-more span:last-child{font-size:var(--text-lg);color:var(--color-primary)}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-5)}.dashboard-stat-card{display:flex;align-items:center;gap:var(--space-4);background:var(--bg-surface);border:1px solid var(--color-gray-100);border-radius:var(--radius-xl);padding:var(--space-5)}.dashboard-stat-icon{font-size:32px}.dashboard-stat-content{display:flex;flex-direction:column}.dashboard-stat-value{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--color-gray-900)}.dashboard-stat-label{font-size:var(--text-sm);color:var(--color-gray-500)}@media(max-width:900px){.dashboard-welcome{flex-direction:column;text-align:center;gap:var(--space-6)}.dashboard-welcome-content{max-width:100%}.dashboard-welcome-actions{width:100%}.dashboard-action-btn{width:100%;justify-content:center}}@media(max-width:600px){.dashboard-header{padding:var(--space-3) var(--space-4);flex-wrap:wrap;gap:var(--space-3)}.dashboard-header-right{width:100%;justify-content:flex-end}.dashboard-main{padding:var(--space-6) var(--space-4)}.dashboard-welcome{padding:var(--space-6)}.dashboard-welcome-title{font-size:var(--text-2xl)}.dashboard-documents-grid{grid-template-columns:1fr}}.rv-shell{--rv-bg: #f7f4ef;--rv-page-bg: #fffdf9;--rv-ink: #1a1714;--rv-ink-muted: #6b6560;--rv-ink-faint: #c5bfb8;--rv-accent: #b8522a;--rv-accent-light: #f5ebe4;--rv-active-bg: #fef3ec;--rv-active-border: #b8522a;--rv-hover-bg: #f9f6f2;--rv-progress: #b8522a;--rv-shadow: 0 1px 3px rgba(0,0,0,.06), 0 8px 32px rgba(0,0,0,.04);--rv-font-body: "Lora", Georgia, serif;--rv-font-mono: "DM Mono", "Courier New", monospace;display:flex;flex-direction:column;height:100%;background:var(--rv-bg);font-family:var(--rv-font-body);position:relative}.rv-progress-track{position:absolute;top:0;left:0;right:0;height:3px;background:var(--rv-ink-faint);z-index:10}.rv-progress-fill{height:100%;background:var(--rv-progress);transition:width .2s ease}.rv-header{padding:28px 40px 20px;border-bottom:1px solid var(--rv-ink-faint);display:flex;flex-direction:column;gap:6px;background:var(--rv-bg);flex-shrink:0}.rv-header-label{font-family:var(--rv-font-mono);font-size:10px;letter-spacing:.2em;color:var(--rv-accent);text-transform:uppercase}.rv-title{font-size:1.15rem;font-weight:600;color:var(--rv-ink);margin:0;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv-meta{font-family:var(--rv-font-mono);font-size:11px;color:var(--rv-ink-muted)}.rv-scroll{flex:1;overflow-y:auto;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--rv-ink-faint) transparent}.rv-scroll::-webkit-scrollbar{width:5px}.rv-scroll::-webkit-scrollbar-track{background:transparent}.rv-scroll::-webkit-scrollbar-thumb{background:var(--rv-ink-faint);border-radius:10px}.rv-page{max-width:680px;margin:0 auto;padding:36px 40px 60px;display:flex;flex-direction:column;gap:4px}.rv-para{position:relative;padding:18px 20px 18px 16px;border-left:3px solid transparent;border-radius:2px;cursor:pointer;background:transparent;transition:background .18s ease,border-color .18s ease,transform .15s ease;outline:none;animation:rv-fade-in .35s ease both}@keyframes rv-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rv-para:hover{background:var(--rv-hover-bg);border-left-color:var(--rv-ink-faint)}.rv-para:focus-visible{outline:2px solid var(--rv-accent);outline-offset:2px}.rv-para--active{background:var(--rv-active-bg);border-left-color:var(--rv-active-border)}.rv-para--active .rv-para-id{color:var(--rv-accent)}.rv-para-id{display:inline-block;font-family:var(--rv-font-mono);font-size:10px;font-weight:500;letter-spacing:.08em;color:var(--rv-ink-faint);margin-bottom:8px;transition:color .18s ease;-webkit-user-select:none;user-select:none}.rv-para-text{margin:0;font-size:1rem;line-height:1.85;color:var(--rv-ink);font-weight:400;letter-spacing:.005em;word-break:break-word}.rv-para-hover-bar{position:absolute;right:16px;top:50%;transform:translateY(-50%) scaleX(0);width:16px;height:2px;background:var(--rv-accent);border-radius:2px;transform-origin:right;transition:transform .2s ease}.rv-para:hover .rv-para-hover-bar,.rv-para--active .rv-para-hover-bar{transform:translateY(-50%) scaleX(1)}.rv-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 20px;color:var(--rv-ink-muted);font-style:italic;font-size:.95rem}.rv-empty-icon{font-size:2.5rem;opacity:.5}.rv-footer{padding:10px 40px;border-top:1px solid var(--rv-ink-faint);display:flex;align-items:center;justify-content:space-between;background:var(--rv-bg);flex-shrink:0}.rv-progress-text,.rv-selected-label{font-family:var(--rv-font-mono);font-size:11px;color:var(--rv-ink-muted)}.rv-selected-label strong{color:var(--rv-accent);font-weight:500}@media(max-width:600px){.rv-header{padding:20px 20px 16px}.rv-page{padding:24px 20px 48px}.rv-footer{padding:10px 20px}.rv-para{padding:14px 12px}}.analysis-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-surface);border-radius:8px;overflow:hidden}.panel-loading,.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted)}.panel-loading p,.panel-empty p{margin-top:16px;font-size:14px}.hint{font-size:12px!important;color:var(--text-muted)}.panel-scroll{flex:1;overflow-y:auto;padding:20px}.panel-section{margin-bottom:24px;padding:16px;background:#f9fafb;border-radius:6px}.panel-section h3{margin:0 0 12px;font-size:16px;color:var(--text-main)}.panel-section p{margin:0 0 8px;font-size:14px;line-height:1.5;color:var(--text-main)}.panel-section p:last-child{margin-bottom:0}.panel-section ul{margin:0;padding-left:20px}.panel-section li{font-size:14px;color:var(--text-main);margin-bottom:6px}.panel-highlight{background:#fef3c7;border-left:4px solid #f59e0b}.issue-card{background:var(--bg-surface);padding:12px;border-radius:4px;margin-bottom:8px;font-size:14px}.issue-card strong{color:var(--text-main)}.issue-card:last-child{margin-bottom:0}.issue-card.issue-low{border-left:3px solid #10b981}.issue-card.issue-medium{border-left:3px solid #f59e0b}.issue-card.issue-high{border-left:3px solid #ef4444}.suggestion-card{background:var(--bg-surface);padding:12px;border-radius:4px;margin-bottom:12px}.suggestion-card p{margin:0 0 8px;font-size:13px}.suggestion-card p:last-child{margin-bottom:0}.score-table{width:100%;border-collapse:collapse;font-size:14px}.score-table td{padding:8px;border-bottom:1px solid #e5e7eb}.score-table .score{font-weight:700;color:#3b82f6;text-align:right}.readability-score{display:inline-block;font-weight:700;color:var(--color-primary)}.panel-footer{padding:12px 20px;border-top:1px solid #e5e7eb;background:#f9fafb;font-size:12px;color:var(--text-muted)}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}:root[data-theme=dark] .analysis-panel{background:var(--bg-surface)}:root[data-theme=dark] .panel-loading,:root[data-theme=dark] .panel-empty,:root[data-theme=dark] .hint,:root[data-theme=dark] .panel-footer{color:var(--text-muted)}:root[data-theme=dark] .panel-section,:root[data-theme=dark] .panel-footer{background:#0b1220}:root[data-theme=dark] .panel-section h3,:root[data-theme=dark] .panel-section p,:root[data-theme=dark] .panel-section li,:root[data-theme=dark] .issue-card strong{color:var(--text-main)}:root[data-theme=dark] .issue-card,:root[data-theme=dark] .suggestion-card{background:#0f172a}:root[data-theme=dark] .score-table td{border-bottom-color:var(--border-subtle)}:root[data-theme=dark] .panel-footer{border-top-color:var(--border-subtle)}.chat-box{display:flex;flex-direction:column;height:100%;background:var(--bg-surface);border-radius:8px;overflow:hidden}.chat-context-panel{padding:12px;border-bottom:1px solid var(--border-subtle);background:var(--interactive-muted-bg);display:grid;gap:8px}.chat-context-modes{display:flex;gap:8px}.chat-context-modes button{border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px}.chat-context-modes button.active{border-color:var(--color-primary);background:var(--interactive-soft-bg);color:var(--interactive-soft-text)}.chat-context-textarea{width:100%;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:8px;padding:8px 10px;resize:vertical;font-family:inherit;font-size:14px}.chat-context-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.chat-message{display:flex;margin-bottom:8px}.chat-message.chat-user{justify-content:flex-end}.chat-message.chat-assistant{justify-content:flex-start}.chat-content{max-width:70%;padding:12px;border-radius:6px;font-size:14px;line-height:1.5}.chat-user .chat-content{background:var(--color-primary);color:#fff}.chat-assistant .chat-content{background:var(--interactive-muted-bg);color:var(--text-main)}.chat-content p{margin:0}.chat-references,.chat-out-of-scope,.chat-confidence{margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.1);font-size:12px}.chat-user .chat-references,.chat-user .chat-out-of-scope,.chat-user .chat-confidence{color:#fffc}.chat-assistant .chat-references,.chat-assistant .chat-out-of-scope,.chat-assistant .chat-confidence{color:var(--text-muted)}.chat-loading{display:flex;align-items:center;gap:8px}.spinner-small{width:20px;height:20px;border:2px solid var(--border-subtle);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.chat-error{background:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);border-radius:6px;padding:12px;color:var(--danger-soft-text);font-size:14px}.chat-error p{margin:0}.chat-input-area{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border-subtle);background:var(--interactive-muted-bg)}.chat-textarea{flex:1;padding:8px 12px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:4px;font-family:inherit;font-size:14px;resize:none}.chat-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.chat-textarea:disabled{background:var(--interactive-muted-bg);cursor:not-allowed}.btn-send{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-send:hover:not(:disabled){background:var(--color-primary-dark)}.btn-send:disabled{background:var(--color-gray-400);cursor:not-allowed}:root[data-theme=dark] .chat-box{background:var(--bg-surface)}:root[data-theme=dark] .chat-context-panel{background:var(--interactive-muted-bg);border-bottom-color:var(--border-subtle)}:root[data-theme=dark] .chat-context-modes button,:root[data-theme=dark] .chat-context-textarea{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .chat-context-modes button.active{background:var(--interactive-soft-bg);color:var(--interactive-soft-text);border-color:var(--color-primary)}:root[data-theme=dark] .chat-empty,:root[data-theme=dark] .chat-assistant .chat-references,:root[data-theme=dark] .chat-assistant .chat-out-of-scope,:root[data-theme=dark] .chat-assistant .chat-confidence{color:var(--text-muted)}:root[data-theme=dark] .chat-assistant .chat-content{background:var(--interactive-muted-bg);color:var(--text-main)}:root[data-theme=dark] .chat-input-area{background:var(--interactive-muted-bg);border-top-color:var(--border-subtle)}:root[data-theme=dark] .chat-textarea{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .chat-textarea:disabled{background:var(--interactive-muted-bg-hover)}.reader-page{min-height:100vh;background:var(--bg-page);color:var(--text-main)}.reader-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:30}.reader-doc-title{margin:0;font-size:1rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reader-actions{display:flex;align-items:center;gap:10px}.mode-select,.btn-analyze,.btn-back,.btn-primary,.btn-open-reader,.btn-close-popup{border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:10px;font-size:.9rem;padding:8px 12px;cursor:pointer;transition:all .2s ease}.mode-select:hover,.btn-analyze:hover,.btn-back:hover,.btn-primary:hover,.btn-open-reader:hover,.btn-close-popup:hover{border-color:var(--text-muted);background:var(--interactive-muted-bg)}.reader-layout{display:grid;grid-template-columns:minmax(320px,430px) 1fr;gap:16px;padding:16px;height:calc(100vh - 66px)}.reader-sidebar-left{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden;min-height:0}.sidebar-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border-subtle);background:var(--interactive-muted-bg)}.sidebar-tabs button{border:0;background:transparent;padding:12px;font-weight:600;cursor:pointer;color:var(--text-muted)}.sidebar-tabs button.active{background:var(--bg-surface);color:var(--text-main)}.sidebar-content{min-height:0;height:100%;overflow:hidden}.reader-preview{min-height:0}.preview-card{height:100%;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px}.preview-head h2{margin:0;font-size:1.1rem}.preview-head p{margin:6px 0 0;color:var(--text-muted);font-size:.9rem}.preview-body{flex:1;overflow:auto;min-height:0;border:1px dashed var(--border-subtle);border-radius:12px;padding:16px;background:var(--interactive-muted-bg)}.preview-paragraph-list{display:grid;gap:10px;margin-bottom:16px}.preview-paragraph-item{border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:10px;padding:10px;text-align:left;cursor:pointer}.preview-paragraph-item span{display:inline-block;background:var(--interactive-soft-bg);color:var(--interactive-soft-text);font-size:.72rem;border-radius:999px;padding:2px 8px;margin-bottom:6px;font-weight:700}.preview-paragraph-item p{margin:0;color:var(--text-main);font-size:.88rem;line-height:1.5;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.preview-paragraph-item.active{border-color:var(--color-primary-light);background:var(--interactive-soft-bg)}.preview-snippet span{display:inline-block;background:var(--interactive-soft-bg-strong);color:var(--interactive-soft-text-strong);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;margin-bottom:10px}.preview-snippet p,.preview-empty p{margin:0;line-height:1.65}.preview-empty{color:var(--text-muted)}.btn-open-reader{width:fit-content;background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}.btn-open-reader:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.reader-inline-error{padding:0 16px 16px}.reader-inline-note{padding:8px 16px 0}.reader-inline-note p{margin:0;padding:8px 10px;border-radius:10px;background:var(--interactive-soft-bg-strong);border:1px solid var(--color-accent);color:var(--interactive-soft-text-strong);font-size:.9rem}.reader-inline-error p{margin:0;padding:10px 12px;border-radius:10px;background:var(--danger-soft-bg);border:1px solid var(--danger-soft-border);color:var(--danger-soft-text)}.reader-popup-backdrop,.reader-analysis-overlay{position:fixed;inset:0;background:var(--overlay-backdrop);display:flex;align-items:center;justify-content:center;z-index:60;padding:18px}.reader-popup{width:min(980px,95vw);height:min(88vh,920px);background:var(--bg-surface);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border-subtle)}.reader-popup-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.reader-popup-header h2{margin:0;font-size:1rem}.reader-popup .rv-shell{flex:1}.reader-analysis-modal{width:min(500px,94vw);background:var(--bg-surface);border-radius:14px;border:1px solid var(--border-subtle);padding:24px;text-align:center}.reader-analysis-modal h3{margin:16px 0 8px}.reader-analysis-modal p{margin:0;color:var(--text-muted)}.reader-loading,.reader-error{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.spinner{width:40px;height:40px;border-radius:999px;border:4px solid var(--border-subtle);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@media(max-width:1024px){.reader-layout{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 66px)}.reader-sidebar-left{min-height:420px}.preview-card{min-height:300px}}@media(max-width:700px){.reader-header{flex-wrap:wrap}.reader-doc-title{width:100%;order:3}.reader-actions{width:100%;justify-content:flex-end}.mode-select{min-width:170px}}:root[data-theme=dark] .reader-page{background:var(--bg-page);color:var(--text-main)}:root[data-theme=dark] .reader-header,:root[data-theme=dark] .reader-sidebar-left,:root[data-theme=dark] .preview-card,:root[data-theme=dark] .reader-popup,:root[data-theme=dark] .reader-analysis-modal{background:var(--bg-surface);border-color:var(--border-subtle)}:root[data-theme=dark] .mode-select,:root[data-theme=dark] .btn-analyze,:root[data-theme=dark] .btn-back,:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .btn-close-popup{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .mode-select:hover,:root[data-theme=dark] .btn-analyze:hover,:root[data-theme=dark] .btn-back:hover,:root[data-theme=dark] .btn-primary:hover,:root[data-theme=dark] .btn-close-popup:hover{background:var(--interactive-muted-bg-hover);border-color:var(--text-muted)}:root[data-theme=dark] .sidebar-tabs{background:var(--interactive-muted-bg);border-bottom-color:var(--border-subtle)}:root[data-theme=dark] .sidebar-tabs button{color:var(--text-muted)}:root[data-theme=dark] .sidebar-tabs button.active{background:var(--interactive-muted-bg);color:var(--text-main)}:root[data-theme=dark] .preview-head p,:root[data-theme=dark] .preview-empty,:root[data-theme=dark] .reader-analysis-modal p{color:var(--text-muted)}:root[data-theme=dark] .reader-inline-note p{background:var(--interactive-soft-bg-strong);border-color:var(--color-primary);color:var(--interactive-soft-text-strong)}:root[data-theme=dark] .preview-body{background:var(--interactive-muted-bg);border-color:var(--border-subtle)}:root[data-theme=dark] .preview-paragraph-item{background:var(--interactive-muted-bg);border-color:var(--border-subtle)}:root[data-theme=dark] .preview-paragraph-item p{color:var(--text-main)}:root[data-theme=dark] .preview-paragraph-item.active{background:var(--interactive-soft-bg);border-color:var(--color-primary)}:root[data-theme=dark] .reader-popup-header,:root[data-theme=dark] .panel-footer{border-color:var(--border-subtle)}.rewrite-panel{display:flex;flex-direction:column;gap:16px;padding:20px;background:var(--bg-surface);border-radius:8px;max-height:100%;overflow-y:auto}.rewrite-panel h3{margin:0;font-size:18px;color:var(--text-main)}.rewrite-section{display:flex;flex-direction:column;gap:8px}.rewrite-section label{font-size:14px;font-weight:500;color:var(--text-main)}.rewrite-textarea{padding:12px;border:1px solid #d1d5db;border-radius:6px;font-family:inherit;font-size:14px;resize:vertical;min-height:60px}.rewrite-textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.rewrite-textarea:disabled{background:#f3f4f6;cursor:not-allowed}.rewrite-presets{display:flex;flex-wrap:wrap;gap:6px}.preset-btn{padding:6px 12px;background:#e5e7eb;border:1px solid #d1d5db;border-radius:20px;font-size:12px;cursor:pointer;transition:all .2s}.preset-btn:hover:not(:disabled){background:#d1d5db;border-color:var(--text-muted)}.preset-btn:disabled{opacity:.5;cursor:not-allowed}.rewrite-original,.rewrite-result{padding:12px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:14px;line-height:1.6;color:var(--text-main);max-height:150px;overflow-y:auto}.rewrite-original p,.rewrite-result p{margin:0}.rewrite-explanation{padding:12px;background:#dbeafe;border-left:3px solid #3b82f6;border-radius:4px}.rewrite-explanation strong{color:#1e40af}.rewrite-explanation p{margin:4px 0 0;font-size:13px;color:#1e40af}.rewrite-error{padding:12px;background:#fee2e2;border:1px solid #fecaca;border-radius:6px;color:#991b1b;font-size:14px}.btn-rewrite{padding:10px;background:#10b981;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;margin-top:auto}.btn-rewrite:hover:not(:disabled){background:#059669}.btn-rewrite:disabled{background:#9ca3af;cursor:not-allowed}:root[data-theme=dark] .rewrite-panel{background:var(--bg-surface)}:root[data-theme=dark] .rewrite-panel h3,:root[data-theme=dark] .rewrite-section label,:root[data-theme=dark] .rewrite-original,:root[data-theme=dark] .rewrite-result{color:var(--text-main)}:root[data-theme=dark] .rewrite-textarea{background:#0f172a;color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .rewrite-textarea:disabled{background:#1e293b}:root[data-theme=dark] .preset-btn{background:#1e293b;border-color:var(--border-subtle);color:var(--text-main)}:root[data-theme=dark] .rewrite-original,:root[data-theme=dark] .rewrite-result{background:#0b1220;border-color:var(--border-subtle)}:root[data-theme=dark] .rewrite-explanation{background:#0f2a4a;border-left-color:#60a5fa}:root[data-theme=dark] .rewrite-explanation strong,:root[data-theme=dark] .rewrite-explanation p{color:#dbeafe}:root[data-theme=dark] .rewrite-error{background:#3a1111;border-color:#7f1d1d;color:#fecaca}.rewrite-page{min-height:100vh;background:var(--bg-page);color:var(--text-main);padding:16px}.rewrite-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.rewrite-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.rewrite-header h1{margin:0;font-size:1.2rem}.rewrite-back-btn,.rewrite-go-home{border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:10px;padding:8px 12px;cursor:pointer}.rewrite-layout{display:grid;grid-template-columns:360px 1fr;gap:16px}.rewrite-sidebar,.rewrite-main,.rewrite-empty{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;padding:14px}.rewrite-empty h3{margin-top:0}.rewrite-select{width:100%;margin-top:8px;margin-bottom:12px;border:1px solid var(--border-subtle);border-radius:10px;padding:8px;background:var(--bg-surface)}.rewrite-source-modes{display:flex;gap:8px;margin-bottom:12px}.rewrite-source-modes button{border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:10px;padding:8px 10px;cursor:pointer}.rewrite-source-modes button.active{border-color:var(--color-primary-light);background:var(--interactive-soft-bg);color:var(--interactive-soft-text)}.rewrite-empty-inline p{color:var(--text-muted)}.rewrite-custom{display:grid;gap:8px}.rewrite-custom-textarea{width:100%;border:1px solid var(--border-subtle);border-radius:10px;padding:10px;font-family:inherit;font-size:14px;resize:vertical}.rewrite-custom-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.rewrite-paragraphs{display:grid;gap:10px;max-height:calc(100vh - 220px);overflow:auto}.rewrite-para-btn{text-align:left;border:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:10px;padding:10px;cursor:pointer}.rewrite-para-btn span{display:inline-block;background:var(--interactive-soft-bg);color:var(--interactive-soft-text);font-size:.72rem;border-radius:999px;padding:2px 8px;margin-bottom:6px;font-weight:700}.rewrite-para-btn p{margin:0;line-height:1.5;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.rewrite-para-btn.active{border-color:var(--color-primary-light);background:var(--interactive-soft-bg)}.rewrite-placeholder{color:var(--text-muted)}@media(max-width:1024px){.rewrite-layout{grid-template-columns:1fr}}:root[data-theme=dark] .rewrite-page{background:var(--bg-page);color:var(--text-main)}:root[data-theme=dark] .rewrite-sidebar,:root[data-theme=dark] .rewrite-main,:root[data-theme=dark] .rewrite-empty{background:var(--bg-surface);border-color:var(--border-subtle)}:root[data-theme=dark] .rewrite-select,:root[data-theme=dark] .rewrite-back-btn,:root[data-theme=dark] .rewrite-go-home{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .rewrite-source-modes button,:root[data-theme=dark] .rewrite-custom-textarea{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}:root[data-theme=dark] .rewrite-source-modes button.active{background:var(--interactive-soft-bg);color:var(--interactive-soft-text);border-color:var(--color-primary)}:root[data-theme=dark] .rewrite-back-btn:hover,:root[data-theme=dark] .rewrite-go-home:hover{background:var(--interactive-muted-bg-hover);border-color:var(--text-muted)}:root[data-theme=dark] .rewrite-para-btn{background:var(--interactive-muted-bg);border-color:var(--border-subtle)}:root[data-theme=dark] .rewrite-para-btn p{color:var(--text-main)}:root[data-theme=dark] .rewrite-para-btn span{background:var(--interactive-soft-bg);color:var(--interactive-soft-text)}:root[data-theme=dark] .rewrite-para-btn.active{background:var(--interactive-soft-bg);border-color:var(--color-primary)}:root[data-theme=dark] .rewrite-placeholder,:root[data-theme=dark] .rewrite-empty p{color:var(--text-muted)}.chat-page{min-height:100vh;padding:16px;background:var(--bg-page);color:var(--text-main)}.chat-page-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.chat-page-header h1{margin:0;font-size:1.2rem}.chat-back-btn{border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-main);border-radius:10px;padding:8px 12px;cursor:pointer}.chat-page-layout{display:grid;grid-template-columns:320px 1fr;gap:16px;min-height:calc(100vh - 120px)}.chat-page-sidebar,.chat-page-main{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:14px;padding:14px}.chat-page-sidebar h3{margin:0 0 8px}.chat-page-sidebar p{color:var(--text-muted);font-size:14px;line-height:1.5}.chat-doc-select{width:100%;margin-top:8px;border:1px solid var(--border-subtle);border-radius:10px;padding:8px;background:var(--bg-surface)}@media(max-width:1024px){.chat-page-layout{grid-template-columns:1fr}.chat-page-main{min-height:70vh}}:root[data-theme=dark] .chat-back-btn,:root[data-theme=dark] .chat-doc-select{background:var(--interactive-muted-bg);color:var(--text-main);border-color:var(--border-subtle)}.history-page{display:flex;flex-direction:column;height:100vh}.history-header{display:flex;align-items:center;gap:16px;padding:20px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.history-header h1{margin:0;font-size:24px}.btn-back{background:none;border:1px solid var(--border-subtle);padding:8px 16px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--text-main);transition:all .2s}.btn-back:hover{background:var(--interactive-muted-bg);border-color:var(--text-muted)}.history-main{flex:1;overflow-y:auto;padding:20px}.history-filters{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter-btn{padding:8px 16px;background:var(--interactive-muted-bg);border:1px solid var(--border-subtle);border-radius:20px;cursor:pointer;font-size:14px;transition:all .2s}.filter-btn:hover{background:var(--interactive-muted-bg-hover);border-color:var(--text-muted)}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.history-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;color:var(--text-muted)}.history-loading p{margin-top:16px}.history-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:16px}.history-list{display:flex;flex-direction:column;gap:12px}.history-item{display:flex;align-items:flex-start;gap:12px;padding:16px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;transition:all .2s}.history-item:hover{box-shadow:0 2px 8px #0000001a;border-color:var(--color-primary)}.history-icon{font-size:24px;flex-shrink:0}.history-content{flex:1}.history-content h3{margin:0;font-size:16px;color:var(--text-main);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.history-doc-title{font-size:14px;color:var(--text-muted);font-weight:400}.history-timestamp{margin:4px 0 0;font-size:12px;color:var(--text-muted)}.history-meta{margin:8px 0 0;font-size:13px;color:var(--text-muted)}.btn-view-history{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background .2s;flex-shrink:0;align-self:center}.btn-view-history:hover{background:var(--color-primary-dark)}@media(max-width:600px){.history-page{height:auto}.history-main{min-height:calc(100vh - 100px)}.history-item{flex-wrap:wrap}.btn-view-history{width:100%;align-self:stretch}}.profile-page{min-height:100vh;background:var(--color-gray-50)}.profile-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-8);background:var(--bg-surface);border-bottom:1px solid var(--color-gray-200);position:sticky;top:0;z-index:var(--z-sticky)}.profile-header h1{margin:0;font-size:var(--text-xl);color:var(--color-gray-900)}.btn-back,.btn-logout{background:var(--bg-surface);border:1px solid var(--color-gray-300);color:var(--color-gray-700);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium)}.btn-back:hover,.btn-logout:hover{background:var(--color-gray-100);border-color:var(--color-gray-400)}.btn-logout{color:var(--danger-soft-text);border-color:var(--danger-soft-border);background:var(--danger-soft-bg)}.btn-logout:hover{filter:brightness(.98)}.profile-main{max-width:820px;margin:0 auto;padding:var(--space-8) var(--space-4)}.profile-card{background:var(--bg-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:var(--space-6)}.profile-info{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--color-gray-200)}.profile-avatar{width:56px;height:56px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--gradient-brand);color:var(--color-white);font-size:var(--text-xl);font-weight:var(--font-bold)}.profile-info h2{margin:0;color:var(--color-gray-900)}.profile-email,.profile-username{margin:var(--space-1) 0 0;color:var(--color-gray-600);font-size:var(--text-sm)}.profile-form h3{margin:0 0 var(--space-5);color:var(--color-gray-900)}.form-group{margin-bottom:var(--space-5)}.form-hint{margin:var(--space-2) 0 0;color:var(--color-gray-500);font-size:var(--text-xs)}.profile-message{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium)}.profile-message.success{background:var(--color-success-bg);color:var(--color-success);border:1px solid color-mix(in srgb,var(--color-success) 40%,white)}.profile-message.error{background:var(--danger-soft-bg);color:var(--danger-soft-text);border:1px solid var(--danger-soft-border)}.btn-save{width:100%;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-lg);background:var(--color-primary);color:var(--color-white);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer}.btn-save:hover:not(:disabled){background:var(--color-primary-dark)}.btn-save:disabled{opacity:.65;cursor:not-allowed}@media(max-width:700px){.profile-header{padding:var(--space-3) var(--space-4);flex-wrap:wrap}.profile-header h1{width:100%;order:3;font-size:var(--text-lg)}.profile-main{padding:var(--space-5) var(--space-3)}.profile-card{padding:var(--space-4)}}.language-switcher{position:fixed;bottom:var(--space-4);right:var(--space-4);z-index:1000}.language-switcher-button{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-surface);border:2px solid var(--color-gray-200);border-radius:var(--radius-xl);cursor:pointer;transition:var(--transition-base);box-shadow:var(--shadow-lg);font-family:var(--font-sans)}.language-switcher-button:hover{border-color:var(--color-primary);box-shadow:0 8px 24px #4f6ef74d;transform:translateY(-2px)}.language-flag{font-size:20px}.language-code{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-gray-800)}.language-dropdown{position:absolute;bottom:calc(100% + var(--space-3));right:0;background:var(--bg-surface);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-2);min-width:200px;animation:slideUp .2s ease-out}.language-section-title{font-size:11px;font-weight:700;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.04em;padding:6px 10px}.theme-title{margin-top:8px}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.language-option{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:transparent;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-base);font-family:var(--font-sans);text-align:left}.language-option:hover{background:var(--color-gray-50)}.language-option.active{background:#4f6ef71a}.language-option-flag{font-size:20px}.language-option-name{flex:1;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-gray-800)}.language-option-check{font-size:var(--text-sm);color:var(--color-primary);font-weight:var(--font-bold)}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px 8px 8px}.theme-option{border:1px solid var(--color-gray-200);background:var(--bg-surface);border-radius:var(--radius-lg);padding:8px;font-weight:600;cursor:pointer}.theme-option.active{border-color:var(--color-primary);color:var(--color-primary);background:#4f6ef72e}:root[data-theme=dark] .language-switcher-button{border-color:#334155;box-shadow:0 10px 24px #02061799}:root[data-theme=dark] .language-dropdown{border-color:#334155;box-shadow:0 16px 34px #020617b3}:root[data-theme=dark] .language-section-title{color:#cbd5e1}:root[data-theme=dark] .language-option:hover{background:#1e293b}:root[data-theme=dark] .language-option.active{background:#4f6ef747}:root[data-theme=dark] .theme-option{border-color:#334155}:root[data-theme=dark] .theme-option.active{color:#c7d2fe}@media(max-width:600px){.language-switcher{bottom:var(--space-3);right:var(--space-3)}.language-switcher-button{padding:var(--space-2) var(--space-3)}.language-dropdown{min-width:180px}}.credit-footer{position:fixed;left:50%;bottom:10px;transform:translate(-50%);z-index:250;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:11px;line-height:1;color:var(--text-muted);background:#ffffffeb;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);pointer-events:none;-webkit-user-select:none;user-select:none}.credit-dot{opacity:.7}:root[data-theme=dark] .credit-footer{background:#0f172aeb}:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-primary-light: #60a5fa;--color-secondary: #7c3aed;--color-secondary-dark: #6d28d9;--color-accent: #06b6d4;--overlay-backdrop: rgba(15, 23, 42, .45);--gradient-brand: linear-gradient(135deg, #2563eb 0%, #7c3aed 100%);--gradient-brand-soft: linear-gradient(135deg, rgba(37,99,235,.1) 0%, rgba(124,58,237,.1) 100%);--gradient-hero: linear-gradient(160deg, #0f172a 0%, #1e293b 50%, #334155 100%);--color-white: #ffffff;--color-gray-50: #f8fafc;--color-gray-100: #f1f5f9;--color-gray-200: #e2e8f0;--color-gray-300: #cbd5e1;--color-gray-400: #94a3b8;--color-gray-500: #475569;--color-gray-600: #334155;--color-gray-700: #1e293b;--color-gray-800: #0f172a;--color-gray-900: #020617;--color-success: #10b981;--color-success-bg: #d1fae5;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-error: #ef4444;--color-error-bg: #fee2e2;--color-info: #3b82f6;--color-info-bg: #dbeafe;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-normal: 400;--font-medium: 500;--font-semibold:600;--font-bold: 700;--font-extrabold:800;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed:1.625;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px rgba(0,0,0,.1), 0 4px 6px rgba(0,0,0,.05);--shadow-xl: 0 20px 25px rgba(0,0,0,.1), 0 10px 10px rgba(0,0,0,.04);--shadow-2xl: 0 25px 50px rgba(0,0,0,.25);--shadow-brand: 0 8px 24px rgba(37,99,235,.28);--transition-fast: all .15s ease;--transition-base: all .2s ease;--transition-slow: all .3s ease;--transition-spring: all .3s cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-raised: 10;--z-dropdown:100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--navbar-height: 64px;--sidebar-width: 280px;--bg-page: #f8fafc;--bg-surface: #ffffff;--text-main: #0f172a;--text-muted: #475569;--border-subtle: #e2e8f0;--interactive-muted-bg: #f1f5f9;--interactive-muted-bg-hover: #e2e8f0;--interactive-soft-bg: #eff6ff;--interactive-soft-text: #1e3a8a;--interactive-soft-bg-strong: #e0f2fe;--interactive-soft-text-strong: #0c4a6e;--danger-soft-bg: #fee2e2;--danger-soft-border: #fecaca;--danger-soft-text: #991b1b}:root[data-theme=dark]{--bg-page: #0f172a;--bg-surface: #1e293b;--text-main: #f1f5f9;--text-muted: #cbd5e1;--border-subtle: #334155;--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-light: #60a5fa;--color-secondary: #a78bfa;--color-secondary-dark: #8b5cf6;--color-accent: #22d3ee;--overlay-backdrop: rgba(2, 6, 23, .62);--color-white: #ffffff;--color-gray-50: #0f172a;--color-gray-100: #1e293b;--color-gray-200: #334155;--color-gray-300: #475569;--color-gray-400: #94a3b8;--color-gray-500: #cbd5e1;--color-gray-600: #e2e8f0;--color-gray-700: #f1f5f9;--color-gray-800: #f8fafc;--color-gray-900: #ffffff;--interactive-muted-bg: #0f172a;--interactive-muted-bg-hover: #1e293b;--interactive-soft-bg: #10243f;--interactive-soft-text: #93c5fd;--interactive-soft-bg-strong: #0f2a4a;--interactive-soft-text-strong: #dbeafe;--danger-soft-bg: #3a1111;--danger-soft-border: #7f1d1d;--danger-soft-text: #fecaca}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:var(--transition-base);-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-brand{background:var(--gradient-brand);color:var(--color-white);box-shadow:var(--shadow-brand)}.btn-brand:hover{filter:brightness(1.08);box-shadow:0 12px 28px #667eea73}.btn-primary{background:var(--color-primary);color:var(--color-white)}.btn-primary:hover{background:var(--color-primary-dark)}.btn-secondary{background:var(--color-gray-100);color:var(--color-gray-800);border:1px solid var(--color-gray-200)}.btn-secondary:hover{background:var(--color-gray-200)}.btn-ghost{background:transparent;color:var(--color-gray-700)}.btn-ghost:hover{background:var(--color-gray-100)}.btn-danger{background:var(--color-error);color:var(--color-white)}.btn-danger:hover{background:#dc2626}.btn-outline{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn-outline:hover{background:var(--color-primary);color:var(--color-white)}.btn-xs{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-md)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base);border-radius:var(--radius-xl)}.btn-xl{padding:var(--space-5) var(--space-10);font-size:var(--text-lg);border-radius:var(--radius-xl)}.btn-full{width:100%}.btn-icon{padding:var(--space-2);border-radius:var(--radius-md);aspect-ratio:1}.card{background:var(--bg-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden}.card-sm{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-lg{border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl)}.card-body{padding:var(--space-6)}.card-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-gray-100)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-gray-100);background:var(--color-gray-50)}.card-hover{transition:var(--transition-slow);cursor:pointer}.card-hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold);line-height:1.4}.badge-primary{background:var(--color-info-bg);color:var(--color-info)}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.badge-brand{background:var(--gradient-brand-soft);color:var(--color-primary)}.badge-gray{background:var(--color-gray-100);color:var(--color-gray-600)}.form-field{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-gray-700)}.form-input{width:100%;padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-gray-300);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-gray-900);background:var(--bg-surface);transition:var(--transition-base);box-sizing:border-box}.form-input::placeholder{color:var(--color-gray-400)}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea26}.form-input.error{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.form-input.success{border-color:var(--color-success);box-shadow:0 0 0 3px #10b9811a}.form-hint{font-size:var(--text-xs);color:var(--color-gray-500)}.form-error{font-size:var(--text-xs);color:var(--color-error)}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.alert-info{background:var(--color-info-bg);color:#1e40af;border-left:4px solid var(--color-info)}.alert-success{background:var(--color-success-bg);color:#065f46;border-left:4px solid var(--color-success)}.alert-warning{background:var(--color-warning-bg);color:#92400e;border-left:4px solid var(--color-warning)}.alert-error{background:var(--color-error-bg);color:#991b1b;border-left:4px solid var(--color-error)}.skeleton{background:linear-gradient(90deg,var(--color-gray-200) 25%,var(--color-gray-100) 50%,var(--color-gray-200) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1em;margin-bottom:var(--space-2)}.skeleton-title{height:1.5em;width:60%;margin-bottom:var(--space-3)}.skeleton-avatar{width:40px;height:40px;border-radius:var(--radius-full)}.skeleton-card{height:120px;border-radius:var(--radius-xl)}.divider{display:flex;align-items:center;gap:var(--space-4);color:var(--color-gray-400);font-size:var(--text-sm)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--color-gray-200)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);font-weight:var(--font-semibold);background:var(--gradient-brand);color:var(--color-white);flex-shrink:0}.avatar-sm{width:28px;height:28px;font-size:var(--text-xs)}.avatar-md{width:36px;height:36px;font-size:var(--text-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--text-base)}.avatar-xl{width:64px;height:64px;font-size:var(--text-xl)}.spinner{display:inline-block;width:20px;height:20px;border:2.5px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .7s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}.spinner-lg{width:32px;height:32px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-gray-900);color:var(--color-white);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:var(--z-toast)}[data-tooltip]:hover:after{opacity:1}.tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-gray-100);color:var(--color-gray-700);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);border:1px solid var(--color-gray-200)}.tag-brand{background:var(--gradient-brand-soft);color:var(--color-primary);border-color:#667eea33}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-gray-500)}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-4);opacity:.5}.empty-state-title{font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-gray-700);margin-bottom:var(--space-2)}.empty-state-desc{font-size:var(--text-sm);max-width:320px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.section-title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-gray-900);margin:0}.section-subtitle{font-size:var(--text-sm);color:var(--color-gray-500);margin:var(--space-1) 0 0}.hide-mobile{display:block}.show-mobile{display:none}@media(max-width:640px){.hide-mobile{display:none}.show-mobile{display:block}.btn-xl{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}}.container{width:100%;margin-inline:auto;padding-inline:var(--space-6)}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}.container-2xl{max-width:var(--container-2xl)}.page-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--color-gray-50)}.page-content{flex:1;padding:var(--space-8) var(--space-6)}.page-content-narrow{flex:1;padding:var(--space-8) var(--space-6);max-width:var(--container-lg);margin-inline:auto;width:100%}.app-layout{display:flex;min-height:calc(100vh - var(--navbar-height))}.app-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--color-gray-200);overflow-y:auto;position:sticky;top:var(--navbar-height);height:calc(100vh - var(--navbar-height))}.app-main{flex:1;overflow:hidden;min-width:0}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-auto{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.m-0{margin:0}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mx-auto{margin-inline:auto}.p-0{padding:0}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.px-4{padding-inline:var(--space-4)}.px-6{padding-inline:var(--space-6)}.py-4{padding-block:var(--space-4)}.py-6{padding-block:var(--space-6)}.py-8{padding-block:var(--space-8)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--color-primary)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-white{color:var(--color-white)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.w-full{width:100%}.h-full{height:100%}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.opacity-50{opacity:.5}@media(max-width:1024px){.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:1fr}.app-sidebar{display:none}.page-content,.page-content-narrow{padding:var(--space-4)}}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-page);color:var(--text-main);line-height:var(--leading-normal)}button{font-family:inherit;transition:all .2s ease}button:active{transform:scale(.98)}.btn-primary{background:var(--color-primary);color:#fff;border:none;padding:10px 20px;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-semibold);transition:var(--transition-base)}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-brand)}.btn-primary:disabled{background:var(--color-gray-400);cursor:not-allowed}.btn-primary-large{padding:12px 24px;font-size:var(--text-base)}.btn-secondary{background:var(--bg-surface);color:var(--text-main);border:1px solid var(--border-subtle);padding:10px 20px;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-medium);transition:var(--transition-base)}.btn-secondary:hover{background:var(--color-gray-100)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.loading{text-align:center;color:var(--color-gray-500);padding:20px}.error{background:var(--color-error-bg);border:1px solid #fca5a5;color:#991b1b;padding:12px;border-radius:var(--radius-lg);margin:16px 0;font-size:var(--text-sm)}.success{background:var(--color-success-bg);border:1px solid #6ee7b7;color:#065f46;padding:12px;border-radius:var(--radius-lg);margin:16px 0;font-size:var(--text-sm)}input[type=text],input[type=email],input[type=password],input[type=url],select,textarea{width:100%;padding:10px 12px;border:1.5px solid var(--color-gray-300);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--text-main);background:var(--bg-surface);transition:var(--transition-base)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4f6ef71f}input[type=file]{cursor:pointer}label{display:block;margin-bottom:6px;font-weight:var(--font-medium);color:var(--text-main);font-size:var(--text-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-gray-100)}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}@media(max-width:768px){body{font-size:14px}button{padding:8px 16px;font-size:13px}}@media(max-width:480px){body{font-size:13px}input,select,textarea{font-size:16px}}
