/* ============================================================================
   Continuous Proficiency Engine — styling
   Sits on the course's own palette (navy / gold / paper). Nothing here
   restyles anything that already existed.
   ============================================================================ */

.cp-widget{
  background:linear-gradient(135deg,#071729 0%,#12314f 100%);
  border:1px solid rgba(255,255,255,.08); border-radius:12px;
  padding:22px 24px 18px; margin:0 0 28px; color:#fff;
}
.cp-w-top{display:flex;align-items:center;justify-content:space-between;margin:0 0 14px;gap:12px;}
.cp-eyebrow{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.38);}
.cp-link{background:none;border:none;color:var(--gold-light,#f1c968);font-size:.78rem;font-weight:600;cursor:pointer;padding:0;font-family:inherit;}
.cp-link:hover{text-decoration:underline;}
.cp-head{font-family:var(--display,inherit);font-size:1.6rem;font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:0 0 6px;}
.cp-sub{font-size:.95rem;color:rgba(255,255,255,.78);margin:0 0 16px;line-height:1.5;}
.cp-sub strong{color:#fff;}
.cp-why{display:inline-block;font-size:.78rem;color:rgba(255,255,255,.45);}

.cp-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px;}
.cp-go{background:var(--gold,#d6a43b);color:#0a1c2e;border:none;border-radius:7px;
  padding:11px 20px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;}
.cp-go:hover{background:var(--gold-light,#f1c968);}
.cp-go.small{padding:8px 14px;font-size:.85rem;}
.cp-go.ghost{background:transparent;color:var(--gold-light,#f1c968);border:1px solid rgba(241,201,104,.45);}
.cp-alt{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.16);
  border-radius:7px;padding:11px 16px;font-size:.9rem;font-weight:600;cursor:pointer;font-family:inherit;}
.cp-alt:hover{background:rgba(255,255,255,.18);}
.cp-alt.danger{color:#ffb4ab;border-color:rgba(255,140,120,.35);}
.cp-inline{background:none;border:none;padding:0;color:var(--gold-light,#f1c968);
  font:inherit;font-size:inherit;cursor:pointer;text-decoration:underline;}

.cp-measures{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px;}
.cp-m{background:rgba(0,0,0,.28);border-radius:8px;padding:11px 12px;text-align:center;min-width:0;}
.cp-m-n{font-size:1.02rem;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;}
.cp-m-l{font-size:.62rem;color:rgba(255,255,255,.42);margin-top:5px;text-transform:uppercase;letter-spacing:.08em;}
.cp-clockline{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.74rem;color:rgba(255,255,255,.42);
  border-top:1px solid rgba(255,255,255,.08);padding-top:11px;}

/* ------------------------------------------------------------ the page */
.cp-page{max-width:960px;}
.cp-page-head{margin:0 0 24px;}
.cp-page-head h2{font-family:var(--display,inherit);font-size:1.9rem;margin:6px 0 10px;color:var(--navy,#071b2f);letter-spacing:-.03em;}
.cp-page-head p{color:var(--muted,#627080);max-width:70ch;margin:0;}
.cp-page .cp-eyebrow{color:var(--gold-dark,#b8842a);}
.cp-h3{font-family:var(--display,inherit);font-size:1.15rem;color:var(--navy,#071b2f);
  margin:34px 0 6px;padding-top:18px;border-top:1px solid var(--line,#dbe0e2);}
.cp-lead{color:var(--muted,#627080);font-size:.92rem;margin:0 0 16px;max-width:72ch;}

.cp-clocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;}
.cp-clock{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-left:3px solid var(--gold,#d6a43b);
  border-radius:8px;padding:14px 16px;}
.cp-clock-n{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dark,#b8842a);}
.cp-clock-q{font-weight:700;color:var(--navy,#071b2f);margin:5px 0 8px;font-size:.95rem;}
.cp-clock-b{font-size:.86rem;color:var(--ink,#142332);line-height:1.55;}
.cp-flag{color:#a3372b;font-weight:600;}
.cp-focus{margin:0 0 10px;}
.cp-focus-why{font-size:.84rem;color:var(--muted,#627080);margin:3px 0;}
.cp-focus-src{font-size:.8rem;}
.cp-caveat{margin-top:10px;padding-top:8px;border-top:1px dashed var(--line,#dbe0e2);
  font-size:.75rem;color:var(--muted,#627080);font-style:italic;}

.cp-tablewrap{overflow-x:auto;}
.cp-table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--card,#fff);
  border:1px solid var(--line,#dbe0e2);border-radius:8px;}
.cp-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;
  color:var(--muted,#627080);padding:10px 12px;border-bottom:1px solid var(--line,#dbe0e2);white-space:nowrap;}
.cp-table td{padding:10px 12px;border-bottom:1px solid #eef1f2;vertical-align:middle;}
.cp-table tr:last-child td{border-bottom:none;}
.cp-area{font-weight:600;color:var(--navy,#071b2f);}
.cp-num{white-space:nowrap;color:var(--muted,#627080);}
.cp-chip{display:inline-block;font-size:.72rem;font-weight:700;border-radius:12px;padding:2px 10px;white-space:nowrap;}
.cp-chip.strong{background:rgba(31,116,91,.14);color:#1f745b;}
.cp-chip.ok{background:rgba(18,58,99,.12);color:#123a63;}
.cp-chip.warn{background:rgba(232,178,58,.20);color:#8a6410;}
.cp-chip.hot{background:rgba(192,57,43,.14);color:#a3372b;}
.cp-chip.build{background:rgba(18,58,99,.08);color:#5a6c7d;}
.cp-chip.none{background:#eef1f2;color:#7d8792;}

.cp-panel{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:18px 20px;}
.cp-field{margin:0 0 18px;}
.cp-field > label{display:block;font-size:.72rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--muted,#627080);margin:0 0 8px;}
.cp-checks{display:flex;flex-wrap:wrap;gap:8px;}
.cp-check{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line,#dbe0e2);
  border-radius:6px;padding:6px 11px;font-size:.87rem;cursor:pointer;background:#fff;}
.cp-check.on{border-color:var(--gold,#d6a43b);background:#fff8e4;}
.cp-check input{accent-color:var(--gold,#d6a43b);margin:0;}
.cp-dates{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;}
.cp-date{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--muted,#627080);}
.cp-date input{border:1px solid var(--line,#dbe0e2);border-radius:6px;padding:7px 9px;font:inherit;font-size:.9rem;}
.cp-hint{font-size:.78rem;color:var(--muted,#627080);margin-top:10px;line-height:1.5;}
.cp-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.cp-row .cp-alt{background:var(--navy,#071b2f);color:#fff;border-color:var(--navy,#071b2f);}
.cp-row .cp-alt.danger{background:#fff;color:#a3372b;border-color:#e3c4bf;}
.cp-privacy p{margin:0 0 12px;font-size:.92rem;line-height:1.6;}

.cp-stand{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;}
.cp-stand-card{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:16px 18px;}
.cp-stand-l{font-size:.68rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted,#627080);}
.cp-stand-v{font-family:var(--display,inherit);font-size:1.5rem;font-weight:800;color:var(--navy,#071b2f);margin:4px 0 2px;letter-spacing:-.02em;}
.cp-stand-s{font-size:.82rem;color:var(--muted,#627080);}
.cp-stand-x{font-size:.79rem;color:var(--muted,#627080);margin-top:10px;padding-top:9px;
  border-top:1px solid #eef1f2;line-height:1.55;}
.cp-milestones{margin-top:14px;}
.cp-ms-row{display:flex;gap:8px;flex-wrap:wrap;}
.cp-ms{background:#fff;border:1px solid var(--line,#dbe0e2);color:#9aa4ae;border-radius:20px;
  padding:6px 14px;font-size:.82rem;font-weight:600;font-family:inherit;cursor:default;}
.cp-ms.hit{border-color:var(--gold,#d6a43b);color:var(--gold-dark,#b8842a);background:#fff8e4;cursor:pointer;}
.cp-ms span{color:var(--gold,#d6a43b);}

/* ----------------------------------------------------- track page strip */
.cp-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:linear-gradient(135deg,#071729 0%,#12314f 100%);color:#fff;
  border-radius:10px;padding:14px 18px;margin:0 0 22px;}
.cp-strip .cp-why{margin-left:6px;}

/* ------------------------------------------------------ session player */
body.cp-locked{overflow:hidden;}
.cp-session{position:fixed;inset:0;z-index:9500;background:#071729;display:flex;
  align-items:flex-start;justify-content:center;overflow-y:auto;}
.cp-session.cp-hidden{display:none;}
.cp-s-wrap{width:100%;max-width:680px;padding:18px 20px 60px;color:#fff;}
.cp-s-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:6px 0 20px;position:sticky;top:0;background:#071729;}
.cp-dots{display:flex;gap:4px;flex-wrap:wrap;flex:1;}
.cp-dots i{width:16px;height:4px;border-radius:2px;background:rgba(255,255,255,.16);}
.cp-dots i.done{background:var(--gold,#d6a43b);}
.cp-dots i.now{background:#fff;}
.cp-x{background:none;border:none;color:rgba(255,255,255,.5);font:inherit;font-size:.85rem;cursor:pointer;}
.cp-q-meta{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);margin:0 0 12px;}
.cp-q{font-size:1.22rem;line-height:1.45;font-weight:600;margin:0 0 22px;}
.cp-opts{display:flex;flex-direction:column;gap:9px;}
.cp-opt{display:block;width:100%;text-align:left;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:9px;
  padding:14px 16px;font:inherit;font-size:.98rem;line-height:1.4;cursor:pointer;}
.cp-opt:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.3);}
.cp-chosen{background:rgba(255,255,255,.06);border-radius:8px;padding:12px 14px;margin:0 0 22px;font-size:.95rem;}
.cp-conf-ask{font-size:1rem;font-weight:700;margin:0 0 10px;}
.cp-conf{display:flex;gap:10px;}
.cp-conf .cp-opt{text-align:center;}
.cp-opt.sure{border-color:rgba(214,164,59,.5);}
.cp-verdict{font-family:var(--display,inherit);font-size:1.3rem;font-weight:800;margin:0 0 14px;letter-spacing:-.02em;}
.cp-verdict.good{color:#5fd39f;}
.cp-verdict.ok{color:#8fc4f5;}
.cp-verdict.warn{color:#f3c96a;}
.cp-verdict.bad{color:#ff8f7d;}
.cp-answers{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;}
.cp-ans{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:8px;
  padding:12px 14px;font-size:.95rem;line-height:1.4;color:rgba(255,255,255,.6);position:relative;}
.cp-ans.right{border-color:rgba(95,211,159,.55);background:rgba(95,211,159,.10);color:#fff;}
.cp-ans.wrong{border-color:rgba(255,143,125,.5);background:rgba(255,143,125,.08);color:#fff;}
.cp-tag{float:right;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;
  color:rgba(255,255,255,.5);margin-left:8px;}
.cp-note{background:rgba(214,164,59,.10);border-left:3px solid var(--gold,#d6a43b);
  border-radius:0 8px 8px 0;padding:12px 14px;font-size:.92rem;line-height:1.55;margin:0 0 16px;}
.cp-src{font-size:.85rem;color:rgba(255,255,255,.55);margin:0 0 22px;}
.cp-done{text-align:center;padding:24px 0 0;}
.cp-done-tick{font-size:2.6rem;color:#5fd39f;line-height:1;}
.cp-done-h{font-family:var(--display,inherit);font-size:1.8rem;font-weight:800;margin:10px 0 4px;letter-spacing:-.02em;}
.cp-done-s{color:rgba(255,255,255,.6);margin:0 0 20px;}
.cp-grace{background:rgba(214,164,59,.14);border-radius:8px;padding:10px 14px;font-size:.88rem;margin:0 0 18px;}
.cp-done-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px;}
.cp-done-grid div{background:rgba(255,255,255,.05);border-radius:8px;padding:12px 8px;}
.cp-done-grid b{display:block;font-size:1.1rem;}
.cp-done-grid span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(255,255,255,.4);margin-top:5px;}
.cp-done-next{color:rgba(255,255,255,.65);font-size:.92rem;margin:0 0 20px;}
.cp-done .cp-go,.cp-done .cp-alt{width:100%;margin-bottom:10px;}

/* ------------------------------------------------------------- cards */
.cp-card-modal{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:9600;
  display:flex;align-items:center;justify-content:center;padding:20px;}
.cp-card-modal.cp-hidden{display:none;}
.cp-card-inner{background:#071729;border-radius:12px;padding:22px;max-width:460px;width:100%;text-align:center;}
.cp-card-inner img{border-radius:8px;max-width:100%;display:block;margin:0 auto 16px;}
.cp-card-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:10px;}

/* ---------------------------------------------------------------- XP */
.cp-xp-badge{
  background:rgba(214,164,59,.18);border:1px solid rgba(214,164,59,.35);
  color:var(--gold,#d6a43b);border-radius:20px;padding:3px 11px;
  font-size:.78rem;font-weight:700;white-space:nowrap;min-width:52px;text-align:center;
}
.cp-xp-earn{
  display:inline-block;font-size:.82rem;font-weight:700;
  background:rgba(214,164,59,.18);color:var(--gold,#d6a43b);
  border-radius:12px;padding:1px 9px;margin-left:8px;vertical-align:middle;
}
@keyframes cp-float-up{
  0%{opacity:1;transform:translateY(0) scale(1);}
  80%{opacity:1;transform:translateY(-48px) scale(1.1);}
  100%{opacity:0;transform:translateY(-64px) scale(0.95);}
}
.cp-xp-float{
  position:fixed;bottom:30%;left:50%;transform:translateX(-50%);
  background:var(--gold,#d6a43b);color:#0a1c2e;
  font-weight:800;font-size:1.4rem;border-radius:20px;padding:8px 22px;
  pointer-events:none;z-index:9999;
  animation:cp-float-up 1.1s ease-out forwards;
}
.cp-done-xp{
  background:rgba(214,164,59,.14);border:1px solid rgba(214,164,59,.3);
  color:var(--gold,#d6a43b);border-radius:8px;padding:8px 14px;
  font-size:.9rem;font-weight:600;margin:0 0 18px;
}
/* ---------------------------------------------------------------- TTS */
.cp-q-row{display:flex;align-items:flex-start;gap:10px;margin:0 0 22px;}
.cp-q-row .cp-q{margin:0;flex:1;}
.cp-tts-btn{
  flex-shrink:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.7);border-radius:8px;padding:8px 10px;
  font-size:1.1rem;cursor:pointer;line-height:1;align-self:flex-start;margin-top:2px;
}
.cp-tts-btn:hover{background:rgba(255,255,255,.16);color:#fff;}
.cp-tts-btn[hidden]{display:none;}
.cp-mute-btn{
  flex-shrink:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.7);border-radius:8px;padding:6px 8px;cursor:pointer;line-height:0;
  align-self:flex-start;margin-top:2px;
}
.cp-mute-btn:hover{background:rgba(255,255,255,.16);color:#fff;}
.cp-mute-btn.muted{border-color:rgba(229,72,77,.55);background:rgba(229,72,77,.12);color:rgba(255,255,255,.85);}
/* ---------------------------------------------------------------- settings */
.cp-settings .cp-setting{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid rgba(0,0,0,.06);cursor:pointer;}
.cp-settings .cp-setting:first-child{border-top:0;padding-top:0;}
.cp-settings .cp-setting input{margin-top:4px;width:18px;height:18px;flex-shrink:0;}
.cp-settings .cp-setting b{display:block;font-size:.98rem;}
.cp-settings .cp-setting small{display:block;color:var(--muted,#667);font-size:.85rem;line-height:1.4;margin-top:2px;}
/* ---------------------------------------------------------------- option selected state */
.cp-opt.cp-opt-selected{
  background:rgba(214,164,59,.22);border-color:rgba(214,164,59,.6);color:#fff;
}
/* ---------------------------------------------------------------- date inputs in TTS panel */
.cp-date-input{
  border:1px solid var(--line,#dbe0e2);border-radius:6px;
  padding:8px 10px;font:inherit;font-size:.9rem;background:#fff;color:#142332;
}
.cp-date-input:focus{outline:none;border-color:var(--gold,#d6a43b);}

/* ---------------------------------------------------------------- resume banner */
.fp-resume-banner{
  display:flex;align-items:center;gap:14px;
  background:linear-gradient(135deg,#0e2440 0%,#1a3a60 100%);
  border:1.5px solid rgba(214,164,59,.45);border-radius:12px;
  padding:14px 16px;margin:0 0 20px;color:#fff;
}
.fp-resume-icon{
  font-size:1.2rem;color:var(--gold,#d6a43b);flex-shrink:0;
  width:34px;height:34px;background:rgba(214,164,59,.15);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.fp-resume-text{flex:1;min-width:0;}
.fp-resume-label{font-size:.67rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 2px;}
.fp-resume-name{font-family:var(--display,inherit);font-weight:700;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.fp-resume-btn{
  background:var(--gold,#d6a43b);color:#0a1c2e;font-weight:700;font-size:.82rem;
  border:none;border-radius:8px;padding:8px 14px;cursor:pointer;flex-shrink:0;
  font-family:inherit;white-space:nowrap;
}
.fp-resume-btn:hover{background:#e8b93f;}
.fp-resume-dismiss{
  background:none;border:none;color:rgba(255,255,255,.4);font-size:1.2rem;
  cursor:pointer;padding:4px 6px;flex-shrink:0;line-height:1;
}
.fp-resume-dismiss:hover{color:rgba(255,255,255,.7);}

/* ---------------------------------------------------------------- how it works */
.cp-how{
  background:#fff;border:1px solid var(--line,#dbe0e2);border-left:4px solid var(--gold,#d6a43b);
  border-radius:12px;margin:0 0 22px;overflow:hidden;
}
.cp-how-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;cursor:pointer;}
.cp-how-head h3{font-family:var(--display,inherit);font-size:1.15rem;font-weight:800;letter-spacing:-.02em;margin:4px 0 0;color:var(--navy,#0f2845);}
.cp-how-chev{font-size:1.3rem;color:var(--muted,#6b7a88);transition:transform .25s;}
.cp-how.open .cp-how-chev{transform:rotate(180deg);}
.cp-how-body{display:none;padding:0 20px 20px;}
.cp-how.open .cp-how-body{display:block;}
.cp-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.cp-how-k{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold,#b8892c);margin:0 0 6px;}
.cp-how-col p,.cp-how-ph p{font-size:.9rem;line-height:1.55;margin:0;color:#2b3a48;}
.cp-how-year{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.cp-how-ph{border:1px solid var(--line,#dbe0e2);border-radius:10px;padding:12px 14px;background:#fafbfc;}
.cp-how-ph.now{border-color:var(--gold,#d6a43b);background:rgba(214,164,59,.08);box-shadow:inset 0 0 0 1px rgba(214,164,59,.35);}
.cp-how-ph b{display:block;font-size:.95rem;color:var(--navy,#0f2845);}
.cp-how-ph span{display:block;font-size:.72rem;color:var(--muted,#6b7a88);margin:2px 0 8px;}
.cp-how-ph.now b::after{content:" · now";color:var(--gold,#b8892c);font-weight:700;font-size:.8rem;}
.cp-how.compact .cp-how-head h3{font-size:1.05rem;}
.cp-season-pick{display:flex;align-items:center;gap:8px;font-size:.85rem;flex-wrap:wrap;}
.cp-offer{
  background:rgba(214,164,59,.1);border:1px solid rgba(214,164,59,.4);border-radius:10px;
  padding:14px 16px;margin:16px 0;text-align:left;font-size:.9rem;line-height:1.5;
}
.cp-offer .cp-row{margin-top:10px;}
@media(max-width:820px){ .cp-how-grid{grid-template-columns:1fr;} .cp-how-year{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .cp-how-year{grid-template-columns:1fr;} }

/* ---------------------------------------------------------------- reminder guide */
.cp-guide{position:fixed;inset:0;z-index:9995;background:rgba(4,14,28,.6);display:flex;align-items:center;justify-content:center;padding:18px;}
.cp-guide-box{background:#fff;border-radius:14px;padding:22px 22px 18px;max-width:420px;width:100%;color:#142332;box-shadow:0 18px 50px rgba(0,0,0,.35);}
.cp-guide-title{font-family:var(--display,inherit);font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--navy,#0f2845);margin:0 0 10px;}
.cp-guide-lead{font-size:.92rem;line-height:1.55;margin:0 0 12px;color:#2b3a48;}
.cp-guide-step{display:flex;gap:12px;align-items:flex-start;margin:0 0 12px;font-size:.92rem;line-height:1.5;}
.cp-guide-n{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--gold,#d6a43b);color:#0a1c2e;font-weight:800;font-size:.85rem;display:flex;align-items:center;justify-content:center;}

/* ---------------------------------------------------------------- celebration badge */
.cp-celebrate{
  position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;
  background:rgba(4,14,28,0);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);
  transition:background .35s ease,backdrop-filter .35s ease;cursor:pointer;
}
.cp-celebrate.on{background:rgba(4,14,28,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.cp-celebrate.out{background:rgba(4,14,28,0);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);}
.cp-celebrate.out .cp-cel-inner{animation:cp-cel-leave .35s ease-in forwards;}
.cp-cel-inner{position:relative;text-align:center;color:#fff;padding:20px;}
.cp-cel-badge{
  position:relative;width:150px;height:150px;margin:0 auto 22px;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 35% 30%,#f5d37a 0%,#d6a43b 45%,#a67a1f 100%);
  box-shadow:0 0 0 6px rgba(214,164,59,.25),0 0 60px rgba(214,164,59,.55),0 18px 40px rgba(0,0,0,.5);
  transform:scale(0) rotate(-25deg);opacity:0;
}
.cp-celebrate.on .cp-cel-badge{animation:cp-badge-pop .8s cubic-bezier(.2,1.4,.4,1) .05s forwards;}
.cp-cel-icon{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:68px;line-height:1;color:#0a1c2e;text-shadow:0 2px 0 rgba(255,255,255,.35);
}
.cp-cel-shine{
  position:absolute;top:-40%;left:-80%;width:60%;height:180%;
  background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.75) 50%,rgba(255,255,255,0) 100%);
  transform:rotate(15deg);opacity:0;
}
.cp-celebrate.on .cp-cel-shine{animation:cp-shine 1.1s ease-out .55s forwards;}
.cp-cel-ring{
  position:absolute;left:50%;top:95px;width:150px;height:150px;margin-left:-75px;border-radius:50%;
  border:3px solid rgba(245,211,122,.9);transform:scale(.6);opacity:0;pointer-events:none;
}
.cp-celebrate.on .cp-cel-ring{animation:cp-ring 1s ease-out .15s forwards;}
.cp-cel-sparks{position:absolute;left:50%;top:95px;width:0;height:0;pointer-events:none;}
.cp-spark{
  position:absolute;left:0;top:0;width:var(--s);height:var(--s);border-radius:50%;
  background:#f1c968;box-shadow:0 0 8px rgba(241,201,104,.9);opacity:0;
  transform:rotate(var(--a)) translateY(0) scale(1);
}
.cp-spark.w{background:#fff;box-shadow:0 0 8px rgba(255,255,255,.9);}
.cp-celebrate.on .cp-spark{animation:cp-spark 1.15s cubic-bezier(.1,.8,.3,1) var(--t) forwards;}
.cp-cel-eyebrow{
  font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,201,104,.9);
  opacity:0;transform:translateY(10px);
}
.cp-cel-title{
  font-family:var(--display,inherit);font-size:2.1rem;font-weight:800;letter-spacing:-.02em;line-height:1.1;
  margin:6px auto 8px;max-width:560px;opacity:0;transform:translateY(12px);
}
.cp-cel-sub{font-size:1rem;color:rgba(255,255,255,.7);opacity:0;transform:translateY(12px);}
.cp-cel-hint{font-size:.72rem;color:rgba(255,255,255,.35);margin-top:26px;opacity:0;}
.cp-celebrate.on .cp-cel-eyebrow{animation:cp-rise .5s ease-out .45s forwards;}
.cp-celebrate.on .cp-cel-title{animation:cp-rise .5s ease-out .55s forwards;}
.cp-celebrate.on .cp-cel-sub{animation:cp-rise .5s ease-out .65s forwards;}
.cp-celebrate.on .cp-cel-hint{animation:cp-fade .6s ease-out 1.4s forwards;}
@keyframes cp-badge-pop{
  0%{transform:scale(0) rotate(-25deg);opacity:0;}
  60%{transform:scale(1.18) rotate(6deg);opacity:1;}
  80%{transform:scale(.96) rotate(-2deg);}
  100%{transform:scale(1) rotate(0);opacity:1;}
}
@keyframes cp-shine{0%{left:-80%;opacity:0;}15%{opacity:1;}100%{left:130%;opacity:0;}}
@keyframes cp-ring{0%{transform:scale(.6);opacity:.9;}100%{transform:scale(2.4);opacity:0;}}
@keyframes cp-spark{
  0%{opacity:0;transform:rotate(var(--a)) translateY(0) scale(.4);}
  12%{opacity:1;}
  100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(1);}
}
@keyframes cp-rise{to{opacity:1;transform:translateY(0);}}
@keyframes cp-fade{to{opacity:1;}}
@keyframes cp-cel-leave{to{transform:scale(.92);opacity:0;}}
@media(prefers-reduced-motion:reduce){
  .cp-celebrate.on .cp-spark,.cp-celebrate.on .cp-cel-ring,.cp-celebrate.on .cp-cel-shine{animation:none;}
  .cp-celebrate.on .cp-cel-badge{animation-duration:.2s;}
}

@media(max-width:640px){
  .cp-cel-badge{width:120px;height:120px;}
  .cp-cel-icon{font-size:54px;}
  .cp-cel-ring{width:120px;height:120px;margin-left:-60px;top:80px;}
  .cp-cel-sparks{top:80px;}
  .cp-cel-title{font-size:1.6rem;}
  .fp-resume-banner{flex-wrap:wrap;gap:10px;}
  .fp-resume-btn{width:100%;}
  .cp-head{font-size:1.35rem;}
  .cp-measures{grid-template-columns:1fr;}
  .cp-widget{padding:16px 15px;}
  .cp-page-head h2{font-size:1.5rem;}
  .cp-q{font-size:1.08rem;}
  .cp-xp-float{font-size:1.15rem;padding:6px 18px;}
}

/* ---- answer banner: Nice job! / Better luck next time ---- */
.cp-banner{position:fixed;left:0;right:0;bottom:0;z-index:9600;display:flex;justify-content:center;pointer-events:none;padding:0 16px calc(18px + env(safe-area-inset-bottom));}
.cp-banner-card{width:min(520px,100%);background:#0b2540;color:#fff;border-radius:18px 18px 14px 14px;padding:18px 22px 16px;box-shadow:0 -8px 40px rgba(0,0,0,.35);transform:translateY(120%) scale(.6);transform-origin:50% 100%;opacity:0;transition:transform .55s cubic-bezier(.2,1.3,.35,1),opacity .3s ease-out;}
.cp-banner.on .cp-banner-card{transform:translateY(0) scale(1);opacity:1;}
.cp-banner.out .cp-banner-card{transform:translateY(120%) scale(.8);opacity:0;transition:transform .4s ease-in,opacity .3s ease-in;}
.cp-banner.good .cp-banner-card{background:linear-gradient(160deg,#1f745b,#0b2540 70%);}
.cp-banner.miss .cp-banner-card{background:linear-gradient(160deg,#5a3b12,#0b2540 70%);}
.cp-banner-h{font-family:var(--display,inherit);font-weight:800;font-size:1.9rem;letter-spacing:-.03em;line-height:1;}
.cp-banner.good .cp-banner-h{color:#f2d27a;}
.cp-banner-ans{margin-top:8px;font-size:.98rem;line-height:1.4;color:#ffe9b3;}
.cp-banner-prog{margin-top:14px;height:10px;border-radius:6px;background:rgba(255,255,255,.18);overflow:hidden;}
.cp-banner-bar{height:100%;border-radius:6px;background:linear-gradient(90deg,#d6a43b,#f2d27a);transition:width 1s cubic-bezier(.3,.9,.3,1);}
.cp-banner-n{margin-top:8px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.7);font-weight:700;}
.cp-explain{margin:10px 0 4px;padding:10px 12px;border-left:4px solid var(--gold,#d6a43b);background:rgba(214,164,59,.1);border-radius:6px;font-size:.95rem;line-height:1.5;}
@media (prefers-reduced-motion:reduce){.cp-banner-card{transition:opacity .25s;transform:none;}.cp-banner-bar{transition:none;}}

/* ===================================================== TODAY CARD (Phase 0.2) */
.cp-today{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-left:5px solid var(--gold,#d6a43b);
  border-radius:12px;padding:20px 22px 16px;margin:0 0 24px;box-shadow:0 2px 12px rgba(7,27,47,.06);}
.cp-today .cp-eyebrow{color:var(--gold-dark,#b8842a);}
.cp-mode{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:10px;font-size:.66rem;letter-spacing:.1em;
  background:rgba(214,164,59,.16);color:#7a5a12;}
.cp-mode-in{background:rgba(192,57,43,.12);color:#8f2f25;}
.cp-mode-off{background:rgba(18,58,99,.10);color:#123a63;}
.cp-mode-transition{background:rgba(31,116,91,.14);color:#1f745b;}
.cp-today-when{font-size:.78rem;color:var(--muted,#627080);text-align:right;}
.cp-today-when .cp-inline{color:var(--gold-dark,#b8842a);}
.cp-today-head{font-family:var(--display,inherit);font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--navy,#071b2f);margin:6px 0 4px;}
.cp-today-body{font-size:.95rem;color:var(--ink,#142332);line-height:1.5;margin:0 0 14px;}
.cp-today-body .cp-why{color:var(--muted,#627080);}
.cp-today .cp-alt{background:rgba(7,27,47,.06);color:var(--navy,#071b2f);border-color:rgba(7,27,47,.12);}
.cp-today .cp-alt:hover{background:rgba(7,27,47,.12);}
.cp-today .cp-inline{color:var(--gold-dark,#b8842a);}
.cp-today-foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:10px;
  border-top:1px dashed var(--line,#dbe0e2);font-size:.78rem;color:var(--muted,#627080);line-height:1.5;}
.cp-today-streak{white-space:nowrap;font-weight:600;color:var(--navy,#071b2f);}
.cp-page .cp-today{margin-bottom:28px;}

/* ===================================================== RAPID RESPONSE (0.4) */
.rr-wrap{margin:26px 0 8px;}
.rr-wrap h3{font-family:var(--display,inherit);color:var(--navy,#071b2f);margin:4px 0 8px;font-size:1.25rem;}
.rr-lead{color:var(--muted,#627080);font-size:.92rem;max-width:74ch;}
.rr-card{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-left:4px solid var(--red,#c0392b);
  border-radius:10px;padding:18px 20px;margin:14px 0;}
.rr-card.draft{border-left-color:#8a94a3;background:#fbfbf8;}
.rr-draft{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:#eef1f2;color:#5a6c7d;border-radius:10px;padding:2px 10px;margin-bottom:10px;}
.rr-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.rr-case{font-weight:700;color:var(--navy,#071b2f);font-size:.85rem;letter-spacing:.04em;}
.rr-status{font-size:.78rem;font-weight:600;border-radius:10px;padding:2px 10px;}
.rr-status.prelim{background:rgba(232,178,58,.2);color:#8a6410;}
.rr-status.final{background:rgba(31,116,91,.14);color:#1f745b;}
.rr-card h4{margin:10px 0 4px;font-size:1.1rem;color:var(--navy,#071b2f);}
.rr-meta{font-size:.8rem;color:var(--muted,#627080);margin-bottom:10px;}
.rr-links{font-size:.85rem;margin:8px 0;}
.rr-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0 8px;}
.rr-done{font-size:.8rem;color:var(--green,#1f745b);font-weight:600;}

/* ===================================================== PASSPORT (0.5) */
.cp-passport .cp-pp-line{font-size:.95rem;color:var(--ink,#142332);max-width:78ch;line-height:1.55;
  border-left:4px solid var(--gold,#d6a43b);padding:8px 14px;background:var(--cream,#f5f1e8);border-radius:0 8px 8px 0;}
.cp-passport .cp-alt.dark{background:rgba(7,27,47,.06);color:var(--navy,#071b2f);border-color:rgba(7,27,47,.12);}
.cp-pp-foot{margin-top:26px;padding-top:10px;border-top:1px solid var(--line,#dbe0e2);font-size:.75rem;color:var(--muted,#627080);}
@media print{
  #sidebar,.topbar,.site-footer,.construction-banner,.cp-noprint,#menu-toggle,.track-nav{display:none !important;}
  #main{margin:0 !important;padding:0 !important;}
  .content{padding:0 !important;max-width:none !important;}
  .cp-passport{max-width:none;}
  .cp-chip{border:1px solid #999;}
  body{background:#fff;}
}

.rr-table{border-collapse:collapse;width:100%;font-size:.88rem;background:var(--card,#fff);}
.rr-table th,.rr-table td{border:1px solid var(--line,#dbe0e2);padding:7px 10px;text-align:left;vertical-align:top;}
.rr-table th{background:var(--cream,#f5f1e8);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--navy,#071b2f);}

/* ------------------------------------------------------------- continue card */
.fp-go-card{display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:linear-gradient(135deg,#0e2440 0%,#1a3a60 100%);border:1.5px solid rgba(214,164,59,.55);
  border-radius:14px;padding:20px 22px;margin:0 0 20px;color:#fff;box-shadow:0 6px 24px rgba(7,27,47,.18);}
.fp-go-card.done{border-color:rgba(255,255,255,.15);}
.fp-go-text{flex:1;min-width:220px;}
.fp-go-label{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light,#f1c968);margin:0 0 4px;}
.fp-go-name{font-family:var(--display,inherit);font-weight:800;font-size:1.35rem;letter-spacing:-.02em;line-height:1.2;}
.fp-go-sub{font-size:.88rem;color:rgba(255,255,255,.72);margin-top:4px;}
.fp-go-btn{background:var(--gold,#d6a43b);color:#0a1c2e;font-weight:800;font-size:1.05rem;border:none;border-radius:10px;
  padding:14px 26px;cursor:pointer;font-family:inherit;white-space:nowrap;box-shadow:0 3px 0 #9a6f1f;}
.fp-go-btn:hover{background:var(--gold-light,#f1c968);}
.fp-go-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #9a6f1f;}
.cp-widget.compact{padding:16px 20px 14px;}
.cp-compact-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.cp-compact-head{font-weight:700;font-size:1rem;}
.cp-compact-sub{font-size:.8rem;color:rgba(255,255,255,.55);margin-top:2px;}
.cp-banner-sub{font-size:.95rem;color:rgba(255,255,255,.85);margin:2px 0 8px;}

/* ------------------------------------------------------------- game layer */
.fp-goal-card{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);
  border-radius:14px;padding:16px 20px;margin:0 0 20px;}
.fp-goal-card.met{border-color:rgba(31,116,91,.45);background:linear-gradient(135deg,#fff 0%,#eef8f3 100%);}
.fp-ring{--p:0;width:96px;height:96px;border-radius:50%;flex-shrink:0;
  background:conic-gradient(var(--gold,#d6a43b) calc(var(--p)*1%), #e6eaee 0);display:flex;align-items:center;justify-content:center;}
.fp-goal-card.met .fp-ring{background:conic-gradient(var(--green,#1f745b) 100%, #e6eaee 0);}
.fp-ring-in{width:74px;height:74px;border-radius:50%;background:var(--card,#fff);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.fp-ring-in b{font-family:var(--display,inherit);font-size:1.4rem;font-weight:800;color:var(--navy,#071b2f);line-height:1;}
.fp-ring-in span{font-size:.6rem;color:var(--muted,#627080);margin-top:3px;text-transform:uppercase;letter-spacing:.06em;}
.fp-goal-text{flex:1;min-width:240px;}
.fp-goal-title{font-family:var(--display,inherit);font-weight:800;font-size:1.1rem;color:var(--navy,#071b2f);letter-spacing:-.02em;}
.fp-goal-sub{font-size:.85rem;color:var(--muted,#627080);margin:2px 0 10px;}
.fp-flame{filter:grayscale(1);opacity:.5;} .fp-flame.lit{filter:none;opacity:1;}
.fp-quests{display:grid;gap:6px;}
.fp-quest{display:grid;grid-template-columns:22px 1fr 110px 54px;align-items:center;gap:10px;font-size:.85rem;}
.fp-q-check{width:20px;height:20px;border-radius:50%;border:2px solid #cfd7de;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:#fff;}
.fp-quest.done .fp-q-check{background:var(--green,#1f745b);border-color:var(--green,#1f745b);}
.fp-quest.done .fp-q-label{color:var(--muted,#627080);text-decoration:line-through;}
.fp-q-prog{height:8px;background:#e6eaee;border-radius:6px;overflow:hidden;}
.fp-q-prog i{display:block;height:100%;background:var(--gold,#d6a43b);border-radius:6px;transition:width .5s;}
.fp-quest.done .fp-q-prog i{background:var(--green,#1f745b);}
.fp-q-text{font-size:.75rem;color:var(--muted,#627080);text-align:right;white-space:nowrap;}
.fp-goal-pick{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;color:var(--muted,#627080);margin-top:10px;}
.fp-goal-pick select{font:inherit;font-size:.8rem;padding:4px 8px;border:1px solid var(--line,#dbe0e2);border-radius:6px;background:#fff;color:var(--navy,#071b2f);}
@media (max-width:560px){.fp-quest{grid-template-columns:22px 1fr 60px;} .fp-q-text{display:none;}}

.fp-unit{border:1px solid var(--line,#dbe0e2);border-radius:14px;background:var(--card,#fff);margin:0 0 12px 0;overflow:hidden;}
.fp-unit.current{border-color:var(--gold,#d6a43b);box-shadow:0 0 0 3px rgba(214,164,59,.15);}
.fp-unit.done{border-color:rgba(31,116,91,.35);}
.fp-unit-head{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;background:linear-gradient(135deg,#0e2440 0%,#1a3a60 100%);color:#fff;}
.fp-unit.done .fp-unit-head{background:linear-gradient(135deg,#17513f 0%,#1f745b 100%);}
.fp-unit:not(.current):not(.done) .fp-unit-head{background:#f3f5f7;color:var(--navy,#071b2f);}
.fp-unit-badge{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;}
.fp-unit:not(.current):not(.done) .fp-unit-badge{background:#e3e8ed;}
.fp-unit-text{flex:1;min-width:0;}
.fp-unit-name{font-family:var(--display,inherit);font-weight:800;font-size:1rem;letter-spacing:-.02em;line-height:1.25;}
.fp-unit-sub{font-size:.76rem;opacity:.75;margin-top:2px;}
.fp-unit-bar{height:5px;background:rgba(0,0,0,.18);border-radius:4px;margin-top:8px;max-width:320px;overflow:hidden;}
.fp-unit:not(.current):not(.done) .fp-unit-bar{background:#dde3e9;}
.fp-unit-bar i{display:block;height:100%;background:var(--gold,#d6a43b);border-radius:4px;transition:width .5s;}
.fp-unit.done .fp-unit-bar i{background:#9fe0c4;}
.fp-unit-btn{background:var(--gold,#d6a43b);color:#0a1c2e;border:none;border-radius:9px;padding:10px 18px;font-weight:800;font-size:.9rem;cursor:pointer;font-family:inherit;white-space:nowrap;box-shadow:0 3px 0 #9a6f1f;}
.fp-unit-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #9a6f1f;}
.fp-unit-btn.ghost{background:rgba(255,255,255,.16);color:#fff;box-shadow:none;border:1px solid rgba(255,255,255,.3);}
.fp-unit-chev{opacity:.6;font-size:.9rem;width:14px;text-align:center;}
.fp-path{position:relative;padding:22px 16px 10px;background:
  radial-gradient(circle at 20% 30%, rgba(214,164,59,.06) 0, transparent 40%),
  radial-gradient(circle at 80% 70%, rgba(18,58,99,.05) 0, transparent 40%), #fbfbf8;}
.fp-node-row{position:relative;display:flex;align-items:center;gap:16px;margin:0 0 26px;min-height:60px;}
.fp-node-row::before{content:"";position:absolute;left:calc(50% - 90px + var(--off));top:60px;height:26px;width:0;border-left:3px dotted #cfd7de;}
.fp-node-row:last-child::before{display:none;}
.fp-node-wrap{position:relative;width:60px;height:60px;flex-shrink:0;margin-left:calc(50% - 120px + var(--off));}
.fp-node{width:60px;height:60px;border-radius:50%;border:none;cursor:pointer;font-family:var(--display,inherit);font-weight:800;font-size:1.05rem;
  background:#e6eaee;color:#8a97a3;box-shadow:0 6px 0 #c9d1d8;transition:transform .12s;}
.fp-node:active{transform:translateY(4px);box-shadow:0 2px 0 #c9d1d8;}
.fp-node.done{background:var(--gold,#d6a43b);color:#0a1c2e;box-shadow:0 6px 0 #9a6f1f;}
.fp-node.current{background:var(--navy,#071b2f);color:#fff;box-shadow:0 6px 0 #03101d, 0 0 0 8px rgba(214,164,59,.22);animation:fp-pulse 1.8s ease-in-out infinite;}
.fp-node.checkpoint{background:#fff;border:3px solid var(--navy,#071b2f);color:var(--navy,#071b2f);box-shadow:0 6px 0 #c9d1d8;font-size:1.3rem;}
.fp-node.checkpoint.done{background:var(--green,#1f745b);border-color:var(--green,#1f745b);color:#fff;box-shadow:0 6px 0 #144d3c;}
@keyframes fp-pulse{0%,100%{box-shadow:0 6px 0 #03101d, 0 0 0 6px rgba(214,164,59,.25);}50%{box-shadow:0 6px 0 #03101d, 0 0 0 14px rgba(214,164,59,.08);}}
.fp-node-start{position:absolute;left:50%;top:-34px;transform:translateX(-50%);background:#fff;color:var(--gold-dark,#b8842a);border:2px solid var(--gold,#d6a43b);
  border-radius:10px;padding:3px 10px;font-size:.68rem;font-weight:800;letter-spacing:.14em;white-space:nowrap;animation:fp-bob 1.2s ease-in-out infinite;}
.fp-node-start::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:#fff;border-right:2px solid var(--gold,#d6a43b);border-bottom:2px solid var(--gold,#d6a43b);}
@keyframes fp-bob{0%,100%{transform:translate(-50%,0);}50%{transform:translate(-50%,-5px);}}
.fp-node-label{font-size:.82rem;color:var(--muted,#627080);max-width:46%;line-height:1.35;}
.fp-node-label.current{color:var(--navy,#071b2f);font-weight:700;}
@media (max-width:640px){.fp-node-wrap{margin-left:calc(var(--off) * .5 + 6px);} .fp-node-row::before{left:calc(var(--off) * .5 + 34px);} .fp-node-label{max-width:60%;}}

.fp-badges{margin:0 0 22px;}
.fp-badges-h{font-family:var(--display,inherit);font-weight:700;font-size:.95rem;color:var(--navy,#071b2f);margin:0 0 8px;}
.fp-badge-row{display:flex;gap:8px;flex-wrap:wrap;}
.fp-badge{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#fff7e0,#f7e4ad);border:1px solid #e3c36a;border-radius:20px;padding:5px 12px 5px 8px;font:inherit;font-size:.78rem;font-weight:700;color:#5a4410;cursor:pointer;}
.fp-badge.more{background:#eef1f4;border-color:#dbe0e2;color:var(--muted,#627080);cursor:default;}
.fp-badge-ic{font-size:1rem;}

.cp-toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;z-index:9700;background:#0e2440;color:#fff;border:1px solid rgba(214,164,59,.5);
  border-radius:12px;padding:10px 18px;font-weight:700;font-size:.92rem;box-shadow:0 10px 30px rgba(0,0,0,.3);transition:transform .3s,opacity .3s;pointer-events:none;}
.cp-toast.on{transform:translate(-50%,0);opacity:1;}
.cp-toast.xp{border-color:rgba(95,211,159,.6);}
.cp-toast.combo{background:linear-gradient(135deg,#b8842a,#d6a43b);color:#0a1c2e;border-color:#f1c968;font-size:1rem;}
.cp-toast.quest{background:linear-gradient(135deg,#17513f,#1f745b);border-color:#9fe0c4;}
.cp-encourage{background:rgba(214,164,59,.12);border-left:3px solid var(--gold,#d6a43b);border-radius:0 8px 8px 0;padding:10px 14px;margin:12px 0 0;font-size:.95rem;font-style:italic;color:#fff;}
.cp-done-goal{margin:0 0 16px;}
.cp-done-goal-bar{height:8px;background:rgba(255,255,255,.12);border-radius:6px;overflow:hidden;margin:0 0 6px;}
.cp-done-goal-bar i{display:block;height:100%;background:var(--gold,#d6a43b);border-radius:6px;}
.cp-done-goal span{font-size:.8rem;color:rgba(255,255,255,.6);}

/* ------------------------------------------------------------- feedback */
#fb-fab{position:fixed;right:16px;bottom:16px;z-index:8990;display:inline-flex;align-items:center;gap:8px;background:var(--navy,#071b2f);color:#fff;
  border:1px solid rgba(214,164,59,.6);border-radius:24px;padding:10px 16px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.25);}
#fb-fab:hover{background:var(--navy-light,#123a63);}
#fb-fab .fb-fab-ic{font-size:1rem;}
body.cp-locked #fb-fab{display:none;}
@media (max-width:640px){#fb-fab .fb-fab-t{display:none;} #fb-fab{padding:10px 12px;}}
#fb-host{position:fixed;inset:0;background:rgba(7,23,41,.66);z-index:9650;display:flex;align-items:flex-end;justify-content:center;padding:0;}
#fb-host.fb-hidden{display:none;}
.fb-sheet{background:var(--paper,#fbfbf8);width:100%;max-width:560px;border-radius:16px 16px 0 0;padding:20px 22px 18px;box-shadow:0 -10px 40px rgba(0,0,0,.35);max-height:92vh;overflow:auto;}
@media (min-width:700px){#fb-host{align-items:center;padding:20px;} .fb-sheet{border-radius:14px;}}
.fb-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.fb-eyebrow{font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dark,#b8842a);}
.fb-sheet h3{font-family:var(--display,inherit);font-size:1.25rem;margin:2px 0 10px;color:var(--navy,#071b2f);letter-spacing:-.02em;}
.fb-x{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--muted,#627080);padding:4px 6px;}
.fb-ctx{background:#fff;border:1px solid var(--line,#dbe0e2);border-left:3px solid var(--gold,#d6a43b);border-radius:0 8px 8px 0;padding:8px 12px;margin:0 0 12px;font-size:.9rem;color:var(--ink,#142332);}
.fb-ctx-l{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#627080);}
.fb-ctx-s{font-size:.78rem;color:var(--muted,#627080);margin-top:2px;}
.fb-kinds{display:grid;gap:6px;margin:0 0 12px;}
.fb-kind{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:9px 12px;cursor:pointer;}
.fb-kind:has(input:checked){border-color:var(--gold,#d6a43b);box-shadow:0 0 0 2px rgba(214,164,59,.2);}
.fb-kind input{margin-top:3px;}
.fb-kind b{display:block;font-size:.9rem;color:var(--navy,#071b2f);}
.fb-kind small{display:block;font-size:.76rem;color:var(--muted,#627080);}
.fb-sheet textarea,.fb-sheet input[type=email]{width:100%;font:inherit;font-size:.92rem;border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:10px 12px;margin:0 0 10px;background:#fff;color:var(--ink,#142332);}
.fb-sheet textarea:focus,.fb-sheet input:focus{outline:none;border-color:var(--gold,#d6a43b);}
.fb-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.fb-send{background:var(--gold,#d6a43b);color:#0a1c2e;border:none;border-radius:8px;padding:11px 20px;font:inherit;font-weight:800;cursor:pointer;}
.fb-send:disabled{opacity:.6;cursor:default;}
.fb-hint{font-size:.76rem;color:var(--muted,#627080);}
.fb-status{font-size:.88rem;margin-top:10px;min-height:1.2em;color:var(--ink,#142332);}
.fb-status .ok{color:var(--green,#1f745b);font-weight:700;}
.fb-flag{background:none;border:1px solid var(--line,#dbe0e2);color:var(--muted,#627080);border-radius:14px;padding:3px 10px;font:inherit;font-size:.74rem;font-weight:600;cursor:pointer;}
.fb-flag:hover{border-color:var(--gold-dark,#b8842a);color:var(--gold-dark,#b8842a);}
.cp-flag{margin-left:8px;border-color:rgba(255,255,255,.25);color:rgba(255,255,255,.65);}
.cp-flag:hover{border-color:var(--gold-light,#f1c968);color:var(--gold-light,#f1c968);}
.q-flag{margin:6px 0 2px;}
.mark-done-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.fb-lesson-report{background:none;border:none;color:var(--muted,#627080);font:inherit;font-size:.78rem;cursor:pointer;padding:0;text-decoration:underline dotted;}
.fb-lesson-report:hover{color:var(--gold-dark,#b8842a);}
.nav-feedback{opacity:.85;}

/* ------------------------------------------------------------- end screens */
.cp-end{text-align:center;padding:26px 0 0;animation:cp-end-in .35s ease-out;}
@keyframes cp-end-in{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.cp-end-eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light,#f1c968);margin:0 0 6px;}
.cp-end-big{font-family:var(--display,inherit);font-size:5.2rem;font-weight:900;line-height:1;letter-spacing:-.04em;color:#fff;text-shadow:0 6px 30px rgba(214,164,59,.35);}
.cp-end-unit{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);margin:2px 0 18px;}
.cp-end-h{font-family:var(--display,inherit);font-size:1.9rem;font-weight:800;letter-spacing:-.02em;margin:4px 0 14px;color:#fff;}
.cp-end-line{color:rgba(255,255,255,.8);font-size:1rem;margin:0 0 16px;line-height:1.5;}
.cp-end-sub{color:rgba(255,255,255,.55);font-size:.85rem;margin:0 0 18px;}
.cp-end-ring{--p:0;width:120px;height:120px;border-radius:50%;margin:0 auto 16px;background:conic-gradient(#5fd39f calc(var(--p)*1%), rgba(255,255,255,.12) 0);
  display:flex;align-items:center;justify-content:center;transition:--p .9s;}
.cp-end-ring>div{width:96px;height:96px;border-radius:50%;background:#0f2338;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.cp-end-ring b{font-family:var(--display,inherit);font-size:1.5rem;font-weight:800;line-height:1;}
.cp-end-ring span{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.5);margin-top:4px;}
.cp-end-flame{font-size:4.5rem;line-height:1;animation:cp-flame 1.1s ease-in-out infinite alternate;filter:drop-shadow(0 0 24px rgba(255,140,0,.6));}
@keyframes cp-flame{from{transform:scale(1) rotate(-3deg);}to{transform:scale(1.12) rotate(3deg);}}
.cp-end-trophy{font-size:4.5rem;line-height:1;animation:cp-trophy .9s cubic-bezier(.2,1.4,.4,1) 1;filter:drop-shadow(0 0 26px rgba(214,164,59,.55));}
@keyframes cp-trophy{0%{transform:scale(.2) rotate(-20deg);opacity:0;}60%{transform:scale(1.15) rotate(6deg);opacity:1;}100%{transform:scale(1) rotate(0);}}
.cp-week{display:flex;justify-content:center;gap:8px;margin:6px 0 18px;}
.cp-wk{width:40px;display:flex;flex-direction:column;align-items:center;gap:4px;}
.cp-wk span{font-size:.7rem;font-weight:700;color:rgba(255,255,255,.45);}
.cp-wk i{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:1rem;}
.cp-wk.lit i{background:rgba(214,164,59,.22);border-color:var(--gold,#d6a43b);animation:cp-pop .5s ease-out 1;}
.cp-wk.today span{color:var(--gold-light,#f1c968);}
.cp-wk.today i{box-shadow:0 0 0 3px rgba(214,164,59,.3);}
@keyframes cp-pop{0%{transform:scale(.6);}70%{transform:scale(1.18);}100%{transform:scale(1);}}
.cp-end-prog{margin:0 0 16px;}
.cp-end-prog-bar{height:16px;background:rgba(255,255,255,.12);border-radius:10px;overflow:hidden;}
.cp-end-prog-bar i{display:block;height:100%;background:linear-gradient(90deg,#b8842a,#f1c968);border-radius:10px;transition:width 1s cubic-bezier(.2,.8,.2,1);}
.cp-end-prog-bar.phase i{background:linear-gradient(90deg,#17513f,#5fd39f);}
.cp-end-prog-l{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;font-size:.88rem;color:rgba(255,255,255,.7);}
.cp-end-prog-l b{font-family:var(--display,inherit);font-size:1.3rem;color:#fff;}
.cp-end-next{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:12px 16px;margin:0 0 16px;font-weight:700;font-size:1rem;}
.cp-end-next span{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light,#f1c968);font-weight:700;margin-bottom:3px;}
.cp-end-quests{text-align:left;margin:0 0 16px;}
.cp-end-quests .fp-q-label{color:#fff;} .cp-end-quests .fp-q-text{color:rgba(255,255,255,.55);}
.cp-end-quests .fp-q-prog{background:rgba(255,255,255,.12);} .cp-end-quests .fp-q-check{border-color:rgba(255,255,255,.3);}
.cp-end-quests .fp-quest.done .fp-q-label{color:rgba(255,255,255,.6);}
.cp-end-btn{width:100%;margin-top:6px;font-size:1.05rem;padding:14px 20px;}
.fp-goal-actions{margin-top:10px;}
.fp-share{background:none;border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:7px 12px;font:inherit;font-size:.8rem;font-weight:700;color:var(--navy,#071b2f);cursor:pointer;}
.fp-share:hover{border-color:var(--gold-dark,#b8842a);color:var(--gold-dark,#b8842a);}

/* ------------------------------------------------------------- accounts */
.account-page.wide{max-width:760px;}
.acct-tabs{display:flex;gap:6px;margin:0 0 18px;border-bottom:1px solid var(--line,#dbe0e2);}
.acct-tabs button{background:none;border:none;border-bottom:3px solid transparent;padding:10px 14px;font:inherit;font-weight:700;color:var(--muted,#627080);cursor:pointer;}
.acct-tabs button.on{color:var(--navy,#071b2f);border-bottom-color:var(--gold,#d6a43b);}
.acct-hint{font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted,#627080);margin-left:6px;}
.acct-msg{margin-top:12px;padding:10px 14px;border-radius:8px;background:#eaf7ef;color:#1f5f3a;font-size:.9rem;}
.acct-msg.bad{background:#fdf0f0;color:#8f2f25;}
.acct-fine{font-size:.78rem;color:var(--muted,#627080);margin-top:14px;line-height:1.5;}
.acct-link{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:var(--gold-dark,#b8842a);cursor:pointer;text-decoration:underline;}
.acct-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 16px;}
.acct-head h2{margin:0;font-size:1.6rem;}
.acct-handle{color:var(--muted,#627080);font-size:.88rem;}
.acct-av{width:40px;height:40px;border-radius:50%;background:var(--navy,#071b2f);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;flex-shrink:0;}
.acct-av.big{width:64px;height:64px;font-size:1.3rem;border:3px solid var(--gold,#d6a43b);}
.acct-out{margin-left:auto;background:none;border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:8px 12px;font:inherit;font-size:.82rem;color:var(--muted,#627080);cursor:pointer;}
.acct-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:0 0 12px;}
.acct-stat{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:10px;padding:12px 14px;}
.acct-stat b{display:block;font-family:var(--display,inherit);font-size:1.4rem;color:var(--navy,#071b2f);letter-spacing:-.03em;}
.acct-stat span{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#627080);}
.acct-sync{font-size:.8rem;color:var(--green,#1f745b);margin:0 0 22px;}
.acct-h3{font-family:var(--display,inherit);font-size:1.1rem;color:var(--navy,#071b2f);margin:22px 0 8px;}
.acct-card{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:12px;padding:16px 18px;}
.acct-muted{color:var(--muted,#627080);font-size:.88rem;}
.acct-sub{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted,#627080);font-weight:700;margin:12px 0 6px;}
.acct-add{display:flex;gap:8px;flex-wrap:wrap;}
.acct-add input{flex:1;min-width:200px;font:inherit;padding:10px 12px;border:1px solid var(--line,#dbe0e2);border-radius:8px;}
.acct-person{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line,#dbe0e2);flex-wrap:wrap;}
.acct-person:first-of-type{border-top:none;}
.acct-person-t b{display:block;color:var(--navy,#071b2f);} .acct-person-t span{font-size:.78rem;color:var(--muted,#627080);}
.acct-person-s{font-size:.8rem;color:var(--muted,#627080);flex:1;}
.acct-person-a{display:flex;gap:8px;align-items:center;margin-left:auto;}
.fp-unit-btn.small{padding:7px 12px;font-size:.8rem;}
.acct-linkrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.acct-linkrow code{background:#f3f5f7;border:1px solid var(--line,#dbe0e2);border-radius:6px;padding:6px 10px;font-size:.82rem;word-break:break-all;}
.acct-vis{display:grid;gap:6px;}
.acct-toggles{display:flex;gap:16px;flex-wrap:wrap;font-size:.9rem;margin:4px 0 6px;}
.acct-board{display:grid;gap:4px;}
.acct-rank{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;}
.acct-rank.me{background:rgba(214,164,59,.14);border:1px solid rgba(214,164,59,.4);}
.acct-rank-n{width:22px;font-weight:800;color:var(--muted,#627080);text-align:center;}
.acct-rank:nth-child(1) .acct-rank-n{color:#b8842a;}
.acct-rank-xp{margin-left:auto;font-weight:800;color:var(--navy,#071b2f);white-space:nowrap;}
.acct-nudge{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--card,#fff);border:1px dashed var(--gold,#d6a43b);border-radius:12px;padding:14px 18px;margin:0 0 20px;font-size:.9rem;color:var(--ink,#142332);}
.acct-nudge>div{flex:1;min-width:220px;}
.acct-fcard{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:12px;padding:14px 18px;margin:0 0 20px;}
.acct-fcard-a{margin-top:10px;}
/* reminder banners */
.fp-banners{display:grid;gap:8px;margin:0 0 16px;}
.fp-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-radius:12px;padding:12px 14px;border:1px solid;font-size:.92rem;animation:cp-end-in .35s ease-out;}
.fp-banner.red{background:#fdf1ef;border-color:#f0b9b1;color:#6e2a22;}
.fp-banner.gold{background:#fff7e0;border-color:#e9cf85;color:#5a4410;}
.fp-banner.navy{background:#eef3f8;border-color:#c6d5e4;color:#0f2845;}
.fp-banner-ic{font-size:1.2rem;}
.fp-banner-t{flex:1;min-width:200px;line-height:1.4;}
.fp-banner-btn{background:var(--navy,#071b2f);color:#fff;border:none;border-radius:8px;padding:8px 14px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;}
.fp-banner.red .fp-banner-btn{background:var(--red,#c0392b);}
.fp-banner.gold .fp-banner-btn{background:var(--gold-dark,#b8842a);}
.fp-banner-x{background:none;border:none;color:inherit;opacity:.5;cursor:pointer;font-size:.9rem;padding:4px 6px;}
.fp-banner-x:hover{opacity:1;}

/* reminders panel */
.cp-push-opts{display:grid;gap:8px;margin-top:12px;font-size:.88rem;color:var(--ink,#142332);}
.cp-push-opts label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;line-height:1.4;}
.cp-push-opts select{padding:4px 6px;}
.cp-reminders.off{border-color:var(--gold,#d6a43b);box-shadow:0 0 0 3px rgba(214,164,59,.15);}

/* usage opt-out + insights page */
.cp-optout{display:flex;gap:8px;align-items:center;font-size:.9rem;margin:6px 0 10px;}
.ins .acct-head{align-items:flex-end;}
.ins-days{margin-left:auto;font-size:.85rem;color:var(--muted,#627080);display:flex;gap:8px;align-items:center;}
.ins-days select{font:inherit;padding:6px 8px;border:1px solid var(--line,#dbe0e2);border-radius:8px;}
.ins-dl{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:12px;padding:12px 16px;margin:0 0 6px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.ins-dl b{margin-right:4px;}
.ins-dl .acct-muted{flex-basis:100%;}
.ins-table-wrap{overflow-x:auto;padding:0;}
.ins-table{width:100%;border-collapse:collapse;font-size:.85rem;}
.ins-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#627080);padding:10px 12px;border-bottom:1px solid var(--line,#dbe0e2);white-space:nowrap;}
.ins-table td{padding:9px 12px;border-bottom:1px solid var(--line,#dbe0e2);vertical-align:top;}
.ins-table td small{display:block;color:var(--muted,#627080);font-size:.75rem;}
.ins-table tr.ins-zero td{background:#fff7e0;}
.ins-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;}
.ins-bars{display:grid;gap:4px;margin:4px 0 10px;}
.ins-bar{display:grid;grid-template-columns:minmax(52px,32%) 1fr 44px;gap:8px;align-items:center;font-size:.8rem;}
.ins-bar-l{color:var(--ink,#142332);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ins-bar-t{height:12px;background:#eef1f4;border-radius:6px;overflow:hidden;}
.ins-bar-t i{display:block;height:100%;background:var(--navy,#071b2f);border-radius:6px;min-width:2px;}
.ins-bar-v{text-align:right;color:var(--muted,#627080);font-variant-numeric:tabular-nums;}
.ins-kv{font-size:.9rem;line-height:1.5;margin-bottom:6px;}

.ins-search{flex:1;min-width:220px;font:inherit;padding:8px 12px;border:1px solid var(--line,#dbe0e2);border-radius:8px;}
.ins-row{cursor:pointer;} .ins-row:hover td{background:#f6f8fa;}
.ins-detail{margin-top:12px;border-color:var(--gold,#d6a43b);}
.ins-mini{display:inline-block;width:60px;height:8px;background:#eef1f4;border-radius:4px;vertical-align:middle;margin-left:6px;overflow:hidden;}
.ins-mini i{display:block;height:100%;background:var(--green,#1f745b);}
.ins-list{margin:4px 0 10px;padding-left:18px;font-size:.88rem;line-height:1.5;} .ins-list small{color:var(--muted,#627080);}
.ins-more{display:none;}

/* operator portal */
.ops-card .fp-badges-h{margin-bottom:6px;}
.ops-asg{padding:10px 0;border-top:1px solid var(--line,#dbe0e2);} .ops-asg:first-of-type{border-top:none;padding-top:4px;}
.ops-asg.done{opacity:.7;}
.ops-asg-t{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:.95rem;}
.ops-asg-b{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:.85rem;}
.ops-bar{height:8px;background:#eef1f4;border-radius:4px;overflow:hidden;margin-top:8px;} .ops-bar i{display:block;height:100%;background:var(--green,#1f745b);}
.ops-due{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:999px;background:#eef3f8;color:#0f2845;}
.ops-due.soon{background:#fff7e0;color:#7a5a10;} .ops-due.late{background:#fdf1ef;color:#8f2f25;} .ops-due.ok{background:#eaf7ef;color:#1f5f3a;}
.ops-note{font-size:.88rem;color:var(--ink,#142332);margin:6px 0;}
.ops-items{margin:6px 0 4px;padding-left:4px;list-style:none;font-size:.88rem;line-height:1.6;} .ops-items li.ok{color:var(--green,#1f745b);} .ops-items small{color:var(--muted,#627080);}
.ops-invite{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-color:var(--gold,#d6a43b);margin-bottom:10px;} .ops-invite>div:first-child{flex:1;min-width:240px;}
.ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;}
.ops-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px;} .ops-tabs button{font:inherit;font-size:.85rem;font-weight:700;padding:8px 14px;border-radius:999px;border:1px solid var(--line,#dbe0e2);background:var(--card,#fff);cursor:pointer;color:var(--navy,#071b2f);} .ops-tabs button.on{background:var(--navy,#071b2f);color:#fff;border-color:var(--navy,#071b2f);}
.ops-head{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px;} .ops-head>div{flex:1;min-width:240px;}
.ops-code{font-size:1rem;font-weight:800;letter-spacing:.12em;background:#f3f5f7;border:1px solid var(--line,#dbe0e2);border-radius:6px;padding:2px 8px;}
.ops-row{cursor:pointer;} .ops-row:hover td{background:#f6f8fa;}
.ops-asg-card{margin-top:10px;} .ops-asg-card .ops-asg-t{align-items:center;}
.ops-pick{max-height:320px;overflow:auto;border:1px solid var(--line,#dbe0e2);border-radius:8px;padding:6px 10px;background:var(--card,#fff);}
.ops-pick-g{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted,#627080);font-weight:700;margin:10px 0 4px;}
.ops-pick-t summary{cursor:pointer;padding:4px 0;font-size:.9rem;list-style:none;} .ops-pick-t summary::-webkit-details-marker{display:none;} .ops-pick-t summary small{color:var(--muted,#627080);}
.ops-pick-l{display:grid;gap:2px;padding:2px 0 8px 26px;font-size:.85rem;} .ops-pick-l label{display:flex;gap:6px;align-items:flex-start;}

/* audio dock: follows the pilot through quizzes and other pages */
#narr-dock{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:9000;display:flex;align-items:center;gap:10px;max-width:min(640px,calc(100vw - 24px));width:max-content;background:var(--navy,#071b2f);color:#fff;border-radius:999px;padding:8px 10px 8px 8px;box-shadow:0 8px 28px rgba(7,27,47,.35);font-size:.85rem;}
#narr-dock[hidden]{display:none;}
#narr-dock .nd-btn{width:36px;height:36px;border-radius:50%;border:none;background:#fff;color:var(--navy,#071b2f);font-size:.9rem;font-weight:800;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;}
#narr-dock .nd-x{background:rgba(255,255,255,.14);color:#fff;font-size:.8rem;}
#narr-dock .nd-t{display:flex;flex-direction:column;min-width:0;line-height:1.25;}
#narr-dock .nd-t b{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(340px,50vw);}
#narr-dock .nd-t span{font-size:.72rem;opacity:.75;font-variant-numeric:tabular-nums;}
#narr-dock .tts-rate{margin-left:0;background:rgba(255,255,255,.12);color:#fff;border-color:transparent;}
#narr-dock .tts-rate option{color:#142332;}
#narr-dock .nd-link{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:999px;padding:5px 10px;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer;white-space:nowrap;}
#narr-dock .nd-link[hidden]{display:none;}
body.narr-on #fb-fab,body.narr-on #pwa-install{bottom:72px !important;}
@media (max-width:640px){#narr-dock .tts-rate{display:none;} #narr-dock{bottom:8px;}}
/* sync pill */
.sync-pill{font-size:.7rem;font-weight:700;letter-spacing:.02em;padding:4px 9px;border-radius:999px;background:#eaf7ef;color:#1f5f3a;white-space:nowrap;}
.sync-pill.busy{background:#eef3f8;color:#0f2845;} .sync-pill.bad{background:#fdf1ef;color:#8f2f25;}
.sync-pill[hidden]{display:none;}
@media (max-width:640px){.sync-pill{display:none;}}

.ops-auto-row{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:10px 0;border-top:1px solid var(--line,#dbe0e2);font-size:.9rem;}
.ops-auto-row:first-of-type{border-top:none;}
.ops-auto-row small{flex-basis:100%;color:var(--muted,#627080);font-size:.78rem;padding-left:26px;}
.ops-auto-row select{font:inherit;font-size:.85rem;padding:4px 6px;border:1px solid var(--line,#dbe0e2);border-radius:6px;}
.ops-actions{white-space:nowrap;} .ops-actions .fp-share{padding:4px 8px;margin-right:4px;}
a.fp-banner-btn{text-decoration:none;display:inline-block;}

/* ---- one next step: the halo ---- */
.next-halo{position:relative;animation:next-halo 1.5s ease-out infinite;z-index:2;}
@keyframes next-halo{0%{box-shadow:0 0 0 0 rgba(214,164,59,.85);}70%{box-shadow:0 0 0 16px rgba(214,164,59,0);}100%{box-shadow:0 0 0 0 rgba(214,164,59,0);}}
.next-halo[data-next]::before{content:attr(data-next);position:absolute;left:50%;top:-30px;transform:translateX(-50%);background:var(--gold,#d6a43b);color:#071b2f;font-size:.68rem;font-weight:800;letter-spacing:.04em;padding:4px 10px;border-radius:999px;white-space:nowrap;pointer-events:none;box-shadow:0 3px 10px rgba(0,0,0,.18);animation:next-bob 1.5s ease-in-out infinite;}
.next-halo[data-next]::after{content:"";position:absolute;left:50%;top:-8px;transform:translateX(-50%);border:5px solid transparent;border-top-color:var(--gold,#d6a43b);pointer-events:none;animation:next-bob 1.5s ease-in-out infinite;}
@keyframes next-bob{0%,100%{margin-top:0;}50%{margin-top:-4px;}}
.lesson-head.next-halo{border-radius:10px;}
.mark-done-row .mark-done.next-halo{margin-top:22px;}
/* quiz flow */
.quiz-callout{background:#fff7e0;border:1px solid #e9cf85;border-radius:10px;padding:12px 14px;margin:0 0 14px;font-size:.92rem;line-height:1.5;color:#5a4410;}
.quiz-round-head{background:#fff4d6;border:1px solid #dfb547;border-radius:8px;padding:10px 14px;margin-bottom:12px;}
.quiz-pass-line,.quiz-miss-line{font-size:1rem;margin:6px 0 12px;line-height:1.5;}
.quiz-miss-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:10px;}
.quiz-submit.alt{background:#fff;color:var(--navy,#071b2f);border:1.5px solid var(--navy,#071b2f);}
.quiz-next-big{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;max-width:560px;margin:14px 0 4px;background:var(--navy,#071b2f);color:#fff;border:none;border-radius:14px;padding:16px 20px;font:inherit;font-size:1.05rem;font-weight:800;text-align:left;cursor:pointer;box-shadow:0 6px 0 #03101d;}
.quiz-next-big span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold,#d6a43b);}
.quiz-next-big:active{transform:translateY(3px);box-shadow:0 3px 0 #03101d;}
.quiz-passed{background:#eaf7ef;border:1px solid #bfe3cc;border-radius:10px;padding:12px 14px;font-size:.92rem;line-height:1.5;color:#1f5f3a;margin-bottom:8px;}
.q-explain-btn{display:inline-block;margin-top:8px;background:#fff;border:1.5px solid var(--navy,#071b2f);color:var(--navy,#071b2f);border-radius:999px;padding:6px 12px;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;}
/* the highlighted paragraph and the walk bar */
.explain-hit{background:#fff3c4 !important;box-shadow:0 0 0 4px #fff3c4, 0 0 0 6px var(--gold,#d6a43b);border-radius:6px;transition:background .3s;animation:explain-in .6s ease-out;}
@keyframes explain-in{0%{box-shadow:0 0 0 4px #fff3c4, 0 0 0 26px rgba(214,164,59,0);}100%{box-shadow:0 0 0 4px #fff3c4, 0 0 0 6px var(--gold,#d6a43b);}}
#explain-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:12px;z-index:9100;display:flex;align-items:center;gap:10px;max-width:min(680px,calc(100vw - 24px));width:max-content;background:#fff;color:var(--ink,#142332);border:2px solid var(--gold,#d6a43b);border-radius:16px;padding:10px 12px;box-shadow:0 10px 30px rgba(7,27,47,.3);font-size:.88rem;}
#explain-bar .xb-t{display:flex;flex-direction:column;min-width:0;line-height:1.3;} #explain-bar .xb-t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(360px,50vw);}
#explain-bar .xb-k{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted,#627080);font-weight:700;}
#explain-bar .xb-btn{border:1.5px solid var(--line,#dbe0e2);background:#fff;border-radius:999px;padding:8px 12px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;white-space:nowrap;}
#explain-bar .xb-btn.primary{background:var(--navy,#071b2f);color:#fff;border-color:var(--navy,#071b2f);}
#explain-bar .xb-x{border:none;font-size:.8rem;opacity:.6;}
body.explain-on #narr-dock{display:none;} body.explain-on #fb-fab,body.explain-on #pwa-install{bottom:84px !important;}
@media (max-width:640px){#explain-bar{bottom:8px;gap:6px;padding:8px;} #explain-bar .xb-t b{max-width:38vw;font-size:.8rem;}}

/* course walk-through */
.course-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:14px 0 6px;}
.course-step{display:flex;align-items:center;gap:10px;text-align:left;background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:12px;padding:10px 12px;font:inherit;cursor:pointer;color:var(--ink,#142332);}
.course-step .cs-n{width:26px;height:26px;border-radius:50%;background:#eef1f4;color:var(--muted,#627080);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.8rem;flex-shrink:0;}
.course-step .cs-t{display:flex;flex-direction:column;line-height:1.2;min-width:0;} .course-step .cs-t b{font-size:.88rem;} .course-step .cs-t small{font-size:.72rem;color:var(--muted,#627080);}
.course-step.done .cs-n{background:var(--green,#1f745b);color:#fff;} .course-step.done{border-color:#bfe3cc;}
.course-step.next{border-color:var(--gold,#d6a43b);box-shadow:0 0 0 3px rgba(214,164,59,.18);} .course-step.next .cs-n{background:var(--gold,#d6a43b);color:#071b2f;}
.step-done-row{display:flex;justify-content:flex-end;margin-top:14px;}
.step-done{background:var(--navy,#071b2f);color:#fff;border:none;border-radius:10px;padding:10px 16px;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer;}
.step-done.is-done{background:var(--green,#1f745b);}
.kc-start{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#eef3f8;border:1px solid #c6d5e4;border-radius:12px;padding:16px 18px;}
.kc-start .kc-ic{font-size:2rem;} .kc-start .kc-t{flex:1;min-width:220px;display:flex;flex-direction:column;gap:4px;} .kc-start .kc-t b{font-size:1.05rem;} .kc-start .kc-t span{font-size:.9rem;color:var(--ink,#142332);line-height:1.45;}
.kc-start .kc-go{font-size:1rem;padding:12px 22px;} .kc-start .kc-written{flex-basis:100%;text-align:left;font-size:.82rem;}

.ct-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:14px 0 -6px;font-size:.82rem;color:var(--muted,#627080);}
.ct-chip{background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:999px;padding:5px 11px;font-weight:700;color:var(--navy,#071b2f);font-variant-numeric:tabular-nums;}

.cp-timer{font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:rgba(255,255,255,.1);color:rgba(255,255,255,.75);font-variant-numeric:tabular-nums;margin-left:auto;}
.cp-timer.slow{background:rgba(214,164,59,.25);color:#f3d38a;}

.kc-time{margin:-4px 0 10px;font-size:.92rem;color:var(--ink,#142332);} .kc-time.best{color:#1f5f3a;font-weight:700;}
.cp-timer{display:none;}   /* measured, not shown while answering: a visible clock makes people rush */

/* Review page head, weak spots, refresher */
.cp-review-line{font-size:1rem;color:var(--ink,#142332);margin-top:6px;}
.cp-spots{display:grid;gap:8px;margin:6px 0 4px;}
.cp-spot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:12px;padding:12px 14px;}
.cp-spot.hot{border-color:var(--gold,#d6a43b);background:#fffbf0;}
.cp-spot-t{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px;} .cp-spot-t b{font-size:.95rem;} .cp-spot-t span{font-size:.8rem;color:var(--muted,#627080);}
.cp-spot-a{display:flex;gap:8px;} .cp-go.small,.cp-alt.small{padding:8px 12px;font-size:.82rem;}
.cp-refresher{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#fff7e0;border:1px solid #e9cf85;border-radius:14px;padding:14px 18px;margin:0 0 20px;}
.cp-refresher-t{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px;} .cp-refresher-t b{font-size:1rem;color:#3d2e07;} .cp-refresher-t span{font-size:.82rem;color:#6b5a2a;}
.cp-refresher-a{display:flex;gap:8px;flex-wrap:wrap;}

/* ---------------------------------------------------------------- theme picker */
.cp-theme-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
.cp-theme-opt{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1.5px solid var(--line,#dbe0e2);border-radius:10px;cursor:pointer;background:var(--card,#fff);}
.cp-theme-opt.on{border-color:var(--gold,#d6a43b);box-shadow:0 0 0 3px rgba(214,164,59,.18);}
.cp-theme-opt input{position:absolute;opacity:0;pointer-events:none;}
.cp-theme-opt b{display:block;font-size:.95rem;}
.cp-theme-opt small{display:block;color:var(--muted,#667);font-size:.82rem;line-height:1.35;}
.cp-theme-swatch{flex-shrink:0;width:34px;height:34px;border-radius:8px;border:1px solid rgba(0,0,0,.15);}
.cp-theme-swatch.light{background:linear-gradient(135deg,#fbfbf8 50%,#071b2f 50%);}
.cp-theme-swatch.dark{background:linear-gradient(135deg,#0e161f 50%,#d6a43b 50%);}
.cp-theme-swatch.auto{background:linear-gradient(90deg,#fbfbf8 50%,#0e161f 50%);}

/* ---------------------------------------------------------------- profile pictures */
.acct-av.photo{overflow:hidden;background:#dfe5ea;}
.acct-av.photo img{width:100%;height:100%;object-fit:cover;display:block;}
.acct-av.tier{background:transparent;padding:0;}
.acct-av.tier svg{display:block;}
.acct-av.big.tier{border:0;}
.acct-pic-row{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap;}
.acct-pic-cur{flex-shrink:0;}
.acct-pic-cur .acct-av.big{width:96px;height:96px;font-size:1.8rem;}
.acct-pic-opts{display:flex;flex-direction:column;gap:8px;flex:1;min-width:240px;}
.acct-pic-btn{display:flex;gap:12px;align-items:center;text-align:left;padding:10px 12px;border:1.5px solid var(--line,#dbe0e2);border-radius:10px;background:var(--card,#fff);color:inherit;font:inherit;cursor:pointer;}
.acct-pic-btn.on{border-color:var(--gold,#d6a43b);box-shadow:0 0 0 3px rgba(214,164,59,.18);}
.acct-pic-btn b{display:block;font-size:.93rem;}
.acct-pic-btn small{display:block;color:var(--muted,#667);font-size:.8rem;line-height:1.35;}
.acct-pic-btn svg{flex-shrink:0;}
.acct-pic-ico{font-size:1.5rem;width:34px;text-align:center;flex-shrink:0;}

/* ---------------------------------------------------------------- insights: course feedback */
.ins-row-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:0 0 10px;font-size:.9rem;}
.ins-fb-list{display:flex;flex-direction:column;gap:10px;}
.ins-fb{border-left:4px solid var(--gold,#d6a43b);}
.ins-fb.done{border-left-color:#1f745b;opacity:.75;}
.ins-fb-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:6px;font-size:.85rem;}
.ins-fb-kind{font-weight:700;text-transform:capitalize;padding:2px 9px;border-radius:999px;background:#eef3f8;color:#0f2845;}
.ins-fb-kind.bug{background:#fdf1ef;color:#8f2f25;} .ins-fb-kind.question{background:#fff7e0;color:#7a5a10;}
.ins-fb-when{color:var(--muted,#627080);}
.ins-fb-rev{margin-left:auto;display:flex;gap:6px;align-items:center;cursor:pointer;}
.ins-fb-where{font-size:.9rem;margin-bottom:6px;} .ins-fb-where span{color:var(--muted,#627080);}
.ins-fb-msg{white-space:pre-wrap;font-size:.95rem;line-height:1.5;margin:4px 0 8px;}
.ins-fb-opts{margin:4px 0 8px 20px;font-size:.88rem;} .ins-fb-opts li.key{font-weight:700;} .ins-fb-opts li em{font-style:normal;font-size:.75rem;color:var(--muted,#627080);margin-left:6px;}
.ins-fb-meta{font-size:.78rem;color:var(--muted,#627080);}
html[data-theme="dark"] body.in-app .ins-fb-kind{background:#162536;color:#d7e4f2;}
html[data-theme="dark"] body.in-app .ins-fb-kind.bug{background:#2c1e1c;color:#f3b9b2;} html[data-theme="dark"] body.in-app .ins-fb-kind.question{background:#2a2412;color:#f0dfa8;}

.cp-end-coach{margin:10px auto 0;max-width:34ch;font-size:1rem;line-height:1.45;color:var(--gold,#d6a43b);font-weight:600;}

/* ---------------------------------------------------------------- friends: streaks, cheers, activity */
.acct-fstreak{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:#fff7e0;color:#5a4410;font-size:.78rem;font-weight:600;}
.acct-cheer-wrap{position:relative;display:inline-block;}
.acct-cheer-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:30;background:var(--card,#fff);border:1px solid var(--line,#dbe0e2);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.14);padding:6px;display:flex;flex-direction:column;gap:2px;min-width:220px;}
.acct-cheer-menu[hidden]{display:none;}
.acct-cheer-opt{text-align:left;background:none;border:0;padding:8px 10px;border-radius:8px;font:inherit;font-size:.9rem;cursor:pointer;color:inherit;}
.acct-cheer-opt:hover,.acct-cheer-opt.pick{background:rgba(214,164,59,.14);}
.acct-invite-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0 6px;font-size:.85rem;}
.acct-activity{display:flex;flex-direction:column;gap:6px;}
.acct-act{display:flex;align-items:center;gap:10px;font-size:.9rem;padding:6px 0;border-top:1px solid var(--line,#dbe0e2);}
.acct-act-ic{font-size:1.1rem;} .acct-act-t{flex:1;}
html[data-theme="dark"] body.in-app .acct-fstreak{background:#2a2412;color:#f0dfa8;}

/* ---------------------------------------------------------------- friend streak goals */
.acct-goal{border:1px solid var(--line,#dbe0e2);border-radius:10px;padding:10px 12px;margin:8px 0;background:var(--card,#fff);}
.acct-goal.done{border-color:#1f745b;} .acct-goal.invite{border-color:var(--gold,#d6a43b);box-shadow:0 0 0 3px rgba(214,164,59,.15);} .acct-goal.ended{opacity:.7;}
.acct-goal-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.92rem;}
.acct-goal-n{color:var(--muted,#627080);font-weight:600;}
.acct-goal-bar{height:8px;border-radius:6px;background:#e6eaee;overflow:hidden;margin:8px 0 6px;}
.acct-goal-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold,#d6a43b),#1f745b);transition:width .4s;}
.acct-goal-s{font-size:.82rem;color:var(--muted,#627080);display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.acct-goal-new{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px;font-size:.9rem;}
.acct-goal-new select{padding:6px 8px;border:1.5px solid var(--line,#dbe0e2);border-radius:8px;font:inherit;background:var(--card,#fff);color:inherit;}
html[data-theme="dark"] body.in-app .acct-goal-bar{background:#243547;}

/* ---------------------------------------------------------------- insights: media upload */
.ins-drop{border:2px dashed var(--line,#dbe0e2);border-radius:12px;padding:22px;text-align:center;margin:0 0 10px;transition:border-color .15s,background .15s;}
.ins-drop.over{border-color:var(--gold,#d6a43b);background:rgba(214,164,59,.08);}
#ins-media-prog{margin:8px 0 6px;}

/* Goal engine (countdown courses): the goal card's options and the focus list */
.cp-goal-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:6px}
.cp-goal-opts .cp-check{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;line-height:1.35}
.cp-goal-opts .cp-check b{font-size:.95rem}
.cp-goal-opts .cp-check input{margin:0 6px 0 0;vertical-align:middle}
.cp-goal-focus{max-height:240px;overflow:auto;padding:4px}
.cp-goal .cp-today-body p{margin:0 0 8px}
