/* ============================================================
   GOLD ACADEMY — mobile-first styles
   ============================================================ */
:root{
  --bg:#15120e;
  --bg-2:#1f1a13;
  --card:#272015;
  --card-2:#2f2718;
  --line:#3a3020;
  --gold:#e6c667;
  --gold-deep:#c8a24b;
  --gold-soft:#f4e3a8;
  --cream:#f5efe2;
  --txt:#f3ead7;
  --txt-dim:#b3a685;
  --green:#5fd08a;
  --red:#e8736b;
  --shadow:0 10px 30px rgba(0,0,0,.45);
  --radius:20px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:radial-gradient(1200px 600px at 50% -10%, #2a2114 0%, var(--bg) 55%);
  color:var(--txt);
  min-height:100vh;min-height:100dvh;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
#app{max-width:520px;margin:0 auto;position:relative}
.hidden{display:none !important}

/* ---------- screens ---------- */
.screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;
  padding:0 18px calc(24px + env(safe-area-inset-bottom));animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;
  padding:calc(14px + env(safe-area-inset-top)) 2px 12px;position:sticky;top:0;z-index:5;
  background:linear-gradient(var(--bg) 70%, transparent)}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{font-weight:800;font-size:13px;letter-spacing:1px;color:#1a1409;
  background:linear-gradient(135deg,var(--gold-soft),var(--gold-deep));
  padding:5px 8px;border-radius:8px}
.brand-name{font-weight:700;letter-spacing:.3px}
.stats{display:flex;gap:12px;font-size:15px}
.stat b{color:var(--gold-soft)}

/* ---------- hero ---------- */
.hero{padding:8px 4px 6px}
.hero-rank{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--gold-deep);border:1px solid var(--line);
  padding:4px 10px;border-radius:99px;margin-bottom:14px}
