/* IDTRA CBT – single stylesheet (no external fonts, no frameworks) */
:root{
  --bg:#f4f6fb;--card:#fff;--ink:#1b2333;--muted:#5d6b86;--line:#e1e6f0;--pri:#2557d6;--pri-ink:#fff;--pri-soft:#e8efff;
  --ok:#1a9d57;--ok-soft:#e3f6ec;--err:#d93b3b;--err-soft:#fdeaea;--warn:#d98a0b;--warn-soft:#fff3dc;--mark:#7a46d6;--mark-soft:#f0e8ff;
  --shadow:0 1px 2px rgba(20,30,60,.06),0 6px 18px rgba(20,30,60,.06);--r:14px;
  --font:'Noto Sans Devanagari','Noto Sans','Segoe UI','Nirmala UI','Mangal',system-ui,-apple-system,Roboto,Arial,sans-serif;
}
[data-theme=dark]{
  --bg:#0f1420;--card:#171e2e;--ink:#e8edf8;--muted:#9aa8c4;--line:#27314a;--pri:#6f98ff;--pri-ink:#0b1020;--pri-soft:#1c2a4d;
  --ok:#3fcf86;--ok-soft:#133323;--err:#ff6b6b;--err-soft:#3a1a1e;--warn:#f0b24a;--warn-soft:#3a2d12;--mark:#b48cff;--mark-soft:#2a2046;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.55}
a{color:var(--pri);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.6rem;margin:.2em 0 .5em;line-height:1.25}h2{font-size:1.25rem;margin:.2em 0 .6em}h3{font-size:1.05rem;margin:1em 0 .4em}
.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px}
.main{padding-top:20px;padding-bottom:40px;min-height:60vh}
.muted{color:var(--muted)}.right{text-align:right}.center{text-align:center}.inline{display:inline}
.scroll{overflow-x:auto}
small{color:var(--muted);display:block;margin-top:3px}

/* top bar */
.topbar{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink);font-size:1.05rem}
.brand:hover{text-decoration:none}.logo{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--pri);color:var(--pri-ink)}
.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.nav>a:not(.btn){color:var(--ink);padding:8px 10px;border-radius:8px}.nav>a:not(.btn):hover{background:var(--pri-soft);text-decoration:none}
.user-chip{background:var(--pri-soft);color:var(--pri)!important}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;font-size:1.2rem;padding:4px 10px;color:var(--ink)}
.icon-btn{background:none;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:6px 10px;cursor:pointer;font-family:inherit}
.icon-btn:hover{background:var(--pri-soft)}
@media(max-width:760px){.menu-btn{display:block}.nav{display:none;position:absolute;left:0;right:0;top:58px;background:var(--card);padding:12px 16px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}.nav-open .nav{display:flex}.nav>*{width:100%;text-align:left}}

