@import "https://fonts.googleapis.com/css2?family=Cabin+Condensed:wght@400;500;600;700&family=Product+Sans:wght@400;700&display=swap";
@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--bg-primary:#1a1d1e;--bg-secondary:#252828;--bg-card:#323333;--bg-card-hover:#3e3f3f;--bg-input:#272a2a;--accent-primary:#ff6801;--accent-primary-light:#ff8534;--accent-primary-dark:#e05d01;--accent-success:#10b981;--accent-success-light:#34d399;--accent-warning:#f59e0b;--accent-error:#ef4444;--accent-info:#3b82f6;--text-primary:#f5f5f5;--text-secondary:#a0a0a0;--text-muted:#707070;--text-accent:#ff8534;--gradient-primary:linear-gradient(135deg,#ff6801 0%,#ff8534 50%,#fa6 100%);--gradient-success:linear-gradient(135deg,#10b981 0%,#34d399 100%);--gradient-dark:linear-gradient(180deg,#1a1d1e 0%,#252828 100%);--gradient-card:linear-gradient(145deg,#ff680114 0%,#ff85340a 100%);--gradient-glow:radial-gradient(600px circle at var(--mouse-x,50%)var(--mouse-y,50%),#ff68010f,transparent 40%);--border-color:#ff680126;--border-color-hover:#ff680159;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #ff680126;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.25s cubic-bezier(.4,0,.2,1);--transition-slow:.4s cubic-bezier(.4,0,.2,1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Cabin Condensed,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes glow{0%,to{box-shadow:0 0 5px #ff680133}50%{box-shadow:0 0 20px #ff680166}}@keyframes typing{0%{opacity:.3}50%{opacity:1}to{opacity:.3}}.animate-fade-in{animation:fadeIn .5s var(--transition-base)forwards}.animate-slide-up{animation:slideUp .6s var(--transition-base)forwards}.app-container{background:var(--bg-primary);flex-direction:column;min-height:100vh;display:flex;position:relative}.app-container:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 50% at 5% 0,#ff68010d 0%,#0000 50%),radial-gradient(60% 40% at 95% 100%,#6366f10a 0%,#0000 50%);position:fixed;inset:0}.app-container:after{content:"∫  π  Σ  √  ∞  Δ  ∂  ∮  ≈  ±  ×  ÷  ∝  ∈  ∀  θ  λ  μ  φ  ω  ²  ³  ⁿ  ≤  ≥  ≠  ∴  ∵  ∅  ∇  ⊕  ⊗";letter-spacing:2.5rem;word-spacing:3rem;color:#ff680106;pointer-events:none;z-index:0;word-break:break-all;-webkit-user-select:none;user-select:none;font-size:1.4rem;line-height:5rem;position:fixed;inset:0;overflow:hidden}.main-content{z-index:1;flex:1;width:100%;padding:2rem 3rem;position:relative}.layout-2col{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}.layout-main-sidebar{grid-template-columns:1fr 380px;align-items:start;gap:1.5rem;display:grid}.layout-sidebar-main{grid-template-columns:340px 1fr;align-items:start;gap:1.5rem;display:grid}.layout-3col{grid-template-columns:repeat(3,1fr);align-items:start;gap:1.5rem;display:grid}.full-span{grid-column:1/-1}.navbar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);z-index:100;background:#252828d9;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--text-primary);align-items:center;gap:10px;text-decoration:none;display:flex}.navbar-logo{background:var(--gradient-primary);border-radius:var(--radius-sm);color:#fff;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:800;display:flex}.navbar-logo-img{object-fit:contain;flex-shrink:0;width:32px;height:32px}.navbar-title-img{object-fit:contain;width:auto;height:24px}.navbar-title{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.1rem;font-weight:700}.navbar-nav{align-items:center;gap:8px;display:flex}.nav-link{border-radius:var(--radius-full);color:var(--text-secondary);transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--text-primary);border-color:var(--border-color);background:#ff68011a}.nav-link.active{color:var(--accent-primary-light);border-color:var(--border-color-hover);background:#ff680126}.nav-link svg{vertical-align:middle;flex-shrink:0}.nav-user{align-items:center;gap:12px;display:flex}.nav-user-info{text-align:right}.nav-user-name{color:var(--text-primary);font-size:.875rem;font-weight:600}.nav-user-level{color:var(--text-accent);font-size:.75rem}.btn-logout{border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:6px 14px;font-size:.8rem}.btn-logout:hover{border-color:var(--accent-error);color:var(--accent-error);background:#ef44441a}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-family:Inter,Cabin Condensed,sans-serif;font-size:.9rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm),0 0 20px #ff680133}.btn-primary:hover{box-shadow:var(--shadow-md),0 0 30px #ff68014d;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);transform:translateY(-1px)}.btn-success{background:var(--gradient-success);color:#fff}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{color:var(--text-primary);background:#ff68011a}.btn-lg{border-radius:var(--radius-lg);padding:16px 32px;font-size:1rem}.btn-sm{padding:8px 16px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);padding:1.5rem}.card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-glow)}.card-glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-lg);background:#32333399;padding:1.5rem}.input-group{flex-direction:column;gap:6px;display:flex}.input-label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:12px 16px;font-family:Inter,Cabin Condensed,sans-serif;font-size:.9rem}.input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #ff680126}.input::placeholder{color:var(--text-muted)}.auth-container{background:var(--gradient-dark);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.auth-container:before{content:"";background:radial-gradient(circle,#ff68011a 0%,#0000 70%);border-radius:50%;width:600px;height:600px;position:absolute;top:-200px;right:-200px}.auth-container:after{content:"";background:radial-gradient(circle,#ff853414 0%,#0000 70%);border-radius:50%;width:400px;height:400px;position:absolute;bottom:-100px;left:-100px}.auth-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);z-index:1;width:100%;max-width:420px;padding:2.5rem;animation:.6s ease-out slideUp;position:relative}.auth-header{text-align:center;margin-bottom:2rem}.auth-icon{background:var(--gradient-primary);border-radius:var(--radius-lg);justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1rem;font-size:1.8rem;display:flex;box-shadow:0 0 30px #ff68014d}.auth-title{margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);font-size:.9rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-form .btn{width:100%;margin-top:.5rem}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.85rem}.auth-footer a{color:var(--accent-primary-light);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.error-msg{color:var(--accent-error);border-radius:var(--radius-sm);background:#ef44441a;border:1px solid #ef44444d;padding:10px 14px;font-size:.85rem;animation:.3s fadeIn}.success-msg{color:var(--accent-success);border-radius:var(--radius-sm);background:#10b9811a;border:1px solid #10b9814d;padding:10px 14px;font-size:.85rem;animation:.3s fadeIn}.chat-container{flex-direction:column;width:100%;max-width:1100px;height:calc(100vh - 64px);margin:0 auto;display:flex}.chat-header{border-bottom:1px solid var(--border-color);background:linear-gradient(#ff68010f 0%,#0000 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:1rem 1.5rem;display:flex}.chat-header-info h2{font-size:1.1rem;font-weight:600}.chat-header-info p{color:var(--text-secondary);font-size:.8rem}.chat-header-badge{border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-accent);background:#ff680126;align-items:center;padding:6px 14px;font-size:.8rem;font-weight:500;display:inline-flex}.chat-messages{scroll-behavior:smooth;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='rgba(255,104,1,0.035)' stroke-width='1.5' font-family='serif' font-size='18'%3E%3Ctext x='40' y='60' fill='rgba(255,104,1,0.04)' stroke='none'%3E∫ f(x) dx%3C/text%3E%3Ccircle cx='200' cy='80' r='25'/%3E%3Ctext x='185' y='85' fill='rgba(255,104,1,0.04)' stroke='none'%3Eπ%3C/text%3E%3Ctext x='350' y='50' fill='rgba(255,104,1,0.04)' stroke='none'%3Ea² + b² = c²%3C/text%3E%3Crect x='500' y='30' width='60' height='40' rx='4'/%3E%3Ctext x='510' y='55' fill='rgba(255,104,1,0.04)' stroke='none'%3E42%3C/text%3E%3Cpath d='M30,150 Q80,100 130,150 Q180,200 230,150'/%3E%3Ctext x='280' y='170' fill='rgba(255,104,1,0.04)' stroke='none'%3EΣ(n=1)%3C/text%3E%3Cline x1='420' y1='120' x2='480' y2='180'/%3E%3Cline x1='480' y1='120' x2='420' y2='180'/%3E%3Ctext x='500' y='155' fill='rgba(255,104,1,0.04)' stroke='none'%3E≠%3C/text%3E%3Cpath d='M50,270 L90,230 L130,270 L170,230'/%3E%3Ctext x='200' y='260' fill='rgba(255,104,1,0.04)' stroke='none'%3Ef'(x) = lim%3C/text%3E%3Ccircle cx='420' cy='250' r='18'/%3E%3Ctext x='410' y='255' fill='rgba(255,104,1,0.04)' stroke='none'%3E∞%3C/text%3E%3Ctext x='490' y='280' fill='rgba(255,104,1,0.04)' stroke='none'%3E√x%3C/text%3E%3Ctext x='60' y='370' fill='rgba(255,104,1,0.04)' stroke='none'%3Esin θ%3C/text%3E%3Cpath d='M150,340 Q200,370 250,340 Q300,310 350,340'/%3E%3Ctext x='380' y='360' fill='rgba(255,104,1,0.04)' stroke='none'%3Ecos 2π%3C/text%3E%3Crect x='490' y='330' width='50' height='35' rx='4'/%3E%3Ctext x='40' y='470' fill='rgba(255,104,1,0.04)' stroke='none'%3Elog₂(n)%3C/text%3E%3Ccircle cx='180' cy='450' r='20'/%3E%3Cpath d='M250,430 L300,480 L350,430'/%3E%3Ctext x='370' y='460' fill='rgba(255,104,1,0.04)' stroke='none'%3EΔx → 0%3C/text%3E%3Ctext x='500' y='470' fill='rgba(255,104,1,0.04)' stroke='none'%3Ee^x%3C/text%3E%3Cpath d='M40,540 Q90,510 140,540 Q190,570 240,540'/%3E%3Ctext x='280' y='550' fill='rgba(255,104,1,0.04)' stroke='none'%3Eπr²%3C/text%3E%3Ctext x='420' y='560' fill='rgba(255,104,1,0.04)' stroke='none'%3E∂y/∂x%3C/text%3E%3C/g%3E%3C/svg%3E");background-repeat:repeat;background-size:600px 600px;flex-direction:column;flex:1;gap:1rem;padding:1.5rem;display:flex;position:relative;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.message{max-width:80%;animation:.3s fadeIn}.message-student{align-self:flex-end}.message-tutor{align-self:flex-start}.message-bubble{border-radius:var(--radius-lg);padding:12px 16px;font-size:.9rem;line-height:1.6;position:relative}.message-student .message-bubble{background:var(--accent-primary);color:#fff;border-bottom-right-radius:4px}.message-tutor .message-bubble{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);border-bottom-left-radius:4px}.message-time{color:var(--text-muted);margin-top:4px;padding:0 4px;font-size:.7rem}.message-student .message-time{text-align:right}.message-tutor-avatar{align-items:flex-end;gap:8px;display:flex}.avatar-icon{background:var(--gradient-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.9rem;display:flex}.avatar-icon-img{background:#ff68011a;border-radius:50%;flex-shrink:0;width:32px;height:32px;padding:2px}.typing-indicator{align-self:flex-start;gap:4px;padding:16px;display:flex}.typing-dot{background:var(--accent-primary-light);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typing}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}.chat-input-area{border-top:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#252828cc;padding:1rem 1.5rem}.chat-question-card{border-radius:var(--radius-md);background:linear-gradient(145deg,#ff680114 0%,#ff85340a 100%);border:1px solid #ff680133;margin-bottom:12px;padding:12px 16px;font-size:.85rem;box-shadow:0 2px 8px #00000026}.chat-question-label{color:var(--text-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:.7rem;font-weight:600}.chat-input-wrapper{gap:8px;display:flex}.chat-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-primary);transition:all var(--transition-fast);resize:none;outline:none;flex:1;min-height:48px;max-height:120px;padding:12px 16px;font-family:Inter,Cabin Condensed,sans-serif;font-size:.9rem}.chat-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #ff68011a}.chat-send-btn{background:var(--gradient-primary);border-radius:var(--radius-md);color:#fff;cursor:pointer;width:48px;height:48px;transition:all var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.chat-send-btn:hover{box-shadow:var(--shadow-glow);transform:scale(1.05)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.dashboard{animation:.5s fadeIn}.dashboard-header{margin-bottom:2rem}.dashboard-greeting{margin-bottom:.3rem;font-size:1.8rem;font-weight:700}.dashboard-greeting span{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.dashboard-subtitle{color:var(--text-secondary);font-size:.95rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-base);padding:1.25rem;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--gradient-primary);opacity:0;height:3px;transition:opacity var(--transition-fast);position:absolute;top:0;left:0;right:0}.stat-card:after{content:"";width:80px;height:80px;transition:all var(--transition-base);background:radial-gradient(circle,#ff68010f 0%,#0000 70%);border-radius:50%;position:absolute;top:-30px;right:-30px}.stat-card:hover:before{opacity:1}.stat-card:hover:after{transform:scale(1.5)}.stat-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-glow);transform:translateY(-3px)}.stat-icon{border-radius:var(--radius-sm);background:#ff680114;margin-bottom:.6rem;padding:.4rem;font-size:1.6rem;display:inline-flex}.stat-value{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.25rem;font-size:1.8rem;font-weight:800}.stat-label{color:var(--text-secondary);letter-spacing:.01em;font-size:.78rem;font-weight:500}.dashboard-actions{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem;display:grid}.action-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-xl);text-align:center;transition:all var(--transition-base);cursor:pointer;color:inherit;padding:2rem;text-decoration:none;position:relative;overflow:hidden}.action-card:after{content:"";background:var(--gradient-card);opacity:0;transition:opacity var(--transition-base);position:absolute;inset:0}.action-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-lg),var(--shadow-glow);transform:translateY(-4px)}.action-card:hover:after{opacity:1}.action-card>*{z-index:1;position:relative}.action-icon{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1rem;font-size:1.8rem;display:flex}.action-icon.purple{background:#ff680126}.action-icon.green{background:#10b98126}.action-icon.blue{background:#3b82f626}.action-title{margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.action-desc{color:var(--text-secondary);font-size:.85rem;line-height:1.5}.diagnostic-container{max-width:100%;margin:0 auto;animation:.6s slideUp}.diagnostic-progress{margin-bottom:2rem}.progress-bar-bg{background:var(--bg-input);border-radius:var(--radius-full);height:8px;margin-top:8px;overflow:hidden}.progress-bar-fill{background:var(--gradient-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.progress-text{color:var(--text-secondary);font-size:.8rem}.diagnostic-question{animation:.4s fadeIn}.question-number{color:var(--text-accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.8rem;font-weight:600}.question-text{margin-bottom:1.5rem;font-size:1.2rem;font-weight:600;line-height:1.5}.question-input{width:100%;margin-bottom:1rem}.diagnostic-nav{justify-content:space-between;align-items:center;margin-top:1.5rem;display:flex}.result-container{text-align:center;max-width:500px;margin:2rem auto;animation:.6s slideUp}.result-icon{margin-bottom:1rem;font-size:4rem;animation:3s ease-in-out infinite float}.result-title{margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.result-score{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:1rem 0;font-size:3rem;font-weight:800}.result-level{border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-accent);background:#ff680126;margin-bottom:1.5rem;padding:8px 20px;font-weight:600;display:inline-block}@media (min-width:1800px){.main-content{max-width:1700px;padding:2rem 4rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@media (max-width:1024px){.main-content{padding:1.5rem 2rem}.chat-container{max-width:100%}.layout-2col,.layout-main-sidebar,.layout-sidebar-main,.layout-3col{grid-template-columns:1fr}}@media (max-width:768px){.main-content{padding:1rem}.navbar{height:56px;padding:0 1rem}.navbar-nav{gap:2px}.nav-link{padding:5px 10px;font-size:.75rem}.nav-user-info{display:none}.auth-card{margin:1rem;padding:1.5rem}.stats-grid{grid-template-columns:1fr 1fr;gap:.75rem}.dashboard-actions{grid-template-columns:1fr}.message{max-width:92%}.dashboard-greeting{font-size:1.4rem}.stat-card{padding:1rem}.stat-value{font-size:1.5rem}.layout-2col,.layout-main-sidebar,.layout-sidebar-main,.layout-3col{grid-template-columns:1fr}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}.navbar-title{display:none}}.eval-badge{border-radius:var(--radius-full);align-items:center;gap:4px;margin-top:6px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.eval-correct{color:var(--accent-success);background:#10b98126;border:1px solid #10b9814d}.eval-incorrect{color:var(--accent-error);background:#ef44441a;border:1px solid #ef44444d}.level-badge{border-radius:var(--radius-full);color:var(--text-accent);border:1px solid var(--border-color);background:#ff680126;align-items:center;gap:6px;padding:4px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.level-up{color:var(--accent-success);background:#10b98126;border-color:#10b9814d;animation:2s ease-in-out glow}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:60vh;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:.9rem}.calc-fab{background:var(--gradient-primary);cursor:pointer;width:52px;height:52px;box-shadow:var(--shadow-md),0 0 20px #ff68014d;transition:all var(--transition-base);z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out infinite float;display:flex;position:fixed;bottom:24px;right:24px}.calc-fab:hover{box-shadow:var(--shadow-lg),0 0 30px #ff680166;transform:scale(1.1)}.calc-fab-icon{font-size:1.5rem}.calc-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:320px;box-shadow:var(--shadow-lg),0 0 40px #00000080;z-index:1001;background:#1e1e1ef7;animation:.3s ease-out slideUp;position:fixed;bottom:90px;right:24px;overflow:hidden}.calc-header{border-bottom:1px solid var(--border-color);background:#ff68010f;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.calc-header-left{align-items:center;gap:8px;display:flex}.calc-title{color:var(--text-primary);font-size:.85rem;font-weight:700}.calc-mode-btn{border-radius:var(--radius-full);border:1px solid var(--border-color);color:var(--accent-primary);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:2px 8px;font-size:.65rem;font-weight:600}.calc-mode-btn:hover{background:#ff680126}.calc-header-right{gap:4px;display:flex}.calc-icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:.8rem;display:flex}.calc-icon-btn:hover{color:var(--text-primary);background:#ffffff14}.calc-close-btn:hover{color:var(--accent-error);background:#ef444433}.calc-history{border-bottom:1px solid var(--border-color);background:#0003;max-height:150px;padding:6px 10px;overflow-y:auto}.calc-history-empty{text-align:center;color:var(--text-muted);padding:8px;font-size:.75rem}.calc-history-item{border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast);margin-bottom:2px;padding:4px 6px}.calc-history-item:hover{background:#ff68011a}.calc-history-expr{color:var(--text-muted);font-family:monospace;font-size:.7rem}.calc-history-result{color:var(--accent-primary);font-family:monospace;font-size:.8rem;font-weight:600}.calc-display{background:var(--bg-input);border-bottom:1px solid var(--border-color);padding:12px 14px 8px;position:relative}.calc-expression{color:var(--text-muted);text-align:right;white-space:nowrap;min-height:18px;font-family:Courier New,monospace;font-size:.75rem;overflow-x:auto}.calc-result{color:var(--text-primary);text-align:right;white-space:nowrap;font-family:Courier New,monospace;font-size:1.6rem;font-weight:700;overflow-x:auto}.calc-indicators{gap:6px;margin-top:4px;display:flex}.calc-indicator{color:var(--accent-primary);background:#ff68011f;border-radius:3px;padding:1px 5px;font-size:.6rem;font-weight:600}.calc-buttons{padding:6px}.calc-row{grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:4px;display:grid}.calc-row-memory{margin-bottom:6px}.calc-btn{border-radius:var(--radius-sm);cursor:pointer;height:36px;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;font-family:Inter,sans-serif;font-size:.8rem;font-weight:600;display:flex}.calc-btn:active{transform:scale(.94)}.calc-btn-num{color:var(--text-primary);background:#ffffff14}.calc-btn-num:hover{background:#ffffff26}.calc-btn-op{color:var(--accent-primary-light);background:#ff680133}.calc-btn-op:hover{background:#ff680159}.calc-btn-func{color:#a5b4fc;background:#6366f126}.calc-btn-func:hover{background:#6366f140}.calc-btn-sci{color:#c4b5fd;background:#8b5cf61f;font-size:.7rem}.calc-btn-sci:hover{background:#8b5cf640}.calc-btn-mem{color:#6ee7b7;background:#10b9811f;height:28px;font-size:.7rem}.calc-btn-mem:hover{background:#10b98140}.calc-btn-equals{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 8px #ff68014d}.calc-btn-equals:hover{box-shadow:0 4px 12px #ff680180}.wb-fab{cursor:pointer;width:52px;height:52px;box-shadow:var(--shadow-md),0 0 20px #8b5cf64d;transition:all var(--transition-base);z-index:1000;background:linear-gradient(135deg,#8b5cf6,#a78bfa);border:none;border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out .5s infinite float;display:flex;position:fixed;bottom:88px;right:24px}.wb-fab:hover{box-shadow:var(--shadow-lg),0 0 30px #8b5cf666;transform:scale(1.1)}.wb-fab-icon{font-size:1.5rem}.wb-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);width:520px;height:440px;box-shadow:var(--shadow-lg),0 0 40px #00000080;z-index:1001;background:#1a1a1af7;border:1px solid #8b5cf640;flex-direction:column;animation:.3s ease-out slideUp;display:flex;position:fixed;bottom:80px;right:24px;overflow:hidden}.wb-fullscreen{z-index:9999;border-radius:0;width:100vw;height:100vh;inset:0}.wb-header{background:#8b5cf60f;border-bottom:1px solid #8b5cf633;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.wb-title{color:var(--text-primary);font-size:.85rem;font-weight:700}.wb-header-actions{gap:4px;display:flex}.wb-icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:.8rem;display:flex}.wb-icon-btn:hover{color:var(--text-primary);background:#ffffff14}.wb-icon-btn:disabled{opacity:.3;cursor:not-allowed}.wb-close-btn:hover{color:var(--accent-error);background:#ef444433}.wb-toolbar{border-bottom:1px solid var(--border-color);background:#0003;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;padding:6px 12px;display:flex}.wb-tool-group{align-items:center;gap:4px;display:flex}.wb-separator{background:var(--border-color);width:1px;height:24px}.wb-tool-btn{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:1rem;display:flex}.wb-tool-btn:hover{background:#ffffff14}.wb-tool-active{background:#8b5cf633;border-color:#8b5cf666}.wb-colors{gap:3px}.wb-color-btn{cursor:pointer;width:22px;height:22px;transition:all var(--transition-fast);border:2px solid #0000;border-radius:50%}.wb-color-btn:hover{transform:scale(1.2)}.wb-color-active{border-color:var(--text-primary);box-shadow:0 0 8px #ffffff4d}.wb-width-btn{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.wb-width-btn:hover{background:#ffffff14}.wb-width-active{background:#8b5cf633;border-color:#8b5cf64d}.wb-width-dot{background:var(--text-primary);border-radius:50%;display:block}.wb-canvas-container{background:var(--bg-primary);flex:1;position:relative;overflow:hidden}.wb-canvas{touch-action:none;width:100%;height:100%;position:absolute;top:0;left:0}.wb-canvas-preview{pointer-events:none;z-index:1}.wb-shape-btn{font-weight:700;font-size:.85rem!important}.wb-eraser-slider-container{border-bottom:1px solid var(--border-color);background:#00000040;flex-shrink:0;align-items:center;gap:10px;padding:4px 14px;animation:.2s fadeIn;display:flex}.wb-eraser-label{color:var(--text-muted);white-space:nowrap;min-width:100px;font-size:.72rem}.wb-eraser-slider{appearance:none;background:#ffffff1a;border-radius:4px;outline:none;flex:1;height:4px}.wb-eraser-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#a78bfa);border-radius:50%;width:16px;height:16px;transition:transform .15s;box-shadow:0 0 6px #8b5cf680}.wb-eraser-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.wb-eraser-slider::-moz-range-thumb{cursor:pointer;background:linear-gradient(135deg,#8b5cf6,#a78bfa);border:none;border-radius:50%;width:16px;height:16px}.wb-eraser-cursor{pointer-events:none;z-index:10;mix-blend-mode:difference;border:2px solid #ffffff80;border-radius:50%;transition:width .1s,height .1s;position:absolute}.wb-analyze-btn{color:#a78bfa!important;transition:all .2s!important}.wb-analyze-btn:hover:not(:disabled){box-shadow:0 0 12px #8b5cf64d;background:#8b5cf633!important}.wb-analyzing{color:var(--accent-primary)!important;animation:1s infinite pulse!important}.img-feedback-card{border:1px solid;border-radius:12px;max-width:420px;margin-top:8px;animation:.3s fadeIn;overflow:hidden}.img-feedback-correct{background:#22c55e0f;border-color:#22c55e33}.img-feedback-incorrect{background:#ef44440f;border-color:#ef444433}.img-feedback-header{cursor:pointer;justify-content:space-between;align-items:center;padding:10px 14px;transition:background .2s;display:flex}.img-feedback-header:hover{background:#ffffff08}.img-feedback-verdict{align-items:center;gap:10px;display:flex}.img-feedback-icon{font-size:1.3rem}.img-feedback-title{color:var(--text-primary);font-size:.85rem;font-weight:700}.img-feedback-subtitle{color:var(--text-muted);margin-top:2px;font-size:.7rem}.img-feedback-chevron{color:var(--text-muted);font-size:1rem;transition:transform .2s}.img-feedback-chevron-open{transform:rotate(180deg)}.img-feedback-veredicto{color:var(--text-secondary);border-top:1px solid #ffffff0d;padding:8px 14px;font-size:.8rem;line-height:1.5}.img-feedback-details{flex-direction:column;gap:14px;padding:0 14px 14px;animation:.25s fadeIn;display:flex}.img-feedback-section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:.75rem;font-weight:700}.img-feedback-steps{flex-direction:column;gap:6px;display:flex}.img-feedback-step{border-left:3px solid;border-radius:8px;padding:8px 10px}.img-step-ok{background:#22c55e0a;border-left-color:#22c55e}.img-step-error{background:#ef44440d;border-left-color:#ef4444}.img-step-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.img-step-icon{font-size:.75rem}.img-step-num{color:var(--text-primary);font-size:.72rem;font-weight:700}.img-step-error-badge{color:#f87171;text-transform:uppercase;letter-spacing:.3px;background:#ef444426;border-radius:10px;padding:1px 6px;font-size:.6rem;font-weight:600}.img-step-desc{color:var(--text-secondary);font-size:.78rem;line-height:1.4}.img-step-expr{color:var(--accent-primary-light);background:#ff68010f;border-radius:6px;margin-top:4px;padding:4px 8px;font-family:Courier New,monospace;font-size:.78rem}.img-step-error-detail{color:#f87171;background:#ef444414;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:.75rem}.img-step-error-label{font-weight:700}.img-step-correction{color:#4ade80;background:#22c55e14;border-radius:6px;margin-top:4px;padding:4px 8px;font-size:.75rem}.img-step-correction-label{font-weight:700}.img-feedback-suggestions{flex-direction:column;gap:6px;display:flex}.img-suggestion-item{color:var(--text-secondary);background:#6366f10f;border-left:3px solid #6366f14d;border-radius:8px;padding:6px 10px;font-size:.78rem;line-height:1.4}.img-feedback-guide-question{background:#8b5cf614;border:1px solid #8b5cf626;border-radius:10px;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.img-guide-icon{flex-shrink:0;margin-top:1px;font-size:1.1rem}.img-feedback-guide-question>:last-child{color:#c4b5fd;font-size:.8rem;font-style:italic;line-height:1.5}.img-feedback-answers{background:#ffffff05;border:1px solid #ffffff0f;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.img-answer-row{align-items:center;gap:8px;font-size:.78rem;display:flex}.img-answer-label{color:var(--text-muted);white-space:nowrap;font-weight:600}.img-answer-value{color:var(--text-primary);font-family:Courier New,monospace}.img-answer-correct .img-answer-value{color:#4ade80}.gcalc-fab{cursor:pointer;width:52px;height:52px;box-shadow:var(--shadow-md),0 0 20px #06b6d44d;transition:all var(--transition-base);z-index:1000;background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out 1s infinite float;display:flex;position:fixed;bottom:152px;right:24px}.gcalc-fab:hover{box-shadow:var(--shadow-lg),0 0 30px #06b6d466;transform:scale(1.1)}.gcalc-fab-icon{font-size:1.5rem}.gcalc-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);width:580px;height:520px;box-shadow:var(--shadow-lg),0 0 40px #00000080;z-index:1001;background:#141414f7;border:1px solid #06b6d440;flex-direction:column;animation:.3s ease-out slideUp;display:flex;position:fixed;bottom:80px;right:24px;overflow:hidden}.gcalc-fullscreen{z-index:9999;border-radius:0;width:100vw;height:100vh;inset:0}.gcalc-header{background:#06b6d40f;border-bottom:1px solid #06b6d433;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.gcalc-header-left{align-items:center;gap:10px;display:flex}.gcalc-title{color:var(--text-primary);font-size:.85rem;font-weight:700}.gcalc-fn-count{color:#67e8f9;background:#06b6d41f;border-radius:20px;padding:2px 8px;font-size:.65rem;font-weight:600}.gcalc-header-actions{gap:4px;display:flex}.gcalc-icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:.8rem;display:flex}.gcalc-icon-btn:hover{color:var(--text-primary);background:#ffffff14}.gcalc-btn-active{color:#67e8f9;background:#06b6d426}.gcalc-close-btn:hover{color:var(--accent-error);background:#ef444433}.gcalc-clear-btn:hover:not(:disabled){color:#fbbf24;background:#f59e0b33}.gcalc-clear-btn:disabled{opacity:.3;cursor:not-allowed}.gcalc-input-bar{border-bottom:1px solid var(--border-color);background:#0003;flex-shrink:0;padding:8px 12px}.gcalc-input-wrapper{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:6px;padding:4px 8px;transition:border-color .2s;display:flex}.gcalc-input-wrapper:focus-within{border-color:#06b6d480;box-shadow:0 0 0 2px #06b6d41a}.gcalc-input-prefix{color:#67e8f9;white-space:nowrap;font-family:Courier New,monospace;font-size:.78rem;font-weight:700}.gcalc-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:4px 0;font-family:Courier New,monospace;font-size:.82rem}.gcalc-input::placeholder{color:var(--text-muted);font-style:italic}.gcalc-add-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#06b6d4,#0891b2);border:none;border-radius:6px;padding:4px 12px;font-size:.72rem;font-weight:700;transition:all .2s}.gcalc-add-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #06b6d466}.gcalc-add-btn:disabled{opacity:.4;cursor:not-allowed}.gcalc-error{color:#f87171;margin-top:4px;padding:2px 6px;font-size:.72rem;animation:.2s fadeIn}.gcalc-templates-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 0 0;font-size:.68rem;transition:color .2s}.gcalc-templates-toggle:hover{color:#67e8f9}.gcalc-templates{border-bottom:1px solid var(--border-color);background:#00000026;flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 12px;animation:.2s fadeIn;display:grid}.gcalc-template-btn{cursor:pointer;background:#ffffff08;border:1px solid #0000;border-radius:6px;flex-direction:column;align-items:center;padding:6px 4px;transition:all .15s;display:flex}.gcalc-template-btn:hover{background:#06b6d41a;border-color:#06b6d440}.gcalc-template-label{color:var(--text-muted);font-size:.65rem;font-weight:600}.gcalc-template-expr{color:#67e8f9;margin-top:2px;font-family:Courier New,monospace;font-size:.7rem}.gcalc-fn-list{border-bottom:1px solid var(--border-color);flex-direction:column;flex-shrink:0;gap:2px;max-height:100px;padding:4px 12px;display:flex;overflow-y:auto}.gcalc-fn-item{border-radius:6px;align-items:center;gap:8px;padding:3px 6px;transition:all .15s;display:flex}.gcalc-fn-item:hover{background:#ffffff08}.gcalc-fn-hidden{opacity:.4}.gcalc-fn-color{cursor:pointer;border:2px solid #ffffff26;border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:transform .15s}.gcalc-fn-color:hover{transform:scale(1.2)}.gcalc-fn-expr{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;font-family:Courier New,monospace;font-size:.75rem}.gcalc-fn-remove{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:.65rem;transition:all .15s;display:flex}.gcalc-fn-remove:hover{color:var(--accent-error);background:#ef444433}.gcalc-canvas-container{background:#0f0f0f;flex:1;position:relative;overflow:hidden}.gcalc-canvas{width:100%;height:100%;position:absolute;top:0;left:0}.gcalc-zoom-controls{z-index:5;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:12px;right:12px}.gcalc-zoom-btn{width:32px;height:32px;color:var(--text-primary);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#141414cc;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;transition:all .15s;display:flex}.gcalc-zoom-btn:hover{background:#06b6d433;border-color:#06b6d44d}.gcalc-empty-state{text-align:center;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gcalc-empty-icon{opacity:.3;margin-bottom:8px;font-size:2.5rem}.gcalc-empty-text{color:var(--text-muted);font-size:.85rem;font-weight:600}.gcalc-empty-hint{color:var(--text-muted);opacity:.6;margin-top:4px;font-family:Courier New,monospace;font-size:.72rem}@media (max-width:768px){.gcalc-panel{width:calc(100vw - 16px);height:460px;bottom:70px;right:8px}.gcalc-fab{width:44px;height:44px;bottom:200px;right:16px}.gcalc-templates{grid-template-columns:repeat(3,1fr)}}.tts-container{vertical-align:middle;align-items:center;gap:4px;display:inline-flex}.tts-btn{border:1px solid var(--border-color);width:26px;height:26px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;line-height:1;display:inline-flex}.tts-btn:hover{border-color:var(--border-color-hover);color:var(--accent-primary);background:#ff680126}.tts-btn-md{width:32px;height:32px;font-size:.9rem}.tts-playing{border-color:var(--accent-primary);color:var(--accent-primary);background:#ff680133;animation:1.5s infinite pulse}.tts-controls{align-items:center;gap:3px;animation:.2s fadeIn;display:inline-flex}.tts-ctrl-btn{border:1px solid var(--border-color);width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;font-size:.6rem;display:inline-flex}.tts-ctrl-btn:hover{color:var(--accent-primary);background:#ff680126}.tts-speed-btn{border-radius:var(--radius-sm);width:auto;padding:0 6px;font-family:monospace;font-size:.6rem;font-weight:700}@media (max-width:768px){.calc-panel{width:calc(100vw - 16px);max-width:340px;bottom:70px;right:8px}.calc-fab{width:44px;height:44px;bottom:75px;right:16px}.wb-panel{width:calc(100vw - 16px);height:380px;bottom:70px;right:8px}.wb-fab{width:44px;height:44px;bottom:130px;right:16px}}.progress-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;width:0;transition:width .3s;display:flex;overflow:hidden}.progress-sidebar-open{width:320px;min-width:320px}.progress-sidebar-header{border-bottom:1px solid var(--border-color);background:#ff68010a;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.progress-sidebar-header h3{color:var(--text-primary);white-space:nowrap;margin:0;font-size:1rem;font-weight:700}.progress-sidebar-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1rem;transition:all .2s}.progress-sidebar-close:hover{color:var(--text-primary);background:#ffffff0d}.progress-sidebar-content{flex-direction:column;flex:1;gap:20px;padding:16px;display:flex;overflow-y:auto}.progress-stats-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.progress-stat-card{border:1px solid var(--border-color);text-align:center;background:#ffffff08;border-radius:10px;padding:12px;transition:all .2s}.progress-stat-card:hover{border-color:var(--primary-color);background:#ff68010a}.progress-stat-value{color:var(--primary-color);font-size:1.4rem;font-weight:800;line-height:1.2}.progress-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:.7rem}.progress-section{flex-direction:column;gap:10px;display:flex}.progress-section h4{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:.8rem;font-weight:700}.progress-topics-list{flex-direction:column;gap:12px;display:flex}.progress-topic-item{flex-direction:column;gap:4px;display:flex}.progress-topic-header{justify-content:space-between;align-items:center;display:flex}.progress-topic-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.progress-topic-pct{color:var(--primary-color);font-size:.75rem;font-weight:700}.progress-bar-track{background:#ffffff0f;border-radius:10px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{border-radius:10px;height:100%;transition:width .5s}.progress-bar-mastered{background:linear-gradient(90deg,#22c55e,#16a34a)}.progress-bar-medium{background:linear-gradient(90deg,#f59e0b,#d97706)}.progress-bar-weak{background:linear-gradient(90deg,#ef4444,#dc2626)}.progress-topic-detail{color:var(--text-muted);font-size:.7rem}.progress-tag-group{margin-bottom:8px}.progress-tag-group h4{margin-bottom:6px;font-size:.75rem}.progress-tags{flex-wrap:wrap;gap:6px;display:flex}.progress-tag{white-space:nowrap;border-radius:20px;padding:3px 10px;font-size:.7rem;font-weight:600}.progress-tag-weak{color:#f87171;background:#ef44441f;border:1px solid #ef444440}.progress-tag-strong{color:#4ade80;background:#22c55e1f;border:1px solid #22c55e40}.progress-summary-text{color:var(--text-secondary);border:1px solid var(--border-color);background:#ffffff05;border-radius:8px;margin:0;padding:10px;font-size:.78rem;line-height:1.5}.progress-toggle-btn{color:var(--primary-color);cursor:pointer;white-space:nowrap;background:#ff68011a;border:1px solid #ff680140;border-radius:20px;padding:4px 12px;font-size:.75rem;font-weight:600;transition:all .2s}.progress-toggle-btn:hover{border-color:var(--primary-color);background:#ff680133}@media (max-width:768px){.progress-sidebar{z-index:1000;height:100vh;position:fixed;top:0;left:0;box-shadow:4px 0 20px #00000080}.progress-sidebar-open{width:85vw;min-width:auto}}.stt-btn{border:1px solid var(--border-color);background:var(--bg-card);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex;position:relative}.stt-btn:hover:not(:disabled){border-color:var(--accent-primary);background:#ff68011a;box-shadow:0 0 12px #ff680126}.stt-btn:disabled{opacity:.4;cursor:not-allowed}.stt-btn.stt-listening{border-color:var(--accent-error);background:#ef444426;animation:1.5s ease-in-out infinite stt-glow}.stt-btn.stt-unsupported{opacity:.3;cursor:not-allowed}.stt-recording-icon{justify-content:center;align-items:center;display:flex;position:relative}.stt-pulse-ring{border:2px solid var(--accent-error);border-radius:50%;width:100%;height:100%;animation:1.2s ease-out infinite stt-pulse;position:absolute}@keyframes stt-pulse{0%{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(2)}}@keyframes stt-glow{0%,to{box-shadow:0 0 8px #ef44444d}50%{box-shadow:0 0 20px #ef444480}}.stt-error-toast{color:#fff;border-radius:var(--radius-md);z-index:1000;box-shadow:var(--shadow-md);text-align:center;background:#ef4444f2;max-width:90vw;padding:10px 20px;font-size:.85rem;animation:.3s fadeIn;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.img-upload-btn{border:1px solid var(--border-color);background:var(--bg-card);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.img-upload-btn:hover:not(:disabled){border-color:var(--accent-info);background:#3b82f61a;box-shadow:0 0 12px #3b82f626}.img-upload-btn:disabled{opacity:.4;cursor:not-allowed}.img-preview-container{width:100%;padding:0 0 8px}.img-preview-card{border-radius:var(--radius-md);background:#3b82f614;border:1px solid #3b82f640;align-items:center;gap:10px;padding:8px 12px;animation:.3s fadeIn;display:flex}.img-preview-thumb{border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-color);width:48px;height:48px}.img-preview-info{flex-direction:column;flex:1;min-width:0;display:flex}.img-preview-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:500;overflow:hidden}.img-preview-hint{color:var(--text-muted);font-size:.7rem}.img-preview-remove{width:28px;height:28px;color:var(--accent-error);cursor:pointer;transition:all var(--transition-fast);background:#ef44441a;border:1px solid #ef44444d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;display:flex}.img-preview-remove:hover{border-color:var(--accent-error);background:#ef444440}.img-drop-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.img-drop-content{border:3px dashed var(--accent-primary);border-radius:var(--radius-xl);color:var(--text-primary);flex-direction:column;align-items:center;gap:12px;padding:3rem;font-size:1.2rem;font-weight:600;display:flex}.img-drop-icon{font-size:3rem;animation:2s ease-in-out infinite float}.img-error-toast{color:#fff;border-radius:var(--radius-md);z-index:1000;box-shadow:var(--shadow-md);text-align:center;background:#ef4444f2;max-width:90vw;padding:10px 20px;font-size:.85rem;animation:.3s fadeIn;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}.message-image-container{margin-bottom:6px}.message-image{border-radius:var(--radius-md);border:1px solid var(--border-color);object-fit:contain;cursor:pointer;max-width:280px;max-height:280px;transition:all var(--transition-fast)}.message-image:hover{border-color:var(--accent-primary);transform:scale(1.02);box-shadow:0 0 15px #ff680133}.typing-label{color:var(--text-accent);margin-right:8px;font-size:.8rem;animation:1.5s ease-in-out infinite pulse}.chat-input-wrapper{align-items:flex-end;gap:8px;display:flex}@media (max-width:768px){.stt-btn,.img-upload-btn{width:36px;height:36px;font-size:1rem}.message-image{max-width:200px;max-height:200px}.img-preview-thumb{width:40px;height:40px}}.mck-chart-wrapper{width:100%}.mck-chart-header{margin-bottom:.75rem}.mck-chart-title{color:var(--text-primary);letter-spacing:-.01em;font-size:.88rem;font-weight:700}.mck-chart-subtitle{color:var(--text-muted);margin-top:.15rem;font-size:.72rem}.mck-chart-legend{flex-wrap:wrap;gap:1rem;margin-top:.5rem;display:flex}.mck-legend-item{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.72rem;display:flex}.mck-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.mck-legend-text{white-space:nowrap}.mck-chart-section{grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-bottom:1.5rem;display:grid}.mck-chart-card{border-radius:var(--radius-lg,12px);background:var(--bg-card);border:1px solid var(--border-color);padding:1.25rem}.mck-chart-card-full{grid-column:1/-1}@media (max-width:768px){.mck-chart-section{grid-template-columns:1fr}}.dm-layout{z-index:1;grid-template-columns:360px 1fr;height:calc(100vh - 64px);display:grid;position:relative;overflow:hidden}.dm-sidebar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--border-color);background:#25282899;flex-direction:column;display:flex;overflow:hidden}.dm-sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.25rem 1rem;display:flex}.dm-sidebar-header h2{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-weight:800}.dm-total-badge{background:var(--accent-primary);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:20px;padding:2px 8px;font-size:.7rem;font-weight:700}.dm-total-badge:empty{display:none}.dm-search{padding:.75rem 1.25rem}.dm-search .input{background:var(--bg-input);border-radius:var(--radius-full);width:100%;padding:10px 14px;font-size:.82rem}.dm-conversation-list{flex:1;padding:.25rem 0;overflow-y:auto}.dm-conversation-list::-webkit-scrollbar{width:4px}.dm-conversation-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.dm-conversation-item{cursor:pointer;transition:all var(--transition-fast);border-left:3px solid #0000;align-items:center;gap:.75rem;padding:.85rem 1.25rem;display:flex}.dm-conversation-item:hover{background:#ff68010a}.dm-conversation-item.active{border-left-color:var(--accent-primary);background:#ff68011a}.dm-conversation-item.unread{background:#ff68010a}.dm-conversation-item.unread .dm-conv-name{color:var(--text-primary);font-weight:700}.dm-conversation-item.unread .dm-conv-last-msg{color:var(--text-primary);font-weight:600}.dm-avatar{background:var(--gradient-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1rem;font-weight:800;display:flex;box-shadow:0 0 12px #ff680133}.dm-conv-info{flex:1;min-width:0}.dm-conv-header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.dm-conv-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.dm-conv-time{color:var(--text-muted);flex-shrink:0;margin-left:.5rem;font-size:.7rem}.dm-conv-preview{justify-content:space-between;align-items:center;display:flex}.dm-conv-last-msg{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:.8rem;overflow:hidden}.dm-unread-badge{background:var(--accent-primary);color:#fff;border-radius:var(--radius-full);text-align:center;flex-shrink:0;min-width:18px;padding:2px 7px;font-size:.65rem;font-weight:700;animation:2s infinite glow}.dm-empty-state{text-align:center;color:var(--text-secondary);padding:3rem 2rem;font-size:.85rem}.dm-chat-area{background:var(--bg-primary);flex-direction:column;display:flex;position:relative}.dm-chat-header{border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#25282880;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;display:flex}.dm-back-btn{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:6px 14px;font-size:.8rem;display:none}.dm-back-btn:hover{border-color:var(--accent-primary);color:var(--text-primary)}.dm-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:.5rem;padding:1.5rem;display:flex;overflow-y:auto}.dm-messages::-webkit-scrollbar{width:5px}.dm-messages::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.dm-message{max-width:75%;animation:.25s fadeIn;display:flex}.dm-message.own{justify-content:flex-end;align-self:flex-end}.dm-message.other{align-self:flex-start}.dm-bubble{border-radius:var(--radius-lg);word-wrap:break-word;max-width:100%;padding:10px 14px;font-size:.88rem;line-height:1.55;position:relative}.dm-message.own .dm-bubble{color:#fff;background:linear-gradient(135deg,#ff6801 0%,#ff8533 100%);border-bottom-right-radius:4px;box-shadow:0 2px 8px #ff680140}.dm-message.other .dm-bubble{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);border-bottom-left-radius:4px}.dm-msg-text{white-space:pre-wrap;margin:0}.dm-msg-meta{justify-content:flex-end;align-items:center;gap:4px;margin-top:4px;display:flex}.dm-msg-time{opacity:.7;font-size:.65rem}.dm-msg-status{opacity:.7;font-size:.7rem}.dm-msg-status.read{color:#60a5fa;opacity:1;font-weight:700}.dm-message.own .dm-msg-time,.dm-message.own .dm-msg-status{color:#fffc}.dm-message.own .dm-msg-status.read{color:#bfdbfe;opacity:1}.dm-attached-image{border-radius:var(--radius-sm);cursor:pointer;object-fit:cover;max-width:280px;max-height:280px;transition:transform var(--transition-fast);margin-bottom:6px}.dm-attached-image:hover{transform:scale(1.02)}.dm-file-link{border-radius:var(--radius-sm);color:inherit;transition:background var(--transition-fast);background:#00000026;align-items:center;gap:.5rem;margin-bottom:6px;padding:8px 14px;font-size:.82rem;text-decoration:none;display:inline-flex}.dm-file-link:hover{background:#00000040}.dm-file-preview{border-top:1px solid var(--border-color);background:#ff680114;justify-content:space-between;align-items:center;padding:.5rem 1.5rem;display:flex}.dm-file-preview-info{align-items:center;gap:.5rem;font-size:.82rem;display:flex}.dm-file-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-weight:600;overflow:hidden}.dm-file-size{color:var(--text-muted);font-size:.72rem}.dm-file-remove{color:var(--accent-error);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;border-radius:50%;padding:4px 8px;font-size:1rem}.dm-file-remove:hover{background:#ef44441a}.dm-input-area{border-top:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#25282880;align-items:center;gap:.5rem;padding:.85rem 1.25rem;display:flex}.dm-attach-btn{cursor:pointer;transition:all var(--transition-fast);opacity:.7;background:0 0;border:none;border-radius:50%;padding:6px;font-size:1.3rem}.dm-attach-btn:hover{opacity:1;background:#ff68011a}.dm-text-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-primary);transition:all var(--transition-fast);outline:none;flex:1;padding:10px 16px;font-family:Inter,sans-serif;font-size:.88rem}.dm-text-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #ff68011f}.dm-text-input::placeholder{color:var(--text-muted)}.dm-send-btn{background:var(--gradient-primary);color:#fff;cursor:pointer;width:42px;height:42px;transition:all var(--transition-fast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.2rem;display:flex;box-shadow:0 2px 8px #ff68014d}.dm-send-btn:hover:not(:disabled){transform:scale(1.08);box-shadow:0 4px 16px #ff680166}.dm-send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.dm-no-chat{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.dm-no-chat h2{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:1.5rem;font-weight:800}.dm-no-chat p{color:var(--text-muted);font-size:.9rem}.dm-features{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:2rem;display:flex}.dm-feature{border-radius:var(--radius-full);background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);padding:8px 16px;font-size:.8rem}.dm-empty-chat{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.dm-empty-chat h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.15rem;font-weight:700}.dm-empty-chat p{font-size:.85rem}.dm-nav-badge{background:var(--accent-primary);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:16px;padding:1px 5px;font-size:.6rem;font-weight:700;animation:2s infinite glow;position:absolute;top:-4px;right:-8px}.teacher-student-card{transition:all var(--transition-base);padding:1rem 1.25rem!important}.teacher-student-card:hover{border-color:var(--border-color-hover);transform:translateY(-1px)}@media (max-width:768px){.dm-layout{grid-template-columns:1fr}.dm-sidebar{display:flex}.dm-chat-area{display:none}.dm-layout:has(.dm-chat-area .dm-chat-header) .dm-sidebar{display:none}.dm-layout:has(.dm-chat-area .dm-chat-header) .dm-chat-area{display:flex}.dm-back-btn{display:inline-flex}.dm-message{max-width:88%}.layout-main-sidebar{grid-template-columns:1fr}}
@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(../media/KaTeX_AMS-Regular.c30af439.woff2)format("woff2"),url(../media/KaTeX_AMS-Regular.e6a3cada.woff)format("woff"),url(../media/KaTeX_AMS-Regular.892f691b.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(../media/KaTeX_Caligraphic-Bold.db991531.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Bold.2f97783e.woff)format("woff"),url(../media/KaTeX_Caligraphic-Bold.a36b8125.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(../media/KaTeX_Caligraphic-Regular.c20eee08.woff2)format("woff2"),url(../media/KaTeX_Caligraphic-Regular.2b13f013.woff)format("woff"),url(../media/KaTeX_Caligraphic-Regular.7c50032c.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(../media/KaTeX_Fraktur-Bold.d514bd28.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Bold.5fa2f5e4.woff)format("woff"),url(../media/KaTeX_Fraktur-Bold.e311399d.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(../media/KaTeX_Fraktur-Regular.5d62e468.woff2)format("woff2"),url(../media/KaTeX_Fraktur-Regular.18139813.woff)format("woff"),url(../media/KaTeX_Fraktur-Regular.2a73476d.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(../media/KaTeX_Main-Bold.f4e2828d.woff2)format("woff2"),url(../media/KaTeX_Main-Bold.c24b5ba7.woff)format("woff"),url(../media/KaTeX_Main-Bold.6d137c77.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(../media/KaTeX_Main-BoldItalic.f1884480.woff2)format("woff2"),url(../media/KaTeX_Main-BoldItalic.079b33ae.woff)format("woff"),url(../media/KaTeX_Main-BoldItalic.c003d3ec.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(../media/KaTeX_Main-Italic.a3746929.woff2)format("woff2"),url(../media/KaTeX_Main-Italic.26a3619b.woff)format("woff"),url(../media/KaTeX_Main-Italic.61da3e93.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(../media/KaTeX_Main-Regular.12644167.woff2)format("woff2"),url(../media/KaTeX_Main-Regular.d511f158.woff)format("woff"),url(../media/KaTeX_Main-Regular.876b86ad.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(../media/KaTeX_Math-BoldItalic.5c6a6a93.woff2)format("woff2"),url(../media/KaTeX_Math-BoldItalic.ad4dffd5.woff)format("woff"),url(../media/KaTeX_Math-BoldItalic.e73b3bf0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(../media/KaTeX_Math-Italic.d8564edb.woff2)format("woff2"),url(../media/KaTeX_Math-Italic.1cd2c488.woff)format("woff"),url(../media/KaTeX_Math-Italic.03974bc4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(../media/KaTeX_SansSerif-Bold.a03f9428.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Bold.ff51ef5c.woff)format("woff"),url(../media/KaTeX_SansSerif-Bold.d4608ed5.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(../media/KaTeX_SansSerif-Italic.9245afda.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Italic.8ed740d6.woff)format("woff"),url(../media/KaTeX_SansSerif-Italic.c0b22b1e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(../media/KaTeX_SansSerif-Regular.128c9bc2.woff2)format("woff2"),url(../media/KaTeX_SansSerif-Regular.ee7b0a16.woff)format("woff"),url(../media/KaTeX_SansSerif-Regular.156dbd4e.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(../media/KaTeX_Script-Regular.186c7155.woff2)format("woff2"),url(../media/KaTeX_Script-Regular.afc2fd5a.woff)format("woff"),url(../media/KaTeX_Script-Regular.00d9a561.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size1-Regular.4450ef36.woff2)format("woff2"),url(../media/KaTeX_Size1-Regular.e5bf4c74.woff)format("woff"),url(../media/KaTeX_Size1-Regular.9aaff96b.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size2-Regular.6a97527b.woff2)format("woff2"),url(../media/KaTeX_Size2-Regular.8fbd32af.woff)format("woff"),url(../media/KaTeX_Size2-Regular.f11810ed.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size3-Regular.54b7ce9d.woff2)format("woff2"),url(../media/KaTeX_Size3-Regular.45ae8eba.woff)format("woff"),url(../media/KaTeX_Size3-Regular.9812ade2.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(../media/KaTeX_Size4-Regular.927fc5b9.woff2)format("woff2"),url(../media/KaTeX_Size4-Regular.b211e3d3.woff)format("woff"),url(../media/KaTeX_Size4-Regular.44a4d487.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(../media/KaTeX_Typewriter-Regular.ff99d643.woff2)format("woff2"),url(../media/KaTeX_Typewriter-Regular.68b6c3a9.woff)format("woff"),url(../media/KaTeX_Typewriter-Regular.a1a7ff52.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.16.37"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo)")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo)")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
