:root{--ink:#17213e;--muted:#7b849b;--primary:#4f46e5;--primary-dark:#3730a3;--line:#e9ecf3;--bg:#f7f8fc;--white:#fff;--shadow:0 14px 45px rgba(25,36,77,.055);font-family:Vazirmatn,Tahoma,sans-serif;color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;font-size:14px;line-height:1.8}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.5}p{line-height:1.95}.container{width:min(1180px,calc(100% - 40px));margin:auto}.muted,.tiny-muted,.hint{color:var(--muted)}.hint,.tiny-muted{font-size:12px}.center{text-align:center}.full{grid-column:1/-1}.btn{border:1px solid transparent;border-radius:12px;padding:11px 20px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;transition:.2s ease;line-height:1.5}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(36,40,109,.12)}.btn-primary{color:#fff;background:var(--primary);box-shadow:0 8px 18px rgba(79,70,229,.18)}.btn-primary:hover{background:var(--primary-dark)}.btn-light{color:#3430a4;background:#fff}.btn-outline{border-color:#dce0ef;background:#fff;color:#3b43a4}.btn-ghost{border-color:#dbe0ef;background:#fff;color:#2f395d}.btn-lg{padding:15px 26px;font-size:15px}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:default;transform:none}.section-kicker{display:inline-block;color:#6659df;font-weight:800;font-size:12px;letter-spacing:.01em;margin-bottom:10px}.pill{display:inline-flex;align-items:center;border-radius:30px;background:#f0f1fa;color:#606988;padding:5px 11px;font-size:11px;font-weight:700;white-space:nowrap}.pill.warning{background:#fff5e3;color:#9c6512}.pill.success{background:#e7f8f0;color:#19845d}.text-link{color:var(--primary);font-size:12px;font-weight:800;white-space:nowrap}.text-link:hover{text-decoration:underline}.brand{font-size:22px;font-weight:800;display:inline-flex;align-items:center;gap:9px;letter-spacing:-1px;color:#1e2545}.brand-mark{display:inline-grid;place-items:center;background:linear-gradient(145deg,#645af4,#3f55c8);color:white;width:34px;height:34px;border-radius:10px;box-shadow:0 6px 14px rgba(81,72,217,.25);font-size:20px}.site-header{height:78px;background:rgba(255,255,255,.94);border-bottom:1px solid #edf0f6;position:sticky;top:0;z-index:30;backdrop-filter:blur(16px)}.nav-row{height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px}.public-nav,.nav-actions{display:flex;align-items:center;gap:32px}.public-nav a,.nav-login{font-weight:600;color:#5c6681;font-size:13px}.public-nav a:hover,.nav-login:hover{color:var(--primary)}.nav-actions{gap:20px}.menu-toggle{display:none;background:none;border:0;font-size:24px;color:var(--ink)}.hero{background:radial-gradient(circle at 25% 35%,#eaeaff 0,transparent 35%),linear-gradient(180deg,#fbfcff,#fff);overflow:hidden}.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;min-height:640px;padding-top:65px;padding-bottom:70px}.eyebrow{color:#5753c8;font-weight:800;background:#eeedff;border:1px solid #dfdeff;border-radius:25px;padding:7px 13px;font-size:12px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#665cf4;margin-left:5px}.hero h1{font-size:clamp(38px,4vw,58px);font-weight:800;letter-spacing:-1.8px;line-height:1.55;margin:20px 0}.gradient-text{background:linear-gradient(95deg,#5452e7,#9b5cf6);background-clip:text;-webkit-text-fill-color:transparent}.hero-copy>p{max-width:540px;color:#68748e;font-size:17px;line-height:2.15}.hero-actions{display:flex;gap:12px;margin-top:28px}.hero-proof{display:flex;align-items:center;gap:15px;margin-top:44px;color:#747d96;font-size:12px}.proof-avatars{display:flex;padding-right:8px}.proof-avatars span{width:30px;height:30px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;margin-right:-8px;background:#dedcfc;color:#5650c2;font-size:10px;font-weight:800}.proof-avatars span:nth-child(2){background:#dceefe;color:#3c7ab2}.proof-avatars span:nth-child(3){background:#fdebd7;color:#b9853e}.hero-visual{position:relative;max-width:540px}.hero-glow{position:absolute;inset:-30px;border-radius:50%;background:radial-gradient(circle,#ded9ff,transparent 65%);filter:blur(25px)}.preview-window{position:relative;background:#fff;border:1px solid #e4e7f4;border-radius:22px;box-shadow:0 30px 80px rgba(57,59,118,.16);padding:22px;transform:rotate(-2deg)}.preview-top{display:flex;align-items:center;gap:10px;color:#626b85;border-bottom:1px solid #edf0f7;padding-bottom:14px;font-size:12px;font-weight:700}.preview-logo{background:#ecebff;color:#5f58d8;border-radius:7px;padding:2px 7px;font-size:18px}.preview-dots{margin-right:auto;color:#d7d9e6;letter-spacing:4px;font-size:8px}.preview-greeting{font-size:21px;font-weight:800;margin:22px 0}.preview-greeting small{display:block;color:#8a92aa;font-size:11px;font-weight:500;margin-top:2px}.preview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.preview-stats div{background:#f7f8fd;border-radius:13px;padding:15px}.preview-stats b{font-size:22px;color:#5652d4;display:block}.preview-stats small{font-size:10px;color:#8c94aa}.preview-lesson{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #eceefa;border-radius:13px;margin-top:16px;padding:15px}.subject-icon{width:42px;height:42px;border-radius:12px;display:inline-grid;place-items:center;background:#f0f1fe;font-size:21px;flex:none}.preview-lesson strong,.preview-lesson small{display:block}.preview-lesson small{color:#929bb0;font-size:10px}.small-arrow{margin-right:auto;color:var(--primary)}.preview-ai{display:flex;gap:12px;background:#f1efff;border:1px solid #e6e2ff;border-radius:14px;margin-top:12px;padding:14px}.preview-ai .sparkle{color:#6a60df;font-size:19px}.preview-ai strong{font-size:12px}.preview-ai p{margin:2px 0;color:#77799c;font-size:10px}.floating-note{position:absolute;left:-24px;bottom:-25px;background:#fff;border-radius:13px;box-shadow:0 12px 35px rgba(47,40,121,.15);padding:12px 18px;color:#5652bd;font-weight:800;font-size:12px}.trust-strip{background:#f8f9fe;border-block:1px solid #eef0f8}.trust-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:22px;color:#8d95a9;font-size:12px}.trust-row b{color:#68728b;font-size:13px}.section{padding:105px 0}.section-heading{max-width:620px;margin:0 auto 45px}.section-heading h2,.how-grid h2,.spotlight-grid h2{font-size:38px;letter-spacing:-.8px;margin-bottom:12px}.section-heading p{color:#818aa1}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.feature-card{padding:28px;background:white;border:1px solid #e8ebf3;border-radius:20px;box-shadow:var(--shadow);transition:.2s}.feature-card:hover{transform:translateY(-5px);box-shadow:0 22px 45px rgba(36,44,94,.11)}.feature-icon{width:46px;height:46px;display:inline-grid;place-items:center;border-radius:13px;font-size:24px;flex:none}.feature-icon.violet,.stat-icon.lavender{background:#eeecff;color:#6658dc}.feature-icon.blue,.stat-icon.blue{background:#e8f1ff;color:#447fc2}.feature-icon.amber,.stat-icon.amber{background:#fff0d8;color:#c08c31}.feature-icon.mint,.stat-icon.mint{background:#e3f8ef;color:#319879}.feature-card h3{font-size:18px;margin:18px 0 8px}.feature-card p{font-size:13px;color:#818a9f;min-height:102px}.feature-card a{color:#6259cf;font-weight:800;font-size:12px}.how-section{background:#f8f9fd}.how-grid,.spotlight-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.how-grid>div:first-child p,.spotlight-grid>div:last-child p{font-size:15px;max-width:470px}.how-grid .btn{margin-top:16px}.steps{display:grid;gap:16px}.step{display:flex;gap:20px;background:#fff;border:1px solid #ecedf5;padding:22px;border-radius:16px}.step>span{color:#625bdf;font-weight:800;font-size:22px}.step h3{font-size:16px;margin:0}.step p{font-size:12px;color:#8d95a8;margin:4px 0 0}.spotlight-card{background:#f7f6ff;border:1px solid #eae7ff;border-radius:27px;padding:37px}.chat-bubble{max-width:85%;border-radius:16px;padding:13px 17px;margin-bottom:18px;font-size:13px}.user-bubble{background:#5b54d9;color:white;margin-right:auto;border-bottom-left-radius:4px}.ai-bubble{background:white;box-shadow:var(--shadow);border-bottom-right-radius:4px}.ai-bubble span{color:#5e56ce;font-weight:800}.ai-bubble p{margin:5px 0 0;color:#656f88}.mini-pills{display:flex;gap:7px;flex-wrap:wrap}.mini-pills span{font-size:10px;background:white;border:1px solid #e5e4f1;padding:5px 9px;border-radius:20px;color:#797da4}.spotlight-points{display:grid;gap:12px;color:#596482;font-weight:700;margin-top:26px}.faq-wrap{max-width:800px}.faq-wrap details{border:1px solid #e9ecf3;border-radius:13px;padding:18px 22px;margin-bottom:10px}.faq-wrap summary{cursor:pointer;font-weight:800}.faq-wrap details p{margin:10px 0 0;color:#7e879d}.final-cta{background:linear-gradient(130deg,#22205d,#4e4ac8 65%,#6b60dd);color:#fff;text-align:center;padding:80px 0}.final-cta h2{font-size:37px;margin:12px 0}.final-cta p{opacity:.8;margin-bottom:25px}.site-footer{background:#151a35;color:#c4c9da;padding-top:60px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px}.site-footer .brand{color:#fff}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.footer-grid p{font-size:12px;color:#969eb7;max-width:280px}.footer-grid strong{color:white;margin-bottom:6px}.footer-grid a:not(.brand){font-size:12px}.footer-bottom{border-top:1px solid #343a53;margin-top:45px;padding-block:20px;color:#818ba7;font-size:11px}.auth-section{min-height:calc(100vh - 78px);background:radial-gradient(circle at top,#eeedff,#f8f9fc 45%);display:grid;place-items:center;padding:65px 20px}.auth-card{width:min(440px,100%);padding:38px;background:white;border:1px solid #eceef6;border-radius:22px;box-shadow:0 25px 60px rgba(43,47,98,.09)}.auth-card.wide{width:min(700px,100%)}.auth-icon{width:48px;height:48px;display:inline-grid;place-items:center;color:#5e56d6;background:#eceaff;border-radius:14px;font-size:24px;margin-bottom:14px}.auth-card h1{font-size:25px;margin-bottom:4px}.auth-card>p{color:#838ca1;font-size:13px;margin-bottom:25px}.form-group{margin-bottom:17px}.form-group label{display:block;font-size:12px;font-weight:800;margin-bottom:7px}.form-control,input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;background:#fff;border:1px solid #dfe3ed;border-radius:10px;padding:11px 13px;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}.form-control:focus,input:focus,select:focus,textarea:focus{border-color:#847ce4;box-shadow:0 0 0 3px #eceaff}.form-group .hint{display:block;margin-top:5px}.error{display:block;color:#bf3d55;font-size:11px}.form-error{background:#ffedf0;color:#a7354d;border-radius:10px;padding:9px;margin-bottom:15px}.auth-links{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:20px;color:#7f899e;font-size:12px}.auth-links a{color:var(--primary);font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 18px}.auth-card .form-grid .btn{margin-top:10px}.error-code{font-size:80px;color:#5e56dc;font-weight:800}.toast-stack{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:20px;z-index:90;display:grid;gap:8px;max-width:calc(100vw - 40px);pointer-events:none}.toast-stack>.toast{pointer-events:auto;overflow-wrap:anywhere}.toast{background:#252b51;color:white;border-radius:12px;box-shadow:0 15px 35px #0002;padding:12px 17px;font-size:12px;max-width:350px}.toast.success{background:#137b5b}.toast.warning{background:#a46c1c}
.app-body{background:var(--bg)}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;background:#fff;border-left:1px solid #e9ecf3;position:fixed;right:0;top:0;bottom:0;z-index:40;display:flex;flex-direction:column;padding:27px 15px}.sidebar-brand{padding:0 12px;margin-bottom:40px}.sidebar-label{color:#a4acc0;font-size:10px;font-weight:800;padding:0 18px;margin-bottom:12px}.side-nav{display:grid;gap:4px}.side-nav a,.sidebar-bottom a,.sidebar-bottom button{display:flex;align-items:center;gap:13px;padding:10px 14px;color:#6c7690;border-radius:10px;font-weight:700;font-size:12px;transition:.2s}.side-nav a:hover,.sidebar-bottom a:hover,.sidebar-bottom button:hover{background:#f6f5ff;color:#544bd1}.side-nav a.active{background:#efeeff;color:#574cce}.side-nav a span,.sidebar-bottom span{width:23px;text-align:center;font-size:19px;line-height:1}.sidebar-bottom{margin-top:auto;border-top:1px solid #eef0f5;padding-top:12px}.sidebar-bottom button{border:0;background:none;width:100%;text-align:right}.main-area{margin-right:248px;min-width:0;width:calc(100% - 248px)}.app-header{height:72px;background:#fff;border-bottom:1px solid #edf0f6;display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:sticky;top:0;z-index:20}.app-header-title{font-size:15px;font-weight:800}.header-right{display:flex;align-items:center;gap:22px}.header-date{color:#969eb0;font-size:11px}.profile-chip{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800}.avatar{width:34px;height:34px;background:#efedff;color:#5c51d3;border-radius:50%;display:grid;place-items:center}.sidebar-toggle{display:none;background:none;border:0;font-size:22px}.app-content{padding:34px 38px 70px;max-width:1440px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;margin-bottom:27px}.page-heading h1{font-size:29px;letter-spacing:-.4px;margin:0}.page-heading p{color:#8b94a9;margin:4px 0 0;font-size:12px}.page-heading.small{margin-top:30px}.page-heading.small h2{margin:0}.dashboard-hero{background:linear-gradient(115deg,#252368,#4d47c3 65%,#7062df);border-radius:20px;color:#fff;padding:34px 40px;display:flex;justify-content:space-between;min-height:218px;position:relative;overflow:hidden}.hero-label{font-size:11px;opacity:.75}.dashboard-hero h2{font-size:22px;margin:8px 0}.dashboard-hero p{font-size:12px;color:#dad8ff}.dashboard-hero .btn{font-size:11px;padding:9px 15px;margin-top:2px}.hero-orbit{font-size:76px;align-self:center;padding-left:100px;color:#d8d2ff}.hero-orbit span{position:relative;z-index:2}.hero-orbit i{position:absolute;border:1px solid #ffffff30;border-radius:50%;width:270px;height:270px;left:7%;top:-35px}.hero-orbit .orbit-two{width:180px;height:180px;left:10%;top:10px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.stat-card,.panel,.subject-card{background:#fff;border:1px solid #e9ecf3;border-radius:16px;box-shadow:var(--shadow)}.stat-card{padding:18px 20px;display:flex;flex-direction:column}.stat-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:11px;margin-bottom:12px;font-size:20px}.stat-card small{color:#8d96aa;font-size:11px}.stat-card strong{font-size:25px;line-height:1.4}.stat-card>span:last-child{font-size:10px;color:#a0a7b8}.content-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:20px}.panel{padding:24px}.panel h2{font-size:17px;margin:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panel-heading.spaced{margin-top:28px}.stack{display:grid;gap:20px;align-content:start}.continue-card{display:flex;align-items:center;gap:14px;border:1px solid #edf0f6;border-radius:13px;padding:17px}.continue-card>div{flex:1}.continue-card strong{font-size:13px}.continue-card p{margin:2px 0;color:#8791a8;font-size:11px}.continue-card .btn{font-size:11px}.compact-subjects{display:grid;grid-template-columns:1fr 1fr;gap:8px}.compact-subjects a{display:flex;align-items:center;gap:10px;border:1px solid #edf0f7;border-radius:11px;padding:10px;font-size:12px;font-weight:800}.compact-subjects .subject-icon{width:32px;height:32px;font-size:15px}.compact-subjects a>span:last-child{margin-right:auto;color:#7771d7}.ai-tip{background:linear-gradient(150deg,#fff,#f8f7ff);border-color:#e8e6fb}.ai-tip h2,.ai-tip h3{margin:14px 0 5px}.ai-tip p{color:#7b839d;font-size:12px;margin-bottom:7px}.mini-task{display:flex;align-items:center;gap:12px;margin:10px 0}.check{width:24px;height:24px;border:2px solid #d9ddeb;border-radius:7px;background:white;display:grid;place-items:center;color:white}.check.done{background:#37ad87;border-color:#37ad87}.mini-task strong,.mini-task small{display:block}.mini-task strong{font-size:12px}.mini-task small{font-size:10px;color:#9ca5b7}.empty-state{text-align:center;padding:40px 15px;color:#8791a5}.empty-state>span{display:block;font-size:38px;margin-bottom:8px}.empty-state h2,.empty-state h3{color:#27304c;margin-bottom:4px}.empty-state p{font-size:12px}.empty-state .btn{margin-top:8px}.breadcrumb{display:flex;align-items:center;gap:10px;color:#9199af;font-size:11px;margin-bottom:23px}.breadcrumb a:hover{color:var(--primary)}.subject-grid,.exam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.subject-card{padding:23px;border-top:3px solid var(--accent)}.subject-card-top{display:flex;justify-content:space-between;align-items:start}.subject-card h2{font-size:18px;margin:19px 0 3px}.subject-card p{color:#8f98aa;font-size:11px;min-height:44px}.subject-meta{display:flex;justify-content:space-between;color:#7d879d;font-size:11px;margin:18px 0 8px}.progress-track{height:7px;border-radius:10px;background:#eef0f6;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--accent,var(--primary));border-radius:10px}.subject-card .btn{margin-top:19px;font-size:11px}.subject-banner{background:linear-gradient(110deg,var(--accent),#2e336c);color:white;border-radius:18px;padding:28px;display:flex;gap:20px;align-items:center}.subject-banner .subject-icon{width:62px;height:62px;background:#ffffff30;font-size:32px}.subject-banner h1{font-size:24px;margin:0}.subject-banner .section-kicker,.subject-banner p{color:#ffffffba}.subject-banner p{margin:2px 0;font-size:12px}.chapter-list{display:grid;gap:15px}.chapter-head{display:flex;align-items:center;gap:14px}.chapter-number{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#efedff;color:#655ad7;font-weight:800}.chapter-head>div{flex:1}.chapter-head small{color:#9ba3b7}.chapter-head h2{margin:0}.chapter-head p{color:#8e98aa;font-size:11px;margin:0}.lesson-list{margin-top:18px;border-top:1px solid #eef0f5}.lesson-list a{display:flex;align-items:center;gap:12px;border-bottom:1px solid #f0f1f6;padding:14px 0}.lesson-list a:last-child{border-bottom:0}.lesson-list a:hover strong{color:var(--primary)}.lesson-status{width:29px;height:29px;border:1px solid #e6e8f2;border-radius:50%;display:grid;place-items:center;color:#736ae4}.lesson-list strong,.lesson-list small{display:block}.lesson-list strong{font-size:12px}.lesson-list small{font-size:10px;color:#a0a8b8}.lesson-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.85fr);gap:18px;align-items:start}.lesson-main{min-height:620px}.lesson-heading{border-bottom:1px solid #edf0f6;padding-bottom:20px}.lesson-heading h1{font-size:25px;margin:10px 0 2px}.lesson-heading p{color:#8d97aa;font-size:11px;margin:0}.lesson-content{padding:28px 0;min-height:280px;white-space:normal;font-size:14px;line-height:2.3;color:#37425e}.lesson-content p{margin-bottom:20px}.lesson-actions{display:flex;align-items:center;gap:14px;border-top:1px solid #eef0f6;padding-top:18px}.lesson-nav{display:flex;justify-content:space-between;margin-top:25px;color:#5d54cd;font-weight:800;font-size:12px}.lesson-aside{display:grid;gap:16px}.assistant-panel h2{margin:14px 0 4px}.assistant-panel>p{color:#8c95aa;font-size:12px}.quick-list{display:grid;gap:7px;margin:16px 0}.quick-list a{border:1px solid #ebeaf7;border-radius:9px;padding:8px 11px;color:#5856b6;font-size:11px;font-weight:800}.quick-list a:hover{background:#f2f0ff}.tutor-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:18px}.tutor-history{min-height:650px}.tutor-history h2{font-size:15px}.history-item{display:flex;gap:9px;padding:10px;border-radius:9px;color:#707a94;font-size:11px}.history-item.selected,.history-item:hover{background:#f0efff;color:#5c54d6}.tutor-chat{padding:0;display:flex;flex-direction:column;height:660px;overflow:hidden}.chat-top{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid #eef0f6}.chat-top strong,.chat-top small{display:block}.chat-top small{font-size:10px;color:#9ca5b8}.chat-messages{flex:1;overflow-y:auto;padding:26px;display:flex;flex-direction:column;gap:18px}.chat-welcome{text-align:center;margin:auto;max-width:480px}.chat-welcome h2{font-size:19px}.chat-welcome p{color:#8a93a8;font-size:12px}.prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:22px}.prompt-grid button{border:1px solid #e8e9f3;background:#fff;color:#6c7293;border-radius:10px;padding:9px;font-size:11px}.prompt-grid button:hover{border-color:#aaa5ed;color:#5e53cf}.message{max-width:80%;padding:11px 15px;border-radius:13px}.message span{font-size:10px;font-weight:800}.message p{font-size:12px;margin:2px 0;white-space:pre-wrap}.message.mine{align-self:flex-start;background:#5450cc;color:#fff;border-bottom-right-radius:3px}.message.assistant{align-self:flex-end;background:#f4f3ff;color:#424168;border-bottom-left-radius:3px}.chat-form{border-top:1px solid #eef0f6;padding:14px 20px}.chat-form select{font-size:11px;padding:7px;margin-bottom:9px}.chat-input-row{display:flex;align-items:end;gap:10px}.chat-input-row textarea{resize:none}.chat-form .hint{display:block;margin-top:5px}.task-list{display:grid}.task-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid #eef0f5;padding:12px 0}.task-row:last-child{border-bottom:0}.task-row>div{flex:1}.task-row strong,.task-row small{display:block}.task-row strong{font-size:12px}.task-row small{color:#9aa3b6;font-size:10px}.struck{text-decoration:line-through;color:#a0a7b8}.tip-list{display:grid;gap:8px;margin-top:20px;color:#5e6690;font-size:12px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:26px 0 15px}.section-title h2{font-size:17px;margin:0}.section-title span{color:#9ba4b7;font-size:11px}.exam-card{position:relative}.exam-card>.pill{position:absolute;left:20px;top:20px}.exam-card h2{margin:18px 0 3px}.exam-card p{color:#8d96a9;font-size:11px;min-height:48px}.exam-meta{display:flex;gap:20px;border-top:1px solid #edf0f6;padding:15px 0;color:#818ba2;font-size:11px}.exam-card .btn{font-size:11px}.recent-row{display:flex;align-items:center;gap:11px;border-bottom:1px solid #f0f1f5;padding:12px 0}.recent-row:last-child{border-bottom:0}.recent-row>span:nth-child(2){flex:1}.recent-row strong,.recent-row small{display:block}.recent-row strong{font-size:12px}.recent-row small{font-size:10px;color:#9aa3b5}.recent-row b{color:#5e56d3}.generate-form{margin-top:22px}.exam-intro{text-align:center;max-width:690px;margin:25px auto;padding:40px}.feature-icon.large{width:64px;height:64px;font-size:32px;display:grid;margin:0 auto 15px}.exam-intro h1{font-size:26px;margin:4px}.exam-intro>p{color:#8b94a8}.intro-stats{display:flex;justify-content:center;gap:35px;padding:24px 0}.intro-stats span{display:grid;color:#8b95aa;font-size:11px}.intro-stats b{color:#222d51;font-size:20px}.exam-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.exam-top h1{font-size:23px;margin:0}.timer{background:#fff;border:1px solid #e4e6ef;border-radius:10px;padding:9px 16px;color:#5d54d2;font-size:17px;font-weight:800}.timer.urgent{color:#bd4c5f;background:#fff0f2}.exam-taking-layout{display:grid;grid-template-columns:minmax(0,1.7fr) 250px;gap:17px}.question-card{min-height:440px}.question-card[hidden]{display:none}.question-count{color:#645bdb;font-size:11px;font-weight:800}.question-card h2{font-size:18px;margin:17px 0 26px}.choice-list{display:grid;gap:10px}.choice{border:1px solid #e9ecf3;border-radius:10px;padding:12px;display:flex;gap:12px;cursor:pointer;font-size:12px}.choice:has(input:checked){border-color:#756ce6;background:#f6f5ff}.choice input{accent-color:#5c52d8}.exam-controls{display:flex;gap:8px;margin-top:30px}.exam-controls button:last-child{margin-right:auto}.exam-navigation h3{margin:0}.exam-navigation p{font-size:11px}.question-dots{display:flex;gap:7px;flex-wrap:wrap}.question-dots button{width:34px;height:34px;border-radius:8px;border:1px solid #e2e5ef;background:#fff;color:#7b8498}.question-dots button.active,.question-dots button.answered{background:#e9e7ff;color:#554cc6;border-color:#d3ceff}.exam-note{border-top:1px solid #eef0f6;margin-top:18px;padding-top:13px;color:#9da5b6;font-size:10px}.result-hero{text-align:center}.result-hero h1{margin:0}.score-ring{width:145px;height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:11px solid #dcd9ff;border-right-color:#5e53d7;border-top-color:#5e53d7;border-radius:50%;margin:25px auto}.score-ring strong{font-size:32px;color:#534cc8}.score-ring span{font-size:10px;color:#8c95aa}.result-stats{display:flex;justify-content:center;gap:35px}.result-stats span{font-size:11px;color:#8d96a9}.result-stats b{color:#253152;font-size:17px}.result-hero .hero-actions{justify-content:center;margin-top:25px}.answer-list{display:grid;gap:14px}.answer-head{display:flex;justify-content:space-between;color:#8b95a9;font-size:11px}.answer-card h3{font-size:15px;margin:8px 0 13px}.answer-card p{font-size:12px;margin:3px 0;color:#747e95}.answer-explanation{background:#f7f8fc;border-radius:10px;padding:13px;margin-top:12px;color:#5e6880;font-size:12px}.subject-progress{margin-bottom:23px}.subject-progress>div:first-child{display:flex;align-items:center;gap:10px}.subject-progress strong{flex:1;font-size:12px}.subject-progress>div:first-child>span:last-child{color:#625bd3;font-size:12px;font-weight:800}.subject-progress .subject-icon{width:30px;height:30px;font-size:14px}.subject-progress .progress-track{margin:8px 0 2px}.subject-progress small{color:#a1a9b9;font-size:10px}.profile-grid{display:grid;gap:20px}.profile-grid .panel h2{margin-bottom:20px}.profile-actions{display:flex;justify-content:flex-end}
@media(max-width:1100px){.hero-grid{gap:35px}.feature-grid{grid-template-columns:repeat(2,1fr)}.app-content{padding:28px 24px}.app-header{padding:0 24px}.subject-grid,.exam-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.sidebar{transform:translateX(100%);transition:transform .25s;box-shadow:-10px 0 35px #17213e12}.sidebar.open{transform:translateX(0)}.sidebar-toggle{display:block}.main-area{margin-right:0;width:100%}.hero-grid,.how-grid,.spotlight-grid{grid-template-columns:1fr}.hero-grid{padding:60px 0;gap:50px}.hero-visual{margin:auto;width:min(500px,100%)}.trust-row{flex-wrap:wrap;justify-content:center}.site-header .public-nav{display:none;position:absolute;top:78px;right:0;left:0;background:#fff;padding:20px;box-shadow:0 15px 25px #0001;flex-direction:column;align-items:flex-start}.site-header .public-nav.open{display:flex}.menu-toggle{display:block}.header-date{display:none}.content-grid,.lesson-layout,.exam-taking-layout{grid-template-columns:1fr}.tutor-layout{grid-template-columns:1fr}.tutor-history{min-height:auto;max-height:140px;overflow:auto}.footer-grid{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.container{width:min(100% - 30px,1180px)}.site-header{height:67px}.site-header .public-nav{top:67px}.nav-login{display:none}.nav-actions{gap:10px}.nav-actions .btn{font-size:11px;padding:9px 12px}.hero h1{font-size:36px}.hero-copy>p{font-size:14px}.hero-actions{flex-wrap:wrap}.preview-window{padding:14px}.floating-note{left:0}.section{padding:65px 0}.section-heading h2,.how-grid h2,.spotlight-grid h2{font-size:29px}.feature-grid,.subject-grid,.exam-grid,.form-grid{grid-template-columns:1fr}.feature-card p{min-height:auto}.footer-grid{grid-template-columns:1fr}.auth-card{padding:25px}.app-header{height:64px;padding:0 16px}.app-content{padding:22px 15px 50px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:25px}.dashboard-hero{padding:24px;min-height:200px}.dashboard-hero h2{font-size:18px}.hero-orbit{display:none}.stats-grid{gap:8px}.stat-card{padding:13px}.stat-card strong{font-size:21px}.panel{padding:18px}.continue-card{flex-wrap:wrap}.continue-card .btn{width:100%}.compact-subjects{grid-template-columns:1fr}.intro-stats,.result-stats{gap:15px}.tutor-chat{height:600px}.tutor-history{display:none}.message{max-width:95%}.question-card h2{font-size:16px}.profile-chip>span:last-child{display:none}.trust-row{gap:10px}.trust-row b{font-size:10px}}
.tutor-context{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:9px}.tutor-context.simple{grid-template-columns:repeat(2,minmax(0,1fr))}.tutor-context select{font-size:11px;padding:7px;min-width:0}@media(max-width:800px){.tutor-context{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.tutor-context,.tutor-context.simple{grid-template-columns:1fr}}
.analytics-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px}.analytics-highlights h2{font-size:17px}.analytics-highlights p{font-size:11px;margin:5px 0}.weak-chapter{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #eef0f5;padding:6px 0;color:#69748c}.weak-chapter b{color:#5d54cf}@media(max-width:800px){.analytics-highlights{grid-template-columns:1fr}}
.profile-menu{position:relative}.profile-chip{cursor:pointer;list-style:none}.profile-chip::-webkit-details-marker{display:none}.profile-dropdown{position:absolute;left:0;top:42px;min-width:180px;background:white;border:1px solid #e9ecf3;border-radius:12px;box-shadow:0 16px 35px #1a22501c;padding:7px;z-index:60}.profile-dropdown a,.profile-dropdown button{display:block;width:100%;text-align:right;border:0;background:none;border-radius:7px;padding:8px 10px;color:#59637e;font-size:11px;font-weight:700}.profile-dropdown a:hover,.profile-dropdown button:hover{background:#f3f1ff;color:#554bcb}.avatar{overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}
.side-nav .admin-panel-link{display:grid;grid-template-columns:28px 1fr;column-gap:7px;margin-top:12px;padding:11px 13px;background:linear-gradient(135deg,#2d2a76,#5b52d7);color:#fff;border:1px solid #6c64df;box-shadow:0 8px 20px rgba(50,45,134,.18)}.side-nav .admin-panel-link:hover{background:linear-gradient(135deg,#242063,#4c43bf);color:#fff;transform:translateY(-1px)}.side-nav .admin-panel-link>span{grid-row:1/3;width:28px;align-self:center;color:#fff}.side-nav .admin-panel-link strong{font-size:12px}.side-nav .admin-panel-link small{font-size:9px;color:#dddafe;font-weight:500}.profile-dropdown .profile-admin-link{background:#efedff;color:#5148c4;margin-bottom:4px}
.report-summary{margin-bottom:24px;padding:26px}
.report-summary h2{font-size:32px;margin:8px 0}.report-summary p{margin:0 0 18px}
.rule-item{padding:16px 0;border-top:1px solid var(--line)}.rule-item p{margin:8px 0;line-height:1.8}.rule-item .hint{display:block;margin-top:8px}
.web-search-option{display:flex;align-items:center;gap:8px;padding:8px 0;font-weight:700;cursor:pointer}.web-search-option small{font-weight:400;color:var(--muted)}
.web-citations{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.web-citations strong{width:100%;font-size:12px}.web-citations a{font-size:12px;color:var(--primary);text-decoration:underline}
.performance-stats .stat-card strong{font-size:21px}.period-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.period-card{min-height:165px}.period-card h2{font-size:23px;margin:16px 0 4px}.period-card p{font-size:11px;color:var(--muted);margin-bottom:12px}.performance-content{grid-template-columns:1.3fr 1fr}.usage-list{display:grid}.usage-list>div{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.usage-list>div:last-child{border-bottom:0}.usage-list>div>div{flex:1}.usage-list strong,.usage-list small{display:block}.usage-list small{font-size:10px;color:var(--muted)}.usage-list b{font-size:18px;color:var(--primary)}.usage-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#f0efff;color:var(--primary);font-size:18px}.empty-state.compact{padding:24px 10px}.empty-state.compact>span{font-size:28px}.data-note{font-size:10px;color:var(--muted);margin:18px 2px 0}
.progress-overview{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;margin-bottom:20px}.progress-overview h2{font-size:19px;margin:0 0 6px}.progress-overview p{margin:0}.progress-donut{--value:0%;width:126px;height:126px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at center,var(--white) 0 57%,transparent 58%),conic-gradient(var(--primary) var(--value),#e9ebf4 0)}.progress-donut strong{font-size:25px}.progress-donut span{font-size:10px;color:var(--muted)}.overview-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.overview-numbers span{min-width:95px;padding:12px;border-radius:12px;background:#f7f8fc;color:var(--muted);font-size:10px;text-align:center}.overview-numbers b{display:block;font-size:18px;color:var(--ink)}
.report-chart-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-bottom:20px}.chart-panel{min-height:320px}.line-chart{direction:ltr}.line-chart svg{width:100%;height:190px;overflow:visible}.line-chart .chart-guides line{stroke:#e5e8f1;stroke-width:.4;stroke-dasharray:2}.line-chart polyline{fill:none;stroke:var(--primary);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.line-chart circle{fill:#fff;stroke:var(--primary);stroke-width:1;vector-effect:non-scaling-stroke}.chart-labels{display:flex;justify-content:space-around;gap:3px;overflow:hidden}.chart-labels span{display:grid;text-align:center;min-width:30px}.chart-labels b{font-size:10px;color:var(--primary)}.chart-labels small{font-size:8px;color:var(--muted)}.bar-chart{height:230px;display:flex;align-items:flex-end;gap:6px;padding-top:25px;direction:ltr}.bar-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px;min-width:0}.bar-column b{font-size:8px;color:var(--muted);font-weight:500}.bar-column span{width:70%;min-height:3px;max-height:175px;border-radius:7px 7px 2px 2px;background:linear-gradient(180deg,#8177ef,#5d54ce)}.bar-column small{font-size:7px;color:var(--muted);transform:rotate(-45deg);height:16px;white-space:nowrap}
.report-details{grid-template-columns:minmax(0,1.55fr) minmax(290px,.8fr)}.subject-analysis{padding:17px 0;border-bottom:1px solid var(--line)}.subject-analysis:last-child{border-bottom:0}.subject-analysis-head{display:flex;align-items:center;gap:11px;margin-bottom:12px}.subject-analysis-head>div{flex:1}.subject-analysis-head strong,.subject-analysis-head small{display:block}.subject-analysis-head small{font-size:10px;color:var(--muted)}.subject-analysis-head>b{font-size:18px;color:var(--primary)}.dual-progress{display:grid;grid-template-columns:1fr 1fr;gap:16px}.dual-progress label{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);margin-bottom:5px}.dual-progress .score{--accent:#46a98a}.strength-card{border-right:3px solid #43ad87}.weakness-card{border-right:3px solid #e0a34a}.success-field-banner{display:flex;align-items:center;gap:16px;margin-bottom:20px}.success-field-banner>div{flex:1}.success-field-banner h2{margin:0}.success-field-banner p{font-size:11px;color:var(--muted);margin:3px 0}
@media(max-width:1100px){.period-grid{grid-template-columns:repeat(2,1fr)}.progress-overview{grid-template-columns:auto 1fr}.overview-numbers{grid-column:1/-1}.report-chart-grid{grid-template-columns:1fr}}
@media(max-width:800px){.performance-content,.report-details{grid-template-columns:1fr}.progress-overview{grid-template-columns:1fr;text-align:center}.progress-donut{margin:auto}.overview-numbers{grid-template-columns:repeat(3,1fr)}.success-field-banner{align-items:flex-start;flex-wrap:wrap}}
@media(max-width:560px){.period-grid{grid-template-columns:1fr 1fr;gap:8px}.period-card{min-height:145px}.overview-numbers{grid-template-columns:1fr}.dual-progress{grid-template-columns:1fr}.chart-panel{min-height:280px}.bar-chart{gap:3px}.bar-column:nth-child(even) small{visibility:hidden}.success-field-banner>.pill{width:100%;justify-content:center}}

/* AI tutor sending experience */
.chat-messages{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#cbc8ef transparent}
.message-entering{animation:chat-message-in .38s cubic-bezier(.2,.8,.2,1) both}
.ai-thinking{min-width:285px;padding:14px 16px;background:linear-gradient(135deg,#f6f5ff,#eeecff);border:1px solid #e3e0ff;box-shadow:0 12px 30px rgba(72,63,176,.09)}
.thinking-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.message .thinking-title{font-size:10px;font-weight:800;color:#6258cf}
.message .thinking-spark{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:#dedaff;color:#5d52d2;font-size:14px;animation:thinking-pulse 1.8s ease-in-out infinite}
.thinking-body{display:flex;align-items:center;gap:10px;color:#666d8a}
.message .thinking-text{font-size:11px;font-weight:600;transition:opacity .2s}
.typing-dots{display:inline-flex;align-items:center;gap:4px;direction:ltr}
.typing-dots i{display:block;width:5px;height:5px;border-radius:50%;background:#7167da;animation:typing-dot 1.15s ease-in-out infinite}
.typing-dots i:nth-child(2){animation-delay:.16s}.typing-dots i:nth-child(3){animation-delay:.32s}
.chat-send-button{min-width:104px;min-height:46px;position:relative;overflow:hidden}
.send-spinner{display:none;width:17px;height:17px;border:2px solid #ffffff66;border-top-color:#fff;border-radius:50%;animation:send-spin .75s linear infinite}
.chat-form.is-sending .send-label{font-size:0}.chat-form.is-sending .send-label::after{content:'در حال ارسال';font-size:11px}
.chat-form.is-sending .send-arrow{display:none}.chat-form.is-sending .send-spinner{display:block}
.chat-form.is-sending :is(.tutor-context,.web-search-option){opacity:.55;pointer-events:none;transition:opacity .2s}
.chat-form.is-sending textarea{background:#f8f8fc;color:#7e859b;cursor:wait}
.message.failed-local{opacity:.62}.message.failed-local::after{content:'پاسخی دریافت نشد';display:block;margin-top:5px;font-size:9px;color:#fff9}
.ai-error-message{background:#fff1f3;border:1px solid #ffd3da;color:#9e3d51}
.ai-error-message span{color:#b33c54}.ai-error-message p{margin-top:4px}
.chat-media-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.chat-media-strip figure{margin:0;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--white)}.chat-media-strip :is(img,video){display:block;width:100%;aspect-ratio:16/10;object-fit:contain;background:#f2f3f8}.chat-media-strip figcaption{padding:6px 8px;font-size:9px;color:var(--muted)}
@keyframes chat-message-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes thinking-pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(91,81,210,.18)}50%{transform:scale(1.08);box-shadow:0 0 0 7px rgba(91,81,210,0)}}
@keyframes typing-dot{0%,60%,100%{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}
@keyframes send-spin{to{transform:rotate(360deg)}}
@media(max-width:560px){.ai-thinking{min-width:230px}.chat-send-button{min-width:88px;padding-inline:13px}.chat-form.is-sending .send-label::after{content:'صبر کن'}}
@media(prefers-reduced-motion:reduce){.message-entering,.thinking-spark,.typing-dots i,.send-spinner{animation:none}.chat-messages{scroll-behavior:auto}}
.lesson-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:8px 0 28px}.lesson-media-card{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--white)}.lesson-media-stage{aspect-ratio:16/10;display:grid;place-items:center;background:#f4f5fa;overflow:hidden}.lesson-media-stage :is(img,video){width:100%;height:100%;object-fit:contain}.lesson-media-card figcaption{padding:13px 15px}.lesson-media-card figcaption strong{display:block}.lesson-media-card figcaption p{margin:4px 0 0;color:var(--muted);font-size:11px}.MathJax{direction:ltr}.lesson-content mjx-container[display="true"],.message mjx-container[display="true"],.question-card mjx-container[display="true"]{overflow-x:auto;overflow-y:hidden;padding:7px 0}
@media(max-width:560px){.lesson-media-grid{grid-template-columns:1fr}}

.exam-builder-step{padding:20px 0;border-bottom:1px solid var(--line)}.exam-builder-step:last-child{border-bottom:0}.exam-builder-step h2{margin:14px 0}.exam-topic-options{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.exam-topic-options .selected{background:#4f46e5;color:white;border-color:#4f46e5}.exam-builder-error,.exam-builder .errorlist{color:#dc435b}.exam-ai-loading::before,.building #exam-building-status::before{content:'';display:inline-block;width:14px;height:14px;margin-inline-end:8px;border:2px solid #a8a1ef;border-top-color:#4f46e5;border-radius:50%;vertical-align:middle;animation:exam-ai-spin .8s linear infinite}.building #build-exam-submit{opacity:.7;cursor:wait}@keyframes exam-ai-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.exam-ai-loading::before,.building #exam-building-status::before{animation:none}}

.symbol-svg{display:inline-block;vertical-align:middle;flex-shrink:0}.subject-icon .symbol-svg{width:26px;height:26px}
.btn .symbol-svg,.text-link .symbol-svg,.section-kicker .symbol-svg,.tip-list .symbol-svg,.breadcrumb .symbol-svg{width:16px;height:16px}.brand-mark .symbol-svg,.feature-icon .symbol-svg,.auth-icon .symbol-svg{width:26px;height:26px}.theme-toggle-icon .symbol-svg{width:21px;height:21px}.menu-toggle .symbol-svg,.sidebar-toggle .symbol-svg{width:22px;height:22px}.chat-send-button .symbol-svg{width:18px;height:18px}.empty-state>span .symbol-svg{width:36px;height:36px}.brand-mark,.stat-icon,.subject-icon{display:inline-flex;align-items:center;justify-content:center}
.subject-symbol{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.subject-symbol .symbol-svg{width:24px;height:24px}

.chat-send-button .send-spinner{flex:0 0 22px;width:22px;height:22px;aspect-ratio:1;border:2.5px solid #ffffff45;border-top-color:#fff;border-right-color:#fff;border-radius:50%;box-sizing:border-box}
.chat-form.is-sending .chat-send-button{opacity:1;background:var(--primary);cursor:wait;box-shadow:none}
.chat-form.is-sending textarea{background:var(--white);color:var(--ink);cursor:text}
.chat-stop-button{border:1px solid #ebc5cc;color:#b53d57;background:#fff2f5;min-height:46px;padding:10px 14px}
.chat-stop-button[hidden]{display:none!important}
@media(max-width:560px){.chat-input-row{flex-wrap:wrap}.chat-input-row textarea{flex-basis:100%}.chat-send-button,.chat-stop-button{flex:1}}

.chat-retry{display:block;margin-top:10px;padding:5px 11px;border:1px solid #ffffff80;border-radius:8px;color:inherit;background:#ffffff18;font:inherit;font-size:11px;cursor:pointer}.chat-retry:hover{background:#ffffff30}
.chat-web-option{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;margin:0 0 10px;color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}.chat-web-option input[type=checkbox]{width:auto;flex:none}.chat-web-option small{color:var(--muted);font-size:11px;font-weight:400}

/* Readable tutor answers */
.tutor-chat{height:min(760px,calc(100vh - 210px));min-height:570px}
.chat-messages{background:linear-gradient(180deg,#fbfcff,#f8faff);padding:25px clamp(16px,3vw,36px);gap:20px}
.message.assistant{max-width:min(88%,780px);padding:18px 22px;background:#fff;border:1px solid #e7eaf5;border-radius:18px 18px 5px 18px;box-shadow:0 8px 25px #25275a0b;color:#27334f}
.message.assistant>span{display:block;margin-bottom:10px;color:#6358cc;font-size:11px}
.message.mine{max-width:80%;padding:12px 16px}
.message.mine p{font-size:13px;line-height:1.8}
.answer-content{font-size:14px;line-height:2.05;overflow-wrap:anywhere;letter-spacing:0}
.message .answer-content :is(p,li){font-size:inherit;line-height:inherit}
.answer-content>p{margin:0 0 16px;white-space:normal}
.answer-content>p:last-child{margin-bottom:0}
.answer-content :is(h2,h3,h4){font-size:15px;line-height:1.8;color:#26365d;margin:20px 0 9px;font-weight:800}
.answer-content>h2:first-child,.answer-content>h3:first-child,.answer-content>h4:first-child{margin-top:0}
.answer-content h2{font-size:17px;color:#554ac4}
.answer-content :is(ul,ol){margin:5px 0 18px;padding:12px 36px 12px 15px;background:#f7f8ff;border:1px solid #eeeefd;border-radius:13px}
.answer-content li{margin:0 0 8px;padding-right:2px}
.answer-content li:last-child{margin-bottom:0}
.answer-content li::marker{color:#7066da;font-weight:800}
.answer-content strong{color:#302c70;font-weight:800}
.answer-content code{direction:ltr;unicode-bidi:embed;background:#f0f1fb;border-radius:5px;padding:2px 5px;font-size:.88em}
.answer-content hr{border:0;border-top:1px solid #e9eaf3;margin:20px 0}
.answer-math{direction:ltr;text-align:center;overflow-x:auto;background:#f7f8fc;border-radius:12px;margin:15px 0;padding:12px;white-space:pre-wrap}
.answer-biology-path{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin:15px 0;padding:18px 12px;background:#f2f8ff;border:1px solid #dfeafa;border-radius:13px;text-align:center}
.answer-biology-path>strong{padding:9px 16px;background:#fff;border:1px solid #d8e3f7;border-radius:10px;color:#302c70}
.answer-biology-arrow{display:flex;flex-direction:column;align-items:center;color:#5751ba;line-height:1.35}
.answer-biology-arrow b{font-size:22px}
.answer-biology-arrow small{font-size:10px}
.answer-biology-path>strong,.answer-biology-path>.answer-biology-arrow{animation:biology-path-in .45s ease-out both}
.answer-biology-path>:nth-child(2){animation-delay:.25s}.answer-biology-path>:nth-child(3){animation-delay:.5s}.answer-biology-path>:nth-child(4){animation-delay:.75s}.answer-biology-path>:nth-child(5){animation-delay:1s}
@keyframes biology-path-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.answer-sequence{margin:14px 0;padding:12px;border-radius:11px;background:#f7f8fc;color:#302c70;text-align:center;font-size:19px;font-weight:800;letter-spacing:.06em}
.answer-incomplete-formula{color:#aa6172;font-size:12px!important}
.answer-typing [hidden]{display:none!important}
.answer-caret{display:inline-block;width:2px;height:1.1em;margin-inline:2px;background:#6257d5;vertical-align:-.2em;border-radius:2px;animation:answer-caret-blink .85s steps(1,end) infinite}
.answer-reveal-all{display:block;margin:5px 0 0 auto;border:0;background:#efedff;color:#5149ba;border-radius:9px;padding:7px 12px;font-size:11px;font-weight:700;cursor:pointer}
.answer-reveal-all:hover{background:#e4e0ff}
.answer-section-visual{margin:12px 0 20px;padding:14px;background:linear-gradient(135deg,#f4f6ff,#f0fbf7);border:1px solid #dfe6f2;border-radius:15px;color:#34415d}
.answer-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.answer-section-head strong{font-size:12px;color:#5149ba}.answer-section-head button{border:1px solid #d7dded;border-radius:8px;background:#fff;color:#5149ba;padding:5px 9px;font-size:10px;font-weight:800;cursor:pointer}
.answer-section-stage{display:flex;align-items:center;gap:18px;min-height:62px}.answer-section-orbit{position:relative;display:grid;place-items:center;flex:0 0 auto;min-width:112px;min-height:54px;padding:7px 13px;background:#fff;border:1px solid #dadff4;border-radius:13px;text-align:center;overflow:hidden}.answer-section-center{position:relative;z-index:1;color:#3e4584;font-size:12px;font-weight:800}.answer-section-pulse{position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ddd8ff8c,transparent);transform:translateX(110%)}.answer-section-visual[data-step] .answer-section-pulse{animation:section-sweep 2.1s ease-in-out infinite}
@keyframes section-sweep{to{transform:translateX(-110%)}}
.answer-section-progress{flex:1;height:7px;background:#dde7ee;border-radius:99px;overflow:hidden}.answer-section-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5f54d5,#3ab58c);transition:width .55s ease}
.answer-section-controls{display:flex;gap:8px;margin:8px 0}.answer-section-controls button{width:29px;height:29px;border:1px solid #d9deed;border-radius:50%;background:#fff;color:#666dab;font-size:11px;font-weight:800;cursor:pointer}.answer-section-controls button[aria-pressed="true"]{background:#5c54d1;border-color:#5c54d1;color:#fff;box-shadow:0 0 0 4px #5c54d120}
.answer-section-detail{min-height:48px;margin:0!important;padding:9px 12px;background:#fff;border:1px solid #e2e8f1;border-radius:10px;font-size:12px!important;line-height:1.8!important}.answer-section-detail.is-changing{animation:learning-detail-in .35s ease-out}
@media(max-width:560px){.answer-section-visual{padding:10px}.answer-section-stage{gap:9px}.answer-section-orbit{min-width:93px}.answer-section-center{font-size:10px}}
@media(prefers-reduced-motion:reduce){.answer-section-visual *{animation:none!important;transition:none!important}}
.chat-visuals{margin-top:17px;display:grid;gap:12px}
.chat-visual{margin:0;border:1px solid #e4ebee;border-radius:15px;overflow:hidden;background:#f8fcfa}
.chat-visual img{display:block;width:100%;max-height:350px;object-fit:contain}
.chat-visual figcaption{display:flex;align-items:center;flex-wrap:wrap;gap:5px 14px;padding:10px 13px;background:#fff;font-size:11px}
.chat-visual figcaption strong{font-size:12px;color:#2e604f}
.chat-visual figcaption a{color:#5149bf;text-decoration:underline;text-underline-offset:3px}
.chat-visual figcaption small{color:#8d98a8}
@keyframes answer-caret-blink{50%{opacity:0}}
@media(max-width:560px){.tutor-chat{height:calc(100dvh - 150px);min-height:520px}.chat-messages{padding:18px 12px}.message.assistant{max-width:100%;padding:15px 16px}.answer-content{font-size:13.5px}.answer-content :is(ul,ol){padding-right:29px}}
@media(prefers-reduced-motion:reduce){.answer-caret{animation:none}}
.message.assistant:not(.ai-thinking){display:flex;flex-direction:column;width:min(94%,860px);max-width:none}
.message.assistant>span{order:0}
.message.assistant .chat-visuals{order:1;margin:2px 0 18px}
.message.assistant .answer-content{order:2}
.message.assistant .web-citations{order:3}
.message.assistant .chat-media-strip{order:4}
.chat-visual-image{display:block;cursor:zoom-in}
.chat-visual-image img{max-height:280px}
.chat-source-picker{margin:0 0 10px;border:1px solid #e7e9f3;border-radius:11px;background:#fbfbff;padding:8px 11px}
.chat-source-picker[hidden]{display:none}
.chat-source-picker summary{cursor:pointer;color:#5149ba;font-size:11px;font-weight:800}
.chat-source-picker summary small{color:#8b94a9;font-weight:500;margin-right:6px}
.chat-source-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:11px;max-height:150px;overflow:auto}
.chat-source-options label{display:flex;align-items:flex-start;gap:8px;border:1px solid #e7e9f3;border-radius:9px;padding:8px;background:#fff;cursor:pointer;font-size:11px;line-height:1.5}
.chat-source-options label[hidden]{display:none}
.chat-source-options input{accent-color:#5a4fd1;margin-top:2px}
.chat-source-options label:has(input:checked){background:#f0efff;border-color:#c5bfff}
.chat-source-options small{display:block;color:#929bb0;font-size:9px}
@media(max-width:560px){.chat-source-options{grid-template-columns:1fr}.chat-source-picker summary small{display:block;margin:2px 0 0}}

/* Focused tutor and interactive teaching diagrams */
.tutor-chat{position:relative}
.chat-jump-bottom{position:absolute;z-index:5;bottom:calc(var(--chat-composer-height,210px) + 14px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid #dcd8fa;border-radius:24px;background:#fff;color:#5147b7;box-shadow:0 4px 18px #342c7920;font-size:11px;font-weight:800;cursor:pointer}
.chat-jump-bottom[hidden]{display:none}
.chat-jump-bottom:hover{background:#f0eeff;border-color:#aca3ed}
.chat-jump-bottom:focus-visible{outline:3px solid #a79df2;outline-offset:3px}
.chat-jump-bottom>span:first-child{font-size:20px;line-height:1}
html[data-theme="dark"] .chat-jump-bottom{background:#252d44;color:#d2caff;border-color:#61558f}
.tutor-focus-toggle{order:3;margin-left:0;margin-right:auto;border:1px solid #dcdff0;background:#f7f7ff;color:#5147b7;border-radius:10px;padding:7px 12px;font-size:11px;font-weight:800;white-space:nowrap}
.tutor-focus-toggle:hover,.tutor-focus-toggle[aria-pressed="true"]{background:#eae8ff;border-color:#bdb8f0}
body.tutor-focus{overflow:hidden}
body.tutor-focus .sidebar,body.tutor-focus .app-header,body.tutor-focus .page-heading,body.tutor-focus .tutor-history{display:none}
body.tutor-focus .main-area{margin:0;width:100%}
body.tutor-focus .app-content{max-width:none;padding:0}
body.tutor-focus .tutor-layout{display:block;height:100dvh}
body.tutor-focus .tutor-chat{height:100dvh;min-height:0;border:0;border-radius:0}
body.tutor-focus .chat-top{padding-inline:clamp(18px,4vw,70px)}
body.tutor-focus .chat-messages{padding-inline:clamp(16px,5vw,90px)}
body.tutor-focus .chat-form{padding-inline:clamp(18px,5vw,90px)}
body.tutor-focus .message.assistant:not(.ai-thinking){width:min(92%,1100px);max-width:none}
.learning-flow{background:linear-gradient(135deg,#ecfbf4,#eef6ff);border:1px solid #cce9df;border-radius:17px;padding:16px;color:#244c46;overflow:hidden}
.learning-flow-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}
.learning-flow-heading strong{font-size:14px;color:#246450}
.learning-flow-play{border:1px solid #b9dfd0;background:#fff;color:#25705d;border-radius:9px;padding:5px 10px;font-size:10px;font-weight:800;white-space:nowrap}
.learning-flow-progress{height:6px;margin:0 0 15px;border-radius:99px;background:#d8ece6;overflow:hidden}
.learning-flow-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#40bc93,#6155d8);transition:width .6s ease}
.learning-flow-track{display:flex;gap:10px;position:relative;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity;padding:2px 2px 8px}
.learning-flow-step{position:relative;flex:1 0 140px;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #c9e4dc;border-radius:13px;background:#ffffffbd;color:#426b62;font-size:11px;font-weight:800;line-height:1.6;text-align:center;padding:9px 6px;scroll-snap-align:center;transition:transform .3s,background .3s,border-color .3s,box-shadow .3s}
.learning-flow-step:hover{transform:translateY(-3px)}
.learning-flow-step.is-active{background:#fff;border-color:#44b894;color:#17634e;box-shadow:0 8px 22px #3aa98535;transform:translateY(-3px)}
.learning-flow-number{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#d8f4e7;color:#1b7b5f;font-size:11px}
.learning-flow-step.is-active .learning-flow-number{background:#27a77c;color:#fff;animation:learning-step-pulse 1.5s ease-in-out infinite}
.learning-flow-detail{min-height:68px;margin-top:12px;padding:13px 16px;border-radius:12px;background:#fff;border:1px solid #d8ebe5;font-size:12px;line-height:1.9}
.learning-flow-detail.is-changing{animation:learning-detail-in .45s ease-out}
@keyframes learning-step-pulse{50%{box-shadow:0 0 0 7px #43bd8840}}
@keyframes learning-detail-in{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.message.assistant .chat-visuals{order:2;margin:8px 0 16px}
.message.assistant .answer-content{order:1}
@media(max-width:560px){.tutor-focus-toggle{font-size:10px;padding:6px 8px}.learning-flow{padding:11px}.learning-flow-track{gap:5px}.learning-flow-step{flex-basis:130px;font-size:9px;min-height:78px}.learning-flow-heading strong{font-size:12px}body.tutor-focus .chat-form{padding:10px 12px}body.tutor-focus .chat-messages{padding:12px}}
@media(prefers-reduced-motion:reduce){.learning-flow-step,.learning-flow-detail,.learning-flow-number,.learning-flow-progress span,.answer-biology-path>*{animation:none!important;transition:none!important}}

/* Topic-specific teaching animations */
.concept-animation{--concept-accent:#5148bf;background:linear-gradient(135deg,#f3f5ff,#eaf5ff);border:1px solid #dce3fa;border-radius:17px;padding:17px;color:#27334f;overflow:hidden}
.concept-gene_expression{--concept-accent:#277e76;background:linear-gradient(135deg,#edfbf5,#edf6ff);border-color:#cce9df}
.concept-triangle_angles{--concept-accent:#5558be;background:linear-gradient(135deg,#f4f3ff,#eef5ff)}
.concept-ionic_bond{--concept-accent:#ad6235;background:linear-gradient(135deg,#fff5eb,#f7f2ff);border-color:#f1dccb}
.concept-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.concept-heading strong{font-size:14px;color:var(--concept-accent)}
.concept-heading button{border:1px solid #d5dbea;border-radius:9px;background:#fff;color:var(--concept-accent);padding:6px 10px;font-size:10px;font-weight:800;white-space:nowrap;cursor:pointer}
.concept-canvas{min-height:210px;display:grid;place-items:center;padding:14px;background:#ffffffb8;border:1px solid #e2e8f3;border-radius:15px;overflow:hidden}
.concept-gene-track{width:100%;display:flex;align-items:center;justify-content:space-around;gap:6px;direction:rtl}
.concept-gene-node{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--concept-accent);opacity:.32;transform:scale(.9);transition:opacity .55s,transform .55s}
.concept-gene-node b{font-size:12px}.concept-gene-node svg{width:72px;height:72px}.concept-rna,.concept-protein{min-height:72px;display:grid;place-items:center;font-size:18px;font-weight:900;white-space:nowrap;direction:ltr}.concept-protein{font-size:24px}.concept-protein i{font-size:14px;font-style:normal}
.concept-connector{display:flex;flex-direction:column;align-items:center;color:var(--concept-accent);font-size:31px;font-weight:900;opacity:.25;transition:opacity .5s,transform .5s}.concept-connector small{font-size:10px;font-weight:800}
.concept-gene_expression[data-step="0"] [data-concept-node="0"],.concept-gene_expression[data-step="1"] [data-concept-node="0"],.concept-gene_expression[data-step="1"] [data-concept-node="1"],.concept-gene_expression[data-step="2"] .concept-gene-node{opacity:1;transform:scale(1)}
.concept-gene_expression[data-step="1"] .concept-connector:first-of-type,.concept-gene_expression[data-step="2"] .concept-connector{opacity:1;animation:concept-arrow .9s ease-in-out infinite alternate}
@keyframes concept-arrow{to{transform:translateX(-5px)}}
.concept-triangle-wrap{display:flex;flex-direction:column;align-items:center;gap:5px}.concept-triangle-wrap svg{width:min(260px,100%);max-height:180px;color:#5661c6;overflow:visible}.concept-triangle-wrap svg text{fill:#534db7;font-size:20px;font-weight:900;opacity:0;transition:opacity .5s}.concept-triangle-wrap svg circle{fill:#6b61d5}
.concept-triangle_angles[data-step="0"] polygon{stroke-dasharray:730;stroke-dashoffset:0;animation:concept-triangle-draw 1.2s ease-out both}
@keyframes concept-triangle-draw{from{stroke-dashoffset:730}to{stroke-dashoffset:0}}
.concept-triangle_angles[data-step="1"] svg text,.concept-triangle_angles[data-step="2"] svg text{opacity:1}
.concept-triangle-sum{font-size:17px;color:#4b49ae;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}.concept-triangle_angles[data-step="2"] .concept-triangle-sum{opacity:1;transform:none}
.concept-ionic-track{width:min(480px,100%);height:130px;display:flex;align-items:center;justify-content:space-between;position:relative;direction:ltr}
.concept-ion{width:106px;height:106px;border:3px solid #dfa970;border-radius:50%;background:#fff5e7;color:#9b542d;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:29px;font-weight:900;box-shadow:0 0 0 8px #f2d8bc80;transition:background .5s,box-shadow .5s}
.concept-ion span{font-size:11px;font-weight:700}.concept-chlorine{border-color:#8e77d5;background:#f4efff;color:#6e55ba;box-shadow:0 0 0 8px #ddd4f680}
.concept-electron{position:absolute;left:23%;top:25px;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#edb46d;color:#714017;font-size:14px;font-weight:900;z-index:2;box-shadow:0 6px 15px #9b622d40;transition:left 1.3s ease-in-out,opacity .4s}
.concept-ionic_bond[data-step="1"] .concept-electron{left:70%}.concept-ionic_bond[data-step="2"] .concept-electron{left:70%;opacity:0}.concept-ionic_bond[data-step="2"] .concept-sodium{background:#ffe4ce;box-shadow:0 0 0 12px #f0c49e80}.concept-ionic_bond[data-step="2"] .concept-chlorine{background:#e8deff;box-shadow:0 0 0 12px #cbbbf780}
.concept-ion-result{min-height:27px;color:#6a4aa5;font-size:19px;font-weight:900;text-align:center;opacity:0;transition:opacity .5s}.concept-ion-result span{color:#ac7897}.concept-ionic_bond[data-step="2"] .concept-ion-result{opacity:1}
.concept-step-controls{display:flex;gap:8px;margin:14px 0 10px}.concept-step-controls button{flex:1;min-width:0;border:1px solid #dce2ef;border-radius:10px;background:#fff;color:#56627a;padding:9px 6px;font-size:11px;font-weight:800;cursor:pointer}.concept-step-controls button[aria-pressed="true"]{border-color:var(--concept-accent);color:var(--concept-accent);background:#ffffffeb;box-shadow:0 5px 16px #27276913}.concept-step-controls button span{display:inline-grid;place-items:center;width:20px;height:20px;margin-left:5px;border-radius:50%;background:#ebedf8;color:var(--concept-accent)}
.concept-description{min-height:52px;margin:0;padding:12px 14px;background:#fff;border:1px solid #e1e7f0;border-radius:11px;font-size:12px;line-height:1.9}.concept-description.is-changing{animation:learning-detail-in .4s ease-out}
@media(max-width:560px){.concept-animation{padding:11px}.concept-canvas{min-height:180px;padding:9px}.concept-gene-node svg{width:52px;height:55px}.concept-rna,.concept-protein{min-height:55px;font-size:12px}.concept-protein{font-size:17px}.concept-connector{font-size:20px}.concept-connector small{font-size:8px}.concept-ion{width:82px;height:82px;font-size:23px}.concept-electron{left:27%}.concept-step-controls button{font-size:9px}}
@media(prefers-reduced-motion:reduce){.concept-animation *{animation:none!important;transition:none!important}}

/* Conversation history and actions */
.tutor-history-backdrop,.tutor-history-toggle,.history-close{display:none}
.history-heading-actions{display:flex;align-items:center;gap:10px}
.history-row{position:relative;display:flex;align-items:center;gap:4px;margin:3px 0}
.history-row>.history-item{flex:1;min-width:0;align-items:center}
.history-row:has(>.history-item.selected){background:#e2ddff;border-radius:10px;box-shadow:inset 0 0 0 1px #bdb4f6}
.history-row>.history-item.selected{background:transparent;color:#302783;font-weight:800}
.history-row:has(>.history-item.selected) .history-actions summary{color:#4c3eb1}
.history-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-actions{flex:none}
.history-actions summary{list-style:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:#78819a;font-size:21px;line-height:1;cursor:pointer}
.history-actions summary::-webkit-details-marker{display:none}
.history-actions summary:hover,.history-actions[open] summary{background:#f0efff;color:#554ac2}
.history-menu{position:absolute;left:0;top:36px;z-index:5;width:220px;padding:8px;background:#fff;border:1px solid #e2e5f1;border-radius:12px;box-shadow:0 12px 30px #1f25512a}
.history-menu>button,.history-menu>form[data-history-delete]>button{display:block;width:100%;border:0;background:none;border-radius:8px;padding:8px 10px;text-align:right;color:#394365;font-size:11px;font-weight:700}
.history-menu>button:hover,.history-menu>form[data-history-delete]>button:hover{background:#f3f2ff}
.history-menu>form[data-history-delete]>button.history-delete{color:#b84058}
.history-rename-form[hidden],.history-menu>button[hidden]{display:none}
.history-rename-form label{display:block;color:#5e6881;font-size:10px;font-weight:700}
.history-rename-form input[name="title"]{display:block;width:100%;border:1px solid #dce0ee;border-radius:8px;padding:7px 8px;margin:5px 0 8px;color:var(--ink);background:#fff;font-size:11px}
.history-rename-actions{display:flex;gap:5px}
.history-rename-actions button{border:1px solid #dce0ee;border-radius:7px;background:#fff;color:#555c78;padding:5px 9px;font-size:10px}
.history-rename-actions button[type="submit"]{background:#554bd0;border-color:#554bd0;color:#fff}
body.tutor-focus .tutor-history-toggle{display:inline-flex;align-items:center;justify-content:center;order:-2;margin-right:0;margin-left:auto;border:1px solid #dce0ee;border-radius:9px;background:#fff;color:#4b5271;padding:7px 12px;font-size:11px;font-weight:800;white-space:nowrap}
body.tutor-focus .tutor-focus-toggle{order:3;margin-left:0;margin-right:auto}
body.tutor-focus .history-close{display:grid;place-items:center;width:28px;height:28px;border:0;background:#f2f2fa;border-radius:8px;color:#515b77;font-size:20px}
body.tutor-focus .tutor-history{display:block;position:fixed;right:0;left:auto;top:0;bottom:0;z-index:70;width:min(320px,88vw);min-height:0;max-height:none;overflow-y:auto;border-radius:0;padding:20px 14px;transform:translateX(105%);transition:transform .25s ease;box-shadow:-10px 0 40px #171d3b24}
body.tutor-focus.tutor-history-open .tutor-history{transform:translateX(0)}
body.tutor-focus.tutor-history-open .tutor-history-backdrop{display:block;position:fixed;inset:0;z-index:60;width:100%;border:0;background:#111a3866;cursor:default}
@media(max-width:560px){body.tutor-focus .tutor-history-toggle{padding:6px 8px;font-size:10px}}
@media(prefers-reduced-motion:reduce){body.tutor-focus .tutor-history{transition:none}}
@media(max-width:560px){.message.assistant:not(.ai-thinking),body.tutor-focus .message.assistant:not(.ai-thinking){width:100%;max-width:100%}}

/* Student tools inside the tutor chat */
.chat-upload-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:3px 0 10px;color:#6b7290;font-size:11px}
.chat-tool-button{border:1px solid #dce0ee;background:#fff;border-radius:9px;color:#524ab8;padding:7px 11px;font:inherit;font-weight:800;cursor:pointer}
.chat-tool-button[aria-pressed="true"]{background:#fce9eb;color:#b84255;border-color:#eeb8c0}
#chat-file-list{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-attachments{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:9px}
.chat-attachments img{width:110px;max-height:110px;object-fit:cover;border-radius:9px}
.chat-attachments audio{max-width:min(260px,100%)}
.chat-attachments a,.chat-attachments span{display:inline-flex;align-items:center;border-radius:8px;padding:6px 9px;background:#f1f0fc;color:#4d47a8;font-size:11px;text-decoration:none}
.selection-toolbar{position:absolute;z-index:110;display:flex;gap:3px;padding:5px;background:#253052;color:#fff;border-radius:10px;box-shadow:0 9px 24px #151a3640;direction:rtl}
.selection-toolbar[hidden],.annotation-editor[hidden],.annotation-editor audio[hidden]{display:none}
.selection-toolbar button{background:transparent;color:#fff;border:0;padding:6px 9px;font-size:11px;cursor:pointer}
.selection-toolbar button:hover{background:#ffffff20;border-radius:6px}
.student-highlight{border-radius:3px;cursor:pointer;padding:1px 0}
.student-highlight.color-yellow{background:#ffe48a;color:#2c3147}.student-highlight.color-mint{background:#b8efd9;color:#234439}.student-highlight.color-pink{background:#ffd4e2;color:#563448}
.annotation-editor,.annotation-view{position:fixed;z-index:115;width:min(360px,calc(100vw - 20px));background:#fff;border:1px solid #dedff0;border-radius:14px;padding:15px;box-shadow:0 16px 42px #1b214a33;color:#27324e;direction:rtl}
.annotation-editor{left:12px}.annotation-editor blockquote{margin:8px 0;padding:8px;background:#f5f5fb;border-radius:8px;max-height:65px;overflow:auto;font-size:11px}
.annotation-editor textarea{width:100%;box-sizing:border-box;border:1px solid #dce0ee;border-radius:8px;padding:9px;color:#26314f;background:#fff;font:inherit;font-size:12px;resize:vertical}
.annotation-colors,.annotation-editor-actions{display:flex;gap:7px;margin-top:8px}.annotation-colors button{border:0;background:none;font-size:24px;cursor:pointer}.annotation-colors [data-color="yellow"]{color:#e3b62e}.annotation-colors [data-color="mint"]{color:#4bbf91}.annotation-colors [data-color="pink"]{color:#df82a2}.annotation-colors button.active{outline:2px solid currentColor;border-radius:50%}
.annotation-editor-actions button,.annotation-view button{border:1px solid #dcdff0;background:#f7f6ff;color:#5149b4;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}.annotation-editor audio,.annotation-view audio{width:100%;margin-top:8px}
.annotation-view p{margin:0 0 8px;font-size:12px;line-height:1.8;white-space:pre-wrap}
html[data-theme="dark"] .chat-tool-button,html[data-theme="dark"] .annotation-editor,html[data-theme="dark"] .annotation-view{background:#202941;color:#e7e9ff;border-color:#414a68}
html[data-theme="dark"] .annotation-editor textarea,html[data-theme="dark"] .annotation-editor blockquote{background:#18223a;color:#e7e9ff;border-color:#414a68}

/* Compact message composer */
.composer-form{flex:none;background:#fff;padding-top:12px;padding-bottom:9px}
.composer-form .tutor-context.simple{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.composer-context-label{color:#9299ad;font-size:10px;margin-left:3px}
.composer-form .tutor-context select{width:auto;max-width:40%;margin:0;border:1px solid #e9e8f3;border-radius:20px;background-color:#f7f7fc;color:#626982;padding:6px 10px 6px 26px;font-size:10px;min-height:32px;cursor:pointer}
.composer-form .composer-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:12px 14px 10px;border:1px solid #e0dfee;border-radius:20px;background:#fafaff;box-shadow:0 3px 16px #35306f06;transition:border-color .2s,box-shadow .2s}
.composer-form .composer-box:focus-within{border-color:#b7acee;box-shadow:0 0 0 3px #7560d709}
.composer-form .composer-box textarea{grid-column:1/-1;min-height:52px;width:100%;padding:2px 0 8px;border:0;outline:0;box-shadow:none;background:transparent;color:var(--ink);font-size:13px;line-height:1.9;border-radius:0;resize:none}
.composer-form .composer-box textarea:focus{border:0;outline:0;box-shadow:none}
.composer-form .composer-box textarea::placeholder{color:#9a9eb1}
.composer-form .chat-upload-tools{min-width:0;margin:0;gap:5px;flex-wrap:nowrap}
.composer-form .chat-tool-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:36px;border:0;background:transparent;color:#77728d;padding:6px 9px;border-radius:10px;font-size:11px;font-weight:600;white-space:nowrap}
.composer-form .chat-tool-button:hover{color:#5a48c7;background:#eeebfb}
.composer-form .chat-tool-button:focus-visible{outline:2px solid #9c8de0;outline-offset:2px}
.composer-form .chat-tool-button[aria-pressed="true"]{color:#ba405c;background:#ffedf1}
.composer-form #chat-file-list{color:#6553b9;font-size:10px}
.composer-form .chat-send-button,.composer-form .chat-stop-button{min-width:40px;min-height:40px;width:40px;height:40px;flex:none;padding:0;border-radius:13px;box-shadow:none;display:inline-flex;align-items:center;justify-content:center}
.composer-form .chat-send-button .send-label,.composer-form .chat-stop-button>span{display:none}
.composer-form .chat-stop-button[hidden]{display:none}
.composer-form.is-sending .chat-send-button{display:none}
.composer-form .composer-hint{text-align:center;font-size:9px;color:#a4a7b8;margin-top:7px}
.composer-hint>span{margin:0 6px}
html[data-theme="dark"] .composer-form{background:#192032}
html[data-theme="dark"] .composer-form .composer-box{background:#20283c;border-color:#3c435c}
html[data-theme="dark"] .composer-form .tutor-context select{background-color:#242d43;border-color:#3c435c;color:#c9c7df}
html[data-theme="dark"] .composer-form .chat-tool-button{background:transparent;color:#b7afce}
html[data-theme="dark"] .composer-form .chat-tool-button:hover{background:#342d50;color:#ded5ff}
@media(max-width:560px){.composer-context-label{display:none}.composer-form .tutor-context.simple{flex-wrap:nowrap;gap:6px}.composer-form .tutor-context select{width:50%;max-width:50%;font-size:9px}.composer-form .composer-box{padding:10px;border-radius:16px;gap:5px}.composer-form .composer-box textarea{font-size:13px;flex-basis:auto}.composer-form .chat-tool-button{padding:6px}.composer-form .composer-hint{font-size:8px}}

/* Reading tools remain available in both tutor layouts. */
.chat-study-tools{display:flex;flex:none;align-items:center;gap:12px;padding:8px 22px;border-bottom:1px solid #eeedf5;background:#fff;color:#716b88}
.chat-study-tools>button{display:inline-flex;align-items:center;gap:6px;border:1px solid #e6e2f2;border-radius:9px;background:#faf9ff;color:#65578b;font:inherit;font-size:11px;font-weight:700;padding:6px 10px;cursor:pointer;white-space:nowrap}
.chat-study-tools>button[aria-pressed="true"]{background:#fef5ce;color:#725818;border-color:#e6cd74}
.chat-study-tools button:focus-visible{outline:2px solid #9d8ae0;outline-offset:3px}
.chat-study-tools>small{font-size:10px;line-height:1.8;color:#9993a8;min-width:0}
.study-highlight-colors{display:flex;align-items:center;gap:8px;border-inline-start:1px solid #ece9f3;padding-inline-start:12px}
.study-highlight-colors button{width:19px;height:19px;border:2px solid #fff;border-radius:50%;cursor:pointer;padding:0;box-shadow:0 0 0 1px #e6e1ee}
.study-highlight-colors [data-highlight-color="yellow"]{background:#ffe48a}
.study-highlight-colors [data-highlight-color="mint"]{background:#b8efd9}
.study-highlight-colors [data-highlight-color="pink"]{background:#ffd4e2}
.study-highlight-colors [aria-pressed="true"]{outline:2px solid #7969b7;outline-offset:2px}
.highlight-mode .answer-content :is(p,li,h2,h3,h4,blockquote){cursor:crosshair;border-radius:5px}
.highlight-mode .answer-content :is(p,li,h2,h3,h4,blockquote):hover{outline:1px dashed #c7b876;outline-offset:3px}
.selection-toolbar{position:fixed;max-width:calc(100vw - 16px);flex-wrap:wrap}
body.tutor-focus .chat-study-tools{padding-inline:clamp(18px,4vw,70px)}
html[data-theme="dark"] .chat-study-tools{background:#1b2234;border-color:#343b52}
html[data-theme="dark"] .chat-study-tools>button{background:#292b43;color:#d8cfef;border-color:#4b4168}
html[data-theme="dark"] .chat-study-tools>button[aria-pressed="true"]{background:#534827;color:#ffebac;border-color:#8b7639}
@media(max-width:560px){.chat-study-tools,body.tutor-focus .chat-study-tools{padding:8px 12px;gap:10px;flex-wrap:wrap}.chat-study-tools>small{flex-basis:100%;font-size:9px}.chat-study-tools>button{font-size:10px}}

/* Drag-to-paint highlighter and pending attachments */
.study-custom-color{display:inline-flex;align-items:center;gap:5px;font-size:10px;white-space:nowrap;cursor:pointer;color:#847c97;border-radius:7px;padding:3px 5px}
.study-custom-color.is-active{background:#f0ebff;color:#655090}
.study-custom-color input{width:22px;height:22px;min-height:0;border:0;padding:0;background:none;cursor:pointer;border-radius:50%}
.study-custom-color input::-webkit-color-swatch-wrapper{padding:2px}
.study-custom-color input::-webkit-color-swatch{border-radius:50%;border:1px solid #d7cfe4}
.highlight-mode .answer-content,.highlight-mode .answer-content *{cursor:var(--marker-cursor,crosshair)!important;user-select:none;-webkit-user-select:none;touch-action:none}
.highlight-mode .answer-content :is(p,li,h2,h3,h4,blockquote):hover{outline:none}
::highlight(tutor-marker){background-color:var(--marker-color,#ffe48a);color:var(--marker-ink,#252535)}
.marker-preview-overlay{position:fixed;inset:0;z-index:50;pointer-events:none}
.marker-preview-overlay i{position:absolute;border-radius:2px;opacity:.55}
.composer-form #chat-file-list{grid-column:1/-1;display:flex;gap:8px;overflow-x:auto;white-space:normal;max-width:100%;padding:3px 2px 7px;scrollbar-width:thin}
.composer-form #chat-file-list[hidden],.composer-record-status[hidden]{display:none}
.composer-file-card{position:relative;flex:0 0 185px;min-width:0;border:1px solid #e4dfef;border-radius:12px;background:#fff;padding:7px;align-self:start}
.composer-file-preview{display:flex;align-items:center;gap:8px;padding:0 0 0 17px;border:0;background:none;color:#5a526e;text-align:right;width:100%;cursor:pointer}
.composer-file-preview img{width:38px;height:38px;object-fit:cover;border-radius:7px;flex:none}
.composer-file-icon{display:grid;place-items:center;width:34px;height:38px;flex:none;background:#f0ecfb;color:#8974bd;border-radius:7px;font-size:10px;font-weight:800}
.composer-file-info{display:flex;flex-direction:column;min-width:0;gap:4px}
.composer-file-info strong{font-size:10px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.composer-file-info small{font-size:8px;color:#a29aae}
.composer-file-remove{position:absolute;left:4px;top:4px;display:grid;place-items:center;width:21px;height:21px;padding:0;border:0;border-radius:50%;background:#f6f3fb;color:#8e829e;font-size:17px;cursor:pointer}
.composer-file-remove:hover{color:#b5375e;background:#ffe9ee}
.composer-file-card audio{display:block;width:100%;height:30px;margin-top:7px}
.composer-record-status{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:10px;color:#b44b69;padding:4px}
.composer-record-status i{width:7px;height:7px;border-radius:50%;background:#dc6180;animation:record-pulse 1s infinite}
.composer-record-status time{font-variant-numeric:tabular-nums;direction:ltr}
.composer-record-status small{font-size:9px;color:#a396ac;margin-inline-start:auto}
@keyframes record-pulse{50%{opacity:.35}}
.attachment-preview-dialog{width:min(760px,calc(100vw - 32px));max-height:85dvh;padding:16px;border:1px solid #e2dcec;border-radius:18px;color:#564967;background:#fff;box-shadow:0 16px 60px #1c143d40}
.attachment-preview-dialog::backdrop{background:#1e153c77;backdrop-filter:blur(3px)}
.attachment-preview-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.attachment-preview-dialog header strong{font-size:12px;overflow-wrap:anywhere}
.attachment-preview-dialog header button{border:0;border-radius:8px;background:#f4f0fa;color:#82728d;width:30px;height:30px;font-size:23px;cursor:pointer;flex:none}
.attachment-preview-body img{display:block;max-width:100%;max-height:65dvh;margin:auto;object-fit:contain;border-radius:10px}
.attachment-preview-body iframe{width:100%;height:65dvh;border:0;border-radius:10px}
.attachment-preview-body audio{display:block;width:100%;margin:20px 0}
.attachment-preview-body pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:65dvh;overflow:auto;font:inherit;font-size:12px}
html[data-theme="dark"] .composer-file-card,html[data-theme="dark"] .attachment-preview-dialog{background:#252b41;color:#ddd5ed;border-color:#4d425e}
html[data-theme="dark"] .composer-file-preview{color:#d4c9e3}
html[data-theme="dark"] .composer-file-icon,html[data-theme="dark"] .composer-file-remove{background:#362e49;color:#c6b0e2}
@media(max-width:560px){.study-highlight-colors{gap:7px;padding-inline-start:9px}.study-custom-color{font-size:9px}.chat-study-tools{gap:8px}.composer-file-card{flex-basis:170px}.composer-record-status small{flex-basis:100%;margin:0}}
@media(prefers-reduced-motion:reduce){.composer-record-status i{animation:none}}

/* Keep the marker visible in the gaps and on every message while it is enabled. */
.highlight-mode,.highlight-mode *{cursor:var(--marker-cursor,crosshair)!important}

.answer-text-expression{direction:rtl;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 14px;margin:15px 0;padding:20px 16px;border-radius:12px;background:var(--bg,#f7f8fc);font-family:inherit;line-height:2.1;text-align:center}.answer-text-expression>span{unicode-bidi:isolate;font-size:inherit;font-weight:inherit}.answer-text-expression>.answer-text-operator{color:var(--primary,#5751ba);font-size:20px}

.student-highlight.marker-repainting{background-color:var(--marker-color)!important;color:var(--marker-ink)!important}

.answer-topic-diagram{margin:20px 0;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--bg)}.answer-topic-diagram img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;border-radius:12px}.answer-topic-diagram figcaption{font-size:12px;line-height:1.9;margin-top:12px}.answer-topic-diagram figcaption p{margin:6px 0}.answer-topic-diagram figcaption small{display:block;color:var(--muted);font-size:10px}.answer-topic-diagram figcaption a{color:var(--primary);font-size:11px}
