:root{
  --paper:#EEF0EA;
  --paper-2:#E4E8DF;
  --ink:#16232F;
  --ink-soft:#4A5A63;
  --ledger:#2F5D50;
  --ledger-tint:#E4ECE7;
  --seal:#B8862E;
  --seal-tint:#F3E6C9;
  --claim:#A23B33;
  --claim-tint:#F3E2DE;
  --line:#C7CBC0;
  --white:#FBFAF6;
  --radius:2px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Public Sans',sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces',serif;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0;
}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--seal-tint);}

/* ---------- App shell ---------- */
.app{max-width:1180px;margin:0 auto;padding:0 28px;}
.topband{
  background:var(--ink);
  color:var(--paper);
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:7px 0;
}
.topband .app{display:flex;justify-content:space-between;align-items:center;opacity:0.85;flex-wrap:wrap;gap:4px;}

header.masthead{
  border-bottom:1px solid var(--line);
  background:var(--white);
}
.masthead-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 0 0 0;
}
.brand{display:flex;align-items:baseline;gap:10px;}
.brand .mark{
  width:34px;height:34px;border-radius:50%;
  background:var(--ledger);
  display:flex;align-items:center;justify-content:center;
  color:var(--white);font-family:'Fraunces',serif;font-weight:700;font-size:16px;
  flex-shrink:0;
}
.brand-text .name{font-family:'Fraunces',serif;font-weight:700;font-size:21px;}
.brand-text .sub{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);}

.headeractions{display:flex;gap:10px;align-items:center;}
.btn{
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  padding:9px 16px;
  font-size:13px;font-weight:600;
  border-radius:var(--radius);
  transition:all .15s ease;
  display:inline-block;
}
.btn:hover{background:var(--ink);color:var(--white);}
.btn-solid{background:var(--ledger);border-color:var(--ledger);color:var(--white);}
.btn-solid:hover{background:#254a40;border-color:#254a40;}
.btn-seal{background:var(--seal);border-color:var(--seal);color:var(--white);}
.btn-seal:hover{background:#996f24;border-color:#996f24;}
.btn-sm{padding:6px 12px;font-size:12px;}

/* Folder-tab nav */
nav.tabs{display:flex;gap:4px;margin-top:18px;padding-top:8px;flex-wrap:wrap;}
nav.tabs a{
  position:relative;
  background:var(--paper-2);
  border:1px solid var(--line);
  border-bottom:none;
  padding:10px 18px 12px 18px;
  font-size:13px;font-weight:600;
  color:var(--ink-soft);
  border-radius:6px 6px 0 0;
  top:1px;
  display:inline-block;
}
nav.tabs a.active{
  background:var(--white);
  color:var(--ink);
  border-color:var(--line);
}
nav.tabs a.active::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--white);
}
nav.tabs a:not(.active):hover{color:var(--ink);}

main{background:var(--white);border-bottom:1px solid var(--line);}

section{padding:64px 0;}
section.tight{padding:44px 0;}
.rule{border:none;border-top:1px solid var(--line);margin:0;}

.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ledger);
  display:flex;align-items:center;gap:8px;
  margin-bottom:14px;
}
.eyebrow::before{content:"§";color:var(--seal);}

/* ---------- HOME ---------- */
.hero{display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:start;padding-top:56px;}
.hero h1{font-size:52px;line-height:1.04;}
.hero h1 em{font-style:italic;color:var(--ledger);}
.hero p.lede{font-size:17px;line-height:1.6;color:var(--ink-soft);max-width:46ch;margin-top:20px;}
.hero-ctas{display:flex;gap:12px;margin-top:28px;}

.ledger-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-radius:4px;
}
.ledger-card .lc-head{
  padding:14px 18px;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-soft);
}
.ledger-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 18px;border-bottom:1px solid var(--line);
  font-size:14px;
}
.ledger-row:last-child{border-bottom:none;}
.ledger-row .lr-label{color:var(--ink-soft);}
.ledger-row .lr-val{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:15px;}
.ledger-row .lr-val.seal{color:var(--seal);}
.ledger-row .lr-val.ledger{color:var(--ledger);}

