:root{
  --ink:#08080d;--ink-s:#1a1a26;--ink-m:#5c5c72;--ink-l:#9494aa;
  --paper:#fafaf7;--warm:#f5f3ed;--warm-d:#eceae2;
  --gold:#c9933a;--gold-l:#e8b86d;--gold-p:#f7ecd8;--gold-glow:rgba(201,147,58,.15);
  --teal:#1a7a6e;--teal-l:#2aa899;--teal-p:#d8f0ed;
  --purple:#7c5cbf;--purple-p:#ece8ff;
  --red:#c0392b;--red-p:#fde8e6;
  --orange:#d4640a;--orange-p:#fef0e4;
  --blue:#1a5fa8;--blue-p:#e4eef8;
  --bdr:rgba(10,10,15,.07);--bdr-g:rgba(201,147,58,.28);
  --r:14px;--r-lg:20px;
  --sh-s:0 2px 8px rgba(0,0,0,.04);--sh-m:0 12px 40px rgba(0,0,0,.07);
  font-family:'DM Sans',-apple-system,sans-serif;font-size:16px;
  color:var(--ink);-webkit-font-smoothing:antialiased;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper)}
p,h1,h2,h3,h4{margin:0;padding:0}
ul{list-style:none;margin:0;padding:0}
a{text-decoration:none;color:inherit}
input,select,textarea{font-family:inherit}
.ep-wrap{max-width:960px;margin:0 auto;padding:110px 28px 120px;width:100%;overflow-x:hidden}
.ep-step{display:none}
.ep-step.active{display:block;animation:fadeUp .4s cubic-bezier(.16,1,.3,1)}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:14px}
.eyebrow::before{content:'';width:22px;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-l));border-radius:1px}
.h1{font-family:'Playfair Display',serif;font-size:clamp(32px,5vw,54px);font-weight:900;line-height:1.04;letter-spacing:-.4px;margin-bottom:12px}
.h1 em,.h2 em{font-style:italic;background:linear-gradient(135deg,var(--gold),var(--gold-l));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.h2{font-family:'Playfair Display',serif;font-size:clamp(20px,2.8vw,30px);font-weight:700;color:var(--ink);margin-bottom:8px}
.sub{font-size:15px;color:var(--ink-m);line-height:1.75;font-weight:300;max-width:580px;margin-left:auto;margin-right:auto;width:100%}
/* Progress */
.ep-prog{display:flex;margin-bottom:40px}
.ep-pitem{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;position:relative}
.ep-pitem:not(:last-child)::after{content:'';position:absolute;top:14px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--warm-d);transition:background .4s}
.ep-pitem.done:not(:last-child)::after{background:var(--teal)}
.ep-pdot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;background:var(--warm-d);color:var(--ink-m);z-index:1;transition:all .3s}
.ep-pitem.done .ep-pdot{background:var(--teal);color:#fff}
.ep-pitem.cur .ep-pdot{background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--ink-s);box-shadow:0 4px 14px rgba(201,147,58,.3)}
.ep-plbl{font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-l);text-align:center;font-family:'JetBrains Mono',monospace}
.ep-pitem.cur .ep-plbl{color:var(--gold)}
.ep-pitem.done .ep-plbl{color:var(--teal)}
/* Cards */
.clic-card{background:#fff;border:1px solid var(--bdr);border-radius:var(--r-lg);padding:32px 38px;box-shadow:var(--sh-s);margin-bottom:16px}
.clic-card-warm{background:linear-gradient(160deg,#f9f7f1,#f1ede4);border-color:var(--bdr-g)}
/* Form */
.field{margin-bottom:20px}
.field:last-child{margin-bottom:0}
.lbl{display:block;font-size:13px;font-weight:600;color:var(--ink-s);margin-bottom:7px}
.lbl .hint{font-weight:400;color:var(--ink-l);font-size:11px;margin-left:5px}
.sel-wrap{position:relative}
.sel-wrap::after{content:'▾';position:absolute;right:13px;top:50%;transform:translateY(-50%);color:var(--ink-m);pointer-events:none;font-size:13px}
.sel,.inp{width:100%;padding:12px 15px;appearance:none;border:1.5px solid var(--bdr);border-radius:10px;font-size:14px;color:var(--ink);background:var(--warm);transition:border-color .25s,box-shadow .25s;outline:none}
.sel:focus,.inp:focus{border-color:var(--gold);background:#fff;box-shadow:0 0 0 3px var(--gold-glow)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sec{font-size:10.5px;font-weight:700;color:var(--ink-m);text-transform:uppercase;letter-spacing:.12em;font-family:'JetBrains Mono',monospace;margin:24px 0 12px;display:flex;align-items:center;gap:8px}
.sec::before{content:'';width:20px;height:2px;background:linear-gradient(90deg,var(--gold),transparent);border-radius:1px}
/* Type Cards */
.type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.type-card{border:2px solid var(--bdr);border-radius:14px;padding:16px 18px;cursor:pointer;background:var(--warm);transition:all .25s;position:relative}
.type-card:hover{border-color:var(--gold-l);background:var(--gold-p)}
.type-card.sel{border-color:var(--gold);background:var(--gold-p);box-shadow:0 4px 18px rgba(201,147,58,.14)}
.type-card.sel::after{content:'✓';position:absolute;top:10px;right:12px;width:20px;height:20px;border-radius:50%;background:var(--gold);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.type-head{display:flex;align-items:center;gap:9px;margin-bottom:5px}
.type-icon{font-size:22px;flex-shrink:0}
.type-title{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}
.type-desc{font-size:11px;color:var(--ink-m);line-height:1.45}
/* Stars */
.stars{display:flex;gap:4px}
.star{width:32px;height:32px;border:none;border-radius:8px;background:var(--warm-d);color:var(--ink-m);font-size:11px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:'JetBrains Mono',monospace}
.star.on{background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--ink)}
.star:hover{transform:scale(1.1)}
/* Range */
.range-row{display:flex;align-items:center;gap:12px;margin-top:8px}
input[type=range]{flex:1;-webkit-appearance:none;height:5px;background:var(--warm-d);border-radius:3px;outline:none;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-l));box-shadow:0 2px 8px rgba(201,147,58,.3)}
.rval{font-family:'JetBrains Mono',monospace;font-size:16px;font-weight:600;color:var(--gold);min-width:30px;text-align:center}
/* Session Grid */
.session-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.sess-card{border:2px solid var(--bdr);border-radius:12px;padding:14px 10px;text-align:center;cursor:pointer;background:var(--warm);transition:all .25s}
.sess-card:hover:not(.past){border-color:var(--gold-l)}
.sess-card.sel{border-color:var(--gold);background:var(--gold-p)}
.sess-card.past{opacity:.4;pointer-events:none}
.sess-card.pas-warn{border-color:#e67e22}
.sess-card.pas-warn.sel{border-color:#e67e22;background:rgba(230,126,34,.08)}
.sess-pas-warn{font-size:10px;color:#e67e22;font-weight:600;margin-top:6px;line-height:1.3}
.sess-month{font-size:11px;font-weight:700}
.sess-weeks{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:600;margin:5px 0 2px}
.sess-wlbl{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-l)}
.sess-reg{font-size:9.5px;color:var(--ink-l);margin-top:4px}
/* Day Cards */
.day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.day-card{border:2px solid var(--bdr);border-radius:12px;padding:14px;text-align:center;background:var(--warm);transition:all .25s}
.day-card.on{border-color:var(--teal);background:var(--teal-p)}
.day-card.clickable{cursor:pointer}
.day-card.clickable:hover{border-color:var(--gold-l)}
.day-name{font-size:12px;font-weight:700;margin-bottom:3px}
.day-type{font-size:10px;color:var(--ink-m);margin-bottom:8px}
.day-hrs{font-family:'JetBrains Mono',monospace;font-size:20px;font-weight:600;color:var(--teal)}
.day-card .mini-sel{width:100%;margin-top:8px;padding:5px 8px;border:1.5px solid var(--bdr);border-radius:8px;font-size:12px;background:#fff;color:var(--ink);appearance:none;outline:none;cursor:pointer}
/* Subject grid */
.subj-sel-grid{display:flex;flex-direction:column;gap:8px}
.subj-sel-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:12px;border:1.5px solid var(--bdr);background:var(--warm);cursor:pointer;transition:all .25s}
.subj-sel-row:hover{border-color:var(--gold-l);background:var(--gold-p)}
.subj-sel-row.checked{border-color:var(--teal);background:var(--teal-p)}
.subj-sel-row.excluded{opacity:.45;background:var(--warm-d);cursor:default}
.subj-checkbox{width:22px;height:22px;border-radius:6px;border:2px solid var(--bdr);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;transition:all .2s}
.subj-sel-row.checked .subj-checkbox{background:var(--teal);border-color:var(--teal);color:#fff}
.subj-emoji{font-size:20px;flex-shrink:0}
.subj-info{flex:1}
.subj-name{font-size:13.5px;font-weight:700}
.subj-meta{font-size:11px;color:var(--ink-m);font-family:'JetBrains Mono',monospace;margin-top:2px}
.subj-fee{font-size:11px;color:var(--purple);font-weight:600;font-family:'JetBrains Mono',monospace}
/* Mode Cards */
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:4px}
.mode-card{border:2px solid var(--bdr);border-radius:14px;padding:20px;cursor:pointer;background:var(--warm);transition:all .25s;position:relative}
.mode-card:hover{border-color:var(--gold-l)}
.mode-card.sel{border-color:var(--gold);background:var(--gold-p)}
.mode-card.sel::after{content:'✓';position:absolute;top:10px;right:12px;width:20px;height:20px;border-radius:50%;background:var(--gold);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.mode-icon{font-size:28px;margin-bottom:8px;display:block}
.mode-title{font-size:14px;font-weight:700;margin-bottom:4px}
.mode-desc{font-size:12px;color:var(--ink-m);line-height:1.5}
.mode-count{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--gold);margin-top:6px;font-weight:600}
.mode-locked{opacity:.65;cursor:default}
.mode-locked:hover{border-color:var(--bdr)}
.mode-premium-badge{display:inline-block;background:linear-gradient(135deg,#c9933a,#e8b86d);color:#08080d;font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;margin-bottom:6px;letter-spacing:.04em}
.mode-cooldown{font-size:11px;color:var(--gold);margin-top:6px;font-weight:600;opacity:.85}
/* History */
.hist-grid{display:flex;flex-direction:column;gap:8px}
.hist-row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;border:1.5px solid var(--bdr);background:var(--warm);transition:all .2s}
.hist-row.passed{border-color:rgba(26,122,110,.3);background:var(--teal-p)}
.hist-row.failed{border-color:rgba(192,57,43,.3);background:var(--red-p)}
.hist-emoji{font-size:18px;flex-shrink:0}
.hist-info{flex:1}
.hist-name{font-size:13.5px;font-weight:700}
.hist-marks{font-size:11px;color:var(--ink-m);font-family:'JetBrains Mono',monospace}
.hist-sel{padding:7px 28px 7px 10px;border-radius:9px;border:1.5px solid var(--bdr);background:#fff;font-size:12px;font-weight:600;color:var(--ink);appearance:none;outline:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%235c5c72'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
/* Strategy Questions */
.strat-q{margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--bdr)}
.strat-q:last-child{border-bottom:none;padding-bottom:0}
.strat-qtext{font-size:14px;font-weight:600;color:var(--ink);line-height:1.6;margin-bottom:10px}
.strat-opts{display:flex;flex-direction:column;gap:7px}
.strat-opt{padding:10px 14px;border-radius:10px;border:1.5px solid var(--bdr);background:var(--warm);font-size:13px;color:var(--ink);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}
.strat-opt:hover{border-color:var(--gold-l);background:var(--gold-p)}
.strat-opt.sel{border-color:var(--gold);background:var(--gold-p)}
.strat-opt.sel .sopt-k{background:var(--gold);color:var(--ink)}
.sopt-k{width:22px;height:22px;border-radius:6px;background:rgba(0,0,0,.06);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}
/* Assessment */
.assess-header{position:sticky;top:0;background:rgba(250,250,247,.96);backdrop-filter:blur(8px);z-index:100;padding:12px 0;border-bottom:1px solid var(--bdr);margin-bottom:24px}
.progress-bar{height:4px;background:var(--warm-d);border-radius:2px;overflow:hidden;margin-top:8px}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-l));border-radius:2px;transition:width .4s}
/* CAT */
.cat-container{text-align:center;padding:24px 0}
.cat-irt-display{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-l);margin-bottom:20px;padding:8px 16px;background:var(--warm-d);border-radius:20px;display:inline-block}
.cat-q-block{background:#fff;border:1.5px solid var(--bdr);border-radius:16px;padding:28px;text-align:left;margin-bottom:16px;box-shadow:var(--sh-s)}
.cat-q-text{font-size:15px;font-weight:500;color:var(--ink);line-height:1.7;margin-bottom:16px}
.cat-diff-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;margin-bottom:12px}
.diff-e{background:rgba(26,122,110,.1);color:var(--teal)}
.diff-m{background:rgba(201,147,58,.1);color:var(--gold)}
.diff-h{background:rgba(192,57,43,.1);color:var(--red)}
.cat-opts{display:flex;flex-direction:column;gap:8px}
.cat-opt{padding:12px 16px;border-radius:11px;border:1.5px solid var(--bdr);background:var(--warm);font-size:13.5px;color:var(--ink);cursor:pointer;transition:all .2s;display:flex;align-items:flex-start;gap:9px;line-height:1.5}
.cat-opt:hover:not(.locked){border-color:var(--gold-l);background:var(--gold-p);transform:translateX(3px)}
.cat-opt.correct{border-color:var(--teal);background:var(--teal-p);color:var(--teal);font-weight:500}
.cat-opt.wrong{border-color:var(--red);background:var(--red-p);color:var(--red)}
.cat-opt.reveal{background:var(--warm);color:var(--ink-l);opacity:.55}
.cat-opt.locked{cursor:default}
.cat-opt-k{width:20px;height:20px;border-radius:6px;background:rgba(0,0,0,.06);font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.correct .cat-opt-k{background:rgba(26,122,110,.15);color:var(--teal)}
.wrong .cat-opt-k{background:rgba(192,57,43,.12);color:var(--red)}
.explain-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 16px;border:none;border-radius:20px;background:var(--purple-p);color:var(--purple);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.explain-btn:hover{background:var(--purple);color:#fff}
.explain-box{background:linear-gradient(160deg,var(--purple-p),rgba(124,92,191,.05));border:1.5px solid rgba(124,92,191,.2);border-radius:12px;padding:16px 18px;margin-top:10px;font-size:13px;line-height:1.75;color:var(--ink-m)}
.explain-box strong{color:var(--ink)}
.explain-loading{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--purple);font-style:italic}
.explain-dot{width:6px;height:6px;border-radius:50%;background:var(--purple);animation:pulse .8s infinite alternate}
.explain-dot:nth-child(2){animation-delay:.2s}
.explain-dot:nth-child(3){animation-delay:.4s}
@keyframes pulse{from{opacity:.3}to{opacity:1}}
/* Subj divider */
.subj-divider{border:none;border-top:2px dashed var(--bdr);margin:32px 0}
.subj-block-header{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.sblock-icon{width:40px;height:40px;border-radius:12px;background:var(--gold-p);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.sblock-title{font-size:15px;font-weight:700}
.sblock-sub{font-size:11px;color:var(--ink-m);margin-top:2px}
.sblock-score{margin-left:auto;padding:4px 12px;border-radius:20px;background:var(--gold-p);color:var(--gold);font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:600}
/* Rating */
.rating-grid{display:flex;flex-direction:column;gap:10px}
.rating-row{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:12px;border:1px solid var(--bdr);background:var(--warm)}
.r-emoji{font-size:18px;flex-shrink:0}
.r-name{flex:1;font-size:13px;font-weight:600}
.r-sub{font-size:10.5px;color:var(--ink-m);font-weight:400;display:block;margin-top:2px}
.r-lbl{font-size:10px;color:var(--ink-l);min-width:70px;text-align:right;font-family:'JetBrains Mono',monospace}
/* Buttons */
.btn-row{display:flex;align-items:center;gap:12px;margin-top:28px;flex-wrap:wrap}
.results-btn-bar{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:28px 0 8px;border-top:1px solid var(--bdr);margin-top:32px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 30px;border:none;border-radius:60px;background:var(--ink);color:#fff;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}
.btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,var(--gold),var(--gold-l));transform:translateX(-102%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.btn span{position:relative;z-index:1}
.btn:hover::before{transform:translateX(0)}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(0,0,0,.13);color:var(--ink)}
.btn-o{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;background:transparent;border:1.5px solid rgba(10,10,15,.15);border-radius:60px;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:all .3s}
.btn-o:hover{background:var(--warm);border-color:var(--gold-l)}
.btn-g{display:inline-flex;align-items:center;gap:8px;padding:13px 30px;border:none;border-radius:60px;background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--ink);font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;font-weight:700;cursor:pointer;transition:all .35s;box-shadow:0 6px 20px rgba(201,147,58,.22)}
.btn-g:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(201,147,58,.3)}
.btn-pdf{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:none;border-radius:60px;background:var(--purple);color:#fff;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13.5px;font-weight:600;cursor:pointer;transition:all .35s;box-shadow:0 6px 20px rgba(124,92,191,.22)}
.btn-pdf:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(124,92,191,.3)}
.btn-teal{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border:none;border-radius:60px;background:var(--teal);color:#fff;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .35s}
.btn-teal:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(26,122,110,.25)}
/* Notice */
.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 15px;border-radius:10px;margin-top:14px;font-size:13px;line-height:1.6}
.notice.gold{background:var(--gold-p);border:1px solid rgba(201,147,58,.25);color:var(--ink-s)}
.notice.teal{background:var(--teal-p);border:1px solid rgba(26,122,110,.2);color:var(--ink-s)}
.notice.red{background:var(--red-p);border:1px solid rgba(192,57,43,.2);color:var(--red)}
.notice.purple{background:var(--purple-p);border:1px solid rgba(124,92,191,.2);color:var(--purple)}
.notice-icon{font-size:15px;flex-shrink:0;margin-top:1px}
/* Welcome */
.welcome-card{background:linear-gradient(160deg,#f9f7f1,#f3efe5);border:1px solid var(--bdr-g);border-radius:var(--r-lg);padding:56px 48px 48px;text-align:center;position:relative;overflow:hidden;width:100%;box-sizing:border-box}
.welcome-card::before{content:'';position:absolute;bottom:-20%;left:-5%;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(26,122,110,.07),transparent 65%);pointer-events:none}
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0;text-align:left}
.feat{padding:18px 16px;border-radius:14px;border:1px solid var(--bdr);background:rgba(255,255,255,.7)}
.feat-icon{font-size:24px;margin-bottom:8px;display:block}
.feat-title{font-size:13px;font-weight:700;margin-bottom:4px}
.feat-desc{font-size:11.5px;color:var(--ink-m);line-height:1.5}
.pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.pill{padding:6px 13px;border-radius:20px;font-size:11px;font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:.04em}
.pill-g{background:var(--gold-p);color:var(--gold)}
.pill-t{background:var(--teal-p);color:var(--teal)}
.pill-p{background:var(--purple-p);color:var(--purple)}
/* Resume banner */
.resume-banner{background:linear-gradient(135deg,var(--teal-p),rgba(42,168,153,.08));border:1.5px solid rgba(26,122,110,.25);border-radius:14px;padding:18px 22px;display:flex;align-items:center;gap:14px;margin-bottom:24px;flex-wrap:wrap}
.resume-text{flex:1;font-size:13.5px;color:var(--ink-s);line-height:1.6}
/* Trajectory banner */
.traj-banner{background:linear-gradient(135deg,rgba(124,92,191,.08),rgba(124,92,191,.03));border:1.5px solid rgba(124,92,191,.2);border-radius:14px;padding:18px 22px;margin-bottom:24px}
.traj-title{font-size:13px;font-weight:700;color:var(--purple);margin-bottom:10px}
.traj-bars{display:flex;flex-direction:column;gap:6px}
.traj-bar-row{display:flex;align-items:center;gap:10px}
.traj-subj{font-size:11px;font-weight:600;min-width:36px;font-family:'JetBrains Mono',monospace}
.traj-track{flex:1;height:8px;background:var(--warm-d);border-radius:4px;overflow:hidden;position:relative}
.traj-fills{display:flex;height:100%;gap:2px}
.traj-fill{height:100%;border-radius:2px;transition:width 1s}
.traj-arrow{font-size:11px;color:var(--teal);font-weight:700;min-width:40px;text-align:right}
/* ═══ RESULTS ═══ */
.result-hero{background:linear-gradient(160deg,#f7f4ed,#eee9de,#e8e2d5);border:1px solid var(--bdr-g);border-radius:var(--r-lg);padding:44px 40px 36px;margin-bottom:18px;position:relative;overflow:hidden}
.result-hero::before{content:'';position:absolute;top:-30%;right:-5%;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(201,147,58,.1),transparent 65%);pointer-events:none}
.coach-box{font-size:13.5px;color:var(--ink-m);line-height:1.8;max-width:720px;background:rgba(255,255,255,.55);padding:16px 20px;border-radius:12px;border-left:3px solid var(--gold);font-style:italic;margin-bottom:24px}
.coach-box strong{color:var(--ink);font-style:normal}
.stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.stat-box{background:rgba(255,255,255,.7);border-radius:14px;padding:14px 12px;text-align:center;border:1px solid rgba(201,147,58,.15)}
.stat-num{font-family:'Playfair Display',serif;font-size:30px;font-weight:900;line-height:1;background:linear-gradient(135deg,var(--gold),var(--gold-l));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block}
.stat-lbl{font-size:9px;color:var(--ink-m);text-transform:uppercase;letter-spacing:.1em;font-weight:600;font-family:'JetBrains Mono',monospace;margin-top:4px;display:block}
/* Next Actions */
.actions-card{background:linear-gradient(160deg,#fff9ed,#fff3d8);border:2px solid rgba(201,147,58,.35);border-radius:var(--r-lg);padding:28px 32px;margin-bottom:18px}
.actions-title{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;color:var(--ink);margin-bottom:6px}
.actions-sub{font-size:12.5px;color:var(--ink-m);margin-bottom:20px}
.action-item{display:flex;gap:14px;padding:14px 16px;background:#fff;border-radius:12px;margin-bottom:10px;border:1px solid rgba(201,147,58,.15);transition:all .25s}
.action-item:hover{box-shadow:var(--sh-m);transform:translateY(-2px)}
.action-num{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--ink);font-family:'Playfair Display',serif;font-size:16px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.action-body{flex:1}
.action-when{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-family:'JetBrains Mono',monospace;margin-bottom:4px}
.action-what{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:4px;line-height:1.5}
.action-why{font-size:12px;color:var(--ink-m);line-height:1.55}
.action-cta-row{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.cta-aies{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:20px;background:linear-gradient(135deg,var(--gold),var(--gold-l));color:var(--ink);font-size:11.5px;font-weight:700;cursor:pointer;border:none;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;transition:all .25s}
.cta-aies:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(201,147,58,.3)}
.cta-lcm{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;border-radius:20px;background:linear-gradient(135deg,var(--teal),var(--teal-l));color:#fff;font-size:11.5px;font-weight:700;cursor:pointer;border:none;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;transition:all .25s}
.cta-lcm:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(26,122,110,.3)}
/* Subject Result Cards */
.result-cards{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}
.rc{background:#fff;border:1.5px solid var(--bdr);border-radius:var(--r-lg);padding:20px 24px;transition:all .3s}
.rc:hover{box-shadow:var(--sh-m);transform:translateY(-2px)}
.rc.ra{border-left:4px solid var(--teal)}
.rc.rs{border-left:4px solid var(--gold)}
.rc.rd{border-left:4px solid var(--red)}
.rc.rp{border-left:4px solid var(--teal-l);opacity:.75}
.rc-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.rc-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.ra .rc-icon{background:var(--teal-p)}
.rs .rc-icon{background:var(--gold-p)}
.rd .rc-icon{background:var(--red-p)}
.rp .rc-icon{background:var(--teal-p)}
.rc-info{flex:1}
.rc-name{font-size:15px;font-weight:700;margin-bottom:2px}
.rc-meta{font-size:11px;color:var(--ink-m);font-family:'JetBrains Mono',monospace}
.rc-badge{padding:5px 12px;border-radius:20px;font-size:11px;font-weight:700;font-family:'JetBrains Mono',monospace;flex-shrink:0}
.ra .rc-badge{background:rgba(26,122,110,.12);color:var(--teal)}
.rs .rc-badge{background:rgba(201,147,58,.12);color:var(--gold)}
.rd .rc-badge{background:rgba(192,57,43,.09);color:var(--red)}
.rp .rc-badge{background:var(--teal-p);color:var(--teal)}
/* Pass probability */
.prob-display{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:12px 16px;background:var(--warm);border-radius:12px}
.prob-circle{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Playfair Display',serif;font-size:18px;font-weight:900;flex-shrink:0;border:3px solid}
.prob-high{border-color:var(--teal);color:var(--teal);background:var(--teal-p)}
.prob-mid{border-color:var(--gold);color:var(--gold);background:var(--gold-p)}
.prob-low{border-color:var(--red);color:var(--red);background:var(--red-p)}
.prob-info{flex:1}
.prob-label{font-size:13px;font-weight:700;margin-bottom:2px}
.prob-sub{font-size:11.5px;color:var(--ink-m);line-height:1.5}
.prob-bar-wrap{margin-top:6px}
.prob-track{height:8px;background:var(--warm-d);border-radius:4px;overflow:hidden}
.prob-fill{height:100%;border-radius:4px;transition:width 1.4s cubic-bezier(.16,1,.3,1) .2s}
.prob-high-fill{background:linear-gradient(90deg,var(--teal),var(--teal-l))}
.prob-mid-fill{background:linear-gradient(90deg,var(--gold),var(--gold-l))}
.prob-low-fill{background:linear-gradient(90deg,var(--red),#e74c3c)}
/* Topic Gap Map */
.topic-map{margin:14px 0}
.topic-map-title{font-size:11px;font-weight:700;color:var(--ink-m);text-transform:uppercase;letter-spacing:.1em;font-family:'JetBrains Mono',monospace;margin-bottom:8px}
.topic-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.topic-name{font-size:12px;color:var(--ink-s);min-width:130px;font-weight:500}
.topic-track{flex:1;height:8px;background:var(--warm-d);border-radius:4px;overflow:hidden}
.topic-fill-strong{background:linear-gradient(90deg,var(--teal),var(--teal-l))}
.topic-fill-mod{background:linear-gradient(90deg,var(--gold),var(--gold-l))}
.topic-fill-crit{background:linear-gradient(90deg,var(--red),#e74c3c)}
.topic-pct{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-m);min-width:32px;text-align:right}
.topic-flag{font-size:11px;min-width:16px}
/* Metacognition */
.meta-row{display:flex;align-items:center;gap:8px;margin-bottom:7px;padding:10px 12px;border-radius:10px;font-size:12.5px}
.meta-ok{background:var(--teal-p);color:var(--ink-s)}
.meta-over{background:var(--orange-p);color:var(--orange)}
.meta-under{background:var(--blue-p);color:var(--blue)}
.meta-icon{font-size:14px;flex-shrink:0}
.meta-label{font-weight:700;margin-right:4px}
/* Chip */
.chips{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.chip{padding:2px 9px;border-radius:20px;font-size:10px;font-weight:600;font-family:'JetBrains Mono',monospace}
.chip-p{background:var(--teal-p);color:var(--teal)}
.chip-n{background:var(--red-p);color:var(--red)}
.chip-cbm-warn{background:rgba(192,57,43,.06);color:#c03a2b;border:1px solid rgba(192,57,43,.22);font-size:10px;font-style:italic}
.chip-cbm-good{background:rgba(26,122,110,.06);color:var(--teal);border:1px solid rgba(26,122,110,.22);font-size:10px;font-style:italic}
.chip-cbm-ok{background:rgba(39,174,96,.06);color:#27ae60;border:1px solid rgba(39,174,96,.22);font-size:10px;font-style:italic}
.chip-u{background:var(--warm-d);color:var(--ink-m)}
.rc-tip{font-size:12.5px;color:var(--ink-m);line-height:1.65;padding-top:8px;border-top:1px solid var(--bdr)}
.rc-tip strong{color:var(--ink);font-weight:600}
/* Platform CTAs */
.platform-ctas{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;padding:10px 14px;background:linear-gradient(135deg,rgba(201,147,58,.06),rgba(26,122,110,.04));border-radius:10px;border:1px solid rgba(201,147,58,.18);align-items:center}
.platform-ctas-lbl{font-size:10.5px;font-weight:600;color:var(--ink-m);margin-right:4px;font-family:'JetBrains Mono',monospace}
/* Optimizer */
.optimizer-card{background:#fff;border:1.5px solid var(--bdr);border-radius:var(--r-lg);padding:28px 32px;margin-bottom:18px}
.opt-strategies{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.opt-strat{border-radius:14px;padding:18px;border:2px solid var(--bdr);transition:all .3s;cursor:pointer;position:relative}
.opt-strat:hover{transform:translateY(-3px);box-shadow:var(--sh-m)}
.opt-cons{background:linear-gradient(160deg,#f0fbf8,#e8f8f5);border-color:rgba(26,122,110,.2)}
.opt-bal{background:linear-gradient(160deg,#fdf5e6,#faefd4);border-color:rgba(201,147,58,.25)}
.opt-ambi{background:linear-gradient(160deg,#f3eeff,#ebe4ff);border-color:rgba(124,92,191,.2)}
.opt-tag{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-family:'JetBrains Mono',monospace;margin-bottom:8px;display:block}
.opt-cons .opt-tag{color:var(--teal)}
.opt-bal .opt-tag{color:var(--gold)}
.opt-ambi .opt-tag{color:var(--purple)}
.opt-label{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;margin-bottom:6px;line-height:1.2}
.opt-subjects{font-size:11.5px;color:var(--ink-m);margin-bottom:8px;line-height:1.5}
.opt-stats{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--ink-m)}
.opt-exp{font-size:17px;font-weight:700;display:block;margin:6px 0 2px}
.opt-cons .opt-exp{color:var(--teal)}
.opt-bal .opt-exp{color:var(--gold)}
.opt-ambi .opt-exp{color:var(--purple)}
/* Hours panel */
.hours-panel{background:#fff;border:1.5px solid var(--bdr);border-radius:var(--r-lg);padding:26px 30px;margin-bottom:18px}
.hours-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--warm);border-radius:10px;margin-bottom:7px;border:1px solid var(--bdr)}
.hrs-emoji{font-size:16px;flex-shrink:0}
.hrs-name{flex:1;font-size:13px;font-weight:600}
.hrs-needed{font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--teal);font-weight:600;min-width:55px;text-align:right}
.hrs-track{width:100px;height:6px;background:var(--warm-d);border-radius:3px;overflow:hidden;margin-left:8px}
.hrs-fill{height:100%;border-radius:3px}
.hrs-ok{background:linear-gradient(90deg,var(--teal),var(--teal-l))}
.hrs-warn{background:linear-gradient(90deg,var(--orange),#f0a060)}
.hrs-danger{background:linear-gradient(90deg,var(--red),#e74c3c)}
.hours-summary{margin-top:12px;padding:14px 16px;background:var(--warm);border-radius:10px;font-size:13px;color:var(--ink-m);line-height:1.75}
.hours-summary strong{color:var(--ink)}
/* Study plan */
.plan-section{background:linear-gradient(160deg,rgba(26,122,110,.05),rgba(42,168,153,.02));border:1.5px solid rgba(26,122,110,.18);border-radius:var(--r-lg);padding:28px 32px;margin-bottom:18px}
.phase-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;font-family:'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.06em;margin-right:6px}
.phase-learn{background:rgba(26,122,110,.12);color:var(--teal)}
.phase-practice{background:rgba(201,147,58,.12);color:var(--gold)}
.phase-revise{background:rgba(124,92,191,.12);color:var(--purple)}
.phase-review{background:rgba(26,95,168,.12);color:var(--blue)}
.week-block{margin-bottom:16px;border-radius:12px;overflow:hidden;border:1px solid var(--bdr)}
.week-header{background:var(--warm-d);padding:10px 16px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--ink-s)}
.week-header .wnum{font-family:'JetBrains Mono',monospace;color:var(--gold);font-size:11px}
.week-days{display:grid;grid-template-columns:repeat(7,1fr)}
.wday{padding:9px 6px;text-align:center;border-right:1px solid var(--bdr);font-size:10.5px;line-height:1.35;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.wday:last-child{border-right:none}
.wday.rest{background:var(--warm)}
.wday.weekend-day{border-top:3px solid rgba(201,147,58,.45);background:rgba(201,147,58,.04)}
.wday.weekend-rest{border-top:3px solid rgba(201,147,58,.25);background:rgba(201,147,58,.02);opacity:.7}
.week-days{position:relative}
.week-col-labels{display:grid;grid-template-columns:5fr 2fr;gap:2px;margin-bottom:2px}
.wkl-main{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-l);padding:0 4px;text-align:center}
.wkl-we{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);padding:0 4px;text-align:center;border-top:2px solid rgba(201,147,58,.4)}
.wday.active{background:#fff}
.wday.sr-day{background:rgba(26,95,168,.05)}
.wd-name{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-l)}
.wd-date{font-size:10px;font-weight:600;color:var(--ink-m);font-family:'JetBrains Mono',monospace}
.wd-subj{font-size:11px;font-weight:600;color:var(--teal);margin-top:1px}
.wd-hrs{font-size:9px;color:var(--ink-l);font-family:'JetBrains Mono',monospace}
.wd-sr{font-size:9px;color:var(--blue);font-weight:600}
/* Exam week protocol */
.protocol-card{background:linear-gradient(160deg,#fdf8f0,#f8f2e8);border:2px solid rgba(201,147,58,.3);border-radius:var(--r-lg);padding:28px 32px;margin-bottom:18px}
.protocol-timeline{display:flex;flex-direction:column;gap:0}
.proto-item{display:flex;gap:14px;position:relative;padding-bottom:18px}
.proto-item:last-child{padding-bottom:0}
.proto-item::before{content:'';position:absolute;left:17px;top:36px;bottom:0;width:2px;background:var(--bdr-g)}
.proto-item:last-child::before{display:none}
.proto-dot{width:34px;height:34px;border-radius:50%;border:2px solid var(--gold);background:var(--gold-p);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;z-index:1}
.proto-body{flex:1;padding-top:4px}
.proto-when{font-size:10.5px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-family:'JetBrains Mono',monospace;margin-bottom:3px}
.proto-what{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.proto-why{font-size:12.5px;color:var(--ink-m);line-height:1.6}
/* Flags */
.flags{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.flag{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;border-radius:12px;font-size:13px;line-height:1.6}
.flag.warn{background:var(--orange-p);border:1px solid rgba(212,100,10,.2);color:var(--orange)}
.flag.danger{background:var(--red-p);border:1px solid rgba(192,57,43,.2);color:var(--red)}
.flag.info{background:var(--teal-p);border:1px solid rgba(26,122,110,.15);color:var(--teal)}
.flag.tip{background:var(--gold-p);border:1px solid rgba(201,147,58,.2);color:var(--ink-s)}
.flag-icon{font-size:15px;flex-shrink:0}
.flag strong{font-weight:700}
/* Metacognition section */
.meta-card{background:#fff;border:1.5px solid var(--bdr);border-radius:var(--r-lg);padding:26px 30px;margin-bottom:18px}
/* Responsive */

/* ── Subject Tabs ── */
.subj-tab-bar{display:flex;gap:0;justify-content:center;background:var(--warm-d);border-radius:14px;padding:5px;margin-bottom:20px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap}
.subj-tab-bar::-webkit-scrollbar{display:none}
.subj-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 14px;border-radius:10px;border:none;background:transparent;cursor:pointer;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:12px;font-weight:700;color:var(--ink-m);transition:all .2s;white-space:nowrap;position:relative;min-width:52px}
.subj-tab:hover:not(.active){background:rgba(255,255,255,.5);color:var(--ink)}
.subj-tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.subj-tab.done{color:var(--teal)}
.subj-tab.done.active{background:#fff}
.tab-ring{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;position:relative;margin-bottom:1px}
.subj-tab.active .tab-ring{background:var(--gold-p)}
.subj-tab.done .tab-ring{background:var(--teal-p)}
.tab-ring svg{position:absolute;top:0;left:0;transform:rotate(-90deg)}
.tab-ring-fill{transition:stroke-dashoffset .5s ease}
.tab-lbl{font-size:10.5px;font-weight:700;letter-spacing:.02em}
.tab-check{position:absolute;top:4px;right:4px;width:14px;height:14px;border-radius:50%;background:var(--teal);color:#fff;font-size:8px;font-weight:900;display:flex;align-items:center;justify-content:center}
/* Auto-advance overlay */
.tab-done-overlay{text-align:center;padding:32px 20px;animation:fadeUp .4s ease}
.tab-done-icon{font-size:48px;margin-bottom:10px}
.tab-done-title{font-size:18px;font-weight:700;color:var(--teal);margin-bottom:6px}
.tab-done-sub{font-size:13px;color:var(--ink-m);margin-bottom:18px}
.tab-advance-bar{height:4px;border-radius:2px;background:var(--warm-d);overflow:hidden;max-width:200px;margin:0 auto}
.tab-advance-fill{height:100%;background:var(--teal);border-radius:2px;transition:width 2s linear}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* CBM confidence selector — redesigned, now ABOVE options */
.cbm-row{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;background:var(--warm-d);border-radius:10px;flex-wrap:wrap}
.cbm-label{font-size:11px;font-weight:700;color:var(--ink-m);text-transform:uppercase;letter-spacing:.06em;font-family:'JetBrains Mono',monospace;margin-right:4px;white-space:nowrap}
.cbm-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:20px;border:1.5px solid transparent;background:#fff;font-size:12px;font-weight:600;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;cursor:pointer;transition:all .18s;color:var(--ink-s)}
.cbm-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.1)}
.cbm-btn.sel-h{background:var(--teal-p);border-color:var(--teal);color:var(--teal)}
.cbm-btn.sel-m{background:var(--gold-p);border-color:var(--gold);color:var(--gold)}
.cbm-btn.sel-l{background:var(--red-p);border-color:var(--red);color:var(--red)}


/* ── Skip button (Comprehensive mode only) ── */
.cbm-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;padding:3px 0}
.cbm-chip.overconf{color:var(--red)}
.cbm-chip.underconf{color:var(--teal)}
.cbm-chip.neutral{color:var(--ink-m)}

/* ── CBM-gated options — locked until confidence chosen ── */
.cat-opts.cbm-locked{position:relative}
.cat-opts.cbm-locked .cat-opt{
  opacity:.38;
  pointer-events:none;
  user-select:none;
  filter:blur(.4px);
  cursor:not-allowed;
  transform:none!important;
}
.cbm-unlock-hint{
  text-align:center;
  font-size:11.5px;
  font-weight:600;
  color:var(--ink-l);
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  padding:7px 0 2px;
  letter-spacing:.02em;
  animation:hintPulse 2s ease-in-out infinite;
}
@keyframes hintPulse{0%,100%{opacity:.5}50%{opacity:1}}
/* When CBM is selected — options animate in */
.cat-opts.cbm-unlocked .cat-opt{
  animation:optUnlock .22s ease forwards;
}
@keyframes optUnlock{
  from{opacity:.38;transform:translateY(3px)}
  to{opacity:1;transform:translateY(0)}
}
.skip-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:7px 16px;border:1.5px dashed rgba(92,92,114,.25);border-radius:20px;background:transparent;color:var(--ink-l);font-size:12px;font-weight:600;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;cursor:pointer;transition:all .2s}
.skip-btn:hover{border-color:var(--gold-l);color:var(--gold);background:var(--gold-p)}
.skip-btn:active{transform:scale(.97)}
/* Deferred questions notice */
.deferred-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:var(--orange-p);color:var(--orange);font-size:10.5px;font-weight:700;font-family:'JetBrains Mono',monospace;border:1px solid rgba(212,100,10,.2)}
/* Q counter pill in header */
.q-counter-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;background:var(--warm-d);font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--ink-m)}
@media(max-width:640px){
  .ep-wrap{padding:70px 12px 100px}
  .clic-card{padding:18px 14px;border-radius:16px}
  /* Type cards */
  .type-grid,.mode-grid,.two-col,.opt-strategies{grid-template-columns:1fr}
  .type-card{padding:14px 15px}
  .type-head{gap:8px}
  .type-icon{font-size:20px}
  /* Session grid */
  .session-grid{grid-template-columns:repeat(2,1fr);gap:8px}
  .sess-card{padding:12px 8px}
  .sess-weeks{font-size:18px}
  /* Welcome */
  .feat-grid{grid-template-columns:1fr}
  .welcome-card{padding:68px 16px 24px}
  .pills{gap:6px}
  /* Results hero */
  .result-hero{padding:22px 16px}
  .stats-row{grid-template-columns:repeat(3,1fr);gap:6px}
  .stat-box{padding:10px 8px}
  .stat-num{font-size:22px}
  /* Nav */
  .ep-plbl{display:none}
  .ep-step{width:28px;height:28px;font-size:11px}
  /* Assessment */
  .cat-q-block{padding:18px 14px;border-radius:12px}
  .cat-q-text{font-size:14px}
  .cat-opt{padding:10px 12px;font-size:13px}
  /* Study plan calendar */
  .week-days{grid-template-columns:repeat(4,1fr)}
  .wday{min-height:60px;padding:6px 4px}
  /* Topic map */
  .topic-name{min-width:80px;font-size:11px}
  /* Result cards */
  .rc{padding:16px 14px}
  .rc-name{font-size:14px}
  .prob-circle{width:52px;height:52px;font-size:16px}
  /* Benchmark */
  .benchmark-row{grid-template-columns:1fr}
  .bench-stat{flex-direction:row;gap:10px;padding:10px 14px;justify-content:flex-start}
  .bench-pct{font-size:22px}
  /* Action items */
  .actions-card{padding:20px 16px}
  .opt-strategies{gap:8px}
  /* Bottom btn bar */
  .results-btn-bar{flex-direction:column;gap:8px;padding:16px 0 0}
  .results-btn-bar .btn,.results-btn-bar .btn-o,.results-btn-bar .btn-pdf,.results-btn-bar .btn-teal,.results-btn-bar a{width:100%;justify-content:center}
  /* Chips */
  .chips{gap:4px}
  .chip{font-size:9px}
  /* Rating */
  .rating-row{gap:8px;padding:10px 12px}
  /* Strat options */
  .strat-opt{font-size:12px}
  /* Today box */
  .today-box{padding:14px 16px}
  /* Feedback strip */
  .feedback-strip{flex-direction:column;gap:10px;align-items:flex-start}
  .feedback-btns{width:100%;display:flex;gap:8px}
  .fb-pass,.fb-fail{flex:1;justify-content:center}
  /* Tabs mobile */
  .subj-tab{padding:8px 10px;min-width:44px}
  .tab-ring{width:24px;height:24px}
  .tab-lbl{font-size:9.5px}
  .cbm-row{gap:6px}
  .cbm-btn{font-size:11px;padding:4px 9px}
  /* Hours panel */
  .hours-row{gap:8px}
  .hrs-track{width:60px}
  /* MCQ subject tab bar */
  .subj-tab-bar{gap:4px;overflow-x:auto;padding-bottom:4px;justify-content:flex-start;-webkit-overflow-scrolling:touch}
  .subj-tab{flex-shrink:0;min-width:44px}
  .tab-ring{width:36px;height:36px}
  /* MCQ question options */
  .cat-opt{font-size:13px;padding:10px 12px}
  /* Results subject readiness table */
  .sblock-top{flex-wrap:wrap;gap:6px}
  .sblock-sc{font-size:22px}
  /* Results: hide less critical columns on mobile */
  .res-hide-mobile{display:none}
}
@media(max-width:400px){
  .ep-wrap{padding:70px 10px 100px}
  .session-grid{grid-template-columns:1fr}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .week-days{grid-template-columns:repeat(3,1fr)}
  .type-head{gap:7px}
}
/* MOBILE-FIX: Prevent Drupal theme wrappers from causing horizontal scroll/clip.
   The gavias_edmix theme can introduce containers wider than the viewport on mobile.
   These rules ensure the CLIC widget stays within bounds regardless of theme. */
@media(max-width:767px){
  .ep-wrap{max-width:100%;overflow-x:hidden}
  .welcome-card{max-width:100%;overflow:hidden}
  .feat-grid{max-width:100%}
  /* Prevent any absolutely-positioned decorative element from creating overflow */
  .welcome-card::before,.result-hero::before{display:none}
}



/* ── Exemption toggle ── */
.exempt-row{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:linear-gradient(135deg,rgba(26,95,168,.05),rgba(26,122,110,.04));border:1.5px solid rgba(26,95,168,.2);border-radius:10px;margin-top:14px;flex-wrap:wrap}
.exempt-ico{font-size:18px;flex-shrink:0;padding-top:2px}
.exempt-text{flex:1;font-size:12.5px;color:var(--ink-m);line-height:1.55;min-width:160px}
.exempt-text strong{color:var(--ink-s)}
.exempt-sub{display:block;font-size:11.5px;color:var(--ink-l);margin-top:2px}
.exempt-check{display:flex;align-items:center;gap:7px;cursor:pointer;flex-shrink:0}
.exempt-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--teal);cursor:pointer}
.exempt-check label{font-size:12.5px;font-weight:600;color:var(--teal);cursor:pointer}
.exempt-notice{margin-top:8px;padding:9px 12px;border-radius:8px;font-size:12px;font-weight:600;line-height:1.55}
/* ── Confidence-Based Marking ── */
.cbm-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.cbm-label{font-size:11px;color:var(--ink-l);font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.cbm-btn{padding:4px 13px;border-radius:20px;border:1.5px solid var(--bdr);font-size:11.5px;font-weight:600;cursor:pointer;background:#fff;font-family:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;transition:all .15s;color:var(--ink-m)}
.cbm-btn:hover{border-color:var(--gold);color:var(--gold)}
.cbm-btn.sel-high{border-color:var(--teal);background:var(--teal-p);color:var(--teal)}
.cbm-btn.sel-med{border-color:var(--gold);background:var(--gold-p);color:var(--gold)}
.cbm-btn.sel-low{border-color:var(--ink-l);background:var(--warm);color:var(--ink-m)}
.cbm-btn.locked{pointer-events:none;opacity:.65}
/* ── Quick Pulse ── */
.pulse-wrap{margin-top:20px}
.pulse-teaser{font-size:13px;color:var(--ink-m);margin:10px 0 4px}
.pulse-toggle{background:none;border:1.5px solid rgba(26,122,110,.4);color:var(--teal);padding:8px 20px;border-radius:20px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.pulse-toggle:hover{background:var(--teal-p)}
.pulse-area{display:none;background:linear-gradient(160deg,#f0fbf8,#ecf7f4);border:1.5px solid rgba(26,122,110,.22);border-radius:var(--r-lg);padding:24px 28px;margin-top:14px;text-align:left}
.pulse-area.active{display:block;animation:fadeUp .3s ease}
.pulse-prog{display:flex;gap:6px;margin-bottom:18px}
.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--warm-d);transition:background .3s;flex-shrink:0}
.pulse-dot.done{background:var(--teal)}.pulse-dot.cur{background:var(--gold)}
.pulse-subj-label{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-bottom:8px}
.pulse-q-text{font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.55;margin-bottom:14px}
.pulse-opts{display:flex;flex-direction:column;gap:7px}
.pulse-opt{padding:9px 14px;background:#fff;border:1.5px solid var(--bdr);border-radius:9px;cursor:pointer;font-size:13px;transition:all .18s;text-align:left;font-family:'DM Sans',sans-serif}
.pulse-opt:hover:not(.locked){border-color:var(--teal);background:var(--teal-p)}
.pulse-opt.correct{border-color:var(--teal)!important;background:var(--teal-p)!important;font-weight:600}
.pulse-opt.wrong{border-color:var(--red)!important;background:var(--red-p)!important}
.pulse-opt.reveal{border-color:rgba(26,122,110,.3);background:rgba(26,122,110,.04)}
.pulse-opt.locked{cursor:default}
.pulse-result{padding:6px 0}
.pulse-result-head{font-family:'Playfair Display',serif;font-size:22px;font-weight:900;color:var(--ink);margin-bottom:4px}
.pulse-result-sub{font-size:13px;color:var(--ink-m);margin-bottom:16px;line-height:1.6}
.pulse-bars{display:flex;flex-direction:column;gap:9px;margin:14px 0 18px}
.pulse-bar-row{display:flex;align-items:center;gap:10px;font-size:12.5px}
.pulse-bar-label{width:55px;color:var(--ink-s);font-weight:600;flex-shrink:0}
.pulse-bar-track{flex:1;height:8px;background:var(--warm-d);border-radius:4px;overflow:hidden}
.pulse-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--teal),var(--teal-l));transition:width .9s}
.pulse-bar-pct{width:38px;text-align:right;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--ink-m)}

/* ── Score Breakdown ── */
.score-breakdown{margin:8px 0 10px;border:1px solid var(--bdr);border-radius:10px;overflow:hidden;font-size:12px}
.sb-row{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--bdr)}
.sb-row:last-child{border-bottom:none;background:var(--warm);font-weight:700}
.sb-label{width:150px;color:var(--ink-m);flex-shrink:0;line-height:1.3}
.sb-bar{flex:1;height:5px;background:var(--warm-d);border-radius:3px;overflow:hidden}
.sb-barfill-pos{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--teal),var(--teal-l))}
.sb-barfill-neg{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--red),#e74c3c)}
.sb-val{width:44px;text-align:right;font-family:'JetBrains Mono',monospace;font-weight:600;flex-shrink:0;font-size:11px}
.sb-toggle{font-size:11.5px;color:var(--teal);cursor:pointer;user-select:none;margin:3px 0 8px;display:inline-flex;align-items:center;gap:4px;opacity:.8}
.sb-toggle:hover{opacity:1}

/* ── Error Taxonomy ── */
.err-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;margin-top:8px;line-height:1.4}
.err-concept{background:rgba(192,57,43,.1);color:#b03a2e}
.err-careless{background:rgba(201,147,58,.12);color:#a07820}
.err-calc{background:rgba(124,92,191,.1);color:var(--purple)}
.err-advanced{background:rgba(26,95,168,.1);color:var(--blue)}
.err-knowledge{background:rgba(192,57,43,.07);color:#b03a2e}

/* ── Behavioral Archetype ── */
.archetype-card{background:linear-gradient(160deg,rgba(124,92,191,.05),rgba(201,147,58,.04));border:1.5px solid rgba(124,92,191,.22);border-radius:var(--r-lg);padding:22px 26px;margin-bottom:18px}
.arch-hdr{display:flex;align-items:flex-start;gap:14px;margin-bottom:12px}
.arch-icon{font-size:30px;line-height:1;flex-shrink:0;margin-top:2px}
.arch-meta{flex:1}
.arch-name{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:var(--ink);margin-bottom:4px}
.arch-tag{display:inline-flex;padding:2px 9px;background:rgba(124,92,191,.12);color:var(--purple);border-radius:20px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.arch-desc{font-size:13px;color:var(--ink-m);line-height:1.65;margin-bottom:12px}
.arch-drills{display:flex;flex-direction:column;gap:7px}
.arch-drill{display:flex;align-items:flex-start;gap:9px;padding:9px 13px;background:#fff;border-radius:9px;border:1px solid var(--bdr);font-size:12.5px;line-height:1.55;color:var(--ink-s)}
.arch-drill-num{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--purple);flex-shrink:0;margin-top:1px}
.arch-drills-title{font-size:11.5px;font-weight:700;color:var(--ink-m);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-family:'JetBrains Mono',monospace}

/* ── Peer Benchmark ── */
.benchmark-row{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0;margin-top:10px;border-radius:12px;overflow:hidden;border:1px solid rgba(26,95,168,.15)}
.bench-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 18px;background:var(--blue-p);min-width:80px;flex-shrink:0}
.bench-pct{font-family:'Playfair Display',serif;font-size:26px;font-weight:900;color:var(--blue);line-height:1}
.bench-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--blue);opacity:.75;margin-top:2px;font-family:'JetBrains Mono',monospace;white-space:nowrap}
.bench-body{padding:10px 14px;background:#fff}
.bench-title{font-size:12px;font-weight:700;color:var(--ink-s);margin-bottom:3px;display:flex;align-items:center;gap:5px}
.bench-desc{font-size:11px;color:var(--ink-m);line-height:1.5}
.bench-note{font-size:10px;color:var(--ink-l);margin-top:4px;font-style:italic}


/* ── Today's Study Reminder ── */
.today-box{background:linear-gradient(135deg,rgba(26,122,110,.06),rgba(26,122,110,.02));border:1.5px solid rgba(26,122,110,.25);border-radius:14px;padding:16px 20px;margin-bottom:18px}
.today-box-hdr{font-family:'Playfair Display',serif;font-size:17px;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.today-items{display:flex;flex-direction:column;gap:7px}
.today-item{display:flex;align-items:center;gap:10px;padding:7px 12px;background:#fff;border-radius:9px;border:1px solid var(--bdr);font-size:13px}
.today-item-icon{font-size:16px;flex-shrink:0}
.today-item-body{flex:1;line-height:1.45}
.today-item-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-l);display:block}
/* ── Post-exam Feedback ── */
.feedback-strip{background:linear-gradient(135deg,rgba(201,147,58,.07),rgba(26,122,110,.05));border:1px solid rgba(201,147,58,.28);border-radius:14px;padding:16px 22px;margin-top:20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.feedback-strip-ico{font-size:22px;flex-shrink:0}
.feedback-strip-text{flex:1;font-size:13px;color:var(--ink-m);line-height:1.55;min-width:180px}
.feedback-btns{display:flex;gap:8px;flex-shrink:0}
.fb-pass{padding:7px 18px;background:var(--teal);color:#fff;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif}
.fb-fail{padding:7px 16px;background:transparent;border:1.5px solid var(--bdr);color:var(--ink-m);border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif}
.fb-done{font-size:13px;color:var(--teal);font-weight:600;padding:6px 0}

/* ══════════════════════════════════════════════════════════════════
   MOBILE WIDTH FIX r75
   Forces CLIC wizard to use full viewport width on mobile.
   Scoped to body.path-ca-exam-coach (CLIC pages only).
   ══════════════════════════════════════════════════════════════════ */

@media (max-width: 991px) {

  /* ── 1. Force full width on all Gavias wrappers ── */
  body.path-ca-exam-coach .main-content-inner,
  body.path-ca-exam-coach .content-main,
  body.path-ca-exam-coach #page-main-content,
  body.path-ca-exam-coach .main-content,
  body.path-ca-exam-coach #content,
  body.path-ca-exam-coach .container-full,
  body.path-ca-exam-coach .main-page {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    float: none !important;
    flex: none !important;
  }

  /* ── 2. ep-wrap: full width + visible background ── */
  body.path-ca-exam-coach .ep-wrap {
    width: 100% !important;
    max-width: 100% !important;
    padding: 70px 12px 100px !important;
    margin: 0 !important;
    background: var(--paper, #fafaf7) !important;
    overflow: visible !important;
    position: relative !important;
    z-index: 2 !important;
    box-sizing: border-box !important;
  }

  /* ── 3. Active steps: always visible, full width ── */
  body.path-ca-exam-coach .ep-step.active {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    height: auto !important;
    width: 100% !important;
    overflow: visible !important;
  }

  /* ── 4. Cards: full width, always visible ── */
  body.path-ca-exam-coach .welcome-card,
  body.path-ca-exam-coach .clic-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    height: auto !important;
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
  }

  /* ── 5. Bootstrap grid reset for CLIC pages ── */
  /* Remove Bootstrap column float/flex that narrows content on mobile */
  body.path-ca-exam-coach [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    flex: none !important;
    -ms-flex: none !important;
  }

  /* ── 6. Safer overflow for body on CLIC pages ── */
  body.path-ca-exam-coach {
    overflow-x: clip !important;
  }
}

/* ── Study tracker page ── */
@media (max-width: 991px) {
  body.path-my-study-tracker .ep-wrap,
  body.path-my-study-tracker .main-content-inner,
  body.path-my-study-tracker .content-main,
  body.path-my-study-tracker [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: visible !important;
    height: auto !important;
  }
}
/* ── Resume banner: 2-row layout on mobile ── */
@media (max-width: 640px) {
  /* Row 1: text full width, Row 2: buttons side by side */
  .resume-banner {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px 10px !important;
    padding: 12px 14px !important;
    border-radius: 10px !important;
    margin-bottom: 14px !important;
    margin-top: 80px !important;
  }
  /* Text takes full width → forces buttons to next row */
  .resume-text {
    flex: 0 0 100% !important;
    width: 100% !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }
  /* Buttons: sit side by side on row 2 */
  .resume-banner .btn-teal,
  .resume-banner .btn-o {
    flex: 1 1 auto !important;
    padding: 9px 14px !important;
    font-size: 13px !important;
    white-space: nowrap !important;
    justify-content: center !important;
    min-width: 0 !important;
  }
}

/* ── CBM Confidence row: compact single-row on mobile ── */
@media (max-width: 640px) {
  .cbm-row {
    gap: 6px !important;
    padding: 8px 10px !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  .cbm-row::-webkit-scrollbar { display: none !important; }
  .cbm-label {
    font-size: 10px !important;
    letter-spacing: .04em !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  .cbm-btn {
    padding: 5px 9px !important;
    font-size: 11.5px !important;
    gap: 3px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
}

    +p1+p2+calPages+p3b+p4_daily+p5_tasks
    +'<div style="text-align:center;margin:10mm auto 0;font-family:sans-serif;">'
    +'<p style="font-size:10px;color:#888;margin-bottom:4px;">If the print dialog did not open automatically:</p>'
    +'<button onclick="window.print()" style="padding:8px 20px;background:#c9933a;color:#fff;border:none;border-radius:5px;font-size:12px;font-weight:700;cursor:pointer;">Print / Save as PDF</button>'
    +'</div>'
    +'<script>window.onload=function(){window.print();};<\/script>'
    +'</body></html>';

  // iOS Safari requires window.open() as a direct sync call before any async work.
  // We build HTML first (sync) then open — this is fine since calcPDF is sync.
  var w=window.open('','_blank');
  if(!w||w.closed){
    alert('Pop-up blocked!\n\nAllow pop-ups for this page in your browser settings, then tap Download PDF again.\n\niOS Safari: Settings → Safari → Block Pop-ups → Off');
    return;
  }
  w.document.open();
  w.document.write(fullHTML);
  w.document.close();
};

/* ════════════════ GLOBAL ERROR HANDLER ════════════════ */
window.onerror=function(msg,src,line,col,err){
  // Silently catch and log; never show raw JS errors to students
  try{
    const fb=JSON.parse(localStorage.getItem('icab_errors')||'[]');
    fb.push({ts:new Date().toISOString(),msg:String(msg).slice(0,200),line,col});
    localStorage.setItem('icab_errors',JSON.stringify(fb.slice(-20)));
  }catch(e){}
  return true;// prevent default browser error display
};
window.addEventListener('unhandledrejection',function(e){
  try{
    const fb=JSON.parse(localStorage.getItem('icab_errors')||'[]');
    fb.push({ts:new Date().toISOString(),msg:'unhandledRejection: '+String(e.reason).slice(0,200)});
    localStorage.setItem('icab_errors',JSON.stringify(fb.slice(-20)));
  }catch(ex){}
});

/* ════════════════ INIT ════════════════ */
initWelcome();
</script>
</body>
</html>

/* ── Exam Readiness Index ── */
.eri-card svg circle:last-child {
  animation: eriDraw 1.2s ease forwards;
}
@keyframes eriDraw {
  from { stroke-dashoffset: 339.292; }
}

/* ── Premium Section ── */
.premium-card {
  transition: transform .2s, box-shadow .2s;
}
.premium-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
}
.premium-teaser a:hover {
  transform: translateY(-1px);
}

/* ════════════════════════════════════════════════════
   HOURS RECONCILIATION PANEL
   ════════════════════════════════════════════════════ */
.recon-panel {
  background: #fff;
  border: 1.5px solid rgba(26,122,110,.18);
  border-radius: 16px;
  padding: 24px 22px;
  margin-bottom: 22px;
}
.recon-header {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 20px;
}
.recon-summary-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-left: auto;
}
.recon-badge {
  text-align: center;
  padding: 10px 14px;
  border: 1.5px solid #ddd;
  border-radius: 10px;
  min-width: 100px;
  background: #fff;
}
.recon-badge-num {
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.2;
}
.recon-badge-lbl {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ink-l);
  margin-top: 3px;
  font-weight: 600;
}

/* ── Per-subject dual bars ── */
.recon-bars { margin-bottom: 18px; }
.recon-bar-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(0,0,0,.05);
}
.recon-bar-row:last-child { border-bottom: none; }
.recon-subj-label {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 160px;
  flex-shrink: 0;
}
.recon-sname {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink);
}
.recon-short {
  font-size: 10px;
  color: var(--ink-l);
  background: var(--warm-d);
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 700;
  display: none;
}
.recon-tracks {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.recon-track-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}
.recon-track-label {
  font-size: 10px;
  color: var(--ink-l);
  width: 54px;
  flex-shrink: 0;
  text-align: right;
}
.recon-track {
  flex: 1;
  height: 8px;
  background: rgba(0,0,0,.07);
  border-radius: 4px;
  overflow: hidden;
}
.recon-fill {
  height: 100%;
  border-radius: 4px;
  transition: width .6s ease;
}
.req-fill  { background: rgba(0,0,0,.25); }
.alloc-fill { background: var(--teal); }
.recon-track-val {
  font-size: 11.5px;
  font-weight: 700;
  width: 36px;
  text-align: right;
  flex-shrink: 0;
}
.recon-gap-cell {
  text-align: right;
  font-size: 11.5px;
  font-weight: 600;
  min-width: 90px;
  flex-shrink: 0;
  line-height: 1.5;
}
.recon-cov-pct {
  font-size: 10.5px;
  font-weight: 700;
  margin-top: 2px;
}

/* ── Toggle button ── */
.recon-toggle-btn {
  background: none;
  border: 1px solid var(--teal);
  color: var(--teal);
  font-size: 12px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 6px;
  cursor: pointer;
  transition: all .15s;
}
.recon-toggle-btn:hover {
  background: rgba(26,122,110,.06);
}

/* ── Responsive ── */
@media (max-width: 600px) {
  .recon-bar-row { flex-wrap: wrap; }
  .recon-summary-badges { margin-left: 0; }
  .recon-sname { display: none; }
  .recon-short { display: inline; }
  .recon-subj-label { min-width: 80px; }
  .recon-track-label { display: none; }
}

/* ════════════════════════════════════════════════════════
   STUDY TRACKER — Premium Feature
   Mobile-first, responsive layout
════════════════════════════════════════════════════════ */

.st-tab-section{display:none}/* removed — now a CTA link */

/* ── Study Tracker CTA card ── */
.st-cta-section{margin-top:28px}
.st-cta-card{border-radius:16px;padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.st-cta-premium{background:linear-gradient(135deg,#f0faf8 0%,#fdf8f0 100%);border:1.5px solid #b2ddd7}
.st-cta-locked{background:var(--warm);border:1.5px dashed rgba(201,147,58,.35)}
.st-cta-left{display:flex;align-items:flex-start;gap:14px;flex:1;min-width:200px}
.st-cta-icon{font-size:32px;line-height:1;flex-shrink:0}
.st-cta-lock-icon{font-size:32px;line-height:1;flex-shrink:0;opacity:.5}
.st-cta-lock-body{flex:1}
.st-cta-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:4px;display:flex;align-items:center;gap:8px}
.st-cta-badge-premium{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:linear-gradient(135deg,#c9933a,#e8b86d);color:#08080d}
.st-cta-badge-locked{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:rgba(201,147,58,.15);color:var(--gold)}
.st-cta-desc{font-size:12px;color:var(--ink-s);line-height:1.6;margin:0 0 10px}
.st-cta-btn{flex-shrink:0;white-space:nowrap;padding:10px 20px;font-size:13px}
.st-cta-upgrade-btn{display:inline-block;font-size:12px;font-weight:700;color:var(--gold);text-decoration:none;border:1.5px solid rgba(201,147,58,.4);padding:7px 16px;border-radius:8px;transition:background .15s}
.st-cta-upgrade-btn:hover{background:rgba(201,147,58,.08)}
@media(max-width:600px){.st-cta-card{flex-direction:column}.st-cta-btn{width:100%;text-align:center}}

.st-loading{padding:24px;text-align:center;color:var(--ink-m);font-size:13px}



/* Header strip */
.st-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;background:rgba(255,255,255,.03);border-radius:10px;flex-wrap:wrap;gap:8px}
.st-streak{font-size:15px;font-weight:700;color:var(--gold)}
.st-header-title{font-size:13px;font-weight:600;color:var(--ink);flex:1;min-width:120px}
.st-week-stat{font-size:11px;color:var(--ink-m);text-align:right;flex:1;min-width:140px}

/* Section titles */
.st-section-title{font-size:12px;font-weight:700;color:var(--ink-m);letter-spacing:.06em;text-transform:uppercase;margin:18px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--bdr)}

/* Reminders */
.st-reminders{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}
.st-reminder{display:flex;align-items:center;gap:10px;padding:12px;background:rgba(192,57,43,.06);border:1px solid rgba(192,57,43,.2);border-radius:10px;flex-wrap:wrap}
.st-r-emoji{font-size:22px;flex-shrink:0}
.st-r-body{flex:1;min-width:120px}
.st-r-name{font-size:13px;font-weight:600;color:var(--ink)}
.st-r-meta{font-size:11px;color:var(--ink-m);margin-top:2px}
.st-r-right{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto}
.st-r-due{font-size:11px;font-weight:700;white-space:nowrap}
.st-r-go{font-size:11px!important;padding:4px 10px!important;white-space:nowrap}
.st-r-dismiss{background:none;border:none;color:var(--ink-l);font-size:14px;cursor:pointer;padding:2px 4px;line-height:1;border-radius:4px}
.st-r-dismiss:hover{color:var(--red)}

/* Daily log */
.st-log-list{display:flex;flex-direction:column;gap:8px}
.st-log-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.03);border:1px solid var(--bdr);border-radius:10px;transition:border-color .2s}
.st-log-row:hover{border-color:var(--gold-l)}
.st-check{width:26px;height:26px;border:2px solid var(--bdr-g);border-radius:50%;background:none;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:700;color:var(--teal);transition:all .15s;display:flex;align-items:center;justify-content:center}
.st-check.done{background:var(--teal);border-color:var(--teal);color:#fff}
.st-log-emoji{font-size:20px;flex-shrink:0}
.st-log-body{flex:1;min-width:0}
.st-log-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-log-meta{font-size:11px;color:var(--ink-m);margin-top:1px}
.st-log-actual{display:flex;align-items:center;gap:4px;flex-shrink:0}
.st-hrs-input{width:52px;padding:4px 6px;background:var(--warm-d);border:1px solid var(--bdr-g);border-radius:6px;color:var(--ink);font-size:12px;text-align:center;-moz-appearance:textfield}
.st-hrs-input::-webkit-inner-spin-button,.st-hrs-input::-webkit-outer-spin-button{-webkit-appearance:none}
.st-hrs-input:focus{outline:none;border-color:var(--gold)}
.st-hrs-label{font-size:10px;color:var(--ink-l);white-space:nowrap}
.st-empty{padding:16px;text-align:center;color:var(--ink-m);font-size:12px;font-style:italic}

/* Timeline */
.st-timeline-wrap{padding:4px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.st-timeline-wrap svg{min-width:240px}

/* Heatmap */
.st-heatmap-wrap{padding:4px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.st-heatmap-wrap svg{min-width:200px}

/* Responsive: stack reminder right section on very small screens */
@media(max-width:380px){
  .st-reminder{flex-direction:column;align-items:flex-start}
  .st-r-right{margin-left:0;width:100%}
  .st-log-row{flex-wrap:wrap}
  .st-log-actual{width:100%;justify-content:flex-end;margin-top:4px}
}