/* buttons */
.btn{display:inline-block;border:1px solid transparent;border-radius:10px;padding:10px 18px;font:inherit;font-weight:600;cursor:pointer;text-align:center;background:var(--pri-soft);color:var(--pri);transition:.15s}
.btn:hover{text-decoration:none;filter:brightness(.97);transform:translateY(-1px)}
.btn-primary{background:var(--pri);color:var(--pri-ink)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-danger{background:var(--err);color:#fff}.btn-warn{background:var(--warn);color:#fff}.btn-mark{background:var(--mark);color:#fff}
.btn.sm{padding:6px 12px;font-size:.9rem}.btn.lg{padding:14px 26px;font-size:1.1rem}.btn.block{display:block;width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* cards / forms */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:20px;margin:0 0 18px}
.card.narrow{max-width:460px;margin:30px auto}.card.prose{max-width:800px;margin:0 auto 18px}.prose p,.prose li{line-height:1.8}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media(max-width:760px){.grid2{grid-template-columns:1fr}}
.form .field{margin:0 0 14px}.field label{display:block;font-weight:600;margin-bottom:5px}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field input[type=datetime-local],.field input[type=file],.field input[type=search],.field select,.field textarea,#tileSearch,.fi{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
.field input:focus,.field select:focus,.field textarea:focus,#tileSearch:focus{outline:2px solid var(--pri);outline-offset:1px}
.field.check label{font-weight:500;display:flex;gap:8px;align-items:flex-start}.field.check input{margin-top:5px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 16px}
.flash{padding:12px 16px;border-radius:10px;margin:0 0 14px;border:1px solid}
.flash.ok{background:var(--ok-soft);border-color:var(--ok)}.flash.err{background:var(--err-soft);border-color:var(--err)}.flash.warn{background:var(--warn-soft);border-color:var(--warn)}
.notice{background:var(--warn-soft);border:1px solid var(--warn);border-radius:10px;padding:10px 14px}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--pri-soft);color:var(--pri);font-size:.8rem;font-weight:600;vertical-align:middle}
.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.err{background:var(--err-soft);color:var(--err)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.demo{background:var(--mark-soft);color:var(--mark)}.badge.lg{font-size:.95rem;padding:4px 14px}
.crumbs{font-size:.9rem;color:var(--muted);margin:0 0 12px}
.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tbl th{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.tbl tr.me td{background:var(--pri-soft)}
.pager{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.pager a,.pager span{padding:5px 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.pager a.on{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}

/* home */
.hero{background:linear-gradient(135deg,var(--pri),#6d3df0);color:#fff;border-radius:var(--r);padding:34px 24px;margin-bottom:22px;box-shadow:var(--shadow)}
.hero h1{color:#fff;margin:0 0 6px;font-size:1.9rem}.hero p{margin:0 0 16px;opacity:.92}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-actions input{max-width:360px;flex:1;min-width:200px;border:none}
.hero .btn-primary{background:#fff;color:#2b3fc9}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:var(--ink);box-shadow:var(--shadow);transition:.15s;min-height:84px}
.tile:hover{transform:translateY(-2px);border-color:var(--pri);text-decoration:none}.tile.accent{border-color:var(--warn);background:var(--warn-soft)}
.tile-name{font-weight:700}.tile-meta{display:flex;gap:6px;flex-wrap:wrap}
.cat{margin:26px 0}.cat>h2{border-left:5px solid var(--pri);padding-left:12px}.cat .cat{margin-left:14px}
.paper{margin:14px 0 20px}.paper h3{margin:.4em 0}.demo-sec{margin:0 0 24px}
.tile.hide,.paper.hide,.cat.hide{display:none}

/* quiz info + result */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:12px 0}
.stat{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;text-align:center}.stat b{display:block;font-size:1.5rem;line-height:1.2}.stat span{font-size:.82rem;color:var(--muted)}
.stat.ok b{color:var(--ok)}.stat.err b{color:var(--err)}.stat.acc b{color:var(--pri)}
.instr li{margin:6px 0}
.score-hero{display:flex;gap:24px;align-items:center;flex-wrap:wrap}.score-info{flex:1;min-width:260px}
.donut{width:170px;height:170px}.donut circle{fill:none;stroke-width:14}.d-bg{stroke:var(--line)}.d-c{stroke:var(--ok)}.d-w{stroke:var(--err)}.d-u{stroke:var(--muted);opacity:.55}
.d-score{font-size:24px;font-weight:700;fill:var(--ink)}.d-of{font-size:11px;fill:var(--muted)}
.secrow{display:grid;grid-template-columns:140px 1fr;gap:4px 14px;align-items:center;margin:12px 0}.secname{font-weight:600}
.bar{height:12px;background:var(--line);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pri),var(--ok));border-radius:99px}
.secnum{grid-column:2;font-size:.9rem;color:var(--muted)}
@media(max-width:560px){.secrow{grid-template-columns:1fr}.secnum{grid-column:1}}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cta{display:flex;flex-direction:column;gap:6px;background:var(--pri-soft);border-radius:12px;padding:14px 16px;flex:1;min-width:260px}

/* review */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.chip{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:6px 14px;border-radius:99px;cursor:pointer;font:inherit}
.chip.on{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}.chip.right{margin-left:auto}
.rv-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.qn{font-weight:700}.rv-meta{margin-left:auto;color:var(--muted);font-size:.9rem}
.rv-q{font-size:1.05rem;margin:6px 0 10px}.rv-opts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rv-opts li{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:9px 12px}
.rv-opts li.correct{background:var(--ok-soft);border-color:var(--ok)}.rv-opts li.chosen.wrong{background:var(--err-soft);border-color:var(--err)}
.ol{display:grid;place-items:center;min-width:26px;height:26px;border-radius:50%;background:var(--bg);border:1px solid var(--line);font-weight:700;font-size:.85rem}
.ot{flex:1}.rv-opts em{font-style:normal;font-size:.78rem;font-weight:700;color:var(--muted);white-space:nowrap}.rv-opts em.okm{color:var(--ok)}
.expl{margin-top:12px;background:var(--pri-soft);border-radius:10px;padding:10px 14px}.footnote{margin-top:8px;font-size:.88rem;color:var(--muted)}
.qimg{max-width:100%;border-radius:8px;margin:8px 0;-webkit-user-drag:none;pointer-events:none}
[data-l=hi]{display:none}html[data-qlang=hi] [data-l=hi]{display:inline}html[data-qlang=hi] [data-l=en]{display:none}
html:not([data-qlang=hi]) [data-l=en]{display:inline}
html[data-qlang=both] [data-l=en],html[data-qlang=both] [data-l=hi]{display:block}html[data-qlang=both] [data-l=hi]{margin-top:.15rem;padding-left:.6rem;border-left:3px solid var(--line,#cfd8dc);opacity:.95}
.hiq,.hio{display:block;margin-top:.25rem;padding-left:.6rem;border-left:3px solid #c9d3d8}
.rv.hide{display:none}

/* footer */
.footer{border-top:1px solid var(--line);background:var(--card);padding:20px 0;margin-top:30px}.foot-links{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}.foot-note{color:var(--muted);font-size:.88rem}
.consent{position:fixed;left:12px;right:12px;bottom:12px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:12px 16px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;z-index:50}.consent[hidden]{display:none}
.ad-wrap{margin:22px 0;min-height:110px;text-align:center;clear:both}.ad-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}

/* ------------- exam screen ------------- */
.exam-body{background:var(--bg)}
.exam{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.ex-top{display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap}
.ex-title{font-weight:700;flex:1;min-width:140px}.ex-user{color:var(--muted);font-size:.9rem}
.ex-timers{display:flex;gap:10px}.ex-timer{background:var(--pri-soft);border-radius:10px;padding:4px 12px;text-align:center;line-height:1.2}.ex-timer span{display:block;font-size:.7rem;color:var(--muted)}.ex-timer b{font-size:1.25rem;font-variant-numeric:tabular-nums}
.ex-timer.low{background:var(--err-soft)}.ex-timer.low b{color:var(--err)}
.ex-tools{display:flex;gap:6px}.only-mobile{display:none}
.ex-sections{display:flex;gap:6px;padding:8px 14px;background:var(--card);border-bottom:1px solid var(--line);overflow-x:auto}
.ex-sections button{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:8px;padding:7px 16px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.ex-sections button.on{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}.ex-sections button[disabled]{opacity:.45;cursor:not-allowed}
.ex-conn{background:var(--warn-soft);color:var(--warn);padding:6px 14px;font-size:.9rem;text-align:center;border-bottom:1px solid var(--warn)}
.ex-body{display:grid;grid-template-columns:1fr 290px;gap:14px;padding:14px;flex:1;align-items:start}
.ex-qwrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;min-height:340px;box-shadow:var(--shadow)}
.ex-qhead{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:12px;font-weight:700}
.ex-secname{color:var(--muted);font-weight:600}
.ex-q{font-size:1.12rem;line-height:1.75;margin-bottom:14px}.ex-q img{max-width:100%}
.ex-opts{display:grid;gap:10px}
.ex-opt{display:flex;gap:12px;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:11px 14px;cursor:pointer;background:var(--bg);transition:.12s;width:100%;text-align:left;font:inherit;color:var(--ink)}
.ex-opt:hover{border-color:var(--pri)}.ex-opt.on{border-color:var(--pri);background:var(--pri-soft)}
.ex-opt .ol{background:var(--card)}.ex-opt.on .ol{background:var(--pri);color:var(--pri-ink);border-color:var(--pri)}
.ex-pal{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--shadow);position:sticky;top:10px}
.legend{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:.78rem;margin-bottom:12px}.legend div{display:flex;align-items:center;gap:6px}
.pal-title{font-weight:700;margin-bottom:8px;font-size:.9rem}
.pal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:14px;max-height:46vh;overflow-y:auto;padding:2px}
.pb{height:38px;border-radius:8px;border:2px solid transparent;font:inherit;font-weight:700;cursor:pointer;color:#fff;position:relative}
.pb.s0{background:var(--s0,#c7cfdf);color:var(--s0i,#243049)}.pb.s1{background:var(--err)}.pb.s2{background:var(--ok)}.pb.s3{background:var(--mark);border-radius:50%}.pb.s4{background:var(--mark);border-radius:50%}
.pb.s4::after{content:'';position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:var(--ok);border:2px solid var(--card)}
.pb.cur{border-color:var(--ink);box-shadow:0 0 0 2px var(--pri)}.pb[disabled]{opacity:.4;cursor:not-allowed}
.dot{display:inline-block;min-width:24px;height:24px;line-height:24px;text-align:center;border-radius:6px;color:#fff;font-size:.72rem;font-weight:700}
.dot.s0{background:var(--s0,#c7cfdf);color:var(--s0i,#243049)}.dot.s1{background:var(--err)}.dot.s2{background:var(--ok)}.dot.s3,.dot.s4{background:var(--mark);border-radius:50%}
.ex-actions{position:sticky;bottom:0;display:flex;gap:10px;flex-wrap:wrap;padding:10px 14px;background:var(--card);border-top:1px solid var(--line);justify-content:center}
@media(max-width:860px){
  .ex-body{grid-template-columns:1fr;padding:10px}.only-mobile{display:inline-block}
  .ex-pal{position:fixed;right:0;top:0;bottom:0;width:min(86vw,320px);z-index:60;border-radius:0;transform:translateX(105%);transition:.2s;overflow-y:auto}
  .pal-open .ex-pal{transform:none}.ex-actions .btn{flex:1 1 40%;padding:10px 8px;font-size:.88rem}.ex-user{display:none}
}
.modal{position:fixed;inset:0;background:rgba(10,15,30,.6);display:grid;place-items:center;z-index:90;padding:16px}.modal[hidden]{display:none}
.modal-box{background:var(--card);border-radius:var(--r);padding:20px;max-width:460px;width:100%;box-shadow:var(--shadow)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.modal table{width:100%;border-collapse:collapse;font-size:.92rem}.modal td,.modal th{padding:5px 6px;border-bottom:1px solid var(--line);text-align:center}.modal td:first-child,.modal th:first-child{text-align:left}
.toast{position:fixed;left:50%;bottom:76px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:10px;z-index:95;max-width:90vw}.toast[hidden]{display:none}
.shield{position:fixed;inset:0;background:var(--bg);display:grid;place-items:center;z-index:100;font-weight:700;padding:20px;text-align:center}.shield[hidden]{display:none}
.wm{position:fixed;inset:0;pointer-events:none;z-index:40;opacity:1}

/* protected content: no selection / no drag / blank print */
.protected,.protected *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.protected img{-webkit-user-drag:none}
@media print{body{display:none!important}}

/* ------------- admin ------------- */
.adm{display:grid;grid-template-columns:210px 1fr;gap:18px}
.sidenav{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px;align-self:start;position:sticky;top:70px}
.sidenav a{display:block;padding:9px 12px;border-radius:8px;color:var(--ink)}.sidenav a:hover{background:var(--pri-soft);text-decoration:none}.sidenav a.on{background:var(--pri);color:var(--pri-ink)}
.adm-main h1{margin-top:0}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px;align-items:center}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.tree ul{list-style:none;margin:0;padding-left:20px;border-left:2px solid var(--line)}.tree li{margin:6px 0}.tree .nm{font-weight:600}
.tree .acts{display:inline-flex;gap:6px;margin-left:8px;flex-wrap:wrap}.tree .acts a{font-size:.82rem;padding:1px 8px;border:1px solid var(--line);border-radius:6px}
.opt-row{display:grid;grid-template-columns:30px 1fr 1fr 70px;gap:8px;margin-bottom:8px;align-items:center}
.opt-row textarea{min-height:44px}.sticky-save{position:sticky;bottom:0;background:var(--card);padding:10px 0;border-top:1px solid var(--line)}
@media(max-width:860px){.adm{grid-template-columns:1fr}.sidenav{position:static;display:flex;flex-wrap:wrap;gap:4px}.opt-row{grid-template-columns:30px 1fr}.opt-row .c2{grid-column:2}}
[hidden]{display:none!important}

/* ===================== v1.1 : ExamGo layout, sidebar, footer, bottom nav ===================== */
.logo{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--pri),#7a46d6);color:#fff;font-weight:800;font-size:1rem;margin-right:8px}
.brand{display:inline-flex;align-items:center;font-weight:800;letter-spacing:.2px}
.container{max-width:1240px}
.page-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px;align-items:start}
.page-main{min-width:0}
.side{position:sticky;top:78px;display:grid;gap:16px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow)}
.side-card h4{margin:0 0 8px;font-size:1rem}.side-card p{margin:0 0 10px;color:var(--muted);font-size:.92rem}
.side-card.cta{background:linear-gradient(135deg,var(--pri-soft),var(--mark-soft))}
.side-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.side-list a{text-decoration:none;display:block;padding:7px 10px;border-radius:8px;background:var(--bg)}.side-list a:hover{background:var(--pri-soft)}
.ad-side{margin:0;min-height:250px}
.ad-placeholder{border:2px dashed var(--line);border-radius:var(--r);min-height:250px;display:grid;place-content:center;text-align:center;padding:16px;color:var(--muted);font-size:.88rem;background:repeating-linear-gradient(45deg,transparent 0 10px,rgba(120,130,160,.06) 10px 20px)}
@media(min-width:981px){.has-side .ad-inline{display:none}}
@media(max-width:980px){.page-grid{grid-template-columns:1fr}.side{position:static}}

.footer{background:linear-gradient(180deg,var(--card),var(--bg));border-top:3px solid var(--pri);padding:28px 0 90px;margin-top:36px}
.foot-grid{display:flex;flex-wrap:wrap;gap:26px 40px}.foot-grid>div{flex:1 1 150px;min-width:130px}.foot-grid>.foot-brand{flex:2 1 260px}
.foot-brand p{color:var(--muted);margin:10px 0 0;max-width:38ch;font-size:.93rem}
.foot-col h4{margin:0 0 10px;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.foot-col a{display:block;padding:4px 0;text-decoration:none;color:var(--ink)}.foot-col a:hover{color:var(--pri)}
.foot-bottom{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.86rem}
.powered b{background:linear-gradient(135deg,var(--pri),#7a46d6);-webkit-background-clip:text;background-clip:text;color:transparent}
@media(max-width:700px){.foot-grid>div{flex:1 1 40%}.foot-grid>.foot-brand{flex:1 1 100%}}

.bottom-nav{display:none}
.to-top{position:fixed;right:16px;bottom:84px;width:42px;height:42px;border-radius:50%;background:var(--pri);color:var(--pri-ink);display:grid;place-items:center;text-decoration:none;box-shadow:var(--shadow);z-index:30;font-weight:800}.to-top[hidden]{display:none}
@media(max-width:700px){
  .bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);z-index:40;padding:4px 0 max(4px,env(safe-area-inset-bottom))}
  .bottom-nav a{display:grid;justify-items:center;gap:1px;padding:6px 2px;text-decoration:none;color:var(--muted);font-size:.72rem;font-weight:600}
  .bottom-nav a i{font-style:normal;font-size:1.25rem;line-height:1}.bottom-nav a.on{color:var(--pri)}
  .nav .user-chip,.nav .lang{display:none}
}

/* ---- exam: eye-friendly backgrounds (warm paper / sage / night), user selectable ---- */
html[data-exam=soft]{--bg:#eaf1ff;--card:#fff;--ink:#1f2a44;--muted:#5a6785;--line:#d8e1f7;--pri:#3d5af1;--pri-ink:#fff;--pri-soft:#e7ecff;--ok:#119a6a;--ok-soft:#e1f7ee;--err:#d63c53;--err-soft:#fdebee;--warn:#c9800a;--warn-soft:#fff4dc;--mark:#7c4dff;--mark-soft:#efe9ff;--s0:#dfe6f7;--s0i:#2b3a66;--shadow:0 1px 2px rgba(61,90,241,.06),0 8px 22px rgba(61,90,241,.08)}
html[data-exam=sage]{--bg:#dde8d9;--card:#eef4ea;--ink:#223022;--muted:#58695a;--line:#c5d6c0;--pri:#2c6a4c;--pri-ink:#fff;--pri-soft:#d3e6d7;--ok:#2f8a55;--ok-soft:#d4ead8;--err:#b04a46;--err-soft:#f0dcd9;--warn:#a87414;--warn-soft:#efe3c3;--mark:#6f5aa5;--mark-soft:#e3ddf0;--s0:#bccbb8;--s0i:#2b392c;--shadow:0 1px 2px rgba(30,60,30,.08),0 6px 16px rgba(30,60,30,.07)}
html[data-exam=night]{--bg:#181a17;--card:#22251f;--ink:#dcd8c8;--muted:#a09c8c;--line:#363a31;--pri:#7fb8a8;--pri-ink:#10201b;--pri-soft:#2a3a34;--ok:#79c28f;--ok-soft:#24362a;--err:#e08b82;--err-soft:#3b2724;--warn:#e0b25a;--warn-soft:#3a3120;--mark:#b9a2e0;--mark-soft:#30294a;--s0:#3d4138;--s0i:#d0ccbc;--shadow:0 1px 2px rgba(0,0,0,.5),0 6px 16px rgba(0,0,0,.4)}
html[data-exam]{color-scheme:light}html[data-exam=night]{color-scheme:dark}
.exam-body{background:var(--bg);color:var(--ink)}
.exam-body .btn-primary{background:var(--pri);color:var(--pri-ink)}
.ex-q{font-size:calc(1.12rem*var(--qs,1))}.ex-opt .ot{font-size:calc(1rem*var(--qs,1))}
.ex-progress{display:flex;align-items:center;gap:10px;padding:5px 14px;background:var(--card);border-bottom:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.ex-progress .pbar{flex:1;height:7px;border-radius:99px;background:var(--line);overflow:hidden}.ex-progress .pbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ok),var(--pri));border-radius:99px;transition:width .3s}
.ex-jump{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}
.ex-jump .chip{cursor:pointer;font:inherit;font-size:.86rem}.ex-jump .chip b{background:var(--pri-soft);border-radius:99px;padding:0 7px;margin-left:4px}
.ex-bottom{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line);z-index:20}
.ex-bottom .ex-actions{position:static;border:0;padding:10px 14px 6px}
.ex-foot{display:flex;justify-content:space-between;gap:8px;padding:3px 14px 6px;font-size:.72rem;color:var(--muted)}.ex-foot b{color:var(--pri)}
.ex-actions .btn-primary.is-submit{background:var(--err);color:#fff}
.icon-btn.ok{color:var(--ok);border-color:var(--ok);font-weight:800}
.ex-opt{background:var(--bg)}
.ex-qwrap.swipe{touch-action:pan-y}
@media(max-width:860px){.ex-foot span:first-child{display:none}.ex-foot{justify-content:center}#fzDn,#fzUp{display:none}}

/* ---- v1.3: star feedback + question report ---- */
.feedback h2{margin-top:0}
.stars{border:0;margin:0 0 10px;padding:0;display:inline-flex;flex-direction:row-reverse;gap:2px}
.stars input{position:absolute;opacity:0;width:1px;height:1px}
.stars label{font-size:2.3rem;line-height:1;color:var(--line);cursor:pointer;transition:transform .1s,color .1s;padding:0 2px}
.stars label:hover,.stars label:hover~label,.stars input:checked~label{color:#f5a623}
.stars label:hover{transform:scale(1.15)}
.stars input:focus-visible+label{outline:2px solid var(--pri);outline-offset:2px;border-radius:6px}
.report{margin-top:10px;font-size:.88rem}.report summary{cursor:pointer;color:var(--muted)}.report summary:hover{color:var(--err)}
.report form{display:grid;gap:8px;margin-top:8px;max-width:520px}.report select,.report textarea{font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.stat-stars{color:#f5a623;letter-spacing:1px}

/* timer: red in the last 5 minutes, blinking in the last 30 seconds */
.ex-timer.low{background:var(--err);box-shadow:0 0 0 2px var(--err)}
.ex-timer.low b,.ex-timer.low span{color:#fff}
.ex-timer.blink{animation:tblink 1s steps(2,start) infinite}
@keyframes tblink{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.ex-timer.blink{animation:none;outline:3px solid #fff}}

/* ===================== v1.4 : IDTRA light colour identity ===================== */
:root{
  --bg:#f2f6ff;--card:#fff;--ink:#1f2a44;--muted:#5a6785;--line:#dde5f6;
  --pri:#3d5af1;--pri-ink:#fff;--pri-soft:#e7ecff;--pri2:#7c4dff;--acc:#10b5a0;--sun:#ffb020;--rose:#ff6b8a;
  --ok:#119a6a;--ok-soft:#e1f7ee;--err:#e0445a;--err-soft:#fdebee;--warn:#c9800a;--warn-soft:#fff4dc;--mark:#7c4dff;--mark-soft:#efe9ff;
  --shadow:0 1px 2px rgba(61,90,241,.06),0 8px 22px rgba(61,90,241,.08);--r:16px;
  --grad:linear-gradient(135deg,#3d5af1 0%,#7c4dff 100%);
  --grad-wide:linear-gradient(90deg,#3d5af1,#7c4dff 40%,#10b5a0 75%,#ffb020);
}
body{background:linear-gradient(165deg,#e9f2ff 0%,#f3eeff 48%,#e8faf3 100%) fixed;min-height:100vh}
[data-theme=dark] body{background:var(--bg)}
[data-theme=dark]{--grad:linear-gradient(135deg,#5b78ff,#8f6bff)}
h1,h2{color:#17213b}[data-theme=dark] h1,[data-theme=dark] h2{color:var(--ink)}

/* top bar: white glass with a rainbow hairline */
.topbar{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:0;box-shadow:0 4px 18px rgba(61,90,241,.10)}
.topbar::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grad-wide)}
[data-theme=dark] .topbar{background:rgba(23,30,46,.92)}
.logo{background:var(--grad);box-shadow:0 4px 10px rgba(61,90,241,.35)}
.brand{font-size:1.12rem;color:#1b2550}[data-theme=dark] .brand{color:var(--ink)}
.nav>a:not(.btn){font-weight:600}.nav>a:not(.btn):hover{background:var(--pri-soft);color:var(--pri)}
.user-chip{background:linear-gradient(135deg,#e7ecff,#f1eaff);color:var(--pri2)!important;border:1px solid #d6dcff}

/* buttons */
.btn{border-radius:12px;transition:transform .12s,box-shadow .12s,filter .12s}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 6px 14px rgba(93,84,240,.30)}
.btn-primary:hover{filter:brightness(1.05);box-shadow:0 8px 18px rgba(93,84,240,.38)}
.btn-ghost{background:#fff;border-color:#cdd7f2;color:#31407a}.btn-ghost:hover{background:var(--pri-soft)}
[data-theme=dark] .btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-danger{background:linear-gradient(135deg,#e0445a,#f0687b)}.btn-warn{background:linear-gradient(135deg,#f59f0b,#ffb020)}.btn-mark{background:var(--grad)}

/* cards */
.card{border:1px solid #e3e9f8;border-radius:var(--r)}
.card.narrow{position:relative;overflow:hidden;padding-top:26px;box-shadow:0 14px 40px rgba(61,90,241,.14)}
.card.narrow::before{content:'';position:absolute;left:0;right:0;top:0;height:6px;background:var(--grad-wide)}
.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=number],.field select,.field textarea{border-radius:10px;border:1.5px solid #d3dcf3;background:#fbfcff}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 4px rgba(61,90,241,.15)}
[data-theme=dark] .field input,[data-theme=dark] .field select,[data-theme=dark] .field textarea{background:var(--bg);border-color:var(--line)}
.tbl th{background:#f1f5ff}[data-theme=dark] .tbl th{background:var(--pri-soft)}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#4568f5 0%,#7c4dff 52%,#17b8a6 100%);border-radius:22px;padding:40px 28px;box-shadow:0 16px 40px rgba(93,84,240,.28)}
.hero::before,.hero::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.12);pointer-events:none}
.hero::before{width:260px;height:260px;right:-60px;top:-90px}.hero::after{width:170px;height:170px;right:150px;bottom:-100px;background:rgba(255,176,32,.28)}
.hero>*{position:relative;z-index:1}
.hero h1{font-size:2.05rem;letter-spacing:.2px;text-shadow:0 2px 10px rgba(30,20,90,.25)}
.hero .btn-primary{background:#fff;color:#3d3fd0;box-shadow:0 6px 16px rgba(20,20,80,.22)}
.hero-actions input{border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.97)}

/* test tiles: a colour per tile (cycles) */
.tiles>.tile{--tc:#3d5af1;--tb:#eef2ff;border:1px solid #e1e8fa;border-left:6px solid var(--tc);border-radius:14px;background:linear-gradient(180deg,var(--tb),#fff 70%);box-shadow:0 4px 14px rgba(61,90,241,.07)}
.tiles>.tile:nth-child(6n+2){--tc:#10b5a0;--tb:#e6f9f5}.tiles>.tile:nth-child(6n+3){--tc:#ff8a3d;--tb:#fff1e6}
.tiles>.tile:nth-child(6n+4){--tc:#7c4dff;--tb:#f0eaff}.tiles>.tile:nth-child(6n+5){--tc:#e84a8f;--tb:#ffe9f3}.tiles>.tile:nth-child(6n+6){--tc:#2a9df4;--tb:#e6f4ff}
.tile:hover{border-color:var(--tc);box-shadow:0 10px 22px rgba(61,90,241,.16)}
[data-theme=dark] .tiles>.tile{background:var(--card);border-color:var(--line);border-left-color:var(--tc)}
.cat>h2{border-left:0;padding:8px 14px;border-radius:12px;background:linear-gradient(90deg,#e4eaff,rgba(228,234,255,0));color:#233071}
[data-theme=dark] .cat>h2{background:linear-gradient(90deg,var(--pri-soft),transparent);color:var(--ink)}
.paper h3{color:#2b3a7a;display:inline-block;border-bottom:3px solid #ffd27a;padding-bottom:1px}
[data-theme=dark] .paper h3{color:var(--ink)}
.badge{background:#e7ecff;color:#3342b5}.badge.demo{background:#ffeccd;color:#9a5a00}

/* result + stats */
.stat{background:#fff;border:1px solid #e1e8fa;box-shadow:0 3px 10px rgba(61,90,241,.06)}
.stat-grid .stat:nth-child(5n+1){border-top:4px solid #3d5af1}.stat-grid .stat:nth-child(5n+2){border-top:4px solid #119a6a}
.stat-grid .stat:nth-child(5n+3){border-top:4px solid #e0445a}.stat-grid .stat:nth-child(5n+4){border-top:4px solid #ffb020}.stat-grid .stat:nth-child(5n+5){border-top:4px solid #7c4dff}
.bar i{background:linear-gradient(90deg,#3d5af1,#10b5a0)}
.cta,.side-card.cta{background:linear-gradient(135deg,#e7ecff,#f1eaff 60%,#e3f8f2)}
.expl{background:#eef2ff;border-left:4px solid var(--pri)}

/* sidebars + admin */
.side-card{border:1px solid #e3e9f8}
.sidenav{border:1px solid #e3e9f8;box-shadow:var(--shadow)}
.sidenav a{font-weight:600}.sidenav a:hover{background:var(--pri-soft);color:var(--pri)}
.sidenav a.on{background:var(--grad);color:#fff;box-shadow:0 5px 12px rgba(93,84,240,.30)}
.chip.on,.ex-sections button.on{background:var(--grad);border-color:transparent;color:#fff}
.pager a.on{background:var(--grad);color:#fff;border-color:transparent}

/* footer */
.footer{background:linear-gradient(180deg,#fff,#eef3ff);border-top:0;position:relative}
.footer::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;background:var(--grad-wide)}
[data-theme=dark] .footer{background:var(--card)}
.bottom-nav{background:rgba(255,255,255,.96);box-shadow:0 -4px 18px rgba(61,90,241,.12)}
.to-top{background:var(--grad)}

/* exam screen: calm light surface, same identity */
.exam-body{background:#f3f6ff}
.ex-top{background:#fff;border-bottom:0;box-shadow:0 3px 14px rgba(61,90,241,.10);position:relative}
.ex-top::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grad-wide)}
.ex-timer{background:linear-gradient(135deg,#e7ecff,#efe9ff)}
.ex-opt{border-radius:14px;border-width:2px;background:#fbfcff}
.ex-opt:hover{border-color:#8da0ff;background:#f3f6ff}.ex-opt.on{border-color:var(--pri);background:#e9eeff;box-shadow:0 0 0 3px rgba(61,90,241,.12)}
.ex-opt.on .ol{background:var(--grad)}
.ex-qwrap,.ex-pal{border:1px solid #e3e9f8}
.pb.cur{box-shadow:0 0 0 3px rgba(61,90,241,.35)}
.ex-actions .btn-primary:not(.is-submit){background:var(--grad)}

/* v1.4 fixes: header bar was inheriting the progress-bar rule; dashboard tiles had no grid */
.topbar .bar{height:auto;background:none;border-radius:0;overflow:visible}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.stats .stat{padding:16px 10px}
.stats .stat:nth-child(7n+1){border-top:4px solid #3d5af1}.stats .stat:nth-child(7n+2){border-top:4px solid #10b5a0}
.stats .stat:nth-child(7n+3){border-top:4px solid #ff8a3d}.stats .stat:nth-child(7n+4){border-top:4px solid #7c4dff}
.stats .stat:nth-child(7n+5){border-top:4px solid #e84a8f}.stats .stat:nth-child(7n+6){border-top:4px solid #ffb020}.stats .stat:nth-child(7n+7){border-top:4px solid #2a9df4}
.stats .stat b{font-size:1.8rem}

/* v1.4.2 menus */
.mi{display:inline-block;font-size:1.05em;line-height:1}
.nav .mi-link{display:inline-flex;align-items:center;gap:4px}
.nav .btn .mi{margin-right:2px}
.side-list .mi-link,.foot-col .mi-link{display:inline-block;text-decoration:none;color:var(--ink)}
.side-list .mi-link:hover,.foot-col .mi-link:hover{color:var(--pri)}
.foot-col .mi-link{display:block;padding:4px 0}
.home-intro{margin-bottom:16px}.home-intro h2{margin-top:0}
html{scroll-behavior:smooth}

.art-item{padding:12px 0;border-top:1px solid #e3e8f4}.art-item:first-of-type{border-top:0}.art-item h3{margin:0 0 4px}
