/* Calibrex OSINT Academy — courses: syllabus, lesson reader, exhibits and the assessment room */

/* ---------- Course home ---------- */
.cx-hero{padding:56px 0 34px}
.cx-hero h1{font:700 clamp(38px,6vw,68px)/1.04 'Playfair Display',Georgia,serif;letter-spacing:-1.5px;margin:14px 0 0;max-width:900px}
.cx-lede{color:#c3cad8;font-size:18px;line-height:1.65;max-width:760px;margin:16px 0 0}
.cx-facts{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:24px 0 0}
.cx-facts li{padding:9px 14px;border:1px solid var(--line);border-radius:99px;font-size:13px;color:#aab4c5;background:#ffffff05}
.cx-facts b{color:#f3e7cc;font-weight:800;margin-right:4px}
.cx-status{margin-top:26px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.cx-status:empty{display:none}
.cx-status p{margin:0;color:#cfd6e4;font-size:15px;line-height:1.6;flex-basis:100%}
.cx-status p b{color:var(--gold)}
.cx-status .button{border:0;cursor:pointer}.cx-status .button-glass{border:1px solid var(--line)}
.cx-prog{margin-top:20px;height:4px;border-radius:9px;background:#ffffff10;overflow:hidden;max-width:760px}
.cx-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f5a944,#e9bd78);transition:width .6s}

.cx-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:34px;align-items:start;padding-bottom:80px}
.cx-intro{padding:24px 26px;border:1px solid var(--line);border-radius:22px;background:var(--panel)}
.cx-intro p{color:#cfd6e4;line-height:1.75;margin:0 0 12px}
.cx-intro h2,.cx-h{font:700 26px 'Playfair Display',Georgia,serif;margin:18px 0 10px}
.cx-h{margin:40px 0 14px}
.cx-out{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.cx-out li{position:relative;padding-left:28px;color:#d5dbe7;line-height:1.6}
.cx-out li:before{content:"";position:absolute;left:4px;top:7px;width:12px;height:7px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}

.cx-mod{border:1px solid var(--line);border-radius:22px;background:linear-gradient(160deg,#e9bd7806,#0a0d16 40%);margin-bottom:14px;overflow:hidden}
.cx-mod header{position:relative;padding:20px 22px 14px}
.cx-mod header span{font:500 10px 'DM Mono',monospace;letter-spacing:2px;color:var(--gold)}
.cx-mod h3{font:700 22px 'Playfair Display',Georgia,serif;margin:6px 0 4px}
.cx-mod header p{margin:0;color:#aab4c5;font-size:14px;line-height:1.6;padding-right:60px}
.cx-mprog{position:absolute;right:22px;top:20px;font:500 11px 'DM Mono',monospace;color:var(--muted)}
.cx-mprog.full{color:#3ddc84}
.cx-mod ol{list-style:none;margin:0;padding:0 10px 10px}
.cx-les{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"k t m" "k s m";gap:2px 14px;align-items:center;padding:12px 14px;border-radius:14px;transition:background .2s}
.cx-les:hover{background:#ffffff08}
.cx-k{grid-area:k;font:500 9.5px 'DM Mono',monospace;letter-spacing:1.2px;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:6px 8px;min-width:84px;text-align:center}
.cx-k.lab{color:var(--gold);border-color:#e9bd7855}
.cx-les b{grid-area:t;font-size:15px;color:#eef2f8}
.cx-les small{grid-area:s;color:#9aa3b5;font-size:13px;line-height:1.5}
.cx-les i{grid-area:m;font:500 11px 'DM Mono',monospace;color:var(--muted);font-style:normal;white-space:nowrap}
.cx-tick{display:none}
.cx-les.done .cx-k{border-color:#3ddc8466;color:#3ddc84}
.cx-les.done i{color:#3ddc84}
.cx-les.done i:before{content:"✓ "}
.cx-page.sealed .cx-les i:before{content:"🔒 ";filter:grayscale(1)}

.cx-side{position:sticky;top:100px}
.cx-assess{padding:24px;border:1px solid #e9bd7844;border-radius:22px;background:radial-gradient(circle at 50% 0,#e9bd7812,transparent 60%),#0a0d16}
.cx-assess h2{font:700 24px/1.2 'Playfair Display',Georgia,serif;margin:10px 0 14px}
.cx-req{list-style:none;counter-reset:r;padding:0;margin:0;display:grid;gap:12px}
.cx-req li{counter-increment:r;position:relative;padding-left:36px;display:flex;flex-direction:column;gap:2px}
.cx-req li:before{content:counter(r);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;border:1px solid #e9bd7866;color:var(--gold);font:700 12px 'Playfair Display',serif;display:grid;place-items:center}
.cx-req b{font-size:14px;color:#eef2f8}
.cx-req span{font-size:12.5px;color:#9aa3b5;line-height:1.5}
.cx-astate{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.cx-astate:empty{display:none}
.cx-astate p{margin:0 0 10px;font-size:14px;color:#cfd6e4;line-height:1.6}
.cx-astate .button{width:100%;justify-content:center;border:0;cursor:pointer;margin-top:8px}
.cx-astate .button-glass{border:1px solid var(--line)}
.cx-atts{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:6px}
.cx-atts li{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:#aab4c5;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.cx-atts li b{font-weight:800}
.cx-atts .passed b{color:#3ddc84}.cx-atts .failed b{color:#ff8a8a}.cx-atts .review b{color:var(--gold)}
.cx-feedback{font-size:13px!important;padding:10px 12px;border-left:2px solid var(--gold);background:#e9bd7808;border-radius:0 10px 10px 0}
.cx-fee{margin:14px 0 0;font-size:12.5px;color:var(--muted)}

/* ---------- Lesson reader ---------- */
.cx-reader{max-width:800px;padding:26px 0 80px}
.cx-rbar{position:sticky;top:76px;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;background:linear-gradient(#05070d,#05070de6 70%,#05070d00);font-size:13px}
.cx-rbar a{color:var(--muted)}.cx-rbar a:hover{color:var(--text)}
.cx-rpos{font:500 11px 'DM Mono',monospace;color:var(--muted)}
.cx-reader .cx-rtitle{font:700 clamp(32px,5vw,50px)/1.08 'Playfair Display',Georgia,serif;letter-spacing:-1px;margin:12px 0 0}
.cx-rbody{min-height:40vh}
.cx-rbody .fn-gate{margin-top:10px}
.cx-rfoot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.cx-rfoot .button{border:0;cursor:pointer}.cx-rfoot .button-glass{border:1px solid var(--line)}
.cx-rfoot button[hidden]{display:none}
.cx-loading{color:var(--muted);padding:40px 0}

/* Lesson building blocks */
.cx-rule{margin:24px 0;padding:18px 20px;border-left:3px solid var(--gold);background:#e9bd780a;border-radius:0 16px 16px 0}
.cx-rule b{font:500 10px 'DM Mono',monospace;letter-spacing:1.8px;color:var(--gold);text-transform:uppercase}
.cx-rule p{margin:6px 0 0!important;color:#f3e7cc!important;font:600 17px/1.6 'Playfair Display',Georgia,serif!important}
.cx-example{margin:24px 0;padding:20px;border:1px solid var(--line);border-radius:18px;background:#ffffff04}
.cx-example .cx-tag{display:block;font:500 10px 'DM Mono',monospace;letter-spacing:1.8px;color:var(--gold)}
.cx-example>b{display:block;font:700 19px 'Playfair Display',Georgia,serif;margin:6px 0 8px}
.cx-example p:last-child{margin-bottom:0}
.cx-take{margin:30px 0 0;padding:18px 20px;border:1px solid #3ddc8444;border-radius:16px;background:#3ddc8408}
.cx-take b{font:500 10px 'DM Mono',monospace;letter-spacing:1.8px;color:#3ddc84;text-transform:uppercase}
.cx-take ul{margin:8px 0 0;padding-left:18px}
.cx-take li{font-size:15px!important;line-height:1.7!important}
.fn-ol{padding-left:22px}
.cx-tablewrap{overflow-x:auto;margin:20px 0;border:1px solid var(--line);border-radius:14px}
.cx-table{width:100%;border-collapse:collapse;font-size:14px;min-width:480px}
.cx-table th{text-align:left;font:500 10px 'DM Mono',monospace;letter-spacing:1.4px;color:var(--gold);text-transform:uppercase;padding:12px 14px;border-bottom:1px solid var(--line);background:#ffffff05}
.cx-table td{padding:11px 14px;border-bottom:1px solid #ffffff0c;color:#d5dbe7;vertical-align:top;line-height:1.55}
.cx-table tr:last-child td{border-bottom:0}
.cx-timeline{list-style:none;margin:20px 0;padding:0 0 0 18px;border-left:1px solid #e9bd7855}
.cx-timeline li{position:relative;padding:0 0 16px 18px}
.cx-timeline li:before{content:"";position:absolute;left:-23px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #e9bd7822}
.cx-timeline time{font:500 11px 'DM Mono',monospace;color:var(--gold);letter-spacing:.6px}
.cx-timeline p{margin:4px 0 0!important;font-size:15px!important}
.cx-order{margin:22px 0;padding:20px;border:1px solid #e9bd7833;border-radius:18px;background:#0a0d16}
.cx-order ol{list-style:none;counter-reset:o;padding:0;margin:0;display:grid;gap:8px}
.cx-order li{counter-increment:o;display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:14.5px;color:#d5dbe7}
.cx-order li:before{content:counter(o);font:700 14px 'Playfair Display',serif;color:var(--gold);min-width:16px}
.cx-order li span:first-child{flex:1}
.cx-order li.right{border-color:#3ddc84}.cx-order li.wrong{border-color:#ff6b6b}
.cx-mv{display:flex;gap:4px}
.cx-mv button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#ffffff08;color:var(--text);cursor:pointer;font-size:14px}
.cx-mv button:hover{border-color:var(--gold);color:var(--gold)}

/* Exhibits: simulated documents, posts and records */
.cx-doc{margin:20px 0;border:1px solid #ffffff1c;border-radius:16px;overflow:hidden;background:#0d111c;box-shadow:0 14px 40px #0006}
.cx-doc figcaption{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:12px 16px;border-bottom:1px solid #ffffff12;background:#ffffff06}
.cx-kind{grid-row:span 2;font:500 9px 'DM Mono',monospace;letter-spacing:1.4px;color:#17130d;background:var(--gold);border-radius:6px;padding:5px 7px}
.cx-doc figcaption b{font-size:14.5px;color:#f2f5fb}
.cx-doc figcaption small{font:500 11px 'DM Mono',monospace;color:var(--muted)}
.cx-docbody{padding:14px 18px}
.cx-docbody p,.cx-docbody li{font-size:14.5px!important;line-height:1.65!important;margin:0 0 8px}
.cx-docbody p:last-child{margin-bottom:0}
.cx-docbody svg{display:block;width:100%;height:auto;border-radius:10px}
.cx-document .cx-docbody,.cx-record .cx-docbody{background:#f4efe3;color:#2c2a26}
.cx-document .cx-docbody p,.cx-document .cx-docbody li,.cx-record .cx-docbody p,.cx-record .cx-docbody li{color:#2c2a26!important;font-family:Georgia,'Playfair Display',serif}
.cx-document .cx-docbody b,.cx-record .cx-docbody b{color:#0f1d3d}
.cx-document .cx-docbody code,.cx-record .cx-docbody code{background:#0f1d3d12;color:#0f1d3d}
.cx-record .cx-docbody{font-family:'DM Mono',monospace}
.cx-post .cx-docbody{background:#101625}
.cx-message .cx-docbody{background:#0e1a14}
.cx-message .cx-docbody p{background:#1f3a2c;border-radius:12px 12px 12px 4px;padding:9px 12px;display:inline-block;max-width:92%}
.cx-transcript .cx-docbody p{font-family:'DM Mono',monospace;font-size:13px!important}
.cx-doc mark,.fn-body mark{background:#e9bd7840;color:inherit;border-radius:3px;padding:0 2px}
.cx-doc table{width:100%;border-collapse:collapse;font-size:13px}
.cx-doc td,.cx-doc th{border:1px solid #0000001f;padding:6px 8px;text-align:left}

/* ---------- Assessment room ---------- */
.cx-exam{max-width:920px;padding:30px 0 120px}
.cx-xhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}
.cx-xhead h1{font:700 clamp(28px,4.4vw,44px)/1.1 'Playfair Display',Georgia,serif;margin:10px 0 0}
.cx-xhead p{margin:8px 0 0;color:#aab4c5;font-size:14.5px;max-width:620px;line-height:1.6}
.cx-xtabs{position:sticky;top:76px;z-index:20;display:flex;gap:6px;flex-wrap:wrap;padding:12px 0;background:#05070df2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.cx-xtabs button{border:1px solid var(--line);background:none;color:#aab4c5;border-radius:99px;padding:9px 14px;font:700 13px Manrope,sans-serif;cursor:pointer}
.cx-xtabs button.on{border-color:var(--gold);color:#17130d;background:var(--gold)}
.cx-xtabs button small{font:500 10.5px 'DM Mono',monospace;margin-left:6px;opacity:.8}
.cx-part{padding-top:20px}
.cx-part>h2{font:700 26px 'Playfair Display',Georgia,serif;margin:6px 0 6px}
.cx-part>p{color:#aab4c5;line-height:1.65;margin:0 0 18px}
.cx-qs{list-style:none;padding:0;margin:0;display:grid;gap:14px;counter-reset:q}
.cx-q{counter-increment:q;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:#0a0d16}
.cx-q.answered{border-color:#e9bd7844}
.cx-q>p{margin:0 0 12px;font-weight:700;color:#f2f5fb;line-height:1.55}
.cx-q>p:before{content:counter(q) ". ";color:var(--gold);font-family:'Playfair Display',serif}
.cx-opts{display:grid;gap:8px}
.cx-opt{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff05;color:#d5dbe7;font:600 14.5px/1.5 Manrope,sans-serif;cursor:pointer}
.cx-opt:before{content:"";flex:none;width:16px;height:16px;margin-top:3px;border-radius:50%;border:2px solid #ffffff40}
.cx-opt.on{border-color:var(--gold);background:#e9bd7812;color:#fff}
.cx-opt.on:before{border-color:var(--gold);background:radial-gradient(circle,var(--gold) 45%,transparent 50%)}
.cx-tasking{padding:20px;border:1px solid #e9bd7844;border-radius:18px;background:#e9bd7808;margin-bottom:20px}
.cx-tasking b{font:500 10px 'DM Mono',monospace;letter-spacing:1.8px;color:var(--gold)}
.cx-tasking p{color:#e4e8f0;line-height:1.7;margin:8px 0 0}
.cx-ev{margin-bottom:18px}
.cx-ev .cx-doc{margin:0}
.cx-grade{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 2px 0}
.cx-grade span{font:500 10px 'DM Mono',monospace;letter-spacing:1.2px;color:var(--muted);margin-right:4px}
.cx-choice{border:1px solid var(--line);background:none;color:#aab4c5;border-radius:99px;padding:8px 12px;font:700 12.5px Manrope,sans-serif;cursor:pointer}
.cx-choice.on{border-color:var(--gold);background:var(--gold);color:#17130d}
.cx-find{padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:#0a0d16;margin-bottom:10px}
.cx-find>p{margin:0;color:#eef2f8;font-weight:700;line-height:1.55}
.cx-sub{font:700 20px 'Playfair Display',Georgia,serif;margin:30px 0 6px}
.cx-subp{color:#9aa3b5;font-size:14px;margin:0 0 14px;line-height:1.6}
.cx-text{margin:14px 0}
.cx-text label{display:block;font-weight:800;color:#eef2f8;margin-bottom:4px}
.cx-text small{display:block;color:#9aa3b5;font-size:13px;line-height:1.5;margin-bottom:8px}
.cx-text textarea{width:100%;min-height:180px;padding:14px;border-radius:14px;border:1px solid var(--line);background:#070a12;color:var(--text);font:500 15px/1.6 Manrope,sans-serif;resize:vertical}
.cx-text textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px #e9bd7826}
.cx-count{display:block;text-align:right;font:500 11px 'DM Mono',monospace;color:var(--muted);margin-top:4px}
.cx-count.ok{color:#3ddc84}
.cx-xbar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:12px max(16px,calc((100vw - 920px)/2));display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#05070df5;border-top:1px solid #e9bd7833;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.cx-xbar span{font:500 12px 'DM Mono',monospace;color:#aab4c5}
.cx-xbar .cx-saved{color:var(--muted)}
.cx-xbar .button{border:0;cursor:pointer}
.cx-xbar .button-glass{border:1px solid var(--line)}
.cx-result{text-align:center;padding:40px 24px;border:1px solid #e9bd7844;border-radius:26px;background:radial-gradient(circle at 50% 0,#e9bd7816,transparent 60%),#0a0d16;margin-top:24px}
.cx-result h2{font:700 clamp(30px,5vw,44px) 'Playfair Display',Georgia,serif;margin:12px 0 8px}
.cx-result>p{color:#cfd6e4;max-width:560px;margin:0 auto 18px;line-height:1.65}
.cx-scores{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px 0}
.cx-scores div{min-width:150px;padding:16px;border:1px solid var(--line);border-radius:16px}
.cx-scores b{display:block;font:700 40px 'Playfair Display',serif;color:#f3e7cc}
.cx-scores .ok b{color:#3ddc84}.cx-scores .no b{color:#ff8a8a}
.cx-scores small{font:500 10px 'DM Mono',monospace;letter-spacing:1.4px;color:var(--muted)}
.cx-break{list-style:none;padding:0;margin:0 auto 20px;max-width:560px;display:grid;gap:6px;text-align:left}
.cx-break li{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:#aab4c5;padding:8px 12px;border:1px solid var(--line);border-radius:10px}
.cx-result .pg-ctas{justify-content:center}
.cx-result .button{border:0;cursor:pointer}.cx-result .button-glass{border:1px solid var(--line)}

@media (max-width:980px){
  .cx-grid{grid-template-columns:1fr}
  .cx-side{position:static;order:-1}
}
@media (max-width:760px){
  .cx-rbar,.cx-xtabs{top:66px}
  .cx-xtabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .cx-xtabs::-webkit-scrollbar{display:none}
  .cx-xtabs button{flex:none;padding:8px 12px;font-size:12.5px}
  .cx-xbar{padding:10px 16px}
  .cx-xbar .cx-xprog{flex-basis:100%;font-size:11px}
  .cx-xbar .cx-saved{font-size:11px}
  .cx-xbar .button{padding:10px 16px;min-height:0}
  .cx-les{grid-template-columns:1fr auto;grid-template-areas:"k m" "t t" "s s"}
  .cx-k{justify-self:start;min-width:0}
  .cx-mod header p{padding-right:0}
  .cx-hero{padding-top:34px}
}
:root:has(body.cx-page){scroll-padding-top:150px;scroll-padding-bottom:130px}
.cx-rbar{pointer-events:none}.cx-rbar a{pointer-events:auto}