.track-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:36px;}
.track-card{
  border:1px solid var(--line);padding:20px;border-radius:4px;background:var(--paper);
  display:flex;flex-direction:column;gap:8px;
}
.track-card .tc-tag{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ledger);}
.track-card h3{font-size:18px;font-weight:600;}
.track-card p{font-size:13.5px;color:var(--ink-soft);margin:0;line-height:1.5;}

.stat-ledger{
  margin-top:20px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);
}
.stat-row{
  display:grid;grid-template-columns:1fr auto auto;gap:24px;
  padding:13px 0;border-bottom:1px solid var(--line);
  font-family:'IBM Plex Mono',monospace;font-size:13px;align-items:baseline;
}
.stat-row:last-child{border-bottom:none;}
.stat-row .sr-num{font-size:20px;font-weight:600;color:var(--ink);}
.stat-row .sr-suffix{color:var(--ink-soft);font-size:11px;}

.split{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
.split h2{font-size:30px;line-height:1.15;}
.split p{color:var(--ink-soft);font-size:15px;line-height:1.65;margin-top:16px;max-width:48ch;}

.paths{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px;}
.path-card{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--white);}
.path-card .pc-band{padding:10px 18px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;}
.path-card.free .pc-band{background:var(--ledger-tint);color:var(--ledger);}
.path-card.paid .pc-band{background:var(--seal-tint);color:#8a611f;}
.path-card .pc-body{padding:20px 18px;}
.path-card h3{font-size:20px;}
.path-card p{color:var(--ink-soft);font-size:14px;margin-top:10px;line-height:1.55;}
.path-card ul{margin:16px 0 0 0;padding:0;list-style:none;font-size:13.5px;}
.path-card li{padding:6px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;}
.path-card li .mono{color:var(--ink-soft);}

footer{padding:36px 0;font-size:12.5px;color:var(--ink-soft);}
footer .app{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;}

/* ---------- BLOG ---------- */
.blog-grid{display:grid;grid-template-columns:2fr 1fr;gap:48px;margin-top:32px;}
.post{border-bottom:1px solid var(--line);padding:26px 0;}
.post:first-child{padding-top:0;}
.post .p-meta{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-soft);letter-spacing:0.04em;text-transform:uppercase;margin-bottom:8px;}
.post h3{font-size:22px;font-weight:600;line-height:1.25;}
.post p{color:var(--ink-soft);font-size:14.5px;margin-top:10px;line-height:1.6;}
.post .p-read{margin-top:10px;font-size:13px;font-weight:600;color:var(--ledger);}
.side-block{border:1px solid var(--line);border-radius:4px;padding:20px;margin-bottom:20px;background:var(--paper);}
.side-block h4{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px;}
.tag-pill{display:inline-block;border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:12px;margin:0 6px 6px 0;background:var(--white);}

/* ---------- COURSES ---------- */
.filter-row{display:flex;gap:8px;margin:28px 0 0 0;flex-wrap:wrap;}
.filter-chip{border:1px solid var(--line);background:var(--white);padding:7px 14px;border-radius:20px;font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;}
.filter-chip.on{background:var(--ink);color:var(--white);border-color:var(--ink);}

