*{box-sizing:border-box}html{scroll-padding-top:80px}
body{margin:0;font-family:Vazirmatn,Tahoma,sans-serif;background:#f4f6fb;color:#1e2235;line-height:1.8;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
main{flex:1}a{color:#4f46e5}h2{margin:0 0 16px;font-size:24px}h3{margin:0 0 12px;font-size:17px;color:#312e81}
.wrap{max-width:1180px;margin:0 auto;padding:0 18px}.muted{color:#7a8099}small.muted{font-weight:400;font-size:12.5px}.center{text-align:center}.mt{margin-top:18px}
.nav{background:#fffffff2;backdrop-filter:blur(6px);box-shadow:0 1px 0 #e5e7f0,0 4px 18px #1e1b4b0d;position:sticky;top:0;z-index:20}
.navrow{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:62px}
.logo{font-weight:800;font-size:21px;color:#4f46e5;text-decoration:none;white-space:nowrap}
nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}nav a:not(.btn),nav button:not(.btn){color:#2d3250;text-decoration:none;padding:6px 10px;border-radius:8px;background:none;border:0;font:inherit;cursor:pointer}nav a:not(.btn):hover{background:#eef0ff}
.burger{display:none;background:none;border:0;font-size:24px;cursor:pointer;color:#312e81}
.btn{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff!important;border:0;padding:10px 22px;border-radius:12px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 14px #4f46e533}
.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.6}.btn.sm{padding:6px 14px;font-size:14px;box-shadow:none}.btn.block{width:100%}
.btn.ghost{background:#eef0ff;color:#4f46e5!important;box-shadow:none}.btn.light{background:#fff;color:#4f46e5!important}.btn.outline{background:transparent;border:1.5px solid #fff9;box-shadow:none}
.hero{background:radial-gradient(circle at 20% 20%,#8b5cf6 0,transparent 45%),linear-gradient(135deg,#312e81,#6d28d9);color:#fff;padding:90px 0 80px;text-align:center}
.hero h1{font-size:40px;margin:0 0 12px;line-height:1.4}.hero p{max-width:640px;margin:0 auto 26px;opacity:.92;font-size:17px}.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
section{padding:56px 0}section h2{text-align:center;margin-bottom:28px}section.alt{background:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 4px 20px #1e1b4b0d;border:1px solid #eceef6;min-width:0}
.card.center{text-align:center}.feat h3,.card.center h3{color:#4f46e5}.avatar{font-size:44px;line-height:1.2}.contact p{margin:6px 0}
.page{padding-top:28px}.card.page{margin:28px 0}.card+.card,.kpis+.card,.card.notes{margin-top:18px}
.pagehead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.pagehead h2,.pagehead h3{margin:0}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.form{max-width:440px;margin:48px auto}.form h2{text-align:center}
.stack{display:flex;flex-direction:column;gap:12px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:14px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #d6d9e6;border-radius:10px;font:inherit;font-weight:400;background:#fff;color:inherit;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid #a5b4fc;border-color:#6366f1}
input[dir=ltr]{text-align:left}
.fields{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:10px}
.subj{display:grid;grid-template-columns:1.3fr .8fr .9fr 2fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed #e5e7f0}
.subj.head{font-weight:700;font-size:13px;color:#5b6180;border:0}.subj label i{display:none}.sname{font-weight:700}.sname small{color:#7a8099;font-weight:400;display:block;font-size:12px;line-height:1.3}
#f>.btn{margin-top:18px}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.kpi{font-size:26px;font-weight:800;color:#4f46e5;line-height:1.5}.kpi small{font-size:14px;color:#7a8099}.kpi.sm{font-size:18px}
.bar{height:8px;background:#eceef6;border-radius:9px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:linear-gradient(90deg,#7c3aed,#4f46e5)}
.mini{height:5px;background:#eceef6;border-radius:9px;overflow:hidden;width:70px;margin:0 auto 2px}.mini i{display:block;height:100%;background:#7c3aed}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin:6px 0 12px;font-size:13px;align-items:center}.legend .sess{margin:0;padding:2px 10px}.dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:5px;vertical-align:middle}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.day{background:#f8f9fd;border-radius:14px;padding:8px;min-width:0}.dayh{display:flex;justify-content:space-between;align-items:baseline;padding:2px 4px 6px}.dayh small{color:#7a8099;font-size:11.5px}
.sess{display:block;border-radius:10px;padding:6px 8px;margin:6px 0;font-size:12.5px;line-height:1.6;overflow-wrap:anywhere}.sess .len{float:left;font-size:11.5px;opacity:.75}.topic{color:#4b5070;font-size:12px}
.study{background:#e0e7ff}.test{background:#fef3c7}.review{background:#dcfce7}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tblwrap.scroll{max-height:340px;overflow-y:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th,.tbl td{padding:9px 8px;text-align:center;border-bottom:1px solid #eceef6;white-space:nowrap}.tbl th{background:#f3f4ff;color:#3b3f73;font-weight:700;position:sticky;top:0}.tbl td.tr{text-align:right;white-space:normal}
.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:#fafaff}
.chart{width:100%;min-height:230px}.chart canvas{display:block}
.note{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:10px 14px;margin-bottom:10px}.noteh{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.noteh small{color:#7a8099}.note p{margin:4px 0 0}
.badge{background:#fee2e2;color:#b91c1c;border-radius:20px;padding:2px 10px;font-size:12px}
#q{width:260px}#ff{width:150px}
.err{color:#dc2626;margin:0;min-height:1em}.ok{color:#16a34a}.loading{text-align:center;padding:80px;color:#7a8099}
#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,120px);background:#1e1b4b;color:#fff;padding:10px 20px;border-radius:12px;transition:transform .3s;z-index:50;max-width:90vw;text-align:center}#toast.show{transform:translate(-50%,0)}#toast.bad{background:#b91c1c}
footer{background:#1e1b4b;color:#c7c9e0;padding:20px 0;text-align:center;margin-top:48px;font-size:14px}
@media(max-width:1000px){.week{grid-template-columns:repeat(4,minmax(0,1fr))}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
 .burger{display:block}body:not(.adminbody) nav{display:none;position:absolute;top:62px;right:0;left:0;background:#fff;flex-direction:column;align-items:stretch;padding:10px 18px 16px;box-shadow:0 10px 20px #0001}
 body.menu nav{display:flex!important}nav a,nav .btn{text-align:center}
 .adminbody nav{gap:2px}.adminbody nav .muted{display:none}
 .hero{padding:60px 0 52px}.hero h1{font-size:27px}.hero p{font-size:15px}section{padding:40px 0}
 .grid2{grid-template-columns:1fr}.week{grid-template-columns:1fr 1fr}.kpis{gap:12px}.kpi{font-size:21px}.card{padding:16px}
 .subj{grid-template-columns:1fr 1fr;background:#f8f9fd;border-radius:12px;padding:10px;margin-bottom:8px;border:0}.subj.head{display:none}.subj .sname,.subj .wide{grid-column:1/-1}.subj label i{display:block;font-style:normal;font-size:12px;color:#7a8099;font-weight:400}
 .pagehead .actions{width:100%}.pagehead .actions>*{flex:1}#q,#ff{width:auto}
 h2{font-size:21px}.form{margin:28px auto}
}
@media(max-width:420px){.week{grid-template-columns:1fr}.two{grid-template-columns:1fr}}
#toast{opacity:0;visibility:hidden;transition:transform .3s,opacity .3s,visibility .3s}#toast.show{opacity:1;visibility:visible}
.kpis>.card,.grid>.card,.grid2>.card{margin-top:0!important}
#toast:not(.show){display:none}
html{background:#f4f6fb}
/* ---- PWA / app-like ---- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{-webkit-tap-highlight-color:transparent}
input,select,textarea{font-size:16px}  /* prevents iOS focus zoom */
.nav{padding-top:env(safe-area-inset-top)}.navrow{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
.installbtn[hidden]{display:none!important}
.ioshintline{font-size:13.5px;opacity:.9;margin:14px auto 0;max-width:520px}.page .ioshintline{color:#5b6180;text-align:center}
#ioshint{position:fixed;inset:0;background:#0007;z-index:60;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
.ioscard{background:#fff;border-radius:18px;padding:18px;max-width:420px;width:100%;text-align:center}.ioscard .ico{display:inline-block;border:1px solid #ccd;border-radius:6px;padding:0 6px}
#offbar{position:sticky;top:0;z-index:30;background:#b45309;color:#fff;text-align:center;font-size:13px;padding:4px calc(8px + env(safe-area-inset-right)) 4px calc(8px + env(safe-area-inset-left));padding-top:calc(4px + env(safe-area-inset-top))}
#bnav{position:fixed;top:auto;bottom:0;left:0;right:0;flex-direction:row;z-index:25;display:flex;background:#fffffff5;backdrop-filter:blur(8px);border-top:1px solid #e5e7f0;padding:4px max(6px,env(safe-area-inset-left)) calc(4px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-right));box-shadow:0 -4px 16px #1e1b4b0f}
#bnav a{flex:1;display:flex;flex-direction:column;align-items:center;font-size:11px;color:#5b6180;text-decoration:none;padding:4px 0;border-radius:10px}#bnav a span{font-size:20px;line-height:1.3}#bnav a.on{color:#4f46e5;font-weight:700;background:#eef0ff}
body.hasbnav{padding-bottom:calc(70px + env(safe-area-inset-bottom))}body.hasbnav footer{display:none}body.hasbnav #toast{bottom:calc(84px + env(safe-area-inset-bottom))}
.standalone body.hasbnav .burger{display:none}
@media(max-width:760px){.standalone body.hasbnav nav#navlinks{display:none!important}}
/* ---- Hermes AI ---- */
.aicard h3{margin:0}.airep h4{margin:0 0 6px;font-size:15px}.aisum{font-size:16px;line-height:2;background:linear-gradient(135deg,#eef0ff,#f5f0ff);border-radius:12px;padding:12px 14px;margin:10px 0}
.aibox{background:#f8f9fd;border:1px solid #eceef6;border-radius:12px;padding:12px 14px}.aibox p{margin:0;line-height:2}.aibox ul{margin:0;padding-inline-start:20px;line-height:1.95}.aibox.good{background:#f0fdf4;border-color:#bbf7d0}.aibox.bad{background:#fff7ed;border-color:#fed7aa}
.airep .grid2{gap:12px;margin-bottom:12px}.focus{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.fchip{background:#fff;border:1px solid #dfe3f3;border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;min-width:120px;flex:1 1 140px}.fchip b{color:#4f46e5}.fchip span{font-weight:700}.fchip small{color:#6b7090;font-size:12px;line-height:1.7}
.aihabit{background:#ecfeff;border-radius:10px;padding:10px 12px}.aimot{text-align:center;font-weight:700;color:#4f46e5;font-size:16px}
.aiload{display:flex;align-items:center;gap:10px;color:#5b6180;padding:14px 0}.spin{width:18px;height:18px;border:3px solid #c7d2fe;border-top-color:#4f46e5;border-radius:50%;display:inline-block;animation:sp 0.8s linear infinite;flex:none}@keyframes sp{to{transform:rotate(360deg)}}
.narrow{max-width:820px}.persona .pq{border:1px solid #e5e7f0;border-radius:12px;padding:10px 14px;margin:0 0 10px}.pq legend{font-weight:700;padding:0 6px}.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{display:inline-flex!important;cursor:pointer}.opt input{position:absolute;opacity:0;width:0}.opt span{border:1.5px solid #dfe3f3;border-radius:999px;padding:6px 14px;font-size:14px;transition:.15s}.opt input:checked+span{background:#4f46e5;border-color:#4f46e5;color:#fff}.opt input:focus-visible+span{outline:2px solid #a5b4fc}
body.noscroll{overflow:hidden}#qmodal{position:fixed;inset:0;z-index:70;background:#1e1b4b80;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
.qcard{background:#fff;border-radius:18px;width:100%;max-width:640px;max-height:100%;overflow:auto;padding:18px 18px 22px;position:relative;box-shadow:0 20px 60px #0004}.qcard h3{margin:0 0 6px;padding-left:36px}
.qx{position:absolute;left:12px;top:12px;border:0;background:#f1f2f8;border-radius:50%;width:34px;height:34px;font-size:16px;cursor:pointer}
.qq{border:1px solid #eceef6;border-radius:12px;padding:10px 12px;margin:10px 0}.qq.ok{border-color:#86efac;background:#f7fef9}.qq.no{border-color:#fdba74;background:#fffaf5}.qt{font-weight:600;line-height:1.9;margin:6px 0}
.qopts{display:grid;gap:6px}.qo{display:flex!important;align-items:flex-start;gap:8px;border:1.5px solid #e5e7f0;border-radius:10px;padding:8px 10px;cursor:pointer;font-weight:400}.qo input{margin-top:6px;flex:none}.qo:has(input:checked){border-color:#4f46e5;background:#eef0ff}
.qo.right{border-color:#16a34a!important;background:#dcfce7!important}.qo.wrong{border-color:#ea580c!important;background:#ffedd5!important}.qexp{background:#fefce8;border-radius:8px;padding:8px 10px;margin-top:8px;font-size:14px;line-height:1.9}
.qscore{font-size:18px;text-align:center;background:#eef0ff;border-radius:12px;padding:10px;margin:6px 0}.qhist summary{display:flex;justify-content:space-between;cursor:pointer;gap:10px}
.chatbox{display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:420px}#msgs{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:4px}
.msg{max-width:85%;padding:10px 14px;border-radius:16px;line-height:1.95;white-space:normal;word-wrap:break-word}.msg.me{align-self:flex-start;background:#4f46e5;color:#fff;border-bottom-right-radius:4px}.msg.ai{align-self:flex-end;background:#f1f2f8;border-bottom-left-radius:4px}.msg.typing{display:flex;gap:8px;align-items:center;color:#5b6180}
.chatf{display:flex;gap:8px;margin-top:10px}.chatf textarea{flex:1;resize:none;min-height:46px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chip{border:1px solid #dfe3f3;background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}
body.hasbnav .chatbox{height:calc(100vh - 300px)}
@media(max-width:760px){.msg{max-width:92%}.qcard{padding:16px 14px 20px}}
.qo{flex-direction:row!important}.qo span{flex:1;line-height:1.9}.qo bdi{unicode-bidi:isolate}
.qo input[type=radio]{width:auto!important;min-height:0;height:auto;padding:0;margin:7px 0 0;flex:none}.qo span{min-width:0}