.hero-title{font-size:30px;line-height:1.12;margin:0 0 8px;font-weight:800}
.grad{background:linear-gradient(135deg,var(--gold-soft),var(--gold-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{margin:0 0 18px;color:var(--txt-dim);font-size:15px;line-height:1.5}

.progress-wrap{margin:6px 0 4px}
.progress-track{height:12px;background:#2a2316;border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.progress-fill{height:100%;width:0;border-radius:99px;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft));transition:width .5s ease}
.progress-label{font-size:12.5px;color:var(--txt-dim);margin-top:8px;text-align:center}
.progress-label span{color:var(--gold-soft);font-weight:700}

/* ---------- path ---------- */
.section-title{font-size:13px;text-transform:uppercase;letter-spacing:1.5px;
  color:var(--txt-dim);margin:22px 4px 12px}
.path{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.node{display:flex;align-items:center;gap:14px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;
  cursor:pointer;transition:transform .12s ease,border-color .2s;position:relative;overflow:hidden}
.node:active{transform:scale(.985)}
.node.done{border-color:rgba(95,208,138,.4)}
.node.locked{opacity:.5}
.node-ico{font-size:26px;width:46px;height:46px;display:grid;place-items:center;
  background:var(--card-2);border-radius:14px;flex:0 0 auto}
.node.done .node-ico{background:rgba(95,208,138,.12)}
.node-txt{flex:1;min-width:0}
.node-title{font-weight:700;font-size:16px;margin-bottom:2px}
.node-blurb{font-size:13px;color:var(--txt-dim);line-height:1.35}
.node-badge{font-size:13px;font-weight:700;flex:0 0 auto}
.node-badge.check{color:var(--green)}
.node-badge.go{color:var(--gold-soft)}
.node-badge.lock{color:var(--txt-dim)}
.node-bar{position:absolute;left:0;bottom:0;height:3px;background:var(--gold-deep);width:0;transition:width .4s}

/* ---------- buttons ---------- */
.btn{border:none;border-radius:14px;font-size:16px;font-weight:700;padding:15px 18px;
  cursor:pointer;width:100%;transition:transform .1s ease,filter .2s}
.btn:active{transform:scale(.97)}
.btn-primary{background:linear-gradient(135deg,var(--gold-soft),var(--gold-deep));color:#1a1409}
.btn-ghost{background:var(--card);color:var(--txt);border:1px solid var(--line)}
.icon-btn{background:var(--card);border:1px solid var(--line);color:var(--txt);
  width:40px;height:40px;border-radius:12px;font-size:24px;line-height:1;cursor:pointer}
.home-cta{display:flex;gap:10px;margin-top:22px}
.home-cta .btn{font-size:14px;padding:13px}
.foot{text-align:center;color:#6b6049;font-size:11px;margin-top:26px}

/* ---------- lesson ---------- */
.lesson-bar{gap:12px}
.lesson-emoji{font-size:24px}
.lesson-progress-track,.swipe-score{flex:1}
.lesson-progress-track{height:10px;background:#2a2316;border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.lesson-progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft));
  border-radius:99px;transition:width .35s ease}
.lesson-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:10px 6px}
.lesson-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 22px;box-shadow:var(--shadow);animation:pop .3s ease}
@keyframes pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.lesson-card h3{font-size:23px;margin:0 0 14px;color:var(--gold-soft);line-height:1.2}
.lesson-card p{font-size:17px;line-height:1.6;margin:0;color:var(--txt)}
.lesson-card b{color:var(--gold-soft)}
.lesson-count{text-align:center;color:var(--txt-dim);font-size:13px;margin-top:16px}
.lesson-foot{padding-top:14px}

/* ---------- swipe game ---------- */
.swipe-instructions{display:flex;justify-content:space-between;padding:4px 10px 10px;font-size:12px;
  font-weight:800;letter-spacing:1px}
.swipe-hint.left{color:var(--red)}
.swipe-hint.right{color:var(--green)}
.deck{position:relative;flex:1;min-height:380px;display:grid;place-items:center}
.swipe-card{position:absolute;width:100%;max-width:340px;height:380px;background:linear-gradient(160deg,var(--card-2),var(--card));
  border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:28px;touch-action:none;will-change:transform;cursor:grab}
.swipe-card .sc-emoji{font-size:74px;margin-bottom:14px}
.swipe-card .sc-item{font-size:21px;font-weight:700;margin-bottom:18px;line-height:1.3}
.swipe-card .sc-clue{font-size:15px;font-weight:700;color:#1a1409;background:var(--gold-soft);
  padding:8px 16px;border-radius:99px;letter-spacing:.5px}
.swipe-stamp{position:absolute;top:26px;font-size:26px;font-weight:900;letter-spacing:2px;
  padding:6px 14px;border:4px solid;border-radius:12px;opacity:0;transform:rotate(-12deg)}
.swipe-stamp.buy{right:22px;color:var(--green);border-color:var(--green)}
.swipe-stamp.reject{left:22px;color:var(--red);border-color:var(--red)}
.swipe-buttons{display:flex;justify-content:center;gap:34px;padding:18px 0 6px}
.round-btn{width:68px;height:68px;border-radius:50%;border:2px solid;font-size:28px;font-weight:800;
  background:var(--card);cursor:pointer;transition:transform .12s ease}
.round-btn:active{transform:scale(.9)}
.round-btn.reject{color:var(--red);border-color:var(--red)}
.round-btn.buy{color:var(--green);border-color:var(--green)}
.swipe-feedback{position:fixed;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;
  background:var(--card-2);border-top:1px solid var(--line);padding:20px 22px calc(24px + env(safe-area-inset-bottom));
  border-radius:22px 22px 0 0;box-shadow:0 -10px 30px rgba(0,0,0,.5);animation:slideUp .25s ease;z-index:20}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:none}}
.swipe-feedback .fb-verdict{font-size:18px;font-weight:800;margin-bottom:6px}
.swipe-feedback.correct .fb-verdict{color:var(--green)}
.swipe-feedback.wrong .fb-verdict{color:var(--red)}
.swipe-feedback .fb-why{font-size:15px;line-height:1.5;color:var(--txt);margin-bottom:14px}

/* ---------- quiz ---------- */
.quiz-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:10px 4px}
.quiz-q{font-size:22px;font-weight:700;line-height:1.35;margin:0 0 22px;color:var(--txt)}
.quiz-q b{color:var(--gold-soft)}
.quiz-opts{display:flex;flex-direction:column;gap:12px}
.quiz-opt{background:var(--card);border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;
  font-size:16px;font-weight:600;text-align:left;color:var(--txt);cursor:pointer;transition:all .15s}
.quiz-opt:active{transform:scale(.98)}
.quiz-opt.correct{border-color:var(--green);background:rgba(95,208,138,.14);color:var(--green)}
.quiz-opt.wrong{border-color:var(--red);background:rgba(232,115,107,.14);color:var(--red)}
.quiz-opt.dim{opacity:.5}
.quiz-why{margin-top:18px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--gold-deep);
  border-radius:12px;padding:14px 16px;font-size:15px;line-height:1.5;color:var(--txt-dim);animation:pop .25s}
.quiz-why b{color:var(--gold-soft)}
.quiz-next{margin-top:18px}

/* ---------- result ---------- */
#screen-result{justify-content:center;align-items:center}
.result-card{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:26px;
  padding:40px 28px;box-shadow:var(--shadow);width:100%;animation:pop .3s ease}
.result-emoji{font-size:72px;margin-bottom:8px;animation:bounce .6s ease}
@keyframes bounce{0%{transform:scale(0)}60%{transform:scale(1.2)}100%{transform:scale(1)}}
.result-card h2{margin:6px 0;font-size:26px}
.result-card p{color:var(--txt-dim);margin:0 0 18px;font-size:16px}
.result-xp{display:inline-block;font-weight:800;font-size:20px;color:#1a1409;
  background:linear-gradient(135deg,var(--gold-soft),var(--gold-deep));
  padding:8px 20px;border-radius:99px;margin-bottom:26px}

/* ---------- path node meta (assessment tags) ---------- */
.node-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.tag{font-size:10px;font-weight:800;letter-spacing:1px;padding:3px 8px;border-radius:99px}
.tag-quiz{color:#8fd6ff;border:1px solid rgba(143,214,255,.35)}
.tag-scen{color:#d9a7ff;border:1px solid rgba(217,167,255,.35)}
.node-assess{font-size:11.5px;color:var(--txt-dim)}

/* ---------- callouts ---------- */
.callout.co-danger{border-left:5px solid var(--red);background:rgba(232,115,107,.08)}
.callout.co-danger h3{color:var(--red)}
.callout.co-warn{border-left:5px solid #f0a24a;background:rgba(240,162,74,.08)}
.callout.co-warn h3{color:#f0a24a}
.callout.co-info{border-left:5px solid var(--gold);background:rgba(230,198,103,.07)}
.callout.co-know{border-left:5px solid #8fd6ff;background:rgba(143,214,255,.07)}
.callout.co-know h3{color:#8fd6ff}

/* ---------- badges ---------- */
.badge-no,.badge-ok,.badge-wn{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.8px;
  padding:3px 8px;border-radius:8px;vertical-align:middle}
.badge-no{color:#fff;background:var(--red)}
.badge-ok{color:#123c22;background:var(--green)}
.badge-wn{color:#3c2c0d;background:#f0a24a}

/* ---------- tables ---------- */
.tbl-wrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line);border-radius:12px}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{background:var(--card-2);color:var(--gold-soft);text-align:left;padding:9px 12px;font-size:12px;
  letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}
.tbl td{padding:9px 12px;border-top:1px solid var(--line);line-height:1.45;vertical-align:top}
.tbl tr td:first-child{font-weight:700;color:var(--gold-soft);white-space:nowrap}
.tbl-note{font-size:13px;color:var(--txt-dim);margin:12px 0 0;line-height:1.5}

/* ---------- flashcards ---------- */
.flash{perspective:900px;margin-top:14px;cursor:pointer}
.flash-inner{position:relative;width:100%;height:190px;transition:transform .45s;transform-style:preserve-3d}
.flash-inner.flipped{transform:rotateY(180deg)}
.flash-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:20px;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;line-height:1.5}
.flash-front{background:linear-gradient(135deg,var(--gold-soft),var(--gold-deep));color:#1a1409;
  font-size:24px;font-weight:800}
.flash-back{background:var(--card-2);border:1px solid var(--gold-deep);color:var(--txt);font-size:15px;
  transform:rotateY(180deg)}
.flash-nav{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px}
.flash-count{font-size:13px;color:var(--txt-dim);white-space:nowrap}
.btn.sm{width:auto;font-size:13px;padding:10px 14px}

/* ---------- karat slider ---------- */
.karat-vis{margin:16px 0 8px}
.karat-bar{height:26px;border-radius:99px;background:#4a4438;overflow:hidden;border:1px solid var(--line)}
.karat-fill{height:100%;width:75%;background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft));
  border-radius:99px;transition:width .2s ease}
.karat-read{text-align:center;margin-top:10px;font-size:17px}
.karat-read b{color:var(--gold-soft)}
.range{width:100%;margin-top:10px;accent-color:var(--gold);height:34px}

/* ---------- colour gallery ---------- */
.g-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.g-tile{display:flex;align-items:center;gap:9px;background:var(--card-2);border:1.5px solid var(--line);
  border-radius:12px;padding:11px 12px;color:var(--txt);font-size:13.5px;font-weight:700;cursor:pointer}
.g-tile.sel{border-color:var(--gold)}
.g-dot{width:22px;height:22px;border-radius:50%;flex:0 0 auto;border:1px solid rgba(0,0,0,.3)}
.g-desc{margin-top:12px;font-size:14.5px;line-height:1.55;color:var(--txt-dim);background:var(--card-2);
  border-radius:12px;padding:13px 14px;min-height:64px}
.g-desc b{color:var(--gold-soft)}

/* ---------- hallmark lookup ---------- */
.lk-out{margin-top:12px;background:var(--card-2);border:1px solid var(--line);border-radius:12px;
  padding:14px;font-size:15px;line-height:1.5;color:var(--txt-dim)}
.lk-out.hit{border-color:var(--green);color:var(--txt)}
.lk-out.hit b{color:var(--green)}
.lk-out.miss{border-color:var(--red);color:var(--txt)}

/* ---------- accordions (item cards / flows / acid guide) ---------- */
.accs{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.acc{background:var(--card-2);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.acc-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;color:var(--txt);
  font-size:14.5px;font-weight:700;padding:13px 14px;text-align:left;cursor:pointer}
.acc-head .acc-arrow{margin-left:auto;color:var(--txt-dim);transition:transform .2s}
.acc-head.open .acc-arrow{transform:rotate(180deg)}
.acc-ico{font-size:20px}
.acc-name{flex:1;min-width:0}
.acc-body{padding:2px 14px 14px;font-size:14px;line-height:1.6;color:var(--txt-dim)}
.acc-body b{color:var(--gold-soft)}
.flow-num{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--gold-soft),var(--gold-deep));
  color:#1a1409;font-weight:800;font-size:13px;display:grid;place-items:center;flex:0 0 auto}
.acid-dot{width:20px;height:20px;border-radius:50%;flex:0 0 auto;border:1px solid rgba(255,255,255,.25)}

/* ---------- ID points calculator ---------- */
.idc-docs{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.idc-doc{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card-2);
  border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--txt);font-size:13.5px;
  text-align:left;cursor:pointer}
.idc-doc.sel{border-color:var(--gold);background:rgba(230,198,103,.1)}
.idc-pts{font-weight:800;color:var(--gold-soft);white-space:nowrap}
.idc-total{margin-top:14px;text-align:center;font-size:15px;color:var(--txt-dim);background:var(--card-2);
  border-radius:12px;padding:12px}
.idc-total.ok{color:var(--green);border:1px solid rgba(95,208,138,.4)}
.idc-total b{color:inherit}

/* ---------- checklists ---------- */
.chks{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.chk{display:flex;gap:11px;align-items:flex-start;background:var(--card-2);border:1px solid var(--line);
  border-radius:12px;padding:12px 13px;font-size:13.5px;line-height:1.5;color:var(--txt);cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--gold);flex:0 0 auto;margin-top:1px}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------- solid/filled/plated swatches ---------- */
.cmp{display:inline-block;width:38px;height:16px;border-radius:5px;vertical-align:middle;margin-right:4px;
  border:1px solid rgba(0,0,0,.35)}
.cmp.solid{background:linear-gradient(135deg,#f4d97a,#caa23c)}
.cmp.filled{background:linear-gradient(180deg,#f4d97a 30%,#8a8f98 30%)}
.cmp.plated{background:linear-gradient(180deg,#f4d97a 12%,#8a8f98 12%)}

/* ---------- quiz extras (fill / order) ---------- */
.in-ok{border-color:var(--green) !important;color:var(--green)}
.in-bad{border-color:var(--red) !important;color:var(--red)}
.quiz-opt.picked{border-color:var(--gold);background:rgba(230,198,103,.12)}
.order-pick{font-size:13.5px;color:var(--txt-dim);margin-bottom:10px}
#quiz-body .btn.sm{margin-top:12px}
#quiz-body .cert-input{text-align:left;margin:0 0 12px}

/* ---------- scenario (chat) screen ---------- */
#screen-scenario{padding-bottom:0}
.sc-header{font-size:15px;font-weight:800;color:var(--gold-soft);padding:2px 4px 10px}
.sc-chat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 14px}
.sc-intro{background:var(--card-2);border:1px dashed var(--line);border-radius:14px;padding:13px 15px;
  font-size:13.5px;line-height:1.55;color:var(--txt-dim)}
.sc-persona{font-size:22px;margin-right:8px;vertical-align:middle}
.bub{max-width:88%;border-radius:16px;padding:12px 15px;font-size:14.5px;line-height:1.55;animation:pop .25s ease}
.bub.cust{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px}
.bub.cust .who{margin-right:7px}
.bub.staff{align-self:flex-end;background:linear-gradient(135deg,#4a3d1e,#3a2f15);border:1px solid var(--gold-deep);
  border-bottom-right-radius:6px;color:var(--gold-soft)}
.bub.narr{align-self:center;background:none;border:none;color:var(--txt-dim);font-size:13px;font-style:italic;
  text-align:center;padding:2px 10px}
.bub.coach{align-self:stretch;max-width:100%;background:rgba(232,115,107,.1);border:1px solid rgba(232,115,107,.4);
  color:var(--txt);font-size:13.5px}
.bub.coach b{color:var(--red)}
.bub.done{align-self:center;background:rgba(95,208,138,.12);border:1px solid rgba(95,208,138,.4);color:var(--green);
  font-size:13.5px}
.sc-opts{padding:12px 0 calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;
  border-top:1px solid var(--line)}
.sc-you{font-size:11.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--txt-dim)}
.sc-opt{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:13px 15px;
  font-size:14px;line-height:1.5;font-weight:600;text-align:left;color:var(--txt);cursor:pointer;transition:all .15s}
.sc-opt:active{transform:scale(.985)}
.sc-opt.sc-wrong{border-color:var(--red);color:var(--red);opacity:.55}

/* ---------- auth / gate screens ---------- */
.gate-center{justify-content:center;align-items:center}
.gate-card{width:100%;background:var(--card);border:1px solid var(--line);border-radius:26px;
  padding:32px 24px;box-shadow:var(--shadow);text-align:center;animation:pop .3s ease}
.gate-brand{justify-content:center;margin-bottom:18px}
.gate-card h2{margin:0 0 8px;font-size:24px}
.gate-sub{color:var(--txt-dim);font-size:14.5px;line-height:1.55;margin:0 0 18px}
.gate-in{text-align:left;margin-bottom:10px}
.gate-toggle{margin-top:10px}
.auth-err{background:rgba(232,115,107,.12);border:1px solid rgba(232,115,107,.45);color:var(--red);
  border-radius:12px;padding:11px 13px;font-size:13.5px;line-height:1.5;margin-bottom:12px;text-align:left}
.auth-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--txt-dim);font-size:12px}
.auth-or::before,.auth-or::after{content:"";flex:1;height:1px;background:var(--line)}
.btn-google{background:#fff;color:#1f1f1f;display:flex;align-items:center;justify-content:center;gap:10px}
.g-mark{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:800;
  font-size:14px;color:#fff;background:conic-gradient(#ea4335 0 25%,#fbbc05 25% 50%,#34a853 50% 75%,#4285f4 75% 100%)}
.spinner{width:44px;height:44px;border-radius:50%;margin:0 auto 14px;
  border:4px solid var(--line);border-top-color:var(--gold);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.wait-emoji{font-size:56px;margin-bottom:6px;animation:bounce .6s ease}

/* ---------- admin dashboard ---------- */
.adm-who-line{color:var(--txt-dim);font-size:13px;margin:0 4px 14px}
.adm-who-line b{color:var(--gold-soft)}
.adm-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.adm-chip{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 14px;
  font-size:13px;color:var(--txt-dim)}
.adm-chip b{color:var(--gold-soft);font-size:16px;margin-right:4px}
.adm-chip.warn{border-color:#f0a24a}
.adm-chip.warn b{color:#f0a24a}
.adm-list{display:flex;flex-direction:column;gap:12px}
.adm-empty{background:var(--card);border:1px dashed var(--line);border-radius:16px;padding:22px;
  text-align:center;color:var(--txt-dim);font-size:14px;line-height:1.5}
.adm-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px}
.adm-card.pending{border-color:#f0a24a}
.adm-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.adm-id{flex:1;min-width:0}
.adm-name{font-weight:800;font-size:16px}
.adm-mail{font-size:12.5px;color:var(--txt-dim);overflow:hidden;text-overflow:ellipsis}
.adm-status{font-size:10px;font-weight:800;letter-spacing:1px;padding:4px 9px;border-radius:99px;flex:0 0 auto}
.adm-status.ok{color:var(--green);border:1px solid rgba(95,208,138,.5)}
.adm-status.wait{color:#f0a24a;border:1px solid rgba(240,162,74,.6)}
.adm-prog{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.adm-bar{flex:1;height:9px;background:#2a2316;border-radius:99px;overflow:hidden;border:1px solid var(--line)}
.adm-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold-deep),var(--gold-soft))}
.adm-prog span{font-size:12px;color:var(--txt-dim);white-space:nowrap}
.adm-scores{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.adm-score{display:flex;flex-direction:column;align-items:center;min-width:34px;background:var(--card-2);
  border:1px solid var(--line);border-radius:8px;padding:4px 5px;font-size:10.5px;font-weight:800;color:var(--txt-dim)}
.adm-score i{font-style:normal;font-weight:600;font-size:10px}
.adm-score.ok{border-color:rgba(95,208,138,.5);color:var(--green)}
.adm-score.low{border-color:rgba(232,115,107,.5);color:var(--red)}
.adm-meta{font-size:12px;color:var(--txt-dim);margin-bottom:12px}
.adm-actions .btn{width:auto}

/* ---------- admin tabs ---------- */
.adm-tabs{display:flex;gap:8px;margin-bottom:14px}
.adm-tab{flex:1;background:var(--card);border:1.5px solid var(--line);border-radius:12px;
  color:var(--txt-dim);font-size:14px;font-weight:700;padding:12px;cursor:pointer}
.adm-tab.active{border-color:var(--gold);color:var(--gold-soft);background:rgba(230,198,103,.08)}

/* ---------- CMS (content editor) ---------- */
.cms-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.cms-status{flex:1;font-size:12.5px;color:var(--txt-dim)}
.cms-dirty{color:#f0a24a}
.cms-h{font-size:13px;text-transform:uppercase;letter-spacing:1.2px;color:var(--txt-dim);margin:20px 2px 10px}
.cms-rows{display:flex;flex-direction:column;gap:8px}
.cms-row{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:10px 12px}
.cms-ico{font-size:20px;flex:0 0 auto}
.cms-row-txt{flex:1;min-width:0;font-size:14px}
.cms-row-txt b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cms-sub{font-size:11.5px;color:var(--txt-dim);font-weight:400}
.cms-btns{display:flex;gap:5px;flex:0 0 auto}
.cms-b{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--card-2);
  color:var(--txt);font-size:14px;cursor:pointer}
.cms-b:active{transform:scale(.92)}
.cms-b.danger{color:var(--red);border-color:rgba(232,115,107,.4)}
.cms-addline{display:flex;gap:8px;margin-top:10px;align-items:center}
.cms-addline .btn{width:auto}
.cms-select{background:var(--card);border:1px solid var(--line);color:var(--txt);border-radius:10px;
  padding:10px 12px;font-size:13.5px}
.cms-form{display:flex;flex-direction:column;gap:9px;margin-top:12px;background:var(--card);
  border:1px solid var(--line);border-radius:14px;padding:14px}
.cms-frow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cms-frow label{width:90px;font-size:12px;color:var(--txt-dim);text-transform:uppercase;letter-spacing:.8px;flex:0 0 auto}
.cms-in{flex:1;min-width:120px;background:var(--card-2);border:1px solid var(--line);color:var(--txt);
  border-radius:10px;padding:10px 12px;font-size:14.5px}
.cms-in.short{flex:0 0 70px;min-width:70px;text-align:center}
.cms-errbox{background:rgba(232,115,107,.1);border:1px solid rgba(232,115,107,.45);color:var(--txt);
  border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.55;margin:10px 0}
.cms-errbox b{color:var(--red)}
.cms-okbox{background:rgba(95,208,138,.1);border:1px solid rgba(95,208,138,.45);color:var(--txt);
  border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.55;margin:10px 0}
.cms-modal{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:50;display:grid;place-items:center;padding:16px}
.cms-modal-card{width:100%;max-width:640px;max-height:92vh;display:flex;flex-direction:column;
  background:var(--bg-2);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.cms-modal-top{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.cms-modal-title{flex:1;font-size:16px;font-weight:800}
.cms-mode-btn{flex:0 0 auto;background:var(--card);border:1px solid var(--line);color:var(--txt-dim);
  border-radius:9px;padding:6px 10px;font-size:11.5px;font-weight:700;cursor:pointer}
.cms-mode-btn:active{transform:scale(.95)}
.cms-modal-hint{font-size:11.5px;color:var(--txt-dim);line-height:1.5;margin-bottom:10px}
.cms-modal-body{flex:1;min-height:0;overflow-y:auto;margin:0 -4px 10px;padding:2px 4px}
#cms-json{width:100%;min-height:260px;background:#12100c;border:1px solid var(--line);color:#d9e6c8;
  border-radius:12px;padding:12px;font-family:Consolas,Menlo,monospace;font-size:12.5px;line-height:1.5;
  resize:vertical;white-space:pre;overflow:auto}

/* ---------- CMS structured form editor ---------- */
#cms-form{display:flex;flex-direction:column;gap:9px}
.ed-lbl{font-size:11.5px;color:var(--txt-dim);text-transform:uppercase;letter-spacing:.9px;font-weight:700;margin-top:6px}
.ed-lbl-sub{text-transform:none;letter-spacing:0;font-weight:400}
.ed-in{flex:1;min-width:0;width:100%;background:var(--card-2);border:1px solid var(--line);color:var(--txt);
  border-radius:10px;padding:9px 11px;font-size:14px}
.ed-in.ed-short{flex:0 0 64px;min-width:64px;width:64px;text-align:center}
.ed-ta{width:100%;background:var(--card-2);border:1px solid var(--line);color:var(--txt);border-radius:10px;
  padding:9px 11px;font-size:14px;line-height:1.45;min-height:54px;resize:vertical;font-family:inherit}
.ed-sel{width:100%}
.ed-item{display:flex;gap:6px;align-items:center}
.ed-item .ed-in{width:auto}
.ed-item .cms-select{flex:0 0 auto;padding:8px 10px}
.ed-item .cms-b{flex:0 0 auto}
.ed-num{flex:0 0 22px;text-align:center;font-size:12px;color:var(--txt-dim);font-weight:700}
.ed-radio{flex:0 0 32px;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);
  border-radius:9px;background:var(--card-2);cursor:pointer}
.ed-radio input,.ed-radio-lbl input{accent-color:var(--gold);width:16px;height:16px;cursor:pointer;margin:0}
.ed-radio-lbl{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;padding:9px 16px;
  border:1px solid var(--line);border-radius:10px;background:var(--card-2);cursor:pointer}
.ed-add{align-self:flex-start;width:auto;margin-top:2px}
.ed-card{display:flex;flex-direction:column;gap:7px;border:1px solid var(--line);border-radius:12px;
  padding:10px 12px;background:var(--card)}
.ed-card-head{display:flex;align-items:center;gap:6px}
.ed-card-head b{flex:1;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-card .ed-in,.ed-card .ed-ta{background:var(--card-2)}
.ed-opt{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:10px;
  padding:7px 8px;background:var(--card-2)}
.ed-opt.ok{border-color:rgba(95,208,138,.5)}
.ed-opt .ed-in{background:var(--card)}
.ed-oktag{font-size:11.5px;font-weight:700;color:#5fd08a;margin-left:40px}
.ed-why{display:flex;margin-left:40px}
.ed-chk{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--txt-dim);cursor:pointer;flex:0 0 auto}
.ed-chk input{accent-color:var(--gold);margin:0}
.ed-cols{display:flex;gap:12px}
.ed-cols>div{flex:1;display:flex;flex-direction:column;gap:6px}

/* ---------- result extras ---------- */
.result-home-btn{margin-top:10px}

/* ---------- capstone node ---------- */
.node.capstone{background:linear-gradient(160deg,#332813,#211a10);border-color:var(--gold-deep)}
.node.capstone .node-ico{background:rgba(230,198,103,.14)}
.node.capstone.locked{opacity:.55}

/* ---------- certificate ---------- */
#screen-cert{justify-content:center}
.cert{background:linear-gradient(160deg,#fbf4df,#efe0b6);color:#3a2e12;border-radius:22px;
  padding:34px 26px;text-align:center;box-shadow:var(--shadow);border:2px solid var(--gold-deep);
  position:relative;animation:pop .35s ease}
.cert-seal{font-size:54px;margin-bottom:6px}
.cert-kicker{font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:#9a7b2e}
.cert-title{font-size:24px;margin:8px 0 16px;color:#5a4416;font-weight:800}
.cert-line{font-size:14.5px;line-height:1.5;color:#5a4a22;margin:6px 0}
.cert-line b{color:#7a5c12}
.cert-name{font-size:30px;font-weight:800;margin:12px 0;color:#3a2e12;
  font-family:Georgia,"Times New Roman",serif;border-bottom:2px dashed #c9ad62;display:inline-block;padding:0 16px 6px}
.cert-meta{font-size:13px;color:#8a6f2e;margin-top:16px;font-weight:700;letter-spacing:.5px}
.cert-rank{display:inline-block;margin-top:14px;font-size:12px;font-weight:800;letter-spacing:1.5px;
  text-transform:uppercase;color:#5a4416;border:1.5px solid #c9ad62;padding:5px 14px;border-radius:99px}
.cert-controls{margin-top:22px}
.cert-input{width:100%;background:var(--card);border:1px solid var(--line);color:var(--txt);
  border-radius:14px;padding:15px 16px;font-size:16px;margin-bottom:12px;text-align:center}
.cert-btns{display:flex;gap:10px}
@media print{
  body{background:#fff}
  .topbar,.cert-controls{display:none !important}
  #screen-cert{padding:0}
  .cert{box-shadow:none}
}