.course-list{margin-top:24px;border-top:1px solid var(--ink);}
.course-row{
  display:grid;grid-template-columns:auto 1fr auto auto auto;gap:20px;align-items:center;
  padding:18px 0;border-bottom:1px solid var(--line);
}
.course-idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-soft);width:34px;}
.course-title{font-weight:600;font-size:15.5px;}
.course-sub{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.badge{
  font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.05em;text-transform:uppercase;
  padding:4px 9px;border-radius:20px;white-space:nowrap;
}
.badge.free{background:var(--ledger-tint);color:var(--ledger);}
.badge.paid{background:var(--seal-tint);color:#8a611f;}
.badge.ceu{background:#EFE7F5;color:#6B4A8A;}
.badge-row{display:flex;gap:6px;flex-wrap:wrap;}
.course-price{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;text-align:right;min-width:70px;}

/* ---------- TRAINING ROOM ---------- */
.room-shell{display:grid;grid-template-columns:260px 1fr;min-height:520px;border-top:1px solid var(--ink);}
.room-side{border-right:1px solid var(--line);padding:24px 18px;background:var(--paper);}
.learner{display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--seal);color:white;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Fraunces',serif;}
.learner .lname{font-weight:700;font-size:14px;}
.learner .lrole{font-size:11.5px;color:var(--ink-soft);}
.side-nav a{display:block;padding:9px 10px;border-radius:4px;font-size:13.5px;font-weight:600;color:var(--ink-soft);margin-bottom:2px;}
.side-nav a.on{background:var(--white);color:var(--ink);border:1px solid var(--line);}
.room-main{padding:28px 32px;}
.progress-card{border:1px solid var(--line);border-radius:4px;padding:18px 20px;margin-bottom:14px;background:var(--white);}
.pc-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;}
.pc-top h4{font-size:15.5px;font-weight:600;}
.pc-top .pc-pct{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ledger);font-weight:600;}
.bar{height:6px;background:var(--paper-2);border-radius:4px;overflow:hidden;}
.bar-fill{height:100%;background:var(--ledger);}
.pc-meta{display:flex;gap:14px;margin-top:10px;font-size:12px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;flex-wrap:wrap;}

/* login form */
.login-shell{display:flex;justify-content:center;padding:64px 0;}
.login-card{width:100%;max-width:380px;border:1px solid var(--line);border-radius:4px;background:var(--paper);padding:32px;}
.login-card h2{font-size:24px;margin-bottom:6px;}
.login-card p.sub{color:var(--ink-soft);font-size:13.5px;margin:0 0 22px 0;}
.field{margin-bottom:16px;}
.field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--ink-soft);margin-bottom:6px;}
.field input{width:100%;border:1px solid var(--line);border-radius:3px;padding:10px 12px;font-size:14px;background:var(--white);font-family:inherit;}
.field input:focus{outline:2px solid var(--ledger);outline-offset:1px;}

/* course player */
.player-shell{display:grid;grid-template-columns:1fr 300px;gap:0;border-top:1px solid var(--ink);}
.player-main{padding:28px 32px;}
.player-video{aspect-ratio:16/9;background:linear-gradient(135deg,#1B2A3D,#2F5D50);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--white);position:relative;}
.play-btn{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,0.15);border:1.5px solid rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;}
.play-btn::after{content:"";border-left:14px solid white;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px;}
.lesson-tag{position:absolute;top:14px;left:14px;font-family:'IBM Plex Mono',monospace;font-size:10.5px;background:rgba(0,0,0,0.35);padding:4px 10px;border-radius:20px;letter-spacing:0.05em;}
.player-sidebar{border-left:1px solid var(--line);background:var(--paper);}
.module{border-bottom:1px solid var(--line);}
.module-head{padding:14px 18px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);}
.lesson-item{display:flex;align-items:center;gap:10px;padding:11px 18px;font-size:13px;border-top:1px solid var(--line);}
.lesson-item:first-child{border-top:none;}
.lesson-item.current{background:var(--white);font-weight:700;}
.dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;}
.dot.done{background:var(--ledger);border-color:var(--ledger);color:white;}
.dot.current{border-color:var(--seal);}

