/* Student app */
.ptabs-wrap{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:12}
.ptabs-wrap .dtabs{border:0;margin:0;padding:10px 0}
.portal .dash-nav{position:relative;z-index:13}
.home-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}
@media (max-width:900px){.home-grid{grid-template-columns:1fr}}
.hero-stu{background:linear-gradient(135deg,var(--ink),#2a3f74);color:#fff;border-radius:20px;padding:22px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;margin-bottom:16px}
.lvl-ring{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-family:"Plus Jakarta Sans",sans-serif;font-size:30px;font-weight:800;background:conic-gradient(var(--saffron) var(--p),rgba(255,255,255,.15) 0);position:relative}
.lvl-ring::after{content:"";position:absolute;inset:7px;border-radius:50%;background:#312e81}
.lvl-ring span{position:relative;z-index:1}
.hero-stu h2{font-size:24px}
.hero-stu p{color:#c4cce0}
.mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
@media (max-width:600px){.mini-stats{grid-template-columns:repeat(2,1fr)}.hero-stu{grid-template-columns:1fr;text-align:center}.lvl-ring{margin:0 auto}}
.mini-stats div{background:rgba(255,255,255,.09);border-radius:12px;padding:9px 10px}
.mini-stats b{display:block;font-size:19px;font-family:"Plus Jakarta Sans",sans-serif}
.mini-stats span{font-size:11.5px;color:#b8c2dc;font-weight:600}
.task{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px dashed var(--line);cursor:pointer}
.task .bx{flex:0 0 24px;height:24px;border-radius:7px;border:2px solid var(--gray);display:grid;place-items:center;color:#fff;font-weight:800;font-size:14px}
.task.done .bx{background:var(--green);border-color:var(--green)}
.task.done span{text-decoration:line-through;color:var(--muted)}
.heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,12px);gap:3px;overflow-x:auto;padding-bottom:4px}
.heatmap i{width:12px;height:12px;border-radius:3px;background:#eef2f7}
.heatmap i.h1{background:#c7ead6}.heatmap i.h2{background:#82cfa6}.heatmap i.h3{background:#3fae75}.heatmap i.h4{background:#1f8a55}
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.badge-it{text-align:center;padding:10px 6px;border-radius:12px;background:var(--paper);font-size:11.5px;font-weight:700;opacity:.4}
.badge-it.got{opacity:1;background:#fff6e0}
.badge-it div{font-size:26px}
.lb-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}
.lb-row .r{width:28px;font-family:"Plus Jakarta Sans",sans-serif;font-weight:800}
.lb-row.me{background:#fff6e0;border-radius:10px;padding:8px}
.lb-row b{flex:1}
.subj-card{cursor:pointer;transition:transform .15s}
.subj-card:hover{transform:translateY(-2px)}
.subj-card .em{font-size:30px}
.concept{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:8px;flex-wrap:wrap}
.concept .mastery{font-size:12px;font-weight:800}
.crumbs{font-size:14px;margin-bottom:12px}
.crumbs a{color:var(--saffron-d);font-weight:700;text-decoration:none;cursor:pointer}
.fb{margin-top:14px;border-radius:12px;padding:14px;font-size:15px}
.fb.ok{background:#e3f5ec;border:1px solid #9fd8bb}
.fb.bad{background:#fdecec;border:1px solid #f3b4b4}
.opt.right{border-color:var(--green);background:#e3f5ec}
.opt.wrongsel{border-color:var(--red);background:#fdecec}
.opt[disabled]{cursor:default}
.cheat-warn{position:fixed;top:0;left:0;right:0;z-index:70;background:var(--red);color:#fff;text-align:center;padding:12px;font-weight:700}
body.no-copy #exam{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.ai-ans{background:#f5f3ff;border:1px solid #d9d2fb;border-radius:14px;padding:14px 16px;white-space:pre-wrap;line-height:1.6}
.pred{background:linear-gradient(135deg,#fff6e0,#eef2ff);border:1px solid #f1d38a;border-radius:16px;padding:16px}
.pred b{font-family:"Plus Jakarta Sans",sans-serif;font-size:20px}
.locked{opacity:.6}

.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.folder-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;font:inherit;cursor:pointer;padding:18px}
.folder-card .fi{font-size:30px}
.folder-card b{font-size:16px}
.folder-card small{color:var(--muted)}
.folder-card.on{border-color:#a5b4fc !important;background:#eef2ff}
.folder-view iframe{width:100%;height:min(70vh,560px);border:1px solid var(--line);border-radius:12px;background:#fff}
#folderView{scroll-margin-top:80px}

/* ===== Videos tab ===== */
.vid-intro{background:#eef2ff;border:1px solid #c7d2fe;border-radius:14px;padding:12px 16px;font-size:14px;margin-bottom:14px;color:var(--ink2)}
.vid-cont{display:flex;gap:14px;align-items:center;width:100%;text-align:left;padding:14px 18px;margin-bottom:14px;cursor:pointer;font:inherit;color:inherit}
.vid-cont .em{width:44px;height:44px;flex:none;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:grid;place-items:center;font-size:18px}
.vid-cont small{display:block;color:var(--saffron);font-weight:700}.vid-cont b{display:block}
.vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-top:12px}
.vid-card{padding:0;overflow:hidden;text-align:left;cursor:pointer;font:inherit;color:inherit;display:flex;flex-direction:column}
.vid-card:hover{border-color:#a5b4fc}
.vid-card:focus-visible,.vid-cont:focus-visible{outline:2px solid var(--saffron);outline-offset:2px}
.vid-thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#1e1b4b,#4338ca);display:grid;place-items:center;font-size:38px}
.vid-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vid-thumb em{position:absolute;left:10px;bottom:10px;font-style:normal;font-size:12px;font-weight:700;background:rgba(15,23,42,.85);color:#fff;padding:3px 10px;border-radius:99px}
.vid-thumb em.ok{background:var(--green)}.vid-thumb em.mid{background:#d97706}
.vid-body{padding:12px 14px 14px}.vid-body small{color:var(--muted);font-weight:600}.vid-body b{display:block;margin:2px 0 10px;font-size:15.5px;line-height:1.35}
.vid-prog{height:6px;background:var(--line);border-radius:99px;overflow:hidden;margin-bottom:6px}.vid-prog i{display:block;height:100%;background:var(--green)}
.vid-head{margin:6px 0 12px}.vid-head h2{font-size:22px;margin:0}

/* ===== Camera proctoring ===== */
.cam-box{position:fixed;right:14px;bottom:86px;width:132px;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#0f172a;border:3px solid #22c55e;box-shadow:0 12px 30px -10px rgba(15,23,42,.5);z-index:60}
.cam-box::after{content:"● REC";position:absolute;left:8px;top:6px;font:700 10px/1 "Plus Jakarta Sans",system-ui,sans-serif;color:#fff;background:rgba(220,38,38,.9);padding:3px 6px;border-radius:99px}
.cam-box.bad{border-color:#ef4444}
.cam-box video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
@media (max-width:600px){.cam-box{width:96px;right:10px;bottom:76px}}
.split-block{position:fixed;inset:0;z-index:300;background:#0f172a;color:#fff;display:grid;place-items:center;text-align:center;padding:24px}
.split-block .big{font-size:44px}.split-block h3{font-size:22px;margin:6px 0}.split-block p{color:#cbd5e1;max-width:420px;margin:8px auto}
body.split-blocked #exam .q-area,body.split-blocked #exam .qtext{visibility:hidden}

/* ===== Notifications bar ===== */
.push-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:14px;padding:12px 16px;border-radius:14px;background:#eef2ff;border:1px solid #c7d2fe;font-size:14px}
.push-bar>span:first-child{flex:1;min-width:220px}
.push-bar .pb-act{display:flex;gap:12px;align-items:center}
.push-bar small{flex-basis:100%;color:var(--red)}.push-bar small:empty{display:none}
.push-bar.ok{background:#f0fdf4;border-color:#bbf7d0}

/* ===== Exam: text size, tools, sections, live warning ===== */
:root{--qscale:1}
#exam .qtext{font-size:calc(19px*var(--qscale))}
#exam .opt{font-size:calc(16px*var(--qscale))}
#result .qtext{font-size:calc(17px*var(--qscale))}
#result .ropt{font-size:calc(15px*var(--qscale))}
.q-img{display:block;max-width:100%;max-height:340px;margin:10px 0;border-radius:8px;border:1px solid var(--line);background:#fff}
.ex-tools{display:flex;gap:6px;margin-left:auto}
.ex-tools .xt{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:6px 10px;font:700 13px/1 "Plus Jakarta Sans",system-ui,sans-serif;white-space:nowrap}
.ex-tools .xt:hover{background:rgba(255,255,255,.22)}
@media (max-width:640px){.ex-tools .xt span{display:none}.exam-bar .t small{display:none}}
.sec-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:12px}
.sec-bar .sec{padding:6px 14px;border-radius:99px;font-weight:700;font-size:13px;background:#f1f5f9;color:var(--muted)}
.sec-bar .sec.on{background:var(--saffron);color:#fff}.sec-bar .sec.done{background:#dcfce7;color:#166534}
.sec-bar .btn{margin-left:auto}
.multi-tag{background:#fef3c7;color:#92400e;border-radius:99px;padding:2px 8px;font-size:12px;font-weight:700;margin-left:4px}
.opt.multi .k{border-radius:7px}
.opt.multi.sel .k{background:var(--saffron);border-color:var(--saffron);color:#fff}
.fb.part{background:#fffbeb;border:1px solid #fcd34d;color:#78350f}
#bCheck{margin-top:4px}
.resume-note{background:#eef2ff;border:1px solid #c7d2fe;border-radius:12px;padding:10px 12px;font-size:14px;margin-top:10px}
.live-warn{position:fixed;inset:0;z-index:320;background:rgba(127,29,29,.55);display:grid;place-items:center;padding:20px}
.live-warn>div{background:#fff;border-radius:18px;padding:22px;max-width:420px;width:100%;text-align:center;border:3px solid var(--red);box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.live-warn b{color:var(--red);font-size:18px}.live-warn p{font-size:17px;margin:10px 0 16px}
.live-warn .btn{background:var(--red);color:#fff}
/* calculator + rough pad */
.tool-calc{position:fixed;right:16px;bottom:16px;z-index:250;width:300px;background:#0f172a;color:#fff;border-radius:18px;padding:12px;box-shadow:0 24px 60px -20px rgba(0,0,0,.7);user-select:none}
.tc-head{display:flex;justify-content:space-between;align-items:center;cursor:move;margin-bottom:8px;touch-action:none}
.tc-head button{background:#1e293b;color:#fff;border:0;border-radius:8px;padding:5px 9px;font-weight:700;font-size:12px;margin-left:6px}
.tc-in{width:100%;background:#1e293b;color:#fff;border:1px solid #334155;border-radius:10px;padding:9px 10px;font:600 16px/1.2 ui-monospace,Menlo,Consolas,monospace;text-align:right}
.tc-out{text-align:right;font:800 22px/1.3 ui-monospace,Menlo,Consolas,monospace;padding:6px 4px 8px;min-height:36px;word-break:break-all}.tc-out.err{color:#fca5a5;font-size:14px}
.tc-keys{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.tc-keys button{background:#1e293b;color:#e2e8f0;border:0;border-radius:10px;padding:10px 0;font-weight:700;font-size:14px}
.tc-keys button.n{background:#334155;color:#fff}.tc-keys button.eq{background:var(--saffron);color:#fff}
.tc-keys button:active{transform:scale(.96)}
.tool-pad{position:fixed;inset:0;z-index:240;background:#fffdf5;display:flex;flex-direction:column}
.tp-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tp-tools{display:flex;gap:6px;flex-wrap:wrap}
.tp-tools button{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:7px 12px;font-weight:700;font-size:13px}
.tp-tools button.on{border-color:var(--saffron);background:#eef2ff}.tp-tools .tp-close{background:var(--saffron);color:#fff;border-color:var(--saffron)}
.tool-pad canvas{flex:1;width:100%;touch-action:none;background-image:linear-gradient(#e2e8f0 1px,transparent 1px);background-size:100% 32px}
.tp-note{text-align:center;font-size:12px;color:var(--muted);padding:6px}