/* ---------- CERTIFICATE ---------- */
.cert-wrap{display:flex;justify-content:center;padding:56px 0;}
.certificate{
  width:100%;max-width:820px;border:3px double var(--ink);padding:50px 60px;background:var(--white);
  position:relative;text-align:center;
}
.certificate::before{
  content:"";position:absolute;inset:10px;border:1px solid var(--line);pointer-events:none;
}
.cert-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft);}
.cert-title{font-family:'Fraunces',serif;font-size:34px;margin-top:14px;}
.cert-name{font-family:'Fraunces',serif;font-style:italic;font-size:30px;color:var(--ledger);margin-top:26px;border-bottom:1px solid var(--line);display:inline-block;padding-bottom:8px;}
.cert-body{margin-top:20px;font-size:14.5px;color:var(--ink-soft);line-height:1.7;max-width:52ch;margin-left:auto;margin-right:auto;}
.cert-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:46px;flex-wrap:wrap;gap:20px;}
.cert-sig{text-align:left;}
.cert-sig .line{border-top:1px solid var(--ink);width:180px;margin-bottom:6px;}
.cert-sig .cap{font-size:11px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;letter-spacing:0.04em;}
.seal-stamp{
  width:96px;height:96px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #cd9c44, var(--seal) 70%);
  color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;
  font-family:'IBM Plex Mono',monospace;transform:rotate(-8deg);
  box-shadow:0 4px 14px rgba(184,134,46,0.4);
  border:2px solid #8a611f;
  margin:0 auto;
}
.seal-stamp .ss-top{font-size:8px;letter-spacing:0.08em;}
.seal-stamp .ss-num{font-size:18px;font-weight:700;}
.seal-stamp .ss-bot{font-size:7px;letter-spacing:0.06em;}
.cert-idnum{margin-top:36px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-soft);}

/* ---------- ADMIN / PROVIDER DASHBOARD ---------- */
.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:28px;}
.kpi{border:1px solid var(--line);border-radius:4px;padding:16px 18px;background:var(--paper);}
.kpi .k-label{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-soft);}
.kpi .k-val{font-family:'Fraunces',serif;font-size:28px;margin-top:8px;}
.kpi .k-note{font-size:11.5px;color:var(--ledger);margin-top:4px;}

.vendor-table{margin-top:32px;border-top:1px solid var(--ink);}
.vt-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center;font-size:13.5px;}
.vt-head{font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:0.06em;color:var(--ink-soft);}
.status-pill{font-family:'IBM Plex Mono',monospace;font-size:10.5px;padding:4px 10px;border-radius:20px;text-transform:uppercase;letter-spacing:0.04em;display:inline-block;}
.status-pill.approved{background:var(--ledger-tint);color:var(--ledger);}
.status-pill.pending{background:var(--seal-tint);color:#8a611f;}
.status-pill.draft{background:var(--paper-2);color:var(--ink-soft);}

section h2.section-title{font-size:28px;}

.noindex-banner{background:var(--claim-tint);color:var(--claim);font-family:'IBM Plex Mono',monospace;font-size:11.5px;padding:10px 0;text-align:center;letter-spacing:0.03em;}

/* ---------- Dynamic-site additions ---------- */
.course-row-link{display:contents;}
a.course-row-link:hover .course-row{background:var(--paper);}
.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:3px;padding:10px 12px;font-size:14px;background:var(--white);font-family:inherit;}
.field textarea{resize:vertical;}
.field label{cursor:pointer;}
.field label input[type="checkbox"]{width:auto;margin-right:8px;}
.form-error{color:var(--claim);font-size:13px;margin-bottom:14px;}
.form-actions{display:flex;gap:10px;margin-top:8px;align-items:center;}
form.inline-form{display:inline-block;margin:0;}

@media (max-width:860px){
  .hero,.split,.blog-grid,.room-shell,.player-shell,.admin-grid,.paths,.track-strip,.cert-footer{grid-template-columns:1fr;}
  .room-side{border-right:none;border-bottom:1px solid var(--line);}
  .player-sidebar{border-left:none;border-top:1px solid var(--line);}
  nav.tabs{overflow-x:auto;}
  .hero h1{font-size:36px;}
}
